Криптографические методы защиты информации

Лекции

17. ПРОТОКОЛЫ ГОЛОСОВАНИЯ

17.3. Протоколы

 

17.3.1. Традиционное («бумажное») голосование.

17.3.2. Упрощенный протокол голосования №1.

17.3.3. Упрощенный протокол голосования №2.

17.3.4. Протокол двух агентств Нурми-Саломаа-Сантин.

17.3.5. Протоколы двух агентств Фудзиока-Окамото-Охта и Sensus.

17.3.6. Протокол голосования с одной Центральной комиссией на базе протокола ANDOS.

17.3.7. Протокол голосования с одной Центральной комиссией на базе «слепой» подписи.

17.3.8. Краткий сравнительный анализ протоколов голосования.

 

17.3.1. Традиционное («бумажное») голосование

 

Перед рассмотрением протоколов электронного голосования стоит напомнить схему традиционного («бумажного») голосования [8].

(1) Избирательная комиссия формирует списки голосующих и готовит (получает) бюллетени.

(2) В день выборов голосующий приходит на избирательный участок, предъявляет паспорт (или другой документ, удостоверяющий личность), его регистрируют в списке избирателей, он получает бюллетень, расписывается в его получении, голосует (например, ставит галочку в бюллетене напротив ФИО кандидата, за которого он голосует) и опускает бюллетень в урну.

(3) После окончания голосования избирательная комиссия подсчитывает результаты голосования и отсылает результаты в центральную избирательную комиссию (ЦИК).

Такая схема имеет как плюсы, так и минусы.

Достоинства.

1. Голосовать могут только те, кто имеет право.

2. Избиратель голосует не более одного раза.

3. Никто не может узнать, за кого проголосовал конкретный избиратель (т.е. обеспечивается анонимность голосования).

4. Никто не может проголосовать за другого.

5. Никто не может тайно изменить чей-то голос.

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

Недостатки.

1. Члены избирательной комиссии могут проголосовать вместо не пришедших на выборы избирателей (-2, -4).

2. В кабинах для голосования могут быть установлены скрытые камеры (-3).

3. Члены избирательной комиссии могут сделать недействительными некоторые бюллетени (например, поставив вторую галочку в бюллетене) или поставить галочку напротив «нужного» кандидата, если в бюллетене нет никаких пометок (-5).

4. Итоги голосования могут быть неправильно подсчитаны (непреднамеренные ошибки).

5. Итоги голосования могут быть преднамеренного искажены.

6. Избиратель не может проверить, что его голос учтен и, тем более, учтен ли правильно.

7. Простой избиратель не знает кто голосовал, а кто нет.

8. Результаты голосования обрабатываются относительно долго (в частности окончательные результаты голосования, как правило, становятся известны через несколько дней).

Чтобы устранить последний недостаток во многих странах (США, Европа, Бразилия, Россия и др.) стали внедрять системы электронного голосования (СЭГ). К достоинствам последних стоит отнести и возможность дистанционного голосования, что положительным образом сказывается на увеличении числа голосующих избирателей.

Электронное голосование - термин, определяющий различные виды голосования, охватывающий как электронные средства голосования (электронная демократия), так и электронные средства подсчета голосов. Разновидностью электронного голосования являются Интернет-выборы [17].

Интернет-выборы - один из способов электронного голосования, представляющий собой проведение части или полностью голосования на выборах и референдумах с использованием сети Интернет. Одним из первых экспериментов по внедрению Интернет-голосования был проведён Избирательной комиссией Волгоградской области на голосовании в Урюпинске в 2009 г.

Системы электронного голосования применяются на выборах с 1960х годов, с тех пор, как появились перфокарты. Более новая система оптического сканирования может считывать отметку, поставленную избирателем, с бюллетеня. Системы прямой записи голосов на базе устройств с кнопками или сенсорными экранами, накапливающие голоса, повсеместно используются в Бразилии. Они довольно сильно распространены в Индии, Нидерландах, Венесуэле и США. Системы телефонного и Интернет-голосования завоевали популярность и используются на правительственных выборах и референдумах в Великобритании, Эстонии и Швейцарии, а также муниципальных выборах в Канаде и партийных выборах в США и Франции.

Известные проблемы использования первых систем электронного голосования:

- отсутствие анонимности во многих системах при голосовании с помощью ID-cards, телефонном и Интернет-голосовании;

