一种基于辫群共轭问题的数字签名方法

文档序号:7550694阅读:143来源:国知局
专利名称:一种基于辫群共轭问题的数字签名方法
技术领域
本发明涉及一种基于辫群的CSP(共轭搜索)问题和CDP(共轭判定)问题间差异的数字签名方法ECSS。本发明涉及到信息安全领域具体说就是签名者如何发布一个带有自己私钥签名文件以便验证者使用签名者的公钥来验证该文件是否为签名者发布的签名文件。
背景技术
现目前广泛使用的数字签名技术是RSA签名体制,它的安全性是建立在大数分解的困难性上的,然而随着计算机处理能力的不断提高和相关的研究逐渐深入,RSA不得不不断的加大模数n位数以确保安全性,从512比特到1024比特到2048比特。由于密钥的位数过长,导致产生大素数和指数计算的计算量都很大,因此RSA的效率不是很高;而如果为了提高效率采用硬件实现,则位数过长导致设备更复杂、成本更高,而且由于硬件实现方式的不可改性,硬件的使用寿命缩短,导致成本的进一步提高。
自从2000年韩国学者Ki Hyoung KO、Sang Jin Lee在CRYPTO 2000提出了一种基于辫群共轭问题的困难性的密钥交换协议和公钥加密体制以来(K.H.Ko,S.J.Lee,J.H.Cheon,J.W.Han,J.S.Kangand C.S.Park,New Public-KeyCrytosystem Using Braid Groups,Proc.of Crypto 2000,LNCS 1880,Springer-Verlag(2000)166 183.),辫群公钥密码体制得到了广泛的研究。然而它的数字签名体制一直没有一个很好的解决方案。直到2003年,韩国学者KiHyoung KO、DooHo Cho提出并实现了两种基于辫群共轭问题的签名体制(KiHyoung Ko and Doo HoChoi and Mi Sung Cho and Jang Won Lee New Signature Scheme Using ConjugacyProblem Cryptology ePrint ArchiveComplete Contents 2003/168)SCSS以及CSS。我们简要介绍一下3中的两种签名体制,SCSS以及CSS。
简单共轭签名体制SCSS公共参数辫群Bn散列函数h密钥生成公钥一个CSP问题为困难问题的共轭对(x,log2n!x′)∈Bn×Bn,私钥a∈Bn,满足x′=a-1xa;签名对于一个给定的比特串消息m,m的签名sign(m)=a-1ya,其中y=h(m)。
验证一个签名sign(m)是合法的当且仅当sign(m)~y,x′sign(m)~xy然而由于攻击者可以获得很多对的(yi,a-1yia),从而可能造成私钥a的秘密信息泄漏,即k-CSP问题。为了克服以上问题,他们提出了CSS签名体制。
共轭签名体制CSS公共参数辫群Bn散列函数h密钥生成公钥一个CSP问题为困难问题的共轭对(xx′)∈Bn×Bn,私钥a∈Bn,满足x′=a-1xa;签名对于一个给定的消息m,随机选择一个随机化因子b∈Bn,计算α=b-1xb,y=h(m‖α),β=b-1yb,γ=b-1aya-1b,消息m的签名sign(m)=(α,β,γ)。
验证消息m的签名sign(m)=(α,β,γ)为合法签名当且仅当满足α~x,β~γ~y,αβ~xy,αγ~x’yCSS签名体制由于引入了随机化因子b,因此很好的克服了k-CSP问题。但是可以发现,由于增加了更多的计算和数据,因此整个效率明显下降。

