ОСНОВЫ ИНФОРМАЦИОННОЙ БЕЗОПАСНОСТИ

Некоммерческое  акционерное общество

АЛМАТИНСКИЙ УНИВЕРСИТЕТ ЭНЕРГЕТИКИ И СВЯЗИ

Кафедра компьютерных технологий

 

 

ОСНОВЫ ИНФОРМАЦИОННОЙ БЕЗОПАСНОСТИ

Методические указания к выполнению лабораторных работ
для студентов специальности 5В070400 – Вычислительная техника и программное обеспечение
Часть 1

 

 

Алматы 2013

 

СОСТАВИТЕЛИ: Б.М. Шайхин, А.Р. Оразаева, Г.С. Ыбытаева, М.А. Жумартов. Основы информационной безнопасности. Методические указания к выполнению лабораторных работ для студентов специальности 5В070400 -  Вычислительная техника и программное обеспечение. – Алматы: АУЭС, 2013. 45 – с.

 

В данной работе рассматривается комплекс лабораторных работ по

Даны методические указания по выполнению лабораторных работ.

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

Ил. 21, табл. 11.

 

Рецензент: Елеукулов Е.О.

 

Печатается по плану издания некоммерческого акционерного общества «Алматинский университет энергетики и связи» на 2013 г.

 

 

© НАО «Алматинский университет энергетики и связи», 2013 г.

 

Содержание

 

Введение

4

1 Лабораторная работа №1. Использование классических криптоалгоритмов подстановки и перестановки для защиты текстовой информации

6

2 Лабораторная работа №2. Исследование различных методов защиты текстовой информации и их стойкости на основе подбора ключей

12

3 Лабораторная работа №3. Изучение устройства и принципа работы шифровальной машины «Энигма»

17

4 Лабораторная работа №4. Стандарт симметричного шифрования AES Rijndael

26

5 Лабораторная работа №5. Генерация простых чисел, используемых в асимметричных системах шифрования

36

6 Лабораторная работа №6. Электронная цифровая подпись

39

Список литературы

44

 

Введение

 

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

Данная работа включает 6 методических описаний лабораторных работ с комплектом исполняемых модулей.

В первую часть включены лабораторные задания: по методам шифрования, использующим классические симметричные алгоритмы; исследованиям различных методов защиты текстовой информации и их стойкости на основе подбора ключей; изучению устройства и принци­па действия шифровальной машины «Энигма» с использованием про­граммного эмулятора; изучению современного стандарта симметрич­ного шифрования AES Rijndael; изучению про­цессов генерации простых чисел для систем асимметричного шифро­вания; процессов постановки и верификации электронной цифровой подписи.

При выполнении лабораторных заданий первой части предполага­ется рассмотрение следующих вопросов.

Изучение классических криптографических алгоритмов моноалфавитной подстановки, многоалфавитной подстановки и перестановки для защиты текстовой информации. Использование гистограмм, ото­бражающих частоту встречаемости символов в тексте для криптоана­лиза классических шифров (лабораторная работа № 1).

Рассмотрение методов шифрования/расшифрования перестанов­кой символов, подстановкой, гаммированием, использованием табли­цы Виженера. Исследование и сравнение стойкости различных методов на основе атак путем перебора всех возможных ключей (лабораторная работа № 2).

Изучение принципов шифрования/расшифрования информации, используемых в шифровальной машине «Энигма». Ознакомление с общими принципами действия шифровальной машины «Энигма» на примере эмулятора Enigma3S (лабораторная работа № 3).

Ознакомление с принципами шифрования, используемыми в алго­ритме симметричного шифрования AES Rijndael (лабораторная работа №4).

Рассмотрение методов генерации простых чисел, используемых системах шифрования с открытым ключом (лабораторная работа №5).

Знакомство с основными положениями ЭЦП в Казахстане. Ознакомление с принципами защи­щенного электронного документооборота в телекоммуникационных сетях и алгоритмами постановки электронной цифровой подписи (ла­бораторная работа № 6).

Лабораторная работа состоит из выполнения рабочего задания, оформление отчета и защиты проделанной работы.

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

Выполнение каждой лабораторной работы должно завершатся оформлением отчета, который должен содержать:

1)      Цель и задания работы.

2)      Краткие итоги теоретической подготовки.

3)      Результаты проделанной работы.

4)      Выводы по работе и список использованной литературы.

Выполненная работа и оформленный отчет защищается у преподавателя.

Отчет может быть оформлен в электронном виде.

 

1 Лабораторная работа №1. Использование классических криптоалгоритмов подстановки и перестановки для защиты текстовой информации

 

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

 

Описание лабораторной работы. Для выполнения лабораторной работы необходимо запустить программу L_LUX.EXE. На экране дисплея появляется окно с размещенным в его центре текстовым редактором (для отображения зашифрованных и расшифрованных текстов), в верхней строке окна расположено главное меню, позволяющее пользователю выполнить требуемое действие. Чуть ниже основного меню размещена панель инструментов (для управления быстрыми командными кнопками и другими «горячими» элементами управления), а в самом низу окна, под текстовым редактором, находится строка состояния, в которой указывается подсказка и выводится дополнительная информация. Клавиши панели инструментов для удобства снабжены всплывающими подсказками.

Для того чтобы попасть в основное меню, необходимо нажать клавишу F10. Передвижение по главному меню осуществляется клавишами перемещения курсора. Чтобы вызвать пункт меню, нужно нажать клавишу ENTER, вернуться в главное меню или вовсе выйти из него ­– ESC.

Рассмотрим более подробно каждый из пунктов главного меню.

Редактор. Данный пункт основного меню содержит подпункты: создать документ, открыть файл, сохранить файл, выход из программы.

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

Создать документ (Ctrl+N) – при выборе данного подпункта становится доступна работа с тестовым редактором (пользователь получает право создать свой текстовый файл, который впоследствии можно будет использовать при работе с программой), также появляется возможность использовать все недоступные до этого пункты основного меню и клавиши панели управления.

Открыть файл (Ctrl+L) – при выборе этого пункта появляется диалоговое окно, предоставляющее возможность выбора файла для загрузки. При этом содержимое файла будет отображено в окне редактора текстов.

Аналогично пункту СОЗДАТЬ ДОКУМЕНТ доступным для работы становится текстовый редактор с отображаемым текстом, а также появляется возможность использовать все недоступные до этого пункты основного меню и клавиши панели управления.

Сохранить файл (Ctrl+S) – при выборе этого пункта появляется диалоговое окно, позволяющее сохранить на диске содержимое редактора текстов.

Выход из программы (Ctrl+X) – при выборе этого пункта появляется диалоговое окно, позволяющее выйти из программы.

Гистограмма. Вывод на экран двух гистограмм, отображающих частоту встречаемости символов в тексте.

Внимание! До выполнения шифрования и дешифрования вызывать гистограмму не имеет смысла, так как еще не сформированы тексты, для которых будет просматриваться гистограмма.

Имеется возможность просмотра следующих сочетаний гистограмм:

1)  исходного и зашифрованного файла;

2)  зашифрованного и расшифрованного файла;

3)  стандартного распределения и зашифрованного текста;

4)  стандартного распределения и расшифрованного текста.

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

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

Шифрование. Выполнение шифрования текстового файла осуществляется одним из семи методов, рассматриваемых в лабораторной работе:

1)  одноалфавитный (с фиксированным смещением);

2)  одноалфавитный с задаваемым смещением (от 2 до 20);

3)  перестановка символов;

4)  по дополнению до 255 (инверсный);

5)  многоалфавитный (с фиксированным ключом);

6)  многоалфавитный с ключом фиксированной длины;

7)  многоалфавитный с ключом произвольной длины.

Выбор метода шифрования производится как мышкой, так и кла­вишами перемещения курсора и клавишей ENTER. Затем появляется окно, в котором в зависимости от метода шифрования требуется ука­зать те или иные параметры и либо подтвердить процесс кодировки, либо отказаться от него. После этого в окне редактора будет выдан за­шифрованный текст.

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

Дополнительная информация. Программа предусматривает возможность посмотреть дополнительную информацию («Помощь Ctrl+F9»), справочную информацию об используемых методах шифрования («О методах Ctrl+F10»), сведения о программе («О программе Ctrl+F11»).

Пример работы с программой. Рассмотрим одноалфавитное шифрование с фиксированным ключом.

Нажав клавиши Ctrl+L либо выбрав в меню пункт ОТКРЫТЬ ФАЙЛ, загрузите в окно редактора исходный текст.

Затем вызовите пункт меню ШИФРОВАНИЕ, выберите одноалфавитный метод (с фиксированным смещением). В появившемся окне нажмите клавишу ЗАШИФРОВАТЬ. После того как шифрование выполнено, можно в редакторе просмотреть зашифрованный текст.

Перейдите к пункту меню ГИСТОГРАММА. Выберите тип гистограмм, отображающий гистограммы исходного и шифрованного файлов. Проанализируйте гистограммы. Они должны иметь примерно одинаковый вид.

Чтобы узнать ключ шифра (смещение второго алфавита относительно первого), необходимо по гистограммам найти символы, имеющие одинаковую частоту встречаемости. Например, самый частый символ в первой гистограмме при шифровании должен перейти в самый частый символ во второй гистограмме. Таким образом, найдя два самых часто встречаемых символа в обеих гистограммах, можно по стандарт­ном таблице ASCII-кодов вычислить смещение. Зная смещение и та­блицу кодировки символов, текст можно легко расшифровать. Вызвав пункт меню ДЕШИФРОВАНИЕ, можно провести те же действия в автоматическом режиме.

Примечание. При шифровании и расшифровании из таблицы кодировки не используются символы с кодами 176–223 и 240–255, т.е. при ручной расшифровке эти символы следует пропускать и считать, что, например, символ «Я» имеет код не 159, а 223, аналогично «п» не 175, а 239.

Иногда в гистограммах под столбцами, показывающими частоту встречаемости символов, изображены не сами символы, а их таблич­ные коды в квадратных скобках.

Ниже провидено описание «горячих» клавиш и их использование при выполнении различных действий:

Shift+F10 – о программе;

Ctrl+X – выход из программы;

Ctrl+N – new – ФАЙЛ/СОЗДАТЬ;

Ctrl+L – load – ФАЙЛ/ОТКРЫТЬ;

Ctrl+S – save – ФАЙЛ/СОХРАНИТЬ.

Шифрование:

Ctrl+Fl – одноалфавитный метод (с фиксированным смещением);

Ctrl+F2 – одноалфавитный с задаваемым смещением (от 2 до 20);

Ctrl+F3 – перестановка символов;

Ctrl+F4 – по дополнению до 255 (инверсный метод);

Ctrl+F5 – многоалфавитный метод с фиксированным ключом;

Ctrl+F6 – многоалфавитный метод с ключом фиксированной длины;

Ctrl+F7 – многоалфавитный метод с ключом произвольной длины.

Расшифрование:

Shift+Fl – одноалфавитный метод (с фиксированным смеще­нием);

Shift+F2 – одноалфавитный с задаваемым смещением (от 2 до 20);

Shift+F3 – перестановка символов;

Shift+F4 – по дополнению до 255 (инверсный метод);

Shift+F5 – многоалфавитный метод с фиксированным ключом;

Shift+F6 – многоалфавитный метод с ключом фиксированной длины;

Shift+F7 – многоалфавитный метод с ключом произвольной длины.

Гистограммы:

Shift+Ctrl+F1 – исходного и шифрованного файла;

Shift+Ctrl+F2 – шифрованного и расшифрованного файла;

Shift+Ctrl+F3 – стандартного распределения и шифрованного текста;

Shift+Ctrl+F4 – стандартного распределения и расшифрованно­го текста.

Помощь:

Ctrl+F9 – помощь;

Ctrl+F10 – о методах;

Ctrl+Fll – о программе.

 

Задание

 

1. Ознакомиться с описанием лабораторной работы и заданием.

2. Для одноалфавитного метода с фиксированным смещени­ем определить установленное в программе смещение. Для этого следует:

1)  просмотреть предварительно созданный с помощью редактора свой текстовый файл;

2)  выполнить для этого файла шифрование;

3)  просмотреть в редакторе зашифрованный файл;

4)  просмотреть гистограммы исходного и зашифрованного текстов;

5)  описать гистограммы (в чем похожи, чем отличаются) и определить, с каким смещением было выполнено шифрование;

6)  расшифровать зашифрованный текст:

- с помощью программы, после чего проверить в редакторе правильность расшифрования,

- вручную с помощью гистограмм; описать и объяснить про­цесс дешифрования.

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

Преподавателю предоставляются отчет о проделанной работе и все использованные и созданные файлы.

3. Для одноалфавитного метода с задаваемым смещением (шифр Цезаря) следует:

1)  выполнить шифрование с произвольным смещением для своего исходного текста;

2)  просмотреть и описать гистограммы исходного и зашифрованно­го текстов, определить смещение для нескольких символов;

3)  расшифровать текст с помощью программы;

4)  дешифровать зашифрованный шифром Цезаря текст с помощью программы методом подбора смещения; указать, с каким смещением был зашифрован файл.

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

Дешифруйте файл:

1)  вручную (объясните ваши действия);

2)  с помощью программы.

5. Для инверсного кодирования (по дополнению до 255):

1)  выполните шифрование для своего произвольного файла;

2)  просмотрите гистограммы исходного и зашифрованного текстов, опишите гистограммы и определите смещение для нескольких символов;

3)  дешифруйте зашифрованный текст, проверьте в редакторе правильность дешифрования.

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

7. Для многоалфавитного шифрования с ключом фиксированной длины:

1)  выполните шифрование и определите по гистограмме, какое смещение получает каждый символ для файла, состоящего из строки одинаковых символов;

2)  выполните шифрование и расшифрование для файла произволь­ного текста;

3)  просмотрите и опишите гистограммы исходного и зашифрованного текстов; ответьте, какую информацию можно получить из гистограмм.

8. Для многоалфавитного шифрования с произвольным паролем задание полностью аналогично п. 7.

9. Привести в отчете ответы на контрольные вопросы в соответствии с номером варианта, указанным преподавателем (см. таблицу 1.1).

 

Таблица 1.1

Номер

Варианта

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

1, 5, 7, 3, 9, 18, 28

Какие вы знаете методы криптографической защиты файлов?

2, 4, 6, 8, 20, 22, 24, 26, 30

В чем преимущества и недостатки одноалфавитных методов?

11, 13, 15, 10, 17, 19, 27

Если необходимо зашифровать текст, содержащий важную информацию, какой метод из рассмотренных вы выберете? Обоснуйте свой выбор

Продолжение таблицы 1.1

12, 14, 16, 21, 23, 25, 29

Целесообразно ли повторно применять для уже зашифрованного текста: а) метод многоалфавитного шифрования; б) метод Цезаря?

 

 

2 Лабораторная работа № 2. Исследование различных методов защиты текстовой информации и их стойкости на основе подбора ключей

 

Цель работы: изучение методов шифрования/расшифрования перестановкой символов, подстановкой, гаммированием, использованием таблицы Виженера. Исследование и сравнение стойкости различных методов на основе атак путем перебора всех возможных ключей.

В лабораторной работе рассматривается способ вскрытия шифра, основанный на переборе всех вариантов ключа. Критерием правиль­ности варианта служит наличие в тексте «вероятного слова». Перебирается множество всех возможных ключей, шифрованный текст рас­шифровывается на каждом ключе. В получившемся «псевдооткрытом» тексте ищется вероятное слово. Если такого слова нет, текущий текст бракуется и осуществляется переход к следующему ключу. Если такое слово найдено, на экран выводится вариант ключа. Затем перебор ключей продолжается до тех пор, пока не исчерпается все множество вариантов. Возможно обнаружение нескольких ключей, при которых и «псевдооткрытых текстах» имеется вероятное слово.

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

 

Описание лабораторной работы. Для выполнения лабораторной работы, необходимо запустить программу LAB_RAB.exe, используемую для шифрования/расшифрования, а также дешифрования (методом протяжки вероятного слова) файлов.

Система реализует следующий функции:

1)  ввод, удаление и селекция ключей пользователя;

2)  поддержка списка ключей;

3)  шифрование и расшифрование текста;

4)  дешифрование текста путем подбора ключей, методом протяжки вероятного слова.

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

1)      замена;

2)      перестановка;

3)      гаммирование;

4)      таблица Виженера.

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

 

Описание интерфейса:

1) окно текстового редактора с широким набором дополнительных функций;

2) таблица всех ключей, введенных в систему с быстрым доступом для ввода, удаления или выбора текущего ключа;

3) список всех методов шифрования для быстрого и удобного переключения между ними;

4) основное меню (вверху экрана);

5) дополнительное меню (вызывается нажатием правой кнопки мыши);

6) набор вспомогательных кнопок для быстрого и удобного интерфейса;

7) поля вывода текущего состояния системы:

-      текущий ключ;

-      вероятное слово;

-      сила ключа для протяжки.

 

Пример работы с программой

 

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

Алгоритм работы с программой:

1)  вводится список ключей;

2)  вводится вероятное слово (необязательно вначале, до его ввода все меню запуска протяжки все равно недоступны);

3)  выбирается необходимый метод шифрования;

4)  загружается исходный или зашифрованный файл (открываются соответствующие меню для шифрования и расшифрования);

5)  запускается необходимый процесс:

-      шифрование;

-      расшифрование;

-      протяжка вероятного слова;

-      конвертация текста;

6)  продолжение работы в любом порядке в соответствии с описан­ными пунктами;

7)  при завершении работы не забудьте сохранить необходимые результаты (при закрытии и загрузке новых файлов система авто­матически запрашивает подтверждение на запись).

Шифрование:

1)  Открыть файл.

2)  Внести необходимые изменения.

3)  Настроить соответствующие параметры:

-      тип шифрования;

-      ключ, пр.

4) Запустить процесс шифрования через пункт меню УТИЛИТЫ/ ЗАШИФРОВАТЬ F5.

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

Расшифрование:

1)      Открыть файл.

2)      Произвести необходимые изменения.

3)      Настроить соответствующие параметры: тип шифрования, пр.

4)      Запустить процесс расшифрования через пункт меню УТИЛИТЫ/РАСШИФРОВАТЬ F6.

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

 

Протяжка вероятного слова (дешифрование)

 

Внимание! Мощность ключа задастся заранее в опции «сила ключа». Длина ключа значительно влияет на время протяжки вероятного слова (в худшем случае имеем дело с логарифмическим алгоритмом).

1. Вводится вероятное слово (длиной от 1(3) до 9).

2. Для отделения вновь найденных ключей от предыдущих между ними добавляется надпись «подбор».

3. Перебираются ключи.

4. Расшифровывается вся первая строка текста по текущему ключу.

5. Порциями, равными длине вероятного слова, сравнивается содержимое этой строки со значением вероятного слова.

6. Если найдено хоть одно совпадение, запоминается ключ.

7. Переход к новому ключу.

8. Переход к следующей строке.

9. Результаты должны содержаться в списке ключей. Если совпаде­ний не найдено, в список ключей ничего не добавляется.

Операции с ключами. С базой ключей могут осуществляться следующие действия:

1)  добавить новый ключ;

2)  удалить одну запись;

3)  изменить активную запись;

4)  очистить всю таблицу введенных ключей.

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

Ключи для перестановки. В каждый момент времени в системе мо­жет быть только один текущий ключ для перестановки.

Правила ввода ключа для перестановки:

1) при переключении в списке поддерживаемых системой методов шифрования на пункт «Перестановка» вызывается окно ввода ключа перестановки. Окно состоит из двух кнопок (ОТМЕНЫ и ВЫХОДА без изменений и кнопки ENTER –  подтверждение установленной длины ключа) и окна задания длины ключа для перестановки;

2) в окне задания длины ключа необходимо выбрать необходимую длину (параметры заменяются в пределах 1...9) и подтвердить желание использовать ключ именно такой длины;

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

4) после перебора всех кнопок система запоминает введенный ключ, выводит его в поле ввода ключей и выходит из окна ввода ключа перестановки в окно основной программы.

 

Задание

 

1. Ознакомиться с описанием лабораторной работы и заданием.

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

3. Для метода замены (одноалфавитного метода):

1)      выбрать данный алгоритм в списке доступных методов шифрования;

2)      установить необходимое смещение;

3)      открыть произвольный файл;

4)      просмотреть содержимое исходного файла;

5)      выполнить для этого файла шифрование (при необходимости можно задать имя зашифрованного файла);

6)      просмотреть в редакторе зашифрованный файл;

7)      внести вероятное слово;

8)      ввести вероятную длину ключа (кроме метода замены);

9)      подобрать ключ;

10)  выполнить расшифрование со всеми найденными ключами;

11)  найти в каком-либо из расшифрованных файлов правильно расшифрованное ключевое слово;

12)  расшифровать файл исходным ключом;

13)  проверить результат.

4. Для метода перестановки:

1)      выбрать метод перестановки;

2)      в открывшемся окне ввода ключа перестановки символов указать сначала длину этого ключа, а затем из появившихся кнопок составить необходимую комбинацию для ключа, нажимая на кнопки в заданном порядке; при этом уже использованные кнопки становятся недоступ­ными для предотвращения их повторного ввода;

3)      далее действия полностью соответствуют изложенным в п. 3.

5. Для метода гаммирования:

1)      выбрать метод;

2)      ввести ключ;

3)      полностью повторить п. 3.

6. Для таблицы Виженера все действия повторяются из п. 5 (метод гаммирования).

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

Преподавателю предоставляется отчет о проделанной работе и все использованные файлы.

7. Привести в отчете ответы на контрольные вопросы в соответствии с номером варианта, указанным преподавателем (см. таблицу 2.1).

 

Таблица 2.1

Номер варианта

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

1, 5, 7, 3, 9, 18, 28

Чем отличается псевдооткрытый текст (текст, полученный при расшифровке по ложному ключу) от настоящего откры­того текста?

2, 4, 6, 8, 20, 22, 24, 26, 30

Как зависит время вскрытия шифра описанным выше способом подбора ключей от длины вероятного слова?

11, 13, 15, 10, 17, 19, 27

Зависит ли время вскрытия шифра гаммирования (или таблицы Виженера) от мощности алфавита гаммы?

12, 14, 16, 21, 23, 25, 29

В чем недостатки метода дешифрования с использованием протяжки вероятного слова?

 

 

 

 

3 Лабораторная работа №3. Изучение устройства и принципа работы шифровальной машины «Энигма»

 

Цель работы: изучение принципов шифрования/расшифрова­ния информации, используемых в шифровальной машине «Энигма». Ознакомление с общими принципами действия шифровальной ма­шины «Энигма» на примере эмулятора. Предварительно необходимо установить программу-эмулятор Enigma3S.

 

Описание лабораторной работы. «Энигма» (Enigma) – портативная шифровальная машина, использовавшаяся для шифрования и рас­шифрования секретных сообщений (см. рисунок 3.1). Более точно, «Энигма» – целое семейство электромеханических роторных машин, применявшихся с 1920-х гг. «Энигма» использовалась в коммерческих целях, а также в военных и государственных службах во многих странах мира, но наибольшее распространение получила в Герма­нии во время Второй мировой войны. Именно «Энигма» Вермахта (Wehrmacht Enigma), немецкая военная модель, чаще всего является предметом изучения.

 

 

Рисунок 3.1Внешний вид шифровальной машины «Энигма»

 

Хотя шифр «Энигмы», с точки зрения криптографии, был достаточно слаб, но на практике лишь сочетание этого фактора с другими, такими как ошибки операторов, процедурные изъяны и захваты экземпляров «Энигмы» и шифровальных книг, позволило английским криптоаналитикам вскрывать сообщения, зашифрованные шифром «Энигмы».

 На рисунке 3.2 показана электрическая схема машины «Энигма» для двух последовательно нажатых клавиш – ток течет через роторы, «отражается» от рефлектора, затем снова возвращается через роторы. Буква «А» заменяется в шифротексте по-разному при последовательных нажатиях клавиши, сначала на «G», затем – на «С». Сигнал идет по другому маршруту за счет поворота ротора.

Рисунок 3.2Электрическая схема машины «Энигма»

(замена в тексте буквы «А» буквой «D»)

 

Как и другие роторные машины, «Энигма» состояла из комбинации механических и электрических систем. Механическая часть включала клавиатуру, набор вращающихся дисков (роторов), расположенных вдоль вала, и ступенчатого механизма, обеспечивающего движение одной или более роторов при каждом нажатии клавиши. Движение роторов приводит к различным вариантам подстановки символов при каждом следующем нажатии клавиши на клавиатуре.

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

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

Роторы. Роторы – это сердце машины «Энигмы» (см. рисунок 3.3). Каждый ротор представляет собой диск примерно 10 см в диаметре, сделанный из твердой резины или бакелита, с пружинными штыревыми контактами на одной стороне ротора, расположенными по окружности; на другой стороне ротора находится соответствующее количество плоских электрических контактов. Штыревые и плоские контакты соответствуют буквам в алфавите; обычно это 26 букв «А» – «Z». При соприкосновении контакты соседних роторов замыкают электрическую цепь. Внутри ротора каждый штыревой контакт соединен с некоторым плоским. Порядок соединения может быть различным.

 

а – левая сторона (видны плоские электрические контакты); б – правая сторона (видны штыревые контакты).

Рисунок 3.3Ротор машины «Энигмы»

 

Сам по себе ротор воспроизводит шифрование простой заменой символов. Например, контакт, отвечающий за букву «Е», может быть соединен с контактом буквы «Т» на другой стороне ротора. При использовании нескольких роторов в связке (обычно трех или четырех) за счет их постоянного движения получается более стойкий тип многоалфавитного шифрования.

Ротор может занимать одну из 26 позиций в машине. Он может быть повернут вручную при помощи рифленного пальцевого колесика, которое выдается наружу, как показано на рисунке 3.4. Чтобы оператор всегда мог определить положение ротора, на каждом ободе находится алфавитное кольцо; одна из букв видна через окошко. В ранних моделях «Энигмы» алфавитное кольцо было фиксировано, в более поздних версиях ввели усложненную конструкцию с возможностью его регулировки. Каждый ротор содержит выемку (или несколько выемок), используемых для управления движением роторов. Три последовательно соединенных ротора изображены на рисунке 3.5.

1 – кольцо с выемками;

2 – маркирующая точка для контакта «А»; 3 – алфавитное кольцо;

4 – залуженные контакты; 5 – электропроводка; 6 – штыревые контакты; 7 – пружинный рычаг для настройки кольца; 8 – втулка; 9 – пальцевое кольцо; 10 – храповое колесо.

 

Рисунок 3.4 Ротор в разобранном виде:

 

Военные версии машины «Энигма» выпускались с несколькими роторами; первая модель содержала только три. В 1938 г. их стало пять, но только три из них одновременно использовались в машине. Эти типы роторов были маркированы римскими цифрами I, II, III, IV, V, и все они были с одной выемкой, расположенной в разных местах aлфавитного кольца. В военно-морских версиях Wehrmacht Enigma содержалось большее количество роторов, чем в других: шесть, семь или восемь.

Рисунок 3.5Три последовательно соединенных ротора

 

Входное колесо. Входное колесо (нем. Eintrittswalze) машины «Энигма», или входной статор, соединяет коммутационную панель или (в случае ее отсутствия) клавиатуру и ламповую панель с роторами. Коммерческая версия «Энигмы» соединяла буквы в порядке их следования на клавиатуре: QA, WB, ЕС и т.д. Однако в военной модели они соединялись в прямом алфавитном порядке: АА, ВВ, СС и т.д.

Рефлектор. За исключением ранних за последним ротором устанавливался рефлектор (нем. Umkehrwalze) – запатентованная деталь, отличавшая семейство машин «Энигма» от других роторных машин, разработанных в то время. Рефлектор соединяет контакты последнего ротора попарно, коммутируя ток через роторы в обратном направлении, но по другому маршруту. Рефлектор гарантирует, что преобразование, реализуемое машиной, инволюция, т.е. процесс расшифрования, симметричен процессу шифрования. Кроме того, рефлектор гарантирует, что никакая буква не может быть зашифрована собой же. Это оказалось серьезным концептуальным недостатком, впоследствии использованным дешифровальщиками.

Коммутационная панель. Коммутационная панель, позволяющая оператору варьировать соединения проводов, впервые появилась в немецких военных моделях в 1930 г. и вскоре успешно использовалась и в машинах для военно-морских войск (рис. 3.6). Коммутационная панель внесла огромный вклад в усложнение шифра «Энигмы», даже больший, чем введение дополнительного ротора. С «Энигмой» без коммутационной панели дешифровальщик может справиться практически вручную, однако при использовании коммутационной панели взломщики были вынуждены конструировать специальные дешифровальные машины. Кабель, помещенный на коммутационную панель, соединяет буквы попарно, например, «Е» и «Q», могут быть соедине­ны в пару. Эффект состоит в перестановке этих букв до и после прохождения сигнала через роторы. Например, когда оператор нажимал клавишу буквы «Е», сигнал направлялся в «Q» и только после этого уже во входной ротор. Одновременно могло использоваться несколько таких пар (до 13).

 

 

Рисунок 3.6 Коммутационная панель «Энигмы»

 

Аксессуары. Удобной деталью, установленной на модели М4 «Энигма», был «Schreibmax» – маленькое печатающие устройство, которое могло печатать все 26 букв на небольшом листе бумаги.

Процедуры использования «Энигмы». Во время Второй мировой войны немецкие операторы использовали шифровальную книгу только для установки роторов и настроек колец. Для каждого сообщения они выбирали случайную стартовую позицию, например, WZA, и случайный ключ сообщения, например SXT. Затем оператор устанавливал роторы в стартовую позицию WZA и шифровал ключ сообщения SXT. Предположим, что в результате шифрования ключа получится UHL. Далее оператор ставил ключ сообщения SXT как начальную позицию роторов и шифровал сообщение. После чего отправлял стартовую позицию WZA и зашифрованный ключ UHL вместе с сообщением. Получатель устанавливал стартовую позицию в соответствии с первой трехграммой WZA и, расшифровывая вторую триграмму UHL, распознавал исходный ключ SXT. Далее получатель использовал этот ключ как стартовую позицию для расшифровки сообщения. Обычно срок действия ключей составлял один день.

Военная модель «Энигма» использовала только 26 букв. Прочие символы заменялись редкими комбинациями букв. Пробел пропускался либо заменялся «X». Символ «X» также использовался для обозначения точки либо конца сообщения. Некоторые особые символы использовались в отдельных вооруженных частях, например Wehrmacht заменял запятую двумя символами ZZ и вопросительный знак – FRAGE либо FRAQ, a Kriegsmarine заменяла запятую – «Y» и вопросительный знак – UD. Два, три или четыре нуля заменялись CENTA, MILLE и MYRIA соответственно.

При выполнении лабораторной работы для исследования шифра «Энигмы» используется программа-эмулятор Enigma3S.

 

Задание

 

1. Запустить эмулятор Энигмы Enigma3S из папки, указанной преподавателем. Ознакомиться с файлом справки: опция меню HELP/HELP.

2. В меню программы выбрать пункт SETTINGS/RESET (см. рисунок 3.7).

 

 

Рисунок 3.7 –  Начальные установки эмулятора «Энигмы»

3. Установить значения для колец 01 01 01 путем выбора пункта меню VIEW/OPEN COVER. В меню SETTINGS/INNER SETTINGS установить следующие значения Reflector – В, Left – I, Middle – II, Ringstellung – A-A-A (см. рисунок 3.8, 3.9). Будем считать данное положение начальным.

 

 

Рисунок 3.8 Просмотр начальных установок

 

 

Рисунок 3.9Установки Reflector, Left, Mid, Right

 

4. Ввести на клавиатуре «Энигма» сообщение SECRET MESSAGЕ. Какое сообщение получено на выходе?

5. Повторить п. 3, изменив настройки Ringstellung – А-А-А на Ringstellung – А-В-С.

6. Ввести на клавиатуре «Энигма» сообщение SECRET MESSAGЕ. Какое сообщение получено на выходе? Насколько оно отличается от сообщения, полученного в п. 4?

7. Сохранить полученный в п. 6 шифротекст при помощи опции меню  FILE/SAVE СТ AS (см. рисунок 3.10).

 

 

Рисунок 3.10 Сохранение шифротекста

 

8. Создать в корне папки с программой эмулятором файл с расширением .pln, открывать его для редактирования в блокноте и записать в него открытый текст для шифрования.

9. В меню программы выбрать опцию FILE/OPEN РТ и файл, созданный в пункте 9. Получить шифротекст из открытого текста, выбрав опцию меню OPTIONS/ENCIPHER TEXT.

10. Установить эмулятор в начальное положение. В меню программы выбрать пункт WINDOW/SCRAMBLER. Ввести при помощи клавиатуры произвольное сообщение из 22 символов (варианты указазаны в таблице 3.1), обращая внимание на положение колец. Ввести последовательность из 22 символов еще раз. Как изменилось положение колец? Отличается ли новая зашифрованная последовательность от начальной? Почему изменилась выходная последовательность?

11. Используя окно SCRAMBLER, проследить за тем, как изменя­ется шифротекст в зависимости от настройки положения контактных колес. Что дает возможность настройки порядка следования контактных колес?

12. В окне программы выбрать опцию VIEW/RIGHT (см. рисунок 3.11).

 

 

Рисунок 3.11Просмотр установок для выполнения задания

 

Заполнить таблицу соответствия для пяти букв (варианты указаны в таблице 3.2) для 12 первых угловых положений правого колеса.

13. Зная, что эмулятор установлен в начальное положение, расшифровать текст в соответствии с номером варианта, указанным преподавателем (варианты контрольных заданий указаны в таблице 3.3, 3.4.

 

Таблица 3.1

Номер варианта

Исходный алфавит

1, 5, 9, 13, 17

QRTYU FBNAK GHERL ADLKE DS

2, 6, 10, 14, 18, 22

UIERT PAEVC DSNCY OPLKD BV

3, 7, 11, 15, 19, 23, 27

UIFGH KLBVQ FDIIT QKJLS DB

4, 8, 12, 16, 20, 24, 28

LLWER TYYWV BAFDP WRTOPF JK

21, 25, 29, 26, 30

OPJHG JFDPJ GFDSK LDFHU ВХ

 

Таблица 3.2

Буквы на входе

Угловые положения колеса

1

2

3

4

5

6

7

8

9

10

11

12

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Таблица 3.3

Номер варианта

Шифротекст

1, 5, 9, 13, 17

ABCDE

2, 6, 10, 14, 18, 22

FGHIJK

3, 7, 11, 15, 19, 23, 27

LMNOP

4, 8, 12, 16, 20, 24, 28

QRSTU

21, 25, 29, 26, 30

VWXYZ

 

Таблица 3.4

Номер варианта

Шифротекст

1, 5, 9, 13, 17

FQGAH WABUN NL

2, 6, 10, 14, 18, 22

QIKOL RCRJS EGBSS X

3, 7, 11, 15, 19, 23, 27

OOKWE PRFMI M

4, 8, 12, 16, 20, 24, 28

KIXDI ACTHJ L

21, 25, 29, 26, 30

XLXOO EABUN NL

 

 

 4 Лабораторная работа № 4. Стандарт симметричного шифрования AES Rijndael

 

Цель работы: ознакомление с принципами шифрования, используемыми в алгоритме симметричного шифрования AES RIJNDAEL.

 

Описание лабораторной работы. Демонстрационная версия криптойкого блочного алгоритма Rijndael. Состояние, ключ шифрования и число циклов. Rijndael – итеративный блочный шифр, имеющий переменную длину блоков и различные длины ключей. Длина ключа и длина блока могут независимо друг от друга составлять 128, 192 или 256 бит.

Разнообразные преобразования работают с промежуточным результатом, называемым состоянием (State). Состояние можно представить в виде прямоугольного массива байтов. Этот массив имеет че­тыре строки, а число столбцов обозначается Nb и равно длине блока, деленной на 32.

Ключ шифрования также представлен в виде прямоугольного массива с четырьмя строками. Число столбцов обозначено как Nk и равно длине ключа, деленной на 32 (см. рисунок 4.1).

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

 

 

 

 

а0,0

а0,1

а0,2

а0,3

а0,4

а0,5

а1,0

а1,1

а1,2

а1,3

а1,4

а1,5

а2,0

а2,1

а2,2

а2,3

а2,4

а2,5

а3,0

а3,1

а3,2

а3,3

а3,4

а3,5

k0,0

k0,1

k0,2

k0,3

k1,0

k1,1

k1,2

k1,3

k2,0

k2,1

k2,2

k2,3

k3,0

k3,1

k3,2

k3,3

 

Рисунок 4.1Пример представления состояния (Nb = 6)

и ключа шифрования (Nk = 4)

 

Входные данные для шифра обозначаются как байты состояния в порядке а0,0, а1,0, а2,0, а3,0, а0,1, а1,1, а2,1, а3,1, … . После завершения действия шифра выходные данные получаются из байтов состояния в том же порядке.

Число циклов, обозначенное Nr, зависит от значений Nb и Nk (см. таблицу 4.1).

 

Таблица 4.1

Nr

Nb = 4

Nb = 6

Nb = 8

Nk = 4

10

12

14

Nk = 6

12

12

14

Nk = 8

14

14

14

 

Цикловое преобразование. Цикловое преобразование состоит из че­тырех различных преобразований. На языке псевдо-Си оно имеет следующий вид:

 

Round (State, RoundKey)

{

ByteSub(State); // замена байт

ShiftRow(State); // сдвиг строк

MixColumn(State); // замешивание столбцов

AddRoundKey(State, RoundKey); // добавление циклового ключа

}

 

Последний цикл шифра немного отличается:    

 

FinalRound(State, RoundKey)

{

ByteSub(State); // замена байт

ShiftRow(State); // сдвиг строк

AddRoundKey(State, RoundKey); // добавление циклового ключа

}

 

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

Замена байт (ByteSub). Преобразование ByteSub – нелинейная замена байт, выполняемая независимо с каждым байтом состояния (см. рисунок 4.2).

 

 

Рисунок 4.2 ByteSub действуетна каждый байт состояния

 

Замена происходит по массиву SboxE при шифровании и по массиву SboxD при расшифровании, причем SboxD[ SboxE[ а ] ] = а. На языке псевдо-Си это выглядит следующим образом:

Преобразование сдвига строк (ShiftRow). Последние три строки состояния  циклически сдвигаются на различное число байт. Строка 1 сдвигается на С1 байт, строка 2 – на С2 байт и строка 3 – на СЗ байт. Значения сдвигов Cl, С2 и СЗ зависят от длины блока Nb. Их величи­ны приведены в таблице 4.2.

 

Таблица 4.2

Nb

C1

C2

C3

4

1

2

3

6

1

2

3

8

1

3

4

 

Операция сдвига последних трех строк состояния на определенную величину обозначена ShiftRow (State). На рисунке 4.3 показано влия­ние преобразования на состояние.

 

 

Рисунок 4.3 – Схема преобразования ShiftRow

 

При расшифровании происходит сдвиг на то же число элементов в обратном направлении.

Преобразование замешивания столбцов (MixColumn). Преобразование представляет собой умножение состояния на матрицу ME при шифровании или матрицу MD при расшифровании:

b1 = (b1*2) XOR (b2*3) XOR (b3*1) XOR (b4*1).

 

Умножение двух байт выполняется по следующему алгоритму:

1)      если один из байт равен 0, результатом будет 0;

2)      если один из байт равен 1, результатом будет другой байт;

3)      в остальных случаях происходит замена каждого байта по табли­це L. Замененные байты складываются, при необходимости вычита­ется 255 для попадания в интервал [0, 255] и происходит замена по та­блице Е, что и дает результат. На языке псевдо-Си таблицы L и Е имеют следующий вид:

 

Добавление циклового ключа. Цикловой ключ добавляется к состоянию посредством простого EXOR (см. рисунок 4.4). Цикловой ключ вырабатывается из ключа шифрования посредством алгоритма выработки- ключей (key schedule). Длина циклового ключа равна длине блока Nb.

 

 

Рисунок 4.4Операция добавления циклового ключа

 

При шифровании части расширенного ключа выбираются от начала к концу, при расшифровании – от конца к началу.

Расширение ключа (Key Expansion). Расширенный ключ представляет собой линейный массив четырех байтовых слов и обозначается W[Nb*(Nr + 1)]. Первые Nk слов содержат ключ шифрования. Bcе остальные слова определяются рекурсивно из слов с меньшими индексами. Алгоритм выработки ключей зависит от величины Nk. Ниже приведена версия для Nk ≤ 6 и версия для Nk > 6:

1) для Nk < 6 или Nk = 6

KeyExpansion(CipherKey,W)

{

for (i = 0; i < Nk; i++) W[i] = CipherKey[i];

for (j = Nk; j < Nb*(Nk+l); j+=Nk)

{

W [j] = W[j-Nk] SubByte( Rotl( W[j-1] ) )  Rcon[j/Nk];

for (i =1; i < Nk && i+j < Nb*(Nr+1); i++)

W[i+j] = W[i+j-Nk] W[i+j-l];

          }

}

Можно заметить, что первые Nk слов заполняются ключом шифрования. Каждое последующее слово W[i] получается посредством EXOR предыдущего слова W[i - 1] и слова на Nk позиций ранее W[i - Nk]. Для слов, позиция которых кратна Nk, перед EXOR применяется преобразование к W[i - 1], а затем еще прибавляется цикловая константа. Преобразование содержит циклический сдвиг байтов в слове, обозна­ченный как Rotl, затем следует SubByte – применение замены байт;

2) для Nk > 6

KeyExpansion (CipherKey, W)

{

      for (i=0; i<Nk; i++) W[i]=CipherKey[i];

for (j=Nk; j<Nb*(Nk+l); j+=Nk)

{

W[j] = W[j-Nk]  SubByte(Rotl(W[j-1]))  Rcon[j/Nk];

for (i=l; i<4; i++) W[i+j] = W[i+j-Nk]  W[i+j-1] ;

W [ j + 4] = W[j+4-Nk]  SubByte(W[j+3]);

for (i=5; i<Nk; i++) W[i+j] = W[i+j-Nk]

W[i+j-l];

}

}

Отличие для схемы при Nk > 6 состоит в применении SubByte для каждого четвертого байта из Nk.

Цикловая константа независит от Nk и определяется следующим образом:

Rcon[i] = ( RC[i], '00' , '00' , '00' ), где

RC[0]='01'

RC[i] =xtime (Rcon [i — 1 ] )

 

Шифрование. Шифр Rijndael включает следующие преобразования:

1)      начальное добавление циклового ключа;

2)      Nr – 1 циклов;

3)      заключительный цикл.

На языке псевдо-Си это выглядит следующим образом:

Rijndael (State, CipherKey)

{

KeyExpansion(CipherKey, ExpandedKey); // Расширение ключа

AddRoundKey(State, ExpandedKey); // Добавлений циклового ключа

For (i=l; i<Nr; i++) Round(State,ExpandedKey+Nb*i) // циклы

FinalRound(State, ExpandedKey+Nb*Nr); // заключительный цикл

}

Если предварительно выполнена процедура расширения ключа, то процедура будет иметь следующий вид:

Rijndael (State, CipherKey)

{

AddRoundKey(State, ExpandedKey);

For (i=l; i<Nr; i++) Round(State, ExpandedKey+Nb*i); FinalRound(State, ExpandedKey+Nb*Nr);

}

Описание демонстрационной программы. Программа выполнена на языке C# и состоит из двух элементов – файла Rijndael.dll, содержащего реализацию алгоритма шифрования, и демонстрационного приложения RijndaelDemo.exe. Для работы приложения необходима ОС Windows с установленным .NET Framework v1.1.

В основном окне демонстрационной программы задаются длина ключа, длина блока, а также расширенный ключ шифрования, вычисляемый в соответствии с заданным ключом шифрования (см. рисунки 4.5, 4.6).

Можно подробно рассмотреть действие всех цикловых преобразований (ByteSub, ShiftRow, MixColumn, AddRoundKey) как при шифровании, так и при расшифровании (см. рисунки 4.7, 4.8).

 

 

Рисунок 4.5Главное окно демонстрационной программы

 

 

Рисунок 4.6 Окно расширенного ключа

 

 

Рисунок 4.7 Окна преобразований ByteSub и ShiftRow

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

 

 

 

Рисунок 4.8 Окна преобразований MixColumn и AddRoundKey

 

Задание

 

1. Ознакомиться со сведениями о программе RijndaelDemo. Запустить модуль RijndaelDemo.exe.

2. Изучить на примере обычных текстовых файлов способы шифрования и расшифрования с помощью алгоритма Rijndael. Подробно рассмотреть действие всех цикловых преобразований (ByteSub, ShiftRow, MixColumn, AddRoundKey) как при шифровании, так и расшифровании. Исходный текст для шифрования может быть подготовлен заранее и сохранен в файле *.txt.

3. Сохранить в отчете экранные формы, демонстрирующие процесс шифрования и расшифрования информации, проанализировать полученные результаты.

4. Включить в отчет о лабораторной работе ответы на контрольные задания, выбранные в соответствии с номером варианта, указанным преподавателем (см. таблицу 4.3).

 

Таблица 4.3

Номер варианта

Контрольные задания

1, 5, 7, 26

Сравнить основные характеристики алгоритмов Rijndael и ГОСТ 28147-89

2, 4, 6

Сравнить основные характеристики алгоритмов Rijndael и DES

11, 13

Описать структуру сети Фейстеля

12, 14, 16

Привести обобщенные схемы шифрования данных с помощью алгоритма Rijndael  и ГОСТ 28147-89. Дать их сравнительный анализ

3, 9, 18, 29

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

20, 22, 24

Сравнить эквивалентность прямого и обратного преобразований в алгоритмах Rijndael и ГОСТ 28147-89

10, 17, 19

Сравнить выработку ключевой и нформации в алгоритмах Rijndael и ГОСТ 28147-89

21, 23, 25

Сравнить алгоритмы Rijndael и ГОСТ 28147-89 по показателям диффузии

8, 28, 27

Сравнить алгоритмы Rijndael и ГОСТ 28147-89 по показателям стойкости

12, 15, 30

Сравнить алгоритмы Rijndael и ГОСТ 28147-89 по показателям производительности и удобству реализации

 

 

5 Лабораторная работа №5. Генерация простых чисел, используемых в асимметричных системах шифрования

 

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

 

Описание лабораторной работы. Для выполнения лабораторной работы необходимо запустить программу L_PROST.exe. На экране дисплея появляется окно с текстовым редактором (для отображения информации об осуществленных программой действиях), в верхней строке окна расположено главное меню, чуть ниже основного меню — панель инструментов (для управления быстрыми командными кнопками и другими «горячими» элементами управления), а в самом низу окна, под тестовым редактором, находится строка состояния, в котором указывается подсказка и выводится дополнительная информация. Клавиши панели инструментов для удобства снабжены всплывающими подсказками.

Для того чтобы попасть в основное меню, необходимо нажать клавишу F10. Передвижение по главному меню осуществляется клавишами перемещения курсора. Чтобы вызвать пункт меню, нужно нажать клавишу ENTER, ESC — выход из основного меню.

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

Кроме основных функций главного меню (Генерация простого Р, Поиск в интервале, Проверка на простоту и т.д.), панель инструментов содержит клавишу, при нажатии которой выводится информация о программе.

Генерация простого Р. Возможность генерации простого числа; количество разрядов генерируемого числа задается пользователем (от 1 до 5).

Поиск в интервале. Возможность поиска простых чисел в заданном интервале. Пользователем задается начало интервала — значение х, длина интервала — значение L. Поиск будет осуществляться в интервале (х,х + L).

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

В методе пробных делений исходными данными является количе­ство первых простых чисел для деления, а в тесте Ферма надо указать количество оснований и их значения.

По окончании расчета на экран выводятся найденные простые чис­ла и их количество. Полную картину результатов работы можно про­смотреть в пункте меню Вывод результатов.

Проверка на простоту. Возможность проверки на простоту любого числа. Необходимо ввести число и параметры расчета аналогично по­иску в интервале.

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

Дополнительные сведения о программе.

1.      При запуске утилит генерации простого числа, поиска в интер­вале и проверки на простоту у пользователя запрашивается под­тверждение на правильность выбранного метода для работы.

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

3.      Будьте внимательны при установке параметров работы, так как в процессе вычисления по ходу работы эти параметры изменить уже не удастся.

4.      Описание «горячих» клавиш:

Ctrl+Fl — генерация простого Р;

Ctrl+F2 — поиск в интервале;

Ctrl+F3 — проверка на простоту;

Ctrl+F4 — вывод результатов;

Ctrl+X — выход из программы.

5.      В лабораторной работе из-за большого времени счета рекомендуется использовать числа не более пяти разрядов и длину интервала выбирать не более 500, количество оснований для теста Ферма — не более 5.

6.      Для правильного функционирования программы в рабочей ди­ректории (вместе с файлом l_prost.exe) обязательно должны находиться файлы prost.txt и work.txt. Не рекомендуется вносить какие-либо изменения в эти текстовые файлы, иначе послед­ствия могут быть непредсказуемые.

 

Задание

 

1. Проверить на простоту два произвольных целых числа разрядно­стью не менее 5.

2. Распределение простых чисел.

-        Задан интервал вида [х, х + L], Вычислить количество П(х, L) простых чисел в интервале и сравнить с величиной L/ln(х). При каких условиях П(х, L)/L близко к 1/ln(х) при заданных х = 2000, L = 500, количество простых чисел для деления 5 ­– 15, количество оснований 1 – 2?

-        Найти в интервале (1000, 1000 + 300) все простые числа. Пусть L(i)— разность между двумя соседними простыми числами. Построить гистограмму для L(i). Вычислить вы­борочное среднее Lcpед,. Сравнить с величиной ln(х), где х – середина интервала. Задано: количество простых чисел для деления 5 – 20, количество оснований 1 – 3.

-        Для заданного набора чисел {k} оценить относительную по­грешность формулы для k-го простого числа:

р(k) = k/ln(k), k = {10, 15,20, 30, 35}.

3. Методы генерации простых чисел.

-        В интервале (500, 500 + 200) построить график относитель­ного количества натуральных чисел, проходящих «решето Эратосфена», т.е. не делящихся на первые k простых. Расчет производится для всех k <= 10.

-        Для интервала (1500, 1500 + 300):

а)   рассчитать точное количество Р0 простых чисел в интер­вале, т.е. при проверке задать только тест на делимость. Ко­личество первых простых чисел для деления определяется из расчета максимальное число для деления равно квадрат­ному корню из максимального значения интервала;

б)   составить тест с небольшим количеством пробных деле­ний и одним основанием в тесте Ферма. Вычислить коли­чество Р1 вероятно простых чисел, удовлетворяющих этому тесту;

в)   составить тест с большим, чем в предыдущем случае, ко­личеством пробных делений и двумя или тремя основаниями в тесте Ферма. Вычислить количество Р2 вероятно простых чисел, удовлетворяющих этому тесту. Проанализировать полученные данные.

-        Известно, что в заданном интервале имеются числа Кармайкла. Найти их.

Варианты интервалов:  (1050, 1050+ 100);

 (1700, 1700+ 100);

 (2400, 2400 + 100).

4. Привести в отчете ответы на контрольные вопросы в соответствии с номером варианта (см. таблицу 5.1).

 

Таблица 5.1

Номер

варианта

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

1, 5, 7, 3, 9, 18, 28

Почему в качестве первого основания в тестах типа теста Ферма для проверки на простоту очень больших чисел целесообразно использовать число 2?

2, 4, 6, 8, 20, 22, 24, 26, 30

Какова вероятность Р(х) того, что наугад взятое нечетное очень большое число, не превосходящее х, окажется простым?

11, 13, 15, 10, 17, 19, 27

Вычислить:

1812 (mod 13), 127 (mod 7)

12, 14, 16, 21,23,25,29

Сформулируйте суть теста на простоту с использованием пробных делений

 

 

6 Лабораторная работа № 6. Электронная цифровая подпись

 

Цель работы: ознакомление с принципами защищенного электрон­ного документооборота в телекоммуникационных сетях и алгоритма­ми постановки электронной цифровой подписи (ЭЦП).

 

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

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

Первая схема ЭЦП — RSA была разработана еще в конце 1970-х гг. Однако проблема подтверждения авторства стала актуальной настолько, что в 1990-х гг. потребовалось установление стандарта. Причиной послужило повсеместное расширение глобальной сети Интернет и массовое распространение электронной торговли и оказания услуг. Именно по указанной причине стандарты ЭЦП в России и США были приняты практически одновременно, в 1994 г.

Из предложенных криптологами схем ЭЦП наиболее удачными оказались RSA и схема Эль-Гамаля. Первая из них была запатентова­на в США и в ряде других стран (патент на RSA прекратил свое действие совсем недавно). У второй схемы существует большое количество возможных модификаций, и все их запатентовать весьма затруднительно. Именно по этой причине схема ЭЦП Эль-Гамаля осталась по большей части свободной от патентов. Кроме того, эта схема имеет и определен­ные практические преимущества: размер блоков, которыми оперируют алгоритмы, и соответственно размер ЭЦП в ней оказались значительно меньше, чем в RSA, при той же самой стойкости.

Законы об ЭЦП сегодня имеют уже более 60 государств.

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

Любая схема ЭЦП обязана определить три следующих алгоритма:

1)  генерации ключевой пары для подписи и ее проверки;

2)  постановки подписи;

3)  проверки подписи.

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

1)  удостоверяет, что подписанный текст исходит от лица, поставившего подпись;

2)  не дает самому этому лицу возможность отказаться от обяза­тельств, связанных с подписанным текстом;

3)  гарантирует целостность подписанного текста.

ЭЦП представляет собой относительно небольшое количество дополнительной цифровой информации, передаваемой вместе с подпи­тываемым текстом, и включает две процедуры:

1)  процедуру постановки подписи, в которой используется секрет­ный ключ отправителя сообщения;

2)  процедуру проверки подписи, в которой используется открытый ключ отправителя.

Процедура постановки подписи. При формировании ЭЦП отправитель прежде всего вычисляет хэш-функцию h(M) подписываемого текста М. Вычисленное значения хэш-функции h(M) представляет собой один короткий блок информации т, характеризующий весь текст М в целом. Затем значение т шифруется секретным ключом отправителя. Получаемая при этом пара чисел представляет собой ЭЦП для данного текста М.

Процедура проверки подписи. При проверке ЭЦП получатель сооб­щения снова вычисляет хэш-функцию т=h(М) принятого по каналу текста М, после чего при помощи открытого ключа отправителя проверяет, соответствует ли полученная подпись вычисленному значению т хэш-функции.

Принципиальным моментом в системе ЭЦП является невозмож­ность подделки ЭЦП пользователя без знания его секретного ключа. Каждая подпись, как правило, содержит следующую информацию:

1)  дату подписи;

2)  срок окончания действия ключа данной подписи;

3)  информацию о лице, подписавшем текст;

4)  идентификатор подписавшего (имя открытого ключа);

5)  собственно цифровую подпись.

Однонаправленные хэш-функции. Хэш-функция предназначена для сжатия подписываемого документа М до нескольких десятков или co­тен бит. Хэш-функция h(.) использует в качестве аргумента сообщение произвольной длины и возвращает хэш-значение h(M)=Н фиксированной длины. Обычно хэшированная информация является сжатым двоичным представлением основного сообщения произвольной длины. Следует отметить, что значение хэш-функции h(M) сложным образом зависит от документа М и не позволяет восстановить сам документ М.

Хэш-функция должна удовлетворять целому ряду условий:

1)  быть чувствительной к всевозможным изменениям в тексте М;

2)  обладать свойством необратимости, т.е. задача подбора документа М1, который обладал бы требуемым значением хэш-функции, должна быть вычислительно неразрешима;

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

Большинство хэш-функций строится на основе однонаправленной функции f(.), которая образует выходное значение длиной п при задании двух входных значений длиной п. Этими входами являются блок исходного текста Мi и хэш-значение Hi-1 предыдущего блока текста (см. рисунок 6.1).

 

 

 

 

 


Рисунок 6.1 Схема формирования хэш-функции

 

Алгоритм цифровой подписи DSA. Алгоритм цифровой подписи DSА (Digital Signature Authorization) предложен в 1991 г. в США и является развитием алгоритма цифровой подписи Эль-Гамаля.

Отправитель и получатель электронного документа используют при вычислении большие целые числа:

G, Р – простые числа по L-бит каждое (L = 512 ... 1024 бит);

q – простое число длиной 160 бит делитель числа (Р - 1).

Числа G, Р, q являются открытыми и могут быть общими для всех пользователей сети.

Описание алгоритма

1. Отправитель выбирает случайное целое число X, 1< X<q. Число X является секретным ключем отправителя для формирования электронной подписи.

2. Отправитель вычисляет значение:

Y=Gх mod Р.

Число Y является открытым ключом для проверки подписи отправителя и предается всем получателям документа.

3. Для того чтобы подписать документ М, отправитель хэширует его  в целое хэш-значение т:

m=h(M), 1 <m<q.

Затем генерирует случайное целое число К, 1 < К < q и вы­числяет число r.

r= (Gk mod Р) mod q.

4. При помощи секретного ключа X отправитель вычисляет чис­ло s:

s = ((m +r * Х)/K) mod q.

Пара чисел r, s образуют цифровую подпись S=(r, s) под до­кументом М.

5. Доставленное получателю сообщение вместе с подписью пред­ставляет собой тройку чисел [М, r, s]. Прежде всего получатель проверяет выполнение соотношений:

0 < r < q; 0 < s < q.

6. Далее получатель вычисляет значения:

w = 1/s mod q;

m = h(M) – хэш-значение;

u1 = (m* w) mod q;

u2 = (r*w) mod q.

Затем при помощи открытого ключа Y вычисляется значение

v = ((Gu1 •Yu2) mod Р) mod q

и проверяется выполнение равенства v =r. Если оно выполня­ется, то подпись признается подлинной, так как можно строго математически доказать, что последнее равенство будет выпол­няться тогда и только тогда, когда подпись S=(r, s) под докумен­том M получена при помощи именно того секретного ключа X, из которого был получен открытый ключ Y.

Новые стандарты ЭЦП. Последние достижения криптографии показали, что общая проблема логарифмирования в дискретных полях, являющаяся базой указанной схемы ЭЦП, не может считаться достаточно прочным фундаментом. Например, размеры блоков, считающи­ми безопасными, растут сравнительно быстрыми темпами. Наиболее употребляемые алгоритмы ЭЦП приведены на рисунке 6.2. Схемы ЭЦП при этом остались прежними, но в качестве чисел, которыми они оперируют, теперь используются не элементы конечного поля GF(2n) или GF(р), а эллиптические числа — решения уравнения эллиптических кривых над указанными конечными полями. Роль операции возведения числа в степень в конечном поле в обновленных стандартах выполняет операция взятия кратной точки эллиптической кривой — «умножение» точки на целое число.

 

 

Рисунок 6.2Алгоритмы ЭЦП, используемые в РК

 

Надлежащий выбор типа эллиптической кривой позволяет многократно усложнить задачу взлома схемы ЭЦП и уменьшить рабочий размер блоков данных. Старый российский стандарт ЭЦП оперирует 1024-битовыми блоками, а новый, основанный на эллиптических кривых, — 256-битовыми, и при этом обладает большей стойкостью.

 

Задание

 

1. Ознакомиться с основными направлениями работ целевой программы «Электронный Казахстан», а также со сведениями о порядке использования и действующих алгоритмах постановки электронной цифровой, изложенными выше. Запустить программу labWork6.exe, предназначенную для демон­страции порядка постановки и проверки электронной цифровой подписи.

2. Сгенерировать и переслать участникам обмена ключи для шиф­рования исходного документа и ключи для подписания докумен­та. Исходный текст для шифрования набирается непосредствен­но в окне программы.

3. Зашифровать исходное сообщение и подписать его на секретном ключе отправителя.

4. Переслать зашифрованное и подписанное сообщение получате­лю. Выполнить проверку правильности ЭЦП и восстановить ис­ходный текст сообщения.

5. Сохранить в отчете экранные формы, демонстрирующие про­цесс генерации и распространения ключей; процесс шифрова­ния исходного документа и постановки ЭЦП.

6. Привести в отчете ответы на контрольные вопросы в соответ­ствии с номером варианта (см. таблицу 6.1).

 

Таблица 6.1

Номер варианта

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

1, 5, 7, 3, 18, 28

 

В чем состоит назначение хэш-функций и какие требования предъявляются к хэш-функциям, используемым для постановки ЭЦП? Перечислите стандарты хэш-функций, действующие в Республике Казахстан

2, 4, 6, 8, 20, 22, 24, 26, 30

Опишите процедуры постановки и проверки ЭЦП. Какая информация содержится в ЭЦП?

11, 13, 15, 10, 17, 19, 27

Перечислите стандарты ЭЦП, действующие в Республике Казахстан. На каких принципах основана криптостойкость современных алгоритмов ЭЦП?

12, 14, 16, 21, 23, 25, 29

Приведите пример реализации алгоритма ЭЦП (RSA, Эль-Гамаль, DSA)

 

Список литературы

 

1.  Аграновский А.В., Хади Р.А. Практическая криптография. Алго­ритмы и их программирование (+ CD-ROM). - СПб. : COJIOH-Пресо, 2002.

2.  Бабаш А. В. Криптографические и теоретико-автоматные аспекты современной защиты информации. Криптографические методы за­щиты. -М.: Изд. центр ЕАОИ, 2009.

3.  Бабаш А.В., Шанкин Г.П. Криптография/под редакцией В.П. Шерстюка, Э.А. Применко. -М.: СОЛОН-Р, 2007.

4.  Баранова Е.К. Эффективное кодирование и защита информации: Текст лекций для студентов специальности 510200. -М.: МГУЛ, 2002.

5.  Башлы П.Н., Бабаш А.В., Баранова Е.К. Информационная безопасность: учебно-практ. пособие. -М.: Изд. центр ЕАОИ, 2010.

6.  Башлы П.Н., Бабаш А.В., Баранова Е.К. Информационная без­опасность: учебно-практич. пособие. -М. : Изд. центр ЕАОИ, 2010.

7.  Вельшенбах М. Криптография на Си и C++ в действии (+CD-ROM). - -М. : Триумф, 2004.

8.  Коутинхо С. Введение в теорию чисел. Алгоритм RSA. -М.: Постмаркет, 2001.

9.      Мельников В.В. Защита информации в компьютерных системах. -М.: Финансы и статистика; Электроинформ, 1997

10.  Романец Ю.В., Тимофеев П.А., Шаньгин В.Ф. Защита информации в компьютерных системах и сетях. -М.: Радио и связь, 2001.

11.  Смарт Н. Криптография. -М.: Техносфера, 2006.

 

Сводный план  2013 г., поз. 206