Вы находитесь на странице: 1из 11

DES, ,

Rijndael.
1.
. 2 n
, 64, 256 ..
2. .
.
3. .

Li

Ri
Ki

Li+1

Ri+1


.
: ( Li , Ri ) ( Ri 1 , Li 1 f ( Ri 1 , K i ))
, F
F,
.
f(f(x))=x.
. DES .

I.

DES (Data Encryption Standart)

64 .
56 .

.
16 .
: -> ->16 ->
->.
64 , .
.
: 16 56
48 . 56 2 28 . 1 2

Symmetric ciphers

Page 1

09.06.2015

.
, 56-48 ( ).
32 48 (
)
: - 2
.
E (expansion).
XOR .
( S box). 8
S box 6 , 4 .
DES,
. P .

.
40 .
,
, . 64 ,
.
Des DES .

II. (
)
64
256
32
( Li , Ri ) ( Ri 1 , Li 1 f ( Ri 1 , K i ))

Symmetric ciphers

Page 2

09.06.2015

8 S ; ( )
2^32. S box 0
15. : 256 8
32 . .
S .
S box ; , DES
.

II.

Rijndael (AES, Advanced Encryption Standart).

AES (Advanced Encryption Standart) .


NIST ( )
.
(Rijnael). ,
: Vincent Rijmen Joan Daemen.
Rijnael :
1)
2)
3)

II. .
Rijnael
. 128, 192 256 .
, , ,
128 128 10 .

( 4).
DES, Rijnael .

. , ,
4 .
128 128 .

Symmetric ciphers

Page 3

09.06.2015

,
( ).
: (State) .
.
: a0 , 0 , a1, 0 , a 2, 0 , a 3, 0 , a 4, 0 , a 0,1 , a 0, 2 , a 0 ,3 .
a 0, 0

a 0 ,1

a0, 2

a0,3

k 0, 0

k 0 ,1

k 0, 2

k 0,3

a1, 0

a1,1

a1, 2

a1, 3

k1, 0

k1,1

k1, 2

k1, 3

a2,0

a 2 ,1

a2, 2

a2,3

k 2, 0

k 2 ,1

k 2, 2

k 2,3

a 3, 0

a3,1

a 3, 2

a 3, 3

k 3, 0

k 3,1

k 3, 2

k 3, 3

.
4- ,
.
. ,
, :
Round
{
ByteSub()
ShiftRow()
MixColomn()
AddRoundKey()
}
MixColomn().
ByteSub ( )
ShiftRow ( )
MixColomn ( )
:
1. ,
.
:
1) ( GF(256),
0 ).
2) :

Symmetric ciphers

Page 4

09.06.2015

y0 1 0 0
y 1 1 0
1
y2 1 1 1

y3 1 1 1
y4 1 1 1

y5 0 1 1
y 0 0 1
6
y 7 0 0 0

0
0
0
1
1
1
1
1

1
0
0
0
1
1
1
1

1
1
0
0
0
1
1
1

1
1
1
0
0
0
1
1

1
1
1

1
0

0
0

x0 1
x 1
1
x 2 0

x3 0
x 4 0

x5 1
x 1
6
x7 0
S-box

a0 , 0

a 0 ,1

a0, 2

a0,3

b0 , 0 b0 ,1

b0, 2

b0 , 3

a1, 0

a1,1

a1, 2

a1, 3

b1, 0 b1,1

b1, 2

b1, 3

a2,0

a 2 ,1

a2, 2

a2,3

b2, 0 b2 ,1

b2, 2

b2 , 3

a 3, 0

a3,1

a 3, 2

a3, 3

b3, 0 b3,1

b3, 2

b3, 3

,
:
, GF(256).
2. :
.
, 1 , 2
( ).
m

No shift

p
j

Cyclic shift by 1

Cyclic shift by 2

w
Cyclic shift by 3

.
3. :

Symmetric ciphers

Page 5

09.06.2015

GF(256)
c ( x) ,

x4 1
3
2
c ( x ) '03' x '01' x '01' x '02' . ,
c ( x) x 4 1 .
: b( x) c( x ) a ( x) ,
b0 02 03 01 01 a0
b 01 02 03 01 a
1
1
b2 01 01 02 03 a 2


b3 03 01 01 02 a3
:

a0 , j

b0, j

a1, j

b1, j

a2, j

b2 , j

a 3, j

b3, j

c( x )


d ( x ) '0 B ' x 3 '0 D' x 2 '09' x '0 E ' .

4. .
2
.

a0 , 0

a 0 ,1

a0, 2

a0, 3

k 0,0

k 0 ,1

