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

.

28147-89,
Intel x86.

,

Intel x86,
. , ,
1,5 1995 .

......................................................................................................................2
1. ...........................................................................................................................
1.1. ...............................................................................................................
1.2. .........................................
1.3. ...............................................................................................
1.4. ...................................................................
1.5. .......................................................................................................
2. .........................................................................
2.1. ....................................................................................
2.2. ...........................................................................................
2.3. ............................................
3. ..................................................................................................................
3.1. ...............................................................................................................
3.2. ...............................................................................
3.3. ............................................................................................................
4. .....................................................................................................
4.1. ............................................................................................................
4.2. ........................................................................................................
4.3. ................................................................................

2
.
, ,

. -
.
, ,
.
, .
, ,
, ,
, ! .

,
. , , , ,
, , .
,

. ,
,
. ,

.

. ,

, , .
,
. ,

. ,
,
,
,
, -
, ,
. ,
, ,

.
.
,
. 28147-89, ,
, 1989 . , ,
.
, .
, , 70-

. . ,
, .
. , ,

.

3

. .
,
, , . ,
,
, .
334 03.04.95
.
, ,
,
, , ..,
, , , .
, ,
,
, ?
, ,
. ,
,
. , , , ,
,
.

. , ,
DES,
, . ? ,
, ,
, DES. , ,
?!

, , ,
, - .
,
, , ,
.
91 94 , ( !)
Intel x86,
.

Intel x86.
,
.

, ,
.
. ,
,
. , ...
.
.

,

4
28147-89. ,
,
. ,

. ,
, ,
,
.
, ,
.
,
, ,
.
.

(, X). |X|
X . , X
, : 0X<2|X|.
,
: X = (X0, X1, ..., Xn-1) = X0||X1||...||Xn-1.

||. ,
: |X|=|X0|+|X1|+...+|Xn-1|.

. ,

, :

( X 0 , X 1 ,..., X n1 ) = X 0 || X 1||...|| X n1 X 0 + 2| X 0 | ( X 1 + 2| X1| (...( X n2 + 2|X n-2 | X n1 )...)).



, , ,
, :
X = (x0, x1, ..., xn1) = x0+21x1+...+2n1xn1.
,
, ,
. AB=(a0b0, a1b1,..., an-1bn-1),
n=|A|=|B|, ;
, ,
2: ab = (ab) mod 2.
.
2814789, ,
.
,
. ,
.
, .
,
:
(32-);
(32-);
(16-).

5
,
,
.
, , :
) ;
) ;
) .
,
, . ,
,
.
. ,
, .
.
1. 32- ,
: K {K i }0i 7 .
32- : 0 K i 232 . ,
328=256 32 .
2. 816, 4- ,
0 15.
, ,
16 0 15 .
0 i 7
H: H {H i , j }0 j 15 ,0 H i , j 15 .
, : 8 16 / 4 /
= 512 64 .
.
,
64- .
32- , -
. 1.
:
0. :

N 64- ,
(N1) (N2) 32-
. , N=(N1,N2).

X 32- ;
0. . 232
, ;
1. . 32- , ,
4- :
S=(S0,S1,S2,S3,S4,S5,S6,S7).
,
: Si Si-
( ) i- (.. i- ,
). ,
,
, , 4-
. :
4- 32- ,
, 4- ,
24, .

6
0

0. 11 .
(N , X )

1
S ( N 1 X ) mod 232
m = 0..7
2


11
.
11
11
.

Sm H m , S m

S 11 ( S )
S S N2

N 2 N1 , N1 S
6

(N )

. 1.

28147-89.

1. : , 3, 2
.
2. : ,
.
3.
.

.
,
, .
, ,
, ,
.
,
.

, .
,
. ,
,
. ,
,
.
, ,
.

7
.
.
1. 32-:
K0,K1,K2,K3,K4,K5,K6,K7,K0,K1,K2,K3,K4,K5,K6,K7,K0,K1,K2,K3,K4,K5,K6,K7,K7,K6,K5,K4,K3,K2,K1,K0.

2. 32-:
K0,K1,K2,K3,K4,K5,K6,K7,K7,K6,K5,K4,K3,K2,K1,K0,K7,K6,K5,K4,K3,K2,K1,K0,K7,K6,K5,K4,K3,K2,K1,K0.

3. 16-:
K0,K1,K2,K3,K4,K5,K6,K7,K0,K1,K2,K3,K4,K5,K6,K7.

- ,
n-X, (n),
, (X), ,
() ()
. :
,

, : 32-(32-(T))=T, T
64- , X(T) X
T. , ,
,
.
,
32- 32-.
: ,
32- 32-. ,
,

.
, ,
28147-89
.

8
0

(N )

k = 1..3
j = 0..7
1

N = ( N , K j )


,
, 16
, ,
,

.

j = 7..0
2

N = ( N , K j )
3

(N )

(N )

0
j = 0..7
1

N = ( N , K j )
k = 1..3
j = 7..0
2

N = ( N , K j )

(N )

. 2.
32-.
. 2.
32-.
0

(N )

k = 1..2
j = 0..7
1

N = ( N , K j )

(N )

. 2.
16-.


2-.
64 , N.
(N,X)
N
X.

, :

9
,
.
.
28147-89 :
,
,
,
.
64 ,
, ,
.
8 ,
,
8 .

, ,
:
T,T ;
Ti , Ti i- 64-
: T (T1 , T2 ,..., Tn ) , T (T1 , T2 ,..., Tn ) , in,
: |Ti | |Ti | 64 1 i <n, 1 |Tn | |Tn | 64 ;
n
64- ;
X
64-
X;
:
.
32-
, 32- .
, 64-
.
3 ,
.
,
, 64 : |T|=|T|=64n,
.

10
0

i = 1..

(T )

n
1

Ti 32 (Ti )
2

(T )

. 3.
.
0

i = 1..

(T )

n
1

Ti 32 (Ti )
2

(T )

. 3.
.

1. ,

.
,
,
.
2. 8 64 ,
,
64 . , ,
, ,


,
. , ,
, 64 ,
.
,
,
64 ,
64- . ,
. ,
: , 32 ,
64 . , 8-
,
.
,
, , ,

11
(. ). ,
.
.
? 64
, ,
.
, .
() () ,
,
, () .

, ,
264 64- .
2,
.
; ,
, ,
. ,
64 , ,
.
.
:
() 64-
, 32-,
, .
,
,
, 5.
, , :
i+1=f(i), i , f
. , ,
0. ,
, S,
,
.
,
32-: 0=32-(S). ,
, ,

: i=fi(0), fi(X)=f(fi1(X)), f0(X)=X.
:
i=32-(i)=32-(fi(0))=32-(fi(32-(S)))=i(S,K), i i- , K .
,
.
, -
. ,
,
,
.

,

12
,
.
,
. ,
- .
:
, ,
( )
264;
, ,
, ;
,
, ,
, 32 .

, :
64-
~
: i ( 0i , 1i ), | 0i | | 1i | 32, 0i 1 f ( 0i ), 1i 1 f (1i ) , ,
.
:
0i 1 ( 0i C1 ) mod 232 ,
C1=101010116;
1
1
32
i 1 ( i C 2 1) mod ( 2 1) + 1 , C2=101010416;
, ,
, , 16- .
,
: 1i 1 ( 1i C 2 ) mod ( 232 1) , C2.
, , ,
2321 , .
, (2321)mod(2321)=(2321), 0.
, ,
.
232,
2321, 232(2321),
, , .
, , ,
32- .

13
0

1

S=

(T

( )

323

, S)


4,
:

(S )

i = 1 ..n
2

S 0= (S 0+ C 1)m o d 2 32
S 1= (S 1+ C 2 1 )
m o d (2 32 1 ) + 1
3
Ti() Ti () 32 ( S )
4

(T

( ))

. 4.
()
.

0. :

T() () ,
(),
64 ;

S , 64- ,
;
0. , ,
, ,
;
1. , .
(S1) (S0)
;
2.. 64- , ,
32,
() ()
.
3. () .

.
1.
, .
2. ,
,
. ,
1 .
3. , , -
.
:
,

, 8 ;

,
;

14
, ,
, , ,
. ,
,
,
.
,
- . ,

,
,
.
.
, . ,
,
, .
,
,
, ()
.
, ,
.
.
. ,
, ,
: ti ti i f ( ti , i ) . ,

:
t i t i 1 ( t i i ) 1 ( t i 1) i t i i ,
t t ( 0 1, 1 0 ).


, ,
. ,
. ,


.
, ,

,
.
.
.


32- ,

.

.
.
.

15
0

i = 1..

(T

, S)

()

-

5
.

1
Ti() Ti () 32 ( S )
2

S Ti

