В современной криптографии заумные и красивые названия различных терминов и понятий являются нормой. Очень часто эти названия берут из названий музыкальных групп или других известных деятелей, отличающихся новизной и резкостью. Тоже можно сказать и про термин нулевое разглашение или zero knowledge.
Поэтому некоторые люди начинают использовать этот термин в связке с системами безопасности и анонимными сетями, подразумевая повышенную безопасность, что не совсем корректно. Следовательно, стоит более детально изучить этот термин, чтобы не злоупотреблять им и не использовать его там где это не уместно просто для красоты слова.
Доказательство с нулевым разглашением или в английском варианте zero knowledge proof это один из мощнейших инструментов в сфере криптографии, который когда либо был разработан. На данный момент этот инструмент не так сильно изучен и описан, как кажется. Чем же на самом деле отличается механизм zero knowledge, если не брать во внимание математические составляющие? Сразу стоит обратить внимание на различные его протоколы в этом случае и изучить вопрос более детально.
Это понятие впервые было озвучено чуть менее сорока лет назад сотрудниками MIT. Это были Шафи Голдвассер, Силвио Микали и Чарльз Ракоф. На тот момент они были заняты в разработке решений, которые относились к интерактивной системе доказательств. Тогда это были теоретические системы, в которых пользователь Prover или Испытатель передаёт сообщения второму пользователю Verifier или Контролёру с целью убеждения последнего в верности его математических утверждений, которые он ему передал в процессе работы.
До начала работ над нулевым разглашением разработки в этой сфере были направлены на доказательство верности. Или на вариантах, когда пользователь Prover пытается обмануть Verifier и подсовывает ему не верное значение. Разработчики во главе с Голдвассером решили обойти этот вопрос абсолютно с другой стороны. Вместо всевозможных проверок Prover они предположили, что Verifier тоже может не иметь доверия.
По простому они задались вопросом утечки информации от пользователя Verifier. А именно, их интересовал вопрос о том, сколько же избыточной информации попадёт к Verifier, чтобы доказать ему, что математическое утверждение, полученное от пользователя Prover, верно. Тогда это были не простые теоретические размышления. Существовали приложения, в которых тогда этот вопрос стоял очень остро, да и сейчас они есть.
Подобный вариант можно рассмотреть на простом примере. Есть пользователь, который желает зайти на какой то онлайн ресурс с помощью своего пароля. При обычном подходе хеш пароля хранится на сервере ресурса. А вот сам логин пользователя выступает в качестве подтверждения запуска хеширующего механизма именно для этого пароля. К тому же, он подтверждает то, что пользователь в действительности владеет верным паролем.
В реальности этот механизм реализован весьма примитивным способом. Пользователь просто отправляет свой пароль на онлайн ресурс. Ресурс в свою очередь ещё раз вычисляет хеш пароля и проводит сравнение с уже имеющимся хешем из своей базы. Из этого следует, что система получает пароль в чистом виде изначально, а это очень интересует хакеров. И в таком случае остаётся только надежда на защиту самого сервера.
Предложение же команды Голдвассера послужило толчком для появления абсолютно других методов подтверждения. С использованием нулевого разглашения описанная выше задача сможет быть решена полностью. К тому же, не один бит не будет разглашён, а утверждение можно будет проверить на истинность абсолютно другим методом.