Это не официальный сайт wikipedia.org 01.01.2023

Протоколы тайного голосования — Википедия

Протоколы тайного голосования

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

Многие страны мира[2][3], в том числе и Россия[4][нет в источнике (обс.)], уже внедряют электронные голосования на муниципальном уровне и выше. Для уверенности в правильности, надёжности и конфиденциальности таких выборов и используют протоколы с доказанной защищённостью, которые опираются на проверенные криптографические системы, вроде асимметричного шифрования и электронной подписи. Кроме того, им нужна готовая материальная и юридическая база. Слияние всех этих факторов образует непосредственный инструмент электронной демократии.

ОбзорПравить

Предпосылки созданияПравить

В связи с бурным развитием компьютерных сетей возникает естественное «оцифровывание» различных областей жизни, например, возникновение электронных валют. Аналогичным образом появилось цифровое голосование, основной инструмент электронной демократии. Долгое время механические средства служили в голосованиях заменой обыкновенным бюллетеням или отвечали только за автоматический подсчёт бумажных бюллетеней. Основную работу по проверке голосующих и учёту голосов проводили другие люди. При такой системе отсутствовала надобность в описанных ниже протоколах. Однако, в последние годы, благодаря развитию интернета, голосования становятся полностью автоматизированными. У удалённого голосования много плюсов. Предполагается, что они удобнее для конечных пользователей, ведь люди могут голосовать не выходя из дома, от этого повышается активность избирателей. Поддержание электронного голосования обходится дешевле: вместо постоянной печати бюллетеней достаточно однократно разработать систему[5][6]. Кроме того, из предположения, что никто не может вмешиваться в программу на устройстве для голосования, вытекает что электронное голосование менее подвержено коррупции, влиянию административного давления и человеческого фактора[5][7][8].

Однако, при этом возникает ряд специфических проблем, препятствующих честности выборов. Например, при электронных выборах в Нидерландах и во Франции возникли сомнения в истинности результатов, полученных с помощью машин[3]. Дистанционно намного сложнее авторизовать избирателя или удостовериться, что на ход голосования никто не повлиял. С другой стороны, интернет предоставляет больше возможностей для проверки рядовыми избирателями, правильно ли учтён голос. В настоящее время электронные голосования полностью легальны или частично применимы во многих странах мира[9]. Так как в них вовлекается всё больше людей, усиливается необходимость в более безопасных и эффективных методах их проведения, для чего и призваны специальные криптографические протоколы.

Опыты регламентации и реализацииПравить

Ключевым элементом регламентации электронного голосования является закрепление его возможности в конституции государства. Такие статьи имеют конституции США, Швейцарии, Эстонии, Великобритании и некоторых других стран[10]. Есть группа стран, в которую входят, например, Финляндия, Германия и Россия[11], которые имеют опыт в проведении подобных выборов, но ещё не ввели их полную регламентацию в законодательство. Разумеется, это не единственное бюрократическое препятствие. Также требуются спецификации на технику, с помощью которой голосование проводится, способы проверки честности результатов, протоколы в случае срыва голосования, и создание самой технической базы. На основе этих параметров можно вычислить индекс готовности страны к введению цифрового голосования (и конкретного его протокола)[12].

Первой страной, которая реализовала легальные общенациональные выборы через интернет, стала Эстония[13], за ней последовали Нидерланды и Швейцария. В России протоколы тайного электронного голосования применялись пока что только на экспериментальном уровне (например, на форуме Селигер-2009), но в ЦИК была высказана инициатива о развитии электронного голосования, в частности, в интересах граждан РФ за рубежом[14].

Текущее состояние делПравить

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

Сейчас для простых опросов или голосований внутри малых групп применяется тривиальный алгоритм. В случае, когда агент, подсчитывающий голоса, не имеет особой причины вести махинации, этот протокол является оптимальным вариантом. На выборах государственного уровня наиболее распространены модификации протокола Фудзиоки — Окамото — Оты[13][15]. Именно он показал наилучшие результаты на экспериментальных выборах и создал положительный международный прецедент надёжного проведения выборов через интернет. Для него и некоторых его модификаций существуют доступные для использования частными лицами программы и электронные средства голосования[16]. Кроме того многие научные статьи, описывающие новые протоколы тайного голосования, берут за основу именно его. Возможно, благодаря развитию техники и понижению цены на высокопроизводительные системы в ближайшем будущем появятся прецеденты использования протокола Хэ — Су[17]. Хотя он уже имеет свои модификации, на практике этот протокол был применён только в студенческих экспериментальных выборах[18]. То же самое можно сказать и про протокол ANDOS. Хотя авторы многих статей утверждают, что его можно эффективно реализовать, были только прецеденты его использования на местных выборах[19]. Остальные протоколы представлены как переходные от простых к сложным или возможные модификации для достижения дополнительных целей.

