Szyfry blokowe - nowe tryby pracy
Transkrypt
Szyfry blokowe - nowe tryby pracy
Piotr Witczak - audyt bezpieczenstwa informacji, systemów IT Szyfry blokowe - nowe tryby pracy Autor: Pawel Krawczyk 07.07.2007. Zmieniony 30.07.2010. NIST opublikował dokument SP800-38D zawierający zalecenia dla stosowania nowego trybu szyfrów blokowych GCM (Galois/Counter Mode). GCM jest trybem o podwójnej funkcjonalności, szyfrującouwierzytelniającym. Wraz z pojawieniem się bezpiecznych i wydajnych szyfrów blokowych takich jak AES zainteresowanie programistów kryptograficznymi mechanizmami bezpieczeństwa znacznie wzrosło. Jednak w momencie wdrożenia algorytmu programista zawsze natrafia na podstawowy problem - w jakim trybie szyfrowania zastosować dany algorytm? Nadal najpopularniejsze są znane od ponad dwóch dekad tryby takie jak EBC czy CBC. Szyfr/Kod blokowy to kod korekcyjny, najczęściej symetryczny, który potrafi zaszyfrować blok danych o określonej długości. Kody blokowe najczęściej określa się symbolem (n,k) - gdzie n określa długość słowa kodowego, a k długość części informacyjnej. Kody te służą do szybkiego wykrycia i korekcji błędów występujących podczas przesyłu danych cyfrowych. Informacje dzielone są w tych kodach na bloki, do których dołączana jest nadmiarowa część kodowa pozwalająca na detekcję błędów występujących w blokach oraz korekcję - w zależności od sposobu zaprojektowania kanału transmisji ponowne pobranie całego bloku lub dokonanie automatycznej korekcji. Szyfr określa para funkcji pobierających 2 argumenty: * funkcja szyfrująca pobierająca klucz i wiadomość, a zwracająca szyfrogram C = EK(M) * funkcja deszyfrująca pobierająca klucz i szyfrogram, a zwracająca wiadomość M = DK(C) Kody blokowe podzielić możemy w dwie najczęściej używane klasy: kody liniowe i wywodzące się z nich kody cykliczne. Typowe rozmiary bloku oraz kluczy (te dwa rozmiary nie muszą być identyczne) to 64, 128, 192 lub 256 bitów, przy czym klucze mniejsze od 128 bitów nie zapewniają współcześnie bezpieczeństwa. Ponieważ wiadomości jakie chcemy zakodować są zwykle znacznie większe od rozmiaru bloku, musimy używać jakiegoś trybu kodowania. Najbardziej naiwne podzielenie wiadomości na bloki odpowiednich rozmiarów i zakodowanie osobno każdego z nich (ECB) nie zapewnia nam bezpieczeństwa. Główne tryby to: * * * * * CBC CFB CTR ECB OFB Niektóre szyfry blokowe to: * * * * * * * * * 3DES AES Blowfish DES DESX IDEA Lucifer Mars Serpent Jednak zaraz po wyborze trybu pojawia się kolejny problem - jak dodać do niego ochronę integralności lub/i autentyczności? W świetle dzisiejszej wiedzy rezygnacja z ochrony integralności lub błędne jej http://www.witczak.priv.pl Kreator PDF Utworzono 2 March, 2017, 00:28 Piotr Witczak - audyt bezpieczenstwa informacji, systemów IT zaimplementowanie jest kryptograficznym samobójstwem, o czym przekonali się autorzy protokołu SSHv1 (CORE SDI, "SSH Insertion Attack", 1998). I czy najpierw szyfrować, a potem uwierzytelniać, czy na odwrót? Problem ten rozwiązują nowe tryby szyfrująco-uwierzytelniające, które w jednym kroku (jednej operacji API programistycznego) równocześnie zapewniają ochronę poufności i integralności, przy czym to drugie przy pomocy szyfru blokowego (np. AES), bez konieczności stosowania dodatkowych mechanizmów takich jak HMAC. Dwa najpopularniejsze algorytmy tego typu to OCB i CCM. Poniżej krótka ich charakterystyka: * OCB (Offset Codebook Mode), najnowsza wersja 2.0 z 2005 roku * ilość szyfrowań prawie taka sama jak w CBC (czyli jest wydajny) * opatentowany * * * * CCM (Counter Mode with CBC MAC) tryb licznikowy (CTR) plus CBC MAC (Message Authentication Code) prawie dwa razy więcej szyfrowań niż OCB dostępny jako public domain Z punktu widzenia wydajności najbardziej atrakcyjny jest tryb OCB, opracowany przez Philipa Rogaway'a, znanego z tworzenia kryptograficznych majstersztyków (takich jak szyfr Safer). Niestety programistów odstręcza od niego fakt istnienia patentu na algorytm i konieczność uzyskania licencji na jego stosowanie (choć Rogaway zapewnia, że opłata jest niewielka). Odpowiedzią na OCB jest otwarty CCM, ale jest on prawie dwukrotnie wolniejszy - choć i tak zapewne szybszy od tradycyjnego CBC z HMAC. http://www.witczak.priv.pl Kreator PDF Utworzono 2 March, 2017, 00:28