Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МиСЗИ-Защ.инф.-Новиков-лабы.doc
Скачиваний:
8
Добавлен:
05.05.2019
Размер:
582.14 Кб
Скачать

Лабораторная работа № 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. Порядок выполнения работы

  1. Согласно полученному варианту задания разработать и отладить ПО конкретного режима стандарта DES.

  2. Разработать интерфейс пользователя с использованием визуальных компонентов библиотеки Win32.

  3. Оформить отчет.

6. Оформление отчета

Отчет должен содержать:

  • задание на лабораторную работу;

  • листинг разработанного ПО для реализации конкретного режима стандарта DES;

  • экранные формы интерфейса пользователя.

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

  1. Приведите краткое сравнение режимов шифрования и дешифрования стандарта DES.

  2. В каком случае какой режим стандарта DES целесообразнее использовать?

  3. Каким образом функции, приведенные в таблице вариантов заданий, реализовать в dll-библиотеке?

  4. Если функции, приведенные в таблице вариантов заданий, реализовать в dll-библиотеке, то каким образом их можно выполнить?

  5. Чем отличаются режимы DES ECB и CBC?

  6. Чем отличаются режимы DES CFB и OFB?

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

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