
- •Криптография
- •Общие понятия криптографии и криптоанализа
- •Основные понятия и определения
- •Понятие криптографии и криптоанализа
- •Понятие криптографического алгоритма и криптосистемы
- •Классификация криптосистем
- •Задачи криптоанализа
- •Виды криптоаналитических атак
- •Сложность криптоаналитических атак
- •Характеристики криптосистем
- •Требования к криптосистемам
- •Понятие защищенности криптосистем
- •Симметричные криптосистемы
- •Принципы применения симметричных криптосистем
- •Элементарные операции подстановки и перестановки
- •Синтез блочных шифров
- •Шифр Файстеля
- •Принцип аппроксимации блочных шифров
- •Диффузия и конфузия
- •Структура шифра Файстеля
- •Дешифрование шифра Файстеля
Понятие защищенности криптосистем
Криптостойкостью называется характеристика шифра, определяющая его стойкость к дешифрованию без знания ключа (т.е. криптоанализу). Имеется несколько показателей криптостойкости, среди которых:
количество всех возможных ключей;
среднее время, необходимое для криптоанализа.
Схема шифрования называется безусловно защищенной (абсолютно стойкой), если порожденный по этой схеме шифрованный текст не содержит информации, достаточной для однозначного восстановления соответствующего открытого текста, какой бы большой по объему шифрованный текст не имелся у противника. Это означает, что независимо от того, сколько времени потратит противник на расшифровку, ему не удастся расшифровать шифрованный текст просто потому, что в шифрованном тексте не информации, требуемой для восстановления открытого текста.
Среди алгоритмов шифрования абсолютно стойких нет, за исключением так называемой «ленты однократного использования». Суть этой схемы состоит в сложении символов открытого текста со символами ключа, который имеет повторений. Таким образом, максимум, чего может ожидать пользователь, это выполнения хотя бы одного из двух следующих критериев:
Стоимость взлома шифра превышает стоимость расшифрованной информации
Время, которое требуется для того, чтобы взломать шифр, превышает время, в течение которого информация актуальна.
Схема шифрования называется защищенной по вычислениям, если она соответствует обоим критериям. Существенная проблема здесь состоит в том, чтобы количественно оценить те усилия, которые необходимы для успешного криптоанализа шифрованного текста, созданного на основе конкретной схемы шифрования.
Все формы криптоанализа для симметричных схем шифрования разрабатываются на основе того факта, что некоторые характерные особенности структуры открытого текста могут сохраняться при шифровании, проявляясь в соответствующих особенностях структуры шифрованного текста. А криптоанализ для схем с открытым ключом базируется на совершенно другом предположении – что математические зависимости связывающие пары ключей, дают возможность с помощью логических рассуждений, зная один из ключей, найти второй.
Симметричные криптосистемы
Принципы применения симметричных криптосистем
Схема применения симметричных криптосистем
Рис. 1.
Элементарные операции подстановки и перестановки
Подстановочные шифры (шифры замены) производят замену каждого символа открытого текста на какой-то символ шифротекста. Получатель расшифровывает его путем обратной замены. В криптографии различают 4 вида подстановочных шифров:
Простая замена – моноалфавитный шифр.
Омофонная замена – каждому символу открытого текста ставится в соответствие несколько символов шифротекста.
Блочная замена.
Полиалфавитная замена. Состоит из нескольких шифров простой замены, применение которых определяется положением символа в тексте.
В перестановочных шифрах происходит изменение порядка следования символов в сообщении. При этом алгоритм шифрования может применяться к результату шифрования несколько раз.
Синтез блочных шифров
Блочный шифр предполагает преобразование n-битового блока открытого текста в блок шифрованного текста такого же размера. Число различных блоков при этом равно 2n, и, чтобы шифрование было обратимым (т.е. чтобы обеспечивалась возможность дешифрования), каждый из таких блоков должен преобразовываться в свой уникальный блок шифрованного текста. Такие преобразования называются обратимыми, или несингулярными. Вот примеры несингулярного и сингулярного преобразований для n = 2.
Обратимое отображение |
Необратимое отображение | ||
Открытый текст |
Шифрованный текст |
Открытый текст |
Шифрованный текст |
00 |
11 |
00 |
11 |
01 |
10 |
01 |
10 |
10 |
00 |
10 |
01 |
11 |
01 |
11 |
01 |
В данном примере в случае необратимого отображения шифрованный текст 01 соответствует двум разным блокам открытого текста. Если ограничиться рассмотрением только обратимых отображений, число различных допустимых преобразований окажется равным 2n!.
На рис. 3.4 показана общая схема подстановочного шифра для n = 4. Поступающее на вход 4-битовое значение определяет одно из 16 возможных начальных состояний, которое отображается подстановочным шифром в одно из 16 уникальных конечных состояний, каждое из которых представляется 4-битовым значением шифрованного текста. Схемы шифрования и дешифрования можно представить в виде таблиц (табл. 3.1). Это самая общая схема процесса блочного шифрования, которая может служить для разработки любого обратимого соответствия между открытым и шифрованным текстом.
Таблица 3.1. Таблицы шифрования и дешифрования для подстановочного шифра
Открытый текст |
Шифрованный текст |
Открытый текст |
Шифрованный текст |
0000 |
1110 |
0000 |
1110 |
0001 |
0100 |
0001 |
0011 |
0010 |
1101 |
0010 |
0100 |
0011 |
0001 |
0011 |
1000 |
0100 |
0010 |
0100 |
0001 |
0101 |
1111 |
0101 |
1100 |
0110 |
1011 |
0110 |
1010 |
0111 |
1000 |
0111 |
1111 |
Однако при практической реализации данного подхода возникает следующая проблема. Если использовать блок небольшого размера, например n=4, система оказывается эквивалентной классическому подстановочному шифру. Как мы уже видели, такие системы уязвимы и могут быть раскрыты с помощью статистического анализа открытого текста. Этот недостаток порождается не самой природой подстановочного шифра, а использованием коротких блоков. При достаточно больших значениях n и отсутствии каких-либо ограничений на обратимую подстановку, задающую преобразование открытого текста в шифрованный, статистические характеристики исходного открытого текста маскируются настолько хорошо, что такого рода криптоанализ становится практически бесполезным.
В то же время предположение о допустимости любых обратимых подстановок при больших размерах блоков оказывается весьма непрактичным с точки зрения реализации алгоритма и скорости выполнения соответствующего приложения. Для такого преобразования ключом является само отображение. Обратимся снова к табл. 3.1, которая определяет конкретное обратимое отображение пространства открытых текстов в пространство шифрованных для n=4. Отображение можно задать элементами из второго столбца таблицы, в котором приведены значения шифрованного текста для соответствующих значений открытого текста. Это, по сути, и есть ключ, который отличает данное конкретное отображение от всех других допустимых отображений. В нашем случае длина ключа оказывается равной 64. Обычно для блочного шифра с n-битовым подстановочным блоком размер ключа равен n х 2n.
Если блок имеет размер 64 бита (при таком размере блока шифр уже может успешно противостоять попыткам взлома с помощью статистического анализа), то размер ключа составит 64 х 264 = 270 1021 битов.