Loading documents preview...
Criptosisteme simetrice fluide: RC4 n=3 23 =8 – flux de biţi Formăm vectrul S: 01234567 Alegem cheia: 26, K – vectorul cheii Codul ASCII al cheii este: 2 → 50; 6 → 54; Vectorul cheii este: 50 54 50 54 50
54
50
54
Depunem valorile codului ASCII al cheii: P 0 1 2 3
4
5
6
7
S
0
1
2
3
4
5
6
7
K
50
54
50
54
50
54
50
54
6
7
Efectuăm permutări asupra biţilor vectorului S: Iniţial i=0, j=0. j=(j+K[i]+S[j]) mod 8 1) i=0, j=(0+K[0]+S[0]) mod 8 = (0+50+0) mod 8 = 50 mod 8 = 2; SWAP(S[i],S[j])=SWAP(S[0],S[2])=21034567= 50 54 50 54 50 54 50 54 P 0 1 2 3 4 5 S
2
1
0
3
4
5
6
7
K
50
54
50
54
50
54
50
54
6
7
2) i=1, j=(2+K[1]+S[1]) mod 8 = (2+54+1) mod 8 = 57 mod 8 = 1; SWAP(S[i],S[j])=SWAP(S[1],S[1])= 21034567= 50 54 50 54 50 54 50 54 P 0 1 2 3 4 5 S
2
1
0
3
4
5
6
7
K
50
54
50
54
50
54
50
54
6
7
3) i=2, j=(1+K[2]+S[2]) mod 8 = (1+50+0) mod 8 = 51 mod 8 = 3; SWAP(S[i],S[j])=SWAP(S[2],S[3])= 21304567= 50 54 54 50 50 54 50 54 P 0 1 2 3 4 5 S
2
1
3
0
4
5
6
7
K
50
54
54
50
50
54
50
54
6
7
4) i=3, j=(3+K[3]+S[3]) mod 8 = (3+50+0) mod 8 = 53 mod 8 = 5; SWAP(S[i],S[j])=SWAP(S[3],S[5])= 21354067= 50 54 54 54 50 50 50 54 P 0 1 2 3 4 5 S
2
1
3
5
4
0
6
7
K
50
54
54
54
50
50
50
54
1
5) i=4, j=(5+K[4]+S[4]) mod 8 = (0+50+4) mod 8 = 54 mod 8 = 6; SWAP(S[i],S[j])=SWAP(S[4],S[6])= 21356047= 50 54 54 54 50 50 50 54 P 0 1 2 3 4 5 6 S 2 1 3 5 6 0 4 K 50 54 54 54 50 50 50
7 7 54
6) i=5, j=(6+K[5]+S[5]) mod 8 = (5+50+0) mod 8 = 55 mod 8 = 7; SWAP(S[i],S[j])=SWAP(S[5],S[7])= 21356740= 50 54 54 54 50 54 50 50 P 0 1 2 3 4 5 S 2 1 3 5 6 7 K 50 54 54 54 50 54
6 4 50
7 0 50
7) i=6, j=(7+K[6]+S[6]) mod 8 = (6+50+4) mod 8 = 60 mod 8 = 4; SWAP(S[i],S[j])=SWAP(S[6],S[4])= 21354760= 50 54 54 54 50 54 50 50 P 0 1 2 3 4 5
6
7
S
2
1
3
5
4
7
6
0
K
50
54
54
54
50
54
50
50
6 6 50
7 1 54
8) i=7, j=(4+K[7]+S[7]) mod 8 = (7+50+0) mod 8 = 57 mod 8 = 1; SWAP(S[i],S[j])=SWAP(S[7],S[1])= 20354761= 50 50 54 54 50 54 50 54 P 0 1 2 3 4 5 S 2 0 3 5 4 7 K 50 50 54 54 50 54 CRIPTARE Alegem un mesaj pentru criptare m = Sysadmin Iniţial i=0, j=0. i=(i+1) mod 8 = 1 mod 8 = 1. j=(j+S[i]) mod 8 = (j+S[1]) mod 8 = (0+0) mod 8 = 0 Calculam t: t=(S[i]+S[j]) mod 8 = (S[1]+S[0]) mod 8 = (0+2) mod 8 = 2 Criptul r = chr(ord(m)) XOR K[t] , K[t] = K[2] = (54)2 = (00110110)2 m[0] = S → (83)10 = (01010011)2 m[1] = y → (121)10 = (01111001)2 m[2] = s → (115)10 = (01110011)2 m[3] = a → (97)10 = (01100001)2 m[4] = d → (100)10 = (01100100)2 m[5] = m → (109)10 = (01101101)2 m[6] = i → (105)10 = (01101001)2 m[7] = n → (110)10 = (01101110)2 1) r[0] = 01010011 XOR 00110110 = (01100101)2 = (101)10 → e 2
2) 3) 4) 5) 6) 7) 8)
r[1] = 01111001 XOR 00110110 = (01001111)2 = (79)10 → O r[2] = 01110011 XOR 00110110 = (01000101)2 = (69)10 → E r[3] = 01100001 XOR 00110110 = (01010111)2 = (87)10 → W r[4] = 01100100 XOR 00110110 = (01010010)2 = (82)10 → R r[5] = 01101101 XOR 00110110 = (01011011)2 = (91)10 → [ r[6] = 01101001 XOR 00110110 = (01011111)2 = (95)10 → _ r[7] = 01101110 XOR 00110110 = (01011000)2 = (88)10 → X
Deci, mesajul m = „Sysadmin” criptat este „eOEWR[_X” DECRIPTARE Cript r = eOEWR[_X; K=26; S= 20354761 P 0
1
2
3
4
5
6
7
S
2
0
3
5
4
7
6
1
K
50
50
54
54
50
54
50
54
Iniţial i=0, j=0. i = (i+1) mod 8 = 1 mod 8 = 1. j = (j+S[i]) mod 8 = (j+S[1]) mod 8 = (0+0) mod 8 = 0 Calculam t: t=(S[i]+S[j]) mod 8 = (S[1]+S[0]) mod 8 = (0+2) mod 8 = 2 i = chr(ord(r)) XOR K[t] r[0] = e → (101)10 = (01100101)2 r[1] = O → (79)10 = (01001111)2 r[2] = E → (69)10 = (01000101)2 r[3] = W → (87)10 = (01010111)2 r[4] = R → (82)10 = (01010010)2 r[5] = [ → (91)10 = (01011011)2 r[6] = _ → (95)10 = (01011111)2 r[7] = X → (88)10 = (01011000)2 1) 2) 3) 4) 5) 6) 7) 8)
m[0] = 01100101 XOR 00110110 = (01010011)2 = (83)10 → S m[1] = 01001111 XOR 00110110 = (01111001)2 = (121)10 → y m[2] = 01000101 XOR 00110110 = (01110011)2 = (115)10 → s m[3] = 01010111 XOR 00110110 = (01100001)2 = (97)10 → a m[4] = 01010010 XOR 00110110 = (01100100)2 = (100)10 → d m[5] = 01011011 XOR 00110110 = (01101101)2 = (109)10 → m m[6] = 01011111 XOR 00110110 = (01101001)2 = (105)10 → i m[7] = 01011000 XOR 00110110 = (01101110)2 = (110)10 → n
Mesajul criptat r = „eOEWR[_X” decriptat va fi: „Sysadmin”. 3