.


:




:

































 

 

 

 





1. 充.3

2. ES ...4

3. ..5

3.1. 6

4. 充7

4.1. SubBytes.8

4.2. ShiftRows9

4.3. MixColumns ..10

4.4. AddRoundKey.10

5. 12

4.1. ...12

4.2 ...13

6. 充.14

7. 15

 

 

. . 2814789, .

, .

: , , ;

: , , , , , .

AES .

 

1998 NIST , . AES . DES, NIST AES , , -.

, :

- ;

- ;

- 128- (128, 192 256 ).

:

, ( ), ( );

32- ;

, , - .

, , , .

NIST 21 , 15 . , , . 1999 NIST , . 2 2000 NIST RIJNDAEL ( ) , FIPS 197 (Federal Information Processing Standard).

2003 , AES , , (. classified information). SECRET 128 , TOP SECRET 192 256 .

 

AES

 

Block , input, output, State Round Key. Block

Cipher Key , , Key Expansion , (Round Keys); , Nk .

Ciphertext

Key Expansion Round Keys Cipher Key

Round Key Round Keys Cipher Key Key Expansion. State

State , 4 Nb

S-box , Key Expansion . S-box .

Nb (32- ), State.

, AES Nb = 4

Nk 32- , .

AES, Nk = 4,6, 8

Nr , Nk Nb. AES, Nr = 10, 12, 14

Rcon[] , 32- .

AddRoundKey() , Round Key XOR c State. RoundKey State (, Nb = 4, RoundKey 128 16 )

InvMixColumns() MixColumns()

InvShiftRows() ShiftRows()

InvSubBytes() SubBytes()

MixColumns() State ( ),

RotWord() , Key Expansion, 4-

ShiftRows() , State, State

SubBytes() State (S-box), State

SubWord() , Key Expansion, - S-box

AES , Rijndael. AES input ( ) State() 128 , K 128, 192, 256 . , Rijndael 128 256 32 . input, State Cipher Key Nb = 4 input State, Nk = 4, 6, 8 Cipher Key .

input State s [r, c] = in [r + 4c], . State AddRoundKey() State () 10, 12, 14 ( ), , . , , State output out [r + 4c] = s [r, c], .

SubBytes(), ShiftRows(), MixColumns(), AddRoundKey() State. w[] key schedule.

 

Cipher (byte in [4*Nb], byte out [4*Nb], word w [Nb*(Nr+1)])

begin

byte state [4, Nb]

state = in

AddRoundKey (state, w [0, Nb-1])

for round = 1 step 1 to Nr-1

SubBytes(state)

ShiftRows(state)

MixColumns(state)

AddRoundKey (state, w [round*Nb, (round+1)*Nb-1])

end for

SubBytes(state)

ShiftRows(state)

AddRoundKey (state, w [Nr*Nb, (Nr+1)*Nb-1])

out = state

end

SubBytes

 

SubBytes, state 8- , S; bij = S(aij).

SubBytes() , (S-box). . S-box . -, . -, b S-box :

 

 

, bi i- b, ci i- c = 6316 = 9910 = 011000112. , , .

 

 

 

ShiftRows

ShiftRows, state .

ShiftRows State. r , . r = 0, r = 1 .. ShiftRows . Rijndael 128- 192- . 256 , 2, 3, 4- 1, 3, 4 , .

 

MixColumns

MixColumns, c(x).

MixColumns, State , . MixColumns , . GF(28) x4 + 1 c(x) = 3x3 + x2 + x + 2. ShiftRows, MixColumns

 

AddRoundKey

AddRoundKey, RoundKey XOR operation (⊕).

AddRoundKey, RoundKey State. Roundkey CipherKey KeyExpansion; RoundKey , State. XOR State RoundKey.

 


:

( )

AES , KeyExpansion() Cipher Key, K, . Nb*(Nr + 1) : Nb , Nr Nb . , . KeyExpansion() .

SubWord() S-box , . RotWord() [a0, a1, a2, a3] [a1, a2, a3, a0]. , , , [xi − 1,00,00,00], x = {02}, xi − 1 x (i 1).

, Nk Cipher Key. , w[i], XOR w [i − 1] , XOR Nk . , Nk, XOR w [i-1] , XOR Rcon[i]. (RotWord()), SubWord() , SubBytes(), .

, KeyExpansion() 256 Cipher Key , 128 192 . Nk = 8 i − 4 Nk, SubWord() w [i − 1] XOR.

KeyExpansion (byte key [4*Nk], word w [Nb*(Nr+1)], Nk)

i AddRoundKey .

 

. , (). . , , , .

AES: , , .

 

 

1. . . . .: .: , 1994.

2. .. . . .: -, 2009.

3. . /.. , .. , .. .; . .. .. . 4- ., . . ., 2009.

4. . , 2-

 

 





:


: 2015-10-27; !; : 1551 |


:

:

, .
==> ...

1527 - | 1299 -


© 2015-2024 lektsii.org - -

: 0.045 .