Криптографические протоколы
исследований. Он может доказать своим коллегам, что нашел решение какой-то
математической проблемы, не раскрывая перед ними сути найденного решения.
Удостоверение личности с нулевым разглашением конфиденциальной
информации
В повседневной жизни людям регулярно приходится удостоверять свою
личность. Обычно они делают это путем предъявления паспортов, водительских
прав, студенческих билетов и других подобных документов. Такой документ
обычно имеет некоторую индивидуальную отличительную особенность, которая
позволяет однозначно связать его с определенным лицом. Чаще всего это
фотография, иногда - подпись, реже - отпечатки пальцев или рентгеновский
снимок зубов. Можно ли делать то же самое с помощью криптографии?
Конечно. В этом случае для удостоверения личности Антона используется
его тайный криптографический ключ. Применяя доказательство с нулевым
разглашением конфиденциальной информации, Антон может продемонстрировать
любому, что знает свой тайный ключ, и тем самым однозначно идентифицировать
себя. Идея цифровой идентификации весьма заманчива и таит в себе массу
разнообразных возможностей, однако у нее есть ряд существенных недостатков.
Во-первых, злоумышленник Зиновий под фальшивым предлогом может
попросить Антона предъявить свое цифровое удостоверение личности.
Одновременно с помощью современных средств связи Зиновий инициализирует
процесс идентификации Антона совсем в другом месте и будет переадресовывать
все запросы из этого места Антону, а данные им ответы - пересылать обратно.
Например, Зиновий может связаться с ювелирным магазином и, выдав себя за
Антона, оплатить из его кармана весьма дорогую покупку.
Во-вторых, Зиновий может запросто обзавестись несколькими тайными
ключами, а следовательно, и заиметь соответствующее число цифровых
удостоверений личности. Одно из них он использует единственный раз для
финансовой аферы и больше им пользоваться не будет. Свидетелем преступления
станет лицо, которому Зиновий предъявит свое "одноразовое" удостоверение
личности, однако доказать, что это был именно Зиновий, не удастся. Ведь
предусмотрительный Зиновий никогда не удостоверял таким образом свою
личность прежде. Не станет он делать этого и впредь. А свидетель сможет
только показать, какое удостоверение личности было предъявлено
преступником. Однозначно связать это удостоверение с личностью Зиновия
будет нельзя.
В-третьих, Антон может попросить Зиновия одолжить на время его
цифровое удостоверение личности. Мол, Антону надо съездить в Соединенные
Штаты, а поскольку он - бывший сотрудник советской разведки, работавший
против США, американское правительство наотрез отказывает ему во въездной
визе. Зиновий с радостью соглашается: после отъезда Антона он может пойти
практически на любое преступление, поскольку обзавелся "железным" алиби. С
другой стороны, ничто не мешает совершить преступление Антону. Кто поверит
лепету Зиновия о том, что он одолжил свое цифровое удостоверение личности
какому-то другому человеку?
Избавиться от перечисленных недостатков помогают дополнительные меры
предосторожности. В первом случае мошенничество стало возможным, поскольку
Зиновий, проверяя цифровое удостоверение личности Антона, мог одновременно
общаться с внешним миром по телефону или радио. Если Зиновия поместить в
экранированную комнату без всяких средств связи, никакого мошенничества не
было бы.
Чтобы исключить вторую форму мошенничества, необходимо ввести
ограничение на количество ключей, которые человеку разрешается
использовать, чтобы удостоверить свою личность (как правило, такой ключ
должен существовать в единственном числе).
И наконец, чтобы не допустить третий вид мошенничества, требуется либо
заставить всех граждан удостоверять свою личность как можно чаще (например,
у каждого фонарного столба, как это делается в тоталитарных государствах),
либо дополнить средства цифровой идентификации другими идентификационными
методами (например, проверкой отпечатков пальцев).
Неосознанная передача информации
Предположим, что Борис безуспешно пытается разложить на простые
множители 700-битовое число. При этом ему известно, что данное число
является произведением семи 100-битовых множителей. На помощь Борису
приходит Антон, который случайно знает один из множителей. Антон предлагает
Борису продать этот множитель за 1000 рублей - по 10 рублей за бит. Однако
у Бориса имеются в наличии лишь 500 рублей. Тогда Антон выражает желание
отдать Борису 50 бит за половину цены. Борис сомневается, поскольку даже
купив эти 50 бит, он все равно не сможет убедиться, что они действительно
являются частью искомого множителя, пока не узнает все его биты целиком.
Чтобы выйти из тупика, Антон и Борис должны воспользоваться протоколом
неосознанной передачи информации. В соответствии с ним Антон передает
Борису несколько шифрованных сообщений. Борис выбирает одно из них и
отсылает все сообщения обратно. Антон расшифровывает выбранное Борисом
сообщение и снова отсылает Борису. При этом Антон остается в неведении
относительно того, какое именно сообщение выбрал для себя Борис.
Протокол неосознанной передачи информации не решает всех проблем,
которые стоят перед Антоном и Борисом, желающими заключить сделку о купле-
продаже одного из множителей 700-битового числа. Чтобы сделка стала
честной, Антон должен будет доказать Борису, что проданные 50 бит
действительно являются частью одного из простых множителей, на которые
раскладывается это число. Поэтому Антону скорее всего придется
дополнительно воспользоваться еще и протоколом доказательства с нулевым
разглашением информации.
Следующий протокол позволяет Антону послать два сообщения, одно из
которых будет принято Борисом, но какое именно, Антон так и не узнает.
1. Антон генерирует две пары ключей, состоящих из открытого и тайного
ключа, и отсылает оба открытых ключа Борису.
2. Борис генерирует ключ для симметричного алгоритма (например, для
DES-алгоритма), шифрует этот ключ при помощи одного из открытых
ключей, присланных Антоном, и отсылает обратно Антону.
3. Антон расшифровывает ключ Бориса с помощью каждого из двух своих
тайных ключей, сгенерированных им на шаге 1, и получает две битовых
последовательности. Одна из них является подлинным ключом для DES-
алгоритма, а другая содержит произвольный набор битов.
4. Антон шифрует два сообщения по DES-алгоритму, используя в качестве
ключей обе битовые последовательности, которые были получены им на
шаге 3, и отсылает результаты шифрования Борису.
5. Борис расшифровывает оба присланных Антоном сообщения на ключе,
сгенерированном на шаге 2, и обретает два открытых текста сообщения,
один из которых представляет собой настоящую тарабарщину, а второй -
содержательное послание.
Теперь у Бориса имеется одно из двух сообщений Антона, однако
последний не может со всей определенностью сказать, какое именно. К
сожалению, если в протоколе не предусмотреть дополнительный
проверочный шаг, у Антона будет возможность смошенничать (например,
зашифровать на шаге 4 два идентичных сообщения). Поэтому необходим еще
один, заключительный шаг протокола:
6. После того как отпала надобность хранить в секрете второе сообщение
(к примеру, у Бориса нашлись еще 500 рублей, чтобы выкупить у Антона
оставшуюся половину множителя), Антон предоставляет Борису свои тайные
ключи, чтобы тот мог убедиться в честности Антона.
Протокол защищен от атаки со стороны Антона, поскольку на шаге 3 Антон
не в состоянии отличить произвольную битовую последовательность от
подлинного ключа DES-алгоритма, сгенерированного Борисом. Протокол также
обеспечивает защиту от атаки со стороны Бориса, так как у того нет тайных
ключей Антона, чтобы определить битовую последовательность, использованную
Антоном в качестве ключа DES-алгоритма для шифрования второго сообщения.
Конечно, протокол неосознанной передачи информации отнюдь не
гарантирует, что Антон не пошлет Борису какие-нибудь бессмысленные послания
(типа "Борис - лох" или "Мяу-мяу") вместо битов одного из семи простых
множителей, на которые раскладывается исходное 700-битовое число. Или что
Борис вообще захочет с ними ознакомиться и примет участие в выполнении
шагов этого протокола.
На практике протокол неосознанной передачи информации используется
довольно редко. Обычно он служит в качестве одного из строительных блоков
для построения других протоколов.
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15