Введение

Блок-шифр SEED — это блочный шифр, разработанный Корейским агентством информационной безопасности (KISA). Он широко используется в южнокорейской промышленности, но редко встречается за её пределами. SEED стал популярен в Корее, поскольку 40-битное шифрование считалось недостаточно надежным, поэтому KISA разработала собственный стандарт. Однако это решение исторически ограничивало конкуренцию веб-браузеров в Корее, так как ни одна из основных библиотек SSL или веб-браузеров не поддерживала алгоритм SEED, что требовало от пользователей использовать ActiveX-элемент управления в Internet Explorer для безопасных веб-сайтов. 1 апреля 2015 года Министерство науки, информационных и коммуникационных технологий и планирования будущего (MSIP) объявило о планах устранить зависимость от ActiveX как минимум на 90 процентах из 100 ведущих веб-сайтов страны к 2017 году. Вместо этого планируется использовать технологии на основе HTML5, поскольку они работают на многих платформах, включая мобильные устройства. Начиная с частного сектора, министерство планирует распространить эту меру и на государственные веб-сайты.

Дизайн

SEED представляет собой 16-раундовую сеть Фейстеля с 128-битными блоками и 128-битным ключом. В ней используются две S-блоки размером 8 × 8, которые, как и в SAFER, получены на основе дискретного возведения в степень (в данном случае, x247 и x251 – плюс некоторые "несовместимые операции"). Алгоритм также имеет некоторое сходство с MISTY1 в рекурсивности своей структуры: 128-битный полный шифр является сетью Фейстеля с функцией F, оперирующей 64-битными половинами, в то время как сама функция F является сетью Фейстеля, состоящей из функции G, оперирующей 32-битными половинами. Однако рекурсия на этом не заканчивается, поскольку функция G не является сетью Фейстеля. В функции G 32-битное слово рассматривается как четыре 8-битных байта, каждый из которых проходит через одну из S-блоков, а затем объединяется в умеренно сложный набор булевых функций, в котором каждый выходной бит зависит от 3 из 4 входных байтов. SEED имеет достаточно сложный алгоритм генерации ключей, создающий тридцать два 32-битных подключa путем применения функции G к серии вращений исходного ключа, в сочетании с раундовыми константами, полученными (как в TEA) из золотого сечения.

Использование и принятие

SEED был принят несколькими стандартными протоколами: S/MIME (RFC 4010), TLS/SSL (RFC 4162), IPSec (RFC 4196) и ISO/IEC 18033-3:2010. Библиотека программной безопасности NSS в платформе Gecko от Mozilla реализовала поддержку SEED, а Mozilla Firefox, начиная с версии 3.5.4, поддерживает SEED как TLS-шифр. Однако Mozilla приняла решение прекратить поддержку SEED по умолчанию в Firefox 27 и более поздних версиях, поскольку поддержка SEED не оказала никакого ощутимого положительного эффекта в плане помощи Южной Корее в отказе от электронной коммерции на основе ActiveX, и другие браузеры не предлагают шифронаборы на основе SEED. NSS продолжает поддерживать шифронаборы на основе SEED. Ядро Linux поддерживает SEED с 2007 года. Bloombase поддерживает SEED во всем спектре своих решений для криптографии данных.