Jump to content

Ранцевая криптосистема Меркла – Хеллмана

Ранцевая криптосистема Меркла -Хеллмана была одной из первых с открытым ключом криптосистем . Он был опубликован Ральфом Мерклем и Мартином Хеллманом в 1978 году. Полиномиальная атака по времени была опубликована Ади Шамиром в 1984 году. В результате криптосистема теперь считается небезопасной. [ 1 ] : 465  [ 2 ] : 190 

Концепция криптографии с открытым ключом была введена Уитфилдом Диффи и Мартином Хеллманом в 1976 году. [ 3 ] В то время они предложили общую концепцию «односторонней функции с люком», функции, обратную для которой вычислительно невозможно вычислить без некоторой секретной «информации о люке»; но они еще не нашли практического примера такой функции. В течение следующих нескольких лет другие исследователи предложили несколько конкретных криптосистем с открытым ключом, таких как RSA в 1977 году и Меркл-Хеллман в 1978 году. [ 4 ]

Описание

[ редактировать ]

Меркла-Хеллмана — это криптосистема с открытым ключом, что означает, что используются два ключа: открытый ключ для шифрования и закрытый ключ для дешифрования. В его основе лежит задача о сумме подмножеств (частный случай задачи о рюкзаке ). [ 5 ] Задача состоит в следующем: задан набор целых чисел и целое число , найдите подмножество что в сумме равно . В общем случае эта задача известна как NP-полная . Однако, если является супервозрастающим , что означает, что каждый элемент набора больше, чем сумма всех чисел в наборе, меньших его, проблема «легка» и разрешима за полиномиальное время с помощью простого жадного алгоритма .

В Меркле-Хеллмане расшифровка сообщения требует решения явно «сложной» задачи о рюкзаке. Закрытый ключ содержит супервозрастающий список чисел. , а открытый ключ содержит несупервозрастающий список чисел , что на самом деле является "замаскированной" версией . Закрытый ключ также содержит некоторую информацию о «лазейке», которую можно использовать для решения задачи о твердом рюкзаке с помощью в простую задачу о рюкзаке, используя .

В отличие от некоторых других криптосистем с открытым ключом, таких как RSA , два ключа в Меркле-Хеллмане не являются взаимозаменяемыми; закрытый ключ не может использоваться для шифрования. Таким образом, метод Меркла-Хеллмана не может напрямую использоваться для аутентификации посредством криптографической подписи , хотя Шамир опубликовал вариант, который можно использовать для подписи. [ 6 ]

Генерация ключей

[ редактировать ]

1. Выберите размер блока . Целые числа до биты длиной могут быть зашифрованы с помощью этого ключа.

2. Выбрать случайную супервозрастающую последовательность положительные целые числа

Требование сверхвозрастания означает, что , для .

3. Выберите случайное целое число такой, что

4. Выберите случайное целое число такой, что (то есть, и взаимнопросты ) .

5. Рассчитаем последовательность

где .

Открытый ключ и закрытый ключ .

Шифрование

[ редактировать ]

Позволять быть -битовое сообщение, состоящее из битов , с бит высшего порядка. Выберите каждый для чего не равно нулю, и сложите их вместе. Аналогично, вычислите

.

Зашифрованный текст .

Расшифровка

[ редактировать ]

Чтобы расшифровать зашифрованный текст , мы должны найти подмножество что в сумме равно . Мы делаем это, преобразуя задачу в задачу поиска подмножества . Эту задачу можно решить за полиномиальное время, поскольку супервозрастает.

1. Вычислите модульную обратную величину модуль используя расширенный алгоритм Евклида . Обратное будет существовать, поскольку взаимнопроста с .

Вычисление не зависит от сообщения и может быть выполнено только один раз при генерации закрытого ключа.

2. Рассчитать

3. Решите задачу о сумме подмножеств для используя супервозрастающую последовательность , с помощью простого жадного алгоритма, описанного ниже. Позволять — результирующий список индексов элементов какая сумма . (То есть, .)

4. Создайте сообщение по 1 в каждом битовая позиция и 0 во всех остальных битовых позициях:

Решение проблемы суммы подмножества

[ редактировать ]

