Bloker chiffer - Block cipher

I kryptografi er en blokchiffer en deterministisk algoritme, der fungerer på grupper af bits med fast længde , kaldet blokke . De er specificerede elementære komponenter i designet af mange kryptografiske protokoller og bruges i vid udstrækning til at implementere kryptering af store datamængder, herunder dataudvekslingsprotokoller. Det bruger blokke som en uændret transformation.

Selv en sikker blokchiffer er egnet til kryptering af kun en enkelt blok af data ad gangen ved hjælp af en fast nøgle. En lang række driftsmåder er designet til at muliggøre gentagen brug på en sikker måde for at nå sikkerhedsmålene fortrolighed og ægthed . Blokchiffer kan imidlertid også fungere som byggesten i andre kryptografiske protokoller, såsom universelle hashfunktioner og pseudotilfældige talgeneratorer.

Definition

En blok cipher består af to parrede algoritmer , en for kryptering, E , og den anden til dekryptering, D . Begge algoritmer accepterer to input: en inputblok med størrelse n bits og en nøgle med størrelse k bits; og begge giver en n -bit outputblok. Dekrypteringsalgoritmen D er defineret til at være den inverse funktion af kryptering, dvs. D = E −1 . Mere formelt er en blokchiffer specificeret af en krypteringsfunktion

som tager som input en nøgle K med bitlængde k (kaldet nøglestørrelsen ) og en bit streng P med længden n (kaldet blokstørrelsen ) og returnerer en streng C med n bits. P kaldes klartekst , og C betegnes chiffertekst . For hvert K skal funktionen E K ( P ) være en inverterbar kortlægning på {0,1} n . Inversen for E er defineret som en funktion

tager en nøgle K og en chiffertekst C for at returnere en klartekstværdi P , sådan at

For eksempel kan en blokkrypteringsalgoritme tage en 128-bit blok med ren tekst som input og udsende en tilsvarende 128-bit blok af chiffertekst. Den nøjagtige transformation styres ved hjælp af et andet input - den hemmelige nøgle. Dekryptering ligner hinanden: dekrypteringsalgoritmen tager i dette eksempel en 128-bit blok af chiffertekst sammen med den hemmelige nøgle og giver den originale 128-bit blok med ren tekst.

For hver nøgle K er E K en permutation (en bijektiv kortlægning) over sættet af inputblokke. Hver nøgle vælger en permutation fra sættet af mulige permutationer.

Historie

Det moderne design af blokchiffer er baseret på konceptet med en itereret produktciffer . I sin heftige publikation fra 1949, Communication Theory of Secrecy Systems , analyserede Claude Shannon produktcifre og foreslog dem som et middel til effektivt at forbedre sikkerheden ved at kombinere simple operationer som substitutioner og permutationer . Itererede produktcifre udfører kryptering i flere runder, som hver bruger en anden undernøgle, der stammer fra den originale nøgle. En udbredt implementering af sådanne cifre, opkaldt et Feistel -netværk efter Horst Feistel , er især implementeret i DES -chifferet. Mange andre erkendelser af blokchiffer, såsom AES , er klassificeret som substitutions -permutationsnetværk .

Roden til alle kryptografiske blokformater, der bruges inden for Payment Card Industry Data Security Standard (PCI DSS) og American National Standards Institute (ANSI) standarder, ligger hos Atalla Key Block (AKB), som var en vigtig innovation i Atalla Box , første hardware -sikkerhedsmodul (HSM). Det blev udviklet i 1972 af Mohamed M. Atalla , grundlægger af Atalla Corporation (nu Utimaco Atalla ), og udgivet i 1973. AKB var en nøgleblok, som er nødvendig for sikkert at udveksle symmetriske nøgler eller PIN -koder med andre aktører i bankindustrien . Denne sikre udveksling udføres ved hjælp af AKB -formatet. Atalla Box beskyttede over 90% af alle ATM -netværk i drift fra 1998, og Atalla -produkter sikrer stadig størstedelen af ​​verdens ATM -transaktioner fra 2014.

