RC5 | |
---|---|
Skaber | Ron Rivest |
Oprettet | 1994 |
offentliggjort | 1994 |
Nøglestørrelse | 0-2040 bit (128 som standard) |
Blokstørrelse | 32, 64 eller 128 bit (64 er standard for 32-bit platforme) |
Antal runder | 1-255 (12 som standard) |
Type | Feistel netværk |
RC5 ( Ron's Code 5 eller Rivest's Cipher 5 ) er en blokchiffer udviklet af Ron Rivest fra RSA Security med et variabelt antal runder , bloklængde og nøglelængde . Dette udvider anvendelsesområdet og forenkler overgangen til en stærkere version af algoritmen.
Der findes flere forskellige varianter af algoritmen , hvor transformationerne i "halvrunderne" af den klassiske RC5 er noget modificeret. Den klassiske algoritme bruger tre primitive operationer og deres inversioner:
Den vigtigste nyskabelse er brugen af en skiftoperation med et variabelt antal bit, som ikke blev brugt i tidligere krypteringsalgoritmer. Disse operationer er lige hurtige på de fleste processorer , men komplicerer samtidig den differentielle og lineære kryptoanalyse af algoritmen betydeligt.
Kryptering ved hjælp af RC5-algoritmen består af to trin. Nøgleudvidelsesprocedure og selve kryptering . Til dekryptering udføres nøgleudvidelsesproceduren først, og derefter vender handlingerne tilbage til krypteringsproceduren. Alle additions- og subtraktionsoperationer udføres modulo .
Da RC5-algoritmen har variable parametre, er betegnelsen for algoritmen med specifikke parametre RC5-W/R/b , hvor
Før direkte kryptering eller dekryptering af data udføres en nøgleudvidelsesprocedure. Nøglegenereringsproceduren består af fire trin:
For en given parameter genereres to pseudo-random variable ved hjælp af to matematiske konstanter: ( eksponent ) og ( Gyldent forhold ).
,hvor er afrunding til nærmeste ulige heltal.
For du får følgende konstanter:
På dette trin kopieres nøglen til en række ord ... , hvor , hvor , dvs. antallet af bytes i et ord.
Hvis ikke et multiplum af , så polstret med nul bit til det nærmeste større multiplum af .
Hvis , så sætter vi værdien af , og .
Opbygning af en tabel med udvidede nøglerPå dette stadium er det udvidede nøglebord bygget , som udføres som følger:
BlandFølgende handlinger udføres cyklisk N gange:
hvor er midlertidige variabler, hvis startværdier er lig med 0. Antallet af iterationer af løkken er det maksimale af de to værdier og .
Inden første runde udføres operationerne med at pålægge en udvidet nøgle på de krypterede data:
I hver runde udføres følgende handlinger:
Til datadekryptering bruges omvendte operationer, det vil sige , at følgende runder udføres:
Efter at alle runder er gennemført, findes den oprindelige besked fra udtrykket:
RC5-algoritmen har følgende egenskaber: [1]
RSA har brugt meget tid på at analysere, hvordan det fungerer med en 64-bit blok. Så i perioden fra 1995 til 1998 udgav de en række rapporter, hvor de analyserede i detaljer den kryptografiske styrke af RC5-algoritmen. Scoren for lineær kryptoanalyse viser, at algoritmen er sikker efter 6 runder. Differentiel kryptoanalyse kræver udvalgte klartekster til 5-runders algoritme, for 10-runder, for 12-runder og for 15-runder. Og da der kun er mulige forskellige klartekster, er differentiel kryptoanalyse umulig for en algoritme på 15 eller flere runder. Så det anbefales at bruge 18-20 runder, eller mindst 15 runder i stedet for de 12 runder, som Rivest selv anbefalede.
For at stimulere undersøgelsen og brugen af RC5-chifferet tilbød RSA Security den 28. januar 1997 at bryde en række meddelelser krypteret med RC5-algoritmen med forskellige parametre, [2] ved at tildele en præmie på $10.000 for at bryde hver meddelelse. de svageste parametre er RC5-32/12/5 blev hacket inden for et par timer. Den sidste RC5-32/12/8-chiffer, der blev knækket, krævede dog 5 års beregning af det distribuerede computerprojekt RC5-64 (her 64= b 8, nøglelængde i bit) ledet af distributed.net . RC5-32 /12/ b for b fra 9 til 16 er stadig uigennemtrængeligt . % nøgler. [3]
I maj 2007 var RSA Security Inc. annoncerede opsigelse af støtten til konkurrencen og udbetaling af pengebelønninger. For at holde RC-72- projektet i gang , besluttede distributed.net at sponsorere en præmie på $4.000 til det af egne midler. [fire]
På platforme, hvor et variabelt antal bits rotationsoperation udføres for et andet antal processorcyklusser , er et runtime- angreb på RC5-algoritmen muligt. To varianter af et sådant angreb blev formuleret af kryptoanalytikerne Howard Hayes og Helena Handschuh . De fandt ud af, at nøglen kunne beregnes efter at have udført omkring 220 krypteringsoperationer med meget nøjagtige udførelsestider og derefter 228 til 240 prøvekrypteringsoperationer. Den enkleste metode til at bekæmpe sådanne angreb er at tvinge skift til at blive udført i et konstant antal cyklusser (for eksempel under udførelsen af det langsomste skift).
Da en af egenskaberne ved RC5 er dens lette implementering og analyse, er det logisk, at mange kryptologer[ hvem? ] ønskede at forbedre den klassiske algoritme. Algoritmens generelle struktur forblev uændret, kun de handlinger, der blev udført på hver blok i selve krypteringsprocessen, ændrede sig . Så der var flere forskellige versioner af denne algoritme:
I denne algoritme erstattes addition med modulo-rundtasten af XOR-operationen:
Denne algoritme viste sig at være sårbar over for differentiel og lineær kryptoanalyse. Biryukov og Kushilevits formåede at finde et differentielt kryptoanalyseangreb for RC5XOR-32/12/16-algoritmen ved hjælp af 228 udvalgte klartekster.
I denne algoritme erstattes tilføjelsen af to behandlede "underblokke" af XOR-operationen med modulo-addition :
Denne algoritme viste sig at være sårbar over for differentiel kryptoanalyse.
I denne algoritme udføres det cykliske skift af et fast antal bits for en given runde og ikke af en variabel.
,hvor er et fast nummer.
Denne algoritme er ikke godt forstået, men det antages at[ af hvem? ] at den er ustabil overfor differentiel kryptoanalyse.
I denne algoritme afhænger antallet af bit, der skal skiftes, af nøglen til algoritmen og af den aktuelle runde:
,Denne algoritme er heller ikke godt forstået.
I denne algoritme bestemmes antallet af skiftbit ved hjælp af en funktion fra en anden "underblok":
,Formodes,[ af hvem? ] at RC5RA-algoritmen er endnu mere modstandsdygtig over for kendte kryptoanalysemetoder end RC5.
Symmetriske kryptosystemer | |
---|---|
Stream-cifre | |
Feistel netværk | |
SP netværk | |
Andet |