CN102170351B - 定制的静态Diffie-Hellman群 - Google Patents
定制的静态Diffie-Hellman群 Download PDFInfo
- Publication number
- CN102170351B CN102170351B CN201110078763.4A CN201110078763A CN102170351B CN 102170351 B CN102170351 B CN 102170351B CN 201110078763 A CN201110078763 A CN 201110078763A CN 102170351 B CN102170351 B CN 102170351B
- Authority
- CN
- China
- Prior art keywords
- group
- value
- prime
- elliptic curve
- shared secret
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/60—Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
- G06F7/72—Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/60—Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
- G06F7/72—Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
- G06F7/724—Finite field arithmetic
- G06F7/725—Finite field arithmetic over elliptic curves
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/002—Countermeasures against attacks on cryptographic mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0838—Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
- H04L9/0841—Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving Diffie-Hellman or related key agreement protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3066—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/72—Indexing scheme relating to groups G06F7/72 - G06F7/729
- G06F2207/7204—Prime number generation or prime number testing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/60—Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
- G06F7/72—Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
- G06F7/724—Finite field arithmetic
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/26—Testing cryptographic entity, e.g. testing integrity of encryption key or encryption algorithm
Abstract
本发明公开了选择用于静态Diffie-Hellman密钥协议的群以防止对手主动攻击的方法,在mod p群中,选择近似(9/16)(log2n)2的偶数h值,用筛选和素数检验确定r和n值,并且搜索t值以计算p=tn+1,其中p是素数。在定义在二元域上的椭圆曲线群中,选择随机曲线,计算曲线上的点数,并且检验曲线上的点数是2n,其中n是素数且n-1满足优选的标准。在定义在q次的素数域上的椭圆曲线群中,计算n=hr+1,其中,n是素数且n-1满足优选的标准,并且执行关于n的复数乘法方法,由此产生值q和具有阶数n的定义在q上的椭圆曲线E。
Description
本申请是2005年11月11日申请的PCT申请PCT/IB2005/003380、发明名称为“定制的静态Diffie-Hellman群”的专利申请的分案申请。
技术领域
本发明涉及密码系统领域的静态群(static group)。
背景技术
在1975年由Diffie和Hellman引入的公钥密码系统使不需要预先共享密码(pre-shared secret)以及具有不可否认性(non-repudiationproperty)的数字签名的加密通信成为可能。
公钥加密系统的Diffie-Hellman(DH)协议最具独创性的方面是使用了一种称为群的数学结构,在该结构中,一个特定问题,离散对数问题(discrete logarithm problem)是很难处理的。
一个群只是一组元素和作用于任意两个元素的单个运算。常见的群的实例包括:在加法运算下的整数(包含零和负整数)、在加法运算下的有理数、以及在乘法运算下的非零有理数。这些常见的实例是无限群,但是还存在有限(或离散)群。部分地由于群的元素可以用固定位数传送,所以密码系统通常对有限群更感兴趣。有限群的实例通常为本领域公知。
最常见的实例是基于模运算(modular arithmetic)的群。如果p是素数,t是任意整数,则t mod p是t被p除的余数。从而如果对于某一整数q,t=pq+r,并且r包含在0和p-1之间,则r=t mod p。在模加的运算下,从0至p-1的整数集合形成一个群,其中s和t组合变为s+t mod p。这个群用ZP表示。更一般地,p可以是任意整数。
从1至p-1的整数集合在模乘运算下形成另一个群,其中s和t组合变为st mod p。这个群用ZP *表示,通常称为mod p群。更一般地,p可以是具有略微不同运算的素数的任意次幂。当书写这些群的运算时,如果在上下文中很清楚,符号mod p经常省略。
群G的子群是G中的元素子集的群并且具有与G相同的运算。例如,群ZP *具有阶数为2的子群,所述子群的元素是1和p-1。更通常地,对于群中的任意元素g,存在包含<g>个元素的最小子群,表示为<g>。可知<g>由关于整数x的元素集合gx精确给定,其中gx表示x个g的乘积。在具有加号的群中,例如ZP,幂gx被替换记作xg。元素g是<g>的生成元。假如一个群具有生成元,则它是循环的,从而<g>是天然循环的。群ZP和ZP *也是循环的,但通常来说,群不是必须循环的。
群的阶数是元素的数量,群ZP具有阶数p并且群ZP *具有阶数p-1。元素g的阶数是子群<g>的阶数。假设g具有阶数n。
在运算记作乘法的群中,离散对数问题可以陈述为:给定g和w,查找整数x,使w=gx,其中gx表示x个g的乘积。这个问题通常在存在这样的整数x的情况下提出。也就是说,w是<g>中的元素。通常的对数问题不要求x是整数,并且只能够在群具有可以定义非整数幂的加法属性时定义。
在某些离散群中,离散对数问题(DLP)难以解决。Diffie和Hellman利用了DLP“难(hard)”这一事实,以提供针对公钥加密的第一可行解法。在这种情况下,Alice选择随机整数x,发送给Bob群元素gx,Bob选择随机数y,并且发送给Alice群元素gy。随后,Alice计算z=(gy)x,Bob计算z’=(gx)y。显然z=z’=gxy=gyx,所以Alice和Bob可以计算同一个值。假如没有其他人能够计算z,则Alice和Bob已经对共享秘密(secret)达成一致。则该共享秘密可以用于加密Alice和Bob之间传递的消息。这个协议是Diffie-Hellman密钥协议。在这个协议之前,Alice和Bob不得不预先会面以秘密地对z达成一致。这个协议使Alice和Bob免于预先会面。
因为数值gx和gy是公开的,所以这是所谓的公钥加密。它们被称为公钥,而x和y被称为私钥。数据对(x,gx)称为密钥对。对手Eve看到公钥。假如Eve能够解决DLP,则她能够从g和gx找到x。利用x,Eve能够以与Alice相同的方式计算z,即利用Bob的公钥gy和Alice的私钥x。因此,共享的秘密不再是秘密的,Eve能够利用它解密Alice和Bob互相发送的加密消息。因此,Diffie-Hellman密钥协议的安全性的先决条件是DLP是“难”题。Eve不能解决DLP。
幸运地,存在译码者认为DLP难的群。DLP难的群主要是两类公知的群,即有限域的乘法子群,以及椭圆曲线群的子群。椭圆曲线群具有超过其他DLP群的优点:利用更少的带宽传输和存储公钥,并且能更快的运算。
静态Diffie-Hellman密钥协议是Diffie-Hellman密钥协议的重要的变体,其中一方或两方具有不随时间改变的密钥对。如果Alice具有静态密钥对,则她的私钥x和公钥gx对于所有事务都保持相同。这样的一个优点是Alice可以让授权机构(certificate authority)标记她的公钥,则Bob可以从数据库中查找最终的授权而不用从Alice请求。这样的一种应用是当Bob发送加密邮件给Alice时。Alice不必在Bob能加密邮件之前向Bob发送gx。相反,Bob从数据库中查找gx,所述数据库可以是他的地址簿或其他某种公用字典。对于gx的授权将进一步向Bob保证,Alice(且只有Alice)能够解密该电子邮件。
在某些群中,Diffie-Hellman密钥协议目前普遍使用在IPSec协议中,用于保护虚拟专用网络(VPN)。包含静态变体的Diffie-Hellman密钥协议也是普遍使用的Internet Engineering Task Force(IETF)安全协议,例如Transport Layer Security(TLS)(用于保护网站)、SecureMultipurpose Intemet Message Extensions(S/MIME)(用于保护电子邮件)或Secure Shell(SSH)(用于保护远程登录计算机)的可选择特征。因此,需要使Diffie-Hellman密钥协议尽可能安全。
静态Diffie-Hellman密钥协议的安全性不仅取决于离散对数是难的。特别地,对手确定Alice的静态私钥的方法是通过向Alice发送特别选择的公钥gy并从Alice获得最终共享秘密z=gxy。在多数群中,利用这种主动攻击查找x比直接求解离散对数问题容易得多。
对于本领域技术人员,上述攻击在两个方面不完全是实际的。然而,确定的是,这种属性的攻击是很值得考虑的。
第一,受害者Alice不会向对手暴露共享秘密z。然而,z的目的是应用,而且量化应用z的准确方式是很难限定的。z的任何使用将导致多少有些暴露。因此,译码者(cryptographer)已经发现考虑精选的暗文攻击是明智的,在所述暗文攻击中,受害者暴露了她的私钥运算结果。而且,对精选的暗文攻击表现出抵抗力意味着更弱的攻击也被阻止了。为了谨慎,译码者寻求阻止可能的最强攻击,而不仅是最弱的攻击。因此假设z会暴露既是谨慎的也并非完全不合实际的。
第二,在Diffie-Hellman密钥协议的多数标准化版本中,共享的秘密z只用于一个目的,即得到密钥。为此,采用密钥推导函数(KDF)。Alice将计算k=KDF(z)。密钥推导函数通常选择为一种单向函数,意思是没有仅从k重建z的已知途径。因此,在上述攻击中Alice更有可能将k暴露给对手而不是z。然而,为了执行,攻击需要z。如果Alice仅暴露k,攻击不能用来查找x。因为KDF是单向的,攻击者不能从暴露的k值中恢复z。
在考虑上述攻击之前,已经知道采用KDF具有一些比较不重要的安全利益。其中之一是共享的秘密z经常是与随机数有区别的。因为z是与随机数有区别的,所以作为密钥是不理想的。然而,直到考虑上述攻击,才知道z实际上会泄露关于x的某些信息。
许多协议和Diffie-Hellman密钥协议的实施对于KDF的使用来说并不严格,在一些智能卡实施中,智能卡将z暴露给智能卡阅读器,并且智能卡阅读器应用KDF。在这样的系统中,恶意的智能卡阅读器可能使用攻击和来自智能卡的z值以推断智能卡中的私钥x。在某些协议中,例如基本ElGamal加密协议,设计有Chaum和vanAntwerpen的不可否认的签名,从而实体Alice暴露z作为协议的一部分。因此这些协议易于受到攻击。然而,这两个协议是在知道KDF的任何好处之前设计的。这些协议可以很容易地通过使用KDF修正。实际上,Diffie-Hellman扩展加密方案(DHAES)是由Bellare和Rogaway设计的,设计为ElGamal的改进,其中,在采用z作密钥之前将KDF施加到共享秘密z。
其他的协议存在,然而,它们不容易通过增加KDF进行修正。一种这样的协议是Ford-Kaliski密钥恢复协议。在该协议中,基点g是客户端密码的函数,并且Alice是服务器端。客户端选择随机数y并且发送gy到Alice。为了该协议执行,Alice必须向任何与她一起执行Diffie-Hellman密钥协议的客户端暴露共享的秘密z。从z中,客户端得到静态值gx,该值是客户端密钥和服务器端私钥x两者的函数。因为比普通密码更难猜,静态值gx称为恢复密钥(retrieved key)或硬化密码(password hardening)。密钥恢复或密码硬化是Ford-Kaliski协议的主要目的。客户端通过计算zu=gxyu来实现该目的,其中u使yu在指数空间等于1。如果Alice将KDF施加到z,该协议不执行,因为这样客户端将不能恢复静态值。对手可能建立恶意的客户端以利用z值得到Alice的私钥x。因为对手现在知道了x,猜gx就象猜密码g一样容易。特别地,对手可能能够启动字典搜索以非常迅速地确定硬化密码。因此,这次攻击击败了Ford-Kaliski协议的主要目的。
一个完全不同的方面是静态Diffie-Hellman问题是难的。更准确地,在不知道私钥x的时候难以计算wx。取w=gy表示破解静态Diffie-Hellman协议与查找x一样困难。按照上述攻击这似乎是自相矛盾的,但事实上不是。在上述攻击中,对手是主动的。对手使用受害者解决关于gy的Diffie-Hellman问题。这给了对手解决Diffie-Hellman问题的能力,这相当于查找x的问题。更准确地,在某种因素上说,静态DH问题几乎和查找x一样难。
假如Alice设法防止攻击,比方说利用KDF,则这仍然是正确的:解决静态DH问题几乎和查找x一样难。这为Alice提供了没有人能解决静态Diffie-Hellman问题的保证,这意味着除了她和Bob没有其他人知道私钥y,也没有其他人能计算公共秘密z。这个属性的结果是公知的可证实安全(provable security)。
先前DH问题的可证实安全结果没有涉及静态变体。因此,先前的结果没有就利用Alice的私钥为她提供同样多的保证。而且,没有与先前安全结果相应的已知攻击。关于DH的可证实安全结果的有效性,取决于DH群的选择。因此采用这样的群是理想的:在该群中包括静态DH问题的DH问题是难的。
因此,本发明的目的是避免或减轻上面提到的缺点。
发明内容
在一方面,本发明提供一种选择用于静态Diffie-Helma密钥协议的mod p群以防止对手主动攻击的方法,包括步骤:选择偶数h值,搜索r和n值以满足关系式n=hr+1,其中,r和n是素数,并且搜索一个值t以计算p=tn+1,其中p是素数。
在另一方面,本发明提供了一种选择用于静态Diffie-Helma密钥协议的定义在二元域上的椭圆曲线群以防止对手主动攻击的方法,包括步骤:选择随机曲线,计算曲线上的点数,并且检验曲线上的点数是2n,其中n是素数且n-1满足优选的标准。
仍然在另一方面,本发明提供了一种选择用于静态Diffie-Helma密钥协议的定义在阶数为q的素数域上的椭圆曲线群以防止对手主动攻击的方法,包括步骤:计算n=hr+1,其中,n是素数且n-1满足优选的标准,并且执行关于n的复数乘法方法,由此产生q值和具有阶数n的定义在q值上的椭圆曲线E。
附图说明
在下列结合附图的详细说明中,本发明的特征将会变得更清楚,其中:
图1是密码系统的示意图;
图2表示在一个mod p实施例中的步骤的流程图;
图3表示在第一简化椭圆曲线实施例中的步骤的流程图;
图4表示在第二简化椭圆曲线实施例中的步骤的流程图。
具体实施方式
参考图1,一对通信方A和B通过数据通信链路12连接。通信方A和B中的每一方具有密码单元14,该密码单元根据已建立的协议执行公钥密码运算以确保链路1上通信的安全。密码单元14在密码域(cryptographic domain)内运算,密码域的参数由其他实体共享。
由通信方A、B共享的域参数包括群G、群G的阶数p和具有阶数n的群的生成元(generator)g。
本发明既应用于椭圆曲线群也应用于有限域(finite field)的乘法子群,通常公知的mod p群。因为mod p群更容易理解,首先解释mod p实施例20并在图2中通常地表示。因此,适用于两种情况的本发明的几个方面更容易理解。然而,因为在执行性能上的多种优势,本发明的优选实施例利用了椭圆曲线群。
Mod p实施例
为了简化表达,我们假设在Zp *中的Diffie-Hellman基础(base)或生成元g具有阶数n,n为素数。对于本领域技术人员来说,延伸到g具有非素数阶数的情况是显然的。
域名参数的安全性取决于n-1的整数因子u的大小。如果已知的因子u接近n1/3,则上述攻击10具有大约3n1/3的成本。这与通常的DLP攻击相比相当小,DLP攻击具有大约n1/2的成本。随机数n通常具有接近n1/3的因子u是公知的,因此随机地选择n将不会避免攻击10。在现有技术中,n通常选择为哈希函数(hash function)的输出,哈希函数使n的随机性更加有效,但不会避免攻击。通过适当地选择n,有可能避免具有接近n1/3的因子。应该理解,参数的选择和测试利用计算装置执行,该计算装置被编程以进行必要的计算。该计算的结果是一组域参数,所属域参数可以用于在单元14上实现密码函数。
在第一实施例中,通过选择n=hr+1避免该因子,其中r是素数,h是与r相比相对小并且足够小以至小于n1/3的整数。然后n-1的因子是具有f或fr形式(form),其中f是h的因子。如果h远小于n1/3,则因子f也远小于n1/3,因为f至多为h。如果h远小于n1/3,则r远大于n2/3,从而因子fr远大于n1/3。因此n-1的所有因子将远小于或大于n1/3。因而避免了在静态Diffie-Hellman上的攻击。
已经选择了具有形式hr+1的n,还必需选择p。群理论的标准定理是元素的阶数除它的群的阶数。因为g是Zp *的元素,它的阶数n必须除Zp *的阶数,Zp *的阶数是p-1。因此,对于某个整数t,p=tn+1。
因为群Zp *具有用于求解DLP的指数微积分(index calculus)算法,通常的实践是选择比n大很多的p。该思想是使阶数n的群<g>的一般DLP求解算法具有与Zp *中的指数微积分算法近似的成本。例如,如果n是大约2160并且p是大约21024,则这两种DLP求解算法具有约等于280次群运算的成本。另一种n的通常选择是大约2256,p的选择是大约23072,其中两种DLP求解算法花费大约2128次运算。选择这样一个小n的主要优点是:因为指数较小,在群<g>中求幂更快。
为了获得上述相关大小的p和n,只要选择适当大小的t。关于第一个实例,选择t大约是21024-160=2864,而在第二个实例中t是大约22816。因为p和n是奇数,需要选择t为偶数。关于t mod 3、t mod 5的类似决策(observations)也可以这样做出。
一般的过程是首先选择期望形式的n,然后尝试多个t值,直到找到使p为素数的值。用于在小概率范围内确定p是素数的快速检验是存在的。这些检验迅速地排除不是素数的t的候选值。从而查找合适的t很快。实际上,从n开始是查找p的最佳公知方式。
为了构造具有形式hr+1的n,最初选择一个h的近似大小或h的精确值,然后,通过期望的n的近似大小,确定r的近似大小。事实上,刚刚确定的范围内的各种h和r可以被选择并一一检查其适合性。一个所选择的r值被检验是否是素数,计算数值n=hr+1,然后检验n是否为素数。可以使用筛选(sieving)技术以选择不具有小素因子例如2、3、5的r和n。这减少了进行素数检验的数值r和n的数量。利用h,对n和r可以一起进行筛选,以便更高效。应该注意,因为r和n都是素数并且因此是奇数,所以h必须是偶数。
在选择数值h的近似大小或数值时,需要一定的注意。最小的选择是h=2。然而,尽管h=2防止了上述攻击,但这样的选择也可能太小了,而且还妨碍了应用本技术时的可证明安全结果。
存在可证明安全结果有效的同时防止上述攻击的h的范围。这个范围取决于执行标量乘法所需的群运算的数量。h的最优值似乎是(9/16)(1og2n)2,但是在这个值的0.5到2倍范围内的h值都可以采用。对于近似于该大小的h,对可接受的因子来说,静态Diffie-Hellman问题将会与查找静态Diffie-Hellman私钥一样困难。这个因子可以在h的全部选择范围内优化。而且,通过h的这一选择,上述攻击具有等效于n1/2群运算的成本。这意味着该攻击不比查找x的一般DLP求解算法更好。因此在这种情况下,该攻击是不相关的。
总的来说,首先选择近似(9/16)(log2n)2的阶数的偶数h,然后假如所选择的n是素数,则利用对r和n筛选和素数检验来搜索r和n。最后搜索t以得到p=tn+1为素数。
这个方法的更进一步的效率提高也是有可能的。在这个方法中,搜索n和t,从而p具有使规约模(reduction modulo)p更有效的形式。例如,假如p具有低的汉明权重(Hamming weight),则规约模p更有效。这使得ZP *的群运算模乘(modular multiplication)更有效。
这个方法的更进一步的安全性提高也是有可能的。r值能够选择为可检验的随机数。r值能够选择为哈希函数的输出。
这两种进一步的提高可以合并,即通过选择r为可检验的随机数,然后搜索t值使p具有更有效的模规约。
如果不关注上述攻击,因为这样的对手对于特定协议的特定实施是不实际的,则可以不同地选择Diffie-Hellman群。可能没有必要避免大小接近n1/3的因子u,然而仍然希望静态Diffie-Hellman问题和一般Diffie-Hellman问题是难的。为了使静态Diffie-Hellman问题难,只需要大小近似(9/16)(log2n)2的n-1的因子。在现有数论知识中,随机数n是否会具有这种大小的因子是不清楚的。因此,可以选择随机数n并查找这样的因子,或者构造具有这样大小的因子h的n。后者可以通过选择h、选择任意r(不必是素数),并检测n=hr+1是否是素数来完成。
为了确保临时的、或两面的(two-sided)Diffie-Hellman问题是难的,可以利用现有的可证明安全结果。Maurer和Wolf的结果需要查找辅助群,通常是定义在大小为n的有限域上的椭圆曲线。辅助群要具有平滑的阶数(没有大的素因子)。搜索这样的辅助群需要花费相当大的努力,并且对于较大的n值可能无法达到。实际上,查找这样的群几乎和查找与n同样大小的整数因子一样困难。
den Boer的以前的结果提到:n-1是平滑的,(临时)Diffie-Hellman问题几乎和DLP一样难。
因此,现有技术的进一步加强包括一种选择n=1+s的方法,其中s是平滑整数(smooth integer)。这个s可以作为小素数的乘积找到,从而获得正确的大小。然后检验n是否为素数。可以试验多个s值。在这种方式下选择n的好处在于,通常意味着n-1具有大小足够接近(9/16)(log2n)2的因子,确保静态Diffie-Hellman问题是难的,而不仅是临时Diffie-Hellman问题。
利用这样的n,素数p=tn+1可以如上那样找到。而且,也可能利用这种方法寻找特定结构(例如低汉明权重)的n和p。
椭圆曲线实施例
原则上,上面描述的技术也用于椭圆曲线群的情况。更准确地,n的理想标准是同一的。然而,在这种情况下,阶数为n的生成元g不是ZP *的元素,而是椭圆曲线群E的元素。在mod p的情况下,一旦确定了n,就相对直接地找到群ZP *。对于椭圆曲线不能这么说。对于一个确定的n,查找一个椭圆曲线群E仍然非常困难。
因为椭圆曲线使用户运算比群ZP *更有效,椭圆曲线的情况是本发明的优选实施例。这个实施例的方法比ZP *情况略微复杂,但是值得的。
为了使表达更清楚,介绍并在图3和图4中示出了椭圆曲线实施例中该方法的某些简化形式。
在第一简化形式30中,椭圆曲线定义在二元域(binary field)上。对于这些曲线,确定椭圆曲线群的阶数非常容易。简化方法是选择随机曲线,计算点数,检验点数是2n,其中n是素数,并且n-1满足理想的标准。优选的标准是n-1=hr,其中r是素数并且h近似为(9/16)(log2n)2。替代的标准是n-1是平滑的,假设不关心上述攻击。
在第二简化形式中,椭圆曲线定义在阶数为q的素数域上。q值在确定n值之后确定。n值的选择与上所述mod p群的情况一样。n值可以满足优选的标准或替代的标准。然后,使用如ANSIx9.62或IEEE 13.63中阐述的复数乘法方法来查找q的值和定义在q上的、具有阶数n的椭圆曲线E。
通常,复数乘法方法包括:首先选择q,因为特定的q值为用户提供更好的效率。然而,如果首先选择n,复数乘法方法也能实施。一旦在复数乘法方法的第一阶段发现q和n具有正确的数论关系,第二阶段确定定义椭圆曲线E的系数。
第二简化方法的缺点是作为结果的q在n的哈斯区间(Hasse interval)中具有或多或少的随机数的形式,所述哈斯区间是距离n大约n1/2范围之内的所有整数。出于更好的用户效率的原因,q的特定形式是更理想的,例如在二元展开中的低汉明权重。
换句话说,对于q和n都具有特定的形式是理想的。q的形式是为了效率,而n的形式是为了安全性。为此,对复数乘法方法的第一阶段略微修改。尝试期望的特定形式的q和n,然后检验这对值以便看它们是否满足复数乘法(CM)方法要求的条件。这个条件相对容易直接检验。一旦给定q,则求解满足该条件的n不容易,反之亦然。
复数乘法的第一阶段的修改是尝试多个具有期望的形式的q和n的不同对,检验q和n的CM方法条件,重复直至CM条件满足,然后利用CM方法的通常过程查找椭圆曲线E的定义系数a和b。
CM方法是公知的方法,但是它的修改形式不是公知的。利用如本发明优选实施例描述的CM方法的修改形式,能够找到非常有效并非常安全的Diffie-Hellman椭圆曲线群。
以一个实例解释这个方法的生命力。利用替代的标准,即n-1是平滑的,发明人已经发现数值对n=1+55(2286)和q=9+55(2288)都是素数。CM方法的领域内的技术人员应该理解,这个数值对的判别式是55。这个判别式在kronecker类数(kronecker class number)大于一的意义上是非平凡的,所以椭圆曲线的自同态环(endomorphism ring)不是唯一的因数分解域。特别地,这意味着不能从预定表中找到椭圆曲线E的系数a和b并且必须通过求解阶数为q的有限域上的适度大阶数的多项式方程来计算。
如上所述,该技术可以用于产生具有理想特征的域参数。产生这些特征的方式还有助于检验由第三方提供的域参数的效力以确保它们不易受到攻击。可以检验参数以确保p和n的值满足要求的形式。假如它们不满足标准,则可以拒绝域参数。
尽管本发明结合特定实施例描述,不背离由所附权利要求书界定的本发明精神和范围的各种修改对于本领域技术人员是显而易见的。上面所有引用的参考文件的整个内容作为引用结合于此。
Claims (11)
1.一种由通信方计算共享秘密的方法,所述通信方包括密码单元和私钥,所述方法包括:
所述密码单元获得另一通信方的公钥;
所述密码单元通过使用所述通信方的私钥和所述另一通信方的公钥来计算所述共享秘密;以及
其中,所述另一通信方的公钥和所述共享秘密是具有阶数n的群中的元素,n是使得n-1具有远大于n2/3的素因子r的素数。
2.根据权利要求1所述的方法,其中,所述群是定义在有限域上的椭圆曲线群。
3.根据权利要求2所述的方法,其中,使用复数乘法方法来确定所述椭圆曲线群,在所述复数乘法方法中,在确定定义所述群的系数之前确定所述有限域的大小和阶数n。
4.根据权利要求1所述的方法,其中,所述群是有限域的乘法子群。
5.根据权利要求4所述的方法,其中,首先获得所述素因子r,再获得n,然后计算所述有限域的大小。
6.根据权利要求1至5中任意一项所述的方法,其中,在建立加密密钥时使用所述共享秘密。
7.根据权利要求1至5中任意一项所述的方法,其中,在Ford-Kaliski密钥恢复协议中使用所述共享秘密。
8.根据权利要求1至5中任意一项所述的方法,其中,n具有形式n=hr+1,其中,h是远小于n1/3和r的整数。
9.根据权利要求8所述的方法,其中,h在(9/32)(log2n)2和(9/8)(log2n)2之间的范围内。
10.根据权利要求8所述的方法,其中,h近似为(9/16)(log2n)2。
11.一种包括密码单元的通信方,所述密码单元被配置用于根据权利要求1至10中任意一项所述的方法来计算共享秘密。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
IB2004003699 | 2004-11-11 | ||
WOPCT/IB2004/003699 | 2004-11-11 | ||
US62688304P | 2004-11-12 | 2004-11-12 | |
US60/626,883 | 2004-11-12 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200580046419.XA Division CN101099328B (zh) | 2004-11-11 | 2005-11-11 | 定制的静态Diffie-Helman群 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102170351A CN102170351A (zh) | 2011-08-31 |
CN102170351B true CN102170351B (zh) | 2014-02-19 |
Family
ID=36336252
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200580046419.XA Active CN101099328B (zh) | 2004-11-11 | 2005-11-11 | 定制的静态Diffie-Helman群 |
CN201110078763.4A Active CN102170351B (zh) | 2004-11-11 | 2005-11-11 | 定制的静态Diffie-Hellman群 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200580046419.XA Active CN101099328B (zh) | 2004-11-11 | 2005-11-11 | 定制的静态Diffie-Helman群 |
Country Status (6)
Country | Link |
---|---|
US (1) | US8588409B2 (zh) |
EP (1) | EP1815635B9 (zh) |
JP (2) | JP5690465B2 (zh) |
CN (2) | CN101099328B (zh) |
CA (1) | CA2587618C (zh) |
WO (1) | WO2006051402A1 (zh) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8438115B2 (en) * | 2005-09-23 | 2013-05-07 | Pitney Bowes Inc. | Method of securing postage data records in a postage printing device |
JP4688886B2 (ja) * | 2006-01-11 | 2011-05-25 | 三菱電機株式会社 | 楕円曲線暗号パラメータ生成装置及び楕円曲線暗号システム及び楕円曲線暗号パラメータ生成プログラム |
DE102006013515A1 (de) * | 2006-03-23 | 2007-10-04 | Siemens Ag | Kryptographisches Verfahren mit elliptischen Kurven |
JP5328186B2 (ja) * | 2008-03-21 | 2013-10-30 | ルネサスエレクトロニクス株式会社 | データ処理システム及びデータ処理方法 |
US8345879B2 (en) * | 2008-04-25 | 2013-01-01 | International Business Machines Corporation | Securing wireless body sensor networks using physiological data |
US8707042B2 (en) * | 2008-08-28 | 2014-04-22 | Red Hat, Inc. | Sharing keys between cooperating parties |
DE102008061483A1 (de) | 2008-12-10 | 2010-06-24 | Siemens Aktiengesellschaft | Verfahren und Vorrichtung zum Verarbeiten von Daten |
KR101166129B1 (ko) * | 2011-05-31 | 2012-07-23 | 서울대학교산학협력단 | 사전계산 테이블을 이용한 이산대수 계산 방법 및 그 장치 |
TWI502947B (zh) * | 2012-04-12 | 2015-10-01 | Jintai Ding | New cryptographic system and method based on mismatching |
JP6571193B2 (ja) * | 2014-08-22 | 2019-09-04 | ノバ サウスイースタン ユニバーシティーNova Southeastern University | クロネッカー積を使用するデータアダプティブ圧縮およびデータ暗号化 |
CN106209739B (zh) * | 2015-05-05 | 2019-06-04 | 科大国盾量子技术股份有限公司 | 云存储方法及系统 |
US10129026B2 (en) | 2016-05-03 | 2018-11-13 | Certicom Corp. | Method and system for cheon resistant static diffie-hellman security |
US10355859B2 (en) * | 2017-03-27 | 2019-07-16 | Certicom Corp. | Method and system for selecting a secure prime for finite field diffie-hellman |
CN108228138B (zh) * | 2017-12-28 | 2021-12-10 | 南京航空航天大学 | 一种sidh中特殊域快速模乘的方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1507720A (zh) * | 2002-01-17 | 2004-06-23 | 株式会社东芝 | 安全数据传输链接 |
US6778666B1 (en) * | 1999-03-15 | 2004-08-17 | Lg Electronics Inc. | Cryptographic method using construction of elliptic curve cryptosystem |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5627893A (en) * | 1992-12-22 | 1997-05-06 | Telstra Corporation Limited | Cryptographic method |
ATE246418T1 (de) * | 1997-02-14 | 2003-08-15 | Citibank Na | Aufbau eines zyklotomischen polynoms eines kryptosystems basierend auf dem diskreten logarithmus über endliche körper |
US6252959B1 (en) * | 1997-05-21 | 2001-06-26 | Worcester Polytechnic Institute | Method and system for point multiplication in elliptic curve cryptosystem |
DE69834431T3 (de) | 1998-01-02 | 2009-09-10 | Cryptography Research Inc., San Francisco | Leckresistentes kryptographisches verfahren und vorrichtung |
US6446205B1 (en) * | 1998-12-10 | 2002-09-03 | Citibank, N.A. | Cryptosystems with elliptic curves chosen by users |
US7200225B1 (en) * | 1999-11-12 | 2007-04-03 | Richard Schroeppel | Elliptic curve point ambiguity resolution apparatus and method |
US20020055962A1 (en) * | 1999-11-12 | 2002-05-09 | Richard Schroeppel | Automatically solving equations in finite fields |
US7359507B2 (en) * | 2000-03-10 | 2008-04-15 | Rsa Security Inc. | Server-assisted regeneration of a strong secret from a weak secret |
US7308469B2 (en) * | 2001-06-15 | 2007-12-11 | Robert Joseph Harley | Method for generating secure elliptic curves using an arithmetic-geometric mean iteration |
JP2003233306A (ja) * | 2002-02-07 | 2003-08-22 | Nippon Telegr & Teleph Corp <Ntt> | 公開鍵暗号安全性評価方法及び装置及び公開鍵暗号安全性評価プログラム及び公開鍵暗号安全性評価プログラムを格納した記憶媒体 |
-
2005
- 2005-11-11 CN CN200580046419.XA patent/CN101099328B/zh active Active
- 2005-11-11 EP EP05801157.8A patent/EP1815635B9/en active Active
- 2005-11-11 WO PCT/IB2005/003380 patent/WO2006051402A1/en active Application Filing
- 2005-11-11 CA CA2587618A patent/CA2587618C/en active Active
- 2005-11-11 CN CN201110078763.4A patent/CN102170351B/zh active Active
- 2005-11-11 JP JP2007540746A patent/JP5690465B2/ja active Active
- 2005-11-14 US US11/272,150 patent/US8588409B2/en active Active
-
2011
- 2011-10-25 JP JP2011233823A patent/JP2012019559A/ja active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6778666B1 (en) * | 1999-03-15 | 2004-08-17 | Lg Electronics Inc. | Cryptographic method using construction of elliptic curve cryptosystem |
CN1507720A (zh) * | 2002-01-17 | 2004-06-23 | 株式会社东芝 | 安全数据传输链接 |
Also Published As
Publication number | Publication date |
---|---|
US20070071237A1 (en) | 2007-03-29 |
CN102170351A (zh) | 2011-08-31 |
CA2587618C (en) | 2016-04-05 |
EP1815635A4 (en) | 2011-06-08 |
CA2587618A1 (en) | 2006-05-18 |
JP2012019559A (ja) | 2012-01-26 |
CN101099328B (zh) | 2011-05-18 |
US8588409B2 (en) | 2013-11-19 |
WO2006051402A1 (en) | 2006-05-18 |
EP1815635A1 (en) | 2007-08-08 |
EP1815635B9 (en) | 2014-01-15 |
EP1815635B1 (en) | 2013-09-25 |
CN101099328A (zh) | 2008-01-02 |
JP2008520144A (ja) | 2008-06-12 |
JP5690465B2 (ja) | 2015-03-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102170351B (zh) | 定制的静态Diffie-Hellman群 | |
EP0503119B1 (en) | Public key cryptographic system using elliptic curves over rings | |
US7533270B2 (en) | Signature schemes using bilinear mappings | |
EP1467512A1 (en) | Encryption process employing chaotic maps and digital signature process | |
KR100989185B1 (ko) | Rsa기반 패스워드 인증을 통한 세션키 분배방법 | |
JP2006210964A (ja) | エルガマル暗号による情報授受伝達方法及び装置 | |
Hwang et al. | EPA: An efficient password-based protocol for authenticated key exchange | |
Groza et al. | On chained cryptographic puzzles | |
Galteland et al. | Subliminal channels in post-quantum digital signature schemes | |
Lv et al. | Ring authenticated encryption: a new type of authenticated encryption | |
Wang | Signer‐admissible strong designated verifier signature from bilinear pairings | |
Farhadi et al. | A secure and efficient multi cloud-based data storage and retrieval using hash-based verifiable secret sharing scheme | |
US20220294605A1 (en) | Blockchain-based public parameter generation method against backdoor attacks | |
JP5392741B2 (ja) | Rsaをベースとしたパスワード認証方式及びその応用 | |
Clupek et al. | Light-weight Mutual Authentication with Non-repudiation | |
Yu et al. | A multi-function provable data possession scheme in cloud computing | |
US20040111602A1 (en) | Public key cryptograph communication method | |
Deng et al. | Analysis and improvement of a fair remote retrieval protocol for private medical records | |
Hevia | Introduction to provable security | |
EP1921790A1 (en) | Signature schemes using bilinear mappings | |
Purushothama et al. | Provable data possession scheme with constant proof size for outsourced data in public cloud | |
ROBLES | The RSA Cryptosystem | |
Sarlabous | Introduction to cryptography | |
Chum | Hash functions, Latin squares and secret sharing schemes | |
Raghavendran et al. | Security Challenges for Public Cloud |
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 | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20191031 Address after: Voight, Ontario, Canada Patentee after: Blackberry Ltd. Address before: Ontario, Canada Patentee before: Seldikam Company |