Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
gruppa_903a_proekt.doc
Скачиваний:
50
Добавлен:
10.02.2015
Размер:
23.8 Mб
Скачать

4. Режимы использования блочных шрифтов

Блочные шифры оперируют многими блоками открытых данных и шифртекста. Открытый текст

разбивается на блоки одинаковой длины (длина блока обычно составляет 64 или 128 битов, иногда длиннее) и преобразуется в шифртекст

,

также разбитый на блоки . Блок и соответствующий ему блок обычно имеют одинаковую длину. Последний блок в сообщении может быть неполным (укороченным). Неполный блок обычно дополняют одним из способов: до требуемой длины :

  • добавляется битовая единица и необходимое число битовых нулей;

  • добавляется необходимое число случайных байтов, но в последнем байте записываетcя число добавленных байтов.

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

Далее обозначает -битовую функцию зашифрования, а – обратную к ней функцию расшифрования; -битовый блок открытых данных, а – соответствующий ему блок шифртекста.

Задание данного раздела предусматривает зашифрование открытого сообщения с присоединенной к нему цифровой подписью в одном из предлагаемых ниже режимов 1-14.

  1. Режим электронной кодовой книги – ЕСВ (Electronic Code Book). В ГОСТ 28147-89 этот режим называется режимом простой замены.

Режим ЕСВ – простейший режим шифрования. Все блоки открытого текста шифруются независимо друг от друга. Уравнения зашифрования и расшифрования имеют вид (см. рис. 1):

(а) Зашифрование

(б) Расшифрование

Рис.1. Режим электронной кодовой книги ЕСВ

  1. Режим сцепления блоков шифртекста – СВС (Cipher Block Chaining). Уравнения зашифрования и расшифрования имеют вид (см. рис.2):

Ci:= Ek(Pi  Ci-1),

Pi:= Dk(Ci)  Ci-1,

Здесь С0 – блок, значение которого известно как отправителю, так и получателю сообщения. Блок С0 называют вектором инициализации (iv – initial vector, русский термин – синхропосылка). Рекомендуется для каждого сообщения выбирать уникальный вектор инициализации (используя, например, метку времени) и передавать его получателю в зашифрованном виде.

(a) Зашифрование (б) Расшифрование

Рис.2. Режим сцепления блоков шифртекста СВС

  1. Режим обратной связи по шифртекстуCFB (Cipher Feed Back). В ГОСТ 28147-89 аналогичный режим называется режимом гаммирования с обратной связью. Уравнения зашифрования и расшифрования имеют вид (см. рис.3):

Ci:= Pi  Ek(Ci-1),

Pi:= Ci  Ek(Ci-1),

Значение С0 задается при помощи вектора инициализации и передается получателю в открытом виде.

Рис.3. Режим обратной связи по шифртексту CFB

  1. Режим обратной связи по выходу – OFB (Output Feed Back). Уравнения зашифрования и расшифрования имеют вид (см. рис.4а):

Сi:= Pi  I,

Pi:= Ci  I,

Последовательность 1, 2, …, называемая гаммой шифра, вырабатывается по правилу:

i:= Ek(i-1),

Значение 0, задаваемое вектором инициализации (синхропосылкой), должно быть уникальным для каждого сообщения, но сохранять его в тайне не обязательно.

  1. Режим счетчика – Counter. В ГОСТ 28147-89 ему соответствует режим гаммирования. Уравнения зашифрования и расшифрования имеют вид (см. рис.4б):

Сi:= Pii,

Pi:= Cii,

Гамма шифра 1, 2,… вырабатывается по правилу:

i = Ek(si),

где si – некоторая последовательность чисел, определяемая формулой si=si-1+1 либо каким-либо другим способом.

(а) (б)

Рис.4. (а) Зашифрование в режиме OFB; (б) зашифрование в режиме счетчика (ГПК – генератор псевдослучайных кодов). Расшифрование осуществляется аналогично

  1. Режим сцепления блоков открытого текста – РВС (Plaintext Block Chaining) – является обратным к режиму СВС. Уравнения зашифрования и расшифрования имеют вид (см. рис.5):

Сi:= Ek(Pi) Pi-1, ;

Pi:= Dk(Ci Pi-1),

Значение Р0 задается вектором инициализации (синхропосылкой).

(a) Зашифрование (б) Расшифрование

Рис.5. Режим сцепления блоков открытого текста РВС

  1. Режим обратной связи по открытому тексту – PFB (Plaintext Feed Back) – является обратным к режиму CFB. Уравнения зашифрования и расшифрования имеют вид (см. рис.6):

Сi:= PiEk(Pi-1),

Pi:= CiEk(Pi-1),

Значение Р0 задается вектором инициализации (синхропосылкой).

Рис.6. Режим обратной связи по открытому тексту PFB

  1. Режим усиленного сцепления блоков шифртекста – модификация режима СВС. Уравнения зашифрования и расшифрования имеют вид

Сi:= Pi-1  Ek(Pi  Ci-1),

Pi:= Ci-1  Dk(Ci  Pi-1),

Значения С0 и Р0 задаются векторами инициализации (синхропосылками).

(a) Зашифрование (б) Расшифрование

Рис.7. Режим усиленного сцепления блоков шифртекста

  1. Режим сцепления блоков шифртекста с распространением ошибки – РСВС (Propagating Cipher Block Chaining), как и предыдущий режим, является модификацией режима СВС. Уравнения зашифрования и зашифрования имеют вид (см. рис.8):

Ci:= Ek(Pi  Pi-1Ci-1),

Pi:= Dk(Ci) Ci-1Pi-1,

Значение С0  Р0 задается вектором инициализации.

(а) Зашифрование (б) Расшифрование

Рис.8. Режим сцепления блоков шифртекста с распространением ошибки РСВС

  1. Режим нелинейной обратной связи по выходу – OFBNLF (Output Feed Back with Nonlinear Function) – смешанный вариант режимов OFB и ECB, где ключ изменяется в каждом блоке. Уравнения зашифрования и расшифрования имеют вид (см. рис.9):

Ci:=Eki(Pi), ki=Ek(ki-1),

Pi:=Dki(Ci), ki=Ek(ki-1),

Значение k0 задается вектором инициализации (синхропосылкой).

(а) Зашифрование (б) Расшифрование

Рис.9. Режим нелинейной обратной связи по выходу OFBNLF

  1. Режим счетчика с нелинейной функцией – CNLF (Counter with Nonlinear Function). Уравнения зашифрования и расшифрования имеют вид (см. рис.10):

Ci:=Eki(Pi), ki=Ek(si),

Pi:=Dki(Ci), ki=Ek(si),

Последовательность s1, s2, … вырабатывается, например, по правилу si=si-1+1 либо каким-нибудь другим способом (например, с использованием ГПК – генератора псевдослучайных кодов), исходя из начального значения s0, заданного вектором инициализации (синхропосылкой).

(а) Зашифрование (б) Расшифрование

Рис.10. Режим счетчика с нелинейной функцией CNLF

  1. Режим сцепления блоков – ВС (Block Chaining mode). Уравнения зашифрования и расшифрования имеют вид (см. рис.11):

Сi:=Ek(Pi  Fi),

Pi:=Dk(Ci)  Fi,

Значение F1 задается вектором инициализации, а Fi=Fi-1 Ci-1 при .

(а) Зашифрование (б) Расшифрование

Рис.11. Режим сцепления блоков ВС mode

  1. Режим заимствования шифрованного текста – CTS (Cipher Text Stealing) – модификация режима СВС, допускающая обработку текста любой длины и генерирующая шифртекст точно такой же длины.

Пусть Р=Р1Р2…Рm-1Pm – открытый текст, разбитый на блоки Рi, 1im, где Рm – неполный блок, имеющий длину q битов вместо положенной длины n битов для полного блока, q<n. Шифртекст С=С1 С2 … Сm-1 Cm, где Cm – неполный блок длины q, получается по схеме (см. рис.12):

    1. первые m-2 блоков Рi шифруются с помощью стандартной техники СВС:

Сi:=Ek(PiCi-1),

    1. шифруется побитовая сумма блоков Рm-1 и Cm-2:

X:=Ek(Pm-1Cm-2);

в блоке Х выбираются первые q битов, которые образуют неполный блок Сm;

    1. блок Рm дополняется нулями до полного блока и суммируется с блоком Х; результат шифруется, что дает блок Сm-1:

Cm-1:=Ek((Pm || 0)  X).

Расшифрование выполняется по схеме:

  1. Pi:=Dk(Ci)Ci-1,

  2. X:=Dk(Cm-1)(Cm||0);

  3. Pm образуют первые битов блока ;

  4. Pm-1:=Dk(Cm||X′) Cm-2,

где X′ - блок, образованный последними битами блока .

(а) Зашифрование (б) Расшифрование

Рис.12. Режим CTS (зашифрование и расшифрование двух последних блоков; начальные блоки шифруются в режим СВС)

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

Пусть обозначает некоторую функцию шифрования t-битового блока данных под управлением ключа К, – обратную функцию, R – r-битовый случайный (псевдослучайный) блок, генерируемый датчиком случайных чисел ДСЧ, Р – s‑битовый блок шифруемых данных, С – (r+s)‑битовый блок шифртекста, результат зашифрования блока Р, (R,P)R||P – конкатенацию блоков R и Р. Некоторые варианты вероятностного шифрования представлены на рис.13 и 14.

В первом варианте блок P следующим образом преобразуется в блок C шифртекста:

Т:=(Р); С:=(R||T).

Расшифрование выполняется по схеме:

(R,T):=(C); P:=(T).

Во втором варианте блок R разбивается на два блока: r1‑битовый R1 и r2‑битовый R2, а блок P следующим образом преобразуется в блок C шифртекста:

T:=(R2||P); C:=(R1||T).

Расшифрование выполняется по схеме:

(R1,T):=(C); (R2,P):=(T).

Рис.13. Схема с предварительным шифрованием данных под управлением случайного ключа

Рис.14. Двухступенчатое вероятное шифрование

Еще один вариант представлен на рис.15.

Зашифрование:

R1:=(R);

P1:=(PR1);

C:=R1||P1.

Расшифрование:

P:=(P1)R1.

Рис.15. Объединение нескольких блочных алгоритмов

К недостаткам предложенных режимов вероятностного шифрования относится увеличение размера шифртекста по сравнению с открытым текстом.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]