Электронное голосование

Jun 11, 2014 17:36

Голосование может быть открытым или тайным.


При открытом голосовании волеизъявление участников не скрывается. Современные политологи в один голос заявляют, что открытое голосование страдает серьёзным недостатком - заинтересованные лица могут оказать давление на голосующего. Но, позвольте, откуда такой недостаток? Раз уж общество согласилось провести голосование, следовательно, восторжествовали демократия, терпимость и полное доверие друг к другу. Никто ни на кого не должен оказывать давление. Так за открытое голосование ратовал Робеспьер:

«Гласность - опора добродетели, охрана правды, гроза преступления, бич для интриги. Предоставьте преступникам и рабам пользоваться мраком и тайным голосованием. Свободные люди хотят, чтобы народ был свидетелем выражаемых ими мыслей. Такой метод способствует образованию граждан и республиканских добродетелей. Такой метод подходит народу, недавно завоевавшему свою свободу и ведущему борьбу в ее защиту. Когда этот метод перестаёт нравиться народу, то нет больше республики».
О конституции. Речь в Конвенте 10 мая 1793 г.
(Максимилиан Робеспьер. Избранные произведения в 3-х томах. Том 2. Наука, 1965. Стр. 348)

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

Практика современного голосования очередной раз доказывает, что политическая свобода не может быть полной в условиях отсутствия финансовой свободы. Опираясь на речь Робеспьера, попутно можно сделать ещё один вывод. Буржуазных революций не бывает. Нидерландская, Английская, Американская, Великая французская - все эти революции, обычно считавшиеся буржуазными, осуществлялись с целью обеспечить широким слоям народа всеобъемлющую свободу, но вместо полного освобождения они смогли дать лишь незначительную политическую свободу. По объективным причинам, независимым от желания революционеров, в обществе неизбежно возникало слияние денег и власти, и народ попадал в финансовую кабалу к богачам.

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

Процедура тайного голосования на порядок сложнее открытого. Для проведения тайного голосования необходимы оборудованные избирательные участки, специальные кабинки для заполнения бюллетеней, урны для голосования, наблюдатели от различных политических сил, контролируемые комиссии для подсчёта. Тем не менее, мамона (власть денег) уже находит лазейки: «Ах, у вас тайна голосования? Ах, у вас нет поимённого перечня всех проголосовавших? Следовательно, результаты выборов были фальсифицированы!» Мизерная и, вероятнее всего, подкупленная часть общества выходит на улицы и свергает избранных лидеров.

В этой статье мы опишем процедуру тайного электронного голосования, которая может быть полезна в борьбе с химерой сросшихся денег и власти.Формулируем техническое задание
  • Тайна волеизъявления. Никто не может соотнести конкретный голос с конкретным избирателем.
  • Возможность личной проверки. Каждый избиратель может проверить свой голос.
  • Правдивость подсчёта результатов. Все неиспорченные бюллетени доводятся до общего сведения, так что любой желающий может пересчитать итоговые результаты.
Помимо технических средств, государством должна быть обеспечена правовая база.
  • Во-первых, касательно электронной цифровой подписи. Попытка поставить подпись от чужого имени (попытка воспользоваться закрытым ключом другого лица - о закрытом ключе см. ниже) должна приравниваться к подделке документов, мошенничеству, подлогу, т.е. расцениваться как преступление.
  • Во-вторых, обязательно должны проводиться следственные действия и судебное разбирательство при превышении числа проголосовавших над числом участвующих, поскольку в системе электронного голосования эти данные являются объективным.
  • В-третьих, даже единичные нарушения, зафиксированные личной проверкой (см. выше техническое задание), тоже должны расследоваться.
Варианты тайного электронного голосования неоднократно обсуждались среди специалистов по вычислительной технике, например, тут и тут.

Для непрофессионалов сначала объясним принцип работы (асимметричной) электронной подписи.
  1. Компьютер формирует случайную последовательность цифр - закрытый ключ. Закрытый ключ должен храниться только у подписывающего лица. Доступ посторонних к закрытому ключу называется компрометацией ключа. В случае компрометации, закрытый ключ необходимо сгенерировать заново.
  2. На основании закрытого ключа компьютер вычисляет открытый ключ. Отметим, что обратный процесс - подобрать закрытый ключ по открытому - невозможен.
  3. Открытый ключ свободно раздаётся всем, кому необходима проверка подлинности подписи.
  4. Для заданного документа c помощью закрытого ключа вычисляется подпись. Отметим, что без обладания закрытым ключом, практически невозможно создать корректную подпись.
  5. Подлинность подписи определяется с помощью открытого ключа.
Также вкратце объясним принцип работы цифровой подписи вслепую.
Представим две стороны:
Одна сторона обращается за подписью - «Запрашивающий»;
Другая сторона уполномочена подписывать - «Подписывающий».
  1. Запрашивающий шифрует документ специальной затемняющей функцией и получает шифровку.
  2. Запрашивающий посылает шифровку Подписывающему.
  3. Подписывающий подписывает шифровку.
  4. Подписывающий возвращает подписанную шифровку Запрашивающему.
  5. Запрашивающий, применяя обратную функцию, выделяет из шифровки исходный документ с корректной подписью.
Подписывающий ничего не может узнать ни о содержании подписанного документа, ни о выделенной корректной подписи к нему. Такая подпись подобна запечатанному конверту, в котором находятся документ и копировальный лист. Если подписать конверт, то через копирку подпись отпечатается на документе. При вскрытии конверта документ будет уже подписан.
Участники
Избиратель - лицо, имеющее право голоса.
Валидатор - агент, удостоверяющий личность Избирателя.
Аппаратный Модуль Безопасности (HSM) - компьютер, подписывающий бюллетени.
Счётчик - агент, вносящий голоса в ведомость.
Наблюдатели - множество агентов, следящих за Валидатором и Модулем Безопасности.

Мнемоническое обозначение цифровых данных показано в квадратных скобках на сером фоне: [Цифровые данные]
Задолго до голосования
Избиратель на своём компьютере генерирует пару ключей для электронной подписи - закрытый и открытый. Избиратель должен каким-либо способом передать свой открытый ключ Валидатору.
Возможные варианты передачи открытого ключа:
  • Избиратель лично посещает государственную «контору», где предъявляет свой паспорт, и работник «конторы» копирует открытый ключ с USB-флешки Избирателя.
  • Избиратель через защищённый канал (TLS/SSL) устанавливает сеанс связи с сервером государственной «конторы», указывая учётные данные (имя/пароль), имя, отчество, фамилию, дату рождения, номер паспорта, а затем загружает свой открытый ключ.
  • Избиратель через защищённый канал (TLS/SSL) устанавливает сеанс связи с сервером, проходит надёжную биометрическую проверку, например, USB-сканер радужной оболочки глаза, а затем загружает свой открытый ключ.
Избиратель может проверить свою эл. подпись, отправив сообщение в формате [имя отчество фамилия + дата рождения + любые данные + эл. подпись] на специальный тестовый адрес Валидатора. Результаты проверки эл. подписи публикуются в списке №1 (см. ниже). Если проверка терпит неудачу или если закрытый ключ скомпрометирован, то Избиратель должен заново сгенерировать пару ключей и передать Валидатору открытый ключ.

Валидатор обновляет базу данных избирателей и публикует два списка:

Список №1 для проверки электронной подписи Избирателя

имя отчество фамилиядата и время проверки
Михаил Иванович Пронин2014-01-09 16:50:18
Семён Семёнович Горбунков2012-10-29 17:45:15
Надежда Ивановна Горбункова2012-10-29 17:47:10
Геннадий Петрович Козодоев2013-09-19 10:50:17
Варвара Сергеевна Плющ2010-12-30 19:05:04
Всего: 5 человек.

Список №2 для того, чтобы любой человек мог убедиться в отсутствии «потёмкинских деревень»

адресчисло зарегистрированных Избирателей
г.Сочи, ул.Морская 21, кв.92
г.Сочи, ул.Артёма 18, кв.51
г.Сочи, ул.Фрунзе 15, кв.81
г.Сочи, ул.Морская 21, кв.41
Всего: 5 человек.

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

На государственных сайтах публикуются варианты бюллетеней, например, на различных языках.
Это могут быть заполняемые электронные бланки, или, в случае референдума, готовые варианты.
Избиратель может заранее скачать бланк бюллетеня с государственного сайта.
Непосредственно перед началом голосования
Валидатор прекращает обновление базы данных избирателей.
Наблюдатели и все желающие сохраняют копии списков №1 и  №2 на своих носителях.
Тем самым гарантируется неизменность этих списков за период голосования.

Генерируется пара ключей (закрытый и открытый) для электронной подписи Валидатора.
Открытый ключ Валидатора публикуется.
ВНИМАНИЕ Хранение в тайне закрытого ключа Валидатора - задача государственной важности.
Чтобы исключить компрометацию закрытого ключа следует использовать Аппаратный Модуль Безопасности (HSM). Аппаратный Модуль Безопасности представляет собой отдельный сервер, который должен находиться под пристальным наблюдением. Работа такого Модуля Безопасности заключается только в том, чтобы подписывать присылаемые ему файлы.
Тайну закрытого ключа должны гарантировать не только обслуживающий персонал, но и наблюдатели. Наблюдателям предоставляется возможность установки камер видеонаблюдения, ответвителей на оптоволоконных линиях, устройств радиоперехвата и т.п. Через оптоволоконные ответвители наблюдатели могут записать весь траффик Валидатора и Аппаратного Модуля Безопасности за период голосования. Такая запись позволяет анализировать ход голосования.

Генерируется пара ключей (закрытый и открытый) для электронной подписи Счётчика.
Открытый ключ Счётчика публикуется.
Сохранение в тайне закрытого ключа Счётчика в интересах обслуживающего персонала.
Компрометация закрытого ключа Счётчика обнаруживается после голосования по предъявлению «неучтённых» квитанций (расписок в получении голосов) и чревата судебным преследованием лиц ответственных работу Счётчика.

При подсчёте голосов Счётчик будет вносить квитанции (расписки в получении голосов) в список №3. До окончания голосования список №3 не публикуется, чтобы преждевременные результаты не влияли на выбор тех, кто голосует позже.
Публикуемый после голосования список №3 представляет собой совокупность всех квитанций:
[Сл.число1 + ГолосX, подписанные Валидатором + подпись Счётчика]
[Сл.число2 + ГолосX, подписанные Валидатором + подпись Счётчика]
[Сл.число3 + ГолосY, подписанные Валидатором + подпись Счётчика]
[Сл.число4 + ГолосX, подписанные Валидатором + подпись Счётчика]
[Сл.число5 + ГолосY, подписанные Валидатором + подпись Счётчика]
Как создаются квитанции описано ниже - в процедуре голосования.
Процедура голосования


1. Избиратель скачивает бланк бюллетеня (если он не сделал это прежде).
Избиратель заполняет на компьютере (или другом электронном устройстве) скачанный бюллетень, и тем самым в цифровом виде получает [Голос].
ВНИМАНИЕ Если вместо официального бланка Избиратель использует какой-то другой файл, то бюллетень будет считаться испорченным. Испорченный бюллетень будет обнаружен Счётчиком, и голос Избирателя, использовавшего негодный файл, учтён не будет.

2. Компьютер Избирателя генерирует случайное число [Сл.число]. Случайное число следует генерировать только во время голосования. Компьютерная программа должна исключать возможность внести случайное число «вручную» по двум причинам.
  • Первая причина. Если «случайное» число придумывает человек, то существует вероятность того, что точно такое же число придумает кто-то другой, а это может привести к недоучёту голоса (так как квитанции двух разных людей будут абсолютно идентичны).
  • Вторая причина. Постороннее лицо, желающее оказать давление на избирателя, например, хозяин предприятия, может заранее выдать случайные числа Избирателям и обязать их голосовать с указанными случайными числами. Хозяин может угрожать подвергнуть санкциям тех работников случайные числа которых он не найдёт в списке №3 или тех, кто проголосовал «неправильно».
3. Компьютер Избирателя шифрует пару [Сл.число + Голос], умножением на случайный маскирующий множитель и тем самым получает [Шифровку]. Компьютер Избирателя дополняет полученную [Шифровку] необходимыми личными данными и, используя закрытый ключ Избирателя, подписывает весь пакет:
[Шифровка + имя, отчество, фамилия, дата рождения + подпись Избирателя]

