Тема: Программирование алгебраических алгоритмов
Введение
Для обеспечения защиты информации в настоящее время не существует какого-то одного технического приема или средства, однако общим в решении многих проблем безопасности является использование криптографии и криптоподобных преобразований информации.
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