- •1.Введение……………………………………………………………………………….3
- •Введение.
- •Использование pgp в программных продуктах. Создание ключей только для шифрования с помощью Kleopatra
- •Создание ключей только для шифрования с помощью GnuPg
- •Подробно об алгоритмах gnu pg и pgp4win. Стандарт генерации ключей x9.17
- •Описание idea
- •Криптоанализ idea
- •Алгоритм rsa.
- •Описание md5
- •Безопасность md5
- •Алгоритм feal.
- •Описание feal
- •Криптоанализ feal
- •3. Генерация простого числа
- •Практические соображения
- •Список литературы
Безопасность md5
Улучшения MD5 в сравнении с MD4:
Добавился четвертый этап.
Теперь в каждом действии используется уникальная прибавляемая константа.
Функция G на этапе 2 с ((XY)(XZ)(YZ)) была изменена на (XZ)(Y(Z)), чтобы сделать G менее симметричной.
Теперь каждое действие добавляется к результату предыдущего этапа. Это обеспечивает более быстрый лавинный эффект.
Изменился порядок, в котором использовались подблоки сообщения на этапах 2 и 3, чтобы сделать шаблоны менее похожими.
Значения циклического сдвига влево на каждом этапе были приближенно оптимизированы для ускорения лавинного эффекта. Четыре сдвига, используемые на каждом этапе, отличаются от значений, используемых на других этапах.
Алгоритм feal.
В алгоритме FEAL используются 64-битовый блок и 64-битовый ключ. Его идея состоит в том, чтобы создать алгоритм, подобный DES, но с более сильной функцией этапа.
Описание feal
На Рис. 2.5 представлена блок-схема одного этапа FEAL. В качестве входа процесса шифрования используется 64-битовый блок открытого текста. Сначала блок данных подвергается операции XOR с 64 битами ключа. Затем блок данных расщепляется не левую и правую половины. Объединение левой и правой половин с помощью XOR образует новую правую половину. Левая половина и новая правая половина проходят через n этапов (первоначально четыре). На каждом этапе правая половина объединяется с помощью функции f с шестнадцатью битами ключа и с помощью XOR - с левой половиной, создавая новую правую половину. Исходная правая половина (на начало этапа) становится новой левой половиной. После n этапов (не забывайте, что левая и правая половины не переставляются после n-го этапа) левая половина снова объединяется с помощью XOR с правой половиной, образуя новую правую половину, затем левая и правая соединяются вместе в 64-битовое целое. Блок данных объединяется с помощью XOR с другими 64 битами ключа, и алгоритм завершается.
Рис. 2.5 Один этап FEAL.
Функция f берет 32 бита данных и 16 битов ключа и смешивает их вместе. Сначала блок данных разбивается на 8-битовые кусочки, которые затем объединяются с помощью XOR и заменяют друг друга. Блок-схема функции f представлена на Рис. 2.6. Две функции S0и S1 определяются следующим образом:
S0 (a, b) = циклический сдвиг влево на два бита ((a + b) mod 256)
S1 (a, b) = циклический сдвиг влево на два бита ((a + b + 1) mod 256)
Рис. 2.6 Функция f.
Тот же алгоритм может быть использован для дешифрирования. Единственным отличием является то, что при дешифрировании порядок использования частей ключа меняется на обратный.
На Рис 2.7 представлена блок-схема функции генерации ключа. Сначала 64-битовый ключ делится на две половины, к которым применяются операции XOR и функции fk, как показано на схеме. На Рис 2.8 показана блок-схема функции fk. Два 32-битовых входа разбиваются на 8-битовые блоки, объединяемые и заменяемые в соответствии со схемой. S0 и S1 определяются, как показано на рисунке. Затем в алгоритме шифрования/дешифрирования используются 16-битовые блоки ключа.
Рис. 2.7 Обработка ключа в FEAL.
Рис. 2.8 Функция fK.