Offentliggørelsen af ​​DES -chifferet af United States National Bureau of Standards (efterfølgende US National Institute of Standards and Technology , NIST) i 1977 var grundlæggende i den offentlige forståelse af moderne blokchifferdesign. Det påvirkede også den akademiske udvikling af kryptanalytiske angreb . Både differential og lineær kryptanalyse opstod ud fra undersøgelser af DES -designet. Fra 2016 er der en palet af angrebsteknikker, som en blokchiffer skal være sikker på, udover at være robust mod brutale kraftangreb .

Design

Itererede blokchiffer

Fleste blok cipher algoritmer er klassificeret som itererede blok ciphers som betyder, at de omdanner fast størrelse blokke af klartekst i identisk størrelse blokke af ciffertekst via gentagen anvendelse af en invertibel transformation kendt som den runde funktion , med hver iteration benævnt en rund .

Sædvanligvis runde funktion R antager forskellige runde taster K i som anden indgang, som er afledt af den oprindelige nøgle:

hvor er klarteksten og chifferteksten, hvor r er antallet af runder.

Ofte bruges nøgleblegning ud over dette. I begyndelsen og slutningen ændres dataene med nøglemateriale (ofte med XOR , men enkle aritmetiske operationer som tilføjelse og subtraktion bruges også):

I betragtning af en af ​​de standardiserede itererede blokchifferdesignordninger er det ret let at konstruere en blokciffer, der er kryptografisk sikker, simpelthen ved at bruge et stort antal runder. Dette vil imidlertid gøre chifferen ineffektiv. Således er effektivitet det vigtigste yderligere designkriterium for professionelle chiffer. Endvidere er en god blokchiffer designet til at undgå sidekanalangreb, såsom forudsigelse af grene og inputafhængige hukommelsesadgange, der kan lække hemmelige data via cachetilstanden eller udførelsestiden. Derudover bør krypteringen være kortfattet til små hardware- og softwareimplementeringer. Endelig skal chifferen let kunne kryptoanalyseres, således at det kan vises, hvor mange runder chifferet skal reduceres til, så de eksisterende kryptografiske angreb ville fungere - og omvendt, at det kan vises, at antallet af faktiske runder er stor nok til at beskytte mod dem.

Substitution -permutation netværk

Image
En skitse af et substitutions -permutationsnetværk med 3 runder, der krypterer en klartekstblok på 16 bit til en chiffertekstblok med 16 bit. S-boksene er S i , P-boksene er de samme P , og de runde taster er K i .

En vigtig type itereret blokchiffer, kendt som et substitutionspermutationsnetværk (SPN), tager en blok af klarteksten og nøglen som input og anvender flere skiftende runder bestående af et substitutionstrin efterfulgt af et permutationstrin - for at producere hver blok af ciphertext output. Det ikke-lineære substitutionstrin blander nøglebitene med klartekstens, hvilket skaber Shannons forvirring . Det lineære permutationstrin spreder derefter afskedigelser og skaber diffusion .

En substitutionsboks (S-boks) erstatter en lille blok inputbits med en anden blok outputbits. Denne substitution skal være en-til-en for at sikre inverterbarhed (derfor dekryptering). En sikker S-boks vil have den egenskab, at ændring af en inputbit i gennemsnit vil ændre omkring halvdelen af ​​outputbitene og udvise det, der er kendt som lavineeffekten- det har den egenskab, at hver output bit vil afhænge af hver input bit.

En permutationsboks (P-boks) er en permutation af alle bitene: den tager output fra alle S-bokse i en runde, permuterer bitene og indfører dem i S-bokse i den næste runde. En god P-boks har den egenskab, at udgangsbitene på enhver S-boks distribueres til så mange S-boksindgange som muligt.

Ved hver runde kombineres rundnøglen (hentet fra nøglen med nogle enkle operationer, for eksempel ved hjælp af S-kasser og P-kasser) ved hjælp af en eller anden gruppeoperation, typisk XOR .

