Сеть открытого голосования - Open vote network
В криптографии сеть открытого голосования (или OV-net) - это безопасный протокол многосторонних вычислений для вычисления функции логического подсчета: а именно, учитывая набор двоичных значений 0/1 на входе, вычислить общее количество единиц, не раскрывая каждое отдельное значение. Этот протокол был предложен Фенг Хао, Питером Райаном и Петром Зелински в 2010 году.[1] Он расширяет Хао и Зелински анонимная сеть вето протокол, позволяя каждому участнику подсчитать количество голосов вето (т. е. ввести один в логической функции ИЛИ), сохраняя при этом анонимность тех, кто проголосовал. Протокол можно обобщить для поддержки более широкого диапазона входных данных, помимо двоичных значений 0 и 1.
Описание
Все участники соглашаются на группу с генератором высшего порядка в котором проблема дискретного логарифмирования является сложной. Например, Группа Шнорра может быть использован. Предположим, есть участников. в отличие от других безопасные многосторонние вычисления протоколы, которые обычно требуют парных секретных и аутентифицированных каналов между участниками в дополнение к аутентифицированному общему каналу, OV-net требует только аутентифицированный общедоступный канал, доступный каждому участнику. Такой канал может быть реализован с использованием цифровых подписей. Протокол состоит из двух раундов.
1 тур: каждый участник выбирает случайное значение и публикует эфемерный открытый ключ вместе с доказательство с нулевым разглашением для доказательства знания экспоненты . Такие доказательства могут быть реализованы с помощью неинтерактивных доказательств Шнорра с нулевым разглашением, как описано в RFC 8235.
После этого раунда каждый участник вычисляет:
Раунд 2: каждый участник издает куда равно 0 или 1 вместе с 1 из 2 доказательство с нулевым разглашением для доказательства того, что один из . Такие доказательства 1 из 2 могут быть реализованы с использованием техники доказательства с нулевым разглашением Крамера, Дженнаро и Шенмейкера.[2].
После раунда 2 каждый участник вычисляет . Обратите внимание, что все ценности исчезают, потому что . Показатель представляет собой количество единиц. Поскольку это обычно небольшое число, счет может быть вычислен путем полного поиска.
В целом, эффективность двух раундов теоретически является наилучшей. С точки зрения вычислительной нагрузки и использования полосы пропускания OV-net также является наиболее эффективным среди связанных методов.[1].
Максимальная секретность
Протокол OV-net гарантирует секретность входного бита, если не известны все остальные входные биты. Защита секретности является максимальной, поскольку, когда все другие биты известны, оставшийся бит всегда может быть вычислен путем вычитания значений известных входных битов из выходных данных функции логического подсчета.
Приложения
Прямым применением OV-net является создание системы голосования в зале заседаний, где выборы управляются самими избирателями. При выборах одного кандидата каждый избиратель отправляет либо «Нет», либо «Да», что соответствует значениям 0 и 1. Каждый избиратель, а также наблюдатель может подсчитать голоса «Да» самостоятельно, не требуя никаких полномочий для подсчета голосов.
Существуют стандартные методы продления выборов с одним кандидатом для поддержки нескольких кандидатов. Простой метод - провести выборы одного кандидата параллельно для нескольких кандидатов, и каждый избиратель ставит каждому из кандидатов «Да / Нет». Дополнительные доказательства с нулевым разглашением необходимы, если избиратель может голосовать только за одного кандидата. Другой метод заключается в изменении кодирования кандидатов: вместо использования 0 и 1 для «Нет» и «Да» при выборах с одним кандидатом закодируйте каждого кандидата уникальным номером, чтобы число для каждого кандидата могло быть однозначно вычислено. В этом случае вместо этого используется более общее доказательство с нулевым разглашением 1 из n, где n - количество кандидатов.
Выполнение
Прототип реализации OV-net был представлен Маккорри, Шахандашти и Хао на Financial Cryptography'17 как смарт-контракт над блокчейном Ethereum.[3]. Исходный код общедоступный. Эта реализация является частью Ньюкаслский университет решение команды на "Удаление доверенных органов подсчета голосов: самоподдерживающееся электронное голосование через Ethereum ", которая заняла третье место в 2016 Economist Cybersecurity Challenge совместно организованный Экономист и Лаборатория Касперского.
Рекомендации
- ^ а б Hao, F .; Ryan, P.Y.A .; Зелинский, П. (2010). «Анонимное голосование путем публичного обсуждения в два тура» (PDF). Информационная безопасность ИЭПП. 4 (2): 62. Дои:10.1049 / iet-ifs.2008.0127.
- ^ Крамер, Рональд; Дженнаро, Росарио; Шенмейкерс, Берри (1997-05-11). Безопасная и оптимально эффективная схема выборов с участием нескольких органов власти. Достижения в криптологии - EUROCRYPT '97. Конспект лекций по информатике. Шпрингер, Берлин, Гейдельберг. С. 103–118. CiteSeerX 10.1.1.43.5825. Дои:10.1007/3-540-69053-0_9. ISBN 978-3540690535.
- ^ Патрик МакКорри, Сиамак Ф. Шахандашти и Фэн Хао (2017). «Умный контракт для голосования в зале заседаний с максимальной конфиденциальностью избирателя» (PDF). Финансовая криптография, 2017.