IC卡加密技术概述目 录
加密技术分类与应用模式
信息传输保护
信息认证与授权
数据加密标准DES与DES算法理论
DES算法第一步、第二步、第三步
DES算法第四步
DES算法第五步
DES算法第六步
DES算法第七步
DES算法密钥计算
DES密码反破译的策略
DES算法实现与DES密码的破解
其它分组密码算法
椭圆曲线密码(ECC)算法简介
加密技术分类与应用模式
加密技术分类
密码学发展至今,产生了很多密码算法。有的算法已在学术刊物中披露,而更多的却作为军事、商业及贸易等秘密被严加保密。现代密码可以概括为序列密码、分组密码及公共密钥密码三种类型,同时与密码技术相关联的还有密钥管理和密码分析。序列密码 序列密码是指利用少量的密钥(制乱元素)通过某种复杂的运算(密码算法)产生大量的伪随机位流,用于对明文位流的加密。解密是指用同样的密钥和密码算法及与加密相同的伪随机位流,用以还原明文位流。 序列密码由密钥和密码算法两部分构成。密钥在每次使用之前都要变换,一般存储在密码设备内部或从外部输入密码设备。密码算法在较长时间内是固定的。密钥的灵活变换是这一密码算法的活跃因素,而安全保密的关键则在于密码算法的复杂性。序列密码一般应满足三个方面的要求:一是足够长的周期;二是较高的复杂性;三是产生的密钥流符合随机检验的要求。 序列密码的优点是运算速度快,密文传输中的错误不会在明文中产生扩散。其缺点是密钥变换过于频繁,密钥分配较难。由于序列密码历史悠久,理论完善,目前仍是国际密码应用的主流。分组密码 分组密码是将明文按一定的位长分组,明文组和密钥组的全部经过加密运算得到密文组。解密时密文组和密钥组经过解密运算(加密运算的逆运算),还原成明文组。 分组密码的优点是:密钥可以在一定时间内固定,不必每次变换,因此给密钥配发带来了方便。但是,由于分组密码存在着密文传输错误在明文中扩散的问题,因此在信道质量较差的情况下无法使用。DES密码就是1977年由美国国家标准局公布的第一个分组密码。公共密钥密码 无论是序列密码还是分组密码,其加密和解密密钥均是相同的,因此必须严格保密,且要经安全渠道配发,这在跨越很大的地理位置上应用是一个难以解决的问题。1976年有人提出了公共密钥密码体制,其原理是加密密钥和解密密钥分离。这样,一个具体用户就可以将自己设计的加密密钥和算法公诸于众,而只保密解密密钥。任何人利用这个加密密钥和算法向该用户发送的加密信息,该用户均可以将之还原。因此,人们通常也将这种密码体制称为双密钥密码体制或非对称密码体制;与此相对应,将序列密码和分组密码等称为单密钥密码体制或对称密钥密码体制。 公共密钥密码的优点是不需要经安全渠道传递密钥,大大简化了密钥管理。它的算法有时也称为公开密钥算法或简称为公钥算法。 1978年有人提出了公共密钥密码的具体实施方案,即RSA方案。 1991年提出的DSA算法也是一种公共密钥算法,在数字签名方面有较大的应用优势。 目前,国际上在智能IC卡上应用得较多的加密解密算法是DES算法、RSA算法及DSA算法。下面面向应用重点介绍这三种算法,并对其它有关算法作一简要介绍。。密码技术在IC卡上的应用模式在IC卡特别是智能卡应用方面,信息安全的保密性、完整性及可获取性等都涉及到密码技术。密码技术在有关IC卡的安全应用主要有信息传输保护、信息认证及信息授权(数字电子签名)等几种主要模式。 目前,随着网络技术的飞速发展,网络应用已深入到社会的各个领域,而INTERNET更是逐步走入千家万户。在这样一个网络信息平台上,人们迫切希望获得真实、安全、可靠的信息,密码技术和IC卡技术的结合必将成为在这一平台上保护信息安全的重要技术手段。 密码技术和IC卡,特别是智能IC卡技术的结合必将具有十分广阔的应用和发展前景。
信息传输保护
对IC卡处理、传输的信息进行保护是密码应用最重要的方面。采用密码技术的基本思想是将保护大量的明文信息问题转化为保护少量密钥信息的问题,使得信息保护问题易于解决。 为防止对传输信息的非法截取,采用密码技术对传输信息进行加密保护,使得非法截取的信息成为不可读、不可知具有十分重要性意义。 首先,因为IC卡的应用和计算机密切相关,并且其中有些安全保护概念就来源于此,所以先对计算机网络的传输加密作一简单介绍。计算机网络中的传输加密,通常分为链路加密和端端加密。链路加密是对通过每条链路的全部信息进行加密;端端加密是在信息发送的起点加密,在信息接收点解密。链路加密的优点是全部信息包括信息头都加密,在每条链路上流经的都是密文信息;缺点是信息每经过一个节点就要解密,然后再加密,因此,在信息传输的每一个节点上信息要暴露。端端加密的优点是信息在每一节点上都不暴露,缺点是信息头不能加密。为了安全,也有将两种方式结合使用的。 与此相对应,在智能IC卡上也存在着类似的传输信息保护方式,一般有三种方式:一是认证传输方式(Authentic Transmit Mode);二是加密传输方式(Encipher Transmit Mode);三是混合传输方式(Mixed Transmit Mode)。认证传输方式 认证传输方式就是将在接口设备(IFD)和IC卡(ICC)之间传输的信息附加上相应的认证信息。在IFD和ICC之间传输的信息可以简单分为两部分:一是信息头,主要为传输控制信息,如传输方式等;二是信息主体。 在认证传输方式中,发送端利用相应的加密算法及加密密钥将待传输信息的信息头和信息主体进行加密,得到的密文附加在明文信息尾部传输给接收端。接收端收到该信息后按发送相反的顺序对接收到的信息进行认证,认证通过则进行相应处理,否则回送相应错误信息。 在具体的智能IC卡应用中,信息发送、接收端则分别为IFD或ICC,采用不同的加密算法则密钥分配、工作顺序也不相同。以采用DES算法为例,认证传输的前提就是在IFD和ICC之间有一公共密钥,在每次认证传输之前,发送端向接收端请求一中间密钥,发送端根据此中间密钥,利用公共密钥导算出加密密钥,再对传输信息作传输认证。如果系统设计合理,附加的认证信息除具有认证功能外,不应具有检错甚至纠错功能。认证传输方式原理见图4-5。
认证传输方式具有如下特点:一是传输的信息为明文,不具有保密性;二是附加认证信息可以具有信息认证、检错、纠错等多种功能,但决不是一般的冗余校验。加密传输方式 加密传输方式就是将信息加密之后再进行传输。加密之后的信息具有保密性,但不具备检错、纠错等功能。此外,在一种具体的IC卡应用中可能同时存在几种传输方式,此次传输所使用的传输方式必须在信息头中说明,所以应用加密传输方式时信息头或部分信息头不能被加密,否则接收端将因无法确认传输方式而不能正确接收信息。混合传输方式 混合传输方式就是将认证传输方式和加密传输方式的优点结合起来,对待传输的信息既认证又加密。一般在具体实施时先对信息进行认证然后再加密,其工作原理见图4-6。因为这几种信息传输方式主要是以时间及空间换来信息传输安全的,所以在一种IC卡具体应用中,完全可以视不同情况交替使用或根本不使用这几种信息传输方式。 混合传输方式工作原理
信息认证与授权
信息认证的目的是防止信息被篡改、伪造、或信息接收方事后否认。特别是对于某些开放环境中的信息系统来讲,确保其认证十分重要。认证技术是现代各种计算机通讯网络、办公自动化、电子资金转账系统、自动零售服务网络等系统设计中的重要组成部分。今后,在IC卡应用系统中必将广泛使用。信息认证主要有以下两种方式。信息验证 防止信息被篡改,保证信息的完整性,使得有意或无意地篡改了信息后接收者可以发现,其中最简单的为纯认证系统。 采用该认证系统的关键在于防止认证码的破译,必须有良好的认证算法和密钥。它将信息通过密钥和某一特定算法进行加密后压缩成一个“信息摘要”,附加在信息之后,接收方收到信息和“信息摘要”之后,用相同的密钥和算法对信息进行验证,如果信息被篡改,必然与所附“信息摘要”不符,可以及时发现。例如,可以利用DES算法作信息验证,如果信息过长,可用Hash算法先对信息进行压缩,再进行验证运算。 为没有防范进行信息验证双方的任何措施,纯认证系统必须建立在双方互相信赖的基础上。当然,纯认证系统主要是针对来自进行信息验证双方以外因素的有意或无意的破坏、干扰等。数字电子签名 目前,越来越多的敏感数据和文档使用电子服务设施,如电子邮件、电传等进行信息处理和传输,这也使得电子签名变得特别重要和迫切。 A方要发送一个信息给B方,既要防止B方或第三方伪造,又要防止A方事后因对自己不利而否认,通常采用数字签名的方法解决这一问题。 数字签名必须满足三个条件; 收方应能确认发方的签名,但不能伪造(收方条件); 发方发送签名信息后,不能否认他已签名的信息(发方条件); 公证方能确认收发双方的信息,做出促裁,但不能伪造成这一过程(公证条件)。 为实现数字签名,用上面的纯验证技术还不行,一般用公钥密码方案解决。用户A设计好公钥密码方案棗如选用RSA算法,设计好加密密钥E、解密密钥D并将有关算法及加密密钥或公布或单独发放给B。对于信息M,A方用解密密钥D计算D(M),发给B方,B方用A方发放的加密密钥E计算E((D(M)=M,此时,B方掌握了D(M)和M。因为只有A掌握了解密密钥,其它人包括B都无法伪造,如果A方事后否认,B方可以用D(M)和M诉之于公证人裁决。反之,B也可以设计自己的签名方案并发放给A。 数字电子签名必须禁止除了原始发送者之外的其他人员再产生此次签名,还必须有一个个人化特性并被每一人校验。为避免拷贝,不仅不同的文本给以不同的签名,而且同样的文本也必须给以不同的签名,以区别不同的版本,例如,两个据有同样内容的电子公函。 若被签名的文本过长超过了定义的签名串时,可以利用Hash算法对文本进行适当的压缩处理等。 智能IC卡特别适用于改善计算机、信息通讯系统等的安全性。其中一个最重要的应用就是利用数字签名机制达到文档的合法接收,类似的应用领域还有贸易、金融、办公自动化等。 这种数字电子签名并无保密功能。若要保密,则需对签名的密文再进行加密。
数据加密标准DES与DES算法理论
数据加密标准DES
美国国家标准局1973年开始研究除国防部外的其它部门的计算机系统的数据加密标准,于1973年5月15日和1974年8月27日先后两次向公众发出了征求加密算法的公告。加密算法要达到的目的(通常称为DES 密码算法要求)主要为以下四点: 提供高质量的数据保护,防止数据未经授权的泄露和未被察觉的修改; 具有相当高的复杂性,使得破译的开销超过可能获得的利益,同时又要便于理解和掌握;DES密码体制的安全性应该不依赖于算法的保密,其安全性仅以加密密钥的保密为基础;实现经济,运行有效,并且适用于多种完全不同的应用。 1977年1月,美国政府颁布:采纳IBM公司设计的方案作为非机密数据的正式数据加密标准(DES棗Data Encryption Standard)。DES算法理论 本世纪五十年代以来,密码学研究领域出现了最具代表性的两大成就。其中之一就是1971年美国学者塔奇曼 (Tuchman)和麦耶(Meyer)根据信息论创始人香农(Shannon)提出的“多重加密有效性理论”创立的,后于1977年由美国国家标准局颁布的数据加密标准?/FONT>DES。 DES密码实际上是Lucifer密码的进一步发展。它是一种采用传统加密方法的区组密码。 它的算法是对称的,既可用于加密又可用于解密。图4-1是它的算法粗框图。其具体运算过程有七步。
DES算法第一步、第二步、第三步
DES算法第一步
输入64个二进制位明码文数据区组 T=t1t2…t64按初始换位表IP进行换位,得到区组B(0): B(0)=b1(0)b2(0)…b64(0)=t58t50…t7
初始换位表IP
DES算法第二步
设B(i)=b1(i)b2(i)…b64(i)是第i+1次迭代的64个二进制位输入区组,将B(i)分为左右两个大小相等的部分,每部分为一个32位二进制的数据块
L(i)=l1(i)l2(i)…l32(i)= b1(i)b2(i)…b32(i)R(i)=r1(i)r2(i)…r32(i)=b33(i)b34(i)…b64(i)
把R(i)视为由8个4位二进制的块组成
r1(i)r2(i) r3(i)r4(i)r5(i)r6(i) r7(i)r8(i)…r29(i)r30(i) r31(i)r32(i)
通过循环抄录相邻块的相邻块,把它们再扩充为8个6位二进制的块
r32(i)r1(i) r2(i)r3(i) r4(i)r5(i)r4(i)r5(i) r6(i)r7(i) r8(i)r9(i)…r28(i)r29(i) r30(i)r31(i) r32(i)r1(i)
用E(R(i))表示这个变换,称为扩充函数。
扩充函数E
DES算法第三步:卡型分类
在第i+1次迭代中,用48位二进制的密钥
K(i+1)=k1(i+1)k2(i+1)…k48(i+1)
与E(R(i))按位相加(逻辑异或),得
r32(i)+ k1(i+1) r1(i) +k2(i+1) …r5(i) +k6(i+1)r4(i)+ k7(i+1) r5(i) +k8(i+1) …r9(i) +k12(i+1)....r28(i)+ k48(i+1) r29(i) +k44(i+1) …r1(i) +k48(i+1)
DES算法第四步
第四步:将以上第j个(1≤j≤6位二进制的块(记为Z=zj1 zj2 zj3 zj4 zj5 zj6)输入第个j个替代函数Sj(表4-3)。各替代函数Sj的功能是把6位数变换成4位数,做法是以zj1 zj6为行号,zj2 zj3 zj4 zj5为列号,查找Sj,行列交叉处即是要输出的4位数。
表4-3 替代函数
DES算法第五步
八个替代函数Sj(1≤j≤8)的输出拼接为32位二进制数据区组y1(i)y2(i)…y32(i) 把它作为换位函数P(表4-4)的输入,得到输出X(i)=x1(i)x2(i)…x32(i) =y16(i)y17(i)…y25(i) 若把第二至第五步的变换记为,(X(i)=f(R(i),K(i+1)) ),则它的计算流程可用图4-2表示。计算f(R(i),K(i+1))的框图
换位函数P
DES密码反破译的策略
DES算法颁布之后,引起了学术界和企业界的广泛重视。许多厂家很快生产出实现DES算法的硬件产品,广大用户在市场上买到高速而又廉价的DES硬件产品之后,开始用它加密自己的重要数据,从而大大推广了密码技术的使用。 学术界对DES密码进行了深入的研究,围绕它的安全性和破译方法展开了激烈的争论,在一定意义上对密码学的理论研究也起了推动作用。 自DES算法1977年首次公诸于世以来,人们一直对DES的安全性持怀疑态度,对密钥的长度、迭代次数及S盒的设计纵说纷纭。从技术上说,对DES的批评主要集中在以下三个方面。作为区组密码,DES的加密单位仅有64位二进制,这对于数据传输来说太小,因为每个区组仅含8个字符,而且其中某些位还要用于奇偶校验或其他通讯开销。 密钥仅有56位二进制未免太短,各次迭代中使用的密钥K(i)是递推产生的,这种相关必降低了密码体制的安全性。目前,有人认为:在现有的技术条件下用穷举法寻找正确密钥已趋于可行,所以若要安全保护10年以上的数据最好不用DES算法。 实现替代函数Si所用的S盒的设计原理尚未公开,其中可能留有隐患。更有人担心DES算法中有“陷阱”,知道秘密的人可以很容易地进行密文解密。 针对以上DES的缺陷,人们提出了解几种增强DES安全性的方法,主要有以下三种。 三重DES算法 用三个不同密钥的三重加密,即为:C=Ek3(Dk2(Ek1P))P=Dk1(Ek2(Dk3C)) 此方法为密码专家默克尔(Merkle)及赫尔曼(Hellman)推荐。据称,目前尚无人找到针对此方案的攻击方法。 具有独立子密钥的DES算法 每一轮迭代都使用一个不同的子密钥,而不是由一个56位二进制的密钥产生。由于16轮迭代的每一使用一个48位二进制的密钥,所以这一方法可以增强DES的加密强度。但据密码专家比哈姆(Biham)及沙米尔(Shamir)证明利用261个选择明文便可破译这个DES变形,而不是人们所希望的2768个选择明文。 带用交换S盒的DES算法 比哈姆和沙米尔证明通过优化S盒的设计,甚至S盒本身的顺序,可以抵抗差分密码分析,以达到进一步增强DES算法的加密强度的目的。
DES算法实现与DES密码的破解
DES算法实现
DES算法可以按四种操作模式之一使用,这四种操作模式是电子密文、密码分组链接、输出反馈及密文反馈。其中,电子密文是最简单的模式,安全性也最差;密码分组链接则经常以软件方法实现;输出反馈和密文反馈往往在硬件实现的算法中实现。 DES公布之后,制造有关DES设备的厂商已达几十家,大部分用于加密敏感信息。随着DES应用的日益扩大,各种DES专用芯片也应运而生。这种DES芯片价格便宜、加密解密速度快,在有关产品中使用十分广泛。 不但可以用硬件而且也可以用软件实现DES算法。 DES密码的破解 在对DES密码进行鉴定的期间,美国国家保密局和计算机科学技术学会组织各界专家研究了DES密码体制的安全性问题,讨论了破译DES密码体制的一切可能途径。尽管有些专家和学者对它的安全性仍持怀疑态度,但官方却得出了十分乐观的结论。他们宣布:“没有任何可以破译DES密码体制的系统分析法。若使用穷举法,则在1990年以前基本上不可能产生出每天能破译一个DES密钥的专用计算机。即使届时能制造出这样的专用机,它的破译成功率也只会在0.1到0.2之间,而且造价可能高达几千万美元。” 先我们考虑用穷举法破译DES 密码的问题。设已知一段密码文C及与它对应的明码文M,用一切可能的密钥K加密M,直到得到E(M)=C,这时所用的密钥K即为要破译的密码的密钥。穷举法的时间复杂性是T=O(n),空间复杂性是S=O(1)。对于DES密码,n=256≈7×1016,即使使用每秒种可以计算一百万个密钥的大型计算机,也需要算106天才能求得所使用的密钥,因此看来是很安全的。但是Diffie和Hellman指出,如果设计一种一微秒可以核算一个密钥的超大规模集成片,那么它在一天内可以核算8.64×1010个密钥。如果由一个百万个这样的集成片构成专用机,那么它可以在不到一天的时间内用穷举法破译DES密码。他们当时(1977年)估计:这种专用机的造价约为两千万美元。如果在五年内分期偿还,平均每天约需付一万美元。由于用穷举法破译平均只需要计算半个密钥空间,因此获得解的平均时间为半天。这样,破译每个DES密码的花销只是五千美元。后来,Diffie在1981年又修改了他们的估计,认为以1980年的技术而论,用造价为五千万美元的专用机破译DES密码平均要花两天时间。但是他与Hellman都预计:1990年时,破译DES密码的专用机的造价将大幅度下降。 计算及科学家Tanenbaum指出,即使没有这种专用机,也可以用穷举法破译DES。
其它分组密码算法
随着DES的逐渐衰老,分组密码的研究也在不断深入。在DES之后,近年来国际上又相继提出了多种新的分组密码体制,见表4-10。在这些分组密码中,有的已被破译,有的仍具有较高的安全性。下面对这此算法作一简介。
近年来出现的一些分组密码体制
∙ FEAL-8密码
FEAL密码算法家族是日本NTT(日本电报电话公司)的清水(Shimizi)和宫口(Miyaguchi)设计的。作为一种分组密码,与DES相比其主要想法为增加每一轮迭代的算法强度,因此可以通过减少迭代次数而提高运算速度。
FEAL-8即为8轮迭代的FEAL密码算法。FEAL密码算法推出之后,引起有关专家的注意。密码专家比哈姆和沙米尔利用养分密码分析技术发现,可以用比穷举法更快的速度破译FEAL密码。如FEAL-8只需2000个选择明文即可破译,而FEAL-4更只需8个精心选择的明文便可破译。
目前,FEAL已经取得了专利。
∙ LOKI算法
LOKI算法作为DES的一种潜在替代算法于1990年在密码学界首次亮相。LOKI同DES一样以64位二进制分组加密数据,也使用64位密钥(只是其中无奇偶校验位),所有64位均为密钥。LOKI密码公布之后,有关专家对其进行了研究破译并证明不大于14轮的LOKI算法极易受到差分密码分析的攻击等。不过,这仍然优于56位密钥的DES。LOKI较新的成果版本是LOKI-91。
LOKI尚未取得专利,任何人都可以使用该算法。有意在商用产品中使用设计者基准方案的人士,可以与澳大利亚堪培拉国防学院计算机科学系西特拉德主任联系。
∙ Khufu和Khafre算法
1990年由默克尔(Merhie)设计的这对算法具有较长的密钥,适合于软件实现,比较完全可靠。Khufu算法的总体设计同DES,只是拥有512位(64字节)的密钥。Khafre算法与前者类似,预定用于不能预先计算的场合。由于Khufu算法具有可变的S盒,可以抵抗差分密码分析的攻击。据了解目前尚无以该算法为目标的其它密码分析成果。
这对密码算法都已取得专利,算法的原码在专利之中。对使用这对算法感兴趣的人士,可以与施乐(Xerox)公司专利许可证发放部的彼得(Petre)主任联系。
∙ IDEA算法
1990年赖学家(XueJia Lai)和梅西(Massey)开发的IDEA密码首次成形,称为PES,即“建议的加密标准”。次年,根据有关专家对这一密码算法的分析结果,设计者对该算法进行了强化并称之为IPES,即“改进的建议加密标准”。该算法于1992年更名为IDEA,即“国际加密标准”。
IDEA算法的密钥长度为128位。设计者尽最大努力使该算法不受差分密码分析的影响,赖学家已证明IDEA算法在其8轮迭代的第4轮之后便不受差分密码分析的影响了。假定穷举法攻击有效的话,那么即使设计一种每秒种可以试验10亿个密钥的专用芯片,并将10亿片这样的芯片用于此项工作,仍需1013年才能解决问题;另一方面,若用1024片这样的芯片,有可能在一天内找到密钥,不过人们还无法找到足够的硅原子来制造这样一台机器。目前,尚无一片公开发表的试图对IDEA进行密码分析的文章。因此,就现在来看应当说IDEA是非常安全的。
IDEA分组密码已在欧洲取得专利,在美国的专利还悬而未决,不存在非商用所需的使用许可证费用问题。对使用IDEA算法有兴趣的商业用户可以与瑞士Solothurm实验室的普罗福斯主任(Profos)联系。
椭圆曲线密码(ECC)算法简介
目 录1、密码学的历史 21.1、密码学的发展阶段 21.2、公钥密码学 31.3、两种密码系统的结合 52、椭圆曲线 52.1、椭圆曲线 52.2、有限域上的椭圆曲线 72.3、DIFFIE-HELLMAN密钥交换协议 92.4、ELGAMAL密码体制 102.5、关键技术指标 112.6、安全性分析 112.6.1、ECC安全性的理论基础 112.6.2、ECC安全性的实现 123、椭圆曲线国际标准 154、椭圆曲线技术实现 164.1、运算层 164.2、密码层 164.3、接口层 184.4、应用层 184.5、ECC的实现效率 184.5.1、ECC密码机制 184.5.2、安全前瞻性 184.5.3、应用环境 194.5.4、算法优化 195、应用前景 191、密码学的历史1.1、密码学的发展阶段 密码学是一门古老而又年轻的科学,它用于保护军事和外交通信可追溯到几千年前。在当今的信息时代,大量的敏感信息通过公共通信设施或计算机网络来进行交换,而这些信息的秘密性和真实性是人们迫切需要的。因此,现代密码学对于军事、政治和外交、商业的价值越来越重要。明文信息可以用两种办法之一来隐藏:一是信息隐蔽,即隐藏信息的存在,二是利用密码学方法通过对文本信息的不同转换而实现信息的对外不可读。密码学的发展历史大致可划分为三个阶段: 第一个阶段为从古代到1949年。这一时期可看作是科学密码学的前夜时期,这段时期的密码技术可以说是一种艺术,而不是一种科学,密码学专家常常是凭借直觉和信念来进行密码设计和分析,而不是推理证明。例如,最早应用替代的凯撒密码。 第二个阶段为从1949年到1975年。1949年Shannon发表的“保密系统的信息理论”一文为对称密码系统建立了理论基础,从此密码学成为一门科学,人们将此阶段使用的加密方法称为传统加密方法,其安全性依赖于密钥的秘密性,而不是算法的秘密性,也就是说,使得基于密文和加解密算法的知识去解密一段信息在实现上不可能。 1977年美国国家标准局正式公布实施了美国的数据加密标准(DES),公开它的加密算法,并批准用于非机密单位和商业上的保密通信。密码学的神秘面纱从此被揭开。第三个阶段1976年至今。1976年Diffie和Hellman的“密码学的新方向”一文导致了密码学上的一场革命。他们首次证明了在发送端和接收端无密钥传输的保密信息是可能的,从而开创了公钥密码学的新纪元。 在密码学的发展过程中,数学和计算机科学作出了卓越的贡献。数学中许多分支如数论、概率统计、近世代数、信息论、椭圆曲线理论、算法复杂性理论、自动机理论、编码理论等都可以在其中找到各自的位置。它的踪影遍及数学许多分支,而且还推动了并行算法的研究,从而成为近若干年来非常引人入胜的领域。 随着计算机网络不断渗透到各个领域,密码学的应用也随之扩大。数字签名、身份鉴别等都是由密码学派生出来的新技术和应用。1.2、公钥密码学 公钥密码学是整个密码学发展历史中最伟大的一次革命,也可以说是唯一的一次革命。从密码学产生至今,几乎所有的密码系统都是基于替换和置换这些初等方法,几千年来,算法的实现主要是通过手工计算来完成的。随着转轮加密/解密机器的出现,传统密码学有了很大进展,利用电子机械转轮可以开发出极其复杂的加密系统,利用计算机甚至可以设计出更加复杂的系统,最著名的例子是Lucifer在IBM实现数据加密标准(DES)时所设计的系统。转轮机器和DES是密码学发展的重要标志,但是它们都是基于替换和置换这些初等方法之上。 公钥密码学与其前传统的密码学完全不同, 它的出现使密码学的研究发生了巨大的变化。与传统加密系统不同的是,使用这种方法的加密系统,不仅公开加密算法本身,也公开了加密用的密钥。首先,公钥算法是基于数学函数而不是基于替换和置换,更重要的是,与只使用一个密钥的对称传统密码不同,公钥密码学是非对称的,它使用两个独立的密钥。我们将会看到,使用两个密钥在消息的秘密性、密钥分配和认证领域有着重要意义。目前的公钥密码系统主要依赖下面三种数学难题:(I) 大整数因子分解问题(II) 离散对数问题(III) 椭圆曲线上的离散对数问题 第一类公钥系统是由Rivet,Shamir,Adelman提出的,简称为RSA系统,它的安全性是基于大整数因子分解的困难性,而大整数因子分解问题是数学上的著名难题,因而可以确保RSA算法的安全性。RSA系统是公钥系统的最具有典型意义的方法,自提出以来就一直是人们研究的焦点。对于密码破译者来说,在这种系统中,已知密文而想得出明文就必须进行大整数的因子分解。 从上述介绍中不难看出,RSA方法的优点主要在于原理简单,易于使用。但是,随着分解大整数方法的进步及完善、计算机速度的提高以及计算机网络的发展(可以使用成千上万台机器同时进行大整数分解),作为RSA加解密安全保障的大整数要求越来越大。为了保证RSA使用的安全性,其密钥的位数一直在增加,比如,目前一般认为RSA需要1024位以上的字长,显然,密钥长度的增加导至了其加解密的速度大为降低,硬件实现也变得越来越难以任受,这对使用RSA的应用带来了很重的负担,对进行大量安全交易的电子商务更是如此,从而使得其应用范围越来越受到制约。 第二类公钥系统的安全性依赖于离散对数的计算困难性(简称DLP问题)。设G为一个有限ABEL加法群,假定g为G的某个元,a为任意的整数,如果已知g及ag,如何求出整数a来的问题在数学上称为离散对数问题。一般说来,当群G选择得当,且整数a充分大时,求解此类问题是非常困难的。离散对数问题又可细分为两类,一类为某个有限域上的离散对数问题。一类为椭圆曲线上的离散对数问题。两者比较,后一类问题求解更为困难些。基于这一判断,人们通过对群G作出不同的选择时,构造了各种不同的公钥系统,比如,Massey-Omura公钥系统,ElGamal公钥系统等等。 第三类公钥系统是建立在椭圆曲线离散对数问题上的密码系统,称为椭圆曲线密码系统。众所周知,定义在某一代数数域上椭圆曲线上的有理点在适当的定义了零元素和运算规则(常记作加法)后,构成一个有限秩的Able 群。设GF(p)为一有限域,则GF(p)上的一条椭圆曲线E上的有理点构成一个有限群Ep,这个有限群的阶可经由某些特别方法计算出来,设已知属于Ep的点g和ag,从g和ag求出a来是非常困难的,此种问题称为椭圆曲线离散对数问题,它较通常的离散对数问题更为困难。椭圆曲线加密算法(Elliptic Curve Cryptography 简称ECC)是由Neal Koblit和Victor Miller于1985年首先提出,从那时起ECC的安全性和实现效率就被众多的数学家和密码学家所广泛研究。所得的结果表明,较之RSA算法,ECC具有密钥长度短,加解密速度快,对计算环境要求低,在需要通讯时,对带宽要求低等特点。近年来,ECC被广泛应用于商用密码领域,这可由ECC被许多著名的国际标准组织所采纳所佐证,如ANSI(American National Standards Institute)、IEEE、ISO、NIST(National Institute of Standards and Technology)。ECC最新的发展状况可参见2000年10月份在德国ESSEN举行的ECC国际会议上所发表的各种文献上。1.3、两种密码系统的结合 在实际应用中,对称密码系统与公钥密码系统经常有两种结合方式:电子信封和交换会话密钥。电子信封,指使用对称密码系统对明文加密,然后用公钥系统对对称密码的密钥加密,最后将明文加密结果和密钥加密结果,一起传给接收者;接收者接到数据后,先通过公钥系统解密出对称密码的密钥,再用对称密码系统解出明文。 交换会话密钥,指在实际通讯之前,通讯双方先使用公钥系统,共享一个随机的对称密码的密钥。然后,再用这个密钥,通过对称密码系统进行实质的数据交换。这两种结合方式,都能够有效的发挥两种密码系统的优势,达到两全其美的效果。2、椭圆曲线2.1、椭圆曲线 简单的说,椭圆曲线并不是椭圆,之所以称为椭圆曲线是因为它们是用三次方程来表示的,并且该方程与计算椭圆周长的方程相似。一般而言,椭圆曲线的三次方程形为 y2 + axy + by = x3 + cx2 + dx + e 其中a,b,c,d和e是满足某些条件的实数,因为方程中的指数最高是3,所以我们称之为三次方程,或者说方程的次数为3。图1给出了椭圆曲线的两个例子,由图1中可知,上述方程有时对应的是一条怪异的曲线。 我们在椭圆曲线上定义加法运算。简单地说,可如下定义加法运算:若椭圆曲线上的三个点同在一条直线上,则它们的和为O(称为无穷远点或零点的元素)。从这个定义出发我们可以定义椭圆曲线加法的运算规则:1.O是加法的单位元。这样有O = -O;对椭圆曲线上的任何一点P,有P+O=P。2.一条垂直的线与椭圆曲线相交于两点,这两点具有相同的x坐标,设为P1(x,y)和P2(x,-y)。这条直线与曲线也在无穷远点相交,因此P1+P2=O且P1=-P2,因此一个点的负元是具有相同x坐标和相反的y坐标的点。图1说明了这一情形。3.要计算x坐标不相同的两点Q和R之和,则在Q和R间作一条直线并找出第三个交点P1,显然存在有唯一的交点P1(除非这条直线在Q或R处与该椭圆曲线相切,此时我们取P1=Q或P1=R),因此Q+R+P1=O,从而Q+R=-P1。图1说明了这种情形。4.要计算Q的两倍,则作一条切线并找出另一交点S,那么Q+Q=2Q=-S。上述加法满足普通加法的性质,如交换律和结合律。我们定义正整数k乘以椭圆曲线上的点P为k个P之和,因此有2P=P+P,3P=P+P+P,等等。2.2、有限域上的椭圆曲线 在ECC中,我们关心的是某种特殊形式的椭圆曲线,即定义在有限域上的椭圆曲线。模p椭圆群对密码学具有重要意义(这里p是素数),选择两个小于p的非负整数a和b,它们满足 4a3 + 27b2 (mod p) ¹ 0我们用Ep(a,b)表示模p椭圆群,其元素是满足下列条件的小于p的非负整数对(x,y)以及无穷远点O: y2 º x3 + ax + b (mod p) (1)例如,取p=23,椭圆曲线y2=x3+x+1,此时a=b=1。由于4´ 13 + 27 ´ 12 (mod 23) = 8 ¹ 0,可见a和b满足模23椭圆群所要求的条件。 方程(1)即是图1b中给出的方程,该图显示了满足方程的所有的实数点所组成的连续曲线。对于椭圆群,我们只关心从(0,0)到(p,p)的满足上述方程的非负整数。表1列出了E23(1,1)上的部分点(除O外)。一般而言,可按如下方法生成该表: 1.对满足0 £ x < p的任何x,计算x3+ax+b (mod p)。2.对步骤1中计算出的每个值,确定它是否有模p的平方根。若没有,则在Ep(a,b)上没有值为x的点,否则有两个平方根y(除非y为0),因此(x,y)是Ep(a,b)上的点。表1 椭圆曲线E23(1,1)上的非负整数点(0,1) (6,4) (12,19)(0,22) (6,19) (13,7)(1,7) (7,11) (13,16)(1,16) (7,12) (17,3)(3,10) (9,7) (17,20)(3,13) (9,16) (18,3)(4,0) (11,3) (18,20)(5,4) (11,20) (19,5)(6,19) (12,4) (19,18) 若将Ep(a,b)上的加法规则与图1所示的几何方法对应起来,则可如下描述加法运算:1.P+O=P 2.若P = (x,y),则P + (x,-y) = O。点(x,-y)是P的负元,记为-P。由图1可知,(x,-y)也是椭圆曲线上的点,并且也在Ep(a,b)中。例如,对E23(1,1)上的点P = (13,7),有-P =(13,-7),而-7 mod 23=16,因此,-P = (13,16),该点也在E23(1,1)中。3.若P = (x1,y1),Q = (x2,y2),且P ¹ -Q则P + Q = (x3,y3),其中(x3,y3)由下列规则确定: x3=l2-x1-x2 (mod p) y3=l(x1-x3) -y1 (mod p)其中 可以分析如下两个例子:令P = (3,10),Q = (9,7),那么 所以P+Q=(17,20)。下面计算2P。可见2P=(7,12)。 另外,乘法定义为重复相加,例如4P=P+P+P+P。 椭圆曲线的吸引人之处在于提供了由“元素”和“组合规则”来组成群的构造方式。用这些群来构造密码算法具有完全相似的特性,且没有减少密码分析的分析量。因为采用椭圆曲线就没有“平滑”的概念,也就是说,在一随机元素能以大的概率被一个简单算法表示的情况下,不存在小元素的集合。2.3、Diffie-Hellman密钥交换协议 我们将ECC中的加法运算与RSA中的模乘运算相对应,将ECC中的乘法运算与RSA中的模幂运算对应,可以建立基于椭圆曲线的密码体制。其中,关键需要类似因子分解两个素数之积或求离散对数这样的“难题”。 考虑方程Q=kP,其中Q, PÎ Ep(a,b)且k < p。可以证明k和P计算Q比较容易,而由Q和P计算k则比较困难。 利用椭圆曲线实现密钥交换的原理是:首先,挑选一个素数p»2160以及方程为(1)的椭圆曲线的参数a和b,由此定义出椭圆群Ep(a,b);其次,在Ep(a,b)中挑选生成元点G=(x1,y1),G应使得满足nG = O的最小的n是一个非常大的素数。Ep(a,b)和G是该密码体制的公开参数,可为通信各方所知。比如,用户A和用户B之间密钥交换过程如下:1.A选择一个小于n的整数nA作为其私钥,然后产生其公钥PA=nA´G;该公钥是Ep(a,b)中的一个点。2.B可类似地选择私钥nB并计算公钥PB。3.A产生秘密钥K = nA´PB,B产生秘密钥K = nB´PA。 其中K的两种计算结果是相同的,因为 nA ´ PB = nA ´ (nB ´ G) = nB ´ (nA ´ G) = nB ´ PA 要破译这种体制,攻击者必须由G和KG计算K,是这是非常难的。例如,取p = 211,Ep(0,-4),G = (2,2),这里Ep(0,-4)即是曲线y2=x3-4,则计算可得241G = O。A的私钥nA = 121,所以A的公钥PA = 121(2,2) = (115,48)。B的私钥nB = 203,所以B的公钥为203(2,2) = (130,203),它们共享的秘密钥为121(130,203) = 203(115,48) = (161,169)。 请注意,这里秘密钥是一对数字。若将它用作传统密码中的会话密钥,则必须是一个数字,我们可以简单地取为x坐标或x坐标的某简单函数。2.4、ElGamal密码体制 椭圆曲线加/解密的实现方法有多种,下面介绍其中最简单的一种方法。首先,我们必须将要发送的消息明文m按照某种方法与一个形为(x,y)的点Pm对应,并对点Pm进行其后的加密和解密。 和密钥交换系统中一样,加/解密系统也需要点G和椭圆群Ep(a,b)这些参数。假设用户A和用户B进行通信,首先用户A生成一个私钥nA,并产生公钥PA =nA ´ G,同样的,用户B生成一个私钥nB,并产生公钥PB =nB ´ G。若A要将消息Pm加密后发送给B,则A随机选择一个正整数k,并产生密文Cm:Cm = {kG, Pm + kPB} 注意,此处A使用了B的公钥PB。B要对密文解密,则需用第二个点减去第一个点与B的私钥之积:Pm + kPB - nB (kG) = Pm + k (nBG) - nB (kG) = Pm A通过将kPB与Pm相加来伪装消息Pm,因为只有A知道k,所以即使PB是公钥,除A外任何人均不能除去伪装kPB;但是,A也在伪装后的消息中包含了有关“线索”,使得已知私钥nB时可以除去伪装。攻击者要想恢复消息明文,则他必须从G和kG求出k,但这是很困难的。 下面举例说明椭圆曲线加密,取p = 751;Ep(-1,188),即其椭圆曲线方程为y2 = x3 – x + 188,G =(0,376)。假定A要将对应于椭圆曲线上点Pm = (562-201)的消息发送给B,且A挑选的随机数k = 386,B的公钥为PB = (201,5),那么有386(0,376) = (676,558)和(562,201) + 386(201,5) = (385,328).。于是A发送的密文是{(676,558),(385,328)}。2.5、关键技术指标 椭圆曲线密码(ECC)算法的理论基础是椭圆曲线离散对数问题(ECDLP)。该密码的实现基于大整数基本运算。 基于ElGamal系统,我们研制出的一种(ECC)加密系统,其主要性能指标及特点如下: (1)关于素数p的选择,国外的p 一般选择为p=2,既在GF(2n)域上(n一般来说不超过 )。我们的p取为任意的素数,字长可取为 多比特。(2) 关于椭圆曲线的选择:椭圆曲线应选择为“好的” 椭圆曲线,即要求所选择的曲线满足安全的要求,通过精心的大量计算,我们选出一类满足此条件的曲线。(3)我们研制的ECC系统,p为字长为 多比特的素数,首先,将明文欲传送的明文经某种方法嵌入到有限群Ep中去,然后,加密后传送。试验后得出的结论是,加解密的速度比RSA-1024快5-8 倍。
2.6、安全性分析2.6.1、ECC安全性的理论基础ECC的安全性,广义的讲,依赖于著名的数学难题:离散对数问题。 离散对数问题是:设G为有限Able群,设g和g1为G中已知元,求解是否有整数X存在,使得gx= g1。 这个问题的难度强烈依赖于G的选择。如果取G为Fq(q=pn),则称之为有限城上的离散对数问题(DLP)。 如果取G为Fq椭圆曲线上所构成的加法群,则相应的问题则称之为椭圆曲线离散对数问题(ECDLP)。 众所周知,解DLP有亚指数级算法,如通常的指标算法。而对于ECDLP而言,虽然经过许多优秀的数学家的努力,至今一直没有找到亚指数级算法,(比如,最近出现的被人们寄予厚望的Xedni方法被证明为指数级算法。) 正是由于目前所知求解ECDLP的最好方法是指数级的,这使得我们选用ECC作加解密及数字签名时,所要求的密钥长度要短得多。这可由下页的表格看出。密钥大小 MIPS-年 密钥大小 MIPS-年 150 3.8´1010 512 3´104205 7.1´1018 768 2´108234 1.6´1028 1024 3´1011 1280 1´1014 1536 3´1016 2048 3´1020(a) 用Pollard rho方法求椭圆曲线对数 (b)使用一般数域筛进行整数因子分解2.6.2、ECC安全性的实现 虽然目前对于ECDLP只有指数级算法,但是并非所有的椭圆曲线都能达到这一点。在具体将ECC用于实际中去,我们至少面临着如下的选择:1. 基本域的选择。通常我们只有两种考虑,即F2n和Fp(p>3),由于最近出现了攻击F2n上的ECDLP的方法,导致对F2n中n的要求越来越严,比如,在2000年,Gaudry Hess 和Smart等人通过改进的Weil 下降方法,使得对于F2n上的ECDLP,当n不是素数时,计算变得有效,基于这个理由,我们选择Fp作为基本域。2. 如果选取Fp作基域,如何选取p。一般说来,为了算法实现的效率,p可选取成Mersenne素数或拟Mersenne素数。所谓拟Mersenne素数,即 P=at+b,其中a ,b都是小整数。我们可以取其中一种,也可以选择随机素数p。3. 曲线的选择。这是ECC的关键所在。“好的”椭圆曲线才具有高度安全性。大量的研究表明,特殊的椭圆曲线是有安全隐患的,因此,为了抗击各种攻击方法,我们的曲线选择至少要满足:1)Ep不是超椭圆曲线(ap≠0),这里的ap为Frobenius 映射的迹2)Ep不是反常椭圆曲线(ap≠1)3)Ep的阶(记为|Ep|)包含有大的素因子(如要求大于2160)4)|Ep|不能整除pk-1,这里的1≤k≤20上述的对曲线的限制主要是由目前已知的攻击方法所决定的。这些攻击方法有:u Pollig-Hellman方法,u Pollard的rho方法,u Weil对和Tate 对方法,u Semeav-Satoh-Araki-Smart方法,u Mov方法,u 以及最近出现的Gardry, Hess和Smart等人的方法; 这里,Pollig-Hellman方法和Pollard-rho方法对于一般有限Able群上的离散对数问题都是有效的,但计算复杂度为指数级的;即O(√p ),其中,p为|Ep|最大素因子。其它方法都只对特殊的椭圆曲线有效。比如,MOV方法只对超椭园曲线有效。在避免采用上述特殊的曲线后,为防范Pollig-Hellman方法和Pollard-rho方法的攻击,我们首先应有能力计算Ep的阶|Ep|,最好将|Ep|选为素数。4. 阶的计算。对于|Ep|的计算有许多种方法。如,设ap为Frobenius映射的迹,对于任意的Q∈Ep,由于|Ep| = p+1-ap,可知(p+1)Q = apQ,从上式出发,我们可以用BSGS方法计算出ap来,由于|ap|≤2p1/2;可知计算复杂度为O(p1/4+ε),当P〉280时,这一方法失效。 1985年Schoof找到了计算|Ep|的多项式算法,Schoof方法的出发点为如下的公式:φ2 - apφ+p=0 这时φ为Frobenius映射。通过约化,利用除多项式的性质,Schoof实现了他的算法,但是这一方法在实际计算中效率极低。其算法的复杂度为O(log8p)从1988年至今,Atkin,Elkis等人改进了Schoof算法,他们通过分析Ep上的同种映射,利用模多项式的性质,得出的方法称之为SEA方法,SEA方法的概率复杂度为O(log6p),因此,较之Schoof方法更为有效,Morain等人利用这一方法,加之其他的改进措施,曾计算出p = 10500的Ep的阶来。我们通过改进SEA方法,结合BSGS方法,对于计算|Ep|作了许多工作,比如,当p为160位时,我们在Pentium III 450微机上联网计算出|Ep|来,所费时间为10多分钟,当然如果使用更多的技巧,还可以大大提高效率。基于算阶方面的工作,我们选择的椭园曲线具有如下的特点:(1) 全随机的素数P和椭园曲线。(2) |Ep|为素数。 3、椭圆曲线国际标准 椭圆曲线密码系统已经形成了若干国际标准。它们涉及加密、签名、密钥管理等方面。包括:► IEEE P1363 加密、签名、密钥协商机制► ANSI X9 椭圆曲线数字签名算法椭圆曲线密钥协商和传输协议► ISO/IEC 椭圆曲线ElGamal体制签名► IETF 椭圆曲线DH密钥交换协议► ATM Forum 异步传输安全机制► FIPS 186-2 美国政府用于保证其电子商务活动中的机密性和完整性 4、椭圆曲线技术实现 ECC的技术实现可以分成四个层次:运算层、密码层、接口层和应用层。运算层最基础、最核心;应用层最接近用户。4.1、运算层运算层的主要功能是,提供密码算法所需要的所有数论运算支持,包括:大整数加、减、乘、除、模,gcd、逆、模幂等。运算层的实现效率将对整个密码系统的效率起决定性作用。因而运算层的编程工作是算法实现最核心、最基础,也是最艰巨的部分。4.2、密码层 密码层的主要功能是,在运算层的支持上,选择适当的密码体制,科学地、准确地、安全地实现密码算法。 在相同的运算层的基础上,我们可以构建起多种密码体制。对于密码体制和具体结构的选择和实现,是密码层的核心内容。最终,密码系统的安全性,将决定于密码层的实现能力。在密码层中,为了支持公钥密码系统,通常必须提供五种操作:生成密钥对、加密、解密、签名、验证签名。· 生成密钥对1.挑选生成元点G=(x1,y1),G应使得满足nG = O的最小的n是一个非常大的素数;2.选择一个小于n的整数nA作为其私钥,然后产生其公钥PA=nA´G;·加密和解密 将要发送的消息明文m按照某种方法与一个形为(x,y)的点Pm对应,并对点Pm进行其后的加密和解密。 象密钥交换系统中一样,加/解密系统也需要点G和椭圆群Ep(a,b)这些参数。每个用户A选择一个私钥nA,并产生公钥PA =nA ´ G。若A要将消息Pm加密后发送给B,则A随机选择一个正整数k,并产生密文Cm = {kG, Pm + kPB}注意,此处A使用了B的公钥PB。B要对密文解密,则需用第二个点减去第一个点与B的私钥之积:Pm + kPB - nB (kG) = Pm + k (nBG) - nB (kG) = Pm A通过将kPB与Pm相加来伪装消息Pm,因为只有A知道k,所以即使PB是公钥,除A外任何人均不能除去伪装kPB;但是,A也在伪装后的消息中包含了有关“线索”,使得已知私钥nB时可以除去伪装。攻击者要想恢复消息明文,则他必须从G和kG求出k,但这是很困难的。·签名和验证签名 信息发送者对信息生成数字摘要,再使用其私钥对数字摘要进行加密,由于只有信息发送者拥有其私钥,保证了其签名的不可否认性,达到了防伪的目的。其流程如图2所示。图2 签名与验证签名4.3、接口层接口层的主要功能是,对各种软硬件平台提供公钥密码功能支持。其工作重点在于:对各种硬件环境的兼容、对各种操作系统的兼容、对各种高级语言的兼容、对多种应用需求兼容。其难点主要在于:保持良好的一致性、可移植性、可重用性,以有限的资源换取应用层尽可能多的自由空间。4.4、应用层 应用层是最终用户所能接触得到的唯一层面。它为用户提供应用功能和操作界面。 应用功能包括:交易、网络、文件、数据库、加解密、签名及验证等等。操作界面包括:图形、声音、指纹、键盘鼠标等等。4.5、ECC的实现效率ECC的实现效率一般表现为ECC公钥密码功能的效率。实现效率是被多种因素制约和影响的。以下,我们列举了我们在实现ECC的过程中遇到的涉及ECC实现效率的方面。4.5.1、ECC密码机制 众所周知,任何密码理论都必须在某种密码机制上实现,才能完成密码功能(如:加密、签名等)。同一种密码理论也可以运用于不同的密码机制上,而且它们的实现效率也不尽相同。我们在自行发明的、拥有自主知识产权的密码机制上实现ECC,并且我们容易证明其安全性不低于其它常用密码体制,且效率更高。4.5.2、安全前瞻性 由于公钥系统的安全性建立在数学的困难性上。所以在选择ECC参数时,我们认为不能一味地追求速度快,而是应该在理论上、在实现上都要为安全性留出一定的余量,以保证在密码分析技术进步后,不至受到重大威胁。F2n和Fp的比较就集中的体现了这一点。同时,对p的选择也体现了这一点。当然,这种安全性上的保障是要通过降低一定的效率换取的。4.5.3、应用环境 应用环境是ECC软硬件实现的约束条件。硬件环境要求空间小、指令简单、高稳定性、低成本;软件环境要求兼容性好、可移植性好、易于维护升级。因此,从高端到低端,从高级语言到汇编、从系统到门电路设计,每个应用环境对ECC实现所提供的支持和约束都不相同。所以,ECC实现效率也依应用环境而异。4.5.4、算法优化 算法优化始终都是提高效率的根本所在。我们对ECC实现算法的优化主要从这几个方面入手:1) 对数学公式的变形和组合优化;2) 在软件实现中,根据编译系统的特点、CPU指令集的特点优化;3) 在硬件实现中,根据硬件资源的具体特点优化。5、应用前景 ECC密码体制是建立在椭圆曲线密码理论基础上的先进公钥密码体制。该系统所具有的安全性已经被全世界所承认。在椭圆曲线密码理论的基础上,我们经过长期的理论研究和科学实践,已经成功地将该理论转换为实际可用的密码算法,并将运用于安全产品之中。ECC技术拥有广泛的应用前景,如:可应用于安全数据库、智能卡应用、VPN、安全电子商务等。将ECC技术应用于安全产品不仅能够充分发挥我们已经取得的优势,创造更多的效益,而且可以使我国的公钥密码应用技术进入一个更广阔的新天地。
本文来源:https://www.2haoxitong.net/k/doc/9cc99927a98271fe900ef916.html
文档为doc格式