
- •Задача обеспечения секретности.
- •Шифры подстановок. Примеры.
- •Шифры перестановок. Пример
- •Стойкость шифров. Модель атакующего. Уровни атаки.
- •Шифр Вернама
- •Атака зашифрованного текста
- •Атака c известным открытым текстом
- •Атака выборочного открытого текста
- •Атака адаптивно-выбранного открытого текста
- •Атака выбранного зашифрованного текста
- •Атака выборного шифра
- •Метод "резиновой дубинки"
- •5. Симметричные шифры. Свойства, принципы построения. Sp-сети. Сети Файстеля.
- •Требования
- •6. Шифр des.
- •7. Шифр гост 28147-89.
- •8. Шифр aes
- •Разработка Advanced Encryption Standard (aes) Обзор процесса разработки aes
- •Историческая справка
- •Обзор финалистов
- •Критерий оценки
- •9. Нахождение обратных чисел в модульной арифметике (по сложению и умножению) Модулярная арифметика
- •Заметим, что
- •Вычисление
- •Алгоритм Евклида для нахождения наибольшего общего делителя
- •Постановка задачи
- •[Править]Пример
- •11. Система rsa.
- •12. Система Меркли-Хеллмана
- •Описание
- •Генерация ключа
- •Шифрование
- •Расшифровка
- •13. Система Эль-Гамаля
- •14. Задача обеспечения аутентификации. Цифровая подпись.
- •16. Подпись Эль-Гамаля.
- •Подпись сообщений
- •Проверка подписи
- •17. Подпись гост р 34.10-94 Параметры схемы цифровой подписи
- •Криптографические хеш-функции
- •19. Распределение ключей. Протокол Диффи-Хеллмана. Цифровой конверт
- •История
- •Описание алгоритма
- •20. Распределение ключей. Сертификаты открытых ключей
- •Принцип работы
12. Система Меркли-Хеллмана
Ранцевая криптосистема Меркля-Хеллмана, основанная на «задаче о рюкзаке», была разработана Ральфом Мерклем и Мартином Хеллманом в 1978 году.Ralph Merkle and Martin Hellman, Hiding Information and Signatures in Trapdoor Knapsacks, IEEE Trans. Information Theory, 24(5), September 1978, pp525–530. Это была одна из первыхкриптосистем с открытым ключом, но, к сожалению, она оказалась криптографически нестойкой и, как следствие, не приобрела популярности.Adi Shamir, A Polynomial Time Algorithm for Breaking the Basic Merkle-Hellman Cryptosystem. CRYPTO 1982, pp279–288.
Описание
«Задача о рюкзаке» заключается в следующем: зная подмножество грузов, уложенных в ранец, легко подсчитать суммарный вес, но, зная вес, непросто определить подмножество грузов. Более подробно, пусть задана последовательность из n положительных чисел (n - "размер" рюкзака)
w = (w1, w2, ..., wn) и s.
Задача состоит в том, чтобы найти такой бинарный вектор
x = (x1, x2, ..., xn), (xi = 0 или 1),
чтобы
<math>s=\sum_{i = 1}^n x_iw_i</math>.
Если каждому двоичному числу x поставить в соответствие некоторую букву алфавита, то её можно было бы передавать в зашифрованном виде просто как сумму s. Для произвольного набора чисел wi задача восстановления x по s является NP-трудной.
Р.Мерклю удалось получить обратную к числу s функцию, которая давала бы вектор x, зная только некий «секретный» ключ, и он предложил $100 тому, кто сможет раскрыть ранцевую систему Меркля-Хеллмана.
Рассмотрим её подробнее.
Меркль использовал не произвольную последовательность wi, а супервозрастающую (superincreasing), то есть такую, что
wk+1<math>>\sum_{i = 1}^k w_i</math>.
Нетрудно убедиться, что для такого набора чисел решение задачи является тривиальным. Чтобы избавиться от этой тривиальности и понадобилось ввести «секретный ключ», а именно два числа: q такое, что <math>q>\sum_{i = 1}^n w_i</math> и r такое, что НОД(r,q) =1. И теперь вместо первоначального набора чисел wi будем использовать числаbi=rwi mod q. В оригинальных статьях Меркль рекомендовал использовать n порядка 100, где n - число элементов супервозрастающей последовательности ("размер" рюкзака).
В итоге получаем: открытый ключ – (b1, b2, ..., bn), закрытый ключ - (w1, w2, ..., wn; q, r).
Шифрование
– сообщение x = (x1, x2, ..., xn)
- вычисляем y = b1x1 + b2x2 + bnx
Расшифровка
- вычисляем s = y'r-1 mod q
- решаем задачу для s для супервозрастающей последовательности (w1, w2, ..., 'wn), т.е. находим двоичное число x
Награда досталась А. Шамиру (Adi Shamir) после публикации им в марте 1982 года сообщения о раскрытии ранцевой системы Меркля-Хеллмана с одной итерацией. Заметим, что Шамир сумел построить ключ, не обязательно равный секретному, но позволяющий раскрыть шифр.
Итак, это была одна из неудачных, но очень интересных попыток построения криптосистемы на основе задачи о рюкзаке.
Генерация ключа
В системе Меркля-Хеллмана ключи состоят из последовательностей. Открытый ключ представляет собой «сложную» последовательность, закрытый ключ состоит из «простой» или супервозрастающей последовательности, а также двух дополнительных чисел – множителя и модуля, которые используются как для преобразования супервозрастающей последовательности в «сложную» (генерация открытого ключа), так и для преобразования суммы подмножества «сложной» последовательности в сумму подмножества «простой» (расшифровка). Последняя задача решается за полиномиальное время.