Односторонняя функция с лазейкой
CHe_Love_VekВесьма интересна для рассмотрения схема шифрования, при которой используется "лазейка", то есть та труднодоступная информация ( y ), при помощи которой мы сможем восстановить исходное сообщение ( x ).
Шифровать будем при помощи довольно неожиданного предмета - телефонного справочника. Он является достаточно хорошим примером односторонней функции : Зная имя абонента, мы легко сможем найти его номер, но зная лишь номер, очень сложно найти владеющего им человека из - за огромного массива чисел, который нам придётся проверить в попытках найти нужное имя.
Как же им зашифровать сообщение ? Для каждой буквы сообщения подбираем имя, начинающееся на эту же букву. Номер этого абонента ставится в соответствие шифруемой нами букве. Например, слово "ХЛЕБ" будет зашифровано следующим образом :
Х - Хорошавин - 2433572
Л - Лущенков - 7756489
Е - Епифанов - 2649273
Б - Борисов - 8815445
И составляем номера в цепочку :
"ХЛЕБ" - 2433572 7756489 2649273 8815445.
Вот и всё. Плюсом такого метода является то, что одно и то же сообщение можно зашифровать огромным множеством комбинаций чисел, поскольку абонентов, чьё имя начинается с одинаковой буквы, очень и очень много.
Чтобы расшифровать текст, необходимо иметь справочник, составленный согласно возрастанию номеров. Этот справочник и является лазейкой, известной только получателю, без него расшифровать сообщение почти невозможно.
Очевидно, схема обмена сообщениями здесь такая же, как и в общем случае. Боб может создать два справочника, отправив один из них ( открытый ключ ) Алисе. Алиса шифрует им сообщение и отправляет его Бобу, где он расшифровывает его с помощью второго справочника ( закрытый ключ ).
============
============