Qual è il vantaggio di XTS rispetto alla modalità CBC (con diffusore)?
Su Novembre 30, 2020 da adminHo qualche problema a capire il “vantaggio” di AES-XTS rispetto al CBC con diffusore.
Ho letto qualcosa su FileVault , in questo documento si menzionano le due modalità di operazioni XTS e CBC (con diffusore) e i vantaggi di XTS.
Entrambe le modalità crittografano unità di dati quasi allo stesso modo. Per CBC, il numero di settore è in qualche modo utilizzato per costruire lIV, per XTS, cè un “valore di modifica”, che include anche (in qualche modo) loffset del blocco, quindi ogni blocco di dati può essere crittografato in modo indipendente (ha senso quando si crittografano i dischi rigidi / partizioni). Non riesco davvero a vedere il vantaggio di XTS.
Ora scrivono quanto segue su XTS:
Ci sono molti vantaggi rispetto alle alternative come AES in CBC: non è richiesto un vettore di inizializzazione (la chiave di modifica può essere derivata dal numero di blocco); ogni blocco è crittografato in modo diverso (poiché il valore del tweak sarà diverso); e a differenza di AES-CBC, AES-XTS impedisce a un utente malintenzionato di modificare un bit specifico in ununità di dati xor-ing ogni ingresso AES con una versione diversa spostata del tweak crittografato.
Forse confrontano XTS con CBC (senza diffusore) … se sì, qualcuno conosce qualche vantaggio di XTS?
E qualcuno può spiegare il secondo vantaggio: “AES- XTS impedisce a un utente malintenzionato di modificare un bit specifico in ununità di dati xor-ing ogni input AES con una versione diversa spostata del tweak crittografato. “?
Commenti
- Cosa ' s " diffuser "? " il numero di settore è in qualche modo " come? Non ' hai descritto lo schema in modo chiaro. Se lalgoritmo è prevedibile, ciò porta a punti deboli e un algoritmo imprevedibile è costoso.
- @CodesInChaos Penso che il riferimento sia a Microsoft ' s Elephant diffuser utilizzato in BitLocker ( download.microsoft.com/download/0/2/3/… – avviso: download PDF ).
- Benvenuto in Cryptography Stack Exchange. La tua domanda è stata migrata qui perché non è direttamente correlata allo sviluppo del software (largomento di Stack Overflow) ed è più in argomento qui. Registra anche il tuo account qui per poter commentare e accettare una risposta.
Risposta
XTS e CBC non diffuso. Il problema qui è malleabilità . Sia XTS che CBC impediscono a un utente malintenzionato di apprendere informazioni sui dati crittografati. Tuttavia, nessuno dei due riesce completamente a impedire a un utente malintenzionato di manomettere i dati crittografati.
Tuttavia, è probabilmente più facile manomettere un testo cifrato CBC (non diffuso) che manomettere un testo cifrato XTS. Supponiamo che un utente malintenzionato sappia che un messaggio dice
“blah blah Dai ad Alice \ $ 400 … blah blah blah “.
Se questo messaggio viene crittografato utilizzando CBC, lattaccante può manomettere il testo cifrato in modo tale che ora venga decrittografato in
“blah blah! ^% @ ^^ Dai ad Alice \ $ 800 blah blah blah”
\ $ 400 è diventato \ $ 800. Questo è ciò a cui si riferisce la tua citazione su “AES-XTS impedisce a un utente malintenzionato di modificare un bit specifico in ununità dati”. Qui scrivo! ^% @ ^^ per indicare che il precedente blocco di 16 byte diventerà incomprensibile una volta decrittografato, e questo incomprensibile sarà fuori dal controllo dellaggressore.
Daltra parte, usando XTS impedisce questo attacco. Laggressore può corrompere un messaggio trasformando qualsiasi blocco di 16 byte in un linguaggio senza senso casuale, ma non sarà in grado di avere lo stesso grado di controllo che aveva nellesempio CBC.
Ma Microsoft ha deciso di non utilizzare XTS in ogni caso. Il motivo è che la capacità di corrompere un blocco di 16 byte potrebbe ancora essere dannosa. Ecco la citazione dal dchest di carta collegato:
Ad esempio, potrebbe esserci un file di configurazione (o una voce di registro) con un valore che, se impostato su 0, crea una falla di sicurezza nel sistema operativo. Limpostazione su disco è simile a “enableSomeSecuritySetting = 1”. Se linizio del valore cade su un limite di 16 byte e lautore dellattacco randomizza il valore di testo normale, cè una $ 2 ^ {16} $ possibilità che i primi due byte del testo in chiaro sarà 0x30 0x00 che è una stringa che codifica il valore ASCII 0.
(Questa citazione si riferisce al cifrario modificabile LRW, ma il codice XEX modificabile utilizzato in XTS ha lo stesso problema).
Aggiunta di un diffusore. Utilizzo un diffusore è la soluzione di Microsft a questo problema.Lidea qui è di “mescolare” il testo in chiaro prima di crittografarlo in modo che un utente malintenzionato non possa “cambiare \ $ 400 in \ $ 800 — intromettersi con una parte del testo cifrato cambierà quasi lintero testo in chiaro, non solo piccole parti di esso.
Questo suona bene, ma cè un problema: nessuno sa se il diffusore di Microsoft sia effettivamente sicuro. Per quanto ne so, non ha ricevuto alcuna analisi formale pubblicata dai crittografi. Ciò significa che dovresti essere scettico sullaffidarsi ad esso. Microsoft lo riconosce:
Sul lato svantaggio, il diffusore è un nuovo algoritmo non provato, e questo porta inevitabilmente a domande. Senza un ampio controllo pubblico e analisi di un algoritmo, cè un giustificato scetticismo sulla sua sicurezza. Le persone sono riluttanti a fidarsi di nuovi algoritmi. Allora perché abbiamo scelto comunque questa opzione? Nella nostra analisi finale, abbiamo deciso che questa era la scelta migliore per il nostro prodotto. Il guadagno in termini di prestazioni rispetto alle alternative è stato abbastanza importante da superare gli svantaggi di un nuovo algoritmo di diffusione. Il tempo ci dirà se abbiamo fatto la scelta giusta.
La linea di fondo. XTS è meno malleabile del CBC non diffuso. Tuttavia, CBC + Diffuser è probabilmente meno malleabile di XTS, almeno per scopi pratici.
Un aspetto importante. Né CBC né XTS sono stati progettati per essere non malleabili. Garantire che i testi cifrati non vengano manomessi è un problema separato, che dovrebbe essere risolto utilizzando i codici MAC (Message Authentication Codes), come HMAC-SHA256. I motivi per cui i MAC non vengono generalmente utilizzati per gli algoritmi di crittografia dellintero disco sono (1) problemi di prestazioni e (2) lutilizzo di un MAC richiede la memorizzazione di informazioni aggiuntive con il testo cifrato, il che rende laggiunta trasparente un po complicata.
Una via di mezzo tra MAC e diffusori sarebbe quella di utilizzare una modalità di crittografia a blocchi ampi, come CMC, EME o HEH. Puoi pensare a questi come dotati di un diffusore “incorporato”, che li rende non malleabili. A differenza del diffusore di Microsoft, questi algoritmi hanno definizioni di sicurezza formali e prove matematiche sottoposte a revisione paritaria. Sono sicuri presupponendo che AES sia sicuro. Microsoft ha scelto di non utilizzarli a causa di (1) problemi di prestazioni e (2) brevetti.
Commenti
- Nel contesto della crittografia del disco semplice I MAC non sono ' abbastanza buoni. ' avrai bisogno di hashtree con una radice autenticata.
- grazie per questa ottima risposta !!! questo ha reso tutto chiaro … 5 *****
- Probabilmente ' non ha funzionato, ma ' t il problema della malleabilità può essere risolto ecrittografando due volte gli stessi dati utilizzando password e / o algoritmi diversi? Quindi, invece di utilizzare un algoritmo di diffusione non provato, perché non utilizzare di nuovo AES collaudato?
- @Yura Ciò dipenderà da come viene utilizzato AES (XTS, ad esempio, di solito è costruito sopra AES). Se usi la modalità CTR-AES due volte, il risultato non ' diventa meno malleabile (girando un po nel testo cifrato si capovolge ancora il bit corrispondente nel testo in chiaro). Se utilizzi la modalità CBC-AES due volte, puoi ancora eseguire lo stesso attacco che ho menzionato nella mia risposta, ma la lunghezza del " garbage " la sezione raddoppierà. Infine, lutilizzo di AES in una modalità sicura " wideblock " sarebbe più o meno veloce come una di queste soluzioni, comunque. Quindi potrebbe anche farlo, invece.
- Aggiornamento: Windows 10 fornisce lopzione per utilizzare la modalità XTS. Aggiornamento ancora più grande / peggiore: in Windows 8 Microsoft ha RIMOSSO il diffusore. Quindi Windows 8 bitlocker non ' non ha nemmeno il diffusore.
Lascia un commento