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

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

Режим сцепления блоков шифрованного текста (CBC)

Следующая эволюция в работе режимов — режим сцепления блоков шифрованного текста (CBC — Cipher Block Chaining). В режиме CBC каждый блок исходного текста, прежде чем быть зашифрованным, обрабатывается с помощью проведения операции ИСКЛЮЧАЮЩЕЕ ИЛИ с предыдущим блоком шифра. Когда блок зашифрован, блок передают, но копия сохраняется в памяти, которая используется в шифровании следующего блока. Читатель может задать вопрос о начальном блоке, поскольку перед первым блоком нет блока зашифрованного текста. В этом случае используется фальшивый блок, называемый вектор инициализации (IV). Передатчик и приемник согласуют заданный заранее IV. Другими словами, IV используется вместо несуществующего C0. Рисунок 11.3 показывает режим CBC. На передающей стороне операция ИСКЛЮЧАЮЩЕЕ ИЛИ проводится перед шифрованием; а на стороне приемника дешифрование проводится перед операцией ИСКЛЮЧАЮЩЕЕ ИЛИ.

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

Рис. 11.3. Режим цепочки блоков шифротекста

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

Шифрование:
\\
C_{0} = IV
\\
C_{i} = E_{K}(P_{i} \oplus  C_{i-1}) 
\\
Дешифрование:
\\
C_{0} = IV
\\
P_{i} = D_{K}(C_{i}) \oplus  C_{i-1}

Пример 11.4

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

P_{i} = D_{K}(C_{i}) \oplus  C_{i-1} = D_{K} (E_{K}(P_{i} \oplus  C_{i-1})) \oplus  C_{i-1} = P_{i} \oplus  C_{i-1} \oplus  C_{i-1} = P_{i}
Вектор инициализации (IV)

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

Для того чтобы использовать IV, рекомендовано несколько методов. Передатчик может выбрать псевдослучайное число и передать его через безопасный канал (например, использующий режим ECB ). Фиксированное значение может быть согласовано Алисой и Бобом как IV, когда ключ засекречивания установлен. Это может быть часть ключа засекречивания, и так далее.

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

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

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

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

В режиме CBC единственный бит ошибки в блоке Cj зашифрованного текста в процессе передачи — в процессе дешифрования может создать ошибку в большинстве битов блока Pj исходного текста. Однако эта одиночная ошибка изменяет только один бит в исходном тексте блока Pj+1 (бит в том же самом местоположении). Доказательство этого факта оставляем как упражнение. Исходный текст блоков от Pj+2 до PN не затрагивается этим единственным битом ошибки. Единственный бит ошибки в зашифрованном тексте — самовосстанавливаемый.

Алгоритм

Алгоритм 11.2 дает псевдокод для шифрования — процедура encrypt. Она зашифровывает единственный блок (например, DES или AES). Алгоритм дешифрования оставляем как упражнение.

CBC_ Encryption (IV,K, Plaintext bloks)
{
  C0 <- IV
  for (i=1 to N)
  {
    Temp <- Pi ⊕ Ci-1
    Ci <- EK (Temp)
  }
return Ciphertext blocks
}
11.2. Алгоритм шифрования для режима ECB
Захват зашифрованного текста

Методика захвата зашифрованного текста, рассмотренная для режима ECB, может также быть применена к режиму CBC, как это показано ниже.

U = P_{N-1} \oplus  C_{N-2} \to  X = E_{K}(U)  \to  C_{N} = head_{m}(X)
\\
V = P_{N}|pad_{n-m}(0) \to  Y = X \oplus  V \to  C_{N-1} = E_{K}(Y)

Функция head — та же самая, что описана в режиме ECB; функция pad вставляет нули.

Приложения

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

Режим кодированной обратной связи (CFB)

ECB и режимы CBC предназначены для шифрования и дешифрования блоков сообщений. Размер блока, n, определяется принятым шифром. Например, n = 64 для DES и n = 128 для AES. В некоторых ситуациях мы должны использовать DES или AES как секретные шифры, но исходный текст или размеры блока зашифрованного текста должны быть меньшими. Например, чтобы зашифровать и расшифровывать символы 8 -битового ASCII, вы не захотели бы использовать один из традиционных шифров, обсужденных в "Традиционные шифры с симметричным ключом" , потому что они ненадежны. Решение состоит в том, чтобы применить DES или AES в режиме кодированной обратной связи (CFB). В этом режиме размер блока, используемого в DES или AES, — n, но размер исходного текста или блока зашифрованного текста — r, где r <n.

Идея состоит в том, что DES или AES используются не для того, чтобы зашифровать исходный текст или расшифровывать зашифрованный текст, а для того, чтобы зашифровать или расшифровывать содержание регистра сдвига, S, размером n. Шифрование сделано с применением операции ИСКЛЮЧАЮЩЕЕ ИЛИ к r -битовому блоку исходного текста с r -битовым регистром сдвига. Дешифрование сделано с применением операции ИСКЛЮЧАЮЩЕЕ ИЛИ к r -битовому блоку зашифрованного текста с r -битовым регистром сдвига. Для каждого блока регистр сдвига Si выполняет сдвиг регистра Si-1 (предыдущий регистр сдвига) на r бит влево, заполняя самые правые r битов с Ci-1. Тогда Si зашифрован в Ti. Только самые правые r битов Ti обрабатываются с помощью ИСКЛЮЧАЮЩЕГО ИЛИ с исходным текстом, из блока Pi получая Ci. Обратите внимание, что Si, для первого блока — это IV — не сдвигается.

Рисунок 11.4 показывает режим CFB для шифрования; дешифрование то же самое, но роли блоков исходного текста ( Pi ) и блоков зашифрованного текста ( Ci ) меняются местами. Обратите внимание, что шифрование и дешифрование используют функцию шифрования основного блочного шифра (например, DES или AES).

 Шифрование в режиме кодированной обратной связи

Рис. 11.4. Шифрование в режиме кодированной обратной связи
В режиме CFB шифрование и дешифрование используют функцию шифрования основного блочного шифра.

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

Шифрование: C_{i} = P_{i} \oplus  SelectLeft_{r} \{ E_{K} [ShiftLeft_{r} (S_{i-1}) | C_{i-1})]\}  
\\
Дешифрование: P_{i} = C_{i} \oplus  SelectLeft_{r} \{ E_{K} [ShiftLeft_{r} (S_{i-i}) | C_{i-i})]\}

где ShiftLeft — процедура, которая сдвигает содержание ее параметра на r бит влево (крайние левые r -биты отбрасываются). Оператор | показывает конкатенацию (последовательное соединение). SelectLeft -процедура выбирает только крайние левые r -битов параметра. Возможно доказать, что каждый блок исходного текста на стороне Алисы может быть точно восстановлен на стороне Боба. Это доказательство оставляем как упражнение.

Интересно, что в этом режиме не требуется дополнение блоков, потому что размер блоков, r, обычно выбирается так, чтобы удовлетворить размеру блока данных, который нужно зашифровать (например, символ). Интересное также другое — что система не должна ждать получения большого блока данных ( 64 бита или 128 битов) для того, чтобы начать шифрование. Процесс шифрования выполняется для маленького блока данных (таких как символ), Эти два преимущества приводят к двум недостаткам. CFB менее эффективен, чем CBC или ECB, потому что он применяет шифрование основным блочным шифром маленького блока размером r.

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

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

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

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

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

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