Blok chiffer

Den aktuelle version af siden er endnu ikke blevet gennemgået af erfarne bidragydere og kan afvige væsentligt fra den version , der blev gennemgået den 5. januar 2021; checks kræver 6 redigeringer .

En blokciffer  er en slags symmetrisk ciffer [1] , der opererer med grupper af bits af en fast længde - blokke, hvis karakteristiske størrelse varierer inden for 64‒256 bit. Hvis den originale tekst (eller dens resterende) er mindre end blokstørrelsen, udfyldes den før kryptering . Faktisk er en blokcifre en substitution på alfabetet af blokke, som som en konsekvens kan være mono- eller polyalfabetisk. [2] Blokkrypteringen er en vigtig komponent i mange kryptografiske protokoller og bruges i vid udstrækning til at beskytte data transmitteret over et netværk.

I modsætning til et krypteringsfelt , hvor nøglens længde er lig med meddelelsens længde, er en blokchiffer i stand til at kryptere en eller flere meddelelser med en enkelt nøgle med en samlet længde, der er større end nøglens længde. At sende en nøgle, der er lille i forhold til beskeden, over en krypteret kanal er en meget enklere og hurtigere opgave end at transmittere selve beskeden eller en nøgle af samme længde, som gør det muligt at bruge den hver dag. Men i dette tilfælde ophører chifferen med at være ubrydelig. Blokcifre adskiller sig fra strømchiffer ved, at de behandler bits i grupper snarere end i en strøm. Samtidig er blokcifre langsommere end stream-cifre. [3] Symmetriske systemer har en fordel i forhold til asymmetriske i krypteringshastighed, hvilket gør, at de kan forblive relevante, på trods af den svagere nøgletransmissionsmekanisme (modtageren skal kende den hemmelige nøgle, der skal transmitteres over en allerede etableret krypteret kanal. Samtidig tid, i asymmetriske cifre kan den offentlige nøgle, der er nødvendig for kryptering, være kendt af alle, og der er ingen grund til at dele krypteringsnøglen).

Fordelene ved blokcifre omfatter ligheden mellem kryptering og dekrypteringsprocedurer , der som regel kun adskiller sig i rækkefølgen af ​​handlinger. Dette forenkler oprettelsen af ​​krypteringsenheder, da det tillader brugen af ​​de samme blokke i krypterings- og dekrypteringskæderne. Fleksibiliteten af ​​blokcifre gør det muligt at bruge dem til at konstruere andre kryptografiske primitiver: en pseudo-tilfældig sekvensgenerator , en stream-chiffer, indsættelsesimitationer og kryptografiske hashes . [fire]

Historie

Den moderne blokchiffermodel er baseret på ideen om iterative blokcifre foreslået i Claude Shannons 1949-publikation " Communication Theory in Secret Systems ". Dette koncept giver dig mulighed for at opnå et vist niveau af sikkerhed ved at kombinere let-at- udføre substitution og permutation operationer [ 5 ] .  

Indtil 1970'erne var kryptografi militærets og efterretningsofficers lod; der var praktisk talt ingen publikationer i den åbne presse [6] . Pioneren var chifferen " Lucifer ", udviklet i 1970 af IBM og baseret på SP-nettet . Ideen med chifferen var at bruge kombinationer af enkle og derfor hurtigt beregnede operationer både i hardware og software. Ordningen viste sig dog at være mislykket: den var for besværlig, hvilket førte til en lav krypteringshastighed i softwareimplementering (ca. 8 kb/s) og i hardware (97 kb/s).

Bekymringer om stabiliteten af ​​denne algoritme begyndte at dukke op. Principperne udviklet under konstruktionen af ​​Lucifer (SP-netværket og Feistel-netværket , opkaldt efter en af ​​udviklerne) dannede dog grundlaget for konstruktionen af ​​blokcifre.

I 1973 annoncerede National Institute of Standards and Technology ( NIST ) en  konkurrence om at udvikle en datakrypteringsstandard, hvis vinder i 1974 var DES (Data Encryption Standard) chifferen, som i virkeligheden er en forbedret version af Lucifer . Udgivelsen af ​​chifferen i 1977 var grundlæggende for den offentlige forståelse af den moderne blokchiffermodel. Samtidig gav det anledning til udviklingen af ​​kryptoanalytiske angreb .

