0Pricing
Cryptology Academy · Lezione

GCM e cifratura autenticata

Aggiunga tag di autenticazione alla cifratura per impedire le manomissioni.

GCM e cifratura autenticata è una lezione Cryptology Academy gratuita su CoddyKit. Questa è la lezione 4 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Cryptology Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Cryptology Academy include 4 lezioni in totale.

Benvenuti

AES-GCM è lo standard di riferimento per la cifratura autenticata. Fornisce RISERVATEZZA E integrità in un'unica operazione, impedendo le manomissioni senza un passaggio HMAC separato.

Il problema della sola cifratura

La cifratura garantisce la riservatezza, ma NON l'integrità. Un attaccante che intercetta un testo cifrato AES-CBC può modificare alcuni bit e alterare il testo in chiaro decifrato senza conoscere la chiave.

AEAD: cifratura autenticata con dati associati

Gli schemi AEAD producono: testo cifrato + tag di autenticazione. Il tag autentica sia il testo cifrato SIA gli eventuali dati associati non cifrati (AAD). Qualsiasi modifica invalida il tag.

Architettura GCM

AES-GCM utilizza: 1. AES-CTR per la cifratura 2. GHASH per l'autenticazione GHASH calcola un MAC polinomiale sul testo cifrato + AAD usando la moltiplicazione in GF(2^128).

Panoramica di GHASH

GHASH(H, A, C) = hash dell'AAD + del testo cifrato usando la sottochiave H = AES(K, 0^128). Il polinomio viene valutato in H sul campo GF(2^128). Il risultato viene sottoposto a XOR con il contatore cifrato per formare il tag.

Input e output di AES-GCM

Input: chiave da 128/192/256 bit, nonce da 96 bit, testo in chiaro, AAD facoltativi Output: testo cifrato (della stessa lunghezza del testo in chiaro), tag di autenticazione da 128 bit Il tag è in genere di 16 byte. Non è consigliabile troncarlo a meno di 12 byte.

Requisiti del nonce in GCM

GCM richiede un nonce univoco per ogni cifratura eseguita con la stessa chiave. Il nonce casuale da 96 bit è lo standard. Dopo 2^32 messaggi, la probabilità di collisione supera l'1%. A quel punto, sostituite la chiave.

Catastrofe del riutilizzo del nonce in GCM

Riutilizzare la coppia (chiave, nonce) in GCM consente all'attaccante di recuperare la sottochiave GHASH e falsificare qualsiasi testo cifrato con un tag valido. Questo compromette completamente sia la riservatezza sia l'integrità.

Casi d'uso dei dati associati (AAD)

Gli AAD sono metadati che si desidera autenticare, ma non cifrare: - Intestazione HTTP: autenticata per impedire attacchi di instradamento delle risposte - ID del record del database: garantisce che il testo cifrato venga decifrato nella riga corretta - Versione del protocollo: impedisce gli attacchi di downgrade

Esempio completo di AES-GCM in Python

from cryptography.hazmat.primitives.ciphers.aead import AESGCM import os key = AESGCM.generate_key(256) nonce = os.urandom(12) aad = b'user_id=12345' aesgcm = AESGCM(key) ct = aesgcm.encrypt(nonce, b'secret', aad) pt = aesgcm.decrypt(nonce, ct, aad) # raises if tampered

Alternative: ChaCha20-Poly1305

ChaCha20-Poly1305 è l'altro principale schema AEAD. Viene utilizzato in TLS 1.3 sui dispositivi privi di AES-NI (ARM/dispositivi mobili). Offre una sicurezza simile a AES-GCM, ma è più veloce nel software che non dispone dell'accelerazione hardware.

Verifica rapida

Da cosa protegge il tag di autenticazione in AES-GCM?

Riepilogo

AES-GCM è la scelta predefinita corretta per la cifratura autenticata. Ora studieremo i cifrari a flusso: dal vulnerabile RC4 al moderno ChaCha20.

Domande Frequenti

La lezione «GCM e cifratura autenticata» è gratuita?

Sì — il testo completo di «GCM e cifratura autenticata» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Cryptology Academy, passa a CoddyKit PRO. Il corso Cryptology Academy include 4 lezioni in totale.

Cosa imparerò in «GCM e cifratura autenticata»?

Aggiunga tag di autenticazione alla cifratura per impedire le manomissioni. Eserciti Cryptology Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Cryptology Academy?

Non è richiesta alcuna esperienza precedente. Cryptology Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 4 di 4.

Quanto tempo richiede la lezione «GCM e cifratura autenticata»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Cryptology Academy?

Sì. Ogni lezione Cryptology Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Fondamenti dei cifrari a blocchi e padding
  2. ECB e CBC: pattern e IV
  3. Modalità CTR e comportamento dei cifrari a flusso
  4. GCM e cifratura autenticata
← Torna a Cryptology Academy