Андрей писал(а):
3. Запись расшифровывается ключем пользователя, но пользователь утверждает что он голосовал не так как записано в данной записи;
Т.е. в этом случае мы верим пользователю, отменяем результат его голосования и что? Делаем ему новый ключ? А как мы проверим что он не пользуется старым если оба эти ключа закрыты?
Это проблемы пользователя. Если он хочет, чтобы его голос всегда меняли, то он оставит старый ключ. Мы же в данном случае считаем, что голос именно тот, который указан.
Андрей писал(а):
2. В той-же ситуации пользователь просто вообще не принимал участие в голосовании. Его ключем не расшифровывается ни одна запись и на основании этого делается вывод тот-же что и в п.1;
Вот ответ:
Андрей писал(а):
Хорошо. Пусть так. Добавим в вашу систему второй список - "список голосующих" с подписями голосующих. Но остаются вышеприведенные вопросы.
Андрей писал(а):
1. Использовать "левый" ключ и показать что ни одна из записей голосования им не расшифровывается. Из этого делается вывод что его голос учли по другому и зашифровали другим ключем;
Я согласен с этим аргументом. Надо подумать еще.
Андрей писал(а):
1. Шанс подделки голосований снаружи системы;
2. Шанс подделки голосований изнутри системы;
3. Шанс открытия данных о тайном голосовании снаружи системы;
4. Шанс открытия данных о тайном голосовании изнутри системы;
Свой вариант я считаю не идеальным, но пока самым надежным по совокупности критериев. Ваш в эту систему даже пока не вписывается, т.к. по некоторым пунктом он просто вообще не обеспечивает никакой защиты.
При условии, что ваша схема - это не тайное, а открытое голосование, то она лучше. С этим я соглашусь. Моя схема тоже не идеальна.