Тайное голосование
Админ (обсуждение | вклад) |
Dim (обсуждение | вклад) м (Категория добавлена) |
||
Строка 32: | Строка 32: | ||
Если обнаруживаются голоса, которые не удалось расшифровать, по цепочке их передачи (при сотрудничестве всех участников цепочки) можно вычислить того, кто не распространил свой ключ. Так-же при обнаружении несоответствия количества подписей в голосовании количеству голосов инициируется процедура раскрытия путей следования ключей и выясняется источник "вброса". Далее возможны какие-то меры воздействия на владельца обнаруженного ключа-нарушителя. | Если обнаруживаются голоса, которые не удалось расшифровать, по цепочке их передачи (при сотрудничестве всех участников цепочки) можно вычислить того, кто не распространил свой ключ. Так-же при обнаружении несоответствия количества подписей в голосовании количеству голосов инициируется процедура раскрытия путей следования ключей и выясняется источник "вброса". Далее возможны какие-то меры воздействия на владельца обнаруженного ключа-нарушителя. | ||
+ | |||
+ | [[Category:Описания]] |
Версия 20:53, 10 февраля 2012
Тайное голосование подразумевает под собой то, что по результатам голосования невозможно определить кто конкретно каким образом проголосовал.
Вариант реализации с сервером
В нашей системе тайна голосования, одновременно с возможностью проверки человеком как учелся его голос в результатах, обеспечивается следующим образом.
При голосовании человек придумывает или генерирует с помощью специальной программы, некую строку, по которой он потом сможет идентифицировать свой ответ в результатах голосования (одноразовый идентификатор). Он вводит эту строку в процедуре голосования.
Для того, что-бы пользователю не нужно было запоминать, мы предлагаем самому пользователю зашифровать этот одноразовый идентификатор своим личным ключем и вставить его как часть подписываемого текста. Этот текст будет выполнять функции подписи участника голосования.
Таким образом, в результатах голосования будут выводиться два списка:
- Список проголосовавших с их подписями. По этому списку всегда можно проверить кто именно принимал участие в голосовании;
- Список голосов. В данном списке выбор пользователя выводиться парами "одноразовый код" - "выбор". Таким образом, по этим данным пользователь сможет проверить правильно-ли записан его голос.
Вариант реализации в распределенной системе
Прежде всего, предполагается наличие у пользователя следующих вещей:
- Главного авторизованного ключа
- Одноразового НЕ персонализированного ключа (пара открытый/закрытый ключ) для каждого отдельного голосования. До окончания голосования публичный ключ этой пары держится в тайне.
Пользователь голосует формируя два блока данных:
- Свой голос в голосовании, зашифрованный одноразовым ключем. Этот блок подписывается обычной персонализированной подписью пользователя.
- Свою подпись об участии в голосовании. Формируется обычным персонализированным ключем.
Эти блоки от пользователя должны уходить по разным каналам (для того что-бы получатель не смог их сопоставить и раскрыть тайну голоса в последствии).
Далее эти два блока отправляются по сети от пользователя. Подпись в голосовании отправляется обычным образом - по всем доступным каналам. Дальше по цепочке она распространяется по сети (возможно, со случайной задержкой на узлах).
Голос от проголосовавшего клиента отправляется по всем остальным каналам (по которым НЕ отправлялась подпись). На узлах, которые получат пакет с голосом, запоминается его подпись, голос извлекается в оригинальном виде (зашифрованном), подписывается персональным ключем пользователя данного узла и отправляется далее.
По окончанию голосования все пользователи распространяют через сеть свои публичные ключи, в помощью которых можно расшифровать их голос.
Если обнаруживаются голоса, которые не удалось расшифровать, по цепочке их передачи (при сотрудничестве всех участников цепочки) можно вычислить того, кто не распространил свой ключ. Так-же при обнаружении несоответствия количества подписей в голосовании количеству голосов инициируется процедура раскрытия путей следования ключей и выясняется источник "вброса". Далее возможны какие-то меры воздействия на владельца обнаруженного ключа-нарушителя.