Algorytm kodowania Blowfish



Pobieranie 1,65 Mb.
Strona1/4
Data28.12.2017
Rozmiar1,65 Mb.
  1   2   3   4

Algorytm kodowania Blowfish


  1. Opis algorytmu:


Blowfish to szyfr blokowy stworzony przez Bruce'a Schneiera w 1993 roku jako szybka i bezpłatna alternatywa ale istniejących ówcześnie algorytmów.

Algorytm operuje na 64-bitowym bloku wejściowym tekstu jawnego, który przetwarzamy w 16tu rundach, przy maksymalnej długości klucza 448 bit.



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, choć do niedawna przeważały 64-bitowe bloki. Klucze są znacznie mniejsze, mają zwykle od 128 do 256 bitów, przy czym wartości mniejsze od 80 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, przesunięć cyklicznych, mnożenia 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.


Działanie algorytmu można najlepiej przedstawić za pomocą schematu:


a) Inicjujemy S-bloki i skrzynkę P kluczy pomocniczych ze względu na główny klucz użytkownika.

S-bloków jako skrzynek podstawień mamy w Blowfish cztery, gdzie każda z nich posiada 256 elementów, z kolei każdy element jest wartością 32-bitową. W przypadku kluczy pomocniczy P mamy jedną skrzynkę z 18-ma elementami, również wartość każdego elementu to 32 bity.

S-bloki: S0[0..255], S1[0..255], S2[0..255], S3[0..255]

P: P[0..17]

b) dzielimy 64 bity tekstu jawnego "m" na xL (starsze 32 bity) i xR (młodsze 32 bity),

c) wykonujemy operację sumy modulo 2 (xor) pierwszego klucza pomocniczego P1 z xL,

d) wynik z punktu "c" poddajemy operacjom wynikającym w funkcji "F",

e) wykonujemy operacje sumy modulo 2 wyniku z punktu "d" z xR,

f) zamieniamy miejscami xL i xR,

g) wracamy do punktu "c" wykonując xor z kolejnym kluczem pomocniczym Pi. Wykonujemy łącznie 16 iteracji licznika "i", tyle ile rund jest wymaganych w algorytmie Bruce Schneiera. Po 16-tym cyklu przechodzimy do następnego punktu kończąc działanie algorytmu,

( UWAGA! Po 16-tym cyklu nie zamieniamy miejscami xL i xR !!! Nie wykonujemy punktu "f" ),

h) wykonujemy xor xR z P17 jako 17-tym kluczem pomocniczym i xor-ujemy xL z P18,

i) łączymy xL i xR ze sobą w 64-ro bitowy blok otrzymując tym samym szyfrogram "c".
Funkcja F

 

Funkcja "F" wykonuje proste operacje arytmetyczne: suma modulo 2 oraz operacja dodawania modulo 232. Wejściem dla naszej funkcji jest 32-bitowa wartość. Zostaje ona rozłożona na cztery 8-bitowe wartości będące indeksami dla poszczególnych S-bloków. W algorytmie wykorzystujemy 4 S-bloki, każdy blok posiada 256 elementów.


Algorytm Blowfish został zaprojektowany by spełnić następujące wymagania:
1. Duża szybkość działania – algorytm szyfruje dane z szybkością 26 taktów zegarowych na bajt.

2. Małe wymagania co do pamięci – algorytm wymaga nie więcej niż 5KB pamięci.

3. Prostota algorytmu – algorytm stosuje tylko proste operacje tj.dodawanie, sumowanie modulo 2 i tablicę przeszukiwania jednego z 32 argumentów.

4. Zmienna długość klucza – algorytm akceptuje klucze o długości mniejszej niż 448 bitów.

Algorytm ten nadaje się przede wszystkim w zastosowaniach nie wymagających częstych zmian kluczy, a więc przykładowo w łączach telekomunikacyjnych albo automatycznym szyfrowaniu plików.


Zastosowanie algorytmu:
Algorytm Blowfish można często spotkać w komercyjnych systemach. Firma Kent Marsh Ltd. zastowała algorytm Blowfish w produktach FolderBolt dla Microsoft Windows i Macintosh. Algorytm ten jest również częścią produktów Nautilius i PGPfone. Blowfish z kluczem 448 bitowym zastosowano w produkcie firmy Jetico BestCrypt, natomiast Blowfish z kluczem 192 bitowym zastosowała firma PC Guardian w produkcie Encryption Plus Folders.
2. Opis koncepcji
Rozwój technologiczny sprawił, że w Internecie nie ma już anonimowości. Przed tym się nie uchronimy, ale możemy zadbać o poufność naszych danych. Wbrew opiniom o wszędzie pałętających się crackerach, nadal możemy zabezpieczyć swoje dane i uniemożliwić podsłuch rozmów przez Internet. Nieważne, czy informacje dotyczą spraw zawodowych, czy tematów prywatnych - nie powinniśmy pozwolić na przejęcie informacji osobom nieupoważnionym.

Sposób szyfrowania danych zostanie przedstawiony na przykładzie darmowego programu Blowfish Advanced CS.
Opis programu:
Blowfish Advanced CS służy do bezpiecznego szyfrowania plików i zawartości całych katalogów. Program wykorzystuje jeden z siedmiu dostępnych algorytmów (Blowfish, Twofish, AES, RC4, Triple-DES, Serpent, CAST), pozwala też określić w opcjach metodę kompresji. Oczywiście dostępna jest też funkcja deszyfrowania, a także usuwania plików z dysku, aby nie było możliwe ich odtworzenie.
Instrukcja użytkowania
1. Pobranie z przygotowanej strony internetowej, rozpakowanie programu






  1   2   3   4


©operacji.org 2017
wyślij wiadomość

    Strona główna