组密钥初始分配中的隐私保护方法

文档序号:7839962阅读:169来源:国知局

专利名称::组密钥初始分配中的隐私保护方法
技术领域
:本发明涉及一种组密钥初始分配中的隐私保护方法,具体是一种基于椭圆曲线ElGamal密码体制、有向签名机制和零知识证明机制的,针对组密钥的签发者和首次加入群组的申请者的隐私信息进行有效保护的方法,使得除了首次加入群组的申请者以外,任何组密钥消息的接收者无法获知组密钥的签发者和组密钥的签发对象,可用于网络群组通信环境下组密钥初始分配过程中存在一个或者多个组密钥签发者的情景,属于信息安全领域。
背景技术
:在网络群组通信环境下,现已部署实施的基于椭圆曲线ElGamal密码体制的组密钥初始分配方法是通过数字签名机制验证组密钥消息的有效性。首先,组密钥的签发者用首次加入群组的申请者的公钥对组密钥消息进行加密,用组密钥的签发者的私钥对组密钥消息进行数字签名,将消息密文和数字签名一起发送首次加入群组的申请者。然后,首次加入群组的申请者用首次加入群组的申请者的私钥解密消息密文获得组密钥消息,用组密钥的签发者的公钥验证组密钥消息签名的有效性。目前现有的组密钥初始分配方法中没有考虑对组密钥的签发者和首次加入群组的申请者的隐私信息进行有效的保护,使得除了首次加入群组的申请者以外,任何组密钥消息的接收者只要拥有组密钥的签发者的公钥就可以验证组密钥消息签名的有效性,从而获知谁是组密钥的签发者和谁是组密钥的签发对象。本发明在组密钥初始分配中引入有向签名机制,使得除了首次加入群组的申请者以外,任何组密钥消息的接收者无法获知组密钥的签发者和组密钥的签发对象。
发明内容本发明的目的在于提供一种组密钥初始分配过程中对组密钥的签发者和首次加入群组的申请者的隐私信息进行有效保护的方法。该方法充分利用椭圆曲线ElGamal密码体制安全性高和资源消耗少的特点,通过关联随机数绑定加密和签名的方法增加安全的复杂性,通过引入有向签名机制确保只有首次加入群组的申请者才可以验证组密钥消息签名的有效性,从而有效地保护组密钥的签发者和首次加入群组的申请者的隐私信息,使得除了首次加入群组的申请者以外,任何组密钥消息的接收者无法获知组密钥的签发者和组密钥的签发对象,资源消耗小,方便部署实现。为实现上述目的,本发明采取以下技术方案。整个技术方案包括组密钥签发、组密钥验证和第三方证明三个阶段。首先,在组密钥签发阶段,组密钥的签发者用首次加入群组的申请者的公钥对组密钥消息进行加密,用组密钥的签发者的私钥和首次加入群组的申请者的公钥对组密钥消息进行有向签名,将消息密文和签名一起发送首次加入群组的申请者。然后,在组密钥验证阶段,首次加入群组的申请者用首次加入群组的申请者的私钥对消息密文进行解密,用组密钥的签发者的公钥和首次加入群组的申请者的私钥对组密钥消息签名进行验证。最后,在第三方证明阶段,首次加入群组的申请者用零知识证明机制在任何4需要的时候向第三方证明组密钥消息签名的有效性,同时不向第三方透漏任何隐私信息。本发明技术方案描述中使用的基础标识符包括Fp:有限域,满足Fp二(0,1,2,...,p-lhp为大于3的素数;E(Fp):定义在仿射平面上的3次方程E:y2三x3+ax+b(modp)的所有解与无穷远点0的并集,记作E(Fp)={(x,y)|y2=x3+aX+b,(x,y)GFp*Fp}U{0};a,b:椭圆曲线方程的参数,满足a,bGFp,4a3+27b2裤0(modp);n:椭圆曲线E(FP)上的生成元P的一个素数阶,是满足nP=0的最小整数;P:椭圆曲线E(Fp)上的生成元;dA:组密钥签发者的私钥,满足dAG[1,n-1];A:组密钥签发者的公钥,满足A=dAP(modp);4:首次加入群组的申请者的私钥,满足4G[l,n-l];B:首次加入群组的申请者的公钥,满足B=dBP(modp);、,k2,k,w:随机数;m:组密钥消息。整个技术方案包括组密钥签发、组密钥验证和第三方证明三个阶段。1.组密钥签发阶段组密钥签发阶段包括以下具体步骤1.1组密钥的签发者随机选择两个整数、和k2,满足1《、<n,1《k2<n,、禾口n互素,k2禾口n互素;n是椭圆曲线E(Fp)上的生成元P的一个素数阶,是满足nP=0的最小整数;有限域Fp上的椭圆曲线E(Fp)是定义在仿射平面上的3次方程E:y2ex3+ax+b(modp)的所有解与无穷远点0的并集,记作E(Fp)={(x,y)Iy2=x3+aX+b,(x,y)GFp*Fp}U{0},其中p为大于3的素数,参数a,bG有限域Fp={o,l,2,...,p-lh满足4a3+27b2—O(modp);1.2组密钥的签发者计算点G=(k「k2)P,点&=(k「k2)B=(Xl,y》,点R2=、B=(x2,y2),参数巧=(modn),参数r2=x2(modn);如果巧=0或者r2=0,则返回步骤1.1;B是首次加入群组的申请者的公钥,满足B=dBP(modp),dB是首次加入群组的申请者的私钥,满足4G[l,n-l],mod是数学模运算;有限域Fp上的椭圆曲线E(Fp)的运算包括点的加法和点的数乘点的加法令P"P2GE(Fp),Pi=(Xl,y》,P2=(x2,y2),则R==(x3,y3)GE(Fp),其中x3<formula>formulaseeoriginaldocumentpage5</formula>当P工^P2时,入=(y厂y》/(x厂x》;当P工=P2时,A=(3Xl2+a)/(2y2);点的数乘令p二(x,y)半0,k是整数,则kP二(x,y)+(x,y)+...+(x,y)的k_l次加法;1.3组密钥的签发者计算组密钥消息密文c=n^巧和组密钥消息签名s三k2—乂m-dAr2)(modn);如果s=O,则返回步骤1.1;m是组密钥消息,《是组密钥签发者的私钥,满足《G[1,n-l],A是组密钥签发者的公钥,满足A=dAP(modp);1.4组密钥的签发者发送{c,G,R2,s}给首次加入群组的申请者。2.组密钥验证阶段组密钥验证阶段包括以下具体步骤2.1首次加入群组的申请者验证点G和点R2=(x2,y2)是否是椭圆曲线E(Fp)上的点;如果点G或者点I^不是椭圆曲线E(Fp)上的点,则终止本程序执行;计算参数1~2=x2(modn),验证参数r2和签名8是否满足1~2G[l,n-l],sG[1,n-l];如果不满足,则终止本程序执行;2.2首次加入群组的申请者计算点&=dBG=(Xl,y》,参数巧=Xl(modn);2.3首次加入群组的申请者解密组密钥消息密文m=cr「1;2.4首次加入群组的申请者计算点V:=r2A+dB—1sR2_sG和点V2=mP;2.5首次加入群组的申请者验证是否满足K=V2;如果满足,则接收组密钥消息;如果不满足,则终止本程序执行。3.第三方证明阶段第三方证明阶段包括以下具体步骤3.1首次加入群组的申请者计算点V=dB-1sR2和点U=dBV,发送{m,G,R2,S,V}给第三方;如果使用的是可信的通信信道,首次加入群组的申请者明文传送组密钥消息m;如果使用的是不可信的通信信道,首次加入群组的申请者与第三方协商加密传送组密钥消息m;3.2第三方计算点=r2A+V_sG和点V2=mP,其中参数r2=x2(modn),点R2=(x2,y2),验证是否满足K=V2;如果不满足,终止本程序执行;如果满足,则计算点U=SR2;3.3首次加入群组的申请者随机选择一个整数k,kG[1,n-1],计算点E工=kV和点E2=kP,发送E丄和E2给第三方;3.4第三方随机选择一个整数"发送给首次加入群组的申请者;3.5首次加入群组的申请者计算v=k_dB",发送v给第三方;3.6第三方验证是否满足=vV+"U和E2=vP+"B;如果满足,则第三方验证成功;如果不满足,则第三方验证失败。本发明方法的整个程序存在于网络群组通信的整个过程中,可以不断重复执行。本发明提出的一种组密钥初始分配中的隐私保护方法,充分利用了椭圆曲线ElGamal密码体制安全性高和资源消耗少的特点,通过关联随机数绑定加密和签名的方法增加安全的复杂性,通过引入有向签名机制确保只有首次加入群组的申请者才可以验证组密钥消息签名的有效性,从而有效地保护组密钥的签发者和首次加入群组的申请者的隐私信息,使得除了首次加入群组的申请者以外,任何组密钥消息的接收者无法获知组密钥的签发者和组密钥的签发对象,资源消耗小,方便部署实现,达到了隐私保护的目的。具体实施例方式本发明以一个小尺寸的具体实施为例展示本发明的具体实施方式,尺寸选择越大则安全性越高。系统参数选择椭圆曲线E:y2三x3+2x+24(mod97),其中a=2,b=24,p=97椭圆曲线的生成元P=(2,6)生成元P的阶数n=103组密钥消息m=5组密钥签发者的私钥dA=3组密钥签发者的公钥:A=dAP(modp)=3(2,6)(mod97)=(69,61)首次加入群组的申请者的私钥dB=4首次加入群组的申请者的公钥:B=dB'P(modp)=4(2,6)(mod97)=(59,50)本发明具体实施时包括组密钥签发、组密钥验证和第三方证明三个阶段。si.组密钥签发阶段组密钥签发阶段包括以下具体步骤si.1组密钥的签发者随机选择两个整数、=7和k2=8,满足1《、=7<n=103,1《k2=8<n=103,、和n的最大公约数gcd(k"n)=gcd(7,103)=1,k2和n的最大公约数gcd(k2,n)=gcd(8,103)=l,表明、和n互素,k2和n互素;si.2组密钥的签发者计算G=(k「k2)P=(mod((k「k2),n))P=(mod((7-8),103))(2,6)=102(2,6)=(2,91)R丄=(k「k2)B=(mod((k「k2),n))B=(mod((7-8),103))(59,50)=102(59,50)=(59,47)=(Xl,yi)R2=、B=7(59,50)=(13,93)=(x2,y2)巧=x丄(modn)=59(mod103)=59r2=x2(modn)=13(mod103)=13mod((k「k2),n)是(k「k2)模n运算;si.3组密钥的签发者计算组密钥消息密文c=mri=559=295和组密钥消息签名s三k2—1(m-dAr2)(modn);s=mod((invmodn(k2,n)(m_dAr2)),n)=mod((invmodn(8,103)(5-313)),103)=mod(13(5-313),103)=73invmodn(k2,n)是k2模n求逆运算,运算结果为k2—1;sl.4组密钥的签发者发送{c,G,R2,s}={295,(2,91),(13,93),73}给首次加入7群组的申请者。s2.组密钥验证阶段组密钥验证阶段包括以下具体步骤s2.1首次加入群组的申请者验证点G=(2,91)和点R2=(13,93)=(x2,y2)是否是椭圆曲线E(Fp)上的点;如果点G或者点I^不是椭圆曲线E(Fp)上的点,则终止本程序执行;计算参数r2=x2(modn),验证参数r2和签名s是否满足r2G[1,n-l],sG[1,n-1];如果不满足,则终止本程序执行;将点G=(2,91)代入椭圆曲线方程E:y2三x3+2x+24(mod97)进行验i正:y2(modp)=912(mod97)=36x3+2x+24(modp)=23+22+24(mod97)=36(mod97)=36将点R2=(13,93)代入椭圆曲线方程E:y2三x3+2x+24(mod97)进行验证y2(modp)=932(mod97)=16x3+2x+24(modp)=133+213+24(mod97)=2247(mod97)=16验证结果表明点G二(2,91)和点12=(13,93)是椭圆曲线E(Fp)上的点;计算参数1~2=x2(modn)=13(mod103)=13,验证结果表明r2=13G[l,n-l],s=73G[1,n-l];s2.2首次加入群组的申请者计算R丄=dBG=4(2,91)=(59,47)=(Xl,y》巧=x丄(modn)=59(mod103)=59;S2.3首次加入群组的申请者解密组密钥消息密文m=c.r卩1=29559—1=5;S2.4首次加入群组的申请者计算V丄=r2A+dB—1sR2_sG=r2A+invmodn(dB,n)sR2—sG=13(69,61)+invmodn(4,103)73(13,93)-73(2,91)=13(69,61)+2673(13,93)-73(2,91)=13(69,61)+73(26(13,93)-(2,91))=(64,28)+73*((74,79)-(2,91))=(64,28)+73(74,83)=(64,28)+(62,27)=(44,79)V2=mP=5(2,6)=(44,79);s2.5首次加入群组的申请者验证是否满足^=V2;如果满足,则接收组密钥消息;如果不满足,则终止本程序执行;验证结果表明K=、,接收组密钥消息。S3.第三方证明阶段第三方证明阶段包括以下具体步骤s3.1首次加入群组的申请者计算V=dB—1sR20117]=invmodn(dB,n)sR20118]=i扁odn(4,103)73(13,93)0119]=2673(13,93)0120]=mod(2673,103)(13,93)0121]=44(13,93)0122]=(59,47)0123]U=dBV=4(59,47)=(32,78)0124]发送{m,G,R2,s,V}={5,(2,91),(13,93),73,(59,47)}给第三方;0125]26*73*(13,93)=mod(2673,103)(13,93)是因为运算是在有限域Fp内进行,n二103是椭圆曲线E(Fp)的生成元P的阶数;0126]s3.2第三方计算点=r2A+V_sG和点V2=mP,验证是否满足V丄=V2;如果不满足,则终止本程序执行;如果满足,则计算点U=sR2;0127]=r2A+V-sG0128]=13(69,61)+(59,47)_73(2,91)0129]=(64,28)+(59,47)-(24,92)0130]=(44,79)0131]V2=mP0132]=5(2,6)0133]=(44,79)0134]验证结果表明V!=V2,计算点U=sR2=73(13,93)=(32,78);0135]s3.3首次加入群组的申请者随机选择一个整数k=9G[1,n-l],计算点E工=kV=9(59,47)=(17,11)和点E2=kP=9(2,6)=(18,13),发送E丄=(17,11)和E2=(18,13)给第三方;0136]S3.4第三方随机选择一个整数"s3.5首次加入群组的申请者计算v=k-dBco(modn)=9-411(mod103)=9-44(mod103)=68(mod103)=68发送v=68给第三方;s3.6第三方验证是否满足=v三方验证成功;如果不满足,则第三方验证失败;0145]=(17,11)vv+U=68(59,47)+ll(32,78)E2=(18,13)vp+cob=68(2,6)+ll(59,50)=(35,80)+(36,17)=(18,13)验证结果表明=vV+"U和^=vP+"B,第三方验证成功。本发明具体实施与方法I(基于椭圆曲线ElGamal密码体制和数字签名机制的加11发送给首次加入群组的申请者;0137]0138]0139]0140]0141]0142]0143]0144]0146]0147]0148]0149]0150]V+"U禾PE2=vP+"B;如果满足,则第(31,l)+(24,92)=(17,11)密和签名分离的组密钥初始分配方法)和方法II(基于椭圆曲线ElGamal密码体制和数字签名机制的加密和签名绑定的组密钥初始分配方法)进行比较,见表1和表2,实验环境为MATLAB7.8.0.347(R2009a)32-bit(Win32),MicrosoftwindowsXPprofessional2002servicepack2,IntelPentium4CPU3.00GHz512MB,具体实施效果表明,本发明方法以较少的资源消耗达到对组密钥签发者和首次加入群组的申请者进行隐私保护的目的。表1组密钥签发阶段时间消耗(时间/秒)<table>tableseeoriginaldocumentpage10</column></row><table><table>tableseeoriginaldocumentpage11</column></row><table><table>tableseeoriginaldocumentpage12</column></row><table>权利要求组密钥初始分配中的隐私保护方法,其特征在于,整个程序包括组密钥签发,组密钥验证和第三方证明三个阶段;1.)组密钥签发包括以下具体步骤1.1组密钥的签发者随机选择两个整数k1和k2,满足1≤k1<n,1≤k2<n,k1和n互素,k2和n互素;n是椭圆曲线E(Fp)上的生成元P的一个素数阶;有限域Fp上的椭圆曲线E(Fp)是定义在仿射平面上的3次方程Ey2≡x3+ax+b(modp)的所有解与无穷远点O的并集,记作E(Fp)={(x,y)|y2=x3+ax+b,(x,y)∈Fp*Fp}U{O},其中p为大于3的素数,参数a,b∈有限域Fp={0,1,2,...,p-1},满足生成元P的阶数n是满足nP=0的最小整数;1.2组密钥的签发者计算点G=(k1-k2)·P,点R1=(k1-k2)·B=(x1,y1),点R2=k1·B=(x2,y2),参数r1=x1(modn),参数r2=x2(modn);如果r1=0或者r2=0,则返回步骤1.1;B是首次加入群组的申请者的公钥,满足B=dB·P(modp),dB是首次加入群组的申请者的私钥,满足dB∈[1,n-1],mod是数学模运算;有限域Fp上的椭圆曲线E(Fp)的运算包括点的加法和点的数乘点的加法令P1,P2∈E(Fp),P1=(x1,y1),P2=(x2,y2),则R=P1+P2=(x3,y3)∈E(Fp),其中x3=λ2=x1-x2,y3=λ(x1-x3)-y1;当P1≠P2时,λ=(y2-y1)/(x2-x1);当P1=P2时,λ=(3x12+a)/(2y2);点的数乘令P=(x,y)≠0,k是整数,则kP=(x,y)+(x,y)+...+(x,y)的k-1次加法;1.3组密钥的签发者计算组密钥消息密文c=m·r1和组密钥消息签名s≡k2-1(m-dA·r2)(modn);如果s=0,则返回步骤1.1;m是组密钥消息,dA是组密钥签发者的私钥,满足dA∈[1,n-1],A是组密钥签发者的公钥,满足A=dA·P(modp);1.4组密钥的签发者发送{c,G,R2,s}给首次加入群组的申请者;2.)组密钥验证阶段包括以下具体步骤2.1首次加入群组的申请者验证点G和点R2=(x2,y2)是否是椭圆曲线E(Fp)上的点;如果G和R2不是椭圆曲线E(Fp)上的点,则拒绝接收组密钥消息;否则,计算参数r2=x2(modn),验证参数r2和签名s是否满足r2∈[1,n-1],s∈[1,n-1];如果不满足,则终止该程序;否则,继续执行步骤2.2;2.2首次加入群组的申请者计算点R1=dB·G=(x1,y1),参数r1=x1(modn);2.3首次加入群组的申请者解密组密钥消息密文m=c·r1-1;2.4首次加入群组的申请者计算点V1=r2·A+dB-1·s·R2-s·G和点V2=m·P;2.5首次加入群组的申请者验证是否满足V1=V2;如果不满足,则拒绝接收组密钥消息;否则,接收组密钥消息;3.)第三方证明阶段包括以下具体步骤3.1首次加入群组的申请者计算点V=dB-1·s·R2和点U=dB·V,发送{m,G,R2,s,V}给第三方;如果使用的是可信的通信信道,首次加入群组的申请者明文传送组密钥消息m;如果使用的是不可信的通信信道,首次加入群组的申请者与第三方协商加密传送组密钥消息m;3.2第三方计算点V1=r2·A+V-s·G和点V2=m·P,其中参数r2=x2(modn),点R2=(x2,y2),验证是否满足V1=V2;如果不满足,则终止该程序;否则,计算点U=s·R2;3.3首次加入群组的申请者随机选择一个整数k,k∈[1,n-1],计算点E1=k·V和点E2=k·P,发送E1和E2给第三方;3.4第三方随机选择一个整数ω发送给首次加入群组的申请者;3.5首次加入群组的申请者计算v=k-dB·ω,发送v给第三方;3.6第三方验证是否满足E1=v·V+ω·U和E2=v·P+ω·B;如果满足,则第三方验证成功;如果不满足,则第三方验证失败。F2009102418764C00011.tif,F2009102418764C00012.tif全文摘要组密钥初始分配中的隐私保护方法属于信息安全领域。该方法包括组密钥签发、组密钥验证和第三方证明;在组密钥签发阶段,组密钥的签发者用公钥对组密钥消息进行加密,用私钥和公钥对组密钥消息进行有向签名,将消息密文和签名一起发送首次加入群组的申请者。在组密钥验证阶段,首次加入群组的申请者用私钥对消息密文进行解密,用公钥和私钥对组密钥消息签名进行验证。在第三方证明阶段,首次加入群组的申请者用零知识证明机制向第三方证明组密钥消息签名的有效性,同时不向第三方透漏任何隐私信息。该方法通过关联随机数绑定加密和签名的方法增加安全的复杂性,通过引入有向签名机制确保只有首次加入群组的申请者才可验证组密钥消息签名的有效性。文档编号H04L9/28GK101741564SQ20091024187公开日2010年6月16日申请日期2009年12月11日优先权日2009年12月11日发明者何泾沙,张兴,韦潜申请人:北京工业大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1