Efter at være blevet godkendt af American National Standards Institute i 1981, blev algoritmen brugt i den civile sektor i lang tid og gik endda ud over USA . Chifferen havde imidlertid en betydelig ulempe - en lille nøglelængde, som gav anledning til mange angreb forbundet med parallel opregning og den nærmer sig muligheden for dens implementering. Manglen på tilstrækkelig beskyttelse mod DES-chifferangreb har givet anledning til mange algoritmer, der både er en mere kompleks version af DES ( 3DES ) og helt andre skemaer ( NewDES , FEAL , IDEA ).

1997 var starten på AES -programmet (Advanced Encryption Standard). Konkurrencen bestod af tre etaper, hvor den endelige vinder var RIJNDAEL- algoritmen udviklet af belgierne J. Daemen og V. Rijmen. AES er ligesom sine forgængere også bygget ved hjælp af SP-netværket.

I dag er der mange angreb, som blokchifferet skal modstå, begyndende med brute-force angrebet som det mest trivielle. [7]

Definition

En blokchiffer består af to parrede algoritmer: kryptering og dekryptering . [8] Begge algoritmer kan repræsenteres som funktioner. Krypteringsfunktionen E ( eng.  kryptering  - kryptering) modtager en datablok M ( eng.  besked  - besked) med en størrelse på n bit og en nøgle K ( eng.  nøgle  - nøgle) med en størrelse på k bit som input og giver en blok af chiffertekst C ( eng.  cipher ) ved output  - cipher) med en størrelse på n bit:

For enhver nøgle K er EK en bijektiv funktion ( permutation ) på sættet af n -bit blokke. Dekrypteringsfunktionen D ( eng.  decryption  - decryption) modtager chifferteksten C, nøglen K som input, og giver M ved udgangen:

er på samme tid det omvendte af krypteringsfunktionen:

og

Bemærk, at den nødvendige nøgle til kryptering og dekryptering er den samme, en konsekvens af symmetrien af ​​blokchifferet.

Opbygning af en blokcifre

"Det er ikke svært at designe en blokcifre. Vanskeligheden ligger i at designe en blokcifre, der ikke kun er sikker, men også nem at beskrive og nem at implementere."

Bruce Schneier , kryptograf og computersikkerhedsspecialist .

Pionerer i udviklingen af ​​blokcifre var ansatte hos IBM, da de arbejdede på chifferen " Lucifer ". [9] De designede de første fundamenter, der blev brugt i udviklingen af ​​efterfølgende kredsløb. Samtidig skal det tages i betragtning, at den nye chiffer ikke kun skal være modstandsdygtig over for alle kendte typer angreb, men også ret enkel at implementere.

Iterative blokcifre

De fleste blokcifre er iterative. Dette betyder, at den givne chiffer konverterer klartekstblokke med konstant længde  til chiffertekstblokke af samme længde ved hjælp af cykliske reversible funktioner kendt som runde funktioner. [10] Dette skyldes enkelheden og hastigheden af ​​udførelsen af ​​både software- og hardwareimplementeringer. Typisk bruger runde funktioner forskellige taster afledt af den originale nøgle:  

,

hvor C i  er værdien af ​​blokken efter den i-te runde, C 0 = M er klarteksten, K i  er den toneart, der blev brugt i den i-te runde og hentet fra den originale nøgle K.

Blokstørrelsen n  er en fast blokchifferparameter, normalt 64 eller 128 bit, selvom nogle cifre tillader flere forskellige værdier. En længde på 64 bit var acceptabel indtil midten af ​​1990'erne, hvor 128 bit blev brugt, hvilket nogenlunde svarer til størrelsen af ​​et maskinord og muliggør effektiv implementering på de fleste almindelige computerplatforme. Forskellige krypteringssystemer giver dig mulighed for at kryptere almindelig tekst af vilkårlig længde. Hver har visse egenskaber: sandsynlighed for fejl, let adgang, sårbarhed over for angreb. Fra 2006 var en 80-bit nøgle i stand til at forhindre et brute-force angreb .

SP netværk

SP-netværk ( engelsk  substitutions-permutation network, SPN ) er en af ​​de vigtigste typer iterative blokcifre. En chiffer baseret på SP-nettet modtager en blok og en nøgle som input og udfører flere alternerende runder, bestående af skiftende substitutionstrin og permutationstrin [ 11 ] .  Én S-boks er nok til at opnå sikkerhed, men sådan en blok vil kræve en stor mængde hukommelse. Derfor anvendes små S-bokse blandet med P-bokse [6] . Det ikke-lineære substitutionstrin blander nøglebittene med klartekstbits, hvilket skaber Shannons forlegenhed Det lineære permutationstrin fordeler redundansen i hele datastrukturen, hvilket giver anledning til diffusion [12] [13] .  

