Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
MSCIP_Cheats.doc
Скачиваний:
5
Добавлен:
01.07.2025
Размер:
2 Мб
Скачать
☆

Вопрос 2. Шифры Вернама и блочные шифры.

Шифр Вернама

Шифр Вернама, или одноразовый блокнот, был изобретен в 1917 году Мейджором Джозефом Моборном (Major Joseph Mauborn) и Гильбертом Вернамом (Gilbert Vernam) из AT&T (American Telephone & Telegraph). В классическом понимании одноразовый блокнот является большой неповторяющейся последовательностью символов ключа, распределенных случайным образом.

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

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

Как не удивительно, но класс шифров Вернама - единственный класс шифров, для которого может быть доказана (и была доказана Шенноном) невскрываемость в абсолютном смысле этого термина.

Блочные шифры

Блочные шифры представляют собой последовательность (с возможным повторением и чередованием) основных методов преобразования, применяемую к блоку (части) шифруемого текста. Блочные шифры на практике встречаются чаще, чем "чистые" преобразования того или иного класса в силу их более высокой криптостойкости. Российский (ГОСТ 28147-89) и американский(Rijndael) стандарты шифрования основаны именно на этом классе шифров.

Режим электронной шифровальной книги

Режим электронной шифровальной книги (electronic codebook) - это наиболее очевидный способ использования блочного шифра: блок открытого текста заменяется блоком шифротекста. Так как один и тот же блок открытого текста заменяется одним и тем же блоком шифротекста, то теоретически возможно создать шифровальную книгу блоков открытого текста и соответствующих криптотекстов. Однако, если размер блока 64 бита, то кодовая книга будет состоять из 264 записей, что слишком много для предварительного вычисления и хранения (для каждого ключа понадобится отдельная шифровальная книга). Это самый легкий режим работы. Все блоки открытого текста шифруются независимо и, следовательно, нет необходимости в последовательном шифровании, что важно для баз данных с произвольным доступом. Кроме того, обработка может быть распараллелена, на несколько шифровальных процессоров, независимо обрабатывающих различные блоки. Проблемой данного режима является то, что если у криптоаналитика есть открытый текст и шифротекст для нескольких сообщений, то он может начать составлять шифровальную книгу, не зная ключа. В большинстве реальных ситуаций фрагменты сообщений могут повторяться. Особенно уязвимы начало и конец сообщения, где находится информация об отправителе, получателе, дате, формате файла, и т.п. Положительными чертами являются возможность шифровать несколько сообщений одним ключом без снижения безопасности и нераспространении ошибок - при повреждении неверно дешифрируется только испорченный блок.

Режим сцепления блоков шифра

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

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

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]