Dekryptering udføres ved ganske enkelt at vende processen om (ved at bruge inverserne af S-bokse og P-bokse og anvende de runde nøgler i omvendt rækkefølge).

Feistel chiffer

Image
Mange blokchiffer, såsom DES og Blowfish anvender strukturer kendt som Feistel -chiffer

I en Feistel-chiffer er blokken af ​​almindelig tekst, der skal krypteres, opdelt i to lige store halvdele. Den runde funktion anvendes på den ene halvdel ved hjælp af en undernøgle, og derefter er output XORed med den anden halvdel. De to halvdele byttes derefter.

Lad være den runde funktion og lad være undertasterne til henholdsvis runderne .

Så er den grundlæggende operation som følger:

Del klartekstblokken i to lige store stykker, ( , )

Beregn for hver runde

.

Så er chifferteksten .

Dekryptering af en chiffertekst opnås ved at beregne for

.

Så er klarteksten igen.

En fordel ved Feistel -modellen i forhold til et substitutions -permutationsnetværk er, at den runde funktion ikke behøver at være inverterbar.

Lai – Massey -chiffer

Image
Lai – Massey -ordningen. Den arketypiske chiffer, der bruger den, er IDEA .

Lai – Massey -ordningen tilbyder sikkerhedsejendomme, der ligner dem i Feistel -strukturen . Det deler også sin fordel, at den runde funktion ikke behøver at være inverterbar. En anden lighed er, at den også opdeler inputblokken i to lige store stykker. Den runde funktion anvendes imidlertid på forskellen mellem de to, og resultatet tilføjes derefter til begge halvblokke.

Lad være rundefunktionen og en halvrundefunktion og lad være undertaster til henholdsvis runderne .

Så er den grundlæggende operation som følger:

Del klartekstblokken i to lige store stykker, ( , )

Beregn for hver runde

hvor og

Så er chifferteksten .

Dekryptering af en chiffertekst opnås ved at beregne for

hvor og

Så er klarteksten igen.

Operationer

ARX ​​(tilføj – roter – XOR)

Mange moderne blokchiffer og hash er ARX -algoritmer - deres runde funktion involverer kun tre operationer: (A) modulær tilføjelse, (R) rotation med faste rotationsmængder og (X) XOR . Eksempler inkluderer ChaCha20 , Speck , XXTEA og BLAKE . Mange forfattere tegner et ARX -netværk, en slags dataflowdiagram , for at illustrere sådan en rund funktion.

Disse ARX -operationer er populære, fordi de er relativt hurtige og billige inden for hardware og software, deres implementering kan gøres ekstremt enkel, og også fordi de kører på konstant tid og derfor er immun over for tidsangreb . Den roterende kryptanalyseteknik forsøger at angribe sådanne runde funktioner.

Andre operationer

Andre operationer, der ofte bruges i blokchiffer, omfatter dataafhængige rotationer som i RC5 og RC6 , en substitutionsboks implementeret som en opslagstabel som i Data Encryption Standard og Advanced Encryption Standard , en permutationsboks og multiplikation som i IDEA .

Funktionsmåder

Image
Usikker kryptering af et billede som følge af elektronisk kodebog (ECB) -kodning.

En blokchiffer i sig selv tillader kun kryptering af en enkelt datablok af chifferens bloklængde. For en meddelelse med variabel længde skal dataene først opdeles i separate chifferblokke. I det enkleste tilfælde, kendt som elektronisk kodebog (ECB) -tilstand, opdeles en meddelelse først i separate blokke af chifferens blokstørrelse (muligvis forlængelse af den sidste blok med polstringsbits ), og derefter bliver hver blok krypteret og dekrypteret uafhængigt. En sådan naiv metode er imidlertid generelt usikker, fordi lige klartekstblokke altid vil generere ens chiffertekstblokke (for den samme nøgle), så mønstre i klartekstmeddelelsen bliver tydelige i chiffertekstoutput.

