M. Popis, D. Laskowski
• podział wiadomości jawnej na bloki 64-bitowe;
• dokonanie permutacji pierwotnej, zgodnie ze zdefiniowaną tabelą;
• podział bloku na dwie części 32-bitowe - lewą i prawą;
• utworzone podbloki wejściowe są separowane i podlegają odmiennym przekształceniom;
• wykonanie 16 identycznych iteracji z użyciem 16 wartości podkluczy wyliczanych na podstawie wartości klucza tajnego;
• w każdym z 16 cykli realizowane są następujące operacje: przesuwanie bitów, wybieranie 48 bitów z 56 bitów klucza, rozszerzanie prawego podbloku do 48 bitów (permutacja rozszerzona), sumowanie modulo 2 rozszerzonego prawego bloku z wybranymi i przesuniętymi 48 bitami podklucza, tworzenie 6-bitowych bloków i S-bloków, dokonywanie permutacji w blokach, zamiana podbloków miejscami, łączenie danych lewej i prawej strony poprzez XOR, realizacja permutacji końcowej.
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).
Tryby pracy algorytmu
Kryptosystem DES może pracować w czterech trybach:
• W trybie elektronicznej książki kodowej ECB (ang. Electronic Codę Book) szyfrowanie/deszyfrowanie każdego 64-bitowego bloku wiadomości odbywa się w sposób niezależny.
• W celu usunięcia wady w bezpieczeństwie trybu ECB zastosowano sprzężenia bloków wiadomości zaszyfrowanej i bloków jawnych - tryb wiązania bloków zaszyfrowanych CBC (ang. Cipher Błock Chaining).
• Kryptosystem DES może pracować też jako szyfr strumieniowy, przy zastosowaniu trybu szyfrowania ze sprzężeniem zwrotnym CFB (ang. Cipher Feed Back) lub trybu sprzężenia zwrotnego wyjściowego OFB (ang. Output Feed Back).
W takim przypadku eliminowana jest konieczność dopełniania bloków do pełnych 64 bitów.
19