1
. .
: () . .
: 1 .
"" . "" () . .
, , , . , , . , , , .
(.. 0 1), :
. ., () XOR ( 2, ).
, , .
: (and), (or), (xor) (not). :
A, B | A and B | A or B | A xor B | not A |
0, 0 | ||||
0, 1 | ||||
1, 0 | ||||
1, 1 |
. , , , . , 3 4 ( 0) 127 (01111111) 24 (00011000). .
: - , . , , 1, 0. ( and) .
, 3- 4- , -, 3- 4- 1, 0. : 00011000. :
|
|
.. , : 000110002 = 2410.
.., mask x :
y:= mask and x;
.
:
1. , x longint (32- ), , pos. pos . .
:
(shr) x pos .
.
, , , 1, , , 0 .
2. . , len x, pos ( , , pos, pos+1, , pos+len-1 ). , .
: 2len-1.
3. , ( ). . :
a. . .
b. ( ). ( ) . . ., RandSeed , .
c. , . .
d. xor , , (.. random()).
4. , , , . 3, RandSeed, .
:
1. 2-
2. -
2
. P-.
: , P-.
: 1 .
() , ( ). , , . , , . , , .
|
|
, . , "", . . , , : , . : , .
. :
4´7:
:
, .
(.. ) . .. , , 1, , n .
n-1 | n | |||
f(1) | f(2) | f(n-1) | f(n) |
4- :
4- , . , . ( P-, . P-box). P- SP-.
, , , . , .. , ( ) . , .
, , , . ,
:
, ,
:
1. , . 56. , . , , 30.
2. , 4- . 4- .
3. , , , 2 .
:
|
|
1. 2-
2. -
3
. S-.
: S-
: 1 .
. , , . , .
, , . . a M a , M a M b a¹b, . M a a.
. , , .
a , , M a. a, M a. . M a .
, , , ( . 1) , , (.2).
. 2
. , , , . , :
: , . : .
, . n 2n , . , , . . (S-, . S-box).
S- , . , , , 0 7 (000-111). , , . :
var Sbox: array[0..7] of integer; Sbox[0]:= 7; Sbox[1]:= 1; Sbox[2]:= 2; Sbox[3]:= 6; Sbox[4]:= 5; Sbox[5]:= 4; Sbox[6]:= 3; Sbox[7]:= 0; |
|
a , , , Sbox[a] .
, .
, , :
111 (=7) | 000 (=0) |
001 (=1) | 001 (=1) |
010 (=2) | 010 (=2) |
110 (=6) | 100 (=3) |
101 (=5) | 011 (=4) |
100 (=4) | 101 (=5) |
011 (=3) | 110 (=6) |
000 (=0) | 111 (=7) |
( ):
000 (=0) | 111 (=7) |
001 (=1) | 001 (=1) |
010 (=2) | 010 (=2) |
011 (=3) | 110 (=6) |
100 (=4) | 101 (=5) |
101 (=5) | 011 (=4) |
110 (=6) | 100 (=3) |
111 (=7) | 000 (=0) |
. ., :
var SboxInv: array[0..7] of integer;
SboxInv[0]:= 7;
SboxInv[1]:= 1;
SboxInv[2]:= 2;
SboxInv[3]:= 6;
SboxInv[4]:= 5;
SboxInv[5]:= 4;
SboxInv[6]:= 3;
SboxInv[7]:= 0;
( , ))
:
1. , . .
2. , 3- . .
3. , , , 2.
:
1. 2-
2. -
4
. RC4.
: RC4.
: 1 .
RC4 - , 1987 RSA Data Security, Inc. , .
1994 - Cypherpunks. Internet . Usenet, .
RC4 . S- 256: S0, S1, , S255. 0 255, .
S-, . : S0 = 0, S1 = 1, , S255 = 255. 256- , : K0, K1, , K255.
:
j = 0;
for i = 0 to 255 do begin
j = (j + Si + Ki) mod 256
Si Sj
end
S- .
. , i, j, .
K :
i = (i + 1) mod 256
j = (j + Si) mod 256
Si Sj
t = (Si + Sj) mod 256
K = St
K XOR XOR . 10 , DES.
, (. 1.2). , , .. 111111112 = 25510.
RC4 40 . , , , - . RSA Data Security, Inc. .
:
1. RC4.
:
|
|
1. 2-
2. -
5
(Feistel). 28147-89.
: , 28147-89.
: 1 .
1970- IBM , . IBM, , . , ( : Feistel's network).
, . , , .
. 1. |
(. 1).
Li Ri i - . . Fi, . i, , k (, ) ().
, -, ki . , , 2. .
. , , . .
, , :
. , DES, 2814789.
, , , F , . , , :
F , . .
. F F .