: . 2k/2 X Y. >1/2 - , -. . . .
22. -. MD4. MD5. SHA-1. 34.11-94. C.
-.
MD4
, MD4:
bitwise Boolean operations, addition modulo 232
cyclicshifts.
32- .
MD4 (MessageDigest 4) -, 1990 . 128- -, .
MD4, , , . . , :
5 , .
1. .
, 512 448.
, , 64 ,
512 . , .
: , 1, , , 0, , 448 512. , 1 , 512.
2. .
64- ( ) . , , 264, 64 .
512 (512 = 16 * 32-). 32- 8-, , (, 8- (abcdefgh) 32- (dcbahgfe)). ( N 16).
3. MD-.
, 4 (32-):. ( ):
word A: 67 45 23 01
word B: ef cd ab 89
word C: 98 ba dc fe
word D: 10 32 54 76
4. 16 .
, 32- , 32- .
F : X, Y; Z.
G : X,Y,Z 1, G 1 , G , 0.
|
|
H xor.
() 32 , 4 16 .
5. .
(-) ABCD. , 128 , A, D.
MD5 128- , . 1991 . . MD4. MD5- ( MD5- MD5-), , MD5- . ѐ .
MD5, MD4: bitwiseBooleanoperations,
addition modulo 232,
cyclicshifts.
, .
( ). L. . ѐ .
1. , . , L' 448 512 (L = 512 × N + 448). , 448.
2. 64 64- ( ) . 4 . 264 − 1, . 512. 512 . 3. 4 32 ( , ):
= 01 23 45 67;
= 89 ABCDEF;
= FEDCBA 98;
D = 76 54 32 10.
. ABCD .
ѐ , .
4 ѐ . ѐ ѐ , .
T[1..64] 64- , :
T[i] = int(232* | sin(i) |).
() 32 , 4 16 . :
[abcdksi], a = b + ((a + Fun(b,c,d) + X[k] + T[i]) <<<s), X . X[k] = M [n * 16 + k], k 32- n-512- , s s 32- .
4. n . A, B, C D, ( , ).
|
|
AA = A
BB = B
CC = C
DD = D
5. ABCD, . A D, MD5 .
34.11-94 -.
: 23 1994 .
: 256
: 256
:
- . . 34.11-94 . :
{0}^j j .
|M| M 2^256
|| () .
+ 256 2^256
XOP (XOR) .
, () , .
- Hout, Hin, m 256 .
M mn,mn − 1,mn − 2,...,m1 256 . mn 256 , .
, , ѐ -:
H1 .
- Hn + 1 - :
Hn+2=f(Hn+1,L), L M 2H=f(Hn+2,K), K M: m1 + m2 + m3 +... + mn
h - M
1. :
h:=H1 -. .. 256 IV , .
E:=0
L:=0
2. : i = 1 n 1
( | M | > 256):
h:=f(h,m) - L:=L+256 - E:=E+mi -
3. :
L:=L+|mn| -
Mn:=0^(256-|mn|)||mn -
E:=E+mn -
h:=f(h,mn)
h:=f(h,L) - MD -
h:=f(h,E)
4. . - h,
SHA-1
SecureHashAlgorithm 1 . ( 264− 1 ) 160--, . . 1995 .
SHA-1 -, . 512 .
- . Mihi = f(Mi,hi − 1). - .
512 . , 512 . 1 , (512 - 64 = 448) . 64 . 448, 512, : 1, 512- ; ѐ 512- , 448 , 64 . , .
|
|
32- .
A = a = 67452301
B = b = EFCDAB89
C = c = 98BADCFE
D = d = 10325476
E = e = C3D2E1F0
.
Kt
= 5A827999 0≤t≤19
Kt
= 6ED9EBA1 20≤t≤39
Kt
= 8F1BBCDC 40≤t≤59
Kt
= CA62C1D6 60≤t≤79
512- . . 16 32- Mi 80 32- Wj a, b, c, d, e A, B, C, D, E . .
32- 160- -.
MD5, SHA-1 , , MD4.
:
1. .
2. .
3. 512 .
4. 232
, 32-.
:
1. SHA-1 f, .
2. MD5 . SHA-1 .
3. SHA-1 .
4. SHA-1 .
5. MD5 , , . SHA .
6. MD5 , SHA-1 .
7. MD5 128 , SHA-1 160 .
8. SHA-1 (80 64) 160-
128- MD5. , SHA-1
25 % , MD5 .
34.11-94
34.11-94:
1. 2814789;
2. 256 , 256.
3. , .
4. 2814789, S , 34.11-94. SHA-1.
5. 34.11-94 2 128, 280 SHA-1.
6. SHA-1 48.462*220
/, 34.11-94 9.977*220/.
23. . DAC. 28147-89 .
.
X,MAC(X). y MFC(X). ( , ).
MAC, .
2**n .
) 2, 2 min(k n, k- ,n .
DES (DAC)
|
|
DES .
28147-89 . 28147-89:Ti64.
Ti , 16 .
16 64- 2Ti+1.
,64-, 64- , , .
64- p , p .
24. HMAC. , .
HMAC ( . hash-basedmessageauthenticationcode, - ). , . , (MAC). , , , . MAC.
, - HMAC.
:
- , , -,
, .
-,
.
- , - b.
- L.
= b, K0= K. 4.
1. K > b, H K L- . b- K0
. 4.
2. K < b K b- K0(, 20 b = 64, 44 0x00).
3. K0ipad (xor ) b- S I.
4. S I. ()5. , 5.
6. K0opad b- So.
7. 6 So.()
8. , 8
.
25. .