Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Электронный учебно-методический комплекс по учебной дисциплине «Основы информационной безопасности» для специальности 1-40 01 01 «Программное обеспечение информационных технологий»

.pdf
Скачиваний:
0
Добавлен:
28.12.2025
Размер:
3.95 Mб
Скачать

Первая операция называется подстановкой (заменой) и выполняется блоком подстановки . Блок подстановки состоит из восьми узлов замены ( - блоков замены) 1, 2, … , 8 с памятью 64 бит каждый. Поступающий из 2 на блок подстановки 32-разрядный вектор разбивают на восемь последовательно идущих 4-разрядных векторов, каждый из которых преобразуется в четырехразрядный вектор соответствующим узлом замены. Каждый узел замены можно представить в виде таблицы-перестановки шестнадцати четырехразрядных двоичных чисел в диапазоне 0000 … 1111. Входной вектор указывает адрес строки в таблице, а число в этой строке является выходным вектором. Затем четырехразрядные выходные векторы последовательно объединяют в 32-разрядный вектор. Узлы замены (таблицы-перестановки) представляют собой ключевые элементы, которые являются общими для сетей ТКС и редко изменяются. Эти узлы замены должны сохраняться в секрете.

Вторая операция - циклический сдвиг влево (на 11 разрядов) 32-разрядного вектора, полученного с выхода блока подстановки . Циклический сдвиг выполняется регистром сдвига . Затем результат работы функции шифрованиясуммируют поразрядно по модулю 2 в сумматоре 2 c 32-разрядным начальным заполнением (0) накопителя 2. Затем полученный на выходе 2 результат (значение (1)) записывают в накопитель 1, а старое значение 1 (значение (0)) переписывают в накопитель 2 (значение (1) = (0)). Первый цикл завершен. Последующие циклы осуществляются аналогично, при этом во втором цикле из КЗУ считывают заполнение 1 – подключ 1, в третьем цикле - подключ 2 и т.д., в восьмом цикле - подключ 7. В циклах с 9-го по 16- й, а также в циклах с 17-го по 24-й подключи из КЗУ считываются в том же порядке: 0, 1, 2, … 6, 7. В последних восьми циклах с 25-го по 32-й порядок считывания подключей из КЗУ обратный: 7, 6, … 2, 1, 0. Таким образом, при шифровании в 32 циклах осуществляется следующий порядок выборки из КЗУ подключей:

0, 1, 2, 3, 4, 5, 6, 7, 0, 1, 2, 3, 4, 5, 6, 7,

0, 1, 2, 3, 4, 5, 6, 7, 7, 6, 5, 4, 3, 2, 1, 0.

В 32-м цикле результат из сумматора 2 вводится в накопитель 2, а в накопителе 1 сохраняется прежнее заполнение. Полученные после 32-го цикла шифрования заполнения накопителей 1 и 2. являются блоком шифрованных данных Тш, соответствующим блоку открытых данных Т0.

Уравнения шифрования в режиме простой замены имеют вид

( ) = ( ( − 1) + ( −1) 8) ( − 1)

при = 1 … 24,

