Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Задает режим блочного шифра для использования при шифровании.
public enum class CipherMode
public enum CipherMode
[System.Serializable]
public enum CipherMode
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public enum CipherMode
type CipherMode =
[<System.Serializable>]
type CipherMode =
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type CipherMode =
Режим сцепления блоков шифра (CBC) реализует обратную связь. Перед шифрованием каждого блока открытого текста он объединяется с зашифрованным текстом предыдущего блока с помощью побитовой операции "исключающего ИЛИ". При этом даже в случае, если открытый текст содержит большое количество идентичных блоков, при их шифровании будут получены различные блоки зашифрованного текста. Перед шифрованием первого блока открытого текста с ним с помощью побитовой операции "исключающего ИЛИ" объединяется вектор инициализации. При искажении отдельного бита блока зашифрованного текста будет искажен и соответствующий блок открытого текста. Кроме того, будет изменен и бит следующего блока, находящийся в том же месте, что и исходный измененный бит.
CFB
4
Режим обратной связи по шифру ( CFB ) вместо преобразования всего блока преобразует в шифрованный текст небольшие фрагменты открытого текста. Этот режим использует регистр сдвига длиной в один блок, разделенный на секции. Например, при размере блока восемь байт и побайтовой обработке регистр сдвига разделяется на восемь секций. При искажении бита в зашифрованном тексте искажается бит открытого текста и разрушается регистр сдвига. Это приводит к искажению нескольких следующих фрагментов открытого текста до тех пор, пока поврежденный бит не выйдет за пределы регистра сдвига. Размер порции данных обратной связи по умолчанию может зависеть от алгоритма, но обычно равняется 8 битам или числу битов в блоке. Количество битов данных обратной связи можно изменять с помощью свойства FeedbackSize. Алгоритмы, поддерживающие CFB, используют это свойство для настройки обратной связи.
CTS
5
Режим захвата зашифрованного текста ( CTS ) обрабатывает открытый текст любой длины и создает зашифрованный текст, длина которого совпадает с длиной открытого текста. В этом режиме все блоки, кроме двух последних боков открытого текста, обрабатываются так же, как в режиме CBC.
ECB
2
В режиме электронной кодовой книги (ECB) каждый блок зашифровывается отдельно. Любые блоки открытого текста, которые идентичны и содержатся в одном и том же сообщении или в разных сообщениях, зашифрованных одним и тем же ключом, преобразуются в идентичные текстовые блоки шифра.
Важно! Этот режим не рекомендуется, так как он открывает двери для нескольких эксплойтов безопасности. Если шифруемый открытый текст содержит значительное число повторов, нарушение шифрованного текста возможно в одном блоке, но не в нескольких блоках одновременно. Также возможно использовать анализ блоков, чтобы определить ключ шифрования. Кроме того, активный злоумышленник может незаметно подменять и переставлять местами отдельные блоки, что позволяет свободно сохранять и вставлять блоки в поток в других местах.
OFB
3
В режиме выходной обратной связи ( OFB ) вместо преобразования всего блока в шифрованный текст преобразуются небольшие фрагменты открытого текста. Этот режим похож на режим CFB. Единственное отличие заключается в способе заполнения регистра сдвига. При искажении бита в зашифрованном тексте будет искажен и соответствующий бит открытого текста. Однако если имеются дополнительные биты из зашифрованного текста или их не хватает, открытый текст будет искажен, начиная с этого места.
Комментарии
Алгоритмы блочного шифра шифруют данные в блочных единицах, а не по одному байту за раз. Наиболее распространенный размер блока составляет 8 байт. Так как каждый блок обрабатывается интенсивно, блочные шифры обеспечивают более высокий уровень безопасности, чем потоковые шифры. Однако алгоритмы блочного шифра, как правило, выполняются медленнее, чем потоковые шифры.
Блочные шифры используют один и тот же алгоритм шифрования для каждого блока. Поэтому блок обычного текста всегда будет возвращать один и тот же зашифрованный текст при шифровании с помощью одного ключа и алгоритма. Так как это поведение можно использовать для взлома шифра, вводятся режимы шифра, которые изменяют процесс шифрования на основе обратной связи из предыдущих блочных шифрований. Полученное шифрование обеспечивает более высокий уровень безопасности, чем простое блочное шифрование.
Источник этого содержимого можно найти на GitHub, где также можно создавать и просматривать проблемы и запросы на вытягивание. Дополнительные сведения см. в нашем руководстве для участников.