论文部分内容阅读
[摘 要] 随着电子商务的发展,计算机信息的保密问题显得越来越重要,信息安全的核心是密码技术,IDEA密码安全技术是当今最新一门加密解密技术。
[关键词] 信息安全 密码技术
一、背景
1990年XueJia Lai和Massey开发出IDEA加密算法雏形,称为PES,即“建议的加密标准”。第二年,根据有关专家对这—密码算法的分析结果,设计者对该算法进行了强化并称之为IPES,即“改进的建议加密标准”。该算法于1992年更名为IDEA,即“国际加密标准”。
IDEA有大量的弱密钥,这些弱密钥是否会威胁它的安全性还是一个迷。IDEA密码能够抵抗差分分析和线性分析。 设计者Lai认为IDEA不是一个群,但目前仍未得到证实。 Eurocrypt'97会议上给出了两种新的攻击低圈IDEA的方法,第一种攻击方法可破译大约3·5-圈的IDEA;第二种攻击方法可破译大约3-圈的IDEA。但从分析结果来看,这两种攻击方法并未对IDEA的安全性构成威胁。
IDEA(International Data Encryption Algorithm)是一种国际信息加密算法。它是1991年的瑞士ETH Zurich由James Massey 和Xueiia Lai发明的),于l992年正式公开,是一个分组大小为64位,密钥为l28位,迭代轮数为八轮的迭代型密码体制。密钥主要是通过二元和,模216加及216+l乘三种运算来完成,IDEA另一特点是用户可以根据需求选用64位或128位密钥以满足所需的安全要求。
二、算法框架
输入的64-位数据分组被分成4个16-位子分组:xl,X2,x3和x4。这4个子分组成为算法的第一轮的输入,总共有8轮。在每一轮中,这4个子分组相互相异或,相加,相乘,且与6个16-位子密钥相异或,相加,相乘。在轮与轮间,第二和第三个子分组交换。最后在输出变换中4个子分组与4个子密钥进行运算。
在每一轮中,执行的顺序如下:
(1)X1和第一个子密钥相乘。(2)x2和第二个子密钥相加。(3)X3和第三个子密钥相加。(4)x4和第四个子密钥相乘。(5)将第(1)步和第(3)步的结果相异或。 (6)将第(2)步和第(4)步的结果相异或。(7)将第(5)步的结果与第五个子密钥相乘。(8)将第(6)步和第(7)步的结果相加。(9)将第(8)步的结果与第六个子密钥相乘。(10)将第(7)步和第(9)步的结果相加。(11)将第(1)步和第(9)步的结果相异或。(12)将第(3)步和第(9)步的结果相异或。(13)将第(2)步和第(10)步的结果相异或。(14)将第(4)步和第(10)步的结果相异或。
每一轮的输出是第(11)、(12)、(13)和(14) 步的结果形成的4个子分组。将中间两个分组分组交换(最后一轮除外)后,即为下一轮的输入。
经过8轮运算之后,有一个最终的输出变换:
(1)X1和第一个子密钥相乘。(2)x2和第二个子密钥相加。(3)x3和第三个子密钥相加。(4)x4和第四个子密钥相乘。
最后,这4个子分组重新连接到一起产生密文。产生子密钥也很容易。这个算法用了52个子密钥(8轮中的每一輪需要6个,其他4个用与输出变换)。首先,将128-位密钥分成8个16-位子密钥。这些是算法的第一批8个子密钥(第一轮六个,第二轮的头两个)。然后,密钥向左环移x位后再分成8个子密钥。开始4个用在第二轮,后面4个用在第三轮。密钥再次向左环移25位产生另外8个子密钥,如此进行直到算法结束。
三、加密解密算法详解
1.产生密钥。算法用了52个子密钥(8轮中的每一轮需要6个,其他4个用与输出变换)。首先,将128-位密钥分成8个16-位子密钥。这些是算法的第一批8个子密钥(第一轮六个,第二轮的头两个)。然后,密钥向左环移x位后再分成8个子密钥。开始4个用在第二轮,后面4个用在第三轮。密钥再次向左环移25位产生另外8个子密钥,如此进行直到算法结束。具体是:
IDEA总共进行8轮迭代操作,每轮需要6个子密钥,另外还需要4个额外子密钥,所以总共需要52个子密钥,这个52个子密钥都是从128位密钥中扩展出来的。
首先把输入的Key分成8个16位的子密钥, 1~6号子密钥供第一轮加密使用,7~8号子密钥供第二轮使用,然后把这个128位密钥循环左移25位,这样Key = k26k27k28…k24k25。
把新生成的Key在分成8个16位的子密钥,1~4号子密钥供第二轮加密使用(前面已经提供了两个)5~8号子密钥供第三轮加密使用。到此我们已经得到了16个子密钥,如此继续,当循环左移了5次之后已经生成了48个子密钥,还有四个额外的子密钥需要生成,再次把Key循环左移25位,选取划分出来的8个16位子密钥的前4个作为那4个额外的加密密钥.供加密使用的52个子密钥生成完毕。
输入的64-位数据分组被分成4个16-位子分组:xl,X2,x3和x4。这4个子分组成为算法的第一轮的输入,总共有8轮。在每一轮中,这4个子分组相互相异或,相加,相乘,且与6个16-位子密钥相异或,相加,相乘。在轮与轮间,第二和第三个子分组交换。最后在输出变换中4个子分组与4个子密钥进行运算。
2.加、解密过程。在每一轮中,执行的顺序如下:(1)X1和第一个子密钥相乘。(2)x2和第二个子密钥相加。(3)X3和第三个子密钥相加。(4)x4和第四个子密钥相乘。(5)将第(1)步和第(3)步的结果相异或。 (6)将第(2)步和第(4)步的结果相异或。(7)将第(5)步的结果与第五个子密钥相乘。(8)将第(6)步和第(7)步的结果相加。(9)将第(8)步的结果与第六个子密钥相乘。(10)将第(7)步和第(9)步的结果相加。(11)将第(1)步和第(9)步的结果相异或。(12)将第(3)步和第(9)步的结果相异或。(13)将第(2)步和第(10)步的结果相异或。(14)将第(4)步和第(10)步的结果相异或。
每一轮的输出是第(11)、(12)、(13)和(14)步的结果形成的4个子分组。将中间两个分组分组交换(最后一轮除外)后,即为下一轮的输入。
经过8轮运算之后,有一个最终的输出变换:
(1)X1和第一个子密钥相乘。(2)x2和第二个子密钥相加。(3)x3和第三个子密钥相加。(4)x4和第四个子密钥相乘。
最后,这4个子分组重新连接到一起产生密文。
四、评价
IDEA算法的密钥长度为128位。设计者尽最大努力使该算法不受差分密码分析的影响,数学家已证明IDEA算法在其8圈迭代的第4圈之后便不受差分密码分析的影响了。假定穷举法攻击有效的话,那么即使设计一种每秒种可以试验10亿个密钥的专用芯片,并将10亿片这样的芯片用于此项工作,仍需1013年才能解决问题;另一方面,若用1024片这样的芯片,有可能在一天内找到密钥,不过人们还无法找到足够的硅原子来制造这样一台机器。目前,尚无一片公开发表的试图对IDEA进行密码分析的文章。因此,就现在来看应当说IDEA是非常安全的。并且,IDEA数据比较RSA算法加、解决速度快得多,又比DES算法要相对安全得多。
参考文献:
[1]陈 运:信息加密原理[M].成都:电子科技大学出版社,1990
[2]黄 伟:加密与解密算法研究[J].论文天下论文网
[关键词] 信息安全 密码技术
一、背景
1990年XueJia Lai和Massey开发出IDEA加密算法雏形,称为PES,即“建议的加密标准”。第二年,根据有关专家对这—密码算法的分析结果,设计者对该算法进行了强化并称之为IPES,即“改进的建议加密标准”。该算法于1992年更名为IDEA,即“国际加密标准”。
IDEA有大量的弱密钥,这些弱密钥是否会威胁它的安全性还是一个迷。IDEA密码能够抵抗差分分析和线性分析。 设计者Lai认为IDEA不是一个群,但目前仍未得到证实。 Eurocrypt'97会议上给出了两种新的攻击低圈IDEA的方法,第一种攻击方法可破译大约3·5-圈的IDEA;第二种攻击方法可破译大约3-圈的IDEA。但从分析结果来看,这两种攻击方法并未对IDEA的安全性构成威胁。
IDEA(International Data Encryption Algorithm)是一种国际信息加密算法。它是1991年的瑞士ETH Zurich由James Massey 和Xueiia Lai发明的),于l992年正式公开,是一个分组大小为64位,密钥为l28位,迭代轮数为八轮的迭代型密码体制。密钥主要是通过二元和,模216加及216+l乘三种运算来完成,IDEA另一特点是用户可以根据需求选用64位或128位密钥以满足所需的安全要求。
二、算法框架
输入的64-位数据分组被分成4个16-位子分组:xl,X2,x3和x4。这4个子分组成为算法的第一轮的输入,总共有8轮。在每一轮中,这4个子分组相互相异或,相加,相乘,且与6个16-位子密钥相异或,相加,相乘。在轮与轮间,第二和第三个子分组交换。最后在输出变换中4个子分组与4个子密钥进行运算。
在每一轮中,执行的顺序如下:
(1)X1和第一个子密钥相乘。(2)x2和第二个子密钥相加。(3)X3和第三个子密钥相加。(4)x4和第四个子密钥相乘。(5)将第(1)步和第(3)步的结果相异或。 (6)将第(2)步和第(4)步的结果相异或。(7)将第(5)步的结果与第五个子密钥相乘。(8)将第(6)步和第(7)步的结果相加。(9)将第(8)步的结果与第六个子密钥相乘。(10)将第(7)步和第(9)步的结果相加。(11)将第(1)步和第(9)步的结果相异或。(12)将第(3)步和第(9)步的结果相异或。(13)将第(2)步和第(10)步的结果相异或。(14)将第(4)步和第(10)步的结果相异或。
每一轮的输出是第(11)、(12)、(13)和(14) 步的结果形成的4个子分组。将中间两个分组分组交换(最后一轮除外)后,即为下一轮的输入。
经过8轮运算之后,有一个最终的输出变换:
(1)X1和第一个子密钥相乘。(2)x2和第二个子密钥相加。(3)x3和第三个子密钥相加。(4)x4和第四个子密钥相乘。
最后,这4个子分组重新连接到一起产生密文。产生子密钥也很容易。这个算法用了52个子密钥(8轮中的每一輪需要6个,其他4个用与输出变换)。首先,将128-位密钥分成8个16-位子密钥。这些是算法的第一批8个子密钥(第一轮六个,第二轮的头两个)。然后,密钥向左环移x位后再分成8个子密钥。开始4个用在第二轮,后面4个用在第三轮。密钥再次向左环移25位产生另外8个子密钥,如此进行直到算法结束。
三、加密解密算法详解
1.产生密钥。算法用了52个子密钥(8轮中的每一轮需要6个,其他4个用与输出变换)。首先,将128-位密钥分成8个16-位子密钥。这些是算法的第一批8个子密钥(第一轮六个,第二轮的头两个)。然后,密钥向左环移x位后再分成8个子密钥。开始4个用在第二轮,后面4个用在第三轮。密钥再次向左环移25位产生另外8个子密钥,如此进行直到算法结束。具体是:
IDEA总共进行8轮迭代操作,每轮需要6个子密钥,另外还需要4个额外子密钥,所以总共需要52个子密钥,这个52个子密钥都是从128位密钥中扩展出来的。
首先把输入的Key分成8个16位的子密钥, 1~6号子密钥供第一轮加密使用,7~8号子密钥供第二轮使用,然后把这个128位密钥循环左移25位,这样Key = k26k27k28…k24k25。
把新生成的Key在分成8个16位的子密钥,1~4号子密钥供第二轮加密使用(前面已经提供了两个)5~8号子密钥供第三轮加密使用。到此我们已经得到了16个子密钥,如此继续,当循环左移了5次之后已经生成了48个子密钥,还有四个额外的子密钥需要生成,再次把Key循环左移25位,选取划分出来的8个16位子密钥的前4个作为那4个额外的加密密钥.供加密使用的52个子密钥生成完毕。
输入的64-位数据分组被分成4个16-位子分组:xl,X2,x3和x4。这4个子分组成为算法的第一轮的输入,总共有8轮。在每一轮中,这4个子分组相互相异或,相加,相乘,且与6个16-位子密钥相异或,相加,相乘。在轮与轮间,第二和第三个子分组交换。最后在输出变换中4个子分组与4个子密钥进行运算。
2.加、解密过程。在每一轮中,执行的顺序如下:(1)X1和第一个子密钥相乘。(2)x2和第二个子密钥相加。(3)X3和第三个子密钥相加。(4)x4和第四个子密钥相乘。(5)将第(1)步和第(3)步的结果相异或。 (6)将第(2)步和第(4)步的结果相异或。(7)将第(5)步的结果与第五个子密钥相乘。(8)将第(6)步和第(7)步的结果相加。(9)将第(8)步的结果与第六个子密钥相乘。(10)将第(7)步和第(9)步的结果相加。(11)将第(1)步和第(9)步的结果相异或。(12)将第(3)步和第(9)步的结果相异或。(13)将第(2)步和第(10)步的结果相异或。(14)将第(4)步和第(10)步的结果相异或。
每一轮的输出是第(11)、(12)、(13)和(14)步的结果形成的4个子分组。将中间两个分组分组交换(最后一轮除外)后,即为下一轮的输入。
经过8轮运算之后,有一个最终的输出变换:
(1)X1和第一个子密钥相乘。(2)x2和第二个子密钥相加。(3)x3和第三个子密钥相加。(4)x4和第四个子密钥相乘。
最后,这4个子分组重新连接到一起产生密文。
四、评价
IDEA算法的密钥长度为128位。设计者尽最大努力使该算法不受差分密码分析的影响,数学家已证明IDEA算法在其8圈迭代的第4圈之后便不受差分密码分析的影响了。假定穷举法攻击有效的话,那么即使设计一种每秒种可以试验10亿个密钥的专用芯片,并将10亿片这样的芯片用于此项工作,仍需1013年才能解决问题;另一方面,若用1024片这样的芯片,有可能在一天内找到密钥,不过人们还无法找到足够的硅原子来制造这样一台机器。目前,尚无一片公开发表的试图对IDEA进行密码分析的文章。因此,就现在来看应当说IDEA是非常安全的。并且,IDEA数据比较RSA算法加、解决速度快得多,又比DES算法要相对安全得多。
参考文献:
[1]陈 运:信息加密原理[M].成都:电子科技大学出版社,1990
[2]黄 伟:加密与解密算法研究[J].论文天下论文网