Podstawy kryptografii i szyfr Cezara – poradnik szkolny
Nauka

Podstawy kryptografii i szyfr Cezara – poradnik szkolny

przeczytasz w 4 min.

Podstawy kryptografii i szyfr Cezara - w tym tekście przybliżam tematykę szyfrowania danych i jedną z metod takowego zabezpieczenia informacji. Zapraszam do zapoznania się z jedną z najważniejszych gałęzi branży IT i jego genezą w postaci szyfru Cezara!

Od starożytności do teraźniejszości – zarys historii szyfrowania

Niem przedstawię czym jest kryptografia i szyfr Cezara trzeba trzeba zacząć od historii. Już od czasów pierwszych osad, ludzie potrzebowali przekazywać między sobą informacje. Jeżeli chodzi o prostą dyskusję dwóch ludzi, to wymagała ona tylko znajomości wspólnego języka. Większym problemem były sytuacje, kiedy dwie osoby musiały omówić coś, co miało zostać tylko między nimi. Wtedy trzeba było znaleźć ustronne miejsce i upewnić się, że nikt nie podsłucha naszej rozmowy.

Natomiast w momencie, kiedy ta dwójka ludzi była oddalona od siebie o wiele kilometrów, wtedy zaczynały się „schody”. Komunikacja długodystansowa wymagała korzystania z usług osób trzecich. Jakikolwiek list, notka, czy inne pismo były poważnie narażone na ingerencję innych ludzi – szpiegostwo, kradzież, czy manipulację. Zapewne dlatego wielu zaczęło zastanawiać się, w jaki sposób można zmniejszyć ryzyko przejęcia informacji. W taki sposób zaczęła się rodzić nowa gałąź wiedzy – kryptologia.

Kryptologia, kryptografia, kodowanie i szyfrowanie

Zacznijmy od podstaw, czyli co oznaczają określone definicje związane z zabezpieczaniem informacji.

  1. Kryptologia (z gr. κρυπτός kryptos, „ukryty”, i λόγος logos, „rozum”, „słowo”) – dziedzina wiedzy skupiająca się na przekazywaniu danych oraz informacji w taki sposób, aby były zabezpieczone przed nieautoryzowanym dostępem. Dzisiejsza kryptologia poszerzyła się o gałęzie matematyki, jak również informatyki.

  2. Kryptografia – odgałęzienie kryptologii zajmujące się tworzeniem przekazywania informacji w taki sposób, by były one zabezpieczone poprzez odpowiednie szyfrowanie.

  3. Szyfrowanie – technika ta służy do zachowania poufności danych. Skupia się na tym, aby przesłana informacja została zakodowana w taki sposób, by tylko nadawca i odbiorca mogli ją odkodować za pomocą dedykowanego, tajnego „klucza”.

  4. Kodowanie – metoda transformacji pierwotnej (jawnej) formy wiadomości w formę ukrytą, w celu uniemożliwienia dostępu do przekazywanych informacji osobom niepowołanym. Zazwyczaj do tego zadania stosowana jest tzw. „książka kodowa”, zawierająca listę słów lub wyrażeń wraz z odpowiadającymi im słowami kodowymi.

Kiedy już wiemy, co czym jest i jak należy to nazywać, to możemy przejść meritum naszego tematu.

Szyfr Cezara, czyli jedna z pierwszych metod zabezpieczania informacji

Przyjrzymy się teraz prostemu szyfrowi podstawieniowemu, zwanym szyfrem Cezara. Szyfr ten ma już jakieś 2100 lat i (jak sama wskazuje) został wynaleziony przez Juliusza Cezara. Rzymski wódz prawdopodobnie używał tej techniki do komunikacji ze swymi przyjaciółmi oraz ze swoimi dowódcami i ich wojskami. Na owa technika polegała? Otóż ten rodzaj szyfru, w którym każda litera tekstu jawnego (niezaszyfrowanego) zastępowana jest inną, oddaloną od niej o stałą liczbę pozycji w alfabecie literą, przy czym kierunek zamiany musiał być zachowany. Pierwotnie Szyfr Cezara polega na przesunięciu liter tekstu o trzy (klucz przesunięcia zawsze wynosił 3). W szyfrze tym korzysta się wyłącznie z podstawowego alfabetu (od a do z). Nie rozróżnia się tutaj dużych i małych liter, oraz znaków specjalnych.

Poniżej mamy prosty przykład tekstu, który został zaszyfrowany ww. metodą:

Szyfr Cezara

Problemy z szyframi podstawieniowymi

Szyfr podstawieniowy należy rozumieć w taki sposób, iż każdy znak w tekście jawnym, zostanie zastąpiony innym, w celu zaszyfrowania danych. Jeżeli ten przykładowy znak pojawia się wielokrotnie w tekście jawnym, to jego zaszyfrowany odpowiednik pojawi się dokładnie w tej samej ilości. Na przykład wyrażenie SIALA BABA MAK ma wiele liter A. Wszystkie te litery w tekście jawnym powinny zmienić się na literę D w zaszyfrowanym tekście metodą szyfru Cezara. Jasno to pokazuje, że szyfr ten będzie słabszy od innych szyfrów podstawieniowych, gdyż w nich litery nie będą uporządkowane, bądź będą stosować kilka różnych symboli dla każdego znaku. Nie zmienia to jednak faktu, że szyfry podstawieniowe bardzo łatwo się atakuje – mają jasny, określony schemat. Wystarczy więc wyszukać kilka wspólnych znaków oraz ciągów i dopasować je do typowych dla danego języka wzorców.

Szyfrowanie

Właśnie dlatego w naszych czasach ten szyfr nie ma już najmniejszego sensu (z punktu widzenia bezpieczeństwa). Biorąc pod uwagę, w jak prosty sposób można go złamać, prawdopodobnie nikt z nas nie chciałby, aby na przykład jego dane bankowe były tą metodą zaszyfrowane. W praktyce używa się znacznie bardziej złożonych, skomplikowanych i silniejszych metod szyfrowania, choć to nie jest naszym dzisiejszym tematem. Szyfrowanie szyfrem Cezara jest natomiast świetnym startem w tematykę kryptologii, ponieważ pozwala pokazać, jak działa podstawowe szyfrowanie i daje się bardzo łatwo implementować w programowaniu. Zobaczcie jak to wygląda zainmplementowane w języku C++ (za co dziękuję osobom z serwisu algorytm.edu.pl):

szyfr cezara kod c++

Szyfrowanie w dzisiejszych czasach

Odkąd zaczęły powstawać pierwsze komputery i tworzyć się zalążki globalnej sieci, branża IT musiała wykorzystywać cały dorobek kryptologii i stworzyć systemy ochrony naszych danych. Sieci Wi-Fi, logowanie do bankowości mobilnej, połączenia tunelowe, autoryzacja płatności, dane na naszych nośnikach czy w chmurze. Gdyby nie liczna forma szyfrowań, to to wszystko i wiele innych naszych cennych danych, mogłoby bez problemu zostać przejęte przez osoby trzecie. Dlatego warto pamiętać, że gdyby nie szyfr Cezara, to cała nasza branża mogłaby wyglądać zupełnie inaczej.

Więcej o postawach kryptografii, możecie się dowiedzieć z poniższego filmu:

Źródło: katowice.eu, bezkomputera.wmi.amu.edu.pl, algorytm.edu.pl, wikipedia.pl

Komentarze

1
Zaloguj się, aby skomentować
avatar
Komentowanie dostępne jest tylko dla zarejestrowanych użytkowników serwisu.
  • avatar
    hv6erT
    2
    Ciekawy wstęp do serii. Jednak kod można łatwo zmienić aby obsługiwał praktycznie nieskończone ciągi. Należy zamienić tablicę char na typ std::string, i używać operatora [] do selekcji pojedyńczego znaku.