Inom kryptografi är linjär kryptoanalys en metod för kryptoanalys som använder linjära approximationer för att beskriva hur ett chiffer fungerar .
Linjär kryptoanalys uppfanns av den japanske kryptologen Mitsuru Matsui ( Jap. 松井 充 Matsui Mitsuru ). Algoritmen som föreslogs av honom 1993 (vid Eurocrypt '93-konferensen) syftade ursprungligen till att bryta DES och FEAL [1] . Därefter utvidgades linjär kryptoanalys till andra algoritmer. Idag, tillsammans med differentiell kryptoanalys , är det en av de vanligaste metoderna för att bryta blockchiffer [2] . Också användbar för attacker på strömchiffer .
Upptäckten av linjär kryptoanalys var drivkraften för konstruktionen av nya kryptografiska system [3] .
Kryptering sker i två steg. Den första är att bygga relationer mellan klartext , chiffertext och nyckel som är sanna med stor sannolikhet. Den andra är att använda dessa förhållanden, tillsammans med kända klartext-chiffertext-par, för att härleda nyckelbitarna.
Meningen med algoritmen är att erhålla följande relationer:
var är de n :te bitarna av texten, chiffertexten respektive nyckeln.
Dessa samband kallas linjära approximationer . Sannolikheten P för giltigheten av en sådan relation för godtyckligt valda bitar av klartext, chiffertext och nyckel är ungefär lika med 1/2. Sådana förhållanden, vars sannolikhet är märkbart annorlunda än 1/2, kan användas för att öppna algoritmen.
Tanken med linjär kryptoanalys är att bestämma uttryck av formen (1) som har en hög eller låg sannolikhet att inträffa. Om krypteringsalgoritmen har en hög frekvens av ekvation (1), eller vice versa, exekveras ekvationen med en låg frekvens, då indikerar detta en dålig förmåga att randomisera chifferen. Om sannolikheten för att uppfylla ekvation (1) är lika med p , är sannolikheten för förskjutning p − 1/2. Ju större sannolikheten för förskjutning är | | p − 1/2|, desto bättre är tillämpligheten av linjär kryptoanalys med färre klartexter som behövs för en attack [1] [4] .
Det finns flera typer av linjära kryptoanalysattacker [5] [6] [7] . Matsui-algoritmen beaktas: initialt, för varje omgång av chifferet, hittas en linjär approximation med den högsta sannolikheten för bias. De resulterande uttrycken kombineras till en linjär approximation som är gemensam för alla omgångar, vars sannolikhet kan skiftas med hjälp av tecknet överskridande lemma .
Därefter överväger vi en algoritm för att hitta den bästa linjära approximationen för en omgång. I blockchiffer koncentreras analysen till övervägande del på S-boxar , eftersom de är den icke-linjära delen av chiffret. Eftersom S-boxen tar m bitar som indata och returnerar n bitar, måste kryptoanalytikern konstruera 2 m + n approximationer. För att hitta sannolikheten för en approximation ges S-boxen alla 2 m möjliga ingångsvärden och räknar hur många gånger denna approximation är sann för ingångs- och utgångsbitarna. Det resulterande antalet matcher divideras med 2 m . I DES-algoritmen har den linjära approximationen för tabell S5 den högsta sannolikheten för bias , där den fjärde av de sex ingångsbitarna XORed över alla fyra utbitarna med en sannolikhet på 12/64 [8] [4] . För en helomgång DES har en relation med en sannolikhet för uppfyllelse på 1/2 + 2 −24 [9] erhållits .
Linjär kryptoanalys har en mycket användbar egenskap: under vissa förhållanden (till exempel när klartexten är känd för att bestå av ASCII-tecken ), kan relation (1) reduceras till en ekvation av formen [10] [11] :
Det finns inga bitar av vanlig text här, det vill säga du kan bygga en attack baserat endast på chiffertexten. En sådan attack kan appliceras på den avlyssnade chiffertexten och är mer praktisk.
Lemma om skyltarnas gångÄven om approximationen med den största avvikelsen från 1/2 inte är svår att hitta för en omgång, finns det ett problem med att beräkna förspänningssannolikheten när man extrapolerar metoden till ett helrundt chiffer. I princip skulle detta kräva att kryptoanalytikern tittar på alla möjliga kombinationer av klartext och nycklar, vilket inte är genomförbart. Lösningen på detta problem är att göra ett antal antaganden och approximera sannolikheten med hjälp av lemmat om intrång av tecken . Låt oss få linjära approximationer för olika omgångar, som är lika med 0 med sannolikhet . Då är sannolikheten att den totala linjära approximationen är noll [1] [4]
När en linjär approximation väl har erhållits kan en direkt algoritm tillämpas och, med hjälp av klartext-chiffertext-par, gissa värdena för nyckelbitarna. I det här fallet är det logiskt att använda det mest effektiva förhållandet, det vill säga ett för vilket avvikelsen av sannolikheten P från 1/2 är maximal.
För varje uppsättning nyckelbitvärden på höger sida av ekvation (1) beräknas antalet klartext-chiffertextpar T för vilka likhet (1) är sann . Den kandidat för vilken avvikelsen T från hälften av antalet klartext-chiffertextpar är störst i absolut värde antas vara den mest sannolika uppsättningen nyckelbitvärden [1] [4] .
Linjär krypteringsanalys utvecklades ursprungligen för attacker på blockchiffer, men är även tillämplig på streamchiffer. Dess tillämpning på DES har studerats i detalj av utvecklaren själv.
Mitsuru Matsuis experiment med klartextattacker (beräkningar utfördes på en 66 MHz HP9750) gav följande resultat [12] [13] :
2001 genomförde Pascal Junod ( fr. Pascal Junod ) en serie experiment för att fastställa attackens komplexitet. Som ett resultat visade det sig att i verkligheten kan attacken på 16-rundans DES framgångsrikt tillämpas i närvaro av 2 39 -2 41 kända texter [13] .
Med ett stort antal omgångar av chiffer, används linjär kryptoanalys vanligtvis i kombination med "brute force"-metoden - efter att vissa nyckelbitar har hittats med linjär kryptoanalys, utförs en uttömmande sökning på de möjliga värdena av de återstående bitarna. Detta tillvägagångssätt har flera skäl: för det första tillåter de bästa linjära approximationerna oss att hitta värdena för endast några nyckelbitar, och för det andra är antalet nödvändiga klartexter i det här fallet mindre, och uppräkningen av de återstående nyckelbitarna tar mindre tid [5] [13] .
Till skillnad från differentiell kryptoanalys, som kräver utvalda klartexter, nöjer sig metoden med kända klartexter, vilket avsevärt ökar dess omfattning. Men även i linjär kryptoanalys är det ibland användbart att använda utvalda klartexter istället för kända. Till exempel, för DES, finns det en teknik som kraftigt minskar mängden data och beräkningar som krävs genom att använda utvalda klartexter [7] .
Förutom DES och FEAL finns det andra algoritmer som är föremål för linjär kryptoanalys, till exempel:
För att attackera ett blockchiffer med hjälp av linjär kryptoanalys räcker det, som beskrivits ovan, att erhålla en linjär relation som är signifikant förskjuten i sannolikhet från 1/2. Följaktligen är det första målet med att designa ett attackbeständigt chiffer att minimera sannolikhetsbias, för att säkerställa att ett sådant förhållande inte existerar. Med andra ord är det nödvändigt att se till att blockchifferet uppfyller det strikta lavinkriteriet (SAL). Ett blockchiffer sägs uppfylla SLC:n om, för någon förändring i texten eller nyckeln i den resulterande chiffertexten, exakt hälften av bitarna vänds om, med varje bit som ändras med en sannolikhet på 1/2. Detta uppnås vanligtvis genom att välja mycket icke-linjära S-boxar och förbättra diffusionen .
Detta tillvägagångssätt ger en bra motivering för säkerheten för ett chiffer, men för att rigoröst bevisa säkerheten mot linjär kryptoanalys måste chifferdesigners ta hänsyn till ett mer komplext fenomen, den linjära skroveffekten [ 6] [ 18] . Det bör noteras att chiffer som är optimala mot någon smal klass av attacker vanligtvis är svaga mot andra typer av attacker. Till exempel är arrangemanget av S-boxar i DES känt, vilket avsevärt ökar motståndet mot linjär kryptoanalys, men försämrar motståndet mot differentiell kryptoanalys [19] .
Användningen av böjda funktioner spelade en betydande roll i konstruktionen av stabila S-boxar . 1982 fann man att sekvenser med maximal längd byggda på basis av böjda funktioner har extremt låga värden på både korskorrelation och autokorrelation [20] [21] . Därefter har ett antal kryptografer arbetat med användningen av böjda funktioner och deras vektoranaloger för den ultimata ökningen av blockchifferens kryptografiska motstånd mot linjär och differentiell analys [22] [23] [24] .