Szyfrowanie danych”



Pobieranie 329.94 Kb.
Strona5/7
Data28.04.2016
Rozmiar329.94 Kb.
1   2   3   4   5   6   7

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ę

    • 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ń.

    • Dane które dostaliśmy na wejściu rundy dzielimy na dwie 32-bitowe części - lewą Li i prawą Ri

    • Rozszerzamy przez powielanie bitów prawą część do 48 bitów uzyskując E(Ri)

    • Poddajemy funkcji XOR E(Ri) z podkluczem dla aktualnej rundy



    • Rozbijamy na 8 fragmentów po 6 bitów

    • Każdy z tych fragmentów jest argumentem jednej z 8 funkcji, tzw.
      S-BOX-ów.

    • Łączymy wyniki S-BOXów w

    • Permutujemy uzyskany wynik

    • Jako lewą stronę wyjścia przekazujemy prawą stronę wejścia:
      Li + 1 = Ri

    • Jako prawą stronę wyjścia przekazujemy lewą stronę wejścia poddaną funkcji XOR z : 14

  • Wykonujemy odwróconą permutację wejściową danych (IP - 1)

Schemat ten to tzw. sieć Feistela.

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



, czyli nie wpływa w istotny sposób na siłę szyfru.

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.

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ą:

Odszyfrowywanie zakodowanej wiadomości odbywa się w identyczny sposób – generujemy strumień szyfrujący, i XOR-ujemy go z szyfrogramem:



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.

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.


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 pro­stym 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 publicz­nym 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 wiado­mość 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, niedopusz­czalna 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ży­wane 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 rozwiązania była funkcja MD4, obec­nie 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. Wy­korzystują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 popra­wił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 opubliko­wali 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
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.




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:



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%.




Deszyfrowanie pliku.

A
by 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:



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:


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.


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 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ą.
T
ak 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 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.

O
kno opcji:


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.

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ć, naciskając w polu „File to decrypt” przycisk , 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.

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.

3. CHEOPS wersja „A”

1   2   3   4   5   6   7


©absta.pl 2016
wyślij wiadomość

    Strona główna