For at overvinde denne begrænsning er flere såkaldte blokchiffer-driftsmåder blevet designet og specificeret i nationale anbefalinger som NIST 800-38A og BSI TR-02102 og internationale standarder som ISO/IEC 10116 . Det generelle koncept er at bruge randomisering af klartekstdata baseret på en ekstra inputværdi, ofte kaldet en initialiseringsvektor , til at skabe det, der kaldes probabilistisk kryptering . I den populære cipher block chaining (CBC) tilstand, for at kryptering skal være sikker, skal initialiseringsvektoren, der sendes sammen med klartekstmeddelelsen, være en tilfældig eller pseudo-tilfældig værdi, der tilføjes eksklusivt eller til den første klartekstblok før det bliver krypteret. Den resulterende chiffertekstblok bruges derefter som den nye initialiseringsvektor for den næste klartekstblok. I tilstanden chifferfeedback (CFB), der emulerer en selvsynkroniserende strømkrypter , krypteres initialiseringsvektoren først og tilføjes derefter til klartekstblokken. Den output tilbagemelding (OFB) mode gentagne gange krypterer initialiseringsvektoren til at skabe en central strøm til emulering af en synkron enkeltbitskryptografering . Den nyere tæller (CTR) -tilstand skaber på samme måde en nøglestrøm, men har den fordel, at den kun har brug for unikke og ikke (pseudo-) tilfældige værdier som initialiseringsvektorer; den nødvendige tilfældighed udledes internt ved at bruge initialiseringsvektoren som en bloktæller og kryptere denne tæller for hver blok.

Set fra et sikkerhedsteoretisk synspunkt skal driftsformer give såkaldt semantisk sikkerhed . Uformelt betyder det, at i betragtning af en chiffertekst under en ukendt nøgle kan man praktisk talt ikke udlede nogen information fra chifferteksten (bortset fra meddelelsens længde) om, hvad man ville have vidst uden at se chifferteksten. Det er blevet vist, at alle de tilstande, der er diskuteret ovenfor, med undtagelse af ECB-tilstanden, giver denne egenskab under såkaldte valgte klartekstangreb .

Polstring

Nogle tilstande, f.eks. CBC -tilstand, fungerer kun på komplette klartekstblokke. Simpelthen at forlænge den sidste blok i en meddelelse med nul-bits er utilstrækkelig, da den ikke tillader en modtager let at skelne meddelelser, der kun adskiller sig i mængden af ​​padding bits. Endnu vigtigere er, at en sådan enkel løsning giver anledning til meget effektive polstring orakelangreb . Et passende polstringsskema er derfor nødvendigt for at udvide den sidste klartekstblok til chifferens blokstørrelse. Mens mange populære ordninger, der er beskrevet i standarder og i litteraturen, har vist sig at være sårbare over for polstring af orakelangreb, tilføjer en løsning, der tilføjer en-bit og derefter forlænger den sidste blok med nul-bits, standardiseret som "polstringsmetode 2" i ISO /IEC 9797-1, har vist sig at være sikker mod disse angreb.

Kryptanalyse

Brute-force angreb

Denne egenskab resulterer i, at chifferens sikkerhed forringes kvadratisk og skal tages i betragtning, når du vælger en blokstørrelse. Der er dog en afvejning, da store blokstørrelser kan resultere i, at algoritmen bliver ineffektiv at betjene. Tidligere blokchiffer såsom DES har typisk valgt en 64-bit blokstørrelse, mens nyere designs såsom AES understøtter blokstørrelser på 128 bit eller mere, hvor nogle chiffer understøtter en række forskellige blokstørrelser.

Differential kryptanalyse

Lineær kryptanalyse

Lineær kryptanalyse er en form for kryptanalyse baseret på at finde affine tilnærmelser til en cifers handling . Lineær kryptanalyse er et af de to mest udbredte angreb på blokchiffer; den anden er differential kryptanalyse .

Opdagelsen tilskrives Mitsuru Matsui , der først anvendte teknikken på FEAL -chifferet (Matsui og Yamagishi, 1992).

Integreret kryptanalyse

