Presentation is loading. Please wait.

Presentation is loading. Please wait.

1-1 就目前科技而言,現有之 DES 密碼系統所使用之金鑰 長度過短 ( 僅 56 位元 ) ,其安全性已遭受質疑,為提高 其安全性,便有了 Triple-DES 的構想。 隨著電腦技技的發展,可預見未來 Triple-DES 的加密 演算法也勢必淘汰,有鑑於此,美國國家標準技術 局 (NIST)

Similar presentations


Presentation on theme: "1-1 就目前科技而言,現有之 DES 密碼系統所使用之金鑰 長度過短 ( 僅 56 位元 ) ,其安全性已遭受質疑,為提高 其安全性,便有了 Triple-DES 的構想。 隨著電腦技技的發展,可預見未來 Triple-DES 的加密 演算法也勢必淘汰,有鑑於此,美國國家標準技術 局 (NIST)"— Presentation transcript:

1 1-1 就目前科技而言,現有之 DES 密碼系統所使用之金鑰 長度過短 ( 僅 56 位元 ) ,其安全性已遭受質疑,為提高 其安全性,便有了 Triple-DES 的構想。 隨著電腦技技的發展,可預見未來 Triple-DES 的加密 演算法也勢必淘汰,有鑑於此,美國國家標準技術 局 (NIST) 於 1997 年元月二日開始著手計劃公開徵求新 一代加密標準 ( 簡稱 AES) 。 一、傳統的加解密法: AES

2 1-2 Advanced Encryption Standard (AES) AES 為新一代 NIST/FIPS 的加密標準 NIST 於 1998 年開始 15 個 AES 候選演算法之技術分析 1999 年選出五個候選演算法 :MARS, RC6, Rijndael, Serpent, Twofish NIST 於 2000 年選定 Rijndael 為新一代的加密標準 一、傳統的加解密法: AES

3 1-3 有限體 GF(2 8 ) 一個位元組 ( byte) b 是由 8 個 bits b 7 b 6 b 5 b 4 b 3 b 2 b 1 b 0 所 組成的,我們可以將它視為一個係數為 0 或 1 的多項式 如下 : b 7 x 7 + b 6 x 6 + b 5 x 5 + b 4 x 4 + b 3 x 3 + b 2 x 2 + b 1 x 1 + b 0 x 0 Example: 16 進位表示法 ’57’ 的 2 進位表示法為 01010111 ,它所對 應的多項式則為 : x 6 + x 4 + x 2 + x+1.

4 1-4 Example 1: (x 6 + x 4 + x 2 + x+1) +( x 7 + x+1)= x 7 + x 6 + x 4 + x 2. ”01010111”+”10000011”=”11010100” Example 2: (x 6 + x 4 + x 2 + x+1)( x 7 + x+1) = x 13 + x 11 + x 9 + x 8 + x 7 + x 7 + x 5 + x 3 + x 2 + x +x 6 + x 4 + x 2 + x + 1 = x 13 + x 11 + x 9 + x 8 + x 6 + x 5 + x 4 + x 3 +1 x 13 + x 11 + x 9 + x 8 + x 6 + x 5 + x 4 + x 3 +1 modulo x 8 + x 4 + x 3 + x+1 = x 7 + x 6 + 1 有限體 GF(2 8 ) 下之運算

5 1-5 有限體 GF(2 8 ) 下之運算

6 1-6 Multiplication by x Multiply b(x) with the polynomial x: b 7 x 8 +b 6 x 7 +b 5 x 6 +b 4 x 5 +b 3 x 4 +b 2 x 3 +b 1 x 2 +b 0 x If b 7 =0, the reduction is identity operation; if b 7 =1, m(x) must be subtracted (i.e. EXORed). That is, multiplication by x (‘02’) can be implemented by a left shift and a conditional EXOR with’1B’. 0001 1011

7 1-7 Example ‘57’  ‘13’ =‘FE’ ‘57’  ’02’=xtime(57)=‘AE’ ‘57’  ’04’=xtime(AE)=‘47’ ‘57’  ’08’=xtime(47)=‘8E’ ‘57’  ’10’=xtime(8E)=‘07’ ‘57’  ‘13’ =‘57’  (‘01’  ’02’  ’10’) = ‘57’  ’AE’  ’07’=‘FE’

8 1-8 Polynomials with coefficients in GF(2 8 ) Two polynomials over GF(2 8 ): a(y)=a 3 y 3 +a 2 y 2 +a 1 y+a 0 b(y)=b 3 y 3 +b 2 y 2 +b 1 y+b 0 Their product c(y)=c 6 y 6 +c 5 y 5 +c 4 y 4 +c 3 y 3 +c 2 y 2 +c 1 y+c 0 c 0 =a 0  b 0 c 1 =a 1  b 0  a 0  b 1 c 2 =a 2  b 0  a 1  b 1  a 0  b 2 c 3 =a 3  b 0  a 2  b 1  a 1  b 2 +  a 0  b 3 c 4 =a 3  b 1  a 2  b 2  a 1  b 3 c 5 =a 3  b 2  a 2  b 3 c 6 =a 3  b 3

9 1-9 Polynomials with coefficients in GF(2 8 ) By reducing c(y) modulo a polynomial of degree 4, the result can be reduced to a polynomial of degree below 4. M(y)=y 4 +1 and y i mod y 4 +1=y i mod 4.

10 1-10 Polynomials with coefficients in GF(2 8 ) Product of a( y ) and b( y ): d( y ) = a( y )  b( y )= d 3 y 3 +d 2 y 2 +d 1 y+d 0 d 0 = a   b 0  a   b 1  a   b 2  a   b 3 d 1 = a   b 0  a   b 1  a   b 2  a   b 3 d 2 = a   b 0  a   b 1  a   b 2  a   b 3 d 3 = a   b 0  a   b 1  a   b 2  a   b 3 Two polynomials over GF(2 8 ): a(y)=a 3 y 3 +a 2 y 2 +a 1 y+a 0 b(y)=b 3 y 3 +b 2 y 2 +b 1 y+b 0

11 1-11 Polynomials with coefficients in GF(2 8 ) circulant matrix:

12 1-12 Polynomials with coefficients in GF(2 8 ) circulant matrix: = 02  d4  03  bf  01  5d  01  30 = 1011 0011  1101 1010  0101 1101  0011 0000 =0000 0100 =04

13 1-13 Rijndael 演算法 Rijndael 是一個包含可變區塊長度和可變密鑰長度的區塊加 密法, 其區塊長度和密鑰長度可允許為 128, 192 或 256 bits 運算回合數與區塊長度和密鑰長度之關係

14 1-14 Example of The State and the Cipher Key 128bits 之區塊長度表示 法 (Nb = 4) 128bits 之密鑰長度表示 法 (Nk = 4)

15 1-15 Round 函數 Round(State, RoundKey) { ByteSub(State); ShiftRow(State); MixColumn(State); AddRoundkey(State, RoundKey); } FinalRound(State, Roundkey) { ByteSub(State); ShiftRow(State); AddRoundkey(State, RoundKey); }

16 1-16 ByteSub 函數 y 0 1 1 1 1 1 0 0 0 x 0 0 y 1 0 1 1 1 1 1 0 0 x 1 1 y 2 0 0 1 1 1 1 1 0 x 2 1 y 3 0 0 0 1 1 1 1 1 x 3 0 y 4 = 1 0 0 0 1 1 1 1 x 4 + 0 y 5 1 1 0 0 0 1 1 1 x 5 0 y 6 1 1 1 0 0 0 1 1 x 6 1 y 7 1 1 1 1 0 0 0 1 x 7 1

17 1-17 ShiftRow 函數 不同的區塊長度所須旋轉的大小 ShiftRow 運算在狀態值表的情形 (Nb=4)

