热词 | diffie hellman alice 素数 椭圆曲线 攻击 阶数 zp bob 协议 | ||
专利类型 | 发明授权 | 法律事件 | 公开; 实质审查; 授权; 权利转移; |
专利有效性 | 有效专利 | 当前状态 | 授权 |
申请号 | CN201110078763.4 | 申请日 | 2005-11-11 |
公开(公告)号 | CN102170351B | 公开(公告)日 | 2014-02-19 |
申请人 | 塞尔蒂卡姆公司; | 申请人类型 | 企业 |
发明人 | 丹尼尔·R·L·布朗; 罗伯特·P·加朗特; 斯科特·A·万斯通; | 第一发明人 | 丹尼尔·R·L·布朗 |
权利人 | 塞尔蒂卡姆公司 | 权利人类型 | 企业 |
当前权利人 | 马利基创新有限公司 | 当前权利人类型 | 企业 |
省份 | 当前专利权人所在省份: | 城市 | 当前专利权人所在城市: |
具体地址 | 当前专利权人所在详细地址:加拿大安大略省 | 邮编 | 当前专利权人邮编: |
主IPC国际分类 | H04L9/30 | 所有IPC国际分类 | H04L9/30 ; G06F7/72 |
专利引用数量 | 3 | 专利被引用数量 | 0 |
专利权利要求数量 | 11 | 专利文献类型 | B |
专利代理机构 | 中科专利商标代理有限责任公司 | 专利代理人 | 王波波; |
摘要 | 本 发明 公开了选择用于静态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。 | ||
权利要求 | 1.一种由通信方计算共享秘密的方法,所述通信方包括密码单元和私钥,所述方法包括: |
||
说明书全文 | 定制的静态Diffie-Hellman群技术领域[0002] 本发明涉及密码系统领域的静态群(static group)。 背景技术[0003] 在1975年由Diffie和Hellman引入的公钥密码系统使不需要预先共享密码(pre-shared secret)以及具有不可否认性(non-repudiation property)的数字签名的加密通信成为可能。 [0004] 公钥加密系统的Diffie-Hellman(DH)协议最具独创性的方面是使用了一种称为群的数学结构,在该结构中,一个特定问题,离散对数问题(discrete logarithm problem)是很难处理的。 [0005] 一个群只是一组元素和作用于任意两个元素的单个运算。常见的群的实例包括:在加法运算下的整数(包含零和负整数)、在加法运算下的有理数、以及在乘法运算下的非零有理数。这些常见的实例是无限群,但是还存在有限(或离散)群。部分地由于群的元素可以用固定位数传送,所以密码系统通常对有限群更感兴趣。有限群的实例通常为本领域公知。 [0006] 最常见的实例是基于模运算(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可以是任意整数。 [0007] 从1至p-1的整数集合在模乘运算下形成另一个群,其中s和t组合变为st mod *p。这个群用ZP 表示,通常称为mod p群。更一般地,p可以是具有略微不同运算的素数的任意次幂。当书写这些群的运算时,如果在上下文中很清楚,符号mod p经常省略。 [0008] 群G的子群是G中的元素子集的群并且具有与G相同的运算。例如,群ZP*具有阶数为2的子群,所述子群的元素是1和p-1。更通常地,对于群中的任意元素g,存在包含x g 表示x个g的乘积。在具有加号的群中,例如ZP,幂g 被替换记作xg。元素g是 生成元。假如一个群具有生成元,则它是循环的,从而 [0009] 群的阶数是元素的数量,群ZP具有阶数p并且群ZP*具有阶数p-1。元素g的阶数是子群 [0010] 在运算记作乘法的群中,离散对数问题可以陈述为:给定g和w,查找整数x,使wx x=g,其中g 表示x个g的乘积。这个问题通常在存在这样的整数x的情况下提出。也就是说,w是 [0011] 在某些离散群中,离散对数问题(DLP)难以解决。Diffie和Hellman利用了DLP“难(hard)”这一事实,以提供针对公钥加密的第一可行解法。在这种情况下,Alice选择随机整x y数x,发送给Bob群元素g,Bob选择随机数y,并且发送给Alice群元素g。随后,Alice计y x x y xy yx 算z=(g),Bob计算z’=(g)。显然z=z’=g =g ,所以Alice和Bob可以计算同一个值。假如没有其他人能够计算z,则Alice和Bob已经对共享秘密(secret)达成一致。 则该共享秘密可以用于加密Alice和Bob之间传递的消息。这个协议是Diffie-Hellman密钥协议。在这个协议之前,Alice和Bob不得不预先会面以秘密地对z达成一致。这个协议使Alice和Bob免于预先会面。 [0012] 因为数值gx和gy是公开的,所以这是所谓的公钥加密。它们被称为公钥,而x和xy被称为私钥。数据对(x,g)称为密钥对。对手Eve看到公钥。假如Eve能够解决DLP,x 则她能够从g和g 找到x。利用x,Eve能够以与Alice相同的方式计算z,即利用Bob的y 公钥g 和Alice的私钥x。因此,共享的秘密不再是秘密的,Eve能够利用它解密Alice和Bob互相发送的加密消息。因此,Diffie-Hellman密钥协议的安全性的先决条件是DLP是“难”题。Eve不能解决DLP。 [0013] 幸运地,存在译码者认为DLP难的群。DLP难的群主要是两类公知的群,即有限域的乘法子群,以及椭圆曲线群的子群。椭圆曲线群具有超过其他DLP群的优点:利用更少的带宽传输和存储公钥,并且能更快的运算。 [0014] 静态Diffie-Hellman密钥协议是Diffie-Hellman密钥协议的重要的变体,其中一方或两方具有不随时间改变的密钥对。如果Alice具有静态密钥对,则她的私钥x和公x钥g 对于所有事务都保持相同。这样的一个优点是Alice可以让授权机构(certificate authority)标记她的公钥,则Bob可以从数据库中查找最终的授权而不用从Alice请求。 这样的一种应用是当Bob发送加密邮件给Alice时。Alice不必在Bob能加密邮件之前向x x Bob发送g。相反,Bob从数据库中查找g,所述数据库可以是他的地址簿或其他某种公用x 字典。对于g 的授权将进一步向Bob保证,Alice(且只有Alice)能够解密该电子邮件。 [0015] 在某些群中,Diffie-Hellman密钥协议目前普遍使用在IPSec协议中,用于保护虚拟专用网络(VPN)。包含静态变体的Diffie-Hellman密钥协议也是普遍使用的Internet Engineering Task Force(IETF)安全协议,例如Transport Layer Security(TLS)(用于保护网站)、Secure Multipurpose Intemet Message Extensions(S/MIME)(用于保护电子邮件)或Secure Shell(SSH)(用于保护远程登录计算机)的可选择特征。因此,需要使Diffie-Hellman密钥协议尽可能安全。 [0016] 静态Diffie-Hellman密钥协议的安全性不仅取决于离散对数是难的。特别地,对y手确定Alice的静态私钥的方法是通过向Alice发送特别选择的公钥g 并从Alice获得xy 最终共享秘密z=g 。在多数群中,利用这种主动攻击查找x比直接求解离散对数问题容易得多。 [0017] 对于本领域技术人员,上述攻击在两个方面不完全是实际的。然而,确定的是,这种属性的攻击是很值得考虑的。 [0018] 第一,受害者Alice不会向对手暴露共享秘密z。然而,z的目的是应用,而且量化应用z的准确方式是很难限定的。z的任何使用将导致多少有些暴露。因此,译码者(cryptographer)已经发现考虑精选的暗文攻击是明智的,在所述暗文攻击中,受害者暴露了她的私钥运算结果。而且,对精选的暗文攻击表现出抵抗力意味着更弱的攻击也被阻止了。为了谨慎,译码者寻求阻止可能的最强攻击,而不仅是最弱的攻击。因此假设z会暴露既是谨慎的也并非完全不合实际的。 [0019] 第二,在Diffie-Hellman密钥协议的多数标准化版本中,共享的秘密z只用于一个目的,即得到密钥。为此,采用密钥推导函数(KDF)。Alice将计算k=KDF(z)。密钥推导函数通常选择为一种单向函数,意思是没有仅从k重建z的已知途径。因此,在上述攻击中Alice更有可能将k暴露给对手而不是z。然而,为了执行,攻击需要z。如果Alice仅暴露k,攻击不能用来查找x。因为KDF是单向的,攻击者不能从暴露的k值中恢复z。 [0020] 在考虑上述攻击之前,已经知道采用KDF具有一些比较不重要的安全利益。其中之一是共享的秘密z经常是与随机数有区别的。因为z是与随机数有区别的,所以作为密钥是不理想的。然而,直到考虑上述攻击,才知道z实际上会泄露关于x的某些信息。 [0021] 许多协议和Diffie-Hellman密钥协议的实施对于KDF的使用来说并不严格,在一些智能卡实施中,智能卡将z暴露给智能卡阅读器,并且智能卡阅读器应用KDF。在这样的系统中,恶意的智能卡阅读器可能使用攻击和来自智能卡的z值以推断智能卡中的私钥x。在某些协议中,例如基本ElGamal加密协议,设计有Chaum和vanAntwerpen的不可否认的签名,从而实体Alice暴露z作为协议的一部分。因此这些协议易于受到攻击。然而,这两个协议是在知道KDF的任何好处之前设计的。这些协议可以很容易地通过使用KDF修正。 实际上,Diffie-Hellman扩展加密方案(DHAES)是由Bellare和Rogaway设计的,设计为ElGamal的改进,其中,在采用z作密钥之前将KDF施加到共享秘密z。 [0022] 其他的协议存在,然而,它们不容易通过增加KDF进行修正。一种这样的协议是Ford-Kaliski密钥恢复协议。在该协议中,基点g是客户端密码的函数,并且Alice是服y务器端。客户端选择随机数y并且发送g 到Alice。为了该协议执行,Alice必须向任何与她一起执行Diffie-Hellman密钥协议的客户端暴露共享的秘密z。从z中,客户端得到x 静态值g,该值是客户端密钥和服务器端私钥x两者的函数。因为比普通密码更难猜,静态x 值g 称为恢复密钥(retrieved key)或硬化密码(password hardening)。密钥恢复或密u xyu 码硬化是Ford-Kaliski协议的主要目的。客户端通过计算z =g 来实现该目的,其中u使yu在指数空间等于1。如果Alice将KDF施加到z,该协议不执行,因为这样客户端将不能恢复静态值。对手可能建立恶意的客户端以利用z值得到Alice的私钥x。因为对手现x 在知道了x,猜g 就象猜密码g一样容易。特别地,对手可能能够启动字典搜索以非常迅速地确定硬化密码。因此,这次攻击击败了Ford-Kaliski协议的主要目的。 [0023] 一个完全不同的方面是静态Diffie-Hellman问题是难的。更准确地,在不知道私x y钥x的时候难以计算w。取w=g 表示破解静态Diffie-Hellman协议与查找x一样困难。 按照上述攻击这似乎是自相矛盾的,但事实上不是。在上述攻击中,对手是主动的。对手使y 用受害者解决关于g 的Diffie-Hellman问题。这给了对手解决Diffie-Hellman问题的能力,这相当于查找x的问题。更准确地,在某种因素上说,静态DH问题几乎和查找x一样难。 [0024] 假如Alice设法防止攻击,比方说利用KDF,则这仍然是正确的:解决静态DH问题几乎和查找x一样难。这为Alice提供了没有人能解决静态Diffie-Hellman问题的保证,这意味着除了她和Bob没有其他人知道私钥y,也没有其他人能计算公共秘密z。这个属性的结果是公知的可证实安全(provable security)。 [0025] 先前DH问题的可证实安全结果没有涉及静态变体。因此,先前的结果没有就利用Alice的私钥为她提供同样多的保证。而且,没有与先前安全结果相应的已知攻击。关于DH的可证实安全结果的有效性,取决于DH群的选择。因此采用这样的群是理想的:在该群中包括静态DH问题的DH问题是难的。 [0026] 因此,本发明的目的是避免或减轻上面提到的缺点。 发明内容[0027] 在一方面,本发明提供一种选择用于静态Diffie-Helma密钥协议的mod p群以防止对手主动攻击的方法,包括步骤:选择偶数h值,搜索r和n值以满足关系式n=hr+1,其中,r和n是素数,并且搜索一个值t以计算p=tn+1,其中p是素数。 [0028] 在另一方面,本发明提供了一种选择用于静态Diffie-Helma密钥协议的定义在二元域上的椭圆曲线群以防止对手主动攻击的方法,包括步骤:选择随机曲线,计算曲线上的点数,并且检验曲线上的点数是2n,其中n是素数且n-1满足优选的标准。 [0029] 仍然在另一方面,本发明提供了一种选择用于静态Diffie-Helma密钥协议的定义在阶数为q的素数域上的椭圆曲线群以防止对手主动攻击的方法,包括步骤:计算n=hr+1,其中,n是素数且n-1满足优选的标准,并且执行关于n的复数乘法方法,由此产生q值和具有阶数n的定义在q值上的椭圆曲线E。附图说明 [0030] 在下列结合附图的详细说明中,本发明的特征将会变得更清楚,其中: [0031] 图1是密码系统的示意图; [0033] 图3表示在第一简化椭圆曲线实施例中的步骤的流程图; [0034] 图4表示在第二简化椭圆曲线实施例中的步骤的流程图。 具体实施方式[0035] 参考图1,一对通信方A和B通过数据通信链路12连接。通信方A和B中的每一方具有密码单元14,该密码单元根据已建立的协议执行公钥密码运算以确保链路1上通信的安全。密码单元14在密码域(cryptographic domain)内运算,密码域的参数由其他实体共享。 [0036] 由通信方A、B共享的域参数包括群G、群G的阶数p和具有阶数n的群的生成元(generator)g。 [0037] 本发明既应用于椭圆曲线群也应用于有限域(finite field)的乘法子群,通常公知的mod p群。因为mod p群更容易理解,首先解释mod p实施例20并在图2中通常地表示。因此,适用于两种情况的本发明的几个方面更容易理解。然而,因为在执行性能上的多种优势,本发明的优选实施例利用了椭圆曲线群。 [0038] Mod p实施例 [0039] 为了简化表达,我们假设在Zp*中的Diffie-Hellman基础(base)或生成元g具有阶数n,n为素数。对于本领域技术人员来说,延伸到g具有非素数阶数的情况是显然的。 [0040] 域名参数的安全性取决于n-1的整数因子u的大小。如果已知的因子u接近n1/3,1/3 则上述攻击10具有大约3n 的成本。这与通常的DLP攻击相比相当小,DLP攻击具有大 1/2 1/3 约n 的成本。随机数n通常具有接近n 的因子u是公知的,因此随机地选择n将不会避免攻击10。在现有技术中,n通常选择为哈希函数(hash function)的输出,哈希函数使n 1/3 的随机性更加有效,但不会避免攻击。通过适当地选择n,有可能避免具有接近n 的因子。 应该理解,参数的选择和测试利用计算装置执行,该计算装置被编程以进行必要的计算。该计算的结果是一组域参数,所属域参数可以用于在单元14上实现密码函数。 [0041] 在第一实施例中,通过选择n=hr+1避免该因子,其中r是素数,h是与r相比相1/3 对小并且足够小以至小于n 的整数。然后n-1的因子是具有f或fr形式(form),其中 1/3 1/3 f是h的因子。如果h远小于n ,则因子f也远小于n ,因为f至多为h。如果h远小于 1/3 2/3 1/3 1/3 n ,则r远大于n ,从而因子fr远大于n 。因此n-1的所有因子将远小于或大于n 。 因而避免了在静态Diffie-Hellman上的攻击。 [0042] 已经选择了具有形式hr+1的n,还必需选择p。群理论的标准定理是元素的阶数* * *除它的群的阶数。因为g是Zp 的元素,它的阶数n必须除Zp 的阶数,Zp 的阶数是p-1。因此,对于某个整数t,p=tn+1。 [0043] 因为群Zp*具有用于求解DLP的指数微积分(index calculus)算法,通常的实践*是选择比n大很多的p。该思想是使阶数n的群 160 1024 指数微积分算法近似的成本。例如,如果n是大约2 并且p是大约2 ,则这两种DLP求 80 256 解算法具有约等于2 次群运算的成本。另一种n的通常选择是大约2 ,p的选择是大约 3072 128 2 ,其中两种DLP求解算法花费大约2 次运算。选择这样一个小n的主要优点是:因为指数较小,在群 [0044] 为了获得上述相关大小的p和n,只要选择适当大小的t。关于第一个实例,选择t1024-160 864 2816 大约是2 =2 ,而在第二个实例中t是大约2 。因为p和n是奇数,需要选择t为偶数。关于t mod 3、t mod 5的类似决策(observations)也可以这样做出。 [0045] 一般的过程是首先选择期望形式的n,然后尝试多个t值,直到找到使p为素数的值。用于在小概率范围内确定p是素数的快速检验是存在的。这些检验迅速地排除不是素数的t的候选值。从而查找合适的t很快。实际上,从n开始是查找p的最佳公知方式。 [0046] 为了构造具有形式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必须是偶数。 [0047] 在选择数值h的近似大小或数值时,需要一定的注意。最小的选择是h=2。然而,尽管h=2防止了上述攻击,但这样的选择也可能太小了,而且还妨碍了应用本技术时的可证明安全结果。 [0048] 存在可证明安全结果有效的同时防止上述攻击的h的范围。这个范围取决于执2 行标量乘法所需的群运算的数量。h的最优值似乎是(9/16)(1og2n),但是在这个值的 0.5到2倍范围内的h值都可以采用。对于近似于该大小的h,对可接受的因子来说,静态Diffie-Hellman问题将会与查找静态Diffie-Hellman私钥一样困难。这个因子可以在h 1/2 的全部选择范围内优化。而且,通过h的这一选择,上述攻击具有等效于n 群运算的成本。 这意味着该攻击不比查找x的一般DLP求解算法更好。因此在这种情况下,该攻击是不相关的。 [0049] 总的来说,首先选择近似(9/16)(log2n)2的阶数的偶数h,然后假如所选择的n是素数,则利用对r和n筛选和素数检验来搜索r和n。最后搜索t以得到p=tn+1为素数。 [0050] 这个方法的更进一步的效率提高也是有可能的。在这个方法中,搜索n和t,从而p具有使规约模(reduction modulo)p更有效的形式。例如,假如p具有低的汉*明权重(Hamming weight),则规约模p更有效。这使得ZP 的群运算模乘(modular multiplication)更有效。 [0051] 这个方法的更进一步的安全性提高也是有可能的。r值能够选择为可检验的随机数。r值能够选择为哈希函数的输出。 [0052] 这两种进一步的提高可以合并,即通过选择r为可检验的随机数,然后搜索t值使p具有更有效的模规约。 [0053] 如果不关注上述攻击,因为这样的对手对于特定协议的特定实施是不实际的,1/3 则可以不同地选择Diffie-Hellman群。可能没有必要避免大小接近n 的因子u,然而仍然希望静态Diffie-Hellman问题和一般Diffie-Hellman问题是难的。为了使静态 2 Diffie-Hellman问题难,只需要大小近似(9/16)(log2n) 的n-1的因子。在现有数论知识中,随机数n是否会具有这种大小的因子是不清楚的。因此,可以选择随机数n并查找这样的因子,或者构造具有这样大小的因子h的n。后者可以通过选择h、选择任意r(不必是素数),并检测n=hr+1是否是素数来完成。 [0054] 为了确保临时的、或两面的(two-sided)Diffie-Hellman问题是难的,可以利用现有的可证明安全结果。Maurer和Wolf的结果需要查找辅助群,通常是定义在大小为n的有限域上的椭圆曲线。辅助群要具有平滑的阶数(没有大的素因子)。搜索这样的辅助群需要花费相当大的努力,并且对于较大的n值可能无法达到。实际上,查找这样的群几乎和查找与n同样大小的整数因子一样困难。 [0055] den Boer的以前的结果提到:n-1是平滑的,(临时)Diffie-Hellman问题几乎和DLP一样难。 [0056] 因此,现有技术的进一步加强包括一种选择n=1+s的方法,其中s是平滑整数(smooth integer)。这个s可以作为小素数的乘积找到,从而获得正确的大小。然后检验n是否为素数。可以试验多个s值。在这种方式下选择n的好处在于,通常意味着n-1具有2 大小足够接近(9/16)(log2n) 的因子,确保静态Diffie-Hellman问题是难的,而不仅是临时Diffie-Hellman问题。 [0057] 利用这样的n,素数p=tn+1可以如上那样找到。而且,也可能利用这种方法寻找特定结构(例如低汉明权重)的n和p。 [0058] 椭圆曲线实施例 [0059] 原则上,上面描述的技术也用于椭圆曲线群的情况。更准确地,n的理想标准是同*一的。然而,在这种情况下,阶数为n的生成元g不是ZP 的元素,而是椭圆曲线群E的元素。 * 在mod p的情况下,一旦确定了n,就相对直接地找到群ZP。对于椭圆曲线不能这么说。对于一个确定的n,查找一个椭圆曲线群E仍然非常困难。 [0060] 因为椭圆曲线使用户运算比群ZP*更有效,椭圆曲线的情况是本发明的优选实施*例。这个实施例的方法比ZP 情况略微复杂,但是值得的。 [0061] 为了使表达更清楚,介绍并在图3和图4中示出了椭圆曲线实施例中该方法的某些简化形式。 [0062] 在第一简化形式30中,椭圆曲线定义在二元域(binary field)上。对于这些曲线,确定椭圆曲线群的阶数非常容易。简化方法是选择随机曲线,计算点数,检验点数是2n,其中n是素数,并且n-1满足理想的标准。优选的标准是n-1=hr,其中r是素数并且h近2 似为(9/16)(log2n)。替代的标准是n-1是平滑的,假设不关心上述攻击。 [0063] 在第二简化形式中,椭圆曲线定义在阶数为q的素数域上。q值在确定n值之后确定。n值的选择与上所述mod p群的情况一样。n值可以满足优选的标准或替代的标准。然后,使用如ANSIx9.62或IEEE 13.63中阐述的复数乘法方法来查找q的值和定义在q上的、具有阶数n的椭圆曲线E。 [0064] 通常,复数乘法方法包括:首先选择q,因为特定的q值为用户提供更好的效率。然而,如果首先选择n,复数乘法方法也能实施。一旦在复数乘法方法的第一阶段发现q和n具有正确的数论关系,第二阶段确定定义椭圆曲线E的系数。 [0065] 第二简化方法的缺点是作为结果的q在n的哈斯区间(Hasse interval)中具有1/2 或多或少的随机数的形式,所述哈斯区间是距离n大约n 范围之内的所有整数。出于更好的用户效率的原因,q的特定形式是更理想的,例如在二元展开中的低汉明权重。 [0066] 换句话说,对于q和n都具有特定的形式是理想的。q的形式是为了效率,而n的形式是为了安全性。为此,对复数乘法方法的第一阶段略微修改。尝试期望的特定形式的q和n,然后检验这对值以便看它们是否满足复数乘法(CM)方法要求的条件。这个条件相对容易直接检验。一旦给定q,则求解满足该条件的n不容易,反之亦然。 [0067] 复数乘法的第一阶段的修改是尝试多个具有期望的形式的q和n的不同对,检验q和n的CM方法条件,重复直至CM条件满足,然后利用CM方法的通常过程查找椭圆曲线E的定义系数a和b。 [0068] CM方法是公知的方法,但是它的修改形式不是公知的。利用如本发明优选实施例描述的CM方法的修改形式,能够找到非常有效并非常安全的Diffie-Hellman椭圆曲线群。 [0069] 以一个实例解释这个方法的生命力。利用替代的标准,即n-1是平滑的,发明人286 288 已经发现数值对n=1+55(2 )和q=9+55(2 )都是素数。CM方法的领域内的技术人员应该理解,这个数值对的判别式是55。这个判别式在kronecker类数(kronecker class number)大于一的意义上是非平凡的,所以椭圆曲线的自同态环(endomorphism ring)不是唯一的因数分解域。特别地,这意味着不能从预定表中找到椭圆曲线E的系数a和b并且必须通过求解阶数为q的有限域上的适度大阶数的多项式方程来计算。 [0070] 如上所述,该技术可以用于产生具有理想特征的域参数。产生这些特征的方式还有助于检验由第三方提供的域参数的效力以确保它们不易受到攻击。可以检验参数以确保p和n的值满足要求的形式。假如它们不满足标准,则可以拒绝域参数。 |