2. Процесс голосования должен быть точным и проверяемым. Каждый избиратель должен иметь возможность убедиться, что никто не проголосовал больше одного раза; что голоса не были вброшены, уничтожены или подменены; что голосовали только зарегистрированные избиратели, а все отданные голоса были подсчитаны правильно.
Главная проблема честных выборов в том, что два этих базовых принципа очень трудно совместить друг с другом. Совсем несложно сделать голосование точным и проверяемым - просто зафиксировав все пары "избиратель-голос" и открыто опубликовав результаты для всеобщей проверки. Но тогда будет также очень просто покупать голоса и манипулировать избирателями, подрывая основы демократии. Механизмы же тайного голосования, с другой стороны, по "темной" природе своей дают широчайшее поле для злоупотреблений и махинаций с голосами.
Однако, как часто бывает в жизни, очевидный на первый взгляд вывод оказывается неверным. Например, люди веками были уверены, что засекреченная связь возможна лишь между теми, кто владеет общим секретным ключом к шифру. Столь же незыблемы были и представления о единственно возможном механизме организации выборов с помощью избирательных комиссий, подсчитывающих число голосов, отданных за конкурирующих кандидатов. Но четверть века назад в науке о защите информации произошла великая революция. Выяснилось, что существуют математически строгие методы засекречивания, позволяющие шифровать связь между абсолютно незнакомыми и никогда не общавшимися людьми - посредством криптографии с открытым ключом. Попутно ученые установили, что с помощью тех же самых, в сущности, идей можно реализовать и честные выборы, которые примиряют взаимоисключающие принципы. Правда, поначалу решения были найдены лишь для теоретических моделей, довольно далеких от реалий жизни.
Эти модели подразумевали избирателей, подающих голоса в зашифрованном виде, чтобы никто из счетчиков комиссии не знал содержимое заполненного бюллетеня. При этом специальный метод "доказательства с нулевым знанием" (zero knowledge proof) давал счетчикам механизм, подтверждающий правильность учета голосов. Независимые комиссии наблюдателей, в свою очередь, могли проверять эти доказательства и убеждаться, что счетчики действительно не жульничали. Но кто за кого проголосовал, по-прежнему оставалось тайной. Главная красота моделей была в том, что здесь не требовалось слепо доверять честности власти, организующей выборы, или программистам, сделавшим по заказу правительства программную систему для проведения выборов, или кому-либо еще. Никто из них в принципе не мог сжульничать. Потому что это было математически невозможно - обмануть и не быть пойманным (с убедительным доказательством жульничества). Все, что для этого требовалось, - заложить в систему права на верификацию. Теоретически любой человек мог бы тогда воспользоваться программой-верификатором (или написать собственную) и проверить доказательства честности выборов самостоятельно - согласно стандартным процедурам проверки.
Такого рода модели в теории выглядели великолепно, но для практического воплощения они были чересчур сложны. Лежавшие же в их основе нетривиальные математические идеи были доступны для понимания лишь специалистам. А потому убедить среднестатистического избирателя в том, что новая схема выборов намного лучше всех прежних, казалось задачей невыполнимой.
Подобные взгляды держались довольно долго, но затем - к середине нынешнего десятилетия - сразу несколько умных людей вдруг поняли, что те же самые идеи можно реализовать просто, без мудреной математики, на уровне, понятном даже детям. Вряд ли должно удивлять, что людьми этими оказались широко известные в мире ученые-криптографы.
Мы расскажем о двух наиболее значительных системах голосования, о которых широкая публика узнала около года назад.
Punchscan
Борьба
С 1860 по 1890 годы для борьбы с широкомасштабной подделкой выборов в США было введено множество разных технических средств. Таких, как избирательные урны с прозрачными стеклянными стенками для недопущения двойного дна и встроенных тайных отсеков. Или механические счетчики для опускаемых в щель бюллетеней, чтобы предотвратить хищения отданных голосов и массовое вбрасывание фальшивых бюллетеней.
Систему под названием, переводимым примерно как "Дыркоскан" (punchscan.org), изобрел Дэвид Чом (David Chaum) - автор ряда криптографических протоколов, широко применяемых в электронной коммерции, а также концепции "цифровых наличных". Кроме того, Дэвид Чом был одним из отцов-основателей IACR, Международной ассоциации криптологических исследований, созданной в 1982 году и по сию пору остающейся главной в мире организацией для специалистов, занимающихся открытой криптографией.
При сравнении с традиционным избирательным бюллетенем система Punchscan может показаться замысловатой, однако принцип ее работы прост. Новый бюллетень представляет собой лист бумаги, поделенный на две равные части проходящей посередине перфорацией. На каждой из половин напечатан уникальный номер-идентификатор. Лист складывают по линии раздела, так что на первой странице оказываются напечатаны имена избираемых кандидатов, каждому из которых случайным образом присвоена одна из букв алфавита. Ниже списка имеется горизонтальный ряд круглых отверстий, число которых соответствует количеству кандидатов. Через эти отверстия видны те же буквы алфавита, соответствующие кандидатам, но напечатанные на второй половине бюллетеня опять-таки в произвольном порядке.
Когда избиратель выбирает кандидата, ему надо найти в отверстиях соответствующую букву и отметить ее специальным маркером-фломастером. Красящий стержень у маркера намеренно сделан большего диаметра, чем у отверстия. Поэтому маркер обязательно пометит обе половинки бюллетеня в позиции избранного кандидата. Когда выбор сделан, избиратель разделяет бюллетень по линии перфорации. Одна из половинок (все равно какая) тут же публично уничтожается в шреддере, а вторая пропускается через стандартный портативный сканер и остается у избирателя в качестве проверочной квитанции. Отсканированный бюллетень с распознанным выбором изображается на экране, давая избирателю возможность убедиться в правильности учета и подтвердить завершение голосования.
Таким образом, система Punchscan фиксирует выбор, сделанный избирателями, однако не имеет никакой базы данных, сопоставляющей конкретный бюллетень с использовавшим его человеком. Очень важно случайное присвоение букв каждому из кандидатов, так что в разных бюллетенях эти буквы будут разными у одних и тех же фамилий в списке. По этой причине каждая из половинок бюллетеня по отдельности не дает никакой информации о сделанном выборе. Ибо на одной части есть фамилии с присвоенными им буквами и помеченная дырка, но неизвестно, какая там была буква. А на второй части есть помеченная буква, но неизвестно, какому кандидату она была присвоена.
Благодаря такой системе, избиратели не могут продавать свой голос, предъявляя квитанцию. А комиссии на избирательных участках, соответственно, обеспечивают лишь правильную процедуру голосования, но не знают, как именно отданы голоса. Итоги может подвести лишь центральная система Punchscan, где случайное присвоение букв было изначально зафиксировано в базе для каждого номера бюллетеня. Система, как уже говорилось, ничего не знает о том, каким избирателям достались какие номера. Однако каждый избиратель после итогового подсчета голосов может зайти в онлайновую базу и по номеру оставшейся у него квитанции проверить, что его голос учтен, и учтен правильно.
Комплекс программного обеспечения Punchscan в первой стабильной версии 1.0 был опубликован с открытыми исходными кодами в ноябре 2006 года на условиях лицензии Revised BSD. При этом система Punchscan разработана с учетом принципов безопасного программирования, то есть защита информации здесь реализована программно-независимым образом - на основе известных и надежных криптографических функций. Иначе говоря, такую архитектуру можно реализовывать и в системах с закрытыми кодами вроде Windows.
Система ThreeBallot
Другая система, под названием ThreeBallot, то есть "Бюллетень, состоящий из трех частей", разработана знаменитым американским криптографом Рональдом Райвестом (именно он фигурирует под буквой "R" в популярнейшей криптосхеме с открытым ключом RSA, озаглавленной по фамилиям изобретателей). Райвест известен и благодаря популярным криптоалгоритмам для поточного шифрования, блочного шифрования и хеширования (RC4, RC5, MD5 и многие другие).