【技术实现步骤摘要】
本申请涉及信息安全,尤其涉及分布式设置使用各种密码并完成分布式加解密和数字签名的方法及相关装置。
技术介绍
1、近年来,随着去中心化概念的流行,分布式安全的重要性再次引起了信息产业各行业的关注,分布式密码特别是其密钥分享和分布式使用技术作为一种可以保证分布式系统安全的可信技术,也再次被业界所关注。它通过分享私钥的方法将使用密码解密或者签名的权限分配给多个私钥片段的持有者,只有它们中超过一定数量者合作才能完成解密或者签名。这种分布式的密码使用方法近年来逐渐应用到多方安全计算、安全隐私通信、可信执行环境、授权与认证、人工智能等许多热门领域。rsa密码作为最常用的标准公钥密码算法,其分布式使用方法是分布式密码中最基本的技术。paillier密码具有加法同态的性质,作为密态安全计算(数据被加密后在密态下被处理和计算直到最后结果被解密)中最常用的密码算法,其分布式使用方法是安全多方计算的关键基础技术。其它密码,包括elgmal、dsa和格密码等,也都有分布式使用的现实需求。
2、目前,分布式使用rsa密码、paillier密码和其它一
...【技术保护点】
1.一种密码私钥的分配方法,由一个发起方(私钥生成者)执行,将私钥通过一个多项式和伴随的模运算分解为n个分片,每个分片分配给1个协同方,所以共有n个协同方(私钥分享者)。这里的n个分片称为第1到第n分片。n为大于等于2的自然数,而门限t(行使私钥功能需要的协同方的数目)不大于n。私钥分解所用的多项式为第一多项式,多项式的系数为第一参数,多项式使用时用到的一个特别设计的模运算的模数为第二参数。使用发起方对应的第一多项式,并将所述每个协同方的标识数值带入所述第一多项式进行计算(所述第i个协同方具有标识数值Pi,第一协同方的标识数值为第一标识数值,第二协同方的标识数值为第二
...【技术特征摘要】
1.一种密码私钥的分配方法,由一个发起方(私钥生成者)执行,将私钥通过一个多项式和伴随的模运算分解为n个分片,每个分片分配给1个协同方,所以共有n个协同方(私钥分享者)。这里的n个分片称为第1到第n分片。n为大于等于2的自然数,而门限t(行使私钥功能需要的协同方的数目)不大于n。私钥分解所用的多项式为第一多项式,多项式的系数为第一参数,多项式使用时用到的一个特别设计的模运算的模数为第二参数。使用发起方对应的第一多项式,并将所述每个协同方的标识数值带入所述第一多项式进行计算(所述第i个协同方具有标识数值pi,第一协同方的标识数值为第一标识数值,第二协同方的标识数值为第二标识数值......第n个协同方的标识数值为第n个标识数值),最后通过第二参数的模运算得到第1到第n分片。特别设计的第一参数和第二参数保证所有私钥分片各自独立于密码的秘密信息从而不会泄露它们。
2.第一多项式f(x)=a0+a1x+a2x2+...+at-1xt-1的概念本身并非本发明的独到之处;实现权利要求1的关键特征在于:使用si=f(pi)mod mi计算具有标识数值pi的协同方的私钥分片时,对其系数(第一参数)和伴随的模数mi或简化后的模数m(第二参数)的设定上有独到之处。除了a0设定为私钥k之外,其它的系数和模数的设置要保证f(x)mod mi的具有尽可能不泄露或少泄露有关密码安全的秘密信息(私钥和陷门等)的统计分布。
3.对于si的mod mi(可以简化为统一的mod m)是本发明中至关重要的模(modulus)运算,在数学上用符号mod表示,也就是取余数的除法,除数就称为模数,被除数就是模运算的输入,得到的余数就是模运算的输出。其特征在于:在私钥分片的计算中,本发明的第一原则要求:用一个函数gi()设定mi=gi(t,m),其中m是密码的陷门而t是私钥或其它不可泄露的秘密参数,它们都有可能虽然未必一定作为函数gi()的输入;gi()必须是一个单向(oneway)函数,不存在任何线性时间的算法gi-1()从mi倒推出gi()中可能的秘密输入。也就是说,从某个私钥分片中推测到关于模数mi的秘密信息进而提取到有关密码的秘密信息,是不可行的。如果可能,甚至可以将计算mi的gi()设定为没有秘密输入,也就是说mi设定为完全与密码的任何秘密信息无关的公开参数。
4.本发明特别的mod mi(可以简化为统一的mod m)的模运算的特征还在于:当无法将mi设定为完全与密码的任何秘密信息无关的公开参数时,在第一原则的基础上可以选用第二原则进一步加强安全性能,即要求mi(可以简化为统一的m)的最优选取无限接近一个公开的常数ni(可以简化为统一的n),即预先设定的第四参数。也就是要保证经由mod mi计算出来的私钥分片在分布统计上很难和一个常数区间上公开已知的分布区分,从而在统计学上可以认为每个分片的分布是近似于一个已知的不含秘密的分布。
5.配合权利要求3和权利要求4,第一参数选取方法的特征在于,a1,a2,...,at-1从一个足够大的整数集合(这个整数集合的大小原则上应不小于m1,m2,......mn)中随机选取,从而保证f(x)mod mi在中呈同一分布,这样一来各个私钥分片的统计分布完全与私钥k无关。当权利要求3和权利要求4简化为使用统一的mod m代替不同的mi时,这一特征变化为:a1,a2,...,at-1从一个足够大的整数集合(例如zm)中随机选取,从而保证f(x)mod m在zm中呈同一分布,这样一来各个私钥分片的统计分布完全与私钥k无关。
6.具体对于rsa密码,选取第二参数和第一参数的特征在于:mi=kim而ki是随机选取的秘密大素数,以满足第一原则的要求;附加第二原则之后,则需把ki设定为使得|kim-ni|最小的整数而常数ni被设定为远远大于rsa加密运算所使用的乘法模数。第一参数a1,a2,...,at-1从一个足够大的整数集合(这个整数集合的大小原则上应不小于m1,m2,......mn)中随机选取。其中||代表绝对值,而m是rsa密码的陷门,其具体的设置见权利要求9。
7.具体对于paillier密码,选取第二参数和第一参数的特征在于:,mi=kim而ki=ki’n’且ki’是随机选取的秘密大素数即可满足第一原则的要求;附加第二原则之后,则需把ki设定为使得|kim-ni|最小的整数而ni被设定为远远大于n’2。其中n’2是paillier加密运算所使用的乘法模数,而m是paillier密码的陷门,它们具体的设置见权利要求10。
8.第一原则和第二原则也可以在权利要求6和权利要求7中相应地简化。特征在于:原本对应各个不同协同方pi的不同的mi简化为统一的m,不同的gi(),简化为统一的g(),不同的ni简化为统一的n;即所有协同方及其分片使用统一的第二参数和第四参数。具体来说,对于rsa密码,m=km而k是随机选取的秘密大素数即可满足第一原则的要求;附加第二原则之后,则需把k设定为使得|km-n|最小的整数而常数n被设定为远远大于rsa加密运算所使用的乘法模数;简化后第一参数a1,a2,...,at-1从一个足够大的整数集合(例如zm)中随机选取。对于paillier密码,m=km而k=k’n’且k’是随机选取的秘密大素数即可满足第一原则的要求;附加第二原则之后,则需把k设定为使得|km-n|最小的整数而n被设定为远远大于paillier加密运算所使用的乘法模数;简化后第一参数a1,a2,...,at-1从一个足够大的整数集合(例如zm)中随机选取。
9.被分享的完整rsa密钥,本身的生成,以及由它而计算rsa私钥分片的过程,既可以由一个中心化的发起方来完成,也可以在去中心化的场景由各个分享密钥的协同方自行通过安全多方计算分布式地完成。无论如何,p’和q’是大素数,且满足p=2p’+1和q=2q’+1也是大素数;m=p’q’是陷门,n’=p’q’是rsa加密运算所使用的乘法模数。本发明要强调的独特的特征在于:密钥产生(生成被分享的密钥)时,要采用特殊方法;不能像有些现有系统那样,在zm中随机选取或计算公钥e;e应该从大大不同于zm的空间中随机选取然后计算私钥k=e-1mod m。例如,在zn’中随机选取e,而n’是rsa加解密和签名操作所用的乘法模数;或者在zm的一个特别的小子集(比如包含排除了弱密钥的特定长度的整数,远远比zm小也不在zm中均匀分布)中随机选取e。
10.被分享的完整paillier密钥,本身的生成,以及由它而计算rsa私钥分片的过程,既可以由一个中心化的发起方来完成,也可以在去中心化的场景由各个分享密钥的协同方自行通过安全多方计算分布式地完成。无论如何,p’和q’是大素数,且满足p=2p’+1和q=2q’+1也是大素数还有m=p’q’是陷门,n’=p’q’而n’2是加密操作的乘法模数;k=κm是私钥而κ是随机选取的整数;公钥由n’和g组成。本发明要强调的独特之处是g模(mod) n’2做乘法形成循环群的阶(order)是n’的整数倍,而order(g)/n’不能太小,要含有大素数因子,以满足当它作为乘法因子时分解乘积的factorization问题很难解;另外,配合权利要求19中简化的解密操作,paillier公钥中必要时可以增加一项k’=k×order(g)形成paillie密码的一个变体。
11.当t=n时,形成n-out-of-n门限密码,除了上文所述的通用门限密码,也可以采用与之不同的特殊的实现方法。其特征在于:根据各个协同方已经拥有的私钥分片(可以是他们的原有私钥或专门选定的分片)来生成完整的rsa或者paillier密钥,形成先分后合的分布式密码,这样就彻底克服了密钥分片泄露密钥信息的问题。具体而言,第i个协同方随机任选一个秘密的私钥分片si,与之对应的公开参数ui由各个协同发自行选取或者由有关参与方共同选取。然后使用s1,s2,...,sn和u1,u2,...,un结合rsa或者paillier密码原本的密钥生成协议,由一个中心控制方单独计算或者由所协同方多方计算,生成完整的rsa或者paillier密钥。
12.n-out-of-n门限的rsa密码采用先分后合的特殊分布式结构时,其特征如下。私钥而公钥e=k-1mod m,其中m是已经定义的rsa陷门,s1,s2,...,sn和u1,u2,...,un在权利要求11中已经定义。这两步密钥生成计算由一个密钥合成装置完成,可以由中心控制方(发起方)收集s1,s2,...,sn和u1,u2,...,un后单独完成,或者由各个协同方秘密输入s1,s2,...,sn经安全多方计算完成。注意e=k-1mod m或e=k-1mod m不一定每次都有正确结果,例如k-1mod m可能不存在,或者公钥e被设定为在zm的一个子集中而实际计算出的e在这个子集外,这时可以重选u1,u2,...,un重新计算e。为了避免从e中泄露不可忽略的秘密信息,除了必要时重新计算不满意的公钥,还可以改变公钥的计算方法。例如,必要时公钥甚至可以计算为e=(k-1mod m)+εm而ε是一个随机生成的秘密整数,这一变体避免了e在zm中同一分布泄露关于m的信息。这一计算e的变体还有更普遍的表述方法:e=(k-1modm);而m采用权利要求8中的定义,即由针对rsa密码的第一原则和第二原则选定的第二参数。
13.n-out-of-n门限的paillier密码采用先分后合的特殊分布式结构时,其密钥合成模块的特征是:完整密钥的计算首先选取随机整数α、β和κ得出公钥参数g=(1+n′)αβn′modn′2和私钥k=mκ,然后依据私钥分片计算公钥的其它参数和σ=αmκ或者σ=αmκmo n′;其中,s1,s2,...,sn和u1,u2,...,un在权利要求11中已经定义;而m采用权利要求8中的定义,即由针对paillier密码的第一原则和第二原则选定的第二参数。要注意:除了n’和g,公钥还包括μ和σ。
14.在t-out-of-n门限下使用私钥分片的分布式rsa解密装置,特征如下。私钥分享:使用多项式f’(x)=f(x)mod m=a0+a1x+a2x2+...+at-1xt-1mod m由私钥a0=k产生私钥分片si=f’(pi)for i=1,2,...n分配给各个分享方,其中m和第一多项式f(x)的参数是采用权利要求8中简化的第一原则(可增加第二原则)和其它要求特别选定的以保证rsa密码的秘密参数不会从私钥分片中泄露出来。任何密文d的分布式部分解密:其中x是一个公开的与e互质的整数(也可以简化为1)。解密合成:首先计算而其中t个合作协同方对应的标识数值组成一个集合s,z是一个公开的与e互质的整数并特别设定(对于任何一个i∈{1,2,...,n},z必须在pj∈s,j≠i范围内包含所有可能的pj-pi作为这些因子的乘积;ui或z中还可能包含其它的因子,这时候可以像说明书中那样把z写为yz,用y明显地代表这些其它因子,例如说明书中提到的在部分解密的正确性证明中用到的第十参数)以保证在没有模运算的情况下得到一个整数ui。解密合成的最后结果:h=wadbmod ...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。