Podstawowym zadaniem kryptografii jest utrzymanie w tajemnicy tekstu jawnego, bądź klucza, bądź obu elementów jednocześnie przed atakującymi (przeciwnikami), którzy chcą uzyskać pełen dostęp do tekstów przesyłanych pomiędzy nadawcą i odbiorcą.
Kryptoanaliza jest nauką o odtwarzaniu tekstu jawnego bez znajomości klucza. Zajmuje się również wyszukiwaniem słabych punktów systemów kryptograficznych, punktów, które mogą pozwolić na znalezienie sposobu do poznania tekstu jawnego lub klucza. Utrata tajności klucza wskutek działań innych, niż kryptoanalityczne, nazywana jest kompromitacją klucza.
Stosowanie kryptoanalizy nazywa się łamaniem szyfru (ang. attack). Podstawowym zadaniem kryptoanalizy jest założenie, że bezpieczeństwo algorytmu jest oparte na kluczu. Należy założyć, że kryptoanalityk, przystępując do łamania szyfru, zna wszystkie szczegóły algorytmu szyfrowania i jego implementację. Założenie takie nie jest prawdziwe w wielu realnych systemach, ale warto je przyjąć, gdyż jeśli nie uda się złamać szyfru wiedząc, jak działa algorytm szyfrujący, to tym bardziej nie uda się go złamać nie wiedząc, jak ten algorytm działa.
Wyróżnia się cztery główne typy metod łamania szyfrów. Przy każdej z nich zakłada się, że kryptoanalityk posiada pełną wiedzę o stosowanym algorytmie szyfrowania. Zastosowane oznaczenia: O - i-tykryptogram. Mi - i-ty tekst jawny, K - klucz, Ek- operacja szyfrowania za pomocą klucza K, Dk- operacja odszyfrowywania za pomocą klucza K.
• Łamanie z kryptogramami (ang. ciphertext-only attack). Kryptoanalityk dysponuje kryptogramami kilku wiadomości, zaszyfrowanych z zastosowaniem tego samego algorytmu szyfrującego. Jego zadanie polega na odtworzeniu tekstu jawnego możliwie wielu wiadomości lub na poznaniu klucza (kluczy) zastosowanego do szyfrowania wiadomości, by móc odczytać również inne wiadomości zaszyfrowane z wykorzystaniem tego samego klucza.
Dane: Ci = Ek (Mi), C2 = Ek (M2).....Ci = Ek(Mi)
Wnioskowanie: M1.M2...., Midub K, lub algorytm wnioskowania o Mj+i na podstawie Ci+i = Ek(Mi+i)
• Łamanie ze znanym tekstem jawnym (ang. known-plaintext attack).
Kryptoanalityk dysponuje nie tylko kryptogramami kilku wiadomości, lecz także ich tekstami jawnymi. Zadanie polega na znalezieniu klucza (bądź kluczy) zastosowanego do szyfrowania lub też wydedukowania algorytmu do deszyfrowania kolejnych wiadomości zaszyfrowanych z tym samym kluczem.
Dane: Mi, Ci = Ek(Mi); M2.C2= Ek(M2); ..., Mi.Ci = Ek(M0
Wnioskowanie: K lub algorytm wnioskowania o Mj+i na podstawie Ci+i = Ex(Mi+i)
• Łamanie z wybranym tekstem jawnym (ang. chosen-plaintext attack).
Kryptoanalityk ma możliwość wybrania tekstu jawnego i ma dostęp do jego kryptogramu. Jest to dogodna sytuacja dla łamiącego szyfr, gdyż tym razem można wybrać określony tekst jawny do zaszyfrowania i w ten sposób uzyskać więcej informacji o kluczu. Zadaniem kryptoanalityka jest wywnioskowanie klucza (kluczy), zastosowanego do szyfrowania lub wydedukowaniu algorytmu do deszyfrowania kolejnych wiadomości zaszyfrowanych tym samym kluczem.
Dane: Mi, Ci = Ek(Mi); M2,C>= Ek(M2); ..., Mi,Ci = Eic(Mi) Mi, M2, ...,
Mi są wybrane przez kryptoanalityka
Wnioskowanie: K lub algorytm wnioskowania o Mj+i na podstawie Ci+i = Ex(Mi+i)