Применение односторонней функции в криптографии позволяет:
1) организовать обмен шифрованными сообщениями с использованием только открытых каналов связи, т.е. отказаться от секретных каналов связи для предварительного обмена ключами;
2) включить в задачу вскрытия шифра трудную математическую задачу и тем самым повысить обоснованность стойкости шифра;
3) решать новые криптографические задачи, отличные от шифрования (цифровая подпись и др.).
Прежде чем разбирать конкретные примеры, опишем идею Диффи и Хеллмэна в общем виде.
Пользователь A, который хочет получать шифрованные сообщения, должен сначала выбрать какую‑нибудь одностороннюю функцию F K с секретом K. Он сообщает всем заинтересованным (например, публикует) описание функции F K в качестве своего алгоритма шифрования. Но при этом значение секрета K он никому не сообщает и держит в секрете. Если теперь пользователь B хочет послать A защищаемую информацию x ∈ X, то он вычисляет F K (x) и посылает по открытому каналу к A. Поскольку A для своего секрета K умеет инвертировать F K, то он вычисляет x по полученному F K (x). Никто другой не знает K и поэтому в силу свойства б) односторонней функции с секретом не сможет за полиномиальное время по известному шифрованному сообщению F K (x) вычислить защищаемую информацию x.
|
|
Таким образом, построена система передачи защищаемой информации, причем выполнены два новых свойства:
1) для передачи сообщений не требуется предварительный обмен ключами по секретному каналу связи;
2) стойкость шифра зависит от сложности решения трудной математической задачи инвертирования односторонней функции с секретом.
Описанную систему называют криптосистемой с открытым ключом, поскольку алгоритм шифрования F K является общедоступным или открытым. В последнее время такие криптосистемы еще называют асимметричными, поскольку в них есть асимметрия в алгоритмах: алгоритмы шифрования и дешифрования различны. В отличие от таких систем традиционные шифры называют симметричными: в них ключ для шифрования и дешифрования один и тот же, и именно поэтому его нужно хранить в секрете. Для асимметричных систем алгоритм шифрования общеизвестен, но восстановить по нему алгоритм дешифрования за полиномиальное время невозможно.
Описанную выше идею Диффи и Хеллмэн предложили использовать также для цифровой подписи сообщений, которую невозможно подделать за полиномиальное время. Пусть пользователю A необходимо подписать сообщение x. Он, зная секрет K, находит такое y, что F K (y) = x, и посылает y пользователю B в качестве своей цифровой подписи. Пользователь B хранит y в качестве доказательства того, что A подписал сообщение x. Это доказательство неопровержимо, поскольку никто другой в силу свойства б) односторонней функции с секретом не сможет за полиномиальное время по известному сообщению x = F K (y) подделать цифровую подпись y.
|
|
В дальнейшем на основе аналогичных рассуждений был предложен еще целый ряд так называемых криптографических протоколов. Эти протоколы позволили решить много новых задач взаимодействия удаленных пользователей по техническим каналам связи в условиях различных угроз (подробнее об этом см. этюд 3.8).