一种秘密数据共享的验证方法及装置与流程

文档序号:12278102阅读:491来源:国知局
一种秘密数据共享的验证方法及装置与流程

本发明涉及信息安全技术领域,具体涉及一种秘密数据共享的验证方法及装置。



背景技术:

任何现实世界的密码协议及其算法都应当具有预防欺骗和识别骗子的能力,如内部参与者可能想获取其它参与者的子份额而出示假的子份额,或者由于噪声、通信错误导致子份额出错等;外部攻击者可能冒充合法的参与者进行欺骗;分发者也可能存在欺骗行为等等,这些问题都将导致重构秘密错误或无法重构秘密。

对于应用价值广泛的门限秘密共享方案也同样存在上述问题,因为一般的秘密共享方案要假设分发者和参与者都诚实可信。因此需要验证庄家和成员的诚实性:庄家将子秘密分发给部分或全部成员,各成员如何验证庄家发送来的子秘密是正确的;在恢复秘密阶段,若某些恶意的成员提供的是假的子秘密,其他成员如何鉴别。对这两个问题的研究,现有技术中对秘密的机密性可以实现无条件安全(信息论安全),当然对可验证性是条件安全。但是,无论是哪种方案,都需要为秘密共享选择一个阶为素数p的有限域,为计算承诺和验证选择一个阶为素数q的循环群,且q为p-1的素因子。这样会增加承诺尺寸,方案性能不够好。需对每个共享秘密作预计算,而且子秘密的认证需要各方在线合作,从而计算量和通信量都很大;或者其安全性是基于离散对数的难解性,为了防止参与者之间的欺诈,需要执行一个交互式验证协议,计算量非常大,效率不高。



技术实现要素:

由于现有的秘密数据共享方法的验证协议存在计算量和通信量都很大,效率不高、安全校验复杂等问题,本发明提出一种秘密数据共享的验证方法及装置。

第一方面,本发明提出一种秘密数据共享的验证方法,包括:

获取随机数据,将等长的秘密数据和所述随机数据分别分块表示为秘密向量和随机数向量;

选择第二预设数量的第一随机字符串向量fi,j和第二随机字符串向量Fi,j,根据所述第一随机字符串向量确定秘密向量的第一共享多项式,并根据所述第二随机字符串向量确定随机数向量的第二共享多项式;

计算身份标识,并根据所述身份标识和所述第一共享多项式计算得到秘密向量的秘密子份额向量,并根据所述第二共享多项式计算得到随机数向量的随机子份额向量;

计算共享承诺Ei,j=E(fi,j,Fi,j);

根据所述共享承诺对所述秘密子份额向量和所述随机子份额向量进行验证,确定所述秘密子份额向量的正确性;

其中,i,j为非负整数,(0≤i≤p-1,0≤j≤t-1);p为正整数,p-1为所述第一预设数量;t为正整数,t-1为所述第二预设数量;Ei,j为共享承诺。

优选地,还包括:

根据重构表达式,对至少第三预设数量的秘密子份额向量进行秘密重构,得到所述秘密数据。

优选地,所述第一共享多项式f(x)为:

其中,x表示所述第一共享多项式的自变量,分别为t-1个随机子份额向量,t为正整数,t-1表示所述第二预设数量;表示所述秘密数据。

优选地,所述秘密子份额向量为:

其中,l为正整数;p为正整数,p-1表示所述第一预设数量;y0,l,…,yp-2,l分别为所述秘密子份额向量的分向量。

优选地,所述重构表达式为:

其中,BottomBlockRowof()表示取分块矩阵的最后一行分块行向量;表示所述至少第三预设数量的秘密子份额向量;λ0,λ1,……λt-1为正整数,表示从子份额中任选t个子份额的下标;t为正整数,t-1表示所述第二预设数量。

第二方面,本发明还提出一种秘密数据共享的验证装置,包括:

数据划分模块,用于将获取随机数据,将等长的秘密数据和所述随机数据分别分块表示为秘密向量和随机数向量;

多项式确定模块,用于选择第二预设数量的第一随机字符串向量fi,j和第二随机字符串向量Fi,j,根据所述第一随机字符串向量确定秘密向量的第一共享多项式,并根据所述第二随机字符串向量确定随机数向量的第二共享多项式;

