Проект "Свободные голосования"
http://gplvote.andyhost.ru/forum/

тайное голосование
http://gplvote.andyhost.ru/forum/viewtopic.php?f=20&t=290
Страница 1 из 1

Автор:  yurial [ 03 дек 2011, 01:26 ]
Заголовок сообщения:  тайное голосование

Тайное голосование - голосование в котором невозможно определить выбор голосующего.

Алгоритм состоит из 4х частей:
1) Инициирование голосования;
2) Голосование;
3) Синхронизация;
4) Подведение итогов.

Автор:  yurial [ 03 дек 2011, 01:26 ]
Заголовок сообщения:  Re: тайное голосование

Инициирование голосования:
1) Инициатор задает параметры голосования.
2) Распространяет их по сети;

TODO: описать параметры.

Автор:  yurial [ 03 дек 2011, 01:38 ]
Заголовок сообщения:  Re: тайное голосование

Голосование:

1) Голосующие генерируют у себя пару ключей для участия в данном голосовании (vote_key), ключи не содержат никакой информации о голосующем;
2) Генерируют пакет "голоса", шифруют используя vote_key.private;
3) Генерируют пакет "участия", который подтверждает, что этот пользователь принял участие в голосовании, подписывают его master_key.private;
4) Распространяют их разными путями. При распространении пакеты подписываются используя transport_key.private так же включается временная отметка (transport_sign).
5) Принимающий пакеты (2) или (3) сохраняет в БД transport_sign (4).
6) Проверяет по транспортной подписи отправителя, что он входит в субъект, иначе игнорирует этот пакет с данными.
7) Если он является членом этого субъекта, удаляет из пакета (2) транспортную подпись отправителя (transport_sign), и создает свою, иначе оставляет пакет данных без изменений.
8) Передает получившиеся данные дальше.

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

Автор:  yurial [ 03 дек 2011, 01:41 ]
Заголовок сообщения:  Re: тайное голосование

Синхронизация (автоматический режим):

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

Пояснение:
В первоначальном варианте все "голоса" и "участия" должны получить все "голосующие". На это будет даваться фиксированное время. В более поздних версиях будет разработан более надежный механизм.

Автор:  yurial [ 03 дек 2011, 01:53 ]
Заголовок сообщения:  Re: тайное голосование

Подведение итогов (автоматический режим):

Голосование предусматривает 2 варианта итогов:
a) Голосование состоялось;
b) Голосование не состоялось.

Если количество "голосов" соответствует количеству "участий" голосование считается состоявшимся иначе НЕ состоявшимся.

(a) Если голосование состоялось:
1) Все голосующие распространяют vote_key.public;
2) Все расшифровывают с помощью vote_key.public зашифрованные голоса;
3) Суммируют расшифрованные голоса - получают результат.

(b) Если голосование не состоялось:
1) Распространяют vote_key.id (таким образом открывается владелец ключа);
2) Синхронизируют vote_key.id.
3) Для "голосов" для которых не известен владелец vote_key распространяется transport_sign.
4) Выстраивается цепочка прохождения "голоса", вычисляется первоисточник.
5) Все собираются и запинывают его ногами / Вносят в черный список.

Страница 1 из 1 Часовой пояс: UTC + 3 часа [ Летнее время ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/