Одним из способов протеста является подача и коллективное подписание разного рода петиций. Но поскольку список подписавших петицию открыт, нередко возникают ситуации, когда несогласные с «курсом партии» подвергаются угрозам и репрессиям со стороны администрации.
А можно ли сделать систему, позволяющую осуществить анонимный сбор подписей, но в то же время дающую возможность верифицировать каждый голос? Предлагаю вашему вниманию свое решение данной задачи.
Постановка задачи
Имеется ограниченный круг лиц, например, студенты института, сотрудники организации или граждане страны. Часть из них подписывают некоторое сообщение (петицию, коллективное обращение и т.п.). Предлагаемый алгоритм подписания обладает следующими свойствами:
- Есть возможность удостовериться, что каждый подписант принадлежит к указанному кругу лиц.
- Есть возможность проверить, что большинство подписей принадлежат разным лицам.
- Нет возможности определить, кому именно принадлежит та или иная подпись.
- Нет возможности определить, оставляло ли данное конкретное лицо свою подпись или нет.
- Любой подписант может по своему желанию поставить вместо анонимной подписи персонализованную.
- Любой анонимный подписант может впоследствии по своему желанию предоставить доказательства того, что именно он поставил подпись.
Система основана на асимметричной криптографии, алгоритмах цифровой подписи и сертификации ключей.
Читать полностью »