International Data Encryption
Algorithm (IDEA)
• шифрира 64-битни податак
користећи 128-битни кључ
• базиран делимично на Feistel
алгоритму
• састоји се из осам рачунски
идентичних итерација и излазне
трансформације
3/12
International Data Encryption
Algorithm (IDEA)
• Доминантан концепт дизајна овог
алгоритма је мешање рачунских
операција из три различите алгебарске
групе од по 216 елемената.
• Операције које се користе над 16-
битним величинама су:
– XOR на нивоу бита, записано као a⊕b,
– сабирање по модулу 216, записано као .
– Множење по модулу 216+1, где је 0 = 216,
записано као . 4/12
IDEA шифровање
• Улаз: 64-битна оригинална
порука М = m0m1...m63, кључ
К = к0к1...к127.
• Излаз: 64-битни шифровани
блок Y = (Y1, Y2, Y3, Y4).
6/12
IDEA шифровање (2)
Кораци алгоритма приликом шифровања:
• Распоређивање кључа: потребно је
посебно дефинисаним алгоритмом од
128-битног кључа формирати групе од
по шест 16-битних подкључева за сваку
итерацију К1
(r),…,K6
(r), где је 1 <= r <= 8 и
још четири 16-битна кључа за финалну
трансформацију К1
(9),...,К4
(9).
• Формирамо (X1, X2, X3, X4) <- (m0…m15,
m16…m31, m32…m47, m48…m63).
7/12
IDEA шифровање (3)
• За рунду r, која иде од 1 до 8, ради се
следеће:
• На крају се ради излазна
трансформација:
8/12
IDEA распоред кључа
• Улаз: 128-битни кључ К.
• Излаз: 52 16-битна подкључа за све
итерације и излазну трансформацију.
• Одредити редослед подкључева:
К1
(1),...,К6
(1),
К1
(2),...,К6
(2),...,К1
(8),...,К6
(8),К1
(9),...,К4
(9).
• Поделити кључ К на 8 16-битних
подкључева који представљају првих 8
подкључева према претходно
формираном редоследу. 9/12
IDEA распоред кључа (2)
• У итерацијама вршити кружно
померање улево оригиналног кључа К
за 25 бита, све док сви подкључеви не
добију вредност. Након сваког
померања добијена вредност се подели
на 8 16-битних подкључева и додели
наредним подкључевима према
направљеном распореду.
10/12
IDEA дешифровање
• пролазе се кораци уназад у односу на шифровање
• или, помоћу Feistel алгоритма, понови се шифровање
коришћењем шифроване поруке Y као улазне
вредности M уз промене у распоређивању кључа.
• Код распоређивања кључа, прво се израчунају сви
подкључеви Кi
(r) на претходно описан начин. Затим се
за сваки подкључ израчуна инверзни подкључ К’i(r),
који ће се користити у алгоритму, према следећој
табели:
11/12
Сигурност IDEA – величина
блока
• brute force претрага је тренутно једина
могућност напада на овај алгоритам, што је
са кључем од 128-бита још увек сигурно.
• мана је мала величина блока који се шифрује
у односу на величину кључа (64-бита).
12/12