- •Способы криптографической защиты информации в радиосвязи методические указания
- •090102 “Компьютерная безопасность”, 090105 “Комплексное обеспечение информационной безопасности
- •Введение
- •Шифрование данных в группе симметричных блочных алгоритмов redoc.
- •Теоретическое введение
- •Алгоритм redoc III
- •Алгоритм зашифрования redoc III
- •Создание таблицы ключей
- •Алгоритм расшифрования redoc III
- •Шифрование данных с помощью генератора Геффе.
- •Теоретическое введение
- •Обобщенный генератор Геффе
- •Описание алгоритма решения задачи Решение данной задачи можно разбить на следующие этапы.
- •Хеширование данных с помощью алгоритма md5.
- •Теоретическое введение
- •Присоединение заполняющих (дополнительных) битов
- •Добавление длины
- •Инициализация md буфера
- •Обработка сообщения в блоках по 16 слов
- •Шифрование данных с помощью алгоритма a5.
- •Теоретическое введение
- •Шифр а5/0.
- •Шифр а5/1
- •Шифр а5/2.
- •Шифр а5/3
- •Шифрование данных с помощью алгоритма Blowfish.
- •Теоретическое введение Функциональное преобразование f(X) сети Фейстеля:
- •Алгоритм шифрования 64-битного блока с известным массивом p и f(X)
- •Алгоритм Blowfish
- •Выбор начального значения p-массива и таблицы замен
- •Шифрование данных с помощью алгоритма seal.
- •Теоретическое введение Обозначения.
- •Длина выхода.
- •Отображение ключа в таблицы.
- •Описание функции генерации таблиц.
- •Псевдослучайная функция.
- •Алгоритм seal (отображение 32-битного индекса в l бит).
- •Процедура инициализации seal.
- •Шифрование данных с помощью алгоритма rc2.
- •Теоретическое введение Структура алгоритма
- •Процедура расширения ключа
- •Шифрование данных с помощью алгоритма cast.
- •Теоретическое введение
- •Библиографический список
- •Содержание
- •Способы криптографической защиты
- •090102 “Компьютерная безопасность”, 090105 “Комплексное обеспечение информационной безопасности
- •394026 Воронеж, Московский просп., 14
Алгоритм шифрования 64-битного блока с известным массивом p и f(X)
Алгоритм шифрования 64-битного блока с известным массивом P и F(x)
разделение на 32-битные блоки :
вычисления в i-том раунде:
Ri и Li меняются местами.
после 16 раунда вновь меняются местами:
и «XOR»-ся ключами P17,P18
Р
18
Алгоритм Blowfish
Алгоритм разделён на 2 этапа:
Подготовительный — формирование ключей шифрования по секретному ключу.
Инициализация массивов P и S при помощи секретного ключа K
Инициализация P1-P18 фиксированной строкой, состоящей из шестнадцатеричных цифр числа пи, следующих после 3, то есть после запятой.
Производится операция XOR над P1 с первыми 32 битами ключа K, над P2 со вторыми 32-битами и так далее. Если ключ K короче, то он накладывается циклически.
Шифрование ключей и таблиц замен
Алгоритм шифрования 64-битного блока, используя инициализированные ключи P1-P18 и таблицу замен S1-S4, шифрует 64 битную строку, состоящую из 0 и 1 (важно чтобы она была фиксированной длины). Результат записывается в P1, P2.
P1 и P2 шифруются изменёнными значениями ключей и таблиц замен. Результат записывается в P3 и P4.
Шифрование продолжается до изменения всех ключей и таблицы замен.
Шифрование текста полученными ключами и F(x), с предварительным разбиением на блоки по 64 бита. Если невозможно разбить начальный текст точно на блоки по 64 бита, используются различные режимы шифрования для построения сообщения, состоящего из целого числа блоков. Cуммарная требуемая память 4168 байт: P1-P18:18 переменных по 32 бита; S1-S4: 4x256 переменных по 32 бита.
Дешифрование происходит аналогично, только P1-P18 применяются в обратном порядке.
Выбор начального значения p-массива и таблицы замен
Нет ничего особенного в цифрах числа пи. Данный выбор заключается в инициализации последовательности, не связанной с алгоритмом, которая могла бы быть сохранена как часть алгоритма или получена при необходимости. Как указывает Шнайер: "Подойдёт любая строка из случайных битов цифр числа e, RAND-таблицы, или случайные сгенерированные цифры."
19
Задание:
Используя алгоритм шифрования данных Blowfish, написать программу шифрования и дешифрования произвольного набора символов на любом языке программирования.
Порядок выполнения работы:
написать на языке программирования функцию шифрования, в которую в качестве параметров передается ключ и символ (или строка символов) исходного текста.
написать функцию дешифрования, в которую в качестве параметров передается ключ и символ (или строка символов) зашифрованного текста.
Оформление отчета:
В отчете следует привести краткие теоретические сведения. Кроме того, должны быть представлены: краткая блок-схема, текст программы, шифруемый набор символов, результаты выполнения программы.
Контрольные вопросы:
В чем заключается суть метода шифрования Blowfish?
Какой характерной особенностью обладает функциональное преобразование сети Фейстеля?
Как выбирается начальное значения P-массива и таблица замен?
20
ЛАБОРАТОРНАЯ РАБОТА №6