GCM (kryptografie)

GCM (zkratka z anglického Galois/Counter Mode, doslova „Galoisovský/čítačový režim“) je provozní režim blokových šifer, který při použití libovolné blokové šifry (s délkou bloku 128 bitů) zároveň zajišťuje i autentizaci a je tak jedním z příkladů autentizovaného šifrování. Režim kombinuje myšlenku jednoduchého čítačového režimu (CTR) s autentizací násobením v konečném (Galoisově) tělese, od čehož je i odvozeno jeho jméno.

Myšlenku představili John Viega a David A. McGrew v roce 2004 na konferenci Indocrypt.[1] Jedná se o pokračovatele režimu CWC, který je rovněž nekrytý patenty, ale hůře efektivně implementovatelný v hardwaru.

Princip fungování

Schematické znázornění výpočtu GCM pro dvoublokový otevřený text

Režim GCM počítá s blokovou šifrou – typickým příkladem je AES s délkou bloku 128, ale GCM je navržen tak, aby fungoval i s jinými délkami bloku o velikosti alespoň 64 bitů. Podobně jako čítačový režim fakticky využívá danou blokovou šifru po způsobu proudových šifer: otevřený text je postupně xorován s blokově šifrovanými hodnotami zvyšovaného čítače. Pro dosažení bezpečnosti je tedy zapotřebí volit čítač vždy jinak, aby nedošlo v rámci různých zpráv k odhadnutelnému překryvu bloků šifrovaných čítačů.

Zároveň a paralelně k šifrování může probíhat i vytváření autentizačních dat. Ta mají (zhruba) podobu násobku všech jednotlivých šifrových bloků počítaného v konečném tělese GF(2128) daném mnohočlenem

který je dále pronásoben autentizačními daty a nakonec proxorován šifrovým blokem vytvořeným z úvodní hodnoty čítače. Podrobnější specifikace autentizační funkce je ve skutečnosti ale složitější, protože režim GCM nevyžaduje data zarovnaná na velikost bloku nějakým dřívějším výplňovým algoritmem, ale přímo ve své specifikaci zahrnuje i řešení nezarovnaného vstupu.

Standardizace, podpora a rozšíření

V roce 2007 byl režim GCM standardizován Národním institutem standardů a technologie.[2] Dále jej podporují například standardy IEEE 802.1AE, IEEE 802.11ad, IEEE P1619, IPsec[3][4], Secure Shell[5] a TLS (od verze 1.2).[6]

Na některých počítačových platformách byly pro rychlejší výpočet násobení v režimu GCM zavedeny nové instrukce bezpřenosového násobení. Příkladem je instrukční sada CLMUL na architektuře x86, která se poprvé objevuje v procesorech prodávaných v roce 2010, nebo instrukce XMULX a XMULXHI přidané v roce 2011 do platformy SPARC.

Odkazy

Reference

V tomto článku byly použity překlady textů z článků Galois/Counter Mode na anglické Wikipedii a Galois/Counter Mode na německé Wikipedii.

  1. MCGREW, David; VIEGA, John. The Security and Performance of the Galois/Counter Mode (GCM) of Operation. In: Proceedings of INDOCRYPT 2004. [s.l.]: Springer-Verlag, 2004. Dostupné online. ISBN 9783540241300. (anglicky)
  2. DWORKIN, Morris. Recommendation for Block Cipher Modes of Operation: Galois/Counter Mode (GCM) and GMAC [online]. 2007. 2007. Dostupné online. (anglicky) 
  3. VIEGA, John; MCGREW, David A. The Use of Galois/Counter Mode (GCM) in IPsec Encapsulating Security Payload (ESP). Request for Comments [online]. Červen 2005. Čís. 4106. Dostupné online. ISSN 2070-1721. (anglicky) 
  4. VIEGA, John; MCGREW, David A. The Use of Galois Message Authentication Code (GMAC) in IPsec ESP and AH. Request for Comments [online]. Květen 2006. Čís. 4543. Dostupné online. ISSN 2070-1721. (anglicky) 
  5. IGOE, Kevin M.; SOLINAS, Jerome A. AES Galois Counter Mode for the Secure Shell Transport Layer Protocol. Request for Comments [online]. Srpen 2009. Čís. 5647. Dostupné online. ISSN 2070-1721. (anglicky) 
  6. SALOWEY, Joseph; CHOUDHURY, Abhijit; MCGREW, David. AES Galois Counter Mode (GCM) Cipher Suites for TLS. Request for Comments [online]. Srpen 2008. Čís. 5288. Dostupné online. ISSN 2070-1721. (anglicky) 

Externí odkazy

  • DWORKIN, Morris. Recommendation for Block Cipher Modes of Operation: Galois/Counter Mode (GCM) and GMAC [online]. 2007. 2007. Dostupné online. (anglicky) 

Média použitá na této stránce

GCM-Galois Counter Mode.svg
Galois/Counter Mode visualization of operation.