Möte i mitten-metoden

Inom kryptoanalys är mötet-i-mitt- metoden eller " möte-i-mitt-attacken " en  klass av attacker på kryptografiska algoritmer som asymptotiskt minskar tiden för en fullständig uppräkning på grund av " dela och erövra " -principen samt öka mängden minne som krävs . Denna metod föreslogs först av Whitfield Diffie och Martin Hellman 1977 [1] .

Inledande villkor

De öppna (okrypterade) och chiffertexterna ges. Ett kryptosystem består av krypteringscykler . De cykliska nycklarna är oberoende och delar inte gemensamma bitar. Systemnyckeln är en kombination av -cykliska tangenter . Uppgiften är att hitta nyckeln .

Enkel case-lösning

Ett enkelt exempel är dubbelsekventiell blockkryptering med två olika nycklar och . Krypteringsprocessen ser ut så här:

,

var  är klartexten,  är chiffertexten och  är engångskrypteringsoperationen med nyckeln . Följaktligen ser den omvända operationen - dekryptering - ut så här:

Vid första anblicken verkar det som att användningen av dubbel kryptering avsevärt ökar säkerheten för hela systemet, eftersom nu två nycklar måste sorteras ut, och inte en. När det gäller DES-algoritmen ökar säkerheten från till . Det är det dock inte. En angripare kan skapa två tabeller:

  1. Alla värden för alla möjliga värden ,
  2. Alla värden för alla möjliga värden .

Sedan behöver han bara hitta matchningar i dessa tabeller, det vill säga sådana värden och , att . Varje match motsvarar en uppsättning nycklar som uppfyller villkoret.

Denna attack krävde kryptering-dekrypteringsoperationer (endast dubbelt så många som för uppräkning av en nyckel) och minne. Ytterligare optimeringar - användning av hashtabeller , beräkningar för endast hälften av nycklarna (för DES kräver en uttömmande sökning faktiskt bara operationer) - kan minska dessa krav. Huvudresultatet av attacken är att tvånycklars sekventiell kryptering endast fördubblar brute-force-tiden.

Allmän lösning

Låt oss beteckna transformationen av algoritmen som , var är klartexten och är chiffertexten. Det kan representeras som en komposition , där  är en cyklisk transformation på tangenten . Varje nyckel är en binär längdvektor och systemets publika nyckel är en längdvektor .

Fyller minnet

Alla värden sorteras bort , det vill säga de första cykliska nycklarna. På varje sådan nyckel krypterar vi klartexten  - (det vill säga vi går igenom krypteringscykler istället för ). Vi kommer att betrakta det som en viss minnesadress och skriva värdet till denna adress . Det är nödvändigt att iterera över alla värden .

Nyckeldefinition

Allt möjligt är utsorterat . På de mottagna nycklarna är chiffertexten dekrypterad  - . Om adressen inte är tom får vi nyckeln därifrån och får en nyckelkandidat .

Det bör dock noteras att den första kandidaten som tas emot inte nödvändigtvis är den sanna nyckeln. Ja, för data och , men på andra värden i klartextchiffertexten som erhålls från den sanna nyckeln, kan jämlikhet kränkas. Allt beror på kryptosystemets specifika egenskaper . Men ibland räcker det med att få en sådan "pseudo-ekvivalent" nyckel. Annars kommer en viss uppsättning nycklar att erhållas efter att procedurerna har slutförts , bland vilka är den sanna nyckeln.

Om vi ​​överväger en specifik applikation kan chiffertexten och klartexten vara stora (till exempel grafiska filer) och representera ett tillräckligt stort antal block för ett blockchiffer . I det här fallet, för att påskynda processen, kan du kryptera och dekryptera inte hela texten, utan bara dess första block (vilket är mycket snabbare) och sedan, efter att ha fått många kandidater, leta efter den sanna nyckeln i den, kontrollera den på de återstående blocken.

Attackera genom att dela upp tangentsekvensen i 3 delar

I vissa fall kan det vara svårt att separera bitarna i en nyckelsekvens i delar relaterade till olika nycklar. I det här fallet används MITM-attackalgoritmen med 3 delmängder som föreslagits av Bogdanov och Richberger 2011 baserat på den vanliga metoden att mötas i mitten. Denna algoritm är tillämpbar när det inte är möjligt att dela upp nyckelbitsekvenserna i två oberoende delar. Den består av två faser: utvinning och verifiering av nycklar [2] .

Nyckelextraktionsfas

I början av denna fas delas chifferen upp i 2 subchiffer och , som i det allmänna fallet med attacken, tillåter dock möjlig användning av vissa bitar av en subcipher i en annan. Så, om , då ; i det här fallet kommer bitarna av nyckeln som används i att betecknas med , och i  — med . Sedan kan tangentsekvensen delas in i 3 delar:

  1.  är skärningspunkten mellan uppsättningarna och ,
  2.  - nyckelbitar som bara finns i ,
  3.  - nyckelbitar som bara finns i .

Därefter utförs en attack med metoden att mötas i mitten enligt följande algoritm:

  1. Beräkna det mellanliggande värdet , där  är klartexten, och  är några nyckelbitar från och , det vill säga  är resultatet av den mellanliggande krypteringen av klartexten på nyckeln .
  2. Beräkna det mellanliggande värdet , där  är den privata texten, och  är några nyckelbitar från och , det vill säga  är resultatet av den mellanliggande dekrypteringen av den privata texten på nyckeln .
  3. Jämför och . Vid match får vi en kandidat till nycklarna.

Nyckelvalideringsfas

För att kontrollera nycklarna kontrolleras de mottagna kandidaterna mot flera par kända offentlig-privata texter. Vanligtvis krävs inte ett särskilt stort antal sådana textpar för verifiering [2] .

Exempel

Som ett exempel, låt oss ta en attack på KTANTAN-chifferfamiljen [3] , som gjorde det möjligt att minska beräkningskomplexiteten för att erhålla en nyckel från (brute force attack) till [1] .

Förbereder en attack

Var och en av de 254 omgångarna av kryptering med KTANTAN använder 2 slumpmässiga bitar av nyckeln från en 80-bitars uppsättning. Detta gör att komplexiteten hos algoritmen endast beror på antalet omgångar. I början av attacken märkte författarna följande funktioner:

  • I omgångarna 1 till 111 användes inte följande nyckelbitar: .
  • I omgångarna 131 till 254 användes inte följande nyckelbitar: .

Detta gjorde det möjligt att dela upp nyckelbitarna i följande grupper:

  1.  - Vanliga nyckelbitar: de 68 bitarna som inte nämns ovan.
  2.  - bitar som endast används i det första blocket av omgångar (från 1 till 111),
  3.  - bitar som endast används i det andra blocket av omgångar (från 131 till 254).
Fas ett: Nyckelextraktion

Det fanns ett problem med att beräkna värdena för och beskrivna ovan , eftersom omgångar från 112 till 130 saknas i övervägandet, men sedan utfördes en partiell jämförelse : författarna till attacken märkte en matchning på 8 bitar in och , kontrollera dem med en normal attack med hjälp av mötet i mitten-metoden vid omgång 127. I detta avseende, i denna fas, jämfördes värdena av dessa 8 bitar i underchiffrorna och . Detta ökade antalet nyckelkandidater, men inte beräkningskomplexiteten.

Andra fasen: verifiering av nycklar

För att testa nyckelkandidater för KTANTAN32-algoritmen tog det i genomsnitt ytterligare två offentlig-privata textpar för att extrahera nyckeln.

Resultat
  • KTANTAN32: Nyckelgissning beräkningskomplexitet reducerad till att använda tre offentlig-privata textpar.
  • KTANTAN48: Nyckelgissning beräkningskomplexitet reducerad till att använda två offentlig-privata textpar.
  • KTANTAN64: Nyckelgissning beräkningskomplexitet reducerad till att använda två offentlig-privata textpar.

Detta är dock inte den bästa attacken mot chifferfamiljen KTANTAN. 2011 gjordes en attack [4] som reducerade algoritmens beräkningskomplexitet till att använda fyra öppet-stängda textpar.

