RC5 | |
---|---|
Skapare | Ron Rivest |
Skapad | 1994 |
publiceras | 1994 |
Nyckelstorlek | 0-2040 bitar (128 som standard) |
Block storlek | 32, 64 eller 128 bitar (64 är standard för 32-bitars plattformar) |
Antal omgångar | 1-255 (12 som standard) |
Sorts | Feistel nätverk |
RC5 ( Ron's Code 5 eller Rivest's Cipher 5 ) är ett blockchiffer utvecklat av Ron Rivest från RSA Security med ett variabelt antal rundor , blocklängd och nyckellängd . Detta utökar användningsområdet och förenklar övergången till en starkare version av algoritmen.
Det finns flera olika varianter av algoritmen , där transformationerna i "halvrundorna" av den klassiska RC5 är något modifierade. Den klassiska algoritmen använder tre primitiva operationer och deras inversioner:
Den huvudsakliga innovationen är användningen av en skiftoperation med ett variabelt antal bitar, vilket inte användes i tidigare krypteringsalgoritmer. Dessa operationer är lika snabba på de flesta processorer , men komplicerar samtidigt den differentiella och linjära kryptoanalysen av algoritmen avsevärt.
Kryptering med RC5-algoritmen består av två steg. Nyckelexpansionsprocedur och själva kryptering . För dekryptering utförs först nyckelexpansionsproceduren och sedan återgår operationerna till krypteringsproceduren. Alla additions- och subtraktionsoperationer utförs modulo .
Eftersom RC5-algoritmen har variabla parametrar, är beteckningen för algoritmen med specifika parametrar RC5-W/R/b , där
Innan du direkt krypterar eller dekrypterar data utförs en nyckelexpansionsprocedur. Nyckelgenereringsproceduren består av fyra steg:
För en given parameter genereras två pseudo-slumpvariabler med hjälp av två matematiska konstanter: ( exponent ) och ( Golden Ratio ).
,där är avrundning till närmaste udda heltal.
För du får följande konstanter:
I detta skede kopieras nyckeln till en rad ord … , där , där , det vill säga antalet byte i ett ord.
Om inte en multipel av , utfylld med nollbitar till närmaste större multipel av .
Om , då ställer vi in värdet på , och .
Bygga en tabell med utökade nycklarI detta skede byggs det utökade nyckelbordet , vilket utförs enligt följande:
BlandaFöljande åtgärder utförs cykliskt N gånger:
var är temporära variabler vars initiala värden är lika med 0. Antalet iterationer av slingan är det maximala av de två värdena och .
Före den första omgången utförs operationerna med att lägga en utökad nyckel på den krypterade datan:
I varje omgång utförs följande åtgärder:
För datadekryptering används omvända operationer, det vill säga följande omgångar utförs:
Efter att alla omgångar har slutförts hittas det ursprungliga meddelandet från uttrycket:
RC5-algoritmen har följande egenskaper: [1]
RSA har ägnat mycket tid åt att analysera hur det fungerar med ett 64-bitars block. Så under perioden 1995 till 1998 publicerade de ett antal rapporter där de analyserade i detalj den kryptografiska styrkan hos RC5-algoritmen. Poängen för linjär kryptoanalys visar att algoritmen är säker efter 6 omgångar. Differentiell kryptoanalys kräver utvalda klartexter för 5-runda algoritmen, för 10-runder, för 12-runder och för 15-runder. Och eftersom det bara finns möjliga olika klartexter är differentiell kryptoanalys omöjlig för en algoritm på 15 eller fler omgångar. Så det rekommenderas att använda 18-20 omgångar, eller åtminstone 15 omgångar istället för de 12 omgångarna som Rivest själv rekommenderade.
För att stimulera studien och användningen av RC5-chifferet erbjöd RSA Security den 28 januari 1997 att bryta en serie meddelanden krypterade med RC5-algoritmen med olika parametrar, [2] och tilldela ett pris på $10 000 för att bryta varje meddelande. de svagaste parametrarna är RC5-32/12/5 hackades inom några timmar. Det sista RC5-32/12/8-chifferet som knäcktes krävde dock 5 års beräkning av det distribuerade beräkningsprojektet RC5-64 (här 64= b 8, nyckellängd i bitar) ledd av distributed.net . RC5-32 /12/ b för b från 9 till 16 är fortfarande ogenomtränglig . % nycklar. [3]
I maj 2007 hade RSA Security Inc. meddelade att stödet för tävlingen och betalningen av monetära belöningar upphörde. För att hålla RC-72- projektet igång beslutade distributed.net att sponsra ett pris på $4 000 för det med egna medel. [fyra]
På plattformar där ett variabelt antal bitars rotationsoperation utförs för ett annat antal processorcykler , är en runtime- attack på RC5-algoritmen möjlig. Två varianter av en sådan attack formulerades av kryptoanalytikerna Howard Hayes och Helena Handschuh . De fann att nyckeln kunde beräknas efter att ha utfört cirka 220 krypteringsoperationer med mycket exakta körtider och sedan 228 till 240 testkrypteringsoperationer. Den enklaste metoden för att bekämpa sådana attacker är att tvinga skift att utföras i ett konstant antal cykler (till exempel under utförandet av det långsammaste skiftet).
Eftersom en av egenskaperna hos RC5 är dess enkla implementering och analys, är det logiskt att många kryptologer[ vem? ] ville förbättra den klassiska algoritmen. Algoritmens allmänna struktur förblev oförändrad, endast de åtgärder som utfördes på varje block i själva krypteringsprocessen ändrades . Så det fanns flera olika versioner av denna algoritm:
I denna algoritm ersätts addition med modulo round-tangenten med XOR-operationen:
Denna algoritm visade sig vara sårbar för differentiell och linjär kryptoanalys. Biryukov och Kushilevits lyckades hitta en differentiell kryptoanalysattack för RC5XOR-32/12/16-algoritmen med hjälp av 228 utvalda klartexter.
I denna algoritm ersätts tillägget av två bearbetade "subblock" av XOR-operationen med modulo-addition :
Denna algoritm visade sig vara sårbar för differentiell kryptoanalys.
I denna algoritm utförs det cykliska skiftet av ett fast antal bitar för en given omgång, och inte av en variabel.
,var är ett fast nummer.
Denna algoritm är inte väl förstådd, men det antas att[ av vem? ] att den är instabil för differentiell kryptoanalys.
I den här algoritmen beror antalet bitar som ska skiftas på nyckeln till algoritmen och på den aktuella rundan:
,Denna algoritm är inte heller väl förstådd.
I denna algoritm bestäms antalet skiftbitar med hjälp av någon funktion från ett annat "subblock":
,Förment,[ av vem? ] att RC5RA-algoritmen är ännu mer motståndskraftig mot kända kryptoanalysmetoder än RC5.
Symmetriska kryptosystem | |
---|---|
Streama chiffer | |
Feistel nätverk | |
SP nätverk | |
Övrig |