智能卡数字加密技术
文章出处:http://www.singbon.com 作者:技术 人气: 发表时间:2011年09月09日
[文章内容简介]:智能卡数字加密技术
加密技术分类
密码学发展至今,产生了很多密码算法。有的算法已在学术刊物中披露,而更多的却作为军事、商业及贸易等秘密被严加保密。现代密码可以概括为序列密码、分组密码及公共密钥密码三种类型,同时与密码技术相关联的还有密钥管理和密码分析。
序列密码
序列密码是指利用少量的密钥(制乱元素)通过某种复杂的运算(密码算法)产生大量的伪随机位流,用于对明文位流的加密。解密是指用同样的密钥和密码算法及与加密相同的伪随机位流,用以还原明文位流。
序列密码由密钥和密码算法两部分构成。密钥在每次使用之前都要变换,一般存储在密码设备内部或从外部输入密码设备。密码算法在较长时间内是固定的。密钥的灵活变换是这一密码算法的活跃因素,而安全保密的关键则在于密码算法的复杂性。序列密码一般应满足三个方面的要求:一是足够长的周期;二是较高的复杂性;三是产生的密钥流符合随机检验的要求。
序列密码的优点是运算速度快,密文传输中的错误不会在明文中产生扩散。其缺点是密钥变换过于频繁,密钥分配较难。由于序列密码历史悠久,理论完善,目前仍是国际密码应用的主流。
分组密码
分组密码是将明文按一定的位长分组,明文组和密钥组的全部经过加密运算得到密文组。解密时密文组和密钥组经过解密运算(加密运算的逆运算),还原成明文组。
分组密码的优点是:密钥可以在一定时间内固定,不必每次变换,因此给密钥配发带来了方便。但是,由于分组密码存在着密文传输错误在明文中扩散的问题,因此在信道质量较差的情况下无法使用。
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之间有一公共密钥,在每次认证传输之前,发送端向接收端请求一中间密钥,发送端根据此中间密钥,利用公共密钥导算出加密密钥,再对传输信息作传输认证。如果系统设计合理,附加的认证信息除具有认证功能外,不应具有检错甚至纠错功能。认证传输方式原理见下图。
认证传输方式具有如下特点:一是传输的信息为明文,不具有保密性;二是附加认证信息可以具有信息认证、检错、纠错等多种功能,但决不是一般的冗余校验。
加密传输方式
加密传输方式就是将信息加密之后再进行传输。加密之后的信息具有保密性,但不具备检错、纠错等功能。此外,在一种具体的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))的框图
DES算法第六步
把L(i)与X(i)按位相加,形成R(i+1),且令R(i)为L(i+1),即得到经第i+1次迭代加密后的输出L(i+1)R(i+1),其中
L(i+1)= R(i)
R(i+1)= L(i)⊕f(R(i),K(i+1)) (2.1)
(i=0,1,2,…,15)
我们可以看出,DES密码体制的每一次迭代都用替代法和换位法和换位法对上一次迭代的输出进行加密变换。用硬件实现DES算法时,实际上用替代盒实现替代函数Sj(1≤j≤8),用换位盒实现换位函数P。为了使最后输出的密码文与原始输入的明码文没有明显的函数关系,DES算法采用16次迭代。在前15次迭代中,式(2.1)中的L(i)表示左32位,R(i)表示右32位。对最后一次迭代,L(16)表示右32位,R(16)表示左32位,即在最后一次迭代时不再左右交换,以保证加密和解密的对称性。
DES算法第七步
对R(16)L(16)作逆初始换位IP-1,得到密码文。
逆初始换位表IP-1
(略)
由式(2.1)知
R(i)= L(i+1)
L(i)= R(i+1)⊕f (L(i),K(i+1))
(i=15,14,…,0)
因此解密算法与加密算法相同,仅密钥的使用顺序相反而已。
DES算法密钥计算
在每次迭代中要用到48位的密钥
K(i)=k1(i)k2(i)…k48(i)
(i=15,14,…,0)
它们是根据64位原始密钥
K=k1k2…k64
计算出来的,其中所有8的倍数位k8,k16,…,k64用作奇偶校验位。图4-3为计算密钥K(i)的流程图。
第一步:首先舍弃原始密钥K中的所有奇偶校验位,经换位选择1(表4-6)处理,变成C(0),D(0)两个各28位的数据区组,其中
C(0)=c1(0)c2(0)… c28(0) =k57k49…k36
D(0)=d1(0)d2(0)… d28(0) =k63k55…k4
第二步:C(0)、D(0)各作σ(1)位左循环移位(表4-7),得
C(1)= λσ(1)C(0)
D(1)= λσ(1)D(0)
第三步:拼接C(1)、D(1),得
E(1)=e1(1)e2(1)… e56(1) =c1(1)c2(1)… c28(1) d1(1)d2(1)… d28(1)
用换位选择2(表4-8)从中选出48位,形成第一次迭代使用的加密密钥
K(1)=k1(1)k2(1)… k48(1) =e14(1)e17(1)… e32(1)
第四步:用同样方法递推地产生第i次(i=2,…16)迭代的密钥。
加密计算和密钥计算汇总在一起,DES的运算过程可以简单地总括如下:
第一步:初始输入
从外部输入64位原始密钥k1k2…k64,其中56位是密钥位,8位是奇偶校验位;
由k1k2…k64依次计算出16个48位密钥K(1),K(2),…K(16)分别用于第1至于16次迭代;
从外部输入64位明码文t1t2…t64;
对t1t2…t64做初始换位,然后分成各32位的L(0),R(0);
迭代计数器置1。
第二步:迭代
把扩充函数作用于R(i-1),得E(R(i-1));
若执行加密操作,则选用K(i);若执行解密操作,则选用K(17-i);
计算E(R(i-1))⊕K(i),得48位的数据区组
Z(i)=z1(i)z2(i)… z48(i)
将Z(i)分组分别通过相应的Sj,得到32位的数据区组
Y(i)=y1(i)y2(i)… y32(i)
将换位函数P作用于Y(i),得
X(i)=P(Y(i))
计算R(i)= X(i)⊕L(i-1);
令L(i)= R(i-1);
迭代计数器加1;
如果迭代计数器小于等于16,则重做(6)至(14)。否则,将(R(16)L(16))经逆初始换位作用之后输出。
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算法颁布之后,引起了学术界和企业界的广泛重视。许多厂家很快生产出实现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之后,近年来国际上又相继提出了多种新的分组密码体制,见表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)联系。
本文关键词:智能卡数字加密技术