Фэндом


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

Electronic Code Book (ECB)Править

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

Зашифрование может быть описано следующим образом : C_i = F(P_i) для любых i от 1 до N. Здесь C_i и P_i - блоки зашифрованного и открытого текстов соответственно, а F - функция блочного шифрования. Расшифровка по той же схеме. То есть P_i = F^{-1}(C_i).

Недостатки:

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

Cipher Block Chaining (CBC) Править

Для сцепления используется механизм обратной связи, поскольку результат шифрации предыдущих блоков используется для шифрации текущего блока. Таким образом любой блок шифра зависит не только от исходного текста, но и от всех предыдущих блоков текста. В Cipher Block Chaining (CBC) текст XOR’ится с предыдущим шифр. блоком перед шифрацией. Дешифрация проводится аналогично. Математическая запись:

  Ci = Ek (Pi XOR Ci-1)
  Pi = Ci-1 XOR Dk(Ci)

При этом в начале кодирования используется вектор инициализации для того, чтобы любое сообщение было по - настоящему уникальным (иначе будут трудности со стандартным заголовком). Вектор инициализации должен быть случайным числом. Его не обязательно хранить в секрете, можно передавать его вместе с сообщением. Большинство сообщений не делятся нацело на 64-битные блоки, обычно остается короткий блок в конце. Можно по-разному бороться с этим. Простейший метод – padding (дополнение до полного блока). Если надо потом убирать мусор, то достаточно просто последним байтом обозначить количество лишних байтов. Можно также обозначать последний байт текста символом конца файла. Это не всегда можно сделать (напр., если надо расшифровать блок и поставить его куда - нибудь в память). Тогда применяется следующая схема шифрования: предположим, в последнем блоке j бит. После зашифровки последнего целого блока, зашифруем шифрованный блок еще раз, выберем j начальных битов полученного текста и по XOR’им с исходным текстом. Это и есть шифр для неполного блока.

Cipher Feedback (CFB) Править

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

C_i=E_k(C_{i-1})\oplus P_i

P_i=E_k(C_{i-1})\oplus C_i

C_0=IV

где IV - вектор инициализации

Как режим CBC, изменения в открытом тексте распространяется повсюду в зашифрованном тексте, и в кодировании нельзя найти что-либо подобное. Также как и в CBC, в расшифровке можно найти что-либо подобное. Расшифровывая, однобитовое изменение в зашифрованном тексте затрагивает два блока открытого текста: однобитовое изменение в соответствующем блоке открытого текста, и полном искажении следующего блока открытого текста. Более поздние блоки открытого текста будут расшифрованы как обычно.

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

CFB совместно использует два преимущества перед режимом CBC с режимами OFB шифра потока и CTR: блочный шифр только когда-либо используется в направлении шифровки, и сообщение не должно быть дополнено к кратному числу размера блока шифра.

Output Feedback (OFB) Править

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

Из-за симметрии операции сложения, кодирование и расшифровка похожи:

C_i=P_i\oplus O_i

P_i=C_i\oplus O_i

O_i=E_k(O_{i-1})

O_0=IV

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

Counter Mode (CTR) Править

Ссылки Править


de:Cipher Block Chaining Mode

en:Block cipher modes of operation fr:Mode d'opération (cryptographie) it:Modalità di funzionamento dei cifrari a blocchi ja:暗号利用モード pl:CBC pt:Companhia Brasileira de Cartuchos sv:CBC

Обнаружено использование расширения AdBlock.


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

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

Также на Фэндоме

Случайная вики