18 1-18 在 MixColumn 函數中,狀態值表的每一行是被視為在 GF(2 8 ) 中的多項式,並且乘上一個固定的多項式 C(x) 後再同餘於多 項式 y 4 +1 ,而其中 C(y)=’03’y 3 +’01’y 2 +’01’y+’02’ 我們可將其表示矩陣乘法。令 b(y)=c(y)  a(y) b 0 02 03 01 01 a 0 b 1 = 01 02 03 01 a 1 b 2 01 01 02 03 a 2 b 3 03 01 01 02 a 3 MixColumn 函數

19 1-19 子金匙加法函數 (The Round Key Addition) (Nb = 4)

20 1-20 Key Expansion (N k  6) KeyExpansion(CipherKey, W) { for( i =0 ; i < N k ; i++) W[i]=CipherKey[i] ; for( j= N k ; j < N b *(N r +1) ; j + = N k ) { W[ j ]=W[ j - N k ] ^ SubByte(Rotl(W[j-1])) ^ Rcon[j/ N k ] ; for( i =1 ; i < N k && i + j < N b *(N r +1) ; i ++) W[i+j] = W[ i+j- N k ] ^ W[ i+j+1]; } }

21 1-21 Key Expansion (Nk > 6) KeyExpansion(CipherKey, W) { for( i =0 ; i < Nk ; i++) W[i]=CipherKey[i] ; for( j= Nk ; j < Nb*(Nr+1) ; j + = Nk ) { W[ j ]=W[ j - Nk] ^ SubByte(Rotl(W[j-1])) ^ Rcon[j/ Nk] ; for( i =1 ; i < 4 ; i ++) W[i+j] = W[ i+j- Nk] ^ W[ i+j-1]; W[j+4] = W[j+4- Nk]^ SubByte(W[j+3]) for( i =5 ; i < Nk ; i++) W[i+j] = W[ i+j- Nk] ^ W[ i+j-1]; } }

22 1-22 加密演算法 Rijndael(State, CipherKey) { KeyExpansion(CipherKey, ExpandedKey) ; AddRoundKey(State, ExpandedKey); For ( i =1 ; I < N r ; i++) Round(State, ExpandedKey + N b * i ); FinalRound(State, ExpandedKey + N b * N r ); }

23 1-23 InvCipher(byte in[4 * Nb], byte out[4 * Nb], word w[Nb * (Nr + 1)]) begin bytestate[4,Nb];state = in AddRoundKey(state, w + Nr * Nb) for round = Nr - 1 step -1 to 1 InvShiftRows(state) InvSubBytes(state) AddRoundKey(state, w + round * Nb) InvMixColumns(state) end for InvShiftRows(state) InvSubBytes(state) AddRoundKey(state, w) out = state end Pseudo Code for the Inverse Cipher

24 1-24 AES 的使用模式可參考 DES 的使用模式,有底下四 種標準操作模式: (1) 電子編碼模式( Electronic Codebook Mode, ECM ) (2) 密文塊串連模式( Cipher Block Chaining, CBC ) (3) 密文反饋模式( Cipher Feedback, CFB ) (4) 輸出反饋模式( Output Feedback, OFB ) AES 的使用模式

25 1-25 (1) 電子編碼模式( Electronic Codebook Mode, ECM ) AES 的使用模式

26 1-26 (2) 密文塊串連模式( Cipher Block Chaining, CBC ) AES 的使用模式

27 1-27 (3) 密文反饋模式( Cipher Feedback, CFB ) AES 的使用模式

28 1-28 (4) 輸出反饋模式( Output Feedback, OFB ) AES 的使用模式

29 1-29 AES 的使用模式 密文搜尋法錯誤傳播次序 ECM  CBC  CFB  OFB 


Download ppt "1-1 就目前科技而言,現有之 DES 密碼系統所使用之金鑰 長度過短 ( 僅 56 位元 ) ,其安全性已遭受質疑,為提高 其安全性,便有了 Triple-DES 的構想。 隨著電腦技技的發展,可預見未來 Triple-DES 的加密 演算法也勢必淘汰,有鑑於此,美國國家標準技術 局 (NIST)"

Similar presentations


Ads by Google