Tomasz Kopera Konrad Kurdej Ariel Salm Kryptografia Tomasz Kopera Konrad Kurdej Ariel Salm
Czym jest kryptografia ? Wyraz „kryptografia ” jest zapożyczeniem z języka greckiego: krypto –ukryty, tajny, graph- pismo, słowo. Tak więc pierwotnie kryptografia oznaczała tajne pismo. Kryptografia zajmuje się z jednej strony szyfrowaniem ( kodowaniem), czyli przekształcaniem tekstu z postaci ogólnie zrozumiałej ( tekst otwarty, czysty tekst) na niezrozumiałą (tekst szyfrowany, tajny). Przekształcanie to musi odbyć się w taki sposób, żeby uprawniony odbiorca mógł jednoznacznie odwrócić zastosowaną transformację w procesie odszyfrowywania (dekodowania). Cały ten proces ma na celu nie ukrycie przed osobami trzecimi całej informacji, a jedynie jej treści. To właśnie nazywamy szyfrowaniem. Ukrywaniem informacji zajmuje się specjalny wariant kryptografii, tzw. Steganografia.
Historia kryptografii Początki Kryptografii sięgają czasów starożytnych. Już starożytni Egipcjanie szyfrowali swoje hieroglify a starożytni Hebrajczycy - niektóre słowa w swoich skryptach. Stosowane metody były dawniej zazwyczaj dość prymitywne i pozwalały na złamanie szyfrów dostatecznie zdeterminowanemu przeciwnikowi. W pierwszej połowie dwudziestego wieku sytuacja ta uległa zmianie. Zbudowano wtedy wiele systemów szyfrowania za pomocą urządzeń mechanicznych, systemy te wykorzystywano podczas drugiej wojny światowej. Część z nich została skutecznie złamana jak na przykład niemiecki system Enigma. Dopiero rozwój elektroniki przyniósł prawdziwą rewolucję pod względem projektowania systemów szyfrujących. Dawał on olbrzymie możliwości wykonywania operacji obliczeniowych niskim kosztem. Rozwój kryptografii od swych początków był bardzo silnie związany z celami wojskowymi. W związku z tym wszelkie prace z dziedziny kryptografii miały charakter tajny i ich rezultaty nie były publikowane lub wykorzystywane w sektorze cywilnym do lat siedemdziesiątych. Właśnie wtedy, wraz z odkryciem asymetrycznych algorytmów szyfrujących, nastąpił przełom pod względem rozwoju kryptografii. Olbrzymie zainteresowanie w środowiskach naukowych spowodowało lawinowy wzrost ilości prowadzonych badań, już poza kontrolą aparatów bezpieczeństwa poszczególnych państw. Intensywna wymiana informacji, jaka ma miejsce od tego czasu, pozwoliła na ogromny rozwój wiedzy w tej dziedzinie.
Zastosowanie kryptografii Cele militarne Enigma (łac. zagadka) - niemiecka maszyna szyfrująca, używana przez wywiad oraz armię niemiecką. Polacy próbowali złamać kod Enigmy już pod koniec lat dwudziestych, jednakże bez rezultatu. W 1929 roku zorganizowano kurs kryptologii dla studentów matematyki pod kierunkiem profesora Zdzisława Krygowskiego na Uniwersytecie Poznańskim. Na kurs zgłosili się m. in.: Marian Rejewski, Jerzy Różycki i Henryk Zygalski. W grudniu 1932 roku Rejewski zaczął pracować nad Enigmą. Pomogły mu w tym informacje przekazywane przez francuski wywiad. odtworzenia struktury wewnętrznej Enigmy, wciąż nie udawało się odczytywać wszystkich wiadomości. Wkrótce do Rejewskiego dołączyli dwaj pozostali matematycy, Zygalski i Różycki. Pierwsza kopia wojskowej wersji Enigmy powstała w 1934 roku.
Zastosowanie kryptografii Bezpieczeństwo systemu bankowości internetowej Protokół SSL (Secure Sockets Layer) został stworzony, aby umożliwić bezpieczną, szyfrowaną komunikację poprzez Internet. Normalnie, dokumenty przesyłane są poprzez Internet w niezaszyfrowanych pakietach i potencjalnie mogą być przechwycone i odczytane przez hackera dysponującego odpowiednimi narzędziami i wiedzą. Jednak w razie użycia protokołu SSL wiadomości przed przesłaniem są szyfrowane, a tym samym stają się praktycznie bezużyteczne (bo nieczytelne) dla kogoś kto je przechwyci.
Podstawowe techniki szyfrowania Kryptografia rozróżnia dwie podstawowe techniki szyfrowania: Transpozycja (przesunięcie) zmienia nie same znaki, ale kolejność ich występowania. Można to uzyskać przestawiając na przykład dwie kolejno po sobie następujące litery: K r y p t o g r a f i a - r k p y o t r g f a a i Substytucja (podstawianie) polega na zastąpieniu tekstu jawnego innymi znakami w tekście tajnym. Prostym przykładem jest technika chętnie stosowana już za czasów Juliusza Cezara polegająca na zastąpieniu każdej litery tekstu jawnego na inna literą, znajdującą się o trzy miejsca dalej w alfabecie. K r y p t o g r a f i a - n u b t x s j u d i l d Szyfr Cezara
Podstawianie symetryczne Podstawianie symetryczne zawdzięcza swoją nazwę temu, że nadawca i odbiorca muszą mieć ten sam klucz, jeśli chcą prowadzić komunikację szyfrowaną. Nikt nie może znać tego klucza oprócz obu uczestników komunikacji (metoda tajnego klucza) Podstawianie symetryczne nadaje się bardzo dobrze do szyfrowania dużych ilości danych, natomiast jego wielką wadą jest to, że odbiorca potrzebuje do odczytania wiadomości zastosowanego klucza. Moment przekazania klucza jest więc słabym ogniwem całej metody, gdyż klucz może zostać przejęty przez osobę nieuprawnioną. Najprostszym i najbardziej znanym przykładem szyfru symetrycznego jest wspomniany już wcześniej szyfr Cezara.
Podstawianie asymetryczne Elegancką alternatywą techniki szyfrowania symetrycznego jest tzw. szyfrowanie niesymetryczne wynaleziona przez Martina Hellmana i Whitfielda Diffie w 1976 r. Wykorzystuje ono dwa uzupełniające się klucze, tak dobierane, że tekst szyfrowany jednym może by odszyfrowany tylko przy użyciu drugiego. Jeden z dwóch kluczy można więc bez obawy opublikować i dlatego używa się nazwy „metoda klucza publicznego”. Drugi klucz nazywany jest kluczem prywatnym. Szyfrowanie z użyciem klucza publicznego opiera się na matematycznej zależności między zastosowanym kluczem prywatnym i publicznym. Zależność musi być na tyle złożona, żeby osoby postronne nie mogły wygenerować klucza prywatnego, korzystając z ogólnie dostępnego klucza publicznego
Algorytm Vigenère'a Algorytm Vigenère'a jest jednym z klasycznych algorytmów szyfrujących. Należy on do grupy tzw. wieloalfabetowych szyfrów podstawieniowych. Jego rodowód sięga XVI wieku, kiedy został on zaproponowany ówczesnemu władcy Francji, królowi Henrykowi III przez Blaise’a de Vigenère. Działanie szyfru Vigenere’a oparte jest na następującej tablicy: Jak można zauważyć, każdy z wierszy tablicy odpowiada szyfrowi Cezara, przy czym w pierwszym wierszu przesunięcie wynosi 0, w drugim 1 itd.
Algorytm Vigenère'a Aby zaszyfrować pewien tekst, potrzebne jest słowo kluczowe. Słowo kluczowe jest tajne i mówi, z którego wiersza (lub kolumny) należy w danym momencie skorzystać. Przypuśćmy, że chcemy zaszyfrować prosty tekst, np.: TO JEST BARDZO TAJNY TEKST Do tego celu użyjemy znanego tylko nam słowa kluczowego, np. TAJNE Na początku zauważamy, że użyte słowo kluczowe jest zbyt krótkie, by wystarczyło do zaszyfrowania całego tekstu, więc należy użyć jego wielokrotności. Będzie to miało następującą postać: TA JNET AJNETA JNETA JNETA
MO SRWM BJEHSO CNNGY CROLT Algorytm Vigenère'a Następnie wykonujemy szyfrowanie w następujący sposób: litera szyfrogramu odpowiada literze z tabeli znajdującej się na przecięciu wiersza, wyznaczanego przez literę tekstu jawnego i kolumny wyznaczanej przez literę słowa kluczowego, np. po kolei T i T daje M, O i A daje O itd. W efekcie otrzymujemy zaszyfrowany tekst: MO SRWM BJEHSO CNNGY CROLT Warto zauważyć, że tak naprawdę nie ma znaczenia, czy litera tekstu jawnego będzie wyznaczała wiersz, a słowa kluczowego kolumnę, czy na odwrót, efekt szyfrowania będzie zawsze taki sam. Algorytm Vigenère'a
Algorytm RSA Opracowany w 1977 roku przez Rona Rivesta, Adi Shamira i Leonarda Adlemana system kryptograficzny oparty na kluczu niesymetrycznym. RSA wkomponowany jest m.in. w dwie najważniejsze przeglądarki: Netscape Navigator oraz Internet Explorer. Fundamentem RSA jest algorytm służący do generowania unikalnych i bezpiecznych (odpornych na próby odgadnięcia) par kluczy. Mnoży on dwie duże liczby pierwsze (podzielne tylko przez 1 i przez siebie) i z otrzymanego wyniku poprzez kilka innych dodatkowych operacji ustala klucz publiczny i zależny od niego klucz prywatny. Pierwszy z nich służy do szyfrowania wiadomości przeznaczonych dla właściciela kluczy i co za tym idzie powinien być jak najszerzej propagowany. Klucz prywatny jest tajny i tylko przy jego pomocy można odszyfrować to, co zostało zakodowane kluczem publicznym
Algorytm szyfrujący RSA Algorytm RSA RSA opiera się więc na założeniu, że mnożenie dwóch liczb jest prostą operacją, natomiast proces odwrotny, pierwiastkowanie wyniku, wymaga ogromnej mocy obliczeniowej, zwłaszcza wtedy, gdy wynik trzeba rozłożyć na czynniki pierwsze. Największą wadą algorytmu szyfrującego RSA jest długość jego działania. Dlatego też jest on bardzo często stosowany w połączeniu z innymi algorytmami szyfrującymi. Algorytm szyfrujący RSA
Steganografia Początki steganografii (słowo z greckiego oznaczające dosłownie "przykryte pismo") sięgają starożytności. Już starożytni mieli potrzebę ukrywania informacji przed wzrokiem postronnych np. w Grecji nanoszono informacje na drewno, następnie pokrywano go ciemnym woskiem. Gładkie kawałki drewna wędrowały bezkarnie w bagażach wędrowców, docierając do umyślnego miejsca, gdzie po zdarciu wosku adresat bez trudu odczytywał ukrytą w ten sposób informację. Ponad 5 tys. lat temu w starożytnym Egipcie i Chinach w powszechnym użyciu było pisanie tzw. atramentem sympatycznym - cieczą, której ślad pokazuje się na papierze dopiero po wykonaniu pewnych ściśle określonych czynności, np. po ogrzaniu lub potraktowaniu papieru specyficznym odczynnikiem chemicznym. Jako atrament sympatyczny można wykorzystać wiele związków organicznych - chociażby niektóre soki owocowe (szczególnie popularna jest cytryna) lub mleko.
Steganografia Pierwszy udokumentowany i dobrze opisany sposób ukrycia informacji można znaleźć w pismach greckiego historyka Herodota (żył w latach 484-425 p.n.e.). Opowiadał on, jak despota Histiaus więziony przez króla perskiego Dariusza znalazł prosty sposób na przesłanie informacji do swojego szwagra. Histiaus najpierw dokładnie wygolił głowę jednego z niewolników, a następnie kazał wytatuować przesłanie. Gdy tylko niewolnikowi odrosły włosy, wysłał go do swojego szwagra z mało ważnym listem. Jest to doskonały przykład zastosowania steganografii. Dla nic niepodejrzewających strażników posłaniec na pierwszy rzut oka nie przenosił żadnych ukrytych wiadomości. Wystarczyło jednak ponownie ogolić mu głowę, by zobaczyć ukryte przesłanie.
Znane jest wiele technik steganograficznych: Steganografia Znane jest wiele technik steganograficznych: stosowanie niewidzialnego atramentu; nakłuwanie literek większego komunikatu szpilką (widoczne tylko "pod światło"); takie formułowanie komunikatu, aby sekwencja kolejnych liter, sylab bądź wyrazów tworzyła ukrytą wiadomość. Przykładem może być sekwencja pierwszych liter słów w zdaniu "To Anna jest naszą egzaminatorką" - ukryty komunikat: "tajne". w komputerowym zapisie obrazu w formacie RGB jeden bądź dwa najmłodsze bity każdego piksela można wykorzystać do przenoszenia informacji bez zauważalnej straty jakości obrazu.
Kryptografia kwantowa Kryptografia kwantowa, a właściwie to kwantowe generowanie klucza, pozwala na całkowicie bezpieczne przesyłanie kluczy, które później zostaną wykorzystane do kodowania właściwej wiadomości. Idee te rozwinęli już w latach siedemdziesiątych Charles H. Benett, Gilles Brasard i Artur Ekert (ten ostatni ukończył fizykę na Uniwersytecie Jagiellońskim). Zwykle światło składa się z wielu fotonów o rożnych polaryzacjach. Przy pomocy laserów potrafimy już emitować pojedyncze fotony, a także polaryzować je przepuszczając przez odpowiednie filtry. I tak, osoby komunikujące się, np. A (nadający) i B (odbiorca), korzystają z łącza światłowodowego, którym A przesyła do B pojedyncze fotony. B mierzy polaryzacje każdego fotonu lecz wyniki zachowuje dla siebie. Następnie, używając kanału publicznego, A i B sprawdzają czy pojawiły się przekłamania. Jeżeli tak, oznacza to, ze linia była podsłuchiwana i całą procedurę należy powtórzyć. Osoba podsłuchująca nie jest w stanie ukryć swojej działalności - pasywnie podsłuchać transmisji kwantowej. Wymagałoby to złamania praw fizyki kwantowej.