(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-12-16
(45)【発行日】2024-12-24
(54)【発明の名称】投票システム及び投票方法
(51)【国際特許分類】
G06Q 50/26 20240101AFI20241217BHJP
【FI】
G06Q50/26
(21)【出願番号】P 2023506675
(86)(22)【出願日】2021-03-19
(86)【国際出願番号】 JP2021011441
(87)【国際公開番号】W WO2022195860
(87)【国際公開日】2022-09-22
【審査請求日】2023-08-18
(73)【特許権者】
【識別番号】000004237
【氏名又は名称】日本電気株式会社
(74)【代理人】
【識別番号】100103894
【氏名又は名称】家入 健
(72)【発明者】
【氏名】衛藤 嘉之
(72)【発明者】
【氏名】糸永 航
(72)【発明者】
【氏名】松田 大輔
(72)【発明者】
【氏名】古川 諒
【審査官】星野 裕
(56)【参考文献】
【文献】特開2004-192029(JP,A)
【文献】国際公開第2019/173519(WO,A1)
【文献】特開2011-248436(JP,A)
【文献】特開2018-101380(JP,A)
【文献】特開2003-099557(JP,A)
【文献】韓国公開特許第10-2020-0077366(KR,A)
【文献】特開2004-013606(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06Q 10/00-99/00
(57)【特許請求の範囲】
【請求項1】
秘密分散により投票情報から複数のシェアを生成する秘密分散手段と、
前記複数のシェアを分散して記憶する複数のシェア記憶手段と、
前記投票情報を用いて行われる投票のトランザクションデータをブロックチェーンに記録するために、ブロックチェーンを管理するノードに、当該トランザクションデータを送信する第一のブロックチェーン処理手段と、
分散して記憶された前記シェアを使って、前記投票を分析するための秘密計算を行う秘密計算手段と
、
前記秘密計算の実行についてのトランザクションデータを前記ブロックチェーンに記録するために、前記ノードに、当該トランザクションデータを送信する第二のブロックチェーン処理手段と
を備えた投票システム。
【請求項2】
前記秘密分散手段の処理が、投票者が前記投票情報の生成のために利用する端末装置により行われる
請求項1に記載の投票システム。
【請求項3】
投票者の個人情報を用いて当該投票者の認証を行う認証手段と、
前記投票者の認証に成功した場合に、前記投票者からの入力操作に応じた前記投票情報を生成する投票情報生成手段と
をさらに備えた請求項1又は2に記載の投票システム。
【請求項4】
前記個人情報は、前記投票者の生体情報である
請求項3に記載の投票システム。
【請求項5】
前記ブロックチェーンに記録される
前記投票の前記トランザクションデータは、投票者を識別するデータを含む
請求項1乃至4のいずれか一項に記載の投票システム。
【請求項6】
前記ブロックチェーンに記録される
前記投票の前記トランザクションデータは、さらに、投票内容を表すデータを含む
請求項5に記載の投票システム。
【請求項7】
前記ブロックチェーンに記録される
前記投票の前記トランザクションデータは、さらに、前記投票の実行日時を表すデータを含む
請求項5又は6に記載の投票システム。
【請求項8】
前記ブロックチェーンに記録される
前記投票の前記トランザクションデータは、前記投票の取り消しに関するデータを含む
請求項1乃至7のいずれか一項に記載の投票システム。
【請求項9】
前記ブロックチェーンに記録される前記秘密計算の実行についての前記トランザクションデータは、前記秘密計算の実行を指示したユーザを識別するデータを含む
請求項
1乃至8のいずれか一項に記載の投票システム。
【請求項10】
前記ブロックチェーンに記録される前記秘密計算の実行についての前記トランザクションデータは、さらに、前記秘密計算の実行により得られる分析内容を表すデータを含む
請求項
9に記載の投票システム。
【請求項11】
前記ブロックチェーンに記録される前記秘密計算の実行についての前記トランザクションデータは、さらに、前記秘密計算の実行日時を表すデータを含む
請求項
9又は
10に記載の投票システム。
【請求項12】
前記投票情報は、投票者の属性を表す情報を含み、
前記秘密計算手段は、前記属性に関する統計データを算出する
請求項1乃至
11のいずれか一項に記載の投票システム。
【請求項13】
秘密分散により投票情報から複数のシェアを生成し、
前記複数のシェアを分散して記憶し、
前記投票情報を用いて行われる投票のトランザクションデータをブロックチェーンに記録するために、ブロックチェーンを管理するノードに、当該トランザクションデータを送信し、
分散して記憶された前記シェアを使って、前記投票を分析するための秘密計算を行
い、
前記秘密計算の実行についてのトランザクションデータを前記ブロックチェーンに記録するために、前記ノードに、当該トランザクションデータを送信する
投票方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、投票システム及び投票方法に関する。
【背景技術】
【0002】
電子投票を行うための技術が知られている。例えば、特許文献1は、候補とその得票との対応関係が秘匿された得票分布の開示を行うことが可能となる集計システムについて開示している。この集計システムでは、復号された平文のリストを公開するかわりに変換復号結果のリストを公開し、さらに、復号された平文のリストを用いずに変換復号結果が正しいことを検証可能な情報(変換復号結果証明データ)を公開する構成を採用している。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
近年、社会活動にICT(Information and Communication Technology)を活用する気運が高まっており、電子投票を行うための新規なシステムの提供が求められている。
【0005】
そこで、本明細書に開示される実施形態が達成しようとする目的の1つは、電子投票をセキュアに実施することできる投票システム及び投票方法を提供することである。
【課題を解決するための手段】
【0006】
本開示の第1の態様にかかる投票システムは、
秘密分散により投票情報から複数のシェアを生成する秘密分散手段と、
前記複数のシェアを分散して記憶する複数のシェア記憶手段と、
前記投票情報を用いて行われる投票のトランザクションデータをブロックチェーンに記録するために、ブロックチェーンを管理するノードに、当該トランザクションデータを送信する第一のブロックチェーン処理手段と、
分散して記憶された前記シェアを使って、前記投票を分析するための秘密計算を行う秘密計算手段と
を備えている。
【0007】
本開示の第2の態様にかかる投票方法では、
秘密分散により投票情報から複数のシェアを生成し、
前記複数のシェアを分散して記憶し、
前記投票情報を用いて行われる投票のトランザクションデータをブロックチェーンに記録するために、ブロックチェーンを管理するノードに、当該トランザクションデータを送信し、
分散して記憶された前記シェアを使って、前記投票を分析するための秘密計算を行う。
【発明の効果】
【0008】
本開示によれば、電子投票をセキュアに実施することできる投票システム及び投票方法を提供できる。
【図面の簡単な説明】
【0009】
【
図1】実施の形態の概要にかかる投票システムの構成の一例を示すブロック図である。
【
図2】実施の形態にかかる投票システムの構成の一例を示す模式図である。
【
図3】投票者端末の機能構成の一例を示すブロック図である。
【
図4】計算サーバの機能構成の一例を示すブロック図である。
【
図5】管理者端末の機能構成の一例を示すブロック図である。
【
図6】実施の形態にかかる投票システムの動作の流れの一例を示すシーケンスチャートである。
【
図7】コンピュータの構成の一例を示すブロック図である。
【発明を実施するための形態】
【0010】
<実施の形態の概要>
実施の形態の詳細を説明する前に、まず、実施の形態の概要について説明する。
図1は、実施の形態の概要にかかる投票システム1の構成の一例を示すブロック図である。
図1に示すように、投票システム1は、秘密分散部2と、シェア記憶部3と、ブロックチェーン処理部4と、秘密計算部5とを有する。
【0011】
秘密分散部2は、秘密分散により投票情報から複数のシェア(分散情報とも言う)を生成する。すなわち、一つの投票情報がN個(Nは2以上の整数)のシェア(分散情報)に分けられる。ここで、一つのシェアからは元の投票情報を復元することはできないが、N個のシェアのうちM個(Mは2以上、N以下の整数)のシェアを集めることにより、投票情報は復元可能である。
【0012】
投票システム1は、複数のシェア記憶部3を有する。複数のシェア記憶部3は、秘密分散部2により生成された複数のシェアを分散して記憶する。一つの投票情報に対してN個のシェアが生成される場合、投票システム1は、例えば、N個のシェア記憶部3を有するが、N個よりも多くのシェア記憶部3にシェアが記憶されてもよいし、N個よりも少ないシェア記憶部3にシェアが記憶されてもよい。
【0013】
ブロックチェーン処理部4は、投票情報を用いて行われる投票のトランザクションデータをブロックチェーンに記録するために、ブロックチェーンを管理するノードに、当該トランザクションデータを送信する。このノードは、ブロックチェーンネットワークを構成するノードである。これにより、ノードにおいて、ブロックチェーンへのトランザクションデータの記録処理が行われる。ブロックチェーンに記録されるトランザクションデータは、投票情報による投票行為についての任意の履歴である。例えば、ブロックチェーンに記録されるトランザクションデータは、投票者を識別するデータを含んでもよいし、投票内容を表すデータを含んでもよいし、投票の実行日時を表すデータを含んでもよい。ブロックチェーンは、トランザクションデータの集合であるブロックが連結された情報群であり、ネットワーク上で分散管理された台帳情報である。このような特徴を備えているブロックチェーンは、一般的に耐改竄性が担保されている。投票のトランザクションデータがブロックチェーンに記録されることにより、投票に関する不正を防ぐことができる。
【0014】
秘密計算部5は、分散して記憶されたシェアを使って、投票を分析するための秘密計算を行う。例えば、秘密計算部5は、マルチパーティ計算(MPC:Multi-party computation)を行うことにより、秘密計算を行う。
【0015】
このような構成を備える投票システム1によれば、投票に関する不正を抑制することができるとともに、投票情報を秘匿したまま投票についての分析を行うことができる。したがって、投票システム1によれば、電子投票をセキュアに実施することできる。
【0016】
次に、実施形態の詳細について説明する。
図2は、実施の形態にかかる投票システム10の構成の一例を示す模式図である。投票システム10は、投票者からの投票を受付けるとともに、投票結果についての分析を行うシステムである。一例として
図2に示した投票システム10は、投票者端末100_1、100_2、・・・、100_N
1と、計算サーバ群200と、管理者端末300と、ブロックチェーンネットワーク400とを含む。なお、
図2では、理解を助けるために、投票システム10に加え、投票者90_1、90_2、・・・、90_N
1及び管理者91も図示されている。以下の説明において、投票者端末100_1、100_2、・・・、100_N
1について特に区別せずに言及する場合、投票者端末100と称し、投票者90_1、90_2、・・・、90_N
1について特に区別せずに言及する場合、投票者90と称す。
【0017】
ブロックチェーンネットワーク400は、ブロックチェーンを管理するノード401_1、401_2、・・・、401_N2により構成されるネットワークであり、例えば、クラウドサービスとして提供されてもよい。なお、以下の説明において、ノード401_1、401_2、・・・、401_N2について特に区別せずに言及する場合、ノード401と称す。各ノード401は、ブロックチェーンネットワーク400を構成するノードであり、ブロックチェーンを共有するとともに、ブロックチェーンへのトランザクションデータの記録処理などを行うサーバである。ノード401は、他の装置(例えば、投票者端末100又は管理者端末300)から、ブロックチェーンに書き込むべきトランザクションデータを受信し、ブロックチェーンへの記録処理を行う。
【0018】
投票者端末100は、投票者90が投票のために用いる端末装置であり、例えば、スマートフォン、タブレット端末、パーソナルコンピュータ等である。それぞれの投票者90は、それぞれの投票者端末100を用いて、投票を行う。つまり、投票者90_i(ただし、1≦i≦N
1)は、投票者端末100_iを用いて投票を行う。
図3は、投票者端末100の機能構成の一例を示すブロック図である。
図3に示すように、投票者端末100は、認証部110と、投票情報生成部120と、秘密分散部130と、シェア記憶処理部140と、ブロックチェーン処理部150とを有する。
【0019】
認証部110は、投票者90の個人情報を用いて当該投票者90の認証を行う。個人情報は、投票者端末100に入力された情報であり、例えば、投票者90の生体情報であってもよい。なお、この生体情報は、例えば、投票者90の顔の特徴、指紋の特徴、虹彩の特徴などであるが、これらに限られない。生体情報を用いることにより、認証の利便性を向上させることができるが、認証部110は、投票者90のID及びパスワードといった個人情報を用いて認証を行ってもよい。また、認証部110は、認証サーバ(不図示)に対して個人情報を送信し、認証結果を認証サーバから受信することにより、認証を行ってもよい。
【0020】
投票情報生成部120は、投票者90からの入力操作に応じた投票情報を生成する。例えば、投票者90は、投票内容を選択する入力操作を投票者端末100が備える入力装置を介して行う。これにより、投票内容が決定される。ここで、投票内容は、首長または議員などの候補者の中からの特定の人物の選択に限られず、所定の世論調査における選択肢(例えば、賛成又は反対)の選択であってもよい。投票情報生成部120は、決定した投票内容を含むデータを投票情報として生成する。なお、投票情報生成部120は、投票内容だけでなく、様々な情報を含む投票情報を生成してもよい。本実施の形態では、投票情報生成部120は、例えば、投票内容と、投票者90の属性を表す情報とを含む投票情報を生成する。ここで、投票者90の属性を表す情報は、例えば、投票者90の性別を表す情報であってもよいし、年齢を表す情報であってもよいし、所属を表す情報であってもよい。なお、これらは例に過ぎず、属性を表す情報として他の情報が用いられてもよい。また、投票情報は、投票情報の生成された日時を示す情報を含んでもよいし、投票者90を識別する情報を含んでもよい。本実施の形態では、投票情報生成部120は、認証部110による投票者90の認証に成功した場合に、投票情報を生成する。このため、投票者90を正しく特定することが可能となる。
【0021】
秘密分散部130は、
図1の秘密分散部2に対応しており、秘密分散法を用いて、投票情報生成部120が生成した投票情報を暗号化する。すなわち、秘密分散部130は、投票情報に対して、所定の秘密分散法にしたがった秘密分散処理を行い、この投票情報から複数のシェアを生成する。例えば、秘密分散部130は、秘密分散法として、AONT(All or Nothing Transformation)を用いてもよい。ただし、これは一例に過ぎず、秘密分散部130は他の秘密分散法により秘密分散処理を行ってもよい。
【0022】
一般的に、秘密分散法では、生成されたシェアの一つからは元のデータを復元できず、所定数のシェアを集めることにより元のデータを復元することができる。このため、生成された複数のシェアを分散して記憶することにより、データ漏洩を防ぐことができる。本実施の形態では、シェア記憶処理部140は、一つの投票情報から生成されたシェアを後述する計算サーバ201A、201B、201Cの3つのサーバに分散して記憶する。このため、シェア記憶処理部140は、生成された複数のシェアを計算サーバ201A、201B、201Cに分散して送信し、計算サーバ201A、201B、201Cが備えるシェア記憶部210のそれぞれに分散的に記憶させる。これにより、投票情報の漏洩を防ぐことができる。なお、本実施の形態では、このように、秘密分散の処理が、投票者90が投票情報の生成のために利用する端末装置により行われる。すなわち、投票情報がこの端末装置(すなわち投票者端末100)から他の装置へ送信される前に秘密分散が行われる。このため、送信時における投票情報の漏洩の発生を抑制できるため、他の装置へ送信後に秘密分散が行われる場合に比較して、よりセキュアなシステムを提供することができる。
【0023】
ブロックチェーン処理部150は、
図1のブロックチェーン処理部4に対応しており、投票のトランザクションデータをブロックチェーンに記録するために、ブロックチェーンを管理するノード401に、当該トランザクションデータを送信する。具体的には、例えば、ブロックチェーン処理部150は、投票のトランザクションデータを生成し、生成したトランザクションデータをブロックチェーンネットワーク400にブロードキャストする。すなわち、ブロックチェーン処理部150は、ブロックチェーンネットワーク400を構成する各ノード401に、トランザクションデータを送信する。ブロードキャストされたトランザクションデータは、ノード401による処理を経て、1又は複数のトランザクションデータが含まれるブロックとして、ブロックチェーンに追加される。
【0024】
ブロックチェーン処理部150は、トランザクションデータとして、次のような情報を含むデータを生成してもよい。例えば、ブロックチェーン処理部150は、投票者90を識別するデータ、投票内容を表すデータ、及び、投票の実行日時を表すデータを含むトランザクションデータを生成してもよい。なお、ブロックチェーン処理部150は、これらのデータのうち一部だけを含むトランザクションデータを生成してもよい。例えば、ブロックチェーン処理部150は、投票者90を識別するデータだけを含むトランザクションデータを生成してもよいし、投票者90を識別するデータと投票の実行日時を表すデータを含むトランザクションデータを生成してもよい。なお、投票者90を識別するデータは、投票者90を識別可能なデータであればよく、投票者90の氏名であってもよいし、IDであってもよい。また、投票の実行日時は、具体的には、投票情報の生成日時であってもよいし、ブロックチェーンネットワーク400への投票情報の送信日時であってもよい。
【0025】
また、先に行った投票の取り消しが許される場合には、ブロックチェーン処理部150は、投票の取り消しに関するデータを含むトランザクションデータを生成し、ブロックチェーンネットワーク400に送信してもよい。ここで、投票の取り消しに関するデータは、例えば、取り消しの実行者を識別するデータ、取り消される投票を特定するデータ、取り消しの実行日時を表すデータのいずれか一つであってもよいし、これらの任意の組み合わせであってもよい。なお、ブロックチェーン処理部150は、認証部110による認証により特定されるユーザを取り消しの実行者とする。また、再投票が許される場合には、ブロックチェーン処理部150は、再投票のトランザクションデータを生成し、ブロックチェーンネットワーク400に送信してもよい。
【0026】
なお、ブロックチェーン処理部150は、トランザクションデータとして記録すべきデータのハッシュ値を算出し、このハッシュ値をトランザクションデータとしてもよい。また、トランザクションデータとして含めるデータの例についていくつか挙げたが、これらは例に過ぎず、他のデータがトランザクションデータに含まれてもよい。例えば、投票者90の属性を表す情報などがトランザクションデータに含まれてもよい。
このように、様々なデータを含むトランザクションデータを生成することにより、投票に関する様々な履歴をブロックチェーンに記録することが可能となる。
【0027】
次に、計算サーバ群200について説明する。計算サーバ群200は、秘密分散処理により生成されたシェアを分散記憶するとともに、分散記憶されたシェアを用いて秘密計算を行うサーバ群であり、本実施の形態では、計算サーバ201A、201B、201Cの3つの計算サーバを含んでいる。計算サーバ201A、201B、201Cは、それぞれ異なる組織(例えば、自治体、選挙管理委員会、第三者機関など)が管理するサーバであってもよい。以下、計算サーバ201A、201B、201Cについて特に区別せずに言及する場合、計算サーバ201と称す。
図4は、計算サーバ201の機能構成の一例を示すブロック図である。
図4に示すように、それぞれの計算サーバ201は、シェア記憶部210と、秘密計算部220とを有する。
【0028】
シェア記憶部210は、
図1のシェア記憶部3に対応しており、投票者端末100の秘密分散部130により生成されたシェアを記憶するストレージである。上述した通り、一つの投票情報に対して生成された複数のシェアは、各計算サーバ201のシェア記憶部210に分散記憶される。
【0029】
秘密計算部220は、
図1の秘密計算部5に対応しており、シェア記憶部210に記憶されたシェアを使って、投票を分析するための秘密計算を行う。本実施の形態では、計算サーバ201A、201B、及び201Cの各秘密計算部220は、他の計算サーバ201の秘密計算部220と協調して、マルチパーティ計算(MPC)を行う。本実施の形態では、秘密計算部220は、管理者端末300からのリクエストに応じて、秘密計算を実行し、秘密計算結果を管理者端末300に送信する。各秘密計算部220が送信する秘密計算結果は、秘密分散された計算結果である。このため、各秘密計算部220が送信する秘密計算結果を集めて復号処理を行うことにより、最終的な計算結果が得られる。
【0030】
次に、管理者端末300について説明する。管理者端末300は、複数の投票者からの投票の分析結果を取得するために、選挙管理者などの管理者91が用いる端末装置であり、例えば、スマートフォン、タブレット端末、パーソナルコンピュータ等である。
図5は、管理者端末300の機能構成の一例を示すブロック図である。
図5に示すように、管理者端末300は、認証部310と、計算指示部320と、計算結果復号部330と、出力部340と、ブロックチェーン処理部350とを有する。
【0031】
認証部310は、管理者91の個人情報を用いて当該管理者91の認証を行う。この個人情報は、管理者端末300に入力された情報であり、例えば、管理者91の生体情報であってもよい。なお、この生体情報は、例えば、管理者91の顔の特徴、指紋の特徴、虹彩の特徴などであるが、これらに限られない。認証部310は、管理者91のID及びパスワードといった個人情報を用いて認証を行ってもよい。また、認証部310は、認証サーバ(不図示)に対して個人情報を送信し、認証結果を認証サーバから受信することにより、認証を行ってもよい。
【0032】
計算指示部320は、管理者91からの入力操作で指定された分析を行うために、指定された分析に応じた秘密計算の実行を計算サーバ201に指示する。すなわち、計算指示部320は、管理者91からの入力操作に応じて、投票を分析するための秘密計算を計算サーバ201に指示する。換言すると、計算指示部320は、秘密計算の実行のリクエストを計算サーバ201に送信する。投票を分析するための秘密計算は、投票情報を用いた統計処理であればよい。すなわち、計算サーバ201の秘密計算部220は、秘密計算結果として、投票情報を用いた統計処理結果を算出してもよい。例えば、各選択肢(各候補者)の得票数などが算出されてもよい。また、特に、投票情報が、投票者90の属性を表す情報を含む場合には、投票を分析するための秘密計算は、属性に関する統計処理であってもよい。すなわち、この場合、計算サーバ201の秘密計算部220は、投票者90の属性に関する統計データを算出してもよい。例えば、選択肢毎に当該選択肢に投票した投票者90の年齢もしくは年齢層又は性別の分布が算出されてもよいし、年齢もしくは年齢層毎又は性別毎の投票先の選択肢の分布が算出されてもよい。本実施の形態では、計算指示部320は、認証部310による管理者91の認証に成功した場合に、秘密計算の実行を計算サーバ201に指示する。このため、秘密計算の実行を指示したユーザを正しく特定することが可能となる。
【0033】
計算結果復号部330は、計算指示部320による指示に基づいて行われた秘密計算の結果を各計算サーバ201から取得し、復号処理を行う。計算結果復号部330は、投票者端末100の秘密分散部130が用いた所定の秘密分散法(例えば、AONT)にしたがった復号処理を行うことで、最終的な計算結果(投票の分析結果)を得る。
【0034】
出力部340は、計算結果復号部330が得た最終的な計算結果、すなわち投票の分析結果を出力する。出力部340は、例えば、最終的な計算結果を管理者端末300に接続されたディスプレイに出力してもよいし、他の装置に送信してもよい。
【0035】
ブロックチェーン処理部350は、秘密計算の実行についてのトランザクションデータをブロックチェーンに記録するために、ブロックチェーンを管理するノード401に、当該トランザクションデータを送信する。具体的には、例えば、ブロックチェーン処理部350は、秘密計算の実行についてのトランザクションデータを生成し、生成したトランザクションデータをブロックチェーンネットワーク400にブロードキャストする。すなわち、ブロックチェーン処理部350は、ブロックチェーンネットワーク400を構成する各ノード401に、トランザクションデータを送信する。ブロードキャストされたトランザクションデータは、ノード401による処理を経て、1又は複数のトランザクションデータが含まれるブロックとして、ブロックチェーンに追加される。
【0036】
ブロックチェーン処理部350は、トランザクションデータとして、次のような情報を含むデータを生成してもよい。例えば、ブロックチェーン処理部350は、秘密計算の実行を指示したユーザ(管理者91)を識別するデータ、秘密計算の実行により得られる分析内容を表すデータ、及び、秘密計算の実行日時を表すデータを含むトランザクションデータを生成してもよい。なお、ブロックチェーン処理部350は、これらのデータのうち一部だけを含むトランザクションデータを生成してもよい。例えば、ブロックチェーン処理部350は、ユーザを識別するデータだけを含むトランザクションデータを生成してもよいし、ユーザを識別するデータと秘密計算の実行日時を表すデータを含むトランザクションデータを生成してもよい。なお、ユーザを識別するデータは、ユーザを識別可能なデータであればよく、ユーザの氏名であってもよいし、IDであってもよい。また、秘密計算の実行日時は、具体的には、計算指示部320による指示日時であってもよいし、計算結果復号部330による復号日時であってもよいし、出力部340による出力日時であってもよい。
【0037】
なお、ブロックチェーン処理部350は、トランザクションデータとして記録すべきデータのハッシュ値を算出し、このハッシュ値をトランザクションデータとしてもよい。また、トランザクションデータとして含めるデータの例についていくつか挙げたが、これらは例に過ぎず、他のデータがトランザクションデータに含まれてもよい。このように、様々なデータを含むトランザクションデータを生成することにより、分析の実行に関する様々な履歴をブロックチェーンに記録することが可能となる。
【0038】
次に、投票システム10における動作の流れについて説明する。
図6は、投票システム10の動作の流れの一例を示すシーケンスチャートである。以下、
図6に示したシーケンスチャートに沿って、動作の流れを説明する。
【0039】
ステップS100において、投票者端末100の認証部110は、投票者90の認証を行う。
認証に成功すると、ステップS101において、投票者端末100の投票情報生成部120は、投票者90からの入力操作に応じた投票情報を生成する。
次に、ステップS102において、投票者端末100の秘密分散部130は、秘密分散により、ステップ101で生成された投票情報から複数のシェアを生成する。
次に、ステップS103において、投票者端末100のシェア記憶処理部140は、ステップS102で生成された複数のシェアを計算サーバ201A、201B、201Cの3つのサーバに分散保存する。これにより、ステップS104において、計算サーバ201A、201B、201Cのシェア記憶部210にシェアが記憶される。
ステップS105において、投票者端末100のブロックチェーン処理部150は、投票のトランザクションデータを生成し、生成したトランザクションデータをブロックチェーンネットワーク400にブロードキャストする。
【0040】
ステップS100からステップS105の処理が、投票者それぞれの投票者端末100において行われる。これにより、計算サーバ201のシェア記憶部210には、複数の投票者の投票者端末100から送信された投票情報のシェアが記憶される。
【0041】
その後、ステップS106において、管理者端末300の認証部310は、管理者91の認証を行う。
認証に成功すると、ステップS107において、管理者端末300の計算指示部320は、管理者91からの入力操作に応じて、投票を分析するための秘密計算を計算サーバ201に指示する。
この指示に応じて、ステップS108において、各計算サーバ201の秘密計算部220は、シェア記憶部210に記憶されたシェアを使って秘密計算を実行する。
そして、ステップS109において、各計算サーバ201の秘密計算部220は、秘密計算の結果を管理者端末300に送信する。
次に、ステップS110において、管理者端末300の計算結果復号部330は、取得した秘密計算の結果に対して、復号処理を行い、投票の分析結果を得る。
次に、ステップS111において、管理者端末300の出力部340は、ステップS110で得られた分析結果を出力する。
次に、ステップS112において、管理者端末300のブロックチェーン処理部350は、秘密計算の実行についてのトランザクションデータを生成し、生成したトランザクションデータをブロックチェーンネットワーク400にブロードキャストする。
【0042】
以上、投票システム10の動作の流れについて説明したが、上述した動作は一例に過ぎず、種々の変更が可能である。例えば、ブロックチェーンへのトランザクションデータの記録タイミングは、
図6に示したタイミングに限らず、任意のタイミングに変更が可能である。
【0043】
以上、実施の形態について説明した。本実施の形態にかかる投票システム10では、投票情報は秘密分散処理が行われて分散記憶される。そして、投票の分析は秘密計算により行われる。さらに、履歴はブロックチェーンに記録される。このため、投票システム10によれば、投票に関する不正を抑制することができるとともに、投票情報を秘匿したまま投票についての分析を行うことができる。したがって、投票システム10によれば、電子投票をセキュアに実施することできる。なお、上述した実施の形態は、様々な変更が可能である。例えば、各計算サーバ201が、ブロックチェーンネットワーク400のノード401の役割を果たしてもよい。すなわち、例えば、計算サーバ201のストレージがブロックチェーンを記憶するとともに、計算サーバ201がブロックチェーンへのトランザクションデータの記録処理を行ってもよい。また、シェア記憶部210に記憶されたシェアについてデータ損失が発生した場合、計算サーバ201は、所定の秘密分散法(例えばAONT)のアルゴリズムにしたがってデータ修復を行ってもよい。また、本実施の形態では、投票システム10は3つの計算サーバ201を備えたが、計算サーバ201は複数であればよく、その数は3に限られない。
【0044】
また、投票者端末100、計算サーバ201、管理者端末300、又はノード401の処理は、ハードウェア回路により実現することも可能であるが、例えば、コンピュータのプロセッサがコンピュータプログラムを実行させることにより実現することが可能である。
【0045】
図7は、投票者端末100、計算サーバ201、管理者端末300、又はノード401の処理を実現するコンピュータ500の構成の一例を示すブロック図である。
図7に示すように、コンピュータ500は、ネットワークインタフェース501、メモリ502、及び、プロセッサ503を含む。
【0046】
ネットワークインタフェース501は、他の任意の装置と通信するために使用される。
メモリ502は、例えば、揮発性メモリ及び不揮発性メモリの組み合わせによって構成される。メモリ502は、プロセッサ503により実行される、1以上の命令を含むソフトウェア(コンピュータプログラム)などを格納するために使用される。
【0047】
プロセッサ503は、メモリ502からソフトウェア(コンピュータプログラム)を読み出して実行することで、投票者端末100、計算サーバ201、管理者端末300、又はノード401の処理を行う。
【0048】
プロセッサ503は、例えば、マイクロプロセッサ、MPU(Micro Processor Unit)、又はCPU(Central Processing Unit)などであってもよい。プロセッサ503は、複数のプロセッサを含んでもよい。
【0049】
なお、上述したプログラムは、様々なタイプの非一時的なコンピュータ可読媒体(non-transitory computer readable medium)を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体(tangible storage medium)を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体(例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ)、光磁気記録媒体(例えば光磁気ディスク)、CD-ROM(Read Only Memory)CD-R、CD-R/W、半導体メモリ(例えば、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAM(Random Access Memory))を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体(transitory computer readable medium)によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【0050】
以上、実施の形態を参照して本願発明を説明したが、本願発明は上記によって限定されるものではない。本願発明の構成や詳細には、発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【0051】
上記の実施形態の一部又は全部は、以下の付記のようにも記載され得るが、以下には限られない。
(付記1)
秘密分散により投票情報から複数のシェアを生成する秘密分散手段と、
前記複数のシェアを分散して記憶する複数のシェア記憶手段と、
前記投票情報を用いて行われる投票のトランザクションデータをブロックチェーンに記録するために、ブロックチェーンを管理するノードに、当該トランザクションデータを送信する第一のブロックチェーン処理手段と、
分散して記憶された前記シェアを使って、前記投票を分析するための秘密計算を行う秘密計算手段と
を備えた投票システム。
(付記2)
前記秘密分散手段の処理が、投票者が前記投票情報の生成のために利用する端末装置により行われる
付記1に記載の投票システム。
(付記3)
投票者の個人情報を用いて当該投票者の認証を行う認証手段と、
前記投票者の認証に成功した場合に、前記投票者からの入力操作に応じた前記投票情報を生成する投票情報生成手段と
をさらに備えた付記1又は2に記載の投票システム。
(付記4)
前記個人情報は、前記投票者の生体情報である
付記3に記載の投票システム。
(付記5)
前記ブロックチェーンに記録される前記トランザクションデータは、投票者を識別するデータを含む
付記1乃至4のいずれか一項に記載の投票システム。
(付記6)
前記ブロックチェーンに記録される前記トランザクションデータは、さらに、投票内容を表すデータを含む
付記5に記載の投票システム。
(付記7)
前記ブロックチェーンに記録される前記トランザクションデータは、さらに、前記投票の実行日時を表すデータを含む
付記5又は6に記載の投票システム。
(付記8)
前記ブロックチェーンに記録される前記トランザクションデータは、前記投票の取り消しに関するデータを含む
付記1乃至7のいずれか一項に記載の投票システム。
(付記9)
前記秘密計算の実行についてのトランザクションデータを前記ブロックチェーンに記録するために、前記ノードに、当該トランザクションデータを送信する第二のブロックチェーン処理手段をさらに備える
付記1乃至8のいずれか一項に記載の投票システム。
(付記10)
前記ブロックチェーンに記録される前記秘密計算の実行についての前記トランザクションデータは、前記秘密計算の実行を指示したユーザを識別するデータを含む
付記9に記載の投票システム。
(付記11)
前記ブロックチェーンに記録される前記秘密計算の実行についての前記トランザクションデータは、さらに、前記秘密計算の実行により得られる分析内容を表すデータを含む
付記10に記載の投票システム。
(付記12)
前記ブロックチェーンに記録される前記秘密計算の実行についての前記トランザクションデータは、さらに、前記秘密計算の実行日時を表すデータを含む
付記10又は11に記載の投票システム。
(付記13)
前記投票情報は、投票者の属性を表す情報を含み、
前記秘密計算手段は、前記属性に関する統計データを算出する
付記1乃至12のいずれか一項に記載の投票システム。
(付記14)
秘密分散により投票情報から複数のシェアを生成し、
前記複数のシェアを分散して記憶し、
前記投票情報を用いて行われる投票のトランザクションデータをブロックチェーンに記録するために、ブロックチェーンを管理するノードに、当該トランザクションデータを送信し、
分散して記憶された前記シェアを使って、前記投票を分析するための秘密計算を行う
投票方法。
【符号の説明】
【0052】
1 投票システム
2 秘密分散部
3 シェア記憶部
4 ブロックチェーン処理部
5 秘密計算部
10 投票システム
90 投票者
91 管理者
100 投票者端末
110 認証部
120 投票情報生成部
130 秘密分散部
140 シェア記憶処理部
150 ブロックチェーン処理部
200 計算サーバ群
201 計算サーバ
210 シェア記憶部
220 秘密計算部
300 管理者端末
310 認証部
320 計算指示部
330 計算結果復号部
340 出力部
350 ブロックチェーン処理部
400 ブロックチェーンネットワーク
401 ノード
500 コンピュータ
501 ネットワークインタフェース
502 メモリ
503 プロセッサ