- PVSM.RU - https://www.pvsm.ru -

Второй раз за месяц найдена уязвимость в московской системе электронного голосования

Две недели назад на Хабре писали [1] о найденной уязвимости в системе электронного голосования на выборах в Мосгордуму. Разработчики обещали ее устранить, но как выяснилось это породило новую уязвимость.

В опубликованной на сайте arxiv.org заметке Александра Головнева [2] указывается, что хотя разработчики устранили найденную Пьерриком Годри уязвимость в реализации схемы Эль-Гамаля, они вновь реализовали ее неправильно, что привело к возможности подсчета голосов в любой момент работы системы. Поскольку у нас в стране публикация результатов голосования запрещена до окончания выборов это, видимо, является серьезной уязвимостью.

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

Под спойлером немного математики

Пусть $p=2q+1$ и $q$ простые числа длины порядка 1024 бита. $Q_p$ — группа квадратичных вычетов по модулю $p$, $ |Q_p|=(p − 1)/2=q$. Для шифрования система выбирает $g in Q_p$, $pk in Q_p$ — открытый и $sk in {1, . . . , q}$ — секретный ключи ($pk=g^{sk}$). Результат шифрования голоса $m$ имеет вид пары$(g^r,pk^rm)$, $r$ -случайное число.

Если $m$ квадратичный вычет, то при любом $r$ второй компонент шифротекста тоже квадратичный вычет (аналогично — если не квадратичный вычет). Это дает возможность отличать различные голоса с помощью критерия Эйлера. Для этого нам достаточно возвести шифротекст в степень $(p-1)/2$ и проверить равен ли результат единице (в этом случае — это квадратичный вычет).

Например, номера кандидатов 1, 3 и 4 — квадратичные вычеты, а 2- нет. То есть, мы можем анализируя блокчейн по мере его обновления подсчитывать количество голосов за кандидата 2.

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

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

Автор: starpeer

Источник [4]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/informatsionnaya-bezopasnost/328485

Ссылки в тексте:

[1] писали: https://habr.com/ru/news/t/463863/

[2] Александра Головнева: https://arxiv.org/pdf/1908.09170.pdf

[3] критерия Эйлера: https://ru.wikipedia.org/wiki/%D0%9A%D1%80%D0%B8%D1%82%D0%B5%D1%80%D0%B8%D0%B9_%D0%AD%D0%B9%D0%BB%D0%B5%D1%80%D0%B0

[4] Источник: https://habr.com/ru/post/465413/?utm_campaign=465413&utm_source=habrahabr&utm_medium=rss