{

( ) = ( − 1)

 

 

71

{

( ) = ( ( − 1) + (32− ) 8) ( − 1)

при = 25 … 31,

( ) = ( − 1)

 

 

 

 

( ) = ( − 1)

 

 

{ ( ) = ( ( − 1) + ) ( − 1)

при = 32.

 

 

0

 

 

где ( ) = ( 32( ), 31( ), … 1( )) - заполнение

1 после

-го цикла

шифрования; ( ) = ( 32( ), 31( ), … , 1( )) - заполнение 2. после -го цикла шифрования, = 1 … 32..

Блок зашифрованных данных Тш (64 разряда) выводится из накопителей1, 2в следующем порядке: из разрядов 1 … 32 накопителя 1, затем из разрядов 1 … 32 накопителя 2, т.е. начиная с младших разрядов:

Тш = ( 1(32), 2(32), … 32(32), 1(32), 2(32), … 32(32)).

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

Расшифрование в режиме простой замены

Криптосхема, реализующая алгоритм расшифрования в режиме простой замены, имеет тот же вид, что и при шифровании (см. рис. 10.1).

В КЗУ вводят 256 бит ключа, на котором осуществлялось шифрование. Зашифрованные данные, подлежащие расшифрованию, разбиты на блоки Тш, по 64 бита в каждом. Ввод любого блока

Тш = ( 1(32), 2(32), … 32(32), 1(32), 2(32), … 32(32)).

в накопители 1

и 2

производят так, чтобы начальное значение накопителя 1

имело вид

 

 

 

 

 

(0) = ( 32(32), 31(32), … , 2(32), 1(32))

32,

31,

… ,

2,

1

номер разряда 1

а начальное заполнение накопителя 2:

(0) =

( 32(32), 31(32), … , 2(32), 1(32))

 

номер разряда 2

32,

31,

… ,

2,

1

Расшифрование осуществляется по тому же алгоритму, что и шифрование, с тем изменением, что заполнения накопителей X 0 , X1 , X 2 ,..., X 7 считываются из

КЗУ в циклах расшифрования в следующем порядке:

0, 1, 2, 3, 4, 5, 6, 7, 7, 6, 5, 4, 3, 2, 1, 0,7, 6, 5, 4, 3, 2, 1, 0, 7, 6, 5, 4, 3, 2, 1, 0.

72

Уравнения расшифрования имеют вид:

{

(32 − ) = ( (32 − + 1)

+ ( −1)) (32 − + 1)

 

(32 − ) = (32 − + 1)

 

 

при = 1 … 8,

 

 

 

 

 

 

{

(32 − ) = ( (32 − + 1) + (32− ) 8) (32 − + 1)

 

(32 − ) = (32 − + 1)

 

при = 9 … 31,

 

 

 

 

 

 

(0) = (1)

 

 

 

 

{ (0) = ( (1) + ) (1)

 

 

 

при = 32.

 

 

0

 

 

 

 

 

 

Полученные после 32 циклов работы заполнения накопителей N1 и N2

образуют блок открытых данных

 

 

 

 

 

Т0 = ( 1(0), 2(0), … 32(0), 1(0), 2(0), … 32(0))

соответствующий блоку зашифрованных данных Tш . При этом состояние

накопителя N1 :

 

 

 

 

 

 

(0) = ( 32(0), 31(0), … , 2(0), 1(0))

 

 

32,

31, … ,

2,

1 номер разряда N1

состояние накопителя N2 :

 

 

 

 

 

 

(0) = ( 32(0), 31(0), … , 2(0), 1

(0))

 

 

32,

31, … ,

2,

1

номер разряда N 2

Аналогично расшифроваются остальные блоки зашифрованных данных.

Если алгоритм зашифрования в режиме простой замены 64-битового блока Т0 обозначить через A , то

0) = ( (0), (0)) = ( (32), (32)) = Тш.

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

10.2. Режим гаммирования

Зашифровывание открытых данных в режиме гаммирования

Криптосхема, реализующая алгоритм шифрования в режиме гаммирования, показана на рис. 10.2. Открытые данные разбивают на 64разрядные блоки

Т0(1), Т0(2), … , Т0( ), … , Т(0 ),

где Т0( )- -й 64-разрядный блок открытых данных, = 1, … , , - определяется объемом шифруемых данных.

73

Эти блоки поочередно зашифровываются в режиме гаммирования путем поразрядного сложения по модулю 2 в сумматоре 5 с гаммой шифра Гш, которая вырабатывается блоками по 64 бита, т.е.

Гш = (Г(ш1), Г(ш2), … , Г(ш), … , Г(ш )

где Г(ш) - -й 64-разрядный блок, = 1, … , .

Число двоичных разрядов в блоке 0( ) может быть меньше 64, при этом

не использованная для зашифрования часть гаммы шифра из блока Гш( ) отбрасывается.

Уравнение шифрования данных в режиме гаммирования имеет вид

Тш( ) = Т(0 ) Г(ш),

где Г(ш) = ( −1 + 2, −1 + 1), = 1, … , ; Тш( ) - -й блок 64-разрядного блока зашифрованного текста; ( ) - функция шифрования в режиме простой замены;

1, 2 - 32-разрядные двоичные константы; , - 32-разрядные двоичные последовательности.

Величины , определяются итерационно по мере формирования гаммы

Г(ш) следующим образом:

( ) ̃,0, 0 = ( )

где ̃ - синхропосылка (64-разрядная двоичная последовательность),

( 0, 0) = ( −1 + 2, −1 + 1), = 1, … , .

Рассмотрим реализацию процедуры шифрования в режиме гаммирования. В накопители 6 и 5 заранее записаны 32-разрядные двоичные константы 1 и2, имеющие следующие значения (в шестнадцатеричной форме):

С1=01010104(16), С2=01010101(16)

74

В КЗУ вводится 256 бит ключа; в накопители 1 и 2 - 64-разрядная двоичная последовательность (синхропосылка)

̃ = ( 1, 2, … , 64).

Синхропосылка ̃ является исходным заполнением накопителей 1 и

Рис. 10.2. Схема реализации режима гаммирования

2 для последовательной выработки блоков гаммы шифра. Исходное заполнение накопителя 1:

( 32,

31,

… ,

2, 1)

 

32,

31,

… ,

2, 1 ← номер разряда 1,

состояние накопителя 2 :

… ,

34, 33)

 

( 64,

63,

 

64,

63,

… ,

34, 33 ← номер разряда 2,

Исходное заполнение

 

 

̃

шифруется в режиме простой

1 и 2 (синхропосылка

замены. Результат шифрования

( ̃) = ( 0, 0)

75

переписывается в 32-разрядные накопители 3

и 4 так, что заполнение N1

переписывается в 3 , а заполнение 2 - в 4 .

 

Заполнение накопителя 4

суммируют по модулю232 − 1 в сумматоре

4 с 32-разрядной константой

1 из накопителя 6. Результат записывается

в 4 . Заполнение накопителя 3

суммируется по модулю232 в сумматоре 3 с

32-разрядной константой 2 из

накопителя 5.

Результат записывается в 3.

Заполнение 3 переписывают в 1, а заполнение N4 - в 2, при этом заполнения

3, 4 сохраняются. Заполнение накопителей шифруется в режиме простой замены.

Полученное в результате шифрования заполнение накопителей 1 и 2 образует первый 64-разрядный блок гаммы шифра:

Г(1)ш = (1(1), 2(1), … , 63(1), 64(1))

который суммируют поразрядно по модулю 2 в сумматоре 5 с первым 64разрядным блоком открытых данных:

Т(1) = (1(1), 2(1), … , 63(1), 64(1))

Врезультате суммирования по модулю 2 значений Г(1) и (1) получают

первый 64-разрядный блок зашифрованных данных

Тш(1) = Г(1)ш То(1) = (1(1), 2(1), … , 63(1), 64(1))

,

где (1) = (1) (1), = 1 … 64.

Для получения следующего 64-разрядного блока гаммы шифра Г(2)ш заполнение 4 суммируется по модулю (232 − 1) в сумматоре 4 с константой1 из 6. Результат записывается в 4. Заполнение 3 суммируется по модулю 232 в сумматоре 3 с константой 2 из 5. Результат записывается в 3. Новое заполнение 3 переписывают в 1, а новое заполнение 4 - в 2, при этом заполнения 3 и 2 сохраняют. Заполнения 1, 2 шифруют в режиме простой замены.

Полученное в результате шифрования заполнение накопителей 1 и 2

образует второй 64-разрядный блок гаммы шифра Г(2)ш , который суммируется поразрядно по модулю 2 в сумматоре 5 со вторым блоком открытых данных

Т(2)

Тш(2) = Г(2)ш То(2).

Аналогично вырабатываются блоки гаммы шифра Г(3)ш , Г(4)ш , … , Г(ш )и шифруются блоки открытых данных Т(3), Т(3), … , Т( ).

В канал связи или память ЭВМ передаются синхропосылка S̃ и блоки зашифрованных данных:

ТШ(1), ТШ(2), … , Т(Ш ).

76

Расшифрование в режиме гаммирования

При расшифровании криптосхема имеет тот же вид, что и при шифровании

(см. рис. 10.2).

Уравнение расшифрования

T( ) = TШ( ) Г(Ш) = TШ( ) А( −1 + C2, Z −1 + C1), = 1 … .

Следует отметить, что расшифрование данных возможно только при наличии синхропосылки, которая не является секретным элементом шифра и может храниться в памяти ЭВМ или передаваться по каналам связи вместе с

зашифрованными данными.

 

 

 

Рассмотрим реализацию процедуры расшифрования. В КЗУ вводят 256 бит

ключа,

с помощью которого

осуществляется шифрование данных

T(1)

, T(2)

, … , T( ). В накопители

 

и вводится синхропосылка и

 

 

 

1

2

осуществляется процесс выработки блоков гаммы шифра Г(1)Ш , Г(2)Ш , … , Г(Ш ).

Блоки зашифрованных данных Т(1)Ш , ТШ(2), … , Т(Ш ) суммируются поразрядно по модулю 2 в сумматоре 5 с блоками гаммы шифра Г(1)Ш , Г(2)Ш , … , Г(Ш ). В резуль-

тате получаются блоки открытых данных ТО(1), Т(2)О , … , ТО( ),при этом Т(О )может содержать меньше 64 разрядов.

10.3. Режим гаммирования с обратной связью

Криптосхема, реализующая алгоритм шифрования в режиме гаммирования с обратной связью, имеет вид, показанный на рис. 10.3.

Шифрование открытых данных в режиме гаммирования с обратной связью

Открытые данные, разбитые на 64-разрядные блоки Т(1)О , ТО(2), … , Т(О ), шифруются в режиме гаммирования с обратной связью путем поразрядного сложения по модулю 2 с гаммой шифра ГШ, которая вырабатывается блоками по

64 бита: Г(1)Ш , Г(2)Ш , … , Г(Ш ).

Число двоичных разрядов в блоке Т(О ) может быть меньше 64, при этом

неиспользованная для шифрования часть гаммы шифра из блока Г(Ш ) отбрасывается.

77

Рис. 10.3. Схема реализации режима гаммирования с обратной связью

Уравнения шифрования в режиме гаммирования с обратной связью имеют

вид:

Т(1)Ш = А(S)̃ Т(1)О = Г(1)Ш Т(1)О ,

Т(Ш) = А (ТШ( −1)) ТО( ) = Г(Ш) Т(О), = 2 … .

Здесь Т(Ш)- i-й 64-разрядный блок шифрованного текста; А( ) - функция шифрования в режиме простой замены; определяется объемом открытых данных.

Аргументом функции А( ) на первом шаге итеративного алгоритма является 64-разрядная синхропосылка S, а на всех последующих

шагах - предыдущий блок зашифрованных данных Т(Ш−1).

Процедура шифрования данных в режиме гаммирования с обратной связью реализуется следующим образом. В КЗУ вводятся 256 бит ключа,в накопители N1 и N2 вводится синхропосылка S̃ = ( 1, 2, … , 64) из 64 бит. Исходное заполнение накопителей 1 и 2 шифруется в режиме простой замены. Полученное в результате шифрования заполнение накопителей 1 и

78

2 образует первый 64-разрядный блок гаммы шифра Г(1)Ш = À (S̃), который суммируется поразрядно по модулю 2 в сумматоре 5 с первым 64-разрядным блоком открытых данных

Т(1)О = (t1(1), t(21), … , t(631), t(641)).

В результате получают первый 64-разрядный блок шифрованных данных

ТШ(1) = Г(1)Ш Т(1)О ,

где ТШ(1) = (τ1(1), τ(21), … , τ(1)63 , τ(1)64 ).

Блок шифрованных данных TШ(i)одновременно является также исходным состоянием накопителей 1 и 2 для выработки второго блока гаммы шифра Г(2)Ш , и поэтому по обратной связи TШ(1) записывается в указанные накопители 1

и 2 .

Заполнение накопителя 1:

(1), τ(1)

, … , τ(1)

, τ(1))

32

31

2

1

 

32,

31, … , 2,

1

← номер разряда 1

Заполнение накопителя 2 :

 

64(1), τ63(1), … , τ34(1), τ33(1))

32,

31, … , 2,

1

← номер разряда 1

Заполнение накопителей

1 и

2

шифруется в режиме простой замены.

Полученное в результате шифрования заполнение накопителей 1 и 2 образует второй 64-разрядный блок гаммы шифра Г(2)Ш , который суммируется поразрядно

по модулю 2 в сумматоре 5 со вторым блоком открытых данных Т(2)О :

Т(2)Ш = Г(2)Ш ТО(2)

Выработка последующих блоков гаммы шифра ГШ и шифрование соответствующих блоков открытых данных Т(i)О (i = 3 … m) производятся аналогично. Если длина последнего m-го блока открытых данных Т(m)О меньше

64 разрядов, то из Г(m)Ш используется только соответствующее число разрядов гаммы шифра, остальные разряды отбрасываются.

 

В канал связи или память ЭВМ передаются синхропосылка

̃

и блоки

 

S

зашифрованных данных Т(1), Т(2)

, … , Т(m).

 

 

 

 

 

 

Ш

Ш

Ш

 

 

 

Расшифрование в режиме гаммирования с обратной связью

 

 

При расшифровывании криптосхема имеет тот же вид, что и при

шифровании (см. рис.10 3).

 

 

 

 

 

Уравнения расшифрования:

 

 

(1)

̃

(1)

(1)

(1)

 

 

 

 

TО

= A(S) TШ

= ГШ

TШ

,

 

 

 

T(i)

= Г(i) T(i) = A (T(i−1)) T(i), i = 2 … m.

 

 

О

Ш

Ш

Ш

 

Ш

 

 

 

79

Реализация процедуры расшифрования шифрованных данных в режиме гаммирования с обратной связью происходит следующим образом. В КЗУ вводят 256 бит того же ключа, на котором осуществлялось шифрование открытых блоков Т(1)О , ТО(2), … , Т(m)О . В накопители 1 и 2 вводится синхропосылка S̃.

Исходное заполнение накопителей 1 и 2 (синхропосылка S̃) шифруется в режиме простой замены. Полученное в результате шифрования заполнение 1 и2 образует первый блок гаммы шифра

 

(1)

 

̃

 

 

ГШ

= А(S),

 

который суммируется поразрядно по модулю 2 в сумматоре 5

с блоком

шифрованных данных Т(1)

. В результате получается первый блок открытых

Ш

 

 

 

 

данных

 

 

 

 

 

ТО(2) = ГШ(2) ТШ(2).

 

Блок шифрованных

данных

Т(1)

является исходным заполнением

 

 

Ш

 

 

накопителей и для выработки второго блока гаммы шифра Г(2):

Г(2) =

1 2

 

 

Ш

Ш

А(Т(1)Ш ),. Полученное заполнение накопителей 1 и 2 шифруется в режиме

простой замены. Образованный в результате шифрования блок Г(2)Ш суммируется поразрядно по модулю 2 в сумматоре 5 со вторым блоком шифрованных данных ТШ(2). В результате получают второй блок открытых данных. Аналогично в 1 и 2 последовательно записывают блоки шифрованных данных ТШ(1), ТШ(2), … , ТШ(m), из которых в режиме простой замены вырабатываются блоки гаммы шифра Г(3)Ш , Г(4)Ш , … , Г(Ш ). Блоки гаммы шифра суммируются поразрядно

по

модулю

2 в сумматоре 5 с блоками шифрованных данных

Т(3)

, Т(4)

, … , Т(m).

Ш

Ш

 

Ш

В результате получают блоки открытых данных ТО(3), Т(4)О , … , ТО(m), при этом последний блок открытых данных Т(m)О может содержать меньше 64 разрядов.

10.4. Режим выработки имитовставки

Имитовставка - это блок из P бит, который вырабатывают по определенному правилу из открытых данных с использованием ключа и затем добавляют к зашифрованным данным для обеспечения их имитозащиты.

Имитозащита - это защита системы шифрованной связи от навязывания ложных данных.

В стандарте ГОСТ 28147-89 определяется процесс выработки имитовставки, который единообразен для любого из режимов шифрования данных. Имитовставка И вырабатывается из блоков открытых данных либо перед шифрованием всего сообщения, либо параллельно с шифрованием по блокам. Первые блоки открытых данных, которые участвуют в выработке имитовставки, могут содержать служебную информацию (например, адресную часть, время, синхропосылку) и не шифруются.

80

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