Режимы шифрования.
Системные и прикладные аспекты
OFBNLF — нелинейная обратная связь по выходу. Режим OFBNLF наследует некоторые свойства режимов OFB и ЕСВ. Функционирование в режиме OFBNLF моделируется мультиключевым ш. а., ключ изменяется при шифровании каждого блока данных: у, = Ек (х,) k,= Ek (kt_f); ?=1,2,… Единичная ошибка в шифротексте распространяется только на один блок открытого текста, однако требуется поддержка синхронизма. Время… Читать ещё >
Режимы шифрования. Системные и прикладные аспекты (реферат, курсовая, диплом, контрольная)
Режимами шифрования называют алгоритмы обработки данных, построенные на основе базового режима ЕСВ. Криптографическая стойкость СБШ определяется в основном стойкостью базового режима. Однако особенности различных режимов шифрования позволяют использовать СБШ для решения различных криптографических задач.
ЕСВ (простая замена).
В режиме простой замены ключу k соответствует подстановка Ек степени 22″, в соответствии с которой каждый блок открытого текста заменяется блоком шифрованного текста. Режим ЕСВ имеет следующие свойства:
- 1) при замене и перестановке блоков шифрогекста блоки расшифровываются корректно;
- 2) шифрование на одном ключе одинаковых блоков открытого текста дает одинаковые блоки шифрогекста независимо от их положения в сообщении;
- 3) в силу хорошего перемешивания информации шифрующими подстановками, что является общим свойством известных блочных шифров, каждый из 2п битов выходного блока у искажается с вероятностью ½ при искажении одного лишь случайно выбранного бита входного блока х. Единичная ошибка в блоке х порождает в среднем п ошибок внутри 2я-битового шифрблока у. На другие шифрблоки сообщения ошибка не распространяется.
При искажении битов выходного блока у соответствующий блок х расшифруется некорректно, а остальные блоки сообщения расшифруются верно. Если бит шифротекста потерян или добавлен в сообщение, то весь последующий текст сдвигается и расшифровывается некорректно. Для локализации последствий сдвига требуется контролировать границы блоков.
Свойства 1 и 2 позволяют криптоаналитику, контролируя защищенную шифром в режиме ЕСВ линию связи, определять частоты появления отдельных блоков и сообщений. В определенных условиях нарушитель может генерировать ложные сообщения, не зная ни ключа, ни алгоритма шифрования, даже если сообщения содержат метки времени (кодовые комбинации, позволяющие подтвердить подлинность времени генерации, отправки, … сообщения). В силу этих недостатков режим ЕСВ не используют для шифрования длинных сообщений, шифруются лишь короткие сообщения вспомогательного характера: пароли, сеансовые ключи и т. п.
Длина большинства сообщений не кратна 2п. Поэтому при шифровании последнего неполного блока данных возникает задача корректного определения алгоритма шифрования. Эта проблема решается с помощью различных способов дополнения блоков текста.
Простейший способ — дополнение неполного ш-битового блока открытого текста строкой длины 2п — т — 8 битов, например нулевой строкой, и байтом, где указано число 2п — т, равное дефициту последнего блока в битах. После этого дополненный блок шифруется обычным образом. Если 2п — т < 8, то длина сообщения увеличивается на один блок.
Второй способ называется похищением (stealing) шифротекста. Обозначим через vm и wm отображения Vr —> Vm и Vr —> Vr_m соответственно, где 1 < т < г, реализующие в совокупности «рассечение» блока (хх,…, xr) е V,.
на две части: vm(xx…х,) = {хх, …, хт), wm(xx…хг) = (хх+т…х,). Пусть xt
и yt есть неполные m-битовые блоки открытого и шифрованного текстов, xt_x и у(_х суть предыдущие полные блоки. Тогда шифрование определено формулами у, — vm(Ek(xt_x)), yt_, = Ek(xt, wm(Ek(xt_x)). При расшифровании нужно вычислить блок (0 = Ek~1(yt_x), после чего определить х, = «'» (ш) и xt_x = Ek-'(yr
СВС (сцепление блоков шифротекста). Режим СВС блочного шифра описывается уравнениями шифрования у, = Ek(xt ®yt_x), t= 1, 2,…, где случайный вектор у0 е V2n, называемый вектором инициализации (начальным вектором, синхропосылкой), вырабатывается перед каждым сообщением. Вектор у0 может передаваться в линию связи и в открытом, и в шифрованном виде (в частности, с помощью режима ЕСВ). Однако важно избегать повторения синхропосылки в разных сообщениях, шифруемых одинаковым ключом. Это затрудняет атаку на шифротекст, основанную на наличии стандартов в начале сообщения. В качестве синхропосылки используется некоторая строка случайных байтов либо метка времени.
На рис. 15.2 дана блок-схема зашифрования (в верхней части) и расшифрования (в нижней части) в режиме СВС.
Рис. 15.2. Зашифрование-расшифрование в режиме СВС.
Искажение одного бита в блоке xt влечет за собой искажение в среднем половины битов во всех блоках шифротекста, начиная с yt. Для расшифрования это несущественно, так как восстановленный текст содержит ту же единственную ошибку.
Искажение /-го бита в блоке yt (такие искажения возможны из-за шумов в линиях связи или сбоев в устройствах хранения) влечет искажение около половины битов в блоке xt и /-го бита в блоке xt+x. Следующие блоки расшифровываются корректно (самовосстанавливаются). В то же время режим СВС совершенно не устойчив к ошибкам синхронизации.
Дополнение блоков выполняют, как в режиме ЕСВ, а если требуется совпадение длин исходного сообщения и криптограммы, то при неполном /w-битовом блоке xt открытого текста соответствующий блок у( шифротекста вычисляется по формуле yt = xt © vm(Ek(yt_j)).
Второй способ — это вариант похищения шифротекста. Пусть а есть (2п — т) —битовая строка из нулей и со = Ek(xt_{ 0 yt.2) — Тогда шифрование происходит по формулам yt = гя (со), yt_{ = Ek((xt, а) © со). При расшифровании сначала вычисляется блок данных со' = Ek yt t) Ф (yt> а), после чего определяется xt = ^w(co'), xt_x = Е^(уп wm(со')) 0 yt_2•.
CFB (гаммирование с обратной связью по шифротексту). В некоторых ситуациях, когда требуется шифровать символы поступающего потока, не дожидаясь формирования целого блока данных, удобен режим CFB. Обозначим CFB-m режим шифрования, в котором блоки открытого и шифрованного текстов имеют длину т битов (т — параметр), 1 < т < 2п. Для сообщения, состоящего из байтов, удобно взять т = 8. Блочный шифр в режиме CFB-m моделируется моноключевым ш. а. = №? Т, К, 2, hy fm), где X = Y = Vw S = V2n, z = sx — нс зависящая от ключа k синхропосылка, для функций frn и h выполнено: у{ = k, xt) = v, n(Ek(st)) 0 xt, st+x = = h (sty ky xt) = (wm(st)y yt)y t = 1, 2, … На рис. 15.3 показана схема зашифрования (в левой части) и расшифрования (в правой части) в режиме CFB-m. В обеих процедурах базовый режим используется только для шифрования (реализация подстановки Efx не требуется).
Рис. 153. Схема зашифрования-расшифрования в режиме СРВ-т.
Рекомендации по синхропосылке те же, что и в режиме СВС. Искажение одного бита в блоке х( влечет искажение одного бита в у{ и в среднем половины битов во всех блоках шифротекста, начиная с ум, но при расшифровании получается открытый текст с той же единственной ошибкой. Искажение г-го бита в блоке у, влечет искажение г-го бита в блоке х,. Затем ошибка поступает в регистр состояний и искажает в среднем половину битов в каждом из следующих / блоков, где [2п / т] < I < ]2п / т. В дальнейшем блоки расшифровываются корректно. Режим СРВ, как и ССПШ, самостоятельно восстанавливается после ошибок синхронизации.
ОРВ (гаммирование или внутренняя обратная связь). Блочный шифр в режиме гаммирования можно рассматривать как синхронный шифр гаммирования, обрабатывающий ш-битовые блоки открытого и шифрованного текста (обозначим режим ОРВ-те). Этот шифр моделируется моноключевым ш. а. Л$рв = (X, 5, У, К, г, /г,/т), где X = У = Рш, 5 = У2п, 2 = — не зависящая от ключа к синхропосылка, для функций /", и /г верно у, = к, х,) = = 0т(?^(5г" © х{, л>+1 = /г (х(, к) = ут{Ек^))), г = 1, 2,… На рис. 15.4.
показана схема зашифрования (в левой части) и расшифрования (в правой части) в режиме ОРВ-т. В обеих процедурах базовый режим используется только для зашифрования.
Рис. 15.4. Схема зашифрования-расшифрования в режиме ОРВ-т.
При использовании режима ОРВ важно сохранять синхронизм. Для этого необходимо предусмотреть средство контроля над синхронизмом и средство восстановления синхронизма в случае его потери. Рекомендации по синхропосылке те же, что и в режимах СВС и СРВ-т.
В режиме ОРВ ошибки не распространяются, что является позитивным при передаче оцифрованных речевых сигналов или видеоизображений.
Использование ряда СБШ в режиме ОБВ ограничено из-за относительно коротких длин периодов генерируемой гаммы. Например, при случайном равновероятном выборе начального состояния я, длина периода гаммы, генерируемой ?)?5-алгоритмом в режиме ОРВ, с большой вероятностью не превышает 232.
Рассмотрим другие режимы шифрования, их разработка стимулировалась стремлением устранить некоторые недостатки четырех основных режимов.
ВС-сцепление блоков. Режим ВС задан равенством
где у0 — синхропосылка. Основной недостаток режима ВС в том, что единичная ошибка в шифротексте влечет некорректное расшифрование всех последующих блоков шифротекста.
РСВС-сцепление блоков шифротекста с распространением ошибки.
Режим РСВС, заданный равенствами у, = Ek(xt ® yt_x ® t = 1,2, использован в протоколе Kerberos 4 для реализации как шифрования, так и проверки целостности в ходе единого ряда вычислений. В режиме РСВС единичная ошибка в шифротексте влечет некорректное расшифрование всех последующих блоков шифротекста, что используется для проверки целостности сообщений. Однако если целостность проверяется лишь для завершающего отрезка текста, то можно не обнаружить перестановки пары шифрблоков в начале текста. Это свойство заставило разработчиков отказаться от данного режима в пользу СВС в следующей версии протокола Kerberos.
OFBNLF — нелинейная обратная связь по выходу. Режим OFBNLF наследует некоторые свойства режимов OFB и ЕСВ. Функционирование в режиме OFBNLF моделируется мультиключевым ш. а., ключ изменяется при шифровании каждого блока данных: у, = Ек (х,) k,= Ek(kt_f); ?=1,2,… Единичная ошибка в шифротексте распространяется только на один блок открытого текста, однако требуется поддержка синхронизма. Время обновления текущего значения ключа должно быть небольшим, чтобы не снижать скорость шифрования данных базовым алгоритмом.