Block Cipher Modes of Operation

Advertisements

I dette kapitel vil vi diskutere de forskellige funktionsmåder for en blokchiffer. Der er tale om procedureregler for en generisk blokchiffer. Interessant nok resulterer de forskellige tilstande i, at der opnås forskellige egenskaber, som øger sikkerheden i den underliggende blokchiffer.

En blokchiffer behandler datablokke af fast størrelse. Normalt er størrelsen af en meddelelse større end blokstørrelsen. Derfor opdeles den lange meddelelse i en række sekventielle meddelelsesblokke, og krypteringen behandler disse blokke en ad gangen.

Electronic Code Book (ECB)-tilstand

Denne tilstand er en meget enkel måde at behandle en række sekventielt opregnede meddelelsesblokke på.

Operation

  • Brugeren tager den første blok af klartekst og krypterer den med nøglen for at fremstille den første blok af ciffertekst.

  • Derpå tager han den anden blok af klartekst og følger den samme proces med samme nøgle og så videre og så videre.

Den ECB-tilstand er deterministisk, dvs. hvis klartekstblokken P1, P2, …, Pm krypteres to gange med den samme nøgle, vil de udførte ciffertekstblokke være de samme.

Faktisk set kan vi for en given nøgle teknisk set oprette en kodebog med ciffertekster for alle mulige klartekstblokke. Kryptering vil så kun indebære, at man skal søge efter den ønskede klartekst og vælge den tilsvarende ciffertekst. Operationen svarer således til tildelingen af kodeord i en kodebog og får derfor et officielt navn – Electronic Codebook mode of operation (ECB). Den illustreres som følger –

Analyse af ECB-tilstand

I virkeligheden indeholder alle applikationsdata normalt delvise oplysninger, som kan gættes. F.eks. kan lønintervallet gættes. En ciffertekst fra ECB kan give en angriber mulighed for at gætte klarteksten ved trial-and-error, hvis klartekstmeddelelsen er inden for forudsigelige.

Til eksempel, hvis en ciffertekst fra ECB-tilstanden er kendt for at kryptere et løntal, vil et lille antal forsøg give en angriber mulighed for at genfinde tallet. Generelt ønsker vi ikke at bruge en deterministisk ciffer, og derfor bør ECB-tilstanden ikke anvendes i de fleste applikationer.

Cipher Block Chaining (CBC)-tilstand

CBC-tilstand giver beskedafhængighed til generering af ciffertekst og gør systemet ikke-deterministisk.

Operation

Driften af CBC-tilstand er afbildet i følgende illustration. Trinene er som følger –

  • Lad den n-bits initialiseringsvektor (IV) i det øverste register.

  • XOR den n-bits klartekstblok med dataværdien i det øverste register.

  • Krypter resultatet af XOR-operationen med den underliggende blokchiffer med nøglen K.

  • Før ciffertekstblokken ind i det øverste register, og fortsæt operationen, indtil alle klartekstblokke er behandlet.

  • For dekryptering XOR-opereres IV-data med den første dekrypterede ciffertekstblok. Den første ciffertekstblok føres også ind i registeret og erstatter IV til dekryptering af den næste ciffertekstblok.

Analyse af CBC-tilstand

I CBC-tilstand tilføjes den aktuelle klartekstblok til den foregående ciffertekstblok, og derefter krypteres resultatet med nøglen. Dekryptering er således den omvendte proces, som indebærer dekryptering af den aktuelle ciffertekst og derefter tilføjelse af den tidligere ciffertekstblok til resultatet.

Fordelen ved CBC i forhold til ECB er, at ændring af IV resulterer i forskellig ciffertekst for identisk meddelelse. Ulempen er, at fejlen i overførslen bliver spredt til yderligere få blokke under dekrypteringen på grund af kædeeffekten.

Det er værd at nævne, at CBC-modus danner grundlaget for en velkendt mekanisme til autentificering af dataoprindelse. Den har således en fordel for de applikationer, der kræver både symmetrisk kryptering og dataoprindelsesgodkendelse.

Cipher Feedback (CFB)-tilstand

I denne tilstand bliver hver enkelt ciphertext-blok “ført tilbage” til krypteringsprocessen med henblik på at kryptere den næste klartekstblok.

Funktion

