IDEA

Материал из Википедии — свободной энциклопедии
Текущая версия страницы покане проверялась опытными участниками и может значительно отличаться отверсии, проверенной 7 октября 2016 года; проверки требуют34 правки.
Перейти к навигацииПерейти к поиску
У этого термина существуют и другие значения, см.IDEA (значения).
IDEA, International Data Encryption Algorithm
СоздательAscom
Создан1991 год
Опубликован1991 год
Размер ключа128 бит
Размер блока64 бит
Число раундов8.5
Типмодификациясети Фейстеля[1]

IDEA (англ. InternationalDataEncryptionAlgorithm, международный алгоритм шифрования данных) —симметричныйблочныйалгоритмшифрованияданных,запатентованный швейцарской фирмойAscom. Известен тем, что применялся в пакете программ шифрованияPGP. В ноябре2000 года IDEA был представлен в качестве кандидата в проектеNESSIE в рамках программыЕвропейской комиссии IST (англ. Information Societies Technology, информационные общественные технологии).

Содержание

История

[править |править код]

Первую версию алгоритма разработали в1990 годуЛай Сюэцзя (Xuejia Lai) иДжеймс Мэсси (James Massey) из Швейцарского институтаETH Zürich (по контракту сHasler Foundation, которая позже влилась в Ascom-Tech AG) в качестве заменыDES (англ. Data Encryption Standard, стандарт шифрования данных) и назвали её PES (англ. Proposed Encryption Standard, предложенный стандарт шифрования). Затем, после публикации работ Бихама и Шамира подифференциальному криптоанализу PES, алгоритм был улучшен с целью усилениякриптостойкости и назван IPES (англ. Improved Proposed Encryption Standard, улучшенный предложенный стандарт шифрования). Через год его переименовали в IDEA (англ. International Data Encryption Algorithm).

Описание

[править |править код]

Так как IDEA использует 128-битныйключ и 64-битныйразмер блока, открытый текст разбивается на блоки по 64 бит. Если такое разбиение невозможно, последний блок дополняется различными способами определённой последовательностью бит. Для избежания утечки информации о каждом отдельном блоке используются различныережимы шифрования. Каждый исходный незашифрованный 64-битный блок делится на четыре подблока по 16 бит каждый, так как все алгебраические операции, использующиеся в процессе шифрования, совершаются над 16-битными числами. Для шифрования и расшифрования IDEA использует один и тот же алгоритм.

Используемые обозначения операций

Фундаментальным нововведением в алгоритме является использование операций из разных алгебраическихгрупп, а именно:

Эти три операции несовместимы в том смысле, что:

Применение этих трех операций затрудняет криптоанализ IDEA по сравнению сDES, который основан исключительно на операцииисключающее ИЛИ, а также позволяет отказаться от использованияS-блоков и таблиц замены. IDEA является модификациейсети Фейстеля.

Генерация ключей

[править |править код]

Из 128-битногоключа для каждого из восьмираундов шифрования генерируется по шесть 16-битных подключей, а для выходного преобразования генерируется четыре 16-битных подключа. Всего потребуется 52 = 8 x 6 + 4 различных подключей по 16 бит каждый. Процесс генерации пятидесяти двух 16-битных ключей заключается в следующем:

  • Первым делом, 128-битный ключ разбивается на восемь 16-битных блоков. Это будут первые восемь подключей по 16 бит каждый —(K1(1)K2(1)K3(1)K4(1)K5(1)K6(1)K1(2)K2(2)){\displaystyle (K_{1}^{(1)}K_{2}^{(1)}K_{3}^{(1)}K_{4}^{(1)}K_{5}^{(1)}K_{6}^{(1)}K_{1}^{(2)}K_{2}^{(2)})}
  • Затем этот 128-битный ключ циклически сдвигается влево на 25 позиций, после чего новый 128-битный блок снова разбивается на восемь 16-битных блоков. Это уже следующие восемь подключей по 16 бит каждый —(K3(2)K4(2)K5(2)K6(2)K1(3)K2(3)K3(3)K4(3)){\displaystyle (K_{3}^{(2)}K_{4}^{(2)}K_{5}^{(2)}K_{6}^{(2)}K_{1}^{(3)}K_{2}^{(3)}K_{3}^{(3)}K_{4}^{(3)})}
  • Процедура циклического сдвига и разбивки на блоки продолжается до тех пор, пока не будут сгенерированы все 52 16-битных подключа.
Таблица подключей для каждого раунда
Номер раундаПодключи
1K1(1)K2(1)K3(1)K4(1)K5(1)K6(1){\displaystyle K_{1}^{(1)}K_{2}^{(1)}K_{3}^{(1)}K_{4}^{(1)}K_{5}^{(1)}K_{6}^{(1)}}
2K1(2)K2(2)K3(2)K4(2)K5(2)K6(2){\displaystyle K_{1}^{(2)}K_{2}^{(2)}K_{3}^{(2)}K_{4}^{(2)}K_{5}^{(2)}K_{6}^{(2)}}
3K1(3)K2(3)K3(3)K4(3)K5(3)K6(3){\displaystyle K_{1}^{(3)}K_{2}^{(3)}K_{3}^{(3)}K_{4}^{(3)}K_{5}^{(3)}K_{6}^{(3)}}
4K1(4)K2(4)K3(4)K4(4)K5(4)K6(4){\displaystyle K_{1}^{(4)}K_{2}^{(4)}K_{3}^{(4)}K_{4}^{(4)}K_{5}^{(4)}K_{6}^{(4)}}
5K1(5)K2(5)K3(5)K4(5)K5(5)K6(5){\displaystyle K_{1}^{(5)}K_{2}^{(5)}K_{3}^{(5)}K_{4}^{(5)}K_{5}^{(5)}K_{6}^{(5)}}
6K1(6)K2(6)K3(6)K4(6)K5(6)K6(6){\displaystyle K_{1}^{(6)}K_{2}^{(6)}K_{3}^{(6)}K_{4}^{(6)}K_{5}^{(6)}K_{6}^{(6)}}
7K1(7)K2(7)K3(7)K4(7)K5(7)K6(7){\displaystyle K_{1}^{(7)}K_{2}^{(7)}K_{3}^{(7)}K_{4}^{(7)}K_{5}^{(7)}K_{6}^{(7)}}
8K1(8)K2(8)K3(8)K4(8)K5(8)K6(8){\displaystyle K_{1}^{(8)}K_{2}^{(8)}K_{3}^{(8)}K_{4}^{(8)}K_{5}^{(8)}K_{6}^{(8)}}
выходное преобразованиеK1(9)K2(9)K3(9)K4(9){\displaystyle K_{1}^{(9)}K_{2}^{(9)}K_{3}^{(9)}K_{4}^{(9)}}

Шифрование

[править |править код]
Схема шифрования IDEA

Структура алгоритма IDEA показана на рисунке. Процессшифрования состоит из восьми одинаковых раундов шифрования и одного выходного преобразования. Исходный незашифрованный текст делится на блоки по 64 бита. Каждый такой блок делится на четыре подблока по 16 бит каждый. На рисунке эти подблоки обозначеныD1{\displaystyle D_{1}},D2{\displaystyle D_{2}},D3{\displaystyle D_{3}},D4{\displaystyle D_{4}}. В каждом раунде используются свои подключи согласно таблице подключей. Над 16-битными подключами и подблоками незашифрованного текста производятся следующие операции:

В конце каждого раунда шифрования имеется четыре 16-битных подблока, которые затем используются как входные подблоки для следующего раунда шифрования. Выходное преобразование представляет собой укороченный раунд, а именно, четыре 16-битных подблока на выходе восьмого раунда и четыре соответствующих подключа подвергаются операциям:

После выполнения выходного преобразованияконкатенация подблоковD1{\displaystyle D_{1}'},D2{\displaystyle D_{2}'},D3{\displaystyle D_{3}'} иD4{\displaystyle D_{4}'} представляет собой зашифрованный текст. Затем берется следующий 64-битный блок незашифрованного текста и алгоритм шифрования повторяется. Так продолжается до тех пор, пока не зашифруются все 64-битные блоки исходного текста.

Математическое описание

[править |править код]

A(i) = D1(i1)K1(i){\displaystyle A^{(i)}\ =\ D_{1}^{(i-1)}*K_{1}^{(i)}}
B(i) = D2(i1)+K2(i){\displaystyle B^{(i)}\ =\ D_{2}^{(i-1)}+K_{2}^{(i)}}
C(i) = D3(i1)+K3(i){\displaystyle C^{(i)}\ =\ D_{3}^{(i-1)}+K_{3}^{(i)}}
D(i) = D4(i1)K4(i){\displaystyle D^{(i)}\ =\ D_{4}^{(i-1)}*K_{4}^{(i)}}
E(i) = A(i)C(i){\displaystyle E^{(i)}\ =\ A^{(i)}\oplus C^{(i)}}
F(i) = B(i)D(i){\displaystyle F^{(i)}\ =\ B^{(i)}\oplus D^{(i)}}

D1(i) = A(i)((F(i)+E(i)K5(i))K6(i)){\displaystyle D_{1}^{(i)}\ =\ A^{(i)}\oplus ((F^{(i)}+E^{(i)}*K_{5}^{(i)})*K_{6}^{(i)})}
D2(i) = C(i)((F(i)+E(i)K5(i))K6(i)){\displaystyle D_{2}^{(i)}\ =\ C^{(i)}\oplus ((F^{(i)}+E^{(i)}*K_{5}^{(i)})*K_{6}^{(i)})}
D3(i) = B(i)(E(i)K5(i)+(F(i)+E(i)K5(i))K6(i)){\displaystyle D_{3}^{(i)}\ =\ B^{(i)}\oplus (E^{(i)}*K_{5}^{(i)}+(F^{(i)}+E^{(i)}*K_{5}^{(i)})*K_{6}^{(i)})}
D4(i) = D(i)(E(i)K5(i)+(F(i)+E(i)K5(i))K6(i)){\displaystyle D_{4}^{(i)}\ =\ D^{(i)}\oplus (E^{(i)}*K_{5}^{(i)}+(F^{(i)}+E^{(i)}*K_{5}^{(i)})*K_{6}^{(i)})}
Результатом выполнения восьми раундов будут следующие четыре подблока(D1(8),D2(8),D3(8),D4(8)){\displaystyle (D_{1}^{(8)},D_{2}^{(8)},D_{3}^{(8)},D_{4}^{(8)})}

D1(9) = D1(8)K1(9){\displaystyle D_{1}^{(9)}\ =\ D_{1}^{(8)}*K_{1}^{(9)}}
D2(9) = D3(8)+K2(9){\displaystyle D_{2}^{(9)}\ =\ D_{3}^{(8)}+K_{2}^{(9)}}
D3(9) = D2(8)+K3(9){\displaystyle D_{3}^{(9)}\ =\ D_{2}^{(8)}+K_{3}^{(9)}}
D4(9) = D4(8)K4(9){\displaystyle D_{4}^{(9)}\ =\ D_{4}^{(8)}*K_{4}^{(9)}}
Результатом выполнения выходного преобразования является зашифрованный текст(D1(9),D2(9),D3(9),D4(9)){\displaystyle (D_{1}^{(9)},D_{2}^{(9)},D_{3}^{(9)},D_{4}^{(9)})}

Расшифровка

[править |править код]