Требования к системам тайного голосованияПравить

Обязательные[20][21]:

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

Желательные:

  • каждый легитимный участник может проверить, правильно ли зачтён его голос;
  • каждый легитимный участник может передумать и изменить свой выбор в течение определённого периода времени;
  • система должна быть защищена от продажи голосов избирателями[22];
  • в случае, если голос зачтён неправильно, каждый легитимный участник может сообщить об этом системе, не раскрывая своей анонимности[23];
  • невозможно отследить, откуда дистанционно проголосовал избиратель;
  • аутентификация оператора;
  • можно узнать, кто принимал участие в голосовании, а кто — нет;
  • поддержание системы не должно требовать много ресурсов;
  • система должна быть отказоустойчива в случае технических неисправностей (потеря электропитания), непреднамеренных (потеря избирателем ключа) и злоумышленных (намеренная выдача себя за другого избирателя, DoS/DDoS) атак.

Дело осложняется не только тем, что участники голосования и проводящее его агентство имеют основания не доверять друг другу, но и тем, что сам процесс голосования нужно защищать от вмешательства извне. Если провести аналогию с выборами президента, то избиратели должны защититься от вбросов бюллетеней со стороны избирательного комитета, ЦИК обязан обеспечить невозможность продажи голосов гражданами, и все вместе должны не допустить вмешательства агентов других стран[20].

Некоторые требования противоречат друг другу. Например, возможность проверки, как проголосовал тот или иной избиратель (даже им самим), предоставляет возможность для продажи голосов, а дополнительные уровни защиты снижают отказоустойчивость и экономичность. Обычно предполагается, что защита от жульничества со стороны агентства, занимающегося выборами, приоритетнее, чем предотвращение продажи голосов. Во-первых, она наносит значительно больше вреда, а во-вторых, даже если протокол гарантирует невозможность доказать стороннему лицу, за кого отдан голос, избиратель может найти обходные пути. Например, попросту проголосовать прямо перед скупщиком. Тем не менее, защита от вмешательства со стороны приоритетнее, чем всё остальное[24].

Простой протокол тайного цифрового голосованияПравить

Простой алгоритм электронного голосования по сути представляет собой переписку с электронными подписями между избирательным комитетом и множеством избирателей. Пусть здесь и далее: А — агентство, проводящее электронное голосование (англ. agency), E — избиратель, легитимный участник голосования (англ. elector), B — цифровой бюллетень. B может содержать число, имя кандидата, развёрнутый текст или какие-либо другие данные, сообщающие о выборе E, верифицирующие его или необходимые для усиления безопасности протокола[20]. Ход голосования выглядит так:

АлгоритмПравить

Шаг 1. А выкладывает списки возможных избирателей.
Шаг 2. Пользователи, в числе которых и E, сообщают о желании участвовать в голосовании.
Шаг 3. А выкладывает списки легитимных избирателей.

Шаги 1-3 обязательны. Основная цель — определение и объявление числа активных участников n. Хотя некоторые из них могут не участвовать, а некоторые - и вовсе не существовать («мёртвые души», злонамеренно внесённые A), возможность манипулирования голосованием у A заметно снижена. В дальнейшем эти шаги будут считаться за один шаг «утвердить списки».

Шаг 4. А создаёт открытый и закрытый ключ a public   и a private   и выкладывает в общий доступ a public  . Кто угодно может зашифровать сообщение при помощи a public  , но расшифровать его сможет только А.
Шаг 5. E
  • создаёт собственные публичный и приватный ключи ЭЦП e public   и e private  , затем публикует открытый ключ. Кто угодно может проверить документ E, но подписать его — только сам избиратель. Этот шаг пропускается, если A уже знает электронные подписи избирателей (например, они были сгенерированы при регистрации в системе).
  • формирует сообщение B, где тем или иным способом выражает свою волю
  • подписывает сообщение личным закрытым ключом e private  
  • шифрует сообщение открытым ключом a public  
  • отправляет шифрованное сообщение A
Шаг 6. A
  • собирает сообщения
  • расшифровывает их при помощи лежащего в открытом доступе e public  
  • подсчитывает их и публикует результаты

Особенности, преимущества и недостаткиПравить

Этот протокол чрезвычайно прост, тем не менее, его достаточно, чтобы защититься от внешнего вмешательства, подделки голосов и дискредитации легитимных избирателей. Однако голосующим приходится абсолютно доверять A, ведь его работа никем не контролируется. С одной стороны, E может предоставить злоумышленнику-покупателю голосов доказательство, как он проголосовал, а с другой — не может проверить, что A правильно учёл или даже получил его бюллетень. Поэтому тривиальный метод применим только в сообществах, где все доверяют друг другу и агентству, отвечающему за подсчёт голосов[20].

Протокол двух агентствПравить

Он же протокол Нурми — Саломаа — Сантина[25]. Основная идея состоит в том, чтобы заменить одно избирательное агентство двумя, чтобы они контролировали друг друга. Пусть здесь и далее V — регистратор (англ. validator), в обязанности которого входит подготовка списков, а также допуск или недопуск участника до голосования. Последовательность действий выглядит так:

АлгоритмПравить

Шаг 1. V
  • создаёт набор опознавательных меток t i   и утверждает список возможных избирателей
  • отправляет по защищённому каналу по одной метке каждому голосующему
  • отправляет A весь набор меток без информации о том, какая метка кому принадлежит
Шаг 2. E
  • генерирует e public  , e private   (для цифровой подписи) и e secret   (для того, чтобы ни A, ни посторонний злоумышленник не мог до нужного времени узнать содержимое бюллетеня)
  • e public   публикуется
  • формирует сообщение B с выбранным решением
  • подписывает его e private  
  • прикладывает к нему полученный t i  
  • шифрует при помощи e secret  
  • снова прикладывает к шифротексту t i  
  • отправляет шифротекст { t i , encrypt ( e secret , { t i , sign ( e private , B ) } ) }   на рассмотрение в A
Шаг 3. A
  • получает шифротекст. По внешнему тегу оно определяет, что сообщение пришло от легитимного пользователя, но не может определить, ни от какого, ни как он проголосовал.
  • выкладывает в открытый доступ полученную пару тег-шифр
Шаг 4. Опубликованный файл служит сигналом E отправить секретный ключ e secret  
Шаг 5. A
  • собирает ключи
  • расшифровывает сообщения
  • производит подсчёт голосов
  • присоединяет к опубликованному шифротексту бюллетень без опознавательного тега, на чём голосование заканчивается.

Особенности, преимущества и недостаткиПравить

Благодаря выкладыванию в общий доступ полученного файла на шаге 3, A не может впоследствии отрицать получение сообщения от E. При помощи пары шифр — бюллетень каждый избиратель может проверить, правильно ли был учтён его голос, что устраняет проблему с недостатком контроля над A. Однако такой подход лишь частично решает проблему необходимости абсолютного доверия к агентству. В случае, если A и V удаётся сговориться, A может манипулировать голосованием. Если агентству известно, кто скрывается под каким опознавательным тегом, оно может специально не принимать сообщения от некоторых избирателей. Кроме того, присутствует проблема «мёртвых душ». Если V внесёт в список заведомо несуществующих избирателей, то A сможет фальсифицировать бюллетени от них[26].

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

Протокол Фудзиоки — Окамото — ОтыПравить

Схема Фудзиоки — Окамото — Оты, разработанная в 1992 году, основывается на протоколе двух агентств и криптографической подписи вслепую[27]. Несильно усложняя протокол, эта схема частично решает проблему сговора двух агентств. Для работы протокола необходим заранее выбранный способ маскирующего шифрования, под которым избиратель присылает регистратору бюллетень. Ослепляющее (маскирующее) шифрование — особый вид шифрования, позволяющее удостовериться в том, что документ подлинный и подписан авторизованным пользователем, но не даёт узнать содержащиеся в нём данные. Маскирующее шифрование должно быть коммутативным с электронной подписью, то есть sign ( blind ( B ) ) = blind ( sign ( B ) )  .

АлгоритмПравить

Шаг 1. V утверждает списки легитимных избирателей
Шаг 2. E
  • создаёт e public  , e private   (для цифровой подписи) и e secret   (для того, чтобы ни A, ни посторонний злоумышленник не мог до нужного времени узнать содержимое бюллетеня)
  • подготавливает сообщение B с выбранным решением
  • шифрует его e secret  
  • накладывает слой ослепляющего шифрования
  • подписывает его e private  
  • отправляет V blind ( sign ( e private , encrypt ( e secret , B ) ) )  
Шаг 3. V
  • создаёт v public   и v private  , публичный ключ выкладывается в общий доступ
  • удостоверяется, что бюллетень действительный и принадлежит легитимному и не голосовавшему избирателю
  • подписывает его v private  
  • возвращает его E
Шаг 4. E снимает с бюллетени слой маскирующего шифрования (в силу коммутативности остаётся sign ( v private , sign ( e private , encrypt ( e secret , B ) ) )  ) и отправляет её A
Шаг 5. A
  • проверяет подписи E и V
  • помещает всё ещё зашифрованную e secret   бюллетень в специальный список, который будет опубликован после того как все избиратели проголосуют или по истечении заранее оговорённого срока
Шаг 6. После того как список появляется в открытом доступе, E высылает A e secret  
Шаг 7. A
  • расшифровывает сообщение
  • подсчитывает результаты

Протокол SensusПравить

Лорри Кранор и Рон Ситрон (англ. Lorrie Faith Cranor, Ron K. Cytron) в 1996 предложили модификацию протокола Фудзиоки — Окамото — Оты под названием Sensus[28]. Отличие заключается в шагах 5—6. После того, как A получило зашифрованное сообщение от E, оно не только добавляет его в публикуемый список, а вдобавок отправляет подписанный бюллетень обратно избирателю в качестве квитанции. Таким образом E не нужно ждать, пока проголосуют все остальные, и он может закончить голосование за один сеанс. Это не только удобно для конечного пользователя, но ещё и предоставляет дополнительного доказательство, что E участвовал в выборах. Кроме того, в Sensus регламентированы дополнительные вспомогательные модули, упрощающие и автоматизирующие ход голосования.

Особенности, преимущества и недостаткиПравить

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

На данный момент протокол Фудзиоки — Окамото — Оты (а также его модификации, включая и Sensus) является одним из самых проверенных протоколов дистанционного электронного голосования. Именно его вариация была применена на электронных выборах в Эстонии[13][15]. Другая модификация протокола Фудзиоки — Окамото — Оты была использована для проведения выборов в органы самоуправления среди студентов Принстонского университета[29]. Модули Sensus были написаны под системой UNIX с использованием криптографической библиотеки RSAREF[30], так что любой может ими воспользоваться.

Протокол Хэ — СуПравить

В 1998 году Ци Хэ и Чжунминь Су (Qi He, Zhongmin Su) представили ещё более продвинутый по сравнению с Sensus протокол голосования[17]. Этот алгоритм удовлетворяет большей части требований к безопасному протоколу цифрового голосования. Как и Sensus, протокол Хэ — Су использует идею слепой подписи, но подписывается не бюллетень избирателя, а его ключ. Это позволяет голосующим изменять своё решение до конца голосования и ещё больше сужает возможности регистратора и избирательного агентства в случае сговора. Для этого протокола требуется заранее оговорённый способ ослепляющего шифрования и хеш-функция h ( )  . Как и в протоколе Фудзиоки — Окамото — Оты маскирующее шифрование должно быть коммутативным с электронной подписью V: sign ( blind ( B ) ) = blind ( sign ( B ) )  , а также sign ( A B ) = sign ( A ) sign ( B )  .

АлгоритмПравить

Шаг 1. V
  • утверждает списки легитимных избирателей
  • создаёт v public   и v private   (используются для асимметричного шифрования)
  • v public   выкладывается в свободный доступ