- возможность продажи голосов;

- 30 октября 2006г., Нидерланды. Была отозвана лицензия на 1187 устройств из-за того, что они позволяли следить за процессом голосования с расстояния до 40 метров;

- 2 марта 2004г., Калифорния. Устройства PES TSx не позволили большому количеству избирателей исполнить свой долг из-за неисправных считывателей электронных карт для голосования;

- октябрь 2006г., Майами. Из-за неправильной калибровки сенсорного экрана три голоса были учтены как голоса за демократов, хотя отображались как голоса за республиканцев;

- устройства AccuVote-TSx были изучены группой учёных из университета Принстона. Они показали, что на эти машины может быть установлено мошенническое ПО менее чем за минуту. Кроме того, эти устройства могли передавать друг другу компьютерные вирусы во время сеансов связи;

- одна из лабораторий, занимающихся компьютерной безопасностью, продемонстрировала способ изготовить и внедрить в оборудование компании Diebold Electronic System жучок, который позволит вводить в аппарат, в т.ч. и дистанционно, любую информацию. Цена «проекта» - 25$, уровень технологии – школьный радиокружок [32].

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

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

1. Голосовать могут только те, кто имеет право.

2. При подсчете результатов голосования для каждого избирателя учитывается не более одного голоса.

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

4. Никто не может проголосовать за другого.

5. Никто не может тайно изменить чей-то голос.

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

7. Каждый знает кто голосовал, а кто нет.

Желательны также два дополнительных свойства.

8. Избиратель может изменить свое мнение (т.е., аннулировать свой бюллетень и проголосовать заново) в течение заданного периода времени.

9. Если избиратель обнаруживает, что его голос засчитан неправильно, он может подать протест.

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

Используемые в протоколах обозначения:

ЦИК – центральная избирательная комиссия;

ЦСК – центр сертификации ключей. Сертифицирует, хранит, распространяет и удостоверяет подлинность открытых ключей участников протокола;

В – бюллетень;

ID – уникальный номер (идентификатор), однозначно связанный (ассоциируемый) с конкретным избирателем. В качестве ID может использоваться идентификатор электронного удостоверения личности, как это делается в Эстонии. В РФ может быть использован идентификатор Универсальной электронной карты или будущего электронного паспорта;

М – уникальный номер (метка), который нельзя сопоставить с конкретным избирателем (по крайней мере, для комиссии, выполняющей подсчет голосов и публикацию результатов голосования). Генерируется разово, специально для процедуры голосования;

kpub, kpriv – открытый и закрытый ключи для асимметричного шифрования. Открытый ключ доступен всем желающим и однозначно связан (ассоциирован) с ID;

ken, kdecасимметричные ключи зашифрования и расшифрования. В отличие от предыдущей пары ключей, ken (аналог открытого ключа kpub) хранится в тайне;

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

DS (англ. digital signature) – электронная цифровая подпись, ЭЦП;

h(X) – процедура хеширования сообщения X;

encrypt(k, X) – процедура зашифрования ключом k сообщения X;

decrypt(k, X) – процедура расшифрования ключом k сообщения X;

sign(k, X) = encrypt(k, X) – процедура создания ЭЦП ключом k для сообщения X;

unsign(k, X) = decrypt(k, X) – процедура проверки ЭЦП ключом k для сообщения X;

blind({r, k}, X) = encrypt({r, k}, X) – процедура зашифрования с помощью «закрывающего множителя» r и ключа k сообщения X;

unblind({r-1, k}, X) = encrypt({r-1, k}, X) – процедура расшифрования с помощью «раскрывающего множителя» r-1 и ключа k сообщения X;

{} – набор данных;

* – множество однотипных данных;

= – определение (расчет) значения по определенному алгоритму;

== – сравнение значений;

защищённый канал – канал связи, который не прослушивается злоумышленниками или по которому информация передается в зашифрованном виде;

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

 

17.3.2. Упрощенный протокол голосования №1 [8]

 

Схема голосования.

Рис.17.34. Схема упрощенного протокола голосования №1

(1) ЦИК:

• создает пару ключей для асимметричного шифрования {kpub, kpriv};

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

(2) Избиратель:

• делает свой выбор в бюллетене B;

• с помощью открытого ключа ЦИК kpub шифрует бюллетень Ben = encrypt(kpub, B);

• посылает зашифрованный бюллетень Ben в ЦИК.

