Jaka jest przewaga trybu XTS nad trybem CBC (z dyfuzorem)?
On 30 listopada, 2020 by adminMam pewne problemy ze zrozumieniem „zalet” AES-XTS w porównaniu z CBC z dyfuzorem.
Czytałem coś o FileVault , w tym artykule wspominają o dwóch trybach działania XTS i CBC (z dyfuzorem) oraz zaletach XTS.
Oba tryby szyfrują jednostki danych prawie w ten sam sposób. W przypadku CBC numer sektora jest w jakiś sposób używany do budowania IV, w przypadku XTS istnieje „wartość dostrojenia”, która obejmuje również (w jakiś sposób) przesunięcie bloku, więc każdy blok danych może być szyfrowany niezależnie (ma to sens podczas szyfrowania dysków twardych / partycje). Naprawdę nie widzę zalet XTS.
Teraz piszą o XTS:
Istnieje kilka zalet w stosunku do alternatyw takie jak AES w CBC: nie jest wymagany wektor inicjalizacyjny (klucz dostrajania można wyprowadzić z numeru bloku); każdy blok jest szyfrowany inaczej (ponieważ wartość dostrojenia będzie inna); iw przeciwieństwie do AES-CBC, AES-XTS zapobiega zmianie jednego konkretnego bitu w jednostce danych przez xorowanie każdego wejścia AES z inną przesuniętą wersją zaszyfrowanej poprawki.
Może po prostu porównują XTS z CBC (bez dyfuzora) … jeśli tak, czy ktoś zna jakąś zaletę XTS?
I czy ktoś może wyjaśnić drugą zaletę: „AES- XTS uniemożliwia atakującemu zmianę jednego określonego bitu w jednostce danych przez xorowanie każdego wejścia AES z inną przesuniętą wersją zaszyfrowanego ulepszenia. ”?
Komentarze
- Jaki ' s " dyfuzor "? " numer sektora to w jakiś sposób " jak? Nie ' nie opisałeś jasno schematu. Jeśli algorytm jest przewidywalny, prowadzi to do słabych stron, a nieprzewidywalny algorytm jest drogi.
- @CodesInChaos Myślę, że chodzi o zastosowany dyfuzor Elephant firmy Microsoft ' w funkcji BitLocker ( download.microsoft.com/download/0/2/3/… – ostrzeżenie: pobieranie plików PDF ).
- Witamy w wymianie stosów kryptografii. Twoje pytanie zostało przeniesione tutaj, ponieważ nie jest bezpośrednio związane z tworzeniem oprogramowania (temat Stack Overflow) i jest bardziej na temat tutaj. Zarejestruj swoje konto również tutaj, aby móc komentować i akceptować odpowiedź.
Odpowiedź
XTS kontra nierozproszona CBC. Tutaj problemem jest plastyczność . Zarówno XTS, jak i CBC uniemożliwiają atakującemu uzyskanie informacji o zaszyfrowanych danych. Jednak żadnemu z nich nie udaje się całkowicie zapobiec manipulowaniu zaszyfrowanymi danymi.
Jednak prawdopodobnie łatwiej jest manipulować (nierozproszonym) zaszyfrowanym tekstem CBC niż manipulować tekstem zaszyfrowanym XTS. Powiedzmy, że napastnik wie, że w jakiejś wiadomości jest napisane
„bla bla Daj Alicji \ $ 400 … bla bla blah „.
Jeśli ta wiadomość jest zaszyfrowana przy użyciu CBC, osoba atakująca może manipulować szyfrogramem w taki sposób, że zostanie odszyfrowany do
„bla bla! ^% @ ^^ Daj Alicji \ $ 800 bla bla bla”
\ $ 400 stało się \ $ 800. Do tego właśnie odnosi się Twój cytat dotyczący „AES-XTS zapobiega zmianie jednego określonego bitu w jednostce danych przez atakującego”. Tutaj piszę! ^% @ ^^, aby wskazać, że poprzedni 16-bajtowy blok stanie się bełkotem po odszyfrowaniu, a ten bełkot będzie poza kontrolą atakującego.
Z drugiej strony, użycie XTS zapobiega temu atakowi. Atakujący może uszkodzić wiadomość, zamieniając dowolny 16-bajtowy blok w losowy bełkot, ale nie będzie mógł mieć takiego samego stopnia kontroli, jak w przykładzie z CBC.
Ale Firma Microsoft zdecydowała się i tak nie używać XTS. Powodem jest to, że możliwość uszkodzenia 16-bajtowego bloku nadal może być szkodliwa. Oto cytat z powiązanego z paper dchest:
Na przykład może istnieć plik konfiguracyjny (lub wpis rejestru) z wartością, która po ustawieniu na 0 tworzy lukę w zabezpieczeniach w systemie operacyjnym. Na dysku ustawienie wygląda jak „enableSomeSecuritySetting = 1”. Jeśli początek wartości przypada na 16-bajtową granicę, a atakujący losuje wartość w postaci zwykłego tekstu, istnieje $ 2 ^ {16} $ , że pierwsze dwa bajty zwykłego tekstu będzie 0x30 0x00, który jest ciągiem kodującym wartość ASCII „0”.
(Ten cytat odnosi się do szyfru LRW, który można modyfikować, ale kod XEX, który można modyfikować, używany w XTS, ma ten sam problem).
Dodawanie dyfuzora. Używanie Dyfuzor jest rozwiązaniem tego problemu firmy Microsft.Chodzi o to, aby „wymieszać” tekst jawny przed jego zaszyfrowaniem, tak aby atakujący nie mógł zmienić \ 400 $ na \ $ 800 — wtrącanie się w część zaszyfrowanego tekstu spowoduje zmianę prawie całego tekstu jawnego, a nie tylko jego małych części.
Brzmi dobrze, ale jest pewien haczyk: nikt tak naprawdę nie wie, czy dyfuzor Microsoftu jest rzeczywiście bezpieczny. O ile mi wiadomo, nie otrzymał on żadnej opublikowanej formalnej analizy od kryptografów. Oznacza to, że powinieneś być sceptyczny, jeśli chodzi o poleganie na nim. Microsoft przyznaje, że:
Z drugiej strony dyfuzor to nowy niesprawdzony algorytm, co nieuchronnie prowadzi do pytań. Bez szeroko zakrojonej publicznej kontroli i analizy algorytmu istnieje uzasadniony sceptycyzm co do jego bezpieczeństwa. Ludzie niechętnie ufają nowym algorytmom. Dlaczego więc wybraliśmy tę opcję? W naszej końcowej analizie zdecydowaliśmy, że to lepszy wybór dla naszego produktu. Wzrost wydajności w porównaniu z alternatywami był na tyle ważny, że przeważył wady nowego algorytmu dyfuzora. Czas pokaże, czy dokonaliśmy właściwego wyboru.
Podsumowanie. XTS jest mniej plastyczny niż nierozproszona CBC. Jednak CBC + Diffuser jest prawdopodobnie mniej plastyczny niż XTS, przynajmniej ze względów praktycznych.
Ważny na marginesie. Ani CBC, ani XTS nie zostały zaprojektowane tak, aby nie były plastyczne. Zapewnienie, że zaszyfrowane teksty nie są modyfikowane, to osobny problem, który należy rozwiązać za pomocą kodów uwierzytelniania wiadomości (MAC), takich jak HMAC-SHA256. Powody, dla których MAC nie są zwykle używane w algorytmach szyfrowania całego dysku, to (1) problemy z wydajnością i (2) używanie MAC wymaga przechowywania dodatkowych informacji w zaszyfrowanym tekście, co sprawia, że dodanie ich w sposób przejrzysty jest trochę trudne.
Pośrodku między MAC i dyfuzorami byłoby użycie trybu szyfrowania z szerokim blokiem, takiego jak CMC, EME lub HEH. Można o nich myśleć jako o „wbudowanym” dyfuzorze, który sprawia, że nie są plastyczne. W przeciwieństwie do dyfuzora Microsoftu, algorytmy te mają formalne definicje zabezpieczeń i recenzowane dowody matematyczne. Są bezpieczne przy założeniu, że AES jest bezpieczne. Firma Microsoft zdecydowała się ich nie używać z powodu (1) problemów z wydajnością i (2) patentów.
Komentarze
- W kontekście prostego szyfrowania dysku MAC nie są wystarczająco ' dobre. ' Będziesz potrzebować hashtree z uwierzytelnionym korzeniem.
- Dzięki za tę świetną odpowiedź !!! dzięki temu wszystko stało się jasne … 5 *****
- Prawdopodobnie wygrał ' t, ale wygrał ' t problem plastyczności można rozwiązać przez ponowne szyfrowanie tych samych danych przy użyciu różnych haseł i / lub różnych algorytmów? Więc zamiast używać niesprawdzonego algorytmu dyfuzora, dlaczego nie użyć ponownie sprawdzonego AES?
- @Yura Będzie to zależeć od tego, jak jest używany AES (na przykład XTS jest zwykle zbudowany na bazie AES). Jeśli użyjesz trybu CTR-AES dwa razy, wynik nie ' nie stanie się mniej plastyczny (przerzucenie trochę w zaszyfrowanym tekście nadal powoduje odwrócenie odpowiedniego bitu w tekście jawnym). Jeśli użyjesz trybu CBC-AES dwa razy, nadal możesz wykonać ten sam atak, o którym wspomniałem w mojej odpowiedzi, ale długość niekontrolowanego losowego " śmieci " podwoi się. Wreszcie, użycie AES w bezpiecznym trybie " wideblock " byłoby z grubsza tak szybkie, jak każde z tych rozwiązań. Więc równie dobrze może to zrobić zamiast tego.
- Aktualizacja: Windows 10 zapewnia opcję korzystania z trybu XTS. Jeszcze większa / gorsza aktualizacja: W Windows 8 Microsoft USUNĄŁ dyfuzor. Więc bitlocker systemu Windows 8 nie ' nie ma nawet dyfuzora.
Dodaj komentarz