Output Feedback (OFB)-tilstand er en af flere driftsformer for blok-ciffer, som gør det muligt at bruge en blok-ciffer på en måde, der giver fortrolighed ved at konvertere den til en stream-ciffer. Denne tilstand er især bemærkelsesværdig for dens evne til at generere keystreams, hvilket gør den til en egnet kandidat til visse kryptografiske applikationer, der kræver en stream-chiffer.
I OFB-tilstand involverer krypteringsprocessen gentagne gange at anvende blokchifferens krypteringsfunktion på en initialværdi, typisk kendt som initialiseringsvektoren (IV). Denne IV er vigtig for at sikre, at den samme almindelige tekst, der er krypteret med den samme nøgle, ikke producerer den samme chiffertekst, hvilket giver semantisk sikkerhed. IV'en transformeres gennem krypteringsfunktionen, og outputtet af denne transformation fungerer som den nøglestrøm, der XOReds med klarteksten for at producere chifferteksten. Denne proces kan beskrives i følgende trin:
1. Initialisering: Start med en IV, som er en blok af samme størrelse som blokchifferens blokstørrelse.
2. Kryptering: Krypter IV'en ved hjælp af blokchifferet og den hemmelige nøgle for at producere den første nøglestrømsblok.
3. Keystream Generation: Outputtet fra den forrige krypteringsoperation føres tilbage til blokchifferet for at producere den næste nøglestrømsblok.
4. XOR-drift: Hver keystream-blok XOR-behandles med en blok af klartekst for at producere den tilsvarende blok med chiffertekst.
Denne sekvens af operationer kan matematisk repræsenteres som følger:
– Lad angiv blokkrypteringsfunktionen med nøgle
.
– Lad være initialiseringsvektoren.
– Lad Vær den
-th blok af klartekst.
– Lad Vær den
-th blok af chiffertekst.
– Lad Vær den
-th blok af nøglestrømmen.
Operationerne er:
1.
2. forum
3.
Her, angiver den bitvise XOR-operation. Denne proces fortsætter for hver blok af almindelig tekst, og genererer en tilsvarende blok af chiffertekst.
En af de primære fordele ved OFB-tilstand er, at den konverterer blokchifferet til en synkron stream-ciffer. Dette betyder, at nøglestrømmen er uafhængig af klarteksten og chifferteksten, idet den udelukkende er afhængig af IV og den hemmelige nøgle. Denne egenskab er fordelagtig, fordi den giver mulighed for forudberegning af nøglestrømmen, hvilket muliggør hurtigere krypterings- og dekrypteringsprocesser, især i miljøer, hvor lav latenstid er kritisk.
Desuden, da nøglestrømsgenereringen i OFB-tilstand ikke afhænger af klarteksten, udbreder fejl i chifferteksten sig ikke ud over den fejlagtige blok. Denne egenskab er vigtig for applikationer, hvor fejludbredelse kan føre til væsentlige problemer, såsom i realtidskommunikationssystemer.
Der er dog nogle overvejelser og potentielle ulemper ved brug af OFB-tilstand:
1. IV Genbrug: Genbrug af den samme IV med den samme nøgle til forskellige meddelelser kan føre til sikkerhedssårbarheder. Hvis IV genbruges, vil nøglestrømmen være den samme for begge meddelelser, og XORing af de tilsvarende chiffertekster vil annullere nøglestrømmen, hvilket afslører XOR for klarteksterne. Dette kan føre til gendannelsesangreb i almindelig tekst. Derfor er det vigtigt at bruge en unik IV for hver krypteringsoperation.
2. Synkronisering: Da OFB-tilstand fungerer som en synkron stream-chiffer, skal både afsender og modtager synkroniseres. Hvis en blok går tabt eller beskadiges under transmissionen, kan den desynkronisere nøglestrømsgenereringen, hvilket fører til forkert dekryptering af efterfølgende blokke.
3. gennemløb: Gennemløbet af OFB-tilstand er begrænset af blokchifferens krypteringshastighed, da hver nøglestrømsblok kræver en krypteringsoperation. Dette kan være en begrænsende faktor i high-throughput applikationer.
På trods af disse overvejelser forbliver OFB-tilstand et værdifuldt værktøj til at generere nøglestrømme i kryptografiske applikationer. Det er især nyttigt i scenarier, hvor almindelig tekst-længde ikke er et multiplum af blokstørrelsen, da det undgår behovet for udfyldning, i modsætning til andre blokchiffer-tilstande såsom CBC (Cipher Block Chaining).
For at illustrere brugen af OFB-tilstand som en keystream-generator, overvej følgende eksempel:
– Antag, at vi har en blokchiffer med en blokstørrelse på 128 bit, og vi bruger en IV på 128 bit.
– Lad klarteksten være "Hej, verden!" som, når den konverteres til binær, er 96 bit lang.
– Klarteksten er opdelt i blokke på 128 bit (med polstring om nødvendigt).
Antag, at IV er og den hemmelige nøgle er
.
1. Initialisering:
-
2. Keystream Generation:
-
-
3. Kryptering:
– Lad være den første 128-bit blok i klarteksten (inklusive polstring).
-
– Lad være den anden 128-bit blok af klarteksten (hvis nogen).
-
Chiffertekstblokkene og
sendes eller gemmes derefter.
Til dekryptering bruger modtageren den samme IV og nøgle til at regenerere nøglestrømmen og udfører XOR-operationen med chiffertekstblokkene for at gendanne klarteksten.
OFB-tilstand er en alsidig og effektiv metode til at generere nøglestrømme i kryptografiske applikationer. Det udnytter styrkerne ved blokcifre, samtidig med at det giver fleksibiliteten og effektiviteten af stream-cifre. Korrekt styring af IV'er og synkronisering er afgørende for at opretholde sikkerheden og integriteten af de krypterede data.
Andre seneste spørgsmål og svar vedr Anvendelser af blokkoder:
- Hvad bør en blokchiffer indeholde ifølge Shannon?
- Afhænger sikkerheden af blokchiffere af at kombinere forvirrings- og diffusionsoperationer mange gange?
- Betyder diffusion, at enkelte bits af krypteret tekst er påvirket af mange bits af klartekst?
- Opdeler ECB-tilstanden store input-klartekst i efterfølgende blokke
- Kan vi bruge en blokchiffer til at bygge en hash-funktion eller MAC?
- Kan en indskrivning være deterministisk?
- Hvad er driftsformer?
- Hvad gør ECB-tilstanden ved simple blokcifre
- Kan PSRNG laves med blokcifre?
- Kan en MAC bygges med blokcifre?
Se flere spørgsmål og svar i Applications of block ciphers