Сделай Сам Свою Работу на 5

Описание алгоритма ГОСТ 28147-89





ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ

ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ

«ВОРОНЕЖСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ»

(ФГБОУ ВПО «ВГУ»)

Факультет прикладной математики, информатики и механики

 

Кафедра технической кибернетики и автоматического регулирования

 

 

ОТЧЁТ

по лабораторной работе №2

«Система шифрования данных ГОСТ 28147-89»

 

Выполнил:

студент 3-го курса 4-ой группы

Черданцев В.А.

 

Проверил:

доц. Воронков Б.Н.

 

Воронеж 2015


С О Д Е Р Ж А Н И Е

ПОСТАНОВКА ЗАДАЧИ………………………………………...…………...3

1.ПРИНЦИПЫ РАБОТЫ АЛГОРИТМА ГОСТ 28147-89.…………….........4

2.ОПИСАНИЕ АЛГОРИТМА ГОСТ 28147-89……………...……...…..……9

2.1.ОСНОВНОЙ ШАГ…………………………………………………….10

2.2.БАЗОВЫЕ ЦИКЛЫ……………………………………………………12

2.3.ОСНОВНЫЕ РЕЖИМЫ ШИФРОВАНИЯ…………………………..15

2.3.1.РЕЖИМ ПРОСТОЙ ЗАМЕНЫ…………………………………15

2.3.2.РЕЖИМ ГАММИРОВАНИЯ……………………………………18

2.3.3.РЕЖИМ ГАММИРОВАНИЯ С ОБРАТНОЙ СВЯЗЬЮ……….20

2.3.4.РЕЖИМ ВЫРАБОТКИ ИМИТОВСТАВКИ………………........21

3.РЕЗУЛЬТАТЫ ОБУЧЕНИЯ………………………......................................23



4.ШИФРОВАНИЕ И ВЫЯВЛЕНИЕ ОШИБОК В ОБУЧАЮЩЕЙ ПРОГРАММЕ………………………………………………………….……...32

5.ОТВЕТЫ НА КОНТРОЛЬНЫЕ ВОПРОСЫ………………………...…....33

ВЫВОДЫ….......................................................................................................36

БИБЛИОГРАФИЧЕСКИЙ СПИСОК……...….………………………..…....37


ПОСТАНОВКА ЗАДАЧИ

1. Ознакомиться с обучающей программой «Gost89tutor».

2. Сформулировать принципы работы алгоритма.

3. Зафиксировать последовательность этапов и результаты тестирования.

4. Провести исследование программы с целью выявления ошибок и недочетов.

5. Ответить на контрольные вопросы.

6. Составить отчет о проделанной работе.


 

Принципы работы алгоритма ГОСТ 28147-89

 

1. Блочный, длина блока 64 бита. В режимах гаммирования и гаммирования с обратной связью реализуется как поточный.

2. Длина ключа 256 бит.

3. Используется метод замены.

4. Режимы шифрования: простой замены, гаммирование, гаммирование с обратной связью, режим выработки имитоставки.

5. 32 раунда шифрования.

6. Преобразование4 бит в S-блоке

7. Цикл расшифрования должен быть обратным циклу зашифрования, то есть последовательное применение этих двух циклов к произвольному блоку должно дать в итоге исходный блок.



8. Расшифрование полностью аналогично зашифрованию, но с другим порядком использования фрагментов ключа.

9. Схема Фейстеля [1,2,3].

 
 

 

 

Описание алгоритма ГОСТ 28147-89

Алгоритм криптографического преобразования данных представляет собой 64-битовый блочный алгоритм с 256-битовым ключом.

Для шифрования данных используется 256-битовый ключ K, который представляется в виде восьми 32-битовых подключей Ki: K=K7K6K5K4K3K2K1K0.

Схема основного шага преобразования представлена на рисунке 2 [3].

 

Рисунок 2 - Схема основного шага криптопреобразования алгоритма.

Шаг 0. Определяет исходные данные для основного шага криптопреобразования:

N – преобразуемый 64-битовый блок данных, в ходе выполнения шага его младшая (N1) и старшая (N2) части обрабатываются как отдельные 32-битовые целые числа без знака. Таким образом, можно записать N=(N1,N2).

X – 32-битовый элемент ключа;

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

Шаг 2. Поблочная замена:

H – таблица замен. 32-битовое значение, полученное на предыдущем шаге, интерпретируется как массив из восьми 4-битовых блоков кода: S = (S0,S1,S2,S3,S4,S5,S6,S7).

Далее значение каждого из восьми блоков заменяется новым, которое выбирается по таблице замен следующим образом: значение блока Si меняется на Si-тый по порядку элемент (нумерация с нуля) i-того узла замен (т.е. i-той строки таблицы замен, нумерация также с нуля). Другими словами, в качестве замены для значения блока выбирается элемент из таблицы замен с номером строки, равным номеру заменяемого блока, и номером столбца, равным значению заменяемого блока как 4-битового целого неотрицательного числа.