S -  boksen erstatter en lille blok af input bits med en anden blok af output bits. Denne substitution skal være en-til-en for at garantere reversibilitet. Formålet med S-boksen er til en ikke-lineær transformation, som forhindrer lineær kryptoanalyse i at blive udført . En af egenskaberne ved S-boksen er lavineeffekten , det vil sige, at en ændring i én bit ved indgangen fører til en ændring i alle bits ved udgangen [14] .

P-blok  - permutation af alle bits: blokken modtager output fra S-boksen som input, bytter alle bits og sender resultatet til S-boksen i næste runde. En vigtig kvalitet ved en P-boks er evnen til at distribuere output fra én S-boks til indgangene på så store S-bokse som muligt.

For hver runde bruges en anden nøgle , hentet fra den originale . Sådan en nøgle kaldes en rund nøgle. Det kan opnås ved at dele den originale nøgle i lige store dele, eller ved en form for transformation af hele nøglen.

Feistels netværk

Et Feistel-netværk er en generel metode til at transformere en vilkårlig funktion F til en permutation på et sæt af blokke. [15] Den består af cyklisk gentagne celler - runder. Inden for hver runde er klartekstblokken opdelt i to lige store dele. Rund funktion

tager den ene halvdel (til venstre i figuren), transformerer den ved hjælp af tasten Ki og kombinerer resultatet med den anden halvdel ved hjælp af den eksklusive ELLER (XOR) operation. Denne nøgle er givet af den indledende nøgle K og er forskellig for hver runde. Derefter byttes halvdelene (ellers bliver kun den ene halvdel af blokken konverteret) og føres til næste runde. Feistel-netværkstransformationen er en reversibel operation.

Der er visse krav til F- funktionen :

Hvis det første krav ikke er opfyldt, vil netværket blive udsat for differentielle angreb (lignende meddelelser vil have lignende cifre). I det andet tilfælde er chifferens handlinger lineære, og løsning af et system af lineære ligninger er tilstrækkeligt til at bryde [3] .

Dette design har en håndgribelig fordel: krypterings-/dekrypteringsprocedurerne er de samme, kun derivaterne af de originale nøgler bruges i omvendt rækkefølge. Det betyder, at de samme blokke kan bruges til både kryptering og dekryptering, hvilket helt sikkert forenkler implementeringen af ​​chifferen. Ulempen ved ordningen er, at kun halvdelen af ​​blokken behandles i hver runde, hvilket medfører behov for at øge antallet af runder. [2]

Gruppedannelse

Ved konstruktion af algoritmen tages der hensyn til dannelsen af ​​en gruppe , hvor elementerne er sættet af chiffertekstblokke med alle nøgler, og gruppeoperationen er sammensætningen af ​​krypteringsrunder. Hvis en given kryptering danner en næsten komplet gruppe, giver det ingen mening at bruge multiple kryptering [6] .

Bloker chiffer funktionsmåder

I sig selv giver en blokchiffer dig mulighed for kun at kryptere enkelte datablokke af en forudbestemt længde. Hvis beskedlængden er mindre end bloklængden ( eng.  bloklængde ), så udfyldes den til den ønskede længde. Men hvis meddelelseslængden er længere, bliver det nødvendigt at opdele den i blokke. Samtidig er der flere måder at kryptere sådanne meddelelser på, kaldet blokchiffer-driftsmåder.

Kryptering af uafhængige blokke

Den enkleste funktionsmåde for en blokchiffer er den elektroniske kodebogstilstand eller den simple substitutionstilstand ( Eng.  Electronic CodeBook, ECB ), hvor alle klartekstblokke er krypteret uafhængigt af hinanden. Men når du bruger denne tilstand, bevares de statistiske egenskaber af åbne data delvist, da hver identisk datablok entydigt svarer til en krypteret datablok. Med en stor mængde data (for eksempel video eller lyd) kan dette føre til lækage af information om deres indhold og give mere plads til krypteringsanalyse .

