Light-industry-up.ru

Экосистема промышленности

Алгоритм создания цепочек

29-06-2023

Перейти к: навигация, поиск

Алгоритм создания цепочек — это процесс разбиения шифруемой информации на блоки определенного размера.

Алгоритм создания цепочек ECB (Electronic Code Book)

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

Ci = Ek(Pi)

где i — номера блоков, Ci и Pi — блоки зашифрованного и открытого соответственно, а Ek — функция блочного шифрования. Расшифровка аналогична:

Pi=Dk(Ci)


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

Указанным выше недостатком этой схемы является то, что при повторе в исходном тексте одинаковых символов в течение более, чем 2*N байт (где N — размер блока криптоалгоритма), в выходном файле будут присутствовать одинаковые зашифрованные блоки. Поэтому, для более «мощной» защиты больших пакетов информации с помощью блочных шифров применяются несколько обратимых схем «создания цепочек». Все они почти равнозначны по криптостойкости, каждая имеет некоторые преимущества и недостатки, зависящие от вида исходного текста.

Все схемы создания цепочек основаны на идее зависимости результирующего зашифровываемого блока от предыдущих, либо от позиции его в исходном файле. Это достигается с помощью блока «памяти» — пакета информации длины, равной длине блока алгоритма. Блок памяти (к нему применяют термин IV — англ. Initial Vector) вычисляется по определенному принципу из всех прошедших шифрование блоков, а затем накладывается с помощью какой-либо обратимой функции (обычно XOR) на обрабатываемый текст на одной из стадий шифрования. В процессе раскодирования на приемной стороне операция создания IV повторяется на основе принятого и расшифрованного текста, вследствие чего алгоритмы создания цепочек полностью обратимы.


Алгоритма создания цепочек — CBC-MAC

Метод CBC-MAC получил название от английской аббревиатуры Cipher Block Chaining — объединение в цепочку блоков шифра. Каждый блок открытого текста (кроме первого) побитово складывается по модулю 2 (операция XOR) с предыдущим результатом шифрования.

Шифрование:

C0 = IV

Ci=Ek(P{i}*C{i-1})

где i — номера блоков, IV — вектор инициализации (синхропосылка), Ci и Pi — блоки зашифрованного и открытого текстов соответственно, а Ek — функция блочного шифрования. Расшифровка:

Pi=C{i-1}*Dk(C{i})


Алгоритм создания цепочек CFB

метод CFB получил название от английской аббревиатуры Cipher FeedBack — обратная связь по шифроблоку. Режим обратной связи по шифротексту, режим гаммирования с обратной связью. Для шифрования следующего блока открытого текста он складывается по модулю 2 с перешифрованным (блочным шифром) результатом шифрования предыдущего блока.

C0=IV

Ci=Ek*(C{i-1}*Pi)

Pi=Ek*(C{i-1})*Ci


Алгоритм создания цепочек OFB

Метод OFB получил название от английской аббревиатуры Output FeedBack — обратная связь по выходу.

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

Из-за симметрии операции сложения, шифрование и расшифрование похожи: Ci=Pi*Oi

Pi=Ci*Oi

Oi = Ek*(Oi − 1)

O0 = IV


Ссылки

  • О.Зензин Режимы шифрования
  • Андрей Винокуров Режимы шифрования

Алгоритм создания цепочек.

© 2014–2023 light-industry-up.ru, Россия, Краснодар, ул. Листопадная 53, +7 (861) 501-67-06