Integreret kryptanalyse er et kryptanalytisk angreb, der især er relevant for blokering af chiffer baseret på substitutions -permutationsnetværk. I modsætning til differential kryptanalyse, der bruger par af udvalgte klartekster med en fast XOR -forskel, bruger integral kryptanalyse sæt eller endda multisæt af valgte klartekster, hvis del holdes konstant, og en anden del varierer gennem alle muligheder. For eksempel kan et angreb bruge 256 valgte klartekster, der har alle bortset fra 8 af deres bits ens, men alle adskiller sig i disse 8 bits. Et sådant sæt har nødvendigvis en XOR -sum på 0, og XOR -summerne af de tilsvarende sæt af chiffertekster giver information om chifferens funktion. Denne kontrast mellem forskellene i par af tekster og summerne af større sæt tekster inspirerede navnet "integral kryptanalyse" og lånte beregningens terminologi.

Andre teknikker

Image
Udviklingen af boomerangangrebet muliggjorde anvendelse af differentielle kryptanalyseteknikker på mange cifre, der tidligere var blevet anset for at være sikre mod differentielle angreb

Ud over lineær og differentiel kryptanalyse er der et voksende katalog over angreb: afkortet differential kryptanalyse , delvis differential kryptanalyse, integreret kryptanalyse , som omfatter firkantede og integrerede angreb, diasangreb , boomerangangreb , XSL -angrebet , umulig differential kryptanalyse og algebraiske angreb . For at et nyt blokchifferdesign skal have nogen troværdighed, skal det demonstrere bevis for sikkerhed mod kendte angreb.

Tilgængelig sikkerhed

Når en blokchiffer bruges i en given driftsmåde, bør den resulterende algoritme ideelt set være omtrent lige så sikker som selve blokchifteren. ECB (diskuteret ovenfor) mangler eftertrykkeligt denne egenskab: uanset hvor sikker den underliggende blokchiffer er, kan ECB -tilstand let angribes. På den anden side kan det bevises, at CBC -tilstand er sikker under den antagelse, at den underliggende blokchiffer er ligeledes sikker. Bemærk dog, at udsagn som dette kræver formelle matematiske definitioner for, hvad det betyder for en krypteringsalgoritme eller en blokchiffer at "være sikker". Dette afsnit beskriver to almindelige forestillinger om, hvilke egenskaber en blokchiffer skal have. Hver svarer til en matematisk model, der kan bruges til at bevise egenskaber ved algoritmer på højere niveau, såsom CBC.

Denne generelle tilgang til kryptografi-der viser, at algoritmer på højere niveau (f.eks. CBC) er sikre under eksplicit anførte antagelser om deres komponenter (f.eks. En blokchiffer)-er kendt som beviselig sikkerhed .

Standard model

Uformelt er en blokchiffer sikker i standardmodellen, hvis en angriber ikke kan se forskel mellem blokchiffer (udstyret med en tilfældig nøgle) og en tilfældig permutation.

For at være lidt mere præcis, lad E være en n -bit blokchiffer. Vi forestiller os følgende spil:

  1. Personen, der driver spillet, vender en mønt.
    • Hvis mønten lander på hovedet, vælger han en tilfældig nøgle K og definerer funktionen f = E K .
    • Hvis mønten lander på haler, vælger han en tilfældig permutation π på sættet med n -bit strenge og definerer funktionen f = π .
  2. Angriberen vælger en n -bit streng X , og personen, der kører spillet, fortæller ham værdien af f ( X ).
  3. Trin 2 gentages i alt q gange. (Hver af disse q -interaktioner er en forespørgsel .)
  4. Angriberen gætter på, hvordan mønten landede. Han vinder, hvis hans gæt er korrekt.

Angriberen, som vi kan modellere som en algoritme, kaldes en modstander . Funktionen f (som modstanderen var i stand til at forespørge) kaldes et orakel .