Fjernelse af statistiske afhængigheder i almindelig tekst er muligt ved hjælp af foreløbig arkivering, men det løser ikke problemet fuldstændigt, da arkiveringstjenesteinformationen forbliver i filen , hvilket ikke altid er acceptabelt.

Kryptering afhængig af tidligere blokke

For at overvinde disse problemer er der udviklet andre driftsformer [16] [17] , etableret af den internationale standard ISO/IEC 10116 [18] og defineret af nationale retningslinjer, såsom NIST 800-38A [19] og BSI TR- 02102 [20]

Den generelle idé er at bruge et tilfældigt tal, ofte omtalt som en initialiseringsvektor (IV). I den populære Cipher Block Chaining -tilstand ( CBC ) skal IV være tilfældig eller pseudo-tilfældig for sikkerheden. Når den er defineret, XOReds den med den første blok af klartekst. Det næste trin er at kryptere resultatet og få den første chifferblok, som vi bruger som IV til den anden blok, og så videre. I tilstanden Cipher Feedback ( CFB ) krypteres IV direkte, hvorefter den tilføjes modulo to (XOR, eksklusiv OR) med den første blok. Den modtagne chifferblok bruges som IV til yderligere kryptering. Tilstanden har ingen særlige fordele i forhold til de andre. I modsætning til de tidligere tilstande krypterer OFB -tilstanden ( Output Feedback ) IV'en cyklisk og danner en strøm af nøgler tilføjet til beskedblokkene. Fordelen ved tilstanden er det fuldstændige sammenfald af krypterings- og dekrypteringsoperationerne. Tællertilstanden ( engelsk Counter, CTR ) ligner OFB, men tillader parallel beregning af chifferen: IV kombineres med bloknummeret uden et, og resultatet krypteres. Den resulterende blok tilføjes til den tilsvarende meddelelsesblok.     

Husk, at initialiseringsvektoren skal være forskellig i forskellige sessioner. Ellers kommer vi til ECB-tilstandsproblemet. Det er muligt at bruge et tilfældigt tal, men det kræver en rimelig god tilfældig talgenerator. Derfor sættes der normalt et bestemt nummer - en etiket, der er kendt af begge parter (f.eks. sessionsnummeret) og kaldes en nonce ( Number Used Once ) .  Hemmeligholdelse af dette nummer er normalt ikke påkrævet. Yderligere IV er resultatet af nonce-kryptering. I tilfælde af tællertilstand bruges nonce til at danne den runde nøgle K i [3] :

hvor i  er det runde tal.

Fuldfør blok

Som nævnt ovenfor, hvis længden af ​​selve beskeden, eller den sidste blok, er mindre end længden af ​​blokken, skal den udfyldes med . Blot udfyldning med nul bit løser ikke problemet, fordi modtageren ikke vil være i stand til at finde enden af ​​nyttelasten. Derudover fører denne mulighed til angreb fra tilføjelsens Oracle [21] .

Derfor er løsningen, der er standardiseret som "Complement Method 2" ( Bit Completion ) i ISO/IEC 9797-1, anvendelig i praksis, idet man tilføjer en 1 bit til slutningen af ​​meddelelsen og udfylder den resterende plads med nuller [22] . I dette tilfælde er modstand mod sådanne angreb blevet bevist [23] .

Krypteringsanalyse

Som alle ciphers, hvis algoritmer er kendt, er blok ciphers udsat for kryptografiske angreb. Målet med angrebet er at udvikle en cracking-algoritme, der er mere effektiv end udtømmende søgning efter alle mulige nøgler. Hvis en sådan løsning findes, anses angrebet for at være vellykket. Samtidig brydes chifferen, hvis der er et angreb, der tillader brydning i det tidsrum, hvor informationen forbliver relevant, og at udføre et sådant angreb er gavnligt for angriberen.

Brute force angreb

engelsk  Ægte kraftangreb . På grund af en blokchiffers karakteristika som funktionsreversibilitet, kan dens output skelnes fra en ægte tilfældig sekvens på grund af fødselsdagsparadokset . Denne funktion fører til et fald i chifferens sikkerhed og behovet for at tage højde for blokstørrelsen. Der er således en afvejning mellem store blokke, der reducerer chifferens ydeevne og upålidelige små blokke [24] .

