FILE G2 / CRIPTOGRAFÍA EXPLICADA
AES-256-GCM: el estándar de cifrado autenticado que protege tus archivos en el iPhone
AES-256-GCM es el algoritmo de cifrado autenticado que protege las conexiones TLS 1.3, los túneles VPN de WireGuard, los mensajes de Signal y los archivos cifrados en tu iPhone. Combina el Estándar de Cifrado Avanzado con una clave de 256 bits en modo Galois/Contador, proporcionando tanto confidencialidad como verificación de integridad en una sola pasada. Este artículo explica cómo funciona AES-256-GCM, dónde se utiliza y cómo AppVault lo implementa con nonces por archivo y envoltura de clave mediante el Secure Enclave.
ACTUALIZADO · 2026-05-16 · REVISADO POR APPVAULT
TL;DR
AES-256-GCM es un algoritmo de cifrado autenticado que cifra datos y verifica su integridad usando una sola clave y un nonce único por mensaje. Está definido por estándares NIST, tiene aceleración por hardware en iPhones modernos y lo utilizan TLS 1.3, WireGuard y Signal. AppVault aplica AES-256-GCM con un nonce de 96 bits único por archivo, una clave derivada mediante PBKDF2 envuelta por el Secure Enclave y sin llamadas de red.
AES-256-GCM no es un único algoritmo. Es la combinación de dos estándares: el Estándar de Cifrado Avanzado (AES) con una clave de 256 bits, y el modo de operación Galois/Contador (GCM). Juntos forman un esquema de cifrado autenticado que proporciona tanto confidencialidad como verificación de integridad en una sola pasada. Es el cifrado predeterminado en TLS 1.3, WireGuard, Signal y el cifrado a nivel de archivo de iOS. Comprender cómo funciona es importante porque la mayoría de los fallos de seguridad en AES-256-GCM provienen de errores de implementación, no de la ruptura del cifrado.
Para una introducción no técnica al cifrado por bloques subyacente — qué significa “clave de 256 bits”, por qué el espacio de claves es indescifrable por fuerza bruta, cómo fue seleccionado AES por NIST en 2001 — lee primero la descripción en lenguaje sencillo ¿Qué es el cifrado AES-256?. Este artículo profundiza específicamente en el modo GCM.
El cifrado por bloques: AES-256
AES es un cifrado simétrico por bloques estandarizado por NIST en FIPS 197. Opera sobre bloques de 128 bits y admite tamaños de clave de 128, 192 y 256 bits. AES-256 utiliza una clave de 256 bits y realiza 14 rondas de operaciones de sustitución-permutación. Cada ronda aplica cuatro transformaciones: SubBytes (sustitución no lineal mediante caja S), ShiftRows (transposición de bytes), MixColumns (multiplicación de matrices sobre GF(2^8)) y AddRoundKey (XOR con la clave de ronda derivada de la clave maestra).
El margen de seguridad de AES-256 es alto. Los mejores ataques criptoanalíticos conocidos se dirigen a variantes de rondas reducidas (por ejemplo, AES-128 de 7 rondas) o a modelos de clave relacionada que no se aplican en el uso real. Para el AES-256 completo de 14 rondas, no existe ningún ataque práctico que reduzca el tamaño efectivo de la clave por debajo de 256 bits. Por eso AES-256 está aprobado para datos de nivel “Top Secret” por la Agencia de Seguridad Nacional de EE.UU.
AES-256 cuenta con aceleración por hardware en prácticamente todas las CPU modernas. Los procesadores Intel y AMD incluyen instrucciones AES-NI. Apple Silicon (chips de la serie M y A) incluye extensiones criptográficas ARM que aceleran las operaciones AES, SHA y GCM. En un iPhone, el cifrado AES-256 de un archivo de 10 MB se completa en milisegundos.
El modo: Galois/Contador (GCM)
Un cifrado por bloques cifra solo un bloque a la vez. Para cifrar mensajes de más de 128 bits, se necesita un modo de operación. GCM, especificado en NIST SP 800-38D, es un modo de cifrado autenticado que combina una variante del modo contador para el cifrado con una función hash universal (GHASH) para la autenticación. La misma construcción está registrada como primitiva AEAD en IETF RFC 5116.
GCM funciona en dos fases. Primero, el texto plano se cifra usando AES en modo contador: un contador de 128 bits se incrementa por cada bloque, se cifra con AES y se aplica XOR con el texto plano para producir el texto cifrado. El valor inicial del contador se deriva de un nonce (número de un solo uso) más un contador que comienza en 1. Segundo, el texto cifrado y los datos asociados (metadatos que deben autenticarse pero no cifrarse) se introducen en GHASH, una evaluación polinómica en GF(2^128). La salida de GHASH se cifra entonces con AES para producir la etiqueta de autenticación.
El resultado es una única salida: texto cifrado más una etiqueta de autenticación de 128 bits (longitud por defecto, se puede truncar). El receptor descifra recalculando la etiqueta y comparándola. Si la etiqueta coincide, los datos son auténticos. Si no, el receptor debe rechazar los datos.
GCM es paralelizable. El modo contador permite cifrar múltiples bloques simultáneamente, razón por la cual la aceleración por hardware puede lograr un alto rendimiento. En un iPhone con extensiones criptográficas ARM, AES-256-GCM puede cifrar a varios gigabits por segundo.
Disciplina del nonce: el punto de fallo más común
AES-256-GCM requiere un nonce. El estándar especifica un nonce de 96 bits. El nonce debe ser único para cada cifrado realizado con la misma clave. Reutilizar un nonce con la misma clave permite a un atacante recuperar la clave de autenticación GHASH (H) y luego falsificar mensajes arbitrarios.
Las matemáticas no perdonan: si dos textos cifrados comparten el mismo nonce y clave, el XOR de las dos salidas GHASH revela el XOR de los textos planos. A partir de ahí, un atacante puede recuperar H y producir etiquetas válidas para cualquier texto cifrado. Esto no es un ataque teórico. Se ha explotado en la práctica, más famosamente en el artículo de 2015 “Nonce-Disrespecting Adversaries”, que encontró vulnerabilidades de reutilización de nonce en varias implementaciones de TLS.
La mitigación correcta es no reutilizar nunca un nonce bajo la misma clave. En la práctica, esto significa generar un nonce aleatorio (96 bits da 2^96 posibilidades, pero el límite de cumpleaños implica que no se deben cifrar más de 2^32 mensajes con nonces aleatorios para mantener la probabilidad de colisión despreciable) o usar un contador determinista que se garantice único por mensaje.
AppVault utiliza un nonce de 96 bits único por archivo. El nonce se genera mediante un generador de números aleatorios criptográficamente seguro (SecRandomCopyBytes en iOS) y se almacena junto al texto cifrado. Como cada archivo tiene su propio nonce, y la clave se deriva por instalación y se envuelve mediante el Secure Enclave, el riesgo de reutilización del nonce queda eliminado.
Aceleración por hardware: por qué es importante
AES-256-GCM es computacionalmente intensivo en software. La multiplicación GHASH en GF(2^128) es particularmente costosa sin soporte de hardware. Las CPU modernas incluyen instrucciones dedicadas que realizan rondas AES y operaciones GHASH en un solo ciclo.
En un iPhone, las extensiones criptográficas ARM incluyen:
- Instrucciones AES (AESE, AESD, AESMC, AESIMC) que realizan una ronda de cifrado o descifrado AES.
- Instrucciones GHASH (PMULL/PMULL2 para multiplicación polinómica) que aceleran el cálculo de GHASH.
El Secure Enclave en Apple Silicon incluye un motor AES dedicado que puede cifrar datos sin exponer la clave a la CPU principal. AppVault utiliza el Secure Enclave para envolver la clave de cifrado de archivos, asegurando que incluso si la CPU principal se ve comprometida, la clave permanece protegida.
Sin aceleración por hardware, AES-256-GCM sería demasiado lento para aplicaciones en tiempo real como los handshakes TLS o la transmisión de vídeo. Con ella, la sobrecarga es insignificante.
Dónde se utiliza AES-256-GCM
AES-256-GCM es el conjunto de cifrado predeterminado en TLS 1.3 (TLS_AES_256_GCM_SHA384). Cada conexión HTTPS que utiliza TLS 1.3 depende de él. WireGuard, el protocolo VPN moderno, usa AES-256-GCM (o ChaCha20-Poly1305 en dispositivos sin AES por hardware). Signal, la aplicación de mensajería cifrada, utiliza AES-256-GCM para el cifrado de archivos multimedia. iOS usa AES-256-GCM para el cifrado a nivel de archivo de Data Protection.
La ubicuidad de AES-256-GCM no es accidental. Es un estándar NIST, con aceleración por hardware y bien entendido por la comunidad criptográfica. Es la opción segura por defecto para cualquier aplicación que necesite cifrado autenticado.
Comparación con otros modos de cifrado autenticado
AES-256-GCM no es el único modo AEAD. ChaCha20-Poly1305 es una alternativa popular, especialmente en dispositivos sin aceleración AES por hardware. ChaCha20 es un cifrado de flujo, no un cifrado por bloques, y Poly1305 es un hash polinómico similar a GHASH. ChaCha20-Poly1305 es más rápido en software que AES-256-GCM en software, pero en hardware con AES-NI, AES-256-GCM es más rápido.
AES-256-CCM (Counter con CBC-MAC) es otro modo AEAD estándar NIST, pero no es paralelizable y es más lento que GCM. CCM se utiliza en algunos protocolos IoT e inalámbricos, pero TLS y la mayoría de las aplicaciones modernas prefieren GCM.
AES-256-GCM-SIV es una variante resistente al mal uso del nonce que se degrada de forma controlada si se reutiliza un nonce (solo revela que dos mensajes son iguales, no el texto plano). Es más lento que GCM estándar y está menos desplegado.
Para la mayoría de las aplicaciones, AES-256-GCM es la elección correcta. Es rápido, estándar y seguro cuando se implementa correctamente.
Cómo implementa AppVault AES-256-GCM
AppVault utiliza AES-256-GCM para cada archivo almacenado en la bóveda. La implementación sigue estos pasos:
- Derivación de clave. El patrón de desbloqueo del usuario se transforma en una clave maestra de 256 bits usando PBKDF2-SHA256 con 600.000 iteraciones y una sal de 128 bits por instalación. Esta clave nunca se usa directamente para el cifrado.
- Envoltura mediante Secure Enclave. La clave maestra se envía al Secure Enclave, que genera una nueva clave (la “clave de envoltura”) que nunca sale del chip. El Enclave cifra la clave maestra con la clave de envoltura y devuelve la clave envuelta a la CPU principal. La clave maestra en texto plano se borra de la memoria.
- Cifrado de archivos. Para cada archivo, se genera un nuevo nonce de 96 bits usando SecRandomCopyBytes. La clave envuelta se desenvuelve dentro del Secure Enclave y se utiliza para cifrar el archivo con AES-256-GCM. El texto cifrado y el nonce se escriben en el almacenamiento. La etiqueta de autenticación se añade al texto cifrado.
- Cifrado del catálogo. Incluso la lista de archivos (nombres, fechas, tamaños) se cifra con AES-256-GCM bajo una clave separada derivada de la misma clave maestra. Esto significa que un atacante con acceso directo al dispositivo no puede determinar cuántos archivos existen.
El resultado es que dos archivos nunca producen el mismo texto cifrado, incluso si contienen texto plano idéntico. El Secure Enclave garantiza que la clave de cifrado nunca se expone al sistema operativo principal. Y como AppVault no realiza ninguna llamada de red, no existe un servidor que pueda ser comprometido para filtrar claves o textos cifrados.
Limitaciones de AES-256-GCM
AES-256-GCM no protege contra todo. Es vulnerable a ataques de canal lateral si la implementación filtra información de tiempos o consumo de energía. El cálculo GHASH es particularmente sensible a ataques de temporización; se requieren implementaciones de tiempo constante. La biblioteca CoreCrypto de Apple proporciona una implementación de AES-256-GCM de tiempo constante, y AppVault utiliza esa biblioteca.
AES-256-GCM no proporciona secreto hacia adelante. Si la clave se ve comprometida, todos los textos cifrados pasados pueden descifrarse. El secreto hacia adelante se logra a nivel de protocolo (p.ej., TLS 1.3 utiliza intercambio de claves Diffie-Hellman efímero) y no es una propiedad del cifrado en sí. AppVault mitiga esto manteniendo la clave en el dispositivo y nunca transmitiéndola.
AES-256-GCM no es resistente a la computación cuántica. El algoritmo de Grover reduce el tamaño efectivo de la clave de AES-256 de 256 bits a 128 bits. Un ordenador cuántico lo suficientemente grande podría romperlo. Sin embargo, tal ordenador cuántico no existe y no se espera en la próxima década. Para secretos a largo plazo, se están estandarizando cifrados post-cuánticos como CRYSTALS-Kyber.
AES-256-GCM no protege contra el criptoanálisis de tipo “manguera de goma” o la incautación física del dispositivo. Si un atacante tiene acceso físico a tu iPhone y puede obligarte a desbloquearlo, ningún cifrado puede proteger tus archivos. El modelo de amenazas de AppVault asume que el dispositivo está bajo tu control.
Por qué AppVault eligió AES-256-GCM
AppVault eligió AES-256-GCM porque es el algoritmo de cifrado autenticado más ampliamente desplegado con aceleración por hardware en todos los iPhones modernos. Está estandarizado, revisado por pares y es confiado por los protocolos de seguridad más grandes del mundo. Permite a AppVault cifrar archivos rápidamente sin agotar la batería, y su verificación de integridad asegura que los archivos almacenados no han sido alterados.
La alternativa, ChaCha20-Poly1305, también es segura y AppVault la utiliza para ciertas operaciones donde no se dispone de AES por hardware (p.ej., en dispositivos más antiguos). Pero para el cifrado de archivos en iOS, AES-256-GCM es la elección natural.
Cada archivo en AppVault se cifra con AES-256-GCM, un nonce único y una clave derivada de tu patrón de desbloqueo y envuelta por el Secure Enclave. La pila criptográfica completa está documentada en la página de cifrado AES-256-GCM, con citas a NIST FIPS 197, NIST SP 800-38D y la Guía de Seguridad de la Plataforma de Apple. La página del modelo de amenazas explica qué defiende esta arquitectura y qué no. La página de arquitectura de conocimiento cero explica por qué AppVault nunca ve tus datos.
DIAGRAM · 02
DOSSIER
QUESTIONS
10 sharp answers.
-
01 ¿Qué es AES-256-GCM?
AES-256-GCM es un algoritmo de cifrado autenticado que cifra datos usando el Estándar de Cifrado Avanzado con una clave de 256 bits en modo Galois/Contador, y verifica simultáneamente su integridad con una etiqueta de autenticación. -
02 ¿En qué se diferencia AES-256-GCM de AES-256-CBC?
AES-256-CBC proporciona solo confidencialidad y requiere un HMAC separado para la integridad. AES-256-GCM proporciona ambas en una sola pasada, es paralelizable y no necesita relleno, lo que lo hace más rápido y seguro en protocolos modernos. -
03 ¿Por qué se prefiere GCM sobre CBC en TLS 1.3?
GCM es cifrado autenticado, lo que significa que evita la manipulación sin una capa MAC adicional. Además, evita los ataques de oráculo de relleno que afectan a CBC, y es más rápido en hardware con AES-NI o extensiones criptográficas ARM. -
04 ¿Qué es un nonce en AES-GCM?
Un nonce es un número de 96 bits que debe ser único para cada cifrado realizado con la misma clave. Reutilizar un nonce permite a un atacante recuperar la clave de autenticación GHASH y falsificar mensajes. -
05 ¿Qué es la etiqueta de autenticación en AES-GCM?
La etiqueta de autenticación es una salida de 128 bits (por defecto) que demuestra que el texto cifrado no ha sido modificado. El receptor recalcula la etiqueta y la compara; si no coincide, los datos se rechazan. -
06 ¿Se puede romper AES-256-GCM?
No existe un ataque práctico contra AES-256-GCM cuando se implementa correctamente con un nonce único por mensaje. Los mejores ataques conocidos son sobre variantes de rondas reducidas o implementaciones que reutilizan nonces. -
07 ¿Es AES-256-GCM resistente a la computación cuántica?
No. AES-256 proporciona seguridad de 128 bits contra ataques clásicos, pero solo 64 bits de seguridad contra el algoritmo de Grover en un ordenador cuántico. Sin embargo, el algoritmo de Grover requiere un ordenador cuántico tolerante a fallos lo suficientemente grande como para ejecutar el circuito completo de AES-256, algo que no se espera en la próxima década. -
08 ¿AES-256-GCM requiere soporte de hardware?
Puede ejecutarse en software, pero la aceleración por hardware (AES-NI en Intel/AMD, extensiones criptográficas ARM en Apple Silicon) lo hace aproximadamente 10 veces más rápido y reduce el consumo de energía. Todos los iPhones modernos incluyen aceleración AES por hardware. -
09 ¿Cómo usa AppVault AES-256-GCM?
AppVault cifra cada archivo con AES-256-GCM usando un nonce de 96 bits único. La clave de cifrado se deriva mediante PBKDF2-SHA256 (600.000 iteraciones) y luego es envuelta por una clave generada dentro del Secure Enclave. El nonce se almacena junto al texto cifrado. Esto asegura que incluso si dos archivos contienen el mismo texto plano, sus textos cifrados son diferentes. -
10 ¿Cuál es la derivación de clave para AES-256-GCM en AppVault?
El patrón de desbloqueo del usuario se transforma en una clave maestra usando PBKDF2-SHA256 con una sal de 128 bits por instalación y 600.000 iteraciones. Esa clave maestra luego es envuelta por el Secure Enclave antes de usarse para el cifrado AES-256-GCM. La clave envuelta nunca sale del Secure Enclave en texto plano.
DOSSIERS RELACIONADOS
Sigue leyendo.
6 ENTRIES
- LINK / 01 · PILA DE CIFRADO
Cifrado AES-256-GCM
Cómo AppVault implementa AES-256-GCM con nonces por archivo, PBKDF2 y envoltura de clave mediante Secure Enclave.
- LINK / 02 · MODELO DE AMENAZAS
Seguridad y modelo de amenazas de AppVault
Qué defiende AppVault y qué no.
- LINK / 03 · ARQUITECTURA
Arquitectura de conocimiento cero
AppVault no realiza ninguna llamada de red. Ningún servidor ve nunca tu texto plano ni tus claves de cifrado.
- LINK / 04 · AUTENTICACIÓN
Patrón de desbloqueo y derivación de clave
Cómo el patrón de desbloqueo 5×5 genera una clave criptográfica usando PBKDF2 y Secure Enclave.
- LINK / 05 · COMPARATIVA
AppVault vs Vaultaire
Comparativa detallada de funciones entre AppVault y Vaultaire.
- LINK / 06 · COMPARATIVA
AppVault vs Keepsafe
Cómo la arquitectura de AppVault difiere del líder de la categoría.
COMENZAR
Sella la bóveda.
Gratis para descargar. La primera bóveda es gratis, para siempre. Actualiza solo cuando la superes.