電子投票プロトコル:私のオプション

詐欺を取り巻くさまざまなスキャンダルによって複雑になっているさまざまな国の選挙を観察するたびに、何世紀も前の保護メカニズムを使用して、保護するためにその正当性が必要なそのような重要なイベントはなぜですか? 初期レベルで暗号化を理解している人でさえ、理想とは程遠いものの、現在のものよりもはるかに優れているにもかかわらず、投票スキームを思い付くことができるので、これは特に奇妙です。 ちょうどそのような人々に属していることが偶然一致したので、私は考えました:なぜ試してみませんか?



電子選挙に関する多くの記事(1、2、3)がHabréで既に公開されていますが、解決され基本的な要件を満たすプロトコルは見つかりませんでした。 ようこそ、私のバージョンの電子投票プロトコル。



免責事項
著者は暗号化と数学の専門家ではないため、このスキームは欠陥がないか、深く開発されていると主張していません。

このスキームは非常にシンプルであることが判明したため、自転車を発明した可能性が非常に高いです。



システム要件



私たちは何を逃げ出したいですか? 次の要件を策定しました。



  1. 独立した制御の可能性;
  2. 選挙委員会、有権者、および第三者による詐欺に対する抵抗
  3. 特定の有権者がどのように投票したかを知ることができない


Tl; dr:プロトコルの概要



  1. 投票者は選挙委員会に登録され、投票キーと検証キーを装った個人データを提供します。 選挙委員会は、偽装された投票キーに署名します。
  2. 投票者はマスクを解除し、署名された投票キーを受け取り、それに基づいて匿名の音声を作成して公開します。
  3. 有権者の中から投票ごとに有権者が選択されます。 音声の所有者は、公開鍵を使用して自分の個人データをレビュー担当者に送信します。 レビューアは、声が実際の人と一致することを確認します。


プロトコルの詳細



プロトコルでは、 非対称暗号化ブラインド署名アルゴリズムの 2つの暗号プリミティブのみを使用しました。 当然、暗号化とマスキングの操作は相互に可換でなければなりません。



注:署名中のハッシュ操作は、必要に応じて省略されます。



記号のリスト
e -暗号化キー。

d -復号化キー。

m -マスキング係数;

Ek -キーkによる暗号化。

Dk -キーkによる復号化。

Mm -係数mによるマスキング。

Nm -係数mによるマスク解除。



i -人に関する情報;

c -選択;

K -契約;

V -声;

I -検証のための情報



0.ソースデータ



投票者:



e -投票者の個人デジタル署名の暗号化キー(プライベート)。

ed -暗号化および復号化キー。 特定の投票のために有権者によって作成された;

m -マスキング係数。 特定の投票のために有権者によって作成された;

ed -検証フェーズのキーのペア。 特定の投票のために投票者によって作成されます。


個人データの公開リポジトリ:



次の情報は、市民ごとに保存されます。

i - 投票者に関する情報 :氏名、生年月日、登録住所など d -個人のデジタル署名の公開鍵。

Ee Largestatei+dpersonal -データの正確性を証明する州の署名。


以下もリポジトリに保存されます。

dstate -州の公開鍵。

d -選挙委員会の公開鍵。


状態:



estate -州の秘密鍵。



選挙委員会:



e -選挙委員会の秘密鍵。



注:投票が開始された時点で、リポジトリ内の情報は正しいという仮定を使用しました。各人には1対1のデジタル署名キーがあり、そこには「死んだ魂」はありません。 この情報をチェックするメカニズムについては考えません。数学的ではなく管理的なものであるように思われます。 また、投票中は情報は変更されないと想定されています。



1.登録



各有権者は選挙委員会にデータを提示します。 彼は、投票者がまだ登録されておらず、投票する権利があることを確認します。 確認後、委員会は有権者とともに、私が契約と呼ぶものを作成します。



契約には次のデータが含まれます。

i -有権者の身元

Mmd -投票用の秘密の有権者乗数復号化キーに偽装

Mmetest -検証用の秘密投票者の乗数を装った暗号化キー

Ee\大Mmd -選挙委員会によって署名された、秘密投票者の乗数を装った投票解読キー





K1=i+Mmd+Mme+Ee\大Mmd







この情報は、選挙委員会と有権者の両方によって署名されます。





K=K1+Ee\大K1+Ee\大K1







すべての契約は選挙委員会によって発行されます。



この段階では、次の攻撃が防止されます。





2.投票



投票者は署名された投票キーのマスクを解除します。





NmEeMmd=Ee\大d









そして、彼の性格とは無関係の声を作成します。





V=d+Ee\大d+e+s+Ee\大s







どこで c -候補者の選択。



投票者は、選挙委員会に匿名で投票を送信します。 選挙委員会はそれをパブリックドメインで公開し、入場の証拠としてそれを返します Ee\大V



3.検証



残念ながら、最終段階では、選挙委員会は、実際の人格に関係なく、必要なだけ投票を行うことができるため、各投票の検証が必要です。 誰に検証を委任しますか? 私は、 デマーキーの原則にを向け、ランダムな投票者に検証を委ねることが最善であると信じています。 複数の投票に対して無制限の数のチェックスキームの配布スキームのペアを思いつくことができますが、私はセットをペアに分割し、互いにテストするためにそれらを割り当てることが最適であると思われます。 したがって、情報を漏らした監査人は、被監査者による説明責任を負うことができます。 どのスキームを使用する場合でも、登録の開始前にその形成のアルゴリズムを公開し、登録が終了する前に不明なキーに依存する必要があります。 たとえば、キーは為替レートから、または候補者によって公的におよび共同で(たとえば、宝くじを使用して)生成できます。 この条件を無視すると、選挙委員会は登録後に非常に多くの偽票を見つけてリストに追加できるため、すべてまたはほとんどの人が互いに確認します。



そのため、キーが生成されて公開されます。 今、各有権者は自分の検証担当者を見つけ、投票のベースから公開検証キーを受け取る必要があります e 検証情報を生成する





I=V+Ee\大\レi+m+Ee\大i+m







そして匿名で彼女を選挙委員会に送ります。 選挙委員会はそれをパブリックドメインで公開し、入場の証拠としてそれを返します Ee\大I



検査官は見つける I データベースでチェックイン V 解読する Ee Largei+m+Ee Largepersonali+m 彼を使用して d を使用して m マスク解除 Mmd そして Mmetest そしてそれをチェックします:





次の攻撃が防止されます。





結果



プロトコルの欠点:





また、検証フェーズを簡素化し、 ゼロ開示の証拠を使用してより匿名にすることも可能です。 残念ながら、これを行う方法と、それが可能かどうかはまだわかりません。



知っている場合は、コメントを書いてください。 また、プロトコルの改善方法を知っている場合は、間違いや脆弱性、その他の建設的な批判を見つけます。



All Articles