AEAD blok chiffer tilstand

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 27. maj 2020; checks kræver 2 redigeringer .

AEAD-blokchiffertilstande ( eng.  Authenticated Encryption with Associated Data , "autenticated encryption with attached data") er en klasse af blokchiffertilstande , hvor en del af meddelelsen er krypteret, en del forbliver åben, og hele meddelelsen er autentificeret . Ideen om en sådan krypteringsklasse blev først foreslået af Charanjit Jutla i 2000 [1] . Adskillige AEAD-krypteringstilstande er i øjeblikket foreslået: OCB-tilstand (siden OCB2), CCM-tilstand , EAX-tilstand , CWC-tilstand og GCM-tilstand . Sidstnævnte har været en NIST- standard siden 2007 [2] .

Fejlfinding

Der findes algoritmer, der tillader godkendelse og kryptering - autentificeret kryptering (herefter benævnt AE), dog giver de ikke mulighed for at vedhæfte almindelig tekst (tilknyttede data), hvilket især sker, hvis det er nødvendigt at vedhæfte en IP-adresse til en besked . Generelt kræves almindelig tekstdata ofte for at formidle overskrifter, adresser, porte, protokolversioner og andre data, der er nødvendige for at beslutte, hvordan chifferteksten skal behandles eller sendes. Disse data skal ofte autentificeres, mens de forbliver offentlige, for at behandlingsenheder kan håndtere disse meddelelser korrekt. Der er et ønske om at modificere AE-skemaet ved at tilføje et imitationsindsæt (MAC) til det for autentificering af åbne data, og at få et AEAD-skema "billigt". Imidlertid viser de åbenlyse "naive" løsninger, eksempler på som vi vil overveje nedenfor, sig at være ineffektive.

Lad, for eksempel, du skal sende en besked M , en åben header H , en vis AE-krypteringstilstand E er valgt, og en MAC-funktion. Så, hvis E(M) og H transmitteres , så vil H være uautentificeret. Hvis vi transmitterer E(M||H) og H , vil længden af ​​den transmitterede meddelelse være længere end den oprindelige (da krypteringsoperationen H , som er unødvendig i denne opgave, vil blive udført ), det samme kan siges i tilfælde af transmission H , E(M) , MAC( H||E(M)) (fordi E(M) allerede er autentificeret og brug af MAC er ressourcekrævende).

Det er vigtigt, at både AE-skemaer og AEAD-skemaer kræver brug af en nonce . Dette er nødvendigt for at sikre semantisk sikkerhed (en angribers umulighed, når en angriber gentagne gange bruger et skema under samme nøgle, for at opnå relationer mellem segmenter af krypterede meddelelser), samt for at beskytte mod et gentagelsesangreb , hvor en angriber, forklædt som en legitim bruger, sender en besked igen. Det er afsenderens ansvar at generere en nonce og kun bruge den én gang. Til dette kan du for eksempel bruge en tæller.

Implementeringsmetoder

Der er to fundamentalt forskellige måder at implementere AEAD-krypteringstilstanden på. Den første involverer brugen af ​​blokkryptering og personefterligning. I dette tilfælde kan designeren af ​​AEAD-skemaet vælge en hvilken som helst blokchiffer og funktionen for at få den imiterede indsættelse, mens han også bruger en nonce. Den anden måde er en form for transformation af AE-ordningen. Kravene til den sidste metode forbliver de samme: Kredsløbet må ikke bremse væsentligt, og det må ikke introducere nye sårbarheder . Sikkerheden og pålideligheden af ​​disse tilgange blev bevist i Charanjit S. Jutlas artikel "Encryption Modes with Almost Free Message Integrity", forudsat at nonce ikke genbruges, og hash-funktionen H er kryptografisk stærk.

Metoder til implementering af AEAD-tilstand ved hjælp af en blokchiffer og efterligningsindsættelse

Der er to måder at få AEAD-tilstand på ved hjælp af en blokcifre og efterligne indsættelse: først ved at kryptere meddelelsen, derefter ved at godkende (krypter-så-mac) eller i omvendt rækkefølge (mac-så-krypter).

Krypter-derefter-mac

I denne variant krypteres meddelelsen M først ved hjælp af nonce N, derefter bliver headeren H og den krypterede meddelelse autentificeret af MAC'en med den samme nonce.