向量计算模块,用于计算身份标识,并根据所述身份标识和所述第一共享多项式计算得到秘密向量的秘密子份额向量,并根据所述第二共享多项式计算得到随机数向量的随机子份额向量;

承诺计算模块,用于计算共享份额承诺Ei,j=E(fi,j,Fi,j);

向量验证模块,用于根据所述共享承诺对所述秘密子份额向量和所述随机子份额向量进行验证,确定所述秘密子份额向量的正确性;

其中,i,j为非负整数,(0≤i≤p-1,0≤j≤t-1);p为正整数,p-1为所述第一预设数量;t为正整数,t-1为所述第二预设数量;Ei,j为共享承诺。

优选地,还包括:

秘密重构模块,用于根据重构表达式,对至少第三预设数量的秘密子份额向量进行秘密重构,得到所述秘密数据。

优选地,所述第一多项式确定模块中的所述共享多项式f(x)为:

其中,x表示所述第一共享多项式的自变量,分别为t-1个随机子份额向量,t为正整数,t-1表示所述第二预设数量;表示所述秘密数据。

优选地,所述向量计算模块中所述秘密子份额向量为:

其中,l为正整数;p为正整数,p-1表示所述第一预设数量;y0,l,…,yp-2,l分别为所述秘密子份额向量的分向量。

优选地,所述秘密重构模块中所述重构表达式为:

其中,BottomBlockRowof()表示取分块矩阵的最后一行分块行向量;表示所述至少第三预设数量的秘密子份额向量;λ0,λ1,……λt-1为正整数,表示从子份额中任 选t个子份额的下标;t为正整数,t-1表示所述第二预设数量。

由上述技术方案可知,本发明通过随机子份额向量确定秘密数据的共享多项式,并根据共享多项式计算得到子份额的秘密子份额向量,并通过验证公式对秘密子份额向量进行验证,计算量和通信量都较小,且计算效率较高;同时通过将随机数与秘密数据一起分发,能够实现对秘密数据的无条件安全性验证,使得秘密数据的安全校验简单有效。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些图获得其他的附图。

图1为本发明一实施例提供的一种秘密数据共享的验证方法的流程示意图;

图2为本发明一实施例提供的无条件安全的可更新(t,n)门限秘密共享方案流程图;

图3为本发明一实施例提供的(t,n)门限秘密共享方案模型图;

图4为本发明一实施例提供的群上(t,n)门限秘密共享过程的几何描述图;

图5为本发明一实施例提供的一种秘密数据共享的验证装置的结构示意图。

具体实施方式

下面结合附图,对发明的具体实施方式作进一步描述。以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本发 明的保护范围。

图1示出了本发明一实施例提供的一种秘密数据共享的验证方法的流程示意图,包括:

S1、获取随机数据,将等长的秘密数据和所述随机数据分别分块表示为秘密向量和随机数向量;

S2、选择第二预设数量的第一随机字符串向量fi,j和第二随机字符串向量Fi,j,根据所述第一随机字符串向量确定秘密向量的第一共享多项式,并根据所述第二随机字符串向量确定随机数向量的第二共享多项式;

S3、计算身份标识,并根据所述身份标识和所述第一共享多项式计算得到秘密向量的秘密子份额向量,并根据所述第二共享多项式计算得到随机数向量的随机子份额向量;

S4、计算共享承诺Ei,j=E(fi,j,Fi,j);

S5、根据所述共享承诺对所述秘密子份额向量和所述随机子份额向量进行验证,确定所述秘密子份额向量的正确性;

其中,i,j为非负整数,(0≤i≤p-1,0≤j≤t-1);p为正整数,p-1为所述第一预设数量;t为正整数,t-1为所述第二预设数量;Ei,j为共享承诺。

本实施例通过随机子份额向量确定秘密数据的共享多项式,并根据共享多项式计算得到子份额的秘密子份额向量,并通过验证公式对秘密子份额向量验证,计算量和通信量都较小,且计算效率较高;同时通过将随机数与秘密数据一起分发,能够实现对秘密数据的无条件安全性验证,使得秘密数据的安全校验简单有效。

进一步地,还包括:

S6、根据重构表达式,对至少第三预设数量的秘密子份额向量进行秘密重构,得到所述秘密数据。

通过重构表达式进行秘密重构,能够快速正确地恢复秘密数据。

具体地,所述第一共享多项式f(x)为:

其中,x表示所述第一共享多项式的自变量,分别为t-1个随机子份额向量,t为正整数,t-1表示所述第二预设数量;表示所述秘密数据。

通过采用公式一所示的共享多项式,能够减少计算量,提高计算效率。

具体地,所述秘密子份额向量为:

其中,l为正整数;p为正整数,p-1表示所述第一预设数量;y0,l,…,yp-2,l分别为所述秘密子份额向量的分向量。

通过采用公式二所示的秘密子份额向量,能够较少庄家和成员之间的通信量。

更进一步地,所述重构表达式为:

其中,BottomBlockRowof()表示取分块矩阵的最后一行分块行向量;表示所述至少第三预设数量的秘密子份额向量;λ0,λ1,……λt-1为正整数,表示从子份额中任选t个子份额的下标;t为正整数,t-1表示所述第二预设数量。

通过采用公式三所示的重构表达式,能够减少计算量。

本实施例提供的秘密数据共享的验证方法类似Pedersen方案的VSS方案,但是秘密共享是在交换群上进行运算。其对秘密的机密性可以实现无条件安全(信息论安全),对可验证性是条件安全。且提高了计算效率、减小了承诺尺寸,使可验证门限秘密共享方案更适用于大数据量的数据存储上。

举例来说,图2和图3分别示出了本实施例提供的无条件安全的可更新(t,n)门限秘密共享方案流程图和(t,n)门限秘密共享方案模型图;假设有庄家D需在n个参与者P={P1,…Pn}间共享秘密S,仅当t个或t个以上的参与者联合起来才能恢复共享秘密,少于t个参与者的任何组合都无法得到关于秘密的任何信息。具体方案由4个子协议组成:系统初始化、秘密分发协议、子份额的验证协议和秘密重构协议。

A1、初始化协议

A11、庄家定义并公布一个足够大的素数q,定义一个阶为q的循环群G,g和h是G的两个生成元;

A12、定义一个有限交换群阶为整数0为其生成元;

A13、找一个素数p(≥n),且定义一个向量空间 [0,…0]T为生成元,其上的标量运算结果均落在上。其中,g,h可以由可信中心选取,也可以有某些值得信任的参与者通过coin-flipping协议进行选取。其次,定义表达式:E(a,b)=gahb

A2、秘密分发协议

A21、庄家首先将秘密s分为p-1块,记为再选取一个随机数也分为p-1块,记

A22、随机选取0≤j≤t-2,其中构造秘密共享多项式:

令l=0,…,n-1;

其中,为参与者Pl的身份标识,定义为:0≤l≤p-1,0≤j≤p-1

例如,当p=5时,

A24、用矩阵形式表示上述秘密共享过程如下:

其中,

例如,以k=3,n=4,p=5为例,由上述和Hn×t的定义可得到H4×3如下:

根据秘密共享的矩阵表达,即公式四,以计算子份额 为例,有:

所以,根据秘密共享的矩阵表达,可以得到方案的几何描述,如图4所示。从几何描述可以看出,计算子份额的数学表达式为:

其中0≤i≤p-2,0≤j≤t-1,ri,t-1=si,rp-1,j=0。

A23、随机选取0≤j≤t-2,其中

构造随机数共享多项式:

令l=0,…,n-1;

A24、为方便起见,记其中庄家计算Ei,j=E(fi,j,Fi,j),0≤i≤p-1,0≤j≤t-1;并将Ei,j=E(fi,j,Fi,j)和一同发送给参与者Pl,l=1,…,n。

A3、子份额的验证协议

参与者Pl收到和Ei,j后,验证:

如果相等,说明参与者拿到的份额与承诺的一致。

A4、秘密重构协议

当至少t个成员Uλ(λ∈B,且|B|≥t)提供他们的子份额后,可利用公式八和公式三进行秘密重构(这里以t个子份额为例):

其中

Vk×k是根据t个影子份额从中取出对应的t个行向量组成的方阵,其中