Nøglens størrelse spiller en lige så vigtig rolle. Den tidlige DES -chiffer var karakteriseret ved en nøglestørrelse på 56 bit, hvilket, som praksis har vist, tydeligvis ikke er nok til pålidelig dataoverførsel. Det var et brute-force angreb, der først brød DES. Mere moderne algoritmer som AES og GOST 28147-89 har en nøglestørrelse på henholdsvis 128 bit og 256 bit, hvilket gør sådanne angreb meningsløse [25] .

Differentiel kryptoanalyse

engelsk  Differentiel kryptoanalyse . I 1990 definerede Eli Biham og Adi Shamir ideen om differentiel kryptoanalyse. Med denne metode var det muligt at knække DES -chifferet . Konstante S-boks-cifre og kodede e-bogs- chiffere er modtagelige for et lignende angreb . Denne metode arbejder med par af chiffertekster, for hvilke forskellen mellem de tilsvarende klartekster er kendt, og overvejer udviklingen af ​​disse forskelle. Sammen med den lineære er den den mest almindelige i angreb på en blokchiffer [6] .

Lineær kryptoanalyse

engelsk  Lineær kryptoanalyse . Lineær kryptoanalyse er en krypteringsmetode baseret på søgningen efter affine approksimationer for at algoritmen kan fungere. Udviklet af den japanske matematiker Mitsuru Matsui , som var den første til at bruge denne teknik til at angribe DES og FEAL . Metoden er baseret på at anvende "Exclusive OR" (XOR) operationen på blokkene af klartekst, chiffertekst og deres resultat, hvilket gør det muligt at opnå resultatet af XORing af nøglebittene. Strukturen af ​​S-blokken har en stærk indflydelse på modstanden mod linjeangreb. Da metoden blev udviklet, viste det sig, at DES havde en svaghed for den, da ingen havde forventet sådanne angreb, da den blev udviklet [6] .

Integral kryptoanalyse

engelsk  Intergal kryptoanalyse . Integreret krypteringsanalyse er en type angreb, der især er anvendelig til blokcifre bygget på SP-nettet. I modsætning til differentiel krypteringsanalyse, som bruger et par udvalgte klartekster med en fast forskel beregnet ved hjælp af XOR-operationen, bruger integreret krypteringsanalyse sæt af klartekster, hvor nogle dele holdes konstante, mens andre varierer blandt mulige værdier. Et sådant sæt har nødvendigvis en modulo 2 (XOR) sum på 0, mens den tilsvarende chiffertekstsum indeholder information om chifferens operationer.

Andre typer angreb

Ud over dem, der er beskrevet ovenfor, er der andre typer angreb:

Enhver ny chiffer skal demonstrere modstand mod alle kendte typer angreb.

Praktisk evaluering

I praksis evalueres en blokchiffer ud fra en række forskellige kriterier [26] [27] :

Nationale krypteringsstandarder

Lucifer / DES

Lucifer-chifferet betragtes generelt som det første blok-ciffer. Algoritmen blev udviklet af IBM i 1970'erne til egne behov og er baseret på Horst Feistels arbejde .  Den endelige version blev vedtaget som den amerikanske regerings føderale informationsbehandlingsstandard : FIPS PUB 46 Data Encryption Standard (DES) - datakrypteringsstandard.

DES har en blokstørrelse på 64 bit og en nøgle på 56 bit. Efterfølgende blev 64-bit blokke generelt accepteret i konstruktionen af ​​chifferen. Nøglenængden afhang af flere faktorer, herunder regeringsrestriktioner, og blev som et resultat en åbenlys ulempe ved algoritmen - den var ikke nok til at modstå brute-force-angreb. I 1993 designede Michael Wiener en maskine til $1 million, der var i stand til at knække DES på 3,5 timer med brute force , og i 1998 blev der bygget en maskine, der var i stand Derudover er der for nøglerne til algoritmen en række værdier, der betragtes som svage [6] .

Der er en forbedret version af algoritmen kaldet Triple DES eller 3DES. Algoritmens hastighed faldt tre gange, men systemet viste sig at være meget mere modstandsdygtigt over for udtømmende søgning på grund af den tredoblede nøglelængde (168 bit og 112 hemmelige bit). Du kan eventuelt vælge en dobbeltnøgle (112 bit og 80 hemmelige bit). Fra 2011 bevarer tre-nøglesystemet sin sikkerhed, men to-nøgle-versionen med 80-bit sikkerhed opfylder ikke længere moderne krav [28] .

GOST 28147-89

