(57)【特許請求の範囲】
【請求項１】
情報処理システムが実行する暗号データ処理方法であって、
一のデータから第２の誤り訂正符号化方法を用いて第１の符号を生成し、前記第１の符号および第１の乱数から第１の誤り訂正符号化方法を用いて第２の符号を生成し、
登録対象データを前記第２の符号を用いてマスクした第１のマスクデータを生成し、前記第１のマスクデータをデータベースに登録させ、
第２の乱数から前記第１の誤り訂正符号化方法を用いて第３の符号を生成し、
照合対象データを前記第３の符号を用いてマスクした第２のマスクデータを生成し、
前記第２のマスクデータと前記データベースに登録された前記第１のマスクデータとを合成した合成データを生成し、前記合成データを前記第１の誤り訂正符号化方法および前記第２の誤り訂正符号化方法に応じて復号する、
暗号データ処理方法。
【請求項２】
前記情報処理システムが更に、
前記一のデータからハッシュ関数を用いて第１のハッシュ値を生成し、前記第１のハッシュ値を前記データベースに登録させ、
前記合成データの復号結果から前記ハッシュ関数を用いて第２のハッシュ値を生成し、
前記第２のハッシュ値と前記データベースに登録された前記第１のハッシュ値とを比較する、
請求項１記載の暗号データ処理方法。
【請求項３】
前記第１の誤り訂正符号化方法は線形符号化方法であり、
前記第２の誤り訂正符号化方法は線形符号化方法または非線形符号化方法である、
請求項１記載の暗号データ処理方法。
【請求項４】
記憶装置と、
一のデータから第２の誤り訂正符号化方法を用いて第１の符号を生成し、前記第１の符号および第１の乱数から第１の誤り訂正符号化方法を用いて第２の符号を生成し、登録対象データを前記第２の符号を用いてマスクした第１のマスクデータを生成し、前記第１のマスクデータを前記記憶装置に登録させる第１のノードと、
第２の乱数から前記第１の誤り訂正符号化方法を用いて第３の符号を生成し、照合対象データを前記第３の符号を用いてマスクした第２のマスクデータを生成する第２のノードと、
前記第２のマスクデータと前記記憶装置に登録された前記第１のマスクデータとを合成した合成データを生成し、前記合成データを前記第１の誤り訂正符号化方法および前記第２の誤り訂正符号化方法に応じて復号する第３のノードと、
を有する暗号データ処理システム。
【請求項５】
記憶部と、
一のデータから第２の誤り訂正符号化方法を用いて第１の符号を生成し、前記第１の符号および第１の乱数から第１の誤り訂正符号化方法を用いて第２の符号を生成し、登録対象データを前記第２の符号を用いてマスクした第１のマスクデータを生成し、前記第１のマスクデータを前記記憶部に登録させ、第２の乱数から前記第１の誤り訂正符号化方法を用いて第３の符号を生成し、照合対象データを前記第３の符号を用いてマスクした第２のマスクデータを生成し、前記第２のマスクデータと前記記憶部に登録された前記第１のマスクデータとを合成した合成データを生成し、前記合成データを前記第１の誤り訂正符号化方法および前記第２の誤り訂正符号化方法に応じて復号するデータ処理部と、
を有する暗号データ処理装置。
【請求項６】
コンピュータに、
一のデータから第２の誤り訂正符号化方法を用いて第１の符号を生成し、前記第１の符号および第１の乱数から第１の誤り訂正符号化方法を用いて第２の符号を生成し、
登録対象データを前記第２の符号を用いてマスクした第１のマスクデータを生成し、前記第１のマスクデータをデータベースに登録させ、
第２の乱数から前記第１の誤り訂正符号化方法を用いて第３の符号を生成し、
照合対象データを前記第３の符号を用いてマスクした第２のマスクデータを生成し、
前記第２のマスクデータと前記データベースに登録された前記第１のマスクデータとを合成した合成データを生成し、前記合成データを前記第１の誤り訂正符号化方法および前記第２の誤り訂正符号化方法に応じて復号する、
処理を実行させる暗号データ処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は暗号データ処理方法、暗号データ処理システム、暗号データ処理装置および暗号データ処理プログラムに関する。
【背景技術】
【０００２】
現在、ユーザ認証として生体認証が用いられることがある。生体認証は、ユーザの身体的特徴または行動的特徴に基づいて、認証対象のユーザと登録されたユーザの同一性を判定するものである。身体的特徴としては、例えば、指紋、静脈、虹彩などが挙げられる。行動的特徴としては、例えば、筆跡などが挙げられる。生体認証では、登録時に、登録するユーザの身体的特徴または行動的特徴を表す生体特徴コードを生成し、登録用の生体特徴コードに応じたテンプレートをデータベースに登録しておく。照合時には、認証するユーザの身体的特徴または行動的特徴を表す生体特徴コードを生成し、照合用の生体特徴コードとテンプレートを用いてユーザの同一性を判定する。
【０００３】
ここで、生体特徴コードは、任意に選択可能なユーザＩＤやパスワードなどと異なり、漏洩しても変更することが容易でない。このため、生体認証システムから生体特徴コードが漏洩してしまうリスクを低減することが好ましい。そこで、生体特徴コードを保護できる生体認証方法の一形態として、テンプレート保護型生体認証が提案されている。
【０００４】
テンプレート保護型生体認証は、生体特徴コードそのものをテンプレートに含める代わりに、変換パラメータに基づいて生体特徴コードから変換されたデータをテンプレートに含めるようにする。テンプレート保護型生体認証では、テンプレートが漏洩しても、テンプレートから元の生体特徴コードを復元することは困難である。また、変換パラメータを変更することで、同一の生体特徴コードから異なるテンプレートを作成することができ、漏洩したテンプレートを無効化することができる。
【０００５】
テンプレート保護型生体認証の一形態として、ファジーコミットメント（Fuzzy Commitment）などのバイオメトリック暗号が提案されている。ファジーコミットメントでは、登録時に、パスワードや秘密鍵などの秘密情報に基づいて登録用の生体特徴コードをマスクし、マスクデータをデータベースに登録しておく。また、秘密情報のハッシュ値をデータベースに登録しておく。照合時には、照合用の生体特徴コードとデータベースに登録されたマスクデータを用いて秘密情報を復元する。復元した秘密情報のハッシュ値とデータベースに登録されたハッシュ値とを比較して、ユーザの同一性を判定する。
【０００６】
なお、入力パターンからファジーコミットメントを生成するファジーコミットメント方法が提案されている。提案のファジーコミットメント方法では、誤り訂正符号に関連付けられた複数のコードワードの中からランダムに１つのコードワードを選択し、ユーザから受け付けた入力パターンを選択したコードワードにマッピングする。当該ファジーコミットメント方法では、入力パターンと選択したコードワードとの間のオフセットを算出すると共に、選択したコードワードのハッシュ値を算出する。
【０００７】
また、生体認証に用いるテンプレートを保護することができる認証装置が提案されている。提案の認証装置は、１つのテンプレートを誤り訂正符号に基づいて複数の部分テンプレートに分割する。認証装置は、分割された複数の部分テンプレートを誤り訂正符号に基づいて生体認証オブジェクトに埋め込むことでテンプレートを難読化し、難読化されたテンプレートを含む生体認証オブジェクトを送信する。
【０００８】
また、テンプレートと鍵情報とが漏洩してもなりすまし攻撃を抑制できる生体認証システムが提案されている。提案の生体認証システムでは、登録時に、登録装置が登録用の生体特徴コードを取得すると共に鍵情報を発行する。登録装置は、登録用の生体特徴コードと鍵情報とランダムに選択した認証パラメータとの排他的論理和をテンプレートとして生成し、鍵情報を端末装置に送信する。照合時に、認証装置が照合用の生体特徴コードを取得する。また、端末装置がランダムに選択したマスク値と鍵情報との排他的論理和を鍵秘匿情報として生成し、鍵秘匿情報を認証装置に送信する。認証装置は、照合用の生体特徴コードとテンプレートと鍵秘匿情報との排他的論理和を誤り訂正後情報として生成し、誤り訂正後情報を端末装置に送信する。端末装置は、誤り訂正後情報とマスク値との排他的論理和を被証明情報として生成し、被証明情報を認証装置に送信する。認証装置は、被証明情報と認証パラメータとの間の一致度に基づいてユーザを認証する。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】国際公開第００／５１２４４号
【特許文献２】国際公開第２００６／０９３２３８号
【特許文献３】国際公開第２０１２／０４２７７５号
【非特許文献】
【００１０】
【非特許文献１】Ari Juels and Martin Wattenberg, "A fuzzy commitment scheme", Proc. of the 6th ACM (Association for Computing Machinery) conference on Computer and Communications Security, pp. 28-36, 1999
【発明の概要】
【発明が解決しようとする課題】
【００１１】
しかし、非特許文献１に記載された技術では、照合時にテンプレートと共に演算に使用されるデータが照合用の生体特徴コードそのものである。また、非特許文献１に記載された技術では、認証に成功したとき正しい秘密情報が復元される。テンプレートに含まれるマスクデータは秘密情報に基づいて登録用の生体特徴コードをマスクしたものであるため、認証装置は復元された秘密情報とテンプレートから登録用の生体特徴コードを推定できる機会がある。このため、もし悪意ある管理者または攻撃者によって認証装置が不正に操作された場合には、生体特徴コードが漏洩してしまうリスクがある。
【００１２】
１つの側面では、本発明は、保護対象のデータの漏洩リスクを低減できる暗号データ処理方法、暗号データ処理システム、暗号データ処理装置および暗号データ処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１３】
１つの態様では、情報処理システムが実行する暗号データ処理方法が提供される。一のデータから第２の誤り訂正符号化方法を用いて第１の符号を生成し、第１の符号および第１の乱数から第１の誤り訂正符号化方法を用いて第２の符号を生成する。登録対象データを第２の符号を用いてマスクした第１のマスクデータを生成し、第１のマスクデータをデータベースに登録させる。第２の乱数から第１の誤り訂正符号化方法を用いて第３の符号を生成する。照合対象データを第３の符号を用いてマスクした第２のマスクデータを生成する。第２のマスクデータとデータベースに登録された第１のマスクデータとを合成した合成データを生成し、合成データを第１の誤り訂正符号化方法および第２の誤り訂正符号化方法に応じて復号する。
【００１４】
また、１つの態様では、記憶装置と第１のノードと第２のノードと第３のノードとを有する暗号データ処理システムが提供される。また、１つの態様では、記憶部とデータ処理部とを有する暗号データ処理装置が提供される。また、１つの態様では、コンピュータに実行させる暗号データ処理プログラムが提供される。
【発明の効果】
【００１５】
１つの側面では、保護対象のデータの漏洩リスクを低減できる。
【図面の簡単な説明】
【００１６】
【図１】第１の実施の形態の暗号データ処理装置の例を示す図である。
【図２】第２の実施の形態の情報処理システムの例を示す図である。
【図３】認証装置のハードウェア例を示すブロック図である。
【図４】認証装置と端末装置の機能例を示すブロック図である。
【図５】テンプレートテーブルの例を示す図である。
【図６】登録処理の手順例を示すフローチャートである。
【図７】照合処理の手順例を示すフローチャートである。
【発明を実施するための形態】
【００１７】
以下、本実施の形態を図面を参照して説明する。
［第１の実施の形態］
第１の実施の形態を説明する。
【００１８】
図１は、第１の実施の形態の暗号データ処理装置の例を示す図である。
第１の実施の形態の暗号データ処理装置１０は、保護対象のデータの漏洩リスクを低減するセキュリティ装置である。暗号データ処理装置１０は、例えば、生体認証などのユーザ認証を行う認証装置である。暗号データ処理装置１０は、クライアントコンピュータやサーバコンピュータなどのコンピュータであってもよい。
【００１９】
暗号データ処理装置１０は、記憶部１１およびデータ処理部１２を有する。記憶部１１は、ＲＡＭ（Random Access Memory）などの揮発性の半導体メモリでもよいし、ＨＤＤ（Hard Disk Drive）やフラッシュメモリなどの不揮発性のストレージでもよい。データ処理部１２は、例えば、ＣＰＵ（Central Processing Unit）やＤＳＰ（Digital Signal Processor）などのプロセッサである。ただし、データ処理部１２は、ＡＳＩＣ（Application Specific Integrated Circuit）やＦＰＧＡ（Field Programmable Gate Array）などの特定用途の電子回路を含んでもよい。プロセッサは、ＲＡＭなどのメモリに記憶されたプログラムを実行する。プログラムには、暗号データ処理プログラムが含まれる。複数のプロセッサの集合（マルチプロセッサ）を「プロセッサ」と呼ぶこともある。
【００２０】
暗号データ処理装置１０が実行する処理は、登録処理と照合処理を含む。
登録処理において、データ処理部１２は、データ１４ａを取得する。データ１４ａは、例えば、ユーザＩＤ、パスワード、秘密鍵など、登録対象のユーザに付与された秘密情報であって公開されることが想定されていないものである。データ処理部１２は、誤り訂正符号化方法１３ｂ（第２の誤り訂正符号化方法）を用いて、データ１４ａから符号１５ａ（第１の符号）を生成する。誤り訂正符号化方法１３ｂは、所定ビット数の誤り訂正能力をもつ符号化方法である。誤り訂正符号化方法１３ｂとして、任意の種類の符号化方法を用いることができ、線形符号でも非線形符号でもよい。
【００２１】
データ処理部１２は、乱数１６ａ（第１の乱数）を生成する。乱数１６ａのハミング距離が、誤り訂正符号化方法１３ｂの誤り訂正能力を超えないようにする。データ処理部１２は、誤り訂正符号化方法１３ａ（第１の誤り訂正符号化方法）を用いて、符号１５ａおよび乱数１６ａから符号１５ｂ（第２の符号）を生成する。例えば、データ処理部１２は、符号１５ａと乱数１６ａの排他的論理和を符号化する。誤り訂正符号化方法１３ａは、所定ビット数の誤り訂正能力をもつ符号化方法である。誤り訂正符号化方法１３ａとして、任意の種類の線形な符号化方法を用いることができる。線形符号は、任意のデータα，βについて、データαの符号化結果とデータβの符号化結果の排他的論理和が、データαとデータβの排他的論理和の符号化結果に一致するという性質をもつ。誤り訂正符号化方法１３ａ，１３ｂは、同じ種類の誤り訂正符号でも異なる種類の誤り訂正符号でもよい。
【００２２】
データ処理部１２は、登録対象データ１４ｂを取得する。登録対象データ１４ｂは、例えば、登録時に撮像した生体画像から抽出された生体特徴コードである。生体特徴コードは、例えば、指紋、静脈、虹彩、筆跡など、ユーザの身体的特徴または行動的特徴を表す。データ処理部１２は、登録対象データ１４ｂを符号１５ｂを用いてマスクしたマスクデータ１７ａ（第１のマスクデータ）を生成する。例えば、マスクデータ１７ａは、登録対象データ１４ｂと符号１５ｂの排他的論理和である。データ処理部１２は、マスクデータ１７ａを記憶部１１に登録する。記憶部１１には、データベースが形成されている。
【００２３】
照合時において、データ処理部１２は、乱数１６ｂ（第２の乱数）を生成する。乱数１６ｂのハミング距離が、誤り訂正符号化方法１３ｂの誤り訂正能力を超えないようにする。データ処理部１２は、誤り訂正符号化方法１３ａを用いて、乱数１６ｂから符号１５ｃ（第３の符号）を生成する。また、データ処理部１２は、照合対象データ１４ｃを取得する。照合対象データ１４ｃは、例えば、照合時に撮像した生体画像から抽出された生体特徴コードである。データ処理部１２は、照合対象データ１４ｃを符号１５ｃを用いてマスクしたマスクデータ１７ｂ（第２のマスクデータ）を生成する。例えば、マスクデータ１７ｂは、照合対象データ１４ｃと符号１５ｃの排他的論理和である。
【００２４】
データ処理部１２は、記憶部１１に登録されたマスクデータ１７ａを取得し、マスクデータ１７ａとマスクデータ１７ｂとを合成した合成データ１７ｃを生成する。例えば、合成データ１７ｃは、マスクデータ１７ａとマスクデータ１７ｂの排他的論理和である。データ処理部１２は、合成データ１７ｃを誤り訂正符号化方法１３ａに応じた方法で復号し、その復号結果を更に誤り訂正符号化方法１３ｂに応じた方法で復号する。すなわち、データ処理部１２は、合成データ１７ｃを二重に誤り訂正復号する。
【００２５】
ここで、合成データ１７ｃは、符号１５ｂと登録対象データ１４ｂと符号１５ｃと照合対象データ１４ｃとを合成したものである。誤り訂正符号化方法１３ａが線形符号であることから、合成データ１７ｃは、符号１５ａと乱数１６ａと乱数１６ｂとを誤り訂正符号化方法１３ａで符号化したものと、登録対象データ１４ｂと、照合対象データ１４ｃとを合成したものに相当する。登録対象データ１４ｂと照合対象データ１４ｃとが十分に近似している（例えば、登録ユーザと認証対象ユーザが同一である）ものと仮定する。この場合、登録対象データ１４ｂと照合対象データ１４ｃとの差は、誤り訂正符号化方法１３ａにとって除去可能な軽微なノイズに相当する。
【００２６】
よって、合成データ１７ｃを誤り訂正符号化方法１３ａに応じた方法で復号すると、符号１５ａと乱数１６ａと乱数１６ｂとを誤り訂正符号化方法１３ｂで符号化したものが現れる。また、乱数１６ａ，１６ｂは、上記の通り、誤り訂正符号化方法１３ｂにとって除去可能な軽微なノイズに相当する。よって、上記の復号結果を更に誤り訂正符号化方法１３ｂに応じた方法で復号すると、データ１４ａが復元される。一方、登録対象データ１４ｂと照合対象データ１４ｃとが近似していない（例えば、登録ユーザと認証対象ユーザが異なる）場合には、データ１４ａは正しく復元されない。
【００２７】
二重の誤り訂正復号の結果を用いて、暗号データ処理装置１０は種々の処理を行うことが可能である。例えば、暗号データ処理装置１０は、データ１４ａと復号結果とを用いてユーザ認証を行うことができる。暗号データ処理装置１０は、データ１４ａと復号結果を比較し、両者が一致する場合に認証成功と判定し一致しない場合に認証失敗と判定することが考えられる。暗号データ処理装置１０は、登録時にデータ１４ａのハッシュ値を記憶部１１に登録しておき、照合時に復号結果のハッシュ値と記憶部１１に登録されたハッシュ値とを比較するようにしてもよい。また、例えば、データ１４ａとして暗号番号やカード番号など他の認証システムに入力する入力情報を使用し、暗号データ処理装置１０は、正しく復元されたデータ１４ａをユーザに代わって他の認証システムに入力してもよい。
【００２８】
なお、図１では暗号データ処理装置１０が登録処理と照合処理の全てを実行しているが、複数の装置が分散して登録処理および照合処理を実行してもよい。例えば、データ１４ａおよび登録対象データ１４ｂからマスクデータ１７ａを生成する処理を、登録対象のユーザが操作する端末装置が行ってもよい。マスクデータ１７ａを登録する記憶部１１またはデータベースは、端末装置と異なる認証装置が有していてもよいし、端末装置および認証装置と異なるデータベースサーバが有していてもよい。また、照合対象データ１４ｃからマスクデータ１７ｂを生成する処理を、認証対象のユーザが操作する端末装置が行ってもよい。登録時に使用する端末装置と照合時に使用する端末装置は、同じでもよいし異なってもよい。また、マスクデータ１７ａ，１７ｂから合成データ１７ｃを生成し合成データ１７ｃを復号する処理を、認証装置が行ってもよい。
【００２９】
第１の実施の形態の暗号データ処理装置１０によれば、照合時にマスクデータ１７ａと共に演算に使用されるデータが、照合対象データ１４ｃそのものではなく乱数１６ｂに基づいてマスクされたマスクデータ１７ｂである。よって、照合対象データ１４ｃが漏洩するリスクを低減することができる。また、記憶部１１に登録されたマスクデータ１７ａは、データ１４ａに加えて登録時に生成した乱数１６ａにも依存する。よって、照合時にデータ１４ａが復元されても、マスクデータ１７ａとデータ１４ａから登録対象データ１４ｂを推定することは困難であり、登録対象データ１４ｂが漏洩するリスクを低減できる。また、登録対象データ１４ｂと照合対象データ１４ｃの差分が小さい場合には、二重の誤り訂正復号の過程で、当該差分を軽微なノイズとして除去できると共に、乱数１６ａ，１６ｂを軽微なノイズとして除去できる。よって、データ１４ａを正しく復元できる。
【００３０】
［第２の実施の形態］
次に、第２の実施の形態を説明する。
図２は、第２の実施の形態の情報処理システムの例を示す図である。
【００３１】
第２の実施の形態の情報処理システムは、生体認証を行う認証システムである。この情報処理システムは、認証装置１００および端末装置２００，２００ａを含む。認証装置１００および端末装置２００，２００ａは、ネットワーク３０に接続されている。ネットワーク３０は、ＬＡＮ（Local Area Network）でもよいし、インターネットなどの広域ネットワークでもよい。認証装置１００および端末装置２００，２００ａは、同一の施設に設置されてもよいし互いに異なる施設に設置されてもよい。後者の場合、認証装置１００は、データセンタなどの情報処理専用施設に設置されてもよい。
【００３２】
認証装置１００は、端末装置２００，２００ａを使用するユーザを認証するサーバコンピュータである。上記のように、ユーザ認証として生体認証が行われる。認証装置１００は、データベース１２０を有する。データベース１２０は、登録されたユーザについてのテンプレートを記憶する。テンプレートは、生体画像から抽出された特徴情報（生体特徴コード）に基づいて生成されたものであり、端末装置２００，２００ａを使用しているユーザが登録されたユーザであるか判断するときに参照される。テンプレートは、生体特徴コード自体とは異なるデータである。テンプレートが漏洩してもテンプレートから生体特徴コードに逆変換できないように、生体特徴コードが保護されている。
【００３３】
登録時、認証装置１００は、端末装置２００，２００ａから登録要求を受信する。登録要求は、端末装置２００，２００ａが生成したテンプレートを含む。テンプレートは、登録時に撮像した生体画像に基づいて生成される。認証装置１００は、受信したテンプレートをデータベース１２０に登録する。照合時、認証装置１００は、端末装置２００，２００ａから照合要求を受信する。照合要求は、端末装置２００，２００ａが生成した照合データを含む。照合データは、照合時に撮像した生体画像に基づいて生成される。認証装置１００は、受信した照合データとデータベース１２０に登録されたテンプレートとを用いて、端末装置２００，２００ａを使用しているユーザを認証する。認証装置１００は、認証結果（認証成功または認証失敗）を端末装置２００，２００ａに通知する。
【００３４】
なお、データベース１２０は認証装置１００からアクセス可能であればよく、認証装置１００と異なる装置（例えば、データベースサーバ）が有していてもよい。また、テンプレートをデータベース１２０に登録する装置（登録装置）と、登録されたテンプレートを用いてユーザを認証する装置（狭義の認証装置）とを分離してもよい。
【００３５】
端末装置２００，２００ａは、ユーザが操作する装置である。端末装置２００，２００ａは、クライアントコンピュータや携帯端末装置などのユーザ所有の装置でもよいし、ＡＴＭ（Automated Teller Machine）などの複数ユーザが使用する装置でもよい。
【００３６】
端末装置２００には、撮像装置２１１が接続されている。端末装置２００ａには、撮像装置２１１ａが接続されている。撮像装置２１１，２１１ａは、ユーザの身体的特徴または行動的特徴を表す生体画像を撮像する。身体的特徴には、指紋、静脈、虹彩などが含まれる。行動的特徴には、筆跡などが含まれる。端末装置２００，２００ａは、生体認証に利用する特徴の種類を予め決めておいてもよい。その場合、撮像装置２１１，２１１ａは、予め決められた特徴を表す生体画像を効率的に撮像できるように、特徴の種類に応じた専用の形状を有していてもよい。例えば、生体認証に静脈を利用する場合、撮像装置２１１，２１１ａは、手のひらを撮像しやすい形状を有していてもよい。
【００３７】
登録時、端末装置２００は、撮像装置２１１を用いて生体画像を撮像する。端末装置２００は、撮像した生体画像から生体特徴コードを生成し、生体特徴コードからテンプレートを生成する。端末装置２００は、生成したテンプレートを含む登録要求を認証装置１００に送信する。照合時、端末装置２００は、撮像装置２１１を用いて生体画像を撮像する。端末装置２００は、撮像した生体画像から生体特徴コードを生成し、生体特徴コードから照合データを生成する。端末装置２００は、生成した照合データを含む照合要求を認証装置１００に送信する。端末装置２００は、認証装置１００から認証結果を受信し、認証結果に応じてユーザインタフェースを制御する。
【００３８】
認証成功の場合、例えば、端末装置２００は、認証成功のメッセージをディスプレイに表示し、端末装置２００が提供するサービスの全ての利用を許可する。一方、認証失敗の場合、例えば、端末装置２００は、認証失敗のメッセージをディスプレイに表示し、端末装置２００が提供するサービスの一部または全部の利用を拒否する。
【００３９】
端末装置２００ａも、端末装置２００と同様に登録および照合を行うことができる。なお、あるユーザが登録に使用する端末装置と照合に使用する端末装置は、同一でもよいし異なってもよい。例えば、あるユーザが端末装置２００を使用して登録を行い、端末装置２００ａを使用して照合を行えるようにしてもよい。また、端末装置２００を登録専用の端末装置とし、端末装置２００ａを照合専用の端末装置とすることも可能である。
【００４０】
図３は、認証装置のハードウェア例を示すブロック図である。
認証装置１００は、ＣＰＵ１０１、ＲＡＭ１０２、ＨＤＤ１０３、画像信号処理部１０４、入力信号処理部１０５、媒体リーダ１０６および通信インタフェース１０７を有する。これらのユニットは、バス１０８に接続されている。
【００４１】
ＣＰＵ１０１は、プログラムの命令を実行する演算回路を含むプロセッサである。ＣＰＵ１０１は、ＨＤＤ１０３に記憶されたプログラムやデータの少なくとも一部をＲＡＭ１０２にロードし、プログラムを実行する。なお、ＣＰＵ１０１は複数のプロセッサコアを備えてもよく、認証装置１００は複数のプロセッサを備えてもよく、以下で説明する処理を複数のプロセッサまたはプロセッサコアを用いて並列に実行してもよい。また、複数のプロセッサの集合（マルチプロセッサ）を「プロセッサ」と呼んでもよい。
【００４２】
ＲＡＭ１０２は、ＣＰＵ１０１が実行するプログラムやＣＰＵ１０１が演算に用いるデータを一時的に記憶する揮発性の半導体メモリである。なお、認証装置１００は、ＲＡＭ以外の種類のメモリを備えてもよく、複数個のメモリを備えてもよい。
【００４３】
ＨＤＤ１０３は、ＯＳ（Operating System）やミドルウェアやアプリケーションソフトウェアなどのソフトウェアのプログラム、および、データを記憶する不揮発性の記憶装置である。プログラムには、暗号データ処理プログラムが含まれる。なお、認証装置１００は、フラッシュメモリやＳＳＤ（Solid State Drive）などの他の種類の記憶装置を備えてもよく、複数の不揮発性の記憶装置を備えてもよい。
【００４４】
画像信号処理部１０４は、ＣＰＵ１０１からの命令に従って、認証装置１００に接続されたディスプレイ１１１に画像を出力する。ディスプレイ１１１としては、ＣＲＴ（Cathode Ray Tube）ディスプレイ、液晶ディスプレイ（ＬＣＤ：Liquid Crystal Display）、プラズマディスプレイ、有機ＥＬ（ＯＥＬ：Organic Electro-Luminescence）ディスプレイなどを用いることができる。
【００４５】
入力信号処理部１０５は、認証装置１００に接続された入力デバイス１１２から入力信号を取得し、ＣＰＵ１０１に出力する。入力デバイス１１２としては、マウスやタッチパネルやタッチパッドやトラックボールなどのポインティングデバイス、キーボード、リモートコントローラ、ボタンスイッチなどを用いることができる。また、認証装置１００に、複数の種類の入力デバイスが接続されていてもよい。
【００４６】
媒体リーダ１０６は、記録媒体１１３に記録されたプログラムやデータを読み取る読み取り装置である。記録媒体１１３として、例えば、フレキシブルディスク（ＦＤ：Flexible Disk）やＨＤＤなどの磁気ディスク、ＣＤ（Compact Disc）やＤＶＤ（Digital Versatile Disc）などの光ディスク、光磁気ディスク（ＭＯ：Magneto-Optical disk）、半導体メモリなどを使用できる。媒体リーダ１０６は、例えば、記録媒体１１３から読み取ったプログラムやデータをＲＡＭ１０２またはＨＤＤ１０３に格納する。
【００４７】
通信インタフェース１０７は、ネットワーク３０に接続され、ネットワーク３０を介して端末装置２００，２００ａと通信を行うインタフェースである。通信インタフェース１０７は、スイッチなどの通信装置とケーブルで接続される有線通信インタフェースでもよいし、基地局と無線リンクで接続される無線通信インタフェースでもよい。
【００４８】
端末装置２００，２００ａも、認証装置１００と同様のハードウェアを用いて実装することができる。ただし、前述のように、端末装置２００には撮像装置２１１が接続されており、端末装置２００ａには撮像装置２１１ａが接続されている。撮像装置２１１，２１１ａは、入力デバイスの一種であると言うこともできる。端末装置２００，２００ａは、接続された撮像装置から生体画像を取得するインタフェースを有する。取得された生体画像は、例えば、ＲＡＭやＨＤＤなどの記憶装置に格納される。
【００４９】
前述のように、第２の実施の形態の情報処理システムは、データベース１２０に登録されたテンプレートが漏洩しても生体特徴コードが漏洩しないように、生体特徴コードを保護している。このような生体認証を「テンプレート保護型生体認証」と言うことがある。
【００５０】
第２の実施の形態の情報処理システムは、テンプレート保護型生体認証の一形態である「バイオメトリック暗号」を使用する。バイオメトリック暗号では、登録時、生体特徴コードに加えてユーザ固有の秘密情報を用いてテンプレートを生成する。照合時、照合対象の生体特徴コードを用いて、テンプレート内に隠された秘密情報を復元する。そして、復元された秘密情報に基づいてユーザを認証する。すなわち、バイオメトリック暗号では、生体特徴コードを用いて秘密情報を秘匿しておく。登録されたユーザ以外の第三者の生体特徴コードでは、秘匿された秘密情報を正しく復元することができない。
【００５１】
図４は、認証装置と端末装置の機能例を示すブロック図である。
端末装置２００は、生体特徴コード生成部２３１、秘密情報提供部２３２、登録要求部２３３および照合要求部２３４を有する。生体特徴コード生成部２３１、秘密情報提供部２３２、登録要求部２３３および照合要求部２３４は、例えば、ＣＰＵが実行するプログラムモジュールを用いて実装することができる。端末装置２００ａも、端末装置２００と同様のブロック構成によって実装することができる。
【００５２】
生体特徴コード生成部２３１は、端末装置２００のユーザが登録または照合を指示した場合、撮像装置２１１に生体画像の撮像を指示し、撮像装置２１１から生体画像を取得する。例えば、生体特徴コード生成部２３１は、ユーザの指先の画像、手のひらの画像、目の画像、または、ユーザが書いたサインの画像を取得する。生体特徴コード生成部２３１は、取得した生体画像から、撮像した部位に応じた方法で生体特徴コードを生成する。
【００５３】
例えば、生体特徴コード生成部２３１は、指先の画像から指紋の特徴を表す生体特徴コードを生成する。また、例えば、生体特徴コード生成部２３１は、手のひらの画像から静脈の特徴を表す生体特徴コードを生成する。また、例えば、生体特徴コード生成部２３１は、目の画像から虹彩の特徴を表す生体特徴コードを生成する。また、例えば、生体特徴コード生成部２３１は、サインの画像から筆跡の特徴を表す生体特徴コードを生成する。生体特徴コードは、例えば、２進数で表されたビット列である。
【００５４】
秘密情報提供部２３２は、端末装置２００のユーザが登録を指示した場合、ユーザの秘密情報を提供する。秘密情報は、予め端末装置２００のＲＡＭまたはＨＤＤに記憶されていてもよいし、入力デバイスを介してユーザから入力されてもよい。秘密情報は、個々のユーザが作成する情報または個々のユーザに対して付与される情報であって、公開されることが想定されていない情報である。秘密情報は、生体特徴コードと異なり、変更することが容易であることが好ましい。秘密情報またはテンプレートが漏洩してしまった場合、秘密情報を変更することで、古いテンプレートを無効化しセキュリティを回復することができる。秘密情報として、例えば、ユーザＩＤ、パスワード、暗証番号、暗号処理用の秘密鍵、キャッシュカード番号やクレジットカード番号などの識別コードを使用できる。
【００５５】
登録要求部２３３は、端末装置２００のユーザが登録を指示した場合、生体特徴コード生成部２３１から生体特徴コードを取得し、秘密情報提供部２３２から秘密情報を取得する。登録要求部２３３は、生体特徴コードおよび秘密情報を用いてテンプレートを生成し、テンプレートを含む登録要求を認証装置１００に送信する。テンプレートには、生体特徴コードや秘密情報そのものは含まれない。よって、認証装置１００と端末装置２００との間において、登録時の生体特徴コードおよび秘密情報は保護されている。
【００５６】
認証装置１００が複数のユーザについての認証を行う場合、ユーザを識別するための識別情報が登録要求に含まれてもよい。識別情報は、ユーザＩＤなどユーザが入力した情報でもよいし、キャッシュカード番号やクレジットカード番号など記録媒体から読み出した情報でもよい。テンプレートを生成する具体的手順については後述する。
【００５７】
照合要求部２３４は、端末装置２００のユーザが照合を指示した場合、生体特徴コード生成部２３１から生体特徴コードを取得する。照合要求部２３４は、生体特徴コードを用いて照合データを生成し、照合データを含む照合要求を認証装置１００に送信する。照合データは、生体特徴コードそのものとは異なる。よって、認証装置１００と端末装置２００との間において、照合時の生体特徴コードは保護されている。認証装置１００が複数のユーザについての認証を行う場合、ユーザを識別するための識別情報が照合要求に含まれてもよい。照合データを生成する具体的手順については後述する。
【００５８】
認証装置１００は、データベース１２０、テンプレート登録部１３１、秘密情報抽出部１３２および比較部１３３を有する。データベース１２０は、例えば、ＲＡＭ１０２またはＨＤＤ１０３に確保した記憶領域を用いて実装できる。テンプレート登録部１３１、秘密情報抽出部１３２および比較部１３３は、例えば、ＣＰＵ１０１が実行するプログラムモジュールを用いて実装することができる。
【００５９】
データベース１２０は、端末装置２００，２００ａで生成されたテンプレートを記憶する。後述するように、各ユーザに対応するテンプレートには２つの項目が含まれる。テンプレート第１項は、登録時の生体特徴コードを秘密情報を用いてマスクしたマスク値である。テンプレート第２項は、秘密情報のハッシュ値である。テンプレート第１項および第２項は、例えば、２進数で表されたビット列である。認証装置１００が複数のユーザについての認証を行う場合、各テンプレートに対して識別情報が対応付けられてもよい。
【００６０】
テンプレート登録部１３１は、端末装置２００，２００ａから登録要求を受信する。すると、テンプレート登録部１３１は、登録要求に含まれるテンプレートをデータベース１２０に登録する。登録要求に識別情報が含まれる場合、テンプレート登録部１３１は、テンプレートと識別情報とを対応付けてデータベース１２０に登録してもよい。
【００６１】
秘密情報抽出部１３２は、端末装置２００，２００ａから照合要求を受信する。すると、秘密情報抽出部１３２は、データベース１２０からテンプレート第１項のマスク値を取得する。照合要求に識別情報が含まれる場合、秘密情報抽出部１３２は、その識別情報に対応するマスク値のみを取得してもよい。秘密情報抽出部１３２は、照合要求に含まれる照合データと取得したマスク値とを用いて、ユーザの秘密情報の抽出を試みる。
【００６２】
受信した照合データが、登録されたユーザの生体画像に基づいて生成されたものである場合、マスク値から秘密情報を正しく抽出することができる。一方、受信した照合データが、登録されたユーザとは異なる他のユーザの生体画像に基づいて生成されたものである場合、マスク値から秘密情報を抽出することができない。秘密情報抽出部１３２は、抽出データを比較部１３３に出力する。秘密情報を抽出する具体的手順については後述する。
【００６３】
比較部１３３は、秘密情報抽出部１３２から取得した抽出データのハッシュ値を算出する。また、比較部１３３は、データベース１２０からテンプレート第２項のハッシュ値を取得する。照合要求に識別情報が含まれていた場合、比較部１３３は、その識別情報に対応するハッシュ値のみをデータベース１２０から取得してもよい。
【００６４】
比較部１３３は、データベース１２０から取得したハッシュ値と抽出データから算出したハッシュ値とを比較し、両者が一致するか判定する。両者が一致する場合、比較部１３３は、照合要求の送信元の端末装置を使用するユーザが登録されたユーザである（認証成功）と判定する。両者が一致しない場合、比較部１３３は、照合要求の送信元の端末装置を使用するユーザが登録されたユーザではない（認証失敗）と判定する。比較部１３３は、認証成功または認証失敗を示す認証結果を照合要求の送信元に回答する。
【００６５】
ここで、認証装置１００の内部では、秘密情報抽出部１３２が秘密情報の復元を試みている。比較部１３３の比較が成功した場合には、復元された秘密情報はテンプレートの生成に使用された正しい秘密情報であることを意味する。そのため、認証装置１００の管理者が悪意をもって認証装置１００を操作した場合や、攻撃者が認証装置１００を不正に操作することに成功した場合には、秘密情報が不正使用されるリスクがある。そこで、第２の実施の形態では、後述するように、秘密情報が不正使用されても、テンプレートから生体特徴コードを抽出することができないようにしている。また、照合要求に含まれる照合データからも、生体特徴コードを抽出できないようにしている。
【００６６】
図５は、テンプレートテーブルの例を示す図である。
テンプレートテーブル１２１は、データベース１２０に記憶されている。テンプレートテーブル１２１は、認証単位毎（例えば、ユーザ毎）に、識別情報、生体特徴コードのマスク値および秘密情報のハッシュ値を含む。識別情報は、認証単位を識別する情報であり、ユーザＩＤやカード番号などであってもよい。
【００６７】
生体特徴コードのマスク値は、テンプレート第１項である。マスク値は、登録時の生体特徴コードを、秘密情報から生成されたビット列を用いてマスクしたものである。マスク値から元の生体特徴コードを推定することは困難である。秘密情報のハッシュ値は、テンプレート第２項である。ハッシュ値は、所定のハッシュ関数を用いて秘密情報から変換したものである。ハッシュ値から元の秘密情報を推定することは困難である。
【００６８】
次に、生体特徴コードを保護する方法について説明する。まず、バイオメトリック暗号の一形態であるファジーコミットメントの単純な実装例について説明し、その次に、ファジーコミットメントを改良した実装例について説明する。
【００６９】
ファジーコミットメントの単純な実装例では、登録時、数式（１）に示すようなテンプレートが生成される。数式（１）において、「ｘ」は登録時に生成された生体特徴コード、「ｗ」は秘密情報、「Ｅｎｃｏｄｅ」は所定の誤り訂正符号化方法における符号化関数、「Ｈａｓｈ」は所定のハッシュ関数である。「ｖ」は秘密情報ｗを符号化したものである。テンプレート第１項は、生体特徴コードｘをｖでマスクしたものである。テンプレート第２項は、秘密情報ｗのハッシュ値である。なお、各データを２進数として扱う場合、「＋」および「−」の演算子は何れもビット毎の排他的論理和を意味する。ただし、各データを整数として扱う場合、「＋」および「−」の演算子は加算および減算を意味する。
【００７０】
【数１】
0006488954.tif 000002
【００７１】
ファジーコミットメントの単純な実装例では、照合時、数式（２）に示すような「ｖ*」が算出される。数式（２）において、「ｙ」は照合時に生成された生体特徴コードである。すなわち、ｖ*は生体特徴コードｙとテンプレート第１項との差であり、ｖにδ＝ｙ−ｘを加えたものである。登録時の生体特徴コードｘと照合時の生体特徴コードｙとが十分に近似する場合、δはゼロに近似し、ｖ*はｖに近似する。ただし、使用する撮像装置の違いや撮像環境の違い、ユーザの姿勢の違いなどの要因で、生体特徴コードｘと生体特徴コードｙとは完全には一致しないことが多い。
【００７２】
【数２】
0006488954.tif 000003
【００７３】
次に、ｖ*から数式（３）に示すような「ｗ*」が算出される。数式（３）において、「Ｄｅｃｏｄｅ」は所定の誤り訂正符号化方法における復号関数であり、符号化関数Ｅｎｃｏｄｅに対応するものである。ｖ*＝ｖ＋δを復号するにあたり、生体特徴コードｘと生体特徴コードｙとが十分に近似する場合、δは誤り訂正機能によって除去可能な軽微なノイズとなる。よって、ｖ*を復号したｗ*は元の秘密情報ｗと一致する。一方、生体特徴コードｘと生体特徴コードｙとが近似しない場合、δは誤り訂正機能によって除去できない重大なノイズになる。よって、ｖ*を復号したｗ*は元の秘密情報ｗと一致しない。
【００７４】
【数３】
0006488954.tif 000004
【００７５】
そして、ｗ*のハッシュ値が算出され、数式（４）に示すようにテンプレート第２項と比較される。生体特徴コードｘと生体特徴コードｙとが十分に近似する場合、ｗ*は秘密情報ｗと一致するため、２つのハッシュ値は一致する。一方、生体特徴コードｘと生体特徴コードｙとが近似しない場合、ｗ*は秘密情報ｗと一致しないため、２つのハッシュ値は一致しない。２つのハッシュ値が一致する場合は認証成功と判定され、２つのハッシュ値が一致しない場合は認証失敗と判定される。なお、異なるデータから同じハッシュ値が算出される確率（ハッシュ値が衝突する確率）は十分に小さいものとする。
【００７６】
【数４】
0006488954.tif 000005
【００７７】
このようなファジーコミットメントの単純な実装例では、テンプレートに生体特徴コードｘそのものは含まれていない。しかし、照合の過程でｗ*＝秘密情報ｗが算出される。秘密情報ｗが不正使用されると、所定の符号化関数を用いてｖを算出することが可能となり、テンプレート第１項とｖから生体特徴コードｘを復元することができる。よって、生体特徴コードｘが漏洩するリスクがある。また、照合の過程で生体特徴コードｙそのものが演算に使用されている。このため、生体特徴コードｙが漏洩するリスクもある。
【００７８】
そこで、第２の実施の形態では、以下に説明するファジーコミットメントを改良した実装例を用いる。改良した実装例では、生体特徴コードｘ，ｙを取得できないように、誤り訂正符号化を二重に行う。第１の誤り訂正符号化方法に基づく符号化関数「Ｅｎｃｏｄｅ1」および復号関数「Ｄｅｃｏｄｅ1」を用意する。また、第２の誤り訂正符号化方法に基づく符号化関数「Ｅｎｃｏｄｅ2」および復号関数「Ｄｅｃｏｄｅ2」を用意する。
【００７９】
第１の誤り訂正符号化方法としては、（ｎ，ｋ1，２ｄ1＋１）の線形符号を用いる。「ｎ」は符号化後のビット長、「ｋ1」は符号化前のビット長、「ｄ1」は復号の際に訂正可能なビット数を表す。第２の誤り訂正符号化方法としては、（ｋ2，ｐ，２ｄ2＋１）の線形符号または非線形符号を用いる。「ｋ2」は符号化後のビット長、「ｐ」は符号化前のビット長、「ｄ2」は復号の際に訂正可能なビット数を示す。符号化を二重に行うため、ｋ2はｋ1と同じかまたはｋ1より小さな値とする。
【００８０】
線形符号の例として、ハミング符号、ＢＣＨ（Bose Chaudhuri Hocquenghem）符号、リードソロモン符号、ターボ符号、ＬＤＰＣ（Low Density Parity Check）符号、畳み込み符号などを挙げることができる。非線形符号の例として、ＮＲ符号、ナドラ符号、グリーン符号などを挙げることができる。第２の誤り訂正符号化方法に線形符号を用いる場合、第１の誤り訂正符号化方法と第２の誤り訂正符号化方法の種類が同じであってもよい。
【００８１】
２つの誤り訂正符号化方法にリードソロモン符号を用いる場合、例えば、ｎ＝２０４７，ｋ1＝１０２３，ｋ2＝５１１，ｐ＝３５１に設定した実装例が考えられる。また、２つの誤り訂正符号化方法にＢＣＨ符号を用いる場合、例えば、ｎ＝８１９１，ｋ1＝１５３５，ｋ2＝１０２３，ｐ＝２２３に設定した実装例が考えられる。
【００８２】
改良した実装例では、登録時、数式（５）に示すようなテンプレートが生成される。数式（５）において、「ｓ*」は登録時に生成される乱数であり、ハミング距離がｄ2以下となるものである。「ｒ」は秘密情報ｗを符号化関数Ｅｎｃｏｄｅ2を用いて符号化したものである。テンプレート第１項は、生体特徴コードｘを、ｒ＋ｓ*を符号化関数Ｅｎｃｏｄｅ1を用いて符号化したビット列でマスクしたものである。すなわち、生体特徴コードｘが、秘密情報ｗを二重に符号化したビット列を用いてマスクされる。テンプレート第２項は、数式（１）の場合と同様に、秘密情報ｗのハッシュ値である。
【００８３】
【数５】
0006488954.tif 000006
【００８４】
改良した実装例では、照合時、数式（６）に示すような照合データが算出される。数式（６）において、「ｓ」は照合時に生成される乱数であり、ハミング距離がｄ2以下となるものである。ファジーコミットメントの単純な実装例では、照合データが生体特徴コードｙそのものであったのに対し、改良した実装例では、乱数ｓを符号化関数Ｅｎｃｏｄｅ1を用いて符号化したビット列で、生体特徴コードｙをマスクしている。なお、各データを２進数として扱う場合、「−ｙ」は生体特徴コードｙと同一である。各データを整数として扱う場合、「−ｙ」は生体特徴コードｙの正負を反転させたものである。
【００８５】
【数６】
0006488954.tif 000007
【００８６】
次に、数式（７）に示すような「Ｔ」が算出される。Ｔは、テンプレート第１項に照合データを加算したものである。ここで、第１の誤り訂正符号化方法は線形符号であるため、任意のデータα，βについてＥｎｃｏｄｅ1（α）＋Ｅｎｃｏｄｅ1（β）＝Ｅｎｃｏｄｅ1（α＋β）が成立する。そこで、Ｔ＝ｘ−ｙ＋Ｅｎｃｏｄｅ1（ｒ＋ｓ＋ｓ*）と整理することができる。数式（２）の場合と同様に、生体特徴コードｘと生体特徴コードｙとが十分に近似する場合、ＴはＥｎｃｏｄｅ1（ｒ＋ｓ＋ｓ*）に近似する。
【００８７】
【数７】
0006488954.tif 000008
【００８８】
次に、Ｔから数式（８）に示すような「ｗ*」が算出される。ｗ*は、数式（７）のＴを復号関数Ｄｅｃｏｄｅ1を用いて復号し、復号されたビット列を更に復号関数Ｄｅｃｏｄｅ2を用いて復号したものである。復号関数Ｄｅｃｏｄｅ1を使用するにあたり、生体特徴コードｘと生体特徴コードｙとが十分に近似する場合、すなわち、ｘ−ｙのハミング距離がｄ1以下である場合、ｘ−ｙは誤り訂正機能によって除去可能な軽微なノイズとなる。よって、Ｔを復号したビット列はｒ＋ｓ＋ｓ*に相当する。
【００８９】
復号関数Ｄｅｃｏｄｅ2を使用するにあたり、乱数ｓ，ｓ*の制約から、ｓ＋ｓ*のハミング距離はｄ2以下となる。すなわち、ｓ＋ｓ*は誤り訂正機能によって除去可能な軽微なノイズとなる。よって、復号関数Ｄｅｃｏｄｅ1によってＴを正常に復号できた場合、復号関数Ｄｅｃｏｄｅ2の復号結果は秘密情報ｗと一致する。一方、生体特徴コードｘと生体特徴コードｙとが近似しない場合、すなわち、ｘ−ｙのハミング距離がｄ1より大きい場合、ｘ−ｙは誤り訂正機能によって除去できない重大なノイズになる。よって、復号関数Ｄｅｃｏｄｅ1の復号結果はｒ＋ｓ＋ｓ*と異なるビット列になり、復号関数Ｄｅｃｏｄｅ2の復号結果は秘密情報ｗと一致しない。
【００９０】
【数８】
0006488954.tif 000009
【００９１】
そして、数式（８）のｗ*のハッシュ値が算出され、数式（４）の場合と同様にテンプレート第２項と比較される。生体特徴コードｘと生体特徴コードｙとが十分に近似する場合、ｗ*は秘密情報ｗと一致するため、２つのハッシュ値は一致する。一方、生体特徴コードｘと生体特徴コードｙとが近似しない場合、ｗ*は秘密情報ｗと一致しないため、２つのハッシュ値は一致しない。２つのハッシュ値が一致する場合は認証成功と判定され、２つのハッシュ値が一致しない場合は認証失敗と判定される。
【００９２】
改良した実装例では、認証装置１００は秘密情報ｗや秘密情報ｗを符号化したｒを知ることができる。しかし、認証装置１００は乱数ｓ*を知らないため、テンプレート第１項から生体特徴コードｘを復元することは困難である。よって、認証装置１００内で秘密情報ｗが不正使用されることがあっても、生体特徴コードｘを保護することができる。また、認証装置１００は乱数ｓを知らないため、照合データから生体特徴コードｙを復元することも困難である。よって、生体特徴コードｙを保護することができる。
【００９３】
第２の実施の形態では、以上説明した改良した実装例に基づいてユーザ認証を行う。次に、認証装置１００および端末装置２００，２００ａの処理手順を説明する。
図６は、登録処理の手順例を示すフローチャートである。
【００９４】
ここでは、ユーザが端末装置２００を使用して登録要求を発行する場合を考える。同様の方法で、端末装置２００ａを使用して登録要求を発行することも可能である。
（Ｓ１０）生体特徴コード生成部２３１は、撮像装置２１１から生体画像を取得する。生体特徴コード生成部２３１は、生体画像に写った指紋、静脈、虹彩などの身体的特徴または筆跡などの行動的特徴を解析し、生体特徴コードｘを生成する。
【００９５】
（Ｓ１１）秘密情報提供部２３２は、ユーザ固有の秘密情報ｗを取得する。秘密情報提供部２３２は、ＲＡＭまたはＨＤＤから秘密情報ｗを読み出してもよいし、ユーザに秘密情報ｗの入力を促して入力デバイスから秘密情報ｗを取得してもよい。
【００９６】
（Ｓ１２）登録要求部２３３は、第２の誤り訂正符号化方法に従った符号化関数Ｅｎｃｏｄｅ2を用いて、ステップＳ１１で取得された秘密情報ｗを符号化する。すなわち、登録要求部２３３は、ｒ＝Ｅｎｃｏｄｅ2（ｗ）を算出する。
【００９７】
（Ｓ１３）登録要求部２３３は、ハミング距離がｄ2（第２の誤り訂正符号化方法の訂正可能ビット数）以下になるような乱数ｓ*を生成する。
（Ｓ１４）登録要求部２３３は、ステップＳ１２で算出したｒとステップＳ１３で生成した乱数ｓ*とを合成したｒ＋ｓ*を算出する。ｒ＋ｓ*は、例えば、ｒとｓ*の排他的論理和である。登録要求部２３３は、第１の誤り訂正符号化方法に従った符号化関数Ｅｎｃｏｄｅ1を用いてｒ＋ｓ*を符号化する。すなわち、登録要求部２３３は、Ｅｎｃｏｄｅ1（ｒ＋ｓ*）を算出する。
【００９８】
（Ｓ１５）登録要求部２３３は、ステップＳ１０で生成された生体特徴コードｘを、ステップＳ１４で算出したＥｎｃｏｄｅ1（ｒ＋ｓ*）を用いてマスクする。すなわち、登録要求部２３３は、ｘ＋Ｅｎｃｏｄｅ1（ｒ＋ｓ*）を算出する。ｘ＋Ｅｎｃｏｄｅ1（ｒ＋ｓ*）は、例えば、ｘとＥｎｃｏｄｅ1（ｒ＋ｓ*）の排他的論理和である。
【００９９】
（Ｓ１６）登録要求部２３３は、秘密情報ｗのハッシュ値Ｈａｓｈ（ｗ）を算出する。
（Ｓ１７）登録要求部２３３は、ステップＳ１５で算出したｘ＋Ｅｎｃｏｄｅ1（ｒ＋ｓ*）をテンプレート第１項とし、ステップＳ１６で算出したＨａｓｈ（ｗ）をテンプレート第２項とするテンプレートを生成する。登録要求部２３３は、テンプレートを含む登録要求を認証装置１００に送信する。登録要求に識別情報を含めてもよい。
【０１００】
（Ｓ１８）テンプレート登録部１３１は、端末装置２００から登録要求を受信する。テンプレート登録部１３１は、受信した登録要求に含まれるテンプレートをデータベース１２０に登録する。このとき、テンプレート登録部１３１は、テンプレート第１項を生体特徴コードのマスク値としてテンプレートテーブル１２１に登録し、テンプレート第２項を秘密情報のハッシュ値としてテンプレートテーブル１２１に登録する。登録要求に識別情報が含まれる場合、識別情報をテンプレートテーブル１２１に登録してもよい。
【０１０１】
図７は、照合処理の手順例を示すフローチャートである。
ここでは、ユーザが端末装置２００を使用して照合要求を発行する場合を考える。同様の方法で、端末装置２００ａを使用して照合要求を発行することも可能である。
【０１０２】
（Ｓ２０）生体特徴コード生成部２３１は、撮像装置２１１から生体画像を取得する。生体特徴コード生成部２３１は、生体画像に写った指紋、静脈、虹彩などの身体的特徴または筆跡などの行動的特徴を解析し、生体特徴コードｙを生成する。
【０１０３】
（Ｓ２１）照合要求部２３４は、ハミング距離がｄ2（第２の誤り訂正符号化方法の訂正可能ビット数）以下になるような乱数ｓを生成する。
（Ｓ２２）照合要求部２３４は、第１の誤り訂正符号化方法に従った符号化関数Ｅｎｃｏｄｅ1を用いて、ステップＳ２１で生成した乱数ｓを符号化する。すなわち、照合要求部２３４は、Ｅｎｃｏｄｅ1（ｓ）を算出する。
【０１０４】
（Ｓ２３）照合要求部２３４は、ステップＳ２０で生成された生体特徴コードｙを、ステップＳ２２で算出したＥｎｃｏｄｅ1（ｓ）を用いてマスクする。具体的には、照合要求部２３４は、−ｙ＋Ｅｎｃｏｄｅ1（ｓ）を算出する。−ｙ＋Ｅｎｃｏｄｅ1（ｓ）は、例えば、ｙとＥｎｃｏｄｅ1（ｓ）の排他的論理和である。照合要求部２３４は、−ｙ＋Ｅｎｃｏｄｅ1（ｓ）を照合データとして含む照合要求を認証装置１００に送信する。照合要求部２３４は、照合要求に識別情報を含めてもよい。
【０１０５】
（Ｓ２４）秘密情報抽出部１３２は、端末装置２００から照合要求を受信する。秘密情報抽出部１３２は、テンプレートテーブル１２１からテンプレート第１項である生体特徴コードのマスク値ｘ＋Ｅｎｃｏｄｅ1（ｒ＋ｓ*）を取得する。照合要求に識別情報が含まれている場合、秘密情報抽出部１３２は、当該識別情報に対応付けられたマスク値を取得する。秘密情報抽出部１３２は、取得したマスク値と照合要求に含まれる照合データとを合成したＴを算出する。すなわち、秘密情報抽出部１３２は、Ｔ＝ｘ−ｙ＋Ｅｎｃｏｄｅ1（ｒ＋ｓ＋ｓ*）を算出する。Ｔは、例えば、ｘ＋Ｅｎｃｏｄｅ1（ｒ＋ｓ*）と−ｙ＋Ｅｎｃｏｄｅ1（ｓ）の排他的論理和である。
【０１０６】
（Ｓ２５）秘密情報抽出部１３２は、第１の誤り訂正符号化方法に従った復号関数Ｄｅｃｏｄｅ1を用いて、ステップＳ２４で算出したＴを復号する。すなわち、秘密情報抽出部１３２は、Ｄｅｃｏｄｅ1（Ｔ）を算出する。
【０１０７】
（Ｓ２６）秘密情報抽出部１３２は、第２の誤り訂正符号化方法に従った復号関数Ｄｅｃｏｄｅ2を用いて、ステップＳ２５のＤｅｃｏｄｅ1（Ｔ）を復号する。すなわち、秘密情報抽出部１３２は、ｗ*＝Ｄｅｃｏｄｅ2（Ｄｅｃｏｄｅ1（Ｔ））を算出する。
【０１０８】
（Ｓ２７）秘密情報抽出部１３２は、ステップＳ２６で算出したｗ*のハッシュ値Ｈａｓｈ（ｗ*）を算出する。このハッシュ関数は、ステップＳ１６と同じものを使用する。
（Ｓ２８）比較部１３３は、テンプレートテーブル１２１からテンプレート第２項である秘密情報のハッシュ値Ｈａｓｈ（ｗ）を取得する。照合要求に識別情報が含まれている場合、比較部１３３は、当該識別情報に対応付けられたハッシュ値を取得する。比較部１３３は、ステップＳ２７で算出されたハッシュ値Ｈａｓｈ（ｗ*）と登録されたハッシュ値Ｈａｓｈ（ｗ）とを比較する。Ｈａｓｈ（ｗ*）とＨａｓｈ（ｗ）とが一致する場合はステップＳ２９に処理が進み、一致しない場合はステップＳ３０に処理が進む。
【０１０９】
（Ｓ２９）比較部１３３は、認証成功を端末装置２００に通知する。
（Ｓ３０）比較部１３３は、認証失敗を端末装置２００に通知する。
なお、第２の実施の形態では、秘密情報ｗが正常に復元されたか否かに応じてユーザ認証を行い、認証結果を端末装置２００，２００ａに通知することとした。これに対し、認証装置１００で復元された秘密情報ｗを他の用途に使用するようにしてもよい。
【０１１０】
例えば、秘密情報ｗとして、暗証番号やクレジットカード番号など他の認証システムに入力すべき入力情報を使用する。生体認証によって秘密情報ｗを正常に復元できた場合、認証装置１００は、ユーザに代わって秘密情報ｗ（入力情報）を他の認証システムに入力する。これにより、ユーザは入力情報を覚えていなくても安全に他の認証システムを利用できる。また、例えば、秘密情報ｗとして復号鍵を使用する。生体認証によって秘密情報ｗを正常に復元できた場合、認証装置１００は、秘密情報ｗ（復号鍵）を用いて、暗号化によって保護されている他の秘密情報を復元する。
【０１１１】
第２の実施の形態の情報処理システムによれば、登録時に生成された生体特徴コードｘと照合時に生成された生体特徴コードｙとが完全に一致しなくても、十分に近似していれば認証成功と判定される。よって、ユーザ認証を適切に実行することができる。また、生体特徴コードｘそのものではなく生体特徴コードｘをマスクしたマスク値がデータベース１２０に登録される。よって、生体特徴コードｘが漏洩するリスクを低減できる。また、秘密情報ｗそのものではなく秘密情報ｗのハッシュ値がデータベース１２０に登録される。よって、秘密情報ｗが漏洩するリスクを低減できる。
【０１１２】
また、登録時に、端末装置２００，２００ａから認証装置１００に対して生体特徴コードｘのマスク値と秘密情報ｗのハッシュ値が送信される。よって、認証装置１００と端末装置２００，２００ａとの間の経路上で生体特徴コードｘや秘密情報ｗが漏洩するリスクを低減できる。また、照合時に、端末装置２００，２００ａから認証装置１００に対して、生体特徴コードｙのマスク値が送信される。よって、認証装置１００と端末装置２００，２００ａとの間の経路上で生体特徴コードｙが漏洩するリスクを低減できる。
【０１１３】
また、データベース１２０に登録された生体特徴コードｘのマスク値は、秘密情報ｗに加えて認証装置１００が知らない乱数ｓ*にも依存する。よって、認証装置１００で復元された秘密情報ｗを悪意ある管理者または攻撃者が知っても、データベース１２０から生体特徴コードｘを推定することは困難であり、生体特徴コードｘが漏洩するリスクを低減できる。また、照合時に取得する生体特徴コードｙのマスク値は、認証装置１００が知らない乱数ｓに依存する。よって、悪意ある管理者または攻撃者が生体特徴コードｙを推定することは困難であり、生体特徴コードｙが漏洩するリスクを低減できる。
【０１１４】
また、二重に誤り訂正符号化を行うことで、復号時に乱数ｓ，ｓ*を軽微なノイズとして除去できると共に、生体特徴コードｘ，ｙの差分が十分に小さい場合には当該差分を軽微なノイズとして除去できる。よって、ユーザ認証を適切に実行することができる。
【０１１５】
なお、前述のように、第１の実施の形態の情報処理は、暗号データ処理装置１０にプログラムを実行させることで実現できる。第２の実施の形態の情報処理は、認証装置１００および端末装置２００，２００ａにプログラムを実行させることで実現できる。
【０１１６】
プログラムは、コンピュータ読み取り可能な記録媒体（例えば、記録媒体１１３）に記録しておくことができる。記録媒体として、例えば、磁気ディスク、光ディスク、光磁気ディスク、半導体メモリなどを使用できる。磁気ディスクには、ＦＤおよびＨＤＤが含まれる。光ディスクには、ＣＤ、ＣＤ−Ｒ（Recordable）／ＲＷ（Rewritable）、ＤＶＤおよびＤＶＤ−Ｒ／ＲＷが含まれる。プログラムは、可搬型の記録媒体に記録されて配布されることがある。その場合、可搬型の記録媒体から他の記録媒体（例えば、ＨＤＤ１０３）にプログラムをコピーして実行してもよい。
【符号の説明】
【０１１７】
１０  暗号データ処理装置
１１  記憶部
１２  データ処理部
１３ａ，１３ｂ  誤り訂正符号化方法
１４ａ  データ
１４ｂ  登録対象データ
１４ｃ  照合対象データ
１５ａ，１５ｂ，１５ｃ  符号
１６ａ，１６ｂ  乱数
１７ａ，１７ｂ  マスクデータ
１７ｃ  合成データ
【図１】
0006488954.tif 000010
【図２】
0006488954.tif 000011
【図３】
0006488954.tif 000012
【図４】
0006488954.tif 000013
【図５】
0006488954.tif 000014
【図６】
0006488954.tif 000015
【図７】
0006488954.tif 000016