千家信息网

IDEA加解密

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,一.IDEA算法简介IDEA(International Data Encryption Alogrithm)是由瑞士苏黎士联邦工业大学的XueJiaLai和James L.Massey 于1991年
千家信息网最后更新 2026年11月01日IDEA加解密

一.IDEA算法简介

IDEA(International Data Encryption Alogrithm)是由瑞士苏黎士联邦工业大学的XueJiaLai和James L.Massey 于1991年提出的。IDEA使用128比特密钥,整个算法和DES相似,也是将明文划分成一个个64比特长的数据分组,然后经过几次迭代和一次变换,得出64比特的密文。

IDEA是将两个16比特的值映射为一个16比特的值,这些操作是:

● 半加运算,即"异或"运算,用符号"⊕"表示。所谓的半加运算,就是在进行二进制运算时只加,不进位。

● 模216的加法运算(即mod 65536),用"+"表示。

● 模216+1乘运算用符号"⊙"表示。

实际上,⊙是将两个输入的数进行乘法运算,然后再对此结果按模216+1运算得出的结果。对于这样的运算应该注意的是,参与运算的任何一个二进制数据n位,如果全是0,则用n+1位数据表示,且最高位为1,其余全为0。

为了理解以上三种操作,我们用2位的数来表示以上的三种关系,如表2-3-1所示。


表2-3-1 IDEA三种操作的关系



X

Y

XY

X⊙Y

X⊕Y

十进制

二进制

十进制

二进制

十进制

二进制

十进制

二进制

十进制

二进制

0

00

0

00

0

00

1

01

0

00

0

00

1

01

1

01

0

00

1

01

0

00

2

10

2

10

3

11

2

10

0

00

3

11

3

11

2

10

3

11

1

01

0

00

1

01

0

00

1

01

1

01

1

01

2

10

1

01

0

00

1

01

2

10

3

11

2

10

3

11

1

01

3

11

0

00

3

11

2

10

2

10

0

00

2

10

3

11

2

10

2

10

1

01

3

11

2

10

3

11

2

10

2

10

0

00

0

00

0

00

2

10

3

11

1

01

1

01

1

01

3

11

0

00

3

11

2

10

3

11

3

11

1

01

0

00

3

11

2

10

3

11

2

10

1

01

1

01

1

01

3

11

3

11

2

10

0

00

0

00


二.IDEA算法加密过程

1.IDEA迭代过程

IDEA加密算法采用8次迭代,如图2-3-1所示:





图2-3-1 8次迭代


64比特的密钥生成的数据被分成8个子块,每个子块16比特。每一次迭代过程如图2-3-2所示:






图2-3-2 单次迭代过程


「说明」 图中⊕表示异或运算;表示模216的加法运算; ⊙表示模216+1的乘法运算。

X1,X2,X3和X4作为第一次迭代的输入,每轮的迭代都是4个子块以及16比特子密钥间的异或运算,模216做加法运算和模(216+1)的乘法运算。

迭代步骤如下:

(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)的结果做异或运算。

每轮完成以上的14次运算,共进行8轮,然后进行最后的输出变换,如图2-3-3所示。经过8轮迭代运算后,W81,W82,W83,W84分别与Z48,Z49,Z50,Z51运算得到Y1,Y2,Y3和Y4。其方法如下:






图2-3-3 8轮迭代变换后的输出变换


2.IDEA密钥生成过程

在图2-3-3中可以看出,在加密过程中共有52个子密钥块参与运算,每个块长16比特。这52个密钥块是由128比特密钥产生的,我们将这52个密钥块记为Z0,Z1……,Z51。最初的8个子密钥Z0,Z1,……,Z7是直接来自用户输入,Z0是用户输入密钥的前16比特;Z1是用户输入密钥的第二个16比特,Z7是用户输入密钥的最后16比特。这样从Z0到Z7的密钥共计长度为128比特。

IDEA每一轮迭代使用6个子密钥,每个子密钥有16位,这意味着在一轮迭代中,密钥中只有96位被使用。最初的6个连续的子密钥(Z0到Z5)直接用于第一轮迭代,然后128位的密钥要循环左移25位,之后再取密钥的前96位作为下一轮的6个子密钥。以此类推,直到8轮迭代全部完成。

3.IDEA解密算法与其加密的关系

IDEA的解密处理和其加密处理基本相同,只是解密处理输入的是密文,选择的密钥不大相同,但也有一定的联系。它与加密密钥的关系如下。

解密过程的第i轮前四个密钥是与加密过程中的第(10-i)轮的相同,最后置换作为第9轮。解密过程的第1和第4轮是对应加密处理过程第1轮和第4轮的模(216+1)乘运算,解密过程中的第2轮和第3轮对应与加密过程中的第3轮和第2轮的模216的加运算。

在前8轮运算中,解密的第i轮的最后两个子密钥块等于加密过程中的第9-i轮的最后两个子密钥块。每一轮的加密和解密的子密钥关系如表2-3-2所示。


表2-3-2 加密和解密的子密钥关系


加解密轮次

每轮的加密密钥

原始密钥对应的位

第一轮

Z0Z1Z2Z3Z4Z5

Z48-1-Z49-Z50Z51-1Z46Z47

第二轮

Z6Z7Z8Z9Z10Z11

Z42-1-Z44-Z43Z45-1Z40Z41

第三轮

Z12Z13Z14Z15Z16Z17

Z36-1-Z38-Z37Z39-1Z34Z35

第四轮

Z28Z19Z20Z21Z22Z23

Z30-1-Z32-Z31Z33-1Z28Z29

第五轮

Z34Z25Z26Z27Z28Z29

Z24-1-Z26-Z25Z27-1Z22Z23

第六轮

Z30Z31Z32Z33Z34Z35

Z18-1Z20-Z19Z21-1Z18Z17

第七轮

Z46Z37Z38Z39Z40Z41

Z12-1Z14-Z13Z15-1Z10Z11

第八轮

Z42Z43Z44Z45Z46Z47

Z6-1-Z8-Z7Z9-1Z4Z5

最后的置换

Z48Z49Z50Z51

Z0-1-Z1-Z2Z3-1



以上Zj与Zj-1及-Zj与Zj的关系为:


运算 密钥 迭代 个子 过程 加密 结果 乘法 二进制 加法 输入 一轮 十进制 算法 十进 两个 数据 用户 变换 处理 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 为想互联网科技怎么样 互联网科技官网 互联网下的科技发展 猪兼强互联网科技 互联网科技公司官网 成都互联网科技公司 狮子座互联网科技培训 无锡溥仪互联网科技有限公司 移动互联网科技股 青岛科技大学互联网大赛研究生 移动互联网科技公司 注册互联网科技公司经营范围大全 互联网新科技动漫ppt素材 中国互联网公司排名锤子科技 互联网科技的全部知识 广州千川互联网科技有限公司 启辰互联网科技 下一代互联网重大应用科技园 美国五大互联网科技公司市值多少 现代科技的标志之一的互联网 湖北九亚互联网络科技有限公司 世界互联网领先科技成果 互联网金融 科技创新 科技伦理 互联网公司 顺网科技2021年互联网排名 滨湖区互联网智能科技产品供应 广州恒生互联网科技有限 受益于互联网科技的高速发展 伊宁互联网科技做什么的 山东蛋芒互联网科技有限公司
0