Zacznę od omówienia szyfru zwanego podkładką jednorazową, opartego o system binarny, a dokładniej o operację XOR zwaną alternatywą wykluczającą.
Przyjmijmy, że chcemy wysłać wiadomość dwubitową, w tej sytuacji można pozostawić dwa bity nietchnięte, można je odwrócić lub odwrócić tylko jeden z nich. Następnie należy ustalić pomiędzy nadawcą i odbiorcą, które bity będą odwracane. W kategoriach operacji XOR powstałby następujące możliwości stworzenia dwubitowego klucza: 00, 01, 10 i 11. W przypadku w którym tekst jawny wymagałby n bitów, można by było wygenerować w charakterze klucza losowy ciąg n bitów. Następnie przekazać go odbiorcy i zaszyfrować tekst jawny z użyciem tego klucza. Zastosowany tu klucz nazywamy podkładką.
System ten zapewnia wysoki poziom bezpieczeństwa, jednak klucz musi zawierać tyle bitów, ile zawartych jest w tekście jawnym. Jak wskazuje nazwa podkładkę jednorazową, należy stosować tylko raz, a dla zwiększenia bezpieczeństwa zawsze powinna być generowana losowo.
Stosowanie tak długich kluczy, jak tekst jawny, przy bardzo dużych wiadomościach, może okazać się sporym problemem. Dlatego w niektórych systemach z kluczami symetrycznymi tekst jawny tnie się na bloki, zaś klucz stosuje się do każdego z nich z osobna. Taki rodzaj szyfru jest określany jako szyfr blokowy.
Jednym z najbardziej popularnych szyfrów jest Rijnael, działa on dla 3 wielkości bloków: 128, 192 i 256. Oznaczmy przez Nb i Nk liczbę 32 bitowych słów w komunikacie oraz kluczu, sekwencja rund wyglądałaby następująco:
- Dla Nb = Nk = 4, byłoby 10 rund (Nr = 10)
- Dla Nb ≤ 6 oraz Nk ≤ 6, przy czym obie wartości są różne od 4 Nr = 12
- Dla wszystkich innych przypadków Nr = 14
W szyfrze tym, można wyróżnić następujące przekształcenia:
- ByteSub (BS)
- ShiftRow (SR)
- MixColumn (MC)
- AddRoundKey (ARK)
Schemat działania takiego algorytmu wygląda następująco:
|
Tura 1 |
Następnych Nk – 2 tur |
Tura ostatnia |
|
||||||
Tekst jawny |
ARK |
BS |
SR |
MC |
ARK |
… |
BS |
SR |
ARK |
Tekst tajny |