GOST 28147-89, en russisk krypteringsstandard introduceret i 1990, er også en CIS-standard. Chifferen er baseret på et 32-rundt Feistel-netværk med en 256-bit nøgle. I maj 2011 forsøgte kryptanalytiker Nicolas Courtois et angreb, der reducerede krakningstiden med en faktor på 28 (256), men krævede 264 klartekst/ chiffertekst- par, hvilket ikke kan betragtes som et vellykket angreb, da der med denne mængde klartekst ikke er behov for for viden om chifferteksten. [29] [30]

På grund af tilstedeværelsen af ​​et stort antal runder er angreb baseret på differentiel og lineær kryptoanalyse ikke levedygtige, da sidstnævnte er følsomme over for antallet af runder. En fuld søgning med en sådan nøglelængde er fuldstændig meningsløs. For at opnå lavineeffekten kræver GOST 8 runder, hvilket kan være en svaghed ved algoritmen, men ved 32 runder betyder det ikke så meget. Spørgsmålet om sikkerheden ved GOST forbliver åbent [6] .

AES / Rijndael

Vedtaget af NIST i 2001 efter 5 års offentlig konkurrence erstattede AES DES som USAs føderale standard. Chifferen er udviklet af to belgiske kryptografer , Daimen Yoan og Raymen Vincent . Blokstørrelsen er 128 bit, og nøglestørrelserne er 128, 192 og 256 bit, selvom blokstørrelsen kan specificeres med et vilkårligt antal bit-multipel på 32, med en minimumsværdi på 128 bit. Den maksimale blokstørrelse er 256 bit, mens nøglestørrelsen ikke har nogen teoretisk grænse. Understøttelse af denne chiffer blev introduceret af Intel i x86 -processorfamilien .

Forholdet til andre kryptografiske primitiver

Blokchifferen kan bruges til at konstruere andre kryptografiske primitiver :

Se også

