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

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

Содержание
  1. Шаг 1. Формирование списка кандидатов
  2. Шаг 5. Расшифровка
  3. Как устроено электронное голосование простым языком и в рисунках
  4. Выработка ключей шифрования
  5. Параметры протокола
  6. Протокол Хэ — Су
  7. Особенности, преимущества и недостатки
  8. Структура записей в блокчейне
  9. Шаг 3. Голосование
  10. Обзор криптографического протокола системы дистанционного электронного голосования
  11. Шаг 2. Формирование ключей и замков
  12. Проверки криптографического протокола и процесса голосования
  13. Протокол двух агентств
  14. Особенности, преимущества и недостатки
  15. Алгоритм реализации и его криптостойкость
  16. Реализация слепой подписи на практике
  17. Немного из истории электронного голосования. Опыт разных стран
  18. Электронные системы голосования с использованием бумажных носителей
  19. Система голосования с прямой записью
  20. Системы голосования, использующие публичные сети Это системы голосования, использующие и электронные бюллетени, и передающие информацию о голосах с мест голосования по открытым компьютерным сетям . Информация может передаваться после каждого голоса, периодически в виде набора голосов, либо один раз по окончании голосования. Таким образом организованы Интернет-голосования и телефонные голосования. В подобных системах может использоваться как подсчёт голосов на месте голосования, так и централизованный подсчёт. Компании и организации обычно используют Интернет-голосования для выборов должностных лиц и членов Совета, а также для других внутренних выборов. Системы Интернет-голосования широко используются в США, Великобритании, Ирландии, Швейцарии и Эстонии. В Швейцарии, где такие системы являются установленной формой местных выборов, избиратели получают свои личные пароли для доступа к голосованию по почте. Большинство избирателей в Эстонии могут проголосовать на парламентских или местных выборах через Интернет. Это возможно благодаря тому, что большинство эстонцев имеют идентификационные карточки с микрочипами, которые могут быть прочитаны на компьютере, и с помощью этих карточек они получают доступ к системе электронного голосования. Всё, что нужно, это — карточка с микрочипом, компьютер, подключённый к Интернет, и считывающее устройство — и избиратель может проголосовать из любой точки мира. Примеры: Эстонская ID-карта . Системы интерактивного голосования Данные системы для сбора результатов используют пульты для голосования. Данные пульты обычно напоминают пульт от телевизора или калькулятор. Форм-фактор пультов зависит от компании производителя и поставщика услуг. Сигнал с данных пультов поступает на принимающую базовую станцию, которая подключена к компьютеру с установленным специальным программным обеспечением. На этом компьютере обрабатываются результаты голосования и выводятся на экран. Вывод результатов голосования возможен как на экран проектора или плазменную панель в виде слайдов презентации MS PowerPoint, так и в виде отчёта в файл с расширением .xls (MS Excel). Преимущества данной системы перед другими средствами подсчета являются: возможность выводить результаты голосования сразу после окончания голосования, с задержкой не более 1—2 секунд; отображать ход голосования в реальном времени; все пульты имеют уникальный индивидуальный номер, что позволяет использовать данную систему в качестве инструмента для выявления победителей в различных викторинах; так как пульты имеют уникальные номера, то исключается возможность подтасовки результатов по ходу голосования; Возможности данной системы: Простой опрос — простой опрос участников голосования об их мнении. Викторина — тестирование, которое подразумевает один или более правильных ответов. За каждый ответ возможно начисление балов. Голосование — голосование по принципу «За / Против / Воздержался». Блокчейн-платформа Перед тем, как говорить о процедуре выработки ключей, нужно дать вводные о реализации блокчейн-платформы. Ниже на рисунке приведена упрощенная целевая схема размещения блокчейн-платформы. Размещение и резервирование узлов блокчейна происходит в географически распределенных ЦОД ПАО «Ростелеком». При этом ответственность за «атомарный» набор компонентов, участвующий в хранении всех данных голосования, может быть возложена на избирательную комиссию или различные институты общественного наблюдения. Это сделано для того, чтобы предоставить участникам возможность контролировать основные компоненты системы и узлы сети, и при этом не заниматься решением вопросов с информационной безопасностью, разворачиванием и эксплуатацией технических средств, а также обеспечением возможности масштабирования системы. Список участников может со временем меняться – от минимального на этапе запуска системы в промышленную эксплуатацию, до достаточно широкого и полностью децентрализованного по мере развития системы. При этом всегда существует возможность размещения набора компонентов вне ЦОД. В качестве блокчейн-платформы используется отечественное решение Waves Enterprise. Транзакции и блоки подписываются по ГОСТ Р 34.10-2012. Стандарт слепой подписи и его криптостойкость Существует множество стандартов электронных цифровых подписей (ЭЦП). Самый последний из них (ГОСТ_34.10-2018) был принят 1 июня 2019 года и применяется в том числе и в отечественной системе электронного голосования. Именно его мы и рассмотрим. Обговорим параметры, фигурирующие в данном стандарте: Порядок группы точек эллиптической кривой — это целое число, отличное от Порядок (простое число) некоторой циклической подгруппы группы точек эллиптической кривой, удовлетворяющей следующим условиям: Так называемый генератор подгруппы точка , для которой имеют место равенства , где нейтральный элемент. так называемая хеш-функция. Она отображает сообщение в двоичные векторы длиною в 256 бит. Целое число ключ шифрование, которым обладает любой пользователь, использующий цифровую подпись, и которое лежит в пределах Точка ключ расшифрования, которым также обладает любой пользователь, использующий цифровую подпись, и который равен Кроме того, для математической корректности алгоритма (в нюансы которой мы не будем погружаться), необходимо выполнение условий Обратим внимание на хеш-функцию. Она представляет из себя двоичный вектор из 256 компонент: Двоичные векторы можно “сшивать” (операция конкатенации): А также между ними и целыми числами можно построить биективное отображение по следующему правилу Биективное оно потому, что формула, его задающая, есть ни что иное, как представление числа в двоичном виде Итак, мы ввели все требуемые параметры и величины, поэтому теперь можем рассмотреть алгоритм действия стандарта. Начнем с формирования ЭЦП. Наглядная блок-схема представлена на рисунке (см. рис. 4), поэтому распишем только формулы, которые мы применяем на каждом шаге. Если , то возвращаемся к шагу 3). Если , то возвращаемся к шагу 3). Ставим векторы в соответствие числам Рис. 4. Блок-схема алгоритма формирования ЭЦП Теперь проверим ЭЦП. Также сошлемся на наглядную блок-схему (см. рис.5), а каждый шаг опишем сухой формулой. подпись верна, иначе — нет. Рис. 5. Блок-схема алгоритма проверки ЭЦП Что же касается криптостойкости данного стандарта, то она определяется, во-первых, стойкостью алгоритма шифрования, а во-вторых, стойкостью хеш-функции. Стойкость хеш-функции: Вероятность того, что хеш-функцию данного стандарта взломают подбором коллизии на фиксированное сообщение, составляет Если заниматься подбором произвольной коллизии, то вероятность повышается до но все равно остается чрезвычайно малой. Стойкость алгоритма шифрования: она определяется проблемой дискретного логарифмирования в группе точек эллиптической кривой. Поскольку пока не существует алгоритмов этой оценки, обратимся к наибыстрейшему – методу Полларда. Для него вычислительная сложность оценивается как Следовательно, если положить, что имеет 256 разрядов, это обеспечит криптостойкость в операций. Опыты регламентации и реализации
  21. Информация в этом разделе устарела . Вы можете помочь проекту, обновив её и убрав после этого данный шаблон. ( 25 августа 2021 ) Текущее состояние дел Протокол Фудзиоки — Окамото — Оты Шаг 1. V утверждает списки легитимных избирателей Шаг 2. E создаёт   ,   (для цифровой подписи) и   (для того, чтобы ни A , ни посторонний злоумышленник не мог до нужного времени узнать содержимое бюллетеня) подготавливает сообщение B с выбранным решением шифрует его   накладывает слой ослепляющего шифрования подписывает его   отправляет V   Шаг 3. V создаёт   и   , публичный ключ выкладывается в общий доступ удостоверяется, что бюллетень действительный и принадлежит легитимному и не голосовавшему избирателю подписывает его   возвращает его E Шаг 4. E снимает с бюллетени слой маскирующего шифрования (в силу коммутативности остаётся   ) и отправляет её A Шаг 5. A проверяет подписи E и V помещает всё ещё зашифрованную   бюллетень в специальный список, который будет опубликован после того как все избиратели проголосуют или по истечении заранее оговорённого срока Шаг 6. После того как список появляется в открытом доступе, E высылает A   Шаг 7. A расшифровывает сообщение подсчитывает результаты Особенности, преимущества и недостатки Теперь даже если агентствам удастся сговориться, A не сможет опознать избирателей до того, как получит ключ. Хотя оно всё ещё имеет возможность не принимать сообщения, отпадает возможность игнорировать сообщения конкретно от «неугодных» избирателей. Остаётся лишь проблема подачи голосов за избирателей, не пришедших на выборы. Кроме того, чтобы позволить избирателю переголосовать, в том числе и из-за технической ошибки, необходим дополнительный модуль. Доказательства с нулевым разглашением Хотя система ДЭГ защищена от злоумышленников и ошибок пользователей на уровне программного обеспечения и инфраструктуры, на уровне криптографического протокола были предусмотрены дополнительные математические доказательства и проверки, которые не позволяют передавать в систему ложную информацию. Для этого было разработано несколько механизмов, основанных на неинтерактивных доказательствах с нулевым разглашением (NIZK). Первый тип ZKP (zero-knowledge proof), применяемых в cистеме – доказательства диапазона. Данные ZKP используются при публикации зашифрованного бюллетеня, чтобы в отсутствие информации о том, как проголосовал участник голосования, можно было убедиться, что участник не испортил бюллетень на своем устройстве одним из следующим способов: участник не зашифровал в бюллетене по отдельному варианту голосования значение больше единицы, что повлияло бы на итог голосования при «зашифрованном сложении»; участник не выбрал более одного варианта по каждому вопросу в бюллетене, если это не предусмотрено порядком заполнения бюллетеня. Более подробное описание реализации NIZK, а также их проверки, будет рассмотрено в отдельной статье. Шаг 4. Секретное шифрование ДИТ тайно засовывает настоящий сундук с бюллетенем в свой фальшивый ДИТ получает этот сундук с ключом и зачем-то вместо того, чтобы сразу положить его на витрину, как это должно быть, он запихивает сундук избирателя и его ключ в свой сундук и вешает на него секретный замок, а ключ от него хранит у себя и никому не показывает. И вот уже этот фальш-сундук ДИТ относит на витрину к наблюдателям вместо настоящего. Получается, что на витрине вроде бы тот же самый сундук, но его не может открыть никто кроме ДИТ даже после конца голосования. Фальшивый сундук невозможно проверить независимым наблюдателям даже имея ключи от настоящего сундука На президентских выборах в России в марте 2012 года комплексы электронного голосования применялись на 337 избирательных участков в семи субъектах Федерации (всего 311 КЭГов, из них 146 были в Татарстане , остальные были установлены в Кабардино-Балкарии , Мурманской и Томской областях, республиках Коми , Марий Эл , Хакасии , Чечне ), а также за границей — в Латвии , Германии , Казахстане (на Байконуре ) и Польше . Простой протокол тайного цифрового голосования Шаг 1. А выкладывает списки возможных избирателей. Шаг 2. Пользователи, в числе которых и E , сообщают о желании участвовать в голосовании. Шаг 3. А выкладывает списки легитимных избирателей. Шаги 1-3 обязательны. Основная цель — определение и объявление числа активных участников n . Хотя некоторые из них могут не участвовать, а некоторые — и вовсе не существовать («мёртвые души», злонамеренно внесённые A ), возможность манипулирования голосованием у A заметно снижена. В дальнейшем эти шаги будут считаться за один шаг «утвердить списки». Шаг 4. А создаёт открытый и закрытый ключ   и   и выкладывает в общий доступ   . Кто угодно может зашифровать сообщение при помощи   , но расшифровать его сможет только А . Шаг 5. E создаёт собственные публичный и приватный ключи ЭЦП   и   , затем публикует открытый ключ. Кто угодно может проверить документ E , но подписать его — только сам избиратель. Этот шаг пропускается, если A уже знает электронные подписи избирателей (например, они были сгенерированы при регистрации в системе). формирует сообщение B , где тем или иным способом выражает свою волю подписывает сообщение личным закрытым ключом   шифрует сообщение открытым ключом   отправляет шифрованное сообщение A Шаг 6. A собирает сообщения расшифровывает их при помощи лежащего в открытом доступе   подсчитывает их и публикует результаты Особенности, преимущества и недостатки Требования к системам тайного голосования никто, кроме голосующего, не должен знать его выбор; только легитимные участники могут проголосовать, и притом только один раз; решение голосующего не может быть тайно или явно кем-либо изменено (кроме, возможно, как им самим). каждый легитимный участник может проверить, правильно ли зачтён его голос; каждый легитимный участник может передумать и изменить свой выбор в течение определённого периода времени; система должна быть защищена от продажи голосов избирателями [22] ; в случае, если голос зачтён неправильно, каждый легитимный участник может сообщить об этом системе, не раскрывая своей анонимности [23] ; невозможно отследить, откуда дистанционно проголосовал избиратель; аутентификация оператора; можно узнать, кто принимал участие в голосовании, а кто — нет; поддержание системы не должно требовать много ресурсов; система должна быть отказоустойчива в случае технических неисправностей (потеря электропитания), непреднамеренных (потеря избирателем ключа) и злоумышленных (намеренная выдача себя за другого избирателя, DoS / DDoS ) атак. Достоинства и недостатки ЭГ Из опыта стран-пионеров ЭГ можно выделить как ряд очевидных достоинств. Граждане могут участвовать в политической жизни страны где бы они не находились – достаточно просто иметь гаджет под рукой. Время проведения выборов и подсчета голосов происходит на порядок быстрее. А затраты на проведение процедуры значительно уменьшаются. ЭГ повышает привлекает молодых избирателей. Выборы становятся прозрачными – сложнее устроить “вбросы” и фальсификацию.  И, разумеется, недостатки тоже имеют место быть. Помимо каких-то юридических моментов (например, частичное или полное отсутствие законодательной базы для регулирования процедуры) есть ряд вопросов по информационной безопасности этого процесса, которые и представляют для нас главный интерес. Информация, передаваемая по интернету, очевидно, гораздо уязвимее с точки зрения потенциальных хакерских атак или же банальных компьютерных сбоев – то есть возможно внешнее вмешательство в ход выборов. Есть риск п олуче ния и использования злоумышленниками в корыстных целях персональных данных избирателей.  Из-за того, что каждый избиратель обладает уникальным номером, то не составляет труда идентифицировать личность конкретного голосовавшего по этому самому номеру, что уничтожает тайну волеизъявления. Сосредоточимся на последнем недостатке и рассмотрим решение проблемы, которое он вызывает.
  22. Системы интерактивного голосования
  23. Блокчейн-платформа
  24. Стандарт слепой подписи и его криптостойкость
  25. Шаг 1. V утверждает списки легитимных избирателей Шаг 2. E создаёт   ,   (для цифровой подписи) и   (для того, чтобы ни A , ни посторонний злоумышленник не мог до нужного времени узнать содержимое бюллетеня) подготавливает сообщение B с выбранным решением шифрует его   накладывает слой ослепляющего шифрования подписывает его   отправляет V   Шаг 3. V создаёт   и   , публичный ключ выкладывается в общий доступ удостоверяется, что бюллетень действительный и принадлежит легитимному и не голосовавшему избирателю подписывает его   возвращает его E Шаг 4. E снимает с бюллетени слой маскирующего шифрования (в силу коммутативности остаётся   ) и отправляет её A Шаг 5. A проверяет подписи E и V помещает всё ещё зашифрованную   бюллетень в специальный список, который будет опубликован после того как все избиратели проголосуют или по истечении заранее оговорённого срока Шаг 6. После того как список появляется в открытом доступе, E высылает A   Шаг 7. A расшифровывает сообщение подсчитывает результаты
  26. Особенности, преимущества и недостатки
  27. Более подробное описание реализации NIZK, а также их проверки, будет рассмотрено в отдельной статье. Шаг 4. Секретное шифрование ДИТ тайно засовывает настоящий сундук с бюллетенем в свой фальшивый ДИТ получает этот сундук с ключом и зачем-то вместо того, чтобы сразу положить его на витрину, как это должно быть, он запихивает сундук избирателя и его ключ в свой сундук и вешает на него секретный замок, а ключ от него хранит у себя и никому не показывает. И вот уже этот фальш-сундук ДИТ относит на витрину к наблюдателям вместо настоящего. Получается, что на витрине вроде бы тот же самый сундук, но его не может открыть никто кроме ДИТ даже после конца голосования. Фальшивый сундук невозможно проверить независимым наблюдателям даже имея ключи от настоящего сундука На президентских выборах в России в марте 2012 года комплексы электронного голосования применялись на 337 избирательных участков в семи субъектах Федерации (всего 311 КЭГов, из них 146 были в Татарстане , остальные были установлены в Кабардино-Балкарии , Мурманской и Томской областях, республиках Коми , Марий Эл , Хакасии , Чечне ), а также за границей — в Латвии , Германии , Казахстане (на Байконуре ) и Польше . Простой протокол тайного цифрового голосования Шаг 1. А выкладывает списки возможных избирателей. Шаг 2. Пользователи, в числе которых и E , сообщают о желании участвовать в голосовании. Шаг 3. А выкладывает списки легитимных избирателей. Шаги 1-3 обязательны. Основная цель — определение и объявление числа активных участников n . Хотя некоторые из них могут не участвовать, а некоторые — и вовсе не существовать («мёртвые души», злонамеренно внесённые A ), возможность манипулирования голосованием у A заметно снижена. В дальнейшем эти шаги будут считаться за один шаг «утвердить списки». Шаг 4. А создаёт открытый и закрытый ключ   и   и выкладывает в общий доступ   . Кто угодно может зашифровать сообщение при помощи   , но расшифровать его сможет только А . Шаг 5. E создаёт собственные публичный и приватный ключи ЭЦП   и   , затем публикует открытый ключ. Кто угодно может проверить документ E , но подписать его — только сам избиратель. Этот шаг пропускается, если A уже знает электронные подписи избирателей (например, они были сгенерированы при регистрации в системе). формирует сообщение B , где тем или иным способом выражает свою волю подписывает сообщение личным закрытым ключом   шифрует сообщение открытым ключом   отправляет шифрованное сообщение A Шаг 6. A собирает сообщения расшифровывает их при помощи лежащего в открытом доступе   подсчитывает их и публикует результаты Особенности, преимущества и недостатки Требования к системам тайного голосования никто, кроме голосующего, не должен знать его выбор; только легитимные участники могут проголосовать, и притом только один раз;
  28. решение голосующего не может быть тайно или явно кем-либо изменено (кроме, возможно, как им самим). каждый легитимный участник может проверить, правильно ли зачтён его голос; каждый легитимный участник может передумать и изменить свой выбор в течение определённого периода времени; система должна быть защищена от продажи голосов избирателями [22] ; в случае, если голос зачтён неправильно, каждый легитимный участник может сообщить об этом системе, не раскрывая своей анонимности [23] ; невозможно отследить, откуда дистанционно проголосовал избиратель; аутентификация оператора; можно узнать, кто принимал участие в голосовании, а кто — нет; поддержание системы не должно требовать много ресурсов; система должна быть отказоустойчива в случае технических неисправностей (потеря электропитания), непреднамеренных (потеря избирателем ключа) и злоумышленных (намеренная выдача себя за другого избирателя, DoS / DDoS ) атак. Достоинства и недостатки ЭГ Из опыта стран-пионеров ЭГ можно выделить как ряд очевидных достоинств. Граждане могут участвовать в политической жизни страны где бы они не находились – достаточно просто иметь гаджет под рукой. Время проведения выборов и подсчета голосов происходит на порядок быстрее. А затраты на проведение процедуры значительно уменьшаются. ЭГ повышает привлекает молодых избирателей. Выборы становятся прозрачными – сложнее устроить “вбросы” и фальсификацию.  И, разумеется, недостатки тоже имеют место быть. Помимо каких-то юридических моментов (например, частичное или полное отсутствие законодательной базы для регулирования процедуры) есть ряд вопросов по информационной безопасности этого процесса, которые и представляют для нас главный интерес. Информация, передаваемая по интернету, очевидно, гораздо уязвимее с точки зрения потенциальных хакерских атак или же банальных компьютерных сбоев – то есть возможно внешнее вмешательство в ход выборов. Есть риск п олуче ния и использования злоумышленниками в корыстных целях персональных данных избирателей.  Из-за того, что каждый избиратель обладает уникальным номером, то не составляет труда идентифицировать личность конкретного голосовавшего по этому самому номеру, что уничтожает тайну волеизъявления. Сосредоточимся на последнем недостатке и рассмотрим решение проблемы, которое он вызывает.
  29. Простой протокол тайного цифрового голосования
  30. Особенности, преимущества и недостатки
  31. Требования к системам тайного голосования
  32. Достоинства и недостатки ЭГ


  • 2000 год, Калифорния — проблемы с системами электронного голосования во Флориде
    во время президентских выборов
    .
  • 2 марта 2004 года, Калифорния
     — неправильно настроенный сканер отметок пропустил 6692 пустых бюллетеня во время президентских выборов
    .
  • Устройства AccuVote
    -TSx были изучены группой учёных из университета Принстона
    . Они показали, что на эти машины может быть установлено мошенническое ПО менее чем за минуту. Также, учёные обнаружили, что эти устройства могут передавать друг другу компьютерные вирусы
    во время сеансов связи до или после выборов.

