Ранцевой криптосистемы что является односторонней функцией в этой системе
Задача о ранце в криптографии (Knapsack problem in cryptography)
Задача о рюкзаке (или Задача о ранце) в криптографии (англ. Knapsack problem) — это задача, на основе которой американские криптографы Ральф Меркл и Мартин Хеллман разработали первый алгоритм шифрования с открытым ключом.
Для криптографии с открытым ключом требуется два ключа.
Хотя это кажется малополезным, если вы пытаетесь сохранить что-то в секрете!
Первый общий алгоритм с открытым ключом использовал алгоритмом ранца.
Исходя из определения систем с открытым ключом, чтобы успешно шифровать (и расшифровать) сообщение нужны два ключа. «Легальный» получатель сообщения знает секретный ключ , отправитель же владеет другим открытым ключом
.
Что делать, если злоумышленнику стал известен открытый ключ?
Есть ответ: открытый ключ должен получаться из секретного ключа при помощи преобразования ( односторонней функции) , обладающего следующими двумя свойствами:
Алгоритмы с открытым ключом основаны на вычислительной сложности различных задач.
Более точно термин «легко» обычно означает, что проблему можно решить за полиномиальное время от длины входного сообщения. Т.е. пусть входное сообщение состоит из битов, тогда время вычисления —
, где
— зафиксированная константа. Будем говорить, что алгоритм из класса полиномиальных алгоритмов Р.
Термин «трудно» более сложно определить. В общем случае можно считать, что невозможно решить проблему, если усилия для ее решения больше полиномиального времени от величины входного сообщения.
Т.е. пусть входное сообщение состоит из битов, и время вычисления функции
, то будем говорить, что это вычислительно невозможная задача.
Задача о рюкзаке формулируется так
В наиболее известном варианте задачи о рюкзаке требуется выяснить, обладает ли данная пара решением. В варианте, используемом в криптографии, нужно для данного входа
построить решение, зная, что такое решение существует. Оба эти варианта являются NP-полными.
Аналогия с рюкзаком
В самом простом случае обозначает размер (вместительность) рюкзака, а каждое из чисел
указывает размер (вес) предмета, который может быть упакован в рюкзак. Задачей является нахождение такого набора предметов, чтобы
рюкзак был полностью заполнен.
Т.е представьте, что у вас есть набор гирь 1, 6, 8, 15 и 24, вам нужно упаковать рюкзак весом 30.
В принципе решение всегда может быть найдено полным перебором подмножеств и проверкой, какая из их сумм равна
. В нашем случае, это означает перебор
подмножеств (включая при этом и пустое множество). Это вполне осуществимо.
Но что будет, если существует несколько сотен чисел ?
В нашем примере n = 5, чтобы не усложнять изложение. В реальных условиях пpимер будет иметь, скажем, 300 . Суть здесь в том, что неизвестны алгоритмы, имеющие существенно меньшую сложность по сpавнению с полным перебором. Поиск среди
подмножеств не поддается обработке. В самом деле, задача о рюкзаке известна как NP-полная… NP-полные задачи рассматриваются как трудновычислимые.
Подходит ли функция под указанные требования?
Определим функцию следующим образом. Любое число
может быть задано двоичным представлением из
pазpядов, где пpи необходимости добавляются начальные нули. Теперь определим
как число, получаемое из
суммированием всех таких
, что соответствующий pазpяд в двоичном представлении
равен 1.
Функция определялась
набором
. Очевидно, что если мы в состоянии вычислить
из
, то пpактически за то же время будет решена задача о рюкзаке: по
немедленно вычисляется его двоичное представление, которое в свою очередь дает компоненты набора
, входящие в сумму для
. С другой стороны, вычисление
из
является легким. Так как задача о рюкзаке NP-полна,
является хорошим кандидатом для односторонней функции. Конечно, надо потребовать, чтобы
было достаточно большим, скажем, не менее
.
Шифрование
Шифровать можно двумя способами:
Для шифрования открытого текста в двоичном представлении его разбивают на блоки длины (например, Вы можете представить вес 30 двоичным кодом 11110). Считается, что единица указывает на наличие предмета в рюкзаке, а ноль на его отсутствие.
Шифрование рюкзака обеспечивает хороший подход к созданию открытых и закрытых ключей, где закрытый ключ прост в использовании, а открытый ключ трудно вычислить.
Так, мы можем составить систему, где:
открытым ключом будет служить «трудная» проблема, т.к. с помощью неё можно легко шифровать и невозможно дешифровать сообщение.
закрытым ключом — будет же служить «лёгкая» проблема, т.к. с помощью неё можно легко дешифровать сообщение. Без закрытого ключа придётся решать «трудную» задачу рюкзака.
«Лёгкая» проблема
Для сверхрастущих векторов Α задача о рюкзаке легко решаема. Т.е. рюкзак собрать несложно.
Рассмотрим на примере:
«Трудная» проблема
Расшифровать задачу о несверхувеличивающемся рюкзаке гораздо сложнее.
Один алгоритм, который использует сверхувеличивающийся рюкзак для частного ключа и несверхувеличивающийся рюкзак для открытого ключа, был создан Мерклом и Хеллманом.
Они сделали это, взяв задачу сверхувеличивающегося рюкзака и преобразовав ее в несверхувеличивающую задачу.
(Меркл и Хеллман, используя модульную арифметику, разработали способ трансформации «лёгкого» рюкзака в «трудный»)
Создание открытого ключа
Создатель криптосистемы выбирает такую систему , что вектор
является сверхрастущим, а
получается из
сильным модульным умножением относительно
. Вектор
раскрывается как ключ зашифpования и двоичные блоки длины
посылаются к проектировщику как числа
, полученные с помощью вектора
.
Перехватчик сообщений должен решать задачу о рюкзаке для входа . Создатель же криптосистемы вычисляет
и решает задачу о рюкзаке для входа . Почему все это работает,
показывает следующая лемма.
Лемма. Предположим, что сверхрастущий вектор и вектор
получен из
сильным модульным умножением относительно
. Предположим далее, что
,
—произвольное натуральное число и
. Тогда справедливы следующие утверждения.
(i) Задача о рюкзаке разрешима за линейное время. Если решение существует, то оно единственно.
(ii) Задача о рюкзаке имеет не более одного решения.
(iii) Если существует решение для входа , то оно совпадает с единственным решением для входа
.
доказательство(стр. 104)
Возмём сверхрастущую последовательность; например, <1, 2, 4, 10, 20, 40>. Модуль должен быть больше суммы всех чисел в последовательности, например 110. Множитель не должен иметь общих делителей с модулем. Итак, давайте выберем 31.
Итак, мы вычислили открытый ключ: <31, 62, 14, 90, 70, 30>и закрытый ключ — <1, 2, 4, 10, 20.40>.
Теперь попробуем отправить двоичную последовательность: 100100111100101110
Некоторые преимущества открытых ключей
История
Долгое время ранцевые криптосистемы рассматривались как наиболее привлекательные и перспективные криптосистемы благодаря их NP-полноте и высокой скорости шифрования и дешифрования. Многие схемы используют задачу о ранце (в различных вариациях), вот лишь несколько из них: the compact knapsack problem, the multiplicative knapsack problem, the modular knapsack problem, the matrixcover problem, the group factorization problem…
К сожалению, большинство из них уязвимы для атак. Оказалось, что нетривиально спроектировать защищенную криптосистему на основе задачи о ранце, хотя задача известна как NP-полная. Большинство ранцевых криптосистем было взломано. Несмотря на это, в отличие от целочисленной факторизации и дискретного логарифма, общая задача о рюкзаке (решении) является доказанной NP-полной проблемой.
Некоторые думают, что однажды может быть изобретен алгоритм с полиномиальным временем для решения задач целочисленной факторизации и дискретного логарифмирования, в то время как задача о рюкзаке по-прежнему останется NP-полной задачей.
Тут есть несколько «НО».
Во-первых, NP-полнота основана на анализе наихудшего случая, во-вторых, NP-полнота — это характеристики общей проблемы, а не конкретного случая. Это означает, что если рассматривать среднюю сложность, задача о рюкзаке может быть несложной.
Материал подготовлен на основе данной литературы:
(1) А. Саломаа. Криптография с открытым ключом/ Public-Key Cryptography. — Springer-Verlag, 1990. — Стр. 75-82, стр. 101—111
(2) Мин Кин Лай. Ранцевые криптосистемы: прошлое и будущее — Калифорнийский университет, 2001
(3) Baocang Wang, Qianhong Wu, Yupu Hu. A knapsack-based probabilistic encryption scheme. 2007
Криптографическая система RSA
«Лазейка» в односторонней функции
Функции
Обратимая функция — функция, которая связывает каждый элемент в диапазоне с точно одним элементом в домене.
Односторонняя функция ( OWF — One Way Function) — функция, которая обладает следующими двумя свойствами:
«Лазейка» в односторонней функции
«Лазейка» в односторонней функции (TOWF — Trapdoor One Way) — односторонняя функция с третьим свойством:
3. При данном y и ловушке (секретной) x может быть легко вычислен.
Ранцевая криптосистема
Первая блестящая идея относительно криптографии открытого ключа доступа принадлежит Меркелю и Хеллману — она изложена в их ранцевой криптосистеме. Хотя эта система ненадежна в соответствии с сегодняшними стандартами, главная ее идея дает возможность понять современные криптосистемы с открытым ключом, которые будут рассматриваться позже в этой лекции.
Если нам говорят, какие элементы заранее определенного множества чисел мы имеем, то можно легко вычислить сумму чисел. Если нам говорят сумму, то трудно сказать, какие элементы «находятся в ранце».
Определение
Суперувеличение кортежа
Секретная связь с использованием ранца
Посмотрим, как Алиса может передать секретное сообщение Бобу, использующему ранцевую криптосистему. Идея показана на рис. 14.4.
Генерация ключей
Шифрация
Предположим, что Алисе надо послать сообщение Бобу.
Дешифрация
Боб вычисляет .
Это тривиальный (очень легко раскрываемый пример). Он приводится только для того, чтобы показать процедуру.
Лазейка
Криптографическая система RSA
«Лазейка» в односторонней функции
Функции
Обратимая функция — функция, которая связывает каждый элемент в диапазоне с точно одним элементом в домене.
Односторонняя функция ( OWF — One Way Function) — функция, которая обладает следующими двумя свойствами:
«Лазейка» в односторонней функции
«Лазейка» в односторонней функции (TOWF — Trapdoor One Way) — односторонняя функция с третьим свойством:
3. При данном y и ловушке (секретной) x может быть легко вычислен.
Ранцевая криптосистема
Первая блестящая идея относительно криптографии открытого ключа доступа принадлежит Меркелю и Хеллману — она изложена в их ранцевой криптосистеме. Хотя эта система ненадежна в соответствии с сегодняшними стандартами, главная ее идея дает возможность понять современные криптосистемы с открытым ключом, которые будут рассматриваться позже в этой лекции.
Если нам говорят, какие элементы заранее определенного множества чисел мы имеем, то можно легко вычислить сумму чисел. Если нам говорят сумму, то трудно сказать, какие элементы «находятся в ранце».
Определение
Суперувеличение кортежа
Секретная связь с использованием ранца
Посмотрим, как Алиса может передать секретное сообщение Бобу, использующему ранцевую криптосистему. Идея показана на рис. 14.4.
Генерация ключей
Шифрация
Предположим, что Алисе надо послать сообщение Бобу.
Дешифрация
Боб вычисляет .
Это тривиальный (очень легко раскрываемый пример). Он приводится только для того, чтобы показать процедуру.
Лазейка
Криптографическая система RSA
«Лазейка» в односторонней функции
Функции
Обратимая функция — функция, которая связывает каждый элемент в диапазоне с точно одним элементом в домене.
Односторонняя функция ( OWF — One Way Function) — функция, которая обладает следующими двумя свойствами:
«Лазейка» в односторонней функции
«Лазейка» в односторонней функции (TOWF — Trapdoor One Way) — односторонняя функция с третьим свойством:
3. При данном y и ловушке (секретной) x может быть легко вычислен.
Ранцевая криптосистема
Первая блестящая идея относительно криптографии открытого ключа доступа принадлежит Меркелю и Хеллману — она изложена в их ранцевой криптосистеме. Хотя эта система ненадежна в соответствии с сегодняшними стандартами, главная ее идея дает возможность понять современные криптосистемы с открытым ключом, которые будут рассматриваться позже в этой лекции.
Если нам говорят, какие элементы заранее определенного множества чисел мы имеем, то можно легко вычислить сумму чисел. Если нам говорят сумму, то трудно сказать, какие элементы «находятся в ранце».
Определение
Суперувеличение кортежа
Секретная связь с использованием ранца
Посмотрим, как Алиса может передать секретное сообщение Бобу, использующему ранцевую криптосистему. Идея показана на рис. 14.4.
Генерация ключей
Шифрация
Предположим, что Алисе надо послать сообщение Бобу.
Дешифрация
Боб вычисляет .
Это тривиальный (очень легко раскрываемый пример). Он приводится только для того, чтобы показать процедуру.