Теоретические основы построения криптоалгоритмов на базе сети Фейштеля 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Теоретические основы построения криптоалгоритмов на базе сети Фейштеля



Сеть Фейштеля - один из методов построения блочных шифров, который преобразовывает n -битный блок исходного текста в n -битный блок зашифрованного текста.

Классическая сеть Фейштеля имеет следующую структуру. Входной блок делится на несколько равной длины подблоков, называемых ветвями сети. В классической схеме их две (рисунок 3.1).

 

 

Рисунок 3.1 - Классическая структура сети Фейштеля

 

Величины Vi называются параметрами сети, обычно это функции от материала ключа. Функция F называется образующей. Действие, состоящее из однократного вычисления образующей функции и последующего наложения (сложения по модулю 2)  ее результата на другую ветвь с обменом их местами, называется циклом или раундом (англ. round) сети Фейштеля. Оптимальное число раундов K – от 8 до 32. Часто количество раундов не фиксируется разработчиками алгоритма, а лишь указываются разумные пределы (обязательно нижний, и не всегда – верхний) этого параметра.

Данная схема является обратимой. Сеть Фейштеля обладает тем свойством, что даже если в качестве образующей функции F будет использовано необратимое преобразование, то и в этом случае вся цепочка будет восстановима. Это происходит вследствие того, что для обратного преобразования сети Фейштеля не нужно вычислять функцию F-1.

Сеть Фейштеля симметрична за счет использования операции XOR и для ее  обратимости не имеет значение является ли число раундов четным или нечетным числом.

Использование модификации сети Фейштеля для большего числа ветвей связано с тем, что при больших размерах кодируемых блоков (128 и более бит) становится неудобно работать с математическими функциями по модулю 64 и выше. Основные единицы информации обрабатываемые процессорами на сегодняшний день – это байт и двойное машинное слово 32 бита. Будет логично разбивать исходные блоки не на две, а на 4 части. В этом случае сеть Фейштеля может принимать следующий вид:

 

 

Рисунок 3.2 - Структура модифицированной сети Фейштеля

 

Алгоритм предназначен для шифрования и дешифрования информации, представленной в виде слов, разрядностью 128 бит на основе 64-битового ключа. Операции шифрования и дешифрования являются инверсными и используют один и тот же ключ.

Рассмотрим шифрование одного блока для сети с 4 ветвями.

Обозначим X 1 X 2 X 3 X 4 конкатенацию последовательностей X 1. X 2, X 3 и X 4, в которой биты последовательностей X 1, X 2, X 3, X 4 следуют друг за другом. Размерность последовательности равна сумме размерностей всех составляющих. Символом + обозначим операцию побитового сложения по модулю 2.

Итеративный процесс шифрования описывается следующими формулами:

Х 1(i) = X 2(i -1)+ F (V i), i = 1, 2,..., n;

Х 2(i) = X 3(i -1), i = 1, 2,..., n;

Х 3(i) = X 4(i -1), i = 1, 2,..., n;

Х 4(i) = X 1(i -1), i = 1, 2,..., n;

где F (V i) - образующая функция;

n - количество раундов, может изменяться, в зависимости от требований по быстродействию и криптостойкости (n= 8 ¸128).

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

F i = X 1(i -1)+ Vi (K

Vi (K)= K 1 ROL i + K 2 ROR i - параметр сети;

К 1 и К 2 - левая и правая части ключа К,

ROL и ROR - операции циклического сдвига влево и вправо соответственно.

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

Дешифрование блока информации производится той же сетью Фейштеля, но с инверсным порядком параметров сети. В явном виде ключ в алгоритме не используется, что повышает его криптостойкость. При знании ключа, но отсутствии информации о количестве раундов криптоаналитику будет достаточно сложно дешифровать зашифрованную информацию.

 

Задание на лабораторную работу

1. Выбрать в таблице параметры для сети Фейштеля

2. Разработать программу шифрования и дешифрования текста.

3. Произвести шифрование исходного текста, получить шифрограмму, осуществить ее дешифрование и сравнение с исходным текстом.

4. Результаты работы оформить в виде отчета.

5. Содержание отчета:

- описание используемого метода,

- описание исходных данных,

- алгоритм работы программы,

- текст программы,

- результаты работы программы,

- анализ результатов

- выводы.

Варианты индивидуальных заданий

Варианты заданий представлены в таблице 3.1. номер варианта выбирается в соответствии с номером студента в списке группы.

 

 

Таблица 3.1 – Параметры сети Фейштеля

Номер вар.

Количество

раундов

Образующая функция
1

8

Сложение
2

10

Исключающее ИЛИ
3

12

Циклический сдвиг вправо
4

14

Умножение по модулю 2N
5

10

Арифметический сдвиг вправо
6

18

Арифметический сдвиг влево
7

20

 Сложение
8

8

Умножение по модулю 2N
9 24

Исключающее ИЛИ

10 20

Сложение

11 18

Умножение по модулю 2N

12 28

Исключающее ИЛИ

13 12

Сложение

14 14

Циклический сдвиг влево

15 24

Исключающее ИЛИ

       

3.4 Контрольные вопросы

1. Какова структура классической сети Фейштеля?

2. Что называется раундом в сети Фейштеля?

3. Какими свойствами обладает сеть Фейштеля?

4. Каким образом используется материал ключа при шифровании?

 

ЗАДАНИЕ №4.

ИЗУЧЕНИЕ АЛГОРИТМОВ RSA

 

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

 

 



Поделиться:


Последнее изменение этой страницы: 2021-02-07; просмотров: 247; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.16.69.143 (0.013 с.)