Описание алгоритма ГОСТ 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 Все материалы защищены законодательством РФ.
|