- •Тема 11. Системы шифрования с открытым ключом.
- •11.1. Понятие об односторонних функциях.
- •11.2. Система шифрования методом укладки рюкзака. (Ранцевая система шифрования).
- •11.3. Система шифрования rsa.
- •0920 1900 0112 1200 0718 0505 1100 2015 0013 0500.
- •0948 2342 1084 1444 2663 2390 0778 0774 0229 1655.
- •11.4. Криптосхема Диффи–Хэллмана.
- •11.5. Пример распределения ключей в системе мобильной связи.
11.2. Система шифрования методом укладки рюкзака. (Ранцевая система шифрования).
Классическая задача о рюкзаке формулируется следующим образом. Пусть имеется множество предметов с указанием их веса, некоторые представители которого укладываются в рюкзак. Зная вес наполненного рюкзака (без учета веса самого рюкзака), необходимо определить содержимое рюкзака.
Опишем задачу о рюкзаке с использованием вектора рюкзака и вектора данных. Вектор рюкзака представляет собой набор из n различных чисел (аналогично множеству различных предметов, укладываемых в рюкзак), т.е. . Вектор данных – множество двоичных символов, т.е., где. Веснаполненного рюкзака есть сумма подмножества компонентов вектора рюкзака, определяемая как
.
Тогда задачу о рюкзаке можно сформулировать следующим образом: при заданном S и известном определить.
Пример 11.2.1. Пусть . Пусть. Требуется определить. Методом проб можно установить, что
.
Тогда .
В этом простом примере решение было найдено методом проб и ошибок, однако если в заданном множестве не 10, а 100 и более различных чисел, то задача может стать вычислительно неосуществимой. Следовательно, при заданном векторенахождениеS по известному осуществляется просто, как. Однако решение обратной задачи, т.е. нахождениепо известномуи заданномуS представляет собой трудную в вычислительном плане задачу, и, значит, может рассматриваться как односторонняя функция.
Для организации схемы шифрования на основе этой задачи необходима не просто односторонняя функция, а функция с лазейкой, в качестве которой выступает быстровозрастающая последовательность компонентов вектора . Векторбудетбыстровозрастающим, если для его компонентов выполняется соотношение
,
т.е. каждый компонент вектора больше суммы предшествующих ему компонентов. Тогда еслиявляется быстровозрастающим, то последний элемент, т.е.принимает значение единица, если, и– в противном случае. Все предшествующие элементынаходятся согласно соотношению
(11.3)
где .
Пример 11.2.2. Пусть , а. Очевидно, чтоявляется быстровозрастающим. Тогда из (11.3) следует, что.
Из примера очевидным образом следует, что в случае наличия быстровозрастающего , т.е. лазейки, определениеосуществляется достаточно просто, в противном же случае задача отысканиястановится трудно осуществимой. Следовательно, в качестве части секретного ключа необходимо использовать быстровозрастающую последовательностьи именно с учетом этого замечания строить схему шифрования.
Данная схема шифрования, известная также как схема Меркла–Хэллмана, основана на образовании вектора , который не является быстровозрастающим. Следовательно, задача отысканияпопри известномS не является легкоразрешимой. При этом схема обязательно должна содержать лазейку в виде быстровозрастающего вектора , который позволит разрешенным пользователям легко решить задачу.
Первоначально образуем быстро возрастающий вектор и выберем простое числоP, при котором выполняется следующее неравенство
.
Затем случайным образом выберем число и вычислим, такое что
. (11.4)
Вектор и числаявляются секретными. Затем из элементовсформируем вектор, компоненты которого определяются как
.
Формирование вектора согласно последнему соотношению знаменуют собой формирование вектора рюкзака слазейкой. Так, если нужно передать сообщение, описываемое вектором , то первоначальноумножается на, что дает числоS, вычисляемое как
,
которое и передается по открытому каналу связи.
Санкционированный пользователь получает S и, используя соотношение (11.4), превращает его в вида
.
Поскольку разрешенный пользователь знает засекреченный быстровозрастающий вектор , для отысканияон может использовать.
Пример 11.2.3. Предположим, что абонент A хочет создать общедоступную и конфиденциальную схему шифрования. Первоначально он создает быстровозрастающий вектор , размерность которогоn определяются потребностями абонента. Затем он определяет число P из условия
и число W, такое что , при котором. Пусть, например,,, так, что, которые и образуют секретный ключ пользователя.
Образовав секретный ключ, абонент A переходит к формированию общедоступного ключа, в качестве которого выступает вектор , содержащий «лазейку»:
,
так что
.
Предположим, что пользователь B собирается послать сообщение абоненту A. Если , то пользовательB создает следующее число
и передает его пользователю A. Последний преобразует его в по алгоритму
,
которое, в свою очередь, определяется как . Учитывая, что вектор является быстровозрастающим, на основании алгоритма (11.3) абонентA легко восстановит вектор .
Поскольку , то. Далее
,
следовательно, . Аналогично для:
,
то . Продолжая следовать алгоритму (11.3), получаем. Так что в итоге имеем.
Схем Меркла–Хэллмана в настоящее время считается взломанной, поэтому для реализации криптосистем с открытыми ключами используется алгоритм RSA.