Тайное голосование

Материал из Сервис Облачной Демократии
(Различия между версиями)
Перейти к: навигация, поиск
 
(не показаны 2 промежуточные версии 2 участников)
Строка 13: Строка 13:
 
# Список голосов. В данном списке выбор пользователя выводиться парами "одноразовый код" - "выбор". Таким образом, по этим данным пользователь сможет проверить правильно-ли записан его голос.
 
# Список голосов. В данном списке выбор пользователя выводиться парами "одноразовый код" - "выбор". Таким образом, по этим данным пользователь сможет проверить правильно-ли записан его голос.
  
== Вариант реализации в распределенной системе ==
 
  
Прежде всего, предполагается наличие у пользователя следующих вещей:
+
[[Category:gplvote-serverbased]]
# Главного авторизованного ключа
+
# Одноразового НЕ персонализированного ключа (пара открытый/закрытый ключ) для каждого отдельного голосования. До окончания голосования публичный ключ этой пары держится в тайне.
+
 
+
Пользователь голосует формируя два блока данных:
+
# Свой голос в голосовании, зашифрованный одноразовым ключем. Этот блок подписывается обычной персонализированной подписью пользователя.
+
# Свою подпись об участии в голосовании. Формируется обычным персонализированным ключем.
+
 
+
Эти блоки от пользователя должны уходить по разным каналам (для того что-бы получатель не смог их сопоставить и раскрыть тайну голоса в последствии).
+
 
+
Далее эти два блока отправляются по сети от пользователя. Подпись в голосовании отправляется обычным образом - по всем доступным каналам. Дальше по цепочке она распространяется по сети (возможно, со случайной задержкой на узлах).
+
 
+
Голос от проголосовавшего клиента отправляется по всем остальным каналам (по которым НЕ отправлялась подпись). На узлах, которые получат пакет с голосом, запоминается его подпись, голос извлекается в оригинальном виде (зашифрованном), подписывается персональным ключем пользователя данного узла и отправляется далее.
+
 
+
По окончанию голосования все пользователи распространяют через сеть свои публичные ключи, в помощью которых можно расшифровать их голос.
+
 
+
Если обнаруживаются голоса, которые не удалось расшифровать, по цепочке их передачи (при сотрудничестве всех участников цепочки) можно вычислить того, кто не распространил свой ключ. Так-же при обнаружении несоответствия количества подписей в голосовании количеству голосов инициируется процедура раскрытия путей следования ключей и выясняется источник "вброса". Далее возможны какие-то меры воздействия на владельца обнаруженного ключа-нарушителя.
+

Текущая версия на 12:34, 9 марта 2012

Тайное голосование подразумевает под собой то, что по результатам голосования невозможно определить кто конкретно каким образом проголосовал.

Вариант реализации с сервером

В нашей системе тайна голосования, одновременно с возможностью проверки человеком как учелся его голос в результатах, обеспечивается следующим образом.

При голосовании человек придумывает или генерирует с помощью специальной программы, некую строку, по которой он потом сможет идентифицировать свой ответ в результатах голосования (одноразовый идентификатор). Он вводит эту строку в процедуре голосования.

Для того, что-бы пользователю не нужно было запоминать, мы предлагаем самому пользователю зашифровать этот одноразовый идентификатор своим личным ключем и вставить его как часть подписываемого текста. Этот текст будет выполнять функции подписи участника голосования.

Таким образом, в результатах голосования будут выводиться два списка:

  1. Список проголосовавших с их подписями. По этому списку всегда можно проверить кто именно принимал участие в голосовании;
  2. Список голосов. В данном списке выбор пользователя выводиться парами "одноразовый код" - "выбор". Таким образом, по этим данным пользователь сможет проверить правильно-ли записан его голос.
Личные инструменты
Пространства имён
Варианты
Действия
Навигация
Инструменты