k 0, 2 k 0,3

b0 , 0 b0 ,1 b0 , 2 b0 , 3

a1, 0

a1,1

a1, 2

a1, 3

k1, 0

k1,1

k1, 2

b1, 0 b1,1 b1, 2

a2,0

a 2 ,1

a2, 2

a2,3

k 2, 0

k 2 ,1

k 2 , 2 k 2,3

a 3, 0

a3,1

a 3, 2

a 3, 3

k 3, 0

k 3,1

k 3, 2

k1, 3

k 3, 3

b1, 3

b2, 0 b2 ,1 b2 , 2 b2 , 3
b3, 0 b3,1 b3, 2 b3, 3

.
:
,

.
, ,
1, 128
10 1408 . 128
.

Symmetric ciphers

Page 6

09.06.2015

: (
0-3) ,
:
K 4 SubByte( RotByte( K 3 )) C1 ,

5-7 : K i K i 4 K i 1 .
, . SubByte
, RotByte- ,
(a,b,c,d) (b,c,d,a).
:

N-1
.

III. .
:
{




}
.
.
,
, .
:
AddRoundKey();
InvShiftRow();
InvByteSub();
AddRoundKey();
InvMixColumn();
InvShiftRow();
InvByteSub();
AddRoundKey();
,
, .. . ,

AddRoundKey();
InvMixColumn();

InvMixColumn()

Symmetric ciphers

Page 7

09.06.2015

AddRoundKey(InvRoundKey); InvRoundKey

InvMixColumn() . .
:
AddRoundKey();
InvByteSub();
InvShiftRow();
InvMixColumn();
AddRoundKey(Inv);
InvByteSub();
InvShiftRow();
AddRoundKey();
, .
. ,
.

IV. .

. , - EXOR,
S-box, .
32 .
, S(a), 4
, S(a) ( 4 ),
XOR
. ,
, ,
,
.
( P-200)
(, )
Ansi C, Mbit/sec
(128,128)
27.0
(192,128)
22.8
(256,128)
19.8

VisualC++, Mbit/sec
70.5
59.3
51.2

V. .

,
.

1.

GF ( 2 8 ) .
1. b , b7 b6 b5 b4 b3b2 b1b0 ,
{0,1} : b7 x 7 b6 x 6 b5 x 5 b4 x 4 b3 x 3 b2 x 2 b1 x1 b0 .

0x57 (01010111) : x 6 x 4 x 2 x 1 .

Symmetric ciphers

Page 8

09.06.2015

2. . ,
, 2
. , EXOR (
). , .
3. .
GF ( 2 8 )

:
a ( x ) b( x ) a ( x ) * b( x ) mod m( x ) , m( x) x 8 x 4 x 3 x 1 .
8.
,
.
, 0x01. ,
256
GF ( 28 ) .
3.1 x .
8
7
6
5
4
3
2
: x b( x) (b7 x b6 x b5 x b4 x b3 x b2 x b1 x b0 x ) mod m( x)
b7 0 , x b( x ) b6 x 7 b5 x 6 b4 x 5 b3 x 4 b2 x 3 b1 x 2 b0 x ,
b7 1 ,

x b( x) (b7 x 8 b6 x 7 b5 x 6 b4 x 5 b3 x 4 b2 x 3 b1 x 2 b0 x) m( x)

, x
XOR c 0x1b.
4. GF (28 ) .
GF ( 28 ) . 4-
4.
.
2.
4.1. .
a ( x ) a3 x 3 a 2 x 2 a1 x a0 , b( x) b3 x 3 b2 x 2 b1 x b0 .
d ( x ) a ( x ) b( x ) ,
d 0 a0 b0 a3 b1 a2 b2 a1 b3
d1 a1 b0 a0 b1 a3 b2 a2 b3
d 2 a 2 b0 a1 b1 a0 b2 a3 b3
d 3 a3 b0 a 2 b1 a1 b2 a0 b3

d0
d
1
d2

d3

a0
a
1
a2

a3

a3
a0

a2
a3

a1
a2

a0
a1

a1
a2
a3

a0

b0
b
1
b2

b3

,
, .
.

Symmetric ciphers

Page 9

09.06.2015

1.
2.
3.
4.
5.
6.

16 2
GF(256).
.
.
,

GF(256),

VI. : ECB, CBC, CFB, OFB.


1. ECB (Electronic Code Book).
.

2. CBC (Cipher Block Chaining).

3. CFB (Cipher FeedBack).

Symmetric ciphers

Page 10

09.06.2015

4. OFB (Output FeedBack).

Symmetric ciphers

Page 11

09.06.2015

Вам также может понравиться