技术文章articles

IDEA加密算法

 

在IDEA 加密和解密过程中,明文和密文是分成 64 比特的块来处理的,但密钥宽度是 128 比特,加解密是依赖于下面的三种代数群的运算,每个代数群都是 16 比特数的运算,其中包括:


  • 两个16 比特子块的按位异或 (XOR) 运算.
  • 模加运算,两个整数相加后,对 216 取模,即忽略最高位进位的加法.
  • 模乘运算,两个数求积后,对费马数 p=216 +1取模.

由于上面三种运算的任意两个运算间不满足分配律和结合律,使输入之间实现了较复杂的组合运算,图 3.1 给出了IDEA 算法的加密过程,在 8 轮变换之后,紧接着是一个输出变换.它们级联起来完成一次完整的加密,算法的解密过程和加密过程相同,只是参与运算的子密钥块小同,这个特性也被称为加密和解密的相似性,从图 3.1 可看出 IDEA算法包括 34 次16 位模乘和模加, 48 次异或运算。


IDEA加解密过程

 

如图3.1 所示, 64位的明文被分为 4 个16 比特的子块,四个明文的子模块被 52 个16 比特的密钥转换为 4 个16 比特的密文子块,每轮变换使用 6 个密钥子块,第 r( r=1,…,8)轮使用的密钥为 Z1 (R), … ,Z 6(R) ,若将输出置换作为最后一轮,它用四个密钥,标记为 Z1 (9), … ,Z 4(9) 用于加密和解密的 52个子密钥是由用户提供的 128 位密钥产生的,加密的各轮密钥是由原始密钥向左依次作 25 比特的循环移位后抽取得到的,解密密钥是由对应的加密密钥经模逆运算后产生的,假设 Ki(r) 表示解时第 r轮的第i个密钥,解密密钥和加密密钥具体关系如下:

由于解密密钥产生的复杂性, IDEA 的加密速度快于解密。

在每一轮的核心中,包含有两个模乘模块和两个模加模块,这种结构被称为乘加(MA) 结构,即图3.1 中虚线标注的部分,它是 IDEA 实现中的关键非线性构件,研究表明8轮迭代后能达到雪崩性的扩散和混淆,因而它能抵抗差分分析。

 

超时代手机视频加密转载 www.360drm.com

收缩
  • 电话咨询

  • 4000-186-360
  • 扫一扫 关注微信