Bemærk, at en modstander trivielt kan sikre en 50% chance for at vinde blot ved at gætte tilfældigt (eller endda ved for eksempel altid at gætte "hoveder"). Lad derfor P E ( A ) angive sandsynligheden for, at modstanderen A vinder dette spil mod E , og definer fordelen ved A som 2 ( P E ( A ) - 1/2). Det følger heraf, at hvis A gætter tilfældigt, vil dens fordel være 0; på den anden side, hvis A altid vinder, så er dens fordel 1. Blokchiffer E er en pseudo-tilfældig permutation (PRP), hvis ingen modstander har en fordel, der er væsentligt større end 0, givet bestemte begrænsninger for q og modstanderens driftstid . Hvis modstandere i trin 2 ovenfor har mulighed for at lære f −1 ( X ) i stedet for f ( X ) (men stadig kun har små fordele), så er E en stærk PRP (SPRP). En modstander er ikke-adaptiv, hvis den vælger alle q- værdier for X, inden spillet begynder (det vil sige, at den ikke bruger nogen oplysninger hentet fra tidligere forespørgsler til at vælge hvert X, når det går).

Disse definitioner har vist sig nyttige til analyse af forskellige driftsmåder. For eksempel kan man definere et lignende spil til måling af sikkerheden ved en blokcifferbaseret krypteringsalgoritme og derefter forsøge at vise (gennem et reduktionsargument ), at sandsynligheden for at en modstander vinder dette nye spil ikke er meget mere end P E ( A ) for nogle A . (Reduktionen giver typisk grænser for q og spilletiden for A. ) Tilsvarende, hvis P E ( A ) er lille for alle relevante A , så har ingen angriber en væsentlig sandsynlighed for at vinde det nye spil. Dette formaliserer ideen om, at algoritmen på højere niveau arver blokchifferens sikkerhed.

Ideel chiffermodel

Praktisk evaluering

Blokchiffer kan evalueres i henhold til flere kriterier i praksis. Fælles faktorer omfatter:

  • Nøgleparametre, såsom dens nøglestørrelse og blokstørrelse, som begge giver en øvre grænse for krypteringssikkerheden.
  • Det estimerede sikkerhedsniveau , som er baseret på den tillid, der er opnået i blokchifferdesignet, efter at det stort set har modstået store bestræbelser på kryptanalyse over tid, designets matematiske soliditet og eksistensen af ​​praktiske eller certificeringsangreb.
  • Chifferens kompleksitet og dets egnethed til implementering i hardware eller software . Hardwareimplementeringer kan måle kompleksiteten med hensyn til porttælling eller energiforbrug, som er vigtige parametre for ressourcebegrænsede enheder.
  • Den cipher 's præstationer med hensyn til behandlingen af overførselshastighed på forskellige platforme, herunder dens hukommelse krav.
  • Den omkostning af cipher, som henviser til licenskrav, der muligvis opkræves på grund af intellektuelle ejendomsrettigheder .
  • Chifferets fleksibilitet , som inkluderer dets evne til at understøtte flere nøglestørrelser og bloklængder.

Bemærkelsesværdige blokchiffer

Lucifer / DES

Lucifer anses generelt for at være den første civile blokchiffer, udviklet hos IBM i 1970'erne baseret på arbejde udført af Horst Feistel . En revideret version af algoritmen blev vedtaget som en amerikansk regering Federal Information Processing Standard : FIPS PUB 46 Data Encryption Standard (DES). Det blev valgt af US National Bureau of Standards (NBS) efter en offentlig invitation til indsendelse og nogle interne ændringer af NBS (og muligvis NSA ). DES blev offentliggjort i 1976 og har været meget udbredt.

DES var designet til blandt andet at modstå et bestemt kryptanalytisk angreb kendt af NSA og genopdaget af IBM, men ukendt offentligt indtil genopdaget igen og udgivet af Eli Biham og Adi Shamir i slutningen af ​​1980'erne. Teknikken kaldes differential kryptanalyse og er fortsat et af de få generelle angreb mod blokchiffer; lineær kryptanalyse er en anden, men kan have været ukendt selv for NSA, før den blev offentliggjort af Mitsuru Matsui . DES foranledigede en stor mængde andet arbejde og publikationer inden for kryptografi og kryptanalyse i det åbne samfund, og det inspirerede mange nye chifferdesign.

