En stream [1] [2] eller stream cipher [3] er en symmetrisk chiffer , hvor hvert almindeligt teksttegn konverteres til et chifferteksttegn, afhængigt ikke kun af den anvendte nøgle, men også af dens placering i klartekststrømmen. En stream cipher implementerer en anden tilgang til symmetrisk kryptering end blok ciphers .
Strømchiffer baseret på shift registre blev aktivt brugt i krigsårene, længe før elektronikkens fremkomst. De var nemme at designe og implementere.
I 1965 udviklede Ernst Selmer, den norske regerings chefkryptograf, skifteregistersekvensteorien . Senere skrev Solomon Golomb , en matematiker fra US National Security Agency , en bog kaldet "Shift Register Sequences", hvori han skitserede sine vigtigste resultater på dette område, såvel som Selmers.
Claude Shannon 's arbejde , udgivet i 1949, bragte stor popularitet til stream-cifre , hvor Shannon beviste den absolutte sikkerhed af Vernam-cifferet (også kendt som engangsblokken). I Vernam-chifferet har nøglen en længde svarende til længden af selve den transmitterede meddelelse. Nøglen bruges som en gamma , og hvis hver bit af nøglen er valgt tilfældigt, så er det umuligt at bryde chifferen (da alle mulige klartekster vil være lige sandsynlige). Til dato er der skabt et stort antal strømkrypteringsalgoritmer , såsom: A3 , A5 , A8 , MUGI , PIKE , RC4 , SEAL .
Den enkleste implementering af strømchifferet er vist i figuren. Gammageneratoren producerer en nøglestrøm (gamma) : . Lad os betegne plaintext bitstream som . Derefter opnås chiffertekstbitstrømmen ved at anvende XOR -operationen : hvor .
Dekryptering udføres af XOR-operationen mellem den samme gamma og chifferteksten: .
Det er klart, hvis sekvensen af gammabit ikke har nogen periode og er valgt tilfældigt, så er det umuligt at bryde chifferen. Men denne krypteringstilstand har også negative funktioner. Nøgler, der i længden kan sammenlignes med de transmitterede meddelelser, er således vanskelige at bruge i praksis. Derfor bruges normalt en mindre nøglelængde (f.eks. 128 bit). Ved at bruge den genereres en pseudo-tilfældig spillesekvens (den skal opfylde Golomb-postulaterne ). Naturligvis kan pseudo-tilfældigheden af gamma udnyttes i et angreb på en stream cipher.
Antag for eksempel, at i gamma-tilstanden for stream-cifre, blev et tegn i chifferteksten forvrænget under transmission over en kommunikationskanal . I dette tilfælde vil naturligvis alle tegn modtaget uden forvrængning blive afkodet korrekt. Kun ét tegn i teksten vil gå tabt. Og lad os nu forestille os, at en af tegnene i chifferteksten gik tabt under transmissionen over kommunikationskanalen. Dette vil føre til forkert afkodning af al tekst efter det tabte tegn.
Stort set alle datatransmissionskanaler til streamingkrypteringssystemer indeholder interferens . Derfor, for at forhindre tab af information, er problemet med at synkronisere kryptering og dekryptering af teksten løst. Ifølge metoden til at løse dette problem er chiffersystemer opdelt i synkrone og selvsynkroniserende systemer.
Definition:
Synchronous stream ciphers (SPC'er) er ciphers, hvori en strøm af nøgler genereres uafhængigt af almindelig tekst og chiffertekst.
Når den er krypteret, producerer nøglestrømsgeneratoren nøglestrømsbits, der er identiske med nøglestrømsbittene, når de dekrypteres. Tab af chifferteksttegnet vil få de to generatorer til at gå ud af synkronisering, hvilket gør det umuligt at dekryptere resten af beskeden. I denne situation skal afsender og modtager naturligvis synkroniseres igen for at fortsætte med at arbejde.
Synkronisering udføres normalt ved at indsætte specielle markører i den transmitterede besked. Som følge heraf fører et tegn, der mistes under transmissionen, kun til forkert dekryptering, indtil et af tokens modtages.
Bemærk, at synkronisering skal udføres på en sådan måde, at ingen del af nøglestrømmen gentages. Derfor giver det ikke mening at overføre generatoren til en tidligere tilstand.
Fordele ved SPS:
Ulemper ved SPS:
Den grundlæggende idé om byggeri blev patenteret i 1946 i USA .
Definition:
Selvsynkroniserende strømcifre (asynchronous stream ciphers (ATS)) er ciphers, hvori nøglestrømmen skabes af en funktion af nøglen og et fast antal chifferteksttegn.
Så den interne tilstand af nøglestrømsgeneratoren er en funktion af de foregående N bits af chifferteksten. Derfor bliver den dekrypterende nøglestrømsgenerator, der har modtaget N bit, automatisk synkroniseret med krypteringsgeneratoren.
Implementeringen af denne tilstand er som følger: hver meddelelse begynder med en tilfældig header med længden N bits; headeren er krypteret, transmitteret og dekrypteret; afkodningen er forkert, men efter disse N bit vil begge generatorer blive synkroniseret.
Fordele ved APS:
Ulemper ved APS:
Der er flere grunde til at bruge lineære skiftregistre i kryptografi:
Definition: Et lineært tilbagekoblingsskiftregister med længden L består af L nummererede celler , som hver er i stand til at lagre 1 bit og har én indgang og én udgang; og et kloksignal , som styrer forskydningen af dataene. I løbet af hver tidsenhed udføres følgende operationer:
På det første trin:
På det andet trin:
Følgende relation beskriver LFSR's funktion i generelle vendinger:
Hvis vi skriver bits lig med nul i alle celler, vil systemet generere en sekvens bestående af alle nuller. Hvis vi skriver ikke-nul bit, får vi en semi-uendelig sekvens. Rækkefølgen bestemmes af koefficienterne
Lad os se, hvad perioden for et sådant system kan være:
Antal ikke-nul fyldninger: Derfor ,.
Efter forekomsten af en fyldning, som var før, begynder processen at gentage sig. Processen med at udfylde registret, som vist ovenfor, er repræsenteret ved en lineær differensligning. Lad os overføre alle vilkårene til en del af ligheden, vi får: .
Lad os udpege: . Derefter:
En vigtig egenskab ved dette polynomium er reducerbarhed.
Definition: Et
polynomium kaldes reducerbart , hvis det kan repræsenteres som et produkt af to polynomier af mindre grader med koefficienter fra et givet felt (i vores tilfælde med binære koefficienter). Hvis en sådan repræsentation ikke finder sted, så siges polynomiet at være irreducerbart .
Hvis polynomiet er irreducerbart og primitivt , så vil perioden være den samme som den maksimalt mulige periode, lig med
Eksempel:
Tag et irreducerbart primitivt polynomium Dette polynomium kan skrives som - de grader, hvor der er koefficienter, der ikke er nul, skrives.
Vi skriver i den oprindelige tilstand i cellerne og bestemmer længden af generatorens periode:
Feedback | Celle0 | Celle 1 | celle 2 |
en | 0 | 0 | en |
0 | en | 0 | 0 |
en | 0 | en | 0 |
en | en | 0 | en |
en | en | en | 0 |
0 | en | en | en |
0 | 0 | en | en |
en | 0 | 0 | en |
Generatorens periode er Generatorens output vil være sekvensen:
Lad os give eksempler på nogle primitive polynomier modulo 2:
Den lineære kompleksitet af en binær sekvens er en af de vigtigste egenskaber ved LFSR-operationen. Derfor dvæler vi mere detaljeret ved dette emne.
Før vi definerer lineær kompleksitet, introducerer vi noget notation. - en uendelig sekvens med medlemmer - en endelig sekvens af længde , hvis medlemmer er LFSR
siges at generere en sekvens, hvis der er en begyndelsestilstand, hvor LFSR output sekvensen falder sammen med . På samme måde siges LFSR at generere en endelig sekvens, hvis der er en starttilstand, for hvilken LFSR-outputsekvensen har medlemmerne af sekvensen som sine første led .
Til sidst giver vi en definition af den lineære kompleksitet af en uendelig binær sekvens. Definition: Den lineære kompleksitet af en uendelig binær sekvens er tallet , som er defineret som følger:
Definition: Den
lineære kompleksitet af en finit binær sekvens er tallet , som er lig med længden af den korteste LFSR, der genererer en sekvens, der har som første led . Lineære kompleksitetsegenskaber:
Lad og være binære sekvenser. Så:
1. For enhver lineær kompleksitet af undersekvensen opfylder ulighederne
2. hvis og kun hvis er en nulsekvens af længde .
3. hvis og kun hvis .
4. Hvis er periodisk med en periode , så
5. En
effektiv algoritme til at bestemme den lineære kompleksitet af en endelig binær sekvens er Berlekamp-Massey-algoritmen .
Desværre er LFSR-outputsekvensen let forudsigelig. Så ved at kende 2L-tegn i outputsekvensen er det nemt at finde den indledende udfyldning af registeret ved at løse et system af lineære ligninger (se afsnittet "Strømchiffer baseret på skifteregistre med lineær feedback").
Det antages, at til kryptografisk brug skal LFSR-outputsekvensen have følgende egenskaber:
Der er flere metoder til at designe nøglestrømsgeneratorer, der ødelægger de lineære egenskaber af LFSR og derved gør sådanne systemer kryptografisk mere sikre:
1. ved hjælp af en ikke-lineær funktion , der kombinerer output fra flere LFSR'er
2. ved hjælp af en ikke-lineær filtreringsfunktion for indholdet af hver celle i en enkelt LFSR
3. ved at bruge outputtet fra en LFSR til at styre kloksignalet for en (eller flere) LFSR.
Det er kendt, at hver boolsk funktion kan skrives som en modulo 2 sum af produkter af rækkefølger af uafhængige variable , . Dette udtryk kaldes den algebraiske normalform af funktionen . Den ikke-lineære rækkefølge af en funktion er den maksimale rækkefølge af led i notationen af dens algebraiske normalform.
For eksempel har en boolsk funktion en ikke-lineær rækkefølge på 3. Den maksimalt mulige ikke-lineære rækkefølge af en boolsk funktion er lig med antallet af variable
Antag nu, at vi har lineære feedback-skifteregistre, at deres længder er parvis forskellige og større end to. Alle registre er kombineret med en ikke-lineær funktion , som vist på figuren. Funktionen er repræsenteret i algebraisk normalform. Så er den lineære kompleksitet af nøglestrømmen .
Hvis er parvise coprime tal, så er længden af perioden for nøglestrømmen lig med: . For eksempel, hvis , så . Og længden af perioden for nøglestrømmen er .
Eksempel (Geff-generator):
Denne generator bruger tre LFSR'er kombineret på en ikke-lineær måde. Længderne af disse registre er parvise primtal.
Den ikke-lineære funktion for en given generator kan skrives som følger:
Periodens længde:
Lineær kompleksitet:
Geff-generatoren er kryptografisk svag, fordi information om tilstandene for LFSR 1- og LFSR 3-generatorerne er indeholdt i dens udgangssekvens. For at forstå dette, lad os betegne de -th outputbits af henholdsvis LFSR 1,2,3 og nøglestrømmen . Derefter korrelationssandsynligheden for sekvensen i forhold til sekvensen :
Tilsvarende,
af denne grund, på trods af den lange periode og ret høje lineære kompleksitet, egner Geff-generatoren sig til korrelationsangreb.
Outputtet fra hver celle føres til input fra en eller anden ikke-lineær boolesk filtreringsfunktion . Antag, at filtreringsfunktionen er i orden , så er den lineære kompleksitet af nøglestrømmen højst .
I ikke-lineære kombinationer af oscillatorer og ikke-lineære filteroscillatorer styres databevægelse i alle LFSR'er af et enkelt kloksignal.
Hovedideen med driften af den type generatorer, der overvejes, er at indføre ikke-linearitet i driften af nøglestrømsgeneratorer baseret på LFSR ved at styre clocksignalet fra et register ved hjælp af outputsekvensen fra et andet.
Der er 2 typer oscillatorer baseret på clock kontrol:
1. variabel tonehøjde
oscillator 2. kompression oscillator.
Hovedidé:
LFSR 1 bruges til at styre bevægelsen af bits af de to andre LFSRs 2 og 3.
Driftsalgoritme:
1. LFSR 1-registret synkroniseres af et eksternt clock-signal
2. Hvis udgangen af LFSR 1-registret er én , så forsynes LFSR 2-registret med et clock-signal, og LFSR 3 gentager sin forrige outputbit (for den indledende tid tages den forrige LFSR 3-outputbit lig med 0 )
3. Hvis outputtet fra LFSR 1-registret er nul , tilføres et kloksignal til LFSR 3-registret, og LFSR 2 gentager sit tidligere output bit (for den indledende tid tages den foregående LFSR 2-outputbit også lig med 0)
4. Udgangsbitsekvensen for generatoren med et variabelt trin er resultatet af at anvende den bitvise XOR -operation på outputsekvenserne af LFSR 2'en og LFSR 3 registre.
Forøgelse af sikkerheden for generatorer med variabel pitch:
LFSR 1 kontrolregisteret bruges til at styre LFSR 2 output. Algoritme:
Kompressionsgeneratoren er enkel, skalerbar og har gode sikkerhedsegenskaber. Dens ulempe er, at nøglegenereringsraten ikke vil være konstant, medmindre der tages nogle forholdsregler.
For at øge sikkerheden for kompressionsgeneratoren:
De fleste eksisterende hemmelige nøglecifre kan entydigt klassificeres som enten stream-cifre eller blok-cifre . Men den teoretiske grænse mellem dem er ret udvisket. For eksempel bruges blokkrypteringsalgoritmer i strømkrypteringstilstand (eksempel: for DES -algoritme, CFB- og OFB -tilstande ).
Overvej de vigtigste forskelle mellem strøm- og blokcifre, ikke kun med hensyn til deres sikkerhed og bekvemmelighed, men også med hensyn til deres undersøgelse i verden:
Nu om verdens tilstand:
Ifølge Rainer Rueppel er der fire hovedtilgange til streaming af chifferdesign:
Reiner Rüppels teoretiske kriterier for design af in-line systemer:
Indtil videre har disse kriterier ikke vist sig at være nødvendige eller tilstrækkelige for sikkerheden af et streaming-krypteringssystem. Det er også værd at bemærke, at hvis kryptanalytikeren har ubegrænset tid og computerkraft, så er den eneste realiserbare stream-chiffer, der er sikker mod en sådan modstander, engangspuden.
Alle metoder til kryptoanalyse af stream-cifre er normalt opdelt i magt (angreb "brute force"), statistisk og analytisk.
Denne klasse inkluderer angreb, der udfører en komplet opregning af alle mulige muligheder. Kompleksiteten af en udtømmende søgning afhænger af antallet af alle mulige løsninger på problemet (især størrelsen af nøglerummet eller klartekstrummet). Denne klasse af angreb er anvendelig til alle slags strømkrypteringssystemer. Ved udvikling af krypteringssystemer stræber udviklere efter at gøre denne type angreb til den mest effektive i sammenligning med andre eksisterende metoder til hacking.
Statistiske angreb falder i to underklasser:
Begge metoder bruger princippet om lineær kompleksitet.
Denne type angreb betragtes ud fra den antagelse, at kryptanalytikeren kender beskrivelsen af generatoren, den offentlige tekst og den tilhørende private tekst. Kryptanalytikerens opgave er at bestemme den anvendte nøgle (den indledende udfyldning af registrene). Typer af analytiske angreb, der anvendes på synkrone stream-cifre:
De er de mest almindelige angreb til at bryde stream-cifre.
Det er kendt, at arbejdet med at åbne kryptosystemet kan reduceres betydeligt, hvis den ikke-lineære funktion videregiver information om de interne komponenter i generatoren til outputtet. For at genoprette den indledende udfyldning af registre undersøger korrelationsangreb derfor korrelationen af chiffersystemets outputsekvens med outputsekvensen af registre.
Der er følgende underklasser af korrelationsangreb:
Lad os betragte eksemplet med Siegenthalers grundlæggende korrelationsangreb ("split og åben"), som er baseret på konceptet om Hamming-afstanden mellem to binære sekvenser af samme længde. Gælder for at kombinere generatorer.
For at afsløre indflydelsen af det j-te lineære skifteregister (med udgangssekvensen {x (j) } på chifferen gamma {g} , modelleres en del af generatoren som en binær symmetrisk kanal (BSC). Angrebsalgoritmen består af to faser (nogle gange kaldet faser ):
Hvis sammenligningen lykkes, kaldes fasen sand, og overgangen til det næste register sker . Ellers kaldes fasen ugyldig og gå til . Outputværdierne for denne algoritme er de tilstande , der bidrager med information til gamma.
Nu lidt om valget af tærskelværdien og antallet af gammabits, der er nødvendige for vellykket kryptoanalyse :
For eksempel valgte vi , hvor er længden af registret. Og så finder vi ud fra disse forhold og .
Angreb baseret på paritetstjek med lav vægtEt eksempel på denne underklasse af angreb er Mayers og Staffelbachs hurtige korrelationsangreb. Den er anvendelig til både filtergeneratorer og kombinationsgeneratorer og er grundlaget for alle andre hurtige korrelationsangreb af denne type. Ideen om angrebet er baseret på brugen af paritetskontrolligninger for et lineært registerfeedbackpolynomium .
Hurtige korrelationsangrebHurtige korrelationsangreb forstås som angreb, hvis beregningsmæssige kompleksitet er meget mindre end den beregningsmæssige kompleksitet af magtangreb.
Denne type angreb reducerer problemet med afkodning i en binær symmetrisk kanal til et problem med kryptoanalyse og er modelleret som afkodning af en tilfældig lineær kode. I lighed med grundlæggende korrelationsangreb bruger denne underklasse begrebet Hamming-afstand .
Formålet med dette angreb er at genoprette den oprindelige tilstand af skifteregisteret (finde nøglen) ved hjælp af et kendt enhedsskema og et fragment af krypteringssekvensen. Kompleksiteten af angrebet afhænger af størrelsen af chifferen og længden af det opsnappede gamma.
Består af to faser:
Eksempler på denne klasse af angreb er Steve Babbage-angrebet og Biryukov-Shamir-angrebet.
"Antag og bestem"Angrebet er baseret på den antagelse, at kryptoanalytikeren kender gamma, feedbackpolynomiet, antallet af registerskift mellem kredsløbsoutput og filtreringsfunktionen. Består af tre faser:
Algoritmens kompleksitet afhænger af generatorens enhed og antallet af antagelser.
Symmetriske kryptosystemer | |
---|---|
Stream-cifre | |
Feistel netværk | |
SP netværk | |
Andet |