© the mcgraw-hill companies, inc., 2007 新一代密碼系統 (advanced encryption standard)

37
© The McGraw-Hill Companies, Inc., 2007 新新新新新 (Advanced Encryption Standard)

Post on 21-Dec-2015

231 views

Category:

Documents


0 download

TRANSCRIPT

© The McGraw-Hill Companies, Inc., 2007

新一代密碼系統(Advanced Encryption Standard)

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)

15

新一代密碼系統

© The McGraw-Hill Companies, Inc., 2007

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

28

新一代密碼系統

© The McGraw-Hill Companies, Inc., 2007

Byte Sub Byte Sub 查表查表

EX

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

30

新一代密碼系統

© The McGraw-Hill Companies, Inc., 2007

Shift Row 例子

31

新一代密碼系統

© The McGraw-Hill Companies, Inc., 2007

•移列轉換的反運算對第二第三及第四列作 Nb-C1, Nb-C2, Nb-C3 個位元組的右循環即可。

Shift Row 反運算

32

新一代密碼系統

© The McGraw-Hill Companies, Inc., 2007

MixColumn 混行轉換函數

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