发明内容
本发明所要解决的技术问题是为了克服了现有技术中的容易受到针对大数分解攻击以及产生大素数消耗计算资源过大的缺点,解决现有技术中存在的产生密钥和签名验证时间过长的问题,提供一种基于辫群共轭问题的高效数字签名方法,不但可以克服存在SCSS中的k-CSP问题,而且相对CSS,计算量和数据都将大大的减少,提高了整个签名体制的效率。
本发明所述的基于辫群共轭问题的数字签名方法,包含以下步骤假设签名方为S,签名验证方为V,需要签名的消息为m,系统参数辫群Bn(l),Bn(l)的左子群LBm(l),Bn(l)的右子群RBn-1-m(l),辫群公钥对间的距离d,从比特串{0,1}*到辫群Bn(l)的单向散列函数h,用于CDP判定算法BCDA的素数p和判定的点的个数r。
首先签名方对需要签名的消息进行如下操作1)签名方S随机生成一个辫元x∈LBm(l);2)签名方S使用RSSBG(x,d)生成(x′,x,a)∈Bn(l)×LBm(l)×Bn(l),使得x’=a-1xa;将共轭对(x’,x)作为S的公钥,共轭元a作为S的私钥;RSSBG(x,d)算法简单描述如下(2-1)选定系统参数n,m,l,d.
(2-2)随机生成一个辫元x属于集合LBm(l).
(2-3)随机选择一个辫元b属于集合Bn(5l).
(2-4)计算y=b-1xb(2-5)随机产生一个比特,如为0,则计算y=cycling(y)=a-1xa,否则计算y=decycling(y)=a-1xa(2-6)判断y是否属于集合SSS(x)以及l(y)≤d是否都成立,若都成立则输出(x,y)为公钥,a为私钥;若有一个不成立,则转入(2-5)进一步生成。
3)签名方S对需要签名的消息m首先使用散列函数h得到y=h(m)∈Bn(l),然后随机生成一个辫元b∈RBn-1-m(l),然后使用自己的私钥a和产生的随机辫元b对消息m签名得到Sign(m)=a-1byb-1a;有m散列得到h(m)的成立流程简单描述如下(3-1)选择一个普通散列函数H,其输出H(m)长度为l[log2n!](可以截取),然后将H(m)一次等分为l段R1‖R2‖…‖Rl。
(3-2)一次将Ri对应为置换辫元Ai,然后计算h(m)=A1*A2…A1即为所求的h(m).
4)签名者将消息m、公钥(x’,x)、m的签名Sign(m)发送给签名验证方V;签名验证方V收到签名者发送的信息后进行如下操作5)首先利用系统参数散列函数h对消息m作用计算得到y=h(m);6)判定sign(m)~y是否成立,若不成立,则sign(m)不是一个合法签名;若成立,则转步骤7);7)判定sign(m)x’~xy是否成立,若不成立,则sign(m)不是一个合法签名;若成立,则sign(m)为消息m的合法签名。
判定两个辫元a,b是否共轭的判定算法BCDA简单叙述如下(6-1)输入辫元a,b,选择好系统参数p、r并计算其特征Pa(t)以及Pb(t)。
(6-2)随机选择r个不同的随机数ti(I=1,2…r),并计算Pa(ti)=Pb(ti)都成立。若有一个不成立,则a~b不成立;若都成立,则转(6-3)。
(6-3)计算Maxinf(a)=Maxinf(b)是否成立,若不成立,则a~b不成立;若成立,则转(6-4)。
(6-4)计算Minsup(a)=Minsup(b)是否成立,若不成立,则a~b不成立;若成立,则转则a~b不成立。
由于本发明的数字签名方法,有如下优点1由于加入了随机化因子b,使得针对每个消息m,共轭对(sign(m),h(m))的共轭元为b-1a,因此每次的共轭元都不相同,从而掩盖了是要a的信息泄漏,避免了在现有技术中SCSS(简单共轭签名体制)签名体制中单一使用私钥a作为共轭对(sign(m),h(m))的共轭元的k-CSP问题。可参看表1。
2本方法相对于现有技术中的CSS(共轭签名体制)数字签名方法在不降低安全性的前提下,大大节省了计算时间,提高了效率,可参看表1。

表13种签名方法比较3本发明相对于传统的RSA签名方法使用完全不同体系的数学基础,不需要产生大素数,大大节省了密钥的位数和签字的位数,节约了计算资源,提高了签名验证小效率。在现有技术中给出的CSS签名方法在Pentium III 866MHz处理器上得到的数据为表2所示(默认设置的参数l=3,d=4,231<p<232,r=3)


表2 CSS签名方法的试验数据表而本方法相对于CSS签名方法签名时间和验证时间都将大大减少,因此相对RSA有效率更高的优点。


