(57)【特許請求の範囲】
【請求項１】
生体情報から、所定の実数pと、所定の整数nと、に対し、n次元のLpノルム空間上で定義される特徴ベクトルを抽出するベクトル抽出部と、
前記実数pに対してq=p/(p-1) なる実数qと、前記整数nと、所定の整数mと、に対して、n次元のLqノルム空間上で定義され、qノルムが所定の定数cに一致するm個の基準ベクトルを生成しそれらを並べた基準行列を生成する基準ベクトル生成部と、
前記抽出された特徴ベクトルと前記基準行列との行列積を計算し、当該行列積計算の結果得られたベクトルをm次元のＬ∞ノルム空間上のベクトルと見做したものを変換ベクトルとして出力するベクトル変換部と、
を備えることを特徴とするベクトル変換システム。
【請求項２】
請求項１に記載のベクトル変換システムにおいて、
前記基準ベクトル生成部は、
前記実数pが１である場合は、m個のn次元ベクトルを各基準ベクトルの各要素が所定の定数cまたは-cのいずれかと一致するように生成しそれらを並べた基準行列を生成する、
ことを特徴とするベクトル変換システム。
【請求項３】
請求項１に記載のベクトル変換システムにおいて、
前記基準ベクトル生成部は、
前記実数pが２である場合は、ユークリッドノルム（L2ノルム）が所定の定数cに一致するm個のn次元基準ベクトルを生成しそれらを並べた基準行列を生成する、ことを特徴とするベクトル変換システム。
【請求項４】
請求項１に記載のベクトル変換システムにおいて、
前記基準ベクトル生成部は、前記基準ベクトルを一様ランダムに生成する、
ことを特徴とするベクトル変換システム。
【請求項５】
請求項１に記載のベクトル変換システムにおいて、
前記基準ベクトル生成部は、あらかじめ複数のn次元特徴ベクトルを用いて、当該複数のn次元特徴ベクトルが従う特徴ベクトル分布を統計的に学習する学習部を更に備え、前記特徴ベクトル分布に従ってランダムに前記基準ベクトルを生成する、
ことを特徴とするベクトル変換システム。
【請求項６】
請求項１に記載のベクトル変換システムにおいて、
前記所定の定数cは1である、
ことを特徴とするベクトル変換システム。
【請求項７】
請求項１に記載のベクトル変換システムにおいて、
前記ベクトル変換部は、行列積を計算した後に、m次元の乱数ベクトルを生成し、行列積計算の後に得られるm次元ベクトルに対して前記乱数ベクトルを加算し、当該ベクトル加算の結果として得られるm次元ベクトルを前記変換ベクトルとして出力する、
ことを特徴とするベクトル変換システム。
【請求項８】
請求項１に記載のベクトル変換システムにおいて、
前記基準ベクトル生成部は、
所定の第一のシードを入力とする擬似乱数生成器の出力に基づいて、前記基準ベクトルを生成する、
ことを特徴とするベクトル変換システム。
【請求項９】
請求項７に記載のベクトル変換システムにおいて、
前記ベクトル変換部は、所定の第二のシードを入力とする擬似乱数生成器の出力に基づいて、前記乱数ベクトルを生成する、
ことを特徴とするベクトル変換システム。
【請求項１０】
生体情報から、所定の実数pと、所定の整数nと、に対し、n次元のLpノルム空間上で定義される特徴ベクトルを抽出するベクトル抽出部と、
前記実数pに対してq=p/(p-1) なる実数qと、前記整数nと、所定の整数mと、に対して、n次元のLqノルム空間上で定義され、qノルムが所定の定数cに一致するm個の基準ベクトルを並べた基準行列と、前記抽出された特徴ベクトルと、の行列積を計算し、当該行列積計算の結果得られたベクトルをm次元のＬ∞ノルム空間上のベクトルと見做したものを変換ベクトルとして出力するベクトル変換部と、
を備えることを特徴とするベクトル変換システム。
【請求項１１】
ベクトル抽出部が、生体情報から、所定の実数pと、所定の整数nと、に対し、n次元のLpノルム空間上で定義される特徴ベクトルを抽出するステップと、
基準ベクトル生成部が、前記実数pに対してq=p/(p-1) なる実数qと、前記整数nと、所定の整数mと、に対して、n次元のLqノルム空間上で定義され、qノルムが所定の定数cに一致するm個の基準ベクトルを生成しそれらを並べた基準行列を生成するステップと、
ベクトル変換部が、前記抽出された特徴ベクトルと前記基準行列との行列積を計算し、当該行列積計算の結果得られたベクトルをm次元のＬ∞ノルム空間上のベクトルと見做したものを変換ベクトルとして出力するステップと、
を備えることを特徴とするベクトル変換方法。
【請求項１２】
請求項１１に記載のベクトル変換方法において、
前記基準ベクトル生成部は、
前記実数pが１である場合は、m個のn次元ベクトルを、各基準ベクトルの各要素が所定の定数cまたは-cのいずれかと一致するように生成しそれらを並べた基準行列を生成する、
ことを特徴とするベクトル変換方法。
【請求項１３】
請求項１１に記載のベクトル変換方法において、
前記基準ベクトル生成部は、
前記実数pが２である場合は、ユークリッドノルム（L2ノルム）が所定の定数cに一致するm個のn次元基準ベクトルを生成しそれらを並べた基準行列を生成する、ことを特徴とするベクトル変換方法。
【請求項１４】
請求項１１に記載のベクトル変換方法において、
前記基準ベクトル生成部は、前記基準ベクトルを一様ランダムに生成する、
ことを特徴とするベクトル変換方法。
【請求項１５】
請求項１１に記載のベクトル変換方法において、
学習部が、あらかじめ複数のn次元特徴ベクトルを用いて、当該複数のn次元特徴ベクトルが従う特徴ベクトル分布を統計的に学習するステップを更に備え、
前記基準ベクトル生成部は、前記特徴ベクトル分布に従ってランダムに前記基準ベクトルを生成する、
ことを特徴とするベクトル変換方法。
【請求項１６】
請求項１１に記載のベクトル変換方法において、
前記所定の定数cは1である、
ことを特徴とするベクトル変換方法。
【請求項１７】
請求項１１に記載のベクトル変換方法において、
前記ベクトル変換部は、行列積を計算した後に、m次元の乱数ベクトルを生成し、行列積計算の後に得られるm次元ベクトルに対して前記乱数ベクトルを加算し、当該ベクトル加算の結果として得られるm次元ベクトルを前記変換ベクトルとして出力する、
ことを特徴とするベクトル変換方法。
【請求項１８】
請求項１１に記載のベクトル変換方法において、
前記基準ベクトル生成部は、
所定の第一のシードを入力とする擬似乱数生成器の出力に基づいて、前記基準ベクトルを生成する、
ことを特徴とするベクトル変換方法。
【請求項１９】
請求項１７に記載のベクトル変換方法において、
前記ベクトル変換部は、所定の第二のシードを入力とする擬似乱数生成器の出力に基づいて、前記乱数ベクトルを生成する、
ことを特徴とするベクトル変換方法。
【請求項２０】
ベクトル抽出部が、生体情報から、所定の実数pと、所定の整数nと、に対し、n次元のLpノルム空間上で定義される特徴ベクトルを抽出するステップと、
ベクトル変換部が、前記実数pに対してq=p/(p-1) なる実数qと、前記整数nと、所定の整数mと、に対して、n次元のLqノルム空間上で定義され、qノルムが所定の定数cに一致するm個の基準ベクトルをを並べた基準行列と、前記抽出された特徴ベクトルと、の行列積を計算し、当該行列積計算の結果得られたベクトルをm次元のＬ∞ノルム空間上のベクトルと見做したものを変換ベクトルとして出力するステップと、
を備えることを特徴とするベクトル変換方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はベクトル変換システム及びベクトル変換方法に関する。
【背景技術】
【０００２】
電子署名は、電子文書に対する偽造・改ざんの防止や、個人認証を目的として、広く利用されている。従来、電子署名はあらかじめ秘密鍵と公開鍵のペアを生成しておき、これを保存しておく。特に秘密鍵は署名者のみが利用でき、他者に対しては秘密となるよう、一般的にはICカード等に格納して署名者自身が管理する。署名者は任意の電子文書に対して、秘密鍵を利用して署名を生成することができ、検証者は公開鍵を用いて署名と電子文書の組が正しい（偽造・改ざんされていない）事を検証することができる。このような電子署名のアルゴリズムとしては、例えばRSA、 DSA、 Schnorr署名などがあり、これを利用してPKI（Public Key Infrastructure）が構築される。
【０００３】
しかしながらPKIなど、電子署名を使ったシステムを安全に運用するためには、署名を生成するための秘密鍵が、正規の署名者のみによって使用できるようにし、他人が不正に利用することを防ぐための「鍵管理」の仕組みが必要となる。このためICカードなどの耐タンパ装置に格納して署名者が安全に保管したり、パスワードによって秘密鍵を保護するなどの対策が必要となる。しかしICカードやパスワードは、盗用や推測によって他人でも利用可能なため十分安全とは言えず、また鍵管理に伴う煩雑な運用によって、ユーザビリティが低下したり、運用コストが大きくなるという問題がある。
【０００４】
署名者の生体情報そのものを秘密鍵として利用可能とする電子署名方式（生体署名：Biometric Signature）が、特許文献１に記載されている。特許文献１に記載の技術では、指紋や静脈といった人間が固有に持つ生体情報を秘密鍵としている。また生体情報から暗号システムに利用可能な秘密鍵を生成する技術が、非特許文献１に記載されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開2013-123142号公報
【非特許文献】
【０００６】
【非特許文献１】G. Zheng, W. Li, and C. Zhan, "Cryptographic key generation from biometric data using lattice mapping," Proceedings of the 18th International Conference on Pattern Recognition, vol. 4, pp. 513-516,2006.
【発明の概要】
【発明が解決しようとする課題】
【０００７】
特許文献１および非特許文献１に記載の技術では、生体情報に含まれる誤差を補正するため、特徴ベクトル空間上における最近傍整数格子点への丸め処理を利用している。これは、２つの生体情報同士が十分類似しているか否かの判定処理が、生体情報から抽出される特徴ベクトル同士の「Ｌ∞距離」に対するしきい値処理で実現されることに相当している。しかし指紋や静脈、顔、虹彩など多くの生体認証方式では、生体情報の特徴ベクトル同士の距離が、ユークリッド距離（L2距離）や、ハミング距離（L1距離）などで定義されるため、上記技術に基いて生体情報を秘密鍵とする電子署名や暗号システムを実現ことができない。
【０００８】
本発明の目的は、任意の距離空間上の特徴ベクトルを、Ｌ∞距離空間上のベクトルに変換することで、様々な種類の生体情報を用いた生体署名や暗号システムを実現することにある。
【課題を解決するための手段】
【０００９】
本発明に係るベクトル変換システムは、生体情報から、所定の実数pと、所定の整数nと、に対し、n次元のLpノルム空間上で定義される特徴ベクトルを抽出するベクトル抽出部と、実数pに対してq=p/(p-1) なる実数qと、整数nと、所定の整数mと、に対して、n次元のLqノルム空間上で定義され、qノルムが所定の定数cに一致するm個の基準ベクトルを生成しそれらを並べた基準行列を生成する基準ベクトル生成部と、抽出された特徴ベクトルと基準行列との行列積を計算し、行列積計算の結果得られたベクトルをm次元のＬ∞ノルム空間上のベクトルと見做したものを変換ベクトルとして出力するベクトル変換部と、を備える。
【発明の効果】
【００１０】
本発明により、任意の距離構造（Lp距離）を持つベクトル空間上のベクトルXを、Ｌ∞距離構造を持つベクトルYに変換することを可能とする。これによりハミング距離やユークリッド距離で定義される生体情報の特徴ベクトルを、Ｌ∞距離で定義されるベクトルに変換し、生体情報の特徴ベクトル同士の距離が、Ｌ∞距離で定義される場合でも生体署名システムを実現することができる。
【図面の簡単な説明】
【００１１】
【図１】機能構成を示すブロック図である。
【図２】登録処理を示す流れ図である。
【図３】署名生成処理を示す流れ図である。
【図４】ベクトル変換処理フロー及び基準行列生成処理フローを示す図である。
【図５】装置及び端末のハードウェア構成を示すブロック図である。
【発明を実施するための形態】
【００１２】
本実施例では、登録時にユーザの生体情報に基づいて署名を検証するためのデータ（以下「生体証明書」）を作成し、署名生成時に署名生成端末が任意のメッセージに対してユーザの生体情報のみに基づく署名（以下「生体署名」）を生成する、生体署名システムを例に説明する。本実施例のシステムは、例えば電子政府における電子申請や、ネットワークを介したユーザ認証などに利用することができる。なお、生体情報とは、ユーザから取得した指紋や静脈、虹彩などのパターン情報をいう。
【００１３】
図１に、本実施例における生体署名システムのシステム構成を示す。
【００１４】
本システムは、ユーザの生体証明書の発行を行う登録端末１００と、ユーザの生体情報を用いてメッセージ（電子文書）に対する生体署名を生成する署名生成端末１１０と、特徴ベクトルから基準ベクトルを生成する基準行列生成装置４００とから構成される。
【００１５】
登録端末１００は、ユーザから指紋や静脈などの登録用生体情報を取得するセンサ部１０１と、登録用生体情報から登録用特徴ベクトルを抽出する特徴ベクトル抽出部１０２と、ベクトル変換部１０６と、基準行列を記憶する基準行列記憶部１０７と、ユーザＩＤの入力を受け付けるＩＤ入力部１０３と、登録用特徴ベクトルから生体公開鍵を作成する生体公開鍵作成部１０４と、ユーザＩＤおよび生体公開鍵に対して登録端末自身の電子署名を付与して生体証明書を作成する生体証明書作成部１０５を含む。
【００１６】
署名生成端末１１０は、署名生成の対象であるメッセージを入力するメッセージ入力部１１１と、ユーザのＩＤを入力するＩＤ入力部１１６と、ユーザから署名用生体情報を取得するセンサ１１２と、署名用生体情報から署名用特徴ベクトルを抽出する特徴ベクトル抽出部１１３と、特徴ベクトル変換部１１７と、基準行列を記憶する基準行列記憶部１１８と、署名用特徴ベクトルを用いてメッセージに対する生体署名を生成する生体署名生成部１１４と、生体署名を出力する生体署名出力部１１５とから構成される。
【００１７】
基準行列生成装置４００は、特徴ベクトルＤＢ４０５と、基準行列生成部４０６とから構成される。
【００１８】
本実施例において基準行列は、基準行列生成装置４００によりあらかじめ生成され、登録端末１００の基準行列記憶部１０７および署名生成端末１１０の基準行列記憶部１１８に記憶されているものとする。
【００１９】
図５に、本実施例における登録端末１００、署名生成端末１１０、ベクトル特徴装置４１０、及び基準行列生成装置４００のハードウェア構成を示す。これらは図のようにＣＰＵ５００、ＲＡＭ５０１、ＨＤＤ５０２、入力装置５０３、出力装置５０４、通信装置５０５とから構成することができる。
【００２０】
次に本実施例における登録処理フローを図２を用いて説明する。
登録端末１００が、センサ部１０１を通して登録ユーザの登録用生体情報（指紋画像や静脈画像など）を取得する（Ｓ２００）。
特徴ベクトル抽出部１０２が、登録用生体情報から登録用特徴ベクトルＸを抽出する（Ｓ２０１）。
【００２１】
ベクトル変換部１０６が、登録用特徴ベクトルＸを、後述する図４のステップＳ４１１乃至ステップＳ４１３の処理に従って変換し、登録用変換ベクトルＹを生成する（Ｓ２０２）。このとき基準行列記憶部１０７に記憶された基準行列Ｍを使うとともに、必要に応じて第一のシードを使う。第一のシードは、例えば乱数でもよいし、ユーザの属性情報（ＩＤなど）でもよい。
【００２２】
ＩＤ入力部１０３が、登録ユーザのＩＤの入力を取得する（Ｓ２０３）
生体公開鍵作成部１０４が、ベクトル変換部１０６によって変換された登録用変換ベクトルＹを秘密鍵として、対応する生体公開鍵を作成する（Ｓ２０４）。生体公開鍵の具体的な作成方法は特許文献１あるいは非特許文献１に記載の方法などに従う。
【００２３】
第一のシードを変えることで、同一のユーザの生体情報から異なる複数の生体公開鍵を作成することが可能となり、またそれらの生体公開鍵同士のクロスマッチングを防ぐことができる。これにより、複数の異なるシステムに生体公開鍵をそれぞれ登録する際にそれらの間のリンクがとられることを防ぎ、プライバシを保護することができるほか、生体情報自体を変えずに生体公開鍵を破棄・更新することが可能となる。
【００２４】
次に本実施例における署名生成フローを図３を用いて説明する。
【００２５】
署名生成端末１１０が、メッセージ入力部１１１を介して任意のメッセージＭの入力を取得する（Ｓ３００）。
【００２６】
ＩＤ入力部１１６が、ユーザの入力によってユーザＩＤを取得する（Ｓ３０１）。なお本ステップを省略し、以下のステップではユーザＩＤとしてＮＵＬＬなどの記号を用いてもよい。このようにすることで署名時にユーザはＩＤの入力が不要となり、更なる利便性の向上が見込まれる。
【００２７】
センサ部１１２が、ユーザの署名用生体情報を取得する（Ｓ３０２）。
【００２８】
特徴ベクトル抽出部１１３が、センサ部１１２から取得された署名用生体情報から署名用特徴ベクトルＸ’を抽出する（Ｓ３０３）。
【００２９】
ベクトル変換部１１７が、前記署名用特徴ベクトルＸ’ を、後述する図４ステップＳ４１１乃至ステップＳ４１３の処理に従って変換し、登録用変換ベクトルＹ’を生成する（Ｓ３０４）。このとき基準行列記憶部１１８に記憶された基準行列Ｍを使うとともに、必要に応じて第一のシードを使う。第一のシードは、ステップＳ２０２で用いたものと同じ値を用いる。
【００３０】
生体署名生成部１１４が、ベクトル変換部１１７によって変換された署名用変換ベクトルＹ’を秘密鍵として、メッセージＭに対する生体署名を生成する（Ｓ３０５）。生体署名の具体的な作成方法は特許文献１に記載の方法などに従う。
【００３１】
あるいは非特許文献１の方法に従って、署名用変換ベクトルＹ’を用いた暗号鍵生成や認証処理を行うこともできる。
【００３２】
生体署名は、前記生体公開鍵を用いて検証することができ、これによりメッセージＭが改ざんされていないことと、生体署名が確かに正規のユーザにより生成されたことが確認される。具体的な検証方法は特許文献１に記載の方法などに従う。
【００３３】
特許文献１に記載の生体署名方式は、特徴ベクトル同士の距離がＬ∞距離で定義されることを前提としているが、静脈や虹彩、指紋、顔などの生体情報の特徴ベクトルは、一般にユークリッド距離（L2距離）やハミング距離（L1距離）を前提とする場合が多く、こういった生体情報では生体署名を実現できなかった。本実施例は、特徴ベクトルをＬ∞距離が定義されるベクトルに変換することで、この問題を解決し、多くの生体情報で生体署名を実現することが可能となる。
【００３４】
本実施例では、pノルムで距離が定義されるn次元実数ベクトルXを、∞ノルムで距離が定義されるm次元実数ベクトルYへ変換するシステムを例に説明する。
【００３５】
まず準備として、ノルムと距離について定義を行う。pを正の実数または無限大（∞）としたとき、n次元実数ベクトル
【００３６】
【数１】
0006492141.tif 000002
【００３７】
のpノルム
【００３８】
【数２】
0006492141.tif 000003
【００３９】
は、以下のように定義される。
【００４０】
【数３】
0006492141.tif 000004
【００４１】
【数４】
0006492141.tif 000005
【００４２】
またn次元実数ベクトルx,yの間のLp距離は、
【００４３】
【数５】
0006492141.tif 000006
【００４４】
と定義される。
【００４５】
p に対して q を、
1/p + 1/q = 1
を満たす実数(または無限大)とする。つまりq=p/(p-1)。例えば p=2 ならば q=2 である。p=1 のときは q=∞（無限大）、p=∞ のときは q=1 とする。
【００４６】
図４に、ベクトル変換処理フロー及び基準行列生成処理フローを示す。本フローの処理主体は、基準行列生成装置４００、登録端末１００のベクトル変換部１０６、署名生成端末１１０のベクトル変換部１１７である。なお、基準行列生成部及びベクトル変換部は、登録端末及び署名生成端末が備える機能ブロックではなく、基準行列生成装置及びベクトル変換装置であってもよい。
【００４７】
基準行列生成装置４００は、特徴ベクトルＤＢ４０５を構成要素として含み、また登録端末１００及び署名生成端末１１０は、ストレージ４１５を構成要素として含む。
【００４８】
特徴ベクトルＤＢ４０５には、同一種類の複数の特徴ベクトル、例えば複数人の指の静脈パターンからそれぞれ抽出した特徴ベクトルの集合が記録されているものとする。ただし後述するように、基準行列生成装置４００は必ずしも特徴ベクトルＤＢ４０５を含まなくてもよい。
【００４９】
次に本実施例における基準行列生成処理フローを説明する。
基準行列生成装置４００が、特徴ベクトルＤＢに含まれる複数の特徴ベクトルを読み出し、その分布を学習する（Ｓ４０１）。分布学習は、例えば主成分分析、判別分析、最尤法、あるいはより高度な機械学習アルゴリズムを用いても良い。
【００５０】
基準行列生成装置４００が、分布学習の結果に従い、特徴ベクトルの分布をよく表現するm個のn次元ベクトル（以下、基準ベクトルと呼ぶ）を、qノルムが全てある所定の定数値c>0 に等しくなるように生成する（Ｓ４０２）。生成した基準ベクトルを
【００５１】
【数６】
0006492141.tif 000007
【００５２】
とし、それらの転置ベクトルを並べた ｎ×ｍ 行列を基準行列 M とする。これをベクトル変換生成装置のストレージ４１５に記録する。m は所定の自然数とする。後述するように、m を大きくすることでより変換前後の距離の誤差を小さくすることができる。m は n より大きくても、小さくても、等しくても良い。またm個の基準ベクトルは直交している必要はなく、一次独立でなくてもよい。このため、Mは一般的な基底変換とは異なる。
【００５３】
基準ベクトルの生成方法としては、例えば学習した分布に従ってm個のベクトルを独立に生起させ、そのqノルムをcに正規化してもよい。こうすることで、基準ベクトルと特徴ベクトルとのなす角が比較的小さくなり、ベクトル同士の内積が比較的大きくなる傾向が得られる。これにより比較的小さなmでもより変換前後の距離の誤差を小さくすることができる。
【００５４】
あるいはm個の基準ベクトルを、特徴ベクトルの分布とは関係なく、qノルムがcに等しくなるという制約だけを満たすように、一様ランダムに生成してもよい。この場合は特徴ベクトルＤＢ４０５は不要となり、またステップＳ４０１も不要となる。
【００５５】
分布に従って生起させる場合に、あるいは一様ランダムに生起させる場合に、第二のシードを入力として擬似乱数生成器を用いてもよい。こうすることで、シードが固定されている場合は常に同じ基準行列が生成され、第二のシードを変えることで異なる基準行列を生成することができる。これの性質は後述する第二の実施例において有効に働く。
【００５６】
すなわち、基準行列生成装置４００は、あらかじめ複数のn次元特徴ベクトルを用いて、それらが従う特徴ベクトル分布を統計的に学習する学習部を更に備え、基準ベクトル生成部４０６は、前述の特徴ベクトル分布に従ってランダムに、ノルムが所定の定数cに一致するm個のn次元基準ベクトルを生成しても良い。
【００５７】
なおp=1、q=∞の場合は、基準ベクトルは∞ノルムがcに等しくなるよう生成するが、この場合、更に基準ベクトルの各要素がcまたは-cに等しくなるよう生成してもよい。例えば
【００５８】
【数７】
0006492141.tif 000008
【００５９】
など。このようにすることで、基準ベクトルと特徴ベクトルとの内積の絶対値がより大きくなることが期待され、変換前後の距離の誤差をより小さくすることができる。
【００６０】
以下では 簡単のためc=1 として説明するが、そうでない場合も全く同様に実装し、同様の効果を得ることができる。
【００６１】
次に本実施例におけるベクトル変換処理フローを説明する。
【００６２】
ベクトル変換部１０６、１１７が、特徴ベクトル
【００６３】
【数８】
0006492141.tif 000009
【００６４】
の入力を受け付け、ストレージ４１５に記録された基準行列 M との行列積を計算し、m次元射影ベクトル
【００６５】
【数１１】
0006492141.tif 000010
【００６６】
とする（Ｓ４１１）。
【００６７】
【数９】
0006492141.tif 000011
【００６８】
ベクトル変換部１０６、１１７が、m次元ベクトル
【００６９】
【数１０】
0006492141.tif 000012
【００７０】
（以下、乱数ベクトルと呼ぶ）を生成する（Ｓ４１２）。乱数ベクトルは、第一のシードを入力とし、擬似乱数生成器を用いて生成してもよい。あるいは基準行列を元に生成してもよいし、予め固定された所定の乱数ベクトルを生成してもよい。
【００７１】
ベクトル変換部１０６、１１７が、前記射影ベクトル
【００７２】
【数１１】
0006492141.tif 000013
【００７３】
に、前記乱数ベクトル 
【００７４】
【数１０】
0006492141.tif 000014
【００７５】
を加算し、変換ベクトル
【００７６】
【数３１】
0006492141.tif 000015
【００７７】
として出力する（Ｓ４１３）。
【００７８】
【数１２】
0006492141.tif 000016
【００７９】
なおこのステップは必ずしも必要ではなく、実行しなくてもよい。
【００８０】
以上のベクトル変換処理により、pノルムで定義される距離空間が、（近似的に）∞ノルムで定義される距離空間へ写される理由を、以下に説明する。
【００８１】
上記変換は
【００８２】
【数１３】
0006492141.tif 000017
【００８３】
と書ける。pノルムで距離が定義される２つのn次元ベクトル
【００８４】
【数１４】
0006492141.tif 000018
【００８５】
に対し、これを上記の処理によって変換したm次元ベクトルをそれぞれ
【００８６】
【数１５】
0006492141.tif 000019
【００８７】
とすると、
【００８８】
【数１６】
0006492141.tif 000020
【００８９】
と変形できる。従って
【００９０】
【数１５】
0006492141.tif 000021
【００９１】
の間のＬ∞距離は
【００９２】
【数１７】
0006492141.tif 000022
【００９３】
と書ける。ここでヘルダーの不等式
【００９４】
【数１８】
0006492141.tif 000023
【００９５】
より、
【００９６】
【数１９】
0006492141.tif 000024
【００９７】
が成立する。基準ベクトル
【００９８】
【数２０】
0006492141.tif 000025
【００９９】
は、qノルムが1となる（
【０１００】
【数２１】
0006492141.tif 000026
【０１０１】
）よう生成していたため、上式は
【０１０２】
【数２２】
0006492141.tif 000027
【０１０３】
と変形できる。上記不等式は全てのi=1,2,…,ｍ で成立するため、左辺の最大値もまた右辺以下に抑えられる。従って
【０１０４】
【数２３】
0006492141.tif 000028
【０１０５】
が成立し、（式１）とあわせて
【０１０６】
【数２４】
0006492141.tif 000029
【０１０７】
が成立する。
【０１０８】
一方で、基準ベクトル
【０１０９】
【数２０】
0006492141.tif 000030
【０１１０】
を様々に変化させることで
【０１１１】
【数２５】
0006492141.tif 000031
【０１１２】
の値も、（式３）の不等式を満たす範囲内、すなわち
【０１１３】
【数２６】
0006492141.tif 000032
【０１１４】
以下の範囲で様々に変化する。従ってより多くの基準ベクトルに関する最大値は、より
【０１１５】
【数２６】
0006492141.tif 000033
【０１１６】
に近づいていく。つまり
【０１１７】
【数２７】
0006492141.tif 000034
【０１１８】
が成立する。従ってmが十分大きい場合は、近似的に
【０１１９】
【数２８】
0006492141.tif 000035
【０１２０】
が成立する。
【０１２１】
例えば p=2 のとき、つまり特徴ベクトルがユークリッド空間上で定義される場合、ヘルダーの不等式の等号成立条件は、ベクトル
【０１２２】
【数２９】
0006492141.tif 000036
【０１２３】
が一次従属（平行なベクトル）であることである。従って、m個の基準ベクトル
【０１２４】
【数２０】
0006492141.tif 000037
【０１２５】
のうち、一つでも
【０１２６】
【数３０】
0006492141.tif 000038
【０１２７】
と平行であれば（式５）が成立する。また完全に平行でなくても、それに近ければ、（式５）は近似的に成立し、距離の誤差は小さくなる。
【０１２８】
上記ステップＳ４０１、Ｓ４０２のように、あらかじめ特徴ベクトルが従う分布を学習し、その分布に従って基準ベクトルを生起させることで、上述のように並行に近い基準ベクトルを生成させることができ、これにより比較的小さなmに対しても、変換前後の距離の誤差を小さくすることができる。
【０１２９】
すなわち、登録端末１００は、ユーザの生体情報を取得するセンサ部１０１と、生体情報から登録用特徴ベクトルを抽出する特徴ベクトル抽出部１０２と、予め定められたベクトル変換方法に従って特徴ベクトルを変換し、登録用変換ベクトルを生成するベクトル変換部１０６と、予め決められた所定の生体署名アルゴリズムに基づいて、登録用変換ベクトルを秘密鍵とする生体公開鍵を生成する生体公開鍵作成部１０４とを有し、署名生成端末１１０は、入力されたメッセージを取得するメッセージ入力部１１１と、ユーザの生体情報を取得するセンサ部１１２と、生体情報から署名用特徴ベクトルを抽出する特徴ベクトル抽出部１１３と、ベクトル変換方法に従って特徴ベクトルを変換し、署名用変換ベクトルを生成するベクトル変換部１１７と、所定の生体署名アルゴリズムに基づいて、署名用変換ベクトルを秘密鍵とする、メッセージに対する生体署名を生成する生体署名生成部１１４とを有し、基準行列生成装置４００は、所定の実数pと、所定の整数n,mに対し、距離がLp距離で定義されるn次元の入力ベクトルを、q=p/(p-1) なる実数qに対して、qノルムが所定の定数cに一致するm個のn次元基準ベクトルを生成しそれらを並べた基準行列を生成し、入力ベクトルと基準行列ベクトルを署名生成端末１１０及び登録端末１００に送信する基準ベクトル生成部４０６を有し、登録端末１００及び署名生成端末１１０のベクトル変換部１０６、１１７は、入力ベクトルと基準行列との行列積を計算し、行列積の結果得られた距離がＬ∞距離で定義されるm次元の出力ベクトルに変換して出力する。
【０１３０】
また、基準行列生成装置４００の基準ベクトル生成部４０６は、n次元の入力ベクトルが、所定の整数n,mに対し、距離がハミング距離またはL1距離で定義される場合は、∞ノルムが所定の定数cに一致するm個のn次元基準ベクトルを生成しそれらを並べた基準行列を生成し、入力ベクトルと基準行列ベクトルを署名生成端末１１０及び登録端末１００に送信しても良い。
【０１３１】
また、基準行列生成装置４００の基準ベクトル生成部４０６は、n次元の入力ベクトルが、所定の整数n,mに対し、各要素が所定の定数cまたは-cのいずれかと一致するm個のn次元基準ベクトルを生成しそれらを並べた基準行列を生成し、入力ベクトルと基準行列ベクトルを署名生成端末１１０及び登録端末１００に送信しても良い。
【０１３２】
また、基準行列生成装置４００の基準ベクトル生成部４０６は、n次元の入力ベクトルが、所定の整数n,mに対し、距離がユークリッド距離(L2距離)で定義される場合は、ユークリッドノルム（L2ノルム）が所定の定数cに一致するm個のn次元基準ベクトルを生成しそれらを並べた基準行列を生成する基準ベクトル生成し、入力ベクトルと基準行列ベクトルを署名生成端末１１０及び登録端末１００に送信しても良い。
【０１３３】
また、登録端末１００及び署名生成端末１１０のベクトル変換部１０６、１１７は、行列積を計算した後、m次元の乱数ベクトルを生成し、行列積計算の結果として得られるm次元ベクトルに対して乱数ベクトルを加算し、ベクトル加算の結果として得られるm次元ベクトルを出力しても良い。
【符号の説明】
【０１３４】
１００  登録端末
１０１  センサ部
１０２  特徴ベクトル抽出部
１０３  ＩＤ入力部
１０４  生体公開鍵作成部
１０６  ベクトル変換部
１０７  基準行列記憶部
１１０  署名生成端末
１１１  メッセージ入力部
１１２  センサ部
１１３  特徴ベクトル抽出部
１１４  生体署名生成部
１１５  生体署名出力部
１１６  ＩＤ入力部
１１７  ベクトル変換部
１１８  基準行列記憶部
４００  基準行列生成装置
４０５  特徴ベクトルＤＢ
４１０  ベクトル変換装置
４１５  ストレージ
５００  ＣＰＵ
５０１  ＲＡＭ
５０２  ＨＤＤ
５０３  入力装置
５０４  出力装置
５０５  通信装置
【図１】
0006492141.tif 000039
【図２】
0006492141.tif 000040
【図３】
0006492141.tif 000041
【図４】
0006492141.tif 000042
【図５】
0006492141.tif 000043