Разработчик (и) | , Дэвид Чаум и. |
---|---|
Стабильная версия | 1.0 (2 ноября 2006 г.) |
Предварительная версия | 1.5 (16 июля 2007 г.) |
Написано на | Java |
Операционная система | Кросс-платформенная |
Доступна на | Английский |
Тип | система подсчета голосов |
Лицензия | Пересмотренная лицензия BSD |
Веб-сайт | http://punchscan.org/ |
Punchscan оптическое сканирование система подсчета голосов изобретена криптографом Дэвидом Чаумом. Punchscan разработан для обеспечения целостности, конфиденциальности и прозрачности. Система проверяется избирателями, предоставляет механизм сквозного (E2E) аудита и выдает бюллетень каждому избирателю. Система выиграла главный приз на конкурсе университетских систем голосования в 2007 году.
. программное обеспечение, которое включает в себя Punchscan, является открытым исходным кодом ; исходный код был выпущен 2 ноября 2006 г. под пересмотренной лицензией BSD. Однако Punchscan не зависит от программного обеспечения; он черпает свою безопасность из криптографических функций вместо того, чтобы полагаться на безопасность программного обеспечения, как машины для голосования DRE. По этой причине Punchscan можно запускать в операционных системах с закрытым исходным кодом , таких как Microsoft Windows, с закрытым исходным кодом, и при этом сохранять безусловную целостность.
Команда Punchscan с дополнительными участниками с тех пор разработала Scantegrity.
Punchscan бюллетень состоит из двух слоев бумаги. На верхнем уровне кандидаты перечислены с символом или буквой рядом с их именами. Под списком кандидатов есть ряд круглых отверстий в верхнем слое бюллетеня. Внутри отверстий нижнего слоя напечатаны соответствующие символы.
Чтобы проголосовать за кандидата, избиратель должен найти отверстие с символом, соответствующим символу рядом с именем кандидата. Это отверстие помечено чернильной мазкой в стиле Bingo, которая намеренно больше, чем отверстие. Затем избиратель отделяет бюллетень, выбирает верхний или нижний слой для сохранения в качестве квитанции, а уничтожает другой слой. Квитанция сканируется на избирательном участке для подведения итогов.
Порядок символов рядом с именами кандидатов генерируется случайным образом для каждого бюллетеня и, таким образом, отличается от бюллетеня к бюллетеню. бюллетень. То же самое и с порядком расположения символов в отверстиях. По этой причине квитанция не содержит достаточно информации, чтобы определить, за какого кандидата был отдан голос. Если оставить верхний слой, порядок прохождения символов через отверстия неизвестен. Если нижний слой сохраняется, порядок символов рядом с именем кандидата неизвестен. Следовательно, избиратель не может доказать кому-либо еще, как он проголосовал, что предотвращает подкуп голосов или запугивание избирателей.
В качестве примера рассмотрим выборы двух кандидатов между Coke и Pepsi, как показано на предыдущей диаграмме. Порядок букв рядом с именами кандидатов может быть следующим: A, затем B, или B, а затем A. Мы назовем этот порядок , и пусть = 0 для первого порядка и = 1 для второго. Следовательно,
: порядок символов рядом со списком кандидатов,
Аналогичным образом мы можем сделать обобщение для других частей бюллетеня:
: порядок символов в отверстиях,
: какое отверстие отмечено,
: результат голосования,
Обратите внимание, что порядок имен кандидатов фиксирован по всем бюллетеням. Результат голосования может быть вычислен напрямую как,
Однако, когда один слой избирательного бюллетеня измельчается, либо , либо уничтожен. Следовательно, недостаточно информации для вычисления из квитанции (которая сканируется). Для подсчета результатов выборов используется электронная база данных.
Перед выборами создается база данных с серией столбцов как таковых. Каждая строка в базе данных представляет бюллетень, и порядок, в котором бюллетени хранятся в базе данных: перемешанный (с использованием криптографического ключа, который каждый кандидат может внести в ). В первом столбце указан порядок следования серийных номеров в случайном порядке. содержит псевдослучайный битовый поток, сгенерированный из ключа, и он будет действовать как потоковый шифр. сохранит промежуточный результат. содержит такой бит, что:
Результат каждого бюллетеня будет сохранен в отдельном столбце, , где снова будет изменен порядок голосования. Таким образом, содержит номер строки в столбце , куда будет помещен результат.
После проведения выборов и сканирования значений , рассчитывается как:
Результат рассчитывается как,
Это эквивалентно уравнению 1,
Столбец результатов публикуется и, учитывая, что бюллетени были перемешаны (дважды), порядок В столбце результатов не указано, какой результат из какого бюллетеня. Таким образом, избирательная комиссия не может отследить голоса по серийным номерам.
Для выборов с кандидатами, описанная выше процедура выполняется с использованием по модулю -n уравнения.
В бюллетене избирателя не указывается, за какого кандидата он проголосовал, и поэтому это не секретная информация. После выборов избирательная комиссия опубликует изображение каждой квитанции в Интернете. Избиратель может найти свой бюллетень, введя серийный номер, и он может проверить, совпадает ли информация, хранящаяся в избирательном органе, с его бюллетенем. Таким образом, избиратель может быть уверен, что его бюллетень был подан так, как задумано.
Любой избиратель или заинтересованная сторона может также проверить часть базы данных, чтобы убедиться, что результаты были рассчитаны правильно. Они не могут проверить всю базу данных, иначе они могут связать голоса с порядковыми номерами бюллетеней. Однако половину базы данных можно безопасно проверить без нарушения конфиденциальности. Случайный выбор делается между открытием или (этот выбор может быть получен из секретного ключа или из источника истинного случайного, такого как dice или фондовый рынок ). Эта процедура позволяет избирателю быть уверенным в том, что комплект всех бюллетеней был засчитан как поданный.
Если все бюллетени считаются поданными и поданными, как предполагалось, то все бюллетени подсчитываются, как предполагалось. Следовательно, честность выборов может быть доказана с очень высокой вероятностью.
Чтобы еще больше повысить целостность выборов Punchscan, можно предпринять несколько дополнительных шагов для защиты от полностью коррумпированной избирательной комиссии.
Начиная с , и в базе данных все генерируются псевдослучайно, несколько баз данных могут быть созданы с разными случайными значениями для этих столбцов. Каждая база данных независима от других, что позволяет открывать и проверять первую половину некоторых баз данных и вторую половину других. Каждая база данных должна давать одинаковые окончательные итоги. Таким образом, если избирательный орган внесет изменения в базу данных, чтобы исказить окончательный результат, им придется вмешиваться в каждую из баз данных. Вероятность обнаружения взлома в ходе аудита возрастает с увеличением количества независимых баз данных.
Перед выборами избирательный орган распечатывает бюллетени и создает базу данных. Часть этого процесса создания включает фиксацию уникальной информации, содержащейся в каждом бюллетене и в базах данных. Это достигается путем применения к информации криптографической односторонней функции . Хотя результат этой функции, обязательство, становится достоянием общественности, фактическая информация остается закрытой. Поскольку функция является односторонней, с вычислительной точки зрения невозможно определить информацию о запечатанном бюллетене, учитывая только его публично опубликованное обязательство.
Перед выборами производится вдвое больше бюллетеней, чем количество, предназначенное для использования на выборах. Половина бюллетеней выбирается случайным образом (или каждый кандидат может выбрать часть бюллетеней) и вскрывается. Строки в базе данных, соответствующие этим выбранным бюллетеням, можно проверить, чтобы убедиться, что расчеты верны и не подделаны. Поскольку избирательная комиссия априори не знает, какие бюллетени будут выбраны, прохождение этого аудита означает, что база данных сформирована правильно с очень высокой вероятностью. Более того, бюллетени можно проверить на соответствие их обязательствам, чтобы с высокой вероятностью убедиться в правильности обязательств по бюллетеням.