Wyższa Szkoła Ekonomiczno-Informatyczna w Warszawie Wydział Zastosowań Informatyki w Biznesie Katedra podstaw informatyki i systemów informatycznych Tomasz Grabowski Nr albumu 20622 „Szyfrowanie danych” Praca dyplomowa napisana pod kierownictwem dr inż. Piotra Helta Warszawa 2005 SPIS TREŚCI I. Wstęp .............................................................................................. 4 II. Szyfrowanie ............................................................................. 6 Pojęcie szyfrowania (kluczem prywatnym i publicznym) ...... 6 III. Algorytmy szyfrujące ......................................................... 7 1. Szyfry historyczne.............................................................................. 7 Enigma ....................................................................................................7 szyfr polialfabetyczny .............................................................................9 szyfr przestawieniowy ............................................................................11 szyfr przesuwający (monoalfabetyczny) .................................................11 2. Szyfry współczesne ............................................................................. 14 a) Asymetryczne .........................................................................................14 b) Blokowe ..................................................................................................14 AES /Rijndael ...........................................................................................17 Serpent .....................................................................................................17 Skipjack ....................................................................................................18 3DES ........................................................................................................18 Blowfish ..................................................................................................19 Twofish .....................................................................................................20 DES .........................................................................................................21 DESX .......................................................................................................22 IDEA .......................................................................................................22 c) Strumieniowe ...........................................................................................23 RC4 ..........................................................................................................23 A5/1 ..........................................................................................................23 A5/2 ..........................................................................................................23 -2- IV. Funkcje mieszające .............................................................. 25 MD5 ......................................................................................... 25 SHA-1 ...................................................................................... 26 SHA-256 .................................................................................. 27 SHA-384 .................................................................................. 27 SHA-512 .................................................................................. 27 V.Programy szyfrujące ............................................................. 28 1. Enigma 2003 final.................................................................... 28 2. Data Encrytption Toolkit v. 1.12 ............................................. 36 3. Cheops v. „A” .......................................................................... 39 4. Top Secret Next Generation ................................................... 42 5. PGP 8.2 ................................................................................... 55 6. TmD SOFT Code ..................................................................... 65 7. VMPC Data Security ............................................................... 72 VI. Zakończenie ........................................................................... 81 VII. Bibliografia ............................................................................ 84 -3- I. Wstęp Rosnące możliwości oraz ciągłe powiększanie się ilości użytkowników komputerów osobistych, przyczyniło się do zapotrzebowania na programy zabezpieczenia danych przed: - działaniem programów szpiegujących. Zgodnie z badaniami przeprowadzonymi przez instytucje zajmujące się bezpieczeństwem danych z USA jest nimi zainfekowany nieomal każdy komputer podłączony do sieci! W wielu przypadkach w zainfekowanych komputerach „siedzi” po kilka programów szpiegujących! Sprawdzają preferencje konsumenckie, przekazują poufne dane, analizują zachowania użytkowników itd. Odbiorcami danych są nie tylko agendy wywiadu gospodarczego z całego świata, firmy analizujące działanie konkurencji itp. ale także - o zgrozo - instytucje państwowe masowo łamiące prawo do prywatności. Znane są przypadki śledczego wykorzystania tak zdobytych danych w naszym kraju! - wykradaniem danych. Proceder wbrew pozorom bardzo rozpowszechniony w wielu firmach, gdyż dane handlowe posiadają zwykle sporą wartość komercyjną. - przechwytywanie korespondencji elektronicznej oraz danych przesyłanych za pomocą sieci - lokalnych i rozległych. W tym przypadku sama autoryzacja użytkownika jest dalece niewystarczająca. Można dość łatwo przechwycić nie tylko korespondencję czy przesyłane dane ale i podszyć się na wiele sposobów pod autoryzowanego użytkownika. Wiele firm nie zdaje sobie sprawy, że ich sesje robocze są „nasłuchiwane” w sposób stały przez programy, które robią to automatycznie! - przekłamaniem danych. Dane zwykle bywają zmieniane w minimalnym zakresie. Jeżeli modyfikacji dokonano w dyskretny sposób, jest to trudne do wykrycia. Przekłamanie może polegać na przechwyceniu oryginalnego listu, przesyłanego siecią Internet i zastąpienia go listem o zmienionej treści. To tylko niewielka część zagrożeń dla danych przetwarzanych przez podmioty gospodarcze. Obecnie sprawne funkcjonowanie przedsiębiorstwa jest uzależnione od dobrze działającego systemu informatycznego. najczęściej Systemy te, zainstalowane w firmach, zawierają najbardziej istotne dla działania i istnienia przedsiębiorstwa informacje - wszelkiego rodzaju systemy finansowo-księgowe, kadrowe, magazynowe, bazy danych gromadzące dane o klientach i kontrahentach, dokumenty wewnętrzne o różnym stopniu poufności, a w tym projekty i dokumentację. Niejednokrotnie firma ma wiele oddziałów położonych w różnych częściach kraju lub -4- świata, które muszą wymieniać poufne informacje między sobą. Nie należy się więc dziwić, że mogą znaleźć się zarówno osoby, jak i instytucje pragnące w sposób nie autoryzowany dotrzeć do poufnych informacji zgromadzonych w systemie informatycznym takiej firmy.1 Przed tego typu zagrożeniami możemy chronić nasze dane, korzystając z obecnie dostępnych narzędzi. Istnieją w tym zakresie dość kosztowne rozwiązania, oparte na kombinacjach sprzętowo-programowych, które i tak nie gwarantują pełnego bezpieczeństwa. Przykładowo – blokowane są skuteczne rozwiązania w zakresie szyfrowania danych czego przykładem były kłopoty Philipa R. Zimmermanna, twórcy silnego systemu kryptograficznego PGP. Coraz częściej pojawiają się informacje, że najbardziej znane algorytmy szyfrujące są powszechnie łamane nie tylko przez wyspecjalizowane instytucje rządowe ale i wiele firm prywatnych, specjalizujących się w „pozyskiwaniu” informacji. Trudno ocenić wiarygodność tych informacji ale sukcesy niektórych ośrodków akademickich w łamaniu „bezpiecznych” szyfrów mówią same za siebie... Silne rozwiązania w zakresie bezpieczeństwa danych nie muszą być kosztowne! Często można je skonstruować za pomocą narzędzi, które w znacznej części są bezpłatne. Nie są potrzebne duże pieniądze lecz inteligentna polityka bezpieczeństwa w firmie. Przykładowo – nie można się skutecznie obronić przed „podsłuchiwaniem” sieci przez specjalizowane programy, można sprawić natomiast, że będą one otrzymywać bezwartościowe dane. Polecamy darmowe prace mgr - serwis z pracami dyplomowymi - prace magisterskie i licencjackie - całkowicie za darmo 1 http://www.cyber.com.pl/archiwum/12/25.shtml -5- II. Szyfrowanie Szyfrowanie to procedura takiego przekształcania wiadomości, żeby była ona niemożliwa (lub bardzo trudna) do odczytania przez każdego, kto nie posiada odpowiedniego klucza. Wiadomość przed zaszyfrowaniem nazywa się tekstem jawnym (plaintext), a wiadomość zaszyfrowaną – szyfrogramem (ciphertext). Szyfrowanie jest zajęciem bardzo starym, aczkolwiek nowoczesna kryptografia narodziła się dopiero w epoce komputerów i starsze szyfry są z dzisiejszego punktu widzenia zupełnie bezużytecznie. Szyfrowanie obejmuje bardzo wiele zagadnień. Najważniejsze z nich to: - kamuflowanie wiadomości i maskowanie działania programów; - zasady doboru haseł; - skuteczne niszczenie dokumentów i kasowanie plików; - wykrywanie ukrytych kanałów w aplikacjach; - autentyzacja i certyfikacja (zagwarantowanie, że dana osoba jest autorem dokumentu); - podpisy cyfrowe (sposób przekonania osoby trzeciej o autentyczności dokumentu); - dobór parametrów szyfrowania, aby był bezpieczny przez jak najdłuższy okres czasu mimo postępów w projektowaniu superkomputerów użytych do łamania algorytmów szyfrujących. Polecamy darmowe prace mgr - serwis z pracami dyplomowymi - prace magisterskie i licencjackie - całkowicie za darmo -6- III. Algorytmy szyfrujące 1. Szyfry historyczne Szyfry historyczne musiały umożliwiać szyfrowanie i deszyfrowanie przez człowieka, a więc opierać się na bardzo prostych operacjach. Współczesne komputery są o kilkanaście rzędów wielkości szybsze w obliczeniach od ludzi, i potrafią złamać praktycznie każdy tego typu szyfr. Dlatego też właściwie wszystkie wymienione niżej szyfry nie mają obecnie żadnego praktycznego znaczenia. Niektóre z szyfrów historycznych to: Enigma szyfr polialfabetyczny, w tym szyfr Vigenère'a. szyfr przestawieniowy szyfr przesuwający (monoalfabetyczny) , do którego należy Szyfr Cezara Enigma Oryginalna maszyna szyfrująca Enigma2 Enigma (łac. zagadka) - niemiecka maszyna szyfrująca, używana przez wywiad oraz armię niemiecką. Powstała w Niemczech, a jej wynalazcą był Hugo Koch, który sprzedał jej patent inżynierowi Arturowi Scherbiusowi. Niemiecka marynarka wojenna zaczęła stosować Enigmy już w 1926 roku, na lądzie weszły do użycia kilka lat później. Polacy próbowali złamać kod Enigmy już pod koniec lat dwudziestych, jednakże bez 2 http://kryptografia.republika.pl/enigma.html -7- rezultatu. Wówczas kierownictwo Biura Szyfrów Oddziału II Sztabu Głównego zatrudniło do pracy profesjonalnych matematyków. 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. Pomimo 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. Od tego czasu Polacy mogli odczytywać korespondencję niemiecką, choć nie było to proste, bowiem Niemcy stale udoskonalali zarówno maszynę, jak i sposoby szyfrowania. Na krótko przed wojną w Pyrach pod Warszawą, w siedzibie Biura Szyfrów, doszło do spotkania z wysłannikami sojuszników. Dwie Enigmy przekazano wówczas Francuzom i Brytyjczykom, wraz z materiałami do dekryptażu. Deszyfratory, które skonstruowano następnie w Bletchley Park, powstały na podstawie otrzymanych wówczas od Polaków materiałów. Budowa maszyny Z przodu maszyny znajduje się 26-literowa klawiaturka, a za nią płytka z drugim zestawem znaków podświetlanych żarówkami. W środku urządzenia znajdują się 3 (lub nawet 8 - zależy to od wersji Enigmy, o tym później) wirniki szyfrujące (niem. Chiffrierwalzen) poprzedzone walcem wstępnym (Eintrittswalze) oraz jeden nieruchomy walec odwracający (Umkehrwalze), można go odsunąć odpowiednią dźwigienką. Między klawiaturą a zespołem wirników znajduje się centralka, łącznica wtykowa, w której następuje zamiana 12 (z 26) liter alfabetu, za pomocą specjalnych sznurów (Steckerverbindungen). Później zwiększono liczbę par z 6 do 13, tym samym umożliwiając zamianę całego alfabetu. Przy każdym naciśnięciu klawisza na klawiaturce, następuje przesunięcie o 1/26 pełnego obrotu skrajnego (prawego) wirnika szyfrującego (pozostałe kręcą się rzadziej). Prąd biegnie od klawiatury, poprzez łącznicę, wszystkie wirniki i walec odwracający, znowu wirniki i łącznicę, wreszcie zapala się odpowiednia żarówka. W wypadku naciśnięcia klawisza jak na zapalonej żarówce, pojawi się uprzednio wciśnięty znak. Wynika z tego, że Enigmą można szyfrować i deszyfrować bez potrzeby wykonywania dodatkowych czynności. -8- Szyfr polialfabetyczny Szyfr polialfabetyczny to uogólnienie szyfru monoalfabetycznego na większą ilość przekształceń. Szyfr taki składa się z n przekształceń, takich że pierwszą literę szyfrujemy pierwszym przekształceniem, drugą drugim itd., po czym powtarzamy przekształcenia od początku począwszy od litery n + 1-wszej. Przykładem takiego szyfru jest szyfr Vigenere'a. Szyfr tego typu nie zapewnia żadnego bezpieczeństwa. Szyfr 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: ABCDEFGHIJKLMNOPQRSTUVWXYZ BCDEFGHIJKLMNOPQRSTUVWXYZA CDEFGHIJKLMNOPQRSTUVWXYZAB DEFGHIJKLMNOPQRSTUVWXYZABC EFGHIJKLMNOPQRSTUVWXYZABCD FGHIJKLMNOPQRSTUVWXYZABCDE GHIJKLMNOPQRSTUVWXYZABCDEF HIJKLMNOPQRSTUVWXYZABCDEFG IJKLMNOPQRSTUVWXYZABCDEFGH JKLMNOPQRSTUVWXYZABCDEFGHI KLMNOPQRSTUVWXYZABCDEFGHIJ LMNOPQRSTUVWXYZABCDEFGHIJK MNOPQRSTUVWXYZABCDEFGHIJKL NOPQRSTUVWXYZABCDEFGHIJKLM OPQRSTUVWXYZABCDEFGHIJKLMN PQRSTUVWXYZABCDEFGHIJKLMNO QRSTUVWXYZABCDEFGHIJKLMNOP RSTUVWXYZABCDEFGHIJKLMNOPQ STUVWXYZABCDEFGHIJKLMNOPQR -9- TUVWXYZABCDEFGHIJKLMNOPQRS UVWXYZABCDEFGHIJKLMNOPQRST VWXYZABCDEFGHIJKLMNOPQRSTU WXYZABCDEFGHIJKLMNOPQRSTUV XYZABCDEFGHIJKLMNOPQRSTUVW YZABCDEFGHIJKLMNOPQRSTUVWX ZABCDEFGHIJKLMNOPQRSTUVWXY 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. 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ć: TO JEST BARDZO TAJNY TEKST TA JNET AJNETA JNETA JNETA 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. Deszyfracja przebiega bardzo podobnie. Bierzemy kolejne litery szyfrogramu oraz odpowiadające im litery słowa kluczowego (podobnie, jak przy szyfrowaniu). Wybieramy kolumnę odpowiadającą literze słowa kluczowego. Następnie w tej kolumnie szukamy litery szyfrogramu. Numer wiersza odpowiadający znalezionej literze jest numerem litery tekstu jawnego. Np. w kolumnie T litera M znajduje się w wierszu T, w kolumnie A litera O znajduje się w wierszu O itd. - 10 - Istnieje jednakże prostszy, szczególnie dla celów implementacyjnych, sposób deszyfrowania. Wymaga on wykonania prostej operacji "odwrócenia" hasła, jak poniżej: K2(i) = [26 – K(i)] mod 26 gdzie K(i) – kolejne litery słowa kluczowego, numerowane A=0, B=1 itd., a K2(i) – kolejne litery hasła "odwróconego". 26 oznacza liczbę liter alfabetu łacińskiego. Efektem działania takiego przekształcenia dla hasła "TAJNE" będzie słowo "HARNW". Następnie należy na szyfrogramie wykonać operację szyfrowania z otrzymanym hasłem. Wynikiem, jak można się przekonać, będzie postać jawna tekstu. Pierwsze złamanie szyfru nastąpiło prawdopodobnie w roku 1854 przy użyciu kryptoanalizy statystycznej i zostało dokonane przez Charles'a Babbage'a.3 Istotą złamania szyfru było podzielenie wiadomości na części w ilości równej długości klucza. W wyniku podziału otrzymywano urywki wiadomości, które można było traktować jak zaszyfrowane szyfrem monoalfabetycznym. Szyfr przestawieniowy Szyfry przestawieniowe (transposition cipher) należą do grupy klasycznych metod szyfrowania. Szyfry te charakteryzują się tym, że w zaszyfrowanym tekście występują wszystkie znaki z tekstu jawnego, ale w innej kolejności. Szyfry należące do tej grupy (np. szyfr płotkowy) zmieniają kolejność liter w szyfrowanym tekście według określonego schematu. Najczęściej przestawienia liter dokonuje się za pomocą figury geometrycznej. Szyfry przestawieniowe są łatwe do złamania i nie zapewniają żadnego bezpieczeństwa. Szyfr przesuwający (monoalfabetyczny) Szyfr przesuwający (ang. shift cipher) to szyfr, w którym każdemu znakowi tekstu jawnego odpowiada dokładnie jeden znak w szyfrogramie, przesunięty o określoną, stałą liczbę znaków w alfabecie. Litery z końca alfabetu stają się literami z jego początku. f (a) (a k ) mod n a - szyfrowana litera 3 Charles Babbage (ur. 26 grudnia 1791 r. w Teignmouth, Devonshire — zm. 18 października 1871 r. w Londynie) - angielski matematyk, astronom i mechanik, autor tablic logarytmicznych. - 11 - k - klucz n - ilość liter w alfabecie Przykładowo przy przesuwaniu o 3 znaki w alfabecie łacińskim (bez polskich liter) litery A stają się D, F – I, a Y literami B. Formalna definicja przekształceń Założenia: Używamy alfabetu z 26 znakami, numerowanymi od 0 do 25. x to znak tekstu jawnego y to znak szyfrogramu k to klucz (liczba o jaką przesuwamy) Szyfrowanie: y = (x + k) mod 26 gdzie mod to obliczanie reszty z dzielenia. Deszyfrowanie: x = (y - k) mod 26 Operacja "mod" w większości języków programowania daje ujemne wyniki dla ujemnego pierwszego argumentu, stąd w praktyce do deszyfrowania lepiej użyć wzoru: x = (y + 26 - k) mod 26 Przykład Tekst jawny: TEKST JAWNY Po przypisaniu każdej literze liczby od 0 do 25 uzyskujemy: 19 4 10 18 19 9 0 22 13 14 Klucz: k=14 (a więc dodajemy 14 do kodu każdej litery, a następnie obliczamy resztę z dzielenia przez 26) Szyfrogram: 7 18 14 6 7 23 14 10 1 12 czyli po zamianie na litery: HSYGH XOKBM - 12 - Przydatność Szyfry tego typu nie zapewniają absolutnie żadnego bezpieczeństwa. Metodą łamania takiego szyfru jest: w przypadku znanego choćby małego fragmentu tekstu jawnego z powtarzającymi się znakami - umiejscowienie go w tekście tajnym poprzez poszukiwanie podobnych wzorców, np. jeśli występuje słowo "baobab", szukamy ciągu liter (xb, xa, xo, xb, xa, xb), czyli takiego, gdzie na pierwszym, czwartym i szóstym miejscu występuje ten sam znak, oraz na drugim i piątym ten sam, ale inny od tamtych, a jeszcze inny na trzecim. w ogólniejszym przypadku należy policzyć rozkład statystyczny znaków w zaszyfrowanym tekście i porównać z rozkładem w dowolnym tekście jawnym z tego samego języka (najlepiej, ale niekoniecznie, tego samego autora na podobny temat). Przy dłuższym tekście tajnym pozwala to na idealne rozszyfrowanie. Szyfr taki nigdy nie zapewniał bezpieczeństwa i nie zapewnia go tym bardziej dzisiaj. Szyfr przesuwający z kluczem równym 3 nazywa się szyfrem Cezara. Szyfr Cezara Szyfr stosowany przez Gajusza Juliusza Cezara, rzymskiego wodza i polityka, będący klasycznym przykładem szyfru przesuwającego z kluczem równym 3. Przykład Tekst jawny: Alea iacta est Szyfrogram: DOHDLDFWDHVW Polecamy darmowe prace mgr - serwis z pracami dyplomowymi - prace magisterskie i licencjackie - całkowicie za darmo - 13 - 2. Szyfry współczesne Współcześnie możemy podzielić metody szyfrowania na 3 grupy: a) szyfry asymetryczne b) symetryczne szyfry blokowe c) symetryczne szyfry strumieniowe a) Szyfry asymetryczne W szyfrowaniu asymetrycznym występują 2 klucze – klucz publiczny służący do szyfrowania, oraz klucz prywatny służący do deszyfrowania. Ponieważ nie ma potrzeby rozpowszechniania klucza prywatnego, bardzo małe są szanse, że wpadnie on w niepowołane ręce. Szyfry asymetryczne opierają się na istnieniu pewnych trudnych do odwrócenia problemów. Np. o wiele łatwiej jest pomnożyć przez siebie 2 duże liczby, niż rozłożyć dużą liczbę na czynniki (opiera się na tym system RSA). Drugim popularnym systemem jest ElGamal4, opierający się na trudności logarytmu dyskretnego. Typowe rozmiary kluczy są rzędu 1024-2048 bitów. W przypadku RSA złamane zostały klucze rozmiarów do ok. 500 bitów. b) Szyfry blokowe Szyfry blokowe to procedury, które szyfrują niewielkie bloki danych (znacznie mniejsze od typowej wiadomości), współcześnie jest to najczęściej 128 bitów (AES), choć do niedawna przeważały 64-bitowe bloki (DES, 3DES, Blowfish, IDEA). Klucze są znacznie mniejsze, mają zwykle od 128 do 256 bitów, przy czym wartości mniejsze od 80 (DES – 56) są uważane za niewystarczające. Typowy szyfr blokowy składa się z kilkunastu dość prostych rund przekształcających blok. Operacje używane w tych szyfrach są zwykle proste, ale pochodzą z "różnych światów", np. używa się dodawania, użycia funkcji XOR, przesunięć cyklicznych, mnożenia modulo liczb pierwszych itd. Już kilka rund takich operacji zupełnie zaburza jakikolwiek porządek i jest bardzo trudne do analizowania. Ponieważ szyfr blokowy szyfruje jedynie niewielką ilość informacji, używane są różne tryby szyfrowania, które umożliwiają szyfrowanie większych wiadomości. Główne tryby to: CBC CFB ElGamal- jeden z dwóch najważniejszych systemów kryptografii asymetrycznej (drugim jest RSA). System jest oparty na trudności problemu logarytmu dyskretnego w ciele liczb całkowitych modulo duża liczba pierwsza. 4 - 14 - CTR ECB OFB W kryptografii CBC - Cipher Block Chaining to tryb kodowania wiadomości za pomocą szyfru blokowego, w którym przed zaszyfrowaniem każdy z bloków wiadomości jest przekształcany funkcją XOR z szyfrogramem uzyskanym z szyfrowania poprzedniego bloku wiadomości. Pierwszy blok wiadomości jest szyfrowany za pomocą wylosowanego ciągu bitów (IV, initial vector) dołączanego do wiadomości. Wzory na kodowanie: C0 = IV Ci E ( Pi Ci 1 ) Wzory na dekodowanie: Pi D(Ci ) Ci 1 CFB - Cipher Feedback Tryb użycia szyfru blokowego pozwalający na użycie go do kodowania strumieni danych. Szyfr blokowy jest używany do wygenerowania pseudolosowego ciągu danych, który następnie pełni rolę strumienia szyfrującego mieszanego z danymi za pomocą funkcji XOR. Opis algorytmu: Wybieramy losowy, jawny blok danych, zwany wektorem inicjującym. Jego długość jest zależna od wybranego szyfru i jest równa długości bloku, na którym operuje szyfr. Szyfrujemy go za pomocą tajnego klucza. Poddajemy wynik z wiadomością funkcji XOR i uzyskujemy fragment szyfrogramu. Uzyskany fragment szyfrogramu po zaszyfrowaniu z użyciem tego samego klucza szyfrującego stanowi kolejny fragment strumienia szyfrującego. CTR - Counter Tryb użycia szyfru blokowego pozwalający na użycie go do kodowania strumieni danych. Szyfr blokowy jest używany do wygenerowania pseudolosowego ciągu danych, który następnie pełni role strumienia szyfrującego mieszanego z danymi za pomocą funkcji XOR. Opis algorytmu: - 15 - Wybieramy jawną funkcję, która na podstawie pozycji bloku danych względem początku strumienia generuje ciąg danych o długości równej długości bloku szyfru blokowego, wymagane jest by funkcja ta zwracała wartości pseudolosowe. Wynik funkcji szyfrujemy szyfrem blokowym. Poddajemy wynik z wiadomością funkcji XOR i uzyskujemy fragment szyfrogramu. Jest to najpopularniejszy tryb pracy szyfrów blokowych. W przeciwieństwie do CFB i OFB pozwala odszyfrować dowolny fragment danych, bez konieczności odszyfrowywania wszystkich poprzedzających. OFB - Output Feedback Tryb użycia szyfru blokowego pozwalający na użycie go do kodowania strumieni danych. Szyfr blokowy jest używany do wygenerowania pseudolosowego ciągu danych, który następnie pełni role strumienia szyfrującego mieszanego z danymi za pomocą funkcji XOR. Opis algorytmu: Wybieramy losowy, jawny blok danych, zwany wektorem inicjującym. Jego długość jest zależna od wybranego szyfru i jest równa długości bloku, na którym operuje szyfr. Szyfrujemy go za pomocą tajnego klucza. Uzyskany ciąg danych stanowi: o Początek strumienia szyfrującego dla funkcji XOR. o Tekst jawny, którego zaszyfrowanie dostarczy nam kolejny fragment strumienia szyfrującego. Niektóre szyfry blokowe to: 3DES AES /Rijndael Skipjack Blowfish DES DESX IDEA Lucipher Twofish Mars - 16 - Serpent Rijndael/AES Szyfr AES może operować na bloku o zmiennej długości, używając kluczy zmiennej długości. Oficjalna specyfikacja dopuszcza użycie bloków 128-, 192- lub 256cio bitowych, szyfrowanych kluczami 128-, 192- lub 256-cio bitowymi. Dopuszczalne są wszystkie z 9 kombinacji. Rijndael jest "iterowanym szyfrem blokowym", co oznacza, że blok wejściowy oraz klucz przechodzą wielokrotne RUNDY transformacji, zanim wyprodukują wynik. Po każdej rundzie, powstaje szyfr pośredni, zwany STANEM (State).5 Serpent Serpent (ang. „wąż") był kolejnym finalistą konkursu AES6. Jego konstrukcja przypomina czołg. Jest to propozycja najbardziej zachowawcza spośród wszystkich przesłanych do AES, pod wieloma względami odmienna od ostatecznie wybranego laureata. O ile AES największy nacisk kładzie na elegancję i wydajność, Serpent został zaprojektowany wyłącznie z myślą o bezpieczeństwie. Najlepszy znany atak obejmuje jedynie 10 z 32 istniejących tur . Wadą algorytmu Serpent jest jego szybkość: jest on trzykrotnie wolniejszy od AES. Pod pewnymi względami Serpent przypomina AES. Składa się on z 32 tur. Każda tura obejmuje przekształcenie przez XOR względem 128-bitowego klucza tury, użycie 128-bitowej liniowej funkcji mieszającej i równoległe zastosowanie 32 czterobitowych S-boksów. Wszystkie 32 S-boksy są identyczne dla wszystkich tur, ale do dyspozycji jest osiem różnych S-boksów, których używa się po kolei w następujących turach. Algorytm Serpent wykorzystuje pewne szczególnie pomysłowe rozwiązanie programowe. Zwykła implementacja byłaby bardzo powolna, gdyż w każdej z 32 tur konieczne jest przejrzenie 32 S-boksów. Łącznie oznaczałoby to konieczność przejrzenia 1024 S-boksów, co może trwać bardzo długo. Sztuczka polega na zastąpieniu S-boksów wyrażeniami logicznymi (boolowskie). Każdy z czterech bitów wynikowych jest wyrażany w postaci funkcji boolowskiej czterech bitów wejściowych. 5 http://e-handel.mm.com.pl/crypto/aes.htm AES-ang. Advanced Encryption Standard- zaawansowany standard szyfrowania, symetryczny algorytm szyfrujący Rijndael, który w 2000r. został zwycięzcą ogłoszonego przez NIST konkursu, algorytm ma docelowo zastąpić mało bezpieczny już DES. 6 - 17 - Procesor bezpośrednio oblicza wartość funkcji korzystając z operacji AND, OR i XOR. Najważniejszy jest fakt, że w 32-bitowych procesorach można równolegle obliczać transformację przez wszystkie 32 S-boksy, gdyż każdy bit wynikowy opisany jest tą samą funkcją, choć działającą na różnych danych wejściowych. Tego rodzaju implementację nazywamy implementacją plasterkową (ang. bitslice). Serpent został zaprojektowany specjalnie z myślą o takiej implementacji. Przeprowadzenie fazy mieszania jest w niej względnie proste.7 Gdyby Serpent był tak szybki jak Rijndael (obecnie AES), prawie na pewno zostałby wybrany jako algorytm AES, a to z uwagi na jego konserwatywną konstrukcję. Jednak szybkość jest pojęciem względnym. Jeśli mierzymy ją względem liczby szyfrowanych bajtów, Serpent jest prawie tak szybki jak DES i znacznie szybszy od 3DES. Serpent jest powolny jedynie w porównaniu z pozostałymi finalistami konkursu AES. Skipjack Algorytm Skipjack to tajny algorytm opracowywany w latach 1987-1993 przez NSA8 jako narzędzie do zapewniania bezpiecznej komunikacji głosowej oraz do wymiany danych z jednoczesnym umożliwieniem kontroli i podsłuchu przez uprawnione agencje rządu USA. Urządzenia działające w systemie SKIPJACK (np. telefony) mają zainstalowany odporny na ingerencje układ scalony. Dystrybucja kluczy odbywa się ręcznie. SKIPJACK szyfruje 64-bitowe bloki w 32 etapach za pomocą 80-bitowego klucza. Zakładając, że dysponuje się hipotetyczną maszyną złożoną z 1, 2 miliarda jednodolarowych układów scalonych z zegarem 1 GHz i szyfrowaniem potokowym w jednym cyklu zegara zakres kluczy SKIPJACK wyczerpałby się po upływie roku. 3DES 3DES to algorytm polegający na zakodowaniu wiadomości DESem trzy razy: 1. kodujemy pierwszym kluczem 2. dekodujemy drugim kluczem 7 N. Ferguson, B. Schneider: Kryptografia w praktyce, Wydawnictwo Helion, Gliwice 2004, s. 57 NSA (National Security Agency) Agencja Bezpieczeństwa Narodowego - głęboko utajniona amerykańska agencja wywiadowcza, koordynująca całość operacji SIGINT, powstała w kwietniu 1952 roku. 8 - 18 - 3. kodujemy trzecim kluczem c = E3(D2(E1(m))) Użycie dekodowania jako drugiej fazy nie wpływa na siłę algorytmu (dekodowanie w DESie jest identyczne jak kodowanie, tylko ma odwróconą kolejność rund), ale umożliwia używania 3DESa w trybie kompatybilności z DESem – za klucz pierwszy i drugi, lub drugi i trzeci przyjmujemy dowolny taki sam klucz, a za ostatni zwykły klucz DESowski: c = E3(D1(E1(m))) = E3(m) c = E3(D3(E1(m))) = E1(m) 9 3DES używa takich samych rozmiarów bloków oraz trybów jak zwykły DES. Siła 3DESa jest tylko dwukrotnie, nie trzykrotnie większa od siły zwykłego DESa. Blowfish Blowfish to szyfr blokowy stworzony przez Bruce'a Schneier'a w 1993 roku jako szybka i bezpłatna alternatywa dla istniejących ówcześnie algorytmów. Algorytm operuje na 64-bitowych blokach i używa kluczy od 32 do 448 bitów. Algorytm ma postać szyfru Feistela z 16 rundami z SBOXami zależnymi od klucza. Każda zmiana klucza wymaga dość sporej ilości wstępnych obliczeń, żeby ustalić SBOXy. Z tego powodu atak brute-force trwa znacznie dłużej niż można by się spodziewać. W typowych algorytmach jeśli długość klucza to k, a koszt zakodowania bloku to B, koszt ataku brute-force wynosi 2kB. W przypadku Blowfisha trzeba dla każdego klucza obliczyć SBOXy, co zajmuje tyle co zakodowanie ok. 29 bloków, a więc czas ataku brute-force wynosi około 2k + 9 B (a zatem atak na 64-bitowy Blowfish zajmuje mniej więcej tyle czasu co na 73-bitowy bardziej tradycyjny szyfr). Wadą tego rozwiązania są dość duże wymagania pamięciowe – potrzebne są ponad 4kB pamięci, co nie jest problemem dla nawet słabych komputerów, ale jest już dla np. kart chipowych.10 Nie istnieją (2004) znane ataki na Blowfisha o ilości rund większej niż 4. Są znane dość duże jak na symetryczny szyfr blokowy grupy słabych kluczy, czyli takich, dla których Blowfish jest słabszy niż dla typowych kluczy (większość szyfrów posiada takowe, jednak szansa na wylosowanie takiego klucza jest bardzo niska). 9 http://pl.wikipedia.org/wiki/3DES http://ochrona.bajo.pl/szyfrprog.php 10 - 19 - Twofish Twofish był następnym finalistą AES. Można go traktować jako kompromis między AES a Serpent. Jest on niemal tak szybki jak AES, ale zapewnia wyższy poziom bezpieczeństwa. Co ważniejsze, nie ma on znanej prostej reprezentacji algebraicznej. Najlepszy znany atak obejmuje 8 z 16 tur. Największą wadą Twofish jest to, że zmiana klucza szyfrującego może być kosztowna, gdyż najlepsza implementacja tego algorytmu wymaga wielu obliczeń wstępnych. Algorytm Twofish wykorzystuje te same struktury Feistela, co DES. Podczas szyfrowania Twofish 128-bitowy tekst otwarty dzieli się na cztery wartości 32-bitowe, na których wykonywana jest później większość operacji. Funkcja tury składa się z dwóch wywołań funkcji g, funkcji o nazwie PHT oraz dodawania klucza. Wynik funkcji jest poddawany operacji XOR z pozostałą częścią danych (dwie pionowe kreski na prawo od bloku funkcji). Każda funkcja g składa się z czterech S-boksów11 i z mieszającej funkcji liniowej bardzo podobnej do funkcji mieszającej AES. S-boksy są już nieco inne. W przeciwieństwie do wszystkich innych omawianych wcześniej szyfrów, tym razem S-boksy nie są stałe: ich zawartość zależy od klucza. Specjalny algorytm wylicza tablice S-boksów na podstawie klucza. Uzasadnieniem takiego rozwiązania jest utrudnienie analizy S-boksów potencjalnym włamywaczom. Dlatego właśnie w wielu implementacjach Twofish niezbędne są dodatkowe obliczenia wstępne dla każdego nowego klucza. W ich trakcie wyznacza się nowe S-boksy, które następnie są przechowywane w pamięci.12 Funkcja PHT miesza dwa wyniki funkcji g korzystając z 32-bitowych operacji dodawania. W algorytmie Twofish zastosowano dodatkowe przetwarzanie wstępne i końcowe. Polega ono na dodawaniu pewnych informacji z klucza do danych. W ten sposób szyfr trudniej poddaje się większości ataków, zaś wzrost kosztu jest niewielki. Tak jak w przypadku innych szyfrów, Twofish ma schemat przetwarzania klucza, pozwalający uzyskać klucze tur oraz dwa dodatkowe klucze: początkowy i końcowy. S-Box (Substitution Box) - podstawowy element wielu współczasnych szyfrów (np. DES). Istota jego działania polega na podstawieniu ciągu bitów innym, w zależności od bitów: poprzedzającego i następujacego. 12 N. Ferguson, B. Schneider: Kryptografia w praktyce, Wydawnictwo Helion, Gliwice 2004, s. 58 11 - 20 - DES DES (ang. Data Encryption Standard - Standard Szyfrowania Danych) - szeroko używany algorytm kryptograficzny. Stworzony przez IBM na podstawie szyfru Lucifer, został zmodyfikowany przez amerykańską NSA. Zaakceptowany jako amerykański standard w roku 1977.13 Algorytm jest następujący: Wykonujemy wejściową permutację danych (IP) Powtarzamy 16 razy następującą operację o Przestawiamy bity danych (umieszczenie tej operacji miało na celu preferowanie rozwiązań sprzętowych w których wykonanie tego przekształcenia sprowadza się do odpowiedniego przeprowadzenia połączeń. o Dane które dostaliśmy na wejściu rundy dzielimy na dwie 32-bitowe części - lewą Li i prawą Ri o Rozszerzamy przez powielanie bitów prawą część do 48 bitów uzyskując E(Ri) o Poddajemy funkcji XOR E(Ri) z podkluczem dla aktualnej rundy E ( Ri ) K i o Rozbijamy E ( Ri ) K i na 8 fragmentów po 6 bitów o Każdy z tych fragmentów jest argumentem jednej z 8 funkcji, tzw. S-BOX-ów. o Łączymy wyniki S-BOXów w S ( E ( Ri ) K i ) o Permutujemy uzyskany wynik P(S ( E ( Ri ) K i )) o Jako lewą stronę wyjścia przekazujemy prawą stronę wejścia: Li + 1 = Ri o Jako prawą stronę wyjścia przekazujemy lewą stronę wejścia poddaną funkcji XOR z P(S ( E ( Ri ) K i )) : Ri 1 Li P(S ( E ( Ri ) K i )) Wykonujemy odwróconą permutację wejściową danych (IP - 1) Schemat ten to tzw. sieć Feistela. 13 14 http://pl.freeglossary.com/DES http://pl.wikipedia.org/wiki/DES - 21 - 14 Deszyfrowanie polega na zastosowaniu tych samych operacji w odwrotnej kolejności (różni się od szyfrowania tylko wyborem podkluczy, który teraz odbywa się od końca). Z powodu słabości klucza (56 bitów) został w dużej mierze zastąpiony przez inne szyfry: modyfikacje DESa takie jak 3DES czy DESX, a ostatnio przez nowsze i bezpieczniejsze algorytmy jak AES, IDEA, Twofish itd. DES ma 4 słabe i 12 półsłabych kluczy. Szansa na wylosowanie takiego wynosi 4 12 2.22 10 16 , czyli nie wpływa w istotny sposób na siłę szyfru. 56 2 DESX DESX to prosta modyfikacja DESa: blok danych poddajemy funkcji XOR z pierwszym kluczem (64 bitowym) blok szyfrujemy za pomocą DES-a drugim kluczem (56 bitowym) blok danych poddajemy funkcji XOR z trzecim kluczem (64 bitowym) Klucz ma nietypowy rozmiar 184 bitów (64+56+64). DESX jest co najmniej tak samo bezpieczny jak DES na wszystkie możliwe ataki, a na niektóre wydaje się być znacznie bardziej odporny. W szczególności klucz jest już na tyle duży, że sprawdzenie wszystkich kluczy jest niepraktyczne. DESX jest też bardzo szybki (potrzeba tylko dwóch 64-bitowych XORów na blok), w przeciwieństwie do innych modyfikacji DESa takich jak 3DES (który potraja czas wykonywania).15 IDEA IDEA (International Data Encryption Algorithm) to symetryczny szyfr blokowy operujący na 64-bitowych blokach wiadomości i mający 128-bitowy klucz. IDEA używa operacji z 3 światów na 16-bitowych liczbach: XOR Dodawanie modulo 216 Mnożenie modulo 216 + 1 (które jest liczbą pierwszą), przy czym liczba 0 jest traktowana jako 216. IDEA była używana we wczesnych wersjach PGP. 15 http://ochrona.bajo.pl/szyfrprog.php - 22 - IDEA jest objęta patentem w USA, i jest dostępna do darmowego użytku tylko w celach niekomercyjnych. Ze względów patentowych oraz ze względu na powstanie lepszych algorytmów (AES) i postępy w kryptoanalizie IDEA znacznie straciła na popularności, choć nie została nigdy złamana. c. Szyfry strumieniowe Szyfry strumieniowe szyfrują każdy znak tekstu jawnego osobno, generując znak strumienia szyfrującego i przekształcając go na przykład z użyciem funkcji XOR go ze znakiem danych, w związku z czym nie jest konieczne oczekiwanie na cały blok danych, jak w przypadku szyfrów blokowych. Najpopularniejszym współczesnym szyfrem strumieniowym jest RC4, którego stosowanie jest ograniczone ze względu na warunki licencyjne. Inne popularne szyfry strumieniowe to A5/1 i A5/2 stosowane w telefonii komórkowej. Do szyfrów strumieniowych należą też historyczne szyfry polialfabetyczne i monoalfabetyczne. Niektóre z trybów szyfrów blokowych – CFB, OFB, CTR – działają jako szyfry strumieniowe, generując strumień szyfrujący i przekształcając dane za pomocą funkcji XOR. Szyfr strumieniowy (stream cipher) to szyfr symetryczny, który koduje generując potencjalnie nieskończony strumień szyfrujący (keystream), i XOR-ując go z wiadomością: Ci S i M i Odszyfrowywanie zakodowanej wiadomości odbywa się w identyczny sposób – generujemy strumień szyfrujący, i XOR-ujemy go z szyfrogramem: S i Ci S i S i M i M i 16 Istnieją szyfry strumieniowe oparte na generatorach liczb pseudolosowych – jeśli generator jest kryptograficznie silny, to jądro generatora może służyć jako klucz, a generowany strumień pseudolosowych liczb jako strumień szyfrujący. Blum Blum Shub17 jest przykładem generatora, dla którego (co rzadkie w kryptografii) istnieje dowód, że złamanie go jest co najmniej równie trudne jak rozbicie liczby stanowiącej klucz na czynniki. 16 17 http://pl.wikipedia.org/wiki/szyfr_strumieniowy Blum Blum Shub- generator liczb pseudolosowych - 23 - Szyframi strumieniowymi są też tryby CFB, OFB i CTR szyfrów blokowych. Generują one z samego klucza i z wektora inicjalizującego (nie korzystając z danych) strumień szyfrujący, po czym używają funkcji XOR do połączenia go z danymi. Polecamy darmowe prace mgr - serwis z pracami dyplomowymi - prace magisterskie i licencjackie - całkowicie za darmo - 24 - IV. Funkcje mieszające Spośród wszystkich elementarnych procedur kryptograficznych najbardziej uniwersalne są funkcje mieszające. Funkcji takich można użyć do szyfrowania, do potwierdzania tożsamości, a nawet w prostym schemacie podpisu cyfrowego. Funkcja mieszająca pobiera jako dane wejściowe dowolnej długości ciąg bitów i zwraca wynik o stałym rozmiarze. Typowym zastosowaniem funkcji mieszającej są podpisy cyfrowe. Jeśli dana jest wiadomość m, można ją podpisać bezpośrednio. Jednak operacje związane z kluczem publicznym w większości schematów podpisu elektronicznego są zwykle kosztowne obliczeniowo, wobec czego zamiast podpisywać m, stosujemy funkcję mieszającą h i skrót wiadomości h(m). Rozmiar wyniku funkcji h zwykle mieści się w przedziale od 128 do 512 bitów, podczas gdy sama wiadomość m może zawierać tysiące lub nawet miliony bitów. Podpisanie h(m) jest zatem znacznie szybsze od podpisywania całej wiadomości m. Aby taka konstrukcja była bezpieczna, niedopuszczalna jest możliwość skonstruowania dwóch wiadomości m1 i m2, dla których funkcja mieszająca zwróci tę samą wartość. MD5 128-bitowa funkcja mieszająca MD5 została stworzona przez Rona Rivesta. Jest ona rozwinięciem funkcji MD4, dodatkowo zabezpieczonym przed atakami. Podczas obliczania wartości MD5 pierwszy kroki polega na podzieleniu wiadomości na bloki liczące po 512 bitów. Ostatni blok jest dopełniany, przy czym dołącza się do niego również długość wiadomości. MD5 posiada 128-bitową zmienną stanu, podzieloną na cztery słowa po 32 bity każde Funkcja kompresująca h' składa się z czterech tur, podczas których następuje mieszanie bloków wiadomości ze zmienną stanu. Mieszanie to polega na zastosowaniu pewnej kombinacji działań dodawania, XOR, AND, OR i przesunięć słów 32-bitowych.W każdej turze cały blok wiadomości podlega przemieszaniu ze zmienną stanu, więc każde słowo wiadomości jest używane czterokrotnie. Po czterech turach funkcji h' stan wejściowy i wynik są dodawane do siebie, dając wynik h'.18 Taka konstrukcję działań na słowach 32-bitowych da się bardzo wydajnie zaimplementować dla 32-bitowych procesorów. Pierwszym przykładem takiego 18 N. Ferguson, B. Schneider: Kryptografia w praktyce, Wydawnictwo Helion, Gliwice 2004, s. 78 - 25 - rozwiązania była funkcja MD4, obecnie jest ono wspólną cechą wielu realizacji elementarnych operacji kryptograficznych. Jedna z podstawowych właściwości iteracyjnych funkcji mieszających orzeka, że jeżeli funkcja h' jest odporna na kolizje, to funkcja mieszająca h zbudowana na podstawie h' jest także odporna na kolizje. Ostatecznie przecież wszelkie kolizje h mogą mieć miejsce tylko jako kolizje h'. Funkcja MD5 jest problematyczna o tyle, że znane są kolizje jej funkcji h'. Obecnie nie są znane żadne ataki na samą funkcję MD5, ale istnienie kolizji funkcji kompresującej oznacza, że korzystając z MD5, trzeba zachować ostrożność. W większości zastosowań 128-bitowy rozmiar obszaru mieszania MD5 już nie wystarcza. Wykorzystując paradoks urodzinowy19, można znaleźć kolizję MD5 po obliczeniu około 264 wartości funkcji mieszającej, co we współcześnie powstających systemach jest wartością zbyt niską. SHA-1 SHA (ang. Secure Hash Algorithm, bezpieczny algorytm mieszania) został zaprojektowany w NSA i przyjęty jako standard przez NIST. Jego pierwszą wersję nazywano po prostu SHA (obecnie często odwołuje się do niej jako do SHA-0), ale miała ona pewne słabości. NSA je odkryła i poprawiła, zaś udoskonalona wersja została opublikowana przez NIST pod nazwą SHA-1. Jednak natura tych słabości nigdy nie została publicznie ujawniona. Trzy lata później Chabaud i Joux opublikowali informacje o słabościach SHA-0. Te właśnie niedoróbki zostały usunięte w SHA-1. SHA-l jest 160-bitową funkcją mieszającą opartą na MD4. Z uwagi na podobny rodowód, ma i wiele cech wspólnych z MD5, ale jej konstrukcja jest znacznie bardziej konserwatywna. Jest i też dwu lub trzykrotnie wolniejsza od MD5. Tym niemniej jak dotąd nie są znane żadne problemy z bezpieczeństwem SHA-1, więc jest ona powszechnie używana. SHA-l ma 160-bitową zmienną stanu składającą się z pięciu słów 32-bitowych. Tak jak MD5, obliczanie SHA-l przebiega w czterech turach, z których każda składa się z mieszanki elementarnych operacji 32-bitowych. Zamiast przetwarzać czterokrotnie każdy blok wiadomości, SHA-l za pomocą rekurencji liniowej „rozciąga" 16 słów Paradoks urodzinowy- „Ile osób należy wybrać, żeby prawdopodobieństwo, że co najmniej dwie z nich mają urodziny tego samego dnia było większe od jednej drugiej”. Jeśli losowo przyporządkujemy każdemu obiektowi jedną z n etykietek, to żeby prawdopodobieństwo że dwa obiekty będą oznaczone taką samą etykietką było większe od jednej drugiej trzeba zbioru obiektów o liczności rzędu √n. 19 - 26 - z bloku wiadomości do potrzebnych 80 słów. Jest to uogólnienie techniki zastosowanej w MD4. W MD5 każdy bit wiadomości jest w funkcji mieszającej używany czterokrotnie. W SHA-l rekurencja liniowa zapewnia, że każdy bit wiadomości wpłynie na funkcję mieszającą przynajmniej dwanaście razy. Jedyna różnica między SHA-0, a SHA-l polega na uzupełnieniu kroku rekurencji jednobitowym przesunięciem. SHA-256, SHA-384 i SHA-512 Ostatnio NIST20 opublikował projekt standardu, w którym opisuje trzy nowe funkcje mieszające. Funkcje te mają wyniki odpowiednio 256, 384 i 512 bitowe. Zaprojektowano je z myślą o współpracy ze 128-, 192- i 256-bitowymi kluczami AES. Budowa tych funkcji jest bardzo podobna do SHA-l.21 W sytuacji, kiedy SHA-l nie jest w stanie zapewnić wymaganego poziomu bezpieczeństwa, trzeba użyć funkcji mieszającej z dłuższymi danymi wynikowymi. Żadna z opublikowanych dotąd funkcji mieszających z odpowiednio długim wynikiem nie doczekała się szerszej publicznej analizy. Obliczenie SHA-256 trwa znacznie dłużej, niż SHA-l. W przypadku długich wiadomości mieszanie za pomocą SHA-256 zajmuje mniej więcej tyle czasu, co szyfrowanie za pomocą AES lub Twofish, a być może nawet nieco więcej. Funkcja SHA-384 wydaje się bezużyteczna. Jej użycie wymaga tyle pracy co użycie SHA-512, a potem po prostu część bitów się odrzuca. Do tego nie potrzeba odrębnej funkcji, więc można pozostać przy SHA-256 i SHA-512. Polecamy darmowe prace mgr - serwis z pracami dyplomowymi - prace magisterskie i licencjackie - całkowicie za darmo 20 National Institute of Standards and Technology (ang. Narodowy Instytut Standaryzacji i Technologii) -amerykańska agencja federalna spełniająca rolę analogiczną do Polskiego Komitetu Normalizacji. 21 N. Ferguson, B. Schneider: Kryptografia w praktyce, Wydawnictwo Helion, Gliwice 2004, s. 79 - 27 - V. Programy szyfrujące 1. Enigma 2003 final. Program Enigma 2003 Final służy do szyfrowania i deszyfrowania plików. Obsługuje on trzy algorytmy szyfracji: Tablicowanie, Xorowanie i Wybieranie. Program potrafi także zaszyfrować i deszyfrować pliki znajdujące się w danym katalogu. Szyfrowanie danych ma na celu zabezpieczenie ich przed odczytaniem przez niepowołane osoby. Z zaszyfrowanego pliku nie da się odczytać żadnej treści zawartej w dokumencie czy programie. Deszyfracja to proces odwrotny do szyfracji. Ma on na celu odzyskanie danych i umożliwienie ich odczytania. Podczas szyfracji i deszyfracji należy podać klucz. Klucz to ciąg znaków na podstawie którego zostaje zaszyfrowany plik. Nie da się odtworzyć danych bez znajomości klucza jaki był użyty podczas szyfracji. Nazwa programu wzięła się z nazwy niemieckiej maszyny szyfrującej używanej w czasie II Wojny Światowej. Tak wygląda główne okno programu: Szyfrowanie pliku. Aby zaszyfrować plik należy z menu „Plik” wybrać opcję „Szyfruj” plik. Następnie wybrać plik źródłowy tzn. plik wejściowy: - 28 - W następnym okienku należy wybrać miejsce w którym ma zostać zapisany zaszyfrowany plik i nadać mu jakąś nazwę: W tym okienku należy wpisać klucz jakim zostanie zaszyfrowany plik. Klucz będzie później potrzebny do deszyfracji pliku, ponieważ bez niego nie można odszyfrować pliku. Następnie należy potwierdzić klucz: Po potwierdzeniu klucza mały pasek postępu w głównym oknie programu powinien zacząć się przesuwać. Sygnalizować to będzie że program przygotowuje algorytm. Plik zostanie całkowicie zaszyfrowany wtedy gdy najpierw mały a potem duży pasek osiągnie 100%. - 29 - Deszyfrowanie pliku. Aby zdeszyfrować plik należy z menu „Plik” wybrać opcję „Deszyfruj plik”. W pierwszym okienku należy wybrać wcześniej zaszyfrowany plik: W następnym okienku należy wybrać miejsce w którym zostanie zapisany zdekodowany plik i nadać mu nazwę. Rozszerzenie pliku zostanie odtworzone i nadane mu automatycznie: - 30 - W okienku „Klucz” należy wprowadzić klucz jakim został zaszyfrowany plik: Następnie należy potwierdzić klucz: Następnie mały pasek postępu w głównym oknie programu powinien zacząć się przesuwać. Sygnalizować to będzie że program przygotowuje algorytm. Plik zostanie całkowicie zdeszyfrowany wtedy gdy najpierw mały a potem duży górny pasek osiągnie 100%. Szyfrowanie katalogu plików Aby zaszyfrować pliki znajdujące się w danym katalogu należy z menu „Zaawansowane” wybrać opcję „Szyfruj katalog plików”. W nowym okienku należy wybrać katalog w którym znajdują się pliki przeznaczone do szyfracji: - 31 - W następnym okienku należy wybrać katalog do którego mają być zapisane zaszyfrowane pliki, lub katalog w którym chcemy utworzyć nowy katalog do którego będą zapisane zaszyfrowane pliki: Dalej wykonujemy te same kroki co przy szyfrowaniu pliku: wpisujemy klucz i potwierdzamy go. Deszyfrowanie katalogu plików Aby zdeszyfrować pliki znajdujące się w danym katalogu należy z menu „Zaawansowane” wybrać opcję „Deszyfruj katalog plików”. W nowym okienku należy wybrać katalog w którym znajdują się pliki przeznaczone do deszyfracji: W następnym okienku należy wybrać katalog do którego mają być zapisane zdeszyfrowane pliki, lub katalog w którym chcemy utworzyć nowy katalog do którego będą zapisane zdeszyfrowane pliki. - 32 - Dalej wykonujemy te same kroki co przy deszyfrowaniu pliku: wpisujemy klucz i potwierdzamy go. Rodzaje algorytmów zastosowanych w Enigma Final 2003 Program umożliwia (de)szyfrowanie w trzech algorytmach i tylko deszyfrację w jednym: -Tablicowanie -Xorowanie -Wybieranie -Enigma v2.1 Pierwszy z nich (Tablicowanie) jest algorytmem opartym na generowaniu przez program na podstawie klucza par znaków tzn. znak niezaszyfrowany-znak zaszyfrowany. Takich par jest w sumie 255 ponieważ jest 255 znaków ASCII. Przy każdym zakodowaniu znaku pary są mieszane. Jest to algorytm wolniejszy ale bezpieczniejszy. Drugi algorytm (Xorowanie) zbliżony jest do algorytmu typu one-time pad. Każdy znak jest Xorowany z każdorazowo losowo wybranym kluczem. Jest to algorytm szybszy ale mniej bezpieczny Algorytm Wybieranie jest algorytmem dość powolnym i zaleca się jego stosowanie przy szyfrowaniu małych plików. Posiada on opcję (która może ale nie musi - 33 - być włączona) szyfrowania na podstawie dwóch kluczy. Dodatkowy klucz pobierany jest podczas (de)szyfrowania Algorytm Enigma v2.1 służy tylko do deszyfracji plików zaszyfrowanych starszą wersją programu (v2.1).Został on zaimplementowany w programie po to aby utrzymać zgodność nowszej wersji programu z starszą. Tak wygląda Menu algorytmów: Okno opcji w Enigma Final 2003 Aby wywołać okno opcji należy z menu „Zaawansowane” wybrać opcję „Opcje Algorytm domyślny”. Algorytm domyślny to algorytm, który będzie używany podczas szyfrowania pliku wywołanego z menu kontekstowego. -Język Użytkownik programu może wybrać język w jakim program będzie wyświetlał napisy. Na razie można wybrać język angielski lub polski .Po dokonaniu wyboru należy nacisnąć przycisk „Zapisz”. Pokaże się okienko dialogowe: Jeżeli naciśniemy „Tak” program zostanie zakończony i uruchomiony ponownie. Zmiana języka będzie widoczna. Jeżeli wybierzemy „Nie” program zapisze nowe - 34 - ustawienie ale nie zostanie ponownie uruchomiony. Język zmieni się dopiero podczas następnego uruchomienia. Jeżeli wybierzemy „Anuluj” program nie zapisze nowego ustawienia i nie zostanie ponownie uruchomiony. -Opcje dodatkowe Używaj siły szyfrowania jako dodatkowego klucza - ta opcja pozwala na włączenie drugiego klucza (dotyczy algorytmu Wybieranie) Kasowanie plików źródłowych - to opcja która pozwala na usuwanie plików źródłowych tzn. tych które są deszyfrowane lub szyfrowane. Opcja ta zostaje automatycznie odznaczona po (de)szyfracji pliku lub katalogu plików. Nie pokazuj ostrzeżeń o sile szyfrowania - Można także wyłączyć pokazywanie okienek przypominających o ustawieniu poprawnej wartości drugiego klucza. Są one pokazywane tylko podczas (de)szyfracji algorytmem Wybieranie. Nie używaj animacji podczas startu - Można wyłączyć animację (animacja działa tylko pod systemami Windows 2000/XP i wyższe) głównego okna programu podczas startu. Standartowo opcja ta jest włączona, czyli animacja jest wyłączona. Okno opcji: - 35 - 2. Data Encryption Toolkit Szyfrowanie danych za pomocą programu Data Encryption Toolkit v1.12. Szyfrowanie danych za pomocą Data Encryption Toolkit zaczynamy wybierając zakładkę „Encrypt” (Szyfruj), następnie zaznaczamy „Just encrypt some filies” (gdy chcemy zaszyfrować pojedyncze pliki) lub „Encrypt folder” (gdy szyfrujemy cały folder plików). W polu „Source to encrypt” wybieramy lokalizację pliku do zaszyfrowania za pomocą przycisku . Pola „Password” i „Confirm” służą do wprowadzenia i potwierdzenia wymyślonego hasła. Na koniec z rozwijalnej listy wybieramy algorytm szyfrowania („Select encryption algorithm”): Mamy do wyboru pięć algorytmów szyfrowania: Blowfish- algorytm 448 bitowy. Gost- algorytm 256 bitowy. Twofish- szybki algorytm 256 bitowy. Cast 128- algorytm 128 bitowy. Des- wychodzący z użycia algorytm 64 bitowy. Po wybraniu algorytmu wybieramy przycisk „Encrypt” kończący szyfrowanie pliku. - 36 - Deszyfrowanie danych za pomocą programu Data Encryption Topolkit v.1.12. Deszyfrowanie danych za pomocą Data Encryption Toolkit zaczynamy podobnie jak szyfrowanie tylko wybierając zakładkę „Decrypt” (Odszyfruj). Lokalizujemy plik który chcemy odszyfrować, decrypt” przycisk naciskając w polu „File to , a następnie wyszukujemy plik. W polu „Password” wpisujemy hasło podane przez nas podczas szyfracji plik lub katalogu. Finalizując naciskamy przycisk „Decrypt” kończący proces deszyfracji. Dodatkowe opcje programu Data Encryption Toolkit v1.12. Zakładka „File operations” służy do ustawiania dodatkowych opcji programu. Program posiada opcje „Wipe” czyli czyszczenia wolnego miejsca na wybranym dysku, dającą nam możliwość nieodwracalnego usunięcia skasowanego pliku. Prościej mówiąc kiedy usuwa się pliki to one nie są w 100% usunięte i mogą być przywrócone przez specjalne programy jak np. Norton Unerase. Po zastosowaniu opcji „Wipe” procedura zdrowiejąca skasowanych plików jest całkowicie niemożliwa. - 37 - W opcjach programu Data Encryption Toolkit można także ustawić: Opcje usuwania pliku źródłowego po uprzednim jego zaszyfrowaniu, zaznaczając „Delete original file(s) after encryption”. Usuwanie pliku zaszyfrowanego po uprzednim odszyfrowaniu, zaznaczając opcję „Delete encrypted file after decryption”. Kompresowania (spakowania) zaszyfrowanego pliku („Compress data before encryption”), ustawiając poziom kompresowania („Compression level”) od 0 do 9. Istnieje także możliwość zmiany hasła zastosowanego podczas wcześniejszego szyfrowania pliku („Change password”). Wybieramy lokalizację pliku zaszyfrowanego („Encrypted file”) przyciskiem , potem wprowadzamy stare hasło („Old password”), następnie w polach „New password” i „Confirm” wprowadzamy nowe hasło. - 38 - 3. CHEOPS wersja „A” CHEOPS występuje w wersji A, B, C i jest zarówno nazwą programu jak i nazwą algorytmu szyfrującego. Algorytm CHEOPS jest oparty na osnowie algorytmu LUCIFER, którego słabsza wersja (wieść głosi, że osłabiona na życzenie Departamentu Stanu USA) to znany z zastosowań handlowych algorytm DES. W stosunku do oryginalnego LUCIFERA jest jednak dodatkowo wzmocniony przez szyfrowanie wstępne za pomocą hasła użytkownika oraz dodatkowe bloki postawieniowo-permutacyjne i klucze wewnętrzne. Algorytm w wersji A jest słabszy niż wersji B choć znacznie szybszy. Może być przydatny do wielu pomocniczych zastosowań. CHEOPS w wersji B natomiast jest programem komercyjnym. Stanowi on unikatowe rozwiązanie w zakresie bezpieczeństwa danych – każdy egzemplarz programu jest unikatowy i niepowtarzalny, realizowany na konkretne zamówienie końcowego użytkownika. Poszczególne egzemplarze programu różnią się między sobą zarówno szczegółami algorytmu szyfrowania (porządek początkowych bloków permutacyjnych) jak i unikatowym kluczem wewnętrznym. Do rozszyfrowania zbioru zaszyfrowanego takim programem niezbędna jest nie tylko znajomość hasła ale i konkretny egzemplarz programu! Kod źródłowy każdego programu w tej wersji jest niszczony natychmiast po wygenerowaniu kodu wynikowego. Takie rozwiązanie gwarantuje maksimum bezpieczeństwa, gdyż jest zbliżone ideą do znanych z historii szyfrów jednorazowych, praktycznie niemożliwych do złamania. O ilości stanowisk, na których zostanie zainstalowany dany egzemplarz wersji B decyduje użytkownik. CHEOPS w wersji C jest połączeniem wersji B z elementami zapewniającymi bezpieczeństwo komunikacji wewnątrz sieci, także realizowanej za pośrednictwem Internetu. Umożliwia szyfrowanie poczty e-mail, przesyłanych danych a także posiada moduł komunikatora pozwalający na szyfrowaną komunikację w czasie rzeczywistym. Zestaw programów w tej wersji pozwala na wydzielenie z obszaru Internetu zbioru rozproszonych stanowisk, które będą mogły w sposób bezpieczny komunikować się ze sobą. Program pozwala na zaprogramowanie na określony czas szyfrowania określonych plików. - 39 - Program jest wykonywany wyłącznie w wersji dostosowanej do potrzeb końcowego użytkownika – jego końcowa konfiguracja musi być efektem analizy jego potrzeb. CHEOPS w wersji A jest programem łatwym w obsłudze, nieomal intuicyjnym. Wystarczy w panelu zbiorów wskazać zbiór do zaszyfrowania, wprowadzić hasło (co najmniej 24 znaki nie licząc spacji) i uruchomić szyfrowanie. Każdy zaszyfrowany zbiór ma rozszerzenie *.chp. Jest jednak kilka aspektów pracy programu, na które warto zwrócić uwagę : - hasło ze względów bezpieczeństwa nie jest nigdzie zapamiętywane. Przy odszyfrowaniu pliku nie jest sprawdzana poprawność hasło – jeśli hasło będzie się różnić od tego, które zostało podane przy szyfrowaniu deszyfracja zostanie podjęta lecz wynik nie będzie prawidłowy. W wersji B i C na wyraźne życzenie użytkownika możemy dołączyć moduł sprawdzania poprawności hasła. Należy jednak pamiętać, że takie rozwiązanie jest mniej bezpieczne. Pole edycyjne hasła jest zawsze podawane dużymi literami. - Opcje Zbiorów mają przyjęte wstępnie ustawienie na opcję „Zachowaj zbiór źródłowy”. Takie rozwiązanie nie jest jednak bezpieczne – po co szyfrować zbiór i zachowywać jednocześnie jego formę jawną.? Zaznaczenie opcji „Usuń zbiór źródłowy” spowoduje skasowanie zbioru źródłowego natychmiast po zapisaniu jego postaci zaszyfrowanej. To rozwiązanie też nie jest zbyt bezpieczne – taki zbiór można łatwo odzyskać. Naprawdę bezpieczne jest zaznaczenie opcji „Usuń zbiór źródłowy po zamazaniu”. W takim przypadku natychmiast po zaszyfrowaniu zbiór źródłowy zostanie zapisany nieistotną treścią a następnie (pod pierwotną nazwą!) kasowany. Ktoś, kto podejmie próbę odzyskania takiego zbioru nie odzyska jego pierwotnej postaci. - Opcje hasła mają przyjęte wstępnie ustawienie na opcję „Hasło tekstem jawnym”. Tak opcja jest najwygodniejsza i chroni przed pomyłkami. Użycie opcji „Hasło pod maską” spowoduje, że podczas wpisywania hasła jego zamiast liter pojawiać się będą gwiazdki „*”. Opcja ta jest przeznaczona dla doświadczonych użytkowników i tak naprawdę przydatna tylko w szczególnych sytuacjach. - 40 - Okno programu Cheops wersja „A” Pasek wyboru dysku na którym znajduje się plik szyfrowany lub deszyfrowany wiersz hasła Otwórz wskazany zbiór. Usuń wskazany zbiór po jego zamazaniu. Usuń wskazany zbiór. Kopiuj wskazany zbiór. - 41 - Przycisk szyfrowania i odszyfrowania Kompresuj zbiór do formatu *.zip. Kompresuj zbiór do formatu *.cab. Rozpakuj zbiór w formacie *.zip. Rozpakuj zbiór w formacie *.cab. 4. Top Secret Next Generation „Top Secret Next Generation” jest programem do zabezpieczania i szyfrowania danych przechowywanych w komputerach opartych na systemach Windows 98SE / ME / NT4.0 / XP. Program działa na zasadzie Wirtualnego sejfu. Szyfrowanie danych i aplikacji przebiega w „locie” podczas kopiowania naszych plików do sejfu i jest niezauważalne dla użytkownika. Dostęp do sejfów zabezpieczony jest hasłem. Budowa programu oparta jest o trzy moduły: „Użytkownicy i sejfy”, „Zarządzanie kluczami”, oraz „E-mail”. Umożliwiające w łatwy i przejrzysty sposób wykorzystanie wszystkich dostępnych funkcji programu. „Użytkownicy i sejfy”- Moduł umożliwiający założenie i konfigurację sejfów na lokalnych dyskach twardych komputera. Sejfy, są to obszary dysku zarezerwowane dla programu TopSecret Next Generation, które podczas zakładania (tworzenia), są odpowiednio szyfrowane i zabezpieczane przed dostępem niepowołanych osób. Dzięki specjalnym mechanizmom, zarówno sejfy jak i dane w nich zawarte, mogą być zabezpieczone przed atakami groźnych robaków i wirusów komputerowych. Sejfy traktowane są jako dodatkowe dyski (np. z literą E:\, P:\ etc.) widziane w Eksploratorze Windows, którym nadawane są dowolne nazwy (zgodne z zasadami systemu Windows) i przyporządkowywane odpowiednie litery. Każdy założony Sejf, może mieć wielkość do 4 GB. Program umożliwia pracę z wieloma użytkownikami, z których każdy indywidualnie może zakładać dowolną liczbę zaszyfrowanych sejfów. Sejfy te mogą być także dowolnie otwierane i zamykane w tym samym czasie przez wszystkich stworzonych użytkowników. W sejfach mogą być instalowane i umieszczane różnego rodzaju programy, grafiki, filmy, bazy danych i inne pliki, dzięki temu dostęp do nich możliwy jest dopiero po zalogowaniu się do programu i otwarciu odpowiedniego sejfu. Ilość przechowywanych danych w jednym sejfie ograniczona jest do 4 GB, natomiast ilość tworzonych sejfów ogranicza się tylko potrzebami użytkownika, jak również rozmiarem dysku twardego. „Zarządzanie kluczami”- Moduł, dzięki któremu użytkownik tworzy klucze, które w przyszłości wykorzystywane będą do szyfrowania poczty elektronicznej. Tworzony klucz jest unikalnym identyfikatorem użytkownika, który wysyłany pod dowolny adres email, umożliwia jego właścicielowi otrzymywanie i odszyfrowywanie - 42 - wiadomości pocztowych wysłanych z poziomu programu TS NxG (przez jego posiadacza). Klucze mogą być tworzone odrębnie dla wszystkich profili, które zostały utworzone w części „Użytkownicy i sejfy". Dzięki czemu, każdy z nich, ma możliwość wysyłania wiadomości tak zabezpieczonych, że inny użytkownik programu nie będzie mógł ich podglądać. Moduł ten umożliwia także zarządzanie kluczami otrzymanymi od innych użytkowników sieci internetowej, dzięki którym będziemy mieli możliwość odczytywania wysłanych przez nich wiadomości. Wszystkie klucze, dodatkowo są zabezpieczone hasłem, aby przesyłając je pocztą elektroniczną, wyeliminować zagrożenie ich przechwycenia i wykorzystywania przez niepowołane osoby. „E-mail”- Moduł będący edytorem poczty elektronicznej, umożliwiający redagowanie i odczytywanie wiadomości pocztowych. Wysyłanie wiadomości odbywać może się tylko w obrębie osób, które otrzymały od nas pakiet kluczy pocztowych, lub od których takowy otrzymaliśmy i jest on zapisany w module „Zarządzanie kluczami". Użytkownicy mają możliwość zastosowania w zakresie podstawowym funkcje formatowania tekstu, jak również mogą wykonywać operacje kopiowania, wklejania a także drukowania nie tylko zaznaczonych fragmentów, ale także całych wiadomości. Wszystkie wiadomości, jak również załączniki do nich są szyfrowane i tzw. bezpieczną pocztą wysyłane do odbiorcy. Odbierane wiadomości email podczas zapisu na dysk twardy są dodatkowo szyfrowane unikalnym kluczem przypisanym do konkretnego komputera. Uniemożliwia to kradzież naszej poczty i próbę odczytania na innym komputerze nawet w przypadku posiadania odpowiednich kluczy. Program TopSecret Next Generation (TS NxG) jest programem dedykowanym dla średnio zaawansowanego użytkownika komputera, przeznaczony dla zastosowań domowych, w małych i średnich firmach, administracji państwowej oraz państwowych instytucjach finansowych i gospodarczych. Pierwsze uruchomienie programu Top Secret Next Generation. Podczas pierwszego uruchomienia programu Top Secret Next Generation zostanie wyświetlona informacja o wygenerowaniu klucza . Klucz ten jest generowany - 43 - losowo i przypisywany do konkretnego komputera. Bez jego znajomości odszyfrowanie sejfów jest nie możliwe. Wybieramy rodzaj dysku na którym ma być zapisany klucz aplikacji: Najwygodniejsze jest zapisanie klucza aplikacji na dyskietce, jeśli tak zrobimy program wyświetli nam komunikat żebyśmy włożyli dyskietkę do napędu w celu zapisania klucza: Wybieramy „OK., a następnie wpisujemy i potwierdzamy hasło zabezpieczające przed użyciem naszego klucza gdyby dostał się w „niepowołane ręce”. Hasło powinno zawierać od 4 do 15 znaków, w tym jedną liczbę. - 44 - Następuje zapis klucza na dyskietce: Ważne jest, aby dyskietka, na której został zapisany klucz aplikacji, przechowywana była zgodnie z zasadami bezpieczeństwa dyskietek. Tworzenie nowego użytkownika Tworzenie przynajmniej jednego użytkownika, jest niezbędne do tego, aby program mógł poprawnie spełniać swoje funkcje. Uruchomienie Asystenta tworzenia użytkownika następuje automatycznie podczas pierwszego uruchomienia programu, lub za pomocą kliknięcia ikony . W otwartym oknie definiujemy nazwę użytkownika np. Tomek, następnie w polu „Hasło" wprowadzamy hasło, dzięki któremu użytkownik będzie mógł logować się do programu. Ze względów bezpieczeństwa hasło musi składać się z minimum ośmiu znaków, pośród których musi wystąpić przynajmniej jedna duża litera, jedna mała litera oraz jedna cyfra. Tak skonstruowane hasło ponownie wpisujemy w polu „Potwierdź hasło". Jeżeli zostało potwierdzone poprawnie, to po wybraniu przycisku „Utwórz" dane zostają zatwierdzone i Asystent rozpocznie procedurę tworzenia nowego sejfu wyświetlając okno, pytające o tworzenie sejfu. - 45 - Jeżeli hasło wprowadzone w polu „Potwierdź hasło" jest inne niż w polu „Hasło", wówczas dane nie zostają potwierdzone, o czym poinformuje nas okno z komunikatem: MODUŁ UŻYTKOWNICY I SEJFY Program TopSecret Tworzenie sejfu. Wybieramy menu „Użytkownicy i przycisk dodaj sejf sejfy”, następnie w pasku narzędzi naciskamy w celu utworzenia sejfu, pojawia nam się okienko potwierdzające naszą decyzję: Wybieramy przycisk „Tak”. Ustawiamy podstawowe parametry sejfu, takie jak: wybór dysku na którym zostanie utworzony sejf, wielkość sejfu- od 1 MB do 4 GB. i etykietę sejfu. Potem naciskamy przycisk „Dalej” . - 46 - Pojawia się okno tworzenia unikalnego klucza sejfu oraz wyboru algorytmy szyfrowania. Wykonujemy przypadkowe ruchy myszką w celu wygenerowania unikalnego klucza, oraz wciskamy przypadkowe klawisze klawiatury które zostaną złączone z wygenerowanym kluczem w celu zapewnienia niepowtarzalności klucza. Pasek wyboru algorytmu szyfrującego Następnie wybieramy algorytm szyfrowania, mamy do wyboru trzy algorytmy: TwoFish- algorytm blokowy udoskonalona wersja algorytmu Blow Fish. Stworzony przez B. Schneier’a, J. Kellsey’a, D. Whiting’a, D. Wagner’a, C. Hall i N. Ferguson’a. AES (Rijndael)- najszybszy algorytm blokowy, stworzony przez J. Daeman’a i V. Rijman’a. Serpent- wolniejszy od Rijandel’a ale bezpieczniejszy algorytm blokowy stworzony przez: R. Andersen’a, E. Biham’a i L. Knudsen’a. - 47 - Po wybraniu odpowiadającego nam algorytmu naciskamy „Dalej” a potem „Utwórz”. Wybieramy „Tak” w celu utworzenia sejfu. Program tworzy sejf. Czy otworzyć utworzony sejf naciskamy „Tak” - 48 - Okno programu po utworzeniu i otwarciu sejfu. Otwieranie sejfu Otwieranie sejfu polega na zaznaczeniu interesującego elementu i kliknięciu ikonki „Otwórz sejf" znajdującej się na pasku narzędzi, lub wybraniu komendy z menu kontekstowego. Efektem jest pojawienie się w Eksploratorze Windows, dodatkowego dysku o nazwie wcześniej przez nas zdefiniowanej. Sejf programu Top Secret Next Generation Od tej chwili na dodatkowym dysku (sejfie), możemy umieszczać dowolnie wybrane pliki lub instalować programy. - 49 - Sejf jest dostępny dla wszystkich użytkowników komputera do momentu, aż nie zostanie zamknięty, lub komputer nie zostanie zrestartowany. Wylogowanie użytkownika z programu nie powoduje zamknięcia wcześniej otwartych sejfów. W przypadku chęci otwarcia większej ilości sejfów, zaznaczamy wybrane sejfy (dyski) trzymając lewy klawisz myszy lub klikamy wciskając jednocześnie klawisz „Ctrl”. W obecnej wersji programu, liczba jednocześnie otwartych, w danym momencie sejfów, dla wszystkich użytkowników ograniczona jest do czterech. Oznacza to, że jeżeli w programie utworzonych jest dwóch użytkowników i każdy z nich ma utworzonych kilka sejfów, to w przypadku gdy pierwszy z nich pozostawi otwarte w systemie trzy sejfy, drugi będzie mógł otworzyć tylko jeden. Zamykanie sejfu Zamykanie sejfów realizowane może być w oknie głównym modułu „Użytkownicy i sejfy" za pomocą zaznaczenia sejfu do zamknięcia i wybraniu ikony „Zamknij sejf" z paska narzędzi programu lub z menu kontekstowego, znajdującego się pod prawym klawiszem myszki. Sejf można także zamknąć bez potrzeby logowania użytkownika do programu TopSecret NxG, uruchamiamy Eksplorator Windows i klikając na wybranym dysku (sejfie) prawym klawiszem myszy wybierając funkcję „Zamknij sejf". MODUŁ ZARZĄDZANIE KLUCZAMI Okno modułu „Zarządzanie kluczami” - 50 - Tworzenie kluczy pocztowych. W celu utworzeni kluczy pocztowych w oknie głównym programu klikamy na ikonę „Utwórz klucz”. Potem wypełniamy informacje o swoim koncie e-mail: Po wypełnieniu i zatwierdzeniu danych program zaczyna tworzyć klucze pocztowe. Podczas tworzenia klucza trzeba wykonywać ruchy myszą i naciskać przypadkowe klawisze na klawiaturze, gdyż są one łączone z tworzonym kluczem. Następnie zapisujemy klucz w określonej przez nas lokalizacji, oraz podajemy hasło chroniące przed nieautoryzowanym użyciem naszego klucza: Przycisk „OK.” kończy proces tworzenia klucza pocztowego. Wysyłanie kluczy pocztowych. Kolejnym etapem wysyłania jest wskazanie odbiorcy, który ma otrzymać nasz klucz publiczny. W tym celu należy kliknąć przycisk znajdujący się w oknie „Wyślij klucz" obok pola „Wyślij do" i z książki adresowej wskazać wybrany (lub wybrane) adres pocztowy. Jeżeli w książce adresowej nie są zapisane żadne adresy pocztowe, należy je wcześniej zdefiniować. Opis wprowadzania adresów do książki adresowej znajduje się w dokumentacji systemu operacyjnego Windows, zainstalowanego na komputerze. W celu wyeliminowania nieautoryzowanego dostępu do klucza, dodatkowo - 51 - zabezpieczamy go wprowadzając dowolne hasło. Po ponownym potwierdzeniu wprowadzonego hasła wybieramy przycisk „Wyślij". Jeżeli chcemy zrezygnować z wysyłania pakietu kluczu pocztowych wybieramy przycisk „Anuluj". Po poprawnym wysłaniu publicznego klucza pocztowego, informacja o tym do kogo został wysłany, pojawia się w oknie głównym modułu „Zarządzanie kluczami" w sekcji „Twój klucz publiczny został wysłany do:". Aby adresat mógł poprawnie wczytać klucze, należy podać mu hasło, którym zabezpieczyliśmy przesyłany pakiet. Przekazanie hasła, może odbyć się przy pomocy wysłania oddzielnej wiadomości email (najlepiej na inne konto pocztowe), telefonicznie lub za pomocą wiadomości SMS. Jeśli użytkownik, nie otrzymał żadnych kluczy publicznych od innego posiadacza programu TS NxG, to w odpowiedniej sekcji okna głównego pojawia się komunikat „Nie otrzymałeś żadnych kluczy". MODUŁ E-MAIL Wysyłanie zaszyfrowanej poczty elektronicznej . Okno modułu e-mail: Chcąc przesłać zaszyfrowaną wiadomość wpisujemy w pole „Do:” adres e-mail odbiorcy poczty, nadajemy temat naszemu listowi (Pole „Temat:”) oraz wpisujemy tekst który chcemy przesłać. Następnie naciskamy przycisk - 52 - , gdy chcemy dodać załącznik do naszego listu klikamy , oraz ustalamy lokalizację pliku załącznika. Odczytywanie zaszyfrowanej poczty elektronicznej . Odczytanie wiadomości zaszyfrowanej zaczynamy przyciskiem , następnie lokalizujemy zapisaną wcześniej wiadomość: Dalej tylko naciskamy przycisk i możemy już odczytać otrzymaną wiadomość. DODATKOWE NARZĘDZIA PROGRAMU TSNxG Niszczarka plików Program ten wypełnia lukę bezpieczeństwa, zostawioną przez wiele programów szyfrujących. Nawet usunięte dane komputerowe, mogą dużo powiedzieć o użytkownikach sejfów, a właśnie środowisko Windows, umożliwia bezproblemowe odzyskiwanie usuniętych danych. Przed usunięciem danych z komputera z wykorzystaniem funkcji Niszczarki, należy się dobrze zastanowić, czy nie będą one już nigdy potrzebne. Niszczarkę można używać do usuwania wszystkich rodzajów plików znajdujących się na dysku twardym komputera. Usuwanie danych odbywa się poprzez przeciągnięcie zaznaczonego pliku na katalog lub ikonę Niszczarki na Pulpicie. Program poprosi nas o potwierdzenie usunięcia wybranego pliku, po czym przystąpi do bezpowrotnego usunięcia pliku. - 53 - Blokada ekranu TopSecret NxG kładzie nacisk na komfort obsługi i nieustającą ochronę danych. Jeżeli nie chcemy zamykać sejfów na czas krótkiej nieobecności przy naszym komputerze, program oferuje nam doskonałe narzędzie jakim jest Zabezpieczenie Ekranu. Konfiguracja funkcji dotyczących tego narzędzia możliwa jest z poziomu programu TS NxG. Wybierając (Klikając) w menu programu Narzędzia / Opcje i wybierając zakładkę „Zabezpieczenie ekranu", możemy moduł ten uruchomić, jak również zdefiniować, który może wyłączyć blokadę monitora i po jakim czasie bezczynności ekran zostanie zablokowany. Odblokowanie monitora realizowane jest poprzez podanie prawidłowego hasła, w oknie ukazującym się po wciśnięciu dowolnego klawisza. - 54 - 5. PGP 8.2 W programie PGP używane są pary kluczy: jeden służy do zaszyfrowania listu (klucz publiczny), drugi do odszyfrowania (klucz prywatny). Klucz publiczny musi być udostępniony nadawcy. Można go bezpiecznie przesłać Internetem. Zastosowanie odpowiedniego algorytmu powoduje, że znajomość klucza szyfrowania nie wystarczy do deszyfracji listu ani do odtworzenia klucza prywatnego. Klucz deszyfrowania jest generowany na podstawie pary dużych liczb pierwszych. Klucz szyfrowania jest wyliczany na podstawie iloczynu dużych liczb pierwszych. Znajomość iloczynu dwóch liczb pierwszych wystarcza do złamania kodu. Jak zwykle diabeł tkwi w szczegółach. Dla odpowiednio dużych liczb (rzędu 10 do potęgi 100) istnieje bardzo dużo kombinacji liczb pierwszych. Zastosowany w PGP algorytm szyfrowania kluczem publicznym nosi nazwę RSA. Nazwa algorytmu jest skrótem pochodzącym od pierwszych liter nazwisk jego twórców: Rivest, Shamir, Adleman. RSA jest uważany za bezpieczny, gdy używa się odpowiednio długich kluczy. W chwili obecnej uważa się, że stosunkowo bezpieczne są klucze o długości nie mniejszej niż 768 znaków. Bardziej bezpiecznymi są jednak klucze o długości nie mniejszej niż 1024 znaki.22 Tworzenie kluczy szyfrujących w programie PGP Tworzenie klucza zaczynamy wchodząc „Menu Start – Programy – PGP – PGPkeys” P. Czarny, PGP Szyfrowanie informacji - ćwiczenia praktyczne, Wydawnictwo Helion, Gliwice 2002, s.9 22 - 55 - lub klikając myszą na symbol kłódki znajdujący się na pasku zadań i wybierając PGPkeys. Po wykonaniu powyższej czynności otwiera nam się Moduł zarządzania kluczami: Z którego wybieramy przycisk w celu uruchomienia kreatora dodawania kluczy: - 56 - Po pojawieniu się kreatora gdy naciśniemy przycisk „Dalej”, kreator przypisze nam ustawienia domyślne klucza. Sami musimy wpisać tylko swoją nazwę i adres e-mail. Jeżeli nie chcemy by tak się stało wybieramy przycisk „Expert”, wtedy pokazuje nam się okno: W polu „Key type:” wybieramy algorytm szyfrujący który ma być użyty do utworzenia naszego klucza, mamy do wyboru trzy algorytmy szyfrujące: Pole „Key size:” służy nam do ustalenia rozmiaru klucza, którego wielkość musi się zawierać od 1024 do 4096 bitów. - 57 - Ostatnim polem które musimy wypełnić jest „Key expiration:” które określa nam ważność klucza. Możemy wybrać opcję „never”: wtedy jego ważność będzie nieograniczona lub wybrać odpowiadającą nam datę ważności: Po wypełnieniu naszych danych pojawia nam się okno w którym trzeba wpisać i potwierdzić wymyślone przez nas hasło: Po wpisaniu i potwierdzeniu naszego hasła program tworzy klucz, którego wykonanie będzie potwierdzone raportem: W tym momencie klucze mamy już utworzone. Teraz okno Modułu tworzącego klucze wygląda następująco: - 58 - Eksportowanie kluczy. Eksportować możemy zarówno klucz publiczny (Public key), jak i prywatny (Private key). Eksportowanie klucza publicznego zaczynamy zaznaczając kursorem myszy parę kluczy, które chcemy eksportować: Następnie wybieramy z menu polecenia: „Keys”, „Export…”, po wybraniu tych poleceń pojawia nam się okno eksportu kluczy: - 59 - W którym ustalamy na jaki nośnik klucz ma być przesłany (np. Stacja dyskietek), oraz odhaczamy opcję „Include 6.0 Extensision” (wybór klucza publicznego), i „Zapisz”. Eksportowanie klucza prywatnego (Private key) robimy podobnie jak publicznego, tylko odhaczamy opcję: „Include Private Key(s).: Eksportować klucze możemy też przez edycję pliku klucza, a następnie wysłanie wyświetlonego tekstu poczta e-mail. Importowanie kluczy. Klucze PGP można też importować. W oknie „PGP keys” wybieramy plecenia „Keys” i „Import…”: Wyświetla nam się okno lokalizacji klucza w którym odnajdujemy nasz klucz, oraz potwierdzamy wybór podwójnym kliknięciem. Następnie pojawia się okno „Select key(s), w którym zaznaczamy kursorem myszy klucz przez i klikamy przycisk „Import”: - 60 - nas zlokalizowany Klucz przez nas importowany pojawi się w oknie głównym PGP. importować klucze możemy drugim sposobem, podobnie jak eksportować przez edycję pliku klucza i wysłanie wyświetlonego tekstu poczta e-mail. Szyfrowanie plików za pomocą PGP Szyfrowanie pliku programem PGP zaczynamy klikając prawym klawiszem myszy na pliku do zaszyfrowania. Z menu podręcznego wybieramy „PGP” i „Encrypt”: Pojawia nam się okno „PGPshell- key selection dialog”: - 61 - Dodatkowe opcje do wyboru podczas szyfrowania w PGP Test Oulput Należy zaznaczyć tą opcję gdy chcemy wysłać z niektórych aplikacji pliki jako załączniki do listów elektronicznych, wtedy plik zostanie zapisany jako tekst ASCII. Czasami jest to niezbędne, aby wysłać plik binarny za pomocą starych programów pocztowych. Wybranie tej opcji zwiększa rozmiary zakodowanego pliku o około 30%. Wipe Original Należy zaznaczyć to pole, aby usunąć oryginalny dokument i na jego miejscu zapisać inną sekwencję znaków. Secure Viewer Wybranie test opcji powoduje, że tekst jest zabezpieczony przed atakiem typu TEMPEST. Dane są wyświetlane przy wykorzystaniu specjalnych czcionek, niemożliwych do odczytania przez urządzenia przechwytujące promieniowanie elektromagnetyczne. Conventional Encrypt Zaznaczenie tej opcji powoduje, że stosowane jest kodowanie oparte na hasłach, a nic na algorytmie klucza publicznego i prywatnego. Plik jest kodowany przy wykorzystaniu klucza. Deszyfrowanie i szyfrowanie jest realizowane za pomocą hasła. Self'Decrypting Archive (SDA) Zaznaczenie tego pola powoduje, że archiwum zostanie zapisane do samorozszyfrowuiącego się pliku wykonywalnego. Plik jest kodowany za pomocą klucza sesji. Szyfrowanie i deszyfrowanie odbywa się za pomocą zwykłego hasła. Plik może być rozszyfrowany po dwukrotnym kliknięciu i wpisaniu odpowiedniego hasła. - 62 - Opcja ta jest szczególnie przydatna dla użytkowników, którzy wysyłają informacje zakodowane programem PGP do osób, które tego programu nie mają. Nadawca i odbiorca muszą mieć ten sam system operacyjny. Deszyfrowanie plików za pomocą PGP Deszyfrowanie pliku zaszyfrowanego programem PGP wygląda podobnie jak szyfrowanie: klikamy prawym klawiszem myszy na pliku do odszyfrowania. Z menu podręcznego wybieramy „PGP” i „Decrypt & Verify”: Po wybraniu tych poleceń ukazuje nam się okno do wpisania hasła użytego podczas procesu szyfrowania tego pliku: Po wpisaniu hasła klikamy przycisk „OK”. Następnie pojawia nam się okno „Enter output file name” w którym wybieramy lokalizację pliku odszyfrowanego: - 63 - Deszyfrowanie kończymy przyciskiem „Zapisz”. Polecamy darmowe prace mgr - serwis z pracami dyplomowymi - prace magisterskie i licencjackie - całkowicie za darmo - 64 - 6. Tmd SOFT Code 4.24 Tmd SOFT Code 4.24 jest programem darmowym, najprostszym w obsłudze spośród przeze mnie opisanych, a zarazem najbardziej rozbudowanym pod względem wyboru algorytmów szyfrujących. Napisany został przez Tomasza Domagalskiego, przeznaczony jest dla użytkowników posiadających komputery z systemem operacyjnym Windows 98, 2000, ME oraz XP. Cały program napisany jest w języku polskim, łącznie z instrukcją obsługi mieszczącą się w „Menu Pomoc”. Pomoc wyposażona jest w spis treści, wyszukiwarkę zagadnień, a także zakładkę „Ulubione” pozwalającą na zapisanie wyszukanych przez nas tematów. Lista algorytmów szyfrujących możliwych do wyboru podczas szyfrowania: Code UnCode Algorithm3 Q128 128bit Key 3Way 96bit Key RC2 1024bit Key Blowfish 448bit Key RC4 2048bit Key Cast128 128bit Key RC5 2048bit Key Cast256 256bit Key RC6 2048bit Key 1DES 64bit Key Rijndael 256bit Key 2DES 128bit Key SAFER-K40 40bit Key 2DDES 128bit Key SAFER-SK40 40bit Key 3DES 192bit Key SAFER-K64 64bit Key 3DDES 192bit Key SAFER-SK64 64bit Key 3TDES 192bit Key SAFER-K128 128bit Key DESX 128bit Key SAFER-SK128 128bit Key Diamond2 2048bit Key Sapphire 8192bit Key Diamond2Lite 2048bit Key SCOP 384bit Key FROG 1000bit Key Shark 128bit Key Gost 256bit Key Skipjack 80bit Key IDEA 128bit Key Square 128bit Key Mars 1248bit Key TEA 128bit Key Misty1 128bit Key TEAN 128bit Key NewDES 120bit Key Twofish 256bit Key - 65 - Okno główne programu Tmd SOFT Code 4.24 Szyfrowanie plików za pomocą Tmd SOFT Code 4.24. Chcąc zaszyfrować plik za pomocą Tmd SOFT Code 4.24 wchodzimy w menu „Plik” i wybieramy „szyfruj…” lub za pomocą myszy naciskamy symbol zamkniętej kłódki w oknie głównym programu . Pojawia nam się okno szyfrowania z którego wybieramy przycisk „Dodaj”. Następnie pokazuje nam się okno wyboru lokalizacji pliku do zaszyfrowania za pomocą którego odszukujemy nasz plik. - 66 - Po odnalezieniu i wybraniu naszego pliku … … naciskamy przycisk „Dalej”. Następnie pojawia nam się okno podobne do okna za pomocą którego lokalizowaliśmy plik do szyfrowania tylko teraz musimy podać nazwę pliku zaszyfrowanego i wskazać gdzie go zapiszemy. Po wybraniu lokalizacji ukazuje nam się okno „Hasło” do którego wpisujemy i potwierdzamy jeszcze raz nasze hasło które zostanie użyte do zaszyfrowania naszego pliku. - 67 - Po wpisaniu hasła wyświetli nam się okienko z polami do wpisania i potwierdzenia hasła chroniącego archiwum czyli specyficznego pliku zawierającego nasze zaszyfrowane pliki. Po potwierdzeniu hasła dostępu do archiwum zostanie wyświetlone okno Podsumowania operacji: Naciśnięcie przycisku „Zamknij” kończy proces szyfrowania. Deszyfrowanie plików za pomocą Tmd SOFT Code 4.24. Deszyfrowanie plików za pomocą TmD SOFT Code 4.24 przebiega odwrotnie do procesu szyfrowania. Wybieramy z menu „Plik”- „deszyfruj…” lub za pomocą myszy naciskamy symbol otwartej kłódki w oknie głównym programu . Następnie pokazuje nam się okno wyboru lokalizacji pliku do deszyfrowania za pomocą którego odszukujemy nasz plik. Potem pojawiają nam się okno hasła dostępu do archiwum: - 68 - oraz okno hasła dostępu do pliku: Po wpisaniu i potwierdzeniu haseł zostaje wygenerowany raport podobny do raportu kończącego proces szyfrowania, podsumowujący proces deszyfracji. Ustawienia programu TmD SOFT Code 4.24 W opcje ustawień programu wchodzimy dwoma metodami: z menu „Widok” wybieramy Ustawienia programu lub naciskając na symbol programu. Okno Ustawień, zakładka Ogólne ustawienia: - 69 - w oknie głównym W tej zakładce można ustawić język programu, mamy do wyboru: angielski, niemiecki i polski. Możemy przywrócić standardowe ustawienia (przydatne gdy wprowadzimy w ustawieniach niekorzystne zmiany i chcemy je cofnąć), ustawić styl formularzy dialogowych oraz dodać skróty na klawiaturze, Menu start, Pulpicie, stanowiące udogodnienie korzystania z programu. Okno Ustawień, zakładka Szyfrowanie-ustawienia: W ustawieniach szyfrowania możemy nadać zaszyfrowanemu plikowi atrybuty: archiwalny, ukryty, tylko do odczytu, systemowy. Włączyć lub wyłączyć opcję usuwającą zawartość pliku źródłowego lub cały plik. Posiadamy także możliwość wyboru opcji: czy archiwum ma być chronione hasłem, czy nie. Okno Ustawień, zakładka Deszyfrowanie-ustawienia: - 70 - Zakładka „Deszyfrowanie-ustawienia” daje nam możliwość zaznaczenia opcji niszczenia zawartości lub całości pliku źródłowego, nadawania atrybutów plikom deszyfrowanym oraz ustawienia foldera domyślnego w którym będą umieszczane deszyfrowane pliki. Okno Ustawień, zakładka Deszyfrowanie-ustawienia: Zakładka „Zaawansowane ustawienia” daje nam możliwość wyboru algorytmu szyfrowania (40 algorytmów wymienionych wcześniej), określenie formatu pliku archiwum , ustawienie wolnego miejsca jakie musi pozostać niewykorzystane przez program podczas szyfrowania/deszyfrowania (od 25 do 500MB) oraz ustawienia bufora programu (od 8192 do 262144 B) i ustawienia przydziału czasu na wykonanie operacji szyfrowania/deszyfrowania. blog o pisaniu prac magisterskich - 71 - 7. VMPC Data Security Program VMPC Data Security jest programem przeznaczonym dla średnio zaawansowanych użytkowników wykorzystujących system operacyjny Windows 98/ME/2000/XP. VMPC Data Security wykorzystuje technologię VMPC do zabezpieczania danych na dyskach , zarówno sieciowych jak i lokalnych oraz poczty elektronicznej. Wykorzystywany przez niego algorytm szyfrowania strumieniowego VMPC, którego twórcą jest Bartosz Żółtak, będący też autorem tego programu. VMPC Data Security cechuje wysoki poziom bezpieczeństwa ponieważ zastosowany w nim algorytm nie wykazuje błędów występujących w takich algorytmach jak np.: RC4). Program ten nie potrzebuje instalacji co jest jego zaletą, gdyż może być przenoszony na zewnętrznym nośniku danych i po skopiowaniu na inny komputer gotowy jest od razu do pracy. Program VMPC Data Security nie zapisuje żadnych informacji w rejestrze systemu operacyjnego i nie tworzy niezaszyfrowanych plików tymczasowych. Następną zaletą tego kontrolnych MAC. Dzięki którym programu jest zastosowanie w nim sum wszystkie zmiany w naszych zaszyfrowanych archiwach i wiadomościach tekstowych można będzie nam bardzo łatwo wychwycić, tak samo jak zmiany w samym programie. Program posiada bardzo zaawansowany moduł do generowania kluczy, których rozmiar może sięgać nawet do 512 bitów. Moduł ten pozwala nam w pełni wykorzystać potencjał szyfrujący algorytmu VMPC23 oraz daje możliwość generowania kluczy o wysokiej jakości. Klucze są tworzone z losowych ruchów myszką, można utworzyć wiele różnych kluczy, a także łączyć je do zaszyfrowania jednego szyfrogramu. blog o pisaniu prac magisterskich 23 VMPC -szyfr strumieniowy bazujący na funkcji jednokierunkowej. - 72 - Okno programu VMPC Data Security Generowanie klucza szyfrującego w programie VMPC Data Security Tworzenie klucza szyfrującego zaczynamy od kliknięcia za pomocą myszy przycisku „Generuj klucz” , potem otworzy nam się okno Modułu generowania kluczy: Utworzyć kluczy szyfrujący potrzebny do zaszyfrowania pliku możemy trzema sposobami: - 73 - Podając rozmiar klucza od 8 do 512bitów, wybierając za jakich liter i znaków ma się składać klucz, potem naciskamy przycisk „Generuj klucz” Następnie ruszamy kursorem myszy po „Obszarze odczytu pozycji myszy” w celu generowania klucza powiązanego z datą systemową oraz pozycjami myszy. Po wygenerowaniu klucza przechodzimy w zakładkę „Zapis klucza”: w celu jego zapisania. Istnieje możliwość Naciskamy przycisk połączenia dwóch kluczy. W tym celu za pomocą przycisku generujemy drugi klucz, a następnie wybierając przycisk łączymy wygenerowane klucze. Drugim sposobem generowania klucza, jest wpisanie własnego hasła z klawiatury które zostanie powiązane z wektorem utworzonym z daty i godzimy systemowej. W celu utworzenia takiego klucza naciskamy przycisk, a następnie z klawiatury wprowadzamy swój klucz: Szyfrowanie plików za pomocą programu VMPC Data Security Po wprowadzeniu klucza zatwierdzamy go przyciskiem oraz zapisujemy w wybranej przez nas lokalizacji. - 74 - Ostatnim sposobem generowania klucza szyfrującego w programie VMPC Data Security jest wczytanie klucza wcześniej utworzonego z określonej przez nas lokalizacji. W tym celu wybieramy przycisk , a następnie wybieramy lokalizację pliku w którym zapisaliśmy wcześniej klucz: Program VMPC Data Security przypomina nam o kluczach zapisanych na dyskach twardych oraz proponuje ich automatyczne wykasowanie przy każdym uruchomieniu programu, gdyż zapisanie kluczy na dyskach powinno być traktowane jako operacja tymczasowa, po której trzeba skopiować klucz na dyski przenośne, np. CD, FDD czy DVD, oraz wymazanie klucza z dysku twardego. Szyfrowanie plików za pomocą VMPC Data Security Szyfrowanie plików zaczynamy klikając na ikonę okno Wyboru plików: - 75 - , pojawia nam się … w którym ustalamy lokalizację pliku do zaszyfrowania, zaznaczając wybrany przez nas plik i potwierdzamy nasz wybór przyciskiem dodawania plików do zaszyfrowania naciskamy ikonę . Po zakończeniu w celu zamknięcia okna dodawania plików. Wybrany przez nas plik zostaje wyświetlony w oknie głównym programu jako plik do zaszyfrowania: Następnie klikamy myszą na przycisk Szyfruj - 76 - Potem wczytujemy lub tworzymy klucz szyfracji o czym była mowa wcześniej i potwierdzamy powtórnie wybór klucza szyfracji: Wybór klucza szyfrowania kończymy przyciskiem . Dalej pojawia nam się okno „Zapisu archiwum”: W którym możemy zmienić domyślne ustawienia nazwy i lokalizacji archiwum w którym będą znajdować się nasze zaszyfrowane pliki, a także napisać komentarz do naszego archiwum (dający nam informacje np. jakie pliki w nim się znajdują). Proces szyfrowania pliku kończymy przyciskiem . Program po zakończeniu szyfrowania wyświetla nam raport: - 77 - Program jest VMPC DATA Security jest bardzo wydajnym programem. Operacja szyfrowania folderów, czy plików zostaje zakończona nawet o około 30% szybciej niż skopiowanie tego samego pliku/folderu na dysk w systemie Windows. Deszyfrowanie plików za pomocą VMPC Data Security Deszyfrowanie plików zaczynamy klikając na ikonę , pojawia nam się okno Wyboru archiwum do otwarcia: … gdzie ustalamy lokalizację naszego archiwum do odszyfrowania. Następnie pojawia nam się okno wprowadzania i potwierdzenia klucza deszyfracji (taki sam jaki był użyty wcześniej do szyfrowania archiwum). Potwierdzamy wprowadzenie klucza przyciskiem . Potem ukazuje się ponownie okno główne programu z otwartym naszym archiwum: - 78 - Podświetlamy kursorem nasz plik który chcemy odszyfrować i zatwierdzamy nasz wybór przyciskiem i Po wybraniu przycisku „Deszyfruj” pojawia nam się okno: … w którym wybieramy lub pozostawiamy jako domyślną lokalizację pliku odszyfrowanego potwierdzając nasz wybór ponownie przyciskiem Po zakończeniu procesu deszyfracji program potwierdza prawidłowe wykonanie operacji komunikatem: - 79 - Dodatkowe opcje programu VMPC Data Security. Szyfrowanie tekstów i poczty elektronicznej: Program VMPC Data Security zawiera wbudowany bezpieczny edytor tekstów, który nie tworzy plików tymczasowych na dysku twardym. Po wcześniejszym zaszyfrowaniu, tekst automatycznie przekształcany jest na system zapisu tekstowego Base64, co daje nam możliwość łatwego przesłania szyfrogramu pocztą elektroniczną, zapisania go w pliku tekstowym lub wydrukowania. Program umożliwia też nam zaszyfrowanie i wysłanie tekstu pocztą elektroniczną po wciśnięciu zaledwie jednego klawisza, za pomocą domyślnie stosowanego programu pocztowego którym jest np.: Outlook Express. Dzięki dostępnemu na stronie www.VMPCfunction.com darmowemu programowi do deszyfrowania emaili możliwe jest przesyłanie zaszyfrowanych wiadomości do adresatów nieposiadających programu VMPC Data Security.24 Trwałe i nieodwracalne usunięcie plików źródłowych z komputera Program umożliwia nam bezpieczne wykasowanie zaszyfrowanych folderów lub plików z dysku za pomocą zamazania ich pierwotnej zawartości pseudolosowymi danymi za nim będą logicznie usunięte. Liczbę rund zamazywania może wybrać użytkownik, ich liczba jednak musi się mieścić w zakresie od 1 do 35 (przy czym im więcej rund, tym mniejsze prawdopodobieństwo odzyskania pliku przez niepowołane osoby. blog o pisaniu prac magisterskich 24 http://www.vmpcfunction.com/dsp.html - 80 - VI. Zakończenie W mojej pracy postarałem się ukazać jak najlepiej potrzebę, a nawet konieczność stosowania programów szyfrujących w codziennym życiu oraz zagrożenia spowodowane nieużywanie tych programów. Opisałem najczęściej stosowane w programach szyfrujących trzy grupy szyfrów współczesnych: - asymetryczne, - blokowe, - strumieniowe. Przedstawiłem algorytmy szyfrujące, takie jak: - Skipjack, - Blowfish, - Twofish, - DEX, - Idea, - RC4, - A5/1 - DES - Serpent Wspomniałem też o szyfrach historycznych w dzisiejszych czasach już nie stosowanych z powodu zbyt małej mocy szyfrującej w porównaniu do mocy obliczeniowej dzisiejszych komputerów, użytych do złamania tych szyfrów. Opisałem podstawowe funkcje mieszające: - MD-5, - SHA-1, - SHA-256, - SHA-384, - SHA-512, które obok szyfrów współczesnych są dodatkowym narzędziem zastosowanym w programach szyfrujących nasze dane. W mojej pracy zawarłem opis programów najpopularniej stosowanych do szyfrowania danych: - Enigma 2003 final, - Data Encryption Toolkit v. 1.12, - 81 - - Cheops v. „A”, - Top Secret Next Generation, - PGP 8.2, - TmD SOFT Code, - VMPC Data Security. Z tych programów moim zdaniem godnymi polecenia pod względem funkcji wbudowanych, a także skuteczności są: Top Secret Next Generation który tworzy i wykorzystuje wirtualne sejfy, widziane w systemie jako dyski twarde. Program ten szyfruje dane i pocztę internetową, jest chroniony antywirusowo oraz posiada własną niszczarkę plików, potrzebną do usunięcia źródłowych danych po zaszyfrowaniu. Spośród opisanych programów najlepiej też chroni przed skasowaniem pliku z dysku i niepożądaną deinstalację pakietu. Drugim programem godnym polecenia jest program Tmd SOFT Code posiadający do wyboru czterdzieści algorytmów szyfrujących. Dużym atutem tego programu jest jego dostępność do zdobycia, gdyż jest on programem darmowym i każdy użytkownik może pobrać go z Internetu. Ostatnim programem jest PGP 8.2 wykorzystujący najlepsze algorytmy: AES (Rijndael) 256 bit, CAST 128 bit lub Twofish 256 bit. PGP 8.2 jest funkcjonalnym i łatwym do opanowania pakietem, składającym się z wzajemnie uzupełniających modułów PGP disk, PGP mail i PGP keys. Korzystając z wygodnego kreatora, możemy nadawać użytkownikom prawa „tylko do odczytu”, zakładać dyski dowolnych rozmiarów, przypisywać je użytkownikom i pracować na kilku napędach jednocześnie. Dostęp do zaszyfrowanych danych poprzedzony jest autoryzacją, która może się odbywać poprzez podanie hasła (frazy) lub uwierzytelnienie kluczem publicznym. Skuteczność ochrony danych zależy w największej mierze od człowieka. Jest on najsłabszym ogniwem systemu. Stosując ochronę danych na użytek własny, wystarczy jak najczęściej zadawać sobie pytanie: „Gdzie istnieje niezabezpieczona kopia chronionego pliku lub ślad po jego przetworzeniu”. Stosując ochronę danych, do których ma dostęp więcej niż jedna osoba, należy stworzyć procedury, które będą punkt po punkcie instruowały, co należy zrobić w określonej sytuacji. Tylko w taki sposób można spowodować, że wszystkie osoby będą postępowały jednakowo i ktoś przez swoje zaniedbanie nie utworzy wyłomu w systemie bezpieczeństwa. - 82 - Ochrona danych podlega takim samym prawom jak każda dziedzina- zachodzi w niej ustawiczny postęp. Aby nie okazało się, że opracowano rozwiązania, które czynią nasze zabezpieczenia bezwartościowymi, trzeba śledzić najnowsze doniesienia. blog o pisaniu prac magisterskich - 83 - VIII. Bibliografia 1. Piotr Czarny: PGP Szyfrowanie informacji- Ćwiczenia praktyczne, Wydawnictwo Helion, Gliwice 2002. 2. Niels Ferguson, Bruce Schneier: Kryptografia w praktyce, Wydawnictwo Helion, Gliwice 2004. 3. http://e-handel.mm.com.pl 4. http://kryptografia.republika.pl 5. http://ochrona.bajo.pl 6. http://pl.freeglossary.com 7. http://pl.wikipedia.org 8. http://www.cyber.com.pl 9. http://www.vmpcfunction.com - 84 -