图1本发明基于辫群共轭问题的数字签名方法的步骤主流程图。
图2基于辫群共轭问题的数字签名方法的密钥生成的子流程图。
图3单向散列函数h的处理流程图。
图4CDP问题判定算法BCDA处理流程图。
图5签名方对消息m签名的流程图。
图6验证方对消息签名的验证流程图。
具体实施例方式
由于本发明涉及到一系的数学原理,首先将本发明的数学背景阐述如下辫群Bn(n为群参数)是由Artin生成元σ1,σ2,……,σn-1生成的有限表示的无限群,并且它的生成元σ1,σ2……σn-1满足以下关系σiσj=σjσi(|i-j|>1,1<i,j<n) (1)σiσjσi=σjσiσj(|i-j|>1,1<i,j<n) (2)由左边m个生成员σ1,σ2……σm-1生成的群叫Bn的左子群,记做LBm;而由右边的n-1-m个生成元σm+1,σm+2……σn-1生成的子群叫Bn的右子群,记做RBn-1-m。由生成元关系(1)显然可知任取(x,y)∈LBm×RBn-1-m,有xy=yx。对于一个辫元b,若他只包含σ1,σ2……σn-1而不含σ1,σ2……σn-1的逆元,则称b为一个正元。若对于正元b、a,有一个正元或单位元c使得b=ac,则称a为b的子元。辫元Δ=(σ1σ2…σn-1)(σ1σ2…σn-2)…(σ1σ2)(σ1)称为辫群Bn的本元。Δ满足Δb=τ(b)Δ,τ(σi)=σn-i。其中Δ的子元称作置换元,他们组成的集合和对称群∑n的n!个元素一一对应。因此Δ的子元可用一个置换π{0,1,...,n-1}→{0,1,...,n-1}来表示。任何一个辫元b都存在唯一的一个标准表示形式;b=Δuπ1π2…πi,其中πi为一个置换元。b的几个长度定义如下inf(b)=u,sup(b)=u+l,l(b)=1。
在一个辫群Bn中,如果对于两个辨元x,y∈Bn,存在一个辨元a∈Bn使得y=a-1xa,则称辨元x,y共轭,记做x~y,而辨元a称作共轭对(x,y)的共轭元,显然“~”是一种等价关系。辫群的基本共轭问题包括共轭判定问题CDP问题和共轭元搜索问题CSP问题。所谓CDP问题就是指任意给出辨元对(x,y)∈Bn×Bn,判断x~y是否成立。根据群表示理论,对于任何群G,总存在一个从G到某一个环的同态,该同态对共轭关系保持不变,因此CDP问题对于任何群在计算上总是可解决的。在现有的基于辫群共轭问题的签名体制中给出了一个算法可以在多项式时间内以任意高的概率解决CDP问题。所谓CSP问题就是指对于一个给定的共轭辨元对(x,y)∈Bn×Bn(x~y),找到一个辨元a∈Bn,使得y=a-1xa。对于辫群的来说,目前不存在一个有效的算法可以在多项式时间内解决CSP问题,因此对随机选取的一共轭对(x,y)∈Bn×Bn,他们的CSP问题将以很高的概率为一个困难问题。而本文提出的数字签名方法的安全性是建立在MCSP问题的困难性上的,在现有的基于辫群共轭问题的签名体制中证明了MCSP问题与CSP问题的困难等价性。所谓MCSP问题对他的描述如下已知辫群Bn的一个共轭对(x,x’)∈Bn×Bn,和一个辨元y∈Bn问题找到一个y’∈Bn满足y~y’xy~x’y’下面对本发明的数字签名的方法的数学模型做一个简介公共参数辫群Bn、左辫群LBm、右辫群RBn-1-m、散列函数h、其中Bn的生成元为σ1σ2……σn-1,左辫群LBm为生成元σ1,σ2……σm-1生成的Bn的子群,右辫群RBn-1-m为生成元σm+1,σm+2……σn-1生成的Bn的子群。
密钥生成公钥一对CSP问题为困难问题的共轭对(x,x‘)∈LBm×Bn私钥a∈Bn满足x‘=a-1xa;签名对于一个给定的消息m,首先计算y=h(m),然后随机选取一个秘密随机化因子b∈RBn-1-m,消息m的签名sign(m)=a-1byb-1a(见图5)验证对于消息m签名sign(m)为合法签名当且仅当sign(m)~y,x’sign(m)~xy(见图6)对于一个合法的签名sign(m),由于sign(m)=a-1byb-1a=(b-1a)-1yb-1a,故sign(m)~y成立;而x‘sign(m)=a-1xa a-1byb-1a=a-1xbyb-1a,由于x∈LBm,b∈RBn-1-m,因此xb=bx,从而有x’sign(m)=a-1xa a-1byb-1a=a-1xbyb-1a=a-1bx yb-1a=(b-1a)-1(xy)(b-1a),从而x’sign(m)~xy。因此一个合法的签名总是可以通过验证的。
而对于一个攻击者来说,他要想伪造一个消息m的签名,所能知道的只包括公钥(x,x’),和y=h(m),要想伪造的签名sign(m)满足sign(m)~y、x’sign(m)~xy,显然等价于解决MCSP问题,因此是不能做到的。
而对于可以截获分析的消息签名对(yi,b-1ayia-1b),由于加入了随机化因子b,可以很好的避免k-CSP问题。所谓k-CSP问题描述如下已知k对共轭对(x1,x1’),……,(xk,xk’)∈Bn×Bn且xi’=a-1xia(i=1…k)问题找到b∈Bn,使得xi’=b-1xib(i=1,2……k)。
以上是对本发明签名方法的数学描述,然而由于辫群是无限群,为了用计算机实现,需要设置系统参数。首先设定系统参数n,l,d(推荐l=3,d=4)。令Bn(l)={b∈Bn|0≤inf(b),sup(b)≤l},则|Bn(l)|<(n!)1为有限的。同理LBm(l)={b∈LBm|0≤inf(b),sup(b)≤l},RBn-1-m(l)={b∈RBn-1-m|0≤inf(b),sup(b)≤l}。对于一个辫元采用目前已知在计算机上计算速度最快的Burau表示,即用一个Laurent多项式环Z[t,t-1]上的(n-1)×(n-1)阶矩阵来表示,具体替换原则如下做如下的替换 一个属于Bn(l)辫元转化为一个Burau表示的计算复杂度为O(ln),有了以上表示,与辫群内的群运算和求逆运算就转化为矩阵的乘法和求逆运算,他们都有着很有效的数学工具可以解决,它们的计算复杂度都为O(ln)。
现在介绍一下CDP问题的判定算法BCDA(见图4)。任何一个非交换群,都存在一个从群到一个环的函数,该函数对于共轭对的函数值相等,把该函数叫做特征。定义一个从Bn(l)到Laurent多项式环Z[t,t-t]的一个函数g→det(φ(g)-I),其中g∈Bn(l),Φ(g)为g的Burau表示,I为单位矩阵,det()为求行列式的符号,显然该函数为Bn(l)的特征。把det(Φ(g)-I)叫做辫元g的亚历山大多项式,记做Pg(t),显然对于一个g∈Bn(l),它的亚历山大多项式Pg(t)的秩(Pg(t))≤l(n-1)n/2。判断两个辫元a,b∈Bn(l)是否共轭,做如下的亚历山大测试选定系统参数素数p和正整数r,在有限域Z/pZ上任意选取r个不相等的值t1,t2…tr,若对于所有的ti(i=1,2…r)都有Pa(ti)=Pb(ti),则输出1,否则输出0。由于(Pa(t)-Pb(t))≤l(n-1)n/2,所以方程Pa(t)-Pb(t)=0最多只有l(n-1)n/2个根。所以概率 显然随着p和r的增加,这个概率可以任意的小。亚历山大测试的计算复杂度为O(rn3)。
Maxinf-Minsup测试。对于辫元的x∈Bn(l),定义Maxinf(x)=Max{inf(y)|y~x,y∈Bn(l)},Minsup(x)=Min{sup(y)|y~x,y∈Bn(l)}。所谓Maxinf-Minsup测试,即对辫元a,b∈Bn(l),判断Maxinf(a)=Maxinf(b),Minsup(a)=Minsup(b)是否都成立,若都成立,则输出1,否则输出0。下面给出计算Maxinf(x)和Minsup(x)的算法描述。首先定义两个操作,若x=Δuπ1π2…π1,cycling(x)=(τu(π1))-1xτu(π1),decycling(x)=π1-1xπ1。对x循环做cycling(分别decycling)操作,直到inf值增加(分别sup值减少),然后以当前得到的元素为新元素,重复该循环操作,且循环次数计数重新设置为1;若循环次数计数直到m=n(n-1)/2都inf值不再增加(分别sup值不再减少),则当前的元素的inf值即为Maxinf(x)(分别Minsup(x)。该算法的理论分析请参看引文J.S.Birman,K.H.Ko and S.J.Lee,The in.mum,supremum and geodesic length of a braid conjugacy class,to appear inAdvances in Mathematics.。该算法的算法复杂度为O(l2nlog n)。
如果辫元a,b通过了亚历山大测试和Maxinf-Minsup测试,则可以判定a~b成立,只有一种例外情况,即a~b-1。然而这对于随机选择的a、b来说,是几乎不可能出现的,而对于攻击者同样不能利用这种例外情况,分析见引文K.H.Ko,S.J.Lee,J.H.Cheon,J.W.Han,J.S.Kang and C.S.Park,New Public-Key Crytosystem Using Braid Groups,Proc.of Crypto 2000,LNCS 1880,Springer-Verlag(2000)166 183。
对于一个从比特串{0,1}*到辫群Bn(l)的散列函数h,可构造如下(见图3),首先我们使用一个普通散列函数将{0,1}*压缩得到固定长度的比特串{0,1}N,其中N=[llog2n!]。然后将{0,1}N分为l段r1‖r2‖…‖r1,每一段的长度都为[log2n!]。由于Bn(l)的置换元有n!个,故可在置换元和整数集
间建立一个一一映射。因此再依次将rk转化为
间某一个整数,再将这个整数和一个置换元Pk,最后得到h(m)=Πk=11Pk.]]>为了产生一个伪随机辫元,首先产生一个伪随机序列{0,1}N,然后将{0,1}N分为1段r1‖r2‖…‖r1,每一段的长度都为[log2n!]。由于Bn(l)的置换元有n!个,故可在置换元和整数集
间建立一个一一映射。因此再依次将rk转化为
间某一个整数,再将这个整数和一个置换元Pk,最后得到所需要的 为了安全的产生密钥,先定义一些概念,对于一个辫元x∈Bn(l),定义他的super summit集SSS(x)={y∈Bn(l)|y~x,inf(y)=Maxinf(x),sup(y)=Minsup(x)}。整个签名算法的安全强度为|SSS(x)|,约为 若y~x,定义x、y间的距d(x,y)=min{l(b)|y=b-1ab},然后再定义s(x,d)={y∈SSS(x)|d(x,y)≤d}。选取x’∈s(x,d),则共轭对(x’,x)的CSP问题为困难问题,可以作为密钥,下面介绍算法RSSBG(x,d)=(x’,a)用以随机产生x’∈s(x,d)且x’=a-1xa,从而得到安全公钥(x’,x)和私钥a(见图2)1随机产生一个辫元b∈Bn(5l),计算b-1xb。
2随机选择对b-1xb一系列的cycling或者decycling操作得到x’,直到x’属于SSS(x)为止(不会超过n2次操作),x’=a-1xa。
3判断l(a)≤d成立,若成立,则x’和a即为所求,若不成立,则转1。
有了以上的数学基础和算法描述,再结合附图对技术方案的实施作进一步的详细描述,本发明用软件实现如下(为了提高速度,算法BCDA也可用硬件实现)选定系统参数公开辫群参数n,l,d,p(推荐n为20~30间,l=3,d=4,p为231~232间),以及左辫群大小m(推荐n-m为4左右)。
选定用于散列消息的散列函数h;参考图1所示的流程,签名方S密钥产生1使用算法PBG随机产生一个辫元x∈LBm;2使用算法RSSBG(x,d)得到公钥(x’,x)和私钥a。
签名1对需要签名的消息m应用散列函数h得到y=h(m);2随机产生一个辫元b x∈a-1byb-1a,然后计算byb-1;3使用私钥,计算签名sign(m)=a-1byb-1a。
验证方Va)对需要验证签名的消息m应用散列函数h得到y=h(m);b)使用算法BCDA判定sign(m)~y是否成立,若不成立,则验证失败,结束。若成立,转3;c)计算x’sign(m)和xy;使用算法BCDA判定x’sign(m)~xy是否成立,若成立,则验证通过,结束,否则验证失败,结束。
权利要求
1.一种基于辫群共轭问题的数字签名方法,其特征在于,所述方法包括以下处理过程签名方为S,签名验证方为V,需要签名的消息为m,系统参数辫群Bn(l),Bn(l)的左子群LBm(l),Bn(l)的右子群RBn-1-m(l),辫群公钥对间的距离d,从比特串{0,1}*到辫群Bn(l)的单向散列函数h,用于CDP判定算法BCDA的素数p和判定的点的个数r;签名方对需要签名的消息进行如下操作1)签名方S随机生成一个辫元x∈LBm(l);2)签名方S使用RSSBG(x,d)生成(x’,a)∈Bn(l)×Bn(l),使得x’=a-1xa;将共轭对(x’,x)作为S的公钥,共轭元a作为S的私钥;3)签名方S对需要签名的消息m首先使用散列函数h得到y=h(m)∈Bn(l),然后随机生成一个辫元b∈RBn-1-m(l),然后使用自己的私钥a和产生的随机辫元b对消息m签名得到Sign(m)=a-1byb-1a;4)签名者将消息m、公钥(x’,x)、m的签名Sign(m)发送给签名验证方V;签名验证方V收到签名者发送的信息后进行如下操作5)首先利用系统参数散列函数h对消息m作用计算得到y=h(m);6)判定sign(m)~y是否成立,若不成立,则sign(m)不是一个合法签名;若成立,则转步骤7);7)判定sign(m)x’~xy是否成立,若不成立,则sign(m)不是一个合法签名;若成立,则sign(m)为消息m的合法签名。
2.根据权利要求1所述的基于辫群共轭问题的数字签名方法,其特征在于,所述步骤2)生成公钥和私钥具体包括以下处理过程(2-1)选定系统参数n,m,l,d;(2-2)随机生成一个辫元x属于集合LBm(l);(2-3)随机选择一个辫元b属于集合Bn(5l);(2-4)计算y=b-1xb;(2-5)随机产生一个比特,如为0,则计算y=cycling(y)=a-1xa,否则计算y=decycling(y)=a-1xa;(2-6)判断y是否属于集合SSS(x)以及l(y)≤d是否都成立,若都成立则输出(x,y)为公钥,a为私钥;若有一个不成立,则转入(2-5)进一步生成。
3.根据权利要求1所述的基于辫群共轭问题的数字签名方法,其特征在于,所述散列矩阵的处理过程是(3-1)选择一个普通散列函数H,其输出H(m)长度为l[log(2,n!)](可以截取),然后将H(m)一次等分为1段R1‖R2‖…‖R1;(3-2)一次将Ri对应为置换辫元Ai,然后计算h(m)=A1*A2…A1即为所求的h(m)。
4.根据权利要求1所述的基于辫群共轭问题的数字签名方法,其特征在于,所述的步骤6)、7)中利用算法BCDA判定共轭的处理过程是(4-1)输入辫元a,b,选择好系统参数p、r并计算其特征Pa(t)以及Pb(t);(4-2)随机选择r个不同的随机数ti(I=1,2…r),并计算Pa(ti)=Pb(ti)都成立;若有一个不成立,则a~b不成立;若都成立,则转(4-3);(4-3)计算Maxinf(a)=Maxinf(b)是否成立,若不成立,则a~b不成立;若成立,则转(4-4);(4-4)计算Minsup(a)=Minsup(b)是否成立,若不成立,则a~b不成立;若成立,则转则a~b不成立。
5.根据权利要求1所述的基于辫群共轭问题的数字签名方法,其特征在于,所述n取20~30间,l=3,d=4,p为231~232间,以及左辫群大小m比n小4。
全文摘要
本发明公开了一种基于辫群共轭问题的数字签名方法,通过加入随机化因子b,使得针对每个消息m,共轭对(sign(m),h(m))的共轭元为b
文档编号H04L9/32GK1545242SQ20031011360
公开日2004年11月10日 申请日期2003年11月13日 优先权日2003年11月13日
发明者勇 丁, 丁勇, 陈剑勇, 李亚晖 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1