VAKNA

WAKE ( engelsk  W ord A uto Key Encryption , kryptering av ord på en automatisk nyckel ) är en strömkrypteringsalgoritm på en automatisk nyckel utvecklad av David Wheeler 1993. Det designades ursprungligen som ett medelhögt krypteringssystem (hastighet i strömchiffer mäts i cykler per byte av krypterad klartext ) block (den minsta mängd information som kan bearbetas av algoritmen; i detta fall är blocket 32 ​​bitar ), med hög säkerhet. Enligt författaren är det en enkel snabb krypteringsalgoritm som lämpar sig för att behandla stora mängder data, samt korta meddelanden, där endast den hemliga nyckeln ändras . Lämplig för att använda hash på hemliga nycklar som används vid verifiering . Ett exempel på en möjlig praktisk användning av denna algoritm är kryptering av en textdataström i SMS . På grund av den stora blockstorleken kan den inte användas i realtidskommunikation [1] [2] [3] [4] [5] .

Egenskaper

Algoritmen fungerar i CFB-läge  - det föregående ordet i den krypterade sekvensen fungerar som grund för att generera nästa. Det finns dock algoritmändringar relaterade till att ändra nyckelgenereringsprocessen och tillåta att arbeta i OFB och ROFB (Omvänd OFB) lägen [6] . Chiffergamman använder 32 -bitars ord och längden på startnyckeln är 128 bitar [ 1] . Algoritmen använder även ersättningsboxen S-box , som består av 256 32-bitars ord. Fyra variabler används i arbetet, register bör användas som sådana för bättre prestation . Arbetet förlitar sig på återanvändning av tabeller i cachen och närvaron av ett stort tillståndsutrymme . Det betyder att datacachen ska rymma en tabell med 256 ord utan problem [2] .

Algoritmen är tillräckligt snabb - på 32-bitars processorer i VLIW - arkitekturen är den uppskattade prestandan 6,38 cykler per byte, vilket överstiger SEAL- algoritmens , men är sämre än RC4 (3,5 respektive 10,6 cykler per byte) [3 ] .

Chifferet lämpar sig för kryptoanalys, nämligen attacker mot den valda klartexten och den valda chiffertexten [7] .

Algoritmstruktur

Algoritmen är baserad på kaskad användning av blandningsfunktionen ( är ett  bitvis konjunktionstecken , [7])logiskär, bitskiftningenoperationXORbitvisen är Dessutom är orden i -blocket sammansatta på ett sådant sätt att uppsättningen av höga bytes av dessa ord är en permutation från 0 till 255 (de första byten av varje ord är unika), medan de återstående 3 byten fylls i slumpmässigt [ 8] . Blandningsfunktionen görs reversibel utifrån sådana överväganden att kunskap om ett av orden vid ingången och ordet vid utgången kommer att räcka för att återställa det andra okända vid ingången [9] .

WAKE består av fyra steg i funktionen med återkoppling för varje och ytterligare en för hela gruppen av steg. Denna mängd väljs som minsta möjliga för fullständig diffusion .av data i ett ord (det vill säga när åtminstone en bit av nyckeln ändras, ändras resultatet av krypteringsalgoritmen helt), på grund av det faktum att -blocket utför en icke-linjär transformation , och användningen av en bitvis "OCH" och exklusivt "ELLER" introducerar också en liten icke-linjäritet [2] .

Beskrivning av algoritmen

Krypteringsprocessen sker i tre steg [1] :

  1. S-box generation process;
  2. Autonyckelgenereringsprocess;
  3. Direkt kryptering och dekryptering.

S-box generationsprocess

Först och främst initieras de första värdena i -blocket (ersättningstabellen) med en hemlig nyckel. Ett exempel på algoritmen för att fylla denna tabell ges [1] :

  1. Initiera en hjälptabell som består av 8 ord med en permutation av de tre första bitarna:
  2. Kopiera nyckeln i de första 4 orden på ett sådant sätt att: , där  är resultatet av att dela upp nyckeln i fyra lika delar.
  3. Forma de återstående orden i en cykel :
  4. Utför summering: . Så även de första orden kommer att bero på alla bitar .
  5. Definiera hjälpvariabler:
  6. Utför en permutation i den första byten av orden i tabellen:
  7. Initiera följande variabler:
  8. Blanda orden i :

Konstruktionsmetoden kan enkelt modifieras och ovanstående algoritm är bara ett exempel. Huvudsaken är att resultatet av algoritmen har alla egenskaper som presenteras på grund av kryptografisk styrka hos -blocket . Så, till exempel, kan du fylla tabellen med ord med slumpmässiga siffror , men i det här fallet läcker information om de upprepade och nollposterna i tabellen , som inte överstiger 1,5 bitar för varje post. Men skaparen av algoritmen hävdar att processen med permutation på de höga byten av ord avsevärt hjälper till att minska läckaget. Och permutationen på alla fyra byte nivåer ytterligare sannolikheten för att läsa tabellen. Fyllningsalgoritmen ovan är alltså en kompromiss mellan säkerhet och hastighet, eftersom det är blockordens höga byte som permuteras i den [10] .

Autonyckelgenereringsprocess

Generering utförs enligt blockschemat för algoritmen [7] :

  1. Först måste du initiera registervärdena med en nyckel (eventuellt annorlunda): är ansvariga för samma uppdelning av nyckeln i lika delar.
  2. Orden i nyckelsekvensen beräknas enligt följande:
  3. Nästa ord i nyckelsekvensen bestäms av värdet på extremregistret:

Nyckeln bör ändras när det finns en stor vanlig text (nyckelbytesperioden är cirka 10 000 ord - i det här fallet saktar algoritmen ner med cirka 2-3%) [11] .

Kryptering och dekryptering

Båda metoderna är gamifiering av klartext (eller chiffertext) med en nyckelsekvens. Kryptering och dekryptering utförs enligt formeln [12] :

, var  är ett ord i klartext eller chiffertext, beroende på om kryptering eller dekryptering utförs.

Användning

Det finns en hel del sätt att använda detta chiffer, men författaren formulerar bara tre huvudmetoder [13] :

  1. Komplettera den krypterade datan med två ord i båda ändar och sedan fylla alla bitar av dessa ord med samma slumpmässiga värden. Således kommer avkodaren att kunna känna igen när det är nödvändigt att använda nästa nyckel i nyckelsekvensen för att framgångsrikt dekryptera meddelandet;
  2. Ändra startnyckeln för varje nytt datablock;
  3. Kryptering av de sista fyra orden i klartexten, ytterligare gamifiering med startnyckeln för hela sekvensen, och gör detsamma i omvänd ordning med en annan startnyckel. Den här metoden kan också innebära att man använder någon vanlig privat nyckelhashfunktion som har samma startnyckel och ersättningstabell för att generera en hash på 128 bitar . Denna hash blandas med de första fyra orden i klartexten, i själva verket sker ytterligare kryptering på samma sätt som tidigare. Så varje nytt meddelande bildar ett nytt resultat vid utgången av algoritmen. Dessutom, i fallet med användning av en hash-funktion, ökas exekveringshastigheten med cirka 5 gånger jämfört med den konventionella metoden. Metoden är bra eftersom den lämpar sig väl för korta meddelanden, där den upprepade beräkningen av ersättningstabellen avsevärt minskar applikationens effektivitet. Så att använda samma ersättningsbord är ett rimligt drag.

Arbetsexempel

Ett exempel på hur denna krypteringsalgoritm fungerar presenteras enligt följande [1] :

  1. Starta nyckelinitiering : "legitosinarhusni". I hexadecimal , kommer det att se ut så här:
  2. Det är nödvändigt att dela upp nyckeln i fyra lika delar och initiera startvärdena för registren:
  3. Beräkning av nästa ord i nyckelsekvensen ( -blocket har redan genererats baserat på den tillgängliga startnyckeln):  - en ny nyckel.
  4. Låt sedan "ROBBI RAHIM" tas som klartext. I HEX-representationen skulle detta vara . Det är nödvändigt att gamifiera denna numeriska sekvens med nyckeln:
Nej.Oformaterad karaktärASCII-kodGammaprocessASCII-resultatUtgångssymbol
ettR5252 XOR C290
2O4F4F XOR 5D12_( ex. symbol )
3B4242 XOR 0341A
fyraB4242 XOR 3072r
5I4949 XOR C28B
6SPACEtjugo20 XOR 5D7D}
7R5252 XOR 0351Q
åttaA4141 XOR 3071q
9H4848 XOR C28AŠ
tioI4949 XOR 5Dfjorton_(ex. tecken)
elvaM4D4D XOR 034EN

Så den krypterade sekvensen av ord är "•_Ar‹}QqŠ_N".

Kryptanalys

Strömkrypteringsalgoritmen är mottaglig för dekryptering genom attackerden valda klartexten och den valda chiffertexten [7] . I fallet med den första varianten av attacken görs ett försök att återställa ersättningstabellen genom att sortera genom klartextalternativen vid ingången, den andra är valet av chiffertexten för att exakt bestämma samma okända värden för - blockera. Det är känt att beräkningskomplexiteten för en matchad klartextattack är ungefär eller beroende på den valda modifieringen av attacken (i det första fallet används fler varianter av klartexten). Beräkningskomplexiteten för en brute-force attack är ungefär , det vill säga den relativa effektiviteten av en matchad klartext attack är uppenbar [14] . En annan fördel med attacken som föreslås i denna artikel [15] är att den inte är beroende av nykodning [16] . Algoritmerna med vilka kryptoanalys utförs blir dock omöjliga om ordlängden ( bitar, där ) ökas. Således kan de förbättras avsevärt i framtiden [17] [15] .

Dessutom kan en kontinuerlig förändring av data på valfri plats i krypteringsalgoritmen under drift äventyra ersättningstabellen. Om -blocket redan är känt, krävs endast 5 par ord med ren chiffertext för att korrekt bestämma registervärdena [11] .

Anteckningar

  1. 1 2 3 4 5 Legito, Robbi Rahim .
  2. 1 2 3 Wheeler, 1993-12-09 , sid. 127.
  3. 1 2 Craig, 1997-01-20 , sid. 276.
  4. Wheeler, 1993-12-09 , sid. 132.
  5. Hui-Mei Chao , sid. 2.
  6. Craig, 1997-01-20 , sid. 279.
  7. 1 2 3 4 Schneier, 1996 , sid. 336.
  8. Shamkin, 2006 , sid. 64.
  9. Craig, 1997-01-20 , sid. 278.
  10. Wheeler, 1993-12-09 , sid. 129.
  11. 12 Wheeler, 1993-12-09 , sid. 130.
  12. Pudovkina, 2001-01-01 , sid. 2.
  13. Wheeler, 1993-12-09 , sid. 131.
  14. Pudovkina, 2001-01-01 , sid. 7.
  15. 1 2 Pudovkina, 2001-01-01 .
  16. Pudovkina, 2001-01-01 , sid. 2.7.
  17. Pudovkina, 2001-01-01 , sid. 1.7.

Litteratur

Böcker

Artiklar