(57)【要約】【課題】個人を特定するための情報の漏洩リスクを低減し、かつ認証精度が高い認証を行う。【解決手段】認証システムは、複数のハッシュテーブル集合と登録ベクトルとを保持し、認証システムは、認証対象者の特徴量を取得し、特徴空間内の各区間における該特徴量の頻度を示す第１特徴ベクトルを生成し、該複数のハッシュテーブル集合それぞれについて、第１特徴ベクトルが示す各区間の最小のハッシュ値を特定し、該特定した最小のハッシュ値それぞれから第２特徴ベクトルを生成し、第２特徴ベクトルの要素それぞれの下位の所定数ビットに基づいて２値のビット配列から第３特徴ベクトルを生成し、第３特徴ベクトルに対する所定の変換により得られる第４特徴ベクトルと、登録ベクトルと、を比較して、認証を実行する。【選択図】図２
2020052605.tif 000002
【特許請求の範囲】
【請求項１】
認証システムであって、
プロセッサとメモリとを含み、
前記メモリは、
それぞれが１以上のハッシュテーブルからなる複数のハッシュテーブル集合と、
登録対象者の特徴量から生成された登録特徴ベクトルを含む認証テンプレートと、を保持し、
前記複数のハッシュテーブル集合に含まれる各ハッシュテーブルは、特徴量空間を分割して得られる区間それぞれの値に対してハッシュ値を与え、
前記プロセッサは、
認証処理を実行し、
前記認証処理において、
認証対象者の特徴量を取得し、
前記区間それぞれにおける前記特徴量の頻度を示す第１認証特徴ベクトルを生成し、
前記複数のハッシュテーブル集合それぞれについて、
前記第１認証特徴ベクトルが示す０以外の頻度を有する各区間、に対応するハッシュ値を、当該ハッシュテーブル集合に含まれる少なくとも１つのハッシュテーブルから取得し、
前記取得したハッシュ値のうち最小のハッシュ値を特定し、
前記複数のハッシュテーブル集合それぞれについて特定した最小のハッシュ値から第２認証特徴ベクトルを生成し、
前記第２認証特徴ベクトルの要素それぞれについて、下位の所定数ビットに基づいて２値のビット配列を生成し、前記生成したビット配列から第３認証特徴ベクトルを生成し、
前記第３認証特徴ベクトルに対する所定の変換により得られる第４認証特徴ベクトルと、前記登録特徴ベクトルと、を比較して、前記認証対象者の認証を実行する、認証システム。
【請求項２】
請求項１に記載の認証システムであって、
前記所定の変換は恒等変換を含む、認証システム。
【請求項３】
請求項１に記載の認証システムであって、
前記所定の変換は、前記第３認証特徴ベクトルにランダムな値からなる射影行列を掛けることを含む、認証システム。
【請求項４】
請求項３に記載の認証システムであって、
前記登録特徴ベクトルは、前記登録対象者の特徴量から生成されたベクトルに前記登録対象者のユニークコードが足されたベクトルであり、
前記メモリは、前記認証対象者のユニークコードを保持し、
前記所定の変換は、前記第３認証特徴ベクトルにランダムな値からなる射影行列を掛けて得られた行列に、前記認証対象者のユニークコードを足すことを含み、
前記認証対象者の認証において、
前記第４認証特徴ベクトルと、前記登録特徴ベクトルと、を比較して、前記登録対象者のユニークコードを復元し、
前記復元した前記登録対象者のユニークコードを秘密鍵として用いた署名を実施する、認証システム。
【請求項５】
請求項１に記載の認証システムであって、
前記プロセッサは、
前記認証テンプレートの生成において、
前記登録対象者の特徴量を取得し、
前記区間それぞれにおける前記登録対象者の特徴量の頻度を示す第１登録特徴ベクトルを生成し、
前記複数のハッシュテーブル集合それぞれについて、
前記第１登録特徴ベクトルが示す各区間の頻度に対応するハッシュ値を、当該ハッシュテーブル集合に含まれる少なくとも１つのハッシュテーブルから取得し、
前記取得したハッシュ値のうち最小のハッシュ値を特定し、
前記複数のハッシュテーブル集合それぞれについて特定した最小のハッシュ値から第２登録特徴ベクトルを生成し、
前記第２登録特徴ベクトルの要素それぞれについて、下位の所定数ビットに基づいて２値のビット配列を生成し、前記生成したビット配列から第３登録特徴ベクトルを生成し、
前記第３登録特徴ベクトルに所定の変換を施して前記登録特徴ベクトルを生成し、
前記認証テンプレートに前記生成した登録特徴ベクトルを含めて、前記メモリに格納する、認証システム。
【請求項６】
請求項１に記載の認証システムであって、
前記区間それぞれに重みが予め定められており、
前記プロセッサは、
前記複数のハッシュテーブル集合それぞれについて、
前記第１認証特徴ベクトルが示す０以外の頻度を有する各区間に対応するハッシュ値を、当該ハッシュテーブル集合に含まれるハッシュテーブルであって、当該区間に対応する前記重みの数と同じ個数のハッシュテーブル、から取得する、認証システム。
【請求項７】
請求項１に記載の認証システムであって、
前記認証対象者の特徴量は、前記認証対象者の生体画像であり、
前記特徴量空間の区間それぞれは、分割された生体画像の各画像領域であり、
前記特徴量空間の区間における頻度は、前記画像領域に含まれるピクセルのピクセル値によって与えられる値であり、
前記プロセッサは、
前記認証対象者の生体画像の１以上のずらし画像を生成し、
前記認証対象者の生体画像及び前記１以上のずらし画像それぞれに対して、前記認証処理を実行する、認証システム。
【請求項８】
請求項７に記載の認証システムであって、
前記プロセッサは、前記１以上のずらし画像それぞれの空白領域におけるピクセル値を０に決定する、認証システム。
【請求項９】
請求項１に記載の認証システムであって、
前記認証対象者の特徴量は、行動が発生した時刻と、当該行動が行われた位置と、を示す行動の時系列であり、
前記特徴量空間の区間それぞれは、所定周期で繰り返される複数の期間と、分割された地図の領域と、によって分割された時空間であり、
前記特徴量空間の区間における頻度は、当該区間に対応する時空間に含まれる行動の頻度である、認証システム。
【請求項１０】
認証システムによる認証方法であって、
前記認証システムは、プロセッサとメモリとを含み、
前記メモリは、
それぞれが１以上のハッシュテーブルからなる複数のハッシュテーブル集合と、
登録対象者の特徴量から生成された登録特徴ベクトルを含む認証テンプレートと、を保持し、
前記複数のハッシュテーブル集合に含まれる各ハッシュテーブルは、特徴量空間を分割して得られる区間それぞれの値に対してハッシュ値を与え、
前記認証方法は、
前記プロセッサが、認証処理を実行し、
前記認証処理において、
前記プロセッサが、認証対象者の特徴量を取得し、
前記プロセッサが、前記区間それぞれにおける前記特徴量の頻度を示す第１認証特徴ベクトルを生成し、
前記複数のハッシュテーブル集合それぞれについて、
前記プロセッサが、前記第１認証特徴ベクトルが示す０以外の頻度を有する各区間、に対応するハッシュ値を、当該ハッシュテーブル集合に含まれる少なくとも１つのハッシュテーブルから取得し、
前記プロセッサが、前記取得したハッシュ値のうち最小のハッシュ値を特定し、
前記プロセッサが、前記複数のハッシュテーブル集合それぞれについて特定した最小のハッシュ値から第２認証特徴ベクトルを生成し、
前記プロセッサが、前記第２認証特徴ベクトルの要素それぞれについて、下位の所定数ビットに基づいて２値のビット配列を生成し、前記生成したビット配列から第３認証特徴ベクトルを生成し、
前記プロセッサが、前記第３認証特徴ベクトルに対する所定の変換により得られる第４認証特徴ベクトルと、前記登録特徴ベクトルと、を比較して、前記認証対象者の認証を実行する、認証方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、認証システム及び認証方法に関する。
【背景技術】
【０００２】
ＩＤとパスワードに変わる、安全で便利な本人認証手段として、生体認証技術の利用が拡大しつつある。金融サービスにおいては、モバイル端末からの口座開設、残高照会、口座振込み、及びＡＴＭ利用時の本人認証等においての生体認証の利用が実現されつつある。その一方で、生体情報の漏洩や不正入手による成り済ましリスクも高まってきている。このような電子情報による認証をセキュリティ面で強化した背景技術として、特開２００９−１７５９８４号公報（特許文献１）がある。
【０００３】
特許文献１には、「本人認証装置１０は、回線接続された端末から、端末を操作する利用者の行動特性情報として、各利用者が操作している利用者端末４０の属性を示す端末情報、該利用者端末４０が接続されている回線の属性を示す回線情報、該利用者端末４０に対する利用者の操作に係る慣習的な特徴を示す慣習情報を取得する。そして、本人認証装置１０は、取得された行動特性情報と、現にアクセスしてきた利用者の確率モデルとを用いて、利用者が本人である確率を示す確率値を算出する。」と記載されている（要約参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００９−１７５９８４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１に記載の技術は、認証に用いる行動履歴等の個人情報を復元可能な形式で保持するため当該個人情報の保護が不十分であり、ひいては認証端末や認証サーバから個人情報等が漏洩するリスクが高い。
【０００６】
そこで、本発明の一態様は、個人を特定するための情報の漏洩リスクを低減し、かつ認証精度が高い認証を行うことを目的とする。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、本発明の一態様は以下の構成を採用する。認証システムは、プロセッサとメモリとを含み、前記メモリは、それぞれが１以上のハッシュテーブルからなる複数のハッシュテーブル集合と、登録対象者の特徴量から生成された登録特徴ベクトルを含む認証テンプレートと、を保持し、前記複数のハッシュテーブル集合に含まれる各ハッシュテーブルは、特徴量空間を分割して得られる区間それぞれの値に対してハッシュ値を与え、前記プロセッサは、認証処理を実行し、前記認証処理において、認証対象者の特徴量を取得し、前記区間それぞれにおける前記特徴量の頻度を示す第１認証特徴ベクトルを生成し、前記複数のハッシュテーブル集合それぞれについて、前記第１認証特徴ベクトルが示す０以外の頻度を有する各区間、に対応するハッシュ値を、当該ハッシュテーブル集合に含まれる少なくとも１つのハッシュテーブルから取得し、前記取得したハッシュ値のうち最小のハッシュ値を特定し、前記複数のハッシュテーブル集合それぞれについて特定した最小のハッシュ値から第２認証特徴ベクトルを生成し、前記第２認証特徴ベクトルの要素それぞれについて、下位の所定数ビットに基づいて２値のビット配列を生成し、前記生成したビット配列から第３認証特徴ベクトルを生成し、前記第３認証特徴ベクトルに対する所定の変換により得られる第４認証特徴ベクトルと、前記登録特徴ベクトルと、を比較して、前記認証対象者の認証を実行する、認証システム。
【発明の効果】
【０００８】
本発明の一態様は、個人を特定するための情報の漏洩リスクを低減し、かつ認証精度が高い認証を行うことができる。
【０００９】
上記した以外の課題、構成及び効果は、以下の実施形態の説明により明らかにされる。
【図面の簡単な説明】
【００１０】
【図１】実施例１における本人認証システムの構成例を示すブロック図である。
【図２】実施例１におけるユーザ端末の構成例を示すブロック図である。
【図３】実施例１における認証サーバの構成例を示すブロック図である。
【図４】実施例１における認証テンプレート登録処理の一例を示すシーケンス図である。
【図５】実施例１における認証テンプレート生成処理の一例を示すフローチャートである。
【図６】実施例１における第３特徴ベクトル生成の過程の一例を示す説明図である。
【図７】実施例１における本人認証の全体処理の一例を示すシーケンス図である。
【図８】実施例１における本人認証処理の一例を示すフローチャートである。
【図９】実施例２における認証テンプレート生成処理の一例を示すフローチャートである。
【図１０Ａ】実施例２における３値画像の一例である。
【図１０Ｂ】実施例２における重みマスクの一例である
【図１１】実施例２におけるずらし画像における頻度決定処理の一例を示す説明図である。
【図１２】実施例２におけるずらし画像における頻度決定処理の一例を示す説明図である。
【図１３】実施例３における認証テンプレート生成処理の一例を示すフローチャートである。
【図１４Ａ】実施例３における時空間分割された区間における存否を示す特徴ベクトルの一例である。
【図１４Ｂ】実施例３における時空間分割された区間における頻度を示す第１特徴ベクトルの一例である。
【図１５Ａ】実施例１における第３特徴ベクトル生成処理の別例を示す説明図である。
【図１５Ｂ】実施例１における第２特徴ベクトル生成処理の別例を示す説明図である。
【発明を実施するための形態】
【００１１】
以下、本発明の実施形態を図面に基づいて詳細に説明する。本実施形態において、同一の構成には原則として同一の符号を付け、繰り返しの説明は省略する。なお、本実施形態は本発明を実現するための一例に過ぎず、本発明の技術的範囲を限定するものではないことに注意すべきである。
【実施例１】
【００１２】
図１は、本人認証システムの構成例を示すブロック図である。本人認証システムは、個人を特定する情報を用いて、本人認証を行うためのシステムである。なお、個人を特定するための情報は、個人の生体情報及び行動履歴（ライフスタイル）を含む。
【００１３】
以下、生体情報の一例として、指紋や静脈等の画像として得られる生体情報が用いられる例を説明する。また、行動履歴は、例えば、ユーザが所有するスマートフォン等の常時携帯する端末から収集される行動情報を含む。当該行動情報は、例えば、ＧＰＳ（Ｇｒｏｂａｌ  Ｐｏｓｉｔｉｏｎｉｎｇ  Ｓｙｓｔｅｍ）情報、ＷｉＦｉ（登録商標、以下同）情報、基地局アクセス履歴、及びユーザ端末１０内のアプリ使用履歴等を含む。
【００１４】
本人認証システムは、例えば、ユーザ端末１０、業務サーバ２０、及び認証サーバ３０、を含み、例えばインターネット等の通信ネットワーク４０を介して相互に接続されている。
【００１５】
ユーザ端末１０は、認証を試みるユーザが利用する端末（計算機）であり、例えば、スマートフォン、タブレット端末、ノートパソコン等のＢＹＯＤ（Ｂｒｉｎｇ  Ｙｏｕｒ  Ｏｗｎ  Ｄｅｖｉｃｅ）端末である。また、ユーザ端末１０は、サービスを提供する機関等に設置された、生体情報を取得するための専用の端末であってもよい。また、ユーザ端末１０は、端末保持者の行動履歴（位置履歴、及び基地局アクセス履歴等）を取得する。
【００１６】
業務サーバ２０は、ユーザ端末１０に対してサービスを提供する計算機である。例えば、本人認証システムが決済サービスのための認証を行うシステムである場合、業務サーバ２０は、決済サービスを実行するサーバに相当し、決済情報の管理を行なう。認証サーバ３０は、ユーザ端末により収集された個人を特定するための情報を用いて、本人認証を実施する計算機である。
【００１７】
なお、本人認証システムは、ユーザ端末１０へのログインのようなユーザ端末１０に対するローカルでの本人認証のみを実行する場合には、業務サーバ２０及び認証サーバ３０を含まなくてもよい。
【００１８】
図２は、ユーザ端末１０の構成例を示すブロック図である。ユーザ端末１０は、例えば、例えば、入力装置１１、表示装置１２、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１３、読取装置１４、ＧＰＳ装置１５、ＷｉＦｉ装置１６、メモリ１７、及び補助記憶装置１８を備える。
【００１９】
入力装置１１は、ユーザによる指示等の入力を受け付ける装置であり、例えばキーボード、マウス又はタッチパネル等である。入力装置１１は、例えば、ユーザの指示に従って、表示装置１２に表示された複数のボックス（ボタン）から、１つのボックスを選択することにより該当の処理を選ぶ処理などを受け付ける。
【００２０】
また、入力装置１１は、カメラのような撮影装置を含んでもよい。撮影装置は、顔、指紋、掌紋、及び静脈等の個人を特定するための生体情報を取得できるものでもよい。また、入力装置１１は、指紋センサ、又は虹彩センサ等のような、特定の生体情報を取得するための専用センサを含んでもよい。
【００２１】
表示装置１２は、プログラムの実行結果等を、ユーザに視認可能な形式で、表示する装置である。表示装置１２は、例えば、液晶ディスプレイのような画像表示装置及びプリンタを含む。また、入力装置１１及び表示装置１２は、一体化していてもよい。
【００２２】
ＧＰＳ装置１５は、ユーザ端末１０の位置を計測する。ＷｉＦｉ装置１６は、ＷｉＦｉ基地局と通信するための通信装置である。なお、ユーザ端末１０は、ＷｉＦｉ装置１６に加えて又は代えて、所定のプロトコルに従って、他の装置との通信を制御するネットワークインターフェース装置である通信装置を含んでもよい。
【００２３】
読取装置１４は、ＧＰＳ装置１５が測位した位置情報、及びＷｉＦｉ装置１６がアクセスした基地局アクセス情報を、例えば、時刻とともに、履歴として記録する。読取装置１４は、具体的には、例えば、これらの情報を、一定時間間隔で記録する。
【００２４】
ＣＰＵ１３は、プロセッサを含み、メモリ１７に格納されたプログラムを実行する。メモリ１７は、不揮発性の記憶素子であるＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）及び揮発性の記憶素子であるＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）を含む。ＲＯＭは、不変のプログラム（例えば、ＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ／Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ））などを格納する。ＲＡＭは、ＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）のような高速かつ揮発性の記憶素子であり、ＣＰＵ１３が実行するプログラム及びプログラムの実行時に使用されるデータを一時的に格納する。また、メモリ１７には、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）、通信プログラム等が格納されている。
【００２５】
補助記憶装置１８は、例えば、磁気記憶装置（ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ））、フラッシュメモリ（ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ））等の大容量かつ不揮発性の記憶装置であり、ＣＰＵ１３が実行するプログラム及びプログラムの実行時に使用されるデータを格納する。すなわち、プログラムは、補助記憶装置１８から読み出されて、メモリ１７にロードされて、ＣＰＵ１３によって実行される。
【００２６】
ＣＰＵ１３が実行するプログラムは、リムーバブルメディア（ＣＤ−ＲＯＭ、フラッシュメモリなど）又はネットワークを介してユーザ端末１０に提供され、非一時的記憶媒体である不揮発性の補助記憶装置１８に格納される。このため、ユーザ端末１０は、リムーバブルメディアからデータを読み込むインターフェースを有するとよい。これは本人認証システムに含まれる他の計算機についても同様である。
【００２７】
ユーザ端末１０は、物理的に一つの計算機上で、又は、論理的又は物理的に構成された複数の計算機上で構成される計算機システムであり、同一の計算機上で別個のスレッドで動作してもよく、複数の物理的計算機資源上に構築された仮想計算機上で動作してもよい。これは本人認証システムに含まれる他の計算機についても同様である。
【００２８】
ＣＰＵ１３は、例えば、第１特徴ベクトル生成部１３１、特徴量離散化部１３２、ハッシュテーブル生成部１３３、第２特徴ベクトル生成部１３４、第３特徴ベクトル生成部１３５、第４特徴ベクトル生成部１３６、距離計算部１３７、及び登録認証要求部１３８を含む。例えば、ＣＰＵ１３は、メモリ１７にロードされた第１特徴ベクトル生成プログラムに従って動作することで、第１特徴ベクトル生成部１３１として機能し、メモリ１７にロードされた特徴量離散化プログラムに従って動作することで、特徴量離散化部１３２として機能する。
【００２９】
なお、ＣＰＵ１３に含まれる他の機能部についても、プログラムと機能部の関係は同様である。また、本人認証システムに含まれる他の計算機において、メモリに格納されるプログラムと、ＣＰＵに含まれる機能部と、の関係は同様である。
【００３０】
第１特徴ベクトル生成部１３１は、個人を特定するための情報を抽出し、第１特徴ベクトルを生成する。特徴量離散化部１３２は、第１特徴ベクトルの生成に際して、個人を特定するための情報である特徴量を離散化する。ハッシュテーブル生成部１３３は、第１特徴ベクトルの各値のハッシュ値を生成するためのハッシュテーブルを生成する。
【００３１】
第２特徴ベクトル生成部１３４は、ハッシュテーブルを用いて、第１特徴ベクトルから第２特徴ベクトルを生成する。第３特徴ベクトル生成部１３５は、第２特徴ベクトルの情報量を削減し、冗長ビット表現を用いて第３特徴ベクトルを生成する。第４特徴ベクトル生成部１３６は、第３特徴ベクトルとユニークコードから第４特徴ベクトル及び認証テンプレートを生成する。
【００３２】
距離計算部１３７は、認証時に取得した個人を特定するための情報から生成された第４特徴ベクトルと、登録済みの認証テンプレートと、の距離を計算し、ユニークコードを復元する。登録認証要求部１３８は、認証サーバ３０に対してユーザ登録要求及び認証要求を行ったり、認証時に署名を生成したりする。
【００３３】
補助記憶装置１８は、例えば、ハッシュテーブルデータ１８１、及び認証テンプレートデータ１８２を保持する。ハッシュテーブルデータ１８１は、ハッシュテーブル生成部１３３が生成したハッシュテーブルを格納する。ハッシュテーブルデータ１８１は、ハッシュテーブルに代えて、ハッシュテーブルを生成するための乱数シードを格納してもよい。認証テンプレートデータ１８２は、認証テンプレートを格納する。
【００３４】
なお、本実施形態において、本人認証システムが使用する情報は、データ構造に依存せずどのようなデータ構造で表現されていてもよい。例えば、テーブル、リスト、データベース又はキューから適切に選択したデータ構造体が、情報を格納することができる。
【００３５】
図３は、認証サーバ３０の構成例を示すブロック図である。認証サーバ３０は、ユーザ端末１０が収集した個人を特定するための情報に基づき、本人認証処理を行なう。
【００３６】
認証サーバ３０は、例えば、入力装置３１、表示装置３２、ＣＰＵ３３、メモリ３７、及び補助記憶装置３８を備える。入力装置３１、表示装置３２、ＣＰＵ３３、メモリ３７、及び補助記憶装置３８、それぞれの説明は、入力装置１１、表示装置１２、ＣＰＵ１３、メモリ１７、及び補助記憶装置１８、それぞれの説明と同様であるため、以下、相違点のみを説明する。
【００３７】
ＣＰＵ３３は、例えば、署名検証部３３１、及び登録認証部３３２を含む。署名検証部３３１は、ユーザ端末１０が実施した署名を検証する。登録認証部３３２は、ユーザ端末１０からのユーザ登録要求に対して認証登録テンプレート生成要求を返信したり、取得した認証テンプレートやハッシュテーブルの登録をしたり、認証処理時にユーザ端末１０に対して認証要求を行ったりする。
【００３８】
なお、認証サーバ３０がハッシュテーブルの生成を行う場合には、ＣＰＵ３３は、さらにハッシュテーブル生成部を含む。また、認証サーバ３０が、認証時に生成された第４特徴ベクトルと、認証テンプレート内の第４特徴ベクトルと、を比較する場合には、ＣＰＵ３３は、さらに距離計算部を含む。
【００３９】
補助記憶装置３８は、例えば、ハッシュテーブルデータ３８１、及び認証テンプレートデータ３８２を保持する。ハッシュテーブルデータ３８１は、ハッシュテーブル生成部１３３が生成したハッシュテーブルを格納する。ハッシュテーブルデータ３８１は、ハッシュテーブルに代えて、ハッシュテーブルを生成するための乱数シードを格納してもよい。認証テンプレートデータ３８２は、認証テンプレートを格納する。
【００４０】
＜認証テンプレート登録処理＞
図４は、認証テンプレート登録処理の一例を示すシーケンス図である。認証テンプレート登録処理において、例えば、ユーザ端末１０がユーザの個人を特定するための情報から認証テンプレートを生成し、認証サーバ３０が認証テンプレートを登録及び保管する。
【００４１】
最初に、ユーザ端末１０の登録認証要求部１３８は、認証サーバ３０に対し、ユーザ登録要求を行う（Ｓ４０１）。当該登録要求は、例えば、ユーザによって入力されたユーザＩＤ等を含んでもよい。
【００４２】
認証サーバ３０の登録認証部３３２は、ユーザ端末１０に対して、認証テンプレート生成要求を行う（Ｓ４０２）。次に、ユーザ端末１０は、各ユーザの「個人を特定するための情報」から、後述する第４特徴ベクトルを生成し、認証テンプレートに含める（Ｓ４０３）。ステップＳ４０３における認証テンプレート生成処理の詳細は図５を用いて後述する。
【００４３】
ユーザ端末１０は、生成した認証テンプレートを認証サーバ３０に送信する（Ｓ４０４）。また、ステップＳ４０４において、登録認証要求部１３８は、ハッシュテーブルを併せて、認証サーバ３０に送信してもよい。ハッシュテーブルは、認証テンプレートに含まれる第４特徴ベクトルの生成に必要となるテーブルである。ステップＳ４０４の処理により、認証時に認証サーバ３０によっても第４特徴ベクトルを生成することができる。
【００４４】
また、例えば、ユーザが登録に利用したユーザ端末１０と、ユーザが認証に利用するユーザ端末１０と、が異なり、かつ認証時にユーザ端末１０によって第４特徴ベクトルを生成する場合、認証に用いるユーザ端末１０がハッシュテーブルを有している必要がある。従って、認証サーバ３０がハッシュテーブルを有していることにより、認証に用いるユーザ端末１０とハッシュテーブルを共有することができる。
【００４５】
続いて、登録認証部３３２は、受信した認証テンプレート及びハッシュテーブルを補助記憶装置３８に格納する。なお、ステップＳ４０４において、ハッシュテーブルに代えて、ハッシュテーブルを生成するための乱数シードが送信されてもよく、この場合、ステップＳ４０５において乱数シードが認証サーバ３０に登録される。
【００４６】
なお、ユーザ端末１０へのログインのように、本人認証システムがユーザ端末１０に対するローカルでの認証のみを実行する場合には、例えば、ユーザからの指示に従って、ステップＳ４０３のみを実行し、生成された認証テンプレート、及びハッシュテーブル又は乱数シードが補助記憶装置１８に格納される。
【００４７】
図５は、ステップＳ４０３における認証テンプレート生成処理の一例を示すフローチャートである。図５に示す処理では、ユーザ端末１０が収集した「個人を特定するための情報」に基づいて、認証テンプレートが生成される。
【００４８】
最初に、第１特徴ベクトル生成部１３１は、所定の特徴量を抽出する（Ｓ５０１）。指紋、顔、静脈等の生体情報から得られる３値画像の各ピクセル値を要素とするベクトル（以下、ベクトルは行列であってもよい）や、所定期間の行動履歴（ＧＰＳ、ＷｉＦｉ、基地局アクセス履歴等）の時系列情報を示すベクトルは、当該所定の特徴量の一例である。
【００４９】
特徴量離散化部１３２は、取得した特徴量の上限及び下限に基づいて、特徴量空間を一定の区間に分割する（Ｓ５０２）。具体的には、例えば、ＧＰＳによる位置履歴が特徴量である場合、特徴量離散化部１３２が、２４時間をＮ個の区間に分割し、さらに緯度及び経度で定義される地図をメッシュ化してＭ個の区間（領域）に分割する。これにより、ユーザ端末１０の位置の時系列の各点（時刻、緯度、経度及びで示される点）は、時間帯を定義する軸と領域を定義する軸とをクロスして得られるＮ×Ｍ個の区間のいずれかに属する。
【００５０】
なお、例えば、特徴量の各値が３値画像の各ピクセル値で定義されている場合には、各ピクセルを分割後の区間とみなすことができるため、ステップＳ５０２の処理は実行されなくてもよい。
【００５１】
次に、ハッシュテーブル生成部１３３は、ステップＳ５０２で生成された各区間にハッシュ値を付与するためのハッシュテーブルを生成する（Ｓ５０３）。次に、ハッシュテーブル生成部１３３は、ハッシュテーブルの生成が所定回数以上実行されたか否かを判定する（Ｓ５０４）。
【００５２】
ハッシュテーブル生成部１３３は、ハッシュテーブルの生成が実行された回数が、当該所定回数未満であると判定した場合（Ｓ５０４：Ｎｏ）、ステップＳ５０３に戻り、当該所定の回数以上と判定した場合（Ｓ５０４：Ｙｅｓ）、ステップＳ５０５に進む。つまり、ステップＳ５０３〜Ｓ５０４によって、複数の（当該所定回数と同数の）ハッシュテーブルが生成される。なお、当該複数のハッシュテーブルは、同一の区間に異なるハッシュ値を割り当てるものであってもよい。
【００５３】
なお、認証テンプレート生成処理で用いられるハッシュテーブルは、ユーザごとに異なってもよいし、同一であってもよい。複数のユーザについて同一のハッシュテーブルが用いられるである場合には、ハッシュテーブルは、例えば、最初にユーザ登録要求をしたユーザ端末１０又は認証サーバ３０によって生成され、認証サーバ３０に保管されている。ハッシュテーブルを生成しないユーザ端末１０は、ステップＳ５０３〜Ｓ５０４の処理を実行せずに、認証サーバ３０から受信したハッシュテーブルを用いる。
【００５４】
次に、第１特徴ベクトル生成部１３１は、ステップ５０２で生成した各区間に含まれる特徴量の頻度をカウントし、各区間の頻度を要素とする第１特徴ベクトルを生成する（ステップＳ５０４）。具体的には、前述した例では、特徴量がユーザ端末１０の位置の時系列で定義されている場合、時系列の各点（時刻、緯度、経度及びで示される点）は、時間を定義する軸と領域を定義する軸とをクロスして得られる区間のいずれかに属する。この場合、第１特徴ベクトル生成部１３１は、各区間の頻度をカウントする。
【００５５】
なお、例えば、特徴量が３値画像の各ピクセル値で定義されている場合には、第１特徴ベクトル生成部１３１は、各ピクセルのピクセル値そのものを頻度として扱う。つまり、この場合、各ピクセルのピクセル値を要素とするベクトルが第１特徴ベクトルである。前述したいずれの例においても、第１特徴ベクトルは、個人を特定する情報を示す特徴量を分割後の区間に集約したベクトルである。
【００５６】
次に、第２特徴ベクトル生成部１３４は、ステップＳ５０３〜Ｓ５０４で生成したハッシュテーブルから未選択の１つのハッシュテーブルを参照して、第１特徴ベクトル（つまり、前述した頻度）が０でない値それぞれのハッシュ値を取得する（Ｓ５０６）。
【００５７】
第２特徴ベクトル生成部１３４は、ステップＳ５０６で取得したハッシュ値のうち最小のものを第２特徴ベクトルの要素として選択する（Ｓ５０７）。なお、例えば、１つのハッシュテーブルから得られた第２特徴ベクトルの要素が、第２特徴ベクトルの何列目（何行目）に配置されるかは、ハッシュテーブルごとに固定されるものとする。
【００５８】
第２特徴ベクトル生成部１３４は、全てのハッシュテーブルを選択済みであるか否かを判定する（Ｓ５０８）。第２特徴ベクトル生成部１３４は、未選択のハッシュテーブルがあると判定した場合（Ｓ５０８：Ｎｏ）、ステップＳ５０６に戻り、全てのハッシュテーブルを選択済みであると判定した場合（Ｓ５０８：Ｙｅｓ）、ステップＳ５０９に進む。
【００５９】
従って、例えば、ステップＳ５０３〜Ｓ５０４においてｋ個のハッシュテーブルが生成された場合には、第２特徴ベクトル生成部１３４は、ｋ個のハッシュテーブルそれぞれから得られた最小ハッシュ値を要素とするｋ次元ベクトルを、第２特徴ベクトルとして生成する。
【００６０】
次に、第３特徴ベクトル生成部１３５は、第２特徴ベクトルの要素の下位の所定数ｂｉｔ（例えば、２ｂｉｔ又は１ｂｉｔ）の値を取得し、取得した値を冗長ビット表現として持つ第３特徴ベクトルを生成する。
【００６１】
ここで、図６を用いて、冗長ビット表現について説明する。図６は、第３特徴ベクトル生成の過程の一例を示す説明図である。ｋ次元ベクトル６０１は、第２特徴ベクトルである。通常、図６に示すように第２特徴ベクトルの各要素は、整数ハッシュ値であるが、整数以外のハッシュ値であってもよい。
【００６２】
第３特徴ベクトル生成部１３５は、第２特徴ベクトルの整数の下位の所定数ｂｉｔの数値を取得する。まず、下位の所定数ｂｉｔが下位２ｂｉｔである例を説明する。ｋ次元ベクトル６０１の１番目の要素の値“３”を２進数表記すると“１１”であり、その下位２ｂｉｔは“１１”である。また、ｋ次元ベクトル６０１の２番目の要素の値である“１４”を２進数表記すると“１１１０”であり、その下位２ｂｉｔは“１０”である。
【００６３】
続いて、第３特徴ベクトル生成部１３５は、２ｂｉｔで表現できる最大値を長さとしてもつビット配列（２ｂｉｔで表現できる最大値は３であるためビット長は３）を０で初期化して用意する（即ちビット配列“０００”を用意する）。そして、得られた下位２ｂｉｔの値それぞれについて、初期化したビット配列の、当該下位２ｂｉｔの１０進数表記の値に対応する桁（具体的には、例えば、下位２ｂｉｔの１０進数表記が“３”であれば下から３桁目）、のビットの値を１に変更したビット配列を生成する。当該下位２ｂｉｔの値が“００”である場合には、初期化したビット配列をそのまま取得する。なお、これらのビット配列を冗長ビット配列とも呼ぶ。
【００６４】
具体的には、取得した下位２ｂｉｔ“１１”の１０進数表記は“３”であるため、第３特徴ベクトル生成部１３５は、初期化されたビット配列“０００”の３桁目の値を１に変更したビット配列“１００”を生成する。また、取得した下位２ｂｉｔ“１０”の１０進数表記は“２”であるため、第３特徴ベクトル生成部１３５は、初期化されたビット配列“０００”の２桁目の値を１に変更したビット配列“０１０”を生成する。
【００６５】
第３特徴ベクトル生成部１３５は、これらのビット配列それぞれを要素とするバイナリベクトル６０３を第３特徴ベクトルとして生成する。例えば、下位２ｂｉｔを用いて第３特徴ベクトルが生成される場合、下位２ｂｉｔの値の最大値が“３”であるため、第２特徴ベクトルの１要素は、長さ３のベクトルに変換される。このため、第３特徴ベクトルは、ｋ×３次元のバイナリベクトルである。
【００６６】
続いて、下位の所定数ｂｉｔが下位１ｂｉｔである例を説明する。ｋ次元ベクトル６０１の１番目の要素の値“３”を２進数表記すると“１１”であり、その下位１ｂｉｔは“１”である。また、ｋ次元ベクトル６０１の２番目の要素の値である“１４”を２進数表記すると“１１１０”であり、その下位１ｂｉｔは“０”である。
【００６７】
そして、取得した下位１ｂｉｔは“１”であるため、第３特徴ベクトル生成部１３５は、初期化されたビット配列“０”の１桁目の値を１に変更したビット配列“１”を生成する。また、取得した下位１ｂｉｔは“０”であるため、第３特徴ベクトル生成部１３５は、初期化されたビット配列“０”を変更することなくビット配列“０”を取得する。
【００６８】
第３特徴ベクトル生成部１３５は、これらのビット配列それぞれを要素とするバイナリベクトル６０２を第３特徴ベクトルとして生成する。下位１ｂｉｔを用いて第３特徴ベクトルが生成される場合、下位１ｂｉｔの値の最大値が“１”であるため、第２特徴ベクトルの１要素は、長さ１のベクトルに変換される。このため、第３特徴ベクトルは、ｋ×１次元のバイナリベクトルである。
【００６９】
図５の説明に戻る。第４特徴ベクトル生成部１３６は、ステップＳ５０９によって得られた第３特徴ベクトルと、ランダムな値を持つｎ×ｍ次元の射影行列（但し、ゼロ行列でも単位行列でもない）と、の積を算出し、算出した積にｍ次元の別のユニークコードと足し合せることで、第４の新たな特徴ベクトルを生成する（Ｓ５１０）。ユニークコードは、例えば、ユーザによってユーザ端末１０に入力され、メモリ１７又は補助記憶装置１８に保存されている。
【００７０】
ここで、ｎは第３特徴ベクトルの次元数と等しく、ｍは、生成される第４特徴ベクトルの次元数と等しい。また、ユーザの秘密鍵及びパスワード等の秘匿対象の情報は、ユニークコードの一例である。なお、ユニークコードが存在しない場合、又はユニークコードを秘匿する必要がない場合には、第３特徴ベクトルと前述した射影行列との積を第４特徴ベクトルとしてもよい。また、第４特徴ベクトル生成部１３６は、ステップＳ５１０において、例えば、第４特徴ベクトルと、ユーザを識別するユーザＩＤと、を認証テンプレートに含める。
【００７１】
以上により、生体情報の復元が不可能で、本人間距離（本人の特徴量と別の機会に取得した当該本人の特徴量との距離）、及び他人間距離（本人の特徴量と他人の特徴量との距離）を近似的に保持したまま認証可能な認証テンプレートを生成することができる。
【００７２】
具体的には、第２特徴ベクトル生成時にハッシュテーブルが用いられることにより、ハッシュテーブルが漏洩しない限り、第２特徴ベクトルから第１特徴ベクトルを復元することは原則的にできない。また、第２特徴ベクトルの各要素の下位の所定数ｂｉｔのみを用いて第３特徴ベクトルが生成されているため、第３特徴ベクトルの生成時に情報量が落ちているため、復元可能性がさらに低下する。さらに第４特徴ベクトルの生成時において、射影行列による射影及びユニークコードが用いられることにより、復元不可能性がさらに担保される。
【００７３】
一方、第１の特徴ベクトル、第２の特徴ベクトル、第３の特徴ベクトル、第４の特徴ベクトルを生成するまでに行われる変換は漸近的等長変換であるため、本人間距離、及び他人間距離が近似的に保存されたまま各特徴ベクトルへの変換がなされる。
【００７４】
なお、図５の処理は、一般的にはスマートフォンやタブレット等の認証クライアント端末であるユーザ端末１０上で実施される。但し、生成された認証テンプレートは、ユーザ端末１０内のみに保管されてもよいし、認証サーバ３０に送信され、別のユーザ端末１０と共有されてもよい。
【００７５】
また、ステップＳ５０３〜Ｓ５０４で生成されるハッシュテーブルは、同じものを認証時にも利用する必要があるため、認証テンプレートとともに認証サーバ３０又はユーザ端末１０内に保管されるか、同じハッシュテーブルの生成が可能なように乱数生成シードの値のみが認証テンプレートとともに認証サーバ３０又はユーザ端末１０内に保管されてもよい。
【００７６】
また、ステップＳ５０７〜Ｓ５０８における第２特徴ベクトル生成処理（ハッシュテーブルの参照処理）、及びステップＳ５０９における第３特徴ベクトル生成処理において、下記の示す処理が実行されてもよい。
【００７７】
図１５Ａは、第３特徴ベクトル生成処理の別例を示す説明図である。図１５Ａ、前述したように、第２特徴ベクトルの各要素の値は、各ハッシュテーブルを参照して得られた最小のハッシュ値である。
【００７８】
第３特徴ベクトル生成部１３５は、第２特徴ベクトルの各要素について、最下位ｂｉｔの値を取得する。また、ステップＳ５０２における各区間に予め重み（重みの最大値をｗとする）が定められているものとする。
【００７９】
第３特徴ベクトル生成部１３５は、第２特徴ベクトルの各要素について、以下の処理を行う。第３特徴ベクトルは、当該要素についてハッシュ値が得られた区間の重み（以下ｘとする）を取得する。第３特徴ベクトル生成部１３５は、取得した最下位ｂｉｔを下位ｘ桁に並べ、さらに上位の桁をゼロパディングしてｗ桁のｂｉｔ配列を生成し、第３特徴ベクトルの要素とする。
【００８０】
例えば、第２特徴ベクトルの先頭要素の値が“３”であれば、最下位ｂｉｔは“１”である。先頭要素が最小ハッシュ値として得られた区間に対応する重みが“３”であり、重みの最大値が“８”である場合、第３特徴ベクトル生成部１３５は、下位３桁が１であり、上位の桁がゼロパディングされた“０００００１１１”というｂｉｔ配列を生成し、第３特徴ベクトルの先頭要素とする。
【００８１】
なお、最小ハッシュ値が得られた区間における第１特徴量の頻度に重みを掛けた数のハッシュテーブルを参照してもよい。図１５Ａの方式により、第３特徴ベクトルの表現サイズを重み（頻度）数分拡張することで、重み（頻度）を考慮した第３特徴ベクトルを生成することができる。
【００８２】
図１５Ｂは、第２特徴ベクトル生成処理の別例を示す説明図である。ステップＳ５０２における各区間に予め重み（重みの最大値をｗとする）が定められているものとする。前述した方式では、第２特徴ベクトル生成部１３４は、順次ハッシュテーブルを参照し、ハッシュテーブルを参照して得られた最小ハッシュ値それぞれを、第２特徴ベクトルの各要素としていた。
【００８３】
一方、図１５Ｂの方式においては、例えば、第２特徴ベクトルの各要素の生成において、複数セットのハッシュテーブルが参照される。例えば、前述した方式で１２８個のハッシュテーブルが順次参照されるとすれば、図１５Ｂの方式ではｗ個のハッシュテーブルが１２８セット必要である。
【００８４】
図１５Ｂの方式において、第２特徴ベクトル生成部１３４は、各区間の重みを取得する。第２特徴ベクトル生成部１３４は、１セットのハッシュテーブルを取得する。第２特徴ベクトル生成部１３４は、各区間について、当該１セットのハッシュテーブルのうち、対応する重みに対応する数のハッシュテーブルを参照して得られたハッシュ値のうち、最小の値を各区間の最小ハッシュ値とする。第３特徴ベクトル生成部１３５は、各区間の最小ハッシュ値のうち、最小の値を第３特徴ベクトルの要素に決定する。
【００８５】
なお、最小ハッシュ値が得られた区間における第１特徴量の頻度に重みを掛けた数のハッシュテーブルを参照してもよい。図１５Ｂの方式により、重み（頻度）の高い特徴量について、最小ハッシュ値が選ばれる可能性が高くなり、重み（頻度）を考慮した第３特徴ベクトルを生成することができる。
【００８６】
＜本人認証処理＞
図７は、本人認証の全体処理の一例を示すシーケンス図である。ここでは、ユーザ端末１０のユーザが、業務サーバ２０によるサービスを利用する際に、ユーザ端末１０（例えば、スマートフォン等の携帯端末）により取得可能な個人を特定するための情報に基づき本人認証する例を説明する。
【００８７】
最初に、ユーザ端末１０の登録認証要求部１３８は、本人認証を行うため、業務サーバ２０に対して、サービス／アクセス要求を発行する（Ｓ７０１）。サービス／アクセス要求は、例えば、ユーザ端末１０のユーザを識別するＩＤを含む。業務サーバ２０は、サービス／アクセス許可のために、認証サーバ３０に本人認証要求を発行する（Ｓ７０２）。
【００８８】
認証サーバ３０の登録認証部３３２は、ユーザ端末１０に対して、当該ユーザの認証テンプレートと、公開鍵暗号基盤で用いられる署名対象のチャレンジコードと、を送信して、本人認証要求を発行する（Ｓ７０３）。なお、ユーザ端末１０が認証テンプレートを保持している場合には、登録認証部３３２は、ユーザ端末１０を送信しなくてもよい。
【００８９】
ユーザ端末１０は、本人認証処理を行い、ユニークコードを復元する（Ｓ７０４）。ステップＳ７０４における本人認証処理の詳細については、図８を用いて後述する。ユーザ端末１０の登録認証要求部１３８は、復元したユニークコードを秘密鍵として用いて、受信したチャレンジコード８１２に対する署名を打つことで生成した署名データを認証サーバ３０に返却する（Ｓ７０５）。
【００９０】
認証サーバ３０の署名検証部３３１は、署名検証を行い（Ｓ７０６）、検証結果を業務サーバ２０に送信する（Ｓ７０７）。業務サーバ２０は、署名の検証結果が成功である場合、本人認証が成功したものとして、サービス／アクセス許可をユーザ端末１０に通知し、署名の検証結果が失敗である場合、本人認証が失敗したものとして、サービス／アクセス拒否をユーザ端末１０に通知する（Ｓ７０８）。
なお、ステップＳ７０５において、登録認証要求部１３８は、業務サーバ２０に対して署名データを送信し、業務サーバ２０が署名検証を直接行ってもよい。
【００９１】
図８は、ステップＳ７０４における本人認証処理の一例を示すフローチャートである。最初に、距離計算部１３７は、認証サーバ３０から送信された又はユーザ端末１０が保持する登録済みの認証テンプレートを取得する（Ｓ８０１）。
【００９２】
次に、第１特徴ベクトル生成部１３１は、を用いて、個人を特定するための特徴量（例えば、指紋、顔、静脈等の生体情報や、行動履歴（ＧＰＳ、ＷｉＦｉ、基地局アクセス履歴等）情報）を抽出する（Ｓ８０２）。なお、ステップＳ８０２において、抽出される特徴量は、認証テンプレート生成の際に抽出された特徴量と同種である。
【００９３】
次に、ユーザ端末１０は、ステップＳ８０２において抽出された特徴量から、第４特徴ベクトルを生成する（Ｓ８０３）。第４特徴ベクトルの生成処理については、図５の処理と同様であるため、説明を省略する。
【００９４】
最後に、距離計算部１３７は、登録済みの認証テンプレート中の第４特徴ベクトルと、認証時に生成される第４特徴ベクトルと、を用いて、各ベクトル要素の差の絶対値の最大値に基づき誤り訂正処理を行い、登録済みの認証テンプレート中の第４特徴ベクトルに埋め込まれた（即ち当該第４特徴ベクトルの生成に用いられた）ユニークコードの復元を行う（Ｓ８０４）。誤り訂正処理によるユニークコードの復元は、例えば、特開２０１３−１２３１４２号公報に記載された方法に基づいて行われる。
【００９５】
前述したように、復元されたユニークコードは、秘密鍵として用いられ、クライアント、サーバ間の公開鍵暗号基盤に基づく署名検証処理が実施され、オンライン認証が実施可能となる。以上の構成により、生体情報の復元が不可能で、かつ本人間距離及び他人間距離を近似的に保持したまま認証可能なテンプレートを用いた安全な認証を実施することができる。
【００９６】
なお、本実施例では認証テンプレートに第４特徴ベクトルを含めたが、第４特徴ベクトルの代わりに第３特徴ベクトルを認証テンプレートに含めてもよい。この場合、ステップＳ５０９で生成された第３特徴ベクトルにユニークコードを足したものが第３特徴ベクトルとされてもよいし、第３特徴ベクトルにユニークコードが足されていなくてもよい。
【００９７】
なお、第４特徴ベクトルの代わりに第３特徴ベクトルを認証テンプレートに含めることは、前述した例において、第４特徴ベクトルが、第３特徴ベクトルに恒等変換を施して得られたベクトル、又は恒等変換を施して得られたベクトルにユニークコードを足し合わせたベクトルであること、と同義である。
【００９８】
第４特徴ベクトルの代わりに第３特徴ベクトルを認証テンプレートに含められた場合には、本人認証処理においても第３特徴ベクトル間の距離を用いた認証が行われる。第３特徴ベクトルによっても、生体情報の復元が不可能で、本人間距離、及び他人間距離を近似的に保持したまま認証可能な認証テンプレートを実現することができる。但し、第４特徴ベクトルが認証テンプレートに用いられた場合の方が、生体情報の復元不可能性は向上する。
【実施例２】
【００９９】
以下、本実施例では、実施例１における本人認証を適用した具体例として、指静脈パターンが個人を特定するための情報として用いられる例を説明する。なお、個人を特定するための情報が、顔認証、手のひら静脈、虹彩等の生体画像のような画像情報であれば、指静脈パターンに限らず本実施例の本人認証を適用することができる。本実施例では、例えばスマートフォンへのログインや決済において、スマートフォン等のカメラで撮影した生体画像に基づき本人認証が行われ、サービス利用時の本人認証を実現する。主に、実施例１との相違点を説明する。
【０１００】
＜認証テンプレート生成処理＞
図９は、本実施例の認証テンプレート生成処理の一例を示すフローチャートである。最初に第１特徴ベクトル生成部１３１は、汎用カメラや専用センサを用いて取得された、指静脈画像を取得する（Ｓ９０１）。次に、第１特徴ベクトル生成部１３１は、グレースケール画像である静脈画像を、例えば０、１、２の３値からなる３値画像に変換する（Ｓ９０２）。以下、３値画像のサイズは、高さｈ−ｐｉｘｅｌ、幅ｗ−ｐｉｘｅｌであるものとする。
【０１０１】
次に、ハッシュテーブル生成部１３３は、ステップＳ５０３〜Ｓ５０４と同様の方法で、複数のハッシュテーブルを生成する（Ｓ９０３）。このとき、３値画像の各ピクセルがステップＳ５０２における分割後の区間に相当し、ｈ×ｗ個の区間からなる。
【０１０２】
また各区間の特徴量の頻度は、３値化された各画像のピクセル値に相当する。つまり３値画像の各ピクセル値からなるベクトルが、本実施例における第１特徴ベクトル（ｈ×ｗ次元）である。また、ｈ×ｗ個の各区間に対応する重みマスクが設定されている場合、「３値画像の各ピクセル値×重み」が各区間における特徴量の頻度に相当する。
【０１０３】
図１０Ａのマトリクス１１０１は、３値画像の一例である。図１０Ｂのマトリクス１１０２は、重みマスクの一例である。重みマスクは、例えば、補助記憶装置１８に予め格納されている。
【０１０４】
マトリクス１１０２は、３値画像の（高さ方向における）中段ピクセルにおけるピクセルに対応する重みが２であり、他のピクセルにおける重みより高いため、中段ピクセルが重要であることを表す。例えば、図１６Ｂを用いて前述したハッシュテーブルの参照方法によれば、中段のピクセルについてハッシュテーブルの参照回数が多いため、中段ピクセルにおいて最小のハッシュ値が選択される可能性が高まる。
【０１０５】
図９の説明に戻る。次に、第２特徴ベクトル生成部１３４は、３値画像の未生成のパターンのずらし画像を１つ生成する（Ｓ９０４）。以下のステップＳ９０５〜Ｓ９１２までの処理は、直近のステップＳ９０４において生成されたずらし画像について行われる処理である。なお、３値画像のずらし画像のパターンとして、例えば、高さ方向と幅方向に所定サイズずつずらしたパターンがある。
【０１０６】
具体的には、例えば、３値画像のずらし画像のパターンとして、３値画像を高さ方向に−２、０、又は＋２ピクセルずつ、かつ幅方向に−４、−２、０、＋２、又は＋４ピクセルずつずらした全１５パターン（３×５パターン）の３値画像がある。
【０１０７】
図１１は、ずらし画像における頻度決定処理の一例を示す説明図である。ずらし画像１２０１は、幅方向に＋２ずらした（高さ方向にはずらされていない）３値画像である。ずらし画像１２０２は、幅方向に−２ずらした（高さ方向にはずらされていない）３値画像である。ずらすことによって生じる空白領域には、値０がセットされる。例えば、３値画像１２０３は、幅方向に＋２ずらされたことにより空白となった左２列に値０がセットされた３値画像である。
【０１０８】
図９の説明に戻る。第２特徴ベクトル生成部１３４は、未選択のハッシュテーブルのセット（重みと頻度の積の最大値数と同じ数のハッシュテーブルのセット）を選択する（Ｓ９０５）。第２特徴ベクトル生成部１３４は、直近のステップＳ９０４で生成したずらし画像のｈ×ｗ個の区間それぞれのピクセル値を参照し（Ｓ９０６）、値が０ではないものについて、ハッシュテーブルの値を参照する。
【０１０９】
第２特徴ベクトル生成部１３４は、ピクセル値が０以外の区間（ピクセル）それぞれについて、ハッシュテーブルを参照する（Ｓ９０７）。具体的には、第２特徴ベクトル生成部１３４は、例えば、ピクセル値が２（白ピクセルを表す）の区間それぞれについて、重みマスク（例えば、図１０Ｂのマトリクス１１０２）を参照し、ステップＳ９０５で選択したハッシュテーブルのセットに含まれる、“当該区間の重み×２（白ピクセルのピクセル値）”と同数のハッシュテーブルの当該区間（ピクセル）のハッシュ値を参照する。
【０１１０】
また、第２特徴ベクトル生成部１３４は、例えば、ピクセル値が１（灰色ピクセルを表す）の区間それぞれについて、重みマスクの使用、未使用をランダムに判定する。第２特徴ベクトル生成部１３４は、重みマスクを使用すると判定した場合、ステップＳ９０５で選択したハッシュテーブルに含まれる、“当該区間の重み×１（灰色ピクセルのピクセル値）”と同数のハッシュテーブルの当該区間（ピクセル）のハッシュ値を参照する。
【０１１１】
第２特徴ベクトル生成部１３４は、重みマスクを使用しないと判定した場合、ステップＳ９０５で選択したハッシュテーブルに含まれる、１つのハッシュテーブルの当該区間（ピクセル）のハッシュ値を参照する。また、第２特徴ベクトル生成部１３４は、重みマスクを使用するか否かの選択を行わず、必ず“重み×１”と同数のハッシュテーブルを参照してもよい。
【０１１２】
第２特徴ベクトル生成部１３４は、全区間のハッシュ値のうち、最小のハッシュ値を取得し、第２特徴ベクトルの要素に決定する（Ｓ９０８）。第２特徴ベクトル生成部１３４は、全てのハッシュテーブルを選択したか否かを判定する（Ｓ９０９）。
【０１１３】
第２特徴ベクトル生成部１３４は、全てのハッシュテーブルを選択したと判定した場合（Ｓ９０９：Ｙｅｓ）、ステップＳ９１０に進む。第２特徴ベクトル生成部１３４は、未選択のハッシュテーブルがあると判定した場合（Ｓ９０９：Ｎｏ）、ステップＳ９０５に戻る。
【０１１４】
次に、第２特徴ベクトル生成部１３４は、ステップＳ９０８で取得した最小ハッシュ値それぞれを要素とする第２特徴ベクトルを生成する（Ｓ９１０）。なお、ステップＳ９０４〜Ｓ９０９までの一連の処理は、所定回数実行される。例えば、当該一連の処理がＫ回実行された場合、第２特徴ベクトルはＫ次元乱数ベクトルである。
【０１１５】
次に、第３特徴ベクトル生成部１３５は、例えばステップＳ５０９と同様の方法で、第３特徴ベクトルを生成する（Ｓ９１１）。次に、第４特徴ベクトル生成部１３６は、例えばステップＳ５１０と同様の方法で、第４特徴ベクトルを生成する（Ｓ９１２）。
【０１１６】
次に、第２特徴ベクトル生成部１３４は、全パターンのずらし画像を生成済みであるか否かを判定する（Ｓ９１３）。第２特徴ベクトル生成部１３４は、全パターンのずらし画像を生成済みであると判定した場合（Ｓ９１３：Ｙｅｓ）、認証テンプレート生成処理を終了する。第２特徴ベクトル生成部１３４は、未生成のずらし画像のパターンがあると判定した場合（Ｓ９１３：Ｎｏ）、ステップＳ９０４に戻る。
【０１１７】
認証テンプレート生成処理が終了すると、前述したステップＳ４０３〜Ｓ４０５において、ユーザ端末１０は、生成した全ての第４特徴ベクトルを含む認証テンプレートを生成し、認証サーバ３０に登録する。以上により、生体情報（指静脈パターン）の復元が不可能で、本人間距離、他人間距離を近似的に保持したまま認証可能な認証テンプレートを生成することができる。
【０１１８】
特に、ずらし画像それぞれに対応する認証テンプレートが予め登録されているため、認証時における指静脈パターンの取得時に位置がずれた画像が取得された場合であっても、認証が可能となる。
【０１１９】
なお、前述した例においては、３値画像の各ピクセル値が第１特徴ベクトルの要素であったが、３値画像における所定の大きさの画像領域（例えば、２ピクセル×２ピクセルからなる正方形領域）におけるピクセル値の平均や合計のような統計量等が第１特徴ベクトルの要素であってもよい。この場合、各画像領域がステップＳ５０２における分割後の区間に相当する。また、各画像領域のサイズが異なってもよい。
【０１２０】
＜本人認証処理＞
本実施例の本人認証処理については、ステップＳ８０２で取得した照合対象の指静脈画像（照合画像とも呼ぶ）について、第２特徴ベクトルは予め定められたパターンのずらし画像を生成し、各ずらし画像について第４特徴ベクトルが生成される。第４特徴ベクトルの生成処理は、図９で説明した方法と同様である。
【０１２１】
図１２は、ずらし画像における頻度決定処理の一例を示す説明図である。画像１２０１は、照合画像の全体である。画像１２０２は、縦ｈピクセル、横ｍピクセルの固定サイズの領域を、高さ方向及び幅方向にずらして照合画像と重ね合わせた場合のずらし画像である。このとき、画像１２０２のうち照合画像と重ならずにはみ出した網掛け領域１２１１には、値０をセットする。例えば、３値画像１２０５は、高さｈピクセル、幅ｗピクセルの領域１２０４を、高さ方向に＋１、幅方向に＋２ずらして、照合画像１２０３と重ね合わせることで、３値画像１２０４が得られることを示す。
【０１２２】
なお、本人認証処理におけるずらし画像の全パターンは、認証テンプレート生成処理におけるずらし画像の全パターンと一致する（例えば、いずれも、高さ方向に−２、０、又は＋２ピクセルずつ、かつ幅方向に−４、−２、０、＋２、又は＋４ピクセルずつ、ずらした全１５パターン（３×５パターン））。
【０１２３】
また、本人認証処理におけるずらし画像の全パターンは、認証テンプレート生成処理におけるずらし画像の全パターンの一部であってもよいし、認証テンプレート生成処理におけるずらし画像の全パターンを含んでもよい。
【０１２４】
なお、認証テンプレートの生成時には、ずらし画像が生成されずに（即ちずらしていない元の画像のみから認証テンプレートが生成される）、本人認証処理時にのみずらし画像が生成されてもよい。
【０１２５】
なお、距離計算部１３７は、各ずらし画像に対応する第４特徴ベクトルと、認証テンプレートに含まれる第４特徴ベクトルそれぞれと、を比較してユニークコードの復元を行う。なお、例えば、本人認証処理において生成された第４特徴ベクトルのうち、所定数以上（例えば１以上の）の第４特徴ベクトルによって、認証が成功であれば、本人認証が成功したものと判断される。
【０１２６】
以上の構成により、生体情報（指静脈パターン）の復元が不可能で、本人間距離及び他人間距離を近似的に保持したまま認証可能な認証テンプレートを用いた認証が実行可能となる。
【実施例３】
【０１２７】
以下、実施例１における本人認証を適用した具体例として、ユーザの行動履歴（ＧＰＳ情報による位置履歴）が「個人を特定するための情報」として用いられる例を説明する。主に、実施例１との相違点を説明する。
【０１２８】
＜認証テンプレート生成処理＞
図１３は、本実施例の認証テンプレート生成処理の一例を示すフローチャートである。最初に、第１特徴ベクトル生成部１３１は、読取装置１４から一定期間の行動履歴（ＧＰＳ、ＷｉＦｉ、又は基地局アクセス履歴等）情報を取得する（Ｓ１３０１）。
【０１２９】
次に、特徴量離散化部１３２は、行動履歴を、当該行動を行った時間情報に従い、２４時間を所定間隔の時間帯に分割する（Ｓ１３０２）。例えば、１時間単位で２４時間が分割された場合、行動履歴の時系列が示す各時刻は、０時台、１時台、・・・、２３時台のいずれかに属する。
【０１３０】
なお、前述した例では、０時台、１時台、・・・、２３時台というそれぞれ１時間の期間が２４時間周期で繰り返されるよう時間が分割されているが、当該分割における期間及び周期の長さはこれに限定されない。具体的には、例えば、月曜日、火曜日、・・・、日曜日のように、それぞれ１日の期間が７日周期で繰り返されるよう時間が分割されてもよい。また、例えば、月曜日から金曜日までの５日間と、土曜日から日曜日までの２日間のように、時間を分割する際の期間の長さが異なってもよい。
【０１３１】
次に、特徴量離散化部１３２は、行動履歴を、当該行動を起こした位置情報に従い、地図を所定の大きさの領域に分割する（Ｓ１３０３）。なお、各メッシュの大きさが異なってもよい。例えば、緯度方向及び経度方向の１ｋｍ四方のメッシュ単位で地図が分割された場合、行動履歴の時系列が示す各位置は、当該メッシュ領域のいずれかに属する。
【０１３２】
つまり、行動履歴が示す時系列の各点（時刻及び当該行動を起こした位置で定義される点）は、時空間分割された区間（即ちＸ時台のメッシュ領域Ｙ）のいずれかに属する。次に、特徴量離散化部１３２は、ステップＳ１３０２〜Ｓ１３０３において時空間分割された各区間にハッシュ値を付与するためのハッシュテーブルを生成する（Ｓ１３０４）。ハッシュテーブルの生成方法は、例えば、ステップＳ５０３と同様である。
【０１３３】
図１４Ａは、時空間分割された区間における存否を示す特徴ベクトルの一例である。特徴ベクトル表現１４０１は、ある時間帯においてある位置にユーザがいたか（又は行動を起こしたか）否かを０、１で表す。値が“１”である区間は、ユーザがその時間帯、その場所にいたことを表す。
【０１３４】
図１４Ｂは、時空間分割された区間における頻度を示す第１特徴ベクトルの一例である。特徴ベクトル表現１４０２は、ある時間帯においてある位置にユーザがいた（又は行動を起こした）頻度を表す。特徴ベクトル表現１４０２は、例えば１週間の間にある領域に何度いたかの頻度を表す。
ステップＳ１３０５〜Ｓ１３１１の処理は、それぞれステップＳ５０５〜Ｓ５１１の処理と同様であるため、説明を省略する。
【０１３５】
以上により、生体情報（ユーザの行動履歴）の復元が不可能で、本人間距離及び他人間距離を近似的に保持したまま認証可能な認証テンプレートを生成することができる。
【０１３６】
＜本人認証処理＞
本実施例における本人認証処理は、図７の本人認証処理と同様である。但し、ステップＳ８０２において、個人を特定するための情報として、ステップＳ１３０１〜Ｓ１３０３と同様の方法で、ユーザの行動領域を取得し、行動領域を時空間分割して離散化する点が異なる。
【０１３７】
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることも可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
【０１３８】
また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等の記録装置、又は、ＩＣカード、ＳＤカード、ＤＶＤ等の記録媒体に置くことができる。
【０１３９】
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。
【符号の説明】
【０１４０】
１０  ユーザ端末、１３  ＣＰＵ、１７  メモリ、１８補助記憶装置、２０  業務サーバ、３０  認証サーバ、３３  ＣＰＵ、３７  メモリ、３８補助記憶装置、１３１  第１特徴ベクトル生成部、１３２  特徴量離散化部、１３３  第２特徴ベクトル生成部、１３４  第３特徴ベクトル生成部、１３５  第４特徴ベクトル生成部、１３６  距離計算部、１８１  ハッシュテーブルデータ、１８２  認証テンプレートデータ、３３１  署名検証部、３８１  ハッシュテーブルデータ、３８２  認証テンプレートデータ
【図１】
2020052605.tif 000003
【図２】
2020052605.tif 000004
【図３】
2020052605.tif 000005
【図４】
2020052605.tif 000006
【図５】
2020052605.tif 000007
【図６】
2020052605.tif 000008
【図７】
2020052605.tif 000009
【図８】
2020052605.tif 000010
【図９】
2020052605.tif 000011
【図１０Ａ】
2020052605.tif 000012
【図１０Ｂ】
2020052605.tif 000013
【図１１】
2020052605.tif 000014
【図１２】
2020052605.tif 000015
【図１３】
2020052605.tif 000016
【図１４Ａ】
2020052605.tif 000017
【図１４Ｂ】
2020052605.tif 000018
【図１５Ａ】
2020052605.tif 000019
【図１５Ｂ】
2020052605.tif 000020