著作一覧 |
昨日は被選挙人側(システム側)の不正について考えてみたが、選挙人側の不正を考えるともっと厄介なことに気付く。
ハガキに投票トークンが書いてあるものが送られてくることを想定する。36桁のトークンだ。
でも、ということは、36桁のトークンジェネレータを利用して、次々とトークンを変えながら投票するプログラムを作られることにどう対応できるだろうか?
同一IPアドレスからの異なるトークンを排除するとした場合は、家庭内で4人がそれぞれ異なるコンピュータから投票することを阻害する。ブラウザで投票するとしてクッキーで管理する? まさか。
誰かが、既におれのトークンで投票している! となった場合、選挙管理委員会に苦情を申し立てることで管理できるだろうか? 大体の投票率は50%前後なのだから、約50%は早い者勝ちの草刈り場となり得るね(つまり、投票人による監視が必須)。
後勝ちで有効票とするというのもだめだろう。朝早く投票して放っておいたら、別のやつが上書き投票できるということだからだ。
いずれにしても、投票人による開票結果の検証は必須となる。
紙と箱の選挙を考えたやつの頭の良さに舌を巻く。
衆人環視の投票所で、ハガキと交換で紙を1枚、投票人に与える。投票人が箱に何十枚も事前に用意した紙を入れないように監視できる(監視している選挙管理人が信用できなければ、投票所にどちらの選挙陣営も第3者管理人を送って不正を見張らせることが可能だ)。
箱を開けて紙の内容をカウントしていく作業も、基本公開だ(なので、双眼鏡を利用して開票所を監視して速報を打てる。これが重要だということがはじめて理解できた)。
明らかにおかしいと考えられた場合、あらためてカウントすることもできないことではない。納得がいった時点で投票用紙は廃棄できる。
電子投票システムは、投票時点の不正確認のためには、2種類のトークンが必要で、結局、投票人が秘密キーを事前にシステムに登録していなければならない。
(投票時点で入力するのであれば、自動投票プログラムで代理投票が可能となるからだ)
事前に登録した秘密キーは開票後の(投票システム側の)不正確認に利用できる(昨日は、このキーは、投票時に生成するハッシュで良いと考えていたが、それは投票人による不正には対応できない)。
shiroさんが教えてくれた論文(Election verifiability in electronic voting protocols)は途中から極端に難しくなる(証明をまったく読めていない。地の文で書いてあることは読めるけどわからない)のでどうしようもなくななめ読みになってしまうのだが、最初のあたりを読むと、既にいろいろ考案されて、課題が確立されているようだということがわかっておもしろかった。さすがに事前にキーを登録するような仕組みではなく、電子署名の利用が前提となっている(と読めた)。
3つのverificationが必要だとしていて(そのうち最後のものが、この論文で提案されたものと読めるのだが、まさに水増し対策を含むものだった)、
・Individual verifiability
投票人が自分の投票が開票結果(the ballots published on the bulletin board)に正しく反映されているかを確認できること
・Universal verifiability
誰もが開票結果(the ballots published on the bulletin board)が選挙結果(the election outcome)に反映されているかを確認できること
・Eligibility verifiability
誰もが登録された選挙人の唯一の投票のみが選挙結果に反映されているかを確認できること
紙と箱のシステムは、このうち1つめと3つめの検証可能性を自ずと備えている。
ところで、この論文を読んでいてへーと思ったのが、FOOプロトコル(1992年のA. Fujioka, T. Okamoto, and K. Ohta.)で、その後の研究の元ネタ(influential for the design of later protocols)としてあって(この論文の中では後続のプロトコルを採用している)、この分野で日本人(だと思うよな)が基盤を提供しているのか、となんとなく(まあ、民族的な自尊心みたいなものが無いわけではないので)嬉しかったりしたけど、後は続いてないのかな。
ジェズイットを見習え |