Bezpieczeństwo w kryptografii określa niemożliwość złamania szyfru. Najczęściej definiuje się je za pomocą bezpieczeństwa w teorii i bezpieczeństwa w praktyce.
Bezpieczeństwo w teorii (informacyjne)
Bezpieczeństwo w teorii, czasami zwane informacyjnym, jak sama nazwa na to wskazuje opiera się na teorii. Chodzi o to, czy jest w ogóle możliwe złamanie szyfru czy też nie (nie ma wartości pośrednich). Czyli nawet, jeśli złamanie szyfru miałoby zając miliony lat, ale by było możliwe, to według definicji bezpieczeństwa w teorii taki szyfr nie jest bezpieczny. Przykładowo szyfr z kluczem jednorazowym, będzie bezpieczny informacyjnie.
Bezpieczeństwo w praktyce (obliczeniowe)
Bezpieczeństwo w praktyce, nazywane też obliczeniowym, jest bardziej praktycznym podejściem do bezpieczeństwa – szyfr jest bezpieczny, jeśli nie da się go złamać w sensownym czasie i za pomocą osiągalnych zasobów (pamięć, sprzęt itp.).
Przykład dla klucza 128 bitowego
Załóżmy, że napastnik przechwycił szyfrogram i tekst jawny. No i na tej postawie próbuje złamać klucz 128 bitowy:
\begin{aligned}
C &= E(K, P) \\
C & \text{ - szyfrogram (to napastnik zna)} \\
E & \text{ - szyfr (to napastnik zna)} \\
K & \text{ - klucz (TEGO NAPASTNIK SZUKA)} \\
P & \text{ - tekst jawny (to napastnik zna)}
\end{aligned}
żeby sprawdzić wszystkie możliwe opcje klucza należy wykonać maksymalnie następującą liczbę sprawdzeń:
\begin{aligned}
2^{128} \\
2 & \text{ - to liczba opcji na jednej pozycji klucza} \\
128 & \text{ - to długość klucza} \\
\end{aligned}daje to:
3.4028237e+38
co w praktyce mając sprzęt mogący porównywać 100 miliardów kluczy na sekundę, zajęłoby ponad 100 000 000 000 000 000 000 lat (sto tryliardów lat). Nawet dzisiejsza technologia (rok 2024) nie pozwala na złamanie takiego klucza metodą porównać szybciej niż miliardy lat. Ale…
Ale czy na pewno?
Ta liczba określa maksymalną liczbę porównań potrzebną do złamania klucza. Trzeba wziąć pod uwagę fakt, że napastnik może trafić dużo szybciej na poprawny klucz niż za ostatnim razem 🙂 I tutaj dochodzimy do dwóch miar:
– liczby działań potrzebnych do złamania klucza/szyfru (oznaczane literką t)
– prawdopodobieństwa udania ataku (oznaczane literką epsilon ε)
Te dwie miary są wykorzystywane do rzeczywistego określenia bezpieczeństwa obliczeniowego. Mówi się, że schemat kryptograficzny jest (t,ε)-bezpieczny.
(t,ε)-bezpieczny algorytm
Najlepiej zrozumieć co to oznacza na przykładzie. Załóżmy, że nasz 128 bitowy nie ma wad, wtedy jego bezpieczeństwo możemy określić jako:
(t,t/2^{128})- bezpiecznea więc dla liczby działań 1:
(1,1/2^{128}) - bezpieczneco należy czytać: Dla pojedynczego działania, złamanie klucza jest 1/2128 prawdopodobne.
Dla 2128 działań mamy:
(2^{128}, 2^{128}/2^{128}) - bezpieczneczyli na pewno złamiemy klucz dla 2128 działań.
Aktualne możliwości (2024)
Można przyjąć, że aktualnie komputery są w stanie w przeciągu 10 minut wykonać około 266 działań. Sprawdźmy z jakim prawdopodobieństwem na dzisiaj jesteśmy w stanie złamać 128 bitowy klucz:
(2^{66},2^{66}/2^{128}) = (2^{66},2^{-62})- bezpieczne 2-62 to dalej super małe prawdopodobieństwo -> 1.3552527e-20. Można powiedzieć, że klucz długości 128 bitów jest aktualnie dalej całkiem bezpieczny.
* Mierzenie bezpieczeństwa w bitach
Bezpieczeństwo w bitach jest mierzone przy założeniu, że prawdopodobieństwo złamania klucza jest równe 100% (pozbywamy się literki epsilon z równania) oraz zastępujemy ilość działań ilością bitów przy wykorzystaniu logarytmu o podstawie 2:
\log_{2} (\text{ilość działań})przykładowo:
\log_{2} (\text{1 000 000}) = 20\text{ bitów}
Jak uzyskać bezpieczny system kryptograficzny?
Na to są dwa sposoby: dowody oraz heurystyka.
Dowód
Polega na znalezieniu dowodu (najczęściej matematycznego) na to, że algorytm jest bezpieczny.
Heurystyka
Polega na próbach złamania szyfru poprzez doświadczonych ludzi w tym zakresie.
