Kryptografia i szyfrowanie

Kapitoly: Kryptografia, Analiza częstotliwości

Kryptografia to nauka zajmująca się szyfrowaniem. Celem szyfrowania jest wysłanie komuś wiadomości w taki sposób, aby tylko odbiorca wiadomości i nikt inny poza nadawcą mógł ją zrozumieć.

Kryptografia, kodowanie, steganografia

Wyjaśnimy, czym jest kryptografia na przykładzie, wraz z głównymi różnicami między pokrewnymi naukami steganografii i szyfrowania.

Dla przykładu możemy sobie wyobrazić, że mamy piękną żonę, ale jeszcze piękniejszą kochankę, z którą chcemy zorganizować bardzo romantyczną wycieczkę do hotelu Blue Lagoon.

  • Najpierw uzgadniamy z naszą kochanką, że będziemy wysyłać jej wiadomości, zastępując każdą literę w wiadomości kolejną literą alfabetu. Tak więc zamiast "a" napiszemy "b", zamiast "b" napiszemy "c", ..., zamiast "z" napiszemy "a". Tak więc zamiast "cześć" napiszemy "bipk". Moglibyśmy wysłać wiadomość do kochanka

    bipk lpdlp tfkefnf tf wfdfs b wzalpvtjnf qpmpiv nmflb b wpez

    a żona nie miałaby pojęcia, co tak naprawdę wysyłamy, podczas gdy kochanka tak - przesunęłaby każdą literę o jedną literę do tyłu, więc zamiast "bipk lpdlp..." przeczytałaby "hello cat...". W tej chwili używamy kryptografii (szyfrowania). Problem polega na tym, że jeśli co drugi dzień wysyłasz swojej uroczej koleżance z pracy dziwne zlepki liter, twoja żona prawdopodobnie się zdenerwuje i spakuje walizki w mgnieniu oka. Szyfrowanie nie będzie w tym przypadku właściwym wyborem.

  • W przypadku kochanki lepszym rozwiązaniem będzie steganografia. Celem steganografii jest wysłanie komuś wiadomości, która będzie wyglądać jak zwykła, nieszkodliwa wiadomość, ale jednocześnie będzie w niej ukryta inna, tajna wiadomość. Moglibyśmy więc wysłać tę wiadomość naszemu pięknemu kochankowi:

    Pozostaje dodać, że ile razy
    ...nawet tanie rzeczy są dobre,
    więc nie ma sensu kupować po cenie.
    Lepiej przeczytać kilka recenzji
    i na ich podstawie podjąć decyzję.

    Ta ostatnia wygląda całkiem niegroźnie, jednak jeśli zawsze czytasz tylko pierwszą literę w wierszu, otrzymasz słowo "jutro". To słowo ukryte w akapicie tekstu.

    Tak więc główną różnicą w stosunku do kryptografii jest to, że wynikiem steganografii jest zazwyczaj tekst/obraz/nagranie dźwiękowe/..., które zawiera pewną, zazwyczaj znacznie mniejszą, ukrytą wiadomość. W przypadku szyfrogramu już na pierwszy rzut oka widać, że nie jest to zwykły tekst. Używasz więc szyfru, gdy nie musisz ukrywać, że się z kimś komunikujesz, a jedynie chcesz ukryć treść. Steganografii używasz, gdy chcesz ukryć sam fakt, że się z kimś komunikujesz.

  • Szyfrowanie w ogóle nie polega na zachowaniu tajemnicy, a jedynie na przepisaniu wiadomości do innej formy, która nam odpowiada. Na przykład, możemy przepisać wiadomość na alfabet Morse'a, aby wysłać wiadomość do kochanka... migając latarką. Dyskretność sama w sobie. W kodzie Morse'a nie chodzi o "ukrycie" wiadomości, tylko o przepisanie jej na inną formę. Innym kodem może być kod binarny używany przez komputery - na przykład każda litera jest najpierw kodowana w komputerze na liczbę, a liczba ta jest następnie konwertowana na binarną i przechowywana w ten sposób na dysku. Słowo "hello" byłoby przechowywane w komputerze jako zapis binarny liczb "097 104 111 106" (patrz tabela ASCII). Ponownie, nie jest to kwestia tajności, a jedynie inny sposób zapisu.

Kryptoanaliza

Oczywiście żaden szyfr nie jest całkowicie bezpieczny i każdy z nich zostanie w końcu złamany. To tylko kwestia czasu, a jeśli używasz szyfru, musisz mieć nadzieję, że czas ten będzie na tyle długi, że nie będziesz miał nic przeciwko, jeśli ktoś złamie twoją wiadomość. Jeśli twoja była żona złamie szyfr, który napisałeś ze swoją kochanką, prawdopodobnie nie ma to znaczenia, ponieważ i tak jest byłą żoną.

Nauka, która bada, jak złamać dany szyfr, nazywa się kryptoanalizą. Kryptografia zajmuje się tym, jak złamać szyfr, a kryptoanaliza jest jego młodszym złym bratem. Obie te dyscypliny są objęte kryptologią. Zatem kryptologia = kryptografia + kryptoanaliza. Często jednak kryptografia jest po prostu używana zamiast kryptologii.

Podstawowe pojęcia kryptografii

  • Tekst jawny to tekst, który chcemy zaszyfrować, a następnie komuś wysłać. Tak więc tekstem jawnym może być "Spotkajmy się wieczorem".
  • Szyfrogram (lub szyfrogram) to tekst wynikowy, który powstaje po zaszyfrowaniu tekstu jawnego.
  • Klucz to pewna informacja, która jest wymieniana między komunikującymi się stronami za pośrednictwem kanału bez hasła. Klucz określa, jak zachowuje się szyfr. Na przykład, zamiast zawsze przesuwać literę o jedną literę dalej, tj. "a" -> "b", "b" -> "c", możemy przesunąć ją o trzy litery dalej, tj. "a" -> "d", "b" -> "d". Kluczem jest wtedy liczba liter, o które się przesuwamy. Klucz może mieć również jakiś algorytm steganograficzny. Nie musimy brać pierwszej litery w każdej linii, ale możemy odczytać na przykład tylko piątą literę w linii. Kluczem będzie wtedy liczba pięć.
  • Szyfr to algorytm, który pobiera tekst jawny i klucz jako dane wejściowe i zwraca szyfrogram jako dane wyjściowe.