Differentiell kryptoanalys är en metod för kryptoanalys av symmetriska blockchiffer (och andra kryptografiska primitiver , i synnerhet hashfunktioner och strömchiffer ).
Differentiell kryptoanalys baseras på studien av omvandlingen av skillnaderna mellan krypterade värden i olika omgångar av kryptering . Som en skillnad, som regel, används operationen av bitvis summering modulo 2 , även om det finns attacker med beräkningen av skillnaden modulo . Det är en statistisk attack. Tillämplig för att spricka DES , FEAL och några andra chiffer, som regel, utvecklade tidigare än början av 90-talet. Antalet omgångar av moderna chiffer ( AES , Camellia , etc.) beräknades med hänsyn till säkerhet , inklusive differentiell kryptoanalys.
Differentiell kryptoanalys föreslogs 1990 av de israeliska experterna Eli Biham och Adi Shamir för att bryta kryptosystem som DES. I sitt arbete visade de att DES-algoritmen visade sig vara ganska resistent mot denna kryptoanalysmetod, och varje minsta förändring i algoritmens struktur gör den mer sårbar.
1994 publicerade IBM :s Don Coppersmith en artikel [1] som påstod att metoden för differentiell kryptoanalys var känd för IBM redan 1974, och ett av målen med att utveckla DES var att skydda mot denna metod. IBM hade sina hemligheter. Coppersmith förklarade:
Designen drog fördel av vissa kryptoanalytiska metoder, särskilt metoden "differentiell kryptoanalys", som inte har publicerats i den öppna litteraturen. Efter diskussioner med NSA beslutades det att avslöjande av designprocessen också skulle avslöja en metod för differentiell kryptoanalys vars kraft kunde användas mot många chiffer. Detta skulle i sin tur minska USA:s fördel gentemot andra länder inom kryptografi.
DES visade sig vara kryptografiskt resistent mot differentiell kryptoanalys, till skillnad från vissa andra chiffer. Så till exempel visade sig FEAL- chifferet vara sårbart . En 4-round FEAL-4 kan knäckas med så lite som 8 valda klartexter , och även en 31-round FEAL är sårbar för attack.
År 1990 hittade Eli Biham och Adi Shamir , med hjälp av differentiell kryptoanalys, ett sätt att bryta DES som var mer effektivt än brute force. Genom att arbeta med par av chiffertexter vars klartexter har vissa skillnader, har forskare analyserat utvecklingen av dessa skillnader när klartexterna passerar genom stadierna av DES .
Den grundläggande metoden för differentiell kryptoanalys är den adaptivt valda klartextattacken , även om den har en förlängning för klartextattack . För att utföra attacken används par av klartexter kopplade med en viss skillnad. För DES och DES-liknande system definieras det som exklusivt ELLER (XOR) . Vid dekryptering behövs endast värdet av motsvarande chiffertextpar.
Diagrammet visar Feistel-funktionen . Låt och vara ett par ingångar som skiljer sig med . De utgångar som motsvarar dem är kända och lika med och , skillnaden mellan dem är . Permutationen med förlängning och -block är därför också kända och är också kända . och är okända, men vi vet att deras skillnad är , eftersom skillnader c och neutraliseras. De enda icke-linjära elementen i kretsen är -block. För varje -block kan du lagra en tabell, vars rader är skillnaderna vid ingången av -blocket, kolumnerna är skillnaderna vid utgången, och vid skärningspunkten - antalet par som har gett input och output skillnader, och någonstans att lagra dessa par själva.
Att öppna den runda nyckeln är baserad på det faktum att för ett givet värde är inte alla värden lika sannolika, men kombinationen av och låter oss anta värdena och . För känt och detta tillåter oss att bestämma . Med undantag för all nödvändig information för den sista omgången finns i det sista paret av chiffertexter.
Efter att ha bestämt rundnyckeln för den sista cykeln blir det möjligt att delvis dekryptera chiffertexterna och sedan använda ovanstående metod för att hitta alla runda nycklar.
För att bestämma de möjliga skillnaderna mellan de chiffertexter som tas emot vid den i:te omgången, används runda egenskaper .
N-runda karakteristiken är en tupel , sammansatt av skillnader i klartext, chiffertextskillnader och en uppsättning skillnader i mellanliggande krypteringsresultat för varje tidigare omgång.
Karaktäristiken tilldelas en sannolikhet lika med sannolikheten att ett slumpmässigt par klartexter med en skillnad till följd av kryptering med slumpmässiga nycklar har runda skillnader och chiffertextskillnader som matchar de som anges i egenskapen. Ett par öppna texter som motsvarar egenskapen kallas "korrekt" . Par öppna texter som inte motsvarar egenskapen kallas "felaktiga" .
Låt oss ta värdet av skillnaden mellan texter vid utgången av den näst sista cykeln, som används för att bestämma den möjliga undernyckeln för den sista omgången, . I ett sådant fall bestämmer det "rätta" textparet rätt nyckel, medan det "fel" paret bestämmer en slumpmässig nyckel.
Vid en attack används vanligtvis flera egenskaper samtidigt. Strukturer används vanligtvis för att spara minne.
För alla nyckelalternativ kan du skapa räknare, och om något par föreslår detta alternativ som en giltig nyckel kommer vi att öka motsvarande räknare. Nyckeln som motsvarar den största räknaren har stor sannolikhet att vara korrekt.
För vårt beräkningsschema kommer förhållandet mellan antalet korrekta par S och medelvärdet för räknaren N att kallas signal-brusförhållandet och kommer att betecknas med .
För att hitta rätt nyckel och se till att rätt par finns, måste du:
Antalet obligatoriska par bestäms av:
Låt nyckelstorleken vara k bitar, då behöver vi räknare. Om en:
då är medelvärdet för räknaren N :
Om är sannolikheten för egenskapen, då är antalet korrekta par S lika med:
Då är signal-brusförhållandet :
Observera att för vårt designschema beror signal-brusförhållandet inte på det totala antalet par. Antalet giltiga par som behövs är i allmänhet en funktion av signal-brusförhållandet . Det fastställdes experimentellt att om S/N=1-2 är 20-40 förekomster av korrekta par nödvändiga. Om förhållandet är mycket högre kan till och med 3-4 korrekta par vara tillräckligt. Slutligen, när det är mycket lägre, är antalet par som krävs enormt.
S/N | Antal par krävs |
---|---|
mindre än 1 | Veliko |
1-2 | 20-40 |
mer än 2 | 3-4 |
Med en ökning av antalet omgångar ökar komplexiteten för kryptoanalys, men den förblir mindre än komplexiteten i en uttömmande sökning när antalet cykler är mindre än 16.
Beroende på antalet omgångar | |
---|---|
Antal omgångar | Attackens komplexitet |
Utformningen av S-boxar påverkar också avsevärt effektiviteten av differentiell kryptoanalys. DES S-boxar är i synnerhet optimerade för attackmotstånd.
Medan fullständig 16-runda DES ursprungligen designades för att vara resistent mot differentiell kryptoanalys, visade sig attacken vara framgångsrik mot en bred grupp av DES-liknande chiffer [2] .
Differentiell kryptoanalys är också tillämplig mot hashfunktioner .
Efter publiceringen av arbeten om differentiell kryptoanalys i början av 1990-talet designades efterföljande chiffer för att vara resistenta mot denna attack.
Metoden för differentiell kryptoanalys är till stor del en teoretisk prestation. Dess tillämpning i praktiken begränsas av höga krav på tid och datavolym.
Eftersom differentiell kryptoanalys i första hand är en vald-klartext-attackmetod är det svårt att implementera i praktiken. Det kan användas för att attackera med känd klartext, men i fallet med en fullständig 16-runda DES gör detta den ännu mindre effektiv än en brute-force attack.
Metoden kräver en stor mängd minne för att lagra kandidatnycklar. Metodens effektivitet beror också starkt på strukturen hos S-boxarna för den hackade algoritmen.