bezpieczeństwo algorytmów szyfrujących

Bezpieczeństwo algorytmów szyfrujących – cykl życia

Oceniając bezpieczeństwo algorytmów szyfrujących powinniśmy pamiętać, iż rozwiązania kryptograficzne, jak każda inna technologia ulegają przedawnieniu. Dzisiaj np. Szyfr Cezara trudno nawet uznać za rozwiązanie kryptograficzne. (No dobra, może dla drużyny zuchów to obok „GA-DE-RY-PO-LU-KI” główna technika tajnego porozumiewania się, niech będzie, że nadal jest to szyfr 🙂 ).

W profesjonalnych zastosowaniach musimy jednak pamiętać o tym, iż algorytmy kryptograficzne po pierwsze mogą zawierać błędy, które z czasem zostają ujawnione, po drugie ich bezpieczeństwo bazuje na długości klucza, którego łatwość znalezienia rośnie razem z wydajnością komputerów.

Przedawnienie lub kompromitacja

Za skompromitowane rozwiązania powinniśmy uznać takie, które:

  1. W przypadku funkcji skrótu (hashujących):
    • umożliwiają w realny (ekonomicznie opłacalny) sposób wygenerować taki sam skrót (hash) bez posiadania oryginalnego ciągu, ewentualnie znaleźć kolizję, czyli inny ciąg znaków generujący taki sam hash
    • ich implementacja pozwala na przeprowadzenie ataku typu „side channel” (kryptoanalizę bazującą na danych pochodzących ze środowiska, w którym wdrożone zostało rozwiązanie, np. CPU, pamięci cache, aktywności dysku, promieniowania elektromagnetycznego, fal akustycznych itd.)
  2. W przypadku systemów szyfrujących:
    • w realny (ekonomicznie opłacalny) sposób możliwe jest odszyfrowanie danych bez posiadania klucza szyfrującego, np. poprzez znalezienie go za pomocą ataku siłowego
    • implementacja systemu szyfrującego w realny (ekonomicznie opłacalny) sposób umożliwia nieautoryzowane ujawnienie informacji

Cykl życia algorytmów

Bezpieczeństwo algorytmów szyfrujących wiąże się z ich cyklem życia. Skąd czerpać wiedzę na temat tego, które algorytmy są jeszcze bezpieczne, a o których już zdecydowanie powinniśmy zapomnieć? Dobrym źródłem informacji jest amerykański NIST (National Institute of Standards and Technology). Instytut ten wydaje szereg publikacji związanych z bezpieczeństwem technologii, a wśród nich znaleźć możemy opracowanie NIST SP 800-131A, w którym zaproponowano podział rozwiązań kryptograficznych na następujące kategorie:

  • Acceptable (akceptowalne) – rozwiązania bazujące na algorytmach i długościach kluczy uznawanych za bezpieczne, dla których na chwilę obecną nie są znane żadne ryzyka naruszenia bezpieczeństwa
  • Deprecated (przestarzałe) – rozwiązania bazujące na algorytmach i długościach kluczy, które mogą być stosowane, ale wiążą się z koniecznością zaakceptowania pewnych ryzyk
  • Disallowed (niedozwolone) – rozwiązania bazujące na algorytmach i długościach kluczy, których stosowanie w kryptografii jest niedozwolone ze względu na poważne ryzyko naruszenia ich bezpieczeństwa
  • Legacy use (dopuszczalne tylko w odtwarzaniu) – rozwiązania bazujące na algorytmach i długościach kluczy, które mogą być stosowane tylko w celu odczytania i przetwarzania danych historycznych zaszyfrowanych wcześniej z ich pomocą.

Należy przy tym pamiętać, iż rozwiązania z kategorii „deprecated” oraz „legacy use” wiążą się z pewnymi ryzykami i to od nas zależy podjęcie decyzji, czy możemy sobie pozwolić na ich używanie. Wyznacznikiem powinna być wartość chronionych za ich pomocą informacji.

Klasyfikacja algorytmów szyfrujących

Jak według wspomnianej wyżej publikacji NIST SP 800-131A klasyfikowane jest bezpieczeństwo algorytmów szyfrujących? Poniżej aktualna klasyfikacja dla algorytmów symetrycznych:

  • Acceptable: AES-128, AES-192, AES-256
  • Deprecated: Three-key TDEA (3DES) do roku 31.12.2023
  • Disallowed: SKIPJACK, Two-key TDEA, Three-key TDEA (3DES) po 31.12.2023
  • Legacy use: SKIPJACK,  Two-key TDEA, Three-key TDEA (3DES) – wszystkie wyłącznie w celach deszyfrowania wcześniej zaszyfrowanych danych

W przypadku innych algorytmów i funkcji skrótu podział jest trochę bardziej złożony, gdyż zależy dodatkowo od długości kluczy i zastosowania danego algorytmu. Inaczej klasyfikowane są np. algorytmy stosowane do generowania podpisów cyfrowych, inaczej te służące do ich weryfikacji. Po szczegóły odsyłam już zatem bezpośrednio do wspomnianej wcześnie publikacji NIST SP 800-131A. Pamiętajcie jednak aby zawsze zweryfikować czy nie powstała nowsza wersja dokumentu, która może zastąpić tę podaną powyżej.


„Bezpieczna Pigułka” to codzienna, mała dawka wiedzy z zakresu cyberbezpieczeństwa. Wszystkie teksty z tej kategorii znajdziesz TUTAJ.


Zostaw e-mail aby otrzymać powiadomienia o nowościach oraz dostęp do wszystkich bonusowych materiałów przygotowanych wyłącznie dla subskrybentów.

Leave a Reply

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Witryna wykorzystuje Akismet, aby ograniczyć spam. Dowiedz się więcej jak przetwarzane są dane komentarzy.