DES, Zajęcia, II semestr 2008, Wstęp do kryptologii


ROZDZIAŁ 3

SZYFRY BLOKOWE

Szyfr blokowy jest to funkcja, która odwzorowuje n-bitowy tekst jawny w n-bitowy tekst tajny; n jest nazywane długością (wielkością) bloku. Funkcja jest parametryzowana przez k-bitowy klucz K, biorący wartości z podzbioru K (przestrzeń klucza) zbioru wszystkich k-bitowych wektorów 0x01 graphic
. Najczęściej klucz jest wybierany losowo. Dla zapewnienia unikalności szyfrowania funkcja szyfrująca musi być odwracalna (1-1). Dla n-bitowego tekstu jawnego, tekstu tajnego i stałego klucza, funkcja szyfrująca jest bijekcją na zbiorze n-bitowych wektorów. Liczba kluczy wynosi 0x01 graphic
, a efektywny rozmiar klucza jest równy 0x01 graphic
(logarytm naturalny).

0x08 graphic

Rys. 3.1

    1. TRYBY PRACY

Szyfry blokowe możemy wykorzystywać w różnych trybach pracy.

      1. Elektroniczna książka kodowa (Electronic Code Book - ECB)

Każdy blok tekstu jawnego jest szyfrowany osobno:

0x01 graphic
.

Deszyfrowanie:

0x01 graphic
.

0x08 graphic
Rys. 3.2

Wadą tego trybu jest to, że jednakowe bloki szyfrogramu 0x01 graphic
odpowiadają jednakowym blokom tekstu jawnego 0x01 graphic
.

      1. Wiązanie bloków zaszyfrowanych (Cipher Block Chaining - CBC)

Każdy blok tekstu jawnego jest przed szyfrowaniem sumowany z poprzednim blokiem szyfrogramu:

0x01 graphic
.

Deszyfrowanie:

0x01 graphic
.

Wartość początkowa IV (initial value) nie musi być tajna. Jednakowe bloki tekstu jawnego przechodzą w różne bloki szyfrogramu. Występuje mała propagacja błędów; jeśli 0x01 graphic
odebrano z błędem to tylko bloki 0x01 graphic
będą odszyfrowane niepoprawnie.

0x08 graphic

Rys. 3.3

      1. Sprzężenie zwrotne wyjścia (Output Feedback - OFB)

Na podstawie klucza K i wartości początkowej V0 =IV generowany jest pseudolosowy ciąg bitowy:

0x01 graphic
.

sumowany z blokami tekstu jawnego:

0x01 graphic
.

Deszyfrowanie:

0x01 graphic
.

0x08 graphic

Rys. 3.4

Nie występuje propagacja błędów (jeden przekłamany bit szyfrogramu przechodzi na jeden błędny bit tekstu jawnego). 0x01 graphic
można wyznaczyć przed otrzymaniem 0x01 graphic
lub 0x01 graphic
.

      1. Sprzężenie zwrotne szyfrogramu (Cipher Feedback -CFB)

Podobnie jak w trybie OFB, ale ciąg bitowy zależy tutaj od szyfrogramu:

0x01 graphic
.

Deszyfrowanie:

0x01 graphic
.

Dwa inne tryby pracy otrzymujemy poprzez odwrócenie trybów CBC i CFB i oznaczamy CBC-1 i CFB-1.

0x08 graphic
Rys. 3.5

Inne tryby pracy to: