Лучшие вопросы
Таймлайн
Чат
Перспективы

IDEA

международный алгоритм шифрования данных Из Википедии, свободной энциклопедии

IDEA
Remove ads

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

Краткие факты Создатель, Создан ...
Remove ads

История

Первую версию алгоритма разработали в 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).

Remove ads

Описание

Суммиров вкратце
Перспектива

Так как 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 бит каждый —
  • Затем этот 128-битный ключ циклически сдвигается влево на 25 позиций, после чего новый 128-битный блок снова разбивается на восемь 16-битных блоков. Это уже следующие восемь подключей по 16 бит каждый —
  • Процедура циклического сдвига и разбивки на блоки продолжается до тех пор, пока не будут сгенерированы все 52 16-битных подключа.
Подробнее , ...

Шифрование

Thumb
Схема шифрования IDEA

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

  • умножение по модулю = 65537, причем вместо нуля используется
  • сложение по модулю
  • побитовое исключающее ИЛИ

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

  • умножение по модулю
  • сложение по модулю

После выполнения выходного преобразования конкатенация подблоков , , и представляет собой зашифрованный текст. Затем берется следующий 64-битный блок незашифрованного текста и алгоритм шифрования повторяется. Так продолжается до тех пор, пока не зашифруются все 64-битные блоки исходного текста.

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

  • Блок открытого текста размером 64 бит делится на четыре равных подблока размером по 16 бит
  • Для каждого раунда вычисляются:










Результатом выполнения восьми раундов будут следующие четыре подблока

  • Выполняется выходное преобразование :





Результатом выполнения выходного преобразования является зашифрованный текст

Расшифровка

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

Подробнее , ...
Remove ads

Пример

Суммиров вкратце
Перспектива

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

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

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

Подробнее , ...

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

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

Подробнее , ...
Remove ads

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

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

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

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

Remove ads

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

Суммиров вкратце
Перспектива

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

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

Первая реализация алгоритма 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 Мб/сек была достигнута благодаря использованию довольно изощрённой схемы конвейерной обработки и четырёх обычных умножителей по модулю . В устройстве также используются два однонаправленных высокоскоростных 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 Гб/сек, что позволяет использовать данное устройство для шифрования в высокоскоростных сетях. Высокой скорости шифрования удалось достигнуть используя разрядно-последовательную архитектуру для выполнения операции умножения по модулю . Результаты экспериментов с разными устройствами сведены в таблицу:

Подробнее шифрований в сек (x ...

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

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

Подробнее Год, Реализация ...

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

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

Remove ads

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

Суммиров вкратце
Перспектива

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

  • умножение подблока со вторым подключом раунда заменено сложением
  • сложение подблока с четвёртым подключом раунда заменено на умножение
  • изменён сдвиг подблоков в конце раунда

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

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

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

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

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

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

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

Слабые ключи

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

  • слабых к дифференциальному криптоанализу ключей. Принадлежность к классу можно вычислить за операций с помощью подобранного открытого текста. Авторы данной атаки предложили модификацию алгоритма IDEA. Данная модификация заключается в замене подключей на соответствующие , где r — номер раунда шифрования. Точное значение a не критично. Например при шестнадцатеричной системе счисления) данные слабые ключи исключаются[стойкость 6].
  • слабых к линейному дифференциальному криптоанализу ключей[стойкость 7]. Принадлежность к данному классу выясняется с помощью теста на связанных ключах.
  • слабых ключей было найдено с использованием метода бумеранга (англ. boomerang attack), предложенного Дэвидом Вагнером (David Wagner)[стойкость 8]. Тест на принадлежность к данному классу выполняется за операций и потребует ячеек памяти[стойкость 9].

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

Remove ads

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

Суммиров вкратце
Перспектива

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

Подробнее Умножение по модулю ...

Далее приведена таблица сравнения скоростей в программной реализации на процессорах 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 МГц машину.

Подробнее Блочный шифр, Длина блока, бит ...

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

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

В программной реализации на Intel486SX по сравнению с DES IDEA в два раза быстрее, что является существенным повышением скорости, длина ключа у IDEA имеет размер 128 бит, против 56 бит у DES, что является хорошим улучшением против полного перебора ключей. Вероятность использования слабых ключей очень мала и составляет . 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

Подробнее Алгоритм, Ключ, бит ...
Remove ads

Применение IDEA

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

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

Remove ads

Источники

  • 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.

Примечания

Ссылки

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads