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

Podobne dokumenty