(3) ЦИК:

• с помощью своего закрытого ключа kpriv расшифровывает бюллетень B = decrypt(kpriv, Ben);

• подводит подсчет голосов;

• публикует результаты голосования.

Достоинства и недостатки. Этот протокол приводит к массе проблем. ЦИК не может узнать, откуда получены бюллетени, и даже, принадлежат ли присланные бюллетени правомочным избирателям. У нее нет ни малейшего представления о том, голосовали ли избиратели больше одного раза. Положительной стороной является невозможность изменить бюллетень другого человека (для этого и используется шифрование), но никто и не будет пытаться это сделать, потому что гораздо проще голосовать повторно, добиваясь нужных результатов выборов.

 

17.3.3. Упрощенный протокол голосования №2 [8]

 

Схема голосования.

Рис.17.35. Схема упрощенного протокола голосования №2

(1) ЦИК:

• публикует список всех правомочных избирателей;

• создает пару ключей для асимметричного шифрования {kц.pub, kц.priv};

• публикует открытый ключ kц.pub в ЦСК. ЦСК может быть независимой организацией или подчиняться ЦИК.

(2) Избиратель:

• создает пару ключей для асимметричного шифрования {kи.pub, kи.priv} и публикует открытый ключ kи.pub в ЦСК. Публикация ключа подразумевает его регистрацию на конкретного избирателя с присвоенным ему ID;

• делает свой выбор в бюллетене B;

• с помощью своего закрытого ключа kи.priv подписывает бюллетень DS = sign(kи.priv, h(B));

• с помощью открытого ключа ЦИК kц.pub шифрует бюллетень и ЭЦП к нему {Ben, DSen} = encrypt(kц.pub, {B, DS});

• посылает в ЦИК свой идентификатор ID, зашифрованный бюллетень Ben и ЭЦП к нему DSen.

(3) ЦИК:

• с помощью своего закрытого ключа kц.priv расшифровывает бюллетень и ЭЦП {B, DS} = encrypt(kц.pub, {Ben, DSen});

• с помощью открытого ключа избирателя kи.pub проверяет ЭЦП к бюллетеню h(B) == decrypt(kи.pub, DS);

• подводит подсчет голосов;

• публикует результаты голосования.

Достоинства и недостатки. Протокол обладает свойствами 1 и 2 идеального протокола (только правомочные избиратели могут голосовать и никто не может голосовать более одного раза). Каждый бюллетень подписан закрытым ключом избирателя, поэтому ЦИК знает, кто и как голосовал. Если получен бюллетень, который не подписан правомочным избирателем, или бюллетень, подписанный избирателем, который уже проголосовал, то такой бюллетень игнорируется комиссией. Шифрование бюллетеней и ЭЦП к нему открытым ключом ЦИК мешает посторонним узнать, кто за кого голосовал.

На этапе (2) шифрование бюллетеня выглядит бессмысленным. Т.к. бюллетень имеет определенную структуру, то нетрудно сгенерировать все возможные варианты бюллетеней {B’}* и по известному открытому ключу комиссии kц.pub получить зашифрованные их варианты {B’en}* = encrypt(kц.pub, {B’}*). Сравнивая перехваченный зашифрованный бюллетень Ben с бюллетенями из множества {B’en}*, можно сделать о выборе избирателя с идентификатором ID. По отношению к ЦИК также отсутствует анонимность, т.к. комиссия знает и ID и выбор избирателя (бюллетень B).

 

17.3.4. Протокол двух агентств Нурми-Саломаа-Сантин

 

Протокол был предложен Ханну Нурми (Hannu Nurmi), Арто Саломаа (Arto Salomaa) и Лилой Сантин (Lila Santean). Функции ЦИК согласно протокола распределены между двумя агентствами:

• регистратор (англ. validator, administrator) – агентство, выполняющее регистрацию избирателей;

• счетчик (англ. tallier, counter) – агентство, выполняющее прием и подсчет бюллетеней.

Схема голосования.

Рис.17.36. Схема протокола двух агентств Нурми-Саломаа-Сантин

(1) Регистратор:

• публикует список всех правомочных избирателей.

(2) Избиратель:

• регистрируется для голосования (высылает регистратору по защищенному каналу свой уникальный идентификатор ID).

(3) Регистратор:

• высылает по защищенному каналу каждому правомочному избирателю уникальную метку М;

• высылает счетчику список уникальных меток {М}*, но без указания, какому избирателю, какая метка принадлежит.

(4) Избиратель:

• делает свой выбор в бюллетене B;

• создает секретный ключ для симметричного шифрования ksecr;

• с помощью секретного ключа ksecr шифрует уникальную метку и бюллетень в виде единого файла {М, B}en = encrypt(ksecr, {М, B});

• анонимно посылает свою метку М и зашифрованный файл {М, B}en счетчику.

(5) Счетчик:

• по истечении времени, отведенного на голосование, публикует все метки М и зашифрованные файлы {М, B}en в доказательство избирателю, что его голос принят и без искажений (подмены).

(6) Избиратель:

• анонимно высылает счетчику секретный ключ ksecr для метки М.

(7) Счетчик:

• с помощью секретного ключа ksecr расшифровывает файл {М, B} = decrypt(ksecr, {М, B}en);

• в дополнение к {М, {М, B}en} публикует {М, B} для того, чтобы избиратель убедился в правильности учета его голоса;

• подводит подсчет голосов;

• публикует результаты голосования.

Достоинства и недостатки. Протокол обладает практически всеми свойствами идеального протокола, за исключением свойства 3. Регистратор знает, какие метки принадлежат каким избирателям и, соответственно, их выбор. В связи с этим избирателям приходится надеяться на честность регистратора, отсутствие сговора между регистратором и счетчиком, взлома БД регистратора злоумышленниками и т.п.

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

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

Избиратель может изменить свое мнение (свойство 8). Для этого он высылает метку М, секретный ключ ksecr и новый зашифрованный файл {М, B}’en. Счетчик расшифровывает ранее посланный бюллетень {М, B}en и сравнивает метки, высланную в открытом виде и содержащуюся в зашифрованном файле. В случае их совпадения {М, B}en меняется на {М, B}’en.

Если избиратель обнаруживает, что его голос засчитан неправильно (свойство 9), он может подать протест, предоставив счетчику {М, ksecr, {М, B}en}.

 

17.3.5. Протоколы двух агентств Фудзиока-Окамото-Охта и Sensus

 

Протокол, предложенныйв 1992 г. Фудзиока (Atsushi Fujioka), Окамото (Tatsuaki Okamoto) и Охта (Kazuo Ohta), является дальнейшим развитием предыдущего протокола и позволяет избежать сговора между регистратором и счетчиком [55]. Это достигается за счет использования «слепой» ЭЦП.

Схема голосования.

Рис.17.37. Схема протокола двух агентств Фудзиока-Окамото-Охта

(1) Регистратор:

• публикует список всех правомочных избирателей;

• создает пару ключей для асимметричного шифрования {kр.pub, kр.priv};

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

(2) Избиратель:

• создает пару ключей для асимметричного шифрования {kи.pub, kи.priv} и публикует открытый ключ kи.pub в ЦСК. Публикация ключа подразумевает его регистрацию на конкретного избирателя с присвоенным ему ID;

• создает секретный ключ ksecr;

• делает свой выбор в бюллетене B;

• с помощью секретного ключа ksecr шифрует бюллетень Ben = encrypt(ksecr, B);

• с помощью «закрывающего множителя» r и открытого ключа регистратора kр.pub скрывает содержимое зашифрованного бюллетеня Bbl = blind({r, kр.pub}, Ben);

• с помощью своего закрытого ключа kи.priv стандартным образом (через хеш-образ) подписывает скрытый зашифрованный бюллетень DSи.bl = sign(kи.priv, h(Bbl));

• посылает регистратору свой идентификатор ID, скрытый зашифрованный бюллетень Bbl и ЭЦП к нему DSи.bl.

(3) Регистратор:

• стандартным образом (через хеш-образ) с помощью открытого ключа избирателя kи.pub проверяет его ЭЦП к скрытому зашифрованному бюллетеню h(Bbl) == unsign(kи.pub, DSи.bl);

• с помощью своего закрытого ключа kр.priv подписывает скрытый зашифрованный бюллетень DSр.bl = sign(kр.priv, Bbl);

• посылает избирателю «слепую» ЭЦП DSр.bl к скрытому зашифрованному бюллетеню Bbl;

(4) Избиратель:

• снимает «закрывающий множитель» r со «слепой» ЭЦП регистратора DSр.bl и получает ЭЦП регистратора DSen = unblind({r-1, kр.pub}, DSр.bl) к зашифрованному бюллетеню Ben;

