© the mcgraw-hill companies, inc., 2007 新一代密碼系統 (advanced encryption standard)
Post on 21-Dec-2015
231 views
TRANSCRIPT
2
新一代密碼系統
© The McGraw-Hill Companies, Inc., 2007
本章內容
6.1 前言6.2 Rijndael 密碼系統6.3 Rijndael 密碼系統的數學背景6.4 回合金鑰的產生6.5 Rijndael 的加密演算法6.6 Rijndael 的解密演算法
3
新一代密碼系統
© The McGraw-Hill Companies, Inc., 2007
6.1 前言• 就目前科技而言,現有之 DES 密碼系統所使用之金鑰長度過短 ( 僅 56 位元 ) ,其安全性已遭受質疑,為提高其安全性,便有了 Triple-DES的構想。
• 隨著電腦技技的發展,可預見未來 Triple-DES的加密演算法也勢必淘汰,有鑑於此,美國國家標準技術局 (NIST) 於 1997 年 1 月 2 日開始著手計劃公開徵求新一代加密標準 ( 簡稱 AES) 。
4
新一代密碼系統
© The McGraw-Hill Companies, Inc., 2007
6.2 Rijndael 密碼系統◎ Rijndael
反覆運算的加密演算法 資料區塊及金鑰可獨立變動 128, 192, 256 bitsState: 運算過程所產生的中間值,用一個以 byte 為單位的長方型矩陣來表示( 4 列,行數為資料區塊除以 32bits ),成為一個 4*Nb 的矩陣,也就是把資料分割成 Nb 個區塊。
5
新一代密碼系統
© The McGraw-Hill Companies, Inc., 2007
Cipher Key: 加密金鑰,一個 4*Nk 的矩陣,也就是把金鑰分割成 Nk 個子金鑰。
6.2 Rijndael 密碼系統◎ Rijndael
Nk=6Nk=6
6
新一代密碼系統
© The McGraw-Hill Companies, Inc., 2007
6.3 Rijndael 密碼系統的數學背景 ◎ GF(28) 的定義假設位元組 b由 01234567 bbbbbbbb 組成,將 ib當作一個 7
次多項式的係數。例如 :
216 )01010111()57( 表示成多項式為:
1246 xxxx
7
新一代密碼系統
© The McGraw-Hill Companies, Inc., 2007
數學背景◎ 加法兩個多項式的加法,即係數做 XOR 。
例如 :16221616 )4()10000011()01010111()83()57( D
表示成多項式為 :
24677246 )1()1( xxxxxxxxxx
8
新一代密碼系統
© The McGraw-Hill Companies, Inc., 2007
數學背景(續)◎ 乘法
多項式相乘之後的結果很容易造成溢位,在 Rijndael 中將其溢位再 modulo 一個固定的多項式:
例如 :
16
67
3483456891113
24623577891113
72461616
)1(
1
)1( modulo )1(
1
)1()1()83()57(
C
xx
xxxxxxxxxxxx
xxxxxxxxxxxxxx
xxxxxx
)1()( 348 xxxxxm
9
新一代密碼系統
© The McGraw-Hill Companies, Inc., 2007
6.4 回合金鑰的產生• 在 Rijndael 的密碼系統中,不管加密或解密都需要產生各回合所使用的回合金鑰 (Round Key) 或副金鑰 (Subkey) 。
• 回合金鑰的產生方式可分兩階段,第一階段為金鑰的擴充,第二階段為回合金鑰的選擇。
10
新一代密碼系統
© The McGraw-Hill Companies, Inc., 2007
a0, 0 a0, 1 a0, 2 a0, 3
a1, 0 a1, 1 a1, 2 a1, 3
a2, 0 a2, 1 a2, 2 a2, 3
a3, 0 a3, 1 a3, 2 a3, 3
Nb = 4
k0, 0 k0, 1 k0, 2 k0, 3 k0, 4 k0, 5
k1, 0 k1, 1 k1, 2 k1, 3 k1, 4 k1, 5
k2, 0 k2, 1 k2, 2 k2, 3 k2, 4 k2, 5
k3, 0 k3, 1 k3, 2 k3, 3 k3, 4 k3, 5
Nk = 6
4 bytes
決定出回數
如下表
Nr: 回合數,由 Nb 及 Nk 決定出回數。
Rijndael 執行的回合數
11
新一代密碼系統
© The McGraw-Hill Companies, Inc., 2007
Nr( 回合數 ),由 Nb 及 Nk 所決定的,回合的變動數如表 :
Nr Nb = 4 Nb = 6 Nb = 8
Nk = 4 10 12 14
Nk = 6 12 12 14
Nk = 8 14 14 14
加密流程
12
新一代密碼系統
© The McGraw-Hill Companies, Inc., 2007
◎ Cipher key Expanded key
Expanded key 是一個線性的 4byte 矩陣,以 W[Nb*(Nr+1)] 表示,前 Nk 個字組包含了加密金鑰 (Cipher key) ,剩下的字組依不同的 Nk 值,會有不同的處理如下 :
金鑰的擴充
Example: Nb=4, Nk=6, Nr=12
W[52]=W[0]~W[51]
13
新一代密碼系統
© The McGraw-Hill Companies, Inc., 2007
Nk<=6Nk<=6
if (i % Nk =0)if (i % Nk =0)
W[i-1]W[i-1]
W[i-Nk]W[i-Nk]
W[iW[i]]
W[i-1]W[i-1]
向左旋轉向左旋轉 1byte1byte
SubByteSubByte
W[i-4]W[i-4]
W[i]W[i]
W[i]W[i]11 W[i]W[i]22 W[i]W[i]33 W[i]W[i]440000 00100000 00100000 01000000 0100……
W[i]W[i]11
W[iW[i]]
)i1);(Nr*NbiNk;for(i
每次迴圈每次迴圈乘以乘以 xx
YesYesNoNo
金鑰的擴充(續)Nk=6, i=7, 8, …
14
新一代密碼系統
© The McGraw-Hill Companies, Inc., 2007
Example • 1 word = 4 byte = 32 bits = 8 個 16 進位• W[i-1]= (006A0000)( 向左旋轉 1byte) (6A00000
0)• (6A000000)(SubByte)(02636363)• W[i-4] = (FA005C00)(02636363)(FA005C00)
= (F8633F63)• F8 = (1111 1000), RC[i] = (0000 0010) • (1111 1000)(0000 0010) = (1111 1010) =FA• (F8633F63) (FA633F63)
16
新一代密碼系統
© The McGraw-Hill Companies, Inc., 2007
Nk>6
if (i % Nk =0)
W[i-1]
W[i-Nk]
W[i]
W[i-1]
向左旋轉 1byte
SubByte
W[i-4]
W[i]
W[i]1 W[i]2 W[i]3 W[i]4
0000 00100000 0100…
W[i]1
W[i]
)i1);(Nr*NbiNk;for(i
if (i % Nk =4)
Yes
No No
W[i-1]
SubByte
W[i-4]
W[i]
Yes
17
新一代密碼系統
© The McGraw-Hill Companies, Inc., 2007
◎ Expanded key Round key
子金鑰的選擇是由擴充金鑰中所依序給定的,即第 i把回合金鑰由 W[Nb*i] ~ W[Nb*(i+1)-1]
W0 W1 W2 W3 W4 W5 W6 W7 W8 W9 W10 W11 …
Round Key 1: W[4]~W[7]Round Key 2: W[8]~W[11]Round Key 3: W[12]~W[15]
……
選擇回合金鑰
Round Key 11: W[44]~W[47]
Round Key 0: W[0]~W[3]
Round Key 12: W[48]~W[51]
Initial Round
Standard Round
Final Round
18
新一代密碼系統
© The McGraw-Hill Companies, Inc., 2007
Plain Text
Initial RoundAdd Round Key
Standard RoundByte SubShift Row
Mix ColumnAdd Round Key
Final RoundByte SubShift Row
Add Round Key
Cipher Text
Nr-1 Rounds
Cipher Key
Expansion
Expanded Key
Selection
RoundKey 1
RoundKey 2
……RoundKey 3
RoundKey Nr-1
RoundKey Nr
RoundKey 0
6.5 Rijndael 的加密演算法
19
新一代密碼系統
© The McGraw-Hill Companies, Inc., 2007
Standard Round
Standard RoundByte SubShift Row
Mix ColumnAdd Round Key
Standard RoundByte SubShift Row
Mix ColumnAdd Round Key
20
新一代密碼系統
© The McGraw-Hill Companies, Inc., 2007
◎ Add Round Key(state,Round key)
將狀態值與子金鑰作互斥或運算
回合金鑰的加密函數
W[0] W[1]W[1] W[2]W[2] W[3]W[3]
ExEx
StateState RK0RK0
21
新一代密碼系統
© The McGraw-Hill Companies, Inc., 2007
a3, 5a3, 4a3, 3a3, 2a3, 1a3, 0
a2, 5a2, 4a2, 3a2, 2a2, 1a2, 0
a1, 5a1, 4a1, 3a1, 2a1, 1 a1, 0
a0, 5a0, 4a0, 3a0, 2a0, 1a0, 0
S-Box
b3, 5b3, 4b3, 3b3, 2b3, 1b3, 0
b2, 5b2, 4b2, 3b2, 2b2, 1b2, 0
b1, 5b1, 4b1, 3b1, 2b1, 1 b1, 0
b0, 5b0, 4b0, 3b0, 2b0, 1b0, 0
位元取代轉換函數 Byte Sub
22
新一代密碼系統
© The McGraw-Hill Companies, Inc., 2007
Byte Sub 位元組取代轉換
0
1
1
0
0
0
1
1
11111000
01111100
00111110
00011111
10001111
11000111
11100011
11110001
7
6
5
4
3
2
1
0
7
6
5
4
3
2
1
0
x
x
x
x
x
x
x
x
y
y
y
y
y
y
y
y
a 0, 0 b 0, 0 轉換矩陣
01234567 ,,,,,,, xxxxxxxx 01234567 ,,,,,,, yyyyyyyy
乘法反元素
23
新一代密碼系統
© The McGraw-Hill Companies, Inc., 2007
Byte Sub 例子
0
1
2
3
4
5
6
7
1 0 0 0 1 1 1 1 0 1
1 1 0 0 0 1 1 1 1 1
1 1 1 0 0 0 1 1 0 0
1 1 1 1 0 0 0 1 1 0
1 1 1 1 1 0 0 0 0 0
0 1 1 1 1 1 0 0 0 1
0 0 1 1 1 1 1 0 0 1
0 0 0 1 1 1 1 1 1 0
y
y
y
y
y
y
y
y
16
1 1 0
0 1 1
0 0 0
1 0 1(2 )
0 0 0
0 1 1
1 1 0
0 0 0
A
216
1
0,0
16
1
0,00,0
160,0
)10001010()8(
)01(
)95(
Aa
aa
a
01234567 ,,,,,,, xxxxxxxx
24
新一代密碼系統
© The McGraw-Hill Companies, Inc., 2007
Byte Sub 查表a 0, 0 b 0, 0 查表
160,0 )5(Ba 160,0 )5(Db
25
新一代密碼系統
© The McGraw-Hill Companies, Inc., 2007
Byte Sub 反運算a 0, 0 b 0, 0 反轉換矩陣
01234567 ,,,,,,, xxxxxxxx01234567 ,,,,,,, yyyyyyyy
乘法反元素
26
新一代密碼系統
© The McGraw-Hill Companies, Inc., 2007
Byte Sub 反運算例子
16
7
6
5
4
3
2
1
0
)75(
0
0
0
0
0
1
0
1
1
1
0
1
0
1
0
1
01010010
00101001
10010100
01001010
00100101
10010010
01001001
10100100
y
y
y
y
y
y
y
y
01234567 ,,,,,,, yyyyyyyy2160,0 )11010101()5( Db
16)75( 的乘法反元素為 0,016)5( aB
27
新一代密碼系統
© The McGraw-Hill Companies, Inc., 2007
Byte Sub Byte Sub 反運算查表反運算查表a 0, 0 b 0, 0 查表
160,0 )5(Ba 160,0 )5(Db
29
新一代密碼系統
© The McGraw-Hill Companies, Inc., 2007
每一個 State 的第一列不變,後三列被循環轉換 (cyclically shift) 不同的大小,且依 Nb 的大小也會有所不同,如下:
Nb 第二列C1
第三列C2
第四列C3
4 1 2 3
6 1 2 3
8 1 3 4
移列轉換函數 ShiftRow
31
新一代密碼系統
© The McGraw-Hill Companies, Inc., 2007
•移列轉換的反運算對第二第三及第四列作 Nb-C1, Nb-C2, Nb-C3 個位元組的右循環即可。
Shift Row 反運算
33
新一代密碼系統
© The McGraw-Hill Companies, Inc., 2007
)(xc
MixColumn 混行轉換函數(續)
0,3
0,2
0,1
0,0
0,3
0,2
0,1
0,0
02010103
03020101
01030201
01010302
a
a
a
a
b
b
b
b
34
新一代密碼系統
© The McGraw-Hill Companies, Inc., 2007
d(x)
a3, 5a3, 4a3, 3a3, 2a3, 1a3, 0
a2, 5a2, 4a2, 3a2, 2a2, 1a2, 0
a1, 5a1, 4a1, 3a1, 2a1, 1 a1, 0
a0, 5a0, 4a0, 3a0, 2a0, 1a0, 0
b3, 5b3, 4b3, 3b3, 2b3, 1b3, 0
b2, 5
b2, 4
b2, 3b2, 2b2, 1b2, 0
b1, 5
b1, 4
b1, 3b1, 2b1, 1 b1, 0
b0, 5b0, 4b0, 3b0, 2b0, 1b0, 0
Mix Column 反運算
35
新一代密碼系統
© The McGraw-Hill Companies, Inc., 2007
0,4
0,3
0,2
0,1
0,3
0,2
0,1
0,0
00900
00090
00009
09000
b
b
b
b
EDB
BED
DBE
DBE
a
a
a
a
)(xd
單位矩陣:
1000
0100
0010
0001
Mix Column 反運算(續)
36
新一代密碼系統
© The McGraw-Hill Companies, Inc., 2007
Final Round
Final RoundFinal RoundByte SubByte SubShift RowShift Row
Add Round KeyAdd Round Key
Final RoundFinal RoundByte SubByte SubShift RowShift Row
Add Round KeyAdd Round Key
37
新一代密碼系統
© The McGraw-Hill Companies, Inc., 2007
6.6 Rijndael 的解密演算法Cipher Text
Initial RoundAdd Round Key
Inv Standard Round Inv Byte Sub Inv Shift RowInv Mix Column
Add Round Key
Final RoundInv Byte SubInv Shift Row
Add Round Key
Plain Text
Nr-1 Rounds
Cipher Key
Expansion
Expanded Key
Selection
RoundKey 1
RoundKey 2
…RoundKey 3
RoundKey Nr-1
RoundKey Nr
RoundKey 0