以下、本発明の認証システムを具現化した一実施の形態である認証システム100について、図面を参照して説明する。参照する図面は、本発明が採用し得る技術的特徴を説明するために用いられるものである。図面に記載されている装置の構成、各種処理のフローチャート等は、それのみに限定する趣旨ではなく、単なる説明例である。
1.概要
図1に示すように、認証システム100は、クライアント端末1,認証サーバー51及び複数の記憶サーバー52〜56を備える。認証システム100は、クライアント端末1から送信される生体情報を表すデータと、予め登録されたデータとを比較して認証サーバー51が生体認証を行う。本実施形態の認証システム100は、認証結果をクライアント端末1に通知する。クライアント端末1は、ネットワーク(図示外)を介して認証サーバー51と接続する。認証サーバー51はネットワーク(図示外)を介して、複数の記憶サーバー52〜56の各々と接続する。
1−1.認証時の処理の概要
図2に示すように、認証時には、クライアント端末1のプロセッサは、一つの生体情報入力装置から一つの生体情報を取得する(S101)。生体情報とは、生体認証において認証(照合)の基準として用いられるユーザーの身体的特徴を表す情報であり、例えば、ユーザーの音声、虹彩画像、顔画像、指紋画像及び静脈画像等の情報である。本実施形態では、生体情報入力装置の一例として、指紋入力装置35(図1参照)が採用され、生体情報の一例として指紋画像データが取得される。説明を簡単にするために、本実施形態では、特定の一つの指(例えば、右手の人差し指)の指紋について処理が実行される場合について説明する。
クライアント端末1のプロセッサは、S101で取得した一つの生体情報から、互いに異なる特性及び互いに異なる認証性能を有するアルゴリズムを用いて特徴を抽出し、抽出した特徴に基づき特徴情報を生成する(S102)。より具体的には、CPU10は、互いに異なる特性及び互いに異なる認証性能を有するM個(Mは複数)のアルゴリズムを用いて、M個の特徴情報を生成する。クライアント端末1が一つの生体情報から、M個の特徴情報を抽出するのは、一つの特徴情報に基づき認証を実行する場合に比べ、認証精度を向上させることができるためである(例えば、国際公開第2009/096475号参照)。M個の特徴情報には、第一特徴情報及び第二特徴情報が含まれる。第一特徴情報は、第一アルゴリズムを用いて第一特徴を抽出し、抽出した第一特徴に基づく特徴情報として、標準化されたデータ構造を用いて表された情報である。第二特徴情報は、第二アルゴリズムを用いて第二特徴を抽出し、抽出した第二特徴に基づく特徴情報として標準化されていないデータ構造を用いて表し、且つ、第一特徴情報を用いて生成された第一判定情報を含む情報である。本実施形態では、一例として、Mが2であり、第一アルゴリズムがマニューシャ法であり、第二アルゴリズムが周波数解析法である場合について説明する。つまり、本実施形態のクライアント端末1のプロセッサは、一つの生体情報から、第一アルゴリズムを用いて第一特徴を抽出し、抽出した第一特徴に基づく第一特徴情報を生成する。本実施形態のクライアント端末1のプロセッサは、一つの生体情報から、第二アルゴリズムを用いて第二特徴を抽出し、抽出した第二特徴に基づく第二特徴情報を生成する。
マニューシャ法では、指紋画像データに基づき指紋の凸部の連なりである隆線の二つに分かれる分岐点、行き止まりの端点等の特徴点の位置、種類、及び方向、指紋中心座標に関する情報が第一特徴として抽出される。より具体的には、マニューシャ法では、例えば、指紋画像データに基づき、指紋三角州座標、指紋隆線方向等が第一特徴として抽出される。第一特徴情報は標準化されたデータ構造を用いて第一特徴を表す。標準化されたデータ構造とは、公的又は私的機関によって標準の規格等が設定され、それに従って統一して記述されたデータ構造である。標準化されたデータ構造は、広く公開されたデータ構造であるため、データ構造を解析することによって、アルゴリズムを用いて抽出された特徴を特定することが可能である。第一特徴情報は、例えば、ISO/IEC 19794−2:2011及びANSI378−2004で標準化されたデータ構造を用いて表される。
本実施形態では、複数の特徴情報の一部又は全部は、S101で取得された一つの生体情報から固有のアルゴリズムを用いて抽出可能な特徴のうちの、ユーザーにより設定される要求精度に応じた部分を表す。要求精度は、認証結果の精度の指標であり、本実施形態では0〜100(%)の数値で表される。要求精度が高いほど、認証結果に対する信頼性が高い。本実施形態では第一特徴情報に含まれる第一特徴の量(部分)は、認証結果に求められる要求精度に応じて調整される。
周波数解析法では、指紋画像データによって表される指紋画像の濃淡を信号波形とみなし、波形スペクトル系列が特徴として抽出される。第二特徴情報は標準化されていないデータ構造を用いて第二特徴を表す。標準化されていないデータ構造は、公開されていないデータ構造であるため、データ構造を解析したとしても、データ構造を特定できない限り、アルゴリズムを用いて抽出された特徴を特定することはできない。第二特徴情報は、周波数解析法によって抽出された特徴情報を表す仮第二特徴情報に、第一特徴情報の真偽判定情報が埋め込まれたデータである。真偽判定情報は、認証用情報が改竄されたか否かを判断する処理で用いられる情報である。本実施形態の真偽判定情報は、第一特徴情報のHASH値である。第一特徴情報の場合と同様に、本実施形態では仮第二特徴情報に含まれる第二特徴の量(部分)は、認証結果に求められる要求精度に応じて調整される。
クライアント端末1のプロセッサは、S102で生成した複数の特徴情報のうちの、生体認証に用いる1以上の特徴情報である認証用情報を、複数の認証用情報ブロックに分け、複数の認証用情報ブロックを認証用情報を表す情報として認証サーバー51に送信する(S103)。本実施形態の認証用情報は、複数の特徴情報すべて、つまり、第一特徴情報及び第二特徴情報である。本実施形態のクライアント端末1のプロセッサは、予め記憶された複数の方法の中から、属性情報に基づき一意に定まる方法を用いて、認証用情報を複数の認証用情報ブロックに分ける。属性情報は、クライアント端末1の識別情報、ユーザーの識別情報及び生体情報が取得されたことに起因して決まる情報の少なくとも何れかを含む情報である。
クライアント端末1のプロセッサは、S102で生成された複数の認証用情報ブロックと、複数の認証用情報ブロックに基づき認証用情報を復元するのに用いられる認証用復元情報とを認証サーバー51に送信する(S104)。本実施形態のクライアント端末1のプロセッサは、複数の認証用情報ブロックに含まれる認証用情報ブロックの送信順序を、属性情報に基づき一意に定まる順序に決定する。S104では、決定された順序で複数の認証用情報ブロックが送信される。本実施形態では、認証用復元情報として属性情報が送信される。
認証サーバー51のプロセッサは、クライアント端末1から送信された複数の認証用情報ブロックを認証用情報を表す情報として受信する(S111)。本実施形態の認証サーバー51のプロセッサは、S111で受信した複数の認証用情報ブロックから認証用復元情報を用いて認証用情報を復元する。認証サーバー51のプロセッサは、認証用情報と、認証用情報に含まれる真偽判定情報とに基づき、認証用情報が改竄されているかどうかを判断する(S112)。
認証サーバー51のプロセッサは、認証用情報と予め登録された参照用の特徴情報であるテンプレートとを比較して、認証結果を算出する(S113)。本実施形態の認証システム100は、テンプレートを分けて生成された複数の参照用情報ブロックを分散記憶するための複数の記憶サーバー52〜56を備える。認証サーバー51は、複数の参照用情報ブロックに基づき、テンプレートを復元するための参照用復元情報をHDD64に記憶する。記憶サーバー52〜56は、認証サーバー51からの要求に応じて、テンプレートを復元するための参照用情報ブロックを認証サーバー51に送信する。認証サーバー51は、記憶サーバー52〜56から送信された参照用情報部ブロックから参照用復元情報を用いてテンプレートを復元する。本実施形態の参照用復元情報はユーザーの識別情報である。本実施形態の復元されたテンプレートには、前述の真偽判定情報が含まれている。認証サーバー51のプロセッサは、テンプレートと真偽判定情報とに基づき、テンプレートが改竄されたか否かを判断する。本実施形態の認証サーバー51のプロセッサは、テンプレートが改竄されていないと判断される場合に、認証結果を算出する(S113)。本実施形態では更に、認証サーバー51のプロセッサは、特徴情報の要約が、記憶手段に記憶された特徴情報の要約の履歴と一致又は類似するか否かを判断する。認証サーバー51のプロセッサは、認証用情報及びテンプレートが改竄されたと判断されていない場合に、認証用情報と予め登録された参照用の特徴情報であるテンプレートとを比較して、認証結果を算出する(S113)。本実施形態では、認証結果として、「本人の確からしさ」を算出する。本人の確からしさとは、本人である可能性を示す信頼度を数値で示すものであり、本実施形態では、0〜100の数値で表される。本人の確からしさの最高値(100)は、明らかに本人であると判断される場合である。
本実施形態の認証サーバー51のプロセッサは、S113で算出した認証結果を、クライアント端末1に送信する。クライアント端末1のプロセッサは、認証サーバー51から認証結果が送信された場合に、認証結果を受信する。
1−2.登録時の処理の概要
図3において、図2に示す処理と同様の処理には同じステップ番号を付与している。図3に示すように、登録時には、クライアント端末1のプロセッサは、認証時の処理と同様のS101からS104の処理を実行する。認証サーバー51のプロセッサは、認証時の処理と同様のS111及びS112の処理を実行した後、登録要件を確認し、登録要件を満たす場合には、S111で受信した認証用情報をテンプレートとして登録する(S116)。本実施形態の登録要件は、過去に同一又は類似の特徴情報が他のユーザーの特徴情報として送信されていないことを含む。また本実施形態では、同一の指紋を複数回(例えば、3〜6回)入力させ、得られた生体情報に基づき生成される特徴情報が所定の範囲に収まることを登録要件としている。本実施形態のテンプレートは、同一の指紋についての複数回分の特徴情報を含む。前述のように本実施形態の認証システム100では、テンプレートを、認証サーバー51と、記憶サーバー52〜56とに分散させて記憶させている。認証サーバー51のプロセッサは、テンプレートを複数の参照用情報ブロックに分け、各参照用情報ブロックを記憶するサーバーを決定する。参照用情報ブロックの生成方法は、予め定められればよく、例えば、ユーザーに割り当てられた識別情報から一意に決定される方法が採用されてよい。認証サーバー51のプロセッサは、各参照用情報ブロックを記憶するサーバーを、認証サーバー51と、記憶サーバー52〜56との中から所定の方法で決定し、決定したサーバーに参照用情報ブロックを記憶させる。本実施形態の認証サーバー51のプロセッサは、以下の処理を実行する。認証サーバー51のプロセッサは、テンプレートに対応づけられたユーザーの識別情報に基づき、テンプレートを複数の参照用情報ブロックに分ける。認証サーバー51のプロセッサは、生成された複数の参照用情報ブロックの各々に、複数の記憶サーバー52〜56及び認証サーバー51のうちの何れかを、当該参照用情報ブロックを記憶するサーバーとして決定する。認証サーバー51のプロセッサは、複数の参照用情報ブロックの各々を、決定されたサーバーに送信する。
2.認証システム100の電気的構成
図1を参照して、認証システム100の電気的構成について説明する。まずクライアント端末1の電気的構成について説明する。本実施形態のクライアント端末1は、汎用のパーソナルコンピューター(PC)である。クライアント端末1は、PCに限定されず、マンション等のドアのオートロック装置、現金自動預け払い機(ATM)、スマートフォン等の携帯電話、及びタブレットPC等であってもよい。図1に示すように、クライアント端末1は、クライアント端末1の制御を司るプロセッサであるCPU10を備えている。CPU10には、ROM11,RAM12,ハードディスクドライブ(以下、「HDD」という。)13,及び入出力インターフェース19が、バス18を介して接続されている。ROM11は、クライアント端末1を動作させるためのプログラム及び初期値等を記憶している。RAM12は、制御プログラムで用いられる各種の情報を一時的に記憶する。HDD13は、後述のクライアント端末処理を実行するためのプログラム及びユーザー識別情報,クライアント端末1の識別情報を含む各種設定等を記憶する不揮発性の記憶装置である。
入出力インターフェース19には、映像出力処理部24,操作部25,外部通信I/F26,及び指紋入力装置35が接続されている。映像出力処理部24は、映像を表示する表示装置34の動作を処理する。操作部25は、ユーザーがクライアント端末1に各種指示を入力するために用いられる。操作部25は、クライアント端末1の外部から入出力インターフェース19へ接続されるキーボード及びマウス等であってもよい。外部通信I/F26は、クライアント端末1をネットワーク(図示略)に接続する。指紋入力装置35は、ユーザーの指先から指紋画像を読み取り、指紋画像を表す指紋画像データを入出力インターフェース19に出力する。指紋入力装置35の方式としては、特に限定されず、一例として、ライン型指紋センサが用いられる。
認証サーバー51の電気的構成について説明する。認証サーバー51は汎用のコンピューター装置である。図1に示すように、認証サーバー51は、認証サーバー51の制御を司るCPU61を備えている。CPU61には、ROM62,RAM63,HDD64,及び外部通信I/F65が、バス66を介して接続されている。ROM62は、認証サーバー51を動作させるためのプログラム及び初期値等を記憶している。RAM63は、プログラ実行時に用いられる各種の情報を一時的に記憶する。外部通信I/F65は、認証サーバー51をネットワーク(図示略)に接続する。
HDD64は、プログラム記憶エリア71,要約履歴記憶エリア72,情報ブロック記憶エリア73,データテーブル記憶エリア74,及びその他の記憶エリア75を備える、プログラム記憶エリア71は、後述する認証サーバー処理を実行するためのプログラムを含むプログラムが記憶されている。要約履歴記憶エリア72は、図12を参照して後述するように、クライアント端末1から送信された認証用情報に含まれる特徴情報に基づき生成される特徴情報の要約と、属性情報とが対応づけて記憶される。属性情報については後述する。情報ブロック記憶エリア73は、図13を参照して後述するように、テンプレートの復元に用いられる参照用情報ブロックの1つが、参照用復元情報と対応づけて記憶される。データテーブル記憶エリア74には、認証用情報ブロック及び参照用情報ブロックを復元するための設定テーブル等の各種設定値が記憶されている。その他の記憶エリア75には、上記の情報以外の情報が記憶されている。
記憶サーバー52〜56の電気的構成について説明する。記憶サーバー52〜56の電気的構成は、互いに同様である。一例として、記憶サーバー52の構成を説明し、記憶サーバー53〜56の構成の図示及び説明は省略する。記憶サーバー52は、認証サーバー51と同様のCPU81,ROM82,RAM83,HDD84,外部通信I/F85が、バス86を介して接続された構成を有する。HDD84には、プログラム記憶エリア87及び情報ブロック記憶エリア88を含む記憶エリアが設けられている。プログラム記憶エリア87には、後述する記憶サーバー処理を実行するプログラムを含むプログラムが記憶されている。情報ブロック記憶エリア88は、テンプレートの復元に用いられる参照用情報ブロックが、ユーザーの識別情報とともに記憶されている。
3.クライアント端末処理
認証システム100で実行される処理について説明する。まず、図4を参照して、クライアント端末1で実行されるクライアント端末処理について説明する。クライアント端末処理は、ユーザーが開始する指示を入力した場合に開始される。クライアント端末1のCPU10は、クライアント端末処理の開始指示の入力を検知すると、HDD13に記憶されたクライアント端末処理を実行するためのプログラムをRAM12に読み出し、プログラムに含まれる指示に従って、以下に説明する各ステップの処理を実行する。なお本実施形態では、特徴情報を抽出する要件(例えば、画像の鮮明さ)を満たす生体情報が取得されるまで、再入力を促すフィードバック処理が実行される。クライアント端末処理で取得される生体情報は、生体情報からアルゴリズムを用いて特徴情報を抽出する要件を満たすものとする。処理の過程で取得されたり、生成されたりした情報及びデータは、適宜RAM12に記憶されるものとする。以下、ステップを「S」と略記する。
図4及び図7に示すように、クライアント端末処理では、CPU10は、一つの指紋入力装置35から一つの生体情報211として、指紋画像データを取得する(S1)。CPU10は、認証結果の要求精度を取得する(S2)。本実施形態の要求精度は、0〜100(%)の数値で表され、100で有る場合に精度が最も高く、0で有る場合が最も精度が低い。後述するように、CPU10は、認証結果の要求精度に応じて、生体情報211に基づき生成される特徴情報に含まれる、生体情報211から抽出された特徴の情報量を多くする。特徴情報に含まれる特徴の情報量が多いほど、特徴の情報量が少ない場合に比べ、複数の認証用情報ブロックを認証サーバー51に送信するのに必要な時間が長くなり、且つ、認証に要する時間が長くなる。このため生体情報211に基づき生成される認証用情報200の用途が認証である場合には、本実施形態ではユーザーから要求精度を受け付ける。ユーザーは、例えば、認証用情報200を表す複数の認証用情報ブロックを認証サーバー51に送信する際の通信負荷を低減したい場合、及び認証結果を早く得たい場合等に、特徴の情報量を初期の情報量に対して低減させた特徴情報を生成させてもよい。また、ユーザーは、災害時等の通信負荷を減らしたい場合に、特徴の情報量を初期の情報量に対して低減させた特徴情報を生成させてもよい。初期の情報量とは、アルゴリズムを用いて抽出される特徴すべてを含む場合の情報量であり、初期の情報量は調整された情報量よりも多い。本実施形態では、認証用情報200の用途が登録である場合には、要求精度に100%が設定される。
CPU10は、属性情報90を取得する(S3)。図5に例示するように、本実施形態の属性情報90は、基本属性情報91と、付加属性情報92,93とを含む。本実施形態の基本属性情報91は、生体情報211を取得した時の時刻情報、生体情報211を取得した時の位置情報、クライアント端末1の識別情報、及びユーザーの識別情報を含む。生体情報211を取得した時刻情報は、生体情報211を取得した日時及び時刻(例えば、2013年7月14日17時58分37秒)であり、図示しない時計から取得される。生体情報211を取得した時の位置情報は、例えば、図示しないGPS装置から取得される緯度及び経度の情報である(例えば、35.180188,136.906565)。クライアント端末1の識別情報は、クライアント端末1に固有の情報であればよく、例えば、HDD64に記憶されたクライアント端末1の製造番号、認証システム100から割り当てられた情報等である(例えば、EVE123)。クライアント端末1が携帯電話である場合、クライアント端末1の識別情報は、SIMカードのIDであってもよい。ユーザーの識別情報は、ユーザーに固有の情報であればよく、例えば、認証システム100から割り当てられ、HDD64に記憶された識別情報である(例えば、FA456)。本実施形態の基本属性情報91のうち、少なくとも時間情報は、取得タイミング毎に値が異なる。
本実施形態の付加属性情報92は、第一特徴情報201のデータサイズ、第二特徴情報202のデータサイズ、第一特徴情報201の内容フラグ、及び第二特徴情報202の内容フラグを含む。付加属性情報93は、第二特徴情報202の真偽判定情報を含む。第一特徴情報201の内容フラグ及び第二特徴情報202の内容フラグは、S2で取得された認証結果の要求精度に応じて設定されるフラグである。前述のように本実施形態では、S2で取得された認証結果の要求精度に応じて、第一特徴情報201に含まれる第一特徴の情報量及び第二特徴情報202に含まれる第二特徴の情報量を調整している。内容フラグがONである場合、その特徴情報に含まれる情報量は特徴全体を含む初期の情報量よりも少ないことを示している。内容フラグがOFFである場合、その特徴情報に含まれる情報量は初期の情報量であることを示している。
CPU10は、S1で取得した一つの生体情報211から、第一アルゴリズムを用いて第一特徴を抽出し、抽出された第一特徴に基づく第一特徴情報201を生成する(S4)。CPU10は、S1で取得した指紋画像データに基づき、マニューシャ法のアルゴリズムを用いて第一特徴を抽出する。CPU10はS2で取得した要求精度に応じた量の第一特徴を含む第一特徴情報201を生成する。本実施形態では図6のように、S2で取得した要求精度に応じて、第一特徴情報201及び第二特徴情報202に含まれる特徴の情報量が設定されている。図6において「初期」は初期の情報量、つまりアルゴリズムを用いて生体情報211から抽出可能な特徴をすべて含む場合を示す。「調整」は初期の情報量よりも少ない調整された情報量、つまりアルゴリズムを用いて生体情報211から抽出可能な特徴の一部を含む場合を示す。例えば、要求精度が100(%)の場合、CPU10は、初期の情報量の第一特徴を含む第一特徴情報201を生成する。調整した情報量の第一特徴を含む第一特徴情報201を生成する場合、CPU10は、例えば、特異点を削除する、及びマニューシャ数を減らす等の処理を実行することによって、第一特徴について、初期の情報量から情報量を低減可能である。CPU10は、第一特徴情報201に含まれる第一特徴の情報量に応じて、前述の付加属性情報92に含まれる第一特徴情報201の内容フラグにON又はOFFを設定する。
CPU10は、S4で生成した第一特徴情報201に基づき、真偽判定情報205を生成する(S5)。真偽判定情報205は、認証用情報200の改竄の有無を判断するための情報である。真偽判定情報205は、例えば、所定のバイト数を有する、第一特徴情報201のHASH値として生成される。
CPU10は、S1で取得した一つの生体情報211から、第二アルゴリズムを用いて第二特徴を抽出し、抽出した第二特徴に基づく仮第二特徴情報204を生成する(S6)。図7に示すように、CPU10は、S1で取得した指紋画像データに基づき、周波数解析法のアルゴリズムを用いて第二特徴を抽出する。CPU10はS2で取得した要求精度に応じた量(部分)の第二特徴を含む仮第二特徴情報204を生成する。例えば、要求精度が100(%)の場合、図6のテーブルに従って、CPU10は、初期の情報量の第二特徴を含む仮第二特徴情報204を生成する。調整した情報量の第二特徴を含む仮第二特徴情報204を生成する場合、CPU10は、例えば、所定のデータを削除する、及び間引く等の処理を実行することによって、第二特徴について初期の情報量から情報量を低減可能である。CPU10は、仮第二特徴情報204に含まれる第二特徴の情報量に応じて、前述の付加属性情報92に含まれる第二特徴情報202の内容フラグにON又はOFFを設定する。
CPU10は、S5で生成した真偽判定情報205と、S3で取得した属性情報90と、S16で生成した仮第二特徴情報204とに基づき、第二特徴情報202を生成する(S7)。具体的には図7に示すように、CPU10は、真偽判定情報205を属性情報90に基づき一意に定まる方法で、仮第二特徴情報204に埋め込む。つまり、第二特徴情報202は、真偽判定情報205が埋め込まれた仮第二特徴情報204である。例えば、CPU10は、仮第二特徴情報204のうち、属性情報90のHASH値に基づき定まる部位に、真偽判定情報205を埋め込んでもよい。属性情報90のHASH値は例えば、属性情報90のうちの一部又は全部から得られる値のHASH値である。例えば、基本属性情報91が、例えば、時間情報が2013年7月14日17時58分37秒であり、位置情報が35.180188,136.906565であり、クライアント端末1の識別情報がEVE123であり、ユーザーの識別情報がFA456である場合、属性情報90のうちの一部又は全部から得られる値は、数値部分を連結した値、201371417583735180188136906565123456のHASH値である。少なくとも時間情報は、生体情報211の取得タイミング毎に異なるので、上記の場合の属性情報90のうちの一部又は全部から得られる値は、毎回異なる値となる。
CPU10は、S3で取得した属性情報90に基づき一意に定まる方法で、複数の特徴情報201,202のうちの、生体認証に用いる1以上の特徴情報である認証用情報200を、複数の認証用情報ブロックに分けて、複数の認証用情報ブロックを生成する(S8)。CPU10は、S2で取得した要求精度が比較的低い場合には、第一特徴情報201及び第二特徴情報202の何れか一方のみを認証用情報200としてもよい。例えば、図6に示す例では、要求精度が60%以下の場合には、第一特徴情報201及び第二特徴情報202の何れか一方のみを認証用情報200としてもよい。
本実施形態では、認証用情報200を複数の認証用情報ブロックに分ける複数の方法として、16種類の方法が予めHDD64のデータテーブル記憶エリア74に記憶されている。図8に模式的に示すように、16種類の方法は、複数の認証用情報ブロックの分け方が互いに異なる。図8では、第一特徴情報201を分ける位置と、生成された認証用情報ブロックの数は互いに異なるが、生成された複数の認証用情報ブロックに基づき、第一特徴情報201を復元可能であることを模式的に示している。生成される認証用情報ブロックの数は、複数の方法間で同じであってもよいし、異なっていてもよい。認証用情報200を複数の認証用情報ブロックに分ける方法は、認証用情報200を分割する位置を指定するものであってもよいし、特徴情報に含まれるデータを、複数の認証用情報ブロックに振り分ける方法であってもよい。複数の方法から、属性情報90に基づき一意に定める方法は予め定められていればよく、特に限定されない。
例えば、図9に例示するように、16種類の方法はIDで互いに識別される場合を想定する。CPU10は、属性情報に基づき一意に定める方法として、属性情報90のHASH値の下位4ビットの値をIDと定義し、16種類の方法の中から、用いる方法を決定してもよい。IDが1の方法は、特徴情報に含まれるデータを、複数の認証用情報ブロックに振り分けて、3つの認証用情報ブロックを生成する方法である。具体的には、(3N+1)バイト目のデータを、Nが小さい順に認証用情報ブロックA1に含ませ、(3N+2)バイト目のデータを、Nが小さい順に認証用情報ブロックA2に含ませ、(3N+3)バイト目のデータを、Nが小さい順に認証用情報ブロックA3に含ませる。ただし、Nは0以上の整数である。IDが2の方法は、(6N+1)バイト目のデータと(6N+2)バイト目のデータとを、Nが小さい順に認証用情報ブロックB1に含ませる。(6N+3)バイト目のデータと(6N+4)バイト目のデータとを、Nが小さい順に認証用情報ブロックB2に含ませる。残りをNが小さい順に認証用情報ブロックB3に含ませる。この他、マニューシャ法を用いて生成された第一特徴情報201を複数の認証用情報ブロックに分ける方法として、X成分及びY成分の一方を分離する方法、角度を分離方法、特異点の種類によって分離する方法等、データの内容に応じて分割する方法が適用されてもよい。周波数解析法を用いて生成された第二特徴情報202を複数の認証用情報ブロックに分ける方法として、所定の部位で分断する方法等が適用されてもよい。
認証用情報200として、複数の特徴情報が含まれる場合、各特徴情報が複数の認証用情報ブロックに分けられてもよいし、一部の特徴情報が認証用情報ブロックに分けられてもよい。複数の特徴情報の各々を認証用情報ブロックに分ける場合に、複数の特徴情報の各々は、同一の方法を用いて複数の認証用情報ブロックに分けられてもよいし、互いに異なる方法を用いて分けられてもよい。また複数の特徴情報が一旦所定の順序で一つの特徴情報に連結された後、複数の認証用情報ブロックに分けられてもよい。この場合の所定の順序は、例えば、属性情報90に基づき一意に定まる方法によって決定されてもよい。
CPU10は、S3で取得した属性情報90に基づき一意に定まる方法で、複数の認証用情報ブロックの送信順序を決定する(S9)。属性情報90に基づき一意に定まる方法は、予め定められた方法であればよい。例えば、以下の順序で決定する。図10に示すように、第一特徴情報201から認証用情報ブロックA1,A2及びA3が生成され、第二特徴情報202から認証用情報ブロックB1,B2及びB3が生成された場合を想定する。この場合、CPU10はまず、複数の認証用情報ブロックに識別番号を付与する。例えば、図10の(1)のように、認証用情報ブロックA1,A2,A3,B1,B2,及びB3に各々、1〜6の識別番号が付与される。CPU10は、S3で取得した属性情報90から得られる値のHASH値を認証用情報ブロック数Nで割り、(余りの数+1)番目を最初に送信する認証用情報ブロックの番号とする。図9の例において、HASH値を6で割った余りが4である場合、CPU10は、識別情報が5の認証用情報ブロックB2の送信順序を1にする。次にCPU10は、残りの認証用情報ブロックに識別番号を付与し直す。図10の(2)において、CPU10は、認証用情報ブロックA1,A2,A3,B1,及びB3に各々、1〜5の識別番号を付与する。CPU10は、S3で取得した属性情報90から得られる値のHASH値を認証用情報ブロック数Nで割り、(余りの数+1)番目を最初に送信する認証用情報ブロックの番号とする。図10の(2)において、HASH値を現在の認証用情報ブロックの数5で割った時の余りの数が2である場合、CPU10は認証用情報ブロックA3の送信順序を2にする。以下同様の処理を繰り返し、送信順序を決定する。図10の(6)に示すように、送信順序は、早い順に、認証用情報ブロックB2,A3,B1,A2,A1及びB3と決定される。
CPU10は、認証用情報200の用途が、認証用情報200の登録であるか否かを判断する(S10)。認証用情報200の用途は、ユーザーによって設定される。用途が登録である場合(S10:YES)、登録要求情報を取得する(S11)。登録要求情報は、認証用情報200の登録に必要な情報である。登録要求情報は、例えば、ユーザーの氏名、連絡先の情報等である。登録要求情報が、属性情報90に含まれる場合には、S11の処理は省略されてよい。CPU10は、外部通信I/F26を介して認証サーバー51に登録要求を送信し、認証サーバー51との通信を確立する(S12)。通信の確立方法は特に限定されない。例えば、図3に示すように、クライアント端末1が登録要求を送信すると、認証サーバー51は登録要求を受信し、ACKをクライアント端末1に送信する。このときACKと共にチャレンジ要求が送信されてもよい。CPU10は、認証サーバー51からACKを受信すると、S3で取得した属性情報90を認証サーバー51に送信する(S13)。このとき認証サーバー51からACKと共にチャレンジ要求が送信されている場合には、属性情報90とともに、チャレンジ要求に対するレスポンスが送信されてもよい。この場合、認証サーバー51は属性情報90及びレスポンスを受信し、レスポンスが所定の値であればACKをクライアント端末1に送信する。
CPU10は、認証サーバー51からACKを受信すると、S8で生成した複数の認証用情報ブロックをS9で決定した順序で認証サーバー51に送信する(S14)。S14での送信方法は特に限定されない。例えばCPU10は、複数の認証用情報ブロックを連続して送信してもよいし、複数回に分けて送信してもよい。S11で登録要求情報が取得されている場合には、S14の処理で登録要求情報が認証サーバー51に送信される。認証サーバー51は、複数の認証用情報ブロックを受信し、受信した複数の認証用情報ブロックが後述の登録要件を満たさない場合には、同一の指紋を入力することを要求する「入力要求」を登録結果に設定して、クライアント端末1に送信する。この場合CPU10は、登録結果として入力要求を受信し(S15:YES)、表示装置34に「指紋を再度入力してください。」とメッセージを表示させた後、処理をS1の処理に戻す。本実施形態の認証システム100は、登録時には、同一指の指紋を3〜6回入力させ、入力された毎に、認証サーバー51に認証用情報ブロックを送信して、登録可否の判断を行う。認証サーバー51は、S14で送信された認証用情報ブロックが、登録要件を満たすものである場合には、「登録完了」の登録結果をクライアント端末1に送信する。この場合CPU10は、認証サーバー51から登録完了の登録結果を受け取り(S15:NO)、表示装置34に表示させる(S16)。認証サーバー51は、S14で送信された認証用情報ブロックに基づき復元された認証用情報200が改竄されたものと判断される場合には、「登録不可」の登録結果をクライアント端末1に送信する。この場合CPU10は、認証サーバー51から登録不可の登録結果を受け取り(S15:NO)、表示装置34に表示させる(S16)。S16の次にCPU10はクライアント端末処理を終了させる。
CPU10は、認証用情報200の用途が登録ではなく、認証である場合(S17:YES)、認証要求情報を取得する(S18)。認証要求情報は、ユーザーの識別情報等の認証に必要な情報である。属性情報90に認証要求情報が含まれる場合には、S18の処理は省略されてよい。CPU10は、認証サーバー51に認証要求を送信して、通信を確立する(S19)。通信の確立方法は特に限定されない。例えば、図2に示すように、クライアント端末1が認証要求を送信すると、認証サーバー51は認証要求を受信し、ACKをクライアント端末1に送信する。このときACKと共にチャレンジ要求が送信されてもよい。CPU10は、認証サーバー51からACKを受信すると、S3で取得した属性情報90を認証サーバー51に送信する(S20)。このとき認証サーバー51からACKと共にチャレンジ要求が送信されている場合には、属性情報90とともに、チャレンジ要求に対するレスポンスが送信されてもよい。この場合、認証サーバー51は属性情報90及びレスポンスを受信し、レスポンスが所定の値であればACKをクライアント端末1に送信する。
CPU10は、認証サーバー51からACKを受信すると、S8で生成した複数の認証用情報ブロックをS9で決定した順序で認証サーバー51に送信する(S21)。S21での送信方法は特に限定されない。例えばCPU10は、複数の認証用情報ブロックを連続して送信してもよいし、複数回に分けて送信してもよい。CPU10は、認証サーバー51から送信される認証結果を受信するまで待機し(S22:NO)、認証サーバー51から認証結果から送られた場合には(S22:YES)、認証結果を受信し、認証結果を表示装置34に表示させる(S23)。S23の次にCPU10はクライアント端末処理を終了させる。
CPU10は、認証用情報200の用途が登録でも認証でもない場合(S10:NO,S17:NO)、用途に応じたその他の処理を実行後(S24)、クライアント端末処理を終了させる。
4.認証サーバー処理
次に図11を参照して、認証サーバー51で実行される認証サーバー処理について説明する。認証サーバー処理は、認証サーバー51がクライアント端末1から送信された要求を受信した場合に開始される。認証サーバー51のCPU61は、認証サーバー処理の開始指示の入力を検知すると、HDD64のプログラム記憶エリア71に記憶された認証サーバー処理を実行するためのプログラムをRAM63に読み出し、プログラムに含まれる指示に従って、以下に説明する各ステップの処理を実行する。処理の過程で取得されたり、生成されたりした情報及びデータは、適宜RAM63に記憶されるものとする。認証サーバー51に要求を送信した新規のユーザーに対しては、認証サーバー51がユーザーの識別情報を割り当てる処理を実行しているものとする。
図11に示すように、CPU61は、クライアント端末1から送信された要求が登録要求である場合(S51:YES)、クライアント端末1との通信を確立する(S52)。通信の確立方法は特に限定されない。例えば、CPU61は、図3を参照して前述のようにクライアント端末1にACK等を送信してクライアント端末1との通信を確立させる。CPU61は、クライアント端末1から送信された属性情報90を受信する(S53)。CPU61は、クライアント端末1から送信された認証用情報ブロックを受信する(S54)。CPU61は、S53で受信した属性情報90に基づき一意に定まる方法に従って、S54で受信した認証用情報ブロックから認証用情報200を復元する(S55)。S55の処理における属性情報90に基づき一意に定まる方法を決定するための設定テーブルは、HDD64のデータテーブル記憶エリア74に記憶されている。前述の具体例では、S53で受信された属性情報90に基づき認証用情報ブロックの送信順序として図10の(6)の送信順序が特定される。第一特徴情報201から分けられた認証用情報ブロックA1,A2及びA3が特定され、第二特徴情報202から分けられた認証用情報ブロックB1,B2及びB3が特定される。図9のIDが1である場合の方法に基づき、認証用情報ブロックA1,A2及びA3から第一特徴情報201が復元される。IDが2である場合の方法に基づき、認証用情報ブロックB1,B2及びB3から第二特徴情報202が復元される。復元された認証用情報200は、S60の処理が実行されるまで、又は所定時間経過するまで、S53で受信された属性情報90と対応づけられて、RAM63に記憶される。
CPU61は、S55で復元された認証用情報200が改竄されているか否かを判断する(S56)。S56の処理では、CPU61はまず、S53で取得された属性情報90に基づき一意に定まる方法を用いて、S55で復元された認証用情報200に含まれる第二特徴情報202から第一特徴情報201の真偽判定情報205を取り出す。S56の処理における属性情報90に基づき一意に定まる方法を決定するための設定は、HDD64のデータテーブル記憶エリア74に記憶されている。CPU61は、S55で復元した認証用情報200に含まれる第一特徴情報201のHASH値と、取り出した真偽判定情報205とが同じであるか否かを判断し(S56)、両者が一致しない場合に認証用情報200が改竄されていると判断する(S56:YES)。この場合CPU61は、登録結果に「登録不可」を設定し(S65)、登録結果をクライアント端末1に送信する(S66)。S66の次にCPU61は認証サーバー処理を終了させる。なお、本実施形態の属性情報90は、付加属性情報93として、第二特徴情報の真偽判定情報を含むので、認証用情報200に含まれる第二特徴情報202と、付加属性情報93とを比較して、認証用情報200が改竄されたか否かを判断してもよい。
CPU61は、両者が一致する場合に認証用情報200が改竄されていないと判断し(S56:NO)、複数の特徴情報の各々について要約を生成し、属性情報90と対応づけて要約履歴記憶エリア72に記憶させる(S57)。特徴情報の要約は、認証用情報に基づき生成された、特徴情報を反映した情報であって、特徴情報そのものよりもデータサイズが小さい情報である。特徴情報の要約の生成方法は特に限定されない。複数の特徴情報の各々について、同じ生成方法で要約が生成されてもよいし、異なる方法で要約が生成されてもよい。本実施形態の第一特徴情報201の要約は、図7に示すように、第一特徴情報201にSALT(例えば、ユーザーの識別情報)を付加したデータのHASH値である。第二特徴情報202の要約は、第二特徴情報202のHASH値である。本実施形態ではCPU61は、第一特徴情報201及び第二特徴情報202の各々について上記の要約を生成する。本実施形態では図12に示すように、第一特徴情報201及び第二特徴情報202の要約は、属性情報90のうちの基本属性情報91と対応づけて、要約履歴記憶エリア72に一定期間記憶させている。要約履歴記憶エリア72に記憶される属性情報90は、S53で取得された属性情報90の一部であってもよいし、全部であってもよい。一定期間は、要約履歴記憶エリア72の容量、登録ユーザー数、利用頻度、及び処理時間等を考慮して予め定められればよい。
CPU61は、S57で生成した要約が、既にHDD64の要約履歴記憶エリア72に記憶されているか否かを判断する(S58)。S58は、過去の特徴情報を用いて認証用情報200が改竄され過去に認証又は登録を行ったユーザーが他人になりすまして、新たな登録を行った場合を検出するための処理である。通常、同じユーザーであっても全く同一の生体情報211が取得されることは想定されないので、特徴情報のHASH値は毎回異なる値となる。S57で生成した要約が、既にHDD64の要約履歴記憶エリア72に記憶されているということは、認証用情報200が改竄され、クライアント端末1のユーザーが不正に認証用情報200を取得して他人になりすましている可能性が疑われる。本実施形態では、CPU61はS57で認証用情報200に基づき生成した要約が、既にHDD64の要約履歴記憶エリア72に記憶されている場合(S58:YES)、登録結果に「登録不可」を設定し(S65)、登録結果をクライアント端末1に送信する(S66)。S66の次にCPU61は認証サーバー処理を終了させる。
CPU61は、S57で生成した要約が、HDD64の要約履歴記憶エリア72に記憶されていない場合(S58:NO)、予め設定された登録要件を満たすか否かを判断する(S59)。本実施形態では、登録に必要な量の認証用情報200を既取得していることが登録要件として設定されている。前述のように、本実施形態の認証サーバー51は、同一の指紋を入力して得られた複数回分の認証用情報200をテンプレート300とする。このため本実施形態では、CPU61は、S59ではRAM63を参照して、同一の指紋を入力して得られた複数回分の認証用情報200が取得されているか否かを判断し(S59)、取得されていない場合には(S59:NO)、CPU61は、登録結果に「入力要求」を設定し(S65)、設定した登録結果をクライアント端末1に送信する(S66)。CPU61は以上で認証サーバー処理を終了させる。
同一の指紋を入力して得られた登録用の複数回分の認証用情報200が取得されている場合には(S59:YES)、複数回分の認証用情報200をテンプレート300とし、テンプレート300を複数の参照用情報ブロックに分ける(S60)。S60の処理ではCPU61はまず、指紋を入力したユーザーの識別情報を取得する。CPU61は、登録用の複数回分の認証用情報200全体を、参照用の特徴情報であるテンプレート300とする。図7に示すように、本実施形態のテンプレート300には、参照用の第一特徴情報である参照用第一特徴情報301と、参照用の第二特徴情報である参照用第二特徴情報302とが複数組含まれる。参照用第二特徴情報302は、クライアント端末1から送信された第二特徴情報202から第一特徴情報201の真偽判定情報205が一旦取り出され、ユーザーの識別情報に基づき一意に定まる方法で、仮第二特徴情報204に第一特徴情報201の真偽判定情報205が埋め戻された情報である。CPU61は、テンプレート300を、ユーザーの識別情報に基づき一意に定まる方法で、複数の参照用情報ブロックに分け、複数の参照用情報ブロックを生成する。例えば、参照用第一特徴情報301から参照用情報ブロックA1´、A2´,及びA3´が生成される。例えば、参照用第二特徴情報302から参照用情報ブロックB1´、B2´,及びB3´が生成される。テンプレート300を複数の参照用情報ブロックに分ける方法は特に限定されない。例えば、前述の認証用情報200を複数の認証用情報ブロックに分ける方法と同様の方法が適用されてもよい。
CPU61は、S60で生成した複数の参照用情報ブロックの各々について、認証サーバー51,及び記憶サーバー52〜56の中から、参照用情報ブロックを記憶させるサーバーを決定する(S61)。1つのサーバーに記憶される参照用情報ブロックの数は、サーバーの数と、参照用情報ブロックの数とに応じて適宜設定されればよい。テンプレート300を分散記憶させるという観点からは、参照用情報ブロックは特定のサーバーに偏って記憶されない方が好ましい。S61では、予め定められた方法を用いて各参照用情報ブロックを記憶するサーバーが決定されればよい。例えば、ユーザーの識別情報に基づき一意に定まる方法を用いて各参照用情報ブロックを記憶するサーバーが決定されてもよい。他の例では、サーバーの設置場所(国、地域、及び建物等)、性能(セキュリティレベル、処理速度、記憶容量等),参照用情報ブロックが表すテンプレート300のデータ構造等を勘案して、各参照用情報ブロックを記憶するサーバーが決定されてもよい。より具体的には、標準化されているデータ構造で表される参照用第一特徴情報301から生成された参照用情報ブロックA1´、A2´,及びA3´は、第一国に設置されたサーバーに記憶させてもよい。標準化されていないデータ構造で表される参照用第二特徴情報302から生成された参照用情報ブロックB1´、B2´,及びB3´は、第二アルゴリズムが開発された第二国に設置されたサーバーに記憶させてもよい。このようにすれば認証システム100は、第二アルゴリズムが第一国に流出することを回避しつつ、地理的に分散したサーバーにテンプレート300を分散記憶させることができる。具体例では、認証サーバー51,及び記憶サーバー52〜56の各々に、参照用情報ブロックB3´,A3´,B1´,A2´,A1´,及びB2´が割り当てられる。
CPU61は、S61で何れかの参照用情報ブロックを記憶するサーバーとして決定された記憶サーバーに記憶要求を送信し、記憶サーバーとの通信を確立させる(S62)。通信の確立方法は特に限定されない。具体例では、CPU61は、記憶サーバー52〜56の各々と通信を確立し(S62)、記憶サーバー52〜56の各々に参照用情報ブロックA3´,B1´,A2´,A1´,及びB2´とユーザー識別情報とを送信する(S63)。後述するように、参照用情報ブロックを受信した記憶サーバーは、参照用情報ブロックと、ユーザーの識別情報とを対応づけて情報ブロック記憶エリア88に記憶する。
CPU61は、参照用情報ブロックを記憶するサーバーとして認証サーバー51が決定された参照用情報ブロックB3´を、参照用復元情報と対応づけて情報ブロック記憶エリア73に記憶する(S64)。参照用復元情報は、複数の参照用情報ブロックに基づき、テンプレート300を復元するための情報である。図13に示すように本実施形態の参照用復元情報は、ユーザーの識別情報である。S64の次に、CPU61は登録結果に「登録成功」を設定し(S65)、登録結果をクライアント端末1に送信する(S66)。CPU61は以上で認証サーバー処理を終了させる。
クライアント端末1から送信された要求が、認証要求である場合(S51:NO,S71:YES)、CPU61は、S52からS58と同様に、S72からS78の処理を実行する。CPU61は、S73において属性情報90に含まれるユーザーの識別情報を参照用復元情報として取得する。CPU61は、S73において属性情報90に含まれる基本属性情報91を認証用復元情報として取得する。S76において認証用情報200が改竄されていると判断された場合(S76:YES)、CPU61は、認証結果に「0%」を設定し(S84)、認証結果をクライアント端末1に送信する(S85)。同様に、S77で生成された要約が要約履歴記憶エリア72に記憶されている場合には(S78:YES)、CPU61は、認証結果に「0%」を設定し(S84)、後述のS85及びS86の処理を実行後、認証サーバー処理を終了させる。
S77で生成された要約が要約履歴記憶エリア72に記憶されていない場合には(S78:NO)、CPU61は参照用情報ブロック送信要求を記憶サーバー52〜56に送信し、各記憶サーバーとの通信を確立する(S79)。通信の確立方法は特に限定されない。参照用情報ブロック送信要求は、認証サーバー51が受信した認証要求に含まれるユーザーの識別情報に対応する参照用情報ブロックを認証サーバー51に送信することを記憶サーバーに要求するものである。後述するように、参照用情報ブロック送信要求を受信した記憶サーバーは、参照用情報ブロック送信要求に含まれるユーザーの識別情報に対応する参照用情報ブロックを認証サーバー51に送信する。CPU61は、記憶サーバー52〜56の各々から送信された参照用情報ブロックA3´,B1´,A2´,A1´,及びB2´を受信する(S80)。
CPU61は、S80で受信した参照用情報ブロックA3´,B1´,A2´,A1´,及びB2´、及びHDD64の情報ブロック記憶エリア73に記憶されている参照用情報ブロックB3´からHDD84に記憶された参照用復元情報に基づき、テンプレート300を復元する(S81)。CPU61はユーザーの識別情報に基づき一意に定まる方法を用いて、各サーバーに記憶された参照用情報ブロックを特定する。特定された参照用情報ブロックA1´,A2´及びA3´に基づき参照用第一特徴情報301が復元され、参照用情報ブロックB1´,B2´及びB3´に基づき参照用第二特徴情報302が復元される。
CPU61は、復元されたテンプレート300についてS56と同様の処理によって、テンプレート300が改竄されたか否かを判断する(S82)。S82の処理では、CPU61はまず、ユーザーの識別情報に基づき一意に定まる方法を用いて、S81で復元されたテンプレート300に含まれる参照用第二特徴情報302から参照用第一特徴情報301の真偽判定情報を取り出す。S82の処理におけるユーザーの識別情報に基づき一意に定まる方法を決定するための設定は、HDD64のデータテーブル記憶エリア74に記憶されている。CPU61は、S81で復元したテンプレート300に含まれる参照用第一特徴情報301のHASH値と、取り出した真偽判定情報とが同じであるか否かを判断し(S56)、両者が一致しない場合にテンプレート300が改竄されていると判断する。テンプレート300が改竄されている場合(S82:YES)、CPU61は認証結果に「認証失敗」を設定し(S84)、後述のS85及びS86の処理を実行後、認証サーバー処理を終了させる。
テンプレート300が改竄されていない場合(S82:NO)、CPU61は、S75で復元した認証用情報200と、S81で復元したテンプレート300とを比較して認証結果を算出する(S83)。図7に示すように、CPU61は、第一特徴情報201と、参照用第一特徴情報301とを比較する。より具体的には、第一特徴情報201及び参照用第一特徴情報301の各特徴がどの程度一致しているかが各々の特徴について比較され、指紋全体で一致している割合等が第一類似度として数値化される。例えば、指紋の分岐点及び端点等の特徴点の位置が一致している個数を特徴点の個数で除すことにより計算した一致割合(0〜100%)が第一類似度として数値化される。
同様にCPU61は、仮第二特徴情報204と、参照用第二特徴情報302から真偽判定情報を取り除いた情報である参照用仮第二特徴情報304とを比較する。具体的には、仮第二特徴情報204及び参照用仮第二特徴情報304の特徴がどの程度一致しているかをDP(Dynamic Programming)マッチングが用いられることにより、各ラインの波形スペクトル系列を縦方向(各ライン)の位置ずれが考慮されながら比較されて、似ている(一致している)度合いが、例えば0〜1000の値で第二類似度として数値化される。CPU61は、各特徴情報に基づき判断された類似度を用いて、複数の特徴情報に基づき総合的に判断される総合類似度を認証結果(本人の確からしさ)として算出する。本実施形態ではCPU61は、公知の方法(例えば、国際公開第2009/096475号参照)に従って第一類似度及び第二類似度を用いて、総合類似度を算出する。
CPU61は、S83の算出結果を認証結果に設定し(S84)、認証結果をクライアント端末1に送信する(S85)。CPU61は、S74で受信した認証用情報ブロック、S75で復元した認証用情報200、S80で記憶サーバー52〜56から取得した参照用情報ブロック及びS81で復元したテンプレート300をRAM63から削除した後(S86)、認証サーバー処理を終了させる。
クライアント端末1から送信された要求が、登録要求でも認証要求でもない場合(S51:NO,S71:NO)、CPU61は、受信した要求に応じたその他の処理を実行した後(S88)、認証サーバー処理を終了させる。
5.記憶サーバー処理
次に図14を参照して、記憶サーバー52〜56の各々で実行される記憶サーバー処理について説明する。一例として記憶サーバー52において、記憶サーバー処理が実行される場合について説明する。記憶サーバー処理は、記憶サーバー52が認証サーバー51から送信された要求を受信した場合に開始される。記憶サーバー52のCPU81は、記憶サーバー処理の開始指示の入力を検知すると、HDD84のプログラム記憶エリア87に記憶された記憶サーバー処理を実行するためのプログラムをRAM83に読み出し、プログラムに含まれる指示に従って、以下に説明する各ステップの処理を実行する。処理の過程で取得されたり、生成されたりした情報及びデータは、適宜RAM83に記憶されるものとする。
図14に示すように、CPU81は認証サーバー51から送信された要求が記憶要求である場合(S91:YES)、認証サーバー51との通信を確立する(S92)。通信の確立方法は特に限定されない。CPU81は、認証サーバー51から送信される参照用情報ブロックと、ユーザーの識別情報とを受信し(S93)、両者を対応づけてHDD84の情報ブロック記憶エリア88に記憶する(S94)。S94の次にCPU81は記憶サーバー処理を終了させる。
認証サーバー51から送信された要求が送信要求である場合(S91:NO,S95:YES)、CPU81は認証サーバー51との通信を確立する(S96)。通信の確立方法は特に限定されない。CPU81は、送信要求に含まれるユーザーの識別情報に対応する参照用情報ブロックを特定し(S97)、特定した参照用情報ブロックを、記憶サーバー52の識別情報と対応づけて、認証サーバー51に送信する(S98)。CPU81は以上で記憶サーバー処理を終了させる。認証サーバー51から送信された要求が記憶要求でも、送信要求でもない場合(S91:NO,S95:NO)、CPU81は要求に応じたその他の処理を実行した後(S99)、記憶サーバー処理を終了させる。
上記実施形態の認証システム100において、図4のS1の処理を実行するCPU10は、本発明の生体情報取得手段として機能する。S4の処理を実行するCPU10は、本発明の第一生成手段として機能する。S5からS7の処理を実行するCPU10は、本発明の第二生成手段として機能する。つまり、S4及びS5からS7の処理を実行するCPU10は、複数の生成手段として機能する。S8の処理を実行するCPU10は、本発明の認証用情報ブロック生成手段として機能する。S21の処理を実行するCPU10は、本発明の情報送信制御手段として機能する。図11のS54,S74の各々の処理を実行するCPU61は、本発明の情報受信制御手段として機能する。S53,S73の各々の処理を実行するCPU61は、本発明の認証用復元情報取得手段及び参照用復元情報取得手段として機能する。S56,S76の各々の処理を実行するCPU61は、本発明の第一改竄判断手段として機能する。S55,S75の各々の処理を実行するCPU61は、本発明の認証用復元手段として機能する。HDD64の要約履歴記憶エリア72は本発明の記憶手段に相当する。特徴情報の要約の履歴は、認証用情報履歴に相当する。S58,S78の各々の処理を実行するCPU61は、本発明の第二改竄判断手段として機能する。S80の処理を実行するCPU61は、本発明の参照用情報ブロック受信手段として機能する。S81の処理を実行するCPU61は、本発明の参照用復元手段として機能する。S82の処理を実行するCPU61は、本発明の第三改竄判断手段として機能する。S83の処理を実行するCPU61は、本発明の算出手段として機能する。真偽判定情報は、本発明の第一判定情報及び第二判定情報に相当する。
認証システム100によれば、クライアント端末1において一つの生体情報211に基づき生成された認証用情報200は、第一特徴情報201と、第二特徴情報202とを含む。第一特徴情報201は、標準化されたデータ構造を用いて第一特徴を表す。第二特徴情報202は、標準化されていないデータ構造で第二特徴を表す。第二特徴情報202には、第一特徴情報201の真偽判定情報205が含まれる。第二特徴情報202は標準化されていないデータ構造を用いて第二特徴を表すので、第二特徴情報202のデータから、真偽判定情報205がどこに埋め込まれているかを特定することは極めて困難である。このため認証システム100では、真偽判定情報205の改竄が比較的容易である場合に比べ、通信経路で認証用情報200の改竄された場合を精度よく検出することが可能である。認証システム100は、第一特徴情報201のHASH値と、真偽判定情報205との比較結果から、第一特徴情報201が改竄された場合と、真偽判定情報205が改竄された場合との双方を検出可能である。
認証システム100によれば、クライアント端末1において一つの生体情報211に基づき生成された認証用情報200は、認証用情報ブロックに分けられた後、認証サーバー51に送信される。認証用情報ブロックは、そのままでは認証に用いることができない情報である。このため認証システム100は、認証用情報200がそのまま認証サーバー51に送られる場合に比べ、通信経路において情報が盗まれた場合のセキュリティを向上させることができる。複数の認証用情報ブロック全体には、標準化されたデータ構造のデータと、標準化されていないデータ構造のデータとの双方が混在している。このため、認証システム100は、標準化されたデータ構造のデータで表された特徴情報のみを用いて、複数の認証用情報ブロックが生成される場合に比べ、認証用情報ブロックから認証用情報200を特定しにくい。このため認証システム100は、通信経路において情報が盗まれた場合のセキュリティを更に向上させることができる。
本実施形態のクライアント端末1のCPU10は、属性情報90に基づき一意に定まる方法を用いて、認証用情報200を、複数の認証用情報ブロックに分ける。このため認証システム100は、処理実行毎に同一の方法を用いて認証用情報ブロックが生成される場合に比べ、複数の認証用情報ブロックから認証用情報200が特定されにくい。したがって、認証システム100は、通信経路において情報が盗まれた場合のセキュリティを更に向上させることができる。特に複数の認証用情報ブロックに分け方を決定する際に、属性情報90として処理実行毎に異なる値となる情報(例えば、時間情報)が含まれることが好ましい。このようにすれば、同じユーザーから取得された認証用情報200であっても、処理実行毎に異なる分け方で複数の認証用情報ブロックが生成されるためである。
クライアント端末1のCPU10は、複数の認証用情報ブロックの送信順序を属性情報90に基づき決定する。このため認証システム100は、処理実行毎に同一の順序で認証用情報ブロックが送信される場合に比べ、複数の認証用情報ブロックから認証用情報200が特定されにくい。したがって、認証システム100は、通信経路において情報が盗まれた場合のセキュリティを更に向上させることができる。複数の認証用情報ブロックの送信順序を決定する際に、属性情報90として処理実行毎に異なる値となる情報(例えば、時間情報)が含まれることが好ましい。このようにすれば、同じユーザーから取得された認証用情報200であっても、処理実行毎に異なる順序で複数の認証用情報ブロックが認証サーバー51に送信されるためである。本実施形態の認証システム100では、属性情報90を認証用復元情報とするので、属性情報90と認証用復元情報とが別々に設定、取得される場合に比べ、処理を簡略化したり、情報の管理を容易にしたりすることができる。
本実施形態の認証システム100は、複数の記憶サーバー52〜56に、テンプレート300を分散記憶する。このため、1つの装置にテンプレート300が記憶されている場合に比べ、テンプレート300が外部に流出する可能性を低減させることができる。認証システム100は、テンプレート300を複数の参照用情報ブロックに分けて、認証サーバー51及び記憶サーバー52〜56の何れかに記憶する。参照用情報ブロックが、単純に、テンプレート300を分割して生成された情報ではなく、図9に例示する方法のようにデータを分配して生成された情報である場合、1つの参照用情報ブロックが流出されたとしても、参照用情報ブロックから生体情報211を表す情報を抽出できない。このため、認証システム100は、通信経路において情報が盗まれたり、サーバーから情報が盗まれたりした場合のセキュリティを更に向上させることができる。
本実施形態の認証サーバー51は、認証用情報200に含まれる特徴情報の要約と、要約履歴記憶エリア72に記憶された特徴情報の要約の履歴とを比較することによって、過去に認証サーバー51に送信された特徴情報が不正に取得され、再利用されている場合を検出することができる。認証システム100は、過去に認証サーバー51に送信された特徴情報を用いて認証用情報200が改竄された場合を検出可能である。本実施形態の特徴情報の要約は、特徴情報に基づく情報のHASH値である。つまり、特徴情報の要約は、特徴情報そのものでないため、認証サーバー51から流出したとしても、特徴情報の要約から生体情報を表す情報は取り出すことができない、このため、認証サーバー51から、認証用情報200の改竄を検出するための情報が盗まれた場合のセキュリティを更に向上させることができる。また、本実施形態の特徴情報の要約は、特徴情報そのものよりもデータサイズが小さい。このため認証サーバー51は、特徴情報の履歴を用いて同様な処理を実行し、認証用情報200の改竄を検出する場合に比べ、認証用情報200の改竄を検出するための情報を記憶する記憶容量を小さくすることができ、改竄を検出する処理に必要な時間を短縮することができる。
本実施形態のテンプレート300は、テンプレート300に含まれる参照用第一特徴情報301から生成された真偽判定情報が含まれている。このため、記憶サーバー52〜56から認証サーバー51に参照用情報ブロックが送信される通信経路上での改竄の有無を検出可能である。
本実施形態の認証システム100は、ユーザーから認証結果に対する要求精度を受け付け、要求精度に応じた第一特徴情報201及び第二特徴情報202を生成する。このため認証システム100は、毎回同じ特徴を含む特徴情報が送信される場合に比べ、サーバーから情報が盗まれたりした場合のセキュリティを更に向上させることができる。例えば、要求精度が比較的低い場合には、一部の特徴を表す特徴情報を送信しないことによって、すべての特徴を表す特徴情報が盗まれることを回避することができる。またユーザーは、要求精度を適宜設定することによって、処理時間を短縮したり、通信負荷を低減させたりすることが可能である。
本発明の認証システム100は、上記した実施形態に限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変更が加えられてもよい。例えば、以下の(A)から(C)までの変形が適宜加えられてもよい。
(A)認証システムは、少なくとも1つのクライアント端末及び少なくとも1つの認証サーバーを備えればよい。認証システムに含まれるクライアント端末の数、構成は適宜変更されてよい。認証システムに含まれる認証サーバーの数、構成は適宜変更されてよい。認証システムに含まれる記憶サーバーの数、構成は適宜変更されてよい。記憶サーバーは必要に応じて省略されてよい。生体情報入力装置は、生体情報に応じて適宜変更されてよい。記憶機器は特に限定されず、HDDの代わりに、SSD,フラッシュROM又はメモリカード等の記憶機器が用いられてもよい。
(B)図4のクライアント端末処理を実行させるための指令を含むプログラム及びデータは、クライアント端末1がプログラムを実行するまでに、クライアント端末1が備える記憶機器に記憶されればよい。図11の認証サーバー処理を実行させるための指令を含むプログラム及びデータは、認証サーバー51がプログラムを実行するまでに、認証サーバー51が備える記憶機器に記憶されればよい。図14の記憶サーバー処理を実行させるための指令を含むプログラム及びデータは、記憶サーバー52〜56の各々がプログラムを実行するまでに、記憶サーバー52〜56の各々が備える記憶機器に記憶されればよい。したがって、プログラム及びデータの取得方法、取得経路及びプログラムを記憶する機器の各々は適宜変更されてよい。クライアント端末1,認証サーバー51及び記憶サーバー52〜56が備えるプロセッサが実行するプログラム及びデータは、ケーブル又は無線通信を介して、他の装置から受信し、フラッシュメモリ等の記憶装置に記憶されてもよい。他の装置は、例えば、PC,及びネットワーク網を介して接続されるサーバーを含む。
(C)図4のクライアント端末処理の各ステップは、CPU10によって実行される例に限定されず、一部又は全部が他の電子機器(例えば、ASIC)によって実行されてもよい。また、上記クライアント端末処理の各ステップは、複数の電子機器(例えば、複数のCPU)によって分散処理されてもよい。図11の認証サーバー処理の各ステップは、CPU61によって実行される例に限定されず、一部又は全部が他の電子機器(例えば、ASIC)によって実行されてもよい。また、上記認証サーバー処理の各ステップは、複数の電子機器(例えば、複数のCPU)によって分散処理されてもよい図14の記憶サーバー処理の各ステップは、CPU61によって実行される例に限定されず、一部又は全部が他の電子機器(例えば、ASIC)によって実行されてもよい。また、上記図14の記憶サーバー処理の各ステップは、複数の電子機器(例えば、複数のCPU)によって分散処理されてもよい。また上記実施形態のクライアント端末処理、認証サーバー処理、及び記憶サーバー処理の各ステップは、必要に応じて順序の変更、ステップの省略、及び追加が可能である。クライアント端末1が備えるCPU10からの指令に基づき、クライアント端末1上で稼動しているオペレーティングシステム(OS)等が実際の処理の一部又は全部を行い、その処理によって上記実施形態の機能が実現される場合も本発明の範囲に含まれる。同様に、認証サーバー51が備えるCPU61からの指令に基づき、認証サーバー51上で稼動しているOS等が実際の処理の一部又は全部を行い、その処理によって上記実施形態の機能が実現される場合も本発明の範囲に含まれる。記憶サーバー52〜56が備えるCPU81からの指令に基づき、記憶サーバー52〜56上で稼動しているOS等が実際の処理の一部又は全部を行い、その処理によって上記実施形態の機能が実現される場合も本発明の範囲に含まれる。例えば、以下の(C−1)から(C−6)の変形が適宜加えられてもよい。
(C−1)一つの生体情報211から特徴情報を生成するためのアルゴリズムは、互いに異なる複数のアルゴリズムであればよい。アルゴリズムの数は3以上であってもよい。属性情報90等の情報に基づき、複数の互いに異なるアルゴリズムの中から選択された一部の複数のアルゴリズムを用いて複数の特徴情報が生成されてもよい。このようにすれば、どのアルゴリズムを用いて生体情報211から特徴を抽出しているかが送信毎に一定ではないので、認証システム100は、通信経路において情報が盗まれた場合のセキュリティを更に向上させることができる。複数の特徴情報では、少なくとも1つ特徴情報が標準化されたデータ構造を用いて特徴を表し、少なくとも別の1つの特徴情報が標準化されていないデータ構造を用いて特徴を表していればよい。生体情報211が指紋画像データである場合、複数の指(例えば、右手の人差し指及び中指)の指紋について処理が実行されてもよい。この場合、認証結果は、複数の指の各々についての類似度を総合的に勘案して認証結果が算出されてもよい。
(C−2)認証用情報200を複数の認証用情報ブロックに分ける方法は特に限定されない。認証用情報200を複数の認証用情報ブロックに分ける方法は、毎回同じ方法であってもよい。このようにすれば、属性情報90を取得したり、認証用情報200を認証用情報ブロックに分ける方法を決定したりする処理を省略できる。複数の特徴情報の中から一部の特徴情報が認証用情報200として選択されてもよい。このようにすれば、認証用情報200に含まれる特徴情報が送信毎に一定ではないので、認証システム100は、通信経路において情報が盗まれた場合のセキュリティを更に向上させることができる。複数の認証用情報ブロックの送信順序の決定方法は特に限定されない。複数の認証用情報ブロックの送信順序の決定方法は、毎回同じ方法であってもよい。このようにすれば、属性情報90を取得したり、送信順序を決定したりする処理を省略できる。クライアント端末1のCPU10は、認証用情報200を複数の認証用情報ブロックに分けずに認証サーバー51に送信してもよい。
複数の認証用情報ブロックには、認証用情報200以外の情報が含まれていてもよい。例えば認証システム100では、情報量が調整された特徴を表す特徴情報と、情報量が調整されていない初期の特徴を表す特徴情報とでは、生成される要約が異なる。このため、要約履歴記憶エリア72に記憶される特徴情報の要約を、情報量が調整されていない初期の特徴を表す特徴情報の要約に統一するために、情報量が調整された特徴を表す特徴情報が認証用情報200とされる場合には、以下のようにしてもよい。すなわち、クライアント端末1のプロセッサは、情報量が調整されていない初期の特徴を表す特徴情報の要約を生成し、認証サーバー51に送信する。クライアント端末1のプロセッサは、情報量が調整されていない初期の特徴を表す特徴情報の要約を、認証用情報ブロックとは別に送信してもよいし、認証用情報ブロックに含ませて送信してもよい。つまり、情報量が調整された特徴を表す特徴情報と、情報量が調整されていない初期の特徴を表す特徴情報の要約とを連結させた状態で、認証用情報ブロックが生成されてもよい。
(C−3)認証用情報ブロックから認証用復元情報を用いて認証用情報200を復元する方法は特に限定されない。認証用復元情報はクライアント端末1から送信される属性情報90以外の情報であってもよい。例えば、生体情報を取得した日時に基づき決定される方法で、複数の認証用情報ブロックが生成され、生体情報211を取得した日付(年月日)に基づき決定される順序で複数の認証用情報ブロックが送信される場合を想定する。この場合認証サーバー51が複数の認証用情報ブロックを受信した日時を、生体情報211を取得した日付を認証用復元情報としてもよい。
(C−4)認証システム100は、複数の特徴情報に対応する複数の参照用特徴情報(例えば、参照用第一特徴情報301及び参照用第二特徴情報302)を、互いに異なるサーバーに記憶させてもよい。このようにすれば認証システム100は、一つのサーバーにテンプレート300が記憶される場合に比べ、テンプレート300が流出する可能性を低減することができ、複数の参照用情報ブロックからテンプレート300を復元するための処理を省略できる。認証システム100は、記憶サーバーを有さず、認証サーバー51内でテンプレート300を記憶させてもよい。テンプレートが改竄されたか否かを判断するS82の処理は適宜省略されてよい。
(C−5)認証システム100は、ユーザーから認証結果の要求精度を受け付けなくてもよい。このようにすれば認証システム100は、要求精度が設定されたか否かに関わる処理を省略でき、処理を単純化できる。要求精度は、認証用情報のデータサイズ、処理時間等の認証精度に関わる他のパラメーターによって指定されてもよい。
(C−6)認証システム100は、認証結果として、要約履歴記憶エリア72に記憶された属性情報90を勘案した本人の確からしさを算出してもよい。例えば同一のクライアント端末1から、同じような時刻、同じような位置から送信された同一のユーザーの生体情報211に基づく認証用情報200が認証サーバー51に送信された場合、要約履歴記憶エリア72に記憶された属性情報90に基づき、ユーザー本人である可能性が高いと判断される。このような場合認証サーバー51のCPU61は、特徴情報に基づき算出された本人の確からしさの値に所定値を加算してもよい。逆に、例えば同一のクライアント端末1から、いつもとは著しく異なる時刻、いつもとは著しく異なる位置から送信された同一のユーザーの生体情報211に基づく認証用情報200が認証サーバー51に送信された場合、要約履歴記憶エリア72に記憶された属性情報90に基づき、ユーザー本人ではない可能性が疑われる。このような場合認証サーバー51のCPU61は、特徴情報に基づき算出された本人の確からしさの値から所定値を減算してもよい。このようにした場合、認証サーバー51は、属性情報90を加味して本人の確からしさを求めることができ、本人の確からしさに対する信頼性を高めることができる。認証サーバー51のCPU61は、認証用情報200及びテンプレート300の少なくとも何れかが改竄されたか否かによらず、認証結果を算出してもよい。認証サーバー51のCPU61は、認証結果をクライアント端末1に送信する処理を省略してもよいし、認証結果を他の装置に送信してもよい。
(C−7)特徴情報の要約を生成する処理及び要約を用いる処理は適宜省略されてよい。要約履歴記憶エリア72に記憶された要約を用いて認証用情報200が改竄されたか否かを判断するS58及びS78の処理は適宜変更及び省略されてよい。例えば、認証用情報200の要約ではなく認証用情報200そのもの履歴を用いて、認証用情報200が改竄されたか否かが判断されてもよい。認証用情報の真偽判定情報(第一判定情報)及びテンプレートの真偽判定情報(第二判定情報)は互いに異なる情報であってもよい。