• создает секретную уникальную метку М;

• анонимно посылает счетчику свою метку М, зашифрованный бюллетень Ben и ЭЦП регистратора к нему DSen.

(5) Счетчик:

• с помощью открытого ключа регистратора kр.pub, высланного напрямую регистратором или полученному из ЦСК, проверяет ЭЦП к зашифрованному бюллетеню Ben == unsign(kр.pub, DSen);

• по истечении времени, отведенного на голосование, публикует все метки М и зашифрованные бюллетени с ЭПЦ к ним {Ben, DSen} в доказательство избирателю, что его голос принят.

(6) Избиратель:

• анонимно высылает счетчику секретный ключ ksecr для метки М.

(7) Счетчик:

• с помощью секретного ключа ksecr расшифровывает бюллетень B = decrypt(ksecr, Ben);

• в дополнение к {М, {Ben, DSen}} публикует {М, {ksecr, B}} для того, чтобы избиратель убедился в правильности учета его голоса;

• подводит подсчет голосов;

• публикует результаты голосования.

Достоинства и недостатки. Т.к. никто, кроме избирателя, не может сопоставить одновременно DSen, DSи.bl и DSр.bl, а также ID и М, то исключается раскрытие выбора избирателя (обеспечивается полная анонимность).

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

Для изменения выбора избирателя в течение заданного периода времени (свойство 8):

• избирателю вначале необходимо аннулировать свой бюллетень у счетчика с раскрытием своей личности, предоставив {ID, М, ksecr};

• счетчик должен уведомить регистратора, что бюллетень избирателя с конкретным ID аннулирован;

• повторить этапы со 2 по 5.

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

