Dim писал(а):
IgorK писал(а):
Кстати, из текста ниже следует, что д.б. т.н. "сертификаты" голосующих и нод, в которых присутствует дополнительная информация о владельце ключа - ID по крайней мере.
Хорошо бы расписать поподробнее. Как вариант это могут быть составные сертификаты. Отдельные для персоны, права участия в субъекте, (возможно) участия в голосовании, принадлежности ноды, доверия ноде.
1. Насколько я понял ранее из общения (м.б. ошибаюсь, в любом случае не слышал другое), ключи в вашей системе "голые". Термин же "сертификат" подразумевает "публичный ключ" + сведения о владельце.
В любом случае в предложенных мной вариантах работы СГ у голосующего и у программной точки голосования (узла, ноды - неважно как назвать) должны быть атрибуты (записанные в явном виде в сертификаты и легко оттуда извлекаемые, например). У голосующего - его идентификатор (или атрибуты в другом виде - неважно), однозначно "приписывающий" его к определенной группе голосующих. Примеры групп: мужщина/женщина или УИК_NNN.ТИК_MM.ОИК_ОО.ЦИК. Точку голосования определяем в группу нод по уникальному ID вида NNN.MMM.OOO.PPP.RRR. Другая информация из сертификата в этом описании не используется.
Исходя из написанного, поясняю фразы из описания
1. ... Человек голосует на ноде ...
понятно, я думаю. Хорошо, не на ноде а в своей "точке голосования".
2. ... голос вместе с ID группы голосующего и ID ноды подписывается ключом ноды....
голос - написанный в тексте ответ на вопрос голосования. Например, "да" или "нет".
ID группы голосующего извлекается из атрибутов голосующего (из сертификата). Например, в виде 1234.4345.54.565.44, где цифры обозначают соответственно номера УИК, ..., ЦИК, в системе которых голосует этот человек.
Получился текст: да 1234.4345.54.565.44
Далее добавляем ID точки голосования (например, 43.777.437.587.32).
Получился текст - итог:
да 1234.4345.54.565.44 43.777.437.587.32
Этот тект подписывается ключом точки голосования. Получится, например, так (упрощаю подпись):
да 1234.4345.54.565.44 43.777.437.587.32
begin pgp
валпдвалплавыждавыжэаждвыоавыоалдвыоа
end pgp
В итоге
... Получился пакет, в котором указано кто голосовал (т.е. принадлежность к группе), как и на какой ноде голосовал. Отправляем этот пакет в сеть. ...
Тут "на какой ноде голосовал" не указано, но по цифровой подписи это можно вычислить при необходимости.
Я, конечно же, привел пример в текстовом виде. В реальности часть этих данных может быть в двоичной форме.
Dim писал(а):
IgorK писал(а):
Человек голосует на ноде, результат
шифруется ключом ноды .
Мне кажется лучше если подписанный голос передаётся в открытом виде демону на собственную или доверенную ноду. Вне зависимости от типа голосования. Дело в том, что подразумевается несколько автоматических действий и не кошерно запрашивать каждый раз у пользователя подпись. В часности при обнаружении вброса голосов в тайном голосовании инициируется переголосование. Злоумышленник может просто "задолбать" вбросами обычных голосующих. Это несколько усложнит систему, но сделает её проще в использовании.
"результат шифруется ключом ноды"
Софт сам шифрует. Разве требуется участие человека в этом? Или я чего-то недопонимаю? Остальное из фразы давайте пока оставим на "потом".
Вообще, я не дока в криптографии. Когда-то активно использовал PGP в электронной почте, потом, было время, возился с Windows - сетрификатами. Может я чего неправильно написал в принципе в этом отношении?
Но основная задача текста была уйти от вашей идеи (условно) "кидать в сеть ключи" для чего-то там. Ну и вообще закрепить хоть какой-то вариант на бумаге.