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

Разработка моделей криптографической защиты информации. Монография

.pdf
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
1 Мб
Скачать
☆
)D(
2l
N’ N
блок=2 байта
ранга
11..01
M(D)
двоичного кода
Исходные данные
(поток двоичных чисел)
Определение
ранг
j
Разбиение
на блоки
МАТРИЦА
КОДИРОВАНИЯ
новое число N’
Изменение матричных
индексов
i, j
Сравнение чисел
Формирование
текущего
десятичного числа
i =1, j = 1 ?
да
Формирование
нет
Рисунок 2.5 – Модель матричного кодирования (П-шифр)
Такая модель отображает линейно – циклический процесс, в котором
dddD ,...,,
исходные разбиения - байтовые блоки данных
обрабатываются основной процедурой
причем число циклов будет равно
, и в каждом цикле на выходе блока
в циклическом режиме,
21
n
«Сравнение чисел» формируется бит выходного потока (числа). Процесс формирования выходного битового потока носит линейный характер состыковки получаемых бит в выходную последовательность.
Структурно – логическая модель этапа шифрования представлена на рис. 2.6. В модели важным объектом является блок получения
промежуточной вспомогательной функции
R
n
)n,R(fС
. Эта функция
служит базой вычисления множества подключей из заданного ключа.
51
R
k
k
k
ПШ
Ш
D
шифр
количество сдвигов (влево)
n
данные
на блоки
R
n
ключей
подключей
подключ
),( kCfk
n
является зависимым от
Вычисляемый подключ
преобразуемых данных, так как является функцией значения ранга числа, который в свою очередь сам является функцией от значения данных.
исходные
разбиение
ddd ,...,
21
Модель
матричного
кодирования
n
определение
ранга R
вычисление длины n
матричный код 2 байта
11…01
получение
R
C
n
задание
вычисление
R
),( kCfk
схема сдвига
Рисунок 2.6 – Модель этапа шифрования
Значение вычисляемого подключа
определяет число сдвигов влево матричного кода и тем самым задает шифр исходного числа. Под блоком задания ключей понимается либо средство связи, через которое передается секретный ключ, или устройство его генерации случайным образом.
На этапе шифрования требуется учесть время, необходимое для
R
С
выполнения вычисления
n
, подключа
и количества сдвигов
зашифрованного числа. Предварительные расчеты показали, что время,
R
С
затрачиваемое на расчеты
n
и
входит в интервал времени матричного кодирования. В итоге, дополнительное время требуется только для проведения операции сдвига на определяемое число разрядов.
Таким образом, общее время
t
и собственно шифрования
t
о
состоит из времени предшифрования
t
ttt
ШПШо
.
52
Количество сдвигов для каждого числа определяется индивидуально и
k
матричный код
подключ
ранг
R
количество
k
подключей
ранга
двоичного числа
R
),( kCfk
n
.
соответствует
Модель этапа дешифрования представлена на рис. 2.7. Шифр, полученный путем циклического сдвига влево матричного кода расположен на регистре схемы сдвига. На этом этапе необходимо получить, а затем и реализовать сдвиг в противоположную сторону (вправо) на вычисленное число разрядов. С этой целью необходимо вычислить значение
соответствующего подключа
R
С
вспомогательную функцию
исходного кода. Так как
n
R
С
n
зависит от длины исходного кода, то значение
, а та в свою очередь должна «знать» длину
, который определяется через
длины необходимо сохранять в течение всего процесса кодирования – шифрования. Отсюда следует, что в состав модели необходимо ввести соответствующий регистр.
регистр
длины числа
КЛЮЧ
ШИФР
получение
R
C
n
вычисление
R
вычисление
),( kCfk
n
сдвигов
(вправо)
схема сдвига
формирование
Рисунок 2.7 – Модель этапа дешифрования
R
С
Значение подключа, зависящего от
n
, и шифр подаются на вход схемы сдвига, которая и осуществляет операцию дешифрования шифра путем сдвига вправо. Процесс носит линейный характер и поэтому достаточно легко подсчитать временные затраты.
владельца информации, а информация, которая была получена на этапах
Зашифрованная информация может храниться в памяти компьютера
53
предшифрования и собственно шифрования может быть уничтожена в целях
B
),(ji
T
),(ji
T
B
i
i
сохранения тайны или перенесена в другое надежное место. В этом случае для дешифрования и декодирования потребуется меньше времени, чем если для этой цели ее воспроизводить по известным кодировщику правилам. Последнее имеет место при расшифровке информации, полученной по каналу связи. У получателя хранятся правила дешифрования и декодирования, которые рассмотрим ниже на этапах дешифрования и декодирования. Отдельно необходимо отметить, что ключ передается получателю по отдельному каналу связи, то есть сообщение и ключ передаются независимо.
Модель матричного декодирования представлена на рис. 2.8. Получение двоичного кода включает генерацию самой матрицы после собственно дешифрования, процедуру формирования множеств номеров
позиций (А), значений множества
, процедуру вычисления исходного числа по значениям
помощью матрицы.
Каждый элемент последовательности множества следующим образом:
b
i
где
числа справа налево,
Искомое число формируются по следующему правилу (см. пример 2 в п. 2.2):
если на
ni ,1
- порядковый номер единицы в позиции матричного кода
cесли
cеслиi
c
i
- той позиции декодируемого двоичного числа стоит 0,
;0,0
i
,1,
i
.- значение i -того бита матричного кода.
, получение матричных индексов
с
образуется
то на i-ую позицию кода ставится 0.
если на
то на i-ую позицию кода ставится порядковый номер появления этой 1 в декодируемом двоичном числе.
Множество А образуется простым перечислением номеров позиций от 1 до n двоичного числа справа налево двоичного числа, полученного после
дешифрования. Полученные значения элементов множеств А и Bобразуют
- той позиции декодируемого двоичного числа стоит 1,
54
последовательность матричных индексов (координат) чисел, которые
1
П
КОД ЧИСЛА
номеров позиций
элементов множества
B
индексов (
i,j
) числа
T(i,j)
десятичные числа
матрицы
проверка завершения просмотра
не завершено
завершено
суммируются, а результат суммирования и есть декодированное десятичное число.
ДЕШИФРОВАННЫЙ
формирование множества (A)
формирование значений
номера позиций
получение матричных
элементы множества В
МАТРИЦА
КОДИРОВАНИЯ
формирование элементов
исходного десятичного числа
),(iiBAT
суммирование десятичных
чисел матрицы
),(
BAT
0:
Bi
i
ii
позиций двоичного числа
формирование десятичного
числа N
0:
Bi
i
),(
BATN
ii
Рисунок 2.8 – Модель матричного декодирования
Временные затраты по декодированию формирование значений элементов множества B, в них входит проверка
наличия 1 в выбранной позиции
t
позиции
ук
, т.е.
Общая схема получения шифра и последующего дешифрования с учетом рассмотренных этапов может быть представлена следующей коммутативной диаграммой (рис. 2.9).
t
ДК
в основном приходятся на
t
и указания порядкового номера этой
ttt
укПДК
1
.
55
Для дальнейшего повышения стойкости информации предложена
исходный код
декодированный код
номера позиций
значения элементов
м
атричные
индексы
ная
композиция П-шифра с типовыми и достаточно простыми в реализации алгоритмами шифрования.
Матричное
кодирование
(1 уровень)
матрица
матричный код
Шифрование
сдвигом влево
(2 уровень)
ключ k
подключ k'
П-ключ
R
C
- вспомогатель
n
переменная
матричного кода
множества B
матричный код
матрица
шифр
ключ k
подключ k'
R
C
n
Матричное
декодирование
Дешифрование со
сдвигом вправо
Рисунок 2.9 – Коммутативная диаграмма
С этой целью была построена модель композиционного шифра с двумя уровнями шифрования в виде коммутативной диаграммы, причем в качестве типового шифрования второго уровня был выбран метод циклического сдвига, зависящий от преобразуемых данных (например, известные алгоритмы шифрования RC5, RC6, MARS). В случае управляемой операции циклического сдвига имеются n модификаций. Несмотря на столь малое число модификаций, данная операция оказалась эффективным криптографическим примитивом, который оптимизирован в криптографическом отношении, является стойким к линейному и дифференциальному криптоанализу, обладает очень низкой стоимостью схемотехнической реализации
Предложенная модель позволила построить шифр с новыми свойствами. Коммутативная диаграмма СКЗИ с использованием П-шифра позволяет детализировать процесс проектирования шифра как на
56
структурном, так и на логическом уровнях. Данная диаграмма может
21n
~
21n

)(c
N
служить основой для программной реализации СКЗИ.
2.4 Разработка алгоритмов криптографической защиты
информации на основе матричного преобразования
Разработка криптографического примитива на основе матрицы осуществляется согласно методике, изложенной в п. 2.1. и модели на рис. 2.1 с учетом особенностей и идеи матричного кодирования согласно п. 2.2 настоящей главы и моделей (п. 2.3.). Рассмотрим более подробно симметричную систему.
Симметричные криптосистемы - криптосистемы с симметричными (секретными) ключами. Симметричность означает, что ключи задают пару взаимно обратных криптографических преобразований. Стойкость симметричной криптосистемы определяется трудоемкостью, с которой противник может вычислить любой из секретных ключей.
Требования к длине ключа, определенные в главе 1, определяются исходя из требований к безопасности различной информации.
Режим шифрования.
Исходными данными для шифрования являются данные из бинарного
),...,,(
потока отдельно взятый блок является объектом, над которым производится ряд обязательных действий (в нашем случае это управляемая перестановка в зависимости от преобразуемых данных). Полученный в результате
перестановки блок обозначим как
Процесс разработки криптографического примитива на основе управляемой перестановки, зависящей от преобразуемых данных, связан со следующими этапами (рис. 2.10).
cccc
, который разбивается на блоки. Каждый
),...,,(
cccc
.
1. Разбиение исходной последовательности на блоки по два байта.
2. Вычисление
),...,,(
cccc
блока
3. Вычисление длины числа, т.е. реальной длины числа без учета
старших нулевых разрядов.
21 n
на основе метода, подробно изложенного в п. 2.2.
. Это кодирование исходного бинарного
57
),...,,(
)(c
N
),(kRfk
),(kNfN

4. Вычисление ранга блока
формуле
21 n
n
cR
i
i
1
, где n - длина исходного бинарного блока. Значение
cccc
производится по
ранга блока необходимо на дальнейших этапах разработки криптографического примитива. Из формулы видно, что значение ранга
c
определяется путем подсчета количества единиц в бинарном блоке
i
.
Начало
Разбиение на блоки
Кодирование исходного бинарного
блока
Вычисление длины числа n
Вычисление ранга
n
i
cR
i
1
Вычисление вспомогательной
функции ),( nRfC
R
n
Вычисление подключа
R
Ckk mod
n
Шифрование данных
конец
Рисунок 2.10 – Алгоритм работы криптографического примитива
в режиме шифрования
58
C
k
),(kRfk
k
R
c
~
),(kNfN

~

~

5. Вычисление значения вспомогательной функции
необходимо для вычисления подключа, производится по формуле:
!
R
C
n
n
)!(!
RnR
.
n
R
, которое
6. Вычисление подключа наиболее важной при разработке криптографической системы защиты информации. Разрабатываемый криптографический примитив позволяет работать с ключами до 256 бит.
Структура подключа определяется рангом бинарного блока и
структурой самого ключа. Выбираемый подключ является функцией
. Вычисление подключа
формуле определяет перестановку
7. Вычисление данных, полученных на предыдущем этапе в зависимости от ранга блока преобразуемых данных. В результате выполнения данного преобразования
получаем выходную бинарную последовательность
R
Ckk mod
n
, где
в зависимости от преобразуемых данных.
из ключа k. Эта процедура является
из ключа kпроизводится по
- это ранг. Полученный подключ
представляет собой шифрование
),...,,(
cccc
21 n
1
.
На этом режим шифрования закончен.
Режим дешифрования.
),...,,(
cccc
Пусть имеется бинарный блок
результате шифрования исходного блока произвести ряд обратных преобразований, которые позволят из зашифрованного блока получить исходный.
Процесс разработки режима дешифрования криптографического примитива на основе управляемой перестановки, зависящей от преобразуемых данных, связан со следующими этапами (рис. 2.11).
1. Вычисление длины зашифрованного числа. По своей сути это
реальная длина числа без учета старших нулевых разрядов.
59
21 n
1
cccc
21 n
, полученный в
),...,,(
1
. Необходимо
2. Вычисление ранга блока
~

1
1
с
~
Вычисление вспомогательной функции
),(kNfN

),(kRfk
формуле
n
i
21 n
1
~
cR
1
i
, где
n
-длина полученного бинарного блока.
1
производится по
),...,,(
cccc
Начало
Вычисление длины числа
n числа
Вычисление ранга
n
i
1
~
cR
i
1
R
n
),(1nRfC
Вычисление подключа
mod
;
R
Ckk
n
1
Дешифрование
Декодирование
1
),(
RNc
конец
Рисунок 2.11 – Алгоритм работы криптографического примитива
в режиме дешифрования
3. Вычисление значения вспомогательной функции
зашифрованного числа, производится по формуле:
C
n
R
1
для
60
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]