Незначительной модификацией данного протокола является протокол Sensus [http://lorrie.cranor.org/voting/sensus], предложенный Лорри Кранор (Lorrie F. Cranor) и Роном Ситроном (Ron K. Cytron) в 1997 г. [56]. На этапе (5), после проверки подписи регистратора, счетчик сразу высылает избирателю квитанцию с уведомлением, что его голос принят, а избиратель, не дожидаясь конца подачи голосов остальными избирателями, высылает счетчику секретный ключ ksecr.

 

17.3.6. Протокол голосования с одной Центральной комиссией на базе протокола ANDOS [8]

 

ANDOS (англ. All or Nothing Disclosure Of Secrets - раскрытие секрета «всё или ничего») - криптографический протокол «секретной продажи секретов». Пусть продавец имеет список секретов с ответами и выставляет их на продажу. Покупатель желает купить секрет, но не хочет раскрывать какой именно. Протокол гарантирует, что покупатель получит нужный ему секрет и ничего более, в то время как продавец не будет знать, какой именно секрет получил покупатель.

Схема голосования.

Рис.17.38. Схема протокола голосования с одной Центральной комиссией на базе протокола ANDOS

(1) ЦИК:

• публикует список всех правомочных избирателей.

(2) Избиратель:

• регистрируется для голосования, т.е. в течение определенного срока сообщает в ЦИК, собирается ли он голосовать.

(3) ЦИК:

• публикует список голосующих;

• генерирует набор уникальных меток {M}* и с помощью протокола ANDOS распределяет их между голосующими. Особенность протокола заключается в невозможности для ЦИК в дальнейшем определить принадлежность метки конкретному избирателю.

(4) Избиратель:

• создает пару ключей для асимметричного шифрования {ken, kdec}. В отличие от классического асимметричного шифрования один из ключей (аналог открытого ключа) не публикуется;

• делает свой выбор в бюллетене B;

• с помощью секретного ключа ken шифрует бюллетень и уникальную метку {Men, Ben} = encrypt(ken, {M, B});

• анонимно посылает в ЦИК незашифрованную уникальную метку М, зашифрованные метку Men и бюллетень Ben.

(5) Счетчик:

• по истечении времени, отведенного на голосование, публикует все метки М и соответствующую ей зашифрованную пару {Men, Ben} в доказательство избирателю, что его голос принят.

(6) Избиратель:

• анонимно высылает счетчику секретный ключ дешифрования kdec для метки М.

(7) Счетчик:

• с помощью секретного ключа kdec расшифровывает бюллетень B = decrypt(kdec, Ben);

• в дополнение к {М, {Men, Ben}} публикует {М, {kdec, B}} для того, чтобы избиратель убедился в правильности учета его голоса;

• подводит подсчет голосов;

• публикует результаты голосования.

Этапы (1) – (3) являются предварительными. Их цель состоит в том, чтобы узнать и опубликовать всех действительных избирателей. Хотя некоторые из них, вероятно, не примут участие в голосовании, это уменьшает возможность ЦИК добавить поддельные бюллетени.

На этапе (4) два избирателя могут получить одну и ту же метку. Эта возможность может быть минимизирована, если число возможных меток будет гораздо больше, чем число реальных избирателей. Если два избирателя присылают бюллетени с одинаковой меткой, ЦИК генерирует новую метку М’, выбирает одного из избирателей и публикует {M, М’, {Men, Ben}}.

Т.к. ключ шифрования ken не публикуется, то асимметричное шифрование в протоколе можно заменить симметричным с одним ключом ksecr.

Достоинства и недостатки. Протокол обладает всеми свойствами идеального протокола, включая дополнительные 8 и 9, за исключением свойства 7.

Если избиратель хочет изменить свой выбор (свойство 8) с B на B’, то он посылает ЦИК {M, kdec, {Men, B’en}}. C помощью секретного ключа kdec ЦИК расшифровывает предыдущее шифрованное сообщение M’ = decrypt(kdec, Men), сравнивает метки M’ == М и, в случае совпадения меняет {Men, Ben} на {Men, B’en}. Естественно для создания новой пары {Men, B’en} должна быть применена новая пара ключей {ken, kdec}.

Если избиратель обнаруживает, что его бюллетень подсчитан неправильно (свойство 9), он протестует, посылая ЦИК {M, kdec, {Men, Ben}}.

Одной из проблем этого протокола является то, что ЦИК сможет воспользоваться правом голоса людей, которые сообщили о намерении голосовать на этапе (2), но не голосовали в действительности. Другой проблемой является сложность протокола ANDOS (плохая масштабируемость). Авторы рекомендуют разбивать избирателей на меньшие группы, например избирательные округа.

 

17.3.7. Протокол голосования с одной Центральной комиссией на базе «слепой» подписи

 

В основе протокола лежит идея использования «слепой» ЭЦП, но не для бюллетеня, как в протоколах двух агентств Фудзиока-Окамото-Охта и Sensus, а для неперсонифицированной метки M с целью обеспечения анонимности избирателя (свойство 3). Эта идея очевидна, но автор не встречал в открытой печати описание подобного протокола.

Схема голосования.

Рис.17.39. Схема протокола голосования с одной Центральной комиссией на базе «слепой» подписи

(1) ЦИК:

• публикует список всех правомочных избирателей;

• создает пару ключей для асимметричного шифрования {kр.pub, kр.priv};

• публикует открытый ключ kр.pub в ЦСК. ЦСК может быть независимой организацией или подчиняться ЦИК.

(2) Избиратель:

• создает пару ключей для асимметричного шифрования {kи.pub, kи.priv} и публикует открытый ключ kи.pub в ЦСК. Публикация ключа подразумевает его регистрацию на конкретного избирателя с присвоенным ему ID;

• генерирует уникальную метку М;

• с помощью «закрывающего множителя» r и открытого ключа ЦИК kц.pub скрывает содержимое метки Мbl = blind({r, kц.pub}, M);

• стандартным образом (через хеш-образ) с помощью своего закрытого ключа kи.priv подписывает содержимое метки DSи.bl = sign(kи.priv, h(Мbl)};

• посылает ЦИК свой ID, скрытую метку Мbl и ЭЦП к ней DSи.bl.

(3) ЦИК:

• стандартным образом (через хеш-образ) с помощью открытого ключа избирателя kи.pub проверяет его ЭЦП к скрытой метке h(Мbl) == unsign(kи.pub, DSи.bl) с целью аутентификации избирателя (проверки, что сообщение пришло действительно от избирателя с указанным ID);

• с помощью своего закрытого ключа kц.priv подписывает скрытую метку DSц.bl = sign(kц.priv, Мbl);

• посылает избирателю «слепую» ЭЦП DSц.bl к скрытой метке Мbl.

(4) Избиратель:

• снимает «закрывающий множитель» r со «слепой» ЭЦП комиссии DSц.bl и получает ЭЦП комиссии DS = unblind({r-1, kц.pub}, DSц.bl) к метке М;

• делает свой выбор в бюллетене B;

• с помощью открытого ключа ЦИК kц.pub шифрует в виде единого файла метку М, ЭЦП к ней DS и бюллетень B {М, DS, B}en = encrypt(kц.pub, {М, DS, B}). Шифрование выполняется, чтобы при посылке данного набора информации никто не смог бы подменить бюллетень. Правда, существует возможность подмены бюллетеня комиссией;

• анонимно посылает зашифрованный файл {М, DS, B}en в ЦИК.

(5) ЦИК:

• с помощью своего секретного ключа kц.priv расшифровывает файл {М, DS, B} = decrypt(kц.priv, {М, DS, B}en);

• с помощью своего открытого ключа kц.pub проверяет свою подпись DS к метке М == unsign(kц.pub, DS);

• публикует {М, B} для того, чтобы избиратель убедился в правильности учета его голоса;

• подводит подсчет голосов;

• публикует результаты голосования.

Достоинства и недостатки. Протокол обладает всеми свойствами идеального протокола за исключением свойства 7.

Если избиратель хочет изменить свой выбор (свойство 8) с B на B’, то ему достаточно послать ЦИК {М, DS, B’}en.

Для подачи протеста в случае, если избиратель обнаруживает, что его голос засчитан неправильно (свойство 9), протокол может быть усложнен по аналогии с протоколами, рассмотренными выше. Для этого на этапе (4) бюллетень вначале шифруется секретным ключом избирателя Bsecr = encrypt(ksecr, B), а затем формируется шифрованный файл {М, DS, Bsecr}en = encrypt(kц.pub, {М, DS, Bsecr}). ЦИК, расшифровав принятый файл {М, DS, Bsecr}en и проверив подпись к метке, публикует на сайте {М, Bsecr}. По истечении времени приема бюллетеней, избиратель анонимно высылает ключ для дешифрования {М, ksecr}, ЦИК дешифрует бюллетень В = decrypt(ksecr, Bsecr), публикует {M, ksecr, B}, выполняет подсчет голосов и публикацию результатов голосования.

Существенным недостатком протокола является возможность продажи голосов. Получив от ЦИК подпись DS к анонимной метке M, избиратель может продать пару {М, DS} заинтересованному лицу, которое, в свою очередь, может сделать выгодный для него выбор в бюллетене B" и отослать {М, DS, B"}en в ЦИК. Подобный недостаток характерен для всех рассмотренных видов и протоколов голосования, включая традиционное («бумажное») голосование - избиратель может быть подкуплен до момента, когда он делает выбор в бюллетене.

 

