1. Opis algorytmu IDEA

Transkrypt

1. Opis algorytmu IDEA
BSK 2003
OPIS DZIAŁANIA ALGORYTMU IDEA
1. Opis algorytmu IDEA
IDEA umożliwia szyfrowanie 64-bitowych bloków danych przy użyciu 128–bitowego
klucza. Zarówno szyfrowanie jak i deszyfrowanie wykonywane jest przy użyciu tego samego
algorytmu. Wykorzystywane są następujące operacje algebraiczne:
-
XOR logiczny (oznaczany dalej przez ⊕ ),
-
dodawanie modulo 216 (dodawanie z pominięciem przepełnienia oznaczane
przez
),
mnożenie modulo 216+1 (blok 16 zer odpowiada liczbie 216, operację tę oznaczamy
przez ~) .
-
1.1. Szyfrowanie i deszyfrowanie
Proces szyfrowania składa się z ośmiu cykli (iteracji) (rys. 1) oraz przekształcenia
końcowego (rys. 2). 64-bitowy blok danych jest dzielony na 16-bitowe podbloki X1, X2, X3
oraz X4, będące danymi wejściowymi dla algorytmu. W każdej iteracji wykorzystywanych
jest sześć podkluczy, generowanych na podstawie 128-bitowego klucza, np. w pierwszej
iteracji wykorzystywane są podklucze Z1...Z6, w drugiej iteracji Z7...Z12, itd. aż do iteracji nr
8. Etap przekształcania (9 etap algorytmu) wykorzystuje już tylko cztery podklucze
(Z49...Z52). Na podkluczach oraz podblokach danych wykonywane są operacje sumy modulo
2, dodawania mod 216 oraz mnożenia mod 216+1. Wynikiem tych operacji są cztery 16-bitowe
podbloki przekształconych danych, które z kolei są danymi wejściowymi dla kolejnej iteracji.
Po wykonaniu ósmej iteracji realizowane jest przekształcenie końcowe, w wyniku którego
otrzymujemy cztery 16-bitowe bloki. Po połączeniu dają one w wyniku 64-bitowy blok
szyfrogramu, który stanowi dane wyjściowe szyfratora.
Podczas deszyfrowania wykorzystywane są podklucze deszyfrujące generowane na
podstawie podkluczy szyfrujących.
1
BSK 2003
OPIS DZIAŁANIA ALGORYTMU IDEA
X1
X2
X3
X4
Przekształcenie
początkowe
Z1
Z3
Z2
Z4
Multiplication
/Addition
Z5
Z6
W11
W12
W13
W14
Rys. 1. Schemat blokowy pojedynczej iteracji algorytmu IDEA
W81
W82
W83
W84
Z49
Z51
Z50
Z52
Y1
Y2
Y3
Y4
Rys. 2. Schemat blokowy przekształcenia końcowego
1.2. Generowanie podkluczy
Algorytm w każdej z ośmiu iteracji wykorzystuje 6 podkluczy. Dodając do tego ostatni
etap, czyli przekształcanie wyniku (w którym wykorzystywane są cztery podklucze)
2
BSK 2003
OPIS DZIAŁANIA ALGORYTMU IDEA
otrzymujemy liczbę 52 podkluczy potrzebnych do operacji szyfrowania lub deszyfrowania
bloku danych. Podklucze te są otrzymywane ze 128-bitowego klucza szyfrującego.
Osiem pierwszych podkluczy szyfrowania otrzymujemy bezpośrednio z klucza
szyfrowania po podzieleniu go na 16-bitowe fragmenty. Pierwszy podklucz oznaczany przez
Z1 równy jest 16 najbardziej znaczącym bitom, podklucz Z2 następnym 16 bitom itd.
Następnie klucz jest przesuwany w lewo o 25 bitów, i otrzymujemy osiem następnych
podkluczy itd. aż do otrzymania 52 podkluczy.
Podklucze deszyfrujące generowane są na podstawie podkluczy szyfrujących
z wykorzystaniem operacji odwrotności modulo 216+1 (oznaczanego przez Zj-1) oraz
odwrotności względem dodawania modulo 216 (-Zj). Dokładne zależności pomiędzy
podkluczami szyfrującymi a deszyfrującymi przedstawia tabela 1 .
Tabela 1
Zależności pomiędzy kluczami szyfrującymi a deszyfrującymi
Podklucze szyfrujące
Podklucze deszyfrujące
Iteracja 1
Z1 Z2 Z3 Z4 Z5 Z6
Z49-1 -Z50 -Z51 Z52-1 Z47 Z48
Iteracja 2
Z7 Z8 Z9 Z10 Z11 Z12
Z43-1 -Z45 -Z44 Z46-1 Z41 Z42
Iteracja 3
Z13 Z14 Z15 Z16 Z17 Z18
Z37-1 -Z39 -Z38 Z40-1 Z35 Z36
Iteracja 4
Z19 Z20 Z21 Z22 Z23 Z24
Z31-1 -Z33 -Z32 Z34-1 Z29 Z30
Iteracja 5
Z25 Z26 Z27 Z28 Z29 Z30
Z25-1 -Z27 -Z26 Z28-1 Z23 Z24
Iteracja 6
Z31 Z32 Z33 Z34 Z35 Z36
Z19-1 -Z21 -Z20 Z22-1 Z17 Z18
Iteracja 7
Z37 Z38 Z39 Z40 Z41 Z42
Z13-1 -Z15 -Z14 Z16-1 Z11 Z12
Iteracja 8
Z43 Z44 Z45 Z46 Z47 Z48
Z7-1 –Z9 –Z8 Z10-1 Z5 Z6
Z49 Z50 Z51 Z52
Z1-1 -Z2 -Z3 Z4-1
Przekształcanie
3

Podobne dokumenty