RC2

Žodis angliškai:

Ron`s Code arba Riverst Cipher

Santrumpa:

RC2

Žodis lietuviškai:

Rono Kodas 2 arba Riversto Šifras

Apibrėžimas:

1. Rakto išplėtimas. Paima įvedama teksta ir jį išskaido į 64 žodžius, kurie sudaro išplėstą raktą nuo K[0] iki K[63]. 2. Šifravimas. Paima 64 bitų įvedamą tekstą ir ji patalpina žodžiuose nuo R[0] iki R[3] ir jį užšifruoja. 3. Iššifravimas. Vykdomas atvirkščiai nei šifravimas.

Rakto išplėtimas

T8 = (T1 + 7) / 8; TM = 255 mod 2^(8 + T1 – 8*T8);

Pateiksime pavyzdį, tarkim efektyvus rakto ilgis T1 yra 64 bitai, tuomet T8 bus lygus 8, nes (T1 + 7)/8 = (64+7)/8= 8 (/ apskaičiuoja sveikąją dalį). TM bus lygus 0xFF, nes 255 mod 2(8 + T1 – 8*T8) = 255 mod 2(8+64-8*8) = 255 mod 2^8 = 255 mod 256 = 255 = 0xFF. Gauname 256 narių masyvą, kuri pavadinkime PITABLE[i]. Rakto išlėtimas toliau apdorojamas 2 ciklais ir tarpiniu žingsniu.

for (i=0; i<128; i++) { L[i] = PITABLE[L[i-1] + L[i-T]}; } L[128-T8] = PITABLE[L[128-T8] & TM]; for (i=127-T8; i<=0; i--) { L[i] = PITABLE[L[i+1] xor L[i+T8]]; }

rc21.png 1 pav. PITABLE masyvas

Šifravimas

Šifravimo algoritmas: R[i] = R[i] + K[j] + (R[i-1] & R[i-2]) + ((~R[i-1]) & R[i-3]); j = j + 1; R[i] = R[i] rol s[i];

rc22.png 2 pav. Miksavimo ciklas

Visas aukščiau aprašytas šifravimo operacijas galima apibūdinti taip: 1. Inicijuoti žodžius R[0], ..., R[3] taip, kad būtų sudaryti blokai iš 64 bitų teksto. 2. Išplėsti raktą, kad žodžiai K[0], ..., K[63] butu aiškūs. 3. Nustatyti j = 0. 4. Atliekami 5 ciklai „mix“ operacijos. 5. Atliekamas 1 ciklas „mash“ operacijos. 6. Atliekami 6 ciklai „mix“ operacijos. 7. Atliekamas 1 ciklas „mash“ operacijos. 8. Atliekami 5 ciklai „mix“ operacijos. 9. Užšifruojamas tekstas R[0], ..., R[3].

Iššifravimas

Iššifravimo algoritmas: R[i] = R[i] ror s[i]; R[i] = R[i] - K[j] - (R[i-1] & R[i-2]) - ((~R[i-1]) & R[i-3]); j = j - 1;

1. Inicijuoti žodžius R[0], ..., R[3] taip, kad būtų sudaryti blokai iš 64 bitų teksto. 2. Išplėsti raktą, kad žodžiai K[0], ..., K[63] butu aiškūs (išskaidyti). 3. Nustatyti j = 63. 4. Atliekami 5 ciklai „reverse mix“ operacijos. 5. Atliekamas 1 ciklas „reverse mash“ operacijos. 6. Atliekami 6 ciklai „reverse mix“ operacijos. 7. Atliekamas 1 ciklas „reverse mash“ operacijos. 8. Atliekami 5 ciklai „reverse mix“ operacijos.

Pateiksiu keletą RC2 šifravimo algoritmo pavyzdžių (jau užkoduotų tekstų).

Rakto ilgis (baitais) = 8 Efektyvus rakto ilgis (bitais) = 63 Raktas = 00000000 00000000 Tekstas = 00000000 00000000 Užkoduotas tekstas = ebb773f9 93278eff

Rakto ilgis (baitais) = 7 Efektyvus rakto ilgis (bitais) = 64 Raktas = 88bca90e 90875a Tekstas = 00000000 00000000 Užkoduotas tekstas = 6ccf4308 974c267f

paskutinį kartą redaguota 2013-03-25 20:46:14 redaktoriaus AurimasSendzikaitis