You are on page 1of 3

Criptosisteme simetrice fluide: RC4

n=2
23 =4 – flux de biţi
Formăm vectrul S: 0123
Alegem cheia: 13, K – vectorul cheii
Codul ASCII al cheii este: 1 → 49; 3 →51 ;
Vectorul cheii este:
49 51 49 51

Depunem valorile codului ASCII al cheii:


P 0 1 2 3
S 0 1 2 3
K 49 51 49 51

Efectuăm permutări asupra biţilor vectorului S:

Iniţial i=0, j=0.


j=(j+K[i]+S[j]) mod 4

1) i=0, j=(0+K[0]+S[0]) mod 4 = (0+49+0) mod 4 = 49 mod 4 = 1;


SWAP(S[i],S[j])=SWAP(S[0],S[1])=1023=51 49 49 51
P 0 1 2 3
S 1 0 2 3
K 51 49 49 51

2) i=1, j=(1+K[1]+S[1]) mod 4 = (1+49+0) mod 4 = 50 mod 4 = 2;


SWAP(S[i],S[j])=SWAP(S[1],S[2])=1203=51 49 49 51
P 0 1 2 3
S 1 2 0 3
K 51 49 49 51

3) i=2, j=(2+K[2]+S[2]) mod 4 = (2+49+0) mod 4 = 51 mod 4 = 3;


SWAP(S[i],S[j])=SWAP(S[2],S[3])=1230=51 49 51 49
P 0 1 2 3
S 1 2 3 0
K 51 49 51 49

4) i=3, j=(3+K[3]+S[3]) mod 4 = (3+49+0) mod 4 = 52 mod 4 = 0;


SWAP(S[i],S[j])=SWAP(S[3],S[0])=0231=51 49 51 49
P 0 1 2 3
S 0 2 3 1
K 51 49 51 49

1
CRIPTARE

Alegem un mesaj pentru criptare m = Criptare


Iniţial i=0, j=0.
i=(i+1) mod 4 = 1 mod 4 = 1.
j=(j+S[i]) mod 4 = (j+S[1]) mod 4 = (0+2) mod 4 = 2

Calculam t:
t=(S[i]+S[j]) mod 4 = (S[1]+S[2]) mod 4 = (3+2) mod 4 = 1

Criptul r = chr(ord(m)) XOR K[t]

, K[t] = K[1] = (49)2 = (00110001)2


m[0] = C → (67)10 = (01000011)2
m[1] = r → (114)10 = (01110010)2
m[2] = i → (105)10 = (01101001)2
m[3] = p → (112)10 = (01110000)2
m[4] = t → (116)10 = (01110100)2
m[5] = a → (97)10 = (01100001)2
m[6] = r → (114)10 = (01110010)2
m[7] = e → (101)10 = (01100101)2

1) r[0] = 01000011 XOR 00110001 = (01110010)2 = (114)10 → r


2) r[1] = 01110010 XOR 00110001 = (01000011)2 = (67)10 → C
3) r[2] = 01101001 XOR 00110001 = (01011000)2 = (88)10 → X
4) r[3] = 01110000 XOR 00110001 = (01000001)2 = (65)10 → A
5) r[4] = 01110100 XOR 00110001 = (01000101)2 = (69)10 → E
6) r[5] = 01100001 XOR 00110001 = (01010000)2 = (80)10 → P
7) r[6] = 01110010 XOR 00110001 = (01000011)2 = (67)10 → C
8) r[7] = 01100101 XOR 00110001 = (01010100)2 = (84)10 → T

Deci, mesajul m = „Criptare” criptat este „rCXAEPCT”


DECRIPTARE Cript r = rCXEPCT;
K=13;
S= 0231
P 0 1 2 3
S 0 2 3 1
K 51 49 51 49

Iniţial i=0, j=0.


i = (i+1) mod 4 = 1 mod 4 = 1.
j = (j+S[i]) mod 4 = (j+S[1]) mod 4 = (0+2) mod 4 = 2
SWAP(S[i],S[j]) mod 4 = (3+2) mod 4 = 5

i = chr(ord(r)) XOR K[t]


r[0] = r→ (114)10 = (01110010)2
r[1] = C → (67)10 = (01000011)2
r[2] = X → (88)10 = (01011000)2
r[3] = A→ (65)10 = (01000001)2
r[4] = E → (69)10 = (01000101)2

2
r[5] =P → (80)10 = (01010000)2
r[6] =C → (67)10 = (01000011)2
r[7] =T → (84)10 = (01010100)2

1) m[0] = 01110010 XOR 00110001 = (01000011)2 = (67)10 → C


2) m[1] = 01000011 XOR 00110001 = (01110010)2 = (114)10 → r
3) m[2] = 01011000 XOR 00110001 = (01101001)2 = (105)10 → i
4) m[3] = 01000001 XOR 00110001 = (01110000)2 = (112)10 → p
5) m[4] = 01000101 XOR 00110001 = (01110100)2 = (116)10 → t
6) m[5] = 01010000 XOR 00110001 = (01100001)2 = (97)10 → a
7) m[6] = 01000011 XOR 00110001 = (01110010)2 = (114)10 → r
8) m[7] = 01010100 XOR 00110001 = (01100101)2 = (101)10 → e

Mesajul criptat r = „rCXAEPCT” decriptat va fi: „Criptare”.

You might also like