Введение

Семейство блочных шифров
алгоритм шифрования
В криптографии SAFER (Secure And Fast Encryption Routine) — это название семейства блочных шифров, разработанных главным образом Джеймсом Мэсси (одного из создателей IDEA) по заказу корпорации Cylink. Ранние реализации SAFER K и SAFER SK используют одну и ту же функцию шифрования, но различаются количеством раундов и алгоритмом формирования ключа. Более поздние версии — SAFER+ и SAFER++ — были предложены в качестве кандидатов в процессе AES и в рамках проекта NESSIE соответственно. Все алгоритмы семейства SAFER не запатентованы и доступны для свободного использования.

SAFER K и SAFER SK

Первым шифром SAFER был SAFER K 64, опубликованный Massey в 1993 году, с блоком размером 64 бита. "K 64" обозначает размер ключа в 64 бита. Существовал спрос на версию с большим 128-битным ключом, и в следующем году Massey опубликовал такой вариант, включающий новый график ключей, разработанный Министерством внутренних дел Сингапура: SAFER K 128. Однако, как Ларс Кнудсен, так и Шон Мерфи обнаружили незначительные уязвимости в этой версии, что привело к перепроектированию графика ключей в соответствии с предложением Кнудсена; эти варианты были названы SAFER SK 64 и SAFER SK 128 соответственно — "SK" расшифровывается как "Усиленный график ключей", хотя в RSA FAQ сообщается, что "одна шутка гласит, что SK на самом деле означает "Остановить Кнудсена", что является разумной мерой предосторожности при разработке любого блочного шифра". Для соответствия 40-битным экспортным ограничениям был опубликован еще один вариант с уменьшенным размером ключа — SAFER SK 40. Все эти шифры используют одну и ту же раундовую функцию, состоящую из четырех стадий, как показано на диаграмме: стадия смешивания ключей, слой подстановки, еще одна стадия смешивания ключей и, наконец, слой диффузии. На первом этапе смешивания ключей блок открытого текста разделяется на восемь 8-битных сегментов, и подключаются ключи с использованием сложения по модулю 256 (обозначается "+" в квадрате) или XOR (обозначается "+" в круге). Слой подстановки состоит из двух S-блоков, каждый из которых является обратным другому, полученным из дискретных функций возведения в степень (45x) и логарифма (log45x). После второй стадии смешивания ключей следует диффузионный слой: новый криптографический компонент, называемый псевдо-преобразованием Адамара (PHT). (PHT также позже использовался в шифре Twofish.)

SAFER+ и SAFER++

Есть два более новых члена семейства SAFER, которые внесли изменения в основной алгоритм шифрования, разработанный армянскими криптографами Гургеном Хачатряном (Американский университет Армении) и Мельсиком Курегианом совместно с Масси. SAFER+ (Massey et al., 1998) был предложен в качестве кандидата на участие в конкурсе Advanced Encryption Standard и имеет размер блока 128 бит. Этот шифр не вошел в число финалистов. Bluetooth использует собственные алгоритмы, основанные на SAFER+, для выработки ключей (обозначаемые как E21 и E22) и аутентификации в виде кодов аутентификации сообщений (обозначаемые как E1). Шифрование в Bluetooth не использует SAFER+. SAFER++ (Massey et al., 2000) был представлен в рамках проекта NESSIE в двух вариантах: 64-битный и 128-битный.