Sono curioso di sapere in che misura AES GCM può sostituire l'opzione standard CBC + HMAC.
Sono curioso di sapere in che misura AES GCM può sostituire l'opzione standard CBC + HMAC.
Ci sono alcuni vantaggi in GCM, poiché uno consente l'elaborazione parallela che lo rende efficiente e utilizzabile per operazioni hardware simultanee. Poiché confronti GCM con CBC + HMAC, ti indicherò l'estensione GMC GCM. GMAC è la variante HMAC ma utilizza invece un campo di Galois.
Un campo Galois predefinito, ad esempio GF (2 128 ), può essere calcolato indipendentemente su un polinomio, mentre i blocchi di catene CBC si basano sui risultati precedenti. Ciò fornisce a GCM un throughput elevato e lo rende molto efficiente.
Sì, ci sono alcuni vantaggi per CBC-HMAC su GCM. O meglio, ci sono alcuni svantaggi di GCM .
GCM diventa più vulnerabile quando la dimensione del tag di autenticazione è minore. La sicurezza GCM si interrompe completamente anche sul nonce-reuse, il che lo rende meno utile per i nonce casuali, specialmente quando il generatore di numeri casuali non è sicuro come vorresti che fosse.
Come accennato nel link ci sono anche argomenti di implementazione e sicurezza contro GCM.
Si può sempre usare la modalità EAX anche se quella modalità non è stata ufficialmente standardizzata dal NIST. EAX utilizza AES-CMAC per il calcolo dell'autenticità, quindi si basa solo su un AES veloce per essere disponibile. Ha un'interfaccia AEAD simile a GCM - è persino leggermente più flessibile se implementata correttamente. Ma proprio come CBC + HMAC è altrimenti un protocollo a due passaggi. E poi c'è la modalità OCB e, naturalmente, Keccak in modalità di crittografia (sperimentale).
Sì, quando uno o più sistemi che devono interagire non supportano GCM.
Le versioni precedenti di .Net e Windows 2008, ad esempio, non funzionano ed è lo stesso con alcuni stack middleware Java, quindi se dovessi implementare una soluzione dovresti utilizzare CBC.
Leggi altre domande sui tag encryption aes