Задание 2 (1). Задача Потоковые методы шифрования
Скачать 69.5 Kb.
|
Введение 0.1. Реализуйте алгоритм быстрого возведения в степень для вычисления выражения x = az mod n при целых положительных числах a, z и n. Алгоритм использовать из лекций! 0.2. Реализуйте расширенный алгоритм Евклида для двух взаимно простых чисел. Результат выведите на экран. Разминка Методы простой подстановки. Моноалфавитный шифр 1.1 Реализуйте программное средство, осуществляющее шифрование и дешифрование текстового документа посредством моноалфавитного шифра со сдвигом k. Значение k используйте из таблицы 1.
Таб. 1. Параметры сдвига k. Полиалфавитный шрифт Реализуйте программное средство, использующее метод Виженера для шифрования и дешифрования текстового документа. В качестве ключевого слова можно использовать слово произвольной длины от 5 до 10 символов. Задача Потоковые методы шифрования. 2.1 Реализуйте алгоритм гаммирования шифрования и дешифрования простейшей потоковой криптосистемы, шифрующий короткое текстовое сообщение ключем длины, равной длине сообщения. 2.2 Используя функцию примитивного многочлена из таблицы 2, реализуйте генератор ключей с линейной обратной связью. Начальное состояние сдвигового регистра определите установкой в его разряды единичных значений. Рассчитайте максимальный возможный период повторения генерируемой последовательности
Таб. 2. Функции примитивного многочлена. 2.3 Реализуйте генератор псевдослучайной последовательности методом Геффа с тремя сдвиговыми регистрами с линейной обратной связью и программное средство для поточного шифрования и дешифрования текста из файла. Выход данного генератора описывается уравнением вида , где - выходы регистров с линейной обратной связью. Вычислите период данного генератора согласно формуле где - длины трех генераторов ключей с линейной обратной связью. Размерность регистров необходимо взять из таблицы 3. 2.4 Реализуйте программное средство для поточного шифрования текстового файла алгоритмом A5/2. В качестве примитивных многочленов трех регистров используйте значения из таблицы 3. Тактирующий регистр должен быть построен на основе образующего многочлена x17 + x12 + 1.
Таб. 3. Размерность регистров. Проблема Симметричные методы шифрования. 3.1 Реализуйте алгоритм IDEA шифрования и дешифрования текста произвольной длины с режимом шифрования EBC. Для улучшения стойкости к анализу шифрованных данных блок данных для шифрования необходимо дополнить случайно сгенерированными 8 битами. 3.2 Реализуйте алгоритм IDEA шифрования и дешифрования текста произвольной длины с режимом шифрования СBC. Вектор инициализации для осуществления шифрования и дешифрования текста задайте самостоятельно. 3.3 Реализуйте алгоритм IDEA шифрования и дешифрования текста произвольной длины с режимом шифрования OFB. Вектор инициализации для осуществления шифрования и дешифрования текста задайте самостоятельно. 3.4 Реализуйте алгоритм IDEA шифрования и дешифрования текста произвольной длины с режимом шифрования CFB. Вектор инициализации для осуществления шифрования и дешифрования текста задайте самостоятельно. 3.5 Реализуйте алгоритм DES шифрования и дешифрования текста произвольной длины с режимом шифрования EBC. Для улучшения стойкости к анализу шифрованных данных блок данных для шифрования необходимо дополнить случайно сгенерированными 8 битами. 3.6 Реализуйте алгоритм DES шифрования и дешифрования текста произвольной длины с режимом шифрования СBC. Вектор инициализации для осуществления шифрования и дешифрования текста задайте самостоятельно. 3.7 Реализуйте алгоритм DES шифрования и дешифрования текста произвольной длины с режимом шифрования OFB. Вектор инициализации для осуществления шифрования и дешифрования текста задайте самостоятельно. 3.8 Реализуйте алгоритм DES шифрования и дешифрования текста произвольной длины с режимом шифрования CFB. Вектор инициализации для осуществления шифрования и дешифрования текста задайте самостоятельно. 4. Криптографические системы с открытным ключем. 4.1. Реализуйте криптографическую систему, осуществляющую шифрование текста по алгоритму RSA. Параметры открытого ключа Ко, а также двух взаимно простых чисел выберите самостоятельно. При выборе ключа Ko можно использовать простые числа Ферма 3, 5, 17, 257, 65537, так и получить его самостоятельно. 4.2. Разработайте программное средство, реализующее систему Диффи-Хелмана. В качестве параметра p используйте значение p=30803. Программа должна включать проверку на выбор параметра g. Секретные ключи необходимо сгенерировать случайно. 4.3 Напишите программу, реализующую шифр Эль-Гамаля. Рекомендуемые значения р=30803. Остальные параметры сгенерируйте случайным образом. Программно осуществите проверку выбранных параметров. Функции хеширования. 5.1 Реализуйте алгоритм построения хеш-образа текста произвольной длины по методу SHA-1. 5.2 Реализуйте алгоритм построения хеш-образа текста произвольной длины по методу MD5. 6. Цифровая подпись. 6.1 Разработайте программное средство осуществляющее электронную цифровую подпись по алгоритму RSA. 6.2 Разработайте программное средство осуществляющее цифровую подпись на основе шифра Эль-Гамаля. |