Шаг 2. E
  • создаёт e public   и e private   (используются для подписей)
  • вычисляет хеш-функцию от публичного ключа: h ( e public )  
  • накладывает слой маскирующего шифрования на h ( e public )  . Так как шифруется только хеш от ключа, а не длинное сообщение, можно выбрать какой-нибудь простой способ. Например, E может сгенерировать случайное число x   и вычислить f = encrypt ( v public , x ) h ( e public )  
  • отправляет f   V
Шаг 3. V
  • проверяет легитимность избирателя
  • дешифрует f  : g = decrypt ( v private , encrypt ( v public , x ) h ( e public ) ) = x decrypt ( v private , h ( e public ) )  . Часть e public signed = decrypt ( v private , h ( e public ) )   считается подписанным ключом
  • отправляет g   E
Шаг 4. E
  • снимает слой ослепляющего шифрования (умножает на обратный элемент x  ) и получает подписанный ключ e public signed  
  • проверяет подлинность подписи регистратора: выполняется ли encrypt ( v public , decrypt ( v private , h ( e public ) ) ) = h ( e public )  
  • отправляет A пару { e public , e public signed }  
Шаг 5. A
  • как и E проверяет подлинность подписи регистратора
  • проверяет, совпадает ли хеш-функция от e public   в паре с той, что хранится в e public signed  
  • добавляет e public   в список авторизированных ключей и сообщает об этом E
Шаг 6. E
  • создаёт e secret   (используется для шифровки бюллетеней, чтобы ни A ни внешний злоумышленник до нужного времени не мог узнать содержимое бюллетеня)
  • подготавливает сообщение B с выбранным решением
  • отправляет A набор { e public , encrypt ( e secret , B ) , sign ( e private , h ( encrypt ( e secret , B ) ) ) }  
Шаг 7. A
  • проверяет авторизованность ключа
  • проверяет подлинность сообщения сравнивая хеш зашифрованного сообщения и хеш, полученный при помощи e p r i v a t e  
  • публикует тройку в открытом списке
Шаг 8. Появление тройки в открытом списке сигнализирует E отправить A новый набор: { e public , e secret , sign ( e private , h ( e secret ) ) }  
Шаг 9. A
  • проверяет подлинность сообщения, сравнивая хеши
  • расшифровывает ранее полученную бюллетень
  • публикует все данные
  • подсчитывает результат
Шаг 10. После голосования V публикует список всех зарегистрировавшихся избирателей, а A — список всех авторизованных ключей.

Особенности, преимущества и недостаткиПравить

Схема Хэ — Су удовлетворяет почти всем требованиям к протоколу тайного голосования. Остаётся только повышенный стимул купли/продажи голосов[17]. у A и V теперь нет возможности сжульничать, так как теперь публикуются все списки: возможных избирателей, зарегистрировавшихся и авторизированных ключей. Соответственно, нельзя ни внести несуществующих избирателей, ни голосовать за существующих, но не пришедших. При этом во время составления этих списков ни избирательное агентство, ни регистратор дополнительной информации не получают[31]. У избирателей есть возможность изменить голос. Основной недостаток протокола Хэ — Су — его сравнительная сложность. Так как для поддержания протокола необходимо большое количество ресурсов, он уязвим перед DoS-атаками.

Протокол на основе ANDOSПравить

За основу взят протокол ANDOS[32] (англ. All or Nothing Disclosure Of Secrets). Идея состоит в том, чтобы усилить стойкость протокола за счёт замены заранее выбранного шифрования секретным ключом на хеширование пользовательской функцией. Далее описано ядро алгоритма. В описании для краткости опущены меры предосторожности и безопасности. В случае необходимости можно применить методы криптографии на открытых ключах и электронной подписи. Предполагается, что для защиты от вмешательства кого-либо извне избиратели могут ещё и мешать информацию между собой, но тогда злонамеренный избиратель может вносить помехи в голосование, поэтому этот шаг тоже пропущен.

АлгоритмПравить

Шаг 1. A
  • утверждает список участников голосования;
  • пусть набралось n легитимных избирателей. Тогда A выбирает не менее чем n идентификаторов и применяет ANDOS протокол к голосующим. Идентификаторы — большие простые числа, они пронумерованы как 1 , . . . , n  .
