Тема: Программирование алгебраических алгоритмов

Введение

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

1. Цель работы

Исследование и разработка классических методов симметричных криптосистем

2. Краткие сведения из теории

Шифры простой замены. Система шифрования Цезаря - частный случай шифра простой замены. Метод основан на замене каждой буквы сообщения на другую букву того же алфавита, путем смещения от исходной буквы на K букв.

Известная фраза Юлия Цезаря VENI VINI VICI – пришел, увидел, победил, зашифрованная с помощью данного метода, преобразуется в SBKF SFAF SFZF (при смещении на 4 символа).

Греческим писателем Полибием за 100 лет до н.э. был изобретен так называемый полибианский квадрат размером 5*5, заполненный алфавитом в случайном порядке. Греческий алфавит имеет 24 буквы, а 25-м символом является пробел. Для шифрования на квадрате находили букву текста и записывали в шифротекст букву, расположенную ниже ее в том же столбце. Если буква оказывалась в нижней строке таблицы, то брали верхнюю букву из того же столбца.

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

Пусть в качестве ключа используется группа из трех цифр – 314, тогда

Сообщение СОВЕРШЕННО СЕКРЕТНО

Ключ 3143143143143143143

Шифровка ФПИСЬИОССАХИЛФИУСС

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

  АБВГДЕЁЖЗИКЛМНОПРСТУФХЧШЩЪЫЬЭЮЯ_
А АБВГДЕЁЖЗИКЛМНОПРСТУФХЧШЩЪЫЬЭЮЯ_
Б _АБВГДЕЁЖЗИКЛМНОПРСТУФХЧШЩЪЫЬЭЮЯ
В Я_АБВГДЕЁЖЗИКЛМНОПРСТУФХЧШЩЪЫЬЭЮ
Г ЮЯ_АБВГДЕЁЖЗИКЛМНОПРСТУФХЧШЩЪЫЬЭ
. …………
Я ВГДЕЁЖЗИКЛМНОПРСТУФХЧШЩЪЫЬЭЮЯ_АБ
_ БВГДЕЁЖЗИКЛМНОПРСТУФХЧШЩЪЫЬЭЮЯ_А

Каждая строка в этой таблице соответствует одному шифру замены аналогично шифру Цезаря для алфавита, дополненного пробелом. При шифровании сообщения его выписывают в строку, а под ним ключ. Если ключ оказался короче сообщения, то его циклически повторяют. Шифротекст получают, находя символ в колонке таблицы по букве текста и строке, соответствующей букве ключа. Например, используя ключ АГАВА, из сообщения ПРИЕЗЖАЮ ШЕСТОГО получаем следующую шифровку:

 

Сообщение ПРИЕЗЖАЮ_ШЕСТОГО
Ключ АГАВААГАВААГАВАА
Шифровка ПНИГЗЖЮЮЮАЕОТМГО

В компьютере такая операция соответствует сложению кодов ASCII символов сообщения и ключа по модулю 256.

Гаммирование

Процесс зашифрования заключается в генерации гаммы шифра и наложении этой гаммы на исходный открытый текст. Перед шифрованием открытые данные разбиваются на блоки Т(0)i одинаковой длины (по 64 бита). Гамма шифра вырабатывается в виде последовательности блоков Г(ш)i аналогичной длины (Т(ш)i=Г(ш)i+Т(0)i, где + - побитовое сложение, i =1-m).

Процесс расшифрования сводится к повторной генерации шифра текста и наложение этой гаммы на зашифрованные данные T(0)i=Г(ш)i+Т(ш)i.

3. Порядок выполнения работы

Основные шаги шифрования текстового файла методом гаммирования.

1. Получить от пользователя ключ, имя входного и выходного файла.

2. Инициализировать генератор случайных чисел с помощью ключа. Открыть указанные файлы.

3. Прочитать строку из файла.

4. Получить случайное число.

5. Получить ASCII-код очередного символа строки и увеличить его на случайное число, полученное на шаге 4.

6. Проверить правильность (допустимый диапазон) нового ASCII-кода.

7. В выходную строку записать очередной символ, соответствующий ASCII-коду, полученному на шаге 6.

8. Если не достигли конца входной строки, то перейти к шагу 4.

9. Записать полученную строку в выходной файл.

10. Если не достигнут конец файла, то перейти к шагу 3.

11. Закрыть файлы.

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

Open Filename For Input As # FileNumber –открытие файла для чтения.

Out Put –для вывода.

В ASCII –коде символы 10 и 13 (возврат каретки).

Надо открывать файлы как двоичные, ключевое слово Binary.

Line Input # FileNumber, A$ -переменная строковая.

Print –для записи.

Для чтения и записи двоичного файла объявляем переменную типа Variant.

Put # NF,, VA

Get # NF,, VA

Close –закрытие файла.

На языке VBA, С++ или С# написать программу шифрования и дешифрования текстового файла методом, указанным преподавателем.

 

Содержание отчета

1. Название работы.

2. Цель работы.

3. Блок-схему алгоритма шифрования.

4. Тексты программ.

 

 

4. Вопросы для самопроверки

1. Шифр Гронcфельда.

2. Шифры двойной перестановки. Шифрование с помощью магического квадрата.

3. Шифр многоалфавитной замены и алгоритм его реализации.

Рекомендуемая литература

1. Жельников В. Криптография от папируса до компьютера. М.: ABF, 1997. – 336c.

2. Зубанов Ф. WINDOWS NT-выбор “профи”. – М.: Издательский отдел “Русская Редакция” ТОО “Chanel Trading Ltd.”, 1996.

3. Баричев С. Криптография без секретов. М.: "ДИАЛОГ-МИФИ", - 1995.

4. Алгоритм шифрования ГОСТ 28147-89. - Центр информационных технологий citforum.ru, 1998.

5. Медведовский И.Д., Семьянов П.В., Платонов В.В. Атака через Internet. - СПб.: Мир и семья.-1997.

6. Вакка Дж. Секреты безопасности в Internet. – К.: Диалектика, 1997.


Лабораторная работа №3