CrEl

written on Tuesday, July 31, 2012

Техническое описание механизма электронных выборов, основанных на стойкой криптографии.

Предпосылки для написания

Существующий механизм бумажных выборов имеет ряд фундаментальных проблем:

  • дороговизна - на процедуру тратится 1.5 миллиарда грвень бюджетных денег,
  • не гарантирует, что один человек проголосует только один раз,
  • не позволяет проконтролировать подсчет голосов,
  • не позволяет проверить данные подсчета, присланные из УИК или ТИК,
  • не дает избирателю возможности проверить, был ли учтен его голос,
  • не позволяет отозвать свой голос,
  • привязанность к месту прописки, трудность голосования за границей,
  • привязанность к конкретной дате,
  • централизированость - данные публикуются центральной избрательной комиссией и все могут только верить ей.

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

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

Дороговизна выборов превращает их из рутинного механизма в большое событие, политическое шоу,происходящее очень редко.

Привязка к конкретной дате и месту не позволяет проголосовать заранее, проголосовать, будучи за границей, в коммандировке, на отдыхе итд.

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

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

Криптографическая система

Указанные выше недостатки можно решить, если изменить принцип, с помощью которого избиратели подают свои голоса в поддержку определенной политической силы.

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

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

В отличии от нее, криптографическая система не имеет бланков, поэтому ее стойкость заключается в

  • стойкость алгоритма шифрования, на который она опирается
  • сохранности приватной части электронной подписи
  • контроле над центром сертификации, выдающем и удостоверяющем подписи.

Механизм работы

Первый этап в построении системы выборов, основанных на стойкой криптографии, состоит в выдаче избирателям индивидуальных электронных подписей.

Процедура получения электронной подписи должна происходить следующим образом:

  • гражданин генерирует пару из двух ключей (приватный и публичный)

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

    сертификат, использующийся для выборов, не должен содержать личные данные гражданина для обеспечения тайного голосования.

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

    для удобства данная процедура может быть совмещена с процедурой получения паспорта

  • для участия в голосвании, гражданину достаточно сформировать сообщение, содержащее в себе

    • код, имя или название кандидата
    • дату и время
    • случайное число
    • публичный сертификат избирателя
    • контрольную сумму от сертификата

    после чего подсчитать контрольную сумму этого сообщения и зашифровать своим приватным ключем, образовав подпись

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

  • все опубликованные сообшения перенаправляются в центральную избирательную коммисиию для подсчета итоговой суммы голосов и могут быть опубликованы для альтернативного подсчета с целью исключения фальсификаци.

Механизм проверки

Для проверки суммы подсчитанных голосов, нужно иметь в открытом доступе все отправленные гражданами сообщения и публичные ключи центра сертификации.

Процедура проверки каждого сообщения:

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

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

Последствия и возможные эффекты

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

Вместо этого, необходимо будет создать центры сертификации, выдающие избирательные сертификаты.

Поскольку государство не печатает биллютени, граждане могут самостоятельно начать отправку голосов в любой момент и используя любой набор политических партий, а применительно к референдуму - любой набор интересующих вопросов, включая принятие или отмену законов.

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

Проблемы и уязвимости процедуры

Описанный выше комплекс процедур никак не описывает механизмов ответственности, которые должны быть применены к центрам сертификации. Без этих механизмов центры сертификации могут создавать сертификаты без ведома граждан или для несуществующих граждан.

При условии, что все граждане примут участие в голосовании и проверят, был ли учтен их голос, сумма голосов будет больше населения страны, но отделить фиктивные голоса от настоящих будет невозможно.

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

Имея доступ к чужому сертификату, можно узнать, за кого проголосовал этот человек.

Upd

Опаньки, я не один такой умный: http://habrahabr.ru/post/156423/

This entry was tagged cryptofreak and politics