Журнал "Компьютерра" №712
Шрифт:
Такого рода модели в теории выглядели великолепно, но для практического воплощения они были чересчур сложны. Лежавшие же в их основе нетривиальные математические идеи были доступны для понимания лишь специалистам. А потому убедить среднестатистического избирателя в том, что новая схема выборов намного лучше всех прежних, казалось задачей невыполнимой.
Подобные взгляды держались довольно долго, но затем - к середине нынешнего десятилетия - сразу несколько умных людей вдруг поняли, что те же самые идеи можно реализовать просто, без мудреной математики, на уровне, понятном даже детям. Вряд ли должно удивлять, что людьми этими оказались широко известные в мире ученые-криптографы.
Мы расскажем о двух наиболее значительных системах голосования, о которых широкая публика узнала около года назад.
Систему под названием, переводимым примерно как "Дыркоскан" (punchscan.org), изобрел Дэвид Чом (David Chaum) - автор ряда криптографических протоколов, широко применяемых в электронной коммерции, а также концепции "цифровых наличных". Кроме того, Дэвид Чом был одним из отцов-основателей IACR, Международной ассоциации криптологических исследований, созданной в 1982 году и по сию пору остающейся главной в мире организацией для специалистов, занимающихся открытой криптографией.
При сравнении с традиционным избирательным бюллетенем система Punchscan может показаться замысловатой, однако принцип ее работы прост. Новый бюллетень представляет собой лист бумаги, поделенный на две равные части проходящей посередине перфорацией. На каждой из половин напечатан уникальный номер-идентификатор. Лист складывают по линии раздела, так что на первой странице оказываются напечатаны имена избираемых кандидатов, каждому из которых случайным образом присвоена одна из букв алфавита. Ниже списка имеется горизонтальный ряд круглых отверстий, число которых соответствует количеству кандидатов. Через эти отверстия видны те же буквы алфавита, соответствующие кандидатам, но напечатанные на второй половине бюллетеня опять-таки в произвольном порядке.
Когда избиратель выбирает кандидата, ему надо найти в отверстиях соответствующую букву и отметить ее специальным маркером-фломастером. Красящий стержень у маркера намеренно сделан большего диаметра, чем у отверстия. Поэтому маркер обязательно пометит обе половинки бюллетеня в позиции избранного кандидата. Когда выбор сделан, избиратель разделяет бюллетень по линии перфорации. Одна из половинок (все равно какая) тут же публично уничтожается в шреддере, а вторая пропускается через стандартный портативный сканер и остается у избирателя в качестве проверочной квитанции. Отсканированный бюллетень с распознанным выбором изображается на экране, давая избирателю возможность убедиться в правильности учета и подтвердить завершение голосования.
Таким образом, система Punchscan фиксирует выбор, сделанный избирателями, однако не имеет никакой базы данных, сопоставляющей конкретный бюллетень с использовавшим его человеком. Очень важно случайное присвоение букв каждому из кандидатов, так что в разных бюллетенях эти буквы будут разными у одних и тех же фамилий в списке. По этой причине каждая из половинок бюллетеня по отдельности не дает никакой информации о сделанном выборе. Ибо на одной части есть фамилии с присвоенными им буквами и помеченная дырка, но неизвестно, какая там была буква. А на второй части есть помеченная буква, но неизвестно, какому кандидату она была присвоена.
Благодаря такой системе, избиратели не могут продавать свой голос, предъявляя квитанцию. А комиссии на избирательных участках, соответственно, обеспечивают лишь правильную процедуру голосования, но не знают, как именно отданы голоса. Итоги может подвести лишь центральная система Punchscan, где случайное присвоение букв было изначально зафиксировано в базе для каждого номера бюллетеня. Система, как уже говорилось, ничего не знает о том, каким избирателям достались какие номера. Однако каждый избиратель после итогового подсчета голосов может зайти в онлайновую базу и по номеру оставшейся у него квитанции проверить, что его голос учтен, и учтен правильно.
Комплекс программного обеспечения Punchscan в первой стабильной версии 1.0 был опубликован с открытыми исходными кодами в ноябре 2006 года на условиях лицензии Revised BSD. При этом система Punchscan разработана с учетом принципов безопасного программирования, то есть защита информации здесь реализована программно-независимым образом - на основе известных и надежных криптографических функций. Иначе говоря, такую архитектуру можно реализовывать и в системах с закрытыми кодами вроде Windows.
Другая система, под названием ThreeBallot, то есть "Бюллетень, состоящий из трех частей", разработана знаменитым американским криптографом Рональдом Райвестом (именно он фигурирует под буквой "R" в популярнейшей криптосхеме с открытым ключом RSA, озаглавленной по фамилиям изобретателей). Райвест известен и благодаря популярным криптоалгоритмам для поточного шифрования, блочного шифрования и хеширования (RC4, RC5, MD5 и многие другие).
В придуманной Райвестом системе выборов ThreeBallot для учета отданных избирателями голосов тоже используется бумажный бюллетень, но другой конструкции. Как можно догадаться по названию, бюллетень состоит из трех практически одинаковых частей, разделенных перфорацией. Каждую часть отличает от соседних (и всех остальных в прочих бюллетенях) уникальный, случайно присвоенный номер-идентификатор, напечатанный по нижнему краю.
Главная хитрость этого изобретения в том, каким образом бюллетень заполняется избирателем. Три идентичные части предоставляют три позиции голосования для каждого из кандидатов. Чтобы проголосовать за кого-то из кандидатов, избиратель отмечает его "птичками" в любых двух из трех частей (в третьей оставляя позицию незаполненной). В то же время здесь следует голосовать против тех кандидатов, которых избиратель выбирать не желает. Для этого напротив них тоже проставляется "птичка", но только в одной произвольной части бюллетеня из трех (чтобы две остальные остались пустыми). Иначе говоря, пустых рядов быть не может, ибо заполнить надо каждую строку бюллетеня - "за" двумя отметками, "против" одной. После этого бюллетень разделяется по перфорации на три части, по выбору избирателя с одной из частей делается копия и выдается ему в качестве квитанции, а затем все три части опускаются в избирательную урну.
В оригинальной статье Райвеста о ThreeBallot подробно разбирается, каким образом при такой системе с высокой степенью достоверности удается совместить взаимно противоречивые требования к демократическим выборам - тайну голосования и проверяемость точного учета голоса. Одно из важных достоинств системы в ее прозрачности и простоте проверки - поскольку после сканирования всех бюллетеней, изъятых из урн, они полностью и открыто публикуются на веб-сайте избиркома. Кроме того, квитанция - хотя в ней есть фамилии кандидатов и против некоторых из них стоят "птички"!
– совершенно не раскрывает информации о том, кем и за кого был отдан голос, то есть не может быть использована в скупке голосов избирателей.
Как и любая другая система голосования, ThreeBallot имеет не только достоинства, но и недостатки. В Массачусетском технологическом институте, где работает Райвест, студенты уже в декабре 2006 года устроили "игрушечные" выборы, дабы проверить работоспособность новой системы. Изъяны ThreeBallot, выявленные "в полевых испытаниях" и в придирчивых аналитических исследованиях коллег, автор попытался исправить в новой работе, подготовленной совместно с общественным активистом-математиком Уорреном Смитом (Warren D. Smith) и опубликованной летом 2007 года.