paint-brush
暗号化によりオンライン投票をどのように保護できるか@nerv
628 測定値
628 測定値

暗号化によりオンライン投票をどのように保護できるか

長すぎる; 読むには

リモート電子投票の最大の課題は、制御されていない環境と安全でないプラットフォームの下で高レベルのセキュリティを達成することです。電子投票のプロパティと、最小要件を設定するさまざまな分類がすでに確立されています。目標は常に、検証可能性とプライバシーという 2 つの一見相互に排他的な特性を調和させることです。
featured image - 暗号化によりオンライン投票をどのように保護できるか
Network Emergency Response Volunteers HackerNoon profile picture


注: ここに示されている情報の一部は、意図的に過度に単純化されています。同じ目的を達成する方法や代替暗号化技術が多数あるため、特定の詳細は実際の実装によって異なります。


「リモート電子投票の最大の課題は、制御されていない環境と安全でないプラットフォームの下で高レベルのセキュリティを達成することです。電子投票のプロパティと、最小要件を設定するさまざまな分類がすでに確立されています。これらの分類のいくつかはまったく同じです。」リモート電子投票の最大の課題は、制御されていない環境と安全でないプラットフォームの下で高レベルのセキュリティを達成することです。電子投票のプロパティと、最小要件を設定するさまざまな分類がすでに確立されています。目標は、明らかに相互排他的な 2 つのプロパティを調和させることです。 : 検証可能性とプライバシー。機密性、完全性、プライバシー、民主主義、普遍性、検証可能性などのさまざまな名前のプロパティ。いずれにしても、目標は常に、明らかに相互排他的な 2 つのプロパティ、検証可能性とプライバシーを調和させることです。」


オンライン投票の背後にある基本的な考え方は、投票が暗号化されて公開され、手順全体が定期的に行われたことを疑いの余地なく有権者に納得させるという意味での検証可能性です。これをどのように実現できるかを詳しく見ていきましょう。ただし、記事の残りを読む前に、Ron Rivest によるこのアイデアのプレゼンテーション [ 1 ] を 5:07 まで見ることをお勧めします。


次に、次のことを考えてみましょう。


ブロックチェーン上で公開される、サイバー セキュアな投票が行われた後の追加専用の公開投票テーブル


有権者は自分の投票に対応するエントリを一意に知っています


投票者のIDは暗号化されています

ここで、v は秘密キーを使用することによってのみ完全に復号化できる投票であり、E(v) は追加された暗号化です。


そして今、ここに数学の魔法があります...


E(v1)、E(v2)、E(v3)、E(v4) で準同型暗号化を使用すると、E(v1)+ E(v2) + E(v3) + E(v4) = E( v1+v2+v3+v4)!


したがって、最終的な集計は D( E(v1+v2+v3+v4) ) になります。ここで D は、ポーリングが終了すると v に個別にアクセスする必要なくでも計算できる復号関数です: D(E(v1) )、 D(E(v2) ) など。秘密キーを使用することによってのみ復号化できます...


秘密鍵の所有


v を個別に復号化し、自分の投票が正しく登録されていることを実際に確認できるのは有権者自身だけです。結論として、有権者は自分の投票と最終集計の両方をプライバシーと正確性を持って確認できます。


準同型暗号化


おお!私の投票が正しいことを確認できます。しかし、秘密鍵を使用せずに他の人が投じた投票も合法であることをどうやって確認できるのでしょうか?


値 0 はポーリング中の特定のポリシー提案の拒否を意味し、値 1 は一致していると考えて、考えられる回答のセット {0,1} を形成するとします。検証者 (誰でもよい) は、追加専用テーブルに公開されたすべてのエントリが、可能な回答セット内の有効な要素に対応し、それ以外の要素には対応しないことを確認したい場合があります (値 100 のエントリは何かなど)。ゼロ知識証明はまさにこれを可能にします。その方法を理解するには、まず ZKP が実際には何なのかを理解することが役立つでしょう。 「暗号学において、ゼロ知識証明またはゼロ知識プロトコルとは、一方の当事者 (証明者) が、与えられたステートメントが真実であることを別の当事者 (検証者) に証明できる一方、証明者は、証明以外の追加情報を伝達することを回避する方法です。その発言が確かに真実であるという事実。」[ 2 ]


ゼロ知識証明


矛盾しているように思えるかもしれませんが、ZKP を使用すると、どんな有権者でも自分の投票の正当性を明確に証明できるようになります。繰り返しますが、投票は、一連の可能な選択肢の中から 1 つの要素を表現するものにすぎません。 ZKP を投票にどのように適用すべきかを理解するには、この質問について詳しく説明している次の記事 [ 3 ]、[ 4 ] を参照することをお勧めします。


ZKP検証


この手法は、準同型暗号化と ZKP の両方の数学的特性を維持しながら、{0,1} より大きいセットを含めるように拡張でき、単純な「はい」「いいえ」/「同意する」「同意しない」の回答よりも複雑なポーリングが可能になります。これにより、複数の候補者の選挙、特定の問題に対して異なる解決策が提案される住民投票、市場調査でのアンケートなど、興味深い使用例が生まれます。


