Голосование без Центральной избирательной комиссии

В следующем протоколе ЦИК не используется, избиратели следят друг за другом . Этот протокол, созданный Майклом Мерриттом [452, 1076, 453], настолько громоздок, что возможность его реализации больше чем для пяти человек сомнительна, но все же познакомиться с ним будет полезно.

Алиса, Боб, Кэрол и Дэйв голосуют (да/нет или 0/1) по какому-то вопросу . Пусть у каждого избирателя есть открытый и закрытый ключи. Пусть также все открытые ключи известны всем.

(1) Каждый голосующий решает, как голосовать, и делает следующее:

(a) Добавляет случайную строку к своему бюллетеню.

(b) Шифрует результат этапа (а) открытым ключом Дэйва.

(c) Шифрует результат этапа (b) открытым ключом Кэрол.


(d) Шифрует результат этапа (с) открытым ключом Боба.

(e) Шифрует результат этапа (d) открытым ключом Алисы.

(f) Добавляет новую случайную строку к результату этапа (е) и шифрует получившееся открытым клю­чом Дэйва. Он записывает значение случайной строки.

(g) Добавляет новую случайную строку к результату этапа (f) и шифрует получившееся открытым клю­чом Кэрол. Он записывает значение случайной строки.

(h) Добавляет новую случайную строку к результату этапа (g) и шифрует получившееся открытым клю­чом Боба. Он записывает значение случайной строки.

(i) Добавляет новую случайную строку к результату этапа (g) и шифрует получившееся открытым клю­чом Алисы. Он записывает значение случайной строки.

Если Е - это функция шифрования, R, - случайная строка, а V - бюллетень , то его сообщение будет выгля­деть следующим образом:

EA(R5,EB(R4,Ec(R3,ED(R2,EA(EB(Ec(ED(V,Ri))))))))

Каждый голосующий сохраняет промежуточные результаты на каждом этапе вычислений. Эти результаты будут использоваться на дальнейших этапах протокола для подтверждения, что бюллетень данного изб и-рателя будет учтен.

(2) Каждый голосующий отправляет сообщение Алисе.

(3) Алиса расшифровывает все бюллетени, используя свой закрытый ключ, и удаляет все случайные строки на этом уровне.

(4) Алиса перетасовывает все бюллетени и посылает результат Бобу. Теперь каждый бюллетень будет выглядеть ел едующим образом: EB(R4,EC(R3,ED(R2,EA(EB(EC(ED(V,R1 )))))))

(5) Боб расшифровывает все бюллетени, используя свой закрытый ключ, проверяет, есть ли его бюллетень среди присланных бюллетеней, удаляет все случайные строки на этом уровне, тасует бюллетени и посыл а-ет результат Кэрол.

Теперь каждый бюллетень будет выглядеть ел едующим образом:

EC(R3,ED(R2,EA(EB(EC(ED(V,R1 ))))))

(6) Кэрол расшифровывает все бюллетени, используя свой закрытый ключ, проверяет, есть ли ее бюллетень
среди присланных бюллетеней, удаляет все случайные строки на этом уровне, тасует бюллетени и посыл а-
ет результат Дэйву.

Теперь каждый бюллетень будет выглядеть следующим образом:

ED(R2,EA(EB(EC(ED(V,R1 )))))

(7) Дэйв расшифровывает все бюллетени, используя свой закрытый ключ, проверяет, есть ли его бюллетень
среди присланных бюллетеней, удаляет все случайные строки на этом уровне, тасует бюллетени и посыл а-
ет результат Алисе.

Теперь каждый бюллетень будет выглядеть ел едующим образом:

EA(EB(Ec(ED(V,Ri))))

(8) Алиса расшифровывает все бюллетени, используя свой закрытый ключ, проверяет, есть ли ее бюллетень
среди присланных бюллетеней, подписывает все бюллетени и посылает результат Бобу, Кэрол и Дэйву.

Теперь каждый бюллетень будет выглядеть ел едующим образом:

SA (EB(EC(ED(V,R,))))

(9) Боб проверяет и удаляет подписи Алисы. Он расшифровывает все бюллетени, используя свой закрытый
ключ, проверяет, есть ли его бюллетень среди присланных бюллетеней, подписывает все бюллетени и п о-
сылает результат Алисе, Кэрол и Дэйву.

Теперь каждый бюллетень будет выглядеть ел едующим образом:

SB(Ec(ED(V,Ri)))

(10) Кэрол проверяет и удаляет подписи Боба. Она расшифровывает все бюллетени, используя свой закрытый


ключ, проверяет, есть ли ее бюллетень среди присланных бюллетеней, подписывает все бюллетени и п о-сылает результат Алисе, Бобу и Дэйву.