Noter

  1. Schneier, 2002 , Algoritmetyper og kryptografiske tilstande.
  2. 1 2 Barichev, Goncharov, Serov, 2011 .
  3. 1 2 3 Gabidulin, Kshevetsky, Kolybelnikov, 2011 .
  4. Block Ciphers - Introduktion og oversigt - http://cacr.uwaterloo.ca/hac/about/chap7.pdf Arkiveret 24. juli 2012 på Wayback Machine
  5. Shannon C. , Company A. T. a. T. Communication Theory of Secretary Systems  (engelsk) // Bell Syst. Tech. J. - Short Hills, NJ, etc : 1949. - Vol. 28, Iss. 4. - P. 656-715. — ISSN 0005-8580 ; 2376-7154 - doi:10.1002/J.1538-7305.1949.TB00928.X
  6. 1 2 3 4 5 6 7 Schneier, 2002 .
  7. Fomichev, 2003 .
  8. Cusick, Thomas W. & Stanica, Pantelimon. Kryptografiske booleske funktioner og  applikationer . - Academic Press , 2009. - S. 158-159. — ISBN 9780123748904 .
  9. Schneier, 2002 , DES Scheduling Standard.
  10. Junod, Pascal & Canteaut, Anne. Avanceret lineær krypteringsanalyse af blok- og  strømcifere . — IOS Tryk, 2011. - S. 2. - ISBN 9781607508441 .
  11. Keliher, Liam et al. Modellering af lineære karakteristika for substitutions-permutationsnetværk // Udvalgte områder inden for kryptografi: 6. årlige internationale workshop, SAC'99, Kingston, Ontario, Canada, 9.-10. august, 1999: procedurer  (engelsk) / Hays, Howard & Carlisle, Adam. — Springer, 2000. - S. 79. - ISBN 9783540671855 .
  12. Baigneres, Thomas & Finiasz, Matthieu. Tast 'C' for Cipher // Udvalgte områder inden for kryptografi: 13. internationale workshop, SAC 2006, Montreal, Canada, 17.-18. august 2006: reviderede udvalgte artikler  / Biham, Eli & Yousseff, Amr. — Springer, 2007. - S. 77. - ISBN 9783540744610 .
  13. Cusick, Thomas W. & Stanica, Pantelimon. Kryptografiske booleske funktioner og  applikationer . - Academic Press , 2009. - S. 164. - ISBN 9780123748904 .
  14. Katz, Jonathan; Lindell, Yehuda. Introduktion til moderne  kryptografi . - CRC Press , 2008. - ISBN 9781584885511 . , side 166-167.
  15. Barichev, Goncharov, Serov, 2011 , s. 21.
  16. Bloker chiffertilstande . NIST Computer Security Resource Center. Arkiveret fra originalen den 19. november 2012.
  17. Menezes, van Oorschot, Vanstone, 1996 , s. 228-233.
  18. ISO/IEC 10116:2006 Informationsteknologi — Sikkerhedsteknikker — Driftsmåder for en n-bit blokchiffer . Dato for adgang: 16. november 2012. Arkiveret fra originalen 17. marts 2012.
  19. Morris Dworkin (december 2001), Recommendation for Block Cipher Modes of Operation – Methods and Techniques , Special Publication 800-38A (National Institute of Standards and Technology (NIST)) , < http://csrc.nist.gov/publications/ nistpubs/800-38a/sp800-38a.pdf > Arkiveret 28. august 2017 på Wayback Machine 
  20. Kryptographische Verfahren: Empfehlungen und Schlüssellängen, BSI TR-02102 (nr. Version 1.0), 20. juni 2008 
  21. Serge Vaudenay. Sikkerhedsfejl induceret af CBC-udfyldningsapplikationer til SSL, IPSEC, WTLS…  //  Fremskridt inden for kryptologi – EUROCRYPT 2002, Proc. International konference om teori og anvendelser af kryptografiske teknikker: tidsskrift. — Springer Verlag, 2002. — No. 2332 . - S. 534-545 .
  22. ISO/IEC 9797-1: Informationsteknologi - Sikkerhedsteknikker - Message Authentication Codes (MAC'er) - Del 1: Mechanisms using a block cipher , ISO/IEC, 2011 , < http://www.iso.org/iso/iso_catalogue /catalogue_ics/catalogue_detail_ics.htm?csnumber=50375 > Arkiveret 27. december 2013 på Wayback Machine 
  23. Kenneth G. Paterson; Gaven J. Watson. Immunising CBC Mode Against Padding Oracle Attacks: A Formal Security Treatment  (engelsk)  // Security and Cryptography for Networks - SCN 2008, Lecture Notes in Computer Science: journal. — Springer Verlag, 2008. — No. 5229 . - S. 340-357 .
  24. Martin, Keith M. Everyday Cryptography: Fundamental Principles and  Applications . - Oxford University Press , 2012. - S. 114. - ISBN 9780199695591 .
  25. Paar, Cristof et al. Understanding Cryptography: En lærebog for studerende og  praktikere . — Springer, 2010. - S. 30. - ISBN 9783642041006 .
  26. Menezes, van Oorschot, Vanstone, 1996 , s. 227.
  27. James Nechvatal, Elaine Barker, Lawrence Bassham, William Burr, Morris Dworkin, James Foti, Edward Roback (oktober 2000), Report on the Development of the Advanced Encryption Standard (AES) , National Institute of Standards and Technology (NIST) , < http://csrc.nist.gov/archive/aes/round2/r2report.pdf > Arkiveret 30. december 2010 på Wayback Machine 
  28. NIST Special Publication 800-57 Recommendation for Key Management - Del 1: Generelt (revideret) , marts, 2007 . Hentet 18. november 2012. Arkiveret fra originalen 6. juni 2014.
  29. Nicolas T. Courtois. Sikkerhedsevaluering af GOST 28147-89 i lyset af international standardisering Arkiveret 7. december 2012. . Kryptologi ePrint-arkiv: Rapport 2011/211
  30. SecurityLab: GOST 28147-89 blokchiffer knækket . Hentet 18. november 2012. Arkiveret fra originalen 14. maj 2013.
  31. ISO/IEC 10118-2:2010 Informationsteknologi - Sikkerhedsteknikker - Hash-funktioner - Del 2: Hash-funktioner ved hjælp af en n-bit blokcifre . Hentet 18. november 2012. Arkiveret fra originalen 24. maj 2012.
  32. Menezes, van Oorschot, Vanstone, 1996 , kapitel 9: Hash-funktioner og dataintegritet.
  33. NIST Special Publication 800-90A- anbefaling for generering af tilfældige tal ved brug af deterministiske tilfældige bitgeneratorer . Hentet 18. november 2012. Arkiveret fra originalen 9. oktober 2013.
  34. Menezes, van Oorschot, Vanstone, 1996 , Kapitel 5: Pseudorandom Bits and Sequences.

Litteratur