Раздел: Документация
0 ... 98 99 100 101 102 103 104 ... 169 все еще остаются устойчивыми. Недавно Sakurai и Furuya[SaFu97] описали последующее увеличивающееся развитие... В настоящее время LOKI91 считается шифром , действительно обеспечивающим защиту, устойчивым как к линейному, так и к разностному анализу, а его основные недостатки — это линейное ключевое расписание, из-за которого шифр чувствителен к некоторым атакам, связанным с ключом; и размер ключа, который, исходя из этих атак, необходимо брать 260. LOKI91 был описан в Schneier jSchn96], что привело к непрерывному продолжающемуся интересу его использования организациями, ищущими незагроможденный алгоритм шифрования. Похоже, что это продолжится в связи с реализацией небольшой быстрой Java-версии в публично доступной криптобиблиотеке [Crypt97]. Доработка LOKI Основные причины дальнейшей доработки LOKI это слабости, обусловленные его алгоритмом выработки ключей, и происходящее развитие в области аппаратного обеспечения (продемонстрированное недавно восстановление грубой «животной» силой 56-битного ключа DES[RSAD97]), которое наглядно демонстрирует малые размеры ключевого пространства. В осуждении доработки, я предлагаю здесь несколько статей, которые необходимо рассмотреть как с перспективы безопасности, так и с перспективы выполнения. Факторы безопасности Knudsen [Knud93] определил следующие необходимые условия безопасности для шифра Фейстеля: отсутствие простых отношений; *все ключи одинаково хороши; *устойчивость к разностному анализу; *устойчивость к линейному анализу. 305 Основываясь на этих условиях, вышеприведенный рассмотрениях LOKI91 и комментариях по разработке блочных шифров в Schneier[Schn96], некоторые выводы, которые, как я думаю, необходимо рассмотреть с точки зрения перспектив безопасности, включают следующее: Алгоритм выработки ключей должен быть нелинейным, чтобы предотвратить существование эквивалентных ключей и атак, связанных с ключами. Вспомогательные ключи должны быть получены путем использования нелинейных функций (очень подходит та же функция , что используется в циклах для данных), и, кроме того, биты вспомогательных ключей должны зависеть от большого числа бит ключа: нелинейная функция должна полностью обеспечивать лавинный эффект за одно использование сразу над всеми битами; нелинейная функция должна быть максимально невосприимчива как к разностному, так и к линейному анализу; нелинейная функция должна быть составлена из набора S-блоков с высокой нелинейностью и с либо перестановками, либо со смешением операций, используемых для обеспечения эффекта лавинности; ♦ возможно создание нескольких компонент-функций, зависящих только от ключевых битов (либо несколько входов блоков — только ключи, либо ключевые перестановки для избранного обмена битами). Факторы реализации Результаты рассмотрения перспектив исполнения включают в себя: *S-блоки с 12 битами входа — наиболее широко подходящая часть для предварительно вычисляемого табличного задания; ♦S-блоки должны быть определены функционально так, чтобы предварительно вычисляемые таблицы могли быть созданы во время выполнения/инициализации. Это необходимо, чтобы минимизировать код при максимальной скорости; 306 ♦ нелинейная функция должна вьгаисляться с помощью малого числа табличных заданий и других примитивных операций. Уроки других шифров При доработке я искал разнообразные моменты, чтобы учесть их, у шифров, которые были реализованы после первоначальной версии LOKI. Описание этих шифров взято из Schneier[Schn96] (если нет дополнительных отметок). 1 BLOWFISH 64-битный, 16-цнкловой блочный шифр Фейстеля с переменной длиной ключа разработан В. Schneier в 1994 году. Использует четыре больших 8*32-битовых случайных S-блоков, генерируемых из поставляемого ключа, выходы которых смешиваются с использованием обычного сложения и сложения по модулю 2. Результат — быстрый шифр, при условии неизменности ключа. Ключевое расписание длинное и сложное. Vaudenay [Vaud96] описал атаки на уменьшенной по циклам версии и отметил некоторые недостатки, обусловленные использованием рассеянных S-блоков. CAST 64-битный, 8-цикловой блочный шифр Фейстеля с 64-битным ключом разработанным С. Adams и S. Tavares в 1993 году. Использует шесть 8*32-битовых S-блоков (из них некоторые используют данные, а некоторые — ключ), выходы которых смешиваются с помощью хог. Эти S-блоки разработаны и предназначены для прикладных систем. Vaudenay [Vaud96] также прокомментировал CAST и его использование рассеянных S-блоков, даже если они разработаны не случайным образом. /СЕ 64-битный, 16-цикловой блочный шифр Фейстеля с 64-битным ключом (хотя возможны варианты) разработан в 1997 году. Использует ключевые перестановки наряду с неизменными, высоко нелинейными S-блоками. 307 0 ... 98 99 100 101 102 103 104 ... 169
|