以下詳細な本発明の実施例に関して説明する。なお、以下の各実施例は、処理の内容を矛盾させない範囲で適宜組み合わせることが可能である。以下、図面に基づいて各実施例について説明する。
[第一の実施例]
図1は、第一の実施例に関する認証システムを説明するための図である。まず、本実施例における認証システムについて、説明する。認証システムは、認証装置1と端末装置2を含む。なお、認証装置1と端末装置2とは、ネットワークNを介して接続されている。ネットワークNは、例えば、インターネットである。なお、ネットワークNを介しての通信には、Secure Socket Layer(SSL)などの暗号化通信技術が適用されることが望ましい。
認証装置1は、端末装置2の要求に応じて、認証を実行するコンピュータである。また、本実施例においては、認証装置1は、1対N認証を実行する。つまり、認証装置1は、端末装置2から、認証される対象となる入力データを取得した場合、入力データと複数の登録データとを比較することで、認証を実行する。なお、登録データは、予め認証装置1に登録されたデータであって、例えば各ユーザに固有の情報である。
入力データおよび登録データは、例えばバイナリ形式のデータである。さらに、なお、本実施例においては、認証装置1は生体認証を行うものとするため、登録データおよび入力データは、生体情報を示すバイナリデータである。ただし、本実施例に開示の技術は、生体認証以外にも、他の認証方式に適用が可能である。例えば、本実施例に開示の技術は、PUF(Physical Unclonable Function)を利用した機器固有の値を用いた機器認証に適用される。
端末装置2は、認証装置1へ認証を要求するコンピュータである。また、本実施例においては、端末装置2は、生体情報を読み取るための読取装置3と、接続される。例えば、読取装置3が、ユーザ5の静脈や指紋等の画像を取得し、画像から生体情報を生成する。なお、画像から生体情報を生成する際のアルゴリズムは、従来の各種手法が用いられる。例えば、画像解析により、静脈の分岐の数、位置等の情報を抽出し、抽出した情報に基づき生体情報が生成される。
そして、端末装置2は、読取装置3から生体情報を取得する。なお、生体情報は、バイナリ形式へ変換されるが、当該変換は、読取装置3にて行われてもよいし、端末装置2にて行われてもよい。
ここで、端末装置2は、認証を受けるための準備として生体情報を認証装置1へ登録する場合、読取装置3から取得した生体情報のバイナリデータを含む登録要求を、認証装置1へ送信する。すると、認証装置1は、受信したバイナリデータを、登録データとして、自身の記憶装置へ記憶する。
一方、端末装置2は、認証時には、読取装置3から取得した生体情報のバイナリデータを含む認証要求を、認証装置1へ送信する。すると、認証装置1は、受信したバイナリデータと、複数の登録データとを照合するとともに、照合した結果に基づき認証を行う。なお、本実施例においては、照合対象とする登録データを限定した上で、照合処理が実行される。詳細については、後述する。
次に、認証装置1の機能的構成について説明する。図2は、認証装置1の機能ブロック図である。認証装置1は、通信部11、制御部12、記憶部13を有する。通信部11は、他の装置と通信を行う処理であって、例えば、端末装置2と通信する。制御部12は、認証装置1における各種処理の制御する処理部であって、例えば、登録処理や認証処理を実行する。記憶部13は、各種処理に必要な情報を記憶する記憶部であって、例えば、登録データを記憶する。
制御部12は、算出部14、登録処理部15、認証処理部16を有する。算出部14は、例えば、端末装置2から生体情報のバイナリデータを取得すると、バイナリデータの特徴量を算出する。例えば、バイナリデータにおける1または0の個数が、特徴量である。以下、本実施例では、特徴量として、バイナリデータにおける1の個数を示すハミング重みを利用した場合について、説明する。
例えば、通信部11が登録要求を受信した場合には、算出部14は、登録要求に含まれる生体情報のバイナリデータについて、ハミング重みを算出する。そして、算出した結果を、登録処理部15へ出力する。一方、通信部11が認証要求を受信した場合には、算出部14は、認証要求に含まれる生体情報のバイナリデータについて、ハミング重みを算出する。そして、算出した結果を、認証処理部16へ出力する。
次に、登録処理部15は、端末装置2から登録要求を受信した場合に、登録処理を実行する。具体的には、登録処理部15は、登録要求に含まれるバイナリデータと、算出部14が算出した特徴量とを対応付けて、記憶部13へ登録する。また、登録処理部15は、端末装置2が生成したユーザIDを、さらに、登録データと対応付けて格納してもよい。なお、ユーザIDは、ユーザを識別する識別情報である。また、ユーザIDは、登録処理部15が、生成することとしてもよい。ユーザIDは、例えば、これまでにユーザIDとして利用された文字列とは異なる文字列となるように、生成される。
認証処理部16は、端末装置2から認証要求を受信した場合に、認証処理を実行する。具体的には、認証処理部16は、認証要求に含まれるバイナリデータと、記憶部13に記憶された複数の登録データとを照合することで、認証を実行する。なお、認証要求に含まれるバイナリデータは、入力データの一例である。例えば、入力データと登録データとの差分が認証判定閾値以下である場合に、認証が成功したことを判定する。なお、判定結果は、通信部11を介して、端末装置2へ送信される。
入力データと登録データとの差分は、両バイナリデータ間のハミング距離である。ハミング距離は、入力データの文字列と、登録データの文字列との間で、対応する位置に存在する異なる文字の数であって、両バイナリデータ間の類似度を示す。つまり、バイナリデータ間のハミング距離は、入力データと登録データとの間で、対応する位置に存在する異なるビットの数であって、例えば2つのバイナリデータにおける各桁同士の排他的論理和演算の結果における、1の個数である。本実施例において、認証処理部16は、ハミング距離が、認証判定閾値以下である場合に、入力データに対応する登録データが、事前に登録されていることを判定する。
さらに、本実施例においては、認証処理部16は、入力データとの照合の対象とする登録データを、絞り込む。具体的には、算出部14が算出した入力データの特徴量と、認証判定閾値とを用いて、認証処理部16は、照合対象を限定する。詳細は後述するが、入力データの特徴量と照らして、入力データと登録データの差分が、明らかに認証判定閾値以上となるような登録データについては、照合対象から除外する。
次に、端末装置2の機能的構成について、説明する。図3は、端末装置2の機能ブロック図である。端末装置2は、通信部21、取得部22、制御部23、表示部24を含む。通信部21は、他の装置と通信を行う処理部であって、例えば、認証装置1と通信を行う。取得部22は、登録または認証の対象となる情報を取得する処理部であって、例えば、読取装置3から生体情報を取得する。
制御部23は、端末装置2の処理全体を制御する処理部であって、例えば、登録要求や認証要求を生成する。表示部24は、各種情報を表示する処理部であって、例えば、認証装置1から受信した認証結果を表示する。なお、端末装置2は、さらに、各種情報を記憶する記憶部を有してもよい。
次に、認証装置1の記憶部13が記憶する登録データについて説明する。図4は、記憶部13が記憶する登録データテーブルのデータ構成例である。なお、登録データテーブルは、登録データを管理するためのテーブルである。
登録データテーブルは、ユーザID、ハミング重み、登録データを対応付けて記憶する。ユーザIDは、登録データが示すユーザを識別するための情報である。ハミング重みは、登録データの特徴量の一例であって、登録データにおける1または0の個数である。登録データは、登録要求に含まれるバイナリデータであって、ユーザ固有の情報である。
次に、入力データと照合する登録データを絞り込む処理について説明する。図5は、照合対象の絞込処理を説明するための図である。なお、第一の実施例では、認証装置1における認証処理部16が、認証処理の中で、絞込処理も実行する。他の実施例については、後述する。
ただし、図5に示す登録データテーブルは、図4のようなID順ではなく、特徴量順に登録データを列挙する。なお、登録データテーブルは、図5のように特徴量順に登録データを登録することとしてもよい。特徴量順に登録する例については、第二の実施例において、詳細を説明する。
図5において、入力データをM’とし、入力データのハミング重みを、HW(M’)で表す。また、登録データをMiとし、登録データのハミング重みをHW(Mi)で表す。さらに、入力データと登録データとのハミング距離をHD(M’,Mi)と示す。なお、iは、登録データテーブルのレコード番号に対応する。
認証処理において認証が成功と判定される場合には、ハミング距離HD(M’,Mi)が認証判定閾値d以下であることが必要である。したがって、次の条件1に合致する登録データMiを、照合対象とすることで、認証が成功する可能性がある登録データMiに限定して、照合処理を行うことができる。
言い換えると、次の条件2に合致する登録データMiは、照合対象から除外される。明らかに認証が成功しない登録データMiを、照合対象から除外することで、照合処理の回数を削減し、認証処理に係る時間や演算コストを削減することができる。
なお、条件1および条件2は、以下の論理に基づき、導出された条件である。まず、式1は、認証が成功する条件である。ここで、ハミング距離HD(M’,Mi)は、少なくとも、入力データのハミング重みHW(M’)と、登録データのハミング重みHW(Mi)との差分の絶対値以上となる。これは、ハミング重みHW(M’)を持つ入力データにおいて「1」を示すビットに対して、ハミング重みHW(Mi)をもつ登録データと、ビットごとに排他的論理和演算を行うと、「0」の出力が得られるビット数は、最大でも登録データのハミング重みHW(Mi)までとなるからである。
つまり、排他的論理和の演算結果における「1」のビット数(すなわちハミング距離HD(M’,Mi)は、ハミング重みHW(M’)からハミング重みHW(Mi)を減算した結果の絶対値以上であることがわかる。よって、式2が成立する。次に、式2において、ハミング重みHW(M’)からハミング重みHW(Mi)を減算した結果の絶対値と認証判定閾値との関係式を展開することで、条件1が得られる。
(式1)
例えば、図5に示すように、入力データM’が「10000111」とすると、ハミング重みHW(M’)は、「4」となる。さらに、認証判定閾値dは「2」であるとすると、ハミング重みHW(Mi)が、2より大きく、6よりも小さな登録データが、照合処理の対象となる、つまり、図5の矩形内に示した登録データ群が、照合対象となる。
図5の例では、ユーザIDが「5」の登録データと、入力データとが完全に一致するが、通常、生体認証の場合には、同一人物の場合であっても、入力データと登録データとが完全に一致する可能性は低い。これは、例えば読取装置3で静脈や指紋などを撮影する際の、手の位置や手の傾きなどから生じる誤差によるものである。よって、同一のハミング重みを持つ登録データよりも、異なるハミング重みを持つ登録データが、入力データと最も類似する登録データとなる場合も多い。
そこで、本実施例においては、入力データのハミング重みを基準に、認証判定閾値よりも小さなハミング重みを持つ登録データを、照合対象とすることで、認証が成功する可能性のある登録データを漏れなく照合対象とすることができる。
次に、第一の実施例における端末装置2の処理について説明する。図6は、第一の実施例における端末装置2の処理フローチャートである。制御部23は、登録処理を実行するか否かを判定する(Op.1)。例えば、ユーザから登録処理を開始する旨の入力があった場合に、肯定の判定を行う。
登録処理を実行する場合には(Op.1Yes)、制御部23は、ユーザIDを生成する(Op.2)。ここでは、端末装置2側でユーザIDを生成するが、制御部23は、認証装置1側へユーザIDの生成を要求してもよい。また、端末装置2側でユーザIDを生成しない場合は、後述の登録要求を受けて、認証装置1側でユーザIDを生成してもよい。
さらに、取得部22は、読取装置3から生体情報を取得する(Op.3)。そして、制御部23は、生体情報をバイナリ形式へ変換するとともに、変換後のバイナリデータおよびユーザIDを含む登録要求を生成する。そして、制御部23は、通信部21を制御して、登録要求を認証装置1へ送信する(Op.4)。
一方、登録処理を実行しない場合には(Op.1No)、取得部22は、読取装置3から生体情報を取得する(Op.5)。そして、制御部23は、認証要求を生成するとともに、通信部21を制御して、認証要求を認証装置1へ送信する(Op.6)。ここで、制御部23は、生体情報をバイナリデータへ変換するとともに、バイナリデータを含む登録要求を生成する。なお、本実施例においては、1対N認証が実行されるため、ユーザは、ユーザIDを入力する必要はない。よって、登録要求には、ユーザIDは含まれない。
次に、認証要求に対する認証結果を受信したか否かを制御部23は判断する(Op.7)。認証結果を受信するまで待機し(Op.7No)、通信部21が認証結果を受信した場合には(Op.7Yes)、制御部23の制御の下、表示部24が認証結果を表示する(Op.8)。例えば、表示部24は、認証結果の成功または失敗をユーザへ通知する画面を、表示する。
次に、第一の実施例における認証装置1の処理について説明する。図7は、第一の実施例における認証装置1の処理フローチャートである。制御部12は、通信部11が登録要求を受信したか否かを判定する(Op.11)。
登録要求を受信した場合には(Op.11Yes)、制御部12は登録処理を実行する。まず、算出部14は、登録要求に含まれるバイナリデータを登録データとして、登録データのハミング重みHW(Mi)を算出する(Op.12)。なお、ハミング重みは、登録データの特徴量の一例である。そして、算出部14は、登録データと、ハミング重みHW(Mi)、ユーザIDを登録処理部15へ出力する。
そして、登録処理部15は、登録データと、ハミング重みHW(Mi)、ユーザIDを、記憶部13の登録データテーブルへ格納する(Op.13)。そして、制御部12は、一連の登録処理を終了する。
一方、登録要求を受信していない場合には(Op.11No)、制御部12は、通信部11が認証要求を受信したか否かを判定する(Op.14)。ここで、認証要求を受信していない場合には(Op.14No)、制御部12は、一連の処理を終了する。
また、認証要求を受信している場合には(Op.14Yes)、算出部14は、認証要求に含まれるバイナリデータを入力データとして、入力データのハミング重みHW(M’)を算出する(Op.15)。次に、認証処理部16は、照合処理(Op.16)を実行する。なお、本実施例における照合処理は、複数の登録データの各々について、照合処理を実行するかを判定し、照合処理を実行すると判定された登録データについて、照合処理を行う。
図8は、第一の実施例における照合処理のフローチャートである。まず、認証処理部16は、初期設定を行う(Op.21)。最小ハミング距離変数HDminを登録データのビット数(図4の場合は、8)に設定する。なお、最小ハミング距離変数は、入力データと登録データのハミング距離のうち、最小のハミング距離を示す変数であって、以降の照合処理を実行する事で更新される。さらに、最小ID変数IDminを「−1」に設定する。これは、入力データとのハミング距離が最小となる登録データのIDを示す変数であって、以降の照合処理を実行する事で更新される。
さらに、認証処理部16は、初期設定において、カウンタ変数iを「1」に設定する。なお、カウンタ変数は、登録データテーブルのレコード番号に対応する。さらに、認証処理部16は、登録データテーブル内のレコード数を、最大カウンタ値Niとして設定する。
初期設定終了後、認証処理部16は、カウンタ変数iが最大カウンタ値Niと一致するか判定する(Op.22)。一致しない場合には(Op.22No)、認証処理部16は、カウンタ変数iに対応するレコードを参照し、登録データのハミング重みHW(Mi)を取得する(Op.23)。そして、照合データのハミング重みHW(M’)と認証判定閾値dに基づき、認証処理部16は、登録データのハミング重みHW(Mi)が条件1を満たすか否かを判定する(Op.24)。
条件1を満たす場合(Op.24Yes)、認証処理部16は、カウンタ変数iに対応するレコードの登録データを取得するとともに、入力データと登録データとのハミング距離HD(M’,Mi)を算出する(Op.25)。そして、認証処理部16は、ハミング距離HD(M’,Mi)が最小ハミング距離変数HDminよりも小さいか判定する(Op.26)。
ハミング距離HD(M’,Mi)が最小ハミング距離変数HDminよりも小さい場合は(Op.26Yes)、認証処理部16は、最小ハミング距離変数HDminを、Op.25で算出したハミング距離HD(M’,Mi)に更新するとともに、最小ID変数IDminを、カウンタ変数iに対応するレコードにおけるユーザIDに更新する(Op.27)。
Op.27終了後、条件1を満たさない場合(Op.24No)、または、ハミング距離HD(M’,Mi)が最小ハミング距離変数HDmin以上である場合は(Op.26No)、認証処理部16は、カウンタ変数iをインクリメントする(Op.28)。そして、Op.22へ戻り、処理を繰り返す。
つまり、より小さなハミング距離HD(M’,Mi)が見つかった時点で、最小ハミング距離HDminは、そのハミング距離HD(M’,Mi)に更新される。さらに、最小ID変数IDminも、最小ハミング距離HDminの更新に合わせて、対応するユーザIDに更新される。
そして、カウンタ変数iが、最大カウンタ値Niと一致した場合には(Op.22Yes)、全レコードについて、処理が終了したこととなるため、認証処理部16は、照合処理を終了する。
次に、図7に戻り、照合処理(Op.16)が終了したのち、認証処理部16は、最小ハミング距離HDminが、認証判定閾値dよりも小さいか否かを判定する(Op.17)。そして、最小ハミング距離HDminが、認証判定閾値dよりも小さい場合(Op.17Yes)、認証処理部16は、認証が成功したことを判定するとともに、認証が成功であった旨を示す認証結果を生成する。なお、認証結果は、併せて、最小ID変数IDminに設定されているユーザIDも含む。そして、通信部11は、認証が成功であった旨を示す認証結果を端末装置2へ送信する(Op.18)。
一方、最小ハミング距離HDminが、認証判定閾値d以上である場合(Op.17No)、認証処理部16は、認証が失敗したことを判定するとともに、認証が失敗であった旨を示す認証結果を生成する。そして、通信部11は、認証が失敗であった旨を示す認証結果を端末装置2へ送信する(Op.19)。このとき、認証結果には、最小ID変数IDminに設定されているユーザIDは含まれない。
以上のように、認証処理部16は、条件1を満たさない登録データについては、Op.25乃至Op.27を省略する。つまり、認証処理部16は、照合を実行しない。一方、条件1を満たし、認証が成功する可能性がある登録データについては、照合を実行することで、認証処理部16は、正解データが絞り込み対象から除外されることを防ぐ。
よって、本実施例に係る認証装置1は、登録データのうち、照合処理の対象とする登録データを限定することができる。認証装置1における認証処理は、全ての登録データと照合処理を行う場合と比較して、より短時間に処理を行うことができる。また、認証が成功になる可能性がある登録データについては、照合処理の対象とすることから、正解データが照合処理の対象から除外されることを防ぐことができる。
ここで、特開2002−297549号公報に開示された認証システムは、本人認証の成否を判定する際と、照合の対象とする範囲を限定する際で、異なる判定基準を使用している。そして、本人認証の成否を判定する基準を満たす登録データは、照合の対象とする範囲を限定する基準も満たす可能性が高いという確率的な限定手段のため、本人認証に成功する登録データが照合の対象とする範囲に含まれない場合があり得る。一方、本実施例に開示の技術は、認証判定閾値を利用して、照合対象とする登録データを限定するため、認証が成功となる可能性のある登録データが、照合対象から除外されることを防ぐ。
[第二の実施例]
第二の実施例では、登録データテーブルへの登録データの登録方法が、第一の実施例とは異なる。さらに、照合処理の処理フローが異なる。以下、第一の実施例と異なる点を中心に、第二の実施例について説明を行う。第二の実施例は、ユーザID順に登録データを登録する第一の実施例と比較して、短時間で照合処理に使う登録データを特定することができる。
第二の実施例に係る認証装置1’は、図2に示す第一の実施例の認証装置1と比較して、第一の実施例における登録処理部15の代わりに、登録処理部15’を有し、第一の実施例における認証処理部16の代わりに、認証処理部16’を有し、記憶部13の代わりに、記憶部13’を有する。なお、端末装置の機能的構成は、第一の実施例に係る端末装置2と同様である。
まず、図9は、第二の実施例における登録データテーブルのデータ構成例である。登録処理部15’は、登録要求を受け付けると、登録データテーブルへの登録データの登録を行う。なお、登録データテーブルは、記憶部13’に記憶される。登録データテーブルは、第一の実施例と同様に、ユーザID、ハミング重み、登録データを有する。ただし、登録データは、ハミング重み順に登録される。つまり、図9に示す通り、ハミング重みの昇順に従って、登録データは格納される。なお、実際にハミング重み順に登録データが登録されていてもよいし、ハミング重みごとに対応する登録データの格納場所を示すポインターを対応付けて格納することで、ポインターを用いて、対応する登録データが参照されるようになっていてもよい。
次に、第二の実施例に係る照合処理のフローについて説明する。図10は、第二の実施例における照合処理のフローチャートである。なお、第二の実施例においては、図7に示す認証処理が実行されるが、図7のOp.16において、図10に示す照合処理が実行される。つまり、照合処理以外の処理については、第一の実施例と第二の実施例とは同様である。
まず、認証装置1’の認証処理部16’は、初期設定を行う(Op.31)。ここでは、認証処理部16’は、最小ハミング距離変数HDminを登録データのビット数に設定する。さらに、認証処理部16’は、最小ID変数IDminを「−1」に設定する。さらに、管理変数kを0に設定する。管理変数kは、入力データのハミング重みHW(M’)と登録データのハミング重みHW(Mi)との差を示す。
例えば、管理変数kが「0」である場合には、処理対象の登録データとして、入力データのハミング重みHW(M’)と同じハミング重みを持つ登録データが指定されることとなる。本実施例では、認証処理部16’は、管理変数kを用いて、照合処理の対象となる登録データを限定する。具体的には、認証判定閾値よりも小さい管理変数kが指定する登録データを、認証処理部16’は照合対象とする。
初期設定が終了すると、認証処理部16’は、管理変数kが認証判定閾値dよりも小さいか判定する(Op.32)。管理変数kが認証判定閾値dよりも小さい場合(Op.32Yes)、認証処理部16’は、flg(フラグ)を「−1」に設定する(Op.33)。なお、フラグは、処理方向を規定するための情報である。
例えば、管理変数kが「1」である場合には、入力データのハミング重みHW(M’)とハミング重みが「1」異なる登録データが処理対象となるが、入力データのハミング重みHW(M’)よりも1大きなハミング重みをもつ登録データを処理対象とするのか、入力データのハミング重みHW(M’)よりも1小さなハミング重みをもつ登録データを処理対象とするのかを、フラグによって管理する。ここでは、初めにフラグ「−1」を設定する事で、入力データのハミング重みHW(M’)よりも1小さなハミング重みをもつ登録データを、処理対象として、以下の処理が実行される事とする。なお、管理変数kが「0」である場合には、フラグの設定に関わる処理は省略されてもよい。
次に、認証処理部16’は、カウンタ変数jを「1」に設定する(Op.34)。本実施例におけるカウンタ変数jは、同一のハミング重みを持つ登録データを管理するための変数である。例えば、同一のハミング重みを持つ登録データが3つある場合、各登録データは、j=1、j=2、j=3として取り扱われる。さらに、認証処理部16’は、同一のハミング重みを持つ登録データの数を、最大カウンタ値Njとして設定する。先の例によれば、Njは「3」となる。
認証処理部16’は、カウンタ変数jが最大カウンタ値Njと一致するか判定する(Op.35)。一致しない場合には(Op.35No)、認証処理部16’は、管理変数k、フラグ値、カウンタ変数jに対応する登録データを取得するとともに、入力データと登録データとのハミング距離HD(M’,Mi)を算出する(Op.36)。そして、認証処理部16’は、ハミング距離HD(M’,Mi)が最小ハミング距離変数HDminよりも小さいか判定する(Op.37)。
ハミング距離HD(M’,Mi)が最小ハミング距離変数HDminよりも小さい場合は(Op.37Yes)、認証処理部16’は、最小ハミング距離変数HDminを、Op.36で算出したハミング距離HD(M’,Mi)に更新するとともに、最小ID変数IDminを、管理変数k、フラグ値、カウンタ変数jに対応するレコードにおけるユーザIDに更新する(Op.38)。
Op.38終了後、または、ハミング距離HD(M’,Mi)が最小ハミング距離変数HDmin以上である場合は(Op.37No)、認証処理部16’は、カウンタ変数jをインクリメントする(Op.39)。そして、Op.35へ戻り、処理を繰り返す。
そして、カウンタ変数jが、最大カウンタ値Njと一致した場合には(Op.35Yes)、認証処理部16’は、フラグが「−1」であるかを判定する(Op.40)。ここで、フラグが「−1」である場合には(Op.40Yes)、認証処理部16’は、フラグを「1」に設定する(Op.41)。つまり、処理の方向を反転させる。そして、フラグが「1」に設定された後、同様にOp.34乃至Op.39の処理が繰り返される。ただし、管理変数kが0である場合には、Op.40において、否定の判定がなされることとしてもよい。
一方、フラグが「−1」でない場合には(Op.40No)、認証処理部16’は管理変数kをインクリメントする(Op.42)。そして、Op.32以降の処理が繰り返される。つまり、入力データのハミング重みHW(M’)との差分が、これまでの処理よりも一つ大きい登録データを対象にして、照合処理を行う。
一方、管理変数kが認証判定閾値d以上である場合(Op.32No)、認証処理部16’は照合処理を終了する。つまり、認証判定閾値d以上の管理変数kが指定する登録データについては、照合処理を実行しない。なぜなら、先に示した条件2と同様に、管理変数k以上の登録データについては、認証処理が成功する可能性がないためである。
以上のように、第二の実施例についても、登録データのうち、照合処理の対象とする登録データを限定することができる。よって、認証装置1’における認証処理は、全ての登録データと照合処理を行う場合と比較して、より短時間に処理を行うことができる。また、認証が成功になる可能性がある登録データについては、照合処理の対象とすることから、正解データが照合処理の対象から除外されることを防ぐことができる。
[第三の実施例]
第三の実施例は、照合対象とする登録データを、第一の実施例または第二の実施例と比較して、より限定することで、さらに処理時間を短縮することができる。なお、第三の実施例に係る認証装置1’’は、図2に示す第一の実施例の認証装置1と比較して、第一の実施例における認証処理部16の代わりに、認証処理部16’’を有する。認証処理部16’’は、第一の実施例または第二の実施例とは異なる認証処理を実行する。また、端末装置の機能的構成は、第一の実施例に係る端末装置2と同様である。
図11は、第三の実施例における認証装置1’’の処理フローチャートである。なお、第一の実施例に係る認証装置1の処理フローチャートと同一の処理については、同一の符号を付すとともに、説明を省略する。第三の実施例においては、照合処理(Op.50)および、照合処理に続く認証成否の判定処理(Op.51)が異なる。
図11において、算出部14が、入力データのハミング重みHW(M’)を算出すると(Op.15)、認証処理部16’’は、照合処理を実行する(Op.50)。
図12は、第三の実施例における照合処理のフローチャートである。なお、第二の実施例における照合処理と同一の処理については、同一の符号を付すとともに、説明を簡略化する。初めに、第二の実施例と同様に、認証処理部16’’は、初期設定を行う。つまり、最小ハミング距離変数HDminを登録データのビット数に設定する。さらに、最小ID変数IDminを「−1」に設定する。さらに、管理変数kを0に設定する。
初期設定が終了すると、認証処理部16’’は、管理変数kが認証判定閾値dよりも小さいか判定する(Op.32)。管理変数kが認証判定閾値dよりも小さい場合、flg(フラグ)を「−1」に設定する(Op.33)。次に、認証処理部16’’は、カウンタ変数jを「1」に設定する(Op.34)。さらに、認証処理部16’’は、同一のハミング重みを持つ登録データの数を、最大カウンタ値Njとして設定する。
認証処理部16’’は、カウンタ変数jが最大カウンタ値Njと一致するか判定する(Op.35)。一致しない場合には(Op.35No)、認証処理部16’’は、管理変数k、フラグ値、カウンタ変数jに対応する登録データを取得するとともに、入力データと登録データとのハミング距離HD(M’,Mi)を算出する(Op.36)。
そして、認証処理部16’’は、ハミング距離HD(M’,Mi)が認証判定閾値dよりも小さいか判定する(Op.52)。つまり、第三の実施例においては、認証装置1’’は、照合処理の中で、認証判定が成功する登録データであるかを判定する。
ハミング距離HD(M’,Mi)が認証判定閾値dよりも小さい場合は(Op.52Yes)、認証処理部16’’は、最小ハミング距離変数HDminを、Op.36で算出したハミング距離HD(M’,Mi)に更新するとともに、最小ID変数IDminを、管理変数k、フラグ値、カウンタ変数jに対応するレコードにおけるユーザIDに更新する(Op.53)。
さらに、認証処理部16’’は、認証判定閾値dを、HDminに更新する(Op.54)。つまり、認証判定閾値更新後のOp.32においては、更新前のdと比較して、さらに、照合処理の処理対象を限定するための判断基準が厳しくなる。
そして、認証処理部16’’は、第二の実施例と同様に、カウンタ変数jをインクリメントし(Op.39)、Op.35以降の処理を繰り返す。そして、カウンタ変数jが、最大カウンタ値Njと一致した場合には(Op.35Yes)、認証処理部16’’は、フラグが「−1」であるかを判定する(Op.40)。ここで、フラグが「−1」である場合には(Op.40Yes)、認証処理部16’’は、フラグを「1」に設定する(Op.41)。なお、管理変数kが0である場合には、Op.40において、否定の判定がなされることとしてもよい。そして、フラグが「1」に設定された後、p.34乃至Op.39の処理が繰り返される。
一方、フラグが「−1」でない場合には(Op.40No)、認証処理部16’’は管理変数kをインクリメントする(Op.42)。そして、Op.32以降の処理が繰り返される。また、管理変数kが認証判定閾値d以上である場合(Op.32No)、認証処理部16’’は処理を終了する。つまり、管理変数k以上の登録データについては、照合処理を実行しない。認証判定閾値dがOp.54において更新された場合には、更新された認証判定閾値dが、Op.32における判定に用いられる。
ここで、図5を用いて、認証判定閾値dの更新と、処理対象の限定の関係について説明する。なお、更新前の認証判定閾値dは「2」であるとする。この場合、第一の実施例または第二の実施例においては、図5に照合対象として示した範囲の登録データが処理対象となる。
一方、第三の実施例においては、初め管理変数kが「0」である登録データから照合処理を実行する為、入力データM’が「1000111」である場合、ユーザID「5」の登録データ「1000111」またはユーザID「8」の登録データ「11011000」が初めに、入力データM’と照合されることとなる。
具体的に、ユーザID「5」の登録データ「1000111」を例とすると、Op.36において、ハミング距離HD(M’,Mi)として、「0」が算出される。すると、続く処理において、認証処理部16’’は、ハミング距離HD(M’,Mi)が認証判定閾値dよりも小さいと判定する(Op.52Yes)。そして、認証処理部16’’は、最小ハミング距離変数HDminを、「0」に更新するとともに、最小ID変数IDminを、管理変数k、フラグ値、カウンタ変数jに対応するレコードにおけるユーザID「5」に更新する(Op.53)。さらに、認証処理部16’’は、認証判定閾値dを、HDmin「0」に更新する(Op.54)。
よって、管理変数kが「0」である登録データとの照合が終了すると(Op.35Yes)、Op.40(NO)を経由して、認証処理部16’’はOp.42を実行する。つまり、認証処理部16’’は、管理変数kを、「1」に更新する。次に、更新後の認証判定閾値d「0」と、管理変数k「1」を比較すると、Op.32において否定の判定がなされるため、照合処理は終了となる。つまり、図5に示した照合対象である、6つの登録データから、本実施例によれば、照合対象を2つの登録データまで限定することができる。
つまり、認証が成功する登録データMiが見つかった場合には、認証装置1’’は、当該登録データMiよりも入力データM’と類似する登録データが存在するかを、探索すればよいため、認証判定閾値dが、より厳しい閾値へ更新される。したがって、第三の実施例に係る認証装置1’’は、照合処理対象をさらに、限定することができる。
図5の例では、入力データM’と一致する登録データMiが存在したため、認証判定閾値dは「0」に更新されたが、入力データM’と登録データMiが完全に一致しない場合でも、より小さな認証判定閾値dへ更新されることで、同様の効果が得られる。
次に、図11に戻り、認証処理部16’’は、照合処理(Op.50)が終了した後、最小ID変数IDminが、初期設定時の「−1」から更新されているかを判定する(Op.51)。最小ハミング距離変数HDminが「−1」でない場合には(Op.51No)、認証処理部16’’は、認証成功を判定するとともに、認証が成功したことを示す認証結果を、通信部11を介して、端末装置2へ送信する(Op.18)。
一方、最小ハミング距離変数HDminが「−1」である場合には(Op.51Yes)、認証処理部16’’は、認証失敗を判定するとともに、認証が失敗したことを示す認証結果を、通信部11を介して、端末装置2へ送信する(Op.18)。
Op.53において初期設定時の最小ID変数IDmin「−1」から他の値に更新されている場合には、Op.52において認証成功の登録データを探索可能であったこととなる。よって、Op.51において、最小ID変数IDminが、初期設定時の「−1」から更新されている場合には、認証の成功が判定される。
一方、Op.53において初期設定時の最小ID変数IDmin「−1」から他の値に更新されていない場合には、Op.52において認証成功の登録データを探索不能であったこととなる。よって、Op.51において、最小ID変数IDminが、初期設定時の「−1」から更新されていない場合には、認証の失敗が判定される。
以上から、本実施例における認証装置1’’は、さらに照合対象を限定して認証処理を実行することができる。つまり、認証判定閾値d以下のハミング距離HD(M’,Mi)を持つ登録データが見つかった場合、認証装置1’’は、以降の処理では、当該登録データMiよりも入力データM’に類似する登録データが存在するか否かを探索すればよいため、当該登録データMiよりも入力データM’に類似する可能性のない登録データを、照合対象からさらに除外できる。
[第四の実施例]
第四の実施例は、照合処理を複数の処理部が並列して実行する。第四の実施例として、ひとつの認証装置内に、複数の照合処理部が存在する例を開示する。第四の実施例は、第一の実施例乃至第三の実施例と比較して、照合処理が並列で実行されることから、照合処理ひいては認証処理に要する時間を、短縮することができる。なお、システム構成は、端末装置2および認証装置6を含む。また、第四の実施例に係る端末装置の機能的構成は、第一の実施例における端末装置2と同様である。
図13は、第四の実施例に係る認証装置6の機能ブロック図である。認証装置6は、通信部61、主制御部62、第一従制御部63、第二従制御部64、第一記憶部65、第二記憶部66を有する。そして、主制御部62は、算出部621、登録処理部622、認証処理部623を有する。そして、第一従制御部63は、第一照合処理部631を有し、第二従制御部64は、第二照合処理部641を有する。なお、ここでは、2つの従制御部が並行して照合処理を行うこととして説明するが、3つ以上の従制御部が並行して照合処理を行ってもよい。
通信部61は、他の装置と通信を行う処理であって、例えば、端末装置2と通信する。主制御部62は、認証装置6における各種処理の制御する処理部であって、例えば、認証処理を実行する。第一記憶部65および第二記憶部66は、各種処理に必要な情報を記憶する記憶部であって、例えば、登録データを記憶する。なお、第一記憶部65および第二記憶部66は、排他的に登録データを記憶する。登録データは、第一の実施例や第二の実施例と同様のデータ構成を有する登録データテーブルによって管理される。
算出部621は、端末装置2から生体情報のバイナリデータを取得すると、バイナリデータの特徴量を算出する。例えば、通信部61が登録要求を受信した場合には、算出部621は、登録要求に含まれる生体情報のバイナリデータについて、ハミング重みを算出する。一方、通信部61が認証要求を受信した場合には、算出部621は、認証要求に含まれる生体情報のバイナリデータについて、ハミング重みを算出する。そして、算出部621は、算出した結果を、登録処理部622または認証処理部623へ出力する。
次に、登録処理部622は、端末装置2から登録要求を受信した場合に、登録処理を実行する。具体的には、登録処理部622は、登録要求に含まれるバイナリデータと、算出部621が算出した特徴量とを対応付けて、第一記憶部65または第二記憶部66へ登録する。登録処理部622は、例えば、より登録データ数が少ない記憶部へ、登録データを記憶する。また、登録処理部622は、同一のハミング重みを有する登録データ数が、第一記憶部65と第二記憶部66で同程度になるように、登録データの登録先とする記憶部を決定してもよい。
認証処理部623は、端末装置2から認証要求を受信した場合に、認証処理を実行する。具体的には、認証処理部623は、第一従制御部63および第二従制御部64を制御することで、認証を実行する。第一従制御部63の第一照合処理部631および第二従制御部64の第二照合処理部641は、照合処理を実行すると、照合結果を認証処理部623へ出力する。認証処理部623は、各々の照合結果に基づき、例えば、入力データとの差分が認証判定閾値以下である登録データが存在する場合に、認証が成功したことを判定する。
第一照合処理部631および第二照合処理部641は、照合処理を実行する。なお、照合処理に具体的な処理内容は、第一の実施例、第二の実施例、第三の実施例のいずれかに示した内容である。ただし、第三の実施例の照合処理が実行される場合には、認証判定閾値がいずれか一方の照合処理部により更新された場合には、主制御部62の制御の下、他方の照合処理部へ、更新された認証判定閾値が通知される。
次に、第四の実施例における認証装置6のフローについて説明する。図14は、第四の実施例における認証装置6の処理フローチャートである。まず、主制御部62は、通信部61が登録要求を受信したか否かを判定する(Op.61)。
登録要求を受信した場合には(Op.61Yes)、主制御部62は登録処理を実行する。まず、算出部621は、登録要求に含まれるバイナリデータを登録データとして、登録データのハミング重みHW(Mi)を算出する(Op.62)。そして、算出部621は、登録データと、ハミング重みHW(Mi)、ユーザIDを登録処理部622へ出力する。
そして、登録処理部622は、第一記憶部65における登録データの数N1が、第二記憶部における登録データの数N2よりも小さいか判定する(Op.63)。N1がN2よりも小さい場合(Op.63Yes)、登録処理部622は、登録データと、ハミング重みHW(Mi)、ユーザIDを、第一記憶部65の登録データテーブルへ格納する(Op.64)。そして、主制御部62は、一連の登録処理を終了する。
一方、N1がN2以上である場合(Op.63No)、登録処理部622は、登録データと、ハミング重みHW(Mi)、ユーザIDを、第二記憶部66の登録データテーブルへ格納する(Op.65)。そして、主制御部62は、一連の登録処理を終了する。
一方、登録要求を受信していない場合には(Op.61No)、主制御部62は、通信部61が認証要求を受信したか否かを判定する(Op.66)。ここで、認証要求を受信していない場合には(Op.66No)、主制御部62は、一連の処理を終了する。
また、認証要求を受信している場合には(Op.66Yes)、算出部621は、認証要求に含まれるバイナリデータを入力データとして、入力データのハミング重みHW(M’)を算出する(Op.67)。次に、認証処理部623は、第一照合処理部631および第二照合処理部641に対して、照合処理の実行を命令する。そして、第一照合処理部631および第二照合処理部641は、照合処理を実行する(Op.68)。本実施例においては、第一の実施例に示した照合処理(図8)が実行されるものとする。
第一照合処理部631は、照合処理結果を、認証処理部623へ出力する。なお、照合処理結果には、第一照合処理部631による照合処理終了時の最小ハミング距離変数HDmin1および最小ID変数IDmin1が含まれる。また、第二照合処理部641は、照合処理結果を、認証処理部623へ出力する。なお、照合処理結果には、第二照合処理部641による照合処理終了時の最小ハミング距離変数HDmin2および最小ID変数IDmin2が含まれる。
認証処理部623は、最小ハミング距離変数HDmin1が最小ハミング距離変数HDmin2よりも小さいか判定する(Op.69)。最小ハミング距離変数HDmin1が最小ハミング距離変数HDmin2よりも小さい場合(Op.69Yes)、認証処理部623は、最小ハミング距離変数HDminを、最小ハミング距離変数HDmin1で確定するとともに、最小ID変数IDminを最小ID変数IDmin1で確定する(Op.70)。
一方、最小ハミング距離変数HDmin1が最小ハミング距離変数HDmin2以上である場合(Op.69No)、認証処理部623は、最小ハミング距離変数HDminを、最小ハミング距離変数HDmin2で確定するとともに、最小ID変数IDminを最小ID変数IDmin2で確定する(Op.71)。
そして、認証処理部623は、最小ハミング距離変数HDminが、認証判定閾値dよりも小さいか判定する(Op.72)。そして、最小ハミング距離HDminが、認証判定閾値dよりも小さい場合(Op.72Yes)、認証処理部623は、認証が成功したことを判定するとともに、認証が成功であった旨を示す認証結果を生成する。なお、認証結果は、併せて、最小ID変数IDminに設定されているユーザIDも含む。そして、通信部61は、認証が成功であった旨を示す認証結果を端末装置2へ送信する(Op.73)。
一方、最小ハミング距離HDminが、認証判定閾値d以上である場合(Op.72No)、認証処理部623は、認証が失敗したことを判定するとともに、認証が失敗であった旨を示す認証結果を生成する。そして、通信部61は、認証が失敗であった旨を示す認証結果を端末装置2へ送信する(Op.74)。このとき、認証結果には、最小ID変数IDminに設定されているユーザIDは含まれない。
以上のように、本実施例によれば、第一記憶部65を参照して照合処理を実行する第一照合処理部631と、第二記憶部66を参照して照合処理を実行する第二照合処理部641とが、並行して照合処理を実行する。したがって、照合処理がより短時間に実行される。ひいては、認証装置6における認証処理時間が短縮される。
[第五の実施例]
第五の実施例は、照合処理を複数の照合装置が並列して実行する。第五の実施例は、第一の実施例乃至第三の実施例と比較して、照合処理が並列で実行されることから、照合処理ひいては認証処理に要する時間を、短縮することができる。
第五の実施例に係るシステム構成について説明する。図15は、第五の実施例に係るシステム構成図である。認証システムは、端末装置2と認証装置7と第一照合装置81および第二照合装置82を含む。なお、ここでは2つの照合装置が、認証装置7と連携して照合処理を行うこととするが、3つ以上の照合装置が、認証装置7と連携して照合処理を行ってもよい。
なお、認証装置7と端末装置2とは、ネットワークNを介して接続されている。ネットワークNは、例えば、インターネットである。なお、ネットワークNを介しての通信には、Secure Socket Layer(SSL)などの暗号化通信技術が適用されることが望ましい。さらに、認証装置7と、第一照合装置81および第二照合装置82ともネットワークN’を介して接続されている。当該ネットワークN’を介しての通信には、Secure Socket Layer(SSL)などの暗号化通信技術が適用されることが望ましい。なお、ネットワークN’は、ネットワークNと同一のネットワークであっても、異なるネットワークであってもよい。
認証装置7は、端末装置2の要求に応じて、認証を実行するコンピュータである。また、本実施例においては、認証装置7は、1対N認証を実行する。また、認証装置7は、認証処理および登録処理を、第一照合装置81および第二照合装置82と連携して実行する。
端末装置2は、認証装置7へ認証を要求するコンピュータである。また、本実施例においては、端末装置2は、生体情報を読み取るための読取装置3と、接続される。例えば、読取装置3が、ユーザ5の静脈や指紋等の画像を取得し、画像から生体情報を生成する。そして、端末装置2は、読取装置3から生体情報を取得する。
ここで、端末装置2は、後の認証のために生体情報を登録する際には、読取装置3から取得した生体情報のバイナリデータを含む登録要求を、認証装置7へ送信する。すると、認証装置7は、受信した生体情報のバイナリデータを、登録データとして、第一照合装置81または第二照合装置82へ出力する。第一照合装置81および第二照合装置82は、登録データを取得した場合、自身の記憶装置へ記憶する。
一方、端末装置2は、認証時には、読取装置3から取得した生体情報のバイナリデータを含む認証要求を、認証装置7へ送信する。すると、認証装置7は、受信した生体情報のバイナリデータと、複数の登録データとを照合するように、第一照合装置81および第二照合装置82へ照合要求を送信する。照合要求は、入力データとして受信した生体情報のバイナリデータを含むとともに、当該入力データの特徴量を含む。なお、特徴量は、第一照合装置81および第二照合装置82各々で算出されるとしてもよい。
第一照合装置81および第二照合装置82は照合要求を受信すると、照合対象とする登録データを、限定した上で、照合処理を実行する。なお、照合処理においては、第四の実施例と同様、第一の実施例、第二の実施例、第三の実施例のいずれかの照合処理が実行される。そして、認証装置7は、第一照合装置81および第二照合装置82から照合結果を受信すると、照合結果に基づき認証を行う。
図16は、第五の実施例に係る認証装置7および照合装置8の機能ブロック図である。なお、ここでは、第一照合装置81および第二照合装置82を総称して、照合装置8とする。また、端末装置2は、第一の実施例と同様の機能的構成を有する。
認証装置7は、通信部71、制御部72を有する。なお、各種処理に必要な情報を記憶する記憶部をさらに有してもよい。通信部71は、他の装置と通信を行う処理であって、例えば、端末装置2および照合装置8と通信する。制御部72は、認証装置7における各種処理の制御する処理部であって、例えば、認証処理を実行する。
そして、制御部72は、算出部73、登録管理部74、認証処理部75を有する。算出部73は、端末装置2から生体情報のバイナリデータを取得すると、バイナリデータの特徴量を算出する。例えば、通信部71が登録要求を受信した場合には、算出部73は、登録要求に含まれる生体情報のバイナリデータについて、ハミング重みを算出する。一方、通信部71が認証要求を受信した場合には、算出部73は、認証要求に含まれる生体情報のバイナリデータについて、ハミング重みを算出する。そして、算出部73は、算出した結果を、登録管理部74または認証処理部75へ出力する。
次に、登録管理部74は、端末装置2から登録要求を受信した場合に、登録管理処理を実行する。具体的には、登録管理部74は、登録要求に含まれるバイナリデータと、算出部73が算出した特徴量とを含む登録要求を、第一照合装置81または、第二照合装置82へ出力する。
登録管理部74は、例えば、より登録データ数が少ない照合装置8へ、登録データの登録を要求する。また、登録管理部74は、同一のハミング重みを有する登録データ数が、第一照合装置81と、第二照合装置82で同程度になるように、登録データを記憶する照合装置8を決定してもよい。この場合、認証装置7は、連携して照合処理を行う照合装置8ごとに、記憶する登録データに関する情報を保持することが望ましい。
認証処理部75は、端末装置2から認証要求を受信した場合に、認証処理を実行する。具体的には、認証処理部75は、第一照合装置81および第二照合装置82と連携することで、認証を実行する。認証処理部75は、各々の照合装置による照合結果に基づき、例えば、入力データとの差分が認証判定閾値以下である登録データが存在する場合に、認証が成功したことを判定する。
次に、照合装置8について説明する。照合装置8は、通信部801、制御部802、記憶部803を有する。通信部801は、他の装置と通信を行う処理であって、例えば、認証装置7と通信する。制御部802は、照合装置8における各種処理の制御する処理部であって、例えば、照合処理を実行する。
記憶部803は、各種処理に必要な情報を記憶する記憶部であって、例えば、登録データを記憶する。なお、第一照合装置における記憶部803と、第二照合装置における記憶部803は、排他的に登録データを記憶する。なお、登録データは、第一の実施例と同様のデータ構成を有する登録データテーブルによって管理される。
登録処理部804は、認証装置7から登録要求を受信した場合に、登録処理を実行する。具体的には、登録処理部804は、登録要求に含まれるバイナリデータと、特徴量と、ユーザIDとを対応付けて、記憶部803へ登録する。
照合処理部805は、照合処理を実行する。なお、照合処理の具体的な処理内容は、第一の実施例、第二の実施例、第三の実施例のいずれかに示した内容である。ただし、第三の実施例の照合処理が実行される場合には、認証判定閾値がいずれか一方の照合装置において更新されたとき、認証装置7を経由して、他方の照合装置へ、更新された認証判定閾値が通知される。
次に、第五の実施例における認証装置7の処理フローについて説明する。図17は、第五の実施例における認証装置7の処理フローチャートである。第四の実施例と同様の処理については、同一の符号を付すとともに説明を簡略化する。
まず、制御部72は、通信部71が登録要求を受信したか否かを判定する(Op.61)。登録要求を受信した場合には(Op.61Yes)、算出部73は、登録データのハミング重みHW(Mi)を算出する(Op.62)。
そして、登録管理部74は、第一照合装置81における登録データの数N1が、第二照合装置82における登録データの数N2よりも小さいか判定する(Op.80)。N1がN2よりも小さい場合(Op.80Yes)、登録管理部74は、登録データと、ハミング重みHW(Mi)、ユーザIDを含む登録要求を、第一照合装置81へ送信する(Op.81)。そして、制御部62は、一連の登録処理を終了する。
一方、N1がN2以上である場合(Op.80No)、登録データと、ハミング重みHW(Mi)、ユーザIDを含む登録要求を、第二照合装置82へ送信する(Op.81)。そして、制御部62は、一連の登録処理を終了する。なお、通信部71が、登録完了の旨の応答を受信するようにしてもよい。
一方、登録要求を受信していない場合には(Op.61No)、制御部72は、通信部71が認証要求を受信したか否かを判定する(Op.66)。ここで、認証要求を受信していない場合には(Op.66No)、制御部72は、一連の処理を終了する。
また、認証要求を受信している場合には(Op.66Yes)、算出部73は、認証要求に含まれるバイナリデータを入力データM’として、入力データのハミング重みHW(M’)を算出する(Op.67)。次に、認証処理部75は、通信部71を介して、第一照合装置81および第二照合装置82に対して、照合要求を送信する(Op.83)。照合要求には、入力データM’と、入力データのハミング重みHW(M’)が含まれる。
第一照合装置81および第二照合装置82は、照合要求を受信すると、各々照合処理を実行する。本実施例においては、第一の実施例に示した照合処理(図8)が実行されるものとする。そして、第一照合装置81は、照合処理結果を、通信部801を介して、認証装置7へ送信する。なお、照合処理結果には、第一照合装置81における照合処理部805による照合処理終了時の最小ハミング距離変数HDmin1および最小ID変数IDmin1が含まれる。
また、第二照合装置82は、照合処理結果を、通信部801を介して、認証装置7へ送信する。なお、照合処理結果には、第二照合装置82における照合処理部805による照合処理終了時の最小ハミング距離変数HDmin2および最小ID変数IDmin2が含まれる。
認証装置7の認証処理部75は、通信部71を介して、第一照合装置81および第二照合装置82から、照合処理結果を受信する(Op.84)。なお、本処理においては、認証処理部75は、第一照合装置81および第二照合装置82の両照合装置8から、処理結果を受信するまで、後段の処理を待機する。なお、各照合装置8が、第三の実施例に係る照合処理を実行する場合には、認証処理部75の制御の下、いずれかの照合装置8で更新された認証判定閾値dの値が、他の照合装置8へ送信される。
認証処理部75は、最小ハミング距離変数HDmin1が最小ハミング距離変数HDmin2よりも小さいか判定する(Op.69)。最小ハミング距離変数HDmin1が最小ハミング距離変数HDmin2よりも小さい場合(Op.69Yes)、認証処理部75は、最小ハミング距離変数HDminを、最小ハミング距離変数HDmin1で確定するとともに、最小ID変数IDminを最小ID変数IDmin1で確定する(Op.70)。
一方、最小ハミング距離変数HDmin1が最小ハミング距離変数HDmin2以上である場合(Op.69No)、認証処理部75は、最小ハミング距離変数HDminを、最小ハミング距離変数HDmin2で確定するとともに、最小ID変数IDminを最小ID変数IDmin2で確定する(Op.71)。
そして、認証処理部75は、最小ハミング距離変数HDminが、認証判定閾値dよりも小さいか判定する(Op.72)。そして、最小ハミング距離HDminが、認証判定閾値dよりも小さい場合(Op.72Yes)、通信部71は、認証が成功であった旨を示す認証結果を端末装置2へ送信する(Op.73)。一方、最小ハミング距離HDminが、認証判定閾値d以上である場合(Op.72No)、通信部71は、認証が失敗であった旨を示す認証結果を端末装置2へ送信する(Op.74)。
以上のように、本実施例によれば、認証装置7と第一照合装置81および第二照合装置82が、連携して認証処理を実行する。したがって、認証処理に要する時間が短縮される。
[ハードウェア構成例]
図18は、本発明に関する各装置のハードウェア構成例である。なお、図18では、認証装置1、認証装置1’、認証装置1’’、認証装置6、認証装置7として機能するコンピュータ1000のハードウェア構成を示す。ただし、端末装置2、照合装置8も同様のハードウェア構成を有するコンピュータによって実現される。
コンピュータ1000は、認証処理(照合処理を含む)を実行し、各実施例における認証装置1、認証装置1’、認証装置1’’、認証装置6、認証装置7のいずれかとして機能する。コンピュータ1000はCentral Processing Unit(CPU)1001、Read Only Memory(ROM)1002、Random Access Memory(RAM)1003、通信装置1004、Hard Disk Drive(HDD)1005、入力装置1006、表示装置1007、媒体読取装置1008を有しており、各部はバス1009を介して相互に接続されている。そして、各部は、CPU1001による管理下で相互にデータの送受を行うことができる。
各実施例のフローチャートに示した認証処理が記述された認証プログラムは、コンピュータ1000が読み取り可能な記録媒体に記録される。なお、登録処理についても同様に、登録プログラムは、コンピュータ1000が読み取り可能な記録媒体に記録される。コンピュータ1000が読み取り可能な記録媒体には、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記録装置には、HDD、フレキシブルディスク(FD)、磁気テープ(MT)などがある。
光ディスクには、Digital Versatile Disc(DVD)、DVD−RAM、Compact Disc − Read Only Memory(CD−ROM)、Compact Disc − Recordable/ReWritable(CD−R/RW)などがある。光磁気記録媒体には、Magneto − OPtical disk(MO)などがある。認証プログラムを流通させる場合には、例えば、認証プログラムが記録されたDVD、CD−ROMなどの可搬型記録媒体が販売されることが考えられる。
そして各実施例に係る認証処理が記述された認証プログラムを実行するコンピュータ1000の媒体読取装置1008が、認証プログラムを記録した記録媒体から、該プログラムを読み出す。CPU1001は、読み出された認証プログラムをHDD1005若しくはROM1002、RAM1003に格納する。
CPU1001は、各実施例に関わる認証装置全体の動作制御を司る中央処理装置である。そして、CPU1001が、各実施例に関わる認証プログラムをHDD1005から読み出して実行する。CPU1001は、各装置における制御部として機能するようになる。先に述べたとおり、プログラムはCPU1001とアクセス可能なROM1002またはRAM1003に格納されていても良い。つぎに、通信装置1004は、CPU1001の制御の下、各装置における通信部として機能する。
HDD1005は、CPU1001の管理下で、各装置における記憶部として機能する。つまり、HDD1005は、登録処理および認証処理に必要な情報を記憶する。プログラム同様、登録処理および認証処理に必要な情報はCPU1001とアクセス可能なROM1002またはRAM1003に格納されても良い。さらに、処理の過程で生成される各種情報は、例えば、RAM1003に格納される。つまり、RAM1003が記憶部として機能する場合もある。
入力装置1006は、各種入力を受け付ける。入力装置1006は、例えばキーボードやマウスである。表示装置1007は、各種情報を表示する。表示装置1007は、例えばディスプレイである。