Care este avantajul XTS față de modul CBC (cu difuzor)?
On noiembrie 30, 2020 by adminAm unele probleme în înțelegerea „avantajului” AES-XTS în comparație cu CBC cu difuzor.
Am citit ceva despre FileVault , în această lucrare menționează cele două moduri de operații XTS și CBC (cu difuzor) și avantajele XTS.
Ambele moduri criptează unități de date aproape la fel. Pentru CBC, numărul sectorului este cumva folosit pentru a construi IV, pentru XTS, există o „valoare de ajustare”, care include (cumva) și offset-ul blocului, astfel încât fiecare bloc de date poate fi criptat independent (are sens atunci când criptează hard disk-uri / partiții). Nu pot vedea cu adevărat avantajul XTS.
Acum, ei scriu următoarele despre XTS:
Există mai multe avantaje față de alternative cum ar fi AES în CBC: nu există nicio cerință pentru un vector de inițializare (cheia de ajustare poate fi derivată din numărul blocului); fiecare bloc este criptat diferit (deoarece valoarea de ajustare va fi diferită); și, spre deosebire de AES-CBC, AES-XTS împiedică un atacator să schimbe un bit specific într-o unitate de date prin xorarea fiecărei intrări AES cu o versiune diferită a modificării criptate.
Poate doar compară XTS cu CBC (fără difuzor) … dacă da, știe cineva vreun avantaj al XTS?
Și cineva poate explica al doilea avantaj: „AES- XTS împiedică un atacator să schimbe un bit specific într-o unitate de date prin xor-ing fiecare intrare AES cu o versiune diferită a modificării criptate. „?
Comments
- Ce ' s " difuzor "? " numărul sectorului este cumva " cum? Nu ați ' descris schema în mod clar. Dacă algoritmul este previzibil, acest lucru duce la puncte slabe și un algoritm imprevizibil este scump.
- @CodesInChaos Cred că referința se referă la difuzorul de elefant Microsoft ' în BitLocker ( download.microsoft.com/download/0/2/3/… – avertisment: descărcări PDF ).
- Bine ați venit la Cryptography Stack Exchange. Întrebarea dvs. a fost migrată aici din cauza faptului că nu are legătură directă cu dezvoltarea de software (subiectul Stack Overflow) și că este mai subiect aici. Vă rugăm să vă înregistrați și contul aici, pentru a putea comenta și accepta un răspuns.
Răspuns
XTS vs. Undiffused CBC. Problema este maleabilitatea . Atât XTS, cât și CBC împiedică un atacator să învețe informații despre date criptate. Cu toate acestea, niciunul dintre ei nu reușește complet să împiedice un atacator să manipuleze datele criptate.
Cu toate acestea, este cu siguranță mai ușor să manipulezi un text cifrat CBC (nedifuzat) decât este falsificați un text cifrat XTS. Să spunem că un atacator știe că un mesaj spune că
„bla bla dă-i lui Alice $ 400 … bla bla bla „.
Dacă acest mesaj este criptat utilizând CBC, atacatorul poate manipula textul cifrat în așa fel încât acum să decripteze la
„bla bla! ^% @ ^^ Oferă-i lui Alice $ 800 bla bla bla”
\ 400 $ a devenit \ 800 $. La asta se referă citatul dvs. despre „AES-XTS împiedică un atacator să schimbe un bit specific într-o unitate de date”. Aici scriu! ^% @ ^^ pentru a indica faptul că blocul precedent de 16 octeți va deveni gibberish odată decriptat, iar acest gibberish va fi în afara controlului atacatorului.
Pe de altă parte, folosind XTS previne acest atac. Atacatorul poate corupe un mesaj prin transformarea oricărui bloc de 16 octeți în tâmpenii aleatorii, dar nu va putea avea același grad de control ca în exemplul CBC.
Microsoft a decis să nu folosească XTS oricum. Motivul este că abilitatea de a corupe un bloc de 16 octeți ar putea fi în continuare dăunătoare. Iată „Citatul din hârtie dchest legat:
De exemplu, ar putea exista un fișier de configurare (sau intrare de registru) cu o valoare care, atunci când este setată la 0, creează o gaură de securitate în sistemul de operare. Setarea pe disc arată ceva de genul „enableSomeSecuritySetting = 1”. Dacă începutul valorii se încadrează pe o limită de 16 octeți și atacatorul randomizează valoarea textului simplu, există o șansă $ 2 ^ {16} $ ca primii doi octeți din textul clar va fi 0x30 0x00, care este un șir care codifică valoarea ASCII 0.
(Acest citat se referă la cifrul modificabil LRW, dar cifrul modificabil XEX utilizat în XTS are aceeași problemă).
Adăugarea unui difuzor. Utilizarea un difuzor este soluția Microsft la această problemă.Ideea de aici este să „amestecați” textul clar înainte de a-l cripta, astfel încât un atacator să nu poată schimba \ 400 $ în \ 800 $ — amestecarea cu o parte din textul cifrat va schimba aproape întregul text clar, nu doar părți mici ale acestuia.
Acest lucru sună bine, dar există o problemă: nimeni nu știe dacă difuzorul Microsoft este de fapt sigur. Din câte știu, nu a primit nicio analiză oficială publicată de la criptografi. Aceasta înseamnă că ar trebui să fii sceptic cu privire la încrederea în el. Microsoft recunoaște acest lucru:
Pe partea dezavantajului, difuzorul este un nou algoritm nedovedit, ceea ce duce inevitabil la întrebări. Fără o analiză publică extinsă și analiza unui algoritm, există un scepticism justificat cu privire la securitatea acestuia. Oamenii sunt reticenți să aibă încredere în algoritmi noi. Deci, de ce am ales această opțiune oricum? În analiza noastră finală, am decis că aceasta este cea mai bună alegere pentru produsul nostru. Câștigul de performanță față de alternative a fost suficient de important pentru a depăși dezavantajele unui nou algoritm de difuzare. Timpul ne va spune dacă am făcut alegerea corectă.
Linia de jos. XTS este mai puțin maleabil decât CBC nedifuzat. Cu toate acestea, difuzorul CBC + este probabil mai puțin maleabil decât XTS, cel puțin în scopuri practice.
Un aspect important. Nici CBC, nici XTS nu au fost concepute pentru a fi non-maleabile. Asigurarea faptului că textele cifrate nu sunt modificate este o problemă separată, care ar trebui rezolvată prin utilizarea codurilor de autentificare a mesajelor (MAC), cum ar fi HMAC-SHA256. Motivele pentru care MAC-urile nu sunt utilizate în mod obișnuit pentru algoritmii de criptare pe disc complet sunt (1) probleme de performanță și (2) utilizarea unui MAC necesită stocarea de informații suplimentare cu textul cifrat, ceea ce face ca adăugarea sa transparentă să fie puțin complicată. > O cale de mijloc între MAC-uri și difuzoare ar fi utilizarea unui mod de criptare cu bloc larg, cum ar fi CMC, EME sau HEH. Vă puteți gândi la acestea ca având un difuzor „încorporat”, care le face ne-maleabile. Spre deosebire de difuzorul Microsoft, acești algoritmi au definiții formale de securitate și dovezi matematice revizuite de colegi. Sunt siguri în ipoteza că AES este sigur. Microsoft a ales să nu le folosească din cauza (1) problemelor de performanță și (2) a brevetelor.
Comentarii
- În contextul criptării pe disc simplu MAC-urile nu sunt ' suficient de bune. ' veți avea nevoie de hashtree cu o rădăcină autentificată.
- mulțumim pentru acest răspuns minunat !!! acest lucru a făcut totul clar … 5 *****
- Probabil că acest lucru nu a funcționat ', dar a câștigat ' t problema maleabilității trebuie rezolvată prin criptarea acelorași date de două ori folosind parole diferite și / sau algoritmi diferiți? Deci, în loc să folosiți un algoritm difuzor nedovedit, de ce să nu folosiți din nou AES dovedit?
- @Yura Aceasta va depinde de modul în care este utilizat AES (XTS, de exemplu, este de obicei construit deasupra AES). Dacă utilizați modul CTR-AES de două ori, rezultatul nu devine ' nu devine mai puțin maleabil (răsucirea unui bit în textul cifrat răstoarnă bitul corespunzător în textul clar). Dacă utilizați modul CBC-AES de două ori, puteți face totuși același atac pe care l-am menționat în răspunsul meu, dar lungimea aleatorie necontrolată " gunoi " secțiunea se va dubla. În cele din urmă, utilizarea AES într-un mod securizat " wideblock " ar fi aproximativ la fel de rapid ca oricare dintre aceste soluții, oricum. Deci, ar putea face asta la fel de bine.
- Actualizare: Windows 10 oferă opțiunea de a utiliza modul XTS. Actualizare chiar mai mare / mai proastă: în Windows 8 Microsoft a ÎNLĂTURAT difuzorul. Deci, Windows 8 bitlocker nu are ' nici măcar difuzorul.
Lasă un răspuns