XXTEA | |
---|---|
Skapare | David Wheeler och Roger Needham |
Skapad | 1998 _ |
publiceras | 1998 _ |
Nyckelstorlek | 128 bitar |
Block storlek | bitar, där är antalet ord, inte mindre än 2 |
Antal omgångar | var - antalet ord |
Sorts | Feistel nätverk |
XXTEA är en kryptografisk algoritm som implementerar blocksymmetrisk kryptering och är ett Feistel-nätverk . Det är en förlängning av Block TEA-algoritmen. Designad och publicerad av Wheeler och Roger 1998 Gjord på enkla och snabba operationer: XOR , substitution, addition. [1] [2]
Vid Fast Software Encryption Symposium i december 1994 presenterade David Wheeler och Roger Needham, professorer vid datorlaboratoriet vid University of Cambridge , den nya kryptografiska TEA -algoritmen . Denna algoritm designades som ett alternativ till DES , som vid den tiden redan ansågs vara föråldrad. [3] [4]
Senare 1996, under den personliga korrespondensen mellan David Wheeler och David Wagner, avslöjades en sårbarhet för den kopplade nyckelattacken , som officiellt presenterades 1997 vid den första internationella konferensen för ICIS av en grupp forskare bestående av Bruce Schneier , John Kelsey och David Wagner. [5] [6] Denna attack gav grunden för förbättringar av TEA- algoritmen , och i oktober 1996 publicerade Wheeler och Needham en intern labbrapport som citerade två nya algoritmer: XTEA och Block TEA. [7]
Den 10 oktober 1998 publicerade nyhetsgruppen sci.crypt.research en artikel av Markku-Juhani Saarinen där en Block TEA-sårbarhet hittades vid dekrypteringsstadiet [4] . Samma månad publicerade David Wheeler och Roger Needham en intern rapport från labbet som förbättrade Block TEA:s XXTEA-algoritm. [åtta]
XXTEA, liksom andra chiffer i TEA-familjen, har ett antal utmärkande egenskaper jämfört med liknande chiffer:
Källtexten är uppdelad i ord om 32 bitar vardera, ett block bildas av de mottagna orden. Nyckeln är också uppdelad i 4 delar, bestående av ord på 32 bitar vardera, och en uppsättning nycklar bildas. Under en omgång av algoritmen krypteras ett ord från blocket. Efter att alla ord har krypterats slutar cykeln och en ny börjar. Antalet cykler beror på antalet ord och är lika med , där är antalet ord. Kryptering av ett ord är som följer:
För tillfället finns det en adaptiv-klartextbaserad attack publicerad av Elias Jaarrkov 2010. Det finns två metoder som använder sig av att minska antalet loopar genom att öka antalet ord.
Anta att vi har en öppen text. Låt oss ta 5 vissa ord från det, som börjar med , som vi krypterar med . Låt oss lägga till ett nummer till , så får vi en ny klartext. Låt oss nu utföra den första krypteringscykeln för dessa texter. Om skillnaden efter kryptering bara kvarstår i detta ord, fortsätter vi kryptering. Om skillnader med andra ord börjar dyka upp, så börjar vi sökningen igen antingen genom att ändra den ursprungliga eller försöka hitta en annan skillnad. Att lagra skillnaden i endast ett ord är möjligt eftersom krypteringsfunktionen inte är bijektiv för varje granne. Elias Jaarrkov genomförde en serie experiment och fann att sannolikheten att gå igenom skillnaden på 5 hela cykler gav sannolikheten mellan och för de flesta nycklar, det vill säga om ett par texter gick igenom 5 av 6 hela cykler, så kan det anses vara korrekt, eftersom om du sätter skillnaden i slutet av blocket kommer det att finnas skillnader i de flesta ord. Denna attack genomfördes och nyckeln för algoritmen återställdes med antalet cykler reducerat till tre.
Det andra tillvägagångssättet skiljer sig från det första genom att efter den första omgången av kryptering av ordet, måste skillnaden gå in i det från själva ordet, medan skillnaden kan ändras, och efter nästa omgång av kryptering kommer skillnaden att återgå till ord och bli lika med den ursprungliga, men byt tecken. Efter att ha utvärderat denna metod fann Elias Jaarkov att 2 59 texter räcker för att lyckas hitta rätt par, och skillnaden borde ligga i intervallet , där , och ökad d inte förbättrade resultaten. En framgångsrik attack gjordes sedan på XXTEA med antalet cykler reducerat till 4, och det korrekta paret erhölls med 235 par texter, medan den tidigare uppskattningen ger behovet av 234,7 par texter.
Att känna till det korrekta paret av texter räcker det att köra algoritmen i omvänd ordning, eftersom vi nu vet allt utom nyckeln. [2] [12]
Symmetriska kryptosystem | |
---|---|
Streama chiffer | |
Feistel nätverk | |
SP nätverk | |
Övrig |