实现基于IDEA算法的加密工具(2)

3/23/2008来源:软件工程人气:5740


2.IDEA算法概述

IDEA是一个迭代分组密码,分组长度为64比特,密钥长度为128比特。

IDEA密码中使用了以下三种不同的运算:

逐位异或运算;

模216加运算;

模216+1乘运算,0与216对应。

IDEA算法是由8轮迭代和随后的一个输出变换组成。它将64比特的数据分成4个子块,每个16比特,令这四个子块作为迭代第一轮的输出,全部共8轮迭代。每轮迭代都是4个子块彼此间以及16比特的子密钥进行异或,模216加运算,模216+1乘运算。除最后一轮外把每轮迭代输出的四个子块的第二和第三子块互换。该算法所需要的"混淆"可通过连续使用三个"不相容"的群运算于两个16比特子块来获得,并且该算法所选择使用的MA-(乘加)结构可提供必要的"扩散"。