Próbuję dowiedzieć się więcej o trybie GCM i różnicach między CBC. Wiem już, że GCM zapewnia MAC, który jest używany do uwierzytelniania wiadomości. Z tego, co przeczytałem, i z fragmentów kodu, które widziałem, GCM wykonuje ekskluzywne lub podobne do CBC, ale nie jestem pewien, czemu jest wyłączne lub przeciw. W trybie CBC tekst na wyłączność lub jest tekstem jawnym w stosunku do poprzedniego bloku tekstu zaszyfrowanego, z wyjątkiem pierwszego bloku, który używa losowego IV. Czy GCM robi to samo, czy też działa na wyłączność – czy przeciwko czemuś innemu? Jeśli tak, czy ktoś może pokrótce wyjaśnić, w jaki sposób GCM używa IV i jak jest wykonywane wyłączne lub.

Komentarze

  • Jeśli zignorujesz uwierzytelnianie, GCM zachowuje się jak tryb CTR, a nie jak tryb CBC. Wyszukaj je na Wikipedii.
  • Tylko dlatego, że nie jest ' t zdefiniowane na tej stronie … GCM = Galois / Counter Mode i CBC = Cipher Block Chaining … inne definicje obejmują MAC (Message Authentication Code), IV (Initialisation Vector) i CTR (CounTeR Mode).

Answer

Tryby GCM i CBC działają wewnętrznie zupełnie inaczej; oba zawierają szyfr blokowy i wyłączność-lub, ale używają ich na różne sposoby.

W trybie CBC szyfrujesz blok danych, pobierając bieżący blok tekstu jawnego i wykluczając poprzedni blok szyfrogramu (lub IV), a następnie przesłanie wyniku tego przez szyfr blokowy; wyjściem szyfru blokowego jest blok tekstu zaszyfrowanego.

Tryb GCM zapewnia zarówno prywatność (szyfrowanie), jak i integralność. Aby zapewnić szyfrowanie, GCM utrzymuje licznik; dla każdego bloku danych wysyła aktualną wartość licznika poprzez szyfr blokowy. Następnie pobiera dane wyjściowe z szyfru blokowego i wykluczające lub z tekstem jawnym, tworząc tekst zaszyfrowany.

Zwróć uwagę na dwie kluczowe różnice:

  • Co jest „edytowane na wyłączność” lub „na wyłączność”; w trybie CBC tekst jawny jest „na wyłączność” lub „z danymi, które zna atakujący (IV lub poprzedni blok tekstu zaszyfrowanego); stąd to samo w sobie nie zapewnia żadnego nieodłącznego bezpieczeństwa (zamiast tego robimy to, aby zminimalizować prawdopodobieństwo, że wyślemy ten sam blok dwa razy przez szyfr blokowy). W trybie GCM tekst jawny jest na wyłączność lub „edytuje” z wyjściem z szyfru blokowego; jest to nieodłączne od modelu bezpieczeństwa, że atakujący nie może odgadnąć tego wyjścia (chyba że zna już tekst jawny i tekst zaszyfrowany).

  • Co jest przesyłane przez szyfr blokowy; w trybie CBC, tekst jawny jest wysyłany przez szyfr blokowy (po tym, jak został „zrandomizowany” z wyłącznikiem-lub); w trybie GCM to, co jest wysyłane przez szyfr blokowy, nie zależy od tego, czy dane są zaszyfrowane, ale zamiast tego tylko w stanie wewnętrznym.

Jeśli chodzi o sposób, w jaki GCM używa IV (osobiście uważam „nonce” za lepsze określenie tego, czego używa GCM, ponieważ wzmacnia to pomysł, że w przypadku GCM nie można dwukrotnie użyć tej samej wartości jednorazowej dla tego samego klucza), cóż, służy do inicjalizacji licznika.

Komentarze

  • Bardzo interesujące … Jeśli dobrze rozumiem, mówisz, że w trybie GCM zaszyfrowany tekst bloku jest wyłączny – lub ' z tekstem jawnym, który został właśnie wprowadzony przez szyfr i ten blok jest następnie wysyłany. Jeśli to prawda, to w jaki sposób ten blok jest odszyfrowywany? Czy nie ' t tekst zaszyfrowany z szyfrowania AES (na przykład) wymaganego do odszyfrowania danych? jest to uzyskane? Również, jeśli o jest uzyskiwany sztywny zaszyfrowany tekst, który może być użyty do wyłączności – lub wysłanego zaszyfrowanego tekstu, który zwróciłby zwykły tekst i nie wymagałby dalszego deszyfrowania… ' czegoś brakuje .. .
  • Nie, w GCM bierzemy licznik, wysyłamy go przez szyfr blokowy, a następnie wyłączamy – lub to z tekstem jawnym, tworząc szyfrogram. Po stronie odszyfrowywania utrzymujemy ten sam licznik, wysyłamy go przez szyfr blokowy, a następnie wyłączamy – lub to z szyfrogramem, aby utworzyć tekst jawny.
  • @poncho Więc w GCM nie potrzebujemy „Odszyfrowana” część szyfru blokowego? Ponieważ używamy „szyfrowania” po obu stronach.
  • Jeśli użyjesz tego samego numeru jednorazowego dwa razy z tym samym kluczem, otwierasz się na … jaki atak?
  • @RobertSiemer: dwa ataki: a) atakujący uzyskuje znaczną ilość informacji o dwóch wiadomościach zaszyfrowanych tą samą wartością jednorazową (prawdopodobnie wystarczającą, aby wydedukować obie treści) oraz b) atak uzyskuje informacje, które pozwoliłyby mu zmienić wiadomości bez wykrycia

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *