(57)【特許請求の範囲】
【請求項１】
登録ユーザの生体情報の登録用特徴量に基づいて生体証明書を作成する登録端末と、署名生成ユーザの生体情報の署名用特徴量に基づいて所定のメッセージに対し署名を生成する署名生成端末と、前記生体証明書に基づいて前記署名を検証する署名検証装置とを含む生体署名システムであって、
前記登録端末は、
ユーザの生体情報を取得するセンサと、
前記生体情報から前記登録用特徴量を抽出する特徴量抽出部と、
所定の電子署名アルゴリズムに基づいて秘密鍵と公開鍵のペアを生成し、前記秘密鍵と前記登録用特徴量とから登録用コミットメント情報を作成する生体公開鍵作成部と、
前記登録用コミットメント情報および前記公開鍵を含む前記生体証明書を作成する生体証明書作成部を有し、
前記署名生成端末は、
前記メッセージを入力するメッセージ入力部と、
ユーザの生体情報を取得するセンサと、
前記生体情報から前記署名用特徴量を抽出する特徴量抽出部と、
所定の電子署名アルゴリズムに基づいて一時秘密鍵および一時公開鍵のペアを生成し、
前記一時秘密鍵を用いて前記メッセージに対して前記所定の電子署名アルゴリズムに基づく電子署名を生成し、前記一時秘密鍵および前記署名用特徴量とから署名用コミットメント情報を作成し、前記一時公開鍵と前記電子署名と前記署名用コミットメントとを含む生体署名を生成する、生体署名生成部を有し、
前記署名検証装置は、
前記メッセージおよび前記生体署名を入力する入力部と、
前記生体署名に含まれる前記電子署名が、前記メッセージに対する正しい署名であるかどうかを、前記生体署名に含まれる前記一時公開鍵と、前記所定の電子署名アルゴリズムを用いて検証し、前記登録用コミットメント情報と前記署名用コミットメント情報の組の正当性を、前記公開鍵と前記一時公開鍵を用いて検証する、生体署名検証部を有し、
前記検証のそれぞれが成功した場合に最終判定結果を成功とする、検証結果出力部を有する
生体署名システム。
【請求項２】
前記生体証明書作成部は、
前記登録端末が保有する所定の秘密鍵と、所定の第二の電子署名アルゴリズムを用いて、前記登録用コミットメント情報と前記公開鍵と登録ユーザのＩＤ情報とを含む組に対して電子署名を生成し、前記登録用コミットメント情報と前記公開鍵と登録ユーザのＩＤ情報と前記電子署名の組を含めて生体証明書を作成し、
前記署名検証装置は、
前記生体証明書の正当性を、前記生体証明書に含まれる前記電子署名と、前記登録端末の公開鍵と、前記第二の電子署名アルゴリズムを用いて検証する、生体証明書検証部を有する
ことを特徴とする、請求項１に記載の生体署名システム。
【請求項３】
前記生体署名システムは、
前記生体証明書を保持し公開するリポジトリサーバを含み、
前記登録端末は、前記生体証明書を作成した後に前記生体証明書を前記リポジトリサーバへ登録する手段を有し、
前記署名検証装置は、前記リポジトリサーバから前記生体証明書を取得する手段を有する
ことを特徴とする、請求項１または２のいずれかに記載の生体署名システム。
【請求項４】
前記登録用特徴量および前記署名用特徴量はベクトルであり、
前記生体公開鍵作成部は、前記秘密鍵に対応する秘密鍵ベクトルを前記登録用特徴量ベクトルに加算または減算することで前記登録用コミットメント情報を作成し、
前記署名生成部は、前記一時秘密鍵に対応する一時秘密鍵ベクトルを前記署名用特徴量ベクトルに加算または減算することで前記署名用コミットメント情報を作成し、
前記署名検証部は、前記登録用コミットメント情報と前記署名用コミットメント情報に対して所定の第一の演算を施すことで差分秘密鍵を作成するとともに、前記公開鍵と前記一時公開鍵に対して所定の第二の演算を施すことで、差分公開鍵を生成し、前記差分秘密鍵と前記公開鍵の対応を検証する
ことを特徴とする、請求項１乃至３のいずれかに記載の生体署名システム。
【請求項５】
前記秘密鍵に対応する秘密鍵ベクトルおよび前記一時秘密鍵に対応する一時秘密鍵ベクトルは、それぞれの成分が所定の定数の整数倍であり、
前記第一の演算は、二つのベクトル同士の差を前記所定の定数で割り、各要素を整数に丸める計算を含む
ことを特徴とする請求項４に記載の生体署名システム。
【請求項６】
前記所定の電子署名アルゴリズムはＳｃｈｎｏｒｒ署名とし、
前記秘密鍵と前記秘密鍵ベクトルとの対応および前記一時秘密鍵と前記一時秘密鍵ベクトルとの対応は、ベクトルを所定の整数Ｌに対してＬ進数表示した際の各桁の整数と見なすことで定義し、
前記第二の演算は、前記公開鍵と前記一時公開鍵を所定の整数を法として除算する計算を含むことを特徴とする請求項５に記載の生体署名システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、いわゆる電子署名に関わるものである。その中でも特に、個人の生体情報を秘密鍵として電子署名を生成・検証するシステムに関する。
【背景技術】
【０００２】
電子署名は、電子文書に対する偽造・改ざんの防止や、個人認証を目的として、広く利用されている。従来、電子署名はあらかじめ秘密鍵と公開鍵のペアを生成しておき、これを保存しておく。特に秘密鍵は署名者のみが利用でき、他者に対しては秘密となるよう、一般的にはICカード等に格納して署名者自身が管理する。署名者は任意の電子文書に対して、秘密鍵を利用して署名を生成することができ、検証者は公開鍵を用いて署名と電子文書の組が正しい（偽造・改ざんされていない）事を検証することができる。このような電子署名のアルゴリズムとしては、例えばRSA, DSA, Schnorr署名などがあり、これを利用してPKI（Public Key Infrastructure）が構築される。
【０００３】
一方で生体情報に基づいて個人認証を行う生体認証は、カードやパスワードに基づく認証と比較して、なくさない、忘れない、盗まれないといった利点があり、利便性、なりすまし耐性の高い個人認証を実現することができる。一般的な生体認証システムは、あらかじめユーザの生体情報から特徴量（テンプレート）を抽出し、保存しておく。認証時には再びユーザの生体情報から特徴量を抽出し、テンプレートと比較して一致（十分類似している）と判断されれば、認証成功とする。しかし指紋や静脈などの生体情報は、取り替えることができない。このためいったんテンプレートが漏洩すると、生涯安全性を回復することができない。
【０００４】
この課題に対し、生体情報を保護しつつ、生体情報から秘密鍵を生成する技術（生体鍵生成技術）が、例えば非特許文献１などで開示されている。これらの技術は、登録時に生体情報Xに対して秘密鍵Kを不可分な形で埋め込み、補助情報H=F(X,K)を作成する。鍵復元時には、再び生体情報X'を取得し、補助情報Hを用いて秘密鍵K'=G(X',H)を復元する。X'がXに十分近いならば、K'=Kとなるよう、誤り訂正符号技術などを利用して、埋め込み関数F、復元関数Gを構成する。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】"Fuzzy Extractors: How to Generate Strong Keys from Biometrics and Other Noisy Data", Y.Dodis et.al., EUROCRYPTO2004 (2004)
【発明の概要】
【発明が解決しようとする課題】
【０００６】
前述の通り、電子署名を生成する署名者は、秘密鍵を安全に保持するため、ICカードなどの持物を所有し、また秘密鍵を他人に使われないよう、署名時に秘密鍵を活性化するためのパスワードや暗証番号を入力する必要がある。このため利便性が低い、導入・運用コストが高い、といった問題がある。
そこでユーザ利便性の観点からは、ICカードのような持物や、パスワード・暗証番号といった秘密情報の記憶を必要とせず、指紋や静脈などの生体情報の提示のみによって署名を生成・検証することのできるシステムの実現が望まれる。これに対し、例えば一般的な生体認証システムと電子署名システムを単純に組み合わせるシステムが考えられる。具体的にはあらかじめユーザの生体情報の特徴量（テンプレート）と秘密鍵をシステムに登録しておき、署名時には署名者の生体情報をテンプレートと照合して、一致した場合に秘密鍵を用いて所定の電子文書に対する署名を作成する。これらの情報は、システム内、あるいは何らかの装置内に保管する必要がある。しかしながら、いったんテンプレートおよび／または秘密鍵が漏洩すると、生体情報が偽造されたり、署名が偽造されるといったリスクが発生する。特に指紋や静脈といった生体情報は取り替えられないため、いったんテンプレートが漏洩して生体偽造の危険性が生じると、生涯安全性を回復することができない。
【０００７】
そこで、生体鍵生成技術を用いて電子署名システムを構築する方法が考えられる。具体的には、登録時に電子署名用の秘密鍵、公開鍵のペアを生成し、秘密鍵をユーザの生体情報に埋め込んで補助情報を作成する。署名生成時には、ユーザの生体情報と補助情報を用いて秘密鍵を復元し、これを用いて電子署名を生成する。検証者は公開鍵を用いて電子署名を検証する。しかしこの方法では、署名時に必ず補助情報が必要となる。このため補助情報の保管場所と、署名作成端末が補助情報へアクセスするための手段が必要となる。補助情報をICカード等に保管する場合、署名のためにユーザが持物を所持する必要が生じ、利便性が低下する。一方でローカル端末に保管すると、当該端末からでしか署名を生成できず、用途が限定されてしまう。またサーバに保管する場合、ネットワークに接続された端末からでしか署名を作成できず、また署名のたびにサーバとの通信が発生するため、署名作成に時間がかかる問題がある。
【０００８】
本発明の目的は、従来の電子署名スキームにおける秘密鍵データや、従来の生体認証スキームにおけるテンプレートといった、システム（あるいはICカード等の装置）上に保存すべき秘密データの存在を必要とせず、また生体情報以外のデータ（生体鍵生成スキームおける補助情報など）を必要とせずに、生体情報そのものを秘密鍵として、任意のメッセージ（電子文書）に対して署名を生成することのできるシステム（以下「生体署名システム」と呼ぶ）を実現することにある。
【課題を解決するための手段】
【０００９】
本発明は以上の課題を解決するために、本発明では、生体情報を秘密鍵として用いるものである。このために、本発明では、生体情報の特徴量に対して、秘密鍵を埋め込み、また、この秘密鍵に対応する公開鍵と組として証明書を発行する。また、これらを利用する際には、秘密鍵が埋め込まれた特徴量すなわち、署名用特徴量に対して、新たに一時秘密鍵と一時公開鍵のペアを生成し、一時秘密鍵を用いてメッセージに対する署名を作成する。また、署名用特徴量に一時秘密鍵を埋め込んでコミットメントを作成し、一時公開鍵、署名およびコミットメントからなる組を生体署名とし、生体署名検証時には前記署名を一時公開鍵で検証する。また、この際、生体署名、コミットメントおよび一時公開鍵から差分秘密鍵と差分公開鍵を生成して対応を検証する。
【００１０】
この処理を実現するための以下の態様も本発明に含まれる。
登録ユーザの生体情報の登録用特徴量に基づいて生体証明書を作成する登録端末と、署名生成ユーザの生体情報の署名用特徴量に基づいて所定のメッセージに対し署名を生成する署名生成端末と、前記生体証明書に基づいて前記署名を検証する署名検証装置とを含む生体署名システムであって、
前記登録端末は、
ユーザの生体情報を取得するセンサと、
前記生体情報から前記登録用特徴量を抽出する特徴量抽出部と、
所定の電子署名アルゴリズムに基づいて秘密鍵と公開鍵のペアを生成し、前記秘密鍵と前記登録用特徴量とから登録用コミットメント情報を作成する生体公開鍵作成部と、
前記登録用コミットメント情報および前記公開鍵を含む前記生体証明書を作成する、生体証明書作成部を有し、
前記署名生成端末は、
前記メッセージを入力するメッセージ入力部と、
ユーザの生体情報を取得するセンサと、
前記生体情報から前記署名用特徴量を抽出する特徴量抽出部と、
所定の電子署名アルゴリズムに基づいて一時秘密鍵および一時公開鍵のペアを生成し、前記一時秘密鍵を用いて前記メッセージに対して前記所定の電子署名アルゴリズムに基づく電子署名を生成し、前記一時秘密鍵および前記署名用特徴量とから署名用コミットメント情報を作成し、前記一時公開鍵と前記電子署名と前記署名用コミットメントとを含む生体署名を生成する、生体署名生成部を有し、
前記署名検証端末は、
前記メッセージおよび前記生体署名を入力する入力部と、
前記生体署名に含まれる前記電子署名が、前記メッセージに対する正しい署名であるかどうかを、前記生体署名に含まれる前記一時公開鍵と、前記所定の電子署名アルゴリズムを用いて検証するとともに、前記登録用コミットメント情報と前記署名用コミットメント情報の組の正当性を、前記公開鍵と前記一時公開鍵を用いて検証する、生体署名検証部を有し、
前記検証が成功した場合に最終判定結果を成功とする、検証結果出力部を有する生体署名システムである。なお、最終判定結果については、前記検証のそれぞれが成功した場合「成功」とする態様も本発明に含まれる。
【００１１】
なお、本発明には、上記の生体署名システムによる生体署名方法、生体署名システムを構成する各装置およびこれらのサブコンビネーションも含まれる。
【発明の効果】
【００１２】
本発明により、ユーザは持物や秘密情報の記憶の必要性をなくすとができ（ないし低減でき）、任意の端末を用いて、自らの生体情報のみを用いて、任意の電子文書に対する電子署名を作成することができ、利便性の高い電子署名システム（生体署名システム）を実現できる。また秘密鍵やテンプレートなど秘密情報を保存する必要がなく、安全で運用コストの低い電子署名システムを構築できる。更に端末にはユーザ依存の情報などをあらかじめ登録しておく必要性をなくす（ないし低減でき）、また署名生成時にネットワークに接続されている必要もないため、アプリケーションを限定することなく、幅広い用途に利用することが可能となる。
【図面の簡単な説明】
【００１３】
【図１】本発明の一実施例の機能構成を示すブロック図である。
【図２】本発明の一実施例における登録処理を示す流れ図である。
【図３】本発明の一実施例における署名生成処理を示す流れ図である。
【図４】本発明の一実施例における署名検証処理を示す流れ図である。
【図５】本発明の一実施例における認証装置のハードウェア構成を示すブロック図である。
【発明を実施するための形態】
【実施例１】
【００１４】
以下、図面を参照して、本発明の第一の実施例について説明する。
本実施例では、登録時にユーザの生体情報に基づいて署名を検証するためのデータ（以下「生体証明書」）を作成して公開ＤＢ（リポジトリ）に登録し、署名生成時に署名生成端末が任意のメッセージに対してユーザの生体情報のみに基づく署名（以下「生体署名」）を生成し、署名検証装置が生体証明書を用いて生体署名を検証する、生体署名システムを例に説明する。本実施例のシステムは、例えば電子政府における電子申請や、ネットワークを介したユーザ認証などに利用することができる。
【００１５】
図１に、本実施例における生体署名システムのシステム構成を示す。
本システムは、ユーザの生体証明書の発行を行う登録端末１００と、生体証明書を管理・公開するリポジトリサーバ１２０と、ユーザの生体情報を用いてメッセージ（電子文書）に対する生体署名を生成する署名生成端末１１０と、生体署名の検証を行う署名検証装置１３０と、ネットワーク１４０とから構成される。
【００１６】
登録端末１００は、ユーザから指紋や静脈などの登録用生体情報を取得するセンサ１０１と、前記登録用生体情報から登録用特徴量を抽出する特徴量抽出部１０２と、ユーザＩＤの入力を受け付けるＩＤ入力部１０３と、前記登録用特徴量から生体公開鍵を作成する生体公開鍵作成部１０４と、前記ユーザＩＤおよび前記生体公開鍵に対して登録端末自身の電子署名を付与して生体証明書を作成する生体証明書作成部１０５から構成される。なお、生体公開鍵生成部１０４や生体証明書作成部１０５は、他の装置に実装してもよい。
【００１７】
リポジトリサーバ１２０は、前記生体証明書を登録する公開ＤＢ１２１と、ＤＢ制御部１２２と、通信部１２３とから成る。
署名生成端末１１０は、署名生成の対象であるメッセージを入力するメッセージ入力部１１１と、ユーザのＩＤを入力するＩＤ入力部１１６と、ユーザから署名用生体情報を取得するセンサ１１２と、前記署名用生体情報から署名用特徴量を抽出する特徴量抽出部１１３と、前記署名用特徴量を用いて前記メッセージに対する生体署名を生成する生体署名生成部１１４と、前記生体署名を出力する生体署名出力部１１５とから構成される。なお、ＩＤ入力部１１６、センサ１１２を個別の装置で実現してもよいし、これら以外の各部を別の装置に実装してもよい。  
【００１８】
署名検証装置１３０は、前記メッセージと前記生体署名の組を入力する生体署名付メッセージ入力部１３１と、リポジトリサーバ１２０からユーザＩＤに対応する前記生体証明書を取得する生体証明書取得部１３２と、前記生体証明書の完全性を検証する生体証明書検証部１３３と、前記生体証明書を用いて前記生体署名を検証する生体署名検証部１３４と、検証結果を出力する検証結果出力部１３５とから構成される。
【００１９】
登録端末１１０、リポジトリサーバ１２０、署名検証装置１３０はネットワーク１４０を介して接続されるが、署名生成端末１１０は必ずしもネットワークに接続される必要はない。
【００２０】
なお署名検証装置１３０がＤＢを持ち、前記生体証明書を格納してもよい。この場合、署名検証装置１３０はリポジトリサーバから前記生体証明書を取得する必要がなく、署名検証時に必ずしもネットワークに接続されている必要はない。
【００２１】
図５に、本実施例における登録端末１００、署名生成端末１１０、リポジトリサーバ１２０、署名検証装置１３０のハードウェア構成を示す。これらは図のようにＣＰＵ５００、ＲＡＭ５０１、ＨＤＤ５０２、入力装置５０３、出力装置５０４、通信装置５０５とから構成することができる。
【００２２】
次に本実施例における登録処理フローを図２を用いて説明する。
登録端末１００が、センサ部１０１を通して登録ユーザの登録用生体情報（指紋画像や静脈画像など）を取得する（Ｓ２００）。
特徴量抽出部１０２が、前記登録用生体情報から登録用特徴量Ｘを抽出する（Ｓ２０１）。
【００２３】
ＩＤ入力部１０３が、登録ユーザのＩＤの入力を受け付ける（Ｓ２０２）。これは、登録ユーザが入力してもよいし、入力時刻などに基づいて登録端末１００が生成してもよい。
【００２４】
生体公開鍵作成部１０４が、所定の電子署名アルゴリズム（例えばＳｃｈｎｏｒｒ署名）における秘密鍵ＫＳｅ，公開鍵ＫＰｅのペアをランダムに生成する（Ｓ２０３）。
生体公開鍵作成部１０４が、所定の埋め込み関数Ｅｍｂを用いて、前記登録用特徴量Ｘに対して秘密鍵ＫＳｅを埋め込み、登録用コミットメントＣｅ＝Ｅｍｂ（Ｘ，ＫＳｅ）を作成する（Ｓ２０４）。このとき前記登録用コミットメントＣｅからは、前記登録用特徴量Ｘおよび／または前記秘密鍵ＫＳｅを推定することが十分に困難であるように埋め込む。埋め込み関数Ｅｍｂの具体例は後述する。（ＫＰｅ，Ｃｅ）の組を生体公開鍵と呼ぶ。
【００２５】
生体証明書作成部１０５は、前記ユーザＩＤと前記生体公開鍵（ＫＰｅ，Ｃｅ）との組に対して、登録端末１００が保持する秘密鍵を用いて電子署名Ｓを生成し、これらのデータの組Ｔ＝（ＩＤ，ＫＰｅ，Ｃｅ，Ｓ）を、生体証明書として発行するとともに、リポジトリサーバ１２０へ送信する（Ｓ２０５）。ここで電子署名Ｓを生成する第二の電子署名アルゴリズムは、前記所定の電子署名アルゴリズムとは異なっていてもよく、ＲＳＡやＤＳＡ、Ｓｃｈｎｏｒｒ署名など一般的な電子署名を用いてよい。
リポジトリサーバ１２０は、前記生体証明書Ｔを公開ＤＢ１２１に登録する（Ｓ２０６）。
【００２６】
前述の通り、生体公開鍵から特徴量Ｘや秘密鍵ＫＳｅは推定が困難であるため、生体証明書Ｔを公開しても生体情報や署名が偽造されるリスクは十分に低く、安全性を確保することができる。また生体証明書Ｔを公開することで、任意の署名検証装置が任意の生体署名を検証することが可能となる。本実施形態によれば秘密鍵やテンプレートといった秘密情報はどこにも保存されないため、安全性が高く、また運用管理コストの低い電子署名システムが構築可能となる。
【００２７】
次に本実施例における署名生成フローを図３を用いて説明する。
署名生成端末１１０が、メッセージ入力部１１１を介して任意のメッセージＭの入力を受け付ける（Ｓ３００）。
【００２８】
ＩＤ入力部１１６が、ユーザＩＤの入力を受け付ける（Ｓ３０１）。なお本ステップを省略し、以下のステップではユーザＩＤとしてＮＵＬＬなどの記号を用いてもよい。このようにすることで署名時にユーザはＩＤの入力が不要となり、更なる利便性の向上が見込まれる。
【００２９】
センサ部１１２が、ユーザの署名用生体情報を取得する（Ｓ３０２）。
特徴量抽出部１１３が、前記署名用生体情報から署名用特徴量Ｘ’を抽出する（Ｓ３０３）。
【００３０】
生体署名生成部１１４が、前記所定の電子署名アルゴリズムにおける秘密鍵，公開鍵のペアをランダムに生成する（Ｓ３０４）。以下それぞれの鍵を、一時秘密鍵ＫＳｓ、一時公開鍵ＫＰｓと呼ぶ。
生体署名生成部１１４が、前記埋め込み関数Ｅｍｂを用いて、署名用特徴量Ｘ’に対して一時秘密鍵ＫＳｓを埋め込み、署名用コミットメントＣｓ＝Ｅｍｂ（Ｘ’，ＫＳｓ）を作成する（Ｓ３０５）。
生体署名生成部１１４が、前記一時公開鍵ＫＰｓと、前記所定の電子署名アルゴリズムを用いて、前記メッセージＭに対する電子署名σ’を生成する（Ｓ３０６）。
【００３１】
また、生体署名生成部１１５が、前記ユーザＩＤと、前記一時公開鍵ＫＰｓ、前記署名用コミットメントＣｓ、前記電子署名σ’の組σ＝（ＩＤ，ＫＰｓ，Ｃｓ，σ’）を生体署名として出力する（Ｓ３０７）。
前述した埋め込み関数Ｅｍｂの性質により、署名用コミットメントＣｓから署名用特徴量Ｘ’や一時秘密鍵ＫＳｓを推定することは十分困難であるため、生体署名から生体情報や別の生体署名が偽造されるリスクは十分に低く、安全性を確保することができる。また生体署名を生成する際に、署名対象であるメッセージＭと、ユーザＩＤと、秘密鍵の役割を果たす生体情報以外に、ユーザに依存する情報（例えば補助情報）を全くとしない。従って署名生成端末には、何らかのユーザ依存情報を予め保存する必要がなく、またサーバ等に問い合わせてユーザ依存情報を取得する必要もない。このためユーザは任意の署名生成端末を利用して署名を生成することができるし、署名生成端末は必ずしもネットワークに接続される必要がなく、スタンドアロンでも利用することができる。
【００３２】
次に、本実施例における署名生成フローを図４を用いて説明する。
署名検証装置１３０は、前記メッセージＭおよび前記生体署名σ＝（ＩＤ，ＫＰｓ，Ｃｓ，σ’）の入力を受け付ける（Ｓ４００）。
【００３３】
生体署名取得部１３２は、前記生体署名σに含まれるＩＤを前記リポジトリサーバ１２０へ送信し、前記ＩＤに対応する前記生体証明書Ｔ＝（ＩＤ，ＫＰｅ，Ｃｅ，Ｓ）を取得する（Ｓ４０１）。
【００３４】
生体証明書検証部１３３は、前記生体証明書Ｔが改ざんされていないことを、前記生体証明書Ｔに含まれる前記電子署名Ｓと登録端末１００の公開鍵を用いて検証する。検証に失敗した場合、最終検証結果を「失敗」としてステップＳ４０６へジャンプする（Ｓ４０２）。この検証には、前記第二の電子署名アルゴリズムを用いる。
【００３５】
生体署名検証部１３４は、前記生体署名σに含まれる前記電子署名σ’を、前記生体署名σに含まれる前記一時公開鍵ＫＰｓを用いて検証する。検証に失敗した場合、最終検証結果を「失敗」としてステップＳ４０６へジャンプする（Ｓ４０２）。
【００３６】
生体署名検証部１３４は、前記生体証明書Ｔに含まれる前記登録用コミットメントＣｅと、前記生体署名σに含まれる前記署名用コミットメントＣｓとから、所定の関数Ｅｘｔを用いて、差分秘密鍵ＫＳｄ＝Ｅｘｔ（Ｃｓ，Ｃｅ）を計算する（ステップＳ４０３）。このとき、登録用特徴量Ｘと署名用特徴量Ｘ’が十分近ければ（類似していれば）、前記差分秘密鍵ＫＳｄが、前記秘密鍵ＫＳｅと前記一時秘密鍵ＫＳｓとの間の「差」に相当する所定の演算結果に等しくなる（ＫＳｄ＝ＫＳｅ−ＫＳｓ）よう、所定の関数Ｅｘｔを構成する。関数Ｅｘｔの具体例は後述する。
【００３７】
生体署名検証部１３４は、前記生体証明書Ｔに含まれる前記公開鍵ＫＰｅと、前記生体署名σに含まれる前記一時公開鍵ＫＰｓとから、所定の関数Ｄｉｆｆを用いて、差分公開鍵ＫＰｄ＝Ｄｉｆｆ（ＫＰｅ，ＫＰｓ）を計算する（ステップＳ４０４）。前記差分公開鍵ＫＰｄは、前記秘密鍵ＫＳｅと前記一時秘密鍵ＫＳｓとの間の「差」に相当する前記所定の演算結果である ＫＳｅ−ＫＳｓ を新たな秘密鍵とみなしたときに、対応する公開鍵となるよう、関数Ｄｉｆｆを構成する。関数Ｄｉｆｆの具体例は後述する。
【００３８】
生体署名検証部１３４は、前記差分秘密鍵ＫＳｄと前記差分公開鍵ＫＰｄが、前記所定の電子署名アルゴリズムにおいて対応する鍵ペアであることを検証する。検証に失敗した場合は最終検証結果を「失敗」、検証に成功した場合は最終検証結果を「成功」とする（Ｓ４０７）。
検証結果出力部１３５は、最終検証結果を出力する（Ｓ４０７）。
【００３９】
本実施例によれば、署名生成ユーザが登録ユーザと同一人物であるならば、前記登録用特徴量Ｘと前記署名用特徴量Ｘ’は十分近くなる（類似する）ことが見込まれる。このとき前記差分秘密鍵ＫＳｄは前記秘密鍵ＫＳｅと前記一時秘密鍵ＫＳｓとの「差」に一致し（ＫＳｄ＝ＫＳｅ−ＫＳｓ）、差分鍵ペア検証（Ｓ４０６）に成功する。
【００４０】
逆に署名生成ユーザと登録ユーザが異なる人物であるならば、前記登録用特徴量Ｘと前記署名用特徴量Ｘ’は近くない（類似しない）ことが見込まれる。このとき前記差分秘密鍵ＫＳｄは前記秘密鍵ＫＳｅと前記一時秘密鍵ＫＳｓとの「差」に一致せず（ＫＳｄ≠ＫＳｅ−ＫＳｓ）、差分鍵ペア検証（Ｓ４０６）に失敗する。
【００４１】
また本実施例によれば、署名検証装置は（ユーザが同一人物なら）差分秘密鍵ＫＳｄ＝ＫＳｅ−ＫＳｓを計算できるものの、ここから秘密鍵ＫＳｅおよび／または一時秘密鍵ＫＳｓを特定することはできず、従って署名を偽造したり、登録用特徴量Ｘおよび／または署名用特徴量Ｘ’を復元することはできない。
【００４２】
なお前記秘密鍵ＫＳｅおよび／または前記登録用特徴量Ｘを推定しようとする不正なユーザが、不正者自身の（あるいは適当な）生体特徴量を前記署名用特徴量Ｘ’とし、一時秘密鍵ＫＳｓを用いて生体署名を生成し、前記所定の関数Ｅｘｔを用いて差分秘密鍵計算ＫＳｄを作成し、前記差分秘密鍵ＫＳｄと前記一時秘密鍵ＫＳｓから前記秘密鍵ＫＳｅを推定し、生体署名を偽造しようとする攻撃を考える。仮にＸ’とＸが十分近ければ、ＫＳｄ＝ＫＳｅ−ＫＳｓとなるため、これを方程式とみなしてＫＳｅについて解くことにより、秘密鍵ＫＳｅを特定することができる。しかし本攻撃が成功するためには、攻撃者がＸに近いＸ’を知っていなくてはならず、これはそもそも生体情報が漏洩していることと同義である。つまり生体情報が漏洩しなければ、前述の攻撃方法によって前記秘密鍵ＫＳｓを推定することはできないと言える。
【００４３】
以上の特徴から、本実施例の生体署名システムは、署名ユーザが登録ユーザと同一人物であるときにのみ正しい（検証に成功する事のできる）生体署名を生成することができ、そうでない場合には生体署名が生成できないことが見込まれる。
【００４４】
以下では、前記所定の関数Ｅｍｂ，Ｅｘｔ，Ｄｉｆｆの具体的な構成例について説明する。
【００４５】
登録用特徴量および署名用特徴量は、ｎ次元の実数ベクトルとし、（数１）で表すことができる。
【００４６】
【数１】
0005707311.tif 000002
【００４７】
また、その間の距離はＬ１距離は、（数２）であらわすことができる。
【００４８】
【数２】
0005707311.tif 000003
【００４９】
距離が所定の閾値t以下（ｄ（Ｘ，Ｘ’）≦ｔ）ならば一致（同一生体）とみなす。また格子点集合Ｌを、(数３)と定義する。
【００５０】
【数３】
0005707311.tif 000004
【００５１】
ここでKはtや|xi|より十分大きい所定の整数とする。更に整数ベクトルＹ∈Ｌに対して一つの整数zを対応させる関数intを以下の（数４）ように定義する。
【００５２】
【数４】
0005707311.tif 000005
【００５３】
また上記の逆関数（整数zに対してベクトルYを対応させる関数）を、（数５）のとおり表記する。
【００５４】
【数５】
0005707311.tif 000006
【００５５】
前記所定の電子署名アルゴリズムとしては、Ｓｃｈｎｏｒｒ署名を用いる。Ｓｃｈｎｏｒｒ署名の秘密鍵ＫＳｅ、公開鍵ＫＰｅは以下のように生成される。まず秘密鍵ＫＳｅはランダムに生成された整数とし、公開鍵ＫＰｅは、(数６)で示される。
【００５６】
【数６】
0005707311.tif 000007
【００５７】
ここでpは十分大きな素数とし、gはpを法とする整数の剰余環Zpの乗法群の生成元とする。p,gは公開のパラメータとし、各ユーザに対して共通の値とする。
以上の準備のもとで、前記埋め込み関数Ｅｍｂを以下の（数７）ように定義する。
【００５８】
【数７】
0005707311.tif 000008
【００５９】
また前記所定の関数Ｅｘｔを以下（数８）のように定義する。
【００６０】
【数８】
0005707311.tif 000009
【数９】
0005707311.tif 000010
【数１０】
0005707311.tif 000011
【数１１】
0005707311.tif 000012
【００６１】
ここで[v]は、実数ベクトルvに対して、vの各成分（実数）を整数に丸めた（最も近い整数に写像した）整数ベクトルを表す。また は、１をｎ個並べたベクトルとする。このときCe,Csの作り方より、（数９）が成立し、従ってｄ（Ｘ，Ｘ’）≦ｔならば、（数１０）が成立する。ここで（数１１）のように定義した。
【００６２】
また、前記所定の関数Ｄｉｆｆは以下の（数１２）のように定義する。さらに、上記の定義より、差分鍵ペア検証（ステップＳ４０６）は、等式（数１３）が成立するか否かを確認すればよい。
【００６３】
【数１２】
0005707311.tif 000013
【００６４】
【数１３】
0005707311.tif 000014
【符号の説明】
【００６５】
１００  登録端末
１０１  センサ部
１０２  特徴量抽出部
１０３  ＩＤ入力部
１０４  生体公開鍵作成部
１０５  生体証明書作成部
１１０  署名生成端末
１１１  メッセージ入力部
１１２  センサ部
１１３  特徴抽出部
１１４  生体署名生成部
１１５  生体署名出力部
１１６  ＩＤ入力部
１２０  リポジトリサーバ
１２１  公開ＤＢ
１２２  ＤＢ制御部
１２３  通信部
１３０  署名検証装置
１３１  生体署名付メッセージ入力部
１３２  生体署名取得部
１３３  生体証明書検証部
１３４  生体署名検証部
１３５  検証結果出力部
１４０  ネットワーク
【図１】
0005707311.tif 000015
【図２】
0005707311.tif 000016
【図３】
0005707311.tif 000017
【図４】
0005707311.tif 000018
【図５】
0005707311.tif 000019