Смекни!
smekni.com

Интегральная атака против блочного симметричного шифра Crypton (стр. 7 из 11)

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

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

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

Криптоанализ может базироваться на использовании как общих математических результатов (например методов разложения больших чисел для раскрытия криптосистемы RSA), так и частных результатов, полученных для конкретного криптоалгоритма. Как правило, алгоритмы криптоанализа являются вероятностными.

Дифференциальный метод криптоанализа [21] (ДКА) был предложен Э.Бихамом и А.Шамиром в 1990 г. Дифференциальный криптоанализ - это попытка вскрытия секретного ключа блочных шифров, которые основаны на повторном применении криптографически слабой цифровой операции шифрования r раз. При анализе предполагается, что на каждом цикле используется свой подключ шифрования. ДКА может использовать как выбранные, так и известные открытые тексты .

Отличительной чертой дифференциального анализа является то, что он практически не использует алгебраические свойства шифра (линейность, аффинность, транзитивность, замкнутость и т.п.), а основан лишь на неравномерности распределения вероятности дифференциалов.

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

Обычно при шифровании используется сложение по модулю 2 текста с ключом и операции рассеивания и перемешивания. Задача криптоаналитика - найти наилучшую линейную аппроксимацию (после всех циклов шифрования)

Для раскрытия ключа шифра DES этим методом необходимо 247 пар известных открытых и зашифрованных текстов.

1.5 Выводы по разделу

Исходя из выше изложенного материала можно сделать вывод, что БСШ Crypton является эффективным и на программном и на аппаратном уровне: благодаря высокой степени паралельности и использованию очень простых логических операций ANDS/XORS, CRYPTON работает очень быстро на большинстве платформ, как в программном обеспечении, так и в аппаратных средствах. Анализ безопасности БСШ Crypton показывает, что 12-раундовый самозаменяемый шифр (с одинаковыми процессами для кодирования и расшифрования) с длиной блока 128 битов и длинной ключа до 128 битов обладает хорошей стойкостью к существующим атакам. Интегральная атака на 4-х раундовый БСШ Crypton является намного эффективнее, чем полный перебор по всему ключевому пространству.

Поэтому реализация интегрального алгоритма атаки на БСШ Cryptonбудет наиболее актуальной задачей.


2. ОСОБЕННОСТИ РЕАЛИЗАЦИИ ИНТЕГРАЛЬНОЙ АТАКИ НА ШИФР CRYPTON

2.1 Интегральные свойства БСШ Crypton

Crypton представляет собой блочный шифр. Длина ключа и длина блока 128 бит. Описание алгоритма атаки взято из [22].

Четыре преобразования работают с промежуточным результатом, называемым Состоянием (State). Состояние можно представить в виде прямоугольного массива из 16 байт

, где
. Обозначим
– столбец из четырех байт. Аналогично представлен ключ шифрования
, где
. Обозначим
.

В шифре определено поле Галуа GF(28), элементами которого являются байты. Байты рассматриваются как многочлены над Z2:

,

где

i-й бит байта
(0 или 1).

Операция сложения "

". При сложении байт соответствующие им многочлены складываются над Z2 (1+1=0).

Операция умножения. При умножении байт соответствующие им многочлены перемножаются над Z2 и результирующий многочлен берется по модулю простого многочлена

.

В процессе работы алгоритма ключ

расширяется (Key Schedule, Key Expansion). Первые 4 столбца (по 4 байта) массива являются исходным ключом (
). Каждый последующий r-й набор из 4 столбцов вычисляется из предыдущего набора и используется для r-ого раунда, обозначим его
. Раунд состоит из четырех различных элементарных преобразований, которые преобразуют состояние
в состояние
:

1. Замена байт – BS (Byte Substitution): применение перестановки S (также известной как S-блок, Sbox) ко всем байтам состояния независимо.

для
.

2. Сдвиг строк – SR (Shift Rows): циклический сдвиг байт по правилу

.

3. Замешивание столбцов – MC (Mix Columns): каждый столбец состояния изменяется линейным преобразованием

. Преобразование
можно представить, как умножение столбца на матрицу слева:

Операция

обратима:
.

4. Добавление раундового ключа – KA (Key Addition): к текущему состоянию прибавляется раундовый ключ

.

Финальный раунд не содержит операции MC. Составим 2 формулы, связывающие состояния Ar-1 и Ar:

(1)

(2)


2.2 Алгоритм реализации интегральной атаки на БСШ Crypton

В данном разделе описана специфичная для шифра Crypton интегральная атака [22]. Представлено математическое обоснование базовой атаки на 4 раунда.

Интегральная атака основана на возможности свободного подбора атакующим некоторого набора открытых текстов для последующего их зашифрования. Эта атака для 4-раундового шифра Crypton (стандарт Crypton включает в себя 12 раундов) эффективнее, чем полный перебор по всему ключевому пространству.

Введем определения.

Λ-набор – набор из 256 входных блоков (массивов State), каждый из которых имеет байты (назовем их активными), значения которых различны для всех 256 блоков. Остальные байты (пассивные) остаются одинаковыми для всех 256 блоков из Λ-набора. Т.е.

:
, если байт с индексом
активный и
иначе.