Szyfrowanie danych

advertisement
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 -
Download