发明内容
为解决基于现有公钥密码的身份的验证、数据保障的安全性存在隐患的问题,本发明的目的在于建立一个能抵抗各种已知的攻击的公钥密码技术,和在此基础上给出各应用协议。
本发明的目的是这样实现的:一种建立抗攻击的公钥密码的方法,包括生成共享密钥的方法,生成共享密钥的方法也称为生成共享密钥协议,所述生成共享密钥的方法包括如下步骤:
(11)建立一个无限非交换群G及G的两个子群A和B,使得对任意a∈A、任意的b∈B,等式ab=ba成立;
(12)协议第一方选取G中一元素g,其中,协议第一方选取两个元素b1,b2∈A作为私钥,协议第二方选取两个元素d1,d2∈B作为私钥;
(13)协议第二方选取两个元素c1,c2∈B,计算y=d1c1gc2d2,并将y发送给协议第一方;
(14)协议第一方选取四个元素a1,a2,b3,b4∈A,计算
x=b1a1ga2b2和z=b3a1ya2b4=b3a1d1c1gc2d2a2b4,
并将(x,z)发送给协议第二方;
(15)协议第二方选取两个元素d3,d4∈B,计算
w=d3c1xc2d4=d3c1b1a1ga2b2c2d4
和
v=d1 -1zd2 -1=d1 -1b3a1d1c1gc2d2a2b4d2 -1=b3a1c1gc2a2b4
并将(w,v)发送给协议第一方;
(16)协议第一方计算
u=b1 -1wb2 -1=b1 -1d3c1b1a1ga2b2c2d4b2 -1=d3c1a1ga2c2d4,
并将u发给协议第二方;
(17)协议第一方计算KA=b3 -1vb4 -1=a1c1gc2a2,而且协议第二方计算KB=d3 -1ud4 -1=c1a1ga2c2;
由于a1,a2∈A,c1,c2∈B,所以a1与c1和a2与c2分别乘法可交换,故协议第一方和协议第二方达成共享密钥K=KA=KB。
作为一种优选方式,还包括信息数据加密解密的方法,信息数据加密解密的方法也称为公钥加密解密协议,所述信息数据加密解密的方法包括如下步骤;
(21)定义需要加密的已编码明文信息为m∈{0,1}k,即长度为k的0-1数串;并定义Θ:G→{0,1}k是一个由群G到明文空间{0,1}k抗碰撞的Hash函数,协议第一方选取(G,A,B,g,Θ)为其公钥;
(22)加密:协议第二方先计算K
B=d
3 -1ud
4 -1=c
1a
1ga
2c
2,然后进行加密计算
并将t作为密文发送给协议第一方,这里的
是异或运算;
(23)解密:协议第一方先计算KA=b3 -1vb4 -1=a1c1gc2a2,然后进行解密计算
(24)验证m′=m:由密钥交换协议知KA=KB,所以
作为一种优选方式,还包括数字签名的方法,数字签名的方法也称为数字签名协议,所述数字签名的方法包括如下步骤:
(31)将需要签名的已编码明文信息定义为p,并定义Θ:G→{0,1}k是一个抗碰撞的Hash函数,协议第一方选取(G,A,B,g,Θ)为其公钥;
(32)签名:协议第一方计算KA=b3 -1vb4 -1=a1c1gc2a2和S=Θ(pKA),协议第一方将S作为它对信息p的签名并将(S,p)发送给协议第二方;
(33)验证:协议第二方计算KB=d3 -1ud4 -1=c1a1ga2c2和S′=Θ(pKB),如果S′=S,协议第二方则认可S是协议第一方对信息p的签名,否则,协议第二方拒绝接受S是协议第一方对信息p的签名。
作为一种优选方式,还包括身份认证的方法,所述协议第一方为示证人,所述协议第二方为验证人;所述身份认证的方法包括如下步骤:
(41)协议第一方选取一个抗碰撞的Hash函数Θ:G→{0,1}k,协议第一方选取(G,A,B,g,Θ)为其公钥;
(42)协议第二方计算y=d1c1gc2d2和w=d3c1xc2d4,并将(y,w)作为挑战一发送给协议第一方;
(43)协议第一方计算
z=b3a1ya2b4和u=b1 -1wb2 -1=d3c1a1ga2c2d4,
并将(z,u)作为响应发送给协议第二方;
(44)协议第二方计算v=d1 -1zd2 -1=b3a1c1gc2a2b4,并将v作为挑战二发送给协议第一方;
(45)协议第一方计算t=Θ(b3 -1vb4 -1)=Θ(a1c1gc2a2)并将t作为承诺发送给协议第二方;
(46)协议第二方计算t′=Θ(d3 -1ud4 -1)=Θ(c1a1ga2c2),并验证是否t=t′,如果t=t′,协议第二方认可协议第一方的身份,否则拒绝认可。
其中,所述无限非交换群G优选为辫群,给出辫群Bn(n≥12)的具有不可解的子群成员问题的Mihailova子群的生成元系,给出了辫群Bn(n≥12)的具有子群成员问题不可解的Mihailova子群的生成元系,并建议为抗量子计算攻击,上述协议双方的私钥由Mihailova子群的生成元生成;
所述无限非交换群G取指数为n≥12的辫群Bn,并由如下呈示所定义的群:
Bn〈σ1,σ2,...,σn-1|σiσj=σjσi,|i-j|≥2,σiσi+1σi=σi+1σiσi+1,1≤i≤n-2〉,辫群Bn含有如下两个子群:
令
为不大于n/2的最大整数,辫群B
n的左辫子LB
n和右辫子RB
n分别为
LBn=〈σ1,σ2,...,σm-1〉和RBn=〈σm+1,σm+2,...,σn-1〉
即,分别为由σ1,σ2,...,σm-1和σm+1,σm+2,...,σn-1生成的子群,并且,对于任意的a∈LBn和任意的b∈RBn,有ab=ba,所述的G的子群A即取为LBn,,而G的子群B即取为RBn;
当n≥12时,LBn和RBn分别含有一个与F2×F2同构的子群,即两个秩为2的自由群的直积同构的子群:
LA=〈σm-5 2,σm-4 2,σm-2 2,σm-1 2〉≤LBn
和
RA=〈σm+1 2,σm+2 2,σm+4 2,σm+5 2〉≤RBn;
作为一种优选方式,所述辫群Bn的指数n≥12;子群为A=LBn和B=RBn;a1,a2,c1,c2的选取满足其乘积a1c1ga2c2不小于256比特;私钥b1,b2,d1,d2均不小于256比特;保护层元素b3,b4,d3,d4均不小于128比特。
本发明首先从理论建立了一个存在不可解的问题的代数系统,其次,以这个问题的不可解性作为安全保障建立公钥密码算法。本发明算法的安全性与不可解问题的等价性,证明了其对量子计算等攻击的免疫,由于本发明建立的公钥密码方法是以不可解的判定问题作为安全保障,因此该方法无论从理论上还是实际应用方面均得到了有力保障,与现有技术相比,具有以下优点:
1.所建设的公钥密码算法的安全保障是依赖于问题的不可解性,而不是问题的计算困难性,(经典公钥密码算法是基于计算的困难性);
2.本发明的公钥密码算法的安全性等价于所依赖的问题的不可解性是得到数学证明的;
3.本发明的公钥密码算法是抗量子计算攻击的。
具体实施方式
下面结合实施例对本发明一种建立抗量子计算攻击的公钥密码协议作进一步详细说明。
1.建立公钥密码协议的平台
建立所有公钥密码协议的平台是一个无限非交换群(non-abelian group)G及G的两个子群A和B,使得对任意a∈A任意的b∈B,等式ab=ba成立。此外,由于编码和密钥生成的需要,G还必须满足以下条件:
1)于G的生成元集合上的代表G的元素的字具有可计算的正规形式(normal form);
2)G至少是呈指数增长(exponential growth),即G中字长为正整数n的元素个数下囿于一个关于n的指数函数;
3)基于正规形式的群的乘积运算和求逆运算是能行可计算的。
为此,选取无限非交换群G为指数n≥12的辫群Bn,Bn具有上述性质并由如下呈示(presentation)所定义的群:
Bn=〈σ1,σ2,...,σn-1|σiσj=σjσi,|i-j|≥2,σiσi+1σi=σi+1σiσi+1,1≤i≤n-2〉,辫群Bn含有如下两个子群:
令为不大于n/2的最大整数,辫群Bn的左辫子LBn和右辫子RBn分别为
LBn=〈σ1,σ2,...,σm-1〉和RBn=〈σm+1,σm+2,...,σn-1〉
即,分别由σ1,σ2,...,σm-1和σm+1,σm+2,...,σn-1生成的子群,并且,对于任意的a∈LBn和任意的b∈RBn,有ab=ba。
当n≥12时,LBn和RBn分别含有一个与F2×F2,即两个秩为2的自由群的直积同构的子群
LA=〈σm-5 2,σm-4 2,σm-2 2,σm-1 2〉≤LBn
和
RA=〈σm+1 2,σm+2 2,σm+4 2,σm+5 2〉≤RBn
由一个两个元素生成的其字问题不可解的有限呈示群H,再构造LA的一个Mihailova子群MLA(H)和RA的一个Mihailova子群MRA(H);下方即为MLA(H)的56个生成元,其中i=m-5;而当令i=m+1,便可得到MRA(H)的56个生成元:
而27个Sij为(将下述每一Sij中的所有σi换成σi+3,所有σi+1换成σi+4便得到对应的27个Tij,j=1,2,...,27):
2.建立公钥密码体制的核心协议
在本实施例中,协议双方分别是Alice和Bob,
1)Alice选取Bn中一元素g,Alice选取两个元素b1,b2∈LBn作为私钥,Bob选取两个元素d1,d2∈RBn作为私钥;
2)Bob选取两个元素c1,c2∈RBn,计算y=d1c1gc2d2,并将y发送给Alice;
3)Alice选取四个元素a1,a2,b3,b4∈LBn,计算
x=b1a1ga2b2和z=b3a1va2b4=b3a1d1c1gc2d2a2b4,
并将(x,z)发送给Bob;
4)Bob选取两个元素d3,d4∈RBn,计算
w=d3c1xc2d4=d3c1b1a1ga2b2c2d4
和
v=d1 -1zd2 -1=d1 -1b3a1d1c1gc2d2a2b4d2 -1=b3a1c1gc2a2b4
并将(w,v)发送给Alice;
5)Alice计算
u=b1 -1wb2 -1=b1 -1d3c1b1a1ga2b2c2d4b2 -1=d3c1a1ga2c2d4,
并将u发给Bob,
上述协议中的第4)步中,由于d1,d2∈RBn,a1,a2,b3,b4∈LBn,所以d1 -1,d2 -1分别与b3,a1和b4,a2乘法可交换,故得该步骤中最后一个等式。同理得到第5)步中最后一个等式。
3.应用协议
在核心协议的基础上建立如下的应用协议,
建立密钥交换协议的优选实施例:
在核心协议的五个步骤后继续进行如下进程:
6)Alice计算KA=b3 -1vb4 -1=a1c1gc2a2而且Bob计算KB=d3 -1ud4 -1=c1a1ga2c2。
由于a1,a2∈LBn,c1,c2∈RBn,所以a1与c1和a2与c2分别乘法可交换,故Alice和Bob达成共享密钥K=KA=KB。
建立数据加密协议的优选实施例:
设需要加密的明文信息(已编码)为m∈{0,1}k(即长度为k的0-1数串),并设Θ:Bn→{0,1}k是一个由群Bn到明文空间{0,1}k抗碰撞的Hash函数。Alice的公钥是(Bn,LBn,RBn,g,Θ),并选取a1,a2,b1,b2,b3,b4∈LBn,私钥为b1,b2。Bob选取c1,c2,d1,d2,d3,d4∈RBn,并且以d1,d2为私钥。在核心协议的五个步骤后继续进行如下进程:
6)加密:Bob先计算K
B=d
3 -1ud
4 -1=c
1a
1ga
2c
2,然后计算(加密)
并将t作为密文发送给Alice。这里的
是异或(exclusive or)运算。
7)解密:Alice先计算KA=b3 -1vb4 -1=a1c1gc2a2,然后计算(解密)
验证m′=m:由密钥交换协议知KA=KB,所以
建立数字签名协议的优选实施例:
设需要加密的明文信息(已编码)为m,并设Θ:Bn→{0,1}k是一个抗碰撞的Hash函数。Alice的公钥是(Bn,LBn,RBn,g,Θ),并选取a1,a2,b1,b2,b3,b4∈LBn,私钥为b1,b2。Bob选取c1,c2,d1,d2,d3,d4∈B,并且以d1,d2为私钥。在核心协议的五个步骤后继续进行如下进程:
6)签名:Alice计算KA=b3 -1vb4 -1=a1c1gc2a2和S=Θ(mKA),Alice将S作为她对文件m的签名并将(S,m)发送给Bob。
7)验证:Bob计算KB=d3 -1ud4 -1=c1a1ga2c2和S′=Θ(mKB),如果S′=S,Bob则认可S是Alice对文件m的签名,否则,Bob拒绝接受S是Alice对文件m的签名。
一种在核心协议基础上的身份认证协议的优选实施例:
Alice选取Bn中一元素g,四个元素a1,a2,b1,b2∈LBn,一个抗碰撞的Hash函数Θ:Bn→{0,1}k,并计算x=b1a1ga2b2。Alice的公钥是(Bn,LBn,RBn,g,x,Θ),私钥为b1,b2。
认证过程:
设Alice是示证人(prover),Bob是验证人(verifier)。
1)Bob选取六个元素c1,c2,d1,d2,d3,d4∈RBn,私钥为d1,d2。Bob计算
y=d1c1gc2d2和w=d3c1xc2d4
并将(y,w)作为挑战(challenge)一发送给Alice;
2)Alice选取两个元素b3,b4∈LBn,,计算
z=b3a1ya2b4和u=b1 -1wb2 -1=d3c1a1ga2c2d4,
并将(z,u)作为响应(response)发送给Bob;
3)Bob计算v=d1 -1zd2 -1=b3a1c1gc2a2b4,并将v作为挑战二发送给Alice;
4)Alice计算t=Θ(b3 -1vb4 -1)=Θ(a1c1gc2a2)并将t作为承诺(commitment)发送给Bob;
5)Bob t′=Θ(d3 -1ud4 -1)=Θ(c1a1ga2c2),并验证是否t=t′。
如果t=t′,Bob认可Alice的身份,否则拒绝认可。
五、安全性分析
我们仅给出密钥交换协议的安全性即可。
首先,给出群上的三个判定问题的定义。
子群成员问题(subgroup membership problem or generalized wordproblem,简记为GWP):给定群G的一个其生成元集为X的子群H,判定G中任意元素g是否可由X上的字代表,即判定g是否为H中元素。
元素分解搜索问题(decomposition search problem,简记为DSP):设g和h是群G两个元素。已知存在G的两个元素c和d,使得h=cgd。求G的两个元素c′和d′,使得h=c′gd′。
扩展的元素分解搜索问题(generalized decomposition search problem,简记为GDSP):设g和h是群G两个元素,H是G的一个子群。已知存在H的两个元素c和d,使得h=cgd。求H的两个元素c′和d′,使得h=c′gd′。
DSP是十分容易求解的:令c′=g-1,d′=h即可。而GDSP的可判定性则不确定。然而,对于无限非交换群中分解方程式h=cgd(c和d未知),要确定地解出c和d是不可能的。应为人们不知道c和d的值,即使通过求解GDSP问题计算得到的所谓的“解”c′和d′,使得h=c′gd′,也无法确定是否c′=c和d′=d。特别地,如果c和d分别取自于具有不可解的GWP问题的子群C和D,求解者不仅无法确定是否c′=c和d′=d,而且他根本不能确定c′和d′是否分别是C和D的元素。
在核心协议中,攻击方Eve通过公开信息和Alice与Bob的交互式过程能获取的信息如下:
无限非交换群G,G的两个子群A和B,使得对任意a∈A任意的b∈B,有ab=ba,G中一元素g,以及下列G中元素:
y=d1c1gc2d2,x=b1a1ga2b2,z=b3a1d1c1gc2d2a2b4,w=d3c1b1a1ga2b2c2d4,
v=b3a1c1gc2a2b4,u=d3c1a1ga2c2d4
注意,Eve只知道x,y,z,w,u,v,不知道对应的分解表达式。Eve如果能够通过解决GDSP问题而获得c1′,c2′∈B,和a1′,a2′∈A,使得a1′ga2′=a1ga2和c1′gc2′=c1gc2,则由A和B的元素乘法可交换性得
c1′a1′ga2′c2′=c1′a1ga2c1′=a1c1′gc2′a2=a1c1gc2a2=K
所以,Eve需要先获得元素a1ga2和c1gc2。
由于Eve不知道a1ga2和c1gc2,她无法从x剥离掉b1和b2去获得a1ga2,和从y剥离掉d1和d2去获得c1gc2。而Eve知道w=b1ub2和z=d1vd2(但不知b1,b2和d1,d2)。现在即使Eve能解决GDSP问题,解得b1′,b2′∈A,和d1′,d2′∈B,使得b1′ub2′=b1ub2和d1′vd2′=d1vd2,她也无法确定b1′=b1,b2′=b2和d1′=d1,d2′=d2。从而Eve仍然不能从x剥离掉b1和b2去获得a1ga2,和从y剥离掉d1和d2去获得c1gc2。
特别地,在具体实施方案中无限非交换群G取指数n≥12的辫群Bn,A和B分别取Bn的子群LBn和RBn,而私钥b1,b2和d1,d2分别在LBn的Mihailova子群MLA(H)和RBn的Mihailova子群MRA(H)中选取,则在上述Eve的攻击中,她通过解决GDSP问题解得b1′,b2′∈LBn,和d1′,d2′∈RBn,使得b1′ub2′=b1ub2和d1′vd2′=d1vd2,她必须确定b1′=b1,b2′=b2和d1′=d1,d2′=d2,因为b1,b2∈MLA(H),d1,d2∈MRA(H),从而她必须先确定是否b1′,b2′∈MLA(H),以及是否d1′,d2′∈MRA(H)。但是MLA(H)和MRA(H)的GWP问题不可解,故Eve即使借助量子计算系统也无法进行攻击。
六、参数的选取
在一个优选实施例中,辫群Bn的指数n≥12,各协议中的子群A=LBn,B=RBn,a1,a2,c1,c2的选取要满足其乘积a1a2c1c2不小于256比特,私钥b1,b2,d1,d2均不小于256比特,保护层元素b3,b4,d3,d4均不小于128比特。
特别指出,为抗量子计算攻击,建议私钥b1,b2和d1,d2分别在辫群Bn的Mihailova子群MLA(H)和MRA(H)中选取。从而,由于MLA(H)和MRA(H)的GWP的不可解性,正如在安全性分析中所述,即使借助量子计算系统,b1,b2和d1,d2也是不可被攻击的。
以上是对本发明一种建立抗攻击的公钥密码的方法进行了阐述,用于帮助理解本发明,但本发明的实施方式并不受上述实施例的限制,任何未背离本发明原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。