因此可以重构秘密

本实施例将整数模加群上的高效秘密共享方案与离散对数难题相结合,具有以下的有益效果:

子秘密生成过程有简洁的数学表达,可为验证过程提高计算效率、缩小承诺尺寸;

对于秘密信息的机密性可以实现无条件安全(信息论安全)、对子秘密的可验证性可以达到可计算安全(条件安全);

承诺尺寸为每仅需要|q|bits的承诺较Pedersen方案的,承诺尺寸缩小了;

对于群中的每一个元素(共p-1个元素)来说,平均仅需要2次指数运算和k次乘法运算。比Pedersen方案的计算效率更高,所以更适用于大数据量的秘密共享应用。

图5示出了本实施例提供的一种秘密数据共享的验证装置的结构示意图所述装置包括数据划分模块11、多项式确定模块12、向量计算模块13和向量验证模块14;其中,

数据划分模块11用于将获取随机数据,将等长的秘密数据和所述随机数据分别分块表示为秘密向量和随机数向量;

多项式确定模块12用于选择第二预设数量的第一随机字符串向fi,j量和第二随机字符串向量Fi,j,根据所述第一随机字符串向量确定秘密向量的第一共享多项式,并根据所述第二随机字符串向量确定随机数向量的第二共享多项式;

向量计算模块13用于计算身份标识,并根据所述身份标识和所述第一共享多项式计算得到秘密向量的秘密子份额向量,并根据所述第二共享多项式计算得到随机数向量的随机子份额向量;

承诺计算模块14用于计算共享承诺Ei,j=E(fi,j,Fi,j);

向量验证模块15用于根据所述共享承诺对所述秘密子份额向量和所述随机子份额向量进行验证,确定所述秘密子份额向量的正确性;

其中,i,j为非负整数,(0≤i≤p-1,0≤j≤t-1);p为正整数,p-1为所述第一预设数量;t为正整数,t-1为所述第二预设数量;Ei,j为共享承诺。

具体地,数据划分模块11将获取随机数据,将所述随机数据和秘密数据分别分为等长的第一预设数量的子份额;多项式确定模块12选择第二预设数量的第一随机字符串向量和第二随机字符串向量,根据所述第一随机字符串向量确定秘密数据的第一共享多项式,并根据所述第二随机字符串向量确定随机数据的第二共享多项式;向量计算模块13根据所述第一共享多项式计算得到每个秘密数据子份额的秘密子份额向量,并根据所述第二共享多项式计算得到每个随机数据子份额的随机子份额向量;承诺计算模块14计算份额承诺 向量验证模块15根据所述份额承诺对所述秘密子份额向量和所述随机子份额向量进行验证,确定所述秘密子份额向量的正确性。

本实施例通过随机子份额向量确定秘密数据的共享多项式,并根据共享多项式计算得到子份额的秘密子份额向量,并通过验证公式对秘密子份额向量验证,计算量和通信量都较小,且计算效率较高;同时通过将随机数与秘密数据一起分发,能够实现对秘密数据的无条件安全性验证,使得秘密数据的安全校验简单有效。

进一步地,所述装置还包括:

秘密重构模块16,用于根据重构表达式,对至少第三预设数量的秘密子份额向量进行秘密重构,得到所述秘密数据。

具体地,所述第一多项式确定模块中的所述共享多项式f(x)为:

其中,x表示所述第一共享多项式的自变量,分别为t-1个随机子份额向量,t为正整数,t-1表示所述第二预设数量; 表示所述秘密数据。

具体地,所述向量计算模块中所述秘密子份额向量为:

其中,m为正整数;p为正整数,p-1表示所述第一预设数量;y0,m,…,yp-2,m分别为所述秘密子份额向量的分向量。

具体地,所述秘密重构模块中所述重构表达式为:

其中,BottomBlockRowof()表示取分块矩阵的最后一行分块行向量;表示所述至少第三预设数量的秘密子份额向量;λ0,λ1,……λt-1为正整数,表示从子份额中任选t个子份额的下标;t为正整数,t-1表示所述第二预设数量。

本实施例所述的秘密数据共享的验证装置可以用于执行上述方法实施例,其原理和技术效果类似,此处不再赘述。

本发明的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1