Метод вычисления, использующийся для расшифровки текста по существу такой же, как и при его шифровании. Единственное отличие состоит в том, что для расшифровки используются другие подключи. В процессе расшифровки подключи должны использоваться в обратном порядке. Первый и четвёртый подключи i-го раунда расшифровки получаются из первого и четвёртого подключа (10-i)-го раунда шифрования мультипликативной инверсией. Для 1-го и 9-го раундов второй и третий подключи расшифровки получаются из второго и третьего подключей 9-го и 1-го раундов шифрования аддитивной инверсией. Для раундов со 2-го по 8-й второй и третий подключи расшифровки получаются из третьего и второго подключей с 8-го по 2-й раундов шифрования аддитивной инверсией. Последние два подключа i-го раунда расшифровки равны последним двум подключам (9-i)-го раунда шифрования. Мультипликативная инверсия подключа K обозначается 1/K и(1/K)K=1 mod (216+1){\displaystyle (1/K)*K=1\ mod\ (2^{16}+1)}. Так как216+1{\displaystyle 2^{16}+1} —простое число, каждое целое не равное нулю K имеет уникальную мультипликативную инверсию по модулю216+1{\displaystyle 2^{16}+1}. Аддитивная инверсия подключа K обозначается -K иK+K=0 mod (216){\displaystyle -K+K=0\ mod\ (2^{16})}.

Таблица подключей для каждого раунда
Номер раундаПодключи
11/K1(9) K2(9) K3(9) 1/K4(9) K5(8) K6(8){\displaystyle 1/K_{1}^{(9)}\ -K_{2}^{(9)}\ -K_{3}^{(9)}\ 1/K_{4}^{(9)}\ K_{5}^{(8)}\ K_{6}^{(8)}}
21/K1(8) K3(8) K2(8) 1/K4(8) K5(7) K6(7){\displaystyle 1/K_{1}^{(8)}\ -K_{3}^{(8)}\ -K_{2}^{(8)}\ 1/K_{4}^{(8)}\ K_{5}^{(7)}\ K_{6}^{(7)}}
31/K1(7) K3(7) K2(7) 1/K4(7) K5(6) K6(6){\displaystyle 1/K_{1}^{(7)}\ -K_{3}^{(7)}\ -K_{2}^{(7)}\ 1/K_{4}^{(7)}\ K_{5}^{(6)}\ K_{6}^{(6)}}
41/K1(6) K3(6) K2(6) 1/K4(6) K5(5) K6(5){\displaystyle 1/K_{1}^{(6)}\ -K_{3}^{(6)}\ -K_{2}^{(6)}\ 1/K_{4}^{(6)}\ K_{5}^{(5)}\ K_{6}^{(5)}}
51/K1(5) K3(5) K2(5) 1/K4(5) K5(4) K6(4){\displaystyle 1/K_{1}^{(5)}\ -K_{3}^{(5)}\ -K_{2}^{(5)}\ 1/K_{4}^{(5)}\ K_{5}^{(4)}\ K_{6}^{(4)}}
61/K1(4) K3(4) K2(4) 1/K4(4) K5(3) K6(3){\displaystyle 1/K_{1}^{(4)}\ -K_{3}^{(4)}\ -K_{2}^{(4)}\ 1/K_{4}^{(4)}\ K_{5}^{(3)}\ K_{6}^{(3)}}
71/K1(3) K3(3) K2(3) 1/K4(3) K5(2) K6(2){\displaystyle 1/K_{1}^{(3)}\ -K_{3}^{(3)}\ -K_{2}^{(3)}\ 1/K_{4}^{(3)}\ K_{5}^{(2)}\ K_{6}^{(2)}}
81/K1(2) K3(2) K2(2) 1/K4(2) K5(1) K6(1){\displaystyle 1/K_{1}^{(2)}\ -K_{3}^{(2)}\ -K_{2}^{(2)}\ 1/K_{4}^{(2)}\ K_{5}^{(1)}\ K_{6}^{(1)}}
выходное преобразование1/K1(1) K2(1) K3(1) 1/K4(1){\displaystyle 1/K_{1}^{(1)}\ -K_{2}^{(1)}\ -K_{3}^{(1)}\ 1/K_{4}^{(1)}}

Пример

[править |править код]

Для удобства числа представляем в шестнадцатеричном виде.

Пример шифрования

[править |править код]

В качестве 128-битного ключа используемK = (0001,0002,0003,0004,0005,0006,0007,0008), а в качестве 64-битного открытого текстаM = (0000,0001,0002,0003)

Таблица подключей и подблоков для каждого раунда
РаундРаундовые ключиЗначения блоков данных
K1(i){\displaystyle K_{1}^{(i)}}K2(i){\displaystyle K_{2}^{(i)}}K3(i){\displaystyle K_{3}^{(i)}}K4(i){\displaystyle K_{4}^{(i)}}K5(i){\displaystyle K_{5}^{(i)}}K6(i){\displaystyle K_{6}^{(i)}}D1(i){\displaystyle D_{1}^{(i)}}D2(i){\displaystyle D_{2}^{(i)}}D3(i){\displaystyle D_{3}^{(i)}}D4(i){\displaystyle D_{4}^{(i)}}
 —0000000100020003
100010002000300040005000600f000f5010a0105
2000700080400060008000a00222f21b5f45ee959
30c000e0010000200001000140f8639be8ee81173
40018001c002000040008000c57dfac58c65bba4d
52800300038004000080010008e81ba9cf77f3a4a
618002000007000800010002069429409e21b1c64
700300040005000600000200099d0c7f65331620e
8400060008000a000c000e0010a240098ec6b4925
9008000c001000140--11fbed2b01986de5

Пример расшифровки

[править |править код]

В качестве 128-битного ключа используемK = (0001,0002,0003,0004,0005,0006,0007,0008), а в качестве 64-битного зашифрованного текстаC = (11fb, ed2b, 0198, 6de5)