4. Компьютер Избирателя открывает сеанс связи с сервером Валидатора и передаёт Валидатору пакет.
[Шифровка + имя, отчество, фамилия, дата рождения + подпись Избирателя]

5. Валидатор, пользуясь открытым ключом Избирателя, проверяет подлинность подписи Избирателя.
По размеру [Шифровки] Валидатор приблизительно оценивает корректность бюллетеня. Слишком маленький или слишком большой размер указывают на испорченный бюллетень.
Валидатор проверяет, отмечен ли данный Избиратель, как уже принявший участие голосовании. Если Избиратель еще не участвовал, то Валидатор, пропуская [Шифровку] через Аппаратный Модуль Безопасности, подписывает её.
Валидатор отмечает данного Избирателя в качестве уже принявшего участие в голосовании и инкрементирует публичный счётчик участвующих в голосовании.

6. Валидатор отправляет компьютеру Избирателя [Шифровку, подписанную Валидатором]. На этом сеанс связи между Избирателем и Валидатором окончен.

7. Компьютер Избирателя расшифровывает [Шифровку, подписанную Валидатором] извлекая маскирующий множитель (см. пункт 3), и тем самым получает корректную подпись Валидатора для своей исходной последовательности [Сл. число + Голос, подписанные Валидатором].

(Опционально) Избиратель проверяет подлинность подписи Валидатора, используя опубликованный открытый ключ.

8. Компьютер Избирателя устанавливает анонимное соединение со Счётчиком (например, через луковую или чесночную маршрутизацию). Анонимная маршрутизация нужна для того, чтобы никто не мог идентифицировать избирателя, т.е. чтобы гарантировать тайну голосования. Через анонимный канал связи Компьютер Избирателя передаёт Счётчику подписанный Валидатором пакет [Сл.число + Голос, подписанные Валидатором].

9. Счётчик проверяет подлинность подписи, пользуясь открытым ключом Валидатора. Счётчик проверяет, что бюллетень не испорчен. В случае успешных проверок Счётчик подписывает принятый пакет и тем самым создаёт квитанцию (расписку в получении):
[Сл.число + Голос, подписанные Валидатором + подпись Счётчика].

10. Счётчик ищет в списке №3 созданную квитанцию [Сл.число + Голос, подписанные Валидатором + подпись Счётчика].
Если такой квитанции в списке №3 ещё нет, то Счётчик заносит квитанцию в список №3 и инкрементирует публичный счётчик проголосовавших.
Если такая квитанция в списке №3 уже есть, то ничего делать не надо.

11. Счётчик отправляет Квитанцию [Сл.число + Голос, подписанные Валидатором + подпись Счётчика] компьютеру Избирателя. Соединение между Избирателем и Счётчиком закрывается.

12. (Опционально) Избиратель и проверяет подлинность подписи Счётчика, используя опубликованный открытый ключ.
(Опционально) Избиратель сохраняет квитанцию для проверки своего голоса после окончания голосования.

Последовательность действий процедуры электронного голосования показана на рисунке:

После окончания голосования
Счётчик публикует список всех квитанций - список №3.

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

…любому человеку:
1) в ходе голосования контролировать число участвующих (см. пункт 5) и число проголосовавших (см. пункт 10). В любой момент времени число проголосовавших не должно превышать число участвующих. В противном случае, следует требовать пересмотра результатов, поскольку закрытый ключ Валидатора был скомпрометирован. По окончании голосования разница между участвующими и проголосовавшими равна числу испорченных бюллетеней.

2) пользуясь списком №3, пересчитать голоса и тем самым проверить правильность подсчёта;

…любому избирателю:
3) отыскать в списке №3 свою квитанцию и тем самым убедиться, что голос учтён;

4) если же в списке №3 квитанция не найдена, то предъявление такой квитанции должно привести к расследованию нарушений допущенных Счётчиком (например, компрометация закрытого ключа Счётчика) и, как следствие, к пересмотру результатов;

…следственным и судебным органам:
5) при необходимости, провести детальный анализ того, как шло голосование, используя для этого запись трафика на линиях связи Валидатора и исходные списки №1 и №2.
Previous post Next post
Up