Mac-så-krypter

Som ovenfor, men i omvendt rækkefølge: først oprettes en MAC-spoof fra H-headeren, nonce N, og almindelig tekst M, og derefter krypteres meddelelsen M med den modtagne spoof ved hjælp af den samme nonce-N.

Metoder til implementering af AEAD-tilstand med AE-skema

Som vist ovenfor er det ikke muligt effektivt at vedhæfte autentificeret klartekst til en AE-skema-bygget meddelelse ved hjælp af primitive metoder. Imidlertid er følgende to metoder blevet foreslået [1] .

Ikke-stjælende

Lad der være et AE-skema, der bruger en nonce på n bit, og en applikation, der bruger dette skema, behøver kun at bruge n2 bit (n2 < n). Så kan de frie h = n − n2 bit bruges til at lagre åbne data. Denne ordning har en grænse for størrelsen af ​​åbne data, men ofte er dette nok. Lad algoritmen have en nonce på 128 bit, og applikationen bruger kun 16, så er der 112 bit tilbage til åbne data, hvilket ofte er nok (for eksempel kræver en adresse i IPv4 -protokollen 32 bit).

Ciphertext oversættelse

Denne metode til at konvertere et AE-skema til et AEAD-skema er baseret på den logiske additionsoperation (XOR) , mens hvis en operation udføres på strenge af forskellig længde, så er den kortere polstret med ikke-signifikante nuller, f.eks. : .

Denne metode inkluderer følgende operationer: et AE-skema bruges til at kryptere beskeden med nøglen K og opnå en mellemliggende chiffertekst CT, derefter anvendes en hash-funktion for at opnå skiftet Δ, og til sidst opnås den endelige chiffertekst ved at anvende logisk additionsoperation Δ til de sidste bit CT. Bemærk, at hvis overskriften er en tom streng, overføres det resulterende AEAD-skema til det originale AE-krypteringsskema. Hvis headeren forbliver uændret under sessionen, så kan skiftet Δ beregnes på forhånd, hvilket har en positiv effekt på krypteringstiden - den resterende logiske additionsoperation implementeres let (inklusive i hardware).

Lad os definere det resulterende AEAD-skema mere strengt som følger:

Det vil sige, hvis vi antager , at vi beregner Δ med en længde på τ bits, krypterer M og udfører operationen med logisk addition af de sidste τ bits med Δ.

Denne metode har følgende fordele:

Imidlertid er ulempen ved metoden behovet for at bruge to nøgler K og K'.

AEAD-algoritmer

For eksempel beskriver vi nogle AEAD-algoritmer. To af dem er baseret på AES GCM, to af dem er baseret på AES CCM. En af algoritmerne i hvert par bruger en 128-bit nøgle, den anden bruger en 256-bit nøgle.

AEAD AES 128 GCM

Denne algoritme bruger AES-128 som blokchiffer, ved at bruge nøglen, nonce, besked og header som input. Headerlængde er 16 bytes. Chifferteksten genereres ved at tilføje et autentificeringsmærke til den mellemliggende chiffertekst, der modtages som output fra GCM-krypteringen. Kravene til input og output størrelse er som følger:

Således er chifferteksten 16 bytes længere end den oprindelige åbne besked.

AEAD AES 256 GCM

Algoritmen ligner fuldstændig den forrige, bortset fra at bruge en 32-byte nøgle og AES-256 GCM.

AEAD AES 128 CCM

Svarende til den forrige, bortset fra at bruge CCM-tilstand i stedet for GCM, mens:

Som med GCM er chifferteksten 16 bytes længere end den oprindelige besked.

AEAD AES 256 CCM

Algoritmen ligner fuldstændig den forrige, bortset fra at bruge en 32-byte nøgle og AES-256 GCM.

Noter

  1. 1 2 Jutla, Charanjit S. (2000-08-01) "Krypteringstilstande med næsten gratis meddelelsesintegritet" Arkiveret 19. august 2012 på Wayback Machine . Kryptologi ePrint-arkiv: Rapport 2000/039. IACR . Hentet 2013-03-16
  2. NIST Special Publication 800-38D Arkiveret 5. august 2011 på Wayback Machine , november 2007, anbefaling for BlockCipher-driftsmåder: Galois/Counter Mode (GCM) og GMAC.

Links