Шаг 2. E
  • выбирает номер i и получает i-е простое число p i   из списка (A ничего не знает о взаимосвязи между i и E)
  • выбирает криптографическую хеш-функцию h E ( x , y )   двух переменных
  • пересылает A пару ( p i , h E ( p i , v E ) )  , где v E   — выбор (имя кандидата, или в более общем виде, выборочная стратегия) выраженный численно
Шаг 3. A публикует h E ( p i , v E )  .
Шаг 4. После появления h E ( p i , v E )   в открытом списке E отправляет A пару ( p i , h E 1 )  . Считая, что y всегда может быть получен по заданным h E ( x , y )  , x   и h E 1  , A теперь знает связь между p i   и v E   (но не между E и его выбором v E  ).

Упрощённая версия шагов 2—4 может состоять в том, что E посылает A напрямую пару p i , v E  . Однако, в этом случае будет невозможно для E как проверить засчитан ли голос правильно, так и переголосовать на более поздней стадии. Так может выйти, так как если A публикует идентификатор p i   в списке тех, кто придерживался стратегии v E  , то E будет точно знать, что его голос зачтён правильно, однако впоследствии кто-нибудь сможет замаскироваться под обладающего идентификатором p i   и изменить голос на угодный ему. С другой стороны, если A публикует только количество участников, придерживающихся определённой стратегии v E  , то участники не могут ничего проверить и A может публиковать любые результаты выборов. Хеш-функции используются для того, чтобы злоумышленники не могли определить количество голосов с определённой стратегией v E   (эта информация оказывается полезной), так как задача нахождения исходных значений вычислительно тяжёлая с учётом характерного времени проведения голосования.

Шаг 5. Когда голосование подходит к концу, A объявляет промежуточные результаты, публикуя списки стратегий (кандидатов) с числами h E ( p i , v E )  , соответствующими участникам, голосовавшим за v = v E  .
Шаг 6. Если участник E замечает, что его голос размещён в неверном списке, то он посылает A жалобу в виде тройки ( p i , h E ( p i , v E ) , h E 1 )  , которая явным образом показывает верность либо ошибочность результата.

Спустя некоторое время можно начать процедуру изменения голосов (см. финальный шаг). Более простой вариант (Шаг 7) может быть использован для проведения единственного круга повторного голосования.

Шаг 7. Участник E, который хочет изменить свой выбор, отправляет A тройку ( p i , h E ( p i , v E ) , v E )  , где v E   — новая стратегия. Когда подходит конец тура изменения голосов, A публикует изменённые результаты. Затем повторяется проверка правильности.
Шаг 7'. Всё как и в шаге 7, но теперь участник E отправляет пару ( p i , h E ( p i , v E ) )  , где h E   — новая хеш-функция, выбранная E. A удостоверяет получение сообщения, публикуя h E ( p i , v E )  , после чего E отправляет A пару ( p i , ( h E ) 1 )  . Теперь A знает взаимосвязь между p i   и v E  . При повторном подведении результатов h E ( p i , v E )   удаляется из соответствующего списка, а h E ( p i , v E )   добавляется в список с v = v E  . Участник E может оспорить результат как и прежде.

По сравнению с шагом 7, шаг 7' имеет преимущество в том, что участники, отличные от E, могут лишь наблюдать, что что-либо исчезло из списка v  , но не будут знать, что оно переместилось в список v  .

Особенности, преимущества и недостаткиПравить

В протоколе ANDOS возможна ситуация, когда два голосующих выберут одно и то же i, таким образом получив одинаковый идентификатор p i  . Возможные решения этой проблемы[32]:

  • A удостоверяется, что число идентификационных номеров настолько больше числа голосующих, что вероятность коллизии пренебрежимо мала.
  • При повторном получении идентификатора p i   A публикует пару ( p i , h E ( p i , v E ) )  , где p i   — идентификатор, который был не «на продажу» в протоколе ANDOS. По второй компоненте участник E видит, что он под вопросом и отправляет A пару ( p i , h E ( p i , v E ) )  . Другие участники не могут этого сделать, так как они не знают хеш-функции h E  . Далее процесс идёт по той же схеме: A публикует h E ( p i , v E )   и т. д. После получения h E 1   A удостоверяется, что откликнулся нужный участник.

