IDEA (International Data Encryption Algorithm) является блочным симметричным алгоритмом шифрования, разработанным Сюдзя Лай (Xuejia Lai) и Джеймсом Массей (James Massey) из швейцарского федерального института технологий. Первоначальная версия была опубликована в 1990 году. Пересмотренная версия алгоритма, усиленная средствами защиты от дифференциальных криптографических атак, была представлена в 1991 году и подробно описана в 1992 году.
IDEA является одним из нескольких симметричных криптографических алгоритмов, которыми первоначально предполагалось заменить DES.Принципы разработкиIDEA является блочным алгоритмом, который использует 128-битовый ключ для шифрования данных блоками по 64 бита.Целью разработки IDEA было создание относительно стойкого криптографического алгоритма с достаточно простой реализацией.
Криптографическая стойкостьСледующие характеристики IDEA характеризуют его криптографическую стойкость:1. Длина блока: длина блока должна быть достаточной, чтобы скрыть все статистические характеристики исходного сообщения. С другой стороны, сложность реализации криптографической функции возрастает экспоненциально в соответствии с размером блока. Использование блока размером в 64 бита в 90-е годы означало достаточную силу. Более того, использование режима шифрования СВС говорит о дальнейшем усилении этого аспекта алгоритма.2. Длина ключа: длина ключа должна быть достаточно большой для того, чтобы предотвратить возможность простого перебора ключа. При длине ключа 128 бит IDEA считается достаточно безопасным.3. Конфузия: зашифрованный текст должен зависеть от ключа сложным и запутанным способом.4. Диффузия: каждый бит незашифрованного текста должен влиять на каждый бит зашифрованного текста. Распространение одного незашифрованного бита на большое количество зашифрованных битов скрывает статистическую структуру незашифрованного текста.
Определить, как статистические характеристики зашифрованного текста зависят от статистических характеристик незашифрованного текста, должно быть непросто. IDEA с этой точки зрения является очень эффективным алгоритмом.
В IDEA два последних пункта выполняются с помощью трех операций. Это отличает его от DES, где все постороено на использовании операции XOR и маленьких нелинейных S-boxes.
Каждая операция выполняется над двумя 16-битными входами и создает один 16-битный выход. Этими операциями являются:1. Побитовое исключающее OR, обозначаемое как .2. Сумма целых по модулю 216 (по модулю 65536), при этом входы и выходы трактуются как беззнаковые 16-битные целые. Эту операцию обозначим как +.3. Умножение целых по модулю 216 + 1 (по модулю 65537), при этом входы и выходы трактуются как беззнаковые 16-битные целые, за исключением того, что блок из одних нулей трактуется как 216. Эту операцию обозначим как *.Эти три операции являются несовместимыми в том смысле, что:1. Не существует пары из трех операций, удовлетворяющих дистрибутивному закону. Напримерa * (b + c) <> (a * b) + (a * c)2. Не существует пары из трех операций, удовлетворяющих ассоциативному закону. Напримерa + (b c) <> (a + b) cИспользование комбинации из этих трех операций обеспечивает комплексную трансформацию входа, делая криптоанализ более трудным, чем в таком алгоритме как DES, основанном исключительно на функции XOR.