Шаг 1. Формирование списка кандидатов

Демонстрация кандидатов и их номеров наблюдателям
Демонстрация кандидатов и их номеров наблюдателям

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


  • В фильме « Человек года
    » (2006) герой Робина Уильямса
    выигрывает президентские выборы благодаря ошибке во время подсчёта голосов на электронном устройстве.
  • Документальный фильм «Взламывая демократию» ( 2006
    ) запечатлел аномалии и нарушения в работе электронных систем для голосования, произошедшие с 2000 по 2004 год, особенно во Флориде
    .
  • Документальный фильм «Неучтённый» ( 2008
    ) показал проблемы АО и ПО устройств Diebold
    .
  • В начале одного из хэллоуинских спецвыпусков
    ( Treehouse of Horror XIX

    ) мультсериала « Симпсоны
    » отображена сцена, в которой Гомер Симпсон
    в ходе президентских выборов США за 2008 год
    , используя терминал с сенсорным экраном, пытается проголосовать за Барака Обаму
    , однако все шесть раз автомат засчитывает голос в пользу Джона Маккейна
    . Когда Гомер понял в чём тут дело, автомат убил его, засосав внутрь себя и «выплюнув», после чего Джаспер Бердли
    наклеил на голову лежащего на полу тела наклейку «Я проголосовал!» [22]
  • В сериале « Герои
    » влиятельный преступник Линдерман помогает выиграть выборы Нейтану Петрелли при помощи мальчика, управляющего электронными устройствами через прикосновение.

Шаг 5. Расшифровка

ДИТ достает бюллетень из сундуков
ДИТ достает бюллетень из сундуков

Итак, голосование заканчивается, надо подводить итоги выборов.

ДИТ берет фальш-сундук из витрины и открывает его секретным ключом, достает из него настоящий сундук и ключ избирателя. Далее он берет свой ключ из пункта 2 и одновременно с ключом избирателя открывает ими двойной замок. И достает из сундука бюллетень с поддельными номерами кандидатов.

Как устроено электронное голосование простым языком и в рисунках

Время на прочтение

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

Но проблема в том, что система достаточно сложна и имеет свои нюансы. Если рассказывать далекому от IT человеку про все тонкости блокчейна и шифрования, то он послушает вас минуту, а потом развернётся и уйдет по своим делам, ничего не поняв. Это одна из главных проблем электронного голосования — 99% избирателей не понимают, как оно работает и где оно может нас обмануть.

Как говорил Стивен Хокинг, любая формула снижает количество читателей вдвое. Мне кажется, что любой IT-термин снижает аудиторию минимум втрое, поэтому я попытался не использовать профильные термины, а объяснил все «на пальцах» и в комиксе! Надеюсь, у меня это получилось.

Если Вы хотите узнать поглубже о проблемах электронного голосования, рекомендую статью Петра Жижина
:

Словарь метафор

Сундук — Зашифрованная информация

Замки и ключи — Ключи шифрования

Блокчейн — Витрина

Выработка ключей шифрования

Общий открытый ключ шифрования бюллетеней вырабатывается с применением двух криптографических алгоритмов: протокол DKG Pedersen 91 распределенной выработки ключа и протокол разделения ключа Шамира. На базе каждого из этих алгоритмов вырабатывается “промежуточный” открытый ключ. Затем эти два ключа комбинируются в один общий.

Схема сборки ключа приведена ниже на рисунке.

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

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

Но если нет возможности собрать кворум независимых участников блокчейн-сети, запускается процедура разделения ключа между независимыми участниками, которые являются хранителями отдельных частей ключа, записываемых на внешние носители (ключ Комиссии)

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

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

Участниками процедуры распределенной выработки ключей являются n серверов подсчета голосов, о которых мы писали ранее в обзорной статье
. Все операции взаимодействия серверов подсчета, как промежуточные, так и конечные фиксируются в блокчейне, а, следовательно, прозрачны и проверяемы. В системе реализована пороговая схема «k из n», то есть при расшифровании данных не требуется участие всех n сторон, формировавших открытый ключ DKG, достаточно меньшего числа участников k. Это позволяет расшифровать результаты голосования, даже если n-k серверов подсчета недоступно, либо их закрытые ключи утрачены.

Для формирования открытого ключа используется алгоритм DKG (Distributed Key Generation), описанный в статье «A threshold cryptosystem without a trusted party» автора Torben Pryds Pedersen, перенесенный на эллиптические кривые. Предполагается, что каждый сервер обладает постоянной (фиксируются регистратором в учетчике) ключевой парой Диффи-Хеллмана, используемой для защищенной передачи данных этому серверу (экспорт/импорт долей ключа).

Параметры протокола

В общем виде алгоритм получения точки Q выглядит следующим образом: берется любая последовательность байт, например строка “Hello, World!”, и от нее считается хэш h = Hash(“Hello, World!”) после чего преобразуем последовательность байт h в число и считаем $x0=h mod p$
, где p – модуль кривой, подставляем $x0$
в уравнение кривой: $y^2= x0^3+ a*x0+b mod p$
и пытаемся его решить относительно y. При отсутствии решения мы инкрементируем x0 и снова пытаемся решить уравнение для нового значения x0 и т.д.

Шаг 0.

Каждому из n серверов присваивается уникальный порядковый номер от 1 до n. Это необходимо, поскольку коэффициент Лагранжа зависит от порядкового номера сервера.

Шаг 1 — создание открытого ключа DKG.

Используя скаляры, каждый может восстановить открытые ключи каждого сервера $Pub_j=C_j-r_j⋅Q$
и вычислить открытый ключ DKG $Pub=∑_(j=1)^n Pub_j $
.

Отрытый ключ DKG записывается в блокчейн.

Шаг 2 — генерация полиномов и раздача теней.

1. Генерирует случайным образом полином степени k-1:

$f_j (x)=f_(j,0)+f_(j,1)⋅x+⋯+f_(j,k-1)⋅x^(k-1),$

где коэффициент $f_(j,0)=priv_j$
, а остальные — случайные элементы поля GF(q).

2. Считает значения полинома $f_j (i),i=1,…,n,i≠j.$

3. Зашифровывает значение $ f_j (i)$
при помощи открытого ключа экспорта/импорта i -го сервер для каждого i и публикует с помощью учетчика результаты шифрования.

Шаг 3 — проверка коэффициентов полиномов.

1. Публикует каждый коэффициент своего полинома, умноженный на генератор P.

$F_(j,0)=f_(j,0)⋅P,F_(j,1)=f_(j,1)⋅P,…,F_(j,k-1)=f_(j,k-1)⋅P$

2. Расшифровывает все значения $f_i (j),i=1,..,n,i≠j$
и проверяет их корректность:

Вычисляет $A=f_i (j)⋅P$

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

Если A=B, то результат принимается, иначе публикуется жалоба на сервер i, и протокол запускается с самого начала — переход к шагу 0.

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

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

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

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

MainPubKey = Hash(PubDKG, PubCommission)*PubDKG + Hash(PubCommission,PubDKG)*PubCommission

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

Протокол Хэ — Су


Шаг 1.
V
  • утверждает списки легитимных избирателей
  • создаёт  

    и  

    (используются для асимметричного шифрования)
  •  

    выкладывается в свободный доступ
Шаг 2.
E
  • создаёт  

    и  

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

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

    и вычислить  
  • отправляет  

    V
Шаг 3.
V
  • проверяет легитимность избирателя
  • дешифрует  

    :  

    . Часть  

    считается подписанным ключом
  • отправляет  

    E
Шаг 4.
E
  • снимает слой ослепляющего шифрования (умножает на обратный элемент  

    ) и получает подписанный ключ  
  • проверяет подлинность подписи регистратора: выполняется ли  
  • отправляет A
    пару  
Шаг 5.
A
  • как и E
    проверяет подлинность подписи регистратора
  • проверяет, совпадает ли хеш-функция от  

    в паре с той, что хранится в  
  • добавляет  

    в список авторизированных ключей и сообщает об этом E
Шаг 6.
E
  • создаёт  

    (используется для шифровки бюллетеней, чтобы ни A
    ни внешний злоумышленник до нужного времени не мог узнать содержимое бюллетеня)
  • подготавливает сообщение B
    с выбранным решением
  • отправляет A
    набор  
Шаг 7.
A
  • проверяет авторизованность ключа
  • проверяет подлинность сообщения сравнивая хеш зашифрованного сообщения и хеш, полученный при помощи  
  • публикует тройку в открытом списке
Шаг 8.
Появление тройки в открытом списке сигнализирует E
отправить A
новый набор:  
Шаг 9.
A
  • проверяет подлинность сообщения, сравнивая хеши
  • расшифровывает ранее полученную бюллетень
  • публикует все данные
  • подсчитывает результат
Шаг 10.
После голосования V
публикует список всех зарегистрировавшихся избирателей, а A
 — список всех авторизованных ключей.


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


Структура записей в блокчейне

Вся информация в блокчейне записывается тремя типами транзакций:

  • CreateContract – для создания смарт-контракта под конкретное голосование. Далее в этом смарт-контракте будет агрегироваться вся информация по голосованию. Если одновременно проводится два (и более) голосования, то создается, соответственно, два (и более) экземпляра контракта.
  • CallContract – для взаимодействия со смарт-контрактом по различным операциям, перечень которых приведем далее.
  • Data transaction – для записи списка избирателей после создания экземпляра смарт-контракта голосования и перед началом непосредственно голосования.

Взаимодействие со смарт-контрактом производится по следующим операциям:

  • Запись базовых данных в смарт-контракт. Здесь сохраняются публичные ключи северов подсчета, которые будут участвовать в криптографическом протоколе, threshold схема, ключи проверки слепой подписи и другие данные, необходимые для организации работы протокола и голосования в целом.
  • dkgScalar, dkgCommit, dkgShadows – данные, необходимые для сборки публичного ключа шифрования бюллетеней и реализации пороговой k из n схемы. Подробнее об этом поговорим далее в статье.
  • addMainKey – запись набора публичных ключей и общего публичного ключа шифрования бюллетеней.
  • blindSigIssue – запись факта выдачи слепой подписи.
  • vote – запись непосредственно зашифрованного голоса избирателя.
  • finishVoting – команда завершения голосования. После нее новые бюллетени не принимаются.
  • Decryption – запись частичного расшифрования результатов голосования. Отправляется каждым сервером подсчета.
  • ComissionDecryption – запись частичного расшифрования результатов голосования на закрытом ключе комиссии.
  • Results – запись расшифрованных итогов голосования. О расшифровании, подведении итогов и записи результатов подробнее далее в статье.

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

Ниже на рисунках представлено отображение транзакции с голосом в блокчейн-клиенте.

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

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

Вся информация о голосовании агрегируется на смарт-контракте и будет доступна через блокчейн-клиент наблюдателям или в виде csv-файла любому желающему.

Ниже на рисунке представлено отображение агрегированной информации в смарт-контракте.

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

*Данные с тестового сервера.

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

Шаг 3. Голосование

Подмена номеров кандидатов
Подмена номеров кандидатов

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

Избиратель запирает бюллетень и прикладывает к сундуку ключ
Избиратель запирает бюллетень и прикладывает к сундуку ключ

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

Браузер избирателя закрывает сундук на двойной замок, состоящий из половинок Избирателя и половинки ДИТа
Браузер избирателя закрывает сундук на двойной замок, состоящий из половинок Избирателя и половинки ДИТа

Обзор криптографического протокола системы дистанционного электронного голосования

Время на прочтение

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

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

Инициализация системы. На этапе инициализации голосования выполняются следующие криптографические операции:

  • Выработка ключевой пары валидатора для выдачи и проверки слепой подписи, как наиболее стойкий и рекомендуемый академическим сообществом для процедуры анонимизации в системах электронного голосования. В настоящий момент системой поддерживается алгоритмы слепой подписи на эллиптических кривых и на базе алгоритма шифрования RSA. В проводимом голосовании использовался алгоритм выдачи и проверки слепой подписи на базе алгоритма шифрования RSA с длиной ключа 4096 бит.
  • Выработка общего открытого ключа шифрования. Для большей безопасности в процессе выработки ключа используется сразу два криптографических алгоритма: протокол DKG Pedersen 91 распределенной выработки ключа и протокол разделения ключа Шамира. Выработка ключа осуществляется как участниками, обладающими техническими средствами, позволяющими контролировать непосредственно ноды сети и сервера подсчета, так и участниками, которые являются хранителями ключей, записанных на внешние носители. Итогом работы двух этих алгоритмов является общий открытый ключ шифрования бюллетеней. Далее мы более подробно рассмотрим процедуру выработки этого ключа.


Предоставление доступа к бюллетеню
. На данном этапе работают следующие механизмы:

  • Выработка ключевой пары электронной подписи на устройстве избирателя по ГОСТ Р 34.10-2012
  • Выработка слепой подписи для маскированного открытого ключа избирателя для удостоверения и последующей проверки его права принять участие в голосовании. В настоящий момент механизм базируется на алгоритме шифрования RSA. Подробно механизм анонимизации рассматривается в отдельной статье.

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

  • Шифрование бюллетеня по схеме Эль-Гамаля на эллиптических кривых. Данная схема используется в протоколе, поскольку обладает свойством гомоморфности по сложению, что позволяет получить результаты голосования без расшифрования каждого бюллетеня.
  • Доказательство с нулевым разглашением Disjunctive Chaum-Pedersen range proof используется для доказательства корректности содержимого бюллетеня без его расшифрования. Данный механизм мы разберем подробно в следующей статье.
  • Электронная подпись зашифрованного бюллетеня по ГОСТ Р 34.10-2012.

Подсчет итогов.
На этапе подведения итогов выполняется:

  • Гомоморфное сложение зашифрованных бюллетеней.
  • Предварительное частичное расшифрование итогового суммированного бюллетеня частями закрытого ключа участниками, контролирующими отдельные ноды и серверы подсчета с получением шифротекстов от каждого участника;
  • Сборка закрытого ключа в Избирательной комиссии и частичное расшифрование итогового суммированного бюллетеня собранным ключом.
  • Окончательное суммирование шифротекстов и получение итогов подсчета.
  • Выработка и проверка доказательства с нулевым разглашением Chaum-Pedersen proof. Используется для доказательства корректности расшифрования итогового суммированного бюллетеня. Данный механизм мы разберем подробно в следующей статье.

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

Давайте разберем криптографические механизмы подробнее.

Шаг 2. Формирование ключей и замков

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

Ключи и замки
Ключи и замки
На самом деле, там чуть сложнее, но суть одна — этот ключ формируется и находится у представителей власти.

В 2022 году ключ разделили на пять частей. Перед подведением итогов голосования его соединяют обратно.

Хранителями пяти частей ключа стали:

• Руководитель Общественного штаба по наблюдению Вадим Ковалев

• Секретарь Мосгоризбиркома Владимир Попов

• Председатель Мосгордумы Алексей Шапошников

• Член ЦИК РФ Антон Лопатин

• Глава городского округа Троицк Владимир Дудочкин.

Почему именно они? Потому что

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

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

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

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

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

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

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

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


Шаг 1.
V
  • создаёт набор опознавательных меток  

    и утверждает список возможных избирателей
  • отправляет по защищённому каналу по одной метке каждому голосующему
  • отправляет A
    весь набор меток без информации о том, какая метка кому принадлежит
Шаг 2.
E
  • генерирует  

    ,  

    (для цифровой подписи) и  

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

    публикуется
  • формирует сообщение B
    с выбранным решением
  • подписывает его  
  • прикладывает к нему полученный  
  • шифрует при помощи  
  • снова прикладывает к шифротексту  
  • отправляет шифротекст  

    на рассмотрение в A
Шаг 3.
A
  • получает шифротекст. По внешнему тегу оно определяет, что сообщение пришло от легитимного пользователя, но не может определить, ни от какого, ни как он проголосовал.
  • выкладывает в открытый доступ полученную пару тег-шифр
Шаг 4.
Опубликованный файл служит сигналом E
отправить секретный ключ  
Шаг 5.
A
  • собирает ключи
  • расшифровывает сообщения
  • производит подсчёт голосов
  • присоединяет к опубликованному шифротексту бюллетень без опознавательного тега, на чём голосование заканчивается.


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

Алгоритм реализации и его криптостойкость

Время на прочтение

Электронное голосование (ЭГ) – это дистанционное голосование, позволяющее не привязывать волеизъявление граждан к фактическому месту их нахождения. В силу того, что интернет-технологии не только развиваются с невероятной скоростью, но и становятся все более неотъемлемой частью жизни для простого обывателя, их применение в политических процессах более чем обоснованно и естественно. Однако, как и любое другое техническое решение, электронное голосование создает ряд трудностей и проблем, которые необходимо преодолеть. В данной работе мы не только обсудим достоинства и недостатки ЭГ, но также заострим особое внимание на реализацию алгоритмов, обеспечивающих главный критерий избирательной системы – тайну волеизъявления, и обсудим уязвимые с сточки зрения защиты информации в них места.


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

центров голосований  

и  

избирателей  

, то количество битов, необходимое для доски бюллетеней —  

, где  

 — некоторая переменная криптостойкости, пропорциональная количеству битов ключа.

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