Протокол ANDOS довольно затратен, зато для него не нужен независимый регистратор V. Избирателям необходимо выбирать и пересылать не только идентификаторы, но и хеширующие функции, что может быть сложно или долго[32]. А всё ещё может жульничать, распределяя по своему выбору голоса тех, кто заявил о своём намерении принять участие в голосовании, но так и не совершил свой выбор, а E имеют повышенный стимул купли/продажи голосов, так как можно убедиться в результате сделки.

Прочие протоколыПравить

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

Например, протокол двух агентств можно распространить на n   избирательных центров, представляющие различные противоборствующие, но заинтересованные в честных выборах фракции. В этом случае распределение голосов может быть подделано только если все центры окажутся в сговоре, что не имеет смысла по условию. Такой алгоритм использует какую-либо схему неинтерактивного публично проверяемого[34] разделения секрета (англ. NIVSS — Non-Interactive Verifiable Secret Sharing). В зависимости от выбранного способа разделения секрета (кто за кого проголосовал) протокол может иметь разную стойкость к разным атакам и разную скорость обработки данных. Хороший результат показывает, например, использование проблемы дискретного логарифмирования для обеспечения сокрытия данных[35].

Главным недостатком системы является то, что хотя сфальсифицировать результаты могут только все избирательные центры вместе, сорвать ход выборов может любой из них в одиночку. Решением дилеммы является ещё одна модификация алгоритма, когда распределение голосов могут восстановить k < n   центров. Но тогда и подделать результаты смогут k   сговорившихся центров, а сорвать выборы — n k  . Схема может быть улучшена, чтобы допускать несколько вариантов ответа в бюллетени, а также поэтапное или параллельное голосования. Дополнительный плюс: при такой системе избиратель не может доказать, за кого именно он проголосовал, что делает чрезвычайно трудной покупку/продажу голосов[36].

Для работы данного протокола необходим примитив «доска бюллетеней» — область данных, которую могут читать все целиком, а писать — каждый только в свою часть. По сути это — общая область памяти с доступом по сети и некоторыми криптографическими ограничениями. Если в выборах участвует n   центров голосований A 1 , , A n   и m   избирателей E 1 , , E m  , то количество битов, необходимое для доски бюллетеней — O ( n m k )  , где k   — некоторая переменная криптостойкости, пропорциональная количеству битов ключа.

Среди других специальных криптографических примитивов можно выделить «сборщика» (англ. pollster) — удобный интерфейс между пользователем и системой. Идея в том, что избиратель-человек может отдать бюллетень сборщику, а тот выполнит за него всю работу по шифрованию и обмену данными с остальными сторонами. Избиратель должен полностью доверять данному модулю. Это сильное условие, однако его сравнительно просто реализовать, ведь сборщик запущен на машине голосующего.

