AEAD blokk titkosítási mód

Az oldal jelenlegi verzióját még nem ellenőrizték tapasztalt közreműködők, és jelentősen eltérhet a 2020. május 27-én felülvizsgált verziótól ; az ellenőrzések 2 szerkesztést igényelnek .

Az  AEAD blokk titkosítási módok ( Hitelesített titkosítás társított adatokkal , "hitelesített titkosítás csatolt adatokkal") a blokk - titkosítási módok egy osztálya, amelyben az üzenet egy része titkosítva van, egy része nyitva marad, és a teljes üzenet hitelesítésre kerül . Egy ilyen titkosítási osztály ötletét először Charanjit Jutla vetette fel 2000-ben [1] . Jelenleg számos AEAD titkosítási mód javasolt: OCB mód (az OCB2 óta), CCM mód , EAX mód , CWC mód és GCM mód . Ez utóbbi 2007 óta a NIST szabvány [2] .

Hibaelhárítás

Vannak olyan algoritmusok, amelyek lehetővé teszik a hitelesítést és a titkosítást - hitelesített titkosítás (a továbbiakban: AE), azonban nem biztosítanak egyszerű szöveg (társított adatok) csatolásának lehetőségét, ami különösen akkor fordul elő, ha szükséges csatolni egy IP cím egy üzenethez . Általánosságban elmondható, hogy egyszerű szöveges adatokra gyakran van szükség a fejlécek, címek, portok, protokollverziók és egyéb adatok továbbításához, amelyek a rejtjelezett szöveg feldolgozási vagy küldési módjának eldöntéséhez szükségesek. Ezeket az adatokat gyakran hitelesíteni kell, miközben nyilvánosak maradnak, hogy a feldolgozó eszközök megfelelően kezeljék ezeket az üzeneteket. Az AE sémát kívánják módosítani egy imitációs betét (MAC) hozzáadásával a nyílt adatok hitelesítésére, és egy AEAD sémát „olcsón” szerezni. Azonban a nyilvánvaló "naiv" megoldások, amelyekre az alábbiakban példákat veszünk, nem bizonyulnak hatékonynak.

Legyen például el kell küldenie egy M üzenetet , egy nyitott H fejlécet, bizonyos E titkosítási mód van kiválasztva és egy MAC függvényt. Ekkor, ha E(M) és H átvitelre kerül , akkor H nem lesz hitelesítve. Ha E(M||H) és H -t továbbítunk, akkor a továbbított üzenet hossza hosszabb lesz, mint az eredeti (mivel a feladatnál szükségtelen H titkosítási művelet kerül végrehajtásra ), ugyanez elmondható H , E(M) , MAC( H||E(M)) átvitel esetén (mivel az E(M) már hitelesített, és a MAC használata erőforrásigényes).

Fontos, hogy mind az AE sémák, mind az AEAD sémák megkövetelik a nonce használatát . Ez szükséges a szemantikai biztonság biztosításához (a támadó lehetetlensége, hogy egy sémát ugyanazon kulcs alatt ismételten használjon, hogy kapcsolatokat szerezzen a titkosított üzenetek szegmensei között), valamint a visszajátszás elleni védelem érdekében , amelyben a támadó álcázott törvényes felhasználóként újra elküld egy üzenetet. A küldő felelőssége, hogy egy nonce-t generáljon és csak egyszer használja fel. Ehhez használhat például egy számlálót.

Megvalósítási módszerek

Az AEAD titkosítási mód megvalósításának két alapvetően eltérő módja van. Az első a blokk titkosítás és a megszemélyesítés használata. Ebben az esetben az AEAD séma tervezője bármilyen blokk titkosítást és függvényt választhat az imitált beillesztéshez, miközben nonce-t is használ. A második mód az AE séma valamilyen átalakítása. Az utolsó módszerrel szemben támasztott követelmények változatlanok: az áramkör nem lassulhat le jelentősen, és nem vezethet be új sebezhetőséget . Ezeknek a megközelítéseknek a biztonságát és megbízhatóságát Charanjit S. Jutla „Titkosítási módok majdnem szabad üzenetintegritással” című cikke bizonyítja, feltéve, hogy a nonce-t nem használják fel újra, és a H hash-függvény kriptográfiailag biztonságos.

Módszerek az AEAD mód megvalósításához blokkrejtjel és megszemélyesítési beszúrással

Kétféleképpen érheti el az AEAD módot blokk titkosítással és a beillesztés utánzásával: először az üzenet titkosításával, majd hitelesítéssel (titkosítás-mac-mac), vagy fordított sorrendben (mac-then-encrypt).

Encrypt-the-mac

Ebben a változatban az M üzenetet először a nonce N segítségével titkosítja, majd a H fejlécet és a titkosított üzenetet a MAC hitelesíti ugyanazzal a nonce-vel.

Mac-then-encrypt

A fentiek szerint, de fordított sorrendben: először egy MAC-hamisítás jön létre a H fejlécből, a nonce N-ből és az M egyszerű szövegből, majd az M üzenetet a kapott hamisítással titkosítjuk, ugyanazt a nonce N-t használva.

Módszerek az AEAD mód AE sémával való megvalósításához

Mint fentebb látható, primitív módszerekkel nem lehet hitelesített egyszerű szöveget hatékonyan csatolni egy AE-séma által felépített üzenethez. Azonban a következő két módszert javasolták [1] .

Nem lopás

Legyen egy AE séma, amely n bites nonce-t használ, és egy ezt a sémát használó alkalmazásnak csak n2 bitet kell használnia (n2 < n). Ekkor a szabad h = n − n2 bit használható nyílt adatok tárolására. Ez a séma korlátozza a nyílt adatok méretét, de gyakran ez is elegendő. Legyen az algoritmus 128 bites nonce, és az alkalmazás csak 16 bitet használ, majd 112 bit marad a nyílt adatok számára, ami gyakran elég (például az IPv4 protokollban egy címhez 32 bit szükséges).

Rejtjeles szöveg fordítása

Az AE-séma AEAD-sémává alakításának ez a módszere a logikai összeadási műveleten (XOR) alapul , míg ha egy műveletet különböző hosszúságú karakterláncokon hajtunk végre, akkor a rövidebbet például nem szignifikáns nullákkal töltjük ki. : .

Ez a módszer a következő műveleteket tartalmazza: egy AE sémát használnak az üzenet titkosításához a K kulccsal és egy közbenső titkosított szöveg CT beszerzésére, majd egy hash függvényt alkalmaznak a Δ eltolás eléréséhez, és végül a végső rejtjelezett szöveget a Δ logikai összeadási művelet az utolsó bitekhez CT. Vegye figyelembe, hogy ha a fejléc egy üres karakterlánc, az eredményül kapott AEAD séma átkerül az eredeti AE titkosítási sémába. Ha a fejléc változatlan marad a munkamenet során, akkor a Δ eltolás előre kiszámítható, ami pozitív hatással van a titkosítási időre - a fennmaradó logikai összeadás művelet könnyen megvalósítható (hardveren is).

Határozzuk meg szigorúbban az eredményül kapott AEAD sémát a következőképpen:

Vagyis feltételezve, hogy Δ-t τ bit hosszúsággal számítjuk ki , M-et titkosítjuk és végrehajtjuk az utolsó τ bitek logikai összeadását Δ-vel.

Ennek a módszernek a következő előnyei vannak:

A módszer hátránya azonban, hogy két K és K' billentyűt kell használni.

AEAD algoritmusok

Például leírunk néhány AEAD algoritmust. Ezek közül kettő AES GCM, kettő pedig AES CCM alapú. Mindegyik párban az egyik algoritmus 128 bites, a másik 256 bites kulcsot használ.

AEAD AES 128 GCM

Ez az algoritmus az AES-128-at használja blokk titkosításként, bemenetként a kulcsot, a nonce-t, az üzenetet és a fejlécet használja. A fejléc hossza 16 bájt. A titkosított szöveget úgy állítják elő, hogy egy hitelesítési címkét adnak a GCM-titkosítás kimeneteként kapott közbenső rejtjelezett szöveghez. A bemeneti és kimeneti méretre vonatkozó követelmények a következők:

Így a titkosított szöveg 16 bájttal hosszabb, mint az eredeti nyitott üzenet.

AEAD AES 256 GCM

Az algoritmus teljesen hasonló az előzőhöz, kivéve a 32 bájtos kulcs és az AES-256 GCM használatát.

AEAD AES 128 CCM

Hasonló az előzőhöz, azzal a kivétellel, hogy a CCM módot használja a GCM helyett, miközben:

A GCM-hez hasonlóan a titkosított szöveg 16 bájttal hosszabb, mint az eredeti üzenet.

AEAD AES 256 CCM

Az algoritmus teljesen hasonló az előzőhöz, kivéve a 32 bájtos kulcs és az AES-256 GCM használatát.

Jegyzetek

  1. 1 2 Jutla, Charanjit S. (2000-08-01) "Titkosítási módok szinte szabad üzenetintegritással" Archiválva : 2012. augusztus 19. a Wayback Machine -nél . Cryptology ePrint Archívum: Jelentés 2000/039. IACR . Letöltve: 2013-03-16
  2. NIST Special Publication 800-38D Archiválva : 2011. augusztus 5., a Wayback Machine , 2007. november, Ajánlás a blokkcifrás üzemmódokhoz: Galois/Counter Mode (GCM) és GMAC.

Linkek