Реализация слепой подписи на практике

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

Порядок действий будет следующим:          

1) Избиратель авторизуется на официальном портале. В нашем случае это “Госуслуги”. По сути гражданин просто сообщает свои персональные данные.

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

3) На устройстве избирателя генерируются секретный ключ S
и публичный ключ K
. Это происходит в браузере.

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

5) Ключ K'
отсылается на сервер, который выдает бюллетени.

6) Сервер подписывает K'
своим ключом (назовем эту подпись C'
), после чего отсылает ее обратно на устройство голосующего вместе со своим публичным ключом, который абсолютно одинаков для всех пользователей.

7) Бюллетень с выбранным вариантом шифруется публичным ключом с сервера и подписывается ключом S
.

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

9) Зашифрованный бюллетень с подписью (вместе с K
и C
) отсылается на сервер приема бюллетеней.

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

11) После этой проверки сервер отправляет бюллетень в базу.

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

Более наглядно алгоритм можно представить в виде блок-схемы (см. рис. 6).

Рис. 6. Блок-схема процесса голосования
Рис. 6. Блок-схема процесса голосования

Немного из истории электронного голосования. Опыт разных стран

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

В 2002 году ЭГ проводилось в Швейцарии. Здесь уже правительство заранее озаботилось созданием правовой базы. Кроме того, голосование проводилось с использованием универсальных и стандартизированных ID-карт. С одной стороны, они не позволяли голосовать одному человеку дважды. С другой стороны, списки голосовавших состояли не из имен, а из номеров этих карт, что обеспечивало анонимность голосования. Благодаря ЭГ явка повысилась, а 90% швейцарцев сказали, что хотели бы снова принять участие в подобных выборах.

Рис.1. ID-карта избирателя в Швейцарии
Рис.1. I D-карта избирателя в Швейцарии

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


Устройства подсчёта голосов

Системы электронного подсчёта голосов применяются на выборах с 1960-х
годов, с тех пор, как появились перфокарты
.

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

Системы прямой записи голосов, накапливающие голоса на одном устройстве
, используются повсеместно в Бразилии
, также достаточно широко распространены в Индии
, Нидерландах
, Венесуэле
и США
.

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

Устройства заполнения

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


Электронные системы голосования с использованием бумажных носителей

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


Система голосования с прямой записью

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

Также система может передавать итоги в центр голосования для сверки и подсчёта.

Примеры: Электронная система голосования в Государственной Думе


Системы голосования, использующие публичные сети

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

компьютерным сетям

. Информация может передаваться после каждого голоса, периодически в виде набора голосов, либо один раз по окончании голосования. Таким образом организованы Интернет-голосования
и телефонные голосования. В подобных системах может использоваться как подсчёт голосов на месте голосования, так и централизованный подсчёт.

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

Примеры: Эстонская ID-карта
.


Системы интерактивного голосования

Данные системы для сбора результатов используют пульты для голосования. Данные пульты обычно напоминают пульт от телевизора или калькулятор. Форм-фактор пультов зависит от компании производителя и поставщика услуг.

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

Вывод результатов голосования возможен как на экран проектора или плазменную панель в виде слайдов презентации MS PowerPoint, так и в виде отчёта в файл с расширением .xls (MS Excel).

Преимущества данной системы перед другими средствами подсчета являются:

  • возможность выводить результаты голосования сразу после окончания голосования, с задержкой не более 1—2 секунд;
  • отображать ход голосования в реальном времени;
  • все пульты имеют уникальный индивидуальный номер, что позволяет использовать данную систему в качестве инструмента для выявления победителей в различных викторинах;
  • так как пульты имеют уникальные номера, то исключается возможность подтасовки результатов по ходу голосования;

Возможности данной системы:

  • Простой опрос — простой опрос участников голосования об их мнении.
  • Викторина — тестирование, которое подразумевает один или более правильных ответов. За каждый ответ возможно начисление балов.
  • Голосование — голосование по принципу «За / Против / Воздержался».

Блокчейн-платформа

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

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

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

Размещение и резервирование узлов блокчейна происходит в географически распределенных ЦОД ПАО «Ростелеком». При этом ответственность за «атомарный» набор компонентов, участвующий в хранении всех данных голосования, может быть возложена на избирательную комиссию или различные институты общественного наблюдения.

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

Список участников может со временем меняться – от минимального на этапе запуска системы в промышленную эксплуатацию, до достаточно широкого и полностью децентрализованного по мере развития системы. При этом всегда существует возможность размещения набора компонентов вне ЦОД.

В качестве блокчейн-платформы используется отечественное решение Waves Enterprise. Транзакции и блоки подписываются по ГОСТ Р 34.10-2012.

Стандарт слепой подписи и его криптостойкость

Существует множество стандартов электронных цифровых подписей (ЭЦП). Самый последний из них (ГОСТ_34.10-2018) был принят 1 июня 2019 года и применяется в том числе и в отечественной системе электронного голосования. Именно его мы и рассмотрим.

Обговорим параметры, фигурирующие в данном стандарте:

J(E)=1728\cdot \frac{4a^3}{4a^3+27b^2}\ mod p, \qquad 4a^3+27b^2\not\equiv 0\mod p,\qquad a,b\in F_p

  • Порядок группы m
    точек эллиптической кривой — это целое число, отличное от p.

  • Порядок q
    (простое число) некоторой циклической подгруппы группы точек эллиптической кривой, удовлетворяющей следующим условиям: m =nq,\ n\in \mathbb{N}, \qquad 2^{254}< q<2^{256}

  • Так называемый генератор подгруппы q-
    точка P=(x_p,y_p) \in E
    , для которой имеют место равенства q \cdot P =0,\qquad k\cdot P \neq 0, \ k=1,2,...,q-1
    , где 0\:-
    нейтральный элемент.

  • h(M) -
    так называемая хеш-функция. Она отображает сообщение M
    в двоичные векторы длиною в 256 бит.

  • Целое число d\:-
    ключ шифрование, которым обладает любой пользователь, использующий цифровую подпись, и которое лежит в пределах 0<d<q.

  • Точка Q=(x_p,y_p) \in E \:-
    ключ расшифрования, которым также обладает любой пользователь, использующий цифровую подпись, и который равен Q=d\cdot q.

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

p^t \neq 1\; mod\ q, \qquad t=1,...,B \geq31 \ и \ J(E) \neq0,1728

Обратим внимание на хеш-функцию. Она представляет из себя двоичный вектор из 256 компонент: h=(a_{255}, \ ...\ ,a_{0}).
Двоичные векторы можно “сшивать” (операция конкатенации): h_a = (a_{255}, \ ... \ ,a_0), h_b = (b_{255}, \ ... \ ,b_0)x \mapsto (h_a|h_b) = (a_{255}, \ ... \ ,a_0, b_{255}, \ ... \ ,b_0)

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

