IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社日立製作所の特許一覧

<>
  • 特開-情報処理システム及び情報処理方法 図1
  • 特開-情報処理システム及び情報処理方法 図2
  • 特開-情報処理システム及び情報処理方法 図3
  • 特開-情報処理システム及び情報処理方法 図4
  • 特開-情報処理システム及び情報処理方法 図5
  • 特開-情報処理システム及び情報処理方法 図6
  • 特開-情報処理システム及び情報処理方法 図7
  • 特開-情報処理システム及び情報処理方法 図8
  • 特開-情報処理システム及び情報処理方法 図9
  • 特開-情報処理システム及び情報処理方法 図10
  • 特開-情報処理システム及び情報処理方法 図11
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024131409
(43)【公開日】2024-09-30
(54)【発明の名称】情報処理システム及び情報処理方法
(51)【国際特許分類】
   H04L 9/32 20060101AFI20240920BHJP
【FI】
H04L9/32 200C
H04L9/32 100D
【審査請求】未請求
【請求項の数】9
【出願形態】OL
(21)【出願番号】P 2023041648
(22)【出願日】2023-03-16
(71)【出願人】
【識別番号】000005108
【氏名又は名称】株式会社日立製作所
(74)【代理人】
【識別番号】110001678
【氏名又は名称】藤央弁理士法人
(72)【発明者】
【氏名】川名 のん
(72)【発明者】
【氏名】高橋 健太
(72)【発明者】
【氏名】中村 渉
(57)【要約】
【課題】秘匿化されたメッセージに対する生体情報を用いた電子署名から、元のメッセージに対する電子署名を生成する。
【解決手段】第2計算機は、乱数と、ブラインドメッセージと、に基づくブラインド情報を生成して、第1計算機に送信し、第1計算機は、乱数と、ブラインド情報と、ハッシュ関数と、に基づいて、ハッシュを生成して、第2計算機に送信し、第2計算機は、ハッシュと、ブラインド情報の生成に用いられた乱数と、生体情報に基づくテンプレートと、に基づいて、ブラインドメッセージへの電子署名を生成して、第1計算機に送信し、第1計算機は、当該電子署名と、生体情報に基づく検証鍵と、に基づいて、元のメッセージへの電子署名を生成する。
【選択図】図1
【特許請求の範囲】
【請求項1】
情報処理システムであって、
第1計算機と第2計算機とを含み、
前記第1計算機は、生体情報が変換された第1テンプレートを示す検証鍵を保持し、
前記第2計算機は、乱数に基づいて秘匿化されたメッセージであるブラインドメッセージと、生体情報が変換された第2テンプレートと、を保持し、
前記第2計算機は、乱数を生成し、当該生成した乱数と、前記ブラインドメッセージと、に基づくブラインド情報を生成して、前記第1計算機に送信し、
前記第1計算機は、乱数を生成し、当該生成した乱数と、前記ブラインド情報と、所定の第1ハッシュ関数と、に基づいて、ハッシュを生成して、前記第2計算機に送信し、
前記第2計算機は、前記ハッシュと、前記ブラインド情報の生成に用いられた乱数と、前記第2テンプレートと、に基づいて、前記ブラインドメッセージへの第1電子署名を生成して、前記第1計算機に送信し、
前記第1計算機は、前記第1電子署名と、前記検証鍵と、に基づいて、前記メッセージへの第2電子署名を生成する、情報処理システム。
【請求項2】
請求項1に記載の情報処理システムであって、
第3計算機を含み、
前記第1計算機は、
ランダムベクトルを生成し、
前記第1電子署名が示す前記第2テンプレートに前記ランダムベクトルを加えたベクトルと、前記第1テンプレートと、前記検証鍵と、に基づくゼロ知識証明を生成し、
前記生成したゼロ知識証明を前記第2電子署名に含め、
前記第2電子署名を前記第3計算機に送信し、
前記第3計算機は、前記第2電子署名の検証と、前記第2電子署名が示すゼロ知識証明の検証と、を実行する、情報処理システム。
【請求項3】
請求項1に記載の情報処理システムであって、
前記メッセージmは、所定の有限体Fの元であり、
前記ブラインドメッセージは、m:=mであり、
tは、前記所定の有限体Fの乱数であり、
前記第2計算機は、
前記所定の有限体Fの乗法群の生成元gを保持し、
前記所定の有限体Fの乱数s及び乱数sk’を生成し、
vk’:=gsk’を算出し、
(a,b):=(g,m )を算出し、
前記ブラインド情報(m sk’,vk’a,b)を生成する、情報処理システム。
【請求項4】
請求項3に記載の情報処理システムであって、
前記第1計算機は、
前記メッセージmと、前記所定の有限体Fの乗法群の生成元gと、前記ブラインドメッセージの生成に用いられた乱数tと、を保持し、
前記所定の有限体Fの乱数d、乱数u、及び乱数vを生成し、
前記ブラインド情報(m sk’,vk’a,b)に基づいて、a:=(a・gと、b:=(b 1/t・mと、vk:=vk’・gと、z:=(m sk’1/t,z:=zgと、を算出し、
前記第1ハッシュ関数Hashに基づいて、c:=Hash(m,a,b,z*)を算出し、
前記ハッシュc:=c/uを算出する、情報処理システム。
【請求項5】
請求項4に記載の情報処理システムであって、
前記第2テンプレートの生成に用いられる生体情報A’は、n次元実ベクトルであり、
前記第2テンプレートは、C’:=x’+TA’であり、
x’:=h -1(sk’)であり、
は所定の第2ハッシュ関数であり、
前記第2計算機は、
前記ハッシュに基づいて、r:=s+c・sk’を算出し、
前記第2テンプレートC’を含む前記第1電子署名σ=(vk’,c,r,C’)を生成する、情報処理システム。
【請求項6】
請求項5に記載の情報処理システムであって、
前記第1テンプレートの生成に用いられる生体情報Aは、n次元実ベクトルであり、
前記第1テンプレートは、C:=x+TAであり、
x:=h -1(sk)であり、
skは前記所定の有限体Fの乱数であり、
前記第1計算機は、
前記第2ハッシュ関数hを保持し、
n次元実ベクトルであるランダムベクトルBを生成し、
:=C’+Bと、r=(r+v)uと、r:=r+cdと、を算出し、
Δsk:=h(C-C)と、y:=vk・gΔsk/vkと、を算出し、
ゼロ知識証明π:=(y,Δsk)を算出し、
前記ゼロ知識証明πを含む前記第2電子署名σ:=(VK,z,a,b,r,C,vk,π)を生成する、情報処理システム。
【請求項7】
請求項6に記載の情報処理システムであって、
第3計算機を含み、
前記第1計算機は、前記第2署名σを前記第3計算機に送信し、
前記第3計算機は、
所定の署名検証アルゴリズムと、前記第2電子署名σが示すVK、z*、a、及びbと、に基づく署名検証処理を実行し、
前記第2電子署名σが示すvk、vk、及び前記ゼロ知識証明πに基づくゼロ知識証明検証処理を実行する、情報処理システム。
【請求項8】
請求項7に記載の情報処理システムであって、
前記第3計算機は、
前記所定の有限体Fの乗法群の生成元gを保持し、
前記ゼロ知識証明検証処理において、
I=vk・gΔsk/vkを算出し、
I=yが成立するか否かに基づいて、当該ゼロ知識証明検証処理における検証結果を決定する、情報処理システム。
【請求項9】
情報処理システムによる情報処理方法であって、
前記情報処理システムは、第1計算機と第2計算機とを含み、
前記第1計算機は、生体情報が変換された第1テンプレートを示す検証鍵を保持し、
前記第2計算機は、乱数に基づいて秘匿化されたメッセージであるブラインドメッセージと、生体情報が変換された第2テンプレートと、を保持し、
前記情報処理方法は、
前記第2計算機が、乱数を生成し、当該生成した乱数と、前記ブラインドメッセージと、に基づくブラインド情報を生成して、前記第1計算機に送信し、
前記第1計算機が、乱数を生成し、当該生成した乱数と、前記ブラインド情報と、所定の第1ハッシュ関数と、に基づいて、ハッシュを生成して、前記第2計算機に送信し、
前記第2計算機が、前記ハッシュと、前記ブラインド情報の生成に用いられた乱数と、前記第2テンプレートと、に基づいて、前記ブラインドメッセージへの第1電子署名を生成して、前記第1計算機に送信し、
前記第1計算機が、前記第1電子署名と、前記検証鍵と、に基づいて、前記メッセージへの第2電子署名を生成する、情報処理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理システム及び情報処理方法に関する。
【背景技術】
【0002】
本技術分野の背景技術として、特開2013-123142号公報(特許文献1)がある。この公報には、「登録時にユーザの生体情報の特徴量に対して所定の秘密鍵を埋め込み、対応する公開鍵と組にして生体証明書を発行する。署名時にはユーザの生体情報の署名用特徴量に対して、新たに一時秘密鍵と一時公開鍵のペアを生成し、一時秘密鍵を用いてメッセージに対する署名を作成し、署名用特徴量に一時秘密鍵を埋め込んでコミットメントを作成し、前記一時公開鍵と前記署名と前記コミットメントの組を生体署名とし、生体署名検証時には署名を一時公開鍵で検証し、生体証明書とコミットメントと一時公開鍵から差分秘密鍵と差分公開鍵を生成して対応を検証する。」と記載されている(要約参照)。
【0003】
特許文献1に記載の技術は個人の生体情報を用いた電子署名をメッセージに対して付与する。これに対し、署名者にメッセージの内容を開示することなく、当該署名者が電子署名をするブラインド署名という署名方式がある。
【0004】
ブラインド署名では、秘匿化されたメッセージに対する電子署名が生成され、当該電子署名を受け取ったユーザは秘匿化されたメッセージに対する当該電子署名に基づいて、本来のメッセージに対する電子署名を生成できる。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2013-123142号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
特許文献1には、秘匿化されたメッセージに署名者の生体情報を用いた電子署名を付与したものをユーザに返す場合に、ユーザが当該電子署名から元のメッセージに対する電子署名を生成する方法については記載されておらず、メッセージに匿名性を持たせることができない。
【0007】
そこで、本発明の一態様は、秘匿化されたメッセージに対する生体情報を用いた電子署名から、元のメッセージに対する電子署名を生成する。
【課題を解決するための手段】
【0008】
上記課題を解決するため本発明の一態様は以下の構成を採用する。情報処理システムは、第1計算機と第2計算機とを含み、前記第1計算機は、生体情報が変換された第1テンプレートを示す検証鍵を保持し、前記第2計算機は、乱数に基づいて秘匿化されたメッセージであるブラインドメッセージと、生体情報が変換された第2テンプレートと、を保持し、前記第2計算機は、乱数を生成し、当該生成した乱数と、前記ブラインドメッセージと、に基づくブラインド情報を生成して、前記第1計算機に送信し、前記第1計算機は、乱数を生成し、当該生成した乱数と、前記ブラインド情報と、所定の第1ハッシュ関数と、に基づいて、ハッシュを生成して、前記第2計算機に送信し、前記第2計算機は、前記ハッシュと、前記ブラインド情報の生成に用いられた乱数と、前記第2テンプレートと、に基づいて、前記ブラインドメッセージへの第1電子署名を生成して、前記第1計算機に送信し、前記第1計算機は、前記第1電子署名と、前記検証鍵と、に基づいて、前記メッセージへの第2電子署名を生成する。
【発明の効果】
【0009】
本発明の一態様によれば、秘匿化されたメッセージに対する生体情報を用いた電子署名から、元のメッセージに対する電子署名を生成することができる。
【0010】
上記した以外の課題、構成及び効果は、以下の実施形態の説明により明らかにされる。
【図面の簡単な説明】
【0011】
図1】実施例1における署名生成/検証システムの構成例を示すブロック図である。
図2】実施例1におけるユーザ端末のハードウェア構成例を示すブロック図である。
図3】実施例1における生体情報を用いたブラインド署名が適用された電子投票処理の一例を示すシーケンス図である。
図4】実施例1における検証鍵生成処理の一例を示すフローチャートである。
図5】実施例1におけるブラインド処理の一例を示すフローチャートである。
図6】実施例1におけるブラインド情報生成処理の一例を示すフローチャートである。
図7】実施例1におけるハッシュ生成処理の一例を示すフローチャートである。
図8】実施例1における電子署名生成処理の一例を示すフローチャートである。
図9】実施例1におけるブラインド署名生成処理の一例を示すフローチャートである。
図10】実施例1におけるブラインド署名検証処理の一例を示すフローチャートである。
図11】実施例1におけるゼロ知識証明検証処理の一例を示すフローチャートである。
【発明を実施するための形態】
【0012】
以下、本発明の実施形態を添付図面に基づいて説明する。本実施形態は本発明を実現するための一例に過ぎず、本発明の技術的範囲を限定するものではないことに注意すべきである。
【0013】
本実施形態では、生体情報を用いたブラインド署名が適用された電子投票について説明する。投票者によって利用されるユーザ端末は、投票内容を示すメッセージをブラインド化(秘匿化)して、投票立会人によって利用される署名者端末に送付する。署名者端末は投票内容が見えない状態のまま署名者(投票立会人)の生体情報を用いた電子署名を生成し、生成した電子署名をユーザ端末に送信する。
【0014】
ユーザ端末は受信した署名に基づいて、元の投票内容を示すメッセージへの署名を生成し、当該生成した署名を、開票者によって利用される検証者端末に送信する。検証者端末は、受信した署名の検証を行い、正しいものであると確認が取れたら投票内容を投票結果に反映する。
【実施例0015】
図1は、署名生成/検証システムの構成例を示すブロック図である。署名生成/検証システム(情報処理システムの一例)は、例えば、ブラインド化したメッセージに対して生体情報を秘密鍵とした電子署名を行い、署名者とユーザが生成した乱数を用いた計算式からハッシュを生成し、そのハッシュに基づいたブラインド署名の構成と、署名の検証を行う。
【0016】
署名生成/検証システムは、例えば、ユーザ端末100(第1計算機の一例)、署名者端末200(第2計算機の一例)、及び検証者端末300(第3計算機の一例)を含み、これらの端末はインターネット等のネットワーク400によって相互に接続される。
【0017】
ユーザ端末100は、例えば、いずれも機能部である、ブラインド処理部101、ハッシュ生成部102、及びブラインド署名生成部103を含む。署名者端末200は、例えば、いずれも機能部である、検証鍵生成部201、ブラインド情報生成部202、及び電子署名生成部203を含む。検証者端末300は、例えば、機能部であるブラインド署名検証部301を含む。
【0018】
ブラインド処理部101は、メッセージをブラインド化する。以下、ブラインド化されたメッセージを単にブラインドメッセージとも呼ぶ。ハッシュ生成部102は、乱数を用いた計算式に基づいたハッシュを生成する。
【0019】
検証鍵生成部201は、署名者の生体情報に基づく検証鍵を生成する。ブラインド情報生成部202は、ハッシュ生成部102がハッシュを生成する際に利用されるブラインド情報を生成する。電子署名生成部203は、ユーザ端末100が生成したハッシュと、署名書の生体情報と、を用いて署名を生成する。
【0020】
ブラインド署名生成部103は、電子署名生成部203が生成した署名を用いて、元のメッセージ(即ちブラインド化される前のメッセージ)に対するブラインド署名を生成する。ブラインド署名検証部301は、ブラインド署名生成部103が生成したブラインド署名を検証する。
【0021】
図2は、ユーザ端末100のハードウェア構成例を示すブロック図である。ユーザ端末100は、例えば、内部信号線100-4を介して接続された、CPU100-1と、補助記憶装置100-2と、メモリ100-3と、入出力インターフェース100-5と、通信装置100-6と、生体情報取得センサ100-7と、を含む計算機によって構成される。
【0022】
CPU100-1はプロセッサを含み、メモリ100-3に格納されたプログラムを実行する。メモリ100-3は、不揮発性の記憶素子であるROM及び揮発性の記憶素子であるRAMを含む。ROMは、不変のプログラム(例えば、BIOS)などを格納する。RAMは、DRAM(Dynamic Random Access Memory)のような高速かつ揮発性の記憶素子であり、CPU100-1が実行するプログラム及びプログラムの実行時に使用されるデータを一時的に格納する。
【0023】
補助記憶装置100-2は、例えば、磁気記憶装置(HDD)、フラッシュメモリ(SSD)等の大容量かつ不揮発性の記憶装置であり、CPU100-1が実行するプログラム及びプログラムの実行時に使用されるデータを格納する。すなわち、プログラムは、補助記憶装置100-2から読み出されて、メモリ100-3にロードされて、CPU100-1によって実行される。
【0024】
入出力インターフェース100-5は、キーボードやマウスなどの入力装置が接続され、ユーザからの入力を受けるインターフェースや、ディスプレイ装置やプリンタなどの出力装置が接続され、プログラムの実行結果をユーザが視認可能な形式で出力するインターフェースなどを含む。
【0025】
通信装置100-6は、所定のプロトコルに従って、他の装置との通信を制御するネットワークインターフェース装置である。また、通信装置100-6は、例えば、USB(Univesal Serial Bus)等のシリアルインターフェースを含んでもよい。
【0026】
CPU100-1が実行するプログラムは、リムーバブルメディア(CD-ROM、フラッシュメモリなど)又はネットワーク400を介してユーザ端末100に提供され、非一時的記憶媒体である不揮発性の補助記憶装置100-2に格納される。このため、ユーザ端末100は、リムーバブルメディアからデータを読み込むインターフェースを有するとよい。
【0027】
生体情報取得センサ100-7はユーザの生体情報を取得するセンサであり、例えば、指紋センサ、静脈センサ等を介して、手の指紋や皺、手の静脈といったユーザの生体情報を取得するセンサである。なお、ユーザ端末100を構成する計算機は、生体情報取得センサ100-7を含まなくてもよい。
【0028】
なお、署名者端末200のハードウェア構成はユーザ端末100のハードウェア構成と同様であり、検証者端末300は生体情報取得センサ100-7を含まなくてもよい点を除いて、ユーザ端末100のハードウェア構成と同様であるため、説明を省略する。
【0029】
前述したユーザ端末100の機能部は、ユーザ端末100のCPU100-1に含まれる。ユーザ端末100のCPU100-1は、ユーザ端末100のメモリ100-3にロードされたブラインド処理プログラムに従って動作することで、ブラインド処理部101として機能し、ユーザ端末100のメモリ100-3にロードされたハッシュ生成プログラムに従って動作することで、ハッシュ生成部102として機能する。
【0030】
なお、ユーザ端末100に含まれる他の機能部、署名者端末200に含まれる機能部、及び検証者端末300に含まれる機能部についても、各機能部を実現するプログラムとCPU100-1との関係は同様であるため、説明を省略する。
【0031】
なお、ユーザ端末100に含まれる他の機能部、署名者端末200に含まれる機能部、及び検証者端末300に含まれる機能部による機能の一部又は全部が、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field-Programmable Gate Array)等のハードウェアによって実現されてもよい。
【0032】
なお、本実施形態において、署名生成/検証システムが使用する情報は、データ構造に依存せずどのようなデータ構造で表現されていてもよい。例えば、テーブル、リスト、データベース又はキューから適切に選択したデータ構造体が、情報を格納することができる。
【0033】
また、ユーザ端末100は、物理的に一つの計算機上で、又は、論理的又は物理的に構成された複数の計算機上で構成される計算機システムであり、同一の計算機上で別個のスレッドで動作してもよく、複数の物理的計算機資源上に構築された仮想計算機上で動作してもよい。これは、署名者端末200及び検証者端末300についても同様である。
【0034】
図3は、生体情報を用いたブラインド署名が適用された電子投票処理の一例を示すシーケンス図である。図3の例では、ユーザ端末100は投票者によって利用され、署名者端末200は投票立会人によって利用され(つまり投票立会人は署名者の一例である)、検証者端末300は開票者によって利用される(つまり開票者の検証者一例である)。
【0035】
ユーザ端末100は、例えば入出力インターフェース100-5に接続された入力装置への入力に従って、投票内容を示すメッセージmと、投票者の身分証明情報と、を取得し(S100)、取得した身分証明情報を署名者端末200に送信する。
【0036】
身分証明情報は、投票者が投票権を有することを示す情報を含む。署名者端末200は、身分証明情報に基づいて投票者が投票権を有することを確認できた場合には、後述するステップS210以降の処理を行う。
【0037】
なお、ステップS210において署名者端末200が検証鍵VKを生成して、ユーザ端末100に送信する処理については、ステップS100の処理よりも前に予め実行されてもよい。
【0038】
なお、ユーザ端末100は、例えば公開鍵暗号等のアルゴリズムで身分証明情報を暗号化して、署名者端末200に送信するとよい。この場合、ユーザ端末100は身分証明情報を暗号化するための暗号化鍵を予め保持し、署名者端末200は当該暗号化鍵に対応する復号化鍵を予め保持している。
【0039】
また、ユーザ端末100は、身分証明情報の取得及び送信に代えて又は加えて、署名者端末200との間で所定のアルゴリズムによる認証(例えば、パスワード認証、生体認証等)を実行することで、投票者が正当な投票権を有することを証明してもよい。
【0040】
まず、署名者端末200は、検証鍵生成処理を実行する(S210)。検証鍵生成処理において、署名者端末200は、検証鍵VKを生成し、生成した検証鍵VKと、検証鍵VKの生成に用いた有限体Fの乗法群の生成元g及びハッシュ関数h(詳細は後述する)と、をユーザ端末100に送信する。検証鍵生成処理の詳細については図4を用いて後述する。
【0041】
ユーザ端末100はブラインド処理を実行する(S110)。ブラインド処理において、ユーザ端末100は、投票内容を示すメッセージmと、乱数と、に基づいて、当該投票内容を秘匿したブラインドメッセージmを生成し、生成したブラインドメッセージmを署名者端末200に送信する。ブラインド処理の詳細については図5を用いて後述する。
【0042】
署名者端末200は、ブラインド情報生成処理を実行する(S220)。ブラインド情報生成処理において、署名者端末200は、署名鍵と乱数とに基づいて、ブラインド情報(m sk’,vk’,a,b)を生成し、生成したブラインド情報をユーザ端末100に送信する。ブラインド情報生成処理の詳細については図6を用いて後述する。
【0043】
ユーザ端末100はハッシュ生成処理を実行する(S120)。ハッシュ生成処理において、ユーザ端末100は、ブラインド情報と乱数とに基づくハッシュcを生成し、生成したハッシュcを署名者端末200に送信する。ハッシュ生成処理の詳細については図7を用いて後述する。
【0044】
署名者端末200は、電子署名生成処理を実行する(S230)。電子署名生成処理において、署名者端末200は、投票立会人(署名書)の生体情報に基づいてブラインドメッセージmに対する電子署名σ(第1電子署名の一例)を生成し、生成した電子署名σをユーザ端末100に送信する。電子署名生成処理の詳細については図8を用いて後述する。
【0045】
ユーザ端末100は、ブラインド署名生成処理を実行する(S130)。ブラインド署名生成処理において、ユーザ端末100は、ブラインドメッセージmに対する電子署名σに基づいて(ブラインドメッセージmの生成に用いられた乱数を電子署名σから除去することで)、ブラインド化されていない投票内容を示すメッセージmに対するブラインド署名σを生成し、メッセージmと、ブラインド署名σと、を検証者端末300に送信する。ブラインド署名生成処理の詳細については図9を用いて後述する。
【0046】
検証者端末300は、ブラインド署名検証処理を実行する(S310)。ブラインド署名検証処理において、検証者端末300は、ブラインド署名σ(第2電子署名の一例)が投票立会人の生体情報(に基づく電子署名σ)から生成されたことを検証する後述の署名検証処理と、電子署名σはブラインドメッセージmに対して生成されたこと(即ち元のメッセージmが用いられずに生成されたこと)を検証する後述のゼロ知識証明検証処理と、を実行する。ブラインド署名検証処理の詳細については図10を用いて後述する。
【0047】
検証者端末300は、ブラインド署名検証処理に成功した場合にはメッセージmが示す投票内容が有効であると判定して、当該投票内容を採用して投票結果に反映し、ブラインド署名検証処理に失敗した場合にはメッセージmが示す投票内容が無効であると判定して、当該投票内容を破棄する。
【0048】
上記したように、図3に示す電子投票処理において、署名者端末200は投票者の身分証明情報を取得するものの元のメッセージmを取得することなく、ブラインドメッセージmに対する生体署名を生成する。
【0049】
これにより、投票者が正当な投票権を有することを投票立会人が確認でき、かつ投票内容を投票立会人に知られることなく、投票者は、ブラインドメッセージmに対する投票立会人の生体情報に基づく生体署名を得られる。
【0050】
また、上記したように図3に示す電子投票処理において、検証者端末300は、投票者の身分証明情報を取得することなく、ブラインド署名の検証を行う。
【0051】
これにより、投票者の身分証明情報を開票者に知られることなく、投票内容に対して正当な投票立会人による生体署名が付与されたこと、及び当該正当な投票立会人が元の投票内容を知ることなく当該生体署名を付与したこと、を開票者は検証することができる。
【0052】
図4は、ステップS210における検証鍵生成処理の一例を示すフローチャートである。署名者端末200の検証鍵生成部201は、署名者本人の生体情報A、実数定数T、有限体Fの乗法群の生成元gを設定する(S211)。
【0053】
但し、生体情報Aは、例えば、n次元実ベクトル空間の元である。なお、例えば、生体情報Aは、署名者端末200の生体情報取得センサ100-7を介して取得される。また、例えば、次元n、実数定数T、有限体F、及び有限体Fの生成元gは予め定められている(即ちこれらを示す情報が、署名者端末200の補助記憶装置100-2及び/又はメモリ100-3に予め格納されている)。
【0054】
検証鍵生成部201は、署名者の鍵生成処理を実行する(S212)。具体的には、例えば、検証鍵生成部201は、有限体F内の乱数skを生成してvk:=gskを算出し、関数hを用いて、x:=h -1(sk)を算出し、公開テンプレートC:=x+TAを算出し、検証鍵VK:=(vk,C)を生成する。但し、関数hは有限体F上のn次元ベクトル空間から有限体F(又はn次元実ベクトル空間から有限体F)へのハッシュ関数であり予め定められている。
【0055】
検証鍵生成部201は、検証鍵VKと、有限体Fの生成元gと、関数hと、をユーザ端末100に送信して(S213)、検証鍵生成処理を終了する。
【0056】
なお、ユーザ端末100は、後述するステップS121の処理において有限体Fの生成元gを用いるため、検証鍵生成部201は、有限体Fの生成元gをステップS121の処理が開始するまでにユーザ端末100に送信すればよく、必ずしもステップS213において送信しなくてもよい。
【0057】
また、ユーザ端末100は、後述するステップS132の処理において関数hを用いるため、検証鍵生成部201は、関数hをステップS132の処理が開始するまでにユーザ端末100に送信すればよく、必ずしもステップS213において送信しなくてもよい。
【0058】
なお、検証鍵生成部201は、異なるユーザ端末100に対して同じ検証鍵VKを配布してもよいし、ユーザ端末100ごとに異なる検証鍵を配布してもよい(即ちユーザ端末100ごとにステップS210の検証鍵生成処理を実行してもよい)。
【0059】
図5は、ステップS110におけるブラインド処理の一例を示すフローチャートである。ユーザ端末100のブラインド処理部101は、ステップS100で取得した投票内容を示すメッセージmを読み込む(S111)。なお、メッセージmは有限体Fの元である。
【0060】
ブラインド処理部101は、有限体F内の乱数tを生成し、m:=mを算出する(S112)。なお、有限体Fは予め定められている。ブラインド処理部101は、ブラインドメッセージmを署名者端末200に送信して(S113)、ブラインド処理を終了する。
【0061】
図6は、ステップS220におけるブラインド情報生成処理の一例を示すフローチャートである。署名者端末200のブラインド情報生成部202は、署名鍵生成処理を実行する(S221)。
【0062】
具体的には、例えば、ブラインド情報生成部202は、署名者端末200の生体情報取得センサ100-7を介して署名生成時の署名者の生体情報A’を取得し、ステップS113で送信されたブラインドメッセージmを読み込む。
【0063】
なお、本実施例のブラインド署名が適切に付与されるためには、生体情報A’と生体情報Aと、が同じ署名者から取得された同種の生体情報(例えば、同じ部位から取得された同種の特徴量)である必要がある。
【0064】
ステップS221において、さらに、ブラインド情報生成部202は、例えば、有限体F内の乱数sk’を生成し、署名生成時の署名鍵vk’:=gsk’と、x’:=h -1(sk’)と、署名生成時のテンプレートC’:=x’+TA’と、を算出する。
【0065】
ブラインド情報生成部202は、乱数生成処理を実行する(S222)。具体的には、例えば、ブラインド情報生成部202は、有限体F内の乱数sを生成し、(a,b):=(g,m )を算出し、ブラインド情報(m sk’,vk’a,b)を生成する(S222)。
【0066】
ブラインド情報生成部202は、ブラインド情報(m sk’,vk’a,b)をユーザ端末100に送信して(S223)、ブラインド情報生成処理を終了する。
【0067】
図7は、ステップS120におけるハッシュ生成処理の一例を示すフローチャートである。ユーザ端末100のハッシュ生成部102は、ハッシュ生成処理を実行する(S121)。
【0068】
具体的には、例えば、ハッシュ生成部102は、有限体F内の乱数d,u,vを生成し、署名者端末200がステップS220の署名鍵生成処理で生成した(a,b)と(m sk’,vk’)を用いて、a:=(a・g,b:=(b 1/t・m,vk:=vk’・g,z:=(m sk’1/t,z:=zgを算出し、さらにc:=Hash(m,a,b,z)を算出する。
【0069】
なお、Hashは、有限体Fの4つの元を要素として有するベクトルが入力されると、有限体Fの元を出力するハッシュ関数であり、予め定められている。ハッシュ生成部102は、ハッシュc:=c/uを署名者端末200に送信して(S122)、ハッシュ生成処理を終了する。
【0070】
図8は、ステップS230における電子署名生成処理の一例を示すフローチャートである。署名者端末200の電子署名生成部203は、ステップS220のブラインド情報生成処理で得られた、sk’,vk’,C’,乱数sを読み込む(S231)。
【0071】
電子署名生成部203は、r:=s+c・sk’を算出し、σ=(vk’,c,r,C’)を生成する(S232)。電子署名生成部203は、ブラインドメッセージmに対する電子署名σをユーザ端末100に送信して(S233)、電子署名生成処理を終了する。上記した処理により、署名者端末200は、メッセージmを得ることなく、ブラインドメッセージmに対する、署名者の生体情報に基づく電子署名σを生成することができる。
【0072】
図9は、ステップS130におけるブラインド署名生成処理の一例を示すフローチャートである。ユーザ端末100のブラインド署名生成部103は、n次元実ベクトル空間内のランダムベクトルBを生成し、電子署名σを参照してC:=C’+Bと、r=(r+v)uと、を算出し、さらにr:=r+cdを算出する(S131)。
【0073】
ブラインド署名生成部103は、Δsk:=h(C-C)を算出し、y:=vk・gΔsk/vkを算出し、さらにゼロ知識証明π:=(y,Δsk)を算出する(S132)。ブラインド署名生成部103は、メッセージmへの署名としてσ:=(VK,z,a,b,r,C,vk,π)を生成する(S133)。ブラインド署名生成部103は、メッセージmと、ブラインド署名σ:=(VK,z,a,b,r,C,vk,π)と、を検証者端末300に送信して(S134)、ブラインド署名生成処理を終了する。
【0074】
上記した処理により、ユーザ端末100は、署名者端末200が生成したメッセージmに対する電子署名σから、ブラインドメッセージmを生成するために用いられた乱数tに関する情報が除去されたブラインド署名σ(つまりメッセージmに対する署名)であって、署名者の生体情報に基づくσを生成することができる。
【0075】
図10は、ステップS310におけるブラインド署名検証処理の一例を示すフローチャートである。検証者端末300のブラインド署名検証部301は、署名検証処理を実行して署名検証結果を取得する(S311)。具体的には、例えば、ブラインド署名検証部301は、ブラインド署名σに含まれるVK,z,a,bを用いて所定のアルゴリズムによる署名検証処理(例えば、Schnorr署名検証処理)を実行する。
【0076】
ブラインド署名検証部301は、ステップS311における署名検証結果が成功であるか失敗であるか判定する(S312)。ブラインド署名検証部301は、署名検証結果が失敗であると判定した場合(S312:失敗)、[false]を出力して(S316)、ブラインド署名検証処理を終了する。
【0077】
ブラインド署名検証部301は、署名検証結果が成功であると判定した場合(S312:成功)、ゼロ知識証明検証処理を実行してゼロ知識証明検証結果を取得する(S313)。ステップS313におけるゼロ知識証明処理の詳細は図11を用いて後述する。
【0078】
ブラインド署名検証部301は、ステップS313におけるゼロ知識証明検証結果が成功であるか失敗であるか判定する(S314)。ブラインド署名検証部301は、ゼロ知識証明検証結果が成功であると判定した場合(S314:成功)、[True]を出力して(S315)、ブラインド署名検証処理を終了する。
【0079】
ブラインド署名検証部301は、ゼロ知識証明検証結果が失敗であると判定した場合(S314:失敗)、[False]を出力して(S316)、ブラインド署名検証処理を終了する。
【0080】
なお、ブラインド署名検証部301は、[True]を出力した場合(即ちステップS311の署名検証処理と、ステップS313のゼロ知識証明検証処理と、の双方が成功であった場合)には、メッセージmが示す投票内容が有効であると判定して、当該投票内容を採用して投票結果に反映する。
【0081】
また、ブラインド署名検証部301は、[False]を出力した場合ブラインド署名検証処理に失敗した場合(即ちステップS311の署名検証処理と、ステップS313のゼロ知識証明検証処理と、の少なくとも一方が失敗であった場合)には、メッセージmが示す投票内容が無効であると判定して、当該投票内容を破棄する。
【0082】
図11は、ステップS313におけるゼロ知識証明検証処理の一例を示すフローチャートである。検証者端末300のブラインド署名検証部301は、ブラインド署名σに含まれるπ=(y,Δsk)、vk、及びvkを用いて(vkはσ内のVKに含まれている)、I=vk・gΔsk/vkを算出する(S3131)。但し、検証者端末300の補助記憶装置100-2及び/又はメモリ100-3に、有限体Fの乗法群の生成元gの値が予め格納されているものとする。
【0083】
ブラインド署名検証部301は、I=yが成立するかを判定する(S3132)。ブラインド署名検証部301は、I=yが成立すると判定した場合(S3132:YES)、ゼロ知識証明検証結果として「成功」を出力して(S3133)、ゼロ知識証明検証処理を終了する。
【0084】
ブラインド署名検証部301は、I=yが成立しないと判定した場合(S3132:NO)、ゼロ知識証明検証結果として「失敗」を出力して(S3134)、ゼロ知識証明検証処理を終了する。
【0085】
以上、本実施形態の署名生成/検証システムでは、署名者端末200が元のメッセージを取得することなくブラインドメッセージに対する(署名者の生体情報に基づく)生体署名を生成し、ユーザ端末100が当該電子署名から、元のメッセージに対する(署名者の生体情報に基づく)生体署名を生成することができる。
【0086】
なお、本実施形態では、生体情報を用いたブラインド署名が電子投票処理に適用されるユースケースについて説明したが、従来のブラインド署名が適用される任意のユースケースに対して、本実施形態における生体情報を用いたブラインド署名を適用することができる。
【0087】
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることも可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
【0088】
また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、SSD(Solid State Drive)等の記録装置、又は、ICカード、SDカード、DVD等の記録媒体に置くことができる。
【0089】
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。
【符号の説明】
【0090】
100 ユーザ端末、100-1 CPU、100-2 補助記憶装置、100-3 メモリ、100-5 入出力インターフェース、100-6 通信装置、100-7 生体情報取得センサ、101 ブラインド処理部、102 ハッシュ生成部、103 ブラインド署名生成部、200 署名者端末、201 検証鍵生成部、202 ブラインド情報生成部、203 電子署名生成部、300 検証者端末検、301 ブラインド署名検証部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11