(57)【要約】【課題】  １対Ｎ認証において、入力されたデータとの認証が成功する可能性のある登録データに限定して、照合処理を行うことを目的とする。【解決手段】  コンピュータが、認証の対象となる入力データを受信し、前記入力データの第一の特徴量から前記認証の成否を判定する際に利用される閾値以内となる第二の特徴量を持つ登録データについて、前記入力データとの照合処理を実行することを特徴とする認証方法。【選択図】  図８
2015060433.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータが、
認証の対象となる入力データを受信し、
前記入力データの第一の特徴量から前記認証の成否を判定する際に利用される閾値以内となる第二の特徴量を持つ登録データについて、前記入力データとの照合処理を実行することを特徴とする認証方法。
【請求項２】
前記入力データおよび前記登録データはバイナリ形式のデータであって、
前記特徴量は、前記バイナリ形式のデータにおける、１または０の個数であることを特徴とする請求項１記載の認証方法。
【請求項３】
前記コンピュータは、さらに、
前記入力データと前記特徴量との差分が、前記閾値以下である場合に、前記入力データに対する前記認証は成功であると判定する処理を実行することを特徴とする請求項１または請求項２に記載の認証方法。
【請求項４】
前記登録データの登録要求を受け付けた場合、該登録データと、該登録データの特徴量とを対応付けて記憶することを特徴とする請求項１乃至請求項３のいずれか一項に記載の認証方法。
【請求項５】
前記照合処理において、前記入力データと前記登録データとの差分が、前記閾値以下となった場合、該閾値を前記差分に応じた新たな閾値へ変更するとともに、
前記第一の特徴量から、前記新たな閾値以内となる第三の特徴量を持つ他の登録データについて、前記入力データとの照合処理を実行することを特徴とする請求項１乃至請求項４のいずれか一項に記載の認証方法。
【請求項６】
前記第二の特徴量は、前記第一の特徴量から前記閾値を減算した第一の値から、前記第一の特徴量に前記閾値を加算した第二の値までのいずれかの値を持つことを特徴とする請求項１乃至請求項５のいずれか一項に記載の認証方法。
【請求項７】
前記コンピュータは、
前記第一の特徴量から前記閾値よりも大きな第四の特徴量を持つ登録データについては、前記照合処理を実行しないことを特徴とする請求項１乃至請求項６のいずれか一項に記載の認証方法。
【請求項８】
認証の対象となる入力データを受信する通信部と、
前記入力データの第一の特徴量から前記認証の成否を判定する際に利用される閾値以内となる第二の特徴量を持つ登録データについて、前記入力データとの照合処理を実行する制御部とを有することを特徴とする認証装置。
【請求項９】
認証装置と照合装置を含む認証システムであって、
前記照合装置は、
認証の対象となる入力データを受信する第一の通信部と、
前記入力データの第一の特徴量から、前記認証の成否を判定する際に利用される閾値以内となる第二の特徴量を持つ登録データについて、前記入力データとの照合処理を実行する第一の制御部とを有し、
前記認証装置は、
前記照合装置における前記照合処理の結果を受信する第二の通信部と、
前記照合処理の前記結果に基づき、前記入力データに対する前記認証を実行する第二の制御部とを有する、
ことを特徴とする認証システム。
【請求項１０】
コンピュータに、
認証の対象となる入力データを受信し、
前記入力データの第一の特徴量から前記認証の成否を判定する際に利用される閾値以内となる第二の特徴量を持つ登録データについて、前記入力データとの照合処理を実行する
処理を実行させることを特徴とする認証プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ユーザを認証する技術に関する。
【背景技術】
【０００２】
ネットワークを用いてユーザを認証するための認証技術がある。認証を実行する認証装置には、パスワード情報や生体情報などの認証時に照合対象となる登録情報があらかじめ登録され、認証時には、登録情報と入力情報とが比較される。そして、比較結果に基づき、認証の成功または失敗が判定される。このような認証技術は、例えば、銀行システムにおける認証機能、電子商取引や電子決済の際の認証機能などに、利用されている。
【０００３】
また、人以外にも機器を認証する技術も知られている。例えば、ＰＵＦ（Ｐｈｙｓｉｃａｌ  Ｕｎｃｌｏｎａｂｌｅ  Ｆｕｎｃｔｉｏｎ）と呼ばれる機器の複製困難な物理的特性を利用して機器固有の値を出力する関数を用いた機器認証が存在する。
【０００４】
ここで、認証技術には、大きく分けて２つのタイプが存在する。１対１認証と称される技術と、１対Ｎ認証（ＩＤレス認証とも呼ばれる）と称される技術である。１対１認証は、認証時に、例えば、ユーザを識別するユーザＩＤを受け付けることで、事前に登録された登録情報の中から、ユーザＩＤに対応付けられた１つの登録情報を特定する。そして、入力情報と１つの登録情報との照合を行い、照合結果に応じて、認証の成否が判定される。
【０００５】
一方、１対Ｎ認証は、ユーザＩＤ等を受け付けることは行われない。よって、認証時には、入力情報と、複数の登録情報とが照合される。１対Ｎ認証は、例えば、入力情報と、全ての登録情報とが照合され、もっとも類似する登録情報に基づき、認証の成否が判定される。
【０００６】
例えば、１対Ｎ認証を行う認証システムがある（例えば、特許文献１）。当該認証システムは、指紋を用いた本人認証を実行するシステムである。認証システムは、指紋特徴データを登録する時に、基準データと指紋特徴点データとの類似度に基づき、登録する指紋特徴データに分類情報を与える。一方、入力された指紋特徴データの照合時には、入力された指紋特徴データの分類情報を生成し、入力された指紋特徴データの分類情報に基づき、照合の対象とする指紋特徴データを限定あるいは優先順位をつけて検索照合する。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００２−２９７５４９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかし、上記認証システムは、例えば、照合の対象とする指紋特徴データを限定することはできるが、入力された指紋特徴データと合致する可能性のある指紋特徴データを必ず含むことの保証がない。つまり、入力された指紋特徴データと合致する可能性のある指紋特徴データを含んだうえで、照合の対象とする範囲を限定することができない。
【０００９】
また、上記認証システムは、例えば、優先順位をつけたうえで、認証が成功するまで、登録された指紋特徴データとの照合を繰り返す（検索照合）ことはできるが、登録された指紋特徴点データと一致しない指紋特徴点データが入力された場合は、結果的に、全ての登録された指紋特徴データとの照合が行われるまで、認証失敗を判断することができない。
【００１０】
そこで、本実施例に開示の技術は、１対Ｎ認証において、入力データとの認証が成功する可能性のある登録データに限定して、入力データとの照合処理を行うことを目的とする。
【課題を解決するための手段】
【００１１】
上記課題を解決する為に、ひとつの実施態様では、認証方法は、コンピュータが、認証の対象となる入力データを受信する処理と、前記入力データの第一の特徴量から前記認証の成否を判定する際に利用される閾値以内となる第二の特徴量を持つ登録データについて、前記入力データとの照合処理を実行する処理を含む。
【発明の効果】
【００１２】
本発明の一観点によれば、１対Ｎ認証において、入力データと一致する可能性のある登録データに限定して、照合処理を行うことで、照合処理の回数を削減することができる。よって、認証処理に要する時間および演算コストを削減することが可能になる。
【図面の簡単な説明】
【００１３】
【図１】図１は、第一の実施例に関する認証システムを説明するための図である。
【図２】図２は、認証装置１の機能ブロック図である。
【図３】図３は、端末装置２の機能ブロック図である。
【図４】図４は、記憶部１３が記憶する登録データテーブルのデータ構成例である。
【図５】図５は、照合対象の絞り込みを説明するための図である。
【図６】図６は、第一の実施例における端末装置２の処理フローチャートである。
【図７】図７は、第一の実施例における認証装置１の処理フローチャートである。
【図８】図８は、第一の実施例における照合処理のフローチャートである。
【図９】図９は、第二の実施例における登録データテーブルのデータ構成例である。
【図１０】図１０は、第二の実施例における照合処理のフローチャートである。
【図１１】図１１は、第三の実施例における認証装置１’’の処理フローチャートである。
【図１２】図１２は、第三の実施例における照合処理のフローチャートである。
【図１３】図１３は、第四の実施例に係る認証装置６の機能ブロック図である。
【図１４】図１４は、第四の実施例における認証装置６の処理フローチャートである。
【図１５】図１５は、第五の実施例に係るシステム構成図である。
【図１６】図１６は、第五の実施例に係る認証装置７および照合装置８の機能ブロック図である。
【図１７】図１７は、第五の実施例における認証装置７の処理フローチャートである。
【図１８】図１８は、本発明に関する各装置のハードウェア構成例である。
【発明を実施するための形態】
【００１４】
以下詳細な本発明の実施例に関して説明する。なお、以下の各実施例は、処理の内容を矛盾させない範囲で適宜組み合わせることが可能である。以下、図面に基づいて各実施例について説明する。
【００１５】
［第一の実施例］
図１は、第一の実施例に関する認証システムを説明するための図である。まず、本実施例における認証システムについて、説明する。認証システムは、認証装置１と端末装置２を含む。なお、認証装置１と端末装置２とは、ネットワークＮを介して接続されている。ネットワークＮは、例えば、インターネットである。なお、ネットワークＮを介しての通信には、Ｓｅｃｕｒｅ  Ｓｏｃｋｅｔ  Ｌａｙｅｒ（ＳＳＬ）などの暗号化通信技術が適用されることが望ましい。
【００１６】
認証装置１は、端末装置２の要求に応じて、認証を実行するコンピュータである。また、本実施例においては、認証装置１は、１対Ｎ認証を実行する。つまり、認証装置１は、端末装置２から、認証される対象となる入力データを取得した場合、入力データと複数の登録データとを比較することで、認証を実行する。なお、登録データは、予め認証装置１に登録されたデータであって、例えば各ユーザに固有の情報である。
【００１７】
入力データおよび登録データは、例えばバイナリ形式のデータである。さらに、なお、本実施例においては、認証装置１は生体認証を行うものとするため、登録データおよび入力データは、生体情報を示すバイナリデータである。ただし、本実施例に開示の技術は、生体認証以外にも、他の認証方式に適用が可能である。例えば、本実施例に開示の技術は、ＰＵＦ（Ｐｈｙｓｉｃａｌ  Ｕｎｃｌｏｎａｂｌｅ  Ｆｕｎｃｔｉｏｎ）を利用した機器固有の値を用いた機器認証に適用される。
【００１８】
端末装置２は、認証装置１へ認証を要求するコンピュータである。また、本実施例においては、端末装置２は、生体情報を読み取るための読取装置３と、接続される。例えば、読取装置３が、ユーザ５の静脈や指紋等の画像を取得し、画像から生体情報を生成する。なお、画像から生体情報を生成する際のアルゴリズムは、従来の各種手法が用いられる。例えば、画像解析により、静脈の分岐の数、位置等の情報を抽出し、抽出した情報に基づき生体情報が生成される。
【００１９】
そして、端末装置２は、読取装置３から生体情報を取得する。なお、生体情報は、バイナリ形式へ変換されるが、当該変換は、読取装置３にて行われてもよいし、端末装置２にて行われてもよい。
【００２０】
ここで、端末装置２は、認証を受けるための準備として生体情報を認証装置１へ登録する場合、読取装置３から取得した生体情報のバイナリデータを含む登録要求を、認証装置１へ送信する。すると、認証装置１は、受信したバイナリデータを、登録データとして、自身の記憶装置へ記憶する。
【００２１】
一方、端末装置２は、認証時には、読取装置３から取得した生体情報のバイナリデータを含む認証要求を、認証装置１へ送信する。すると、認証装置１は、受信したバイナリデータと、複数の登録データとを照合するとともに、照合した結果に基づき認証を行う。なお、本実施例においては、照合対象とする登録データを限定した上で、照合処理が実行される。詳細については、後述する。
【００２２】
次に、認証装置１の機能的構成について説明する。図２は、認証装置１の機能ブロック図である。認証装置１は、通信部１１、制御部１２、記憶部１３を有する。通信部１１は、他の装置と通信を行う処理であって、例えば、端末装置２と通信する。制御部１２は、認証装置１における各種処理の制御する処理部であって、例えば、登録処理や認証処理を実行する。記憶部１３は、各種処理に必要な情報を記憶する記憶部であって、例えば、登録データを記憶する。
【００２３】
制御部１２は、算出部１４、登録処理部１５、認証処理部１６を有する。算出部１４は、例えば、端末装置２から生体情報のバイナリデータを取得すると、バイナリデータの特徴量を算出する。例えば、バイナリデータにおける１または０の個数が、特徴量である。以下、本実施例では、特徴量として、バイナリデータにおける１の個数を示すハミング重みを利用した場合について、説明する。
【００２４】
例えば、通信部１１が登録要求を受信した場合には、算出部１４は、登録要求に含まれる生体情報のバイナリデータについて、ハミング重みを算出する。そして、算出した結果を、登録処理部１５へ出力する。一方、通信部１１が認証要求を受信した場合には、算出部１４は、認証要求に含まれる生体情報のバイナリデータについて、ハミング重みを算出する。そして、算出した結果を、認証処理部１６へ出力する。
【００２５】
次に、登録処理部１５は、端末装置２から登録要求を受信した場合に、登録処理を実行する。具体的には、登録処理部１５は、登録要求に含まれるバイナリデータと、算出部１４が算出した特徴量とを対応付けて、記憶部１３へ登録する。また、登録処理部１５は、端末装置２が生成したユーザＩＤを、さらに、登録データと対応付けて格納してもよい。なお、ユーザＩＤは、ユーザを識別する識別情報である。また、ユーザＩＤは、登録処理部１５が、生成することとしてもよい。ユーザＩＤは、例えば、これまでにユーザＩＤとして利用された文字列とは異なる文字列となるように、生成される。
【００２６】
認証処理部１６は、端末装置２から認証要求を受信した場合に、認証処理を実行する。具体的には、認証処理部１６は、認証要求に含まれるバイナリデータと、記憶部１３に記憶された複数の登録データとを照合することで、認証を実行する。なお、認証要求に含まれるバイナリデータは、入力データの一例である。例えば、入力データと登録データとの差分が認証判定閾値以下である場合に、認証が成功したことを判定する。なお、判定結果は、通信部１１を介して、端末装置２へ送信される。
【００２７】
入力データと登録データとの差分は、両バイナリデータ間のハミング距離である。ハミング距離は、入力データの文字列と、登録データの文字列との間で、対応する位置に存在する異なる文字の数であって、両バイナリデータ間の類似度を示す。つまり、バイナリデータ間のハミング距離は、入力データと登録データとの間で、対応する位置に存在する異なるビットの数であって、例えば２つのバイナリデータにおける各桁同士の排他的論理和演算の結果における、１の個数である。本実施例において、認証処理部１６は、ハミング距離が、認証判定閾値以下である場合に、入力データに対応する登録データが、事前に登録されていることを判定する。
【００２８】
さらに、本実施例においては、認証処理部１６は、入力データとの照合の対象とする登録データを、絞り込む。具体的には、算出部１４が算出した入力データの特徴量と、認証判定閾値とを用いて、認証処理部１６は、照合対象を限定する。詳細は後述するが、入力データの特徴量と照らして、入力データと登録データの差分が、明らかに認証判定閾値以上となるような登録データについては、照合対象から除外する。
【００２９】
次に、端末装置２の機能的構成について、説明する。図３は、端末装置２の機能ブロック図である。端末装置２は、通信部２１、取得部２２、制御部２３、表示部２４を含む。通信部２１は、他の装置と通信を行う処理部であって、例えば、認証装置１と通信を行う。取得部２２は、登録または認証の対象となる情報を取得する処理部であって、例えば、読取装置３から生体情報を取得する。
【００３０】
制御部２３は、端末装置２の処理全体を制御する処理部であって、例えば、登録要求や認証要求を生成する。表示部２４は、各種情報を表示する処理部であって、例えば、認証装置１から受信した認証結果を表示する。なお、端末装置２は、さらに、各種情報を記憶する記憶部を有してもよい。
【００３１】
次に、認証装置１の記憶部１３が記憶する登録データについて説明する。図４は、記憶部１３が記憶する登録データテーブルのデータ構成例である。なお、登録データテーブルは、登録データを管理するためのテーブルである。
【００３２】
登録データテーブルは、ユーザＩＤ、ハミング重み、登録データを対応付けて記憶する。ユーザＩＤは、登録データが示すユーザを識別するための情報である。ハミング重みは、登録データの特徴量の一例であって、登録データにおける１または０の個数である。登録データは、登録要求に含まれるバイナリデータであって、ユーザ固有の情報である。
【００３３】
次に、入力データと照合する登録データを絞り込む処理について説明する。図５は、照合対象の絞込処理を説明するための図である。なお、第一の実施例では、認証装置１における認証処理部１６が、認証処理の中で、絞込処理も実行する。他の実施例については、後述する。
【００３４】
ただし、図５に示す登録データテーブルは、図４のようなＩＤ順ではなく、特徴量順に登録データを列挙する。なお、登録データテーブルは、図５のように特徴量順に登録データを登録することとしてもよい。特徴量順に登録する例については、第二の実施例において、詳細を説明する。
【００３５】
図５において、入力データをＭ’とし、入力データのハミング重みを、ＨＷ（Ｍ’）で表す。また、登録データをＭｉとし、登録データのハミング重みをＨＷ（Ｍｉ）で表す。さらに、入力データと登録データとのハミング距離をＨＤ（Ｍ’，Ｍｉ）と示す。なお、ｉは、登録データテーブルのレコード番号に対応する。
【００３６】
認証処理において認証が成功と判定される場合には、ハミング距離ＨＤ（Ｍ’，Ｍｉ）が認証判定閾値ｄ以下であることが必要である。したがって、次の条件１に合致する登録データＭｉを、照合対象とすることで、認証が成功する可能性がある登録データＭｉに限定して、照合処理を行うことができる。
【００３７】
（条件１）  
2015060433.tif 000003
【００３８】
言い換えると、次の条件２に合致する登録データＭｉは、照合対象から除外される。明らかに認証が成功しない登録データＭｉを、照合対象から除外することで、照合処理の回数を削減し、認証処理に係る時間や演算コストを削減することができる。
【００３９】
（条件２）  
2015060433.tif 000004
【００４０】
なお、条件１および条件２は、以下の論理に基づき、導出された条件である。まず、式１は、認証が成功する条件である。ここで、ハミング距離ＨＤ（Ｍ’，Ｍｉ）は、少なくとも、入力データのハミング重みＨＷ（Ｍ’）と、登録データのハミング重みＨＷ（Ｍｉ）との差分の絶対値以上となる。これは、ハミング重みＨＷ（Ｍ’）を持つ入力データにおいて「１」を示すビットに対して、ハミング重みＨＷ（Ｍｉ）をもつ登録データと、ビットごとに排他的論理和演算を行うと、「０」の出力が得られるビット数は、最大でも登録データのハミング重みＨＷ（Ｍｉ）までとなるからである。
【００４１】
つまり、排他的論理和の演算結果における「１」のビット数（すなわちハミング距離ＨＤ（Ｍ’，Ｍｉ）は、ハミング重みＨＷ（Ｍ’）からハミング重みＨＷ（Ｍｉ）を減算した結果の絶対値以上であることがわかる。よって、式２が成立する。次に、式２において、ハミング重みＨＷ（Ｍ’）からハミング重みＨＷ（Ｍｉ）を減算した結果の絶対値と認証判定閾値との関係式を展開することで、条件１が得られる。
（式１）
2015060433.tif 000005
【００４２】
（式２）
2015060433.tif 000006
【００４３】
例えば、図５に示すように、入力データＭ’が「１００００１１１」とすると、ハミング重みＨＷ（Ｍ’）は、「４」となる。さらに、認証判定閾値ｄは「２」であるとすると、ハミング重みＨＷ（Ｍｉ）が、２より大きく、６よりも小さな登録データが、照合処理の対象となる、つまり、図５の矩形内に示した登録データ群が、照合対象となる。
【００４４】
図５の例では、ユーザＩＤが「５」の登録データと、入力データとが完全に一致するが、通常、生体認証の場合には、同一人物の場合であっても、入力データと登録データとが完全に一致する可能性は低い。これは、例えば読取装置３で静脈や指紋などを撮影する際の、手の位置や手の傾きなどから生じる誤差によるものである。よって、同一のハミング重みを持つ登録データよりも、異なるハミング重みを持つ登録データが、入力データと最も類似する登録データとなる場合も多い。
【００４５】
そこで、本実施例においては、入力データのハミング重みを基準に、認証判定閾値よりも小さなハミング重みを持つ登録データを、照合対象とすることで、認証が成功する可能性のある登録データを漏れなく照合対象とすることができる。
【００４６】
次に、第一の実施例における端末装置２の処理について説明する。図６は、第一の実施例における端末装置２の処理フローチャートである。制御部２３は、登録処理を実行するか否かを判定する（Ｏｐ．１）。例えば、ユーザから登録処理を開始する旨の入力があった場合に、肯定の判定を行う。
【００４７】
登録処理を実行する場合には（Ｏｐ．１Ｙｅｓ）、制御部２３は、ユーザＩＤを生成する（Ｏｐ．２）。ここでは、端末装置２側でユーザＩＤを生成するが、制御部２３は、認証装置１側へユーザＩＤの生成を要求してもよい。また、端末装置２側でユーザＩＤを生成しない場合は、後述の登録要求を受けて、認証装置１側でユーザＩＤを生成してもよい。
【００４８】
さらに、取得部２２は、読取装置３から生体情報を取得する（Ｏｐ．３）。そして、制御部２３は、生体情報をバイナリ形式へ変換するとともに、変換後のバイナリデータおよびユーザＩＤを含む登録要求を生成する。そして、制御部２３は、通信部２１を制御して、登録要求を認証装置１へ送信する（Ｏｐ．４）。
【００４９】
一方、登録処理を実行しない場合には（Ｏｐ．１Ｎｏ）、取得部２２は、読取装置３から生体情報を取得する（Ｏｐ．５）。そして、制御部２３は、認証要求を生成するとともに、通信部２１を制御して、認証要求を認証装置１へ送信する（Ｏｐ．６）。ここで、制御部２３は、生体情報をバイナリデータへ変換するとともに、バイナリデータを含む登録要求を生成する。なお、本実施例においては、１対Ｎ認証が実行されるため、ユーザは、ユーザＩＤを入力する必要はない。よって、登録要求には、ユーザＩＤは含まれない。
【００５０】
次に、認証要求に対する認証結果を受信したか否かを制御部２３は判断する（Ｏｐ．７）。認証結果を受信するまで待機し（Ｏｐ．７Ｎｏ）、通信部２１が認証結果を受信した場合には（Ｏｐ．７Ｙｅｓ）、制御部２３の制御の下、表示部２４が認証結果を表示する（Ｏｐ．８）。例えば、表示部２４は、認証結果の成功または失敗をユーザへ通知する画面を、表示する。
【００５１】
次に、第一の実施例における認証装置１の処理について説明する。図７は、第一の実施例における認証装置１の処理フローチャートである。制御部１２は、通信部１１が登録要求を受信したか否かを判定する（Ｏｐ．１１）。
【００５２】
登録要求を受信した場合には（Ｏｐ．１１Ｙｅｓ）、制御部１２は登録処理を実行する。まず、算出部１４は、登録要求に含まれるバイナリデータを登録データとして、登録データのハミング重みＨＷ（Ｍｉ）を算出する（Ｏｐ．１２）。なお、ハミング重みは、登録データの特徴量の一例である。そして、算出部１４は、登録データと、ハミング重みＨＷ（Ｍｉ）、ユーザＩＤを登録処理部１５へ出力する。
【００５３】
そして、登録処理部１５は、登録データと、ハミング重みＨＷ（Ｍｉ）、ユーザＩＤを、記憶部１３の登録データテーブルへ格納する（Ｏｐ．１３）。そして、制御部１２は、一連の登録処理を終了する。
【００５４】
一方、登録要求を受信していない場合には（Ｏｐ．１１Ｎｏ）、制御部１２は、通信部１１が認証要求を受信したか否かを判定する（Ｏｐ．１４）。ここで、認証要求を受信していない場合には（Ｏｐ．１４Ｎｏ）、制御部１２は、一連の処理を終了する。
【００５５】
また、認証要求を受信している場合には（Ｏｐ．１４Ｙｅｓ）、算出部１４は、認証要求に含まれるバイナリデータを入力データとして、入力データのハミング重みＨＷ（Ｍ’）を算出する（Ｏｐ．１５）。次に、認証処理部１６は、照合処理（Ｏｐ．１６）を実行する。なお、本実施例における照合処理は、複数の登録データの各々について、照合処理を実行するかを判定し、照合処理を実行すると判定された登録データについて、照合処理を行う。
【００５６】
図８は、第一の実施例における照合処理のフローチャートである。まず、認証処理部１６は、初期設定を行う（Ｏｐ．２１）。最小ハミング距離変数ＨＤｍｉｎを登録データのビット数（図４の場合は、８）に設定する。なお、最小ハミング距離変数は、入力データと登録データのハミング距離のうち、最小のハミング距離を示す変数であって、以降の照合処理を実行する事で更新される。さらに、最小ＩＤ変数ＩＤｍｉｎを「−１」に設定する。これは、入力データとのハミング距離が最小となる登録データのＩＤを示す変数であって、以降の照合処理を実行する事で更新される。
【００５７】
さらに、認証処理部１６は、初期設定において、カウンタ変数ｉを「１」に設定する。なお、カウンタ変数は、登録データテーブルのレコード番号に対応する。さらに、認証処理部１６は、登録データテーブル内のレコード数を、最大カウンタ値Ｎｉとして設定する。
【００５８】
初期設定終了後、認証処理部１６は、カウンタ変数ｉが最大カウンタ値Ｎｉと一致するか判定する（Ｏｐ．２２）。一致しない場合には（Ｏｐ．２２Ｎｏ）、認証処理部１６は、カウンタ変数ｉに対応するレコードを参照し、登録データのハミング重みＨＷ（Ｍｉ）を取得する（Ｏｐ．２３）。そして、照合データのハミング重みＨＷ（Ｍ’）と認証判定閾値ｄに基づき、認証処理部１６は、登録データのハミング重みＨＷ（Ｍｉ）が条件１を満たすか否かを判定する（Ｏｐ．２４）。
【００５９】
条件１を満たす場合（Ｏｐ．２４Ｙｅｓ）、認証処理部１６は、カウンタ変数ｉに対応するレコードの登録データを取得するとともに、入力データと登録データとのハミング距離ＨＤ（Ｍ’，Ｍｉ）を算出する（Ｏｐ．２５）。そして、認証処理部１６は、ハミング距離ＨＤ（Ｍ’，Ｍｉ）が最小ハミング距離変数ＨＤｍｉｎよりも小さいか判定する（Ｏｐ．２６）。
【００６０】
ハミング距離ＨＤ（Ｍ’，Ｍｉ）が最小ハミング距離変数ＨＤｍｉｎよりも小さい場合は（Ｏｐ．２６Ｙｅｓ）、認証処理部１６は、最小ハミング距離変数ＨＤｍｉｎを、Ｏｐ．２５で算出したハミング距離ＨＤ（Ｍ’，Ｍｉ）に更新するとともに、最小ＩＤ変数ＩＤｍｉｎを、カウンタ変数ｉに対応するレコードにおけるユーザＩＤに更新する（Ｏｐ．２７）。
【００６１】
Ｏｐ．２７終了後、条件１を満たさない場合（Ｏｐ．２４Ｎｏ）、または、ハミング距離ＨＤ（Ｍ’，Ｍｉ）が最小ハミング距離変数ＨＤｍｉｎ以上である場合は（Ｏｐ．２６Ｎｏ）、認証処理部１６は、カウンタ変数ｉをインクリメントする（Ｏｐ．２８）。そして、Ｏｐ．２２へ戻り、処理を繰り返す。
【００６２】
つまり、より小さなハミング距離ＨＤ（Ｍ’，Ｍｉ）が見つかった時点で、最小ハミング距離ＨＤｍｉｎは、そのハミング距離ＨＤ（Ｍ’，Ｍｉ）に更新される。さらに、最小ＩＤ変数ＩＤｍｉｎも、最小ハミング距離ＨＤｍｉｎの更新に合わせて、対応するユーザＩＤに更新される。
【００６３】
そして、カウンタ変数ｉが、最大カウンタ値Ｎｉと一致した場合には（Ｏｐ．２２Ｙｅｓ）、全レコードについて、処理が終了したこととなるため、認証処理部１６は、照合処理を終了する。
【００６４】
次に、図７に戻り、照合処理（Ｏｐ．１６）が終了したのち、認証処理部１６は、最小ハミング距離ＨＤｍｉｎが、認証判定閾値ｄよりも小さいか否かを判定する（Ｏｐ．１７）。そして、最小ハミング距離ＨＤｍｉｎが、認証判定閾値ｄよりも小さい場合（Ｏｐ．１７Ｙｅｓ）、認証処理部１６は、認証が成功したことを判定するとともに、認証が成功であった旨を示す認証結果を生成する。なお、認証結果は、併せて、最小ＩＤ変数ＩＤｍｉｎに設定されているユーザＩＤも含む。そして、通信部１１は、認証が成功であった旨を示す認証結果を端末装置２へ送信する（Ｏｐ．１８）。
【００６５】
一方、最小ハミング距離ＨＤｍｉｎが、認証判定閾値ｄ以上である場合（Ｏｐ．１７Ｎｏ）、認証処理部１６は、認証が失敗したことを判定するとともに、認証が失敗であった旨を示す認証結果を生成する。そして、通信部１１は、認証が失敗であった旨を示す認証結果を端末装置２へ送信する（Ｏｐ．１９）。このとき、認証結果には、最小ＩＤ変数ＩＤｍｉｎに設定されているユーザＩＤは含まれない。
【００６６】
以上のように、認証処理部１６は、条件１を満たさない登録データについては、Ｏｐ．２５乃至Ｏｐ．２７を省略する。つまり、認証処理部１６は、照合を実行しない。一方、条件１を満たし、認証が成功する可能性がある登録データについては、照合を実行することで、認証処理部１６は、正解データが絞り込み対象から除外されることを防ぐ。
【００６７】
よって、本実施例に係る認証装置１は、登録データのうち、照合処理の対象とする登録データを限定することができる。認証装置１における認証処理は、全ての登録データと照合処理を行う場合と比較して、より短時間に処理を行うことができる。また、認証が成功になる可能性がある登録データについては、照合処理の対象とすることから、正解データが照合処理の対象から除外されることを防ぐことができる。
【００６８】
ここで、特開２００２−２９７５４９号公報に開示された認証システムは、本人認証の成否を判定する際と、照合の対象とする範囲を限定する際で、異なる判定基準を使用している。そして、本人認証の成否を判定する基準を満たす登録データは、照合の対象とする範囲を限定する基準も満たす可能性が高いという確率的な限定手段のため、本人認証に成功する登録データが照合の対象とする範囲に含まれない場合があり得る。一方、本実施例に開示の技術は、認証判定閾値を利用して、照合対象とする登録データを限定するため、認証が成功となる可能性のある登録データが、照合対象から除外されることを防ぐ。
【００６９】
［第二の実施例］
第二の実施例では、登録データテーブルへの登録データの登録方法が、第一の実施例とは異なる。さらに、照合処理の処理フローが異なる。以下、第一の実施例と異なる点を中心に、第二の実施例について説明を行う。第二の実施例は、ユーザＩＤ順に登録データを登録する第一の実施例と比較して、短時間で照合処理に使う登録データを特定することができる。
【００７０】
第二の実施例に係る認証装置１’は、図２に示す第一の実施例の認証装置１と比較して、第一の実施例における登録処理部１５の代わりに、登録処理部１５’を有し、第一の実施例における認証処理部１６の代わりに、認証処理部１６’を有し、記憶部１３の代わりに、記憶部１３’を有する。なお、端末装置の機能的構成は、第一の実施例に係る端末装置２と同様である。
【００７１】
まず、図９は、第二の実施例における登録データテーブルのデータ構成例である。登録処理部１５’は、登録要求を受け付けると、登録データテーブルへの登録データの登録を行う。なお、登録データテーブルは、記憶部１３’に記憶される。登録データテーブルは、第一の実施例と同様に、ユーザＩＤ、ハミング重み、登録データを有する。ただし、登録データは、ハミング重み順に登録される。つまり、図９に示す通り、ハミング重みの昇順に従って、登録データは格納される。なお、実際にハミング重み順に登録データが登録されていてもよいし、ハミング重みごとに対応する登録データの格納場所を示すポインターを対応付けて格納することで、ポインターを用いて、対応する登録データが参照されるようになっていてもよい。
【００７２】
次に、第二の実施例に係る照合処理のフローについて説明する。図１０は、第二の実施例における照合処理のフローチャートである。なお、第二の実施例においては、図７に示す認証処理が実行されるが、図７のＯｐ．１６において、図１０に示す照合処理が実行される。つまり、照合処理以外の処理については、第一の実施例と第二の実施例とは同様である。
【００７３】
まず、認証装置１’の認証処理部１６’は、初期設定を行う（Ｏｐ．３１）。ここでは、認証処理部１６’は、最小ハミング距離変数ＨＤｍｉｎを登録データのビット数に設定する。さらに、認証処理部１６’は、最小ＩＤ変数ＩＤｍｉｎを「−１」に設定する。さらに、管理変数ｋを０に設定する。管理変数ｋは、入力データのハミング重みＨＷ（Ｍ’）と登録データのハミング重みＨＷ（Ｍｉ）との差を示す。
【００７４】
例えば、管理変数ｋが「０」である場合には、処理対象の登録データとして、入力データのハミング重みＨＷ（Ｍ’）と同じハミング重みを持つ登録データが指定されることとなる。本実施例では、認証処理部１６’は、管理変数ｋを用いて、照合処理の対象となる登録データを限定する。具体的には、認証判定閾値よりも小さい管理変数ｋが指定する登録データを、認証処理部１６’は照合対象とする。
【００７５】
初期設定が終了すると、認証処理部１６’は、管理変数ｋが認証判定閾値ｄよりも小さいか判定する（Ｏｐ．３２）。管理変数ｋが認証判定閾値ｄよりも小さい場合（Ｏｐ．３２Ｙｅｓ）、認証処理部１６’は、ｆｌｇ（フラグ）を「−１」に設定する（Ｏｐ．３３）。なお、フラグは、処理方向を規定するための情報である。
【００７６】
例えば、管理変数ｋが「１」である場合には、入力データのハミング重みＨＷ（Ｍ’）とハミング重みが「１」異なる登録データが処理対象となるが、入力データのハミング重みＨＷ（Ｍ’）よりも１大きなハミング重みをもつ登録データを処理対象とするのか、入力データのハミング重みＨＷ（Ｍ’）よりも１小さなハミング重みをもつ登録データを処理対象とするのかを、フラグによって管理する。ここでは、初めにフラグ「−１」を設定する事で、入力データのハミング重みＨＷ（Ｍ’）よりも１小さなハミング重みをもつ登録データを、処理対象として、以下の処理が実行される事とする。なお、管理変数ｋが「０」である場合には、フラグの設定に関わる処理は省略されてもよい。
【００７７】
次に、認証処理部１６’は、カウンタ変数ｊを「１」に設定する（Ｏｐ．３４）。本実施例におけるカウンタ変数ｊは、同一のハミング重みを持つ登録データを管理するための変数である。例えば、同一のハミング重みを持つ登録データが３つある場合、各登録データは、ｊ＝１、ｊ＝２、ｊ＝３として取り扱われる。さらに、認証処理部１６’は、同一のハミング重みを持つ登録データの数を、最大カウンタ値Ｎｊとして設定する。先の例によれば、Ｎｊは「３」となる。
【００７８】
認証処理部１６’は、カウンタ変数ｊが最大カウンタ値Ｎｊと一致するか判定する（Ｏｐ．３５）。一致しない場合には（Ｏｐ．３５Ｎｏ）、認証処理部１６’は、管理変数ｋ、フラグ値、カウンタ変数ｊに対応する登録データを取得するとともに、入力データと登録データとのハミング距離ＨＤ（Ｍ’，Ｍｉ）を算出する（Ｏｐ．３６）。そして、認証処理部１６’は、ハミング距離ＨＤ（Ｍ’，Ｍｉ）が最小ハミング距離変数ＨＤｍｉｎよりも小さいか判定する（Ｏｐ．３７）。
【００７９】
ハミング距離ＨＤ（Ｍ’，Ｍｉ）が最小ハミング距離変数ＨＤｍｉｎよりも小さい場合は（Ｏｐ．３７Ｙｅｓ）、認証処理部１６’は、最小ハミング距離変数ＨＤｍｉｎを、Ｏｐ．３６で算出したハミング距離ＨＤ（Ｍ’，Ｍｉ）に更新するとともに、最小ＩＤ変数ＩＤｍｉｎを、管理変数ｋ、フラグ値、カウンタ変数ｊに対応するレコードにおけるユーザＩＤに更新する（Ｏｐ．３８）。
【００８０】
Ｏｐ．３８終了後、または、ハミング距離ＨＤ（Ｍ’，Ｍｉ）が最小ハミング距離変数ＨＤｍｉｎ以上である場合は（Ｏｐ．３７Ｎｏ）、認証処理部１６’は、カウンタ変数ｊをインクリメントする（Ｏｐ．３９）。そして、Ｏｐ．３５へ戻り、処理を繰り返す。
【００８１】
そして、カウンタ変数ｊが、最大カウンタ値Ｎｊと一致した場合には（Ｏｐ．３５Ｙｅｓ）、認証処理部１６’は、フラグが「−１」であるかを判定する（Ｏｐ．４０）。ここで、フラグが「−１」である場合には（Ｏｐ．４０Ｙｅｓ）、認証処理部１６’は、フラグを「１」に設定する（Ｏｐ．４１）。つまり、処理の方向を反転させる。そして、フラグが「１」に設定された後、同様にＯｐ．３４乃至Ｏｐ．３９の処理が繰り返される。ただし、管理変数ｋが０である場合には、Ｏｐ．４０において、否定の判定がなされることとしてもよい。
【００８２】
一方、フラグが「−１」でない場合には（Ｏｐ．４０Ｎｏ）、認証処理部１６’は管理変数ｋをインクリメントする（Ｏｐ．４２）。そして、Ｏｐ．３２以降の処理が繰り返される。つまり、入力データのハミング重みＨＷ（Ｍ’）との差分が、これまでの処理よりも一つ大きい登録データを対象にして、照合処理を行う。
【００８３】
一方、管理変数ｋが認証判定閾値ｄ以上である場合（Ｏｐ．３２Ｎｏ）、認証処理部１６’は照合処理を終了する。つまり、認証判定閾値ｄ以上の管理変数ｋが指定する登録データについては、照合処理を実行しない。なぜなら、先に示した条件２と同様に、管理変数ｋ以上の登録データについては、認証処理が成功する可能性がないためである。
【００８４】
以上のように、第二の実施例についても、登録データのうち、照合処理の対象とする登録データを限定することができる。よって、認証装置１’における認証処理は、全ての登録データと照合処理を行う場合と比較して、より短時間に処理を行うことができる。また、認証が成功になる可能性がある登録データについては、照合処理の対象とすることから、正解データが照合処理の対象から除外されることを防ぐことができる。
【００８５】
［第三の実施例］
第三の実施例は、照合対象とする登録データを、第一の実施例または第二の実施例と比較して、より限定することで、さらに処理時間を短縮することができる。なお、第三の実施例に係る認証装置１’’は、図２に示す第一の実施例の認証装置１と比較して、第一の実施例における認証処理部１６の代わりに、認証処理部１６’’を有する。認証処理部１６’’は、第一の実施例または第二の実施例とは異なる認証処理を実行する。また、端末装置の機能的構成は、第一の実施例に係る端末装置２と同様である。
【００８６】
図１１は、第三の実施例における認証装置１’’の処理フローチャートである。なお、第一の実施例に係る認証装置１の処理フローチャートと同一の処理については、同一の符号を付すとともに、説明を省略する。第三の実施例においては、照合処理（Ｏｐ．５０）および、照合処理に続く認証成否の判定処理（Ｏｐ．５１）が異なる。
【００８７】
図１１において、算出部１４が、入力データのハミング重みＨＷ（Ｍ’）を算出すると（Ｏｐ．１５）、認証処理部１６’’は、照合処理を実行する（Ｏｐ．５０）。
【００８８】
図１２は、第三の実施例における照合処理のフローチャートである。なお、第二の実施例における照合処理と同一の処理については、同一の符号を付すとともに、説明を簡略化する。初めに、第二の実施例と同様に、認証処理部１６’’は、初期設定を行う。つまり、最小ハミング距離変数ＨＤｍｉｎを登録データのビット数に設定する。さらに、最小ＩＤ変数ＩＤｍｉｎを「−１」に設定する。さらに、管理変数ｋを０に設定する。
【００８９】
初期設定が終了すると、認証処理部１６’’は、管理変数ｋが認証判定閾値ｄよりも小さいか判定する（Ｏｐ．３２）。管理変数ｋが認証判定閾値ｄよりも小さい場合、ｆｌｇ（フラグ）を「−１」に設定する（Ｏｐ．３３）。次に、認証処理部１６’’は、カウンタ変数ｊを「１」に設定する（Ｏｐ．３４）。さらに、認証処理部１６’’は、同一のハミング重みを持つ登録データの数を、最大カウンタ値Ｎｊとして設定する。
【００９０】
認証処理部１６’’は、カウンタ変数ｊが最大カウンタ値Ｎｊと一致するか判定する（Ｏｐ．３５）。一致しない場合には（Ｏｐ．３５Ｎｏ）、認証処理部１６’’は、管理変数ｋ、フラグ値、カウンタ変数ｊに対応する登録データを取得するとともに、入力データと登録データとのハミング距離ＨＤ（Ｍ’，Ｍｉ）を算出する（Ｏｐ．３６）。
【００９１】
そして、認証処理部１６’’は、ハミング距離ＨＤ（Ｍ’，Ｍｉ）が認証判定閾値ｄよりも小さいか判定する（Ｏｐ．５２）。つまり、第三の実施例においては、認証装置１’’は、照合処理の中で、認証判定が成功する登録データであるかを判定する。
【００９２】
ハミング距離ＨＤ（Ｍ’，Ｍｉ）が認証判定閾値ｄよりも小さい場合は（Ｏｐ．５２Ｙｅｓ）、認証処理部１６’’は、最小ハミング距離変数ＨＤｍｉｎを、Ｏｐ．３６で算出したハミング距離ＨＤ（Ｍ’，Ｍｉ）に更新するとともに、最小ＩＤ変数ＩＤｍｉｎを、管理変数ｋ、フラグ値、カウンタ変数ｊに対応するレコードにおけるユーザＩＤに更新する（Ｏｐ．５３）。
【００９３】
さらに、認証処理部１６’’は、認証判定閾値ｄを、ＨＤｍｉｎに更新する（Ｏｐ．５４）。つまり、認証判定閾値更新後のＯｐ．３２においては、更新前のｄと比較して、さらに、照合処理の処理対象を限定するための判断基準が厳しくなる。
【００９４】
そして、認証処理部１６’’は、第二の実施例と同様に、カウンタ変数ｊをインクリメントし（Ｏｐ．３９）、Ｏｐ．３５以降の処理を繰り返す。そして、カウンタ変数ｊが、最大カウンタ値Ｎｊと一致した場合には（Ｏｐ．３５Ｙｅｓ）、認証処理部１６’’は、フラグが「−１」であるかを判定する（Ｏｐ．４０）。ここで、フラグが「−１」である場合には（Ｏｐ．４０Ｙｅｓ）、認証処理部１６’’は、フラグを「１」に設定する（Ｏｐ．４１）。なお、管理変数ｋが０である場合には、Ｏｐ．４０において、否定の判定がなされることとしてもよい。そして、フラグが「１」に設定された後、ｐ．３４乃至Ｏｐ．３９の処理が繰り返される。
【００９５】
一方、フラグが「−１」でない場合には（Ｏｐ．４０Ｎｏ）、認証処理部１６’’は管理変数ｋをインクリメントする（Ｏｐ．４２）。そして、Ｏｐ．３２以降の処理が繰り返される。また、管理変数ｋが認証判定閾値ｄ以上である場合（Ｏｐ．３２Ｎｏ）、認証処理部１６’’は処理を終了する。つまり、管理変数ｋ以上の登録データについては、照合処理を実行しない。認証判定閾値ｄがＯｐ．５４において更新された場合には、更新された認証判定閾値ｄが、Ｏｐ．３２における判定に用いられる。
【００９６】
ここで、図５を用いて、認証判定閾値ｄの更新と、処理対象の限定の関係について説明する。なお、更新前の認証判定閾値ｄは「２」であるとする。この場合、第一の実施例または第二の実施例においては、図５に照合対象として示した範囲の登録データが処理対象となる。
【００９７】
一方、第三の実施例においては、初め管理変数ｋが「０」である登録データから照合処理を実行する為、入力データＭ’が「１０００１１１」である場合、ユーザＩＤ「５」の登録データ「１０００１１１」またはユーザＩＤ「８」の登録データ「１１０１１０００」が初めに、入力データＭ’と照合されることとなる。
【００９８】
具体的に、ユーザＩＤ「５」の登録データ「１０００１１１」を例とすると、Ｏｐ．３６において、ハミング距離ＨＤ（Ｍ’，Ｍｉ）として、「０」が算出される。すると、続く処理において、認証処理部１６’’は、ハミング距離ＨＤ（Ｍ’，Ｍｉ）が認証判定閾値ｄよりも小さいと判定する（Ｏｐ．５２Ｙｅｓ）。そして、認証処理部１６’’は、最小ハミング距離変数ＨＤｍｉｎを、「０」に更新するとともに、最小ＩＤ変数ＩＤｍｉｎを、管理変数ｋ、フラグ値、カウンタ変数ｊに対応するレコードにおけるユーザＩＤ「５」に更新する（Ｏｐ．５３）。さらに、認証処理部１６’’は、認証判定閾値ｄを、ＨＤｍｉｎ「０」に更新する（Ｏｐ．５４）。
【００９９】
よって、管理変数ｋが「０」である登録データとの照合が終了すると（Ｏｐ．３５Ｙｅｓ）、Ｏｐ．４０（ＮＯ）を経由して、認証処理部１６’’はＯｐ．４２を実行する。つまり、認証処理部１６’’は、管理変数ｋを、「１」に更新する。次に、更新後の認証判定閾値ｄ「０」と、管理変数ｋ「１」を比較すると、Ｏｐ．３２において否定の判定がなされるため、照合処理は終了となる。つまり、図５に示した照合対象である、６つの登録データから、本実施例によれば、照合対象を２つの登録データまで限定することができる。
【０１００】
つまり、認証が成功する登録データＭｉが見つかった場合には、認証装置１’’は、当該登録データＭｉよりも入力データＭ’と類似する登録データが存在するかを、探索すればよいため、認証判定閾値ｄが、より厳しい閾値へ更新される。したがって、第三の実施例に係る認証装置１’’は、照合処理対象をさらに、限定することができる。
【０１０１】
図５の例では、入力データＭ’と一致する登録データＭｉが存在したため、認証判定閾値ｄは「０」に更新されたが、入力データＭ’と登録データＭｉが完全に一致しない場合でも、より小さな認証判定閾値ｄへ更新されることで、同様の効果が得られる。
【０１０２】
次に、図１１に戻り、認証処理部１６’’は、照合処理（Ｏｐ．５０）が終了した後、最小ＩＤ変数ＩＤｍｉｎが、初期設定時の「−１」から更新されているかを判定する（Ｏｐ．５１）。最小ハミング距離変数ＨＤｍｉｎが「−１」でない場合には（Ｏｐ．５１Ｎｏ）、認証処理部１６’’は、認証成功を判定するとともに、認証が成功したことを示す認証結果を、通信部１１を介して、端末装置２へ送信する（Ｏｐ．１８）。
【０１０３】
一方、最小ハミング距離変数ＨＤｍｉｎが「−１」である場合には（Ｏｐ．５１Ｙｅｓ）、認証処理部１６’’は、認証失敗を判定するとともに、認証が失敗したことを示す認証結果を、通信部１１を介して、端末装置２へ送信する（Ｏｐ．１８）。
【０１０４】
Ｏｐ．５３において初期設定時の最小ＩＤ変数ＩＤｍｉｎ「−１」から他の値に更新されている場合には、Ｏｐ．５２において認証成功の登録データを探索可能であったこととなる。よって、Ｏｐ．５１において、最小ＩＤ変数ＩＤｍｉｎが、初期設定時の「−１」から更新されている場合には、認証の成功が判定される。
【０１０５】
一方、Ｏｐ．５３において初期設定時の最小ＩＤ変数ＩＤｍｉｎ「−１」から他の値に更新されていない場合には、Ｏｐ．５２において認証成功の登録データを探索不能であったこととなる。よって、Ｏｐ．５１において、最小ＩＤ変数ＩＤｍｉｎが、初期設定時の「−１」から更新されていない場合には、認証の失敗が判定される。
【０１０６】
以上から、本実施例における認証装置１’’は、さらに照合対象を限定して認証処理を実行することができる。つまり、認証判定閾値ｄ以下のハミング距離ＨＤ（Ｍ’，Ｍｉ）を持つ登録データが見つかった場合、認証装置１’’は、以降の処理では、当該登録データＭｉよりも入力データＭ’に類似する登録データが存在するか否かを探索すればよいため、当該登録データＭｉよりも入力データＭ’に類似する可能性のない登録データを、照合対象からさらに除外できる。
【０１０７】
［第四の実施例］
第四の実施例は、照合処理を複数の処理部が並列して実行する。第四の実施例として、ひとつの認証装置内に、複数の照合処理部が存在する例を開示する。第四の実施例は、第一の実施例乃至第三の実施例と比較して、照合処理が並列で実行されることから、照合処理ひいては認証処理に要する時間を、短縮することができる。なお、システム構成は、端末装置２および認証装置６を含む。また、第四の実施例に係る端末装置の機能的構成は、第一の実施例における端末装置２と同様である。
【０１０８】
図１３は、第四の実施例に係る認証装置６の機能ブロック図である。認証装置６は、通信部６１、主制御部６２、第一従制御部６３、第二従制御部６４、第一記憶部６５、第二記憶部６６を有する。そして、主制御部６２は、算出部６２１、登録処理部６２２、認証処理部６２３を有する。そして、第一従制御部６３は、第一照合処理部６３１を有し、第二従制御部６４は、第二照合処理部６４１を有する。なお、ここでは、２つの従制御部が並行して照合処理を行うこととして説明するが、３つ以上の従制御部が並行して照合処理を行ってもよい。
【０１０９】
通信部６１は、他の装置と通信を行う処理であって、例えば、端末装置２と通信する。主制御部６２は、認証装置６における各種処理の制御する処理部であって、例えば、認証処理を実行する。第一記憶部６５および第二記憶部６６は、各種処理に必要な情報を記憶する記憶部であって、例えば、登録データを記憶する。なお、第一記憶部６５および第二記憶部６６は、排他的に登録データを記憶する。登録データは、第一の実施例や第二の実施例と同様のデータ構成を有する登録データテーブルによって管理される。
【０１１０】
算出部６２１は、端末装置２から生体情報のバイナリデータを取得すると、バイナリデータの特徴量を算出する。例えば、通信部６１が登録要求を受信した場合には、算出部６２１は、登録要求に含まれる生体情報のバイナリデータについて、ハミング重みを算出する。一方、通信部６１が認証要求を受信した場合には、算出部６２１は、認証要求に含まれる生体情報のバイナリデータについて、ハミング重みを算出する。そして、算出部６２１は、算出した結果を、登録処理部６２２または認証処理部６２３へ出力する。
【０１１１】
次に、登録処理部６２２は、端末装置２から登録要求を受信した場合に、登録処理を実行する。具体的には、登録処理部６２２は、登録要求に含まれるバイナリデータと、算出部６２１が算出した特徴量とを対応付けて、第一記憶部６５または第二記憶部６６へ登録する。登録処理部６２２は、例えば、より登録データ数が少ない記憶部へ、登録データを記憶する。また、登録処理部６２２は、同一のハミング重みを有する登録データ数が、第一記憶部６５と第二記憶部６６で同程度になるように、登録データの登録先とする記憶部を決定してもよい。
【０１１２】
認証処理部６２３は、端末装置２から認証要求を受信した場合に、認証処理を実行する。具体的には、認証処理部６２３は、第一従制御部６３および第二従制御部６４を制御することで、認証を実行する。第一従制御部６３の第一照合処理部６３１および第二従制御部６４の第二照合処理部６４１は、照合処理を実行すると、照合結果を認証処理部６２３へ出力する。認証処理部６２３は、各々の照合結果に基づき、例えば、入力データとの差分が認証判定閾値以下である登録データが存在する場合に、認証が成功したことを判定する。
【０１１３】
第一照合処理部６３１および第二照合処理部６４１は、照合処理を実行する。なお、照合処理に具体的な処理内容は、第一の実施例、第二の実施例、第三の実施例のいずれかに示した内容である。ただし、第三の実施例の照合処理が実行される場合には、認証判定閾値がいずれか一方の照合処理部により更新された場合には、主制御部６２の制御の下、他方の照合処理部へ、更新された認証判定閾値が通知される。
【０１１４】
次に、第四の実施例における認証装置６のフローについて説明する。図１４は、第四の実施例における認証装置６の処理フローチャートである。まず、主制御部６２は、通信部６１が登録要求を受信したか否かを判定する（Ｏｐ．６１）。
【０１１５】
登録要求を受信した場合には（Ｏｐ．６１Ｙｅｓ）、主制御部６２は登録処理を実行する。まず、算出部６２１は、登録要求に含まれるバイナリデータを登録データとして、登録データのハミング重みＨＷ（Ｍｉ）を算出する（Ｏｐ．６２）。そして、算出部６２１は、登録データと、ハミング重みＨＷ（Ｍｉ）、ユーザＩＤを登録処理部６２２へ出力する。
【０１１６】
そして、登録処理部６２２は、第一記憶部６５における登録データの数Ｎ１が、第二記憶部における登録データの数Ｎ２よりも小さいか判定する（Ｏｐ．６３）。Ｎ１がＮ２よりも小さい場合（Ｏｐ．６３Ｙｅｓ）、登録処理部６２２は、登録データと、ハミング重みＨＷ（Ｍｉ）、ユーザＩＤを、第一記憶部６５の登録データテーブルへ格納する（Ｏｐ．６４）。そして、主制御部６２は、一連の登録処理を終了する。
【０１１７】
一方、Ｎ１がＮ２以上である場合（Ｏｐ．６３Ｎｏ）、登録処理部６２２は、登録データと、ハミング重みＨＷ（Ｍｉ）、ユーザＩＤを、第二記憶部６６の登録データテーブルへ格納する（Ｏｐ．６５）。そして、主制御部６２は、一連の登録処理を終了する。
【０１１８】
一方、登録要求を受信していない場合には（Ｏｐ．６１Ｎｏ）、主制御部６２は、通信部６１が認証要求を受信したか否かを判定する（Ｏｐ．６６）。ここで、認証要求を受信していない場合には（Ｏｐ．６６Ｎｏ）、主制御部６２は、一連の処理を終了する。
【０１１９】
また、認証要求を受信している場合には（Ｏｐ．６６Ｙｅｓ）、算出部６２１は、認証要求に含まれるバイナリデータを入力データとして、入力データのハミング重みＨＷ（Ｍ’）を算出する（Ｏｐ．６７）。次に、認証処理部６２３は、第一照合処理部６３１および第二照合処理部６４１に対して、照合処理の実行を命令する。そして、第一照合処理部６３１および第二照合処理部６４１は、照合処理を実行する（Ｏｐ．６８）。本実施例においては、第一の実施例に示した照合処理（図８）が実行されるものとする。
【０１２０】
第一照合処理部６３１は、照合処理結果を、認証処理部６２３へ出力する。なお、照合処理結果には、第一照合処理部６３１による照合処理終了時の最小ハミング距離変数ＨＤｍｉｎ１および最小ＩＤ変数ＩＤｍｉｎ１が含まれる。また、第二照合処理部６４１は、照合処理結果を、認証処理部６２３へ出力する。なお、照合処理結果には、第二照合処理部６４１による照合処理終了時の最小ハミング距離変数ＨＤｍｉｎ２および最小ＩＤ変数ＩＤｍｉｎ２が含まれる。
【０１２１】
認証処理部６２３は、最小ハミング距離変数ＨＤｍｉｎ１が最小ハミング距離変数ＨＤｍｉｎ２よりも小さいか判定する（Ｏｐ．６９）。最小ハミング距離変数ＨＤｍｉｎ１が最小ハミング距離変数ＨＤｍｉｎ２よりも小さい場合（Ｏｐ．６９Ｙｅｓ）、認証処理部６２３は、最小ハミング距離変数ＨＤｍｉｎを、最小ハミング距離変数ＨＤｍｉｎ１で確定するとともに、最小ＩＤ変数ＩＤｍｉｎを最小ＩＤ変数ＩＤｍｉｎ１で確定する（Ｏｐ．７０）。
【０１２２】
一方、最小ハミング距離変数ＨＤｍｉｎ１が最小ハミング距離変数ＨＤｍｉｎ２以上である場合（Ｏｐ．６９Ｎｏ）、認証処理部６２３は、最小ハミング距離変数ＨＤｍｉｎを、最小ハミング距離変数ＨＤｍｉｎ２で確定するとともに、最小ＩＤ変数ＩＤｍｉｎを最小ＩＤ変数ＩＤｍｉｎ２で確定する（Ｏｐ．７１）。
【０１２３】
そして、認証処理部６２３は、最小ハミング距離変数ＨＤｍｉｎが、認証判定閾値ｄよりも小さいか判定する（Ｏｐ．７２）。そして、最小ハミング距離ＨＤｍｉｎが、認証判定閾値ｄよりも小さい場合（Ｏｐ．７２Ｙｅｓ）、認証処理部６２３は、認証が成功したことを判定するとともに、認証が成功であった旨を示す認証結果を生成する。なお、認証結果は、併せて、最小ＩＤ変数ＩＤｍｉｎに設定されているユーザＩＤも含む。そして、通信部６１は、認証が成功であった旨を示す認証結果を端末装置２へ送信する（Ｏｐ．７３）。
【０１２４】
一方、最小ハミング距離ＨＤｍｉｎが、認証判定閾値ｄ以上である場合（Ｏｐ．７２Ｎｏ）、認証処理部６２３は、認証が失敗したことを判定するとともに、認証が失敗であった旨を示す認証結果を生成する。そして、通信部６１は、認証が失敗であった旨を示す認証結果を端末装置２へ送信する（Ｏｐ．７４）。このとき、認証結果には、最小ＩＤ変数ＩＤｍｉｎに設定されているユーザＩＤは含まれない。
【０１２５】
以上のように、本実施例によれば、第一記憶部６５を参照して照合処理を実行する第一照合処理部６３１と、第二記憶部６６を参照して照合処理を実行する第二照合処理部６４１とが、並行して照合処理を実行する。したがって、照合処理がより短時間に実行される。ひいては、認証装置６における認証処理時間が短縮される。
【０１２６】
［第五の実施例］
第五の実施例は、照合処理を複数の照合装置が並列して実行する。第五の実施例は、第一の実施例乃至第三の実施例と比較して、照合処理が並列で実行されることから、照合処理ひいては認証処理に要する時間を、短縮することができる。
【０１２７】
第五の実施例に係るシステム構成について説明する。図１５は、第五の実施例に係るシステム構成図である。認証システムは、端末装置２と認証装置７と第一照合装置８１および第二照合装置８２を含む。なお、ここでは２つの照合装置が、認証装置７と連携して照合処理を行うこととするが、３つ以上の照合装置が、認証装置７と連携して照合処理を行ってもよい。
【０１２８】
なお、認証装置７と端末装置２とは、ネットワークＮを介して接続されている。ネットワークＮは、例えば、インターネットである。なお、ネットワークＮを介しての通信には、Ｓｅｃｕｒｅ  Ｓｏｃｋｅｔ  Ｌａｙｅｒ（ＳＳＬ）などの暗号化通信技術が適用されることが望ましい。さらに、認証装置７と、第一照合装置８１および第二照合装置８２ともネットワークＮ’を介して接続されている。当該ネットワークＮ’を介しての通信には、Ｓｅｃｕｒｅ  Ｓｏｃｋｅｔ  Ｌａｙｅｒ（ＳＳＬ）などの暗号化通信技術が適用されることが望ましい。なお、ネットワークＮ’は、ネットワークＮと同一のネットワークであっても、異なるネットワークであってもよい。
【０１２９】
認証装置７は、端末装置２の要求に応じて、認証を実行するコンピュータである。また、本実施例においては、認証装置７は、１対Ｎ認証を実行する。また、認証装置７は、認証処理および登録処理を、第一照合装置８１および第二照合装置８２と連携して実行する。
【０１３０】
端末装置２は、認証装置７へ認証を要求するコンピュータである。また、本実施例においては、端末装置２は、生体情報を読み取るための読取装置３と、接続される。例えば、読取装置３が、ユーザ５の静脈や指紋等の画像を取得し、画像から生体情報を生成する。そして、端末装置２は、読取装置３から生体情報を取得する。
【０１３１】
ここで、端末装置２は、後の認証のために生体情報を登録する際には、読取装置３から取得した生体情報のバイナリデータを含む登録要求を、認証装置７へ送信する。すると、認証装置７は、受信した生体情報のバイナリデータを、登録データとして、第一照合装置８１または第二照合装置８２へ出力する。第一照合装置８１および第二照合装置８２は、登録データを取得した場合、自身の記憶装置へ記憶する。
【０１３２】
一方、端末装置２は、認証時には、読取装置３から取得した生体情報のバイナリデータを含む認証要求を、認証装置７へ送信する。すると、認証装置７は、受信した生体情報のバイナリデータと、複数の登録データとを照合するように、第一照合装置８１および第二照合装置８２へ照合要求を送信する。照合要求は、入力データとして受信した生体情報のバイナリデータを含むとともに、当該入力データの特徴量を含む。なお、特徴量は、第一照合装置８１および第二照合装置８２各々で算出されるとしてもよい。
【０１３３】
第一照合装置８１および第二照合装置８２は照合要求を受信すると、照合対象とする登録データを、限定した上で、照合処理を実行する。なお、照合処理においては、第四の実施例と同様、第一の実施例、第二の実施例、第三の実施例のいずれかの照合処理が実行される。そして、認証装置７は、第一照合装置８１および第二照合装置８２から照合結果を受信すると、照合結果に基づき認証を行う。
【０１３４】
図１６は、第五の実施例に係る認証装置７および照合装置８の機能ブロック図である。なお、ここでは、第一照合装置８１および第二照合装置８２を総称して、照合装置８とする。また、端末装置２は、第一の実施例と同様の機能的構成を有する。
【０１３５】
認証装置７は、通信部７１、制御部７２を有する。なお、各種処理に必要な情報を記憶する記憶部をさらに有してもよい。通信部７１は、他の装置と通信を行う処理であって、例えば、端末装置２および照合装置８と通信する。制御部７２は、認証装置７における各種処理の制御する処理部であって、例えば、認証処理を実行する。
【０１３６】
そして、制御部７２は、算出部７３、登録管理部７４、認証処理部７５を有する。算出部７３は、端末装置２から生体情報のバイナリデータを取得すると、バイナリデータの特徴量を算出する。例えば、通信部７１が登録要求を受信した場合には、算出部７３は、登録要求に含まれる生体情報のバイナリデータについて、ハミング重みを算出する。一方、通信部７１が認証要求を受信した場合には、算出部７３は、認証要求に含まれる生体情報のバイナリデータについて、ハミング重みを算出する。そして、算出部７３は、算出した結果を、登録管理部７４または認証処理部７５へ出力する。
【０１３７】
次に、登録管理部７４は、端末装置２から登録要求を受信した場合に、登録管理処理を実行する。具体的には、登録管理部７４は、登録要求に含まれるバイナリデータと、算出部７３が算出した特徴量とを含む登録要求を、第一照合装置８１または、第二照合装置８２へ出力する。
【０１３８】
登録管理部７４は、例えば、より登録データ数が少ない照合装置８へ、登録データの登録を要求する。また、登録管理部７４は、同一のハミング重みを有する登録データ数が、第一照合装置８１と、第二照合装置８２で同程度になるように、登録データを記憶する照合装置８を決定してもよい。この場合、認証装置７は、連携して照合処理を行う照合装置８ごとに、記憶する登録データに関する情報を保持することが望ましい。
【０１３９】
認証処理部７５は、端末装置２から認証要求を受信した場合に、認証処理を実行する。具体的には、認証処理部７５は、第一照合装置８１および第二照合装置８２と連携することで、認証を実行する。認証処理部７５は、各々の照合装置による照合結果に基づき、例えば、入力データとの差分が認証判定閾値以下である登録データが存在する場合に、認証が成功したことを判定する。
【０１４０】
次に、照合装置８について説明する。照合装置８は、通信部８０１、制御部８０２、記憶部８０３を有する。通信部８０１は、他の装置と通信を行う処理であって、例えば、認証装置７と通信する。制御部８０２は、照合装置８における各種処理の制御する処理部であって、例えば、照合処理を実行する。
【０１４１】
記憶部８０３は、各種処理に必要な情報を記憶する記憶部であって、例えば、登録データを記憶する。なお、第一照合装置における記憶部８０３と、第二照合装置における記憶部８０３は、排他的に登録データを記憶する。なお、登録データは、第一の実施例と同様のデータ構成を有する登録データテーブルによって管理される。
【０１４２】
登録処理部８０４は、認証装置７から登録要求を受信した場合に、登録処理を実行する。具体的には、登録処理部８０４は、登録要求に含まれるバイナリデータと、特徴量と、ユーザＩＤとを対応付けて、記憶部８０３へ登録する。
【０１４３】
照合処理部８０５は、照合処理を実行する。なお、照合処理の具体的な処理内容は、第一の実施例、第二の実施例、第三の実施例のいずれかに示した内容である。ただし、第三の実施例の照合処理が実行される場合には、認証判定閾値がいずれか一方の照合装置において更新されたとき、認証装置７を経由して、他方の照合装置へ、更新された認証判定閾値が通知される。
【０１４４】
次に、第五の実施例における認証装置７の処理フローについて説明する。図１７は、第五の実施例における認証装置７の処理フローチャートである。第四の実施例と同様の処理については、同一の符号を付すとともに説明を簡略化する。
【０１４５】
まず、制御部７２は、通信部７１が登録要求を受信したか否かを判定する（Ｏｐ．６１）。登録要求を受信した場合には（Ｏｐ．６１Ｙｅｓ）、算出部７３は、登録データのハミング重みＨＷ（Ｍｉ）を算出する（Ｏｐ．６２）。
【０１４６】
そして、登録管理部７４は、第一照合装置８１における登録データの数Ｎ１が、第二照合装置８２における登録データの数Ｎ２よりも小さいか判定する（Ｏｐ．８０）。Ｎ１がＮ２よりも小さい場合（Ｏｐ．８０Ｙｅｓ）、登録管理部７４は、登録データと、ハミング重みＨＷ（Ｍｉ）、ユーザＩＤを含む登録要求を、第一照合装置８１へ送信する（Ｏｐ．８１）。そして、制御部６２は、一連の登録処理を終了する。
【０１４７】
一方、Ｎ１がＮ２以上である場合（Ｏｐ．８０Ｎｏ）、登録データと、ハミング重みＨＷ（Ｍｉ）、ユーザＩＤを含む登録要求を、第二照合装置８２へ送信する（Ｏｐ．８１）。そして、制御部６２は、一連の登録処理を終了する。なお、通信部７１が、登録完了の旨の応答を受信するようにしてもよい。
【０１４８】
一方、登録要求を受信していない場合には（Ｏｐ．６１Ｎｏ）、制御部７２は、通信部７１が認証要求を受信したか否かを判定する（Ｏｐ．６６）。ここで、認証要求を受信していない場合には（Ｏｐ．６６Ｎｏ）、制御部７２は、一連の処理を終了する。
【０１４９】
また、認証要求を受信している場合には（Ｏｐ．６６Ｙｅｓ）、算出部７３は、認証要求に含まれるバイナリデータを入力データＭ’として、入力データのハミング重みＨＷ（Ｍ’）を算出する（Ｏｐ．６７）。次に、認証処理部７５は、通信部７１を介して、第一照合装置８１および第二照合装置８２に対して、照合要求を送信する（Ｏｐ．８３）。照合要求には、入力データＭ’と、入力データのハミング重みＨＷ（Ｍ’）が含まれる。
【０１５０】
第一照合装置８１および第二照合装置８２は、照合要求を受信すると、各々照合処理を実行する。本実施例においては、第一の実施例に示した照合処理（図８）が実行されるものとする。そして、第一照合装置８１は、照合処理結果を、通信部８０１を介して、認証装置７へ送信する。なお、照合処理結果には、第一照合装置８１における照合処理部８０５による照合処理終了時の最小ハミング距離変数ＨＤｍｉｎ１および最小ＩＤ変数ＩＤｍｉｎ１が含まれる。
【０１５１】
また、第二照合装置８２は、照合処理結果を、通信部８０１を介して、認証装置７へ送信する。なお、照合処理結果には、第二照合装置８２における照合処理部８０５による照合処理終了時の最小ハミング距離変数ＨＤｍｉｎ２および最小ＩＤ変数ＩＤｍｉｎ２が含まれる。
【０１５２】
認証装置７の認証処理部７５は、通信部７１を介して、第一照合装置８１および第二照合装置８２から、照合処理結果を受信する（Ｏｐ．８４）。なお、本処理においては、認証処理部７５は、第一照合装置８１および第二照合装置８２の両照合装置８から、処理結果を受信するまで、後段の処理を待機する。なお、各照合装置８が、第三の実施例に係る照合処理を実行する場合には、認証処理部７５の制御の下、いずれかの照合装置８で更新された認証判定閾値ｄの値が、他の照合装置８へ送信される。
【０１５３】
認証処理部７５は、最小ハミング距離変数ＨＤｍｉｎ１が最小ハミング距離変数ＨＤｍｉｎ２よりも小さいか判定する（Ｏｐ．６９）。最小ハミング距離変数ＨＤｍｉｎ１が最小ハミング距離変数ＨＤｍｉｎ２よりも小さい場合（Ｏｐ．６９Ｙｅｓ）、認証処理部７５は、最小ハミング距離変数ＨＤｍｉｎを、最小ハミング距離変数ＨＤｍｉｎ１で確定するとともに、最小ＩＤ変数ＩＤｍｉｎを最小ＩＤ変数ＩＤｍｉｎ１で確定する（Ｏｐ．７０）。
【０１５４】
一方、最小ハミング距離変数ＨＤｍｉｎ１が最小ハミング距離変数ＨＤｍｉｎ２以上である場合（Ｏｐ．６９Ｎｏ）、認証処理部７５は、最小ハミング距離変数ＨＤｍｉｎを、最小ハミング距離変数ＨＤｍｉｎ２で確定するとともに、最小ＩＤ変数ＩＤｍｉｎを最小ＩＤ変数ＩＤｍｉｎ２で確定する（Ｏｐ．７１）。
【０１５５】
そして、認証処理部７５は、最小ハミング距離変数ＨＤｍｉｎが、認証判定閾値ｄよりも小さいか判定する（Ｏｐ．７２）。そして、最小ハミング距離ＨＤｍｉｎが、認証判定閾値ｄよりも小さい場合（Ｏｐ．７２Ｙｅｓ）、通信部７１は、認証が成功であった旨を示す認証結果を端末装置２へ送信する（Ｏｐ．７３）。一方、最小ハミング距離ＨＤｍｉｎが、認証判定閾値ｄ以上である場合（Ｏｐ．７２Ｎｏ）、通信部７１は、認証が失敗であった旨を示す認証結果を端末装置２へ送信する（Ｏｐ．７４）。
【０１５６】
以上のように、本実施例によれば、認証装置７と第一照合装置８１および第二照合装置８２が、連携して認証処理を実行する。したがって、認証処理に要する時間が短縮される。
【０１５７】
［ハードウェア構成例］
図１８は、本発明に関する各装置のハードウェア構成例である。なお、図１８では、認証装置１、認証装置１’、認証装置１’’、認証装置６、認証装置７として機能するコンピュータ１０００のハードウェア構成を示す。ただし、端末装置２、照合装置８も同様のハードウェア構成を有するコンピュータによって実現される。
【０１５８】
コンピュータ１０００は、認証処理（照合処理を含む）を実行し、各実施例における認証装置１、認証装置１’、認証装置１’’、認証装置６、認証装置７のいずれかとして機能する。コンピュータ１０００はＣｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ（ＣＰＵ）１００１、Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ（ＲＯＭ）１００２、Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ（ＲＡＭ）１００３、通信装置１００４、Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ（ＨＤＤ）１００５、入力装置１００６、表示装置１００７、媒体読取装置１００８を有しており、各部はバス１００９を介して相互に接続されている。そして、各部は、ＣＰＵ１００１による管理下で相互にデータの送受を行うことができる。
【０１５９】
各実施例のフローチャートに示した認証処理が記述された認証プログラムは、コンピュータ１０００が読み取り可能な記録媒体に記録される。なお、登録処理についても同様に、登録プログラムは、コンピュータ１０００が読み取り可能な記録媒体に記録される。コンピュータ１０００が読み取り可能な記録媒体には、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記録装置には、ＨＤＤ、フレキシブルディスク（ＦＤ）、磁気テープ（ＭＴ）などがある。
【０１６０】
光ディスクには、Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ（ＤＶＤ）、ＤＶＤ−ＲＡＭ、Ｃｏｍｐａｃｔ  Ｄｉｓｃ  −  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ（ＣＤ−ＲＯＭ）、Ｃｏｍｐａｃｔ  Ｄｉｓｃ  −  Ｒｅｃｏｒｄａｂｌｅ／ＲｅＷｒｉｔａｂｌｅ（ＣＤ−Ｒ／ＲＷ）などがある。光磁気記録媒体には、Ｍａｇｎｅｔｏ  −  ＯＰｔｉｃａｌ  ｄｉｓｋ（ＭＯ）などがある。認証プログラムを流通させる場合には、例えば、認証プログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭなどの可搬型記録媒体が販売されることが考えられる。
【０１６１】
そして各実施例に係る認証処理が記述された認証プログラムを実行するコンピュータ１０００の媒体読取装置１００８が、認証プログラムを記録した記録媒体から、該プログラムを読み出す。ＣＰＵ１００１は、読み出された認証プログラムをＨＤＤ１００５若しくはＲＯＭ１００２、ＲＡＭ１００３に格納する。
【０１６２】
ＣＰＵ１００１は、各実施例に関わる認証装置全体の動作制御を司る中央処理装置である。そして、ＣＰＵ１００１が、各実施例に関わる認証プログラムをＨＤＤ１００５から読み出して実行する。ＣＰＵ１００１は、各装置における制御部として機能するようになる。先に述べたとおり、プログラムはＣＰＵ１００１とアクセス可能なＲＯＭ１００２またはＲＡＭ１００３に格納されていても良い。つぎに、通信装置１００４は、ＣＰＵ１００１の制御の下、各装置における通信部として機能する。
【０１６３】
ＨＤＤ１００５は、ＣＰＵ１００１の管理下で、各装置における記憶部として機能する。つまり、ＨＤＤ１００５は、登録処理および認証処理に必要な情報を記憶する。プログラム同様、登録処理および認証処理に必要な情報はＣＰＵ１００１とアクセス可能なＲＯＭ１００２またはＲＡＭ１００３に格納されても良い。さらに、処理の過程で生成される各種情報は、例えば、ＲＡＭ１００３に格納される。つまり、ＲＡＭ１００３が記憶部として機能する場合もある。
【０１６４】
入力装置１００６は、各種入力を受け付ける。入力装置１００６は、例えばキーボードやマウスである。表示装置１００７は、各種情報を表示する。表示装置１００７は、例えばディスプレイである。
【符号の説明】
【０１６５】
１      認証装置
１１      通信部
１２      制御部
１３      記憶部
２      端末装置
２１      通信部
２２      取得部
２３      制御部
２４      表示部
６      認証装置
６１      通信部
６２      主制御部
６３      第一従制御部
６４      第二従制御部
６５      第一記憶部
６６      第二記憶部
７      認証装置
７１      通信部
７２      制御部
８      照合装置
８０１      通信部
８０２      制御部
８０３      記憶部
１０００    コンピュータ
１００１    ＣＰＵ
１００２    ＲＯＭ
１００３    ＲＡＭ
１００４    通信装置
１００５    ＨＤＤ
１００６    入力装置
１００７    表示装置
１００８    媒体読取装置
１００９    バス
【図１】
2015060433.tif 000007
【図２】
2015060433.tif 000008
【図３】
2015060433.tif 000009
【図４】
2015060433.tif 000010
【図５】
2015060433.tif 000011
【図６】
2015060433.tif 000012
【図７】
2015060433.tif 000013
【図８】
2015060433.tif 000014
【図９】
2015060433.tif 000015
【図１０】
2015060433.tif 000016
【図１１】
2015060433.tif 000017
【図１２】
2015060433.tif 000018
【図１３】
2015060433.tif 000019
【図１４】
2015060433.tif 000020
【図１５】
2015060433.tif 000021
【図１６】
2015060433.tif 000022
【図１７】
2015060433.tif 000023
【図１８】
2015060433.tif 000024