Специальные криптографические протоколы
Доказательство с нулевым разглашением конфиденциальной информации
Антон: "Я знаю пароль для входа в компьютерную сеть Центробанка, рецепт приготовления "Байкала", а также почему Ельцин всегда выглядел так, будто только что проглотил живого лягушонка!"
Борис: "Нет, не знаешь!"
Антон: "Нет, знаю!"
Борис: "Чем докажешь?"
Антон: "Хорошо, я тебе все расскажу".
Антон долго шепчет что-то на ухо Борису.
Борис: "Действительно интересно! Надо сообщить об этом газетчикам!"
Антон: "Е-мое, как же я так лопухнулся…"
К сожалению, в обычных условиях Антон может доказать Борису, что знает какую-либо тайну, единственным способом – рассказав, в чем состоит ее суть. Но тогда Борис автоматически узнает эту тайну и сможет поведать о ней первому встречному. Есть ли у Антона возможность помешать Борису это сделать?
Конечно есть. В первую очередь, Антону не следует доверять свою тайну Борису. Но тогда как Антон сможет убедить Бориса, что действительно входит в число посвященных в эту тайну?
Антону надо воспользоваться протоколом доказательства с нулевым разглашением конфиденциальной информации. С помощью этого протокола Антон окажется в состоянии доказать Борису, что он обладает некой секретной информацией, однако сообщать данную информацию Борису будет совсем необязательно.
Доказательство носит интерактивный характер. Борис задает Антону серию вопросов. Если Антон знает секрет, то ответит правильно на все заданные ему вопросы. Если не знает, вероятность правильного ответа на каждый из вопросов будет невелика. После примерно 10-ти вопросов Борис сможет твердо узнать, обманывает ли его Антон. При этом шансы Бориса извлечь для себя какую-либо полезную информацию о сути самого секрета практически равны нулю.