Таблица подключей и подблоков для каждого раунда
РаундРаундовые ключиЗначения блоков данных
K1(i){\displaystyle K_{1}^{'(i)}}K2(i){\displaystyle K_{2}^{'(i)}}K3(i){\displaystyle K_{3}^{'(i)}}K4(i){\displaystyle K_{4}^{'(i)}}K5(i){\displaystyle K_{5}^{'(i)}}K6(i){\displaystyle K_{6}^{'(i)}}D1(i){\displaystyle D_{1}^{(i)}}D2(i){\displaystyle D_{2}^{(i)}}D3(i){\displaystyle D_{3}^{(i)}}D4(i){\displaystyle D_{4}^{(i)}}
1fe01ff40ff00659ac000e001d98dd33127f682b8
2fffd8000a000cccc00002000bc4de26b9449a576
3a556ffb0ffc052ab001000200aa4f7efda9c24e3
4554bff90e000fe0108001000ca46fe5bdc58116d
5332dc800d000fffd0008000c748f8f0839da45cc
64aabffe0ffe4c001001000143266045e2fb5b02e
7aa96f000f200ff8108000a000690050a00fd1dfa
84925fc00fff8552b00050006000000050003000c
90001fffefffdc001--0000000100020003

Режимы шифрования

[править |править код]

IDEA является блочным алгоритмом шифрования, работающим с блоками по 64 бита. При несовпадении размера шифруемого текста с этим фиксированным размером, блок дополняется до 64.

Алгоритм используется в одном из следующихрежимов шифрования[ISO 1]:

Алгоритм может также применяться для вычисления

Аппаратная реализация

[править |править код]

Аппаратная реализация имеет перед программной следующие преимущества:

  • существенное повышение скорости шифрования за счёт использования параллелизма при выполнении операций
  • меньшее энергопотребление

Первая реализация алгоритма IDEA наинтегральной схеме(англ. Very Large Scale Integration) была разработана иверифицирована Лаем, Мэсси и Мёрфи в1992 году с использованием технологического процесса 1,5 мкм и технологииКМОП[ИС 1].Скорость шифрования данного устройства составляла 44 Мб/сек.

В1994 году Каригером, Бонненбергом, Зиммерманом и др. было разработано устройствоVINCI.Скорость шифрования данной реализации IDEA составляла 177 Мб/сек притактовой частоте 25МГц, техпроцесс 1,2 мкм. Это было первое полупроводниковое устройство, которое уже могло применяться для шифрования в реальном времени в таких высокоскоростныхсетевых протоколах, какATM (англ. Asynchronous Transfer Mode, асинхронный способ передачи данных) илиFDDI (англ. Fiber Distributed Data Interface, распределённый волоконный интерфейс данных). Скорость 177 Мб/сек была достигнута благодаря использованию довольно изощрённой схемыконвейерной обработки и четырёх обычных умножителей по модулю216+1{\displaystyle 2^{16}+1}. В устройстве также используются два однонаправленных высокоскоростных 16-битных порта данных. Эти порты обеспечивают постоянную загруженность блоков шифрования[ИС 2][ИС 3].

Уже в следующем году Вольтер и др. представили устройство со скоростью шифрования 355 Мб/сек. Такой скорости удалось добиться благодаря реализации одного раунда шифрования на технологическом процессе 0,8 мкм с использованием технологииКМОП. Архитектура данного устройства включает в себя параллельное самотестирование, основанное на системе обработки ошибок с вычислениями по модулю 3, которая позволяет определять возникающие ошибки в одном или нескольких разрядах в тракте данных IDEA, что позволяет надёжно предотвращать искажения зашифрованных или расшифрованных данных[ИС 4].

Наибольшей скорости шифрования 424 Мб/сек в1998 году на одной интегральной схеме достигла группа инженеров во главе с Саломао изФедерального Университета Рио-де-ЖанейроCOPPE на технологическом процессе 0,7 мкм при частоте 53 МГц. Архитектура данной реализации использует как пространственный, так и временной параллелизм, доступные в алгоритме IDEA[ИС 5].

В том же году IDEA Менсером и др. был реализован на четырёх устройствах XC4020XL. Скорость шифрования 4 x XC4020XL составляет 528 Мб/сек[ИС 6].

В1999 году фирмой Ascom были представлены две коммерческие реализации IDEA. Первая называется IDEACrypt Kernel и достигает скорости 720 Мб/сек при использовании технологии 0,25 мкм[ИС 7].Вторая называется IDEACrypt Coprocessor, основана на IDEACrypt Kernel и достигает скорости шифрования 300 Мб/сек[ИС 8].

В2000 году инженерами изКитайского университета Гонконга Лионгом и др. были выпущены устройства шифрования наПЛИС фирмыXilinx: Virtex XCV300-6 и XCV1000-6[ИС 9].Скорость шифрования Virtex XCV300-6 достигает 500 Мб/сек при частоте 125 МГц, а предполагаемая производительность XCV1000-6 составляет 2,35 Гб/сек, что позволяет использовать данное устройство для шифрования в высокоскоростных сетях. Высокой скорости шифрования удалось достигнуть используя разрядно-последовательную архитектуру для выполнения операции умножения по модулю216+1{\displaystyle 2^{16}+1}. Результаты экспериментов с разными устройствами сведены в таблицу:

Характеристики устройств
Устройство (XCV)300-6600-61000-6
масштабируемость
1x
2x
4x
число секций
2801
5602
11204
использование секций
91,18 %
81,05 %
91,18 %
тактовая частота (МГц)
125,0
136,6
147,1
шифрований в сек (x106{\displaystyle 10^{6}})
7,813
17,075
36,775
скорость шифрования (Мб/сек)
500,0
1092,8
2353,6
латентность (мкс)
7,384
6,757
6,275

