Hvad er fordelen ved XTS i forhold til CBC-tilstand (med diffusor)?
On november 30, 2020 by adminJeg har nogle problemer med at forstå “fordelen” ved AES-XTS sammenlignet med CBC med diffuser.
Jeg læste noget om FileVault , i dette papir nævner de de to operationstilstande XTS og CBC (med diffuser) og fordelene ved XTS.
Begge tilstande krypterer dataenheder næsten på samme måde. For CBC bruges sektornummeret på en eller anden måde til at opbygge IV, for XTS er der en “tweak-værdi”, som også inkluderer (på en eller anden måde) blok offset, så hver datablok kan krypteres uafhængigt (giver mening, når man krypterer harddiske / partitioner). Jeg kan ikke rigtig se fordelen ved XTS.
Nu skriver de følgende om XTS:
Der er flere fordele i forhold til alternativer såsom AES i CBC: der er ikke noget krav til en initialiseringsvektor (tweak-nøglen kan udledes fra bloknummeret); hver blok er krypteret forskelligt (da tweak-værdien vil være forskellig); og i modsætning til AES-CBC forhindrer AES-XTS en angriber i at ændre en bestemt bit i en dataenhed ved at xorere hver AES-input med en anden forskudt version af den krypterede tweak.
Måske sammenligner de bare XTS med CBC (uden diffuser) … hvis ja, kender nogen nogen fordel ved XTS?
Og kan nogen forklare den anden fordel: “AES- XTS forhindrer en angriber i at ændre en bestemt bit i en dataenhed ved at xorere hver AES-input med en anden forskudt version af den krypterede tweak. “?
Kommentarer
- Hvad ' s " diffusor "? " sektornummeret er på en eller anden måde " hvordan? Du ' t beskrev ordningen tydeligt. Hvis algoritmen er forudsigelig, fører dette til svagheder, og en uforudsigelig algoritme er dyr.
- @CodesInChaos Jeg tror, at henvisningen er til Microsoft ' s Elefantdiffusor brugt i BitLocker ( download.microsoft.com/download/0/2/3/… – advarsel: downloads PDF ).
- Velkommen til Cryptography Stack Exchange. Dit spørgsmål blev migreret her på grund af at være ikke direkte relateret til softwareudvikling (emnet Stack Overflow) og være mere on-topic her. Registrer også din konto her for at kunne kommentere og acceptere et svar.
Svar
XTS vs. Undiffused CBC. Problemet her er smidighed . Både XTS og CBC forhindrer en angriber i at lære information om krypterede data. Ingen af dem lykkes dog fuldstændigt med at forhindre en angriber i at manipulere med krypterede data.
Det er dog uden tvivl lettere at manipulere med en (ikke-spredt) CBC-ciffertekst end det er at manipulere med en XTS-ciphertext. Lad os sige, at en angriber tilfældigvis kender en besked, der siger
“bla bla Giv Alice \ $ 400 … bla bla bla “.
Hvis denne meddelelse er krypteret ved hjælp af CBC, kan angriberen manipulere cifferteksten på en sådan måde, at den nu dekrypteres til
“bla bla! ^% @ ^^ Giv Alice \ $ 800 bla bla bla”
\ $ 400 er blevet $ 800. Dette er hvad dit citat om “AES-XTS forhindrer en angriber i at ændre en bestemt bit i en dataenhed” henviser til. Her skriver jeg! ^% @ ^^ for at indikere, at den forrige 16-byte-blok bliver gibberish, når den først er dekrypteret, og denne gibberish vil være uden for angriberens kontrol.
På den anden side bruger XTS forhindrer dette angreb. Angriberen kan ødelægge en besked ved at gøre enhver 16-byte-blok til tilfældig gibberish, men han vil ikke være i stand til at have den samme grad af kontrol som han gjorde i CBC-eksemplet.
Men Microsoft besluttede ikke at bruge XTS alligevel. Årsagen er, at evnen til at ødelægge en 16-byte-blok stadig kan være skadelig. Her er citatet fra det linkede papir dchest:
For eksempel kan der være en konfigurationsfil (eller registreringsdatabaseindgang) med en værdi, der, når den er indstillet til 0, skaber et sikkerhedshul i operativsystemet. På disken ser indstillingen ud som “enableSomeSecuritySetting = 1”. Hvis starten på værdien falder på en 16-byte grænse, og angriberen randomiserer den almindelige tekstværdi, er der en $ 2 ^ {16} $ chance for, at de to første byte af almindelig tekst vil være 0x30 0x00, hvilket er en streng, der koder ASCII-værdien 0.
(Dette citat henviser til den LRW-tweakable chiffer, men XEX-tweakable chiffer, der bruges i XTS, har det samme problem).
Tilføjelse af en diffusor. Brug af en diffusor er Microsfts løsning på dette problem.Ideen her er at “blande” almindelig tekst op, før den krypteres, så en angriber ikke kan ændre \ $ 400 til \ $ 800 — at blande sig med en del af krypteringsteksten vil ændre næsten hele almindelig tekst, ikke kun små dele af den.
Dette lyder godt, men der er en fangst: Ingen ved faktisk, om Microsofts diffusor faktisk er sikker. Efter min viden har den ikke modtaget nogen offentliggjort formel analyse fra kryptografer. Dette betyder, at du skal være skeptisk med at stole på det. Microsoft anerkender dette:
På ulempesiden er diffusoren en ny uprøvet algoritme, og dette fører uundgåeligt til spørgsmål. Uden omfattende offentlig kontrol og analyse af en algoritme er der en berettiget skepsis med hensyn til dens sikkerhed. Folk er tilbageholdende med at stole på nye algoritmer. Så hvorfor valgte vi alligevel denne mulighed? I vores endelige analyse besluttede vi, at dette var det bedre valg for vores produkt. Ydelsesgevinsten over alternativerne var vigtig nok til at opveje ulemperne ved en ny diffusoralgoritme. Tiden vil vise, om vi tog det rigtige valg.
Bundlinjen. XTS er mindre formbar end ikke-diffunderet CBC. CBC + Diffuser er dog sandsynligvis mindre formbar end XTS, i det mindste til praktiske formål.
En vigtig side. Hverken CBC eller XTS var designet til at være ikke formbar. Det er et separat problem at sikre, at der ikke er manipuleret med ciphertexts, som skal løses ved hjælp af Message Authentication Codes (MACer), såsom HMAC-SHA256. Årsagerne til, at MACer ikke typisk bruges til krypteringsalgoritmer med fuld disk, er (1) ydeevneproblemer, og (2) brug af en MAC kræver lagring af ekstra information med krypteringsteksten, hvilket gør det vanskeligt at tilføje det gennemsigtigt.
En mellemvej mellem MACer og diffusorer ville være at bruge en wide-block krypteringstilstand, såsom CMC, EME eller HEH. Du kan tænke på disse som at have en “indbygget” diffuser, der gør dem ikke-formbare. I modsætning til Microsofts diffusor har disse algoritmer formelle sikkerhedsdefinitioner og peer-reviewed matematiske bevis. De er sikre under den antagelse, at AES er sikkert. Microsoft valgte ikke at bruge disse på grund af (1) ydeevneproblemer og (2) patenter.
Kommentarer
- I forbindelse med disk-kryptering enkel MACer er ' t godt nok. Du ' skal bruge hashtree med en godkendt rod.
- tak for dette gode svar !!! dette gjorde alt klart … 5 *****
- Dette vandt sandsynligvis ' t, men vandt ' t problemet med smidbarhed løses ved at udkryptere de samme data to gange ved hjælp af forskellige adgangskoder og / eller forskellige algoritmer? Så i stedet for at bruge uprøvet diffusoralgoritme, hvorfor ikke bruge bevist AES igen?
- @Yura Det afhænger af, hvordan AES bruges (for eksempel XTS er normalt bygget oven på AES). Hvis du bruger CTR-AES-tilstand to gange, bliver resultatet ikke ' t mindre formbart (spejlvending lidt i krypteringsteksten vender stadig den tilsvarende bit i almindelig tekst). Hvis du bruger CBC-AES-tilstand to gange, kan du stadig gøre det samme angreb, som jeg nævnte i mit svar, men længden af det ukontrollerede tilfældige " affald " sektionen fordobles. Endelig vil brugen af AES i en sikker " wideblock " -tilstand alligevel være omtrent lige så hurtig som en af disse løsninger. Så kan lige så godt gøre det i stedet.
- Opdatering: Windows 10 giver mulighed for at bruge XTS-tilstand. Endnu større / dårligere opdatering: I Windows 8 FJERNET Microsoft diffusoren. Så windows 8 bitlocker har ikke ' t engang diffusoren.
Skriv et svar