Для того, чтобы предоставить цифровые сервисы участникам избирательного процесса, из федерального бюджета выделят 6,2 млрд рублей. Соответствующая информация содержится в федеральном проекте «Цифровое государственное управление» нацпрограммы «Цифровая экономика».
В результате планируется обеспечить:
Обязательно должны быть разработаны такие документы, как:
Кроме того, в законодательные и нормативные акты Центральной избирательной комиссии (ЦИК) должны быть внесены такие изменения, которые необходимые для функционирования цифровых сервисов для участников избирательного процесса. Сами цифровые сервисы должны работать в личных кабинетах участников избирательного процесса.
Еще одна необходимая мера - централизованное ведение, хранение, актуализация и анализ данных об избирателях и участниках референдума с учетом данных, предоставляемых из государственных информационных систем и других государственных органов в рамках Национальной системы управления данными (НСУД). Избирательным комиссиям должны получить доступ к цифровой платформе для обеспечения реализации их полномочий, планирования и проведения избирательных кампаний, определения результатов выборов.
Федеральное решение разработано «Ростелекомом» совместно с Waves Enterprise. Исходный код системы был размещен в репозитории Github, а то, как работает решение, было рассказано «Ростелекомом» на «Хабрахабре». От системы требовалось:
В качестве участников системы определены избиратель, избирательная комиссия и наблюдатели. Также в процессе могут быть задействованы органы МВД (Министерства внутренних дел). Чтобы принять участие в выборах, избиратель должен был иметь подтвержденную учетные запись на Едином портале государственных и муниципальных услуг (ЕПГУ) и заранее подать через него заявление.
Как только заявление было получено, данные избирателя проходили проверку ЦИК и загружались в компонент «Список избирателей» программно-технического комплекса Дистанционное электронное голосование (ПТК ДЭГ). При этом процесс загрузки сопровождался записью уникальных идентификаторов в блокчейн. Допуск к просмотру списка имели члены избирательной комиссии и наблюдатели с помощью автоматизированного комплекса (АРМ), размещенного в помещении избирательной комиссии.
Само голосование происходило на портале госуслуг, а авторизация избирателей осуществлялась через Единую систему идентификации и аутентификации. Для обеспечения анонимности голосования вместе с допуском к выбору только авторизированных избирателей был применен криптографический алгоритм.
Для получения электронного бюллетеня пользователя переводят в другой домен -«анонимную зону». При этом человек может использовать VPN или сменить свой IP-адрес. Бюллетень заполняется на устройстве пользователя. Для шифрования бюллетеня на устройстве пользователя генерируется пара открытый и закрытый ключ.
Далее подписанный бюллетень в зашифрованном виде направляется в компонент «Распределенное хранение и подсчет голосов», построенной на базе блокчейн-платформы. Однако для принятия бюллетена был принят, другой компонент, «Список избиратель» должен получить открытый ключ избирателя и удостовериться, что он присутствует в списке избирателей.
Сохранение тайны голосования достигается за счет того, что открытый ключ никому, кроме самого избирателя, не передается. Доя этого он проходит процедуру маскировки («ослепления») с помощью алгоритма RSA с длиной ключа 4096 бит. В результате валидатор ставит подпись на замаскированном открытом ключ, не зная исходного ключа. В свою очередь пользователь после получения подписи на замаскированный ключ, может совершить обратные преобразования. В итоге он получит подпись - валидную и для исходного, незамаскированного ключа.
Чтобы не допустить определения результатов голосования до его завершения, шифрование голосов происходит с использованием схемы из открытого и закрытого ключей. Открытый ключ известен всем участникам процесса, он непосредственно шифрует голоса. Выработка ключа осуществляется с помощью алгоритмов DKG Pedersen 91 и протокола разделения ключей Шамира. Расшифровать голоса можно только с помощью закрытого ключа. Он разделен между участниками избирательного процесса таким образом, что каждая его отдельная часть бесполезна.
Подсчет голосов возможен только для сборки ключа. Голоса обычно, считаются вместе с их фиксацией в блокчейне. В процессе задействована схема гомоморфного шифрования по схеме Эль-Гамаля на эллиптических кривых: записанные в систему учета зашифрованные бюллетени можно без расшифрования скомбинировать таки что результатом расшифровки такого комбинированного шифротекста будет суммирование значения по каждому варианту выбора в бюллетенях. Для доказательства корректности содержимого бюллетеня без его расшифрования используется протокол Disjunctive Chaum-Pedersen range proof.
Блокчейн в обозначенной схеме обеспечивает;
Смарт-контракты проверяют каждую транзакцию с зашифрованными бюллетенями на подлинность электронной и «слепой» подписей, а также проводят базовые проверки корректности заполнения зашифрованного бюллетеня. Обращает на также внимание тот факт, что компонент «Распределенное хранение и подсчет голосов» не ограничивается только блокчейн-узлами: для каждого узла может быть развернут отдельный сервер, которые реализует основные критографические функции протокола голосования - серверы подсчета.
Что касается серверов подсчета, то они являются децентрализованными компонентами, обеспечивающие процедуру распределенной генерации ключа шифрования бюллетеней, а также расшифровку и подсчет итогов голосования. В задачи серверов подсчета входит: