Hva er fordelen med XTS i forhold til CBC-modus (med diffusor)?
On november 30, 2020 by adminJeg har noen problemer med å forstå «fordelen» med AES-XTS sammenlignet med CBC med diffusor.
Jeg leste noe om FileVault , i denne artikkelen nevner de de to operasjonsmodusene XTS og CBC (med diffusor) og fordelene med XTS.
Begge modusene krypterer dataenheter nesten på samme måte. For CBC brukes sektornummeret på en eller annen måte for å bygge IV, for XTS er det en «tweak-verdi», som også inkluderer (på en eller annen måte) blokkforskyvningen, slik at hver datablokk kan krypteres uavhengig (gir mening når du krypterer harddisker / partisjoner). Jeg kan egentlig ikke se fordelen med XTS.
Nå skriver de følgende om XTS:
Det er flere fordeler fremfor alternativer slik som AES i CBC: det er ikke noe krav til en initialiseringsvektor (tweak-nøkkelen kan utledes fra blokknummeret); hver blokk er kryptert forskjellig (siden justeringsverdien vil være forskjellig); og i motsetning til AES-CBC forhindrer AES-XTS en angriper fra å endre en bestemt bit i en dataenhet ved å xorere hver AES-inngang med en annen forskjøvet versjon av den krypterte justeringen.
Kanskje de bare sammenligner XTS mot CBC (uten diffusor) … i så fall, vet noen noen fordeler med XTS?
Og kan noen forklare den andre fordelen: «AES- XTS forhindrer en angriper i å endre en bestemt bit i en dataenhet ved å xorere hver AES-inngang med en annen forskjøvet versjon av den krypterte justeringen. «?
Kommentarer
- Hva ' s " diffusor "? " sektornummeret er på en eller annen måte " hvordan? Du ' t beskrev ordningen tydelig. Hvis algoritmen er forutsigbar, fører dette til svakheter, og en uforutsigbar algoritme er dyr.
- @CodesInChaos Jeg tror referansen er til Microsoft ' s Elefantdiffusor brukt i BitLocker ( download.microsoft.com/download/0/2/3/… – advarsel: laster ned PDF ).
- Velkommen til Cryptography Stack Exchange. Spørsmålet ditt ble migrert hit på grunn av at det ikke var direkte relatert til programvareutvikling (temaet Stack Overflow), og var mer temaet her. Registrer også kontoen din her for å kunne kommentere og godta et svar.
Svar
XTS vs. Undiffused CBC. Problemet her er smidbarhet . Både XTS og CBC forhindrer en angriper i å lære informasjon om krypterte data. Ingen av dem lykkes imidlertid fullstendig med å forhindre at en angriper tukler med krypterte data.
Imidlertid er det uten tvil lettere å tukle med en (udiffusert) CBC-kryptering enn det er å tukle med en XTS-krypteringstekst. La oss si at en angriper tilfeldigvis kjenner noen meldinger sier
«bla bla Gi Alice \ $ 400 … bla bla blah «.
Hvis denne meldingen er kryptert ved hjelp av CBC, kan angriperen tukle med krypteringsteksten på en slik måte at den nå dekrypteres til
«bla bla! ^% @ ^^ Gi Alice \ $ 800 bla bla bla»
$ 400 har blitt $ 800. Dette er hva sitatet ditt om «AES-XTS hindrer en angriper i å endre en bestemt bit i en dataenhet» refererer til. Her skriver jeg! ^% @ ^^ for å indikere at den forrige 16-byte-blokken vil bli gibberish når den er dekryptert, og denne gibberishen vil være utenfor angriperens kontroll.
På den annen side bruker XTS forhindrer dette angrepet. Angriperen kan ødelegge en melding ved å gjøre en hvilken som helst 16-byte-blokk til tilfeldig gibberish, men han vil ikke kunne ha samme grad av kontroll som han gjorde i CBC-eksemplet.
Men Microsoft bestemte seg for ikke å bruke XTS uansett. Årsaken er at evnen til å ødelegge en 16-byte-blokk fremdeles kan være skadelig. Her er sitatet fra papiret som er koblet til:
Det kan for eksempel være en konfigurasjonsfil (eller registeroppføring) med en verdi som, når den er satt til 0, skaper et sikkerhetshull i operativsystemet. På disk ser innstillingen ut som «enableSomeSecuritySetting = 1». Hvis begynnelsen av verdien faller på en 16-byte-grense og angriperen randomiserer ren tekst, er det en $ 2 ^ {16} $ sjanse for at de to første byte av ren tekst vil være 0x30 0x00, som er en streng som koder ASCII-verdien 0.
(Dette sitatet refererer til den LRW-justerbare krypteringen, men XEX-justerbar kryptering som brukes i XTS har det samme problemet).
Legge til en diffusor. Bruke en diffusor er Microsft løsning på dette problemet.Tanken her er å «blande» ren tekst opp før du krypterer den slik at en angriper ikke kan endre $ 400 til $ 800 — å blande seg med en del av krypteringsteksten vil forandre nesten hele ren tekst, ikke bare små deler av den.
Dette høres bra ut, men det er en fangst: Ingen vet faktisk om Microsofts diffusor faktisk er sikker. Så vidt jeg vet, har den ikke mottatt noen publisert formell analyse fra kryptografer. Dette betyr at du bør være skeptisk til å stole på det. Microsoft erkjenner dette:
På ulempesiden er diffusoren en ny uprøvd algoritme, og dette fører uunngåelig til spørsmål. Uten omfattende offentlig gransking og analyse av en algoritme er det en berettiget skepsis til dens sikkerhet. Folk er motvillige til å stole på nye algoritmer. Så hvorfor valgte vi allikevel dette alternativet? I den endelige analysen bestemte vi oss for at dette var det bedre valget for produktet vårt. Ytelsesgevinsten over alternativene var viktig nok til å oppveie ulempene med en ny diffusoralgoritme. Tiden vil vise om vi tok det riktige valget.
Bunnlinjen. XTS er mindre formbar enn ikke-diffusert CBC. Imidlertid er CBC + diffusor sannsynligvis mindre formbar enn XTS, i det minste for praktiske formål.
En viktig side. Verken CBC eller XTS var designet for å være ikke formbar. Å sørge for at det ikke blir manipulert med krypteringstekster er et eget problem, et problem som bør løses ved å bruke Message Authentication Codes (MACs), for eksempel HMAC-SHA256. Årsakene til at MAC-er ikke vanligvis brukes til krypteringsalgoritmer for full disk er (1) ytelsesproblemer, og (2) bruk av MAC krever lagring av ekstra informasjon med krypteringstekst, noe som gjør det vanskelig å legge det til transparent.
En mellomgrunn mellom MAC-er og diffusorer vil være å bruke en krypteringsmodus med bred blokk, som CMC, EME eller HEH. Du kan tenke på disse som å ha en «innebygd» diffusor, som gjør dem ikke formbare. I motsetning til Microsofts diffusor har disse algoritmene formelle sikkerhetsdefinisjoner og fagfellevurderte matematiske bevis. De er sikre under forutsetning av at AES er sikker. Microsoft valgte ikke å bruke disse på grunn av (1) ytelsesproblemer og (2) patenter.
Kommentarer
- I sammenheng med disk-kryptering enkel MAC er ikke ' t godt nok. Du ' trenger hashtree med en godkjent rot.
- takk for dette flotte svaret !!! dette gjorde alt klart … 5 *****
- Sannsynligvis vant dette ' t arbeid, men vant ' t problemet med smidbarhet løses ved å kryptere samme data to ganger ved hjelp av forskjellige passord og / eller forskjellige algoritmer? Så i stedet for å bruke uprøvd diffusoralgoritme, hvorfor ikke bruke bevist AES igjen?
- @Yura Det vil avhenge av hvordan AES brukes (for eksempel XTS er vanligvis bygget på toppen av AES). Hvis du bruker CTR-AES-modus to ganger, blir resultatet ikke ' t mindre smidig (å bla litt i krypteringsteksten snur fremdeles den tilsvarende biten i ren tekst). Hvis du bruker CBC-AES-modus to ganger, kan du fortsatt gjøre det samme angrepet som jeg nevnte i svaret mitt, men lengden på det ukontrollerte tilfeldige " søppel " seksjonen vil dobles. Til slutt vil bruk av AES i en sikker " wideblock " -modus uansett være omtrent like rask som en av disse løsningene. Så kan like godt gjøre det i stedet.
- Oppdatering: Windows 10 gir muligheten til å bruke XTS-modus. Enda større / verre oppdatering: I Windows 8 FJERNET Microsoft diffusoren. Så windows 8 bitlocker har ikke ' t engang diffusoren.
Legg igjen en kommentar