Теперь каждый бюллетень будет выглядеть ел едующим образом:

Sc(ED(V,Ri))

(11) Дэйв проверяет и удаляет подписи Кэрол. Он расшифровывает все бюллетени, используя свой закрытый
ключ, проверяет, есть ли его бюллетень среди присланных бюллетеней, подписывает все бюллетени и п о-
сылает результат Алисе, Бобу и Кэрол.

Теперь каждый бюллетень будет выглядеть следующим образом:

SD(V,Ri)

(12) Все проверяют и удаляют подпись Дэйва. Они убеждаются, что их бюллетени находятся среди получе н-ных (находя свою случайную строку).

(13) Все удаляют случайные строки из каждого бюллетеня и суммирует бюллетени.

Этот протокол не только работает, он сам является своим арбитром . Алиса, Боб, Кэрол и Дэйв немедленно узнают, если кто-нибудь из них попытается мошенничать. Не нужно никаких ЦИК и ЦУР. Чтобы увидеть, как это работает, попытаемся смошенничать.

Если кто-нибудь пытается добавить бюллетень, Алиса обнаружит эту попытку на этапе (3), когда она полу­чит бюллетеней больше чем количество людей, участвующих в голосовании. Если Алиса попытается добавить бюллетень, Боб обнаружит это на этапе (4).

Более ловкой является подмена одного бюллетеня другим. Так как бюллетени шифруются различными от­крытыми ключами, каждый может создать столько правильных бюллетеней, сколько нужно . Протокол дешиф­рирования состоит из двух частей: первая включает этапы (3)-(7), а вторая - этапы (8)-(11). Подмена голоса на различных этапах обнаруживается по разному.

Если кто-нибудь заменит один бюллетень другим во второй части, его действия будут обнаружены неме д-ленно. На каждом этапе бюллетени подписываются и посылаются всем избирателям . Если один избиратель (или несколько) обнаруживает, что его бюллетеня больше нет среди набора бюллетеней, он немедленно пре­кращает выполнение протокола. Так как бюллетени подписываются на каждом этапе, и так как каждый может вернуться во второй части протокола на несколько шагов назад , то обнаружить мошенника, подменившего бюл­летени, легко.

Замена одного бюллетеня другим в первой части протокола более тонка . Алиса не может сделать замену на этапе (3), потому что Боб, Кэрол и Дэйв обнаружат это на этапах (5), (6) или (7). Боб может попробовать на эта­пе (5). Если он заменит бюллетени Кэрол и Дэйва (помните, он не знает, какой бюллетень чей), Кэрол или Дэйв заметят это на этапах (6) или (7). Они не будут знать, кто подменил их бюллетени (хотя это должен быть кто-то, уже обработавший бюллетени), но они будут знать, что их голоса подменены. Если Бобу повезло, и ему удалось подменить бюллетень Алисы, она не заметит этого до второй части протокола. Тогда она обнаружит исчезновение своего голоса на этапе (8), но не сможет узнать, кто подменил бюллетень. В первой части бюлле­тени перетасовываются на каждом этапе и не подписываются, поэтому никто не сможет отработать протокол обратно и определить, кто подменил бюллетени.

Другой формой мошенничества является попытка узнать, кто за кого проголосовал . Из-за перетасовки бюл­летеней в первой части никто не сможет отработать протокол обратно и связать бюллетени и голосующих . Уда­ление случайных строк в первой части также является решающим для сохранения анонимности. Если строки не удаляются, перемешивание голосов может быть инвертировано при помощи повторного шифрования получа е-мых голосов открытым ключом того, кто их тасовал. Когда протокол остановится, конфиденциальность бюлле­теней сохранится.

Более того, из-за начальной случайной строки, Rj, даже одинаковые бюллетени шифруются по разному на каждом этапе протокола. Никто не может узнать значение бюллетеня до этапа (11).

Каковы проблемы этого протокола? Во первых, для выполнения протокола нужны грандиозные вычисления . В приведенном примере в голосовании принимают участие только четверо, но и он уже сложен. Такой прото­кол не сможет работать при реальных выборах с десятками тысяч голосующих . Во вторых, Дэйв узнает резуль­таты выборов раньше остальных. Хотя он и не может повлиять на результат, он получает определенное пр е-имущество. С другой стороны такое также возможно и при централизованной схеме голосования .

Третья проблема заключается в том, что Алиса может скопировать бюллетень другого участника, даже не зная его содержания заранее. Чтобы понять, почему это может стать проблемой, рассмотрим выборы для трех голосующих - Алисы, Боба и Евы. Еве не важны результаты выборов, но она хочет знать, как голосовала Алиса . Поэтому она копирует бюллетень Алисы, и результат выборов будет соответствовать бюллетеню Алисы .