CN102111266A - 基于椭圆曲线的组密钥产生方法 - Google Patents

基于椭圆曲线的组密钥产生方法 Download PDF

Info

Publication number
CN102111266A
CN102111266A CN2009102435666A CN200910243566A CN102111266A CN 102111266 A CN102111266 A CN 102111266A CN 2009102435666 A CN2009102435666 A CN 2009102435666A CN 200910243566 A CN200910243566 A CN 200910243566A CN 102111266 A CN102111266 A CN 102111266A
Authority
CN
China
Prior art keywords
group
key
organizer
sub
produces
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN2009102435666A
Other languages
English (en)
Other versions
CN102111266B (zh
Inventor
郭宝安
张飚
于志强
丁瑶
唐凌
叶松
王杰斌
吴渊
鲁昱
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Aisino Corp
Original Assignee
Aisino Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Aisino Corp filed Critical Aisino Corp
Priority to CN200910243566.6A priority Critical patent/CN102111266B/zh
Publication of CN102111266A publication Critical patent/CN102111266A/zh
Application granted granted Critical
Publication of CN102111266B publication Critical patent/CN102111266B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Storage Device Security (AREA)

Abstract

一种基于椭圆曲线的组密钥产生方法,包括步骤:步骤a,任意选定小组内的一个或者多个成员作为组织者,小组内其他成员作为通用成员;步骤b,小组内各个成员分别其他成员广播自身的公钥信息Pn;步骤c,各个通用成员根据接收到的公钥信息生成第一子密钥,并广播发送到小组内的其他成员;步骤d,所述组织者产生随机整数r,计算一叠加项,向小组内各个通用成员分别发送包含所述叠加项信息的第二子密钥;步骤e,任一通用成员Am根据接收到的其他的通用成员广播的第一子密钥,以及所述组织者对任一通用成员Am发送的第二子密钥,生成组密钥K;步骤f,所述组织者根据小组内各个通用成员产生的第一子密钥,以及组织者本身产生的所述叠加项,生成组密钥K。

Description

基于椭圆曲线的组密钥产生方法
技术领域
本发明涉及数字密码技术中的组密钥产生方法,特别涉及一种椭圆曲线密码体制上的组密钥产生方法。
背景技术
随着Internet的迅猛发展,网络安全问题显得越来越重要,相关网络安全协议应运而生,而这些协议又是以高效安全的加密算法为前提的。
加密算法分为对称加密算法和非对称加密算法。在网络上进行数据传输时,通常使用对称加密算法加密所要传输的数据,而用非对称加密算法加密密钥。
就非对称加密算法来说,目前RSA应用最为普及,但ECC和RSA相比有许多优点,诸如安全性高、密钥量小、灵活性好等等,自1997年以来,ECC的研究和应用工作已受到普遍关注。
组密钥的产生算法可以保证小组内各个成员使用组密钥后,安全的共享小组内的秘密信息,不让小组外的成员获取信息,它是通过ECC的密码交换体制来扩展实现的。目前国际标准的基于ECC的密钥交换体制是ECDH(EllipticCurve Diffie-Hellman)密钥共享算法,现将此算法描述如下:
假设椭圆曲线密码系统的公开曲线参数为{q,a,b,G,n,h},其中椭圆曲线y2=x3+ax+b是有限域GF(q)上的曲线E(Fq),G为基点,n是基点阶,h为协因子;设k∈GF(q),P是曲线E(Fq)上的一点,则Q=kP=P+P+...+P(k个P点求普加)称为点积运算,已知k和点P求点Q比较容易,反之已知点Q和点P求k却是相当困难的。则ECDH算法步骤如下:
(1)成员A选择一个整数nA作为A的私钥,然后产生其公钥PA=nA*p,该公钥是有限域Fq中的一个点;
(2)同样B也可以产生私钥nB,并计算其公钥PB
(3)A和B相互交互公钥;
(4)A产生秘密密钥K=nA*PB,B产生秘密密钥K=nB*PA
在步骤4中A和B产生的K是相同的,因为nA*PB=nA*(nB*p)=nB*(nA*p)=nB*PA,这样A与B完成了密钥协商过程。
在密钥协商过程中,成功的关键在于对于Q=k*P,已知k和点P求点Q比较容易,反之已知点Q和点P求k却是相当困难的。因此即使通信过程中链路被监听,攻击者也不会获得协商好的密钥。
ECDH算法是针对两个成员之间的密钥协商,在组播环境中应用时,由于组成员的数量增加,会造成运算量增大。
发明内容
本发明的目的在于,解决现有技术中在组播中应用ECDH算法,造成的运算量增大的技术问题。
为达到上述目的,本发明提供一种基于椭圆曲线的组密钥产生方法,应用于由n个成员构成的小组,小组成员分别用A1,A2,...,An来表示;小组内各个成员对应的私钥分别为a1,a2,...,an,对应的公钥分别为P1,P2,...,Pn;其中,P1=a1*p,P2=a2*p,...,Pn=an*p,p为公开基点。
所述方法包括步骤:
步骤a,任意选定小组内的一个或者多个成员作为组织者,小组内其他成员作为通用成员;
步骤b,小组内各个成员A1,A2,...,An分别向小组内的其他成员广播自身的公钥信息P1,P2,...,Pn
步骤c,各个通用成员根据接收到的其他成员广播的公钥信息生成第一子密钥,并广播发送到小组内的其他成员;
步骤d,所述组织者产生随机整数r,计算一叠加项,向小组内各个通用成员分别发送包含所述叠加项信息的第二子密钥;
步骤e,任一通用成员Am根据自身的私钥、所述组织者的公钥、所述任一通用成员Am产生的所述第一子密钥Km、所述任一通用成员Am接收到的其他的通用成员广播的第一子密钥,以及所述组织者对任一通用成员Am发送的第二子密钥,生成组密钥K;
步骤f,所述组织者根据自身的私钥,小组内其他成员的公钥,小组内各个通用成员产生的第一子密钥,以及组织者本身产生的所述叠加项,生成组密钥K。
本发明的有益效果在于,将ECDH中由两个成员之间的密钥协商扩展到小组内所有成员的协商,使得不通过可信第三方,仅依赖于小组内各个成员的共同计算产生组密钥。并且小组内各成员并没有预先共享秘密信息。本发明的方法应用于组播通信中时,所有成员的通信次数和小组内成员的数量呈线性关系,对于计算性能而言,通用成员的点乘次数为常数项,第一组织者As点乘次数与小组内成员数量也是线性关系,可见生成组密钥时,消耗的资源很少。
附图说明
图1所示为本发明实施例1的组密钥产生的方法的流程图;
图2所示为本发明实施例2的组密钥产生的方法的流程图;
图3所示为本发明实施例3的组密钥产生的方法的流程图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
本发明实施例提供了一种椭圆曲线密码体制(ECC)上的组密钥产生方法,从椭圆曲线离散对数困难问题假设出发,通过巧妙的变形,对ECDH做了扩展,将ECDH中由两个成员之间的密钥协商扩展到小组内所有成员的协商,使得不通过可信第三方,仅依赖于小组内各个成员的共同计算产生组密钥。并且小组内各成员并没有预先共享秘密信息。
实施例1
假设小组内共有n个成员,分别用A1,A2,...,An来表示;小组内各个成员对应的私钥分别为a1,a2,...,an,对应的公钥分别为P1,P2,...,Pn。其中,P1=a1*p,P2=a2*p,...,Pn=an*p,p为公开基点。
参见图1,为本发明实施例1组密钥产生的方法的流程图,具体步骤为:
步骤101,任意选定小组内的一个成员As作为第一组织者,s∈{1,2,...,n},小组内的其他成员A1,A2,...As-1,As+1,...,An作为通用成员。
步骤102,小组内各个成员A1,A2,...,An分别向小组内的其他成员广播自身的公钥信息P1,P2,...,Pn
步骤103,小组内任意通用成员Am根据接收到的其他成员广播的公钥信息生成第一子密钥Km=am*(P1+P2+...+Pm-1+Pm+1+...+Pn),m∈{1,2,...,s-1,s+1,...,n},并广播发送到小组内的其他成员。
其中,am为通用成员Am的私钥,P1,P2,...,Pm-1,Pm+1,...,Pn为通用成员Am接收到的其他成员广播的公钥信息。
步骤104,小组内的第一组织者As产生随机整数r,计算第一叠加项Sr=r*p,并向小组内通用成员Aj发送第二子密钥Ksj=as*(P1+P2+...+Ps-1+Ps+1+...Pj-1+Pj+1+...+Pn)+Sr,j∈{1,2,...,s-1,s+1,...,n}。其中第二子密钥Ksj为第一组织者As针对小组内的通用成员Aj分别产生的子密钥。
其中,as为第一组织者As的私钥,P1,P2,...,Ps-1,Ps+1,...Pj-1,Pj+1,...,Pn为第一组织者As接收到的小组内通用成员广播的公钥信息。
步骤105,小组内任意的通用成员Am,m∈{1,2,...,s-1,s+1,...,n}根据自身的私钥am、第一组织者As的公钥Ps、Am产生的第一子密钥Km、Am接收到的全部的第一子密钥,以及第一组织者As对Am发送的第二子密钥Ksm,生成组密钥:
K=am*Ps+K1+K2+...Ks-1+Ksm+Ks+1+...+Kn
=((a1+a2+...an)2-(a1 2+a2 2+...+an 2)+r)*p。
步骤106,第一组织者As根据自身的私钥as,小组内通用成员的公钥P1,P2,…,Ps-1,Ps+1,...,Pn,小组内通用成员产生的第一子密钥K1,K2,...,Ks-1,Ks+1,...,Kn,以及第一组织者As本身产生的第一叠加项Sr,生成组密钥:
K=as*(P1+P2+Ps-1+Ps+1+...+Pn)+K1+K2+...Ks-1+Ks+1+...+Kn+Sr
=((a1+a2+...+an)2-(a1 2+a2 2+...an 2)+r)*p。
步骤107,对于小组内的所有用户,密钥协商结束。
下面对实施例1的组密钥产生的方法的安全性进行说明。
对于小组外的攻击者,如果其监听到小组内第一组织者和通用成员之间的通信过程,则攻击者获取的信息为所有成员的公钥P1,P2,...,Pn,所有通用成员生成并广播的第一子密钥K1,K2,...,Ks-1,Ks+1,...,Kn,第一组织者As生成的第二子密钥Ksj,j∈{1,2,...,s-1,s+1,...,n}。
其中,攻击者获取的关于第一子密钥的信息为:
Km=am*(P1+P2+...+Pm-1+Pm+1+...+Pn)
=(ama1+ama2+...+amam-1+amam+1+...+aman)*p,
其中m∈{1,2,...,s-1,s+1,...,n}。则攻击者获取的关于第一子密钥的信息的方程共有n-1个。
攻击者获取的关于第二子密钥的信息为:
Ksj=as*(P1+P2+...+Ps-1+Ps+1+...Pj-1+Pj+1+...+Pn)+Sr
=(asa1+asa2+...+asas-1+asas+1+...asaj-1+asaj+1+...+asan+r)*p,
其中j∈{1,2,...,s-1,s+1,...,n}。则攻击者获取的关于第二子密钥的信息的方程共有n-1个。
因此,攻击者一共可以构造出2(n-1)个方程,但是其未知数apaq,p∈{1,2,...,n},q∈{1,2,...,n},共(n-1)*n/2个(n>=3),所以通过常规方法解方程组是无法解出未知数apaq,并最终计算出组密钥:
K = ( ( a 1 + a 2 + . . . + a n ) 2 - ( a 1 2 + a 2 2 + . . . + a n 2 ) + r ) * p
= ( 2 * Σ i = 1 n Σ j = 1 n a i a j + r ) * p (其中i≠j)。
再者,如果攻击者将发送的第一子密钥K1,K2,...,Ks-1,Ks+1,...,Kn叠加,则结果为:
K Temp = ( 2 * Σ i = 1 n Σ j = 1 n a i a j + r ) * p - ( a s a 1 + a s a 2 + . . . + a s a s - 1 + a s a s + 1 + . . . + a s a n + r ) * p ,
其中i≠j。所以如果攻击者能够通过第二子密钥Ksj,j∈{1,2,...,s-1,s+1,...,n}计算出(asa1+asa2+...+asas-1+asas+1+...+asan+r)*p,那么攻击者就可以计算出组密钥。
关于第二子密钥Ksj,j∈{1,2,...,s-1,s+1,...,n},一共有n-1个方程,但是未知数包括asaj,j∈{1,2,...,s-1,s+1,...,n}和r,一共有n个未知数,所以无法解出每一个具体的值。因此无法计算(asa1+asa2+..+asas-1+asas+1+...+asan+r)*p。
如果将所有的Ksj叠加,得到
KsjTemp=((n-2)*(asa1+asa2+...+asas-1+asas+1+...+asan)+(n-1)*r)*p,
因此,从KsjTemp中也无法计算出(asa1+asa2+...+asas-1+asas+1+...+asan+r)*p。
实施例1的组密钥产生的方法的安全保障的根本原因在于,对于每个第二子密钥Ksj
Ksj=as*(P1+P2+...+Ps-1+Ps+1+...Pj-1+Pj+1+...+Pn)+Sr
=(asa1+asa2+...+asas-1+asas+1+...asaj-1+asaj+1+...+asan+r)*p
其中j∈{1,2,...,s-1,s+1,...,n},缺少一项asaj*p,而asaj*p只有第一组织者As和通用成员Aj才能知道,通用成员Aj产生的第一子密钥Kj中虽然包含了asaj*p这一项,但却无法从整体的第一子密钥Kj中解出具体的值,另外通过引入随机数r,并在第二子密钥Ksj的构成中减少了asaj*p,通过这样的方式破坏了数据的对称性,使得攻击者无法通过叠加的方式计算
(asa1+asa2+...+asas-1+asas+1+...+asan+r)*p。
实施例2
假设小组内共有n个成员,分别用A1,A2,...,An来表示;小组内各个成员对应的私钥分别为a1,a2,...,an,对应的公钥分别为P1,P2,...,Pn。其中,P1=a1*p,P2=a2*p,...,Pn=an*p,p为公开基点。
与实施例1相比,实施例2中的第一组织者As在构造组密钥的过程中,计算并存储as*(P1+P2+...+Ps-1+Ps+1+...+Pn)+Sr的数值,对于成员数量很大的组而言,将减少第一组织者As的计算次数,提高计算效率。
参见图2,为本发明实施例2组密钥产生的方法的流程图,具体步骤为:
步骤201,任意选定小组内的一个成员As作为第一组织者,s∈{1,2,...,n},小组内的其他成员A1,A2,...As-1,As+1,...,An作为通用成员。
步骤202,小组内各个成员A1,A2,...,An分别向小组内的其他成员广播自身的公钥信息P1,P2,...,Pn
步骤203,小组内任意通用成员Am生成第一子密钥Km=am*(P1+P2+...+Pm-1+Pm+1+...+Pn),m∈{1,2,...,s-1,s+1,...,n},并广播发送到小组内的其他成员。
其中,am为通用成员Am的私钥,P1,P2,...,Pm-1,Pm+1,...,+Pn为通用成员Am接收到的其他成员广播的公钥信息。
步骤204,小组内的第一组织者As产生随机整数r,计算第一叠加项Sr=r*p,并向小组内通用成员Aj发送第二子密钥Ksj=as*(P1+P2+...+Ps-1+Ps+1+...Pj-1+Pj+1+...+Pn)+Sr,j∈{1,2,...,s-1,s+1,...,n}。其中第二子密钥Ksj为第一组织者As针对小组内的通用成员Aj分别产生的子密钥。
其中,as为第一组织者As的私钥,P1,P2,...,Ps-1,Ps+1,...Pj-1,Pj+1,...,Pn为第一组织者As接收到的小组内通用成员广播的公钥信息。
步骤205,小组内任意的通用成员Am,m∈{1,2,...,s-1,s+1,...,n}根据自身的私钥am、第一组织者As的公钥Ps、Am产生的第一子密钥Km、Am接收到的全部的第一子密钥,以及第一组织者As对Am发送的第二子密钥,生成组密钥:
K=am*Ps+K1+K2+...Ks-1+Ksm+Ks+1+...+Kn
=((a1+a2+...+an)2-(a1 2+a2 2+...an 2)+r)*p。
步骤206,第一组织者As根据自身的私钥as,小组内通用成员的公钥P1,P2,...,Ps-1,Ps+1,...,Pn,以及第一组织者As本身产生的第一叠加项Sr计算并存储as*(P1+P2+...+Ps-1+Ps+1+...+Pn)+Sr的数值。
步骤207,第一组织者As根据as*(P1+P2+...+Ps-1+Ps+1+...+Pn)+Sr的数值,以及小组内通用成员产生的第一子密钥K1,K2,...,Ks-1,Ks+1,...,Kn,生成组密钥:
K=as*(P1+P2+Ps-1+Ps+1+...+Pn)+Sr+K1+K2+...Ks-1+Ks+1+...+Kn
=((a1+a2+...+an)2-(a1 2+a2 2+...+an 2)+r)*p。
步骤208,对于小组内的所有用户,密钥协商结束。
下面对实施例2的组密钥产生的方法的通信和计算次数进行说明。
对于任意的通用成员Am,m∈{1,2,...,s-1,s+1,...,n},广播发送了2次数据,分别是公钥Pm和第一子密钥Km,从其他的通用成员处接收了2次数据,分别是其他成员的公钥Pj,j∈{1,2,...,m-1,m+1,...,s-1,s+1...,n}和第一子密钥Kj,j∈{1,2,...,m-1,m+1,...,s-1,s+1...,n}。通用成员Am从第一组织者As处获得的数据是公钥Ps和第二子密钥Ksm
对于第一组织者As,广播发送了公钥Ps,向任意通用成员Aj,j∈{1,2,...,s-1,s+1,...,n}分别发送第二子密钥Ksj,共发送数据n次。从其他的用户处共接收了2次数据,分别是公钥Pj和第一子密钥Kj
从计算的角度来看,对于任意的通用成员Am,m∈{1,2,...,s-1,s+1,...,n},计算公钥Pm=am*p,需要计算一次点乘;计算第一子密钥Km=am*(P1+P2+...+Pm-1+Pm+1+...+Pn),计算了n-2次点加和一次点乘;计算组密钥K=am*Ps+K1+K2+...Ks-1+Ksm+Ks+1+...+Kn时,计算了n次点加和一次点乘。
对于第一组织者As,计算公钥Ps=as*p和第一叠加项Sr=r*p,需要计算二次点乘,计算第二子密钥
Ksj=as*(P1+P2+...+Ps-1+Ps+1+...Pj-1+Pj+1+...+Pn)+Sr
=as*(P1+P2+...+Ps-1+Ps+1..+Pn)+Sr-as*Pj
其中as*(P1+P2+...+Ps-1+Ps+1+...+Pn)+Sr的数值由第一组织者As计算一次并存储,因此对于其他所有通用成员,第一组织者As共计算了2n-2次点加,n+2次点乘。最后生成组密钥
K=as*(P1+P2+Ps-1+Ps+1+...+Pn)+K1+K2+...Ks-1+Ks+1+...+Kn+Sr,利用前面的结果,再计算n-1次点加即可。
可见生成组密钥时,通信性能如下:
对于通用成员,广播发送2次,接收其他用户数据共2(n-1)次。
对于第一组织者As,广播发送1次,向其他通用成员发送数据(n-1)次,接收其他通用成员数据共2(n-1)次。
计算性能如下:
对于通用成员,生成组密钥计算2n-2次点加,3次点乘。
对于第一组织者As,生成组密钥计算3n-3次点加,n+2次点乘。
对于组播通信而言,所有成员的通信次数和小组内成员的数量呈线性关系,对于计算性能而言,通用成员的点乘次数为常数项,第一组织者As点乘次数与小组内成员数量也是线性关系,可见生成组密钥时,消耗的资源很少。
实施例3
假设小组内共有n个成员,分别用A1,A2,...,An来表示;小组内各个成员对应的私钥分别为a1,a2,...,an,对应的公钥分别为P1,P2,...,Pn。其中,P1=a1*p,P2=a2*p,...,Pn=an*p,p为公开基点。
与实施例1和实施例2不同的是,实施例3中选择两个成员分别作为第一组织者As和第二组织者At,小组内的其他成员为通用成员。
参见图3,为本发明实施例3组密钥产生的方法的流程图,具体步骤为:
步骤301,任意选定小组内的两个成员As和At,其中As作为第一组织者,At作为第二组织者,s,t∈{1,2,...,n},小组内的其他成员A1,A2,...As-1,As+1,...,At-1,At+1,...An作为通用成员。
步骤302,小组内各个成员A1,A2,...,An分别向小组内的其他成员广播自身的公钥信息P1,P2,...,Pn
步骤303,小组内任意通用成员Am生成第一子密钥Km=am*(P1+P2+...+Pm-1+Pm+1+...+Pn),m∈{1,2,...,s-1,s+1,...,t-1,t+1,...n},并广播发送到小组内的其他成员。
其中,am为通用成员Am的私钥,P1,P2,...,Pm-1,Pm+1,...,Pn为通用成员Am接收到的小组内其他成员广播的公钥信息。
步骤304,小组内的第一组织者As产生随机整数r,计算第一叠加项Sr=r*p,并向小组内通用成员Aj发送第二子密钥Ksj=as*(P1+P2+...+Ps-1+Ps+1+...Pj-1+Pj+1+...+Pn)+Sr,j∈{1,2,...,s-1,s+1,...,n}。其中第二子密钥Ksj为第一组织者As针对小组内的通用成员Aj分别产生的子密钥。
其中,as为第一组织者As的私钥,P1,P2,...,Ps-1,Ps+1,...Pj-1,Pj+1,...,Pn为第一组织者As接收到的小组内通用成员广播的公钥信息。
小组内的第二组织者At产生随机整数r1,计算第二叠加项
Figure G2009102435666D00101
并向小组内通用成员Aj发送第三子密钥 K tj = a t * ( P 1 + P 2 + . . . + P t - 1 + P t + 1 + . . . P j - 1 + P j + 1 + . . . + P n ) + S r 1 , j∈{1,2,...,t-1,t+1,...,n}。其中第三子密钥Ktj为第二组织者At针对小组内的通用成员Aj分别产生的子密钥。
其中,at为第二组织者At的私钥,P1,P2,...,Pt-1,Pt+1,...Pj-1,Pj+1,...,Pn为第二组织者At接收到的小组内通用成员广播的公钥信息。
步骤305,小组内任意的通用成员Am,m∈{1,2,...,s-1,s+1,...,t-1,...,t+1,...,n}根据自身的私钥am、第一组织者As的公钥Ps、第二组织者At的公钥Pt、Am产生的第一子密钥Km、Am接收到的全部的第一子密钥,以及第一组织者As对Am发送的第二子密钥Ksm,第二组织者At对Am发送的第三子密钥Ktm,生成组密钥:
K=am*Ps+am*Pt+K1+K2+...Ks-1+Ksm+Ks+1+...+Kt-1+Ktm+Kt+1+...+Kn
=((a1+a2+...+an)2-(a1 2+a2 2+...+an 2)+r+r1)*p。
步骤306,第一组织者As根据自身的私钥as,小组内其他成员的公钥P1,P2,...,Ps-1,Ps+1,...,Pn,以及第一组织者As本身产生的第一叠加项Sr计算并存储as*(P1+P2+...+Ps-1+Ps+1+...+Pn)+Sr的数值。
第二组织者At根据自身的私钥at,小组内其他成员的公钥P1,P2,...,Pt-1,Pt+1,...,Pn,以及第二组织者At本身产生的第二叠加项
Figure G2009102435666D00105
计算并存储 a t * ( P 1 + P 2 + . . . + P t - 1 + P t + 1 + . . . + P n ) + S r 1 的数值。
步骤307,第一组织者As根据as*(P1+P2+...+Ps-1+Ps+1+...+Pn)+Sr的数值,第二组织者At的公钥Pt,第二组织者At针对第一组织者As产生的第三子密钥Kts,以及小组内通用成员产生的第一子密钥K1,K2,...,Ks-1,Ks+1,...,Kt-1,Kt+1...,Kn,生成组密钥:
K=as*(P1+P2+Ps-1+Ps+1+...+Pn)+Sr
+K1+K2+...Ks-1+Ks+1+...Kt-1+Kt+1+...+Kn+Kts+as*Pt
=((a1+a2+...+an)2-(a1 2+a2 2+...+an 2)+r+r1)*p
其中Kts为第二组织者At针对第一组织者As产生的第三子密钥,
K ts = a t * ( P 1 + P 2 + . . . + P s - 1 + P s + 1 + . . . P t - 1 + P t + 1 + . . . + P n ) + S r 1 .
第二组织者At根据的数值,第一组织者As的公钥Ps,第一组织者As针对第二组织者At产生的第二子密钥Kst,以及小组内通用成员产生的第一子密钥K1,K2,...,Ks-1,Ks+1,...,Kt-1,Kt+1...,Kn,生成组密钥:
K = a t * ( P 1 + P 2 + P t - 1 + P t + 1 + . . . + P n ) + S r 1
= + K 1 + K 2 + . . . K s - 1 + K s + 1 + . . . K t - 1 + K t + 1 + . . . + K n + K st + a t * P s ,
= ( ( a 1 + a 2 + . . . + a n ) 2 - ( a 1 2 + a 2 2 + . . . + a n 2 ) + r + r 1 ) * p
其中Kst,为第一组织者As针对第二组织者At产生的第二子密钥,
Kst,=as*(P1+P2+...+Ps-1+Ps+1+...Pt-1+Pt+1+...+Pn)+Sr
步骤308,对于小组内的所有用户,密钥协商结束。
实施例3中的两个组织者可以扩展为多个组织者,并相应地引入多个叠加项使组织者和通用成员之间协商生成组密钥。
本发明的方法是在ECDH基础上的扩展,既适用于大素数域的椭圆曲线密码体制,也适用于二元域的椭圆曲线密码体制(包括多项式基的二元域椭圆曲线密码体制和正规基的二元域椭圆曲线密码体制)。在无线自组网和视频会议等领域有很大应用价值。
以上对本发明的描述是说明性的,而非限制性的,本专业技术人员理解,在权利要求限定的精神与范围之内可对其进行许多修改、变化或等效,但是它们都将落入本发明的保护范围内。

Claims (11)

1.一种基于椭圆曲线的组密钥产生方法,应用于由n个成员构成的小组,小组成员分别用A1,A2,...,An来表示;小组内各个成员对应的私钥分别为a1,a2,...,an,对应的公钥分别为P1,P2,...,Pn;其中,P1=a1*p,P2=a2*p,...,Pn=an*p,p为公开基点;其特征在于,所述方法包括步骤:
步骤a,任意选定小组内的一个或者多个成员作为组织者,小组内其他成员作为通用成员;
步骤b,小组内各个成员A1,A2,...,An分别向小组内的其他成员广播自身的公钥信息P1,P2,...,Pn
步骤c,各个通用成员根据接收到的其他成员广播的公钥信息生成第一子密钥,并广播发送到小组内的其他成员;
步骤d,所述组织者产生随机整数r,计算一叠加项,向小组内各个通用成员分别发送包含所述叠加项信息的第二子密钥;
步骤e,任一通用成员Am根据自身的私钥、所述组织者的公钥、所述任一通用成员Am产生的所述第一子密钥Km、所述任一通用成员Am接收到的其他的通用成员广播的第一子密钥,以及所述组织者对任一通用成员Am发送的第二子密钥,生成组密钥K;
步骤f,所述组织者根据自身的私钥,小组内其他成员的公钥,小组内各个通用成员产生的第一子密钥,以及组织者本身产生的所述叠加项,生成组密钥K。
2.如权利要求1所述的基于椭圆曲线的组密钥产生方法,其特征在于,所述步骤a为
任意选定小组内的一个成员As作为第一组织者,s∈{1,2,...,n},小组内的其他成员A1,A2,...As-1,As+1,...,An作为通用成员。
3.如权利要求2所述的基于椭圆曲线的组密钥产生方法,其特征在于,所述步骤d为
小组内的第一组织者As产生随机整数r,计算第一叠加项Sr=r*p,并向小组内任意通用成员Aj分别发送包含第一叠加项信息的第二子密钥
Ksj=as*(P1+P2+...+Ps-1+Ps+1+...Pj-1+Pj+1+...+Pn)+Sr,j∈{1,2,...,s-1,s+1,...,n}。
4.如权利要求2所述的基于椭圆曲线的组密钥产生方法,其特征在于,所述步骤e为
小组内任意的通用成员Am,m∈{1,2,...,s-1,s+1,...,n}根据自身的私钥am、第一组织者As的公钥Ps、Am产生的第一子密钥Km、Am接收到的全部的第一子密钥,以及第一组织者As对Am发送的第二子密钥Ksm,生成组密钥
K=am*Ps+K1+K2+...Ks-1+Ksm+Ks+1+...+Kn
=((a1+a2+...+an)2-(an 2+a2 2+...+an 2)+r)*p。
5.如权利要求2所述的基于椭圆曲线的组密钥产生方法,其特征在于,所述步骤f为
第一组织者As根据自身的私钥as,小组内其他成员的公钥P1,P2,...,Ps-1,Ps+1,...,Pn,小组内其他成员产生的第一子密钥K1,K2,...,Ks-1,Ks+1,...,Kn,以及第一组织者As本身产生的第一叠加项Sr,生成组密钥
K=as*(P1+P2+Ps-1+Ps+1+...+Pn)+K1+K2+...Ks-1+Ks+1+...+Kn+Sr
=((a1+a2+...+an)2-(a1 2+a2 2+...+an 2)+r)*p。
6.如权利要求1所述的基于椭圆曲线的组密钥产生方法,其特征在于,所述步骤a为
任意选定小组内的两个成员As和At,其中As作为第一组织者,At作为第二组织者,s,t∈{1,2,...,n},小组内的其他成员A1,A2,...As-1,As+1,...,At-1,At+1,...An作为通用成员。
7.如权利要求6所述的基于椭圆曲线的组密钥产生方法,其特征在于,所述步骤d为
小组内的第一组织者As产生随机整数r,计算第一叠加项Sr=r*p,并向小组内通用成员Aj分别发送包含第一叠加项信息的第二子密钥Ksj,j∈{1,2,...,s-1,s+1,...,t-1,...,t+1,...,n};
小组内的第二组织者At产生随机整数r1,计算第二叠加项 S r 1 = r 1 * p , 并向小组内通用成员Aj分别发送包含第二叠加项信息的第三子密钥Ktj,j∈{1,2,...,s-1,s+1,...,t-1,...,t+1,...,n}。
8.如权利要求6所述的基于椭圆曲线的组密钥产生方法,其特征在于,所述步骤e为
小组内任意的通用成员Am,m∈{1,2,...,s-1,s+1,...,t-1,...,t+1,...,n}根据自身的私钥am、第一组织者As的公钥Ps、第二组织者At的公钥Pt、Am产生的第一子密钥Km、Am接收到的全部的第一子密钥,以及第一组织者As对Am发送的第二子密钥Ksm,第二组织者At对Am发送的第三子密钥Ktm,生成组密钥
K=am*Ps+am*Pt+K1+K2+...Ks-1+Ksm+Ks+1+...+Kt-1+Ktm+Kt+1+...+Kn
=((a1+a2+...+an)2-(a1 2+a2 2+...+an 2)+r+r1)*p。
9.如权利要求6所述的基于椭圆曲线的组密钥产生方法,其特征在于,所述步骤f为
第一组织者As根据自身的私钥as,小组内其他成员的公钥P1,P2,...,Ps-1,Ps+1,...,Pn,第二组织者At针对第一组织者As产生的第三子密钥Kts,小组内通用成员产生的第一子密钥K1,K2,...,Ks-1,Ks+1,...,Kt-1,Kt+1...,Kn,以及第一组织者As本身产生的第一叠加项Sr,生成组密钥
K=as*(P1+P2+Ps-1+Ps+1+...+Pn)+Sr
+K1+K2+...Ks-1+Ks+1+...Kt-1+Kt+1+...+Kn+Kts+as*Pt
=((a1+a2+...+an)2-(a1 2+a2 2+...+an 2)+r+r1)*p
第二组织者At根据自身的私钥at,小组内其他成员的公钥P1,P2,...,Ps-1,Ps+1,...,Pn,第一组织者As针对第二组织者At产生的第二子密钥Kst,小组内通用成员产生的第一子密钥K1,K2,...,Ks-1,Ks+1,...,Kt-1,Kt+1...,Kn,以及第二组织者At本身产生的第二叠加项
Figure F2009102435666C00031
生成组密钥
K = a t * ( P 1 + P 2 + P t - 1 + P t + 1 + . . . + P n ) + S r 1
= + K 1 + K 2 + . . . K s - 1 + K s + 1 + . . . K t - 1 + K t + 1 + . . . + K n + K st + a t * P s .
= ( ( a 1 + a 2 + . . . + a n ) 2 - + ( a 1 2 + a 2 2 + . . . + a n 2 ) r + r 1 ) * p
10.如权利要求5所述的基于椭圆曲线的组密钥产生方法,其特征在于,所述步骤f之前,还包括第一组织者As计算并存储as*(P1+P2+...+Ps-1+Ps+1+...+Pn)+Sr的数值的步骤。
11.如权利要求9所述的基于椭圆曲线的组密钥产生方法,其特征在于,所述步骤f之前,还包括第一组织者As计算并存储as*(P1+P2+...+Ps-1+Ps+1+...+Pn)+Sr的数值的步骤,以及第二组织者At计算并存储 a t * ( P 1 + P 2 + . . . + P t - 1 + P t + 1 + . . . P n ) + S r 1 的数值的步骤。
CN200910243566.6A 2009-12-28 2009-12-28 基于椭圆曲线的组密钥产生方法 Active CN102111266B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN200910243566.6A CN102111266B (zh) 2009-12-28 2009-12-28 基于椭圆曲线的组密钥产生方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN200910243566.6A CN102111266B (zh) 2009-12-28 2009-12-28 基于椭圆曲线的组密钥产生方法

Publications (2)

Publication Number Publication Date
CN102111266A true CN102111266A (zh) 2011-06-29
CN102111266B CN102111266B (zh) 2014-01-15

Family

ID=44175302

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200910243566.6A Active CN102111266B (zh) 2009-12-28 2009-12-28 基于椭圆曲线的组密钥产生方法

Country Status (1)

Country Link
CN (1) CN102111266B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102412971A (zh) * 2011-11-30 2012-04-11 西安西电捷通无线网络通信股份有限公司 基于sm2密钥交换协议的密钥协商方法及装置
CN106411506A (zh) * 2016-08-31 2017-02-15 飞天诚信科技股份有限公司 适用于数字货币的密钥派生方法及装置
CN106779707A (zh) * 2016-12-23 2017-05-31 中钞信用卡产业发展有限公司北京智能卡技术研究院 基于区块链的数字货币交易信息的监管方法、装置及系统
CN112422276A (zh) * 2020-11-04 2021-02-26 郑州信大捷安信息技术股份有限公司 一种多方密钥协商的实现方法及系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101321053A (zh) * 2007-06-08 2008-12-10 华为技术有限公司 一种生成组密钥的方法、系统和设备
CN101330385A (zh) * 2007-06-19 2008-12-24 航天信息股份有限公司 一种提高椭圆曲线密码体制上数字签名验证速度的方法
CN101431414A (zh) * 2008-12-15 2009-05-13 西安电子科技大学 基于身份的认证群组密钥管理方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101321053A (zh) * 2007-06-08 2008-12-10 华为技术有限公司 一种生成组密钥的方法、系统和设备
CN101330385A (zh) * 2007-06-19 2008-12-24 航天信息股份有限公司 一种提高椭圆曲线密码体制上数字签名验证速度的方法
CN101431414A (zh) * 2008-12-15 2009-05-13 西安电子科技大学 基于身份的认证群组密钥管理方法

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102412971A (zh) * 2011-11-30 2012-04-11 西安西电捷通无线网络通信股份有限公司 基于sm2密钥交换协议的密钥协商方法及装置
CN102412971B (zh) * 2011-11-30 2015-04-29 西安西电捷通无线网络通信股份有限公司 基于sm2密钥交换协议的密钥协商方法及装置
CN106411506A (zh) * 2016-08-31 2017-02-15 飞天诚信科技股份有限公司 适用于数字货币的密钥派生方法及装置
CN106411506B (zh) * 2016-08-31 2019-04-16 飞天诚信科技股份有限公司 适用于数字货币的密钥派生方法及装置
CN106779707A (zh) * 2016-12-23 2017-05-31 中钞信用卡产业发展有限公司北京智能卡技术研究院 基于区块链的数字货币交易信息的监管方法、装置及系统
CN112422276A (zh) * 2020-11-04 2021-02-26 郑州信大捷安信息技术股份有限公司 一种多方密钥协商的实现方法及系统
CN112422276B (zh) * 2020-11-04 2022-03-25 郑州信大捷安信息技术股份有限公司 一种多方密钥协商的实现方法及系统

Also Published As

Publication number Publication date
CN102111266B (zh) 2014-01-15

Similar Documents

Publication Publication Date Title
Hohenberger et al. Online/offline attribute-based encryption
Almaiah et al. A new hybrid text encryption approach over mobile ad hoc network
CN101374043B (zh) 密钥协商的方法、加/解密的方法及签名/验证的方法
Peng et al. Efficient and provably secure multireceiver signcryption scheme for multicast communication in edge computing
WO2015024149A1 (zh) 一种建立抗攻击的公钥密码的方法
Li et al. Fully secure identity-based signcryption scheme with shorter signcryptext in the standard model
Huang et al. A Conference Key Scheme Based on the Diffie-Hellman Key Exchange.
CN102111266B (zh) 基于椭圆曲线的组密钥产生方法
CN103763100A (zh) 保护任意用户群数据隐私安全的和与积计算方法
WO2010070579A1 (en) System and method for countering side-channel attacks against encryption based on cyclic groups
Han et al. Attribute-based signcryption scheme with non-monotonic access structure
Nithya et al. Survey on asymmetric key cryptography algorithms
Fan et al. Attribute-based proxy re-encryption with dynamic membership
Tseng et al. Towards scalable key management for secure multicast communication
Amounas et al. An efficient signcryption scheme based on the elliptic curve discrete logarithm problem
Chauhan An implemented of hybrid cryptography using elliptic curve cryptosystem (ECC) and MD5
CN107276759A (zh) 一种高效的门限加密方案
Hegde et al. A Comparative study on state of art Cryptographic key distribution with quantum networks
Moldovyan et al. Randomized pseudo-probabilistic encryption algorithms
Ghoreishi et al. A novel secure two-party identity-based authenticated key agreement protocol without bilinear pairings
Yakubu et al. Advanced Secure method for data transmission in MANET using RSA algorithm
Mohapatra Signcryption schemes with forward secrecy based on elliptic curve cryptography
Zhu et al. Efficient (k, n) Secret Sharing Scheme Secure against k—2 Cheaters
Lavanya Comparison of RSA-threshold cryptography and ecc-threshold cryptography for small mobile adhoc networks
Bodkhe et al. Hybrid encryption algorithm based improved RSA and Diffie-Hellman

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant