- •Методические указания
- •Тула 2000 Содержание
- •Лабораторная работа № 1. Методы криптографии. Подстановки
- •1. Цель работы
- •Лабораторная работа № 2. Методы криптографии. Генерация псевдобесконечных ключей на основе датчиков псевдослучайных чисел
- •1. Цель работы
- •2. Теоретические положения
- •Лабораторная работа № 3. Методы двухключевой криптографии
- •1. Цель работы
- •2. Теоретические положения
- •Лабораторная работа № 4. Методы криптографии. Реализация процедур стандарта des
- •1. Цель работы
- •2. Теоретические положения
- •Лабораторная работа № 5. Методы криптографии. Реализация режимов стандарта des
- •1. Цель работы
- •2. Теоретические положения
- •Лабораторная работа № 6. Макросы документов ms word. Проектирование макросов. Проблемы информационной безопасности
- •1. Цель работы
- •2. Теоретические положения
- •Лабораторная работа № 7. Методы проектирования по информационной безопасности на основе технологии визуального программирования
- •1. Цель работы
- •2. Теоретические положения
- •Литература
Лабораторная работа № 5. Методы криптографии. Реализация режимов стандарта des
1. Цель работы
Приобретение навыков шифрования и дешифрования сообщений и файлов любого вида на основе стандарта DES.
2. Теоретические положения
Для наиболее полного удовлетворения всем требованиям, предъявляемым к коммерческим системам шифрования, реализованы несколько алгоритмов стандарта DES, рассмотренного в предыдущей лабораторной работе. Наиболее широкое распространение получили режимы:
электронный шифроблокнот (Electronic Codebook) – ECB;
цепочка цифровых блоков (Cipher Block Chaining) – CBC;
цифровая обратная связь (Cipher Feedback)– CFB;
внешняя обратная связь (Output Feedback) – OFB.
Рассмотрим перечисленные режимы.
DES-ECB
Длинный файл разбивается на 64-битовые отрезки (по 8 байт). Каждый из этих блоков кодируется независимо с использованием одного и того же ключа шифрования. Основное достоинство этого алгоритма – простота реализации. Недостаток – относительно слабая устойчивость против квалифицированных криптоаналитиков.
В частности, не рекомендуется использовать данный режим работы для шифрования .ЕХЕ файлов, потому что первый же блок – заголовок файла. Является вполне удачным началом для взлома всего шифра.
DES-CBC
В этом режиме исходный файл М разбивается на 64 битовые блоки : М = М1М2…Мn. Тогда для всех i=1, ..., N ( N – число блоков ) результат шифрования Ci будет определяться следующим образом:
С0 = начальное значение
Ci = DES(Mi xor Ci-1)
Дешифрование выполняется в обратном порядке.
С0 = начальное значение
Mi = Ci-1 xor DES(Ci)
Прелесть данного режима состоит в том, что он не позволяет накапливаться ошибкам при передаче. Блок Mi является функцией только Ci и Ci-1. Поэтому ошибка при передаче приведет к потере только двух блоков исходного текста.
DES-CFB
В этом режиме файл подлежащий шифрованию/дешифрованию, считывается последовательными блоками длиной t битов (t = 1,...,64). 64-битовый регистр сдвига инициализируется строкой S0, которая может быть либо заполнена пробелами, либо в нее записывается исходное значение ключа K. Предположим, что в результате разбиения на блоки мы получили N блоков, длиной по t битов каждый (остаток дописывается нулями или пробелами). Тогда для любого i = 1,…, N:
Ci = Mi xor Pi,
где Pi обозначает t старших битов предыдущего зашифрованного блока. Обновление сдвигового регистра осуществляется путем удаления его старших t битов и дописывания Ci справа.
Восстановление зашифрованных данных также не представляет труда: Pi и Ci вычисляются аналогичным образом и
Mi = Ci xor Pi
DES-OFB
Режим OFB также использует переменный размер блока и сдвиговый регистр, инициализируемый аналогично режиму CFB. Но в этот раз для каждого сеанса шифрования данных необходимо использовать новое начальное состояние регистра S0, которое должно пересылаться по каналу открытым текстом или должно быть определено заранее правило по которому можно вычислить следующее значение S0.
Пусть M = M1M2…Mn. Для всех i = 1, N,
Ci = Mi xor Pi,
где Pi – старшие t битов операции DES(Si-1). Отличие от режима CFB состоит в методе обновления сдвигового регистра. В данном случае это осуществляется путем отбрасывания старших t битов и дописывания справа Pi.
3. Задание на работу
Получить вариант задания у преподавателя для разработки конкретного режима стандарта DES в интегрированной среде Delphi или C++ Builder для криптографических преобразований файлов любого типа. Разработать удобный интерфейс пользователя, позволяющий специалистам, мало знакомым с методами криптографии, легко шифровать и дешифровать файлы любого типа.
Вариант |
Название функции |
Обозначение |
1 |
Кодирование и декодирование в режиме «Электронный шифроблокнот (Electronic Codebook) – ECB» |
Coder_DES_ECB(AnsiString in_F, AnsiString out_F, AnsiString Klutch) Decoder_DES_ECB(AnsiString in_F, AnsiString out_F, AnsiString Klutch) in_F – имя с полным путем исходного шифруемого файла; out_F – имя с полным путем результирующего зашифрованного файла; Klutch – 8-и символьный криптографический ключ; |
2 |
Кодирование и декодирование в режиме «Цепочка цифровых блоков (Cipher Block Chaining) – CBC» |
Coder_DES_CBC(AnsiString in_F, AnsiString out_F, AnsiString Klutch) Decoder_DES_CBC(AnsiString in_F, AnsiString out_F, AnsiString Klutch) in_F – имя с полным путем исходного шифруемого файла; out_F – имя с полным путем результирующего зашифрованного файла; Klutch – 8-и символьный криптографический ключ; |
3 |
Кодирование и декодирование в режиме «Цифровая обратная связь (Cipher Feedback)– CFB» |
Coder_DES_CFB(AnsiString in_F, AnsiString out_F, AnsiString Klutch) Decoder_DES_CFB(AnsiString in_F, AnsiString out_F, AnsiString Klutch) in_F – имя с полным путем исходного шифруемого файла; out_F – имя с полным путем результирующего зашифрованного файла; Klutch – 8-и символьный криптографический ключ; |
4 |
Кодирование и декодирование в режиме «Внешняя обратная связь (Output Feedback) – OFB» |
Coder_DES_OFB(AnsiString in_F, AnsiString out_F, AnsiString Klutch) Decoder_DES_OFB(AnsiString in_F, AnsiString out_F, AnsiString Klutch) in_F – имя с полным путем исходного шифруемого файла; out_F – имя с полным путем результирующего зашифрованного файла; Klutch – 8-и символьный криптографический ключ; |
В случае проектирования ПО в интегрированной среде Delphi в списках формальных аргументов вместо типа AnsiString необходимо использовать тип String (AnsiString in_F in_F: String).
4. Оборудование
ПЭВМ с архитектурой IBM PC, операционная система – Windows 95, интегрированная среда – C++ Builder или Delphi версии не ниже 3.0
5. Порядок выполнения работы
Согласно полученному варианту задания разработать и отладить ПО конкретного режима стандарта DES.
Разработать интерфейс пользователя с использованием визуальных компонентов библиотеки Win32.
Оформить отчет.
6. Оформление отчета
Отчет должен содержать:
задание на лабораторную работу;
листинг разработанного ПО для реализации конкретного режима стандарта DES;
экранные формы интерфейса пользователя.
7. Контрольные вопросы
Приведите краткое сравнение режимов шифрования и дешифрования стандарта DES.
В каком случае какой режим стандарта DES целесообразнее использовать?
Каким образом функции, приведенные в таблице вариантов заданий, реализовать в dll-библиотеке?
Если функции, приведенные в таблице вариантов заданий, реализовать в dll-библиотеке, то каким образом их можно выполнить?
Чем отличаются режимы DES ECB и CBC?
Чем отличаются режимы DES CFB и OFB?
Какой из режимов DES, приведенных в таблице вариантов заданий отличается минимальной сложностью алгоритма?
Какой из режимов DES, приведенных в таблице вариантов заданий отличается максимальной сложностью алгоритма?