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

      Комментарии к записи Разработка программы, использующей функции криптографического интерфейса для защиты информации. отключены

Часа

Цель работы:

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

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

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

Y = Ez(X)

X = Dz(Y) = Dz(Ez(X)),

где X — открытый текст;

Y — шифротекст;

Dz — функция шифрования с секретным ключом z;

Ez — функция расшифрования с секретным ключом z.

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

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

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

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

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

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

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

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

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

Каждой букве алфавита сопоставим цифру (А — 0, В — 1, …, Z — 25). Ключевое слово ki задается определенным количеством букв d и повторно записывается под шифруемым сообщением mi. В дальнейшем в i-м столбце из двух букв буква сообщения mi складывается по модулю 26 со стоящей под ней буквой ключевого слова ki в виде:

gi = mi + ki mod 26,

где gi — буквы полученной криптограммы.

Расшифровка криптограммы осуществляется вычитанием ключевого слова по модулю 26. При d = 1 шифр Вижинера является шифром Цезаря.

Примеры.

Пример 1.

Шифр Цезаря Получим криптограмму с использованием шифра Цезаря с ключом d = 1 на базе английского алфавита, строчный регистр

Исходное сообщение i n f o r m f t i o n
Криптограмма j o g p s n g u j p o

Для русского языка с ключом d = 10

Исходное сообщение И Н Ф О Р М А Ц И Я
Криптограмма Т Ч Ю Ш Ь Ц Й А Т И

Пример 2.

Шифр Вижинера Получим криптограмму с использованием шифра Цезаря с ключевым словом «code» (ключи «с=2», «o=14», «d=3», «e=4») на базе английского алфавита, строчный регистр.

Исходное сообщение i n f o r m f t i o n
Ключевое слово c o d e c o d e c o d
Криптограмма k b i s t a i x k c q

Для русского языка с ключевым словом «код» (ключи «к=10», «о=14», «д=4»).

Исходное сообщение И Н Ф О Р М А Ц И Я
Ключевое слово К О Д К О Д К О Д К
Криптограмма Т Ы Ш Ш Ю Р Й Д М И

Самостоятельные задания:

Задание 1:

Подготовить презентацию на тему:

Обзор и классификация методов шифрования информации.

Задание 2:

Разработать программы шифрования и дешифрования текстов реализующие следующие методы:

1. Зашифровать произвольный текст с помощью шифра простой перестановки на основе таблицы. В качестве ключа использовать размеры таблицы (N строк, М столбцов). Таблицу заполнять по столбцам, считывать — по строкам. (иногда можно использовать метод Цезаря если сильно хочется)

2. Одноалфавитный метод (с фиксированным смещением).

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

4. Перестановка символов.

5. По дополнению до 255 (инверсный метод).

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

7. Многоалфавитный метод с ключом фиксированной длины.

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

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

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

Практическая работа 6

Статьи к прочтению:

Александр Гуфан — Как устроена современная криптография


Похожие статьи: