Режимы блочного шифрования |
Автор: admin Просмотров: 3941 Комментарии:
Добавлен: 7 сентября 2016
Обновлено: 7.09.2016 - 20:42
В криптографии, режимы действия ( англ. Modes of operation ) - это математические операции для возможности периодического и защищена использования блочного шифра с одним ключом. Блочный шифр позволяет шифрования только одного блока данных установленной длины. Для работы с блоками различных длин, данные сначала нужно разбить на отдельные блоки установленной данным шифром длины. Обычно, последний блок надо дополнить до соответствующей длины подходящим дополнением. Режимы действий описывают процесс шифрования каждого из этих блоков и обычно используют рандомизацию основанную на дополнительном значении на входе, известным как инициализационный вектор, с целью сделать это безопасно.
Режимы действия изначально были разработаны для шифрования и автентфикации. Исторически, режимы шифрования широко изучались ввиду их свойства распространения ошибок при различных сценариях изменения данных. Дальнейшее развитие поставил целостность информации как совершенно отдельную от шифрования цель криптографии. Некоторые современные режимы действия сочетают шифрования и аутентификации эффективным образом, и известны как режимы подлинности шифрования.
Хотя режимы действия обычно связывают с симметричным шифрованием, в принципе, их можно применить к примитивов шифрования с открытым ключом как RSA (хотя на практике шифрования длинных сообщений с открытым ключом чаще всего осуществляют с использованием гибридного шифрования ).
Инициализационный вектор (IV)
Подробнее: инициализационный векторИнициализационный вектор ( англ. Initialization vector ) - это блок бит, который используют несколько режимов для увипадковлення шифрования и, таким образом, выдают различные шифротекста даже на одном открытом тексте зашифрованном несколько раз, без потребности в медленном процессе получения нового ключа.
Инициализационный вектор имеет другие требования к безопасности чем ключ, значит он не должен быть секретным. Однако, в основном, важно чтобы IV не использовался дважды с одним и тем же ключом. Для CBC и CFB, повторное использование IV приводит к утечке информации о первом блок открытого текста. Для OFB и CTR, повторное использование IV полностью разрушает безопасность. В режиме CBC, IV должен быть непрогнозовним во время шифрования; в частности, привычная ранее практика использования последнего блока шифротекста как IV для следующего сообщения опасна (этот метод, например, использовался в SSL 2.0). Если нападающий знает IV (или предыдущий блок шифротекста) до того как он определил следующий открытый текст, он может проверить свою догадку относительно открытого текста какого блока зашифрованного раньше (это известно как атака TLS CBC IV).
Как особый случай, если открытые тексты всегда достаточно малы для одного блока (без дополнения), тогда для некоторых режимов (ECB, CBC, PCBC), переиспользования IV приведет к утечке только если два шифротекста одинаковы. Это может быть полезным в случаях, когда надо проверять на равенство без дешифровки.
Дополнение
Подробнее: Дополнение (криптография)Блочный шифр обрабатывает информацию блоками установленной длины (известной как размер блока ), но сообщения имеют разную длину. Так что некоторые режимы (а именно ECB и CBC) требуют дополнения завершающего блока перед шифрованием. Существует несколько схем дополнения. Самая заключается в добавлении нулевых байтов к открытому тексту для доведения его длины до стократной до размера блока, но надо позаботиться, чтобы можно было восстановить первоначальную длину текста; например, если открытый текст является строкой в стиле C, не содержит нулевых байтов кроме как последний байт. Первоначальный метод DES немножко сложнее, который добавляет один единичный бит за которым следуют нулевые биты; если сообщение завершается вровень с блоком, добавляется целый блок дополнения. Найускладнениший вариант схем специфических для CBC как похищение шифротекста или завершения остаточного блока, которые не приводят к увеличению шифротекста, зато немного усложняют алгоритм. Брюс Шнайдер и Нилс Фергюсон предложили две возможности, обе просты: добавить байт со значением 128 (шестнадцатеричное 80), со следующими нулевыми байтами до полного блока или дополнить n байтами со значением n.
CFB, OFB и CTR режимы не требуют каких-либо особых мер для обработки сообщений не кратных размеру блока, так режимы работают через XOR открытого текста с выходом блочного шифра. Последний неполный блок открытого текста XOR-иться с первыми несколькими байтами потока ключа, на выходе получаем завершающий блок шифротекста одинаковой длины с завершающим блоком открытого текста. Такое свойство потоковых шифров делает их пригодными для использования в ситуациях, когда необходима одинаковая длина шифра и открытого текста, и в приложениях где данные передаются в потоковом виде и неудобно дополнять блоки.
Электронная книга кодов (ECB)
Самым простым из режимов шифрования режим электронной книги кодов ( англ. Electronic codebook, ECB ). Сообщение разбивается на блоки и каждый блок шифруется отдельно.
Недостатком этого метода является то, что одинаковые блоки открытого текста шифруются в одинаковые блоки шифротекста; следовательно шаблон плохо скрывается. Этот режим не обеспечивает серьезную безопасность сообщению, и его вообще не советуют использовать в криптографических протоколах.
Типичный пример степени сохранности шаблонов ECB открытого текста в шифротекста можно увидеть, когда ECB используют для шифрования bitmap изображений, которые используют большие площади однородных цветов. Хотя цвет каждого отдельного пикселя зашифровано, общую картинку можно различить как маску одноцветных точек картинки на входе.
Псевдослучайный исход режимов отличных от ECB
Изображение справа показывает как изображение может выглядеть шифрованным урежими CBC, CTR или любым другим безопасным режимом, и которое трудно различить со случайным шумом. Заметьте, что псевдослучайный вид изображения справа не гарантирует, что изображение безопасно зашифрованное; разработано много типов опасных шифровок выход которых выглядит случайным.
Ланцюгування шифроблокив (CBC)
IBM изобрела режим ланцюгування шифроблокив ( англ. Cipher-block chaining, CBC ) в 1976 [5] В CBC режиме, каждый блок открытого текста XOR -ять с предыдущим шифроблоком перед шифрованием. Так, каждый шифроблок, зависит от всех блоков обработанных к нему. Для получения уникальных сообщений нужно использовать инициализационный вектор в первом блоке.
Если первый блок имеет индекс 1, математическая формула для CBC шифрование такая
{\ Displaystyle C_ {i} = E_ {K} (P_ {i} \ oplus C_ {i-1}), C_ {0} = IV} {\ Displaystyle C_ {i} = E_ {K} (P_ {i} \ oplus C_ {i-1}), C_ {0} = IV}
тогда как математическая формула для CBC расшифровки такая
{\ Displaystyle P_ {i} = D_ {K} (C_ {i}) \ oplus C_ {i-1} C_ {0} = IV.} {\ Displaystyle P_ {i} = D_ {K} (C_ {i}) \ oplus C_ {i-1} C_ {0} = IV.}
CBC чаще використовний режим. Основная его недостаток это свойственная последовательность (то есть не возможность упаралелення), и необходимость дополнения сообщение размеру кратного размера блока. Один из способов избежать дополнения заключается в использовании метода похищения шифротекста. Обратите внимание, что изменение одного бита в открытом тексте или IV влияет на все последующие шифроблокы.
Расшифровка с неправильным IV вызывает повреждения первого блока открытого текста, но следующие блоки будут правильными. Это происходит из-за возможности восстановить открытый текст из двух смежных блоков шифротекста. Как следствие, расшифровки можно упаралелиты. Обратите внимание, что изменение одного бита в шифротекста вызывает полное повреждение соответствующего блока открытого текста, но другие блоки остаются незатронутыми.
Режим CBC не устойчив к атаке на основе подобранного шифротекста. Получив в CPA-запросе {\ Displaystyle (IV, c)} {\ Displaystyle (IV, c)}, В ССА-запросе передаем {\ Displaystyle (IV \ oplus 1, c).} {\ Displaystyle (IV \ oplus 1, c).}
CBC теорема (непредсказуемость CBC) [ ред. • ред. код ]
Для любого {\ Displaystyle L> 0} {\ Displaystyle L> 0}, если {\ Displaystyle E} Eбезопасна PRP над {\ Displaystyle (K, X)} {\ Displaystyle (K, X)}, тогда {\ Displaystyle E_ {CBC}} {\ Displaystyle E_ {CBC}}- Смысловую безопасна по CPA над {\ Displaystyle (K, X ^ {L}, X ^ {L + 1})} {\ Displaystyle (K, X ^ {L}, X ^ {L + 1})}.
В частности, для противника {\ Displaystyle A} A с q-запросами, атакующего {\ Displaystyle E_ {CBC}} {\ Displaystyle E_ {CBC}} существует PRP противник {\ Displaystyle B} B такой что:
{\ Displaystyle Adv_ {CPA} [A, E_ {CBC}] \ leq 2Adv_ {PRP} [B, E] + 2q ^ {2} L ^ {2} / | X |.} {\ Displaystyle Adv_ {CPA} [A, E_ {CBC}] \ leq 2Adv_ {PRP} [B, E] + 2q ^ {2} L ^ {2} / | X |.}
Итак CBC остается безопасным пока {\ Displaystyle q ^ {2} L ^ {2} \ ll | X |.} {\ Displaystyle q ^ {2} L ^ {2} \ ll | X |.}
Propagating cipher block chaining (РСВС)
Режим Propagating шифроблокив с распространением ( англ. Propagating cipher-block chaining, PCBC ) или ( англ. Plaintext cipher-block chaining )спроектировали для ввода маленьких изменений в шифротекста для бесконечного распространения при расшифровке как и при шифровании.
Шифрование и расшифровки следующие:
{\ Displaystyle C_ {i} = E_ {K} (P_ {i} \ oplus P_ {i-1} \ oplus C_ {i-1}), P_ {0} \ oplus C_ {0} = IV} {\ Displaystyle C_ {i} = E_ {K} (P_ {i} \ oplus P_ {i-1} \ oplus C_ {i-1}), P_ {0} \ oplus C_ {0} = IV}
{\ Displaystyle P_ {i} = D_ {K} (C_ {i}) \ oplus P_ {i-1} \ oplus C_ {i-1} P_ {0} \ oplus C_ {0} = IV} {\ Displaystyle P_ {i} = D_ {K} (C_ {i}) \ oplus P_ {i-1} \ oplus C_ {i-1} P_ {0} \ oplus C_ {0} = IV}
Кербер v4 и WASTE используют PCBC. Если сообщение зашифровано в PCBC режиме, тогда переставка двух соседних блоков не влияет на расшифровку следующих блоков. [8] Из-за этого, Кербер v5 не использует PCBC.
Обратная связь по шифротексту (CFB)
Режим обратной связи по шифротекста ( англ. Cipher feedback, CFB ), близкий родственник для CBC, превращает блочный шифр на поточный, самосинхронизирующимся. Действие очень похожа; в частности, расшифровки CFB почти тождественно к шифрованию CBC выполненного наоборот:{\ Displaystyle C_ {i} = E_ {K} (C_ {i-1}) \ oplus P_ {i}} {\ Displaystyle C_ {i} = E_ {K} (C_ {i-1}) \ oplus P_ {i}}
{\ Displaystyle P_ {i} = E_ {K} (C_ {i-1}) \ oplus C_ {i}} {\ Displaystyle P_ {i} = E_ {K} (C_ {i-1}) \ oplus C_ {i}}
{\ Displaystyle C_ {0} = \ {\ mbox {IV}}} {\ Displaystyle C_ {0} = \ {\ mbox {IV}}}
Описанный выше простой способ использования CFB нисколько не более самосинхронизовний чем другие режимы вроде CBC. Если теряется целый блок шифротекту, то оба CBC и CFB синхронизируются, тогда как потеря одного байта или бита окончательно отбросит расшифровки. Для возможности синхронизации после потери одного байта или бита, за раз шифровать один байт или бит. CFB можно так использовать вместе с сдвижным регистром на входе в блочного шифра.
В начале регистр сдвига заполнен инициализационный вектором, и алгоритм шифрования запускается для образования 64 бит выхода. Самые левые 8 бит из битов на выходе XOR-пять с байтом к передаче. Исход этой операции посылают сетью, а также заталкивают в регистр сдвига, выталкивая Самые левые 8 битов. Тогда алгоритм шифрования запускается снова и следующий символ шифруется так же.
Для использования CFB как самосинхронизовного потокового шифра, который синхронизироваться для любой потери кратной x битам, начинают с установления сдвигового регистра размером в один блок инициализационный вектором. Это шифруется блочным шифром, и старшие x бит вислиду XOR-рять с x битами открытого текста для получения x бит шифротекста. Эти x бит на выходе заштовхуються в регистр сдвига, и процесс повторяется со следующими x битами открытого текста. Расшифровка похоже, начинается с инициализационный вектором, шифруется и XOR-иться x старших битов вислиду с x битами шифротекста для получения x битов открытого текста. Заводим x бит шифротекста в регистр сдвига. Этот способ обработки известен как CFB-8 или CFB-1 (в соответствии с размером смещения).
В записи, где {\ Displaystyle S_ {i}} {\ Displaystyle S_ {i}} - I-й состояние сдвигового регистра, {\ Displaystyle << x} {\ Displaystyle << x} это {\ Displaystyle a} a зсунуте на {\ Displaystyle x} x бит, {\ Displaystyle {\ mbox {head}} (a, x)} {\ Displaystyle {\ mbox {head}} (a, x)} это {\ Displaystyle x} x старших битов {\ Displaystyle a} a и {\ Displaystyle n} n это количество бит в IV:
{\ Displaystyle C_ {i} = {\ mbox {head}} (E_ {K} (S_ {i-1}), x) \ oplus P_ {i}} {\ Displaystyle C_ {i} = {\ mbox {head}} (E_ {K} (S_ {i-1}), x) \ oplus P_ {i}}
{\ Displaystyle P_ {i} = {\ mbox {head}} (E_ {K} (S_ {i-1}), x) \ oplus C_ {i}} {\ Displaystyle P_ {i} = {\ mbox {head}} (E_ {K} (S_ {i-1}), x) \ oplus C_ {i}}
{\ Displaystyle S_ {i} = \ ((S_ {i-1} << x) + C_ {i}) {\ mbox {mod}} 2 ^ {n}} {\ Displaystyle S_ {i} = \ ((S_ {i-1} << x) + C_ {i}) {\ mbox {mod}} 2 ^ {n}}
{\ Displaystyle S_ {0} = \ {\ mbox {IV}}} {\ Displaystyle S_ {0} = \ {\ mbox {IV}}}
Если x бит шифротекста потеряно, шифр выдавать неправильный открытый текст пока регистр сдвига не приобретет состояния, которое он имел при шифрования, здесь шифр ресинхронизуеться. Это приводит к тому, что пидтасуеться выход размером в один блок.
Подобно режима CBC, изменения в открытом текста распространяются на весь шифротекст, и шифрования нельзя упаралелиты. Также подобно CBC, расшифровки упаралельнюване. При расшифровке, изменение одного бита в шифротекста влияет на два блока открытого текста: однобитовых изменение в соответствующем блоке открытого текста и полное повреждение следующего блока. Дальнейшие блоки расшифровываются нормально. Поэтому, если злоумышленник знает открытый текст, он может изменить биты в блоке шифротекста как он захочет и привести к получению нужного ему блока открытого текста, следующий блок будет перетасованы, но к тому времени уже может быть причинен вред.
CFB вместе с режимами потоковых шифров OFB и CTR разделяет два преимущества над CBC режимом: блок шифр используется только в направлении шифрования, и сообщения не нуждается в дополнении к размеру кратного размера блока (хотя можно использовать похищения шифротекста и таким образом сделать дополнение необязательным).
Обратная связь по выходу (OFB)
Режим обратной связи по выходу ( англ. Output feedback, OFB ) образует с блочного шифра синхронный поточный шифр. Он образует поток ключа, который затем XOR -иться с блоками открытого текста образования шифротескту. Как и предполагает имя, OFB использует предыдущий выход блочного шифра, а не предыдущий шифротекст как CFB, что делает шифротекст независимым от открытого текста и шифротекста, именно поэтому OFB является синхронным поточным шифром. Так же как и с другими потоковыми шифрами, обращение биту в открытом тексте приводит к обращения соответствующего бита в шифротекста. Это свойство позволяет многим кодам исправления ошибок выполняться нормально даже при применении к шифрованию.Через симметричность операции XOR, шифрования и расшифровки одинаковы:
{\ Displaystyle C_ {j} = P_ {j} \ oplus O_ {j}} {\ Displaystyle C_ {j} = P_ {j} \ oplus O_ {j}}
{\ Displaystyle P_ {j} = C_ {j} \ oplus O_ {j}} {\ Displaystyle P_ {j} = C_ {j} \ oplus O_ {j}}
{\ Displaystyle O_ {j} = \ E_ {K} (I_ {j})} {\ Displaystyle O_ {j} = \ E_ {K} (I_ {j})}
{\ Displaystyle I_ {j} = \ O_ {j-1}} {\ Displaystyle I_ {j} = \ O_ {j-1}}
{\ Displaystyle I_ {0} = \ {\ mbox {IV}}} {\ Displaystyle I_ {0} = \ {\ mbox {IV}}}
Для каждого нового сообщения нужно использовать новый IV, иначе сообщения будут шифроваться с тем же потоком ключа. IV можно отправлять в открытом виде, однако, если злоумышленник подменил IV, тогда в отличие от CFB режима, получить открытый текст с шифротекста невозможно.
Каждый блок на выходе зависит от всех предыдущих, так невозможно параллельное выполнение. Однако, из-за того, что открытый текст и шифр используются только в финальном XOR, операции блочного шифра можно выполнить заранее, что позволит выполнения финального шага параллельно только открытый или шифротекст станет доступным.
Можно получить поток ключа для режима OFB со строкой нулей на входе. Это может быть полезным, потому что делает возможным использование быстрого аппаратного обеспечения, воплощает CBC для шифрования в режиме OFB.
В отличие от CFB, ошибка в одном бите открытого текста затрагивает только соответствующий бит в шифротекста, следующие блоки остаются невредимыми. Это свойство вместе с возможностью высокого быстродействия OFB делает его подходящим для шифрования потоков данных типа голоса и видео, особенно на каналах с помехами где распространение ошибок может легко превратить зашифрованное передачи в почти невозможно. [10] С другой стороны OFB требует от двух участников быть синхронизированными. Как вариант решения этой проблемы предлагается отправления синхронизационных сигналов в согласованные промежутки времени.
Средняя продолжительность цикла для s-битного-OFB
Если OFB используют с обратной связью ограниченным s
Если OFB используется с обратной связью s
Опыт подтвердил их теоретические выследи, показал, что OFB с s отличным от 64 значительно снижает безопасность, так как средняя длина цикла уменьшается в 2 32 раза или больше. Дейвис и Паркин предложили, что s = n должен быть единственным признанным OFB режимом. Нет предпочтений использования OFB с другими значениями; более того s-битный-OFB уменьшает пропускную способность в режиме CFB.
Счетчик (CTR)
Замечание: режим CTR также знают как режим целочисленного счетчика ( англ. Integer counter mode, ICM ) или режим сегментированного целочисленного счетчика ( англ. Segmented integer counter, SIC )Подобно OFB, режим счетчика превращает блочный шифр в потоковый шифр. Он порождает следующий блок потока ключа шифрования последовательных значений «счетчика». Счетчик может быть любой функцией, выдает последовательность, которая гарантированно не повторяется в течение длительного времени, на самом деле простыми и распространенными являются простые счетчики, на каждом шагу увеличиваются на единицу. Использование простой детерминистической функции вызывает споры; критики говорят, что «умышленное использование известного систематического входа в криптосистеме составляет ненужный риск.» Сейчас режим CTR широко принят, и проблемы производные от входов функции распознаются как слабость використовного блочного шифра, а не режима CTR. Однако, существуют приспособлены атаки подобные атаки ошибки оборудования ( англ. Hardware Fault Attack ), которые полагаются на использование простого функции счетчика.
Режим CTR имеет подобные OFB характеристики, но также имеет возможность произвольного доступа при расшифровке. Режим CTR хорошо подходит для использования на многопроцессорной машине, где блоки можно шифровать параллельно. Более того, он не страдает от проблемы короткого цикла, которая может повлиять на OFB.
Заметьте, что НОНС на картинке это то же, что и инициализационный вектор на других изображениях. IV / НОНС и счетчик можно совмещать с использованием любой операции без потерь (конкатенации, добавление или XOR) для получения уникального блока счетчика для шифрования.
В случае использования режима CTR с одним Нонсо для шифрования целого диска, повторное использование отрезке потока ключа позволяет несложную атаку. Итак, каждый раз при изменении даже малого участка данных, необходимо будет перешифруваты весь диск с использованием другого Нонсо для поддержки безопасности, не практично.
(XTS)
Режим XTS сравнительно новый; NIST его стандартизировал в январе 2010, после стандартизации IEEE в 2007. XTS предназначен для специфического применения: шифрование единиц данных постоянной длины (например, дата секторов) на накопителях, на самом деле не принято никакого другого применения.https://uk.wikipedia.org/wiki/Режими_блочного_шифрування
------------------------
ТРИО теплый пол отзыв
Заработок на сокращении ссылок
Earnings on reducing links
Код PHP на HTML сайты
Я уже пять лет не занимаюсь сайтом, так как работаю по 12 часов. Образование у меня среднее, и по этому нет нормальной работы. Если бы сайт приносил по 100$ в месяц, я бы добавлял по 50 статей каждый месяц. Если отправите пожертвования, я оставлю Ваши имена и фамилии в списке благодетелей !
Bitcoin: 1AP3JCZVFpHzZwcAyNztbrbFFiLdnKbY1j
Litecoin LfHXHz4k6LnDNNvCodd5pj9aW4Qk67KoUD
Dogecoin D9HHvKNFZxRhjtoh6uZYjMjgcZewwiUME9
Есть также другие кошельки.
Категория: Компьютерные советы
Комментарии |