Attack mot en komplett tvådelad graf

Den fullständiga tvådelade grafattacken används för att öka antalet proxyattackförsök genom att bygga en hel tvådelad graf . Föreslog av Diffie och Hellman 1977.

Multivariat algoritm

Den flerdimensionella möte-i-mitt-algoritmen används när man använder ett stort antal krypteringscykler med olika nycklar på blockchiffer . Istället för det vanliga "mötet i mitten" använder denna algoritm uppdelningen av kryptotexten med flera mellanliggande punkter [5] .

Det antas att den attackerade texten krypteras ett visst antal gånger med ett blockchiffer:

Algoritm

  • Beräknad:
  lagras tillsammans med d .   lagras tillsammans med d .
  • Beräkna för varje möjligt mellantillstånd :
  för varje matchning med ett element från till och lagras .   sparas med i .
  • Beräkna för varje möjligt mellantillstånd :
  för varje matchning med ett element från , kontrolleras en matchning med , varefter och lagras i .   sparas med i .
  • Beräkna för varje möjligt mellantillstånd :
  och för varje matchning med ett element från , kontrolleras en matchning med , varefter och lagras i .   och för varje match med , en match med

Därefter testas den hittade sekvensen av kandidater på ett annat par offentlig-privat text för att bekräfta nycklarnas giltighet. Det bör noteras att algoritmen är rekursiv: valet av nycklar för staten baseras på resultaten för staten . Detta introducerar ett element av exponentiell komplexitet i denna algoritm [5] .

Svårighet

Tidskomplexiteten för denna attack är

På tal om minnesanvändning är det lätt att se att allt eftersom varje ökar , införs fler och fler begränsningar, vilket minskar antalet kandidater som skrivs till den. Detta betyder mycket mindre .

Den övre gränsen för mängden minne som används:

var  är nyckelns totala längd.

Komplexiteten i att använda data beror på sannolikheten att "passera" en falsk nyckel. Denna sannolikhet är lika med , där  är längden på det första mellantillståndet, som oftast är lika med blockstorleken. Med tanke på antalet nyckelkandidater efter den första fasen är komplexiteten .

Som ett resultat får vi , var  är blockstorleken.

Varje gång en kandidatnyckelsekvens testas på ett nytt offentligt-privat textpar, multipliceras antalet nycklar som klarar testet med sannolikheten att klara nyckeln, vilket är .

En del av brute-force-attacken (kontroll av nycklar mot nya offentlig-privata textpar) har tidskomplexitet , där efterföljande termer uppenbarligen tenderar att nollställas snabbare och snabbare.

Som ett resultat är datakomplexiteten genom liknande bedömningar begränsad till ungefär offentlig-privata nyckelpar.

Anteckningar

  1. 12 Diffie , Whitfield; Hellman, Martin E. Exhaustive Cryptanalysis of the NBS Data Encryption Standard  (engelska)  // Computer : journal. - 1977. - Juni ( vol. 10 , nr 6 ). - S. 74-84 . - doi : 10.1109/CM.1977.217750 . Arkiverad från originalet den 14 maj 2009.
  2. 1 2 Andrey Bogdanov och Christian Rechberger. "A 3-Subset Meet-in-the-Middle Attack: Cryptanalysis of the Lightweight Block Cipher KTANTAN" Arkiverad 7 november 2018 på Wayback Machine
  3. Christophe De Cannière, Orr Dunkelman, Miroslav Knežević. "KATAN & KTANTAN - A Family of Small and Efficient Hardware-Oriented Block Chiphers" Arkiverad 20 april 2018 på Wayback Machine
  4. Lei Wei, Christian Rechberger, Jian Guo, Hongjun Wu, Huaxiong Wang och San Ling. "Förbättrad Meet-in-the-Middle Cryptanalysis of KTANTAN" Arkiverad 7 november 2018 på Wayback Machine
  5. 1 2 3 Zhu, Bo; Guang Gong. MD-MITM Attack och dess tillämpningar på GOST, KTANTAN och Hummingbird-2  (engelska)  // eCrypt : journal. — 2011.

Litteratur