Wielokrotne szyfrowanie - Multiple encryption

Szyfrowanie wielokrotne to proces szyfrowania już zaszyfrowanej wiadomości jeden lub więcej razy przy użyciu tego samego lub innego algorytmu. Jest znany także jako szyfrowanie kaskady , kaskady szyfrowania , stwardnienie szyfrowania i superencipherment . Superencryption odnosi się do szyfrowania na poziomie zewnętrznym w przypadku szyfrowania wielokrotnego.

Niektórzy kryptolodzy, tacy jak Matthew Green z Johns Hopkins University, twierdzą, że wielokrotne szyfrowanie rozwiązuje problem, który w większości nie istnieje: współczesne szyfry rzadko są łamane ... Jest o wiele bardziej prawdopodobne, że zostaniesz trafiony przez złośliwe oprogramowanie lub błąd implementacji niż Ty cierpieć z powodu katastrofalnego ataku na AES . .... iw tym cytacie leży przyczyna wielokrotnego szyfrowania, a mianowicie słaba implementacja. Korzystanie z dwóch różnych kryptomodułów i procesów kluczowania od dwóch różnych dostawców wymaga, aby towary obu dostawców zostały naruszone, aby zabezpieczenia zawiodły.

Niezależne klucze

Wybierając dowolne dwa szyfry , jeśli użyty klucz jest taki sam dla obu, drugi szyfr mógłby prawdopodobnie cofnąć pierwszy szyfr, częściowo lub całkowicie. Dotyczy to szyfrów, w których proces deszyfrowania jest dokładnie taki sam jak proces szyfrowania - drugi szyfr całkowicie cofnąłby pierwszy. Gdyby atakujący odzyskał klucz poprzez analizę kryptograficzną pierwszej warstwy szyfrowania, mógłby prawdopodobnie odszyfrować wszystkie pozostałe warstwy, zakładając, że ten sam klucz jest używany dla wszystkich warstw.

Aby zapobiec temu ryzyku, można użyć kluczy, które są statystycznie niezależne dla każdej warstwy (np. Niezależne RNG ).

W idealnym przypadku każdy klucz powinien mieć oddzielne i różne procesy generowania, udostępniania i zarządzania.

Niezależne wektory inicjalizacyjne

W przypadku procesów en / deszyfrowania, które wymagają współdzielenia wektora inicjalizacji (IV) / nonce, są one zazwyczaj jawnie udostępniane lub ujawniane odbiorcy (i wszystkim innym). Jego dobra polityka bezpieczeństwa polega na tym, że nigdy nie dostarczają tych samych danych zarówno w tekście jawnym, jak i zaszyfrowanym, gdy używa się tego samego klucza i IV. Dlatego zaleca się (choć w tej chwili bez konkretnych dowodów) stosowanie oddzielnych IV dla każdej warstwy szyfrowania.

Znaczenie pierwszej warstwy

Z wyjątkiem jednorazowej podkładki , żaden szyfr nie został teoretycznie udowodniony jako niezniszczalny. Ponadto w tekstach zaszyfrowanych wygenerowanych przez pierwszy szyfr można znaleźć pewne powtarzające się właściwości . Ponieważ te zaszyfrowane teksty są tekstami jawnymi używanymi przez drugi szyfr, drugi szyfr może być podatny na ataki w oparciu o znane właściwości tekstu jawnego (patrz odniesienia poniżej).

Dzieje się tak, gdy pierwsza warstwa jest programem P, który zawsze dodaje ten sam ciąg znaków S na początku (lub na końcu) wszystkich zaszyfrowanych tekstów (powszechnie znany jako liczba magiczna ). Po znalezieniu w pliku ciąg S pozwala systemowi operacyjnemu wiedzieć, że program P musi zostać uruchomiony w celu odszyfrowania pliku. Ten ciąg należy usunąć przed dodaniem drugiej warstwy.

Aby zapobiec tego rodzaju atakom, można skorzystać z metody dostarczonej przez Bruce'a Schneiera :

  • Wygeneruj losowe wypełnienie R o tym samym rozmiarze co tekst jawny.
  • Zaszyfruj R przy użyciu pierwszego szyfru i klucza.
  • XOR zwykły tekst za pomocą padu, a następnie zaszyfruj wynik przy użyciu drugiego szyfru i innego (!) Klucza.
  • Połącz oba zaszyfrowane teksty, aby zbudować ostateczny zaszyfrowany tekst.

Kryptanalityk musi złamać oba szyfry, aby uzyskać jakiekolwiek informacje. Będzie to jednak miało wadę polegającą na tym, że tekst zaszyfrowany będzie dwukrotnie dłuższy niż oryginalny tekst jawny.

Należy jednak zauważyć, że słaby pierwszy szyfr może po prostu uczynić drugi szyfr, który jest podatny na atak z użyciem wybranego tekstu jawnego, również podatny na atak ze znanym tekstem jawnym . Jednak szyfr blokowy nie może być podatny na wybrany atak w postaci zwykłego tekstu, aby można go było uznać za bezpieczny. Dlatego też drugi szyfr opisany powyżej również nie jest bezpieczny w ramach tej definicji. W konsekwencji oba szyfry nadal wymagają złamania. Atak ilustruje, dlaczego przyjmuje się silne założenia dotyczące bezpiecznych szyfrów blokowych, a szyfry, które są nawet częściowo złamane, nigdy nie powinny być używane.

Zasada dwojga

Rule of Two jest zasada bezpieczeństwa danych z NSA komercyjnych rozwiązań dla Tajny Program (CSFC). Określa dwie całkowicie niezależne warstwy kryptografii w celu ochrony danych. Na przykład dane mogą być chronione zarówno przez szyfrowanie sprzętowe na najniższym poziomie, jak i szyfrowanie programowe w warstwie aplikacji. Może to oznaczać użycie dwóch kryptomodułów oprogramowania z walidacją FIPS od różnych dostawców do en / odszyfrowania danych.

Znaczenie różnorodności dostawców i / lub modeli między warstwami komponentów koncentruje się wokół eliminacji możliwości, że producenci lub modele będą mieli wspólną lukę. W ten sposób w przypadku naruszenia bezpieczeństwa jednego ze składników nadal istnieje cała warstwa szyfrowania chroniąca informacje w spoczynku lub podczas przesyłania. Program CSfC oferuje rozwiązania służące osiągnięciu różnorodności na dwa sposoby. „Pierwsza polega na zaimplementowaniu każdej warstwy przy użyciu komponentów wyprodukowanych przez różnych producentów. Druga polega na zastosowaniu komponentów tego samego producenta, jeśli producent dostarczył NSA wystarczające dowody na to, że implementacje dwóch komponentów są od siebie niezależne”.

Zasada jest praktykowana w bezpiecznym telefonie komórkowym NSA o nazwie Fishbowl. Telefony używają dwóch warstw protokołów szyfrowania, IPsec i Secure Real-time Transport Protocol (SRTP), aby chronić komunikację głosową. Samsung Galaxy S9 Tactical Edition jest również zatwierdzonym komponentem CSfC.

Przykłady

Rysunek pokazuje od wewnątrz do zewnątrz proces tworzenia zaszyfrowanej kapsuły w kontekście protokołu Echo, używanego przez aplikację Software Application GoldBug Messenger. GoldBug wdrożył hybrydowy system autentyczności i poufności.

Rysunek 02 GoldBug - Encrypted Message Format w Echo- Protocol.png

Pierwsza warstwa szyfrowania: zaszyfrowany tekst oryginalnej, czytelnej wiadomości jest zaszyfrowany, a następnie klucze symetryczne są szyfrowane za pomocą klucza asymetrycznego - np. Wdrażanie algorytmu RSA. Na etapie pośrednim zaszyfrowany tekst i skrót z zaszyfrowanego tekstu są łączone w kapsułkę i pakowane razem. Jest zgodny z podejściem: Zaszyfruj-to-MAC . Aby odbiorca mógł zweryfikować, czy zaszyfrowany tekst nie został zmieniony, podsumowanie jest obliczane przed odszyfrowaniem zaszyfrowanego tekstu.

Druga warstwa szyfrowania: Opcjonalnie nadal istnieje możliwość zaszyfrowania kapsuły pierwszej warstwy dodatkowo za pomocą AES-256 , - porównywalnie do powszechnie współdzielonego, 32-znakowego hasła symetrycznego. Szyfrowanie hybrydowe jest następnie dodawane do szyfrowania wielokrotnego.

Trzecia warstwa szyfrowania: Następnie ta kapsuła jest przesyłana za pośrednictwem bezpiecznego połączenia SSL / TLS do partnera komunikacyjnego

Bibliografia

Dalsza lektura

  • „Wielokrotne szyfrowanie” w „Ritter's Crypto Glossary and Dictionary of Technical Cryptography”
  • Poufność dzięki szyfrowaniu wieloskładnikowemu, w: Adams, David / Maier, Ann-Kathrin (2016): BIG SEVEN Study, open source krypto-messengery do porównania - lub: Comprehensive Confidentiality Review & Audit of GoldBug, Encrypting E-Mail-Client & Bezpieczny komunikator internetowy, opisy, testy i przeglądy analiz 20 funkcji aplikacji GoldBug w oparciu o podstawowe pola i metody oceny 8 głównych międzynarodowych podręczników audytowych do badań bezpieczeństwa IT, zawierających 38 liczb i 87 tabel., URL: https: //sf.net/projects/goldbug/files/bigseven-crypto-audit.pdf - język angielski / niemiecki, wersja 1.1, 305 stron, czerwiec 2016 (ISBN: DNB 110368003X - 2016B14779).
  • „Sposób łączenia wielu algorytmów blokowych”, tak aby „kryptoanalityk musiał złamać oba algorytmy” w §15.8 Kryptografii stosowanej, wydanie drugie: Protocols, Algorithms, and Source Code in C autorstwa Bruce'a Schneiera. Wiley Computer Publishing, John Wiley & Sons, Inc.
  • S. Even i O. Goldreich, O mocy szyfrów kaskadowych, ACM Transactions on Computer Systems, vol. 3, str. 108–116, 1985.
  • M. Maurer i JL Massey, Szyfry kaskadowe: Ważność bycia pierwszym, Journal of Cryptology, vol. 6, nie. 1, s. 55–61, 1993.