Režim blokové šifry AEAD

Aktuální verze stránky ještě nebyla zkontrolována zkušenými přispěvateli a může se výrazně lišit od verze recenzované 27. května 2020; kontroly vyžadují 2 úpravy .

Režimy blokové šifry AEAD ( angl.  Authenticated Encryption with Associated Data , „autentizované šifrování s připojenými daty“) je třída režimů blokové šifry, ve kterých je část zprávy zašifrována, část zůstává otevřená a celá zpráva je ověřena . Myšlenku takové třídy šifrování poprvé navrhl Charanjit Jutla v roce 2000 [1] . V současné době je navrženo několik režimů šifrování AEAD: režim OCB (od OCB2), režim CCM , režim EAX , režim CWC a režim GCM . Poslední od roku 2007 je standardemNIST [2] .

Odstraňování problémů

Existují algoritmy, které umožňují autentizaci a šifrování - autentizované šifrování (dále jen AE), neumožňují však připojit prostý text (přidružená data), k čemuž dochází zejména v případě, že je nutné připojit IP adresa do zprávy . Obecně jsou data ve formátu prostého textu často vyžadována k přenosu záhlaví, adres, portů, verzí protokolů a dalších dat potřebných k rozhodnutí, jak by měl být šifrovaný text zpracován nebo odeslán. Tato data musí být často autentizována a zároveň zůstat veřejná, aby zpracovatelská zařízení mohla správně zpracovat tyto zprávy. Existuje přání upravit schéma AE přidáním imitace vložky (MAC) k ověření otevřených dat a získat schéma AEAD „levně“. Zjevná „naivní“ řešení, jejichž příklady budeme zvažovat níže, se však ukazují jako neefektivní.

Například potřebujete odeslat zprávu M , otevřenou hlavičku H , je vybrán nějaký režim šifrování AE E a funkce MAC. Pak, pokud jsou vysílány E(M) a H , pak H nebude ověřeno. Pokud přeneseme E(M||H) a H , bude délka přenášené zprávy delší než původní (protože se provede šifrovací operace H , která je v tomto úkolu zbytečná ), lze říci totéž pro případ přenosu H , E(M) , MAC( H||E(M)) (protože E(M) je již ověřeno a použití MAC je náročné na zdroje).

Důležité je, že jak schémata AE, tak schémata AEAD vyžadují použití nonce . To je nezbytné pro zajištění sémantické bezpečnosti (nemožnost útočníka při opakovaném použití schématu pod stejným klíčem získat vztahy mezi segmenty šifrovaných zpráv), jakož i pro ochranu před opakovaným útokem , ve kterém se útočník maskuje jako legitimní uživatel znovu odešle zprávu. Vygenerovat nonce a použít jej pouze jednou je odpovědností odesílatele. K tomu můžete použít například počítadlo.

Metody implementace

Existují dva zásadně odlišné způsoby, jak implementovat režim šifrování AEAD. První zahrnuje použití blokového šifrování a zosobnění. V tomto případě si návrhář schématu AEAD může vybrat libovolnou blokovou šifru a funkci pro získání imitovaného vložení a zároveň použít nonce. Druhým způsobem je určitá transformace schématu AE. Požadavky na poslední metodu zůstávají stejné: okruh se nesmí výrazně zpomalit a nesmí zavádět nová zranitelnost . Bezpečnost a spolehlivost těchto přístupů byla prokázána v článku Charanjita S. Jutly „Encryption Modes with Almost Free Message Integrity“, za předpokladu, že nonce není znovu použito a hashovací funkce H je kryptograficky silná.

Metody pro implementaci režimu AEAD pomocí blokové šifry a vkládání zosobnění

Existují dva způsoby, jak získat režim AEAD pomocí blokové šifry a napodobit vkládání: nejprve zašifrováním zprávy, poté autentizací (zašifrovat-pak-mac) nebo v opačném pořadí (mac-pak-zašifrovat).

Encrypt-then-mac

V této variantě se zpráva M nejprve zašifruje pomocí nonce N, poté se hlavička H a zašifrovaná zpráva ověří MAC se stejnou nonce.