z= \sum_{i=0}^{255}a_i\cdot 2^i, \qquad z\leqslant 2^{256}.

Биективное оно потому, что формула, его задающая, есть ни что иное, как представление числа z
в двоичном виде h.

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

Начнем с формирования ЭЦП. Наглядная блок-схема представлена на рисунке (см. рис. 4), поэтому распишем только формулы, которые мы применяем на каждом шаге.

  1. e =z \ mod \ q. Если \ e =0, \ то \ e=1.

  2. C = kP \to x_c -координата \ C \to r=x_c \ mod \ q.
    Если r=0
    , то возвращаемся к шагу 3).

  3. s = rd+ke\ mod\ q.
    Если s=0
    , то возвращаемся к шагу 3).

  4. Ставим векторы в соответствие числам r\leftrightarrow h_r = \vec{r}, \ s\leftrightarrow h_s = \vec{s}, \ \xi = (\vec{r}|\vec{s})

Рис. 4. Блок-схема алгоритма формирования ЭЦП
Рис. 4. Блок-схема алгоритма формирования ЭЦП

Теперь проверим ЭЦП. Также сошлемся на наглядную блок-схему (см. рис.5), а каждый шаг опишем сухой формулой.

  1. \vec{h} = h(M).

  2. \nu=e^{-1} \ mod\ q.

  3. C = z_1 P+z_2Q \to x_c \ - координата \ C \to R = x_c \ mod\ q.

  4. R = r \to
    подпись верна, иначе — нет.

Рис. 5. Блок-схема алгоритма проверки ЭЦП
Рис. 5. Блок-схема алгоритма проверки ЭЦП

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

Стойкость хеш-функции: Вероятность того, что хеш-функцию данного стандарта взломают подбором коллизии на фиксированное сообщение, составляет 1,73 \cdot 10^{-77}.
Если заниматься подбором произвольной коллизии, то вероятность повышается до 2,94 \cdot10^{-39},
но все равно остается чрезвычайно малой.

Стойкость алгоритма шифрования: она определяется проблемой дискретного логарифмирования в группе точек эллиптической кривой. Поскольку пока не существует алгоритмов этой оценки, обратимся к наибыстрейшему – методу Полларда. Для него вычислительная сложность оценивается как O(\sqrt{q}).
Следовательно, если положить, что q
имеет 256 разрядов, это обеспечит криптостойкость в

операций.

    • Опыты регламентации и реализации

      Информация в этом разделе устарела
      .

      Вы можете помочь проекту, обновив её
      и убрав после этого данный шаблон.

      (
        25 августа 2021

      )

    • Текущее состояние дел
    • Протокол Фудзиоки — Окамото — Оты


      Шаг 1.

      V
      утверждает списки легитимных избирателей

      Шаг 2.
      E

      • создаёт  

        ,  

        (для цифровой подписи) и  

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

      Шаг 3.
      V
      • создаёт  

        и  

        , публичный ключ выкладывается в общий доступ
      • удостоверяется, что бюллетень действительный и принадлежит легитимному и не голосовавшему избирателю
      • подписывает его  
      • возвращает его E
      Шаг 4.
      E
      снимает с бюллетени слой маскирующего шифрования (в силу коммутативности остаётся  

      ) и отправляет её A
      Шаг 5.
      A
      • проверяет подписи E
        и V
      • помещает всё ещё зашифрованную  

        бюллетень в специальный список, который будет опубликован после того как все избиратели проголосуют или по истечении заранее оговорённого срока
      Шаг 6.
      После того как список появляется в открытом доступе, E
      высылает A
       
      Шаг 7.
      A
      • расшифровывает сообщение
      • подсчитывает результаты



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

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

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

  • Первый тип ZKP (zero-knowledge proof), применяемых в cистеме – доказательства диапазона. Данные ZKP используются при публикации зашифрованного бюллетеня, чтобы в отсутствие информации о том, как проголосовал участник голосования, можно было убедиться, что участник не испортил бюллетень на своем устройстве одним из следующим способов:

    участник не зашифровал в бюллетене по отдельному варианту голосования значение больше единицы, что повлияло бы на итог голосования при «зашифрованном сложении»;

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

    Более подробное описание реализации NIZK, а также их проверки, будет рассмотрено в отдельной статье.

    Шаг 4. Секретное шифрование


    ДИТ тайно засовывает настоящий сундук с бюллетенем в свой фальшивый

    ДИТ получает этот сундук с ключом и зачем-то вместо того, чтобы сразу положить его на витрину, как это должно быть, он

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

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


      На президентских выборах в России
      в марте 2012 года комплексы электронного голосования
      применялись на 337 избирательных участков в семи субъектах Федерации (всего 311 КЭГов, из них 146 были в Татарстане
      , остальные были установлены в Кабардино-Балкарии
      , Мурманской
      и Томской
      областях, республиках Коми
      , Марий Эл
      , Хакасии
      , Чечне
      ), а также за границей — в Латвии
      , Германии
      , Казахстане
      (на Байконуре
      ) и Польше
      .

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


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

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

      Шаг 4.
      А
      создаёт открытый и закрытый ключ  

      и  

      и выкладывает в общий доступ  

      . Кто угодно может зашифровать сообщение при помощи  

      , но расшифровать его сможет только А
      .
      Шаг 5.
      E
      • создаёт собственные публичный и приватный ключи ЭЦП  

        и  

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


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

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

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

        участники могут проголосовать, и притом только один раз;

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

      • каждый легитимный участник может проверить, правильно ли зачтён его голос;
      • каждый легитимный участник может передумать и изменить свой выбор в течение определённого периода времени;
      • система должна быть защищена от продажи голосов избирателями [22]

        ;
      • в случае, если голос зачтён неправильно, каждый легитимный участник может сообщить об этом системе, не раскрывая своей анонимности
        [23]

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

      Достоинства и недостатки ЭГ

      Из опыта стран-пионеров ЭГ можно выделить как ряд очевидных достоинств.

      1. Граждане могут участвовать в политической жизни страны где бы они не находились – достаточно просто иметь гаджет под рукой.

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

      3. ЭГ повышает привлекает молодых избирателей.

      4. Выборы становятся прозрачными – сложнее устроить “вбросы” и фальсификацию. 

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

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

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

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

      Сосредоточимся на последнем недостатке и рассмотрим решение проблемы, которое он вызывает.

    Оцените статью
    Праймериз