(T

()

. 5.
()

.


, ,
.
:
Ti Ti i , ;
Ti Ti 32 (Ti1 ) , ;

,
.
,
,
. , ,

,
, ,
. ,
, ,
1/2
.
.

. ,

,
.
, ,
. ,
,
? .
,
,
, .
, ,
, .
, , ,
, .

16
, , , .
:
, ,
,

.

. ,
0
. (T )

.
, ,
1
S=0

.
i = 1 ..n

2

,
S 16 ( S Ti )
:
3

= ( s 0 ,s 1 ,...,s r-1 )

( )

. 6.

.

;
;
6.
, , 32 .
,
2|| .
32
2320.23109.
.
.

,
.
:
;
, ;
, ,
.
,
, .
,
, . ,

17

, , ,
.
, .

, , ,
, ,
.




.
,
. ,
,
, .
, DES ,
,
, , ..
. ,
.
256-
2256.

, .
DES
56 2 56.
.
DES ,
. , 1998
.
.
, 28147-89
, .
, DES.
, , .
, ,
.
,
, .
, , ,
.
,
, . 7.
,
.
, ,
,
. ,
(X),
. ,

18
: |N1|=|N2|=|X|,
DES 32 .

N 2 f (N 1, X )

. 7.

, .

, 1,2,3 ,
4 5
.
DES ,
.
32 , DES 16.

DES,
. ,
DES .

. ,
.
DES Intel x86

, .
, ,
DES,
.
.
.

. , DES
,
,
.

- , .
.
, , ,

19
, .

.
. ,
, , ,
,
.
,
, :
1. ,
0 1.
,
. , ,
. ,
,
, .
,

, , , , ,
. ,
,
. ,
.
,
0 1 (
), .
.
2. ,
, .
,
.

.
.
,
. ,
. ,
,
, (..
)
, .
. ,

.
0 15,
, ,
,
.
.
32 32 ,
0 15. ,
, , , ,
. ,
, . ,

20
,
, ,
,
.
,
, ,
, ()
.
,
. (
) .

,

.
,

make1key.c.
2 ,
- .
.
,
,
. , .
DOS, DOS- Windows
3.x/95 ,
, Windows NT (
) .
.
.

,
,
.

, .
16- Intel 808880286
, ,

. ,

,
16-. 32 (Intel 80386 )
32-, .
,
.
, ,
.
1. ( , ), 32 .

21
,

.
,
.
2. 8 4 .
4- ,
(xlat). :
;
,
4- .
,
, ,
. 4-
8- , , ,
, . 4-
16 , 8- 256 .
, , ,
4256=1024 , . ,
.
1.

11 . 16-
32- 1 ,
,
1 . ,
11 8 ,
3 . , ,
(xchg).
.
xlat,
AL, , ,
.
, ,
8 ,
.
, ,
1 , ,
,
(adc),
,
!
.

Intel x86,
16- 32- . 32-
16- .
, .

, 1.

22
,
.
1. .

.
16
32
1.
gost.asm
gost~.asm
2. -
simple.asm
simple~.asm

3. -
gamma.asm
gamma~.asm

4.
gammale.asm
gammale~.asm

5.
gammald.asm
gammald~.asm

6.
imito.asm
imito~.asm

7.
expkey.asm
expkey~.asm
8. (1)
expcht.asm
(128 )
9. , ,

ge386cpu.asm
, 32-.
10. gost.h

,
,
.
.
1. (..
) , .

.
:

;
( )
, , ,
,
;

, , -
( ).
1.
. ,


( , .
) .
, 8 .
2. -
.
.
.

23
3. -
,
. ,
(. .5,
1),
,
.
4.
. , ,
( !)
, , .
5. ()
Borland TASM 2.5 ,
Borland C/C++ 2.0 .
.


. :

cryptor.c ;

gost.mak 16-
;

gost386.mak
32-
.
( )
.
.
, ,
. (
, 1193180 ),
.
()
.

32
2 /11931803599.6 , .
, .

, 32- 32-
. ,
2. 32-
32- (
).
DES,
7/1994. ,
,
,
, . (
) DES .
2.
, ..,

gamma gammaLD gammaLE simple


imito

DES

24
2.
, ..,

gamma gammaLD gammaLE simple


AMI 286
10
20.4
20.7
20.8
20.8
Intel 80286
Prolinea 325
25
48.0
48.6
48.8
48.0
Intel 386SX-25
66.0
71.1
67.4
71.5
.
33
63.8
64.5
64.7
63.8
Intel 386SX-33
87.6
94.5
89.5
95.0
BYTEX
40
89
90
91
91
Intel 386DX-40
120
135
122
135
Acer
33
114
113
114
114
Intel486SX33
150
161
151
162
Presario 460
66
225
222
229
227
Intel486SX2-66
298
319
303
324
Acer
66
302
296
307
293
Pentium-66
351
397
355
405

imito
40.8

DES
11.2

93.7
139
124
185
177
264
226
321
451
637
601
777

22.0
25.9
39.3
41.2
82.2
88.7

.

3 ( 70 /)
4 ( 400 /).
,
. ,

.
? ,
, .
gost, 32
, .
,


32+32+16=80 .
, .
.
.

.
,
.
. , ,
,
, .
,
,
. , ,
, , . ,
, , ,
.

25
.

, ,
.
,
.
,
( , ..),
, , .
, (
). ,
.
,

.
,
N=nm, n 32-
, m ,
n=8, m=4. ,
.
, ,
.
( ), ,
. ,
(
).
,

.
( ),

(m=4=3+1), (n=2)
.
64-
, DES 56 .
, ,
,
,

.
.
,
.
.

. ,

0 1 , ,
.
, .
, , ,

26
.

, 28147-89, , ,

. ,
,
, 32 .
. ,
,
.
,
Internet 1988 .
: ,
,

. ,
,
.
, ,
,
. ,
.

.