Многоключевая криптография с открытым ключом
В криптографии с открытым ключом используются 2 ключа, один из которых применяется для зашифрования сообщений, а другой — для расшифрования. Вместо этого можно задействовать любое количество ключей. Рассмотрим для примера трехключевую криптосистему с открытым ключом.
Имеется три ключа К А , К Б и К С , которые распределены между участниками процесса обмена сообщениями следующим образом:
Антон К А
Борис К Б
Владимир К В
Георгий К А и К Б
Денис К Б и К В
Евгений К В и К А
Если Антон зашифрует свое сообщение с помощью ключа К А, расшифровать его смогут либо Денис, либо Борис совместно с Владимиром, которые имеют в своем распоряжении К Б и К В . Сообщение, зашифрованное Борисом, сможет прочесть Евгений. Владимир может зашифровать сообщение, которое в состоянии прочесть Георгий. Сообщение, зашифрованное Георгием при помощи ключа К А , смогут прочесть Денис. Если Георгий воспользуется ключом кб, то его сообщение прочитает Евгений, а если применит кб и кб, то с этим сообщением сможет ознакомиться Владимир. Аналогичным образом может .зашифровать свое сообщение Денис, и тогда его прочтут либо Антон, либо Георгий, либо Евгений. Всевозможные сочетания ключей шифрования и расшифрования перечислены в табл. 7.2.
Таблица 7.2. Сочетания ключей шифрования и расшифрования в трехключевой криптосистеме с открытым ключом
Зашифровано с помощью ключей:
Расшифровывается с помощью ключей:
К А
К Б и К В
К Б
К А и К В
К С
К А и К Б
К А и К Б
К В
К А и К В
К Б
К Б и К В
К А
Множественная рассылка шифрованных сообщений
Допустим, что требуется рассылать групповые шифрованные сообщения 100 различным абонентам компьютерной сети связи, причем заранее неизвестно какие конкретно сообщения надо будет послать отдельным группам этих абонентов. В такой ситуации можно выдать каждому абоненту свой ключ и шифровать все сообщения отдельно. В результате придется зашифровать и послан, слишком много сообщений. Можно снабдить каждого абонента ключами. число которых равняется количеству различных групп, составленных из 100 абонентов. Но тогда потребуется слишком много ключей (порядка 2 100 ) .
Выход из положения позволяет найти многоключевая криптография с открытым ключом. Предположим, что в компьютерной сети связи имеются всего 3 абонента — Антон, Борис и Владимир. Каждый из них получит по 2 ключа: Антон — К А и К Б , Борис — К Б и К В , Владимир — К А и К В . Тогда если потребуется послать сообщение для Антона, его надо зашифровать с помощью К С . Сообщение, предназначенное Борису, следует зашифровать при помощи К А . А если сообщение должен прочесть только Владимир, необходимо использовать К Б . Сообщение для Антона и Бориса шифруется на ключах К А и К В , для Антона и Владимира — на К Б и К В , для Бориса и Владимира — на К А и К Б .
В случае трех абонентов эта схема множественной рассылки сообщений группам абонентов выглядит не слишком впечатляюще, но при 100 абонентах ее преимущества становятся очевидны. Вместо порядка 2 100 ключей абонентам сети надо раздать всего 100 ключей, и посылать требуется всего одно шифрованное сообщение, а не n , где n — количество абонентов в группе ( n >1).
Недостаток рассмотренной схемы — необходимо точно указывать имена абонентов, которым предназначено рассылаемое сообщение, чтобы не заставлять всех остальных абонентов сети связи лихорадочно перебирать имеющиеся у них ключи в поисках того, который позволит им правильно прочесть принятое шифрованное сообщение. Не нужно доказывать, что при определенных условиях раскрытие этих имен перед злоумышленниками может быть весьма нежелательным.