Blockkrypteringens funktionsformer

Advertisements

I det här kapitlet kommer vi att diskutera de olika funktionsformerna för en blockkryptering. Detta är procedurregler för ett generiskt blockchiffer. Intressant nog resulterar de olika lägena i att man uppnår olika egenskaper som ökar säkerheten hos det underliggande blockchiffret.

Ett blockchiffer behandlar datablock av fast storlek. Vanligtvis är storleken på ett meddelande större än blockstorleken. Därför delas det långa meddelandet upp i en serie sekventiella meddelandeblock och chiffret behandlar dessa block ett i taget.

Electronic Code Book (ECB) Mode

Detta läge är ett mycket okomplicerat sätt att behandla en serie sekventiellt uppräknade meddelandeblock.

Operation

  • Användaren tar det första blocket klartext och krypterar det med nyckeln för att producera det första blocket chiffertext.

  • Han tar sedan det andra blocket med klartext och följer samma process med samma nyckel och så vidare och så vidare.

E ECB-läget är deterministiskt, det vill säga om klartextblock P1, P2,…, Pm krypteras två gånger med samma nyckel kommer de utgående chiffertextblocken att vara desamma.

För en given nyckel kan vi i själva verket tekniskt sett skapa en kodbok med chiffertexter för alla möjliga klartextblock. Kryptering skulle då bara innebära att man letar upp den önskade klartexten och väljer motsvarande chiffertext. Operationen är alltså analog med tilldelningen av kodord i en kodbok och får därför ett officiellt namn – Electronic Codebook mode of operation (ECB). Det illustreras på följande sätt –

Analys av ECB-läget

I verkligheten har alla tillämpningsdata vanligtvis partiell information som kan gissas. Till exempel kan löneintervallet gissas. En chiffertext från ECB kan göra det möjligt för en angripare att gissa klartexten genom trial-and-error om klartextmeddelandet ligger inom förutsägbara gränser.

Till exempel om en chiffertext från ECB-läget är känd för att kryptera en lönesumma, kommer ett litet antal försök att göra det möjligt för en angripare att återskapa summan. I allmänhet vill vi inte använda ett deterministiskt chiffer och därför bör ECB-läget inte användas i de flesta tillämpningar.

Cipher Block Chaining (CBC) Mode

CBC-läget ger meddelandeberoende för att generera chiffertexter och gör systemet icke-deterministiskt.

Operation

Operationen för CBC-läget visas i följande illustration. Stegen är följande –

  • Lad in den n-bits initialiseringsvektorn (IV) i det översta registret.

  • XOR det n-bits klartextblocket med datavärdet i det översta registret.

  • Kryptera resultatet av XOR-operationen med det underliggande blockchiffret med nyckel K.

  • För in chiffertextblocket i det översta registret och fortsätt operationen tills alla klartextblock har behandlats.

  • För dekryptering XOReras IV-data med det första dekrypterade chiffertextblocket. Det första chiffertextblocket matas också in i till register som ersätter IV för dekryptering av nästa chiffertextblock.

Analys av CBC-läget

I CBC-läget läggs det aktuella klartextblocket till det föregående chiffertextblocket, och sedan krypteras resultatet med nyckeln. Dekryptering är alltså den omvända processen, vilket innebär att den aktuella chiffertexten dekrypteras och att det tidigare chiffertextblocket sedan läggs till resultatet.

Fördelen med CBC jämfört med ECB är att en ändring av IV resulterar i olika chiffertext för ett identiskt meddelande. Nackdelen är att felet i överföringen sprids till ytterligare några block under dekrypteringen på grund av kedjeeffekten.

Det är värt att nämna att CBC-läget ligger till grund för en välkänd mekanism för autentisering av dataursprung. Det har således en fördel för de tillämpningar som kräver både symmetrisk kryptering och autentisering av dataursprung.

Cipher Feedback (CFB) Mode

I det här läget ”återkopplas” varje chiffertextblock till krypteringsprocessen för att kryptera nästa klartextblock.

Förfarande