17.3.8. Краткий сравнительный анализ протоколов голосования

 

Для рассмотренных выше протоколов характерны свои достоинства и недостатки. Общим недостатком является невозможность противостоять подкупу избирателей (продаже голосов). Другой характерный недостаток – возможность недобросовестной избирательной комиссией голосования за избирателей, не сделавших свой выбор, а также внесение в списки избирателей «мертвых душ» с последующим голосованием за них. Противостоять этому можно публикацией списка проголосовавших (свойство 7) и контролем со стороны неравнодушных граждан и организаций.

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

Таблица 17.10

Свойство Протокол
Традиционное («бумажное») голосование Упрощенный протокол голосования №1 Упрощенный протокол голосования №2 Протокол двух агентств Нурми-Саломаа-Сантин Протоколы двух агентств Фудзиока-Окамото-Охта и Sensus Протокол голосования с одной ЦИК на базе протокола ANDOS Протокол голосования с одной ЦИК на базе «слепой» подписи
1. Голосование правомочными избирателями + - + + + + +
2. Учет только одного голоса избирателя + - + + + + +
3. Анонимность голосования + + - -1) + + +
4. Невозможность голосования за другого избирателя - - - + + + +
5. Невозможность тайной подмены голоса избирателя -2) + + + + + +
6. Проверка избирателем правильности учета его голоса - - - + + + +
7. Публикация списка проголосовавших +3) - + + - - -
8. Возможность изменения своего голоса избирателем - - + + + + +
9. Возможность подачи протеста при неправильном учете голоса - - - + + + +

Примечания.

1) Анонимность не обеспечивается по отношению к агентству, выполняющему регистрацию избирателей (регистратору).

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

3) С технической стороны ничто этому не мешает, но на выборах городского масштаба и выше не практикуется.