Чуть позже теми же разработчиками была предложено устройство наПЛИС фирмыXilinx Virtex XCV300-6 на основе разрядно-параллельной архитектуры. При реализации с использованием разрядно-параллельной архитектуры при работе на частоте 82 МГц скорость шифрования XCV300-6 составляет 1166 Мб/сек, тогда как с разрядно-последовательной было достигнуто 600 Мб/сек на частоте 150 МГц. Устройство XCV300-6 с обеими архитектурами масштабируемо. С использованием разрядно-параллельной архитектуры предполагаемая скорость шифрования XCV1000-6 составляет 5,25 Гб/сек[ИС 10].

В том же2000 году Гольдштейном и др. разработано устройство на PipeRenchПЛИС с использованием технологического процесса 0,25 мкм со скоростью шифрования 1013 Мб/сек[ИС 11].

Развитие аппаратных реализаций IDEA
ГодРеализацияСкорость шифрования (Мб/сек)Авторы
1998
программная
23,53
Limpaa
2000
программная[1]
44
Limpaa
1992
ASIC 1,5 мкмКМОП
44
Bonnenberg и др.
1994
ASIC 1,2 мкмКМОП
177
Curiger, Zimmermann и др.
1995
ASIC 0,8 мкмКМОП
355
Wolter и др.
1998
ASIC 0,7 мкмКМОП
424
Salomao и др.
1998
4 x XC4020XL
528
Mencer и др.
1999
ASIC 0,25 мкмКМОП
720
Ascom
2000
Xilinx Virtex XCV300-6
1166
Leong и др.
2000
ASIC 0,25 мкмКМОП
1013
Goldstein и др.

В2002 году была опубликована работа о реализации IDEA наПЛИС все той же фирмы Xilinx семейства Virtex-E. Устройство XCV1000E-6BG560 при частоте 105,9 МГц достигает скорости шифрования 6,78 Гб/сек.[2]

Реализации на основеПЛИС — хороший выбор, когда речь идёт о высокопроизводительной криптографии. Среди применений —VPN (англ. Virtual Private Networks, виртуальная частная сеть), связь через спутник а также аппаратные ускорители для шифрования огромных файлов илижёстких дисков целиком.

Криптостойкость

[править |править код]

Алгоритм IDEA появился в результате незначительных модификаций алгоритма PES. На рисунке приведены структуры обоих алгоритмов, и видно, что изменений не так уж и много:

  • умножение подблокаD2{\displaystyle D_{2}} со вторым подключом раунда заменено сложением
  • сложение подблокаD4{\displaystyle D_{4}} с четвёртым подключом раунда заменено на умножение
  • изменён сдвиг подблоков в конце раунда

Один из наиболее известных в мире криптологовБрюс Шнайер в своей книге «Прикладная криптография» заметил: «…удивительно, как такие незначительные изменения могут привести к столь большим различиям».

Структуры алгоритмов PES и IDEA

В той же книге, вышедшей в1996 году, Брюс Шнайер отозвался об IDEA так: «Мне кажется, это самый лучший и надежный блочный алгоритм, опубликованный до настоящего времени».

В алгоритме IDEA использует 64-битные блоки. Длина блока должна быть достаточной, чтобы скрыть статистические характеристики исходного сообщения. Но с увеличением размера блока экспоненциально возрастает сложность реализации криптографического алгоритма. В алгоритме IDEA используется 128-битный ключ. Длина ключа должна быть достаточно большой, чтобы предотвратить возможность перебора ключа. Для вскрытия 128-битного ключа полным перебором ключей при условии, что известен открытый и соответствующий ему зашифрованный текст, потребуется2128{\displaystyle 2^{128}}(порядка1038{\displaystyle 10^{38}}) шифрований. При такой длине ключа IDEA считается довольно безопасным. Высокая криптостойкость IDEA обеспечивается также такими характеристиками:

  • запутывание — шифрование зависит от ключа сложным и запутанным образом
  • рассеяние — каждый бит незашифрованного текста влияет на каждый бит зашифрованного текста

Лай Сюэцзя (Xuejia Lai) иДжеймс Мэсси (James Massey) провели тщательный анализ IDEA с целью выяснения егокриптостойкости кдифференциальному криптоанализу. Для этого ими было введено понятие марковского шифра и продемонстрировано, что устойчивость к дифференциальному криптоанализу может быть промоделирована и оценена количественно[стойкость 1].Линейных или алгебраических слабостей у IDEA выявлено не было. Попытка вскрытия с помощью криптоанализа со связанными ключами, проведенная Бихамом (Biham), также не увенчалась успехом[стойкость 2].

Существуют успешные атаки, применимые к IDEA с меньшим числом раундов (полный IDEA имеет 8.5 раундов). Успешной считается атака, если вскрытие шифра с её помощью требует меньшего количества операций, чем при полном переборе ключей. Метод вскрытия Вилли Майера (Willi Meier) оказался эффективнее вскрытия полным перебором ключей только для IDEA с 2 раундами[стойкость 3].Методом «встреча посередине» был вскрыт IDEA с 4,5 раундами. Для этого требуется знание всех264{\displaystyle 2^{64}} блоков из словаря кодов и сложность анализа составляет2112{\displaystyle 2^{112}} операций[стойкость 4].Лучшая атака на2007 год применима ко всем ключам и может взломать IDEA с 6-ю раундами[стойкость 5].

Слабые ключи

[править |править код]

Существуют большие классыслабых ключей. Слабые они в том смысле, что существуют процедуры, позволяющие определить, относится ли ключ к данному классу, а затем и сам ключ. В настоящее время известны следующие:

  • 263{\displaystyle 2^{63}} слабых к линейному дифференциальному криптоанализу ключей[стойкость 7]. Принадлежность к данному классу выясняется с помощью теста на связанных ключах.

Существование столь больших классов слабых ключей не влияет на практическую криптостойкость алгоритма IDEA, так как полное число всех возможных ключей равно2128{\displaystyle 2^{128}}.

Сравнение с некоторыми блочными алгоритмами

[править |править код]