Шаг 3. Циклический сдвиг на 11 бит влево. Результат предыдущего шага сдвигается циклически на 11бит в сторону старших разрядов и передается на следующий шаг. На схеме алгоритма символом R обозначена функция циклического сдвига своего аргумента на 11 бит влево, т.е. в сторону старших разрядов.

Шаг 4. Побитовое сложение: значение, полученное на шаге 3, побитно складывается по модулю 2 со старшей половиной преобразуемого блока.

Шаг 5. Сдвиг по цепочке: младшая часть преобразуемого блока сдвигается на место старшей, а на ее место помещается результат выполнения предыдущего шага.

Шаг 6. Полученное значение преобразуемого блока возвращается как результат выполнения алгоритма основного шага криптопреобразования [3].

Базовые циклы.

Базовые циклы заключаются в многократном выполнении основного шагас использованием разных элементов ключа и отличаются друг от друга только числомповторения шага и порядком использования ключевых элементов [2].

1. Цикл зашифрования 32-З:

K0,K1,K2,K3,K4,K5,K6,K7,K0,K1,K2,K3,K4,K5,K6,K7,K0,K1,K2,K3,K4,K5, K6,K7,K7,K6,K5,K4,K3,K2,K1,K0.

2. Цикл расшифрования 32-Р:

K0,K1,K2,K3,K4,K5,K6,K7,K7,K6,K5,K4,K3,K2,K1,K0,K7,K6,K5,K4,K3,K2, K1, K0,K7,K6,K5,K4,K3,K2,K1,K0.

3. Цикл выработки имитовставки 16-З:

K0,K1,K2,K3,K4,K5,K6,K7,K0,K1,K2,K3,K4,K5,K6,K7.

Цикл расшифрования должен быть обратным циклу зашифрования, то есть последовательное применение этих двух циклов к произвольному блоку должно дать в итоге исходный блок. Для выполнения этого условия для алгоритмов, подобных ГОСТу, необходимо и достаточно, чтобы порядок использования ключевых элементов соответствующими циклами был взаимно обратным. Цикл выработки имитовставки вдвое короче циклов шифрования, порядок использования ключевых элементов в нем такой же, как в первых 16 шагах цикла зашифрования, в чем нетрудно убедиться, рассмотрев приведенные выше последовательности, поэтому этот порядок в обозначении цикла кодируется той же самой буквой «З» [3].

 

 

Основные режимы шифрования.

ГОСТ 28147-89 предусматривает следующие режимы шифрования данных:

- простая замена;

- гаммирование;

- гаммирование с обратной связью;

- выработки имитовставки.

Режим простой замены. Зашифрование в данном режиме заключается в применении цикла 32-З к блокам открытых данных, расшифрование – цикла 32-Р к блокам зашифрованных данных. Это наиболее простой из режимов, 64-битные блоки обрабатываются независимо друг от друга.

Размер массива открытых или зашифрованных данных должен быть кратен 64 битам.

Режим простой замены включает в себя следующие особенности:

- Так как блоки входных данных шифруются независимо друг от друга и от их позиции в массиве, при зашифровании двух одинаковых блоков открытого текста получаются одинаковые блоки шифротекста и наоборот.

- Если длина шифруемого массива данных не кратна 8 байтам, возникает проблема, чем и как дополнять последний неполный блок данных массива до полных 64 бит [2].

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

Гаммирование– это наложение (снятие) на открытые (зашифрованные) данные криптографической гаммы, то есть последовательности элементов данных, вырабатываемых с помощью некоторого криптографического алгоритма, для получения зашифрованных (открытых) данных. Для наложения гаммы при зашифровании и ее снятия при расшифровании должны использоваться взаимно обратные бинарные операции, например, сложение и вычитание по модулю 2 в степени 64 для 64-битовых блоков данных. В ГОСТе для этой цели используется операция побитного сложения по модулю 2, поскольку она является обратной самой себе и, к тому же, наиболее просто реализуется аппаратно [2].

Для расшифрования необходимо выработать такую же гамму, после чего побитово сложить ее по модулю 2 с зашифрованным текстом. Очевидно, для этого нужно использовать ту же синхропосылку, что и при шифровании. При этом, исходя из требований уникальности гаммы, нельзя использовать одну синхропосылку для шифрования нескольких массивов данных. Как правило, синхропосылка тем или иным образом передается вместе с шифротекстом[4].

Схема режима гаммирования представлена на рисунке 3.

 
 

Рисунок 3 – Шифрование в режиме гаммирования

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

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