DES har en blokstørrelse på 64 bit og en nøglestørrelse på 56 bit. 64-bit blokke blev almindelige i blokchifferdesign efter DES. Nøglelængde afhængede af flere faktorer, herunder regeringens regulering. Mange observatører i 1970'erne kommenterede, at den 56-bit nøglelængde, der blev brugt til DES, var for kort. Efterhånden som tiden gik, blev dens utilstrækkelighed tydelig, især efter at en speciel maskine designet til at bryde DES blev demonstreret i 1998 af Electronic Frontier Foundation . En udvidelse til DES, Triple DES , tripel-krypterer hver blok med enten to uafhængige nøgler (112-bit nøgle og 80-bit sikkerhed) eller tre uafhængige nøgler (168-bit nøgle og 112-bit sikkerhed). Det blev bredt vedtaget som en erstatning. Fra 2011 betragtes tre-nøgleversionen stadig som sikker, selvom National Institute of Standards and Technology (NIST) -standarder ikke længere tillader brug af to-nøgleversionen i nye applikationer på grund af dens 80-bit sikkerhedsniveau.

IDE

Den internationale datakrypteringsalgoritme ( IDEA ) er en blokchiffer designet af James Massey fra ETH Zürich og Xuejia Lai ; det blev først beskrevet i 1991 som en tiltænkt erstatning for DES.

IDEA opererer på 64-bit blokke ved hjælp af en 128-bit nøgle og består af en række på otte identiske transformationer (en runde ) og en output-transformation ( halvrunden ). Processerne for kryptering og dekryptering ligner hinanden. IDEA får meget af sin sikkerhed ved at sammenflette operationer fra forskellige grupper - modulær addition og multiplikation og bitvis eksklusiv eller (XOR) - som er algebraisk "uforenelige" på en eller anden måde.

Designerne analyserede IDEA for at måle dets styrke mod differential kryptanalyse og konkluderede, at den er immun under visse forudsætninger. Ingen vellykkede lineære eller algebraiske svagheder er blevet rapporteret. Fra 2012 kan det bedste angreb, der gælder for alle nøgler, bryde hele 8,5-runde IDEA ved hjælp af et angreb med smalle cykler cirka fire gange hurtigere end brutal kraft.

RC5

Image
En runde (to halvrunder) af RC5-blokchifferet

RC5 er en blokchiffer designet af Ronald Rivest i 1994, som i modsætning til mange andre cifre har en variabel blokstørrelse (32, 64 eller 128 bit), nøglestørrelse (0 til 2040 bits) og antal runder (0 til 255). Det originale foreslåede valg af parametre var en blokstørrelse på 64 bit, en 128-bit nøgle og 12 runder.

Et centralt træk ved RC5 er brugen af ​​dataafhængige rotationer; et af målene med RC5 var at tilskynde til undersøgelse og evaluering af sådanne operationer som en kryptografisk primitiv. RC5 består også af en række modulære tilføjelser og XOR'er. Algoritmens generelle struktur er et Feistel -lignende netværk. Krypterings- og dekrypteringsrutinerne kan specificeres i et par kodelinjer. Nøgleplanen er imidlertid mere kompleks og udvider nøglen ved hjælp af en i det væsentlige envejs funktion med de binære udvidelser af både e og det gyldne snit som kilder til " ingenting i mine ærmet tal ". Den fristende enkelhed ved algoritmen sammen med nyheden i de dataafhængige rotationer har gjort RC5 til et attraktivt studieobjekt for kryptanalytikere.

12-runde RC5 (med 64-bit-blokke) er modtagelig for et differentialangreb ved hjælp af 2 44 valgte klartekster. 18–20 runder foreslås som tilstrækkelig beskyttelse.

Rijndael / AES