Для сравнения с IDEA выбраныDES,Blowfish иГОСТ 28147-89. ВыборDES обусловлен тем, что IDEA проектировался как его замена.Blowfish выбран потому, что он быстр, и был придуман известным криптологом Брюсом Шнайером. Для сравнения также выбранГОСТ 28147-89, блочный шифр, разработанный вСССР. Как видно из таблицы, размер ключа у IDEA больше, чем у DES, но меньше, чем у ГОСТ 28147-89 и Blowfish. Скорость шифрования IDEA наIntel486SX/33МГц больше в 2 раза, чем у DES, выше чем у ГОСТ 28147-89, но почти в 2 раза меньше, чем у Blowfish.

Таблица параметров
АлгоритмРазмер ключа, битДлина блока, битЧисло раундовСкорость шифрования наIntel486SX/33МГц (Кбайт/с)Основные операции
DES
56
64
16
35
Подстановка, перестановка, побитовое исключающее ИЛИ
IDEA
128
64
8
70
Умножение по модулю216+1{\displaystyle 2^{16}+1}, сложение по модулю216{\displaystyle 2^{16}}, побитовое исключающее ИЛИ
Blowfish
32-448
64
16
135
Сложение по модулю232{\displaystyle 2^{32}}, подстановка, побитовое исключающее ИЛИ
ГОСТ 28147-89
256
64
32
53
Сложение по модулю232{\displaystyle 2^{32}}, подстановка, побитовое исключающее ИЛИ, циклический сдвиг

Далее приведена таблица сравнения скоростей в программной реализации на процессорахPentium,Pentium MMX,Pentium II,Pentium III. Обозначение 4-way IDEA означает, что 4 операции шифрования или расшифрования выполняются параллельно. Для этого алгоритм используется в параллельных режимах шифрования. Хельгер Лимпа (Helger Limpaa) реализовал 4-way IDEA врежиме шифрования электронной кодовой книги (CBC4) и режиме счётчика (CTR4). Таким образом была достигнута скорость шифрования/расшифрования 260—275 Мбит/с при использовании CBC4 на 500 МГцPentium III и при использовании CTR4 на 450 МГцPentium III. В приведенной таблице скорости отмасштабированы на гипотетическую 3200 МГц машину.

Таблица сравнения скоростей
Блочный шифрДлина блока, битЧисло цикловСкорость шифрования, Мбайт/сАвторПроцессор
Square
128
192
254,4
Limpaa
Pentium II
RC6
128
219
222,8
Limpaa
Pentium II,Pentium III
4-way IDEA
4x64
440
222,0
Limpaa
Pentium III
Rijndael
128
226
216,0
Limpaa
Pentium II,Pentium III
Square
128
244
200,0
Bosselaers
Pentium
4-way IDEA
4x64
543
180,0
Limpaa
Pentium MMX
SC2000
128
270
180,8
Limpaa
Pentium II,Pentium III,gcc(безasm)
4-way IDEA
4x64
554
176,4
Limpaa
AMD Athlon
Twofish
128
277
176,4
Aoki, Limpaa
Pentium II,Pentium III
Rijndael
128
300
162,8
Gladman
Pentium III
Camellia
128
302
161,6
Aoki
Pentium II,Pentium III
MARS
128
306
160,0
Limpaa
Pentium II,Pentium III
Blowfish
64
158
154,4
Bosselaers
Pentium
RC5-32/16
64
199
122,8
Bosselaers
Pentium
CAST5
64
220
110,8
Bosselaers
Pentium
DES
64
340
72,0
Bosselaers
Pentium
IDEA
64
358
68,0
Limpaa
Pentium MMX
SAFER (S)K-128
64
418
58,4
Bosselaers
Pentium
SHARK
64
585
41,6
Bosselaers
Pentium
IDEA
64
590
41,2
Bosselaers
Pentium
3DES
64
158
154,4
Bosselaers
Pentium

Преимущества и недостатки IDEA

[править |править код]

Преимущества

[править |править код]

В программной реализации наIntel486SX по сравнению сDES IDEA в два раза быстрее, что является существенным повышением скорости, длина ключа у IDEA имеет размер 128 бит, против 56 бит у DES, что является хорошим улучшением против полного перебора ключей. Вероятность использования слабых ключей очень мала и составляет1/264{\displaystyle 1/2^{64}}. IDEA быстрее алгоритмаГОСТ 28147-89 (в программной реализации наIntel486SX). Использование IDEA в параллельных режимах шифрования на процессорахPentium III иPentium MMX позволяет получать высокие скорости. По сравнению с финалистами AES, 4-way IDEA лишь слегка медленнее, чемRC6 иRijndael наPentium II, но быстрее, чемTwofish иMARS. НаPentium III 4-way IDEA даже быстрееRC6 иRijndael. Преимуществом также является хорошая изученность и устойчивость к общеизвестным средствам криптоанализа.

Недостатки

[править |править код]

IDEA значительно медленнее, почти в два раза, чемBlowfish (в программной реализации наIntel486SX). IDEA не предусматривает увеличение длины ключа.

Сравнение с некоторыми блочными шифрами в реализации PGP

[править |править код]
Таблица сравнения основных параметров блочных шифров в реализацииPGP[2]
АлгоритмКлюч, битБлок, битПримечания
Triple-DES
168
64
Сеть Фейстеля; имеет пространство полуслабых и слабых ключей.
AES (Rijndael)
256
128
Основан на операциях с таблицами массивов данных; принят в качестве гос. стандарта в США; обладает высокой криптостойкостью.
CAST6
128
64
Сеть Фейстеля; не имеет слабых ключей;устойчив к криптоанализу.
IDEA
128
64
Основан на смешении операций из разных алгебраических групп; имеет пространство слабых ключей; не все работы по криптоанализу были опубликованы.
Twofish
256
128
Сеть Фейстеля; быстр при шифровании, медленная установка ключа; устроен сравнительно сложно, что затрудняет анализ; имеет большой запас прочности.
Blowfish
max 448
64
Сеть Фейстеля; быстр при шифровании, медленная установка ключа; сравнительно прост; имеет небольшое пространство слабых ключей; имеет большой запас прочности.