Этот простой жадный алгоритм находит подмножество супервозрастающей последовательности что в сумме равно , за полиномиальное время:

1. Инициализируйте в пустой список.
2. Найдите самый большой элемент в что меньше или равно , сказать .
3. Вычтите: .
4. Добавить в список .
5. Если больше нуля, вернитесь к шагу 2.

Генерация ключей

[ редактировать ]

Создайте ключ для шифрования 8-битных чисел, создав случайную супервозрастающую последовательность из 8 значений:

Их сумма равна 706, поэтому выберите большее значение для :

.

Выбирать быть взаимно простым с :

.

Создайте открытый ключ умножив каждый элемент в к модуль :

Следовательно .

Шифрование

[ редактировать ]

Пусть 8-битное сообщение будет . Умножаем каждый бит на соответствующее число в и добавьте результаты:

  0 * 295
+ 1 * 592
+ 1 * 301
+ 0 * 14
+ 0 * 28
+ 0 * 353
+ 0 * 120
+ 1 * 236
    = 1129

Зашифрованный текст это 1129.

Расшифровка

[ редактировать ]

Чтобы расшифровать число 1129, сначала используйте расширенный алгоритм Евклида, чтобы найти модульное обратное число. против :

.

Вычислить .

Используйте жадный алгоритм, чтобы разложить 372 в сумму ценности:

Таким образом , а список индексов . Теперь сообщение можно вычислить как

.

Криптоанализ

[ редактировать ]

В 1984 году Ади Шамир опубликовал атаку на криптосистему Меркла-Хеллмана, которая может расшифровывать зашифрованные сообщения за полиномиальное время без использования закрытого ключа. [ 7 ] Атака анализирует открытый ключ и ищет пару чисел и такой, что является супервозрастающей последовательностью. пара, найденная атакой, может быть не равна в закрытом ключе, но, как и эта пара, ее можно использовать для преобразования задачи о жестком рюкзаке, используя в простую задачу с использованием супервозрастающей последовательности. Атака осуществляется исключительно с использованием открытого ключа; доступ к зашифрованным сообщениям не требуется.

Атака Шамира на криптосистему Меркла-Хеллмана работает за полиномиальное время, даже если числа в открытом ключе перетасованы случайным образом - шаг, который обычно не включается в описание криптосистемы, но может быть полезен против некоторых более примитивных атак.

  1. ^ Шнайер, Брюс (1996). Прикладная криптография . Нью-Йорк: Джон Уайли и сыновья. ISBN  0-471-12845-7 .
  2. ^ Стинсон, Дуглас Р. (1995). Криптография: теория и практика . Бока-Ратон: CRC Press. ISBN  0-8493-8521-0 .
  3. ^ Уитфилд Диффи; Мартин Хеллман (1976). «Новые направления в криптографии». Транзакции IEEE по теории информации . 22 (6): 644. CiteSeerX   10.1.1.37.9720 . дои : 10.1109/TIT.1976.1055638 .
  4. ^ Меркл, Ральф; Хеллман, Мартин (1978). «Сокрытие информации и подписей в рюкзаках с люками». Транзакции IEEE по теории информации . 24 (5): 525–530. дои : 10.1109/TIT.1978.1055927 .
  5. ^ Черовицо, Уильям (2 марта 2002 г.). «Рюкзачная криптосистема Меркла-Хеллмана» . Математика 5410 — Современная криптология . Проверено 18 августа 2019 г.
  6. ^ Шамир, Ади (июль 1978 г.). «Схема быстрой подписи». Технический меморандум Лаборатории компьютерных наук Массачусетского технологического института . 79 (MIT/LCS/TM–107): 15240. Бибкод : 1978STIN...7915240S .
  7. ^ Шамир, Ади (1984). «Алгоритм с полиномиальным временем для взлома базовой криптосистемы Меркла-Хеллмана». Транзакции IEEE по теории информации . 30 (5): 699–704. дои : 10.1109/SFCS.1982.5 .
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 17895b950d1c477041eb44eb688a9dd1__1720014480
URL1:https://arc.ask3.ru/arc/aa/17/d1/17895b950d1c477041eb44eb688a9dd1.html
Заголовок, (Title) документа по адресу, URL1:
Merkle–Hellman knapsack cryptosystem - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)