AEAD-lohkon salaustila

Kokeneet kirjoittajat eivät ole vielä tarkistaneet sivun nykyistä versiota, ja se voi poiketa merkittävästi 27.5.2020 tarkistetusta versiosta . tarkastukset vaativat 2 muokkausta .

AEAD-lohkosalaustilat ( eng .  Authenticated Encryption with Associated Data , "todennettu salaus liitetyillä tiedoilla") on lohkosalaustiloja , joissa osa viestistä salataan, osa pysyy avoimena ja koko viesti todennetaan . Ajatuksen tällaisesta salausluokasta esitti ensimmäisen kerran Charanjit Jutla vuonna 2000 [1] . Tällä hetkellä ehdotetaan useita AEAD-salaustiloja: OCB-tila (OCB2:sta lähtien), CCM-tila , EAX-tila , CWC-tila ja GCM-tila . Jälkimmäinen on ollut NIST - standardi vuodesta 2007 [2] .

Vianetsintä

On olemassa algoritmeja, jotka mahdollistavat todennuksen ja salauksen - todennettu salaus (jäljempänä AE), mutta ne eivät tarjoa mahdollisuutta liittää pelkkää tekstiä (liitetietoa), mikä tapahtuu erityisesti, jos on tarpeen liittää IP-osoite viestiin . Yleensä selkotekstidataa tarvitaan usein välittämään otsikot, osoitteet, portit, protokollaversiot ja muut tiedot, joita tarvitaan päätettäessä, kuinka salateksti tulee käsitellä tai lähettää. Usein nämä tiedot on todennettava samalla, kun ne pysyvät julkisina, jotta käsittelylaitteet voivat käsitellä näitä viestejä oikein. AE-mallia halutaan muokata lisäämällä siihen jäljitelmä (MAC) avoimen datan todentamista varten ja saada AEAD-malli "halvalla". Ilmeiset "naiivit" ratkaisut, joista esimerkkejä tarkastelemme alla, osoittautuvat kuitenkin tehottomiksi.

Olkoon esimerkiksi, että sinun on lähetettävä viesti M , avoin otsikko H , jokin AE-salaustila E on valittuna ja MAC-toiminto. Sitten, jos E(M) ja H lähetetään , H on todentamaton. Jos lähetämme E(M||H) ja H , niin lähetettävän viestin pituus on pidempi kuin alkuperäinen (koska tässä tehtävässä tarpeeton salausoperaatio H suoritetaan ), voidaan sanoa samaa lähetyksen H , E(M) , MAC(H||E(M)) tapauksessa (koska E(M) on jo autentikoitu ja MAC:n käyttö vaatii resursseja).

