Журнал "Компьютерра" №712
Шрифт:
Простые решения сложных проблем
Два важнейших принципа честных выборов можно сформулировать так.
1. Избиратели должны совершать волеизъявление
2. Процесс голосования должен быть точным и проверяемым. Каждый избиратель должен иметь возможность убедиться, что никто не проголосовал больше одного раза; что голоса не были вброшены, уничтожены или подменены; что голосовали только зарегистрированные избиратели, а все отданные голоса были подсчитаны правильно.
Главная проблема честных выборов в том, что два этих базовых принципа очень трудно совместить друг с другом. Совсем несложно сделать голосование точным и проверяемым - просто зафиксировав все пары "избиратель-голос" и открыто опубликовав результаты для всеобщей проверки. Но тогда будет также очень просто покупать голоса и манипулировать избирателями, подрывая основы демократии. Механизмы же тайного голосования, с другой стороны, по "темной" природе своей дают широчайшее поле для злоупотреблений и махинаций с голосами.
Однако, как часто бывает в жизни, очевидный на первый взгляд вывод оказывается неверным. Например, люди веками были уверены, что засекреченная связь возможна лишь между теми, кто владеет общим секретным ключом к шифру. Столь же незыблемы были и представления о единственно возможном механизме организации выборов с помощью избирательных комиссий, подсчитывающих число голосов, отданных за конкурирующих кандидатов. Но четверть века назад в науке о защите информации произошла великая революция. Выяснилось, что существуют математически строгие методы засекречивания, позволяющие шифровать связь между абсолютно незнакомыми и никогда не общавшимися людьми - посредством криптографии с открытым ключом. Попутно ученые установили, что с помощью тех же самых, в сущности, идей можно реализовать и честные выборы, которые примиряют взаимоисключающие принципы. Правда, поначалу решения были найдены лишь для теоретических моделей, довольно далеких от реалий жизни.
Эти модели подразумевали избирателей, подающих голоса в зашифрованном виде, чтобы никто из счетчиков комиссии не знал содержимое заполненного бюллетеня. При этом специальный метод "доказательства с нулевым знанием" (zero knowledge proof) давал счетчикам механизм, подтверждающий правильность учета голосов. Независимые комиссии наблюдателей, в свою очередь, могли проверять эти доказательства и убеждаться, что счетчики действительно не жульничали. Но кто за кого проголосовал, по-прежнему оставалось тайной. Главная красота моделей была в том, что здесь не требовалось слепо доверять честности власти, организующей выборы, или программистам, сделавшим по заказу правительства программную систему для проведения выборов, или кому-либо еще. Никто из них в принципе не мог сжульничать. Потому что это было математически невозможно - обмануть и не быть пойманным (с убедительным доказательством жульничества). Все, что для этого требовалось, - заложить в систему права на верификацию. Теоретически любой человек мог бы тогда воспользоваться программой-верификатором (или написать собственную) и проверить доказательства честности выборов самостоятельно - согласно стандартным процедурам проверки.
Такого рода модели в теории выглядели великолепно, но для практического воплощения они были чересчур сложны. Лежавшие
Подобные взгляды держались довольно долго, но затем - к середине нынешнего десятилетия - сразу несколько умных людей вдруг поняли, что те же самые идеи можно реализовать просто, без мудреной математики, на уровне, понятном даже детям. Вряд ли должно удивлять, что людьми этими оказались широко известные в мире ученые-криптографы.
Мы расскажем о двух наиболее значительных системах голосования, о которых широкая публика узнала около года назад.
Систему под названием, переводимым примерно как "Дыркоскан" (punchscan.org), изобрел Дэвид Чом (David Chaum) - автор ряда криптографических протоколов, широко применяемых в электронной коммерции, а также концепции "цифровых наличных". Кроме того, Дэвид Чом был одним из отцов-основателей IACR, Международной ассоциации криптологических исследований, созданной в 1982 году и по сию пору остающейся главной в мире организацией для специалистов, занимающихся открытой криптографией.
При сравнении с традиционным избирательным бюллетенем система Punchscan может показаться замысловатой, однако принцип ее работы прост. Новый бюллетень представляет собой лист бумаги, поделенный на две равные части проходящей посередине перфорацией. На каждой из половин напечатан уникальный номер-идентификатор. Лист складывают по линии раздела, так что на первой странице оказываются напечатаны имена избираемых кандидатов, каждому из которых случайным образом присвоена одна из букв алфавита. Ниже списка имеется горизонтальный ряд круглых отверстий, число которых соответствует количеству кандидатов. Через эти отверстия видны те же буквы алфавита, соответствующие кандидатам, но напечатанные на второй половине бюллетеня опять-таки в произвольном порядке.
Когда избиратель выбирает кандидата, ему надо найти в отверстиях соответствующую букву и отметить ее специальным маркером-фломастером. Красящий стержень у маркера намеренно сделан большего диаметра, чем у отверстия. Поэтому маркер обязательно пометит обе половинки бюллетеня в позиции избранного кандидата. Когда выбор сделан, избиратель разделяет бюллетень по линии перфорации. Одна из половинок (все равно какая) тут же публично уничтожается в шреддере, а вторая пропускается через стандартный портативный сканер и остается у избирателя в качестве проверочной квитанции. Отсканированный бюллетень с распознанным выбором изображается на экране, давая избирателю возможность убедиться в правильности учета и подтвердить завершение голосования.
Таким образом, система Punchscan фиксирует выбор, сделанный избирателями, однако не имеет никакой базы данных, сопоставляющей конкретный бюллетень с использовавшим его человеком. Очень важно случайное присвоение букв каждому из кандидатов, так что в разных бюллетенях эти буквы будут разными у одних и тех же фамилий в списке. По этой причине каждая из половинок бюллетеня по отдельности не дает никакой информации о сделанном выборе. Ибо на одной части есть фамилии с присвоенными им буквами и помеченная дырка, но неизвестно, какая там была буква. А на второй части есть помеченная буква, но неизвестно, какому кандидату она была присвоена.