Иванов М.А. КМЗИ сети
.pdfрегистра сдвига (синхропосылка); |
E Ω s |
– старшие |
Ω битов |
||||||||
n-разрядной шифрограммы E |
AB |
s |
. |
AB i-1 |
|
|
|
||||
|
|
|
|
|
i-1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
mi |
|
|
|
|
τ |
|
ci |
|
|
|
τEAB
|
|
sni |
s0 |
|
τ |
Регистр |
|
|
сдвига |
|
|
|
|
|
|
|
|
|
а |
ci |
|
τ |
mi |
|
|
|
τEAB
si
n s
Регистр 0 сдвига
τ |
б |
|
Рис. 2.4. Режим шифрования CFB: а – зашифрование, б – расшифрование
|
|
m1 |
... |
mt - 1 |
|
mt |
|
|
|
... |
|
|
|
|
|
EAB |
EAB |
|
EAB |
|
c0 = s0 |
|
c1p0= s1 |
... Ct - 1= st - 1 |
ct |
а |
|
c0 |
= s0 |
c1 = s1 |
... |
ct - 1= st - 1 |
|
ct |
|
|
|
... |
|
|
|
EAB |
|
EAB |
|
EAB |
|
|
|
mp01 |
... |
mt - 1 |
mt |
б |
Рис. 2.5. Режим шифрования CFB при τ = n: а – зашифрование, б – расшифрование
81
Схема шифрования в режиме CFB при Ω n показана на рис. 2.5. Уравнения зашифрования и расшифрования в этом случае принимают вид
ci |
mi EAB ci-1 , |
mi |
ci EAB ci-1 , |
i1, t .
ВГОСТ 28147-89 аналогичный режим назван режимом гам-
мирования с обратной связью. Свойства данной схемы шифро-
вания аналогичны режиму CBC: при зашифровании каждый блок шифротекста зависит от всего предшествующего ему открытого текста, при расшифровании отсутствует эффект «размножения» ошибок.
Схема шифрования в режиме обратной связи по выходу (Output Feedback (OFB)) показана на рис. 2.6. Схема, приведенная ранее на рис. 1.13, может рассматриваться как простейший частный случай данной схемы. Гамма шифра снимается с выходов генератора псевдослучайных чисел, реализованного на основе n-разрядного регистра сдвига, в цепи обратной связи
которого используется функция зашифрования EAB . Уравнения зашифрования и расшифрования имеют вид
ci |
|
mi ϑi , |
|
|
||||
mi |
|
ci ϑi , |
, |
|
||||
ϑ |
i |
|
E Ω |
s |
|
|
||
|
|
AB |
i - 1 |
|
|
|||
s |
|
|
2Ω s |
|
ϑ |
mod2n , |
||
i |
|
|
i - 1 |
|
i |
|
||
i |
|
|
|
, |
|
|
|
|
|
1, t |
|
|
|
|
где ϑi – очередной элемент гаммирующей последовательности; n – разрядность регистра сдвига; Ω – разрядность шифруемых блоков данных; s0 – начальное состояние регистра сдвига (син-
хропосылка); EABΩ si - 1 – старшие Ω битов n-разрядной шифрограммы EAB si - 1 . Последовательность ϑ ϑ1ϑ2 ... ϑi ...ϑt не зави-
сит от открытого текста и поэтому всякий раз при фиксированных kAB и s0 будет вырабатываться одна и та же гамма. Данный
факт требует при шифровании на одном ключе двух различных массивов данных использовать различные синхропосылки.
82
|
|
|
|
|
|
|
|
|
|
|
|
|
mi |
|
||
|
|
|
|
|
|
τ |
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
EAB |
|
|
|
γi |
t |
|
|||||||
|
|
|
|
|
|
si |
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
n |
|
s0 |
|
|
|
|
|
|
|
|
|
|
Регистр |
|
|
|
|
|
t |
|
|||||||
|
|
|
сдвига |
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Генератор |
|
|
|
ci |
а |
|||||
|
|
|
|
|
|
ПСЧ |
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
ci |
|
||
|
|
|
|
|
|
τ |
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
EAB |
|
|
|
γi |
|
|
t |
|
|||||
|
|
|
|
|
|
nsi |
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
s0 |
|
|
|
|
t |
|
|||
|
|
Регистр |
|
|
|
|
|
|
||||||||
|
|
|
сдвига |
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Генератор |
|
|
|
mi |
б |
|||||
|
|
|
|
|
|
ПСЧ |
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
Рис. 2.6. Режим шифрования OFB: а – зашифрование, б – расшифрование |
Схема шифрования в режиме OFB при Ω n показана на рис. 2.7. Уравнения зашифрования и расшифрования в этом слу-
чае принимают вид: |
, |
|
ci |
mi EAB si - 1 |
|
mi |
ci EAB si - 1 |
, |
si |
EAB si - 1 , |
|
i1, t .
Всхеме режима счетчика (Counter) (рис. 2.8) генератор ПСЧ имеет двухступенчатую структуру. Первая ступень это либо n-разрядный счетчик, изменение состояния которого задается
формулой si si-1 1, либо генератор n-разрядных кодов с мак-
симально возможным периодом выходной последовательности. Каждый n-разрядный двоичный набор с выхода счетчика или генератора кодов первой ступени поступает на вход функции
зашифрования EАB , |
результат действия которой – очередной |
|||||
элемент гаммы: |
ϑ |
i |
E Ω s |
i - 1 |
. |
Так же, как и в режиме OFB, для |
|
|
АB |
|
|
обратимости процедур шифрования при зашифровании и расшифровании должна использоваться одна и та же синхропосылка s0 . Уравнения зашифрования и расшифрования в режиме
счетчика имеют вид
83
ci |
mi ϑi , |
mi |
ci ϑi , |
i 1, t, 1 δ Ω δ n.
m1 s0
EAB
p0c1
c1 s0
EAB
mp01
...
... |
|
mt |
|
|
|
st - 1 |
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
EAB |
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
... |
|
|
|
|
|
|
ct |
а |
||
... |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
... |
|
ct |
|
|
|
st - 1 |
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
EAB |
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
... |
|
|
|
|
|
|
mt |
б |
Рис. 2.7. Режим шифрования OFB при τ = n: а – зашифрование, б – расшифрование
|
|
|
|
|
|
|
|
mi |
|
||
|
τ |
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
EAB |
|
|
|
γi |
τ |
|
|||||
|
si |
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|||||
|
n |
|
|
|
|
|
|
|
|
|
|
|
|
s0 |
|
|
|
|
τ |
|
|||
Счетчик |
|
|
|
|
|
|
|||||
si +1= si +1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
Генератор |
|
|
|
ci |
а |
||||||
|
ПСЧ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
ci |
|
||
|
τ |
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
EAB |
|
|
|
γi |
τ |
|
|||||
|
si |
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|||||
|
n |
|
|
|
|
|
|
|
|
|
|
|
|
s0 |
|
|
|
|
τ |
|
|||
Счетчик |
|
|
|
|
|
|
|||||
si +1= si +1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
||
Генератор |
|
|
|
mi |
б |
||||||
|
ПСЧ |
|
|
|
|
|
|
|
|
|
|
Рис. 2.8. Режим шифрования Counter: а – зашифрование, б – расшифрование
84
В ГОСТ 28147-89 аналогичный режим называется режимом
гаммирования.
Режимы счетчика и OFB c точки зрения обеспечения высокого уровня криптозащиты наиболее эффективны: именно они, по своей сути, наиболее близки к схеме одноразового использования, т.е. к абсолютно стойкому шифру. С одинаковым на то основанием оба они могут называться режимом гаммирования и в качестве последнего имеют следующие свойства:
1) при зашифровании и расшифровании используется одна и та же функция EAB ;
2) |
любой элемент (бит, байт, |
блок и т.п.) информационной |
||||||||||
|
последовательности шифруется независимо от других; |
|
|
|||||||||
3) |
изменение любого бита шифротекста на противополож- |
|||||||||||
|
ное значение приводит после расшифрования к анало- |
|||||||||||
|
гичному изменению соответствующего бита открытого |
|||||||||||
|
текста: |
b c 1 |
b m ϑ |
1 |
b m 1 ϑ |
|
|
|
|
|
||
|
|
b c |
|
b m |
ϑ |
, |
||||||
|
1 |
1 |
i |
i |
|
i |
i i |
i |
|
где bi c , bi m – соответственно биты закрытого и открыто-
го текста; 4) повторное наложение той же гаммы ϑ на зашифрован-
ную последовательность с, дает на выходе исходную последовательность
m ϑ ϑ m;
5)шифрование нулевой последовательности дает на выходе гамму
0 ϑ ϑ ;
6) если известны две последовательности c 1 и c 2 , зашиф-
рованные с использованием одной и той же гаммы, ее
действие нейтрализуется следующим образом: c 1 c 2 m 1 ϑ m 2 ϑ m 1 m 2 ,
после чего для дешифрования может быть использован частотный анализ;
7)если известны две последовательности c 1 и c 2 , зашифрованные с использованием одних и тех же значений k
85
и s1 , т.е. с использованием одной и той же гаммы, и известна последовательность m 1 , то последовательность
m 2 может быть легко вычислена по формуле m 2 c 1 c 2 m 1 ,
так как справедливо соотношение c 1 c 2 m 1 ϑ c 2 m 2 .
Третье свойство режимов гаммирования дает возможность противнику, не обладающему секретным ключом, воздействуя лишь на биты шифротекста, вносить предсказуемые, а в некоторых случаях даже целенаправленные изменения в получаемый после расшифрования открытый текст. Однако, как справедливо отмечается в [8], это свойство гаммирования нельзя считать недостатком, так как задачей любого шифра является лишь обеспечение секретности, задачи обеспечения целостности и подлинности информации решаются с использованием других механизмов, которые будут рассмотрены в последующих главах. Возможность внесения предсказуемых изменений при использовании режимов гаммирования исчезает при использовании режима CFB (гаммирования с обратной связью).
Режим счетчика следует признать более качественным, чем режим OFB, учитывая, что во втором случае криптостойкая функция EAB , используемая в цепи обратной связи генератора
ПСЧ, вовсе не гарантирует максимально возможный период гаммы. Кроме того, если в режиме счетчика при реализации алгоритма EAB , не используемого в цепи обратной связи генерато-
ра ПСЧ, возникает случайное искажение информации, то при этом (в отличие от режима OFB, где искажаются все последующие элементы гаммы) искажается только один элемент гаммы, а значит, неправильно расшифровывается только один соответствующий блок.
Приведенные пять режимов использования блочных шифров являются наиболее распространенными. Более того, первые четыре в свое время были официально утверждены Национальным бюро стандартов США в качестве режимов использования алгоритма DES.
86
Генератор ПСЧ, функционирующий в соответствие с уравне-
нием |
2Ω s |
E Ω s |
mod2n , |
s |
|||
i |
i - 1 |
AB i - 1 |
|
официально утвержден для использования в режиме Output Feedback и его модификациях. Стойкость генератора при Ω n можно повысить, если в каждом такте полностью менять содержимое регистра генератора ПСЧ, т.е. в качестве сигналов обратной связи использовать n-разрядный код EAB si - 1 . Уравнение
работы модифицированного генератора (рис. 2.9) имеет вид
si |
EAB si - 1 . |
2.5.Российский стандарт криптографической защиты
Вданном разделе в качестве примера блочного итерационного шифра приведено краткое описание алгоритма криптографического преобразования данных ГОСТ 28147-89 [5–8], в дальнейшем изложении – просто ГОСТ.
γi
n |
t |
EAB
si n
s0
Регистр
Генератор
ПСЧ
Рис. 2.9. Модифицированный генератор ПСЧ для режимов шифрования, подобных OFB
Достоинства ГОСТа:
удобство программной реализации на 32-разрядных процессорах; регулярная структура устройства (реализующего алгоритм),
облегчающая его интегральное исполнение;
87
криптостойкость, приемлемая для подавляющего числа приложений; оригинальный качественный генератор ПСЧ (генератор гаммы);
большой запас «прочности» за счет значительного объема ключевой информации.
ГОСТ является классическим итерационным блочным шифром Фейстеля с разрядностью блоков данных, равным 64 битам. Чтобы разобраться в ГОСТе, необходимо понять:
характер используемой при шифровании ключевой информации, структуру раундовой функции шифрования (так называемо-
го основного шага криптопреобразования),
алгоритмы зашифрования Ek (базовые циклы 32-З и 16-З) и расшифрования Dk (базовый цикл 32-Р),
рекомендуемые режимы использования.
Ключевая информация ГОСТа. Ключевая информация представляет собой два массива данных: собственно ключ k и таблицу замен H (рис. 2.10). Ключ – это массив из восьми
32-разрядных элементов k km`, m 0, 7. Таким образом,
размер ключа составляет 8υ 32 256 битов или 32 байта. Таблица замен – набор из восьми одномерных массивов
H Hm`, m 0, 7 , так называемых узлов замены, каждый из
которых определяет логику работы четырехразрядного блока подстановок (S-блока) и по этой причине содержит шестнадцать 4-разрядных двоичных наборов (от 0 до 15), расположенных в произвольном порядке. Элемент m-го узла замен Sm j = H j, m – 4-разрядный код на выходе соответствующего
m-го S-блока при поступлении на его вход двоичного кода
числа j. |
Таким образом, объем таблицы замен равен |
8υ16υ 4 |
512 битов или 64 байта. Ключ должен быть масси- |
вом статистически независимых битов, принимающих с равной вероятностью значения 0 и 1. Если для генерации ключевой информации используется генератор ПСЧ, то он должен обладать криптостойкостью, не меньшей, чем у самого ГОСТа. Таблица замен H (в отличие от ключа k) – долговре-
88
менный ключевой элемент. Она, например, может быть общей для всех процедур шифрования в рамках одной системы криптографической защиты.
|
|
|
|
|
Таблица замен H |
|
|
|
|
|
|
Узел замен |
... |
|
... |
Узел замен |
Узел замен |
|
|
Адрес |
Узел замен |
|||||
|
|
|||||||
|
||||||||
|
|
ячейки |
H7 |
|
Hm |
|
H1 |
H0 |
0 |
S7(0) |
|
Sm(0) |
|
S1(0) |
S0(0) |
||
|
|
|
|
|
|
|
|
|
1 |
S7(1) |
|
Sm(1) |
|
S1(1) |
S0(1) |
j |
S7(j) |
Sm(j) |
S1(j) |
S0(j) |
15 |
S7(15) |
Sm(15) |
S1(15) |
S0(15) |
|
Рис. 2.10. Таблица замен ГОСТ 28147-89 |
|
Раундовая функция шифрования ГОСТа. Структура основ-
ного шага криптопреобразования показана на рис. 2.11, где d t –
входной блок, d t 1 – выходной блок, x – шаговый ключ. В качестве исходных данных шаг получает 64-разрядный блок данных d = (L, R) и 32-разрядный раундовый ключ x, в качестве которого используется один из элементов ключа km . В ходе выполнения
шага левая (L) и правая (R) половины блока данных рассматриваются как отдельные 32-разрядные элементы данных, в качестве которых они подвергаются следующим преобразованиям:
1)сложению по модулю 232 полублока R и элемента ключа x;
2)разбиению результата s на восемь четырехбитовых блоков, поблочной замене по таблице замен, формированию из получившихся блоков нового значения s;
3)циклическому сдвигу результата s на 11 разрядов влево;
4)поразрядному сложению по модулю два (XOR) результата s и полублока L;
89
5) элемент R cтановится новым значением элемента L, значение результата предыдущей операции становится новым значением элемента R.
Полученные значения элементов L и R выдаются в качестве результата шага.
|
|
d(t) |
|
x ki |
|
|
|
|
|
64 |
|
32 |
|
|
L |
|
|
R |
|
|
|
32 |
|
|
32 |
|
|
|
|
|
|
f |
|
|
XOR |
|
|
|
32 |
|
|
|
32 |
|
|
|
|
|
|
L |
|
|
R |
|
|
|
|
|
64 |
|
|
|
|
|
d(t + 1) |
а |
|
|
|
|
|
|
R |
x |
|
|
|
|
|
32 |
|
32 |
|
Сложение |
|
SM |
|
|
H |
|
по модулю 232 |
|
|
|
|
|
|
|
|
|
32 |
H7 ... |
H1 |
H0 |
|
|
|
|
|||
|
4 |
|
4 |
4 |
|
|
|
S7 |
|
|
4 |
4 |
4 |
Подстановка |
... |
S1 |
S0 |
|
|
|
|
4 |
|
4 |
4 |
|
|
Циклический |
|
|
32 |
|
|
|
|
|
<<<11 |
|
|
|
|
сдвиг на 11 |
|
|
|
|
|
|
разрядов влево |
|
|
32 |
|
|
|
|
|
|
|
|
|
|
|
|
|
f(R, x) |
б |
|
|
Рис. 2.11. ГОСТ 28147-89:
а – схема основного шага криптопреобразования, б – шаговая функция f
90