ПримечанияПравить

  1. Электронные устройства для голосования на избирательных участках в России и за рубежом  (неопр.). Дата обращения: 10 октября 2014. Архивировано 19 апреля 2018 года.
  2. Электронное голосование в разных странах  (неопр.). Дата обращения: 10 октября 2014. Архивировано 13 июня 2021 года.
  3. 1 2 Международный опыт электронного голосования  (неопр.). Дата обращения: 15 апреля 2022. Архивировано 1 декабря 2018 года.
  4. Электронное голосование: из настоящего в будущее  (неопр.). Дата обращения: 10 октября 2014. Архивировано 16 октября 2014 года.
  5. 1 2 3 Cranor, Lorrie Faith. Electronic voting: computerized polls may save money, protect privacy (англ.). — ACM New York, NY, USA.
  6. Россия проголосует мобильниками  (неопр.). Дата обращения: 10 октября 2014. Архивировано 4 марта 2016 года.
  7. Комплекс для электронного голосования (КЭГ)  (неопр.). Дата обращения: 14 октября 2014. Архивировано 24 сентября 2015 года.
  8. Дмитрий Парамонов. Информационная власть // Механизм Народовластия.
  9. E-voting world map  (неопр.). Дата обращения: 2 октября 2014. Архивировано 4 сентября 2018 года.
  10. Норберт, Керстинг; Грачёв, Михаил Николаевич. Электронное голосование и демократия в Европе (рус.).
  11. Сербин Михаил Викторовч. Перспективы развития электронного голосования в Российской Федерации (рус.).
  12. Kimmer, Robert; Schuster, Ronald. The E-voting Readiness Index: a Survey (англ.)(недоступная ссылка)
  13. 1 2 3 Internet Voting in Estonia Архивная копия от 24 апреля 2018 на Wayback Machine.
  14. Материалы к выступлению Председателя ЦИК России В. Е. Чурова «Дистанционное электронное голосование — перспективы использования для расширения возможностей голосования граждан Российской Федерации за рубежом»  (неопр.). Дата обращения: 2 октября 2014. Архивировано 4 марта 2016 года.
  15. 1 2 НИК Эстонии. Обзор системы электронного голосования  (неопр.). Дата обращения: 18 октября 2014. Архивировано из оригинала 25 октября 2018 года.
  16. Naznin Fauzia, Tanima Dey, Inaba Bhuiyan, Md. Saidur Rahman. An Efficient Implementation of Electronic Election System (англ.).
  17. 1 2 3 Qi He and Zhongmin Su. A New Practical Secure e-Voting Scheme (англ.).
  18. Yasmine Abouelsiod. A new blind identity-based signature scheme (англ.).
  19. Julien P. Stern. A New and Efficient All-Or-Nothing Disclosure of Secrets Protocol (англ.).
  20. 1 2 3 4 Hannu Nurmi, Arto Salomaa. Conducting secret ballot elections in computer networks: Problems and solutions (англ.) // Annals of Operations Research 51 (1994) 185-194. — University of Turku.
  21. Нейман П. Критерии безопасности для систем электронного голосования  (неопр.). Дата обращения: 18 октября 2014. Архивировано из оригинала 21 апреля 2018 года.
  22. Предполагается, что это бессмысленно, если нельзя удостовериться, как проголосовал продавец: он мог согласиться на сделку, а проголосовать за кого угодно. Это условие плохо совместимо, но не обязательно противоречит возможности проверки, правильно ли зачтён голос. Также возможность изменить голос в течение некоторого времени нейтрализует угрозу подкупа избирателей.
  23. Анонимность не исключает главного требования, что только избиратель знает свой голос (и, соответственно, только он сам может указать, что тот был неправильно зачтён). Существуют схемы, когда избиратели контролируют друг друга, при этом не зная, за голосами кого они наблюдают.
  24. Roland Wen, Richard Buckland. Masked Ballot Voting for Receipt-Free Online Elections.
  25. 1 2 Model of The Scheme Архивная копия от 3 мая 2018 на Wayback Machine.
  26. Declared-Strategy Voting System Design Архивная копия от 21 апреля 2018 на Wayback Machine.
  27. Fujioka, Atsushi; Okamoto, Tatsuaki; Ohta, Kazuo. A practical secret voting scheme for large scale elections (англ.) // Lecture Notes in Computer Science. — 1993. — Vol. 718. — P. 244—251.
  28. Cranor, Lorrie Faith; Cytron, K. Ron. Sensus: A Security-Conscious Electronic Polling System for the Internet (англ.). — IEEE Computer Society Washington, DC, USA.
  29. Lorrie Cranor. References Архивная копия от 30 марта 2018 на Wayback Machine // Declared-Strategy Voting: An Instrument for Group Decision-Making.
  30. Sensus Modules Архивная копия от 4 марта 2016 на Wayback Machine.
  31. A New Practical Secure e-Voting Scheme — Conclusion Архивная копия от 15 июня 2019 на Wayback Machine.
  32. 1 2 3 Brassard G., Crepeau C., Robert J.-M. All-or-nothing disclosure of secrets (англ.) // Springer Lecture Notes in Computer Science. — 1987. — Vol. 263. Архивировано 4 марта 2016 года.
  33. Аллен Майкл. Общественные системы голосования  (неопр.). Дата обращения: 18 октября 2014. Архивировано из оригинала 4 марта 2016 года.
  34. Chunming Tang, Dingyi Pei, Zhuojun Liu, Yong He. Non-Interactive and Information-Theoritic Secure Publicly Verifiable Secret Sharing (англ.).
  35. Ronald Cramer, Matthew Franklin, Berry Schoenmakers, Moti Yung. Multi-Authority Secret-Ballot Elections with Linear Work (англ.).
  36. Benaloh J., Tuinstra D. Receipt-free secret-ballot elections (англ.).