Funktionen af CFB-tilstand er vist i følgende illustration. I det nuværende system har en meddelelsesblok f.eks. en størrelse “s” bit, hvor 1 < s < n. CFB-tilstanden kræver en initialiseringsvektor (IV) som den indledende tilfældige n-bit inputblok. IV’en behøver ikke at være hemmelig. Operationens trin er –

  • Lad IV’en i det øverste register.

  • Krypter dataværdien i det øverste register med den underliggende blokcifring med nøgle K.

  • Tag kun ‘s’ antal mest betydningsfulde bits (venstre bits) af output af krypteringsprocessen og XOR dem med ‘s’ bit klartekstmeddelelsesblok for at generere ciffertekstblok.

  • Før ciffertekstblokken ind i det øverste register ved at flytte allerede tilstedeværende data til venstre, og fortsæt operationen, indtil alle klartekstblokke er behandlet.

  • Den foregående ciffertekstblok krypteres med nøglen, og derefter XOR-ordnes resultatet med den aktuelle klartekstblok.

  • Samme trin følges ved dekryptering. Forudbestemt IV indlæses indledningsvis ved starten af dekrypteringen.

Analyse af CFB-tilstand

CFB-tilstand adskiller sig væsentligt fra ECB-tilstand, idet den ciffertekst, der svarer til en given klartekstblok, ikke kun afhænger af denne klartekstblok og nøglen, men også af den foregående ciffertekstblok. Med andre ord er ciffertekstblokken afhængig af meddelelsen.

CFB har en meget mærkelig egenskab. I denne tilstand dekrypterer brugeren cipherteksten udelukkende ved hjælp af blokchifferens krypteringsproces. Dekrypteringsalgoritmen for den underliggende blokchiffer anvendes aldrig.

Det ser ud til, at CFB-tilstanden konverterer en blokchiffer til en type stream cipher. Krypteringsalgoritmen anvendes som en key-stream-generator til at producere key-stream, der placeres i det nederste register. Denne nøgle-stream XOR’er derefter med klarteksten som i tilfælde af stream cipher.

Gennem at konvertere en block cipher til en stream cipher giver CFB-tilstand nogle af de fordelagtige egenskaber ved en stream cipher, samtidig med at den bevarer de fordelagtige egenskaber ved en block cipher.

På den anden side bliver overførselsfejlen spredt på grund af ændring af blokkene.

Output Feedback (OFB) Mode

Det indebærer, at de successive outputblokke fra den underliggende blokciffer sendes tilbage til den. Disse feedback-blokke giver en række bits til at fodre krypteringsalgoritmen, der fungerer som generator for nøglestrømmen som i CFB-tilstand.

Den genererede nøglestrøm XOR-es med de klare tekstblokke. OFB-tilstanden kræver en IV som den indledende tilfældige n-bit inputblok. IV’en behøver ikke nødvendigvis at være hemmelig.

Driften er afbildet i følgende illustration –

Counter (CTR) Mode

Den kan betragtes som en tællerbaseret version af CFB-mode uden feedback. I denne tilstand skal både afsender og modtager have adgang til en pålidelig tæller, som beregner en ny fælles værdi, hver gang der udveksles en ciffertekstblok. Denne fælles tæller er ikke nødvendigvis en hemmelig værdi, men udfordringen er, at begge sider skal holde tælleren synkroniseret.

Operation

Både kryptering og dekryptering i CTR-tilstand er afbildet i følgende illustration. Trinene i operationen er –

  • Lad den indledende tællerværdi i det øverste register er den samme for både afsender og modtager. Den spiller samme rolle som IV’en i CFB- (og CBC-) tilstand.

  • Krypter indholdet af tælleren med nøglen og placer resultatet i det nederste register.

  • Tag den første klartekstblok P1 og XOR denne til indholdet i det nederste register. Resultatet af dette er C1. Send C1 til modtageren, og opdater tælleren. Tælleropdateringen erstatter ciphertext-feedback i CFB-tilstand.

  • Fortsæt på denne måde, indtil den sidste klartekstblok er blevet krypteret.

  • Dekrypteringen er den omvendte proces. Ciphertext-blokken XOR’eres med output af det krypterede indhold af tællerværdien. Efter dekryptering af hver enkelt ciffertekstblok opdateres tælleren som ved kryptering.

Analyse af Counter Mode

Den har ikke beskedafhængighed, og derfor afhænger en ciffertekstblok ikke af de tidligere klartekstblokke.

Lige CFB-tilstand involverer CTR-tilstand ikke dekrypteringsprocessen i blokchifringen. Dette skyldes, at CTR-tilstanden i virkeligheden bruger blokchifringen til at generere en nøgle-stream, som krypteres ved hjælp af XOR-funktionen. Med andre ord konverterer CTR-tilstand også en blokchiffer til en strømchiffer.

Den alvorlige ulempe ved CTR-tilstand er, at den kræver en synkron tæller hos afsender og modtager. Tab af synkronisering fører til ukorrekt genindvinding af klartekst.

Den CTR-tilstand har imidlertid næsten alle fordelene ved CFB-tilstand. Desuden forplanter den slet ikke fejl i transmissionen.

Anbefalinger

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.