El xifratge AES-256 explicat: què vol dir per a les teves dades
AES-256 explicat: com funciona l'algorisme, per què importen les claus de 256 bits, què aporta el mode GCM i què cal comprovar quan una app diu que fa servir xifratge AES-256.
Què és AES-256?
AES-256 és un xifratge de bloc simètric: l'Advanced Encryption Standard amb una clau de 256 bits. Una mateixa clau xifra i desxifra. Processa les dades en blocs de 128 bits al llarg de 14 rondes, i el NIST el va estandarditzar com a FIPS 197 el 2001.
El nom reuneix tres dades. AES és el nom de l'algorisme, triat pel NIST el 2001 a partir de la proposta Rijndael. 256 és la longitud de la clau en bits, que fixa quantes claus ha de provar un atacant per força bruta. Un mode com GCM o CBC, que normalment s'escriu després del nom com a AES-256-GCM, decideix com s'encadenen els blocs i si es comprova que el text xifrat no s'ha manipulat. AES-256 sol t'indica l'algorisme i la mida de la clau. No t'indica el mode, ni qui té la clau.
AES-256 és l'Advanced Encryption Standard amb una clau de 256 bits, estandarditzat pel NIST com a FIPS 197 el 2001. És l'algorisme de xifratge simètric que fa servir el govern dels EUA per a informació classificada, la banca per a les transaccions financeres i les aplicacions centrades en la seguretat per protegir les dades emmagatzemades i en trànsit. AES-256 té 2^256 claus possibles, un nombre més gran que la quantitat estimada d'àtoms de l'univers observable. Cap atac conegut redueix aquest espai de claus a una cerca computacionalment viable.
Aquesta guia explica què fa realment AES-256, per què importa la mida de la clau, què volen dir els diferents modes (ECB, CBC, GCM) i què cal mirar quan una app diu que fa servir xifratge AES-256.
Què fa realment AES
AES és un xifratge de bloc simètric. "Simètric" vol dir que la mateixa clau xifra i desxifra. "Xifratge de bloc" vol dir que processa les dades en blocs de mida fixa de 128 bits (16 bytes).
L'algorisme agafa les teves dades (text pla), les combina amb una clau i genera una sortida desordenada (text xifrat) mitjançant una sèrie de transformacions matemàtiques. Aquestes transformacions (substitució, desplaçament, barreja i addició de clau) es repeteixen durant un nombre fix de rondes. AES-256 fa servir 14 rondes.
Cada ronda aplica quatre operacions:
- SubBytes: cada byte se substitueix amb una taula de substitució fixa (S-box), que introdueix no-linealitat.
- ShiftRows: els bytes de cada fila es desplacen amb desplaçaments diferents, cosa que reparteix les dades entre posicions.
- MixColumns: les columnes es barregen amb una multiplicació de matrius en un cos finit, que difon els canvis entre bytes.
- AddRoundKey: la clau de ronda (derivada de la clau principal) es combina amb les dades amb una operació XOR.
Després de 14 rondes, el text pla queda completament desordenat. Revertir aquestes operacions amb la clau correcta recupera les dades originals. Sense la clau, el text xifrat no es pot distingir del soroll aleatori.
Per què importen els 256 bits
El "256" d'AES-256 fa referència a la longitud de la clau: 256 bits. Determina el nombre de claus possibles que un atacant ha de provar per trencar el xifratge per força bruta.
| Mida de la clau | Claus possibles | Temps per força bruta (un bilió d'intents/s) |
|---|---|---|
| 56-bit (DES) | 7.2 x 10^16 | ~20 hores |
| 128-bit (AES-128) | 3.4 x 10^38 | 10^13 anys (10 bilions d'anys) |
| 256-bit (AES-256) | 1.16 x 10^77 | 10^51 anys |
Per posar-ho en context: l'univers té aproximadament 1,38 x 10^10 anys. Trencar AES-256 per força bruta trigaria aproximadament 10^41 vegades l'edat de l'univers, fins i tot a un bilió d'intents per segon.
Trencar AES-128 per força bruta ja és computacionalment inviable. AES-256 ofereix un marge addicional davant d'avenços futurs en computació, inclosa la computació quàntica. L'algorisme de Grover (un atac de computació quàntica) redueix a la pràctica la longitud de la clau a la meitat, de manera que AES-256 queda en l'equivalent d'AES-128, que continua sent inviable. AES-128 quedaria reduït a una seguretat efectiva de 64 bits, potencialment vulnerable. Per això les aplicacions on la seguretat és crítica prefereixen AES-256.
Modes d'AES: per què importen
AES tot sol només xifra un bloc de 128 bits cada vegada. Per a dades reals (fotos, documents, vídeos) cal un "mode d'operació" que gestioni dades de més de 16 bytes. El mode determina com s'encadenen els blocs i té implicacions de seguretat importants.
ECB (Electronic Codebook): no el facis servir
Cada bloc es xifra de manera independent amb la mateixa clau. Blocs de text pla idèntics generen blocs de text xifrat idèntics. Això deixa entreveure patrons de les dades. La demostració clàssica: xifrar una imatge de mapa de bits amb ECB conserva l'estructura de la imatge al text xifrat, de manera que el contingut es reconeix. ECB forma part de l'estàndard, però no s'hauria de fer servir mai amb dades que tinguin estructura o patrons repetits (és a dir, gairebé totes les dades reals).
CBC (Cipher Block Chaining): antic
Cada bloc es combina amb XOR amb el bloc de text xifrat anterior abans de xifrar-lo. Això elimina la fuita de patrons d'ECB. CBC va ser el mode estàndard durant dècades, però GCM l'ha substituït en la majoria d'aplicacions. CBC necessita un vector d'inicialització (IV) aleatori i no inclou autenticació (no pots detectar si el text xifrat s'ha manipulat).
GCM (Galois/Counter Mode): l'estàndard actual
GCM combina el xifratge en mode comptador amb l'autenticació en cos de Galois. Ofereix xifratge autenticat: xifra les dades I genera una etiqueta d'autenticació que detecta qualsevol modificació del text xifrat. Si canvia un sol bit, el desxifratge falla en lloc de generar text pla corrupte.
El NIST va estandarditzar GCM a l'SP 800-38D (2007). És el mode recomanat per a implementacions noves.
AES-256-GCM és AES amb una clau de 256 bits en mode Galois/Counter. És el que haurien de fer servir les aplicacions on la seguretat és crítica i el que fa servir Vaultaire per xifrar el contingut de les fotos i dels fitxers.
| Mode | Fuita de patrons | Autenticació | Recomanació actual |
|---|---|---|---|
| ECB | Sí (greu) | No | No el facis servir |
| CBC | No | No (necessita un MAC separat) | Antic; acceptable amb HMAC |
| GCM | No | Sí (integrada) | Recomanat per a implementacions noves |
Què vol dir AES-256 per guardar fotos
Quan una app de caixa forta de fotos diu que fa servir "xifratge AES-256", s'haurien de complir tres coses:
El contingut dels fitxers es xifra amb AES-256. Les dades en brut de la foto (píxels, metadades, miniatura) es transformen en text xifrat amb una clau de 256 bits.
Cada fitxer fa servir un vector d'inicialització (IV) únic. Si dues fotos idèntiques es xifren amb la mateixa clau, el text xifrat ha de ser diferent. Això requereix un IV únic per fitxer. Sense ell, una anàlisi estadística pot revelar patrons.
El mode ofereix autenticació (GCM o equivalent). Sense autenticació, un atacant podria modificar el text xifrat sense que es detectés. El resultat desxifrat serien dades corruptes en lloc d'un error.
El que "AES-256" en una pàgina comercial no t'explica
AES-256 és necessari, però no suficient. Diversos factors clau determinen si el xifratge protegeix realment les teves dades:
La derivació de la clau importa. Com es genera la clau de 256 bits? Si es deriva d'un PIN de 4 xifres amb una KDF feble, la seguretat efectiva és de 4 xifres (10.000 combinacions), no de 256 bits. Una implementació sòlida fa servir PBKDF2 amb un nombre alt d'iteracions o Argon2 amb paràmetres de memòria i temps adequats. Vaultaire fa servir PBKDF2 amb HMAC-SHA512 i 600.000 iteracions per derivar una clau local de caixa forta a partir del patró 5x5 triat i d'una sal del dispositiu. PBKDF2 encareix cada intent; no eleva l'entropia del patró a 256 bits.
On es guarda la clau importa. On és la clau? Si es guarda en text pla a l'entorn aïllat de l'app, un programari maliciós amb accés als fitxers la pot llegir. El Secure Enclave d'Apple admet operacions concretes amb claus no exportables, no qualsevol clau AES que proporcioni una app. Els dissenys de clau simètrica poden recórrer al clauer i a la protecció de dades, de manera que la documentació hauria d'indicar l'API i la classe de protecció exactes en lloc de dir només "protegit per maquinari".
Què es xifra importa. Algunes apps xifren el contingut dels fitxers però deixen sense xifrar els noms, les miniatures i les metadades. Un examinador forense potser no veurà la teva foto, però pot veure "vacation-beach-2025.jpg" a la llista de fitxers. Un xifratge complet cobreix també les metadades per separat.
El cicle de vida de la clau importa. Quant de temps continua disponible el material de clau desxifrat? Vaultaire descarta l'estat de la caixa forta activa i de la clau mestra quan es bloqueja o es tanca i demana un desbloqueig nou. Els bytes de la clau simètrica han d'existir a la memòria de l'app mentre una caixa forta és oberta, i Swift i iOS no permeten a una app demostrar que s'ha sobreescrit cada còpia temporal.
AES-256 a la pràctica: qui el fa servir
| Entitat | Ús | Mode |
|---|---|---|
| Govern dels EUA (NSA) | Informació classificada | GCM (o CTR amb autenticació separada) |
| Apple (iCloud ADP) | Xifratge d'extrem a extrem d'iCloud | GCM |
| Signal | Xifratge de missatges | CBC (amb HMAC per a l'autenticació) |
| Bancs | Xifratge de transaccions financeres | GCM |
| 1Password | Gestor de contrasenyes | GCM |
| Vaultaire | Caixa forta de fotos i fitxers | GCM |
| VeraCrypt | Xifratge de disc | XTS (optimitzat per a blocs de disc) |
Idees errònies habituals
"Xifratge de grau militar" no vol dir res concret. Les pàgines comercials fan servir aquesta expressió perquè sona impressionant. Els exèrcits fan servir AES-256. També AES-128. L'expressió no t'indica el mode, la derivació de la clau, on es guarda la clau ni quines dades es xifren realment.
"Xifratge de 256 bits" pot no voler dir AES-256. Altres algorismes també fan servir claus de 256 bits (ChaCha20, Twofish, Serpent). Comprova quin algorisme s'especifica. AES-256-GCM és l'estàndard actual.
AES-256 no protegeix d'una contrasenya feble. Si la teva contrasenya és "1234" i la derivació de la clau és feble, el xifratge té a la pràctica una seguretat de 4 xifres, sigui quina sigui la força de l'algorisme. La cadena es trenca per la baula més feble.
AES-256 no protegeix les dades en ús. Quan mires una foto, s'ha de desxifrar a la memòria. En aquell moment existeix en text pla a la RAM. Les implementacions correctes redueixen al mínim aquest interval i esborren de seguida les dades desxifrades.
Preguntes freqüents
Què vol dir AES-256?
Advanced Encryption Standard (estàndard de xifratge avançat), amb una clau de 256 bits. AES és l'algorisme que el NIST va estandarditzar com a FIPS 197 el 2001, després de seleccionar el disseny Rijndael. El 256 és la longitud de la clau en bits. Un sufix com AES-256-GCM hi afegeix el mode d'operació, que és una elecció independent de l'algorisme i de la mida de la clau.
Es pot trencar AES-256?
Cap atac conegut trenca AES-256 reduint l'espai complet de claus. El millor atac conegut (un atac biclic de Bogdanov, Khovratovich i Rechberger, 2011) redueix AES-256 de 2^256 operacions a 2^254,4, una millora teòrica que a la pràctica no té cap importància computacional. AES-256 continua sense trencar.
AES-256 resisteix la computació quàntica?
En essència, sí. L'algorisme quàntic de Grover redueix a la meitat la longitud efectiva de la clau: AES-256 passa a equivaler a una seguretat de 128 bits davant d'atacs quàntics. AES-128 quedaria reduït a una seguretat efectiva de 64 bits, potencialment vulnerable. Una cerca de Grover contra AES-256 encara necessitaria unes 2^128 operacions, que no és pràctic.
Quina diferència hi ha entre AES-128 i AES-256?
AES-128 fa servir una clau de 128 bits (10 rondes). AES-256 fa servir una clau de 256 bits (14 rondes). Tots dos es consideren segurs davant dels atacs actuals. AES-256 ofereix més marge davant d'avenços futurs, sobretot la computació quàntica. AES-256 és aproximadament un 40% més lent que AES-128 per les rondes addicionals, però l'acceleració per maquinari fa que la diferència sigui insignificant en els dispositius moderns.
El xifratge AES-256 alenteix el telèfon?
No de manera perceptible en l'ús normal. Els processadors moderns d'Apple ofereixen acceleració per maquinari per a AES a través de les biblioteques criptogràfiques del sistema. Això no vol dir que l'operació AES d'una app s'executi dins del Secure Enclave. El temps continua depenent de la mida del fitxer, el dispositiu, l'emmagatzematge i la implementació, així que una afirmació de seguretat s'hauria de basar en mesures i no en una xifra universal de mil·lisegons.
Com sé si una app fa servir realment AES-256?
Consulta la documentació de seguretat de l'app, no només la pàgina comercial. Busca l'algorisme i el mode concrets, la jerarquia de claus, els paràmetres de derivació, l'ús exacte del clauer o del Secure Enclave, la gestió dels nonces, el camí de recuperació i si també es xifren les metadades. El codi obert i les auditories independents fan que aquestes afirmacions siguin més fàcils de verificar.
En resum
AES-256 és un xifratge simètric molt utilitzat, estandarditzat pel NIST i sense cap atac pràctic conegut; un ordinador quàntic amb l'algorisme de Grover encara s'enfrontaria a una feina d'unes 2^128 operacions. Quan avaluïs apps que diuen fer servir xifratge AES-256, mira més enllà de l'algorisme: comprova el mode (GCM), la derivació de la clau (PBKDF2/Argon2 amb un nombre alt d'iteracions), on es guarda la clau (protecció per maquinari) i quines dades es xifren realment (contingut + metadades).
Vaultaire fa servir AES-256-GCM per al contingut dels fitxers, les capçaleres, les metadades, els índexs i les miniatures. PBKDF2 amb HMAC-SHA512 deriva una clau local de caixa forta a partir del patró i d'una sal del clauer comuna a tot el dispositiu; aquesta clau desembolcalla una clau mestra aleatòria que s'usa per xifrar els fitxers. Les operacions simètriques s'executen al procés de l'app mitjançant CryptoKit, mentre que el clauer i la protecció de dades d'iOS protegeixen l'estat de recuperació quan el dispositiu està bloquejat. Tota la jerarquia està documentada al model de seguretat.