При изменении одного бита шифротекста, полученного с использованием алгоритма гаммирования с обратной связью, в соответствующем блоке расшифрованного текста меняется только один бит, так же затрагивается последующий блок открытого текста. При этом все остальные блоки остаются неизменными [4].

Схема представлена на рисунке 4 [3].

 
 

Рисунок 4 – Шифрование в режиме гаммирования с обратной связью

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

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

Имитовставка вырабатывается для M ≥ 2 блоков открытого текста по 64 бит. Алгоритм следующий:

1. Блок открытых данных записывается в регистры N1 и N2, после чего подвергается преобразованию 16-З

2. К полученному результату побитово по модулю 2 прибавляется следующий блок открытых данных. Последний блок при необходимости дополняется нулями. Сумма также шифруется в соответствии с пунктом1 [4].

3. После добавления и шифрования последнего блока из результата выбирается имитовставка длиной L бит (обычно берется 32 младших бита). Стандарт рекомендует выбирать L исходя из того, что вероятность навязывания ложных данных равна 2-L. Имитовставка передается по каналу связи после зашифрованных блоков.


3.РЕЗУЛЬТАТЫ ОБУЧЕНИЯ

Цель: осуществить 12 этапов обучения с фиксацией результатов.

 

Входные данные:

Шифруемое сообщение – Алгоритм.

Ключ шифрования – Карандаш.

Синхропосылка: 12345678

Рис. 9. Входные данные

 

Рис. 10. Разделение аргумента

Рис. 11. Получение S0

Рис. 12. Сложение S1 с константой C2 по модулю 2^32 -1

 

Рис. 13. Объединение последовательностей битов

Рис. 14. Основной цикл шифрования

 

 

Рис. 15. Разделение аргумента

 

Рис.16 Сложение с ключом по модулю 2^32


 

Рис. 17 Блочная замена

Рис. 18. “Вращение” последовательности на 11 бит влево


 

Рис. 19 Сложение с последовательностью

Рис. 20 Объединение последовательностей битов


Рис. 21 Сложение аргумента и гаммы по модулю 2

Рис. 22 Результаты теста

 

Результат работы программы “Gost89tutor-08”:

Рис. 23.

 

Рис. 24.

Рис. 25.

 

Рис. 26.

Рис. 27.

 

Рис. 28.

 

4.ШИФРОВАНИЕ И ВЫЯВЛЕНИЕ ОШИБОК И НЕДОЧЁТОВ В ОБУЧАЮЩЕЙ ПРОГРАММЕ

 

В ходе работы с программой «Gost89tutor» были обнаружены следующие недочеты:

- Кнопка «Назад» активируется только после введения данных в поле ввода.

- Нельзя вернуться назад на первом шаге.

 

- На 8 шаге вызывает неудобство выделения строк.

 

- При совершении ошибки нельзя начать процесс обучения с этого шага, а приходиться все делать сначала.

 

При работе с программой «Gost89tutor – 08» были выявлены недочеты:

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

- Возможность ввода данных в служебное поле.


5.ОТВЕТЫ НА КОНТРОЛЬНЫЕ ВОПРОСЫ

1) (91) В чем состоит принцип Керкгофса?

Принцип Керкгофса - правило разработки криптографических систем, согласно которому в засекреченном виде держится только определённый набор параметров алгоритма, называемый ключом, а сам алгоритм шифрования должен быть открытым. Другими словами, при оценке надёжности шифрования необходимо предполагать, что противник знает об используемой системе шифрования всё, кроме применяемых ключей [4].

2) (99) Справедлив ли принцип взаимной обратимости циклов зашифрования и расшифрования для ГОСТ 28147–89?

 

3) (111) В каком случае возникает необходимость передавать синхропосылку по каналу связи вместе с шифрованным текстом и когда это не является обязательным?

 

4) (114) Почему в ГОСТ 28147–89 (232 -1) mod (232 - 1) ≠ 0?

 

5) (121) Поясните, почему секретность и аутентичность являются различными свойствами криптографических систем?

Секретность – это свойство криптосистемы обеспечивать секретность защищаемых данных.

Аутентичность – это свойство криптосистем быть способными обеспечивать подлинность данных. Подлиннсть данных означает, что они были созданы законными участниками информационного процесса и не подвергались случайным или намеренным искажениям. Способность системы обеспечивать подлинность данных означает, что система способна обнаружить все случаи искажения данных с вероятностью ошибки, не привышающей заданной величины [5].

 

6.ВЫВОДЫ

 

В ходе выполнения поставленных задач был изучен алгоритм шифрования ГОСТ 28147-89.


БИБЛИОГРАФИЧЕСКИЙ СПИСОК

 








Не нашли, что искали? Воспользуйтесь поиском по сайту:



©2015 - 2024 stydopedia.ru Все материалы защищены законодательством РФ.