KRYPTOGRAFIA
Co to jest Kryptografia Kryptologia jest dziedziną wiedzy obejmującą zagadnienia związane z ukrywaniem wiadomości (danych) przed nieupoważnionymi podmiotami przy pomocy ich przekształcania (szyfrowania) do postaci wiadomości "niezrozumiałych" i ich odtwarzaniem (deszyfrowaniem) przez podmioty upoważnione (kryptografia) lub nieupoważnione (kryptoanaliza).
Do czego wykorzystujemy kryptografie? Kryptografie wykorzystujemy do szyfrowania wiadomości. Wiadomość poddawana szyfrowaniu nosi nazwę wiadomości jawnej, zaś po zaszyfrowaniu przyjmuje postać tzw. wiadomości zaszyfrowanej (szyfrogramu). Procesy szyfrowania i deszyfrowania określone są przez odpowiednie przekształcenia matematyczne - algorytmy kryptograficzne, którym poddawane są liczby lub ciągi liczb (w szczególnym przypadku liczb binarnych przedstawionych jako ciągi bitów lub bajtów), odpowiadające wiadomości jawnej lub zaszyfrowanej. Zazwyczaj sama formuła przekształcenia szyfrującego (i deszyfrującego) jest powszechnie znana, zaś o skuteczności "utajniania„wiadomości lub jej odtwarzania decyduje dodatkowy parametr przekształcenia, zwany kluczem, znany jedynie podmiotom upoważnionym. System, w którym dokonuje się szyfrowania i deszyfrowania wiadomości, nosi nazwę systemu kryptograficznego.
Rodzaje szyfrów: Szyfr Cezara Szyfrowanie DES Szyfr ROT-13 Szyfr z dowolnym przesunięciem Szyfr AtBash Macierz (kwadrat) XOR Play fair
Szyfr Cezara Każdą literę tekstu jawnego zamieniamy na literę przesuniętą o 3 miejsca w prawo. I tak literę A szyfrujemy jako literę D, literę B jako E itd. W przypadku litery Z wybieramy literę C. W celu odszyfrowania tekst powtarzamy operację tym razem przesuwając litery o 3 pozycje w lewo. Zapis matematyczny tych operacji wygląda następująco: Szyfrowanie: C=E(p)=(p+3)mod 26 Deszyfrowanie: p=D(c)=(c-3)mod 26 Przyjmuje się, że alfabet składa się z 26 liter.
Szyfrowanie DES DES (Data Encryption Standard) został opracowany w latach 70. XX wieku w firmie IBM. Algorytm szyfruje 64-bitowe bloki danych (8 znaków ASCII) za pomocą klucza 56-bitowego. Firma udostępniła go do użytku publicznego, a Narodowe Biuro Standardów USA zaakceptowało w 1977 roku jako standard szyfrowania. Obecnie DES jest jednym z najbardziej rozpowszechnionych algorytmów szyfrujących. DES to algorytm symetryczny, co oznacza, że do szyfrowania i deszyfrowania użyty został ten sam klucz. Wykorzystuje się tutaj techniki mieszania i rozpraszania. Operacje są wykonywane na liczbach nie dłuższych niż 64-bitowe. Szyfrowanie i deszyfrowanie składa się z 16 rund. W każdej rundzie przeprowadzane są te same operacje, ale na danych otrzymanych w poprzedniej rundzie i specjalnym kluczu Ki.
Szyfrowanie DES Dodatkowo przed pierwszą i po ostatniej rundzie wykonywana jest permutacja (przestawienie) bitów. Podczas przeprowadzania pierwszej permutacji 64-bitowy blok wejściowy jest dzielony na połowę lewą "L" i prawą "R" (każda o długości 32 bitów). Otrzymane w ten sposób bloki 16 razy poddawane są działaniu skomplikowanej funkcji f, która wykonuje podstawienia i przestawienia. W każdej z 16 rund strony lewa i prawa szyfrowane są naprzemiennie. Klucz szyfrowania tworzony jest na podstawie przesunięć i permutacji tworzącej z 56-bitowego klucza 48-bitowy podklucz. Po 16 rundach strony lewa i prawa zostają połączone i na otrzymanym bloku danych wykonywana jest permutacja odwrotna do początkowej. Kilka lat temu DES został złamany. W międzynarodowym konkursie organizowanym przez RSA w roku 1999 firmy Distributed.net oraz Electronic Frontier (EFF) złamały szyfr w czasie 22 godzin.
Szyfr ROT-13 Zasada działania jest identyczna jak w przypadku szyfru Cezara - różnica polega na wartości przesunięcia. W tym przypadku każdą literę tekstu jawnego zamieniamy na literę przesuniętą o 13 miejsca w prawo. W celu odszyfrowania tekst powtarzamy operację tym razem przesuwając litery o 13 pozycje w lewo. Zapis matematyczny tych operacji wygląda następująco: Szyfrowanie: C=E(p)=(p+13)mod 26 Deszyfrowanie: p=D(c)=(c-13)mod 26 Przyjmuje się, że alfabet składa się z 26 liter.
Szyfr z dowolnym przesunięciem Zasada działania jest identyczna jak w algorytmie Cezara i ROT 13. W tym przypadku wartość przesunięcia wyznacza sam użytkownik. Wartość ta dla szyfrowania jak i deszyfrowania musi być identyczna. Zapis matematyczny tych operacji wygląda następująco: Szyfrowanie: C=E(p)=(p+n)mod 26 Deszyfrowanie: p=D(c)=(c-n)mod 26 Przez n rozumiemy wartość przesunięcia. Przyjmuje się, że alfabet składa się z 26 liter.
Szyfr AtBash Szyfrowany/deszyfrowany tekst znajduje się w pliku. Dodatkowo przed uruchomieniem procedury należy stworzyć drugi plik, będący plikiem wynikowym. W programie podajemy nazwy tych plików. Następnie otwierane są oba pliki i jeżeli operacja ta powiedzie się, zaczyna się szyfrowanie/deszyfrowanie. Za każdym razem pobierana jest jedna litera tekstu. Następnie zgodnie z kodem ASCII przydzielana jest ona do trzech możliwych grup: duże litery, małe litery lub cyfry. Kolejna wykonywana operacja to odejmowanie wartości pierwszej litery alfabetu, tak ze teraz litera a otrzymuje numer 0, litera b 1 itd. Teraz wystarczy wykonać odejmowanie 25 - numer litery, aby otrzymać literę zaszyfrowaną. I tak jak szyfrujemy literę a to od 25 odejmujemy 0 i otrzymujemy 25, czyli numer litery z (trzeba pamiętać, ze liczymy w tym przypadku od zera wiec 26. litera (z) ma numer 25).
Macierz (kwadrat) Tekst jawny: Algorytmy i Struktury Danych Tekst zapisujemy jako kwadrat 5x5 Algor ytmyi Struk turyD anych Następnie odczytujemy kolumnami: AyStalttungmrryoyuycrikDh. Aby odszyfrować dany tekst należy operację powtórzyć drugi raz. Otrzymany tekst będzie tekstem jawnym.
XOR Oprócz tej nazwy możemy spotkać się z takimi nazwami jak alternatywa wykluczająca lub binarne sumowanie mod 2. W matematyce oznaczana jest często przez symbol krzyżyk w kółeczku. Operacja ta wygląda następująco: 0 XOR 0 = 0 1 XOR 1 = 0 0 XOR 1 = 1 1 XOR 0 = 1 Należy pamiętać, że w wyniku podwójnego wykonania operacji XOR otrzymamy tekst jawny. Zatem: M XOR K = C C XOR K = M Czyli: (M XOR K) XOR K = M W wyniku tego mamy tylko jedną procedurę, zarówno do szyfrowania jak i do deszyfrowania.
Play fair Szyfr Playfair nie koduje pojedyńczych liter, lecz grupy dwóch znaków jednocześnie. Szyfr ten opiera się na kluczu, względem którego tworzona jest 25 elementowa dwuwymiarowa tablica znaków. Niech przykładowy klucz ma postać: ANUBIS, wówczas utworzona macierz będzie miała postać: Jak widać, tablice ustala się poprzez wpisanie klucza szyfrowania i uzupełnienie reszty liter w kolejności alfabetycznej, bez powtarzania liter występujących w haśle. Podobnie jeżeli mielibyśmy hasło TAJEMNICA, należałoby wpisać TAIEMNC, drugi raz litery I oraz A nie występują. Zauważyć można, że w tablicy brak jest litery "J". W algorytmie szyfrowania Playfair litera J oraz I są równoznaczne.
Przykładowy sposób łamania szyfrów Łamanie szyfru Cezara Każdą literę tekstu zaszyfrowanego zamieniamy na literę przesuniętą o 3 miejsca w lewo. I tak literę Z deszyfrujemy na literę X, literę Y na W itd. W przypadku litery A wybieramy literę Y. Deszyfrowanie: p=D(c)=(c-3)mod 26 gdzie alfabet sklada się z 26 liter
Przykładowe programy do szyfrowania Turbo Pascal C++ Delhi
Zastosowanie szyfrowania Rodzaje programów do szyfrowania Szyfrowanie plików Szyfrowanie dysków Dyski wirtualne
Rodzaje programów do szyfrowania informacji Szyfrowanie plików zapisanych na dyskach nie jest popularną metodą zabezpieczania danych przed nieuprawnionym dostępem. Tymczasem liczba programowych narzędzi kryptograficznych wciąż rośnie, a ich ceny spadają. Wśród darmowych lub niedrogich aplikacji do szyfrowania znajdziemy programy służące do ochrony pojedynczych plików (tych jest najwięcej), narzędzia szyfrujące całe partycje lub dyski oraz aplikacje do tworzenia zaszyfrowanych dysków wirtualnych. Bezpieczny program do szyfrowania danych korzysta z certyfikowanego algorytmu szyfrowania i klucza o długości przynajmniej 128 bitów. Więcej na ten temat w artykule "Pliki pod nadzorem"
Szyfrowanie plików To najszerzej reprezentowana rodzina aplikacji szyfrujących. Większość programów jest udostępniana za darmo. Należą do nich: Enigma (z interfejsem w języku polskim), FineCrypt, HandyBits EasyCrypto Deluxe, MaxCrypt, Mooseoft Encrypter, Secure Task i Ashampoo Privacy Protector Plus. Wszystkie wspomniane aplikacje, z wyjątkiem MaxCrypta prócz szyfrowania pojedynczych plików oferują również ochronę całych katalogów. Mechanizm szyfrowania pojedynczych plików znajdziemy też w niektórych aplikacjach szyfrujących całe dyski (Cryptainer, CryptoMagic, PGP, Encryption Plus Folders). Zazwyczaj mamy możliwość stworzenia zaszyfrowanego pliku wykonywalnego, który zostanie automatycznie odkodowany po wpisaniu hasła, także na komputerze, na którym nie zainstalowano pakietu szyfrującego.
Szyfrowanie plików Niestety, najprostsze aplikacje nie umożliwiają automatyzacji procesu szyfrowania. Po skończeniu pracy z plikiem i zaszyfrowaniu go należy pamiętać o trwałym usunięciu go z dysku twardego. Zwykłe skasowanie nie wystarczy. Gdy użytkownik, przed którym chcemy ukryć nasze informacje, zorientuje się, że zostały one po prostu usunięte, skorzysta z narzędzi do odzyskiwania utraconych danych i uzyska dostęp do skasowanych plików. Spośród wspomnianych pakietów na takie skasowanie danych, by nie można ich było odzyskać, pozwalają programy PGP, FineCrypt i Mooseoft Encrypter.
Szyfrowanie dysków Zarówno szyfrowanie pojedynczych plików i katalogów, jak tworzenie wirtualnych dysków mogą się okazać metodami niewystarczającymi dla wymagających użytkowników. Wśród nich są zazwyczaj firmy szyfrujące gigabajty informacji lub biznesmeni często podróżujący z notebookami wypełnionymi ważnymi informacjami. Najwyższy stopień ochrony zapewniają programy szyfrujące całą zawartość dysków w sposób "przezroczysty" dla użytkownika. Do tak zaawansowanych pakietów należą: SafeGuard Easy, SafeBoot oraz SecureDoc Disk Encryption. Ich działanie polega na zaszyfrowaniu całego dysku, łącznie z systemem operacyjnym, plikami tymczasowymi, a nawet danymi usuniętymi do Kosza. Żadne informacje nie będą dostępne dla intruza.
Szyfrowanie dysków Ważną zaletą aplikacji jest fakt, że szyfrowanie i rozszyfrowywanie zasobów dysku odbywa się w czasie rzeczywistym i jest praktycznie niezauważalne dla użytkownika. Aby uzyskać dostęp do zaszyfrowanego dysku po włączeniu komputera, należy dokonać jednorazowego uwierzytelniania poprzez podanie hasła, zastosowanie karty chipowej lub tokena. Następnie korzystanie z komputera odbywa się już zwyczajnie. Jeśli uwierzytelnianie użytkownika jest dokonywane sprzętowo, usunięcie z czytnika karty chipowej lub tokena powoduje automatyczne zablokowanie dostępu do komputera i zaszyfrowanych dysków.
Dyski wirtualne Wirtualny napęd łączy duże bezpieczeństwo przechowywanych na nim danych z wygodą obsługi. Użytkownik nie musi za każdym razem pamiętać o szyfrowaniu. Wirtualny dysk chroni konkretne dane i udostępnia je na żądanie. Zasoby systemowe nie są wykorzystywane na niepotrzebne szyfrowanie i deszyfrowanie plików, na których ukryciu nam nie zależy, np. systemowych. Wszystkie aplikacje do tworzenia wirtualnych dysków działają według tego samego schematu i mają wbudowany kreator. Zaczynamy od określenia położenia wirtualnego dysku, wybieramy literę, która zostanie mu przypisana, i rozmiar. Różnice w działaniu aplikacji z tej grupy są widoczne właśnie przy wyborze rozmiaru dysku. Jedne oferują całą wolną przestrzeń dysku (SafeGuard PrivateDisk, PGPdisk), inne ograniczają wielkość wirtualnego napędu do 100 MB (Cryptainer PE).
Dyski wirtualne Niektóre aplikacje oferują możliwość dostępu do jednego komputera dla kilku osób (CryptoMagic, PGP). Niestety, trudno znaleźć darmowy program do tworzenia wirtualnych dysków. Najtańszy - TopSecret Next Generation - kosztuje ok. 146 zł. Tuż za nim plasuje się niewątpliwie najlepszy PGP (zawiera również dodatkowe moduły, np. do szyfrowania poczty), za który zapłacimy 49 euro, czyli ok. 250 zł. Moduł do bezpiecznego usuwania danych z dysku (bez możliwości ich późniejszego odzyskania) oferują aplikacje TopSecret Next Generation, PGP, BestCrypt i CryptoExpert.
KONIEC