Sto cercando di saperne di più sulla modalità GCM e su come differisce tra CBC. So già che GCM fornisce un MAC che viene utilizzato per lautenticazione dei messaggi. Da quello che ho letto e dai frammenti di codice che ho visto, GCM fa unesclusiva o molto simile a CBC, ma non sono sicuro di cosa sia contro lesclusiva. In modalità CBC, lesclusivo-or è il testo in chiaro rispetto al blocco di testo cifrato precedente, ad eccezione del primo blocco che utilizza un IV casuale. GCM fa lo stesso o fa lesclusiva o contro qualcosaltro? In tal caso, qualcuno può spiegare brevemente come GCM utilizza lIV e come viene eseguito lesclusivo.
Commenti
- Se ignori lautenticazione, GCM si comporta come la modalità CTR, non come la modalità CBC. Cercali su wikipedia.
- Solo perché ' non è definito in questa pagina … GCM = Galois / Counter Mode e CBC = Cipher Block Chaining … altre definizioni includono MAC (Message Authentication Code), IV (Initialisation Vector) e CTR (CounTeR Mode).
Answer
Le modalità GCM e CBC funzionano internamente in modo abbastanza diverso; entrambi implicano un cifrario a blocchi e un esclusivo-or, ma li usano in modi diversi.
In modalità CBC, si crittografa un blocco di dati prendendo il blocco di testo in chiaro corrente e lesclusivo-oring con il precedente blocco di testo cifrato (o IV), e quindi invio del risultato tramite il codice a blocchi; loutput del codice a blocchi è il blocco del testo cifrato.
La modalità GCM fornisce sia privacy (crittografia) che integrità. Per fornire la crittografia, GCM mantiene un contatore; per ogni blocco di dati, invia il valore corrente del contatore tramite il cifrario a blocchi. Quindi, prende loutput del codice a blocchi e lesclusivo o “s quello con il testo in chiaro per formare il testo cifrato.
Nota due differenze chiave:
-
Cosa “è esclusivo o” ed; in modalità CBC, il testo in chiaro è esclusivo o “edito con dati che lattaccante conosce (il IV o un blocco di testo cifrato precedente); quindi, questo di per sé non fornisce alcuna sicurezza intrinseca (invece, lo facciamo per ridurre al minimo la possibilità di inviare lo stesso blocco due volte attraverso il cifrario a blocchi). In modalità GCM, il testo in chiaro è esclusivo o “modificato con loutput del codice a blocchi; è inerente al modello di sicurezza che lautore dellattacco non possa indovinare quelloutput (a meno che non conosca già il testo in chiaro e il testo cifrato).
-
Cosa viene inviato tramite il cifrario a blocchi; in modalità CBC, il testo in chiaro viene inviato tramite il cifrario a blocchi (dopo che è stato “randomizzato” con un esclusivo-o); in modalità GCM, ciò che viene inviato attraverso il cifrario a blocchi non dipende effettivamente dai dati criptato, ma solo sullo stato interno.
Per quanto riguarda il modo in cui GCM utilizza un IV (personalmente considero “nonce” un termine migliore per quello che usa GCM, perché questo enfatizza il idea che con GCM non è possibile utilizzare lo stesso nonce per la stessa chiave due volte), beh, viene utilizzato per inizializzare il contatore.
Commenti
- Molto interessante … Se ho capito bene, stai dicendo che in modalità GCM il testo cifrato di un blocco è esclusivo o ' contro il testo in chiaro che è stato appena inserito nel cifrario e il blocco viene quindi inviato. Se ciò è vero, allora come viene decrittografato il blocco? Non è ' il testo cifrato della crittografia AES (ad esempio) richiesta per decrittografare i dati? Come è quello ottenuto? Inoltre, se la o si ottiene il testo crittografato originale, quindi potrebbe essere usato per escludere o il testo cifrato inviato che restituirebbe il testo in chiaro e non avrebbe bisogno di ulteriore decrittazione … Mi ' manca qualcosa .. .
- No, in GCM, prendiamo un contatore, lo inviamo attraverso il cifrario a blocchi e quindi lo escludiamo, o quello con il testo in chiaro per formare il testo cifrato. Dal punto di vista della decrittazione, manteniamo lo stesso contatore, lo inviamo attraverso il cifrario a blocchi e quindi esclusivo, o quello con il testo cifrato per formare il testo in chiaro.
- @poncho Quindi in GCM non abbiamo bisogno del “Decrittografia” parte del codice a blocchi? Perché usiamo la “crittografia” su entrambi i lati.
- Se usi lo stesso nonce due volte con la stessa chiave, ti apri a … quale attacco?
- @RobertSiemer: due attacchi: a) lattaccante ottiene una quantità significativa di informazioni dei due messaggi crittografati con lo stesso nonce (possibilmente sufficiente per dedurre entrambi i contenuti), eb) lattacco ottiene informazioni che gli consentirebbero di alterare i messaggi senza essere rilevato