私たちは、誰でも最終的な集計結果を確認する方法、自分の投票が意図したものであること、および他のすべての投票がどのように合法であるかを確認する方法について説明しました。有権者のプライバシーを守りながら!準同型暗号化と ZKP の両方の特性を維持しながらこれらのアルゴリズムを組み合わせる方法は複雑であり、数学的に正しいことが証明できる暗号化に関する深い知識が必要です。[ 5 ]


有権者は第三者に頼らずにこれらの検証を自分で行うことができます。適切なリモート電子投票アプリケーションでは、有権者が投票の監査人になります。


少なくともイーサリアムなどのすべてのトランザクションを公開するブロックチェーンでは、ステルス アドレス [ 6 ] の使用と同様、サイバーセキュアなオンライン投票に関する詳細と暗号化技術があります。これらは、有権者とそのウォレットのリンクを避けるために使用されます。しかし、これは技術的な詳細であり、ソフトウェア開発者のみが懸念する事項であり、準同型暗号化やシステムの信頼構築に役立つ知識を持つ ZKP とは異なり、オンライン投票のすべてのユーザーが知っておくべきことではないと考えています。


これらの秘密鍵はどのように生成され、セキュリティを損なうことなく有権者に渡されるのでしょうか?


最終的には、二重支払いを防ぐために、秘密キーをユーザーの本当の身元に結び付ける必要があります。 1 つのアプローチは、国民 ID スマート カードに埋め込まれた州発行の eID など、信頼できる当局が提供する PKI を使用することです。公共機関は、これらのキーを安全に保つための独自のメカニズムを考えているはずですよね?


いずれにせよ、これはデジタル アイデンティティ自体に関連した問題であり、読者に詳細を省き、情報をより適切に整理するために、今後の記事で分析する予定です。デジタルアイデンティティ自体はそれ自体が複雑な問題ですが、個人のアイデンティティを証明するタスクを複数の信頼できるエンティティに権限を与えることで、各デジタルペルソナが一意であることを比較的確実に保証する方法があると言えば十分でしょう。ボブ・マーリーの引用は、私たちが主張することを正確に説明しています。


「一部の人を時々騙すことはできるが、常に全員を騙すことはできない」


有権者が不正を発見した場合、または特定の方法で物理的に投票を強制された場合はどうなりますか?


最初にとるべき対策は、人々がこれらの状況を報告して、これらの出来事が考慮されるようにするためのチャネルを提供することです。たとえば、投票総数がわずかで総投票数の 0.01% に相当する場合でも、民主主義の価値観を守る必要があり、最終的な集計結果が最終投票数に近い非常にデリケートな国民投票について議論している場合を除き、これは実際には問題となる状況ではないでしょう。 50/50 の状況に相当します。これは、世論調査が有効であるとみなされるために、過半数のコンセンサスが 55/45 など、より高い値であることを要求することで軽減できます。


誰かが自分の投票が間違って登録されたことに気付いたシナリオでは、装置全体がブロックチェーンによってサポートされており、したがってサービスを提供する特定のシステム管理者の制御下にないことを考慮すると、より合理的なアプローチは、投票マシン自体が侵害されていると想定することです。ブロックチェーン全体ではありません。その場合に取られる最も直接的な保護手段は、投票者がマシンや OS を変更することです。この問題は、ソーシャル エンジニアリングやマルウェアなどのサイバーセキュリティの脅威に関連しています。記憶喪失 OS[ 7 ] の使用と同様に、オープンソースのハードウェアとソフトウェアの使用が推奨されます。 Amnesic ソフトウェアは常に初期設定状態に戻るため、投票者が意図せずウイルスをクリックして実行することでマルウェアをインストールした場合でも、マシンを再起動するとソフトウェアが変更されていない設定にロールバックされ、こうした事態が効果的に軽減されます。


考慮すべきもう 1 つの状況は、有権者が物理的または脅迫によって特定の方法で投票を強制される状況です。まともな社会で暮らす以外に強制から身を守る唯一のアプローチは、同じ世論調査で再投票を許可することだ。この分野では研究[ 8 ]が行われていますが、この技術を上記の他のすべての技術と統合する方法は、私たちの知る限り、まだ実装されていません。確かに方法はあります。いずれにせよ、投票フェーズを再開する可能性は常にあります。また、明らかな理由から、強制を防止すれば票の売買も防止できることにも留意すべきである。


私たちは、紙による投票を完全に放棄することを主張するわけではありません。なぜなら、少なくとも存在する限り、紙による投票は(現実かデジタルか)アイデンティティを試す絶好の機会であるからです。しかし、それにもかかわらず、私たちは、紙による投票の導入に強く賛成していると感じています。政治は、より迅速にコンセンサスを生み出すことができる補完的なツールであると同時に、紙の投票の結果を確認する二次情報源でもあります。