Mac-then-encrypt

Stejně jako výše, ale v opačném pořadí: nejprve se vytvoří MAC spoof z hlavičky H, nonce N a prostého textu M a poté se zpráva M zašifruje přijatým spoofem pomocí stejného nonce N.

Metody pro implementaci režimu AEAD se schématem AE

Jak je ukázáno výše, není možné efektivně připojit ověřený prostý text ke zprávě sestavené podle schématu AE pomocí primitivních metod. Byly však navrženy následující dvě metody [1] .

Nekrást

Nechť existuje schéma AE používající počet n bitů a aplikace používající toto schéma potřebuje pouze n2 bitů (n2 < n). Volných h = n − n2 bitů pak lze použít k uložení otevřených dat. Toto schéma má limit na velikost otevřených dat, ale často to stačí. Nechť má algoritmus nonce 128 bitů a aplikace používá pouze 16, pak zbývá 112 bitů pro otevřená data, což často stačí (např. adresa v protokolu IPv4 vyžaduje 32 bitů).

Překlad šifrovaného textu

Tato metoda převodu schématu AE na schéma AEAD je založena na operaci logického sčítání (XOR) , zatímco pokud se operace provádí na řetězcích různých délek, pak se kratší doplní nevýznamnými nulami, například : .

Tato metoda zahrnuje následující operace: k zašifrování zprávy pomocí klíče K a získání mezilehlého šifrového textu CT se použije schéma AE, poté se použije hašovací funkce k získání posunu Δ a nakonec se získá konečný šifrový text použitím operace logického sčítání Δ k posledním bitům CT. Všimněte si, že pokud je záhlaví prázdný řetězec, výsledné schéma AEAD se přenese do původního schématu šifrování AE. Pokud hlavička zůstane během relace nezměněna, lze posun Δ vypočítat předem, což má pozitivní vliv na dobu šifrování - zbývající operace logického sčítání je snadno implementována (včetně hardwaru).

Definujme výsledné schéma AEAD přesněji následovně:

To znamená, že za předpokladu , že vypočítáme Δ s délkou τ bitů, zašifrujeme M a provedeme operaci logického sčítání posledních bitů τ s Δ.

Tato metoda má následující výhody:

Nevýhodou metody je však nutnost použití dvou klíčů K a K'.

Algoritmy AEAD

Například popisujeme některé algoritmy AEAD. Dva z nich jsou založeny na AES GCM, dva z nich jsou založeny na AES CCM. Jeden z algoritmů v každém páru používá 128bitový klíč, druhý používá 256bitový klíč.

AEAD AES 128 GCM

Tento algoritmus používá jako blokovou šifru AES-128, přičemž jako vstup používá klíč, nonce, zprávu a hlavičku. Délka záhlaví je 16 bajtů. Šifrovaný text je generován přidáním ověřovací značky k mezilehlému šifrovanému textu přijatému jako výstup šifrování GCM. Požadavky na velikost vstupu a výstupu jsou následující:

Šifrovaný text je tedy o 16 bajtů delší než původní otevřená zpráva.

AEAD AES 256 GCM

Algoritmus je zcela podobný předchozímu, s výjimkou použití 32bajtového klíče a AES-256 GCM.

AEAD AES 128 CCM

Podobné jako předchozí, s výjimkou použití režimu CCM místo GCM, zatímco:

Stejně jako u GCM je šifrovaný text o 16 bajtů delší než původní zpráva.

AEAD AES 256 CCM

Algoritmus je zcela podobný předchozímu, s výjimkou použití 32bajtového klíče a AES-256 GCM.

Poznámky

  1. 1 2 Jutla, Charanjit S. (2000-08-01) „Režimy šifrování s téměř bezplatnou integritou zpráv“ Archivováno 19. srpna 2012 na Wayback Machine . Archiv kryptologie ePrint: Zpráva 2000/039. IACR . Získáno 2013-03-16
  2. Speciální publikace NIST 800-38D Archivována 5. srpna 2011 na Wayback Machine , listopad 2007, Doporučení pro provozní režimy BlockCipher: Galois/Counter Mode (GCM) a GMAC.

Odkazy