Применение IDEA

[править |править код]

В прошлом алгоритм был запатентован во многих странах, а само название «IDEA» было зарегистрированной торговой маркой. Однако последний связанный с алгоритмом патент истёк в 2012, и теперь сам алгоритм может быть свободно использован в любых целях. В2005 году MediaCrypt AG (лицензиат IDEA) официально представила новый шифрIDEA NXT (первоначальное название FOX), призванный заменить IDEA.Типичные области применения IDEA:

Регистрация алгоритма IDEA в стандартах

[править |править код]

Источники

[править |править код]
  • Xuejia Lai and James Massey. Предложение нового блочного стандарта шифрования = A Proposal for a New Block Encryption Standard,EUROCRYPT 1990. — Springer-Verlag, 1991. — P. 389—404. —ISBN 3-540-53587-X.
  • Xuejia Lai and James Massey. Марковские шифры и дифференциальный криптоанализ = Markov ciphers and differential cryptanalysis, Advances in Cryptology,EUROCRYPT 1991. — Springer-Verlag, 1992. — P. 17—38. —ISBN 3540546200.
  • Menezes A. J.,van Oorschot P.,Vanstone S. A.Handbook of Applied Cryptography (англ.) — Boca Raton:CRC Press, 1996. — 816 p. — (Discrete Mathematics and Its Applications) —ISBN 978-0-8493-8523-0
  • Шнайер Б. Прикладная криптография. Протоколы, алгоритмы, исходные тексты на языке Си = Applied Cryptography. Protocols, Algorithms and Source Code in C. —М.: Триумф, 2002. — 816 с. —3000 экз. —ISBN 5-89392-055-4.
  • Hüseyin Demirci, Erkan Türe, Ali Aydin Selçuk. A New Meet in the Middle Attack on The IDEA Block Cipher : Материалы конф. / 10th Annual Workshop on Selected Areas in Cryptography, 2003.
  • Helger Limpaa. IDEA: Шифр для мультимедиа архитектур? = IDEA: A cipher for multimedia architectures? In Stafford Tavares and Henk Meijer, editors, Selected Areas in Cryptography '98, volume 1556 of Lecture Notes in Computer Science — Springer-Verlag, 17—18 August 1998. — P. 248—263.

Примечания

[править |править код]
  1. Menezes, Oorschot, Vanstone, 1996, pp. 263.
  2. Сравнительный обзор алгоритмов PGP  (рус.). Дата обращения: 10 ноября 2008. Архивировано 13 мая 2012 года.
  3. S. Garfinkel. Довольно неплохая конфиденциальность = PGP: Pretty Good Privacy. — December 1, 1994. — 430 p. —ISBN 978-1565920989.

Криптостойкость

[править |править код]
  1. X. Lai. On the Design and Security of Block Ciphers, ETH Series in Information Processing // Лекционные записи по теории вычислительных систем = Lecture Notes in Computer Science. — Berlin / Heidelberg: Springer-Verlag, 10 апреля 2006 г. — Т. 1179/1996. — P. 213—222. —ISBN 978-3-540-62031-0.
  2. E. Biham, personal communication, 1993
  3. W. Meier, HTL. Brugg-Windisch, Switzerland. On the Security of the IDEA Block Cipher // Семинар по теории и применению криптографических техник в работе комиссии Advances in Сryptology EUROCRYPT '93 = Workshop on the theory and application of cryptographic techniques on Advances in Сryptology EUROCRYPT '93 Proceedings. — Secaucus, NJ, USA: Springer-Verlag New York, Inc, 1994. — P. 371—385. —ISBN 3-540-57600-2.
  4. Biham E.,Biryukov A.,Shamir A.Miss in the Middle Attacks on IDEA and Khufu (англ.) //Fast Software Encryption:6th International Workshop, FSE’99 Rome, Italy, March 24–26, 1999 Proceedings /L. R. Knudsen — Berlin, Heidelberg, New York City, London:Springer Berlin Heidelberg, 1999. — P. 124—138. — (Lecture Notes in Computer Science; Vol. 1636) —ISBN 978-3-540-66226-6 — ISSN0302-9743;1611-3349doi:10.1007/3-540-48519-8_10
  5. E. Biham, O. Dunkelman, N. Keller. A New Attack on 6-Round IDEA // Лекционные записи по теории вычислительных систем = Lecture Notes In Computer Science. — Berlin / Heidelberg: Springer-Verlag, 18 августа 2007 г. — Т. 4593/2007. — P. 211—224. —ISBN 978-3-540-74617-1.
  6. J. Daemen, R. Govaerts, and J. Vandewalle. Weak Keys for IDEA // Лекционные записи по теории вычислительных систем; Работа комиссии на 13-й ежегодной международной конференции по криптологии EUROCRYPT 1993 = Lecture Notes In Computer Science; Proceedings of the 13th Annual International Cryptology Conference on Advances in Cryptology. — London, UK: Springer-Verlag, 1993. — Т. 4593/2007. — P. 224—231. —ISBN 3-540-57766-1.
  7. P. Hawkes. Differential-Linear Weak Key Classes of IDEA // Лекционные записи по теории вычислительных систем = Lecture Notes In Computer Science. — Berlin / Heidelberg: Springer-Verlag, 28 июля 2006 г. — Т. 1403/1998. — P. 112—126. —ISBN 978-3-540-64518-4.
  8. D. Wagner. The Boomerang Attack // Лекционные записи по теории вычислительных систем; Работа комиссии на шестом международном семинаре по быстрому программному шифрованию = Lecture Notes In Computer Science; Proceedings of the 6th International Workshop on Fast Software Encryption. — London, UK: Springer-Verlag, 1999. — Т. 1636. — P. 156—170. —ISBN 3-540-66226-X.
  9. A. Biryukov, J. Nakahara Jr, B. Preneel, J. Vandewalle. New Weak-Key Classes of IDEA // Лекционные записи по теории вычислительных систем; Работа комиссии на четвёртой международной конференции по безопасности информации и связи = Lecture Notes In Computer Science; Proceedings of the 4th International Conference on Information and Communications Security. — London, UK: Springer-Verlag, 2002. — Т. 2513. — P. 315—326. —ISBN 3-540-00164-6. — [Архивировано 28 сентября 2011 года.]

