Необходимые сведения:
Затемнение сообщения в "подписи вслепую": наложение на сообщение
случайного вектора
:
Затем сообщение
подписывается
и с подписи затемненного документа вычисляется подпись исходного документа:
. Получается корректная пара
. Подпись вслепую можно реализовать, например, с помощью RSA.
Тайное электронное голосование
Требования к системе:
1) Голосовать может только имеющий право голоса.
2) Никто не может голосовать более одного раза.
3) Никто не может определить, кто конкретно за кого голосовал.
4) Никто не может подменить чей-либо выбор.
5) Любой проголосовавший может проверить, что его голос правильно учтен.
6) Все знают, кто участвовал в голосовании, а кто нет.
Пример протокола, основанный на подписи вслепую:
1) Голосующий генерирует документ, состоящий из его выбора и большого случайного числа.
2) Голосующий выполняет затемнение документа, подписывает затемненный документ своей подписью и отправляет его в избирком.
3) Избирком проверяет подпись отправителя и в случае ее корректности подписывает затемненный документ, добавляя отправителя в список проголосовавших. Так как документ передавался в затемненном виде, избирком на данный момент не имеет информации о выборе голосовавшего.
4) Голосующий снимает затемнение с документа, удаляет свою подпись и анонимно отправляет в избирком документ, состоящий из выбора и случайного числа, подписанный избиркомом.
5) Избирком получает документ, проверяет свою подпись и учитывает голос. Использование подписи вслепую не позволяет идентифицировать голосующего (так как на данном этапе отсутствует подпись голосующего).
6) По окончании голосования полученные документы публикуются в открытом виде, при этом каждый голосовавший, располагая случайным числом, использовавшимся при голосовании, может проверить результат, в то время как данное число не позволяет выполнять идентификацию голосовавших.