Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Методическое пособие 371

.pdf
Скачиваний:
6
Добавлен:
30.04.2022
Размер:
1.05 Mб
Скачать

1.4. Блочный шифр

Блочный шифр — разновидность симметричного шифра, оперирующего группами бит фиксированной длины — блоками, характерный размер которых меняется в пределах 64

— 256 бит. Если исходный текст (или его остаток) меньше размера блока, перед шифрованием его дополняют. Фактически, блочный шифр представляет собой подстановку на алфавите блоков, которая, как следствие, может быть моноили полиалфавитной. Блочный шифр является важной компонентой многих криптографических протоколов и широко используется для защиты данных, передаваемых по сети.

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

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

9

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

Блочный шифр состоит из двух парных алгоритмов: шифрования и расшифрования. Оба алгоритма можно представить в виде функций. Функция шифрования E (англ. encryption — шифрование) на вход получает блок данных M (англ. message — сообщение) размером n бит и ключ K (англ. key — ключ) размером k бит и на выходе отдает блок шифротекста C (англ. cipher — шифр) размером n бит:

Для любого ключа K, EK является биективной функцией (перестановкой) на множестве n-битных блоков. Функция расшифрования D (англ. decryption — расшифрование) на вход получает шифр C, ключ K и на выходе отдает M:

являясь, при этом, обратной к функции шифрования:

и

Заметим, что ключ, необходимый для шифрования и дешифрования, один и тот же — следствие симметричности блочного шифра

На практике блочный шифр оценивают по множеству критериев:

Параметры ключа: его длина и длина блока, обеспечивающие верхнюю границу безопасности шифра.

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

10

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

Стоимость шифра, которая может быть обусловлена лицензионными требованиями в соответствии с интеллектуальной собственностью.

Гибкость шифра, связанная со способностью поддерживать множество длин ключей и блоков

1.5. Потоковый шифр

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

1.5.1. Классификация потоковых шифров

Допустим, например, что в режиме гаммирования для потоковых шифров при передаче по каналу связи произошло искажение одного знака шифротекста. Очевидно, что в этом случае все знаки, принятые без искажения, будут расшифрованы правильно. Произойдёт потеря лишь одного знака текста. А теперь представим, что один из знаков шифротекста при передаче по каналу связи был потерян. Это

11

приведёт к неправильному расшифрованию всего текста, следующего за потерянным знаком.

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

Синхронные потоковые шифры

Определение:

Синхронные потоковые шифры (СПШ) — шифры, в

которых поток ключей генерируется независимо от открытого текста и шифротекста.

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

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

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

Плюсы СПШ:

отсутствие эффекта распространения ошибок (только искажённый бит будет расшифрован неверно);

12

предохраняют от любых вставок и удалений шифротекста, так как они приведут к потере синхронизации и будут обнаружены.

Минусы СПШ:

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

Самосинхронизирующиеся потоковые шифры

Определение:

Самосинхронизирующиеся потоковые шифры (асинхронные потоковые шифры (АПШ)) – шифры, в которых ключевой поток создаётся функцией ключа и фиксированного числа знаков шифротекста.

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

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

Плюсы АПШ:

Размешивание статистики открытого текста. Так как каждый знак открытого текста влияет на следующий шифротекст, статистические свойства открытого текста распространяются на весь шифротекст. Следовательно, АПШ может быть более устойчивым к атакам на основе избыточности открытого текста, чем СПШ.

Минусы АПШ:

распространение ошибки (каждому неправильному биту шифротекста соответствуют N ошибок в открытом тексте); чувствительны к вскрытию повторной передачей.

13

1.5.2. Потоковые шифры на регистрах сдвига с линейной обратной связью (РСЛОС)

Теоретическая основа

Есть несколько причин использования линейных регистров сдвига в криптографии:

высокое быстродействие криптографических алгоритмов

применение только простейших операций сложения и умножения, аппаратно реализованных практически во всех вычислительных устройствах

хорошие криптографические свойства (генерируемые последовательности имеют большой период и хорошие статистические свойства)

легкость анализа с использованием алгебраических методов за счет линейной структуры

Определение:

Регистр сдвига с линейной обратной связью длины L

состоит из L ячеек пронумерованных , каждая из которых способна хранить 1 бит и имеет один вход и один выход; и синхросигнала (clock), который контролирует смещение данных (рис. 2). В течение каждой единицы времени выполняются следующие операции:

содержимое ячейки формирует часть выходной последовательности;

содержимое -той ячейки перемещается в ячейку для любого , .

новое содержимое ячейки определяется битом обратной связи, который вычисляется сложением по модулю 2 с определёнными коэффициентами битов ячеек .

14

Рис. 2. Регистр сдвига с линейной обратной связью

На первом шаге:

На втором шаге:

Следующее соотношение описывает в общем виде работу РСЛОС:

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

Посмотрим, каким может быть период такой системы:

Число ненулевых заполнений:

Значит,

.

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

.

Обозначим: . Тогда:

15

Важным свойством этого многочлена является - приводимость.

Определение:

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

Если многочлен является неприводимым и примитивным, то период будет совпадать с максимально

возможным периодом, равным

Пример:

Возьмём неприводимый примитивный многочлен

Рис. 3. Процесс заполнения регистра

 

Этот многочлен можно записать, как

выписаны степени, при которых стоят ненулевые коэффициенты.

Запишем в исходном состоянии в ячейки

и

определим длину периода генератора (табл. 1).

 

16

 

Таблица 1

Определение периода генератора

Обратная связь

Ячейка0

Ячейка1

Ячейка2

 

 

 

 

1

0

0

1

 

 

 

 

0

1

0

0

 

 

 

 

1

0

1

0

 

 

 

 

1

1

0

1

1

1

1

0

 

 

 

 

0

1

1

1

0

0

1

1

1

0

0

1

 

 

 

 

Период генератора равен На выходе генератора буде последовательность:

Приведём примеры некоторых примитивных многочленов по модулю 2:

Линейная сложность

Линейная сложность бинарной последовательности – одна из самых важных характеристик работы РСЛОС. Поэтому остановимся на этой теме поподробнее. Прежде чем дать определение линейной сложности введём некоторые обозначения.

- бесконечная последовательность с членами

– конечная последовательность длины , членами

которой являются Говорят, что РСЛОС генерирует последовательность

, если существует некоторое исходное состояние, при котором выходная последовательность РСЛОС совпадает с . Аналогично, говорят, что РСЛОС генерирует конечную последовательность , если существует некоторое начальное

17

состояние, для которого выходная последовательность РСЛОС имеет в качестве первых членов члены последовательности

.

Наконец дадим определение линейной сложности

бесконечной двоичной последовательности.

 

Определение:

 

 

 

 

 

 

Линейной

сложностью

бесконечной

двоичной

последовательности

 

называется

 

число

, которое

определяется следующим образом:

 

 

 

Если

 

нулевая

последовательность

, то Если не существует РСЛОС, который генерирует , то

равно бесконечности.

Иначе, есть длина самого короткого РСЛОС, который генерирует .

Определение:

 

 

 

Линейной

сложностью

конечной

двоичной

последовательности

называется

число

, которое

равно длине самого короткого РСЛОС, который генерирует последовательность, имеющую в качестве первых членов .

Свойства линейной сложности:

Пусть и – двоичные последовательности. Тогда:

1.Для любого линейная сложность подпоследовательности у довлетворяет неравенствам

2. тогда и только тогда, когда – нулевая последовательность длины .

3. тогда и только тогда, когда

 

.

4. Если

– периодическая с периодом , тогда

18