Nowe tryby pracy szyfrów blokowych

2007-07-02 00:00:00 +0100


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ąco-uwierzytelniają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.

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 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: