(57)【要約】      （修正有）【課題】電子投票によって収集した、複数の候補者に対する投票者の票を判定するシステムおよび方法を提供する。【解決手段】選挙監督者ごとに、各選挙監督者に対応する、１以上の投票者の票の暗号化のための公開鍵と、各選挙監督者に対応する、１以上の投票者の票の復号化のための秘密鍵と、を生成する。さらに、記録の分散型レジスタを、投票者が投じ各選挙監督者が受信する票の追跡のために設ける。票は、選挙監督者各々の公開鍵を使用して投票者により投じられ、各投票者のデジタル署名で署名される。投票終了時、変更された記録の分散型レジスタを秘密鍵で復号化し、各候補者に対して投票者が投じた票数を集計する。【選択図】図２
2019053269.tif 000002
【特許請求の範囲】
【請求項１】
選挙に対応する統一投票鍵を受信し、
ユーザの投票者識別情報に基づいて、前記ユーザに対応するデジタル署名を取得し、
前記選挙の複数の候補者のうち１人を選択するユーザの入力を受信し、
前記統一投票鍵および前記デジタル署名を用いて、選択された候補者を指定するデータを含む前記ユーザの票を生成し、
生成された票を、前記選挙の選挙監督者に対応するコンピュータ装置に送信する、
電子投票による選挙において投票するための方法。
【請求項２】
前記票の生成は、
前記統一投票鍵を用いて暗号化される、前記選択された候補者に対応する候補者識別子を暗号化することを含み、前記候補者識別子は素数を含む、請求項１に記載の方法。
【請求項３】
前記票の生成は、
前記ユーザに対応する前記デジタル署名を用いて、暗号化された前記候補者識別子に署名することをさらに含む、請求項２に記載の方法。
【請求項４】
取得した前記デジタル署名は、前記ユーザが投じた票を認証するために前記選挙監督者に提供される公開鍵と、前記ユーザが投じる票に署名するために使用される秘密鍵と、を含む、請求項１に記載の方法。
【請求項５】
ユーザの前記票の生成は、
前記選択された候補者に対応する候補者識別子Mを特定し（ただし、Mは素数であり、かつ、ランダムな素数q以下の値である）、
セッション鍵αを選択し（ただし、1<α<q-1）、
x=gα  mod  qおよびy=hαM  mod  q（ただし、gはqの原始根）を算出することにより、数値xとyの組み合わせである前記票を生成することを含む、請求項１に記載の方法。
【請求項６】
生成された票の送信は、
前記選挙の複数の選挙監督者に対応する複数のコンピュータ装置のネットワークアドレス一覧を受信し、
受信した一覧を用いて、前記複数の選挙監督者に対応する前記複数のコンピュータ装置それぞれに前記生成された票を送信することをさらに含む、請求項１に記載の方法。
【請求項７】
ユーザの前記票の生成は、
ElGamal暗号方式、Merkel-Hellman暗号システム、およびRabin暗号システムのうち少なくとも１つを使用することを含む、請求項１に記載の方法。
【請求項８】
選挙に対応する統一投票鍵を受信し、
ユーザの投票者識別情報に基づいて、前記ユーザに対応するデジタル署名を取得し、
前記選挙の複数の候補者のうち１人を選択するユーザの入力を受信し、
前記統一投票鍵および前記デジタル署名を用いて、選択された候補者を指定するデータを含む前記ユーザの票を生成し、
生成された票を、前記選挙の選挙監督者に対応するコンピュータ装置に送信する、
処理装置を備える、電子投票による選挙において投票するためのシステム。
【請求項９】
前記票の生成は、
前記統一投票鍵を用いて暗号化される、前記選択された候補者に対応する候補者識別子を暗号化することを含み、前記候補者識別子は素数を含む、請求項８に記載のシステム。
【請求項１０】
前記票の生成は、
前記ユーザに対応する前記デジタル署名を用いて、暗号化された前記候補者識別子に署名することをさらに含む、請求項９に記載のシステム。
【請求項１１】
取得した前記デジタル署名は、前記ユーザが投じる票を認証するために前記選挙監督者に提供される公開鍵と、前記ユーザが投じる票に署名するために使用される秘密鍵と、を含む、請求項８に記載のシステム。
【請求項１２】
ユーザの前記票の生成は、
前記選択された候補者に対応する候補者識別子Mを特定し（ただし、Mは素数であり、かつ、ランダムな素数q以下の値である）、
セッション鍵αを選択し（ただし、1<α<q-1）、
x=gα  mod  qおよびy=hαM  mod  q（ただし、gはqの原始根）を算出することにより、数値xとyの組み合わせである前記票を生成することを含む、請求項８に記載のシステム。
【請求項１３】
生成された票の送信は、
前記選挙の複数の選挙監督者に対応する複数のコンピュータ装置のネットワークアドレス一覧を受信し、
受信した一覧を用いて、前記複数の選挙監督者に対応する前記複数のコンピュータ装置それぞれに前記生成された票を送信することをさらに含む、請求項８に記載のシステム。
【請求項１４】
前記ユーザの票の生成は、
ElGamal暗号方式、Merkel-Hellman暗号システム、およびRabin暗号システムのうち少なくとも１つを使用することを含む、請求項８に記載のシステム。
【請求項１５】
選挙に対応する統一投票鍵を受信し、
ユーザの投票者識別情報に基づいて、前記ユーザに対応するデジタル署名を取得し、
前記選挙の複数の候補者のうち１人を選択するユーザの入力を受信し、
前記統一投票鍵および前記デジタル署名を用いて、選択された候補者を指定するデータを含む前記ユーザの票を生成し、
生成された票を、前記選挙の選挙監督者に対応するコンピュータ装置に送信する、
各手順をコンピュータに実行させる、電子投票による選挙において投票するためのコンピュータ実行可能命令を含む、非一時的コンピュータ可読記憶媒体。
【請求項１６】
前記票の生成は、
前記統一投票鍵を用いて暗号化される、前記選択された候補者に対応する候補者識別子を暗号化することを含み、前記候補者識別子は素数を含む、請求項１５に記載の非一時的コンピュータ可読記憶媒体。
【請求項１７】
前記票の生成は、
前記ユーザに対応する前記デジタル署名を用いて、暗号化された前記候補者識別子に署名することをさらに含む、請求項１６に記載の非一時的コンピュータ可読記憶媒体。
【請求項１８】
前記取得したデジタル署名は、前記ユーザが投じる票を認証するために前記選挙監督者に提供された公開鍵と、前記ユーザが投じる票に署名するために使用される秘密鍵と、を含む、請求項１５に記載の非一時的コンピュータ可読記憶媒体。
【請求項１９】
ユーザの前記票の生成は、
前記選択された候補者に対応する、素数でありランダムな素数q以下の値である候補者識  前記選択された候補者に対応する候補者識別子Mを特定し（ただし、Mは素数であり、かつ、ランダムな素数q以下の値である）、
セッション鍵αを選択し（ただし、1<α<q-1）、
x=gα  mod  qおよびy=hαM  mod  q（ただし、gはqの原始根）を算出することにより、数値xとyとの組み合わせである前記票を生成することを含む、請求項１５に記載の非一時的コンピュータ可読記憶媒体。
【請求項２０】
生成された票の送信は、
前記選挙の複数の選挙監督者に対応する複数のコンピュータ装置のネットワークアドレス一覧を受信し、
受信した一覧を用いて、前記複数の選挙監督者に対応する前記複数のコンピュータ装置それぞれに前記生成された票を送信することをさらに含む、請求項１５に記載の非一時的コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、一般に電子投票システムの分野に関し、特に、電子投票によって収集した投票者の票を判定するシステムおよび方法に関する。
【背景技術】
【０００２】
近年の、様々なコンピュータ装置（パーソナル・コンピュータ、ノート型パーソナル・コンピュータ、タブレット、スマートフォン等）の普及、利用可能な高性能サーバの出現、コンピュータ・ネットワークのトラフィック量の増大、そして、エンドユーザが負担するネットワークトラフィック費用の大幅な低下は、個人ユーザおよび組織全体に分散型データ処理システムを使用させる大きな原動力となった。分散型データ処理システムでは、データが特定のコンピュータ装置で生成され、別の装置で処理され、さらに別の装置に記憶される。クラウドサービスは依然として人気だが、クラウドサービスでは多くの場合、ユーザのパーソナル・コンピュータ装置は単なる端末として使用される。かかるクラウドサービスでは、たとえばオンラインバンキング、ホテル予約および交通チケット発行システムおよび評価システム（たとえば映画のレビュー作成）が提供される。
【０００３】
分散型データ処理システムはまた電子投票システムを含む。電子投票システムとは、ユーザが自分のコンピュータを使用して（選挙期間中等に）候補者に投票したり、（視聴した映画、読んだ本、または購入した商品等について）評価レビューを投稿したりするシステムである。電子投票システムの利点は、投票の簡易性（専用ソフトウェアが搭載され、インターネット等のコンピュータ・ネットワークにアクセスできるコンピュータをユーザが持っていればよい）、効率性（ユーザは、コンピュータ・ネットワークにアクセスできる場所ならどこでもいつでも投票ができる）、および票集計の精度（すべての票の集計を一箇所で実行して記憶し、効率的かつ自動的に実行できるため、人為的ミスが排除される）が挙げられる。電子投票システムはまた、（強制期日前投票、票の水増し、票の買収、意図的な票集計ミス等の選挙不正を抑制することで）セキュリティを高め、投票結果の信頼性を高めることができる。
【０００４】
電子投票システムが有効に解決しなければならない２つの主な課題として、投票者の匿名化と、票の改ざん防止が挙げられる。投票者の匿名化とは、投票の全ての段階で、投票者と当該投票者の票とを秘密にすることを可能にするあらゆる技術を指す。投票者の匿名化によって秘密投票が保証され、投票者の登録から投票後の票集計の終了までの一連の投票全体のどの段階においても、それぞれの投票者が誰に投票したか特定することが不可能となる。票の改ざん防止とは、次のような様々な不正行為を防ぐ技術を指す。賄賂、行政的圧力、または投票者への恐喝；票の偽造（投票用紙が使用される場合、票の水増し、票の差し替えなど）；投票所における投票監督者の業務に対する違法な妨害行為；および意図的な票集計ミスなどである。票の改ざんには様々な種類の「カルーセル（carousels）」も含まれる。カルーセルとは、投票箱に投じる記入済みの票を投票ブースに入る前の投票者に渡し、投票者から新しい白紙の票を受け取って、白紙の票と「カルーセル」主導者からの金銭または高価な品とを交換し、「カルーセル」主導者はその白紙の票に記入して次の投票者に渡す、という投票者の贈収賄によって投票結果に影響を与える方法である。票の改ざんにはまた、投票記録の偽造（たとえば、最終投票結果に意図的に誤データを入力する等）や、「間違った」候補者が当選した投票所や、そこでの投票結果が選挙全体の結果に大きく影響するような投票所での投票結果を変えることによって、「正当な」候補者が当選しないようにすることなども含まれる。
【０００５】
これまでに知られている電子投票システムの方法は、電子投票を実行するという課題（すなわち、票の記録や集計）には対処しているが、票のセキュリティ（選挙中の違反行為の抑止）や秘密性（投票処理中のすべての段階で各投票者が誰に投票したかを特定できない秘密投票を保証する）のニーズは満たしておらず、電子投票結果の不正な変更に対処できない。
【発明の概要】
【０００６】
本開示のいくつかの側面は、電子投票によって投票され収集された票の数を判定するという課題を解決でき、電子投票の秘密性を保証する。
【０００７】
一例示的側面では、電子投票による選挙において投票するための方法は、選挙に対応する統一投票鍵を受信し、ユーザの投票者識別情報に基づいて、ユーザに対応するデジタル署名を取得し、選挙の複数の候補者のうち１人を選択するユーザの入力を受信し、統一投票鍵およびデジタル署名を用いて、選択された候補者を指定するデータを含むユーザの票を生成し、生成された票を、選挙の選挙監督者に対応するコンピュータ装置に送信することを含む。
【０００８】
別の例示的側面では、電子投票による選挙において投票するためのシステムは、選挙に対応する統一投票鍵を受信し、ユーザの投票者識別情報に基づいて、ユーザに対応するデジタル署名を取得し、選挙の複数の候補者のうち１人を選択するユーザの入力を受信し、統一投票鍵およびデジタル署名を用いて選択された候補者を指定するデータを含むユーザの票を生成し、生成された票を、選挙の選挙監督者に対応するコンピュータ装置に送信する、処理装置を備える。
【０００９】
別の例示的側面では、本明細書に記載する方法のいずれかを実行するためのコンピュータ実行可能命令を含む命令を備えたコンピュータ可読媒体を提供する。
【００１０】
上記の例示的側面の簡単な概要により、本開示を基本的に理解できるであろう。この概要は、想定されるすべての側面の包括的な概観ではなく、全ての側面の主要または必要不可欠な要素を特定するものでも、本開示の側面の一部または全部の範囲を画するものでもない。本概要は、単に、以下の本開示の詳細な説明の前置きとして、１以上の側面を簡単に述べるものである。本開示の１以上の側面は、請求の範囲において説明され例示的に提示されている特徴を含む。
【図面の簡単な説明】
【００１１】
本明細書に組み込まれて本明細書の一部を構成する添付の図面は、本開示の１以上の例示的側面を図示するものであり、詳細な説明とともにその原理および実施形態を説明するものである。
【００１２】
【図１】図１は、一例示的側面に係る、電子投票によって収集した票の数を判定するシステムを示すブロック図である。
【図２】図２は、一例示的側面に係る、電子投票によって収集した票の数を判定する方法を示すフローチャートである。
【図３】図３は、一例示的側面に係る、電子投票によって票を集計するシステムの一実施形態のブロック図である。
【図４】図４は、一例示的側面に係る、投票運営者の業務方法の一実施形態のフローチャートである。
【図５】図５は、一例示的側面に係る、汎用コンピュータシステム、パーソナル・コンピュータまたはサーバの一例を示す図である。
【発明を実施するための形態】
【００１３】
電子投票によって収集した票の数を判定するシステム、方法およびコンピュータプログラムプロダクトの例示的側面について説明する。当業者は、以下の説明が単に例示であって限定ではないことが理解できるだろう。他の側面についても、本明細書の利益を享受する当業者は容易に理解できるだろう。以下、添付の図面に示す、例示的側面に係る実施形態を詳しく参照する。図面および以下の説明では、同じ又は同様の要素には可能な限り同じ参照符号を使用する。
【００１４】
本開示の種々の実施形態の説明において以下の定義および概念を使用する。
【００１５】
「投票者の匿名化（voter  anonymization）」とは、投票者の登録から、投票に参加した各候補に投じられた票を投票の最後に最終的に集計するまでのすべての段階を含む投票処理を通じて、投票者が誰に投票したか特定できないよう、投票の秘密性（投票者の選択の秘匿）を保証するアルゴリズムを指す。
【００１６】
「投票（balloting）」とは、投票者の選択を特徴づけるデータに基づき、少なくとも２人の候補者から少なくとも１人の候補者を指定する一連のアクションを指す。
【００１７】
「投票者（voter）」とは、投票について登録された候補者のうち少なくとも１人を選択し、当該選択を特徴づけるデータ（以下、「投票者の票」）を、実施される投票の結果を集計する際に後から使用できるよう投票管理者に送信することによって投票（コンピュータ装置を使用した投票を含む）に参加する主体または主体グループを指す。
【００１８】
「監督者（observer）」とは、実施される投票の結果を集計する際に、投票者の票の作成の正当性、および、投票者の票の使用の正当性を確認することにより、一連の投票過程（コンピュータ装置を使用した投票も含む）を監視する主体または主体グループを指す。
【００１９】
「投票運営者（balloting  organizer）」とは、投票と、候補者、監督者および投票者の登録と、候補者、監督者および投票者間の相互インタラクションの仕組みと、投票結果の集計と、に関する基準を設定することにより、一連の投票過程（コンピュータ装置を使用した投票も含む）を管理する主体または主体グループを指す。
【００２０】
「記録の分散型レジスタ（decentralized  register  of  records）」とは、入力データと記録の分散型レジスタの前の状態（以前に作成されたデータ）とに基づき、明確なルールに従い作成されるデータ構造（自然数など）を指す。記録の分散型レジスタはどの状態でも、前述の入力データのトランザクションに基づいて人が作業する分散型データベースを形成するが、トランザクションが信頼できる（「承認された」）とみなすためには、フォーマットや署名を認証して、専用の構造（記録の分散型レジスタ）に入力する必要がある。
【００２１】
図１は、一側面に係る、電子投票によって収集した票の数を判定するシステムを示すブロック図である。システム１００は、投票者１０１、候補者１０２、監督者１０３、投票運営者１０４、投票者登録モジュール１１１、候補者登録モジュール１１２、監督者登録モジュール１１３、投票モジュール１２０、票登録モジュール１３０、および票集計モジュール１４０を含む。
【００２２】
投票処理において投票者１０１の選択を秘匿する本システムの一変形例は、ElGamal暗号システムの準同型特性を用いる。本システムは、有限剰余体について離散対数を求めることが困難であることに基づく。投票者１０１による候補者１０２の選択を秘匿するため、かつ、秘匿した選択の有効性の証拠として、ゼロ知識証明の原理を使用する。これによって、選択が無効であるという論理的可能性も排除して、投票者１０１の票を収集する段階で投票者１０１の選択を秘匿する。他方、候補者１０２の選択が有効である場合、当該選択は投票運営者１０４が設けた投票基準を満たす（たとえば、予め登録した投票者１０１の投票であること、候補者１０２の一覧からの選択であること、全候補者１０２のうち１人のみの選択であること）。
【００２３】
投票者１０１は、投票者１０１が利用可能な手段または投票運営者１０４から提供された手段で票を送信することにより、候補者１０２のうち少なくとも１人に票を入れる主体である。本システムの一変形例では、投票者１０１は、投票者１０１のコンピュータ装置を使用して投票に参加する。投票の参加には、少なくとも以下の手順が含まれる。ユーザまたはユーザグループは、投票に参加するための自分の識別データに基づき、投票者登録モジュール１１１で投票者１０１として登録する。投票者１０１は候補者１０２のうち少なくとも１人を選択し、当該選択のデータに基づき投票者１０１の票を投じ、実施される投票の結果集計に後から使用するため投票者１０１が投じる票を送信することで、投票に直接参加する。投票が完了すると、票の結果が集計される。
【００２４】
システムのさらに別の一変形例では、投票者１０１のコンピュータ装置は少なくとも、投票運営者１０４が提供する（たとえば、投票運営者１０４のサイトからダウンロードされインストールされた）ソフトウェア（たとえば、投票運営者１０４のサーバ上で運営されるオンライン投票サービスへのアクセスを提供するサード・パーティのアプリケーションまたはブラウザ）が動作する、パーソナル・コンピュータ、ノート型パーソナル・コンピュータ、タブレット、モバイル機器（携帯電話、スマートフォン等）である。
【００２５】
たとえば、所定の国の国民は、これから実施される大統領選挙（投票）に参加するため、投票運営者１０４である公式選挙管理委員会のサイトにアクセスし、専用アプリケーション「voteApp」を自分の携帯電話にダウンロードしインストールする。その後、国民は、自分の携帯電話からアプリケーション「voteApp」を用いて、投票者１０１として登録する。その後、国民は、実施される選挙に関する全ての必要な情報（候補者１０２の一覧、選挙実施日時、実施される選挙の基準、サポートサービス番号など）、ならびに、投票者１０１が票を投じるためにアプリケーション「voteApp」が必要とするデータ（投票者１０１の識別子、暗号鍵など）、および、実施される選挙の結果集計時に後から使用するため、投票者１０１が投じる票を送信するためにアプリケーション「voteApp」が必要とするデータ（投じる票の送信先となりうるサーバのアドレス、当該サーバの所有者および当該サーバを所有または運用する監督者１０３等に関するデータ等）を自分の携帯電話で受信する。選挙期間中、投票者１０１は、自分の携帯電話からアプリケーション「voteApp」を使用して候補者１０２を直接選択する。投票者１０１の選択のデータ（アプリケーション「voteApp」が作成した投票者１０１の票）は、投票運営者１０４（または、オプションとして認められていれば監督者１０３）に送られる。選挙期間が満了する前に、投票者１０１にさらに投票する機会を与えてもよい。たとえば、投票者１０１は他の候補者１０２を選択してもよいし、投票結果の集計時に先に投じた票に代えて使用される票を投じてもよい。選挙終了時には、選挙結果に関する情報（当選者の名前、候補者１０２の票の分布、地域ごと及び時間ごとの票の動向など）が投票者１０１の携帯電話に送られる。
【００２６】
候補者１０２は、投票者１０１が投票する対象（または客体）である。投票者１０１の票は、票の結果を集計するために投票運営者１０４が使用し、監督者１０３が認証する。
【００２７】
本システムの一変形例では、候補者１０２には、自身の識別データに基づいて識別子（数字）が（投票運営者１０４などによって）割り当てられ、投票する際に投票者１０１は、選んだ候補者１０２の識別子を使用する。たとえば、Smith、JohnsonおよびWilliamsを候補者とする大統領選挙の場合、大統領の座を争う各候補者１０２に識別子が割り当てられてもよい（Smith：３１４１５、Johnson：９２６５３、Williams：５８９７９）。識別子はその後、投票時、および、実施された投票の結果集計のための投票者１０１の票の使用時に、使用される。
【００２８】
本システムの一変形例では、候補者登録モジュール１１２での候補者１０２の登録は、投票者１０１が投票者１０１のコンピュータ装置から候補者１０２の識別データを送信することにより開始してもよい。たとえば、投票運営者１０４である書籍出版社は、過去１年間の出版作品の中から最高傑作を選ぶ購読者投票を告知する。投票者１０１は、書籍出版社のサイトから自分のタブレットにアプリケーション「bookVoteApp」をダウンロードして投票者１０１として登録された人であってよい。投票者１０１は、投票開始前に自分のタブレットからbookVoteAppを使用して、これから実施される投票の候補者１０２となり得ると投票者１０１が考える作品のタイトル一覧を投票運営者１０４に送信する。この場合、作品のタイトルが候補者１０２の識別データの役割を果たす。投票運営者１０４は、タイトル一覧を投票者１０１から受信した後、受信したタイトル一覧中の作品が候補者１０２の要件を満たすか、必要な認証を行う。その後、認証された作品はこれから実施される投票の候補者１０２として登録され、候補者１０２に識別子が割り当てられる。
【００２９】
監督者１０３（選挙監督者ともいう）は、（一連の投票過程で作成されたデータに基づいて、投票運営者１０４が設定して監督者１０３に送信した所定の基準により一連の投票過程を追跡するようプログラムされたコンピュータ装置を使用する場合も含め）一連の投票過程を監視する主体または主体グループである。一連の投票過程の監視は、実施される投票の結果を集計する際に、投票者１０１が投じた票の正当性および投票者１０１の票の使用の正当性を認証することを含む。たとえば、国の大統領を選ぶ投票の監督者１０３は、各候補者１０２の選挙本部であってもよい。よって、選挙本部は、投票者１０１による候補者１０２の選択に基づいて投じられた投票者１０１の票の使用の正当性を上述の監督者１０３によって認証するだけでなく、選挙そのものの反証可能性（すなわち、全ての他の候補者１０２のうち、投票者１０１の選択に基づいて投じられた、投票者１０１の票の使用の正当性）も認証してもよい。
【００３０】
本システムの一変形例では、監督者登録モジュール１１３に登録された監督者１０３のデータは、投票者１０１に送られる。一部の側面では、監督者１０３のデータは、投票者１０１の票の送信先となる、監督者１０３が使用するサーバのアドレス一覧を含んでよい。一部の側面では、監督者１０３のデータは、監督者１０３に関する一般的な情報（たとえば、どの候補者１０２のために働いているのか等の情報も含む）も含んでよく、投票者１０１はこのデータに基づいて、候補者１０２への票をどの監督者１０３に送信すべきか選択してもよい。
【００３１】
監督者１０３の登録は、投票運営者１０４によって行われる。監督者１０３の登録における主な作業は、投票者１０１の票の使用態様としてありうる態様について、監督者１０３のコンピュータ装置を認証すること（計算処理能力、耐障害性および不正アクセス耐性の認証も含む）、監督者１０３の独立性の認証（監督者１０３が他の監督者１０３と協働して一連の投票過程に影響を及ぼさないか）、他の監督者１０３との関係の発見や投票結果の改ざんにおいてありうる違法行為の説明等の認証が含まれる。
【００３２】
投票運営者１０４は、一連の投票過程を管理する主体または主体グループである。この管理では、投票者１０１、候補者１０２、監督者１０３、予想投票結果等の一覧を含む所定の、または動的に送信される入力データに基づき、設定された基準により投票を行うようプログラムされたコンピュータ装置を使用する。予想投票結果を求めるため、現在の投票の集計結果と前回の集計結果とが大幅に異なる場合は、前回集計した候補者１０２間の投票者１０１の票の分布を用いて票の改ざんがなかったか判断する。投票運営者１０４は、投票（たとえば、投票の開始および終了）と、候補者１０２、監督者１０３および投票者１０１の登録と、候補者１０２、監督者１０３および投票者１０１間の相互インタラクションの仕組みと、一連の投票過程で発生するエラーの特定および除去と、投票結果の集計とに関する基準を決定してもよい。
【００３３】
一部の側面では、投票運営者１０４は、投票者１０１の登録に関する基準を設けてもよい。たとえば、投票者１０１（または投票者１０１のコンピュータ装置の機能）は、投票運営者１０４が実施する投票において、候補者１０２および監督者１０３のデータを用いる可能性がある。投票運営者１０４は、投票者１０１の選択対象となる候補者１０２の一覧（投票者１０１によって候補者１０２の一覧が異なる場合もある）、および、投票者１０１が投じる票の投票者１０１の送信先となる監督者１０３の一覧（投票者１０１によって監督者１０３の一覧が異なる場合もある）を指定する。投票運営者１０４は、投票者１０１が選択できる候補者１０２の人数、および、各投票者１０１または投票者１０１のグループ毎に個別の投票時間を指定してもよい。
【００３４】
一部の側面では、投票運営者１０４は、候補者１０２の登録（たとえば、運営中の選挙に参加する候補者１０２の人数）および監督者１０３の登録（たとえば、投票者１０１の票を継続的に追跡するために、監督者１０３が提供するコンピュータ装置に要求される必要最低限の性能、耐障害性および不正アクセス耐性）に関する基準、ならびに投票および投票結果の集計に関する基準（たとえば、投票開始時刻と投票受付期間、投票者１０１が複数の候補者１０２に投票できるか）をさらに設けてもよい。一部の側面では、投票運営者１０４は、投票者１０１と監督者１０３との間のインタラクションのルールに基準を設けてもよい。たとえば、投票運営者１０４は、投票者１０１の票の送り先となりうる、監督者１０３が提供するサーバの一覧から幾つかのサーバを選択してもよい。
【００３５】
一例として、あるグループの人々が自分たちの議長を選出するための準備をしているとする。選挙を行うため、まず投票運営者１０４を選出する。選出される投票運営者１０４は、合議制で選ばれたそのグループで最も尊敬されているメンバーでもよく、独立して選挙手続きを行うために外部から招請された人でもよい。当該グループの構成員は、投票者１０１（グループ全員）、候補者１０２（同時に投票者１０１であってもよい）、および監督者（たとえば、各候補者１０２とその支持者である投票者１０１とから成る集団は監督者集団１０３となりうる）である。
【００３６】
投票運営者１０４は、（とりわけ、投票者１０１の人数および所在地、投票処理期間、一連の投票処理における不正アクセス防止レベルなどに応じて）投票用のコンピュータ装置を所有している可能性があるため、監督者１０３は、（選挙を滞りなく主導した経験があり、かつ、投票者１０１や投票運営者１０４からの信頼度が高いという）一定の評判があってそのコンピュータ装置を所有する第三者であってもよい。たとえば、一国の大統領選挙の例では、投票運営者１０４は、政府提供のコンピュータ装置を所有し、選挙法に基づき構成される選挙管理委員会等である。組織の長を選ぶ選挙という別例では、投票運営者１０４は、（たとえば、メールサービスは独自に作ることもでき、また、Gmail（登録商標）などの既存のメールサービスを利用することもできるのと同様に）（有料または無料で）招請された、小規模選挙の運営、実施を主な活動とする第三者（株式会社、非営利企業、政府サービス等）であるかもしれない。
【００３７】
投票者登録モジュール１１１は、投票運営者１０４のコンピュータ装置上で実行されてもよく、投票者１０１が票を投じるときに使用する投票者１０１のデジタル署名を、投票者１０１ごとに生成するよう構成される。投票者登録モジュール１１１はさらに、生成した投票者１０１のデジタル署名を投票者１０１のコンピュータ装置に送信するよう構成されてもよい。
【００３８】
システムの一変形例では、生成された投票者１０１のデジタル署名は、非対称暗号システムで使用する公開鍵と秘密鍵のセットである。かかる実施形態では、投票者登録モジュール１１１は、投票者１０１が投じる票の認証に使用される公開鍵を、監督者１０３のコンピュータ装置へ送信する。投票者登録モジュール１１１はまた、投票者１０１が投じる票の署名に使用される秘密鍵を、投票者１０１のコンピュータ装置に送信する。以下に詳述するように、投票者が投票したい候補者を選ぶ際、（少なくとも候補者識別子を含む）票を示すデータは統一投票鍵で暗号化され、暗号化された票はその後、投票者のデジタル署名で署名される。監督者は、生成された票を投票者から受信したとき、デジタル署名を使用して、その投票者がすでに投票していないか、その投票者が選挙に参加する権利があるか、その投票者がシステムに登録されているか、偽造署名ではないか、等を確認してもよい。
【００３９】
システムのさらに別の変形例では、投票者１０１のデジタル署名を生成するため、ElGamal方式、Schnorr方式、確率的Rabin署名アルゴリズム、確率的RSA-PSS方式（添付型−確率的署名方式によるRSA署名方式）、およびDSA、ECDSA（楕円曲線デジタル署名アルゴリズム）のうち少なくとも一つのアルゴリズムが使用される。
【００４０】
システムのさらに別の変形例では、投票者登録モジュール１１１は、投票者１０１のデータを収集し記憶する。投票者１０１のデータは、投票者１０１、監督者１０３および投票運営者１０４の間での情報交換を可能にする連絡先のデータであってもよい。投票者登録モジュール１１１はさらに、投票者１０１について、投票運営者１０４が運営する投票への参加のために予め取得されるデータに基づき、投票者１０１の権利を判定してもよい。投票者１０１の権利は、一連の投票過程の中で票を変更する権利、自身の票を別の投票者１０１に委任する権利、候補者登録モジュール１１２で候補者１０２を登録する権利を含んでもよい。
【００４１】
システムのさらに別の変形例では、投票者登録モジュール１１１は、投票者１０１としてまだ登録されていないユーザからアクセスがあった場合、そのユーザが運営されている投票の投票者１０１となり得るか認証を行うように構成されてもよい。投票者１０１となり得る場合、ユーザごとに投票者１０１識別子の生成が問題ないと認証される。
【００４２】
たとえば、投票運営者１０４が運営する投票に参加するため、投票者１０１は最初に自分の投票者データ（パスポートデータ、職業、学歴、趣味に関する情報など）を投票運営者に送信する。投票者データは、投票者１０１の権利を判定し、どの投票に投票者１０１が参加できるのかを決定するために使用することができる。投票者データは、生成される投票者１０１のデジタル署名を投票者１０１に送信するために、投票運営者が通信する連絡先（電子メールアドレス等）を含む。
【００４３】
投票者１０１の登録方法について以下にいくつか例示する。一例では、企業Ａの「今年の人（Man  of  the  Year）」コンテストの勝者を選択する投票を運営する。最初に、投票運営者１０４は、企業Ａの従業員全員に電子メールで実施予定の投票を告知し、投票に参加を希望する従業員が全員登録できるインターネット上のリソースのアドレスを通知する。次に、従業員は、ブラウザを介して指定されたアドレスにアクセスし、実施予定の投票および候補者１０２の条件を知り、告知されている投票に参加することに合意する。従業員が告知されている投票に参加することに合意すると、従業員は自動的に投票者１０１として登録され、識別子が割り当てられ、投票者１０１のデジタル署名が生成されて投票者１０１に（電子メール等によって）送信される。企業の従業員は、投票者１０１として登録されると、候補者１０２または自分自身を候補者として挙げて「今年の人（Man  of  the  Year）」コンテストの候補者１０２の予備選抜にも参加してもよい。投票者１０１は実施予定の投票への参加希望を表明しているため、一連の投票準備過程（新たな候補者１０２の出現等）や告知されている投票の状況、投票が開始したこと、一連の投票過程たとえば投票過程の状況の変更や候補者１０２の辞退またはさらに投票する必要性、投票が終了したこと、投票結果について、情報を受け取ってもよい。
【００４４】
他の例として、国の大統領を選ぶために投票を運営する場合、投票運営者１０４の役割を果たす選挙管理委員会は、国民のデータを既に持っているだろう。国民はすでに潜在的投票者１０１であり、選挙管理委員会１０４は国民のデータ（パスポートデータ、住所など）にアクセス可能である。したがって、投票者１０１のデジタル署名は、実施予定の大統領選挙について記述するデータ（投票の実施時期、選挙に参加する大統領候補、投票先のサーバの電子アドレスなど）とともに、直ちに国民に送信されてもよい。
【００４５】
候補者登録モジュール１１２は、投票運営者１０４のコンピュータ装置で実行され、候補者１０２ごとに候補者１０２の識別子を生成し、その生成された候補者１０２識別子を投票者１０１のコンピュータ装置に送信するよう構成される。一部の側面では、候補者１０２識別子は基数であってもよい。
【００４６】
システムの一変形例では、候補者登録モジュール１１２はさらに、候補者１０２に関するデータを収集して記憶し、後から投票者１０１に提示するために、候補者１０２の識別子および候補者１０２に関するデータを投票者登録モジュール１１１に提示する。
【００４７】
システムのさらに別の変形例では、候補者１０２、投票者１０１または組織が、投票運営者１０４の設けた基準を満たす場合、投票者１０１または組織は自分たちの候補者１０２を登録できる。候補者１０２を登録するために必要なデータの送信は、投票運営者１０４が投票者１０１に提供した専用ソフトウェアを使用して、投票者１０１のコンピュータ装置から行うことができる。
【００４８】
たとえば、国の大統領選挙では、選挙管理委員会である投票運営者１０４が組織される。投票運営者は、国民、組織および政党が提示した予定候補者１０２のデータを処理する。推薦された人が選挙法で規定されている候補者１０２の要件を満たしている場合、または、候補者１０２の推薦の際に違反が記録されていない場合、当該推薦された人は運営中の投票における候補者１０２として認められる。登録された候補者１０２には、候補者１０２識別子が割り当てられる。
【００４９】
監督者登録モジュール１１３は、投票運営者１０４のコンピュータ装置で実行され、取得された監督者１０３の識別データに基づいて、監督者１０３ごとに、投票者１０１の票の暗号化に使用する公開鍵と投票者１０１の票の復号化に使用する秘密鍵とを生成するよう構成されてもよい。監督者登録モジュール１１３はさらに、監督者１０３から取得した識別データに基づいて、監督者１０３ごとに、投票者１０１が投じて監督者１０３が受信した票を加えて変更される記録の分散型レジスタを生成するよう構成されてもよい。一部の側面では、監督者登録モジュール１１３は、記録の分散型レジスタを監督者１０３のコンピュータ装置に送信し、生成された秘密鍵を票集計モジュール１４０に送信し、全ての監督者１０３の生成された公開鍵に基づいて統一投票鍵を生成し、統一投票鍵を投票者１０１のコンピュータ装置に送信するよう構成されてもよい。
【００５０】
システムの一実施形態では、監督者登録モジュール１１３はさらに、少なくとも２人の監督者１０３の秘密鍵に基づき、生成した統一投票鍵を認証するよう構成される。認証に成功した場合に、監督者登録モジュール１１３は、生成した統一投票鍵を投票者１０１のコンピュータ装置に送信してもよい。
【００５１】
システムのさらに別の変形例では、生成された公開鍵および秘密鍵は、ElGamal暗号システム、Diffie-Hellman鍵変換、およびWilliams暗号システムで使用される。
【００５２】
システムのさらに別の変形例では、生成された統一投票鍵は少なくとも２人の監督者１０３の秘密鍵に基づいて認証され（すなわち、監督者１０３の秘密鍵および統一投票鍵が、設定された規則に沿って、監督者１０３が提示したデータに基づいて生成されているか判定され）、認証が成功した場合、投票者１０１が後で票を投じる際に使用できるよう、投票者１０１に提示される。
【００５３】
システムのさらに別の変形例では、監督者登録モジュール１１３はさらに、監督者１０３のデータを収集して記憶し、取得したデータを他の監督者１０３および投票運営者１０４に送信して、投票処理において投票者１０１の票を処理する際に同等の条件を生成させるよう構成されてもよい。
【００５４】
システムのさらに別の変形例では、監督者登録モジュール１１３は、以下のように、監督者１０３ごとに公開鍵および秘密鍵を生成する。監督者登録モジュール１１３は、ランダムな素数q∈Z（ただし、Ｚは素数空間である。）を生成する。監督者登録モジュール１１３は、qの原始根である整数gを選択し、1<s<qとなるランダムな整数s=Zqを選択する。次に、監督者登録モジュール１１３は、h=gs  mod  qを算出する。ここで、公開鍵は(q,g,h)  の組み合わせであり、秘密鍵は数値sまたは(q,g,s)の組み合わせである。
【００５５】
たとえば、監督者１０３は、投票運営者１０４が運営する投票に参加するため、まず投票運営者１０４に連絡先データを送信する。投票運営者１０４は、送信された連絡先データに、投票者１０１によって投じられる票を送信することができる。たとえば、監督者１０３は、記録の分散型レジスタを処理中のサーバのアドレスを投票運営者１０４に送信する。監督者１０３はさらに、投票運営者１０４が運営する投票に参加するため、自身の識別データを送信する。この識別データは、電子投票によって収集された票を集計するシステムにおいて監督者１０３の識別を行うために後で使用される。
【００５６】
システムの一変形例では、以下の方法によって統一投票鍵が生成される。一部の側面では、各監督者１０３は、ランダムな数値Cjの組み合わせをいくつか使用することにより特定の多項式を生成する。ランダムな数値(C０)の組み合わせの中の一つの数値は、上述のように生成される秘密鍵である。監督者jは、秘密鍵（秘密鍵は自身だけが把握している）を生成することにより、多項式Pj(x)を保持する。ここで、候補者Xの値は監督者jの公開鍵である。監督者全員のPj(x)の値に基づき、監督者jは統一投票鍵を算出する。なお、監督者は各々独立して統一投票鍵を算出するが、上述の処理の結果、算出される統一投票鍵はすべて一致する。
【００５７】
一実施形態では、各監督者１０３Ａｉは、次式（１）で表される多項式Piを生成する（すなわち、係数C（i，j）を算出する）。
【数１】
2019053269.tif 000003
式中、Nは監督者１０３の総数であり、C（i，j）は、監督者１０３Aｉによって算出されるランダムな数値である、多項式の係数であり、C（i，０）は、監督者１０３Aｉによって算出され電子投票のクローズドシステムで使用される秘密鍵である、多項式の係数である。監督者１０３Aｋ（ただしk∈(0,N］）ごとに、次式（２）のとおり、生成された多項式の値はx=kとして算出される。
【数２】
2019053269.tif 000004
監督者１０３全員が、生成された多項式P（j，k）について算出された値を交換することで、各監督者１０３Aｋは多項式｛Pj(k)｝（ただし、j∈(0,N］）の値の組み合わせを所有する。各監督者１０３Aｋは、算出された自身の秘密鍵C（i，0）および多項式｛Pj(k)｝の値の組み合わせに基づき、電子投票のクローズドシステムで使用される公開鍵である共通投票鍵（すなわち、統一投票鍵）を算出する。
【００５８】
投票モジュール１２０（vote  casting  module、ただし本明細書では、ballot  casting  moduleともいう）は、投票者１０１のコンピュータ装置で実行され、投票者１０１が投じる票の統一投票鍵を用いた暗号化を含め、投票者１０１の選択のデータに基づき投票者１０１の票を投じるよう構成されてもよい。投票モジュール１２０はさらに、少なくとも１人の監督者１０３の票登録モジュール１３０に、投じられた票を送信するよう構成されてもよい。一部の側面では、投票者１０１の選択のデータは、少なくとも１人の候補者１０２の識別子である。
【００５９】
一部の側面では、投票モジュール１２０はさらに、投票者１０１の票を投じる際、統一投票鍵によって投票者１０１の選択のデータを暗号化し、その後、投票者１０１のデジタル署名によって投票者１０１の選択を暗号化したデータに署名するよう構成される。一部の側面では、候補者１０２の識別子の暗号化のため、ElGamal方式、Merkel-Hellman暗号システムおよびRabin暗号システムを使用する。
【００６０】
システムのさらに別の変形例では、投票者１０１の票を投じる前に、投票者１０１が投じた票が、投票者１０１の票の集計処理中に後で使用されるかどうか（たとえば、投票運営者１０４に問い合わせることにより）判定する。たとえば、投票者１０１の今回の投票が二度目の投票であった場合、投票者１０１が投じた票はカウントされず、その投票者１０１には再度投票する資格が与えられない。別の例では、投票者１０１が実在しない候補者１０２を選んだ場合、投票者１０１の投じた票はカウントされない。
【００６１】
システムのさらに別の変形例では、以下のとおり、投票者１０１の投票は、投票者１０１の選択を記述するデータMを暗号化することにより行われる。Mは、投票者１０１が選んだ候補者１０２の識別子であり、M<qである素数（qは、投票運営者１０４が選んだランダムな素数）を表すものと判断される。そして、1<α<q-1となるセッション鍵（ランダムな整数α）を選択する。そして、数値x=gα  mod  qおよびy=hαM  mod  q（ただし、gはqの原始根）が算出される。得られた組み合わせ(x,y)は投票者１０１が投じた票であり、ここで、ElGamal方式での投票の長さは、候補者１０２の識別子Mの倍となる。
【００６２】
システムのさらに別の変形例では、投票者１０１の票が投じられた後、投票モジュール１２０は、後で集計するため、監督者１０３または投票運営者１０４が使用するサーバの一つで実行される票登録モジュール１３０に票を送信する。一側面では、サーバの選択は投票者１０１自身が行う。たとえば、投票者１０１が投票する候補者１０２の監督者１０３など、投票者１０１が信頼する監督者１０３のサーバを選択できる。別の側面では、投票モジュール１２０によって自動的にサーバ（ビジー度が低いサーバや、レスポンスが一番早いサーバなど）を選択することもできる。
【００６３】
システムのさらに別の変形例では、投票モジュール１２０は、アクセス可能なすべての票登録モジュール１３０に投票者１０１が投じた票を送信することができる。票登録モジュール１３０自体が、投票者１０１が投じた票を送信できるサーバの一覧を投票モジュール１２０に提供してもよい。
【００６４】
たとえば、最初は、投票者１０１が利用可能なサーバは一つのみであってもよい（すなわち、投票者１０１のコンピュータ装置で投票モジュール１２０が実行されている）。サーバのアドレスは、投票者１０１のコンピュータシステムにインストールされ電子投票用に構成されたソフトウェアにより予め指定されているかもしれない。サーバは、投票運営者１０４のサーバであってもよい。しかし、投票運営者１０４に加え、投票運営に携わる監督者１０３が他にも１０人おり、それぞれ、監督者１０３のうち１人のサーバの少なくとも１つのアドレスにアクセスでき、投票運営者１０４および監督者１０３全体として全サーバのアドレスにアクセスできるとする。投票モジュール１２０が、投票者１０１が投じた票を投票運営者１０４に送信すると、投票運営者１０４は、投票モジュール１２０が同様に投票者１０１が投じた票を送信しなければならない、投票運営者１０４が知っている監督者１０３のサーバのアドレスを投票モジュール１２０に送信する。これら監督者１０３のサーバに、投票者１０１が投じた票を送信すると、上記送信時と同様に、投票モジュール１２０はさらに、投票者１０１が投じた票を送信なければならない送信先である監督者１０３が知っているサーバのアドレス一覧を受信する。この処理は、投票者１０１が投じた票を投票モジュール１２０が監督者１０３の既知の全サーバ（あるいは実質的にすべて）に送信し終わるまで繰り返される。
【００６５】
さらに別の例では、投票開始後、投票者１０１は、自身の投票者１０１装置を使用して候補者１０２から１人を選択する機会が与えられる。選択を確認した後、選択した候補者１０２の識別子が判定され、投票開始前に投票者１０１が自身の投票者１０１の装置で投票運営者１０４から得た統一投票鍵により暗号化される。候補者１０２の暗号化された識別子は、投票者１０１の登録後に投票運営者から取得された投票者１０１のデジタル署名によって署名される。受信されたデータが投じられる票を構成し、票登録モジュール１３０に送信される。
【００６６】
票登録モジュール１３０は、監督者１０３のコンピュータ装置で実行され、取得した投票者１０１の票を加えて記録の分散型レジスタを変更し、投票終了後、記録の分散型レジスタを票集計モジュール１４０に送信するよう構成されてもよい。一部の側面では、票登録モジュール１３０は、次式（３）で表す規則に従って、記録の分散型レジスタを変更してもよい。
【数３】
2019053269.tif 000005
式中、Pは自然数を表す記録の分散型レジスタの内容であり、Vは投票者が投じた票であって自然数で表現され、qは記録の分散型レジスタの内容量を制限する所定の係数である。
【００６７】
システムの一変形例では、票登録モジュール１３０はさらに、投票者１０１が投じた票の真正の認証成功後に、投票者１０１が投じた票に基づき記録の分散型レジスタを変更する。投票者１０１が票を投じる際に使用したデジタル署名が投票者登録モジュール１１１によって生成されたデジタル署名と一致し、投票者１０１が票を投じる際に使用した候補者１０２の識別子が生成された候補者１０２の識別子と一致する場合、投票者１０１が投じた票の真正が認められる。
【００６８】
システムのさらに別の変形例では、票登録モジュール１３０は、記録の分散型レジスタすべてを同期的に変更するよう構成され、投票者１０１が投じた票すべてに基づき、記録の分散型レジスタが変更される。
【００６９】
システムのさらに別の変形例では、投票者１０１が票を投じる際に使用したデジタル署名が監督者登録モジュール１１３によって生成された署名と一致し、投票者１０１が票を投じる際に使用した候補者１０２の識別子が投票者登録モジュール１１１によって生成された候補者１０２の識別子と一致する場合、投票者１０１が投じた票の真正が認められる。
【００７０】
システムのさらに別の変形例では、投票者１０１が投じた票の真正は以下のように認証される。監督者１０３側で投票者１０１が投じた票の真正を認証するためには、次式（４）で表される関係の条件が満たされなければならない：
【数４】
2019053269.tif 000006
ここで、vk∈Zfは考えられる投票バリアント（合計k個のバリアント）であり、各投票バリアントは候補者１０２の識別子（よって、投票には合計k人の候補者１０２が参加している）を構成し、ZfのうちGkは各素数vkの乗法逆元であるため、以下の数式（５）のようになる：
【数５】
2019053269.tif 000007
【００７１】
投票者１０１側で票を投じる。セッション暗号鍵α、ランダムな数値ω、およびランダムな数値の組み合わせr[k]およびd[k]を選択する。投票者１０１の票は、次式（６）で表されるように構成される：
【数６】
2019053269.tif 000008
式（６）は、xおよびyの値が以下の関係式（７）、（８）に基づいて算出される、数値の組み合わせ（すなわち、2+4×n次元ベクトル）である。
x=gα  ・・・（７）
y=hαM  ・・・（８）
そして、周期的に各要素voteは以下のとおり構成される。k番目の要素が投票者１０１の選択と等しい場合、式（９）、（１０）、（１１）となる：
【数７】
2019053269.tif 000009
式中、vote0は、d,r,mを考慮しない投票のベクトルである：
【数８】
2019053269.tif 000010
式中、mkは要素voteである。あるいは、k番目の要素が投票者１０１の選択と等しくない場合、a,b,mの値は以下のように求められる：
【数９】
2019053269.tif 000011
式中、mkは要素voteである。
【００７２】
監督者１０３側では、投票者１０１が投じて投票者１０１から受信した票の認証が行われる。認証は、すべてのkについて以下の恒等式（１８）〜（２０）を満たすかの認証を含んでもよい：
【数１０】
2019053269.tif 000012
【００７３】
システムのさらに別の変形例では、投票者１０１が投じた票を考慮した記録の分散型レジスタの変更は、次式（２１）で算出される：
【数１１】
2019053269.tif 000013
式中、Pは自然数で表される記録の分散型レジスタの内容であり、Vは自然数で表される投票者が投じた票であり、qは記録の分散型レジスタの内容の大きさを制限する所定の係数である。
【００７４】
システムのさらに別の変形例では、少なくとも２つの記録の分散型レジスタが作成され、その後、記録の分散型レジスタのすべてが同期的に変更され、投票者１０１が投じた全ての票が記録の分散型レジスタの変更に含まれる。
【００７５】
システムのさらに別の変形例では、票登録モジュール１３０は、投票運営者１０４の装置で実行されてもよい。この場合、投票運営者１０４は監督者１０３でもあり、投票者１０１にとっては投票者１０１の票を投じる手段であり、他の監督者１０３にとっては投票運営者１０４は機能の面では監督者１０３と形式上同じである。
【００７６】
システムのさらに別の変形例では、投票者１０１が投じた票を取得した後、票登録モジュール１３０そのものは投票者１０１が投じた票の送信先であるサーバの一覧を投票モジュール１２０に提供する一方で、特定の監督者１０３の装置で実行されている票登録モジュール１３０は、受信した投票者１０１の投じた票を別の監督者１０３の装置で実行されている投票登録モジュール１３０に送信してもよい。
【００７７】
一例では、１０人の監督者１０３が選挙に参加する。監督者１０３（すなわち、監督者１０３のコンピュータ装置で実行されている票登録モジュール１３０）は各々、少なくとも一人の他の監督者１０３のサーバのアドレスを知っており、監督者１０３全体として、すべての票登録モジュール１３０が実行されている監督者１０３全員の全サーバのアドレスを知っている。票登録モジュール１３０は、投票モジュール１２０から投票者１０１が投じた票を受信すると、取得した投票者１０１の投じた票を既知のアドレスのサーバの別の票登録モジュール１３０に送信する。票登録モジュール１３０は、投票者１０１が投じた票を監督者１０３のサーバに送信すると、これらのサーバから、当該監督者１０３が知っている、同様に投票者１０１が投じた票を送信せねばならないサーバのアドレス一覧を受信する。票登録モジュール１３０が監督者１０３の既知のサーバすべてに投票者１０１が投じた票を送信し終わるまでこの処理が繰り返される。
【００７８】
票集計モジュール１４０は、投票運営者１０４のコンピュータ装置で実行され、記録の分散型レジスタの真正を認証し、記録の分散型レジスタ中の、投票者１０１が投じた票のデータを復号化するよう構成されてもよい。記録の分散型レジスタの認証結果が肯定的であり、かつ、監督者登録モジュール１１３によって予め生成された少なくとも１つの秘密鍵を用いて実行された場合に、投票者が投じた票のデータが復号化されてもよい。票集計モジュール１４０は、投票者１０１が投じた票の復号化データに基づいて、各候補者１０２に投じられた投票者１０１の票数を集計するよう構成されてもよい。
【００７９】
システムの一変形例では、票集計モジュール１４０はさらに、少なくとも２つの記録の分散型レジスタをバイト単位で比較することにより、記録の分散型レジスタの真正を認証するよう構成されてもよい。システムの一変形例では、投票運営者１０４が予め定めた少なくとも一つの基準が満足された場合に投票が完了する。基準の例は、投票期間が所定値を超えたこと、投票数が所定値を超えたこと、または、投票者１０１が投じた票の真正の認証に失敗した件数が所定値を超えたことなどを含む。システムのさらに別の変形例では、ElGamal暗号システムを用いて投票者１０１が投じた票の数を集計（因数分解）する場合の票数の集計には、Shanksアルゴリズムを使用する。
【００８０】
例：大統領選挙の票の収集
次に、国Ｘの大統領選挙を実施する例における、電子投票システムを用いて収集した票を集計するためのシステムの運用例を以下に示す。選挙の準備および実施、運営事項の処理のために選挙管理委員会が設立されているものとする。
【００８１】
大統領選挙には、国の５つの政党のうち３つを代表する３人の候補者が参加する。選挙管理委員会は選挙リストに（選挙権を有する国の全人口である）１５００万人の投票者を入力済みであり、一連の投票過程を監視する（各政党から１人ずつ）５人の監督者１０３が選挙管理委員会に登録されている。選挙管理委員会は、選挙期間（２０１７年１月１日、午前１０時から２０１７年１月２日、午後８時）を設定し、この期間内に、投票者１０１は選挙に参加する３人の候補者のうち１人に投票することができる。選挙期間終了時に、各候補者に投じられた票の集計が行われ、大統領選挙の当選者が決定される。
【００８２】
電子選挙は次の３つの主要なステップで構成される。すなわち、（１）投票開始準備、（２）実際の投票（すなわち、投票者１０１の票の収集および集計）、（３）投票結果の総括である。
【００８３】
ステップ１：投票開始準備
投票開始前（選挙管理委員会が設定した２０１７年１月１日の午前１０時以前）に次の処理が行われる。
（１．１）候補者１０２の登録。このとき、投票期間中に投票者１０１が票を投じる際に使用するデータが生成される。
（１．２）監督者１０３の登録。このとき、投票期間中に投票者１０１の票の収集および集計に使用するデータが生成される。
（１．３）投票者１０１の登録。このとき、選挙リストから候補者１０２および監督者１０３の情報が、投票者１０１に提供される。投票者１０１は、投票期間中、この情報を用いて票を投じ、票を送信する。
【００８４】
１．１：候補者の登録
選挙管理委員会は、選挙に参加する候補者１０２各々に、自然数で表される候補者１０２の識別子を生成する。たとえば、以下の識別子を割り当てる。
候補者＃１→３１、
候補者＃２→８３、
候補者＃３→１０１。
【００８５】
候補者１０２の識別子は、値[2,127]の所定範囲内の数値をランダムに選択することによって生成される。数値範囲の上限（q=127、暗号システムの基数として知られている）は、計算上の便宜のため予め選択され（すなわち、候補者１０２および投票者１０１の数が分かっている場合、投票者１０１の票数を集計により明確な結果が算出されることを保証する値が選択され）、一連の投票過程における数学演算に使用される。
【００８６】
１．２：監督者の登録
監督者１０３の一つは選挙管理委員会である。選挙管理委員会１０４は、投票処理において収集される投票者１０１の票の復号化には、５人の監督者１０３のうち少なくとも３人必要であると予め設定する。これらの数は、過去の投票の統計や監督者１０３の識別データなどから選択され、これにより、監督者１０３の一部が投票者１０１の票の集計を間違えた場合でも投票（すなわち、投票結果の集計）を完遂することができる。たとえば、上の例で、５人の監督者のうち２人が投票者１０１の票の集計を間違えたとする（たとえば、投票者１０１の票を改ざんしたとする）。間違える可能性のある監督者の方が多く選ばれた場合（たとえば、３人または４人）、票が改ざんされる場合がある（監督者の過半数が計画的に票を改ざんする可能性がある）。
【００８７】
登録された各監督者１０３は、非対称暗号システムで使用する公開鍵および秘密鍵を予め生成し、選挙管理委員会に監督者１０３それぞれの特徴を送信する。監督者１０３それぞれの特徴は、電子投票期間中に他の監督者１０３や投票者１０１とデータ交換するために使用されるサーバのアドレスに加え、生成された公開鍵を含んでもよい（たとえば、election-monitor.com:1200）。登録された各監督者１０３は、選挙管理委員会や登録された他の監督者１０３から、登録されている他の監督者１０３のそれぞれの特徴および監督者１０３である自分の識別子を受信する。自分の監督者識別子は、選挙管理委員会が監督者１０３を登録した際のシリアル番号、または、選挙管理委員会１０４がランダムに選んだその他の自然数などでもよい。したがって、監督者１０３の登録が完了すると、最低でも自分以外の１人の監督者１０３の個別の特徴を持っていることになる。一方、監督者１０３全員を合わせると、登録されている監督者１０３全員の個別の特徴を持っていることになるため、監督者１０３の間でデータを交換することができる。このため、任意の監督者１０３から他の監督者へ送られるデータは、監督者１０３から監督者１０３へと次々に送信されることで、登録された監督者１０３全員のもとに存在することになる。
【００８８】
登録された各監督者１０３は各々、次式（２２）で表される多項式を作成してもよい。
【数１２】
2019053269.tif 000014
式中、
P(x)は、作成された多項式であり、多項式の次数は、選挙管理委員会が選んだ、投票処理中に収集された投票者１０１の票を復号化するために必要な監督者１０３の人数に対応する（この例では５人）。
C0は、生成された秘密鍵である自然数である。
Ciは、多項式の係数である整数であり、次式（２３）で表される条件を満たす数値が選択される。
【数１３】
2019053269.tif 000015
式中、
qは、予め定められた暗号化システムの基数であり、q∈Mpなどの素数であり、Mpはメルセンヌ数（kind  2n−1の素数）である（この例では、q=127）。
｛xi｝は、登録された監督者１０３全員の識別子の組み合わせである。たとえば、識別子の組み合わせは次式（２４）のように表すことができる。
【数１４】
2019053269.tif 000016
式中、Ciは４つの数の組み合わせを示す。５人の監督者が投票に参加しており、そのうち４人に対して５番目の(i)をCiとカウントする。
【００８９】
（自分を含む）５人の監督者１０３各々について、監督者は、作成した多項式P(x)のx∈｛xi｝における値を算出し、算出した値を対応する監督者１０３に送信する。したがって、監督者１０３の登録が完了した後、監督者１０３はそれぞれ監督者１０３が生成した多項式の値を５つ持っていることになる。監督者登録モジュール１１３は、監督者１０３全員に対して算出された多項式の値に基づいて、次式（２５）の例のように秘密鍵を算出し監督者１０３全員に送信する。
【数１５】
2019053269.tif 000017
監督者登録モジュール１１３は、利用可能な５つの公開鍵すべてにより、次式（２６）に示すように統一投票鍵を生成する。
【数１６】
2019053269.tif 000018
式中、gは予め定められた原始根であり、S0(i)は監督者１０３iが生成した自然数の公開鍵であり、qは予め定められた暗号システムの基数である。
【００９０】
結論として、予め得られたScに基づき、多項式｛P(x)｝の他の値から、生成された公開鍵Hの正当性がチェックされる。すなわち、収集された投票者１０１の票を、取得した統一公開鍵によって後で復号化することが可能である。
【００９１】
１．３：投票者の登録
実施される選挙で投票する予定の投票者１０１はそれぞれ、専用ソフトウェアによって選挙管理委員会や信頼するその他の監督者１０３のオンラインサービスに接続する。たとえば、Ｙ党の党員は、Ｙ党の監督者１０３のオンラインサービスを使用する。オンラインサービスから、候補者１０２の情報を含むデータ（候補者１０２の識別子も含む）、生成された（算出された）統一投票鍵H、および投票期間を含む投票の特徴が、投票者１０１に送信される。
【００９２】
ステップ２：投票
選挙管理委員会が投票開始時間として設定した時間になると、投票者１０１は投票者１０１の票を投じて自身の監督者１０３に送信する機会が与えられ、監督者１０３は投票者１０１の票を追跡して交換する機会が与えられる。選挙期間中、以下が実行される。
（２．１）投票者１０１による投票。
（２．２）投票者１０１が投じた票の認証。
（２．３）認証された投票者１０１の票の集計。
【００９３】
２．１：投票者の投票
投票者１０１は、自分のコンピュータ装置（パーソナル・コンピュータ、スマートフォン等）で実行されるソフトウェアを用いて、票を投じたい候補者１０２を選択する。選択した後、投票者１０１の票が投じられ、次のステップが実行される。投票モジュール１２０は、投票者１０１登録段階において監督者１０３の一人から取得された統一投票鍵Hにより、選択された候補者１０２に対応する候補者１０２の識別子を暗号化する。投票者１０１の票を投じるためのユーザ１０１による候補者１０２の識別子の選択は、選択した候補者１０２に対する投票者１０１の投票に相当する。投票モジュール１２０は、投票者１０１のデジタル署名によって、暗号化された候補者１０２の識別子に署名する。投票モジュール１２０は、選択した監督者１０３のオンラインサービスに票を送信する。
【００９４】
２．２：投じられた票の認証
監督者１０３は、ステップ２．１で投じられた投票者１０１の票を受信すると、（ｉ）票が、当該選挙に参加資格のある投票者１０１のものであるか、（ｉｉ）投票者１０１が当該選挙で既に投票していないか、（ｉｉｉ）票が、当該選挙に参加する候補者１０２に対して投じられているか、を確認するため、受信した票の認証を行う。
【００９５】
２．３：認証済みの票の集計
ステップ２．１および２．２でのすべての認証の後、各監督者１０３は発明者が投じた票を集計する。これにより、票登録モジュール１３０は、記録の分散型レジスタに投票者１０１が投じた票を含めるよう、投票者１０１が投じた票を考慮して記録の分散型レジスタを変更する。記録の分散型レジスタの実際の変更は、どの候補者１０２が票を得たかという情報を追跡してその情報を失わないように行われるが、誰がどの候補者１０２に投票したかという情報はすべて失われる。このことは、システムの一実施形態では、次式（２７）で表すことができる。
【数１７】
2019053269.tif 000019
式中、
Piは、i番目の変更後の記録の分散型レジスタの内容であり、
Viは、i番目の投票者１０１が投じた票であり、
qは、記録の分散型レジスタの内容量を制限する所定の係数である。
【００９６】
つまり、（一連の投票過程が完了した後の）最終的な記録の分散型レジスタは次式（２８）のようになる：
【数１８】
2019053269.tif 000020
式中、
P0は、投票者１０１が投じた票を考慮して変更する前の、記録の分散型レジスタの当初の内容であり、
Viは、i番目の投票者１０１が投じた票であり、
nは、投票者１０１が投じた票数（実質上は、投票した投票者１０１の人数）であり、
qは、記録の分散型レジスタの内容量を制限する所定の係数である。
【００９７】
３：投票結果の総括
選挙管理委員会が投票に充てた期間の経過後（または、想定される投票者１０１が全員滞りなく投票を終えた時）、投票者１０１が投じた票の収集作業を停止する。そして、投票者１０１の票の認証と、投票の最終結果の判定が始まる。
【００９８】
投票結果の総括において以下が実行される。
（３．１）各監督者１０３が収集した投票者１０１の票の正当性の認証。
（３．２）各候補者１０２について収集された票数の判定。
【００９９】
３．１：各候補者に投じられた投票者の票の正当性の認証
この段階では、異なる監督者１０３により票が正しく収集されたか判定する。このため、投票者１０１の暗号化された票を含む各監督者１０３によって収集されたデータを相互に比較する。理想的にはデータが一致するが、一致しない場合、監督者１０３が投じた票を特定の監督者１０３が誤って処理し、監督者に送信されたこと（たとえば、特定の票が集計されなかったり、票が入れ替えられたりしたこと）を意味する。この監督者１０３のデータは、これ以降の票集計では考慮されない。このような監督者１０３が大半を占める場合、当該選挙は無効とみなされ、投票者１０１の票はすべて考慮されない。
【０１００】
３．２：各候補者について収集された票数の判定
この段階では、選挙が滞りなく行われたことが既に分かっている場合、監督者１０３の１人（監督者のデータは一致するので、いずれの監督者１０３でもよい）が受信したデータから投票者１０１の匿名化された票を、次式（２９）に示す形で抽出する。
【数１９】
2019053269.tif 000021
式中、
Vkは、k番目の候補者に投じられた票数であり、特定の投票者１０１viの票数に関する情報は収集処理中に失われているため、一連の投票過程で監督者１０３が収集したデータから投票者１０１viの票数を直接取得することはできない。これにより、電子投票のクローズド（機密）システムが実現される。
【０１０１】
図２は、一例示的側面に係る、電子投票によって収集した票の数を判定する方法２００を示すフローチャートである。
【０１０２】
電子投票によって収集される投票者の票数を判定する方法２００の構造図は、鍵を生成するステップ２１０、統一投票鍵を生成するステップ２２０、投票者が票を投じるステップ２３０、記録の分散型レジスタを変更するステップ２４０、記録の分散型レジスタの真正を認証するステップ２５０、投票者が投じた票に関するデータを復号化するステップ２６０、および、投票者の票数を集計するステップ２７０を含む。
【０１０３】
ステップ２１０において、監督者登録モジュール１１３を使用して、監督者１０３から取得した識別データに基づき監督者１０３ごとに、（ｉ）投票者１０１の票の暗号化に使用する公開鍵および投票者１０１の票の復号化に使用する秘密鍵、ならびに、（ｉｉ）投票者１０１が投じ監督者が受信する票にあわせて変更される記録の分散型レジスタ、を生成する。
【０１０４】
ステップ２２０において、監督者登録モジュール１１３を使用して、ステップ２１０で生成された監督者１０３全員の公開鍵に基づき統一投票鍵を生成する。
【０１０５】
ステップ２３０において、投票モジュール１２０を使用して、投票者１０１の選択のデータに基づき各投票者１０１の票を投じる。この処理は、投じられる投票者１０１の票の統一投票鍵による暗号化を含む。
【０１０６】
ステップ２４０において、票登録モジュール１３０を使用して、投票者１０１が投じた票を考慮して記録の分散型レジスタを変更する。
【０１０７】
ステップ２５０において、票集計モジュール１４０を使用して、記録の分散型レジスタの真正を認証する。
【０１０８】
ステップ２６０において、ステップ２５０で行われた認証で肯定的結果が得られた場合、記録の分散型レジスタ中の投票者１０１が投じた票のデータに基づき、ステップ２１０で生成された少なくとも一つの秘密鍵を用いて、票集計モジュール１４０を使用して記録の分散型レジスタを復号化する。
【０１０９】
ステップ２７０において、ステップ２６０で復号化された投票のデータに基づき、票集計モジュール１４０を使用して、候補者１０２ごとに投票者１０１が投じた票の数を集計する。
【０１１０】
図３は、一例示的側面に係る、電子投票によって票の数を集計するシステム３００の例示的実施形態のブロック図である。
【０１１１】
電子投票によって収集される投票者の票の数を判定するシステム３００のデータ関係の構造図は、投票者初期化モジュール３１１および投票モジュール１２０を有する投票者のコンピュータ装置３０１と、監督者初期化モジュール３１３、票登録モジュール１３０および票復号化モジュール３４０を有する監督者のコンピュータ装置３０３と、監督者登録モジュール１１３、投票者登録モジュール１１１、候補者登録モジュール１１２、および票集計モジュール１４０を有する投票運営者のコンピュータ装置３０４と、を備える。
【０１１２】
システムの一変形例では、閾値暗号システム(n,k)が使用され、監督者１０３の公開鍵nにより暗号化された投票者１０１の票の復号化は、少なくともk人の監督者１０３の秘密鍵を使用すればよいことを特徴とする。ここで、
N＜1，
1≦k＜n
であり、上の式中、
nは、監督者１０３の総数であり、
kは、投票者１０１の票の復号化に必要な監督者１０３の最少人数である。
【０１１３】
投票者コンピュータ装置３０１上で実行される投票者初期化モジュール３１１、および、投票運営者のコンピュータ装置３０４上で実行されている投票者登録モジュール１１１は、電子投票によって収集された投票者１０１の票数を判定するシステムに投票者１０１を登録するよう構成されたクライアントサーバアーキテクチャでもよい。以下のステップは、投票者１０１の登録中に実行される。選挙運営者１０４が告知した投票に投票者１０１として参加を希望するユーザは、自分の識別データを自分の投票者コンピュータ装置３０１から投票者登録モジュール１１１に送信する。次に、投票者登録モジュール１１１は、受信された識別データをもとにユーザを認証し、確認が成功した場合、投票者初期化モジュール３１１に投票者１０１の初期化を完了させるリクエストを送信する。投票者初期化モジュール３１１は、公開暗号鍵および秘密暗号鍵を生成し、公開鍵を投票者登録モジュール１１１に送信し、投票処理において投票者１０１の票を投じる際にデジタル署名として使用するため、秘密鍵を投票者コンピュータ装置３０１に保持する。
【０１１４】
投票者初期化モジュール３１１が暗号鍵を生成し、公開鍵を投票者登録モジュール１１１に送信すると、ユーザは登録された投票者１０１とみなされる。以降の投票処理では、秘密鍵は投票者１０１の識別子として（すなわち、投票運営者１０４が運営する投票期間中にユーザを一意に判定するデータとして）使用される。
【０１１５】
システムの一変形例では、ユーザの認証において、投票運営者１０４が告知した投票にユーザが投票者１０１として参加する権利があるか、ユーザの識別データに基づいて判定する。
【０１１６】
たとえば、実際の投票運営前であっても、投票運営者１０４は、投票者１０１として登録可能なユーザの一覧に既にアクセスすることができる。大統領選挙の場合、投票運営者１０４の役割を担う選挙管理委員会は、個人識別文書の番号等の国民の識別データを有し、かかる識別データに基づき、選挙管理委員会は投票所を訪れる国民や遠隔投票を使用する国民を認証することができる。
【０１１７】
システムのさらに別の一変形例では、ユーザの認証において、以前に同様の識別データによって認証された投票者１０１がいないことを、投票者のコンピュータ装置３０１についての記述を含むユーザの識別データに基づいて判定する。上述の処理は、同一のユーザが別の投票者１０１として別の投票者コンピュータ装置３０１に登録されるような状況を回避するために行われる。たとえば、別の投票者コンピュータ装置３０１から投票者１０１として登録しようとした同一のユーザは、同一ユーザであると判定されるため、第１のユーザコンピュータ装置３０１において一回だけ投票者１０１として登録される。そして、第２のユーザコンピュータ装置３０１から登録しようとした場合は、投票運営者１０４から登録を拒否される。
【０１１８】
システムのさらに別の一変形例では、ユーザの認証において、投票運営者１０４が告知した投票に投票者１０１としてユーザのコンピュータ装置３０１を使用して技術的に参加可能であるか、ユーザの識別データに基づいて判定する。この処理は、投票者１０１が使用可能なコンピュータ装置を用いて投票運営者１０４が運営する投票に参加できるかについて複数の要因を判定するために行われる。一側面では、この処理は、投票処理において投票者１０１の票を投じるための十分なコンピュータ資源が投票者のコンピュータ装置３０１に備わっているか（たとえば、性能やメインメモリ等が十分であるか）判定するために行われる。別の側面では、この処理は、投票者のコンピュータ装置３０１が情報セキュリティの要件を満たしているか（たとえば、当該コンピュータ装置上でウィルス対策ソフトウェアが実行されており、投票者のコンピュータ装置３０１上にマルウェアアプリケーションが存在しないか等）を判定するためのものである。一側面では、この処理はさらに、投票運営者のコンピュータ装置３０４からデータを取得し、監督者のコンピュータ装置３０３にデータを送信するためのネットワーク資源が十分であるか（たとえば、投票運営者のコンピュータ装置３０４および監督者のコンピュータ装置３０３へのトラフィック容量およびネットワークチャネルの安定性が十分であるか）判定するために行われる。
【０１１９】
監督者のコンピュータ装置３０３上で実行される監督者初期化モジュール３１３、および、投票運営者のコンピュータ装置３０４上で稼働する監督者登録モジュール１１３は、電子投票によって収集された投票者１０１の票数を判定するシステムに監督者１０３を登録するよう構成されたクライアントサーバアーキテクチャでもよい。以下のステップは、監督者１０３の登録中に実行される。投票運営者１０４が告知した投票に監督者１０３として参加を希望するユーザは、自分の識別データを自分の監督者コンピュータ装置３０３から監督者登録モジュール１１３に送信する。監督者登録モジュール１１３は、受信した監督者１０３の識別データをもとにユーザの認証を行い、認証が成功した場合、監督者初期化モジュール３１３に監督者１０３の初期化を完了させるリクエストを送信する。監督者初期化モジュール３１３は、公開鍵および秘密鍵を生成し、公開鍵を監督者登録モジュール１１３に送信し、投票処理中に監督者１０３が投票者１０１から取得する秘密鍵は投票者１０１が投じた票を復号化する際に使用するため監督者のコンピュータ装置３０３に保持する。監督者登録モジュール１１３は、ユーザが生成した公開鍵および秘密鍵の正当性を認証し、認証に成功した場合、ユーザは監督者１０３として登録される。
【０１２０】
システムの一変形例では、ユーザの認証において、投票運営者１０４が告知した投票にユーザが監督者１０３として参加する権利があるか、ユーザの識別データに基づいて判定する。
【０１２１】
たとえば、実際の投票運営前であっても、投票運営者１０４は、監督者１０３として登録可能なユーザの一覧に既にアクセスすることができる（大統領選挙の場合、投票運営者１０４の役割を担う選挙管理委員会は、個人識別文書の番号等の国民の識別データを有し、かかる識別データに基づき、選挙管理委員会は、取得した投票者の票にアクセス可能な監督者１０３として投票に参加するユーザを認証することができる）。
【０１２２】
システムのさらに別の一変形例では、ユーザの認証において、以前に同様の識別データによって認証された監督者１０３がいないことを、監督者のコンピュータ装置３０３についての記述を含むユーザの識別データに基づいて判定する。
【０１２３】
上述の処理は、同一のユーザが別の監督者１０３として別の監督者コンピュータ装置３０３に登録されるような状況を回避するために行われる。たとえば、別の監督者コンピュータ装置３０３から監督者１０３として登録しようとした同一のユーザは、同一ユーザであると判定されるため、第１の監督者コンピュータ装置３０３において一回だけ監督者１０３として登録される。そして、第２の監督者コンピュータ装置３０３から登録しようとした場合は、投票運営者１０４から登録を拒否される。
【０１２４】
システムのさらに別の一変形例では、ユーザの認証において、投票運営者１０４が告知した投票に監督者１０３として監督者のコンピュータ装置３０３を使用して技術的に参加可能であるか、ユーザの識別データに基づいて判定する。この処理は、監督者１０３が、投票運営者１０４が運営する投票に「技術的に」参加できるかについて複数の要因を判定するために行われる。一部の側面では、監督者のコンピュータ装置が技術的に参加可能か判定する作業において、投票者１０１の票を投じる際に使用するデータを生成し、投票処理中に投票者１０１が投じた票を登録するための十分なコンピュータ資源が監督者のコンピュータ装置３０３に備わっているか（たとえば、性能やメインメモリ等が十分であるか）判定する。別の側面では、監督者のコンピュータ装置が技術的に参加可能か判定する作業において、監督者のコンピュータ装置３０３が情報セキュリティの要件を満たしているか（たとえば、当該コンピュータ装置上でウィルス対策ソフトウェアが実行されており、監督者のコンピュータ装置３０３上にマルウェアアプリケーションが存在しないか等）を判定する。別の側面では、監督者のコンピュータ装置が技術的に参加可能か判定する作業において、さらに、投票運営者のコンピュータ装置３０４および投票者のコンピュータ装置３０１からデータを取得するためのネットワーク資源が十分であるか（たとえば、投票運営者のコンピュータ装置３０４および投票者のコンピュータ装置３０１へのトラフィック容量およびネットワークチャネルの安定性が十分であるか）判定する。
【０１２５】
システムのさらに別の変形例では、監督者１０３の初期化は以下のとおり行われる。各監督者Piの監督者初期化モジュール３１３は、次数k−１の多項式F(x)の係数fijを割り当てて、多項式Fi(x)を生成する。生成される多項式の係数fijの組み合わせは、監督者１０３Piの秘密鍵を形成する。監督者の秘密鍵は、投票者が投じる（暗号化された）票の復号化に使用する共通の復号鍵の基として使用することができる。一実施形態では、監督者初期化モジュール３１３は、次式（３０）によって多項式を算出してもよい。
【数２０】
2019053269.tif 000022
式中、Fi(x)は、生成された多項式であり、
fijは、多項式Fi(x)の係数であり、
fi0＝siは、多項式Fi(x)の自由項（free  term）であり、
nは、監督者１０３の総数であり、
kは、投票者１０１の票の復号化に必要な監督者１０３の最少人数である。
監督者初期化モジュール３１３は、監督者１０３Pj（監督者１０３Pi自身を含む）ごとに、多項式Fi(j)の値を算出し、多項式Fi(j)の算出された値を監督者１０３Pjに送信し、多項式Fi(x)の自由項に基づき、次式（３１）によって値を算出する。
【数２１】
2019053269.tif 000023
式中、gは、qの原始根であり、
siは、多項式Fi(x)の自由項であり、
算出された値aiは、監督者１０３Piの公開鍵を形成する。監督者初期化モジュール３１３は、監督者１０３Piの作成された公開鍵を監督者登録モジュール１１３に送信する。システムの一変形例では、多項式Fi(x)の係数fijは、乱数生成器によって割り当てることができる。
【０１２６】
監督者登録モジュール１１３は、監督者１０３Piの公開鍵に基づいて、次式（３２）によって、統一投票鍵を算出する。
【数２２】
2019053269.tif 000024
監督者登録モジュール１１３は、受信した多項式Fi(x)の自由項に基づいて、共通の復号鍵を算出する。監督者登録モジュール１１３は、監督者１０３Piの監督者初期化モジュール３１３が多項式Fi(j)の値を正しく算出したか、各監督者１０３Piの公開鍵および秘密鍵の正当性を認証する。つまり、監督者登録モジュール１１３は、各監督者１０３Piの公開鍵の作成に使用された各監督者が多項式Fi(x)の解であるか確認する。この確認によって、統一投票鍵および共通復号鍵が正しく算出されたか判定する。
【０１２７】
一部の側面では、監督者登録モジュール１１３は、認証において以下のステップを実行する。第一に、各監督者１０３Piの監督者初期化モジュール３１３は、次式（３３）に示す値を算出し、監督者登録モジュール１１３に送信する。
【数２３】
2019053269.tif 000025
式中、gは、qの原始根であり、
fijは、監督者１０３Piの監督者初期化モジュール３１３によって生成された多項式Fi(x)の係数である。
監督者登録モジュール１１３は、生成された多項式の係数fijを使用して、監督者１０３Piの監督者初期化モジュール３１３が実際にFi(j)を算出したか確認する。このため、監督者登録モジュール１１３は、次式（３４）に示す等式が満足されているか確認する。
【数２４】
2019053269.tif 000026
監督者登録モジュール１１３は、監督者１０３Piの算出された公開鍵が、監督者登録モジュール１１３によって受信され、多項式Fi(x)の監督者１０３Piの監督者初期化モジュール３１３によって生成された、多項式の係数fijに対応し、この多項式の係数fijが算出された統一投票鍵に対応するか認証する。すなわち、
【数２５】
2019053269.tif 000027
であり、このため、監督者登録モジュール１１３は、次式（３６）の等式が満たされているか確認する。
【数２６】
2019053269.tif 000028
【０１２８】
投票運営者のコンピュータ装置３０４上で実行される候補者登録モジュール１１２は、候補者１０２を登録するよう構成してもよい。候補者１０２の登録は以下のように行われる。投票運営者１０４が告知した投票に候補者１０２として参加を希望する主体（ユーザ等）または客体は、自分の識別データを候補者登録モジュール１１２に送信する。候補者登録モジュール１１２は、受信した候補者１０２の識別データをもとに候補者１０２を認証し、認証が成功した場合、候補者１０２に候補者の識別子１０２pを割り当て、投票運営者のコンピュータ装置３０４に保存する。ここで、候補者１０２の識別子は次式（３７）で表わされる素数である。
【数２７】
2019053269.tif 000029
【０１２９】
システムの一変形例では、候補者１０２の認証は、候補者１０２の識別データに基づいて、投票運営者１０４が告知した投票に候補者１０２として参加できるか主体または客体の権利を判定することを含む。候補者１０２の認証はさらに、候補者の識別データに基づき、以前に同様の識別データによって認証された候補者１０２がいないことを判定することを含む。
【０１３０】
システムのさらに別の変形例では、候補者１０２の識別子pを、前もって算出された非循環素数の一覧の中から（ｉ）ランダムに、ただし、選択した各素数が１人の候補者１０２のみに選択した各素数が対応するよう選択する。または、（ｉｉ）連続的に選択する。
【０１３１】
投票者のコンピュータ装置３０１で実行される投票モジュール１２０は、以下のように投票者１０１の票を投じる。投票者１０１は、候補者１０２のうち１人を選択する。ここで、投票者１０１の選択のデータは選択された候補者１０２の識別子pである。投票モジュール１２０は、投票者１０１の票を暗号化する際に使用される数値であるセッション鍵αを算出する。ここで、セッション鍵αは、以下の条件（式（３８））を満たすよう、票が投じられるたびに投票手段１２０によって再度算出される。
【数２８】
2019053269.tif 000030
投票モジュール１２０は、次式（３９）により、選択された候補者１０２の識別子pを、監督者登録モジュール１１３から取得した統一投票鍵によって暗号化する：
【数２９】
2019053269.tif 000031
式中、gは、qの原始根であり、
hは、投票者初期化モジュール３１１から取得された統一暗号鍵であり、
αは、投票者１０１の今回の投票に対して算出されたセッション鍵である。
投票モジュール１２０は、監督者登録モジュール１１３から取得された秘密鍵によって、暗号化されたデータに署名する。投票モジュール１２０は、投票終了後、投じられた票を票登録モジュール１３０に送信する。
【０１３２】
システムの一変形例では、投票モジュール１２０は、投票者１０１が選択した監督者１０３のコンピュータ装置３０３上で実行される票登録モジュール１３０に、投票者が投じた票を送信する。投票者１０１は、ユーザのコンピュータ装置３０１からのデータの送り先である監督者コンピュータ装置３０３を所有する監督者１０３を、投票運営者１０４から投票者１０１に提供されたデータ（たとえば、監督者コンピュータ装置３０３のネットワークアドレス）に基づいて選択する。
【０１３３】
監督者コンピュータ装置３０３上で実行される票登録モジュール１３０は、以下のように投票者１０１の票を登録する。受信された投票者１０１からの投票は、監督者１０３の公開鍵によって暗号化される。投票者１０１が投じた票を受信した監督者１０３の記録の分散型レジスタは、受信された投票者１０１の票を考慮して変更される。この変更は次式（４）に示す規則に基づいて行われる：
【数３０】
2019053269.tif 000032
式中、Pは、記録の分散型レジスタの内容であって自然数で示され、
Vは、投票者が投じた票であって自然数で示され、
qは、記録の分散型レジスタの内容量を制限する所定の係数である。
【０１３４】
監督者のコンピュータ装置３０３上で実行される票復号化モジュール３４０、および、投票運営者のコンピュータ装置３０４上で実行される票集計モジュール１４０は、電子投票によって収集される投票者１０１の票数を判定するシステムにより投票運営者１０４が運営する投票の最終結果を算出するよう構成されるクライアントサーバアーキテクチャである。以下のステップは、投票者１０１の票を復号化する際に実行される。票集計モジュール１４０は、投票運営者１０４が運営する投票に参加しているn人の監督者１０３のうち少なくともk人を選択する。以前に選択された監督者１０３のコンピュータ装置３０３上で実行される票復号化モジュール３４０は、以前に作成された監督者１０３の秘密鍵を用いて記録の分散型レジスタを復号化する。選択されたk人の監督者１０３のコンピュータ装置３０３上で実行される票復号化モジュール３４０による記録の分散型レジスタの連続復号化の最終結果は、次式（４１）で示される積となる。
【数３１】
2019053269.tif 000033
式中、nは、投票運営者１０４が運営する投票に参加する候補者１０２の人数であり、
piは、i番目の候補者１０２の識別子であり、
viは、i番目の候補者１０２に投じられた投票者１０１の票の数である。
票集計モジュール１４０は、投票運営者１０４が運営する投票に参加する候補者１０２の識別子に基づいて、復号化された記録の分散型レジスタを因数分解する。
【０１３５】
システムの一変形例では、票集計モジュール１４０は、（ｉ）ランダムに、または、（ｉｉ）特定の監督者１０３のコンピュータ装置３０３上で実行されている票登録モジュール１３０へ送られる投票者１０１が投じた票の数に応じて、n人の監督者１０３のうち少なくともk人を選択する。たとえば、票集計モジュール１４０は、投票者１０１が投じた票の過半数の送信先である、コンピュータ装置３０３上で実行される票登録モジュール１３０を所有するk人の監督者１０３を選択する。
【０１３６】
システムのさらに別の変形例では、復号化された記録の分散型レジスタを因数分解するため、票集計モジュール１４０はＧｅｌｆｏｎｄ−Ｓｈａｎｋｓアルゴリズム（baby-step  giant-step）を使用する。
【０１３７】
システムのさらに別の変形例では、各候補者１０２に投じられた投票者１０１の票の数を集計した後、票集計モジュール１４０は、復号化された記録の分散型レジスタに対する因数分解の正確性の認証を行う。確認では、投票した投票者１０１の合計人数と算出された票の合計数とを比較する。
【数３２】
2019053269.tif 000034
式中、
nは、投票運営者１０４が運営する投票に参加する候補者１０２の人数であり、
viは、i番目の候補者１０２に投じられた投票者１０１の票数であり、
vmaxは、投票した投票者１０１の合計人数である。
比較結果が否定的である場合、投票結果は無効とみなされる。
【０１３８】
図４は、一例示的側面に係る、投票運営者の実施の方法４００の一実施形態のフローチャートである。
【０１３９】
投票運営者の方法４００の一実施形態の構造図は、実行される投票の準備を行うステップ４０１、投票を実施するステップ４０２、結果を総括するステップ４０３を含む。そして、ステップ４０１は、投票の実行規則を設定するステップ４１１、候補者を登録するステップ４１２、暗号システムを設定するステップ４１３、監督者を登録するステップ４１４、投票者を登録するステップ４１５を含む。ステップ４０２は、投票処理を開始するステップ４２１、一連の投票処理を監視するステップ４２２、投票処理を終了するステップ４２３を含む。ステップ４０３は、収集された票を認証するステップ４３１、収集された票を復号化するステップ４３２、および、収集された票を集計するステップ４３３を含む。
【０１４０】
ステップ４０１において、投票運営者１０４は投票の準備を行う。すなわち、投票運営者１０４は、投票の規則を割り当て、割り当てた規則に基づき、投票の準備が行われ、投票そのものが実行され、投票後の票が集計される。投票運営者１０４はまた、候補者１０２を登録し、パラメータが投票者１０１の票の投票、記憶および集計に使用される暗号システムを設定し、監督者１０３を登録し、投票者１０１を登録する。投票の準備は上述の順序通りに行われる。つまり、最初に投票の規則を設定し、次に、設定された規則に基づいて候補者１０２を登録し、次に、候補者１０２に関するデータに基づいて暗号システムを設定し、次に、設定された暗号システムのパラメータに基づいて監督者１０３を登録し、次に、監督者１０３に関するデータに基づいて投票者を登録する。
【０１４１】
投票を実行するための規則は、少なくとも、投票者１０１の票を集計するために必要な監督者１０３の最少人数を制限する規則、一人の投票者１０１が投じることができる投票者１０１の票の最大数を決定する規則、および、投票の開始および終了の条件を決定する規則である。一部の側面では、投票の開始および終了の条件は、少なくとも、投票の開始および終了の時間、投票の登録開始後の投票者１０１の人数、投票完了後の投票者１０１の票の数を含む。
【０１４２】
ステップ４１２において、候補者１０２の登録中、投票運営者１０４は、各候補者１０２と、素数である、候補者１０２の識別子とを照合する。
【数３３】
2019053269.tif 000035
式中、
piは、i番目の候補者１０２の識別子であり、
【数３４】
2019053269.tif 000036
は、素数の空間であり、  
nは、規則によって設定された候補者１０２の最大人数であり、
候補者１０２の識別子はすべて異なる。
【０１４３】
ステップ４１３において、投票運営者１０４は暗号システムを設定する。すなわち、ステップ４１１で設定した投票を行うための規則およびステップ４１２で割り当てられた候補者１０２の識別子に基づいて、暗号システムのパラメータを算出する。暗号システムのパラメータは、少なくとも以下のとおりである。
qは、qが所定の候補者１０２の識別子のいずれよりも大きくなるランダムな素数（ただし、
【数３５】
2019053269.tif 000037
）であり、
gは、qの原始根であり、
sは、ランダムな素数（ただし、
【数３６】
2019053269.tif 000038
）である。
数値qは、投票完了後の投票者１０１の票の集計によって明確な結果が得られるよう選択される（すなわち、互いに異なる複数の結果が得られるような複数の方法で票の集計が行われてはならない）。
【０１４４】
ステップ４１４において、投票運営者１０４は監督者１０３を登録する。監督者１０３の登録において、投票運営者１０４は、少なくとも投票者１０１の票の送受信と記録の分散型レジスタの変更とが可能であることを認証する。投票運営者１０４はさらに、監督者１０３が生成する記録の分散型レジスタの正当性を認証し、監督者１０３が生成する公開暗号鍵および秘密暗号鍵の正当性を認証し、ステップ４１３で算出された暗号システムのパラメータに基づいて統一投票鍵を生成する。
【０１４５】
ステップ４１５において、投票運営者１０４は投票者１０１を登録する。投票者１０１の登録において、投票運営者１０４は、少なくとも投票者１０１の投票が可能であることを認証し、投票者のデジタル署名を作成し、ステップ４１４で生成された統一投票鍵を送信する。
【０１４６】
ステップ４０２において、投票運営者１０４は投票を運営する。すなわち、投票を開始し、一連の投票過程および投票の規則を監視し、投票処理を完了する。
【０１４７】
ステップ４２１において、投票運営者１０４は投票処理を開始する。投票処理において、投票運営者１０４は、少なくとも、投票者１０１として投票が可能であるか投票者に通知し、投票者が投じた票に基づいて記録の分散型レジスタが変更できるかについて監督者１０３に通知する。
【０１４８】
投票者１０１が、監督者３０３の記録の分散型レジスタを変更するために投票者１０１が投じた票を送信しようとした場合、この投票者の票はカウントされない。あるいは、投票処理が完了した際、監督者３０３が自身の記録の分散型レジスタの変更中に間違えたものと判断されてその記録の分散型レジスタは収集された投票者の票をカウントする際に考慮されない。
【０１４９】
ステップ４２２において、投票運営者は少なくとも以下が行われる一連の投票過程を監視する。投票運営者は、ステップ４１１において投票を運営するために設定された規則およびステップ４１３において算出された暗号システムのパラメータに基づいて、投票者の投じた票の正当性を認証する。次に、投票運営者は、ステップ４１１において投票を運営するために設定された規則およびステップ４１３において算出された暗号システムのパラメータに基づいて、投票者の監督者１０３の記録の分散型レジスタの変更の正当性を認証する。最後に、投票運営者は、ステップ４１１で設定された投票の規則に従って、投票完了の条件を監視する。
【０１５０】
ステップ４２３において、投票運営者１０４は、少なくとも以下が行われる投票処理を完了する。投票運営者１０４は、投票者１０１の票を投じることができないことを投票者に通知する。投票運営者１０４は、投票者が投じた票に基づいて記録の分散型レジスタを変更できないことを監督者１０３に通知する。
【０１５１】
投票者１０１が、監督者３０３の記録の分散型レジスタを変更するために、投じた票を送信しようとした場合、この投票者の票はカウントされない。あるいは、監督者３０３が記録の分散型レジスタの変更中に間違えたと判断された場合、その記録の分散型レジスタは収集された投票者の票をカウントする際に考慮されない。
【０１５２】
ステップ４０３において、投票運営者１０４は、投票の結果を総括する。つまり、投票運営者１０４は、収集した票を認証し、収集した票を復号化し、最後に収集した票をカウントする。
【０１５３】
ステップ４３１において、投票運営者１０４は収集した投票者１０１の票を認証する。認証中に少なくとも以下が実行される。投票運営者１０４は、監督者１０３全員の記録の分散型レジスタを比較する。記録の分散型レジスタの確認結果から、投票運営者１０４は、受信した投票者１０１の投票に基づき記録の分散型レジスタの変更中にミス（あるいは、意図的な改ざん）をした監督者１０３を特定する。ミスをした監督者１０３の特定結果から、投票運営者１０４は、収集した投票者の票を復号化するステップ４３２でデータが使用される監督者１０３を特定する。このように特定された監督者１０３の人数がステップ４１１で設定した投票の規則の数よりも少ない場合、投票運営者１０４は投票の無効を宣言する。
【０１５４】
ステップ４３２において、投票運営者１０４は、取得された投票者１０１の投票に基づいて変更された収集済みの投票者１０１の票を、ステップ４１３で算出された暗号システムのパラメータに基づいて復号化する。投票者１０１の票の復号化は、記録の分散型レジスタの変更によって行われる。
【０１５５】
ステップ４３３において、投票運営者１０４は、収集した投票者の票を集計し、投票結果を取得した後、ステップ４１１で設定された投票を実行するための規則に応じたものか確認する。
【０１５６】
図５は、一例示的側面に従い、電子投票によって収集した投票者の票を判定するシステムおよび方法の側面を実現する汎用コンピュータシステム２０のブロック図である。なお、コンピュータシステム２０は、前述したシステム１００またはコンピュータ装置３０１、３０３、３０４等に対応し得ることを留意されたい。
【０１５７】
図示されているとおり、コンピュータシステム２０（パーソナル・コンピュータまたはサーバでもよい）は、中央処理装置２１、システムメモリ２２、および、中央処理装置２１に対応するメモリを含む様々なシステムコンポーネントを接続するシステムバス２３を備える。当業者に理解されるとおり、システムバス２３は、バスメモリまたはバスメモリ制御部、周辺バス、および他のバスアーキテクチャと相互作用可能なローカルバスを含む。システムメモリは、永久メモリ（ＲＯＭ）２４およびランダムアクセスメモリ（ＲＡＭ）２５を含む。基本入力／出力システム（basic  input／output  system；ＢＩＯＳ）２６は、ＲＯＭ２４を使用してオペレーティングシステムをロードする時などの、コンピュータシステム２０の要素間の基本的な情報転送手順を記憶する。
【０１５８】
コンピュータシステム２０は、さらに、データの読み取りおよび書き込みを行うハードディスク２７、取り外し可能な磁気ディスク２９の読み取りおよび書き込みを行う磁気ディスクドライブ２８、ならびに、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭおよびその他の光学媒体等の取り外し可能な光学ディスク３１の読み取りおよび書き込みを行う光学ドライブ３０を含む。ハードディスク２７、磁気ディスクドライブ２８、および光学ドライブ３０は、それぞれ、ハードディスクインタフェース３２、磁気ディスクインタフェース３３、および光学ドライブインタフェース３４を介して、システムバス２３に接続されている。ドライブおよびそれに対応するコンピュータ情報媒体は、コンピュータ命令、データ構造、プログラムモジュールおよびその他のコンピュータシステム２０のデータを記憶するための独立電源型モジュールである。
【０１５９】
例示的側面は、コントローラ５５を介してシステムバス２３に接続される、ハードディスク２７、取り外し可能な磁気ディスク２９、および取り外し可能な光学ディスク３１を使用するシステムを備えている。コンピュータによって読み取り可能な形式でデータを記憶できる媒体５６（ソリッド・ステート・ドライブ、フラッシュメモリカード、デジタルディスク、ランダムアクセスメモリ（ＲＡＭ）等）であればどのようなものでも利用できることは、当業者であれば理解できるであろう。
【０１６０】
コンピュータシステム２０は、オペレーティングシステム３５が記憶されるファイルシステム３６、ならびに、追加プログラムアプリケーション３７、その他のプログラムモジュール３８およびプログラムデータ３９を有する。コンピュータシステム２０のユーザは、キーボード４０、マウス４２、または当業者に知られているマイク、ジョイスティック、ゲームコントローラ、スキャナ等（これらに限定されない）のその他の入力装置を使用して命令や情報を入力する。これらの入力装置は、通常、シリアルポート４６を介してコンピュータシステム２０に差し込まれ、システムバスに接続される。ただし、当業者であれば、入力装置は、パラレルポート、ゲームポート、またはユニバーサルシリアルバス（ＵＳＢ）（これらに限定されない）を介するその他の方法でも接続され得ることがわかるであろう。モニタ４７やその他のタイプの表示装置も、ビデオアダプタ４８などのインタフェースを介してシステムバス２３に接続されてもよい。モニタ４７に加え、パーソナル・コンピュータは、ラウドスピーカやプリンタ等のその他の周辺出力装置（図示せず）を装備していてもよい。
【０１６１】
コンピュータシステム２０は、１以上のリモートコンピュータ４９へのネットワーク接続を使用して、ネットワーク環境で動作してもよい。一台（または複数）のリモートコンピュータ４９は、上述のコンピュータシステム２０の性質で説明した要素の大部分もしくはすべてを含むローカルコンピュータワークステーションまたはサーバでもよい。以下に限定されないが、ルータ、ネットワークステーション、ピア装置またはその他のネットワークノードなど他の装置も、コンピュータ・ネットワーク内に存在してもよい。
【０１６２】
ネットワーク接続により、ローカルエリア・コンピュータ・ネットワーク（ＬＡＮ）５０およびワイドエリア・コンピュータ・ネットワーク（ＷＡＮ）が形成される。これらのネットワークは、企業コンピュータ・ネットワークおよび社内ネットワークで使用され、通常はインターネットにアクセスできる。ＬＡＮまたはＷＡＮネットワークでは、パーソナル・コンピュータ２０は、ネットワークアダプタまたはネットワークインタフェース５１を介して、ローカルエリア・ネットワーク５０に接続されている。ネットワークが使用されると、コンピュータシステム２０は、モデム５４、または、インターネットなどのワイドエリア・コンピュータ・ネットワークによって通信を可能にする、当業者に周知のその他のモジュールを使用する。内部装置または外部装置であるモデム５４は、シリアルポート４６によってシステムバス２３に接続される。このネットワーク接続が、通信モジュールを使用して一つのコンピュータを別のコンピュータに接続させる数々の周知の方法の非限定的な例であることは、当業者であればわかるであろう。
【０１６３】
種々の側面において、ここに記載するシステムおよび方法は、ハードウェア、ソフトウェア、ファームウェアまたはその組み合わせにおいて実行される。ソフトウェアで実行される場合、この方法は１以上の命令またはコードとして非一時的なコンピュータ可読媒体に記憶されてもよい。コンピュータ可読媒体はデータ記憶装置も含む。一例では、このコンピュータ可読媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、ＣＤ−ＲＯＭ、フラッシュメモリ、その他の電気、磁気または光学記憶媒体、あるいは、命令やデータ構造の形式で所望のプログラムコードを伝達または記憶するために使用し、汎用コンピュータのプロセッサからアクセス可能な、その他の媒体を含んでもよいが、これらに限定されない。
【０１６４】
種々の側面において、ここに記載したシステムおよび方法は、モジュールによって処理することができる。「モジュール」という用語は、たとえば、特定用途向け集積回路（ＡＳＩＣ）またはフィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）などのハードウェア、あるいは、モジュールの機能を実行するマイクロプロセッサシステムおよび命令一式などのハードウェアとソフトウェアとの組み合わせによって実行される、実装置、コンポーネントまたは一組のコンポーネントのことを指しており、これらは（実行中に）マイクロプロセッサシステムを専用装置に変換する。モジュールは、一部の機能をハードウェアのみで実行させ、他の機能をハードウェアとソフトウェアの組み合わせによって実行させるという、２つの組み合わせで実行させることもできる。特定の実施形態では、モジュールの少なくとも一部、または、場合によってすべてが、汎用コンピュータのプロセッサで実行される（上記図５で詳しく説明）。よって、各モジュールは、様々な適切な設定で実行されるものであって、ここで例示した特定の実施形態に限定されるものではない。
【０１６５】
なお、明瞭化のため、各側面の一般的な特徴すべてについては開示しない。本開示の実際の実装を開発する際、開発者の具体的な目的を達成するためには実装に応じた数々の決定を行わなければならず、具体的な目的は実装や開発者によって異なることに留意されたい。こうした開発上の取り組みは、複雑で時間を要するものであるが、本発明の利益を享受する当業者にとっては日常の作業であることを理解されたい。
【０１６６】
更に、ここで使用する用語又は表現は、あくまでも説明のためであり、限定するものではないことを理解されたい。よって、本明細書の用語又は表現は、関連技術の熟練者の知識と組み合わせて、本明細書に示す教示及び指針に照らして当業者によって解釈されたい。明細書又は特許請求の範囲における用語はいずれも、特に明記していない限り、一般的でない意味や特別な意味をもつものではない。
【０１６７】
本明細書で開示した様々な側面は、本明細書で例示した既知のモジュールの、現在及び将来の既知の均等物を包含する。本明細書では、複数の側面及び応用例を示して説明したが、本明細書に開示した発明の概念の範囲内で、上記よりも多くの変形例が可能であることは、本発明の利益を享受する当業者にとって明らかであろう。
【図１】
2019053269.tif 000039
【図２】
2019053269.tif 000040
【図３】
2019053269.tif 000041
【図４】
2019053269.tif 000042
【図５】
2019053269.tif 000043
【外国語明細書】
2019053269000001.pdf