Опубликован: 19.01.2010 | Доступ: свободный | Студентов: 3503 / 600 | Оценка: 4.28 / 4.00 | Длительность: 26:16:00
ISBN: 978-5-9963-0242-0
Специальности: Математик
Лекция 11:

Шифрование, использующее современные шифры с симметричным ключом

Аннотация: Эта лекция показывает, как концепции двух современных блочных шифров, рассмотренные в лециях 7-10, могут использоваться, чтобы зашифровать длинные сообщения. Она также вводит два новых понятия шифра потока.

11.1. Применение современных блочных шифров

Шифрование симметричными ключами может быть выполнено средствами современных блочных шифров. Два современных блочных шифра, обсужденные в "Шифрование, использующее современные шифры с симметричным ключом" и 12,13, а именно DES и AES, разработаны для того, чтобы зашифровать и расшифровать блок текста фиксированного размера. DES зашифровывает и расшифровывает блок 64 битов; AES — блок 128 битов. В реальной жизни текст, который будет зашифрован, имеет переменный размер и обычно намного больший, чем 64 или 128 битов. Режимы работы были изобретены, чтобы зашифровать текст любого размера, используя либо DES, либо AES. Рисунок 11.1 показывает эти пять режимов работы, которые будет обсуждены далее.

 Режимы работы

Рис. 11.1. Режимы работы

Режим электронной кодовой книги

Самый простой режим работы назван режимом электронной кодовой книги (ECB — ELECTRONIC CODEBOOK). Исходный текст разделен на N блоков. Размер блока — n бит. Этот размер исходного текста не является кратным числом размера блока, текст дополняется, чтобы сделать последний блок по размеру таким же, как другие блоки. Один и тот же ключ используется, чтобы зашифровать и расшифровывать каждый блок. Рисунок 11.2 показывает шифрование и дешифрование в этом режиме.

 Режим электронной кодовой книги (ECB)

Рис. 11.2. Режим электронной кодовой книги (ECB)

Соотношение между исходным и зашифрованным текстами показано ниже:

Шифрование: Ci = EK(Pi)
Дешифрование: Pi = DK(Ci)

Пример 11.1

Этот пример показывает, как можно обеспечить, что каждый блок, посланный Алисой, может быть точно восстановлен на стороне Боба. Здесь используется то, что шифрование и дешифрование инверсны друг другу.

Pi = DK (Ci) = Pi = DK (EK (Pi))

Пример 11.2

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

Проблемы безопасности

В режиме ECB имеются следующие проблемы безопасности.

  1. Образцы на уровне блока сохраняются. Например, одинаковые блоки в исходном тексте имеют одинаковый вид в соответствующих блоках зашифрованного текста. Если Ева узнает, что в зашифрованном тексте блоки 1, 5 и 10 одинаковы, она поймет, что блоки исходного текста 1, 5 и 10 — тоже одинаковые. Это —"дырочка" в безопасности. Например, Ева может выполнить исчерпывающий поиск и расшифровать только один из этих блоков, чтобы найти содержание всех их.
  2. Независимость блоков создает Еве возможность для замены некоторых блоков зашифрованного текста без знания ключа. Например, если она знает, что блок 8 всегда передает некоторую заданную информацию, она может заменить этот блок соответствующим блоком в предварительно перехваченном сообщении.

Пример 11.3

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

Распространение ошибки

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

Алгоритм

Для шифрования или дешифрования могут быть написаны простые алгоритмы. Алгоритм 11.1 содержит процедуру, написанную в псевдокоде для шифрования. Процедуру для дешифрования оставляем как упражнение. EK зашифровывает только один единственный блок и может быть одним из шифров, рассмотренных в главах 6 или 7 (DES или AES).

ECB_Encryption (K,Plaintext bloks)
{
  for(i = 1 to N)
  { 
    Ci <- EK (Pi), 
  }
  return Cliphertext blocks
}
11.1. Режим шифрования ECB
Захват зашифрованного текста

В режиме ECB может потребоваться дополнение, которое добавляется к последнему блоку, если он содержит менее n бит. Такое дополнение не всегда возможно. Например, рассмотрим ситуацию, когда зашифрованный текст должен быть сохранен в буфере, где до этого был предварительно сохранен исходный текст. В этом случае исходный текст и зашифрованный текст должны быть одинаковой длины. Техника, которая называется захват зашифрованного текста (CTS — CipherText Stealing) позволяет использовать режим ECB без указанного выше дополнения. В этой методике последние два блока исходного текста PN-1 и PN, зашифрованы раздельно по-другому и в другом порядке, как показано ниже. Предположим, что PN-1 имеет n бит, а PN имеет m бит, где m < n.

X = EK(PN-1) ->  CN =  headm(X)
Y = PN|tailn-m(X) -> CN-1 = EK(Y)

где headm — функция, отделяющая крайние левые m бит, tailn-m — функция, отделяющая крайние правые n-m бит.

Приложения

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

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

Наталья Шульга
Наталья Шульга

Курс "информационная безопасность" .

Можно ли на него записаться на ПЕРЕПОДГОТОВКУ по данному курсу? Выдается ли диплом в бумажном варианте и высылается ли он по почте?

Дмитрий Плешаков
Дмитрий Плешаков

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

Заранее благодарен.