Den Rijndael cipher udviklet af belgiske kryptografer, Joan Daemen og Vincent Rijmen var en af de konkurrerende designs til at erstatte DES. Det vandt den 5-årige offentlige konkurrence om at blive AES (Advanced Encryption Standard).

AES, der blev vedtaget af NIST i 2001, har en fast blokstørrelse på 128 bit og en nøglestørrelse på 128, 192 eller 256 bit, hvorimod Rijndael kan specificeres med blok- og nøglestørrelser i et vilkårligt multiplum af 32 bit, med et minimum på 128 bits. Blokstørrelsen har maksimalt 256 bit, men nøglestørrelsen har ikke noget teoretisk maksimum. AES opererer på en 4 × 4 kolonne-større ordensmatrix med bytes, betegnet staten (versioner af Rijndael med en større blokstørrelse har yderligere kolonner i staten).

Blowfish

Blowfish er en blokchiffer, designet i 1993 af Bruce Schneier og inkluderet i et stort antal chiffer -suiter og krypteringsprodukter. Blowfish har en 64-bit blokstørrelse og en variabel nøglelængde fra 1 bit op til 448 bit. Det er en 16-runde Feistel-chiffer og bruger store nøgleafhængige S-kasser . Bemærkelsesværdige funktioner i designet omfatter de nøgleafhængige S-bokse og en meget kompleks nøgleplan .

Det blev designet som en almen algoritme, beregnet som et alternativ til den aldrende DES og fri for de problemer og begrænsninger, der er forbundet med andre algoritmer. På det tidspunkt, hvor Blowfish blev frigivet, var mange andre designs proprietære, behæftet med patenter eller var kommercielle/regeringshemmeligheder. Schneier har udtalt, at "Blowfish er patenteret og vil forblive det i alle lande. Algoritmen er hermed placeret i det offentlige område og kan frit bruges af alle." Det samme gælder Twofish , en efterfølgeralgoritme fra Schneier.

Generaliseringer

Tweakable blokchiffer

M. Liskov, R. Rivest og D. Wagner har beskrevet en generaliseret version af blokchiffer kaldet "tweakable" blokchiffer. En justerbar blokchiffer accepterer et andet input kaldet tweak sammen med sin sædvanlige klartekst eller ciphertext -input. Justeringen vælger sammen med nøglen den permutation, der beregnes af chifferen. Hvis det er tilstrækkeligt let at ændre tweaks (sammenlignet med en normalt temmelig dyr opsætning af nøgler), bliver nogle interessante nye driftstilstande mulige. Den disk kryptering teori artikel beskriver nogle af disse tilstande.

Format-bevarende kryptering

Blokchiffer arbejder traditionelt over et binært alfabet . Det vil sige, at både input og output er binære strenge, der består af n nuller og en. I nogle situationer kan man dog ønske at have en blokchiffer, der fungerer over et andet alfabet; f.eks. kryptering af 16-cifrede kreditkortnumre på en sådan måde, at chifferteksten også er et 16-cifret nummer, kan lette tilføjelse af et krypteringslag til ældre software. Dette er et eksempel på formatbevarende kryptering . Mere generelt kræver formatbevarende kryptering en nøglet permutation på et bestemt sprog . Dette gør formatbevarende krypteringsordninger til en naturlig generalisering af (tweakable) blokchiffer. I modsætning hertil er traditionelle krypteringsordninger, såsom CBC, ikke permutationer, fordi den samme klartekst kan kryptere til flere forskellige chiffertekster, selv når man bruger en fast nøgle.

Forholdet til andre kryptografiske primitiver

Blokchiffer kan bruges til at bygge andre kryptografiske primitiver, som dem herunder. For at disse andre primitiver skal være kryptografisk sikre, skal man passe på at bygge dem på den rigtige måde.

Ligesom blokchiffer kan bruges til at bygge hash -funktioner, kan hash -funktioner bruges til at bygge blokchiffer. Eksempler på sådanne blokchiffer er SHACAL , BEAR og LION .

Se også

Referencer

Yderligere læsning

eksterne links