Förfarandet för CFB-läget beskrivs i följande illustration. I det nuvarande systemet har till exempel ett meddelandeblock en storlek ”s” bitar där 1 < s < n. CFB-läget kräver en initialiseringsvektor (IV) som det inledande slumpmässiga n-bits ingångsblocket. IV behöver inte vara hemlig. Följande steg i operationen används –

  • Lad IV i det översta registret.

  • Kryptera datavärdet i det översta registret med det underliggande blockchiffret med nyckeln K.

  • Ta endast ”s” antal mest signifikanta bitar (vänstra bitar) av utdata från krypteringsprocessen och XOR dem med ”s” bitar av det klara textmeddelandeblocket för att generera ett chiffertextblock.

  • För in chiffertextblocket i det översta registret genom att förflytta redan närvarande data till vänster och fortsätt operationen tills alla klartextblock har behandlats.

  • I huvudsak krypteras det föregående chiffertextblocket med nyckeln, och sedan XOR-ordnas resultatet till det aktuella klartextblocket.

  • Samma steg följs för dekryptering. I förväg bestämd IV laddas initialt i början av dekrypteringen.

Analys av CFB-läget

CFB-läget skiljer sig avsevärt från ECB-läget, chiffertexten som motsvarar ett visst klartextblock beror inte bara på det klartextblocket och nyckeln, utan även på det föregående chiffertextblocket. Med andra ord är chiffertextblocket beroende av meddelandet.

CFB har en mycket märklig egenskap. I detta läge dekrypterar användaren chiffertexten med hjälp av enbart blockchifferns krypteringsprocess. Dekrypteringsalgoritmen för det underliggande blockchiffret används aldrig.

Tydligen omvandlar CFB-läget ett blockchiffer till en typ av strömchiffer. Krypteringsalgoritmen används som en nyckelströmsgenerator för att producera en nyckelström som placeras i bottenregistret. Denna nyckelström XOReras sedan med klartexten som i fallet med stream cipher.

Då CFB-läget omvandlar ett blockchiffer till ett stream cipher, ger CFB-läget några av de fördelaktiga egenskaperna hos ett stream cipher samtidigt som man behåller de fördelaktiga egenskaperna hos ett blockchiffer.

På andra sidan fortplantas överföringsfelet på grund av att blocken byts ut.

Output Feedback (OFB) Mode

Det innebär att de successiva utgångsblocken från det underliggande blockchiffret matas tillbaka till det. Dessa återkopplingsblock ger bitsträngar till krypteringsalgoritmen som fungerar som nyckelflödesgenerator som vid CFB-läge.

Nyckelflödet som genereras XOR-as med klartextblocken. OFB-läget kräver en IV som det första slumpmässiga n-bits inmatningsblocket. IV:n behöver inte vara hemlig.

Förfarandet visas i följande illustration –

Counter (CTR) Mode

Det kan betraktas som en counterbaserad version av CFB-läget utan återkoppling. I detta läge måste både sändare och mottagare ha tillgång till en tillförlitlig räknare, som beräknar ett nytt delat värde varje gång ett chiffertextblock utbyts. Denna delade räknare är inte nödvändigtvis ett hemligt värde, men utmaningen är att båda sidor måste hålla räknaren synkroniserad.

Operation

Både kryptering och dekryptering i CTR-läge avbildas i följande illustration. Stegen i operationen är –

  • Lad in det initiala räknarvärdet i det översta registret är detsamma för både sändaren och mottagaren. Det spelar samma roll som IV i CFB- (och CBC-) läge.

  • Kryptera innehållet i räknaren med nyckeln och placera resultatet i det nedre registret.

  • Ta det första klartextblocket P1 och XOR detta till innehållet i det nedre registret. Resultatet av detta är C1. Skicka C1 till mottagaren och uppdatera räknaren. Uppdateringen av räknaren ersätter återkopplingen av chiffertexten i CFB-läge.

  • Fortsätt på detta sätt tills det sista klartextblocket har krypterats.

  • Dekrypteringen är den omvända processen. Chiffertextblocket XOR-ordnas med utgången av det krypterade innehållet i räknarvärdet. Efter dekryptering av varje chiffertextblock uppdateras räknaren på samma sätt som vid kryptering.

Analys av Counter Mode

Det har inget meddelandeberoende och därmed är ett chiffertextblock inte beroende av de tidigare klartextblocken.

Likt CFB-läget involverar inte CTR-läget någon dekrypteringsprocess av blockchiffret. Detta beror på att CTR-läget egentligen använder blockchiffret för att generera en nyckelström som krypteras med hjälp av XOR-funktionen. Med andra ord omvandlar CTR-läget också ett blockchiffer till ett strömchiffer.

Den allvarliga nackdelen med CTR-läget är att det kräver en synkron räknare hos sändare och mottagare. Förlust av synkronisering leder till felaktig återvinning av klartext.

Hursomhelst har CTR-läget nästan alla fördelar med CFB-läget. Dessutom sprider det inga överföringsfel alls.

Advertisements

Lämna ett svar

Din e-postadress kommer inte publiceras.