Feistel-netværk: Byggesten i moderne chiffere
Forstå Feistel-strukturen, der ligger til grund for DES og mange moderne blokchifre.
Feistel-netværk: Byggesten i moderne chiffere er en gratis Cryptology Academy-lektion på CoddyKit. Dette er lektion 4 af 4. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i Cryptology Academy, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Cryptology Academy-kurset indeholder 4 lektioner i alt.
Horst Feistels indsigt hos IBM
I begyndelsen af 1970'erne arbejdede Horst Feistel hos IBM Research med Lucifer-chifferet, da han fik en grundlæggende indsigt: Du kan konstruere et inverterbart chiffer ved hjælp af en ikke-inverterbar rundefunktion.
Det var revolutionerende, fordi det er vanskeligt at designe inverterbare funktioner, der samtidig er sikre. Feistels konstruktion omgår helt dette krav og gør det muligt at bruge vilkårligt komplekse, envejs rundefunktioner.
Opdel-og-bland-strukturen
I et Feistel-chiffer opdeles inddatablokken i to lige store halvdele: L (venstre) og R (højre). Hver runde anvender rundefunktionen F på R, XOR'er resultatet med L og bytter derefter halvdelene.
Efter n runder samles de to halvdele igen til chifferteksten. Bytningen sikrer, at begge halvdele behandles i skiftende runder, så de blandes grundigt.
Rundefunktionen F
Rundefunktionen F i et Feistel-netværk tager den højre halvdel og rundens undernøgle som inddata og producerer et resultat, der XOR'es med den venstre halvdel. Det afgørende er, at F ikke behøver at være inverterbar.
F kan være vilkårligt kompleks: enhver kombination af substitutioner, permutationer, XOR-operationer og modulær aritmetik. Jo mere kompleks og ikke-lineær F er, desto stærkere er chifferet, fordi dekrypteringen aldrig behøver at invertere F.
Sådan fungerer Feistel-dekryptering
Dekryptering i et Feistel-chiffer bruger præcis den samme struktur som kryptering, men anvender rundens undernøgler i omvendt rækkefølge. Det er muligt, fordi XOR er sin egen inverse: hvis A XOR B = C, så er C XOR B = A.
Da dekrypteringen aldrig kalder F^-1 (den inverse af F), kan rundefunktionen være en irreversibel hashfunktion, en opslagstabel eller en vilkårligt kompleks operation uden at påvirke chifferets inverterbarhed.
Hvorfor Feistel-netværk let kan inverteres
Feistel-netværkenes matematiske elegance er, at XOR-strukturen garanterer inverterbarhed uanset hvad F gør. Selv hvis F er en envejsfunktion som SHA-256, forbliver det samlede Feistel-chiffer inverterbart.
Det gør Feistel-chiffere ekstremt fleksible. Kryptografer kan udelukkende fokusere på at gøre F så forvirrende og diffunderende som muligt, fordi de ved, at inverterbarheden håndteres af selve netværksstrukturen.
DES som et 16-runders Feistel-chiffer
Data Encryption Standard (DES), der blev offentliggjort i 1977, er et 16-runders Feistel-chiffer, som arbejder på 64-bit-blokke med en 56-bit-nøgle. Hver runde bruger en forskellig 48-bit-undernøgle, der er afledt af hovednøglen.
Rundefunktionen i DES omfatter en udvidelsespermutation, XOR med undernøglen, otte S-bokse, der tilfører ikke-linearitet, og en P-boks-permutation. Kombinationen giver både forvirring og diffusion som krævet af Shannons principper for chifferdesign.
Blowfish og Twofish
Blowfish, der blev designet af Bruce Schneier i 1993, er et Feistel-chiffer med variabel nøglelængde på 32-448 bit og 16 runder. Det bruger nøgleafhængige S-bokse, hvilket gør forudberegnede angreb upraktiske.
Twofish, der var finalist i AES-konkurrencen, videreudvikler idéer fra Blowfish med 128-bit-blokke og 16 runder. Ingen af dem er blevet knækket, og de bruges i anvendelser som bcrypt-adgangskodehashing, der benytter en ændret version af Blowfish.
Balanceret og ubalanceret Feistel
Et balanceret Feistel-chiffer opdeler blokken i to lige store halvdele. Et ubalanceret Feistel-chiffer bruger ulige store halvdele, f.eks. en opdeling på 3/4 og 1/4.
Ubalancerede Feistel-netværk kan give sikkerhedsfordele i bestemte sammenhænge og bruges i nogle specialiserede chiffere. CAST-familien af chiffere bruger en balanceret 64-bit-Feistel-struktur.
Luby-Rackoff-sætningen
I 1988 beviste Michael Luby og Charles Rackoff, at et 3-runders Feistel-netværk med pseudotilfældige rundefunktioner er en sikker pseudotilfældig permutation (PRP), og at en version med 4 runder er en stærk PRP.
Dette teoretiske resultat gav Feistel-netværk et solidt grundlag for beviselig sikkerhed, ikke blot erfaringsbaseret tillid. Det bekræftede, at selve Feistel-strukturen bidrager til sikkerheden ud over rundefunktionen alene.
Feistel kontra SPN: Hvorfor AES bruger SPN
Substitutions-permutationsnetværket (SPN), der bruges af AES, anvender substitution og permutation på hele blokken på én gang i stedet for på halvdelen af blokken pr. runde. Det giver hurtigere diffusion.
AES opnår fuld diffusion på blot 4 runder, mens DES' Feistel-struktur kræver flere runder for at opnå en tilsvarende diffusion. AES' SPN passer også bedre til moderne processorarkitekturer med SIMD-instruktioner.
Sikkerhedsbeviser og modellen med tilfældigt orakel
Luby-Rackoff-sætningen betragter rundefunktionen F som en virkelig tilfældig funktion. I praksis er F en pseudotilfældig funktion, det vil sige et nøglebaseret chiffer eller en hashfunktion, og ikke et ægte tilfældigt orakel.
Denne kløft mellem teoretiske beviser og praktiske implementationer er et tilbagevendende tema i kryptografi. Beviser giver tillid, men bygger på idealiserede modeller. Sikkerheden i den virkelige verden afhænger også af sikre implementationer uden sårbarheder over for sidekanalangreb.
Quiz om Feistel-strukturen
Test din forståelse af designet af Feistel-netværk.
Vigtigste pointer: Feistel-netværk
Feistel-netværk er strukturer for blokchiffere, som bruger en rundefunktion, der ikke behøver at være inverterbar. Dekryptering fungerer ved at køre den samme struktur baglæns med undernøglerne i omvendt rækkefølge.
DES, Blowfish og Twofish er alle Feistel-chiffere. Luby-Rackoff-sætningen giver teoretiske sikkerhedsgarantier. AES bruger i stedet en SPN-struktur, som giver bedre diffusion pr. runde.
Lær Cryptology Academy med en AI-underviser — gratis
Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.
- Kurser
- 67
- Lektioner
- 261
Ofte stillede spørgsmål
Er lektionen “Feistel-netværk: Byggesten i moderne chiffere” gratis?
Ja — hele teksten til “Feistel-netværk: Byggesten i moderne chiffere” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af Cryptology Academy-kurset, skal du opgradere til CoddyKit PRO. Cryptology Academy-kurset indeholder 4 lektioner i alt.
Hvad lærer jeg i “Feistel-netværk: Byggesten i moderne chiffere”?
Forstå Feistel-strukturen, der ligger til grund for DES og mange moderne blokchifre. Du øver dig i Cryptology Academy med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.
Skal jeg have erfaring for at begynde på Cryptology Academy?
Der kræves ingen tidligere erfaring. Cryptology Academy på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 4 af 4.
Hvor lang tid tager lektionen “Feistel-netværk: Byggesten i moderne chiffere”?
De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.
Kan jeg skrive og køre kode i denne Cryptology Academy-lektion?
Ja. Alle Cryptology Academy-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.
Alle lektioner i dette kursus
- Playfair-chifferet
- ADFGVX og fraktionering
- Beaufort- og running key-chifre
- Feistel-netværk: Byggesten i moderne chiffere