Xifratge AES
AES és l'algoritme de xifratge. Seleccionat pel govern dels EUA l'any 2001 després d'una competició oberta de diversos anys, ha estat el cavall de batalla de la criptografia per a tota l'era moderna d'Internet. TLS, WireGuard, BitLocker, FileVault, el xifratge d'emmagatzematge del vostre telèfon, tots ells, sota el capó, són AES.
El cos complet de l'article es proporciona en anglès a continuació.
AES (Advanced Encryption Standard) és un xifratge de blocs simètric seleccionat pel NIST l'any 2001 després d'una competició oberta de cinc anys que va enfrontar quinze dissenys entre si. El guanyador, originalment anomenat Rijndael, dissenyat pels criptògrafs belgues Joan Daemen i Vincent Rijmen, es va convertir en l'estàndard de xifratge per a les dades federals dels Estats Units i ràpidament el predeterminat per a gairebé tots els sistemes comercials. Compareu-ho amb la criptografia de clau pública (RSA, ECDH) on hi ha claus separades per a cada direcció.
Cifrat de blocs: xifra fragments de dades de mida fixa alhora. AES utilitza una mida de bloc de 128 bits (16 bytes) independentment de la mida de la clau.
El text sense format es divideix en blocs i cada bloc es transforma mitjançant una sèrie d'operacions matemàtiques utilitzant la clau. La sortida és un text xifrat de la mateixa longitud que l'entrada.
Mides de clau
AES admet tres mides de clau:
- AES-128 — Clau de 128 bits, de 10 rodones internes operacions
- AES-192 — Clau de 192 bits, 12 rondes
- AES-256 — Clau de 256 bits, 14 rondes es consideren seguresXPLZ32LLZPLZ333333A333A. AES-128 té 2 ^ 128 claus possibles, cosa que està molt més enllà del rang de força bruta: amb un bilió d'intents per segon, esgotar l'espai de tecles triga uns 10 milions d'anys de sexe. AES-256 es selecciona per a un marge de seguretat addicional nominal contra futurs avenços criptogràfics, especialment quàntics (l'algoritme de Grover redueix la força efectiva de la clau a la meitat contra els ordinadors quàntics, de manera que AES-256 ofereix un nivell de seguretat postquàntic de 128 bits). rondes:
- SubBytes: substituïu cada byte mitjançant una taula de substitució no lineal (S-box).
- ShiftRows: canvieu cíclicament cada fila de l'estat de l'estat 44x4 matrix.
- MixColumns — multipliqueu cada columna per una matriu fixa (en un camp finit especial).
- AddRoundKey — XOR amb una clau rodona específica derivada de la substitució de la clau mestra de la combinació mestra de XPLZ5XPL6XXPLZ5Z5XX. i la permutació proporciona tant confusió (cada bit de sortida depèn de molts bits clau) com difusió (cada bit de text pla influeix en molts bits de sortida): les dues propietats que Shannon va identificar com a essencials per a un xifrat segur.
Modes de funcionament
AES xifra un bloc alhora. Per xifrar dades més llargues, un mode d'operació defineix com s'encadenen els blocs. Els modes importants:
- ECB (Llibre de codis electrònic): cada bloc es xifra de manera independent. No utilitzeu per a res; blocs de text pla idèntics produeixen un text xifrat idèntic, una estructura reveladora.
- CBC (Encadenament de blocs de xifrat) — cada bloc s'ocupa amb el text xifrat anterior abans del xifratge. Estàndard durant molts anys; vulnerable a atacs d'oracle de farciment si no s'autentica.
- CTR (Comptador) — xifra un comptador incremental i XOR amb text sense format. Converteix AES de manera efectiva en un xifratge de flux.
- GCM (Galois/Mode comptador) — CTR + etiqueta d'autenticació en una sola passada. El mode modern dominant; utilitzat per TLS 1.3, WireGuard i la majoria de protocols nous. AEAD (xifratge autenticat amb dades associades) és el nom formal d'aquesta classe.
ISi trieu un mode AES avui, feu servir AES-GCM tret que tingueu una raó específica per no fer-ho. L'AES-CBC normal sense HMAC és una pistola de peu.
acceleració de maquinari
Intel va presentar el conjunt d'instruccions AES-NI el 2010; ARM va fer el mateix uns anys després. Les CPU modernes xifren AES a velocitats superiors a 10 GB/s per nucli. El xifrat és essencialment gratuït pel que fa al cost de la CPU; el coll d'ampolla per a la comunicació xifrada rarament és el mateix AES.
Tés per això que AES-GCM és l'opció predeterminada en els protocols moderns: és segur i efectivament lliure al maquinari. Sense suport de maquinari, ChaCha20-Poly1305 és l'alternativa preferida perquè és més ràpid que el programari AES en CPU simples i nuclis ARM.
On no s'utilitza AES
Alguns llocs eviten explícitament AES. WireGuard utilitza ChaCha20 perquè el protocol s'adreça a dispositius incrustats i a una diversitat mínima de xifratge. Els protocols més antics (SSH heretat, OpenVPN més antic) segueixen per defecte amb altres xifratges per a la compatibilitat. Tor utilitza una barreja de xifratge triats per la diversitat en lloc del rendiment. Però per a un nou xifratge de propòsit general (xifratge de disc, connexions TLS, xifratge de fitxers), AES és l'opció predeterminada i l'opció segura. El millor atac acadèmic al xifrat complet redueix el cost de la força bruta en un factor d'aproximadament 4, cosa que significa que la seguretat efectiva d'AES-128 és d'uns 126 bits, encara que és totalment impracticable de trencar. Els atacs de canals laterals (temps, anàlisi de potència) poden revelar claus quan una implementació és ingènua, però les implementacions en temps constant amb acceleració de maquinari tanquen aquest forat. El xifrat és, per qualsevol mesura raonable, segur.
Preguntes freqüents
- És AES-256 millor que AES-128?
- Nominalment més segur, a la pràctica tots dos molt més enllà de la força bruta pràctica. El motiu principal per triar AES-256 és la resiliència postquàntica: l'algoritme de Grover redueix a la meitat la seguretat efectiva contra els atacants quàntics, de manera que AES-256 ofereix seguretat postquàntica de 128 bits enfront dels de 64 bits d'AES-128 (que comença a ser incòmode). Per a la majoria de contextos, tots dos estan bé.
- Es pot trencar AES?
- No per força bruta en cap moment realista. Els atacs de canal lateral a AES mal implementat han recuperat claus; existeixen atacs criptoanalítics a AES de ronda reduïda; però l'AES complet de 10/12/14 amb implementació en temps constant no té cap descans pràctic conegut. El xifrat en si és so.
- Per què alguns sistemes utilitzen ChaCha20 en lloc d'AES?
- Rendiment en maquinari sense AES-NI (dispositius incrustats, nuclis ARM més antics, microcontroladors simples). ChaCha20 s'implementa en programari a velocitat competitiva amb AES accelerat per maquinari. En x86 modern i ARM amb AES-NI, AES sol ser més ràpid. WireGuard va triar ChaCha20 per garantir un rendiment coherent en tot el maquinari.
- Què és AES-GCM vs AES-CBC?
- Tots dos són modes de funcionament AES. AES-GCM és un xifratge autenticat: xifra i produeix una etiqueta de verificació en una sola passada, eliminant la manipulació. AES-CBC és només xifratge; if you need authentication you have to add HMAC separately, and getting the combination right is famously easy to mess up. Utilitzeu GCM per a dissenys nous.
- L'AES protegeix contra els ordinadors quàntics?
- Els xifratges simètrics com AES són molt més resistents a la quàntica que RSA o ECDH. L'algoritme de Grover redueix la força efectiva de la clau a la meitat: AES-256 esdevé equivalent a una clau clàssica de 128 bits, encara que és inviable. AES-128 es converteix en 64 bits, cosa que és incòmode. La recomanació postquàntica és AES-256 més grans mides d'etiquetes MAC.