Аппаратная реализация

[править |править код]
  1. H. Bonnenberg, A. Curiger, N. Felber, H. Kaeslin, and X. Lai. VLSI implementation of a new block cipher // Работа комиссииIEEE на международной конференции компьютерного проектирования:интегральные схемы в компьютерах и процессорах = Proceedings of the IEEE International Conference on Computer Design: VLSI in Computer and Processors. — Washington, DC, USA: IEEE Computer Society, 1991. — P. 510—513. —ISBN 0-8186-2270-9.
  2. A. Curiger, H. Bonnenberg, R. Zimmerman, N. Felber, H. Kaeslin, and W. Fichtner. VINCI: VLSI implementation of the new secret-key block cipher IDEA // Работа комиссииIEEE на конференции по специализированным интегральным микросхемам = Proceedings of the IEEE Custom Integrated Circuits Conference. — San Diego, CA, USA: IEEE Computer Society, 9-12 May 1993. — P. 15.5.1-15.5.4. —ISBN 0-7803-0826-3.
  3. R. Zimmermann, A. Curiger, H. Bonnenberg, H. Kaeslin, N. Felber, and W. Fichtner. A 177Mb/sec VLSI implementation of the international data encryption algorithm // IEEE Journal of Solid-State Circuits. — March 1994. —Т. 29. —С. 303—307.
  4. S. Wolter, H. Matz, A. Schubert, and R. Laur. On the VLSI implementation of the international data encryption algorithm IDEA // Работа комиссииIEEE на международном симпозиуме по схемам и системам = Proceedings of the IEEE International Symposium on Circuits and Systems. — Seattle, Washington, USA: IEEE Computer Society, 30 Apr-3 May 1995. — Т. 1. — P. 397—400. —ISBN 0-7803-2570-2.
  5. S. L. C. Salomao, V. C. Alves, and E. M. C. Filho. HiPCrypto: A high-performance VLSI cryptographic chip // Работа комиссии на одиннадцатой ежегодной конференцииIEEE поASIC = Proceedings of the Eleventh Annual IEEE ASIC Conference. — Rochester, NY, USA: IEEE Computer Society, 13-16 Sep 1998. — P. 7—11. —ISBN 0-7803-4980-6.
  6. O. Mencer, M. Morf, and M. J. Flynn. Hardware software tri-design of encryption for mobile communication units // Работа комиссииIEEE на международной конференции по обработке акустики, речи и сигналов = Proceedings of the IEEE International Conference on Acoustics, Speech and Signal Processing. — Seattle, Washington, USA: IEEE Computer Society, 12-15 May 1998. — Т. 5. — P. 3045—3048. —ISBN 0-7803-4428-6.
  7. Ascom, IDEACrypt Kernel Data Sheet, 1999.
  8. Ascom, IDEACrypt Coprocessor Data Sheet, 1999.
  9. M. P. Leong, O. Y. H. Cheung, K. H. Tsoi and P. H. W. Leong. A Bit-Serial Implementation of the International Data Encryption Algorithm IDEA // Работа комиссииIEEE на симпозиуме 2000 по программируемым в условиях эксплуатации специализированным вычислительным машинам = Proceedings of the 2000 IEEE Symposium on Field-Programmable Custom Computing Machines. — Seattle, Washington, USA: IEEE Computer Society, 2000. — Т. 5. — P. 122—131. —ISBN 0-7695-0871-5.
  10. O. Y. H. Cheung, K. H. Tsoi, P. H. W. Leong and M. P. Leong. Tradeoffs in Parallel and Serial Implementations of the International Data Encryption Algorithm IDEA // Криптографические аппаратные и встроенные системы 2001 = CHES 2001 : cryptographic hardware and embedded systems. — INIST-CNRS, Cote INIST : 16343, 35400009702003.0270: Springer, Berlin, ALLEMAGNE ETATS-UNIS (2001) (Monographie), 2001. — Т. 2162. — P. 333—347. —ISBN 3-540-42521-7.
  11. S. C. Goldstein, H. Schmit, M. Budiu, M. Moe, and R. R. Taylor. Piperench: A recongurable architecture and compiler // Computer. — April 2000. —Т. 33,№ 4. —С. 70—77.

Стандарты

[править |править код]
  1. ISO 10116: Information Processing — Modes of Operation for an n-bit block cipher algorithm.
  2. ISO 9797: Data cryptographic techniques — Data integrity mechanism using a cryptographic check function employing a block cipher algorithm.
  3. ISO 9798-2: Information technology — Security technicues — Entity authentication mechanisms — Part 2: Entity authentication using symmetric techniques.
  4. ISO 10118-2: Information technology — Security technicues — Hash-functions — Part 2: Hash-functions using an n-bit block cipher algorithm.
  5. ISO 11770-2: Information technology — Security technicues — Key management — Part 2: Key management mechanisms using symmetric techniques.

Ссылки

[править |править код]

Реализации

[править |править код]

Русские

[править |править код]

Зарубежные

[править |править код]
Перейти к шаблону «Симметричные криптосистемы»
Потоковые шифры
Сеть Фейстеля
SP-сеть
Другие
Источник —https://ru.wikipedia.org/w/index.php?title=IDEA&oldid=146230248
Категория:
Скрытые категории: