Программирование арифметических алгоритмов
![]()
|
«ИНФОРМАЦИОННАЯ БЕЗОПАСНОСТЬ» методические указания к выполнению лабораторных работ Лабораторная работа №1 Тема: Программирование арифметических алгоритмов Введение По мере развития и усложнения средств, методов и форм автоматизации процессов обработки информации повышается зависимость общества от степени безопасности используемых им информационных технологий, которая определяется степенью защищенности и устойчивости как компьютерных систем в целом, так и отдельных программ. 1. Цель работы Исследование и разработка основных методов симметричных криптосистем. 2. Краткие сведения из теории Криптография – обеспечивает сокрытие смысла сообщения с помощью шифрования и открытия его расшифрованием, которые выполняются по специальным алгоритмам с помощью ключей. Ключ – конкретное секретное состояние некоторых параметров алгоритма криптографического преобразования данных, обеспечивающее выбор только одного варианта из всех возможных для данного алгоритма. Криптоанализ – занимается вскрытием шифра без знания ключа (проверка устойчивости шифра). Кодирование – (не относится к криптографии) – система условных обозначений, применяемых при передаче информации. Применяется для увеличения качества передачи информации, сжатия информации и для уменьшения стоимости хранения и передачи. Криптосистемы разделяются на симметричные и с открытым ключом. В симметричных криптосистемах и для шифрования, и для дешифрования используется один и тот же ключ. В системах с открытым ключом используются два ключа - открытый и закрытый, которые математически связаны друг с другом. Информация шифруется с помощью открытого ключа, который доступен всем желающим, а расшифровывается с помощью закрытого ключа, известного только получателю сообщения. Криптографические преобразования имеют цель обеспечить недоступность информации для лиц, не имеющих ключа, и поддержание с требуемой надежностью обнаружения несанкционированных искажений. Большинство средств защиты информации базируется на использовании криптографических шифров и процедур шифрования-расшифрования. В соответствии со стандартом ГОСТ 28147-89 под шифром понимают совокупность обратимых преобразований множества открытых данных на множество зашифрованных данных, задаваемых ключом и алгоритмом преобразования. В криптографии используются следующие основные алгоритмы шифрования: алгоритм замены (подстановки) – символы шифруемого текста заменяются символами того же или другого алфавита в соответствии с заранее обусловленной схемой замены; алгоритм перестановки – символы шифруемого текста переставляются по определенному правилу в пределах некоторого блока этого текста; гаммирование – символы шифруемого текста складываются с символами некоторой случайной последовательности; аналитическое преобразование – преобразование шифруемого текста по некоторому аналитическому правилу (формуле). Процессы шифрования и расшифрования осуществляются в рамках некоторой криптосистемы. Для симметричной криптосистемы характерно применение одного и того же ключа как при шифровании, так и при расшифровании сообщений. В асимметричных криптосистемах для зашифрования данных используется один (общедоступный) ключ, а для расшифрования – другой (секретный) ключ. 3. Порядок выполнения работы На языке DELPHI, VBA С++ или C# написать программу шифрования и дешифрования текстового файла методом, указанным преподавателем. Содержание отчета Название работы. Цель работы. Блок-схему алгоритма шифрования. Тексты программ. 4. Вопросы для самопроверки Цель и задачи криптографии. Шифры одиночной перестановки и перестановки по ключевому слову. Шифры двойной перестановки. Шифрование с помощью магического квадрата. Рекомендуемая литератураЖельников В. Криптография от папируса до компьютера. М.: ABF, 1997. – 336c. Зубанов Ф. WINDOWS NT-выбор “профи”. – М.: Издательский отдел “Русская Редакция” ТОО “Chanel Trading Ltd.”, 1996. Баричев С. Криптография без секретов. М.: "ДИАЛОГ-МИФИ", - 1995. Алгоритм шифрования ГОСТ 28147-89. - Центр информационных технологий citforum.ru, 1998. Медведовский И.Д., Семьянов П.В., Платонов В.В. Атака через Internet. - СПб.: Мир и семья.-1997. Вакка Дж. Секреты безопасности в Internet. – К.: Диалектика, 1997. Дополнительно ftp://ftp.kiae.su/msdos/crypto/pgp http://drago.centerline.com:8080/franl/pgp/… Yahoo - Computers, Security-and-Encryption Лабораторная работа №2 Тема: Программирование алгебраических алгоритмов Введение Для обеспечения защиты информации в настоящее время не существует какого-то одного технического приема или средства, однако общим в решении многих проблем безопасности является использование криптографии и криптоподобных преобразований информации. 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. Порядок выполнения работы Основные шаги шифрования текстового файла методом гаммирования. Получить от пользователя ключ, имя входного и выходного файла. Инициализировать генератор случайных чисел с помощью ключа. Открыть указанные файлы. Прочитать строку из файла. Получить случайное число. Получить ASCII-код очередного символа строки и увеличить его на случайное число, полученное на шаге 4. Проверить правильность (допустимый диапазон) нового ASCII-кода. В выходную строку записать очередной символ, соответствующий ASCII-коду, полученному на шаге 6. Если не достигли конца входной строки, то перейти к шагу 4. Записать полученную строку в выходной файл. Если не достигнут конец файла, то перейти к шагу 3. Закрыть файлы. Алгоритм дешифрации аналогичен алгоритму шифрации за исключением того, что из 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, С++ или С# написать программу шифрования и дешифрования текстового файла методом, указанным преподавателем. Содержание отчета Название работы. Цель работы. Блок-схему алгоритма шифрования. Тексты программ. 4. Вопросы для самопроверки Шифр Гронcфельда. Шифры двойной перестановки. Шифрование с помощью магического квадрата. Шифр многоалфавитной замены и алгоритм его реализации. |