もう到着しましたか?

コンピューター科学者のジェフリー・ディーンは雄弁にこう言いました。


「現代のコンピューター暗号の原動力はセキュリティではなく、効率です。問題は、安全な暗号を作成できるかどうかではありません。あなたはできる。問題は、巨大なデータセットまたは非常に限られたハードウェアで効率的に動作するものを作成できるかどうかです。」


ブロックチェーン技術の課題はまさに、ユーザーベースと計算需要の増大に応じて拡張できる能力にあります。ブロックチェーンを利用したオンライン投票における暗号アルゴリズムの現在の実装では、イーサリアムでの実装と同様、コストは投票あたり約 10 ドルと見積もられています。 [ 14 ] 私たち Brightgov は、ブロックチェーンの高速化と、基礎となる数学的アルゴリズムの微調整が行われます。


歴史を通じて、暗号化は事態の流れを変える上で大きな役割を果たしてきました。最も単純な暗号法の 1 つであるシーザー暗号は、2000 年前にローマ皇帝によって使用されたことで有名です。日本の暗号機パープルとドイツのエニグマによって暗号化されたメッセージを傍受し、解読する連合国の能力は、第二次世界大戦を終わらせるために必要な重要な利点を提供するために非常に重要でした。


プログラミング方法を知っていて、さらに詳しく知りたい方は、私たちの研究論文を読むことをお勧めします。[ 15 ] CryptoBallot を使ってこのタイプのソフトウェアに慣れることもできます。[ 16 ]


結論として、サイバーセキュアなオンライン投票は可能であるだけでなく、非常に必要とされています。政治分野でのその採用は、私たちの生涯で最も破壊的な出来事の1つになる可能性があります...あなたがしなければならないのは、コンピューターとブロックチェーンで実行されているアルゴリズムを信頼することだけです。そうでない場合は、いつでも行うことができます自分でペンと紙を使って計算します。


参考文献:


[1] Numberphile の Ron Rivest 教授による「 Was YOUR vote counted? (feat. 準同型暗号化) 」、YouTube、2016 年https://www.youtube.com/watch?v=BYRTvoZ3Rho


[2] ウィキペディアのゼロ知識証明エントリ、 https://en.wikipedia.org/wiki/Zero-knowledge_proof


[3] 「セットやメンバーを公開せずに ZKP を使用してセットのメンバーシップを証明する方法」、 Anders Borch 著、著者のブログ、2019 年。 https://blog.cyborch.com/how-to-use-cryptographic-accumulators-to -セットまたはメンバーを公開せずにセットメンバーシップを証明/


[4] 「セット メンバーシップのゼロ知識証明」Dario Fiore 著、ZKProof Standards、2020 年。 https://zkproof.org/2020/02/27/zkp-set-membership/


[5] Ivan Damg ̊ard らによる「準同型暗号化による非対話型ゼロ知識」、暗号理論カンファレンス、2006 年。 https://cs.nyu.edu/\~nicolosi/papers/NonIntSi.pdf


[6] 「ステルス アドレス (暗号通貨) 」ジェイク フランケンフィールド著、Investopedia、2022 年。 https://www.investopedia.com/terms/s/stealth-address-cryptocurrency.asp


[7] ウィキペディアのTails (オペレーティング システム)エントリ、 https://en.wikipedia.org/wiki/Tails_(operating_system)


[8] 「 VoteAgain: A scalable coercion- resistance vote system 」Wouter Lueks ら著、Spring Labs、マドリード カルロス 3 世大学、2020 年。 https://arxiv.org/pdf/2005.11189.pdf


[9]ヘリテージ財団https://www.heritage.org/


[10] YouTube の「 Ainda mais indícios de crime nas Legislativas? 」エントリ、ポルトガル語、2022 年。 https://www.youtube.com/watch?v=L8fA9aOuR9k


[11] YouTube の「 AnaKarina denuncia "FRAUDE ELEITORAL" por parte da CNE 」エントリ、ポルトガル語、アンゴラ、2022 年。 https://www.youtube.com/watch?v=hLm8ocLgXCU


[12] 「よくある質問 - 不正投票」、 https://www.voteaustralia.org.au/faq_voter_fraud


[13] エコノミスト インテリジェンス ユニットによる「民主主義インデックス 2020: 病気と健康は? 」レポート、2020 年。 https://www.eiu.com/n/campaigns/democracy-index-2020/


[14] 「 ethVote: 分散台帳による安全な投票に向けて」Johannes Mols et Emmanouil Vasilomanolakis、オールボー大学、デンマーク、2020年。 https://www.researchgate.net/publication/341000573_ethVote_Towards_secure_voting_with_distributed_ledgers


[15] NERV による「リモート電子投票の概要」、2021 年の第 14 回 ICEGOV 会議への提出論文、 https://ia601401.us.archive.org/33/items/remote-e-voting-overview/Remote e -投票概要.pdf


[16]クリプトバロットhttps://github.com/cryptoballot/cryptoballot


ここにも登場します。