Locked History Actions

RC5

Žodis angliškai:

Ron`s Code arba Riverst Cipher

Santrumpa:

RC5

Žodis lietuviškai:

Rono Kodas 5 arba Riversto Šifras 5

Apibrėžimas:

  • RC5 yra greitas, simetriškas, blokinis kodavimo algoritmas, tinkantis tiek programinei, tiek techninei įrangai. Nauja galimybė RC5 algoritme yra dažnas duomenų priklausomybės kaitaliojimas. RC5 turi kintamo dydžio slaptą raktą, suteikiantį lankstumą saugumo lygmenyje. RC5 yra algoritmas turintis parametrus, ir dažnai RC5 yra vadinamas RC5-w/r/b. Parametrai yra tokie:

• w yra žodžio dydis bitais. Standartinė reikšmė yra 32 bitai, leistinos reikšmės yra 16, 32 ir 64. RC5 koduoja dviejų žodžių blokus: paprasto teksto ir šifruoto teksto, blokai būna 2w bitų ilgio. • r yra ciklų skaičius. Leistinos reikšmės yra 0,1, ..., 255. • b yra baitų skaičius slaptame rakte K. Leistinos reikšmės yra 0,1, ..., 255.

RC5 naudoja „išplėstinio rakto“ lentelę S, kuri gaunama iš vartotojo pateikto slapto rakto K. Lentelės S dydis t priklauso nuo ciklų skaičiaus r. Lentelėje būna t = 2*(r+1) žodžių. RC5 nėra numatytas būti saugus su visais galimais parametrais. Tačiau naudoti maksimalias parametrų reikšmes būtų daugiareikšmiškumas taikomosioms programoms.

RC5 algoritmas

rc5.png 4 pav. RC5 algoritmas

RC5 sudarytas iš trijų algoritmų, vienas yra rakto išplėtimui (4 pav.), kitas yra šifravimui, trečias yra dešifravimui. Šie trys algoritmai naudoja tris operacijas: • Dvejeto komplektas prideda žodžius, žymimas „+“ . Tai yra modulinė 2W sudėtis. Atgalinė operacija yra „-“, • bito būdas – XOR (išskirtinis arba) žodžių, žymimas , • žodžio postūmis į kairę, postūmis į kairę per y bitų žymimas x<<<y, atgalinė operacija yra postūmis į dešinę, žymimas x>>>y. Rakto plėtimo šablonas išplečia vartotojo raktą K, kad šis užpildytų „išplėstinio rakto“ lentelę S. Ir kad S sukurtų lentelę iš t atsitiktinių dvejetainių žodžių nustatytų pagal vartotojo slaptą kodą K. Tada S yra sumaišoma su slaptu kodu K, trimis abiejų „+“ ir „<<<“ operacijų perdavimais. Šifruodami mes numanome, kad įvesties blokas yra dedami 2W bito registrus A ir B, ir kad išvesties blokai taip pat talpinami į A ir B registrus.

RC5 šifravimo algoritmas:

A=A + S[0]; B=B + S[1]; for(i=1; i<=r; r++) { A= (( A B )<<B)+S[2*i]; B=((B A)<<A)+S[2*i+1]; }

RC5 iššifravimo algoritmas: B = B - S[1]; A = A – S[0]; for(i=r; i>=1; r--) { B=((B – S[2*i+1] )>>A) A; A=((A – S[2*i] )>> B) B;}

Pateiksiu RC5 šifravimo algoritmo pavyzdį (jau užkoduotą tekstą).

Raktas = 915F4619BE41B2516355A50110A9CE91 Paprastas tekstas = 21A5DBEE154B8F6D Šifruotas tekstas = F7C013AC5B2B8952