# Mode Galois/Comptador

En criptografia, el mode Galois/Comptador (GCM) és un mode d'operació per a xifratge de blocs criptogràfics de clau simètrica que s'adopta àmpliament per al seu rendiment. Les taxes de rendiment de GCM per als canals de comunicació d'alta velocitat d'última generació es poden aconseguir amb recursos de maquinari econòmics.
L'algoritme GCM proporciona tant autenticitat (integritat) com confidencialitat de les dades i pertany a la classe de mètodes de xifratge autenticat amb dades associades (AEAD). Això vol dir que com a entrada es necessita una clau K, una mica de text pla P i algunes dades associades AD; A continuació, xifra el text sense format mitjançant la clau per produir el text xifrat C, i calcula una etiqueta d'autenticació T a partir del text xifrat i les dades associades (que roman sense xifrar). Un destinatari amb coneixement de K, després de rebre AD, C i T, pot desxifrar el text xifrat per recuperar el text pla P i pot comprovar l'etiqueta T per assegurar-se que no s'han manipulat ni el text xifrat ni les dades associades.
GCM utilitza un xifratge de blocs amb una mida de bloc de 128 bits (normalment AES-128) que funciona en mode comptador per a l'encriptació, i utilitza l'aritmètica en el camp de Galois GF(2$^{128}$) per calcular l'etiqueta d'autenticació; d'aquí el nom.
El codi d'autenticació de missatges de Galois (GMAC) és una variant només d'autenticació del GCM que pot formar un codi d'autenticació de missatges incremental. Tant GCM com GMAC poden acceptar vectors d'inicialització de longitud arbitrària.
Els diferents modes de funcionament de xifratge de blocs poden tenir característiques de rendiment i eficiència significativament diferents, fins i tot quan s'utilitzen amb el mateix xifrat de blocs. GCM pot aprofitar al màxim el processament paral·lel i la implementació de GCM pot fer un ús eficient d'una canalització d'instruccions o una canalització de maquinari. Per contra, el mode d'operació d'encadenament de blocs de xifratge (CBC) provoca parades de canonades que dificulten la seva eficiència i rendiment.

## Funcionament bàsic

Com en el mode de comptador normal, els blocs es numeren seqüencialment, i després aquest número de bloc es combina amb un vector d'inicialització (IV) i es xifra amb un xifrat de blocs E, generalment AES. El resultat d'aquest xifratge es fa XOR amb el text pla per produir el text xifrat. Com tots els modes de comptador, es tracta essencialment d'un xifrat de flux i, per tant, és essencial que s'utilitzi un IV diferent per a cada flux xifrat.
Els blocs de text xifrat es consideren coeficients d'un polinomi que després s'avalua en un punt H dependent de la clau, utilitzant l'aritmètica de camps finits. A continuació, el resultat es xifra, produint una etiqueta d'autenticació que es pot utilitzar per verificar la integritat de les dades. Aleshores, el text xifrat conté l'etiqueta IV, el text xifrat i l'etiqueta d'autenticació.

## Base matemàtica

GCM combina el conegut mode de comptador de xifratge amb el nou mode d'autenticació Galois. La característica clau és la facilitat de càlcul paral·lel de la multiplicació de camps de Galois utilitzada per a l'autenticació. Aquesta característica permet un rendiment més alt que els algorismes de xifratge, com CBC, que utilitzen modes d'encadenament. El camp GF(2 $^{128}$ ) utilitzat està definit pel polinomi
$x^{128}+x^{7}+x^{2}+x+1$
L'etiqueta d'autenticació es construeix introduint blocs de dades a la funció GHASH i xifrant el resultat. Aquesta funció GHASH es defineix per
$\operatorname {GHASH} (H,A,C)=X_{m+n+1}$
on H = E $_k$ (0 $^{128}$ ) és la clau hash, una cadena de 128 bits zero xifrada amb el xifrat de blocs, A és dades que només s'autentiquen (no xifrades), C és el text xifrat, m és el nombre de 128- blocs de bits a A (arrodonits cap amunt), n és el nombre de blocs de 128 bits a C (arrodonits cap amunt) i la variable X $_i$ per i = 0, ..., m + n + 1 i = 0, ..., m + n + 1 es defineix a continuació.
En primer lloc, el text autenticat i el text xifrat s'amplien per separat a múltiples de 128 bits i es combinen en un sol missatge S $_i$ :
$S_{i}={\begin{cases}A_{i}&{\text{for }}i=1,\ldots ,m-1\\A_{m}^{*}\parallel 0^{128-v}&{\text{for }}i=m\\C_{i-m}&{\text{for }}i=m+1,\ldots ,m+n-1\\C_{n}^{*}\parallel 0^{128-u}&{\text{for }}i=m+n\\\operatorname {len} (A)\parallel \operatorname {len} (C)&{\text{for }}i=m+n+1\end{cases}}$
on len( A ) i len( C ) són les representacions de 64 bits de les longituds de bits de A i C, respectivament, v = len ( A ) mod 128 és la longitud de bits del bloc final de A, u = len ( C ) mod 128 és la longitud de bits del bloc final de C, i $\parallel$ indica la concatenació de cadenes de bits.

## Ús

El mode GCM s'utilitza a la seguretat Ethernet IEEE 802.1AE (MACsec), protocol de seguretat WPA3-Enterprise Wifi, IEEE 802.11ad (també anomenat WiGig ), protocols de seguretat de canal de fibra ANSI (FC-SP), cinta IEEE P1619.1 emmagatzematge, estàndards IETF IPsec, SSH, TLS 1.2 i TLS 1.3. AES-GCM s'inclou a la NSA Suite B Cryptography i la seva darrera substitució a la suite Commercial National Security Algorithm (CNSA) de 2018. El mode GCM s'utilitza al servidor i al client SoftEther VPN, així com a OpenVPN des de la versió 2.4.

## Referències

* ↑ Lemsitzer, S. «Multi-gigabit GCM-AES Architecture Optimized for FPGAs». A: Paillier. Cryptographic Hardware and Embedded Systems - CHES 2007. 4727. Springer, 2007, p. 227–238 (Lecture Notes in Computer Science). DOI 10.1007/978-3-540-74735-2_16. ISBN 978-3-540-74734-5.
* ↑ Rafael. «What is Galois/Counter Mode (GCM)?» (en anglès americà), 09-03-2022. [Consulta: 10 maig 2024].
* ↑ «Algorithm Registration - Computer Security Objects Register | CSRC | CSRC» (en anglès), 24-05-2016.
* ↑ «Why SoftEther VPN – SoftEther VPN Project» (en anglès).