Tärkeää on, että sekä AE- että AEAD-skeemat vaativat nonce -arvon käyttöä . Tämä on tarpeen semanttisen turvallisuuden varmistamiseksi (hyökkääjän mahdottomuus saada salattujen viestien segmenttien välisiä suhteita, kun hän käyttää toistuvasti samaa avainta, sekä suojautuakseen uudelleentoistohyökkäykseltä , jossa hyökkääjä on naamioitunut laillisena käyttäjänä lähettää viestin uudelleen. Lähettäjän vastuulla on luoda nonce ja käyttää sitä vain kerran. Tätä varten voit käyttää esimerkiksi laskuria.

Toteutusmenetelmät

On olemassa kaksi pohjimmiltaan erilaista tapaa toteuttaa AEAD-salaustila. Ensimmäinen koskee lohkosalauksen ja toisena henkilönä esiintymisen käyttöä. Tässä tapauksessa AEAD-mallin suunnittelija voi valita minkä tahansa lohkosalauksen ja toiminnon jäljitellyn lisäyksen saamiseksi käyttämällä myös noncea. Toinen tapa on jonkinlainen AE-mallin muunnos. Viimeisen menetelmän vaatimukset pysyvät samoina: piiri ei saa hidastua merkittävästi, eikä se saa tuoda uusia haavoittuvuuksia . Näiden lähestymistapojen turvallisuus ja luotettavuus on todistettu Charanjit S. Jutlan artikkelissa "Salaustilat lähes vapaalla viestin eheydellä", edellyttäen, että noncea ei käytetä uudelleen ja hash-funktio H on kryptografisesti vahva.

Menetelmät AEAD-tilan toteuttamiseksi käyttämällä lohkosalausta ja esiintymisen lisäystä

On kaksi tapaa saada AEAD-tila käyttämällä lohkosalausta ja jäljittelemällä lisäystä: ensin salaamalla viesti, sitten todentamalla (salaa sitten-mac) tai käänteisessä järjestyksessä (mac-then-encrypt).

Encrypt-then-mac

Tässä muunnelmassa viesti M salataan ensin käyttämällä nonce N:ää, sitten MAC todentaa otsikon H ja salatun sanoman samalla nonce:lla.

Mac-then-encrypt

Kuten edellä, mutta käänteisessä järjestyksessä: ensin luodaan MAC-huijaus H-otsikosta, nonce N:stä ja selkeästä tekstistä M, ja sitten viesti M salataan vastaanotetulla huijauksella käyttämällä samaa nonce N:ää.

Menetelmät AEAD-tilan toteuttamiseksi AE-skeemalla

Kuten yllä on esitetty, ei ole mahdollista liittää tehokkaasti todennettua selkeää tekstiä AE-skeemalla rakennettuun viestiin primitiivisillä menetelmillä. Seuraavat kaksi menetelmää on kuitenkin ehdotettu [1] .

Varastamaton

Olkoon AE-malli, joka käyttää n bitin nonce-arvoa, ja tätä menetelmää käyttävän sovelluksen tarvitsee käyttää vain n2 bittiä (n2 < n). Tällöin vapaata h = n − n2 bittiä voidaan käyttää avoimen datan tallentamiseen. Tällä mallilla on raja avoimen datan kokoa, mutta usein tämä riittää. Olkoon algoritmin nonce 128 bittiä ja sovellus käyttää vain 16, niin avoimelle datalle jää 112 bittiä, mikä usein riittää (esim. IPv4 -protokollan osoite vaatii 32 bittiä).

Salatekstin käännös

Tämä menetelmä AE-kaavion muuntamiseksi AEAD-skeemaksi perustuu loogiseen summausoperaatioon (XOR) , kun taas jos operaatio suoritetaan eripituisille merkkijonoille, niin lyhyempi täytetään esimerkiksi merkityksettömillä nolilla. : .

Tämä menetelmä sisältää seuraavat toiminnot: AE-mallia käytetään viestin salaamiseen avaimella K ja välisalatekstin CT saamiseksi, sitten käytetään hash-funktiota siirtymän Δ saamiseksi ja lopuksi lopullinen salateksti saadaan käyttämällä looginen summausoperaatio Δ viimeisiin bitteihin CT. Huomaa, että jos otsikko on tyhjä merkkijono, tuloksena oleva AEAD-malli siirretään alkuperäiseen AE-salausmalliin. Jos otsikko pysyy ennallaan istunnon aikana, niin siirtymä Δ voidaan laskea etukäteen, millä on positiivinen vaikutus salausaikaan - jäljellä oleva looginen lisäystoiminto on helppo toteuttaa (mukaan lukien laitteistossa).

Määritellään tuloksena oleva AEAD-skeema tiukemmin seuraavasti:

Toisin sanoen olettaen , että laskemme Δ:n pituudella τ bittiä, salaamme M ja suoritamme viimeisten τ-bittien loogisen summauksen Δ:llä.

Tällä menetelmällä on seuraavat edut:

Menetelmän haittapuolena on kuitenkin tarve käyttää kahta näppäintä K ja K'.

AEAD-algoritmit

Kuvaamme esimerkiksi joitain AEAD-algoritmeja. Kaksi niistä perustuu AES GCM:ään ja kaksi AES CCM:ään. Yksi kunkin parin algoritmeista käyttää 128-bittistä avainta, toinen 256-bittistä avainta.

AEAD AES 128 GCM

Tämä algoritmi käyttää AES-128:aa lohkosalauksena käyttämällä avainta, noncea, viestiä ja otsikkoa syötteenä. Otsikon pituus on 16 tavua. Salateksti luodaan lisäämällä todennustunniste välissä olevaan salakirjoitustekstiin, joka vastaanotetaan GCM-salauksen lähtönä. Tulo- ja lähtökokovaatimukset ovat seuraavat:

Näin ollen salateksti on 16 tavua pidempi kuin alkuperäinen avoin viesti.

AEAD AES 256 GCM

Algoritmi on täysin samanlainen kuin edellinen, lukuun ottamatta 32-tavuisen avaimen ja AES-256 GCM:n käyttöä.

AEAD AES 128 CCM

Samanlainen kuin edellinen, paitsi että käytetään CCM-tilaa GCM:n sijaan, vaikka:

Kuten GCM:ssä, salateksti on 16 tavua pidempi kuin alkuperäinen viesti.

AEAD AES 256 CCM

Algoritmi on täysin samanlainen kuin edellinen, lukuun ottamatta 32-tavuisen avaimen ja AES-256 GCM:n käyttöä.

Muistiinpanot

  1. 1 2 Jutla, Charanjit S. (2000-08-01) "Encryption Modes with Almost Free Message Integrity" Arkistoitu 19. elokuuta 2012 Wayback Machinessa . Cryptology ePrint -arkisto: raportti 2000/039. IACR . Haettu 16.3.2013
  2. NIST-erikoisjulkaisu 800-38D Arkistoitu 5. elokuuta 2011 Wayback Machinessa , marraskuussa 2007, Suositus BlockCipher-käyttötapoille: Galois/Counter Mode (GCM) ja GMAC.

Linkit