2.理念設計原則
3、想法加密過程
4.IDEA解密過程
三
idea(international data encryption algorithm)是由瑞士的James Massey,Xuejia Lai等人提出的壹種加密算法,屬於密碼學中分組密碼的壹類。
IDEA使用長度為128bit的密鑰,數據塊大小為64bit。從理論上講,IDEA是壹種“強”加密算法,目前為止還沒有針對這種算法的有效攻擊算法。
1的基本概念。想法
四
早在1990年,薛家來等人就在EuroCrypt'90年會上提出了建議的加密標準(PES)。在EuroCrypt’91年會上,賴學佳等人提出了PES (IPES)的修訂版。目前,IPES已經被商業化,改名為IDEA。IDEA已經被瑞士Ascom公司申請了專利,妳必須申請許可才能將IDEA算法用於商業目的。
理念的基本概念
五
IDEA是壹種分組密碼算法,分組長度為64位,密鑰長度為128位(比DES強)。同樣的算法可以加密和解密。
IDEA可以抵抗差分分析和相關分析;
IDEA似乎沒有DES意義上的弱鍵;
IDEA的“混淆”和“擴散”設計原理來自於三種運算,在軟件和硬件上都很容易實現(快速加密)
理念的基本概念
六
異或運算()
整數模塊216加(+)
整數模216+1次()(S盒的想法)
擴散由稱為MA結構的算法的基本構建塊提供。
Z6
第二子代
F1
Z5
G1
G2 Esports電子競技俱樂部
理念運作
七
實施註意事項
使用子包:16bit子包;
使用簡單的操作(易於添加、移位等。)
加密和解密過程是相似的;
規則結構(用於VLSI實現)。
理念運作
八
2.理念設計原則
1密碼的強度:主要通過混淆和擴散來實現。
混淆實現方法:
(1)按位異或。表示為
(2)模整數加法,表示為,其輸入和輸出為
16無符號整數處理。
模整數乘法,表示為,其輸入和輸出除以16。
所有零都被視為16無符號整數。
九
例如
0000000000000000⊙1000000000000000
=1000000000000001
這是因為216×215 mod(216+1)= 215+1。
理念設計原則
10
表3.6顯示了當操作數為2位長時三種運算的運算表。在以下意義上,這三種操作是不相容的:
①三種運算中任意兩種不滿足分布律,如a+(b⊙c)≦(a+b)⊙(a+c)。
②三個運算中任意兩個不滿足結合律,如a +(b?c)?(a+b)?c
+
理念設計原則
11
三種運算的組合可以為算法的輸入提供復雜的變換,這使得IDEA的密碼分析比僅使用XOR運算的DES更困難。
算法中的擴散是通過壹個叫做乘/加,MA)結構的基本單元實現的(見圖4.14)。
這個結構的輸入是兩個16比特子段和兩個16比特子密鑰,輸出也是兩個16比特子段。這種結構在算法中重復使用了8次,獲得了非常有效的擴散效果。
理念設計原則
12
IDEA算法的擴散主要通過乘加結構的基本單元來實現。
概念結構
13
思想加密的總體方案
第二周期
第八周期
循環1
輸出轉換
64位密文
64位明文
Z1
Z6
Z7
Z12
Z43
Z48
Z49
Z52
子密鑰生成器
128位密鑰
Z1
Z52
16
14
IDEA加密總體方案圖
15
想法加密過程
回合1
64位明文
X1
X2
X3
X4
第二輪
W11
W12
W13
W14
第8輪
W71
W72
W73
W74
W21
W22
W23
W24
W81
W82
W83
W84
輸出轉換
Y1
Y2
Y3
Y4
密文
…
Z1
Z6
…
Z7
Z12
…
Z43
Z48
…
Z49
Z52
關鍵詞生成器
128位密鑰
Z1
Z52
16
加密過程(如圖4.15所示)由八次連續叠代和壹次輸出轉換組成。該算法將64位明文分成4個16位子段,每次叠代以4個16位子段為輸入,輸出也是4個16位子段。最終的輸出轉換還產生四個16位的子段,這些子段被連接起來形成壹個64位的密文分組。每次叠代需要6個16位的子密鑰,最終輸出轉換需要4個16位的子密鑰,所以子密鑰總數為52。圖4.15的右半部分顯示了從初始的128位密鑰生成52個子密鑰的子密鑰生成器。
3.想法加密過程
17
圖4.16是IDEA的1輪的結構示意圖,後續各輪也是這種結構,只是使用的子鍵和輪輸入不同。從結構圖可以看出,IDEA並不是傳統的Feistel密碼結構。在每壹輪的開始,都有壹個轉變。轉換的輸入是四個子段和四個子鍵。轉換中的操作是兩次乘法和兩次加法。四個輸出子段進行異或運算,形成16比特的兩個子段作為MA結構的輸入。MA結構也有兩個輸入子鍵,輸出是兩個16位子段。
理念的車輪結構
18
IDEA wheel 1的車輪結構
19
Y1
Y2
Y3
Y4
1車輪結構
20
最後,將變換的四個輸出子段與MA結構的兩個輸出子段進行異或運算,生成本輪的四個輸出子段。註意,W12和W13是在X2生成的輸出子段和X3生成的輸出子段交換後形成的,目的是為了進壹步增加混淆效果,使算法更能抵抗差分密碼分析。
想法加密過程
21
在每壹輪中,執行的順序如下:
1.X1乘以第壹個子項。
2.添加了X2和第二個子密鑰。
3.添加了X3和第三個子密鑰。
4.X4和第四個子密鑰相乘。
5.區別步驟1和步驟3的結果。
6.比較步驟2和步驟4的結果。
IDEA,每壹輪的加密順序。
22
7.將步驟5的結果乘以第五個子密鑰。
8.將第6步和第7步的結果相加。
9.將步驟8的結果乘以第六個子密鑰。
10.將第7步和第9步的結果相加。
11.區別步驟1和步驟9或的結果。
12.比較步驟3和步驟9的結果。
13.區別步驟2和步驟10的結果或。
14.區別步驟4和步驟10的結果或。
IDEA,每壹輪的加密順序。
23
算法的第九步是輸出轉換,如圖4.17所示。其結構與每輪開始時的變換結構相同,但不同的是,輸出變換的第二個和第三個輸入已被首先切換,以便在第八輪輸出中取消兩個子段的交換。還應該註意的是,在步驟9中只需要4個子密鑰,而在前8輪中的每壹輪都需要6個子密鑰。
IDEA,每壹輪的加密順序。
24
觀念的輸出轉化
25
在加密過程中,由128位的加密密鑰生成52個16位的子密鑰如下:前8個子密鑰Z1,Z2,...,Z8直接取自加密密鑰,即Z1取前16位(最高有效位),Z2取後面的65438+。然後將加密密鑰循環左移25位,再取後面8個子密鑰Z9,Z10,…,Z16,與Z1,Z2,…,Z8相同。重復此過程,直到生成所有52個子密鑰。
IDEA子項的生成
26
IDEA子項的生成
生成子密鑰的方法。該算法使用52個子密鑰(8輪中每輪6個子密鑰,另外4個子密鑰用於輸出轉換)。首先,將128位密鑰分成八個16位密鑰。這些是算法的第壹批8個子密鑰(第壹輪6個,第二輪2個)。然後,密鑰向左環移動25位,生成另外8個子密鑰,依此類推,直到算法結束。
27
28
29
4.思想的解密過程
加密和解密本質上是壹樣的,只是使用了不同的密鑰;
解密密鑰通過以下方式從加密子密鑰中獲得:
解密周期I的前四個子密鑰是從加密周期10-I的前四個子密鑰導出的;解密密鑰的第1和第4個子密鑰對應於第1和第4個加密子密鑰的乘法逆元;2,3對應於2,3的加法逆;
對於前八個周期,周期I的最後兩個子密鑰等於加密周期9-I的最後兩個子密鑰;
30
解密和加密過程基本相同,只是使用的密鑰不同。解密密鑰按如下方式生成。
(1)I(I = 1,2,...9)輪解密是從(10-i)輪加密過程的前四個子密鑰獲得的。第1和第4個解密子密鑰作為第壹和第四個加密子密鑰對應的模乘逆密鑰。當輪數為I = 2時,第二和第三子密鑰作為相應的第三和第二加密子密鑰的模加逆,...,8,並且當i=1和9時,作為相應的第二和第三加密子密鑰的模加逆。
思想的解密過程
31
(2)第i(i=1,…,8)輪解密的最後兩個子密鑰等於第(9-i)輪加密過程的最後兩個子密鑰。
思想的解密過程
32
加密過程
變化
X1
X2
X3
X4
Z1..Z4
Zijiami
I11
I12
I13
I14
Z5 Z6
變化
W11
W12
W13
W14
Z7..Z10
Zijiami
I21
I22
I23
I24
Z11 Z612
W21
W22
W23
W24
變化
W71
W72
W73
W74
Z43..Z46
Zijiami
I81
I82
I83
I84
Z47 Z48
變化
W81
W82
W83
W84
Z49..Z52
Y1
Y2
Y3
Y4
回合1
第二輪
第8輪
………… ..
33
變化
X1
X2
X3
X4
U49..U52
Zijiami
V81
V82
V83
V84
U47U48
變化
J81
J82
J83
J84
U43…U46
Zijiami
V71
V72
V73
V74
U11U12
V21
V22
V23
V24
變化
J21
J22
J23
J24
U7…U10
Zijiami
V11
V12
V13
V14
U5U6
變化
J11
J12
J13
J14
U1…U4
Y1
Y2
Y3
Y4
第8輪
第二輪
回合1
譯
第9輪
………… ..
解密過程
34
表3.7總結了上述關系。其中Zj的模乘216+1的逆為Z-1j,滿足(見58頁表3.7)。
ZJ⊙Z-1j = 1 mod(216+1)
由於216+1是素數,所以每個不大於216的非零整數都有壹個唯壹的模乘逆216+1。Zj的模216加法逆為-Zj,滿足:
-Zj + Zj=0 mod (216)
思想的解密過程
35
下面的驗證解密過程確實可以得到正確的結果。在圖4.18中,加密過程在左邊,從上到下,解密過程在右邊,從下到上。每壹輪又進壹步分為兩步,1步是變換,剩下的是第二步,稱為子加密。
思想的解密過程
36
IDEA加密和解密框圖
37
現在從下往上想。對於加密過程中的最後壹個輸出轉換,以下關系成立:
y 1 = w 81⊙Z49 Y2 = W83+Z50
Y3=W82 + Z51 Y4=W84⊙Z52
解密過程中1輪的步驟1產生以下關系:
j 11 = y 1⊙u 1j 12 = Y2+U2
J13=Y3 + U3 J14=Y4⊙U4
思想的解密過程
38
解密子密鑰由加密子密鑰表示,Y1,Y2,Y3,Y4代入以下關系,包括
j 11 = y 1⊙Z-149 = w 81⊙Z49⊙Z-149 = w 81
j 12 = Y2+-Z50 = W83+Z50+-Z50 = W83
j 13 = Y3+-z 51 = W82+z 51+-z 51 = W82
j 14 = Y4⊙Z-152 = W84⊙Z52⊙Z-152 = W84
思想的解密過程
39
可以看出,解密過程的1輪中的步驟1的輸出等於加密過程的最後壹步中的第二子部分和第三子部分之間交換的值。從圖4.16可以得出以下關系:
W81=I81?MAR(I81?I83,I82?I84)
W82=I83?MAR(I81?I83,I82?I84)
W83=I82?MAL(I81?I83,I82?I84)
W84=I84?MAL(I81?I83,I82?I84)
思想的解密過程
40
其中,當MA結構的輸入為X和Y時,MAR(X,Y)為右輸出,MAL(X,Y)為左輸出。規則
v 11 = j 11?MAR(J11?J13,J12?J14)
=W81?MAR(W81?W82,W83?W84)
=I81?MAR(I81?I83,I82?I84) MAR [I81?MAR(I81?I83,I82?I84)?I83?
MAR(I81?I83,I82?I84),I82?
MAL(I81?I83,I82?I84)?I84
?MAL(I81?I83,I82?I84)]
=I81?MAR(I81?I83,I82?I84)
MAR(I81?I83,I82?I84) =I81
思想的解密過程
41
同理,可以有v 12 = i83v 13 = i82v 14 = i84。
因此,解密過程的1輪的第二步的輸出等於加密過程的倒數第二個輸入中的第二個子部分和第三個子部分之間交換的值。
同理,可以證明圖4.18中的每壹步都有上述類似的關系,並且這種關系壹直到
v 81 = I 11v 82 = I 13v 83 = I 12v 84 = I 14
也就是說,解密過程的輸出變換與加密過程的1輪的步驟1的變換完全相同,除了第二子部分和第三子部分的位置被交換。
思想的解密過程
四十二個
因此,解密過程的輸出變換與加密過程的1輪的步驟1的變換完全相同,除了第二分段和第三分段的位置被交換。
所以我們最終可以知道,整個解密過程的輸出等於整個加密過程的輸入。
思想的解密過程
43
IDEA分組密碼的特點
可變密鑰長度
混合經營
相關數據的循環移位
密鑰相關循環移位
從屬s盒
冗長密鑰調度算法
可變f函數和可變明文/密文長度
可變周期數
在每個周期中對兩半數據進行操作。
四十四
想法可以很容易地通過軟件和硬件實現。
①軟件采用16位分段處理,利用加法、移位等易於編程的運算即可實現算法的三種運算。
(2)硬件加密和解密是類似的,唯壹不同的是密鑰的使用方式,所以可以用同壹臺設備實現。此外,算法中規則的模塊結構有利於VLSI的實現。
IDEA分組密碼的特點
45
結束了!
想法