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