(57)【特許請求の範囲】
【請求項１】
ユーザの生体情報を取得する生体センサと、
ユーザごとに、正規のパスワードが付加された正登録生体データと、偽のパスワードが付加されかつ前記正登録生体データと異なる偽登録生体データと、を含む登録ユーザデータを記憶するユーザデータ記憶部と、
前記生体センサによって取得された生体情報に基づく照合生体データと前記登録ユーザデータとの照合を行う照合手段と、
前記照合手段の照合が成功した登録生体データに付加されたパスワードをセキュリティ回路に送信する通信手段と、を備え、
前記セキュリティ回路は、暗号鍵を保持し、前記正規のパスワードの入力によって前記暗号鍵を解放する回路であり、パスワードの入力の失敗回数に上限が設定され、
前記ユーザデータ記憶部に記憶された前記登録ユーザデータのデータ数は、前記セキュリティ回路の失敗回数の上限よりも多いことを特徴とする生体認証装置。
【請求項２】
前記照合手段は、照合が成功した際の登録生体データに付加されたパスワードが前記正規のパスワードと一致しなかった場合に、前記登録生体データを照合対象から外すことを特徴とする請求項１記載の生体認証装置。
【請求項３】
前記生体センサによって取得された生体情報から生体データを生成し、前記生体データにパスワードを付加し、登録生体データとして前記ユーザデータ記憶部に記憶させる登録生体データ作成手段をさらに備えることを特徴とする請求項１または２記載の生体認証装置。
【請求項４】
前記登録生体データ作成手段は、
前記生体センサによって取得された生体情報から生成した生体データに前記正規のパスワードを付加し、前記正登録生体データとして前記ユーザデータ記憶部に記憶させ、
前記生成した生体データにダミーの特徴データを付加し、偽のパスワードを付加し、前記偽登録生体データとして前記ユーザデータ記憶部に記憶させることを特徴とする請求項３記載の生体認証装置。
【請求項５】
前記登録生体データ作成手段は、前記生成した生体データに白および黒の図形をランダムに配置することによって、前記偽登録生体データを作成することを特徴とする請求項４記載の生体認証装置。
【請求項６】
前記セキュリティ回路は、ＩＣカードであり、
前記通信手段は、前記ＩＣカードの情報を読み書き可能なＩＣカードリーダライタであることを特徴とする請求項１〜５のいずれかに記載の生体認証装置。
【請求項７】
ユーザの生体情報を取得する生体情報取得ステップと、
前記生体情報取得ステップによって取得された生体情報に基づく照合生体データと登録ユーザデータとの照合を行う照合ステップと、
前記照合ステップにおける照合が成功した登録生体データに付加されたパスワードをセキュリティ回路に送信する通信ステップと、をコンピュータに実行させ、
前記登録ユーザデータは、ユーザごとに、正規のパスワードが付加された正登録生体データと、偽のパスワードが付加されかつ前記正登録生体データと異なる偽登録生体データと、を含み、
前記セキュリティ回路は、暗号鍵を保持し、前記正規のパスワードの入力によって前記暗号鍵を解放する回路であり、パスワードの入力の失敗回数に上限が設定され、
前記登録ユーザデータのデータ数は、前記セキュリティ回路の失敗回数の上限よりも多いことを特徴とする生体認証プログラム。
【請求項８】
前記照合ステップにおいて、照合が成功した際の登録生体データに付加されたパスワードが前記正規のパスワードと一致しなかった場合に、前記登録生体データを照合対象から外すことを特徴とする請求項７記載の生体認証プログラム。
【請求項９】
前記生体情報取得ステップにおいて取得された生体情報から生体データを生成し、前記生体データにパスワードを付加し、登録生体データとして記憶する登録生体データ作成ステップを、前記コンピュータにさらに実行させることを特徴とする請求項７または８記載の生体認証プログラム。
【請求項１０】
前記登録生体データ作成ステップにおいて、
前記生体情報取得ステップにおいて取得された生体情報から生成した生体データに前記正規のパスワードを付加し、前記正登録生体データとして記憶し、
前記生成した生体データにダミーの特徴データを付加し、偽のパスワードを付加し、前記偽登録生体データとして記憶することを特徴とする請求項９記載の生体認証プログラム。
【請求項１１】
前記登録生体データ作成ステップにおいて、前記生成した生体データに白および黒の図形をランダムに配置することによって、前記偽登録生体データを作成することを特徴とする請求項１０記載の生体認証プログラム。
【請求項１２】
前記セキュリティ回路は、ＩＣカードであり、
前記通信ステップは、前記ＩＣカードの情報を読み書き可能なＩＣカードリーダライタであることを特徴とする請求項７〜１１のいずれかに記載の生体認証プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、生体認証装置および生体認証プログラムに関する。
【背景技術】
【０００２】
指紋、静脈、虹彩等の生体情報（バイオメトリクス情報）を用いて個人認証を行う生体認証システムが開発されている。このシステムは、パスワードを用いたシステムと比較して、推測による不正入手、他人への譲渡、忘却等による利用不能等の問題が発生せず、優れた特徴を持っている。
【０００３】
パスワードは、ＳＨＡ−１等のハッシュ関数で変換することによって、暗号鍵に直接変換することができる。これに対して、生体情報を暗号鍵に直接変換することは難しい。したがって、生体情報は、スタンドアローンの認証において、リバースエンジニアリングに弱いという性質を有している。スタンドアローンの認証においては、登録生体情報および暗号鍵の両者をクライアントサーバに置くことになる。この場合、リバースエンジニアリングによって両者を詐取されるおそれがある。この問題を解決する方法として、特許文献１に開示された方法があげられる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００７−２４９３４９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、生体情報は、環境変化、入力状態等に応じて変化する。そのため、全ての利用者の生体情報を、一意に決まった暗号鍵に変換することは困難である。
【０００６】
本発明は上記課題に鑑みなされたものであり、リバースエンジニアリングを抑制することができる生体認証装置および生体認証プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、明細書開示の生体認証装置は、ユーザの生体情報を取得する生体センサと、ユーザごとに、正規のパスワードが付加された正登録生体データと、偽のパスワードが付加されかつ前記正登録生体データと異なる偽登録生体データと、を含む登録ユーザデータを記憶するユーザデータ記憶部と、前記生体センサによって取得された生体情報に基づく照合生体データと前記登録ユーザデータとの照合を行う照合手段と、前記照合手段の照合が成功した登録生体データに付加されたパスワードをセキュリティ回路に送信する通信手段と、を備え、前記セキュリティ回路は、暗号鍵を保持し、前記正規のパスワードの入力によって前記暗号鍵を解放する回路であり、パスワードの入力の失敗回数に上限が設定され、前記ユーザデータ記憶部に記憶された前記登録ユーザデータのデータ数は、前記セキュリティ回路の失敗回数の上限よりも多いものである。
【０００８】
上記課題を解決するために、明細書開示の生体認証プログラムは、ユーザの生体情報を取得する生体情報取得ステップと、前記生体情報取得ステップによって取得された生体情報に基づく照合生体データと登録ユーザデータとの照合を行う照合ステップと、前記照合ステップにおける照合が成功した登録生体データに付加されたパスワードをセキュリティ回路に送信する通信ステップと、をコンピュータに実行させ、前記登録ユーザデータは、ユーザごとに、正規のパスワードが付加された正登録生体データと、偽のパスワードが付加されかつ前記正登録生体データと異なる偽登録生体データと、を含み、前記セキュリティ回路は、暗号鍵を保持し、前記正規のパスワードの入力によって前記暗号鍵を解放する回路であり、パスワードの入力の失敗回数に上限が設定され、前記登録ユーザデータのデータ数は、前記セキュリティ回路の失敗回数の上限よりも多いものである。
【発明の効果】
【０００９】
明細書開示の生体認証装置および生体認証プログラムによれば、リバースエンジニアリングを抑制することができる。
【図面の簡単な説明】
【００１０】
【図１】比較例１に係る端末装置の全体構成を説明するためのブロック図である。
【図２】比較例２に係る端末装置の全体構成を説明するためのブロック図である。
【図３】実施例１に係る端末装置の全体構成を説明するためのブロック図である。
【図４】指紋認証プログラムの実行によって実現される生体認証装置の機能ブロック図である。
【図５】ユーザ１人分の登録ユーザデータの作成手順について説明するためのフロー図である。
【図６】各ユーザの登録ユーザデータの例を説明するための図である。
【図７】ＣＰＵによる指紋認証プログラムの実行によって実現されるフローチャートの一例を説明するための図である。
【図８】実施例２に係る端末装置の全体構成を説明するためのブロック図である。
【図９】ユーザ１人分の手のひら静脈に関する登録ユーザデータの作成手順について説明するためのフロー図である。
【図１０】実施例３に係る端末装置の全体構成を説明するためのブロック図である。
【図１１】ユーザ１人分の、虹彩に関する登録ユーザデータの作成手順について説明するためのフロー図である。
【図１２】実施例４に係る端末装置の全体構成を説明するためのブロック図である。
【発明を実施するための形態】
【００１１】
（比較例１）
まず、比較例１に係る端末装置２０１について説明する。端末装置２０１は、パスワード認証によって起動する端末装置であり、携帯電話、ノートパソコン等である。図１は、端末装置２０１の全体構成を説明するためのハードウェア構成図である。図１を参照して、端末装置２０１は、ＣＰＵ（中央演算処理装置）２１０、主記憶装置２２０、補助記憶装置２３０、キーボード２４０等を含む。補助記憶装置２３０には、ブートローダ２３１、ＯＳ（オペレーティングシステム）２３２、プログラム２３３、データ２３４等が記憶されている。
【００１２】
ＣＰＵ２１０は、ブートローダ２３１、ＯＳ２３２、プログラム２３３等を実行するための処理装置である。主記憶装置２２０は、ＣＰＵ２１０が使用するＯＳ２３２、プログラム２３３、データ２３４等をロードして一時的に記憶するメモリ等である。補助記憶装置２３０は、不揮発性記憶装置である。ブートローダ２３１は、端末装置の起動時に最初に実行されるプログラムであり、パスワード認証を行う。ＯＳ２３２は、パスワード認証が成功した場合に実行されるオペレーティングシステムである。プログラム２３３は、各種のアプリケーションを起動するためのプログラムである。データ２３４は、ＯＳ２３２、プログラム２３３等の処理の結果である。ＯＳ２３２、プログラム２３３およびデータ２３４は、暗号鍵で暗号化されている。キーボード２４０は、パスワード等を入力するための入力装置である。
【００１３】
次に、端末装置２０１の動作手順について説明する。まず、端末装置２０１の電源がオンされると、補助記憶装置２３０からブートローダ２３１が主記憶装置２２０にロードされる。次に、ＣＰＵ２１０は、ブートローダ２３１を実行する。それにより、端末装置２０１は、入力待ちの状態になる。次に、キーボード２４０を用いてユーザからパスワードが入力される。ＣＰＵ２１０は、入力されたパスワードからＳＨＡ−２５６等を用いてハッシュを生成する。主記憶装置２２０は、生成されたハッシュを暗号鍵として記憶する。それにより、主記憶装置２２０に記憶された暗号鍵を用いて、補助記憶装置２３０のＯＳ２３２の暗号が解かれる。その結果、ＯＳ２３２は主記憶装置２２０にロードされる。それにより、ＣＰＵ２１０による実行は、主記憶装置２２０にロードされたＯＳ２３２に移る。以降、ＯＳ２３２も、補助記憶装置２３０との入出力に、ハッシュ値を用いて暗号化を行う。
【００１４】
以上のような暗号化を用いた入出力は、遺失や盗難の発生率が高い携帯電話、ノートパソコン等の端末装置にとって重要な機能である。しかしながら、パスワードとして推測されやすい文字列（例えば、１２３４５６）が設定されることが多いため、パスワード認証は信頼性に欠ける。
【００１５】
（比較例２）
次に、比較例２に係る端末装置２０２について説明する。端末装置２０２は、指紋認証によって起動する。図２は、端末装置２０２の全体構成を説明するためのハードウェア構成図である。図２を参照して、端末装置２０２は、ＣＰＵ（中央演算処理装置）２１０、主記憶装置２２０、補助記憶装置２３０、キーボード２４０、指紋センサ２５０等を含む。比較例１と異なり、補助記憶装置２３０には、ブートローダ２３１、ＯＳ（オペレーティングシステム）２３２、プログラム２３３、データ２３４、指紋認証プログラム２３５、登録指紋データ２３６等が記憶されている。登録指紋データ２３６は、あらかじめ登録されたユーザの指紋データである。
【００１６】
次に、端末装置２０２の動作手順について説明する。まず、端末装置２０２の電源がオンされると、補助記憶装置２３０からブートローダ２３１が主記憶装置２２０にコピーされる。次に、ＣＰＵ２１０は、ブートローダ２３１を実行する。ブートローダの実行により、指紋認証プログラム２３５は、主記憶装置２２０にロードされる。それにより、ＣＰＵ２１０は、指紋認証プログラム２３５を実行する。指紋認証プログラム２３５の実行により、端末装置２０２は、指紋画像入力待ちの状態になる。
【００１７】
次に、ユーザが指紋センサ２５０に指を押印することによって、指紋センサ２５０はユーザの指紋画像を取得する。ＣＰＵ２１０は、取得された指紋画像から照合指紋データを生成する。ＣＰＵ２１０は、照合指紋データと登録指紋データ２３６とを比較し、両者が一致した場合に暗号鍵を主記憶装置２２０に保存する。次に、主記憶装置２２０に保存された暗号鍵を用いて、補助記憶装置２３０のＯＳ２３２の暗号が解かれる。それにより、ＯＳ２３２は主記憶装置２２０にロードされる。その結果、ＣＰＵ２１０による実行は、主記憶装置２２０にロードされたＯＳ２３２に移る。
【００１８】
以上のように、指紋センサのような生体情報を取得するセンサを用いることによって、パスワード入力を行わなくても、確かな認証で端末装置の起動、ログイン等が可能になる。このように、比較例２では、脆弱なパスワードをユーザに使用される問題は解決される。しかしながら、生体情報を用いた認証は、完全ではなく、リバースエンジニアリングによる暗号鍵の詐取の問題を生じる。
【００１９】
具体的には、登録指紋データ２３６および暗号鍵を安全に暗号化して補助記憶装置２３０に記憶することが困難である問題が生じる。登録指紋データ２３６および暗号鍵は、何らかの暗号鍵を用いて補助記憶装置２３０に記憶させることは可能である。しかしながら、指紋の照合を行うためには、登録指紋データ２３６を複合化する必要がある。そのためには、登録指紋データ２３６の複合化用の暗号鍵をブートローダ２３１中に含まれる必要がある。この複合化用の暗号鍵をリバースエンジニアリングされると、補助記憶装置２３０内のＯＳ複合化用の暗号鍵を容易に詐取されてしまうのである。パスワードを用いた方式では、暗号鍵をパスワードから直接生成することができるため、補助記憶装置２３０にＯＳ複合化用の鍵を記憶させる必要がない。
【００２０】
この問題を解決するための方法の１つとして、別に認証サーバを用意し、認証用の暗号鍵およびＯＳ復号化用の暗号鍵を認証サーバで保管する方法がある。この方法は、デスクトップコンピュータなどの、据え置いて使用して有線ＬＡＮで通信するコンピュータでは有効である。しかしながら、ノートＰＣなど、携帯して使用する機器では、無線ＬＡＮや携帯電話などの無線通信が必要になる。特に、ＯＳへのログインを目的とする認証では、使用可能な場所の多い携帯電話が好適であるが、契約費用や通信費用が高くなる。したがって、全てのノートＰＣに携帯電話を設置することは費用的に困難である。
【００２１】
また、照合生体データと登録生体データとの類似度を検出するのではなく、生体情報を暗号鍵に直接変換する方法もあげられる。また、類似の方法として、登録生体データと照合生体データとの近似した部分を抽出し、それを暗号鍵とする方法もあげられる。しかしながら、指紋を代表とする生体情報は、環境変化、入力状態等に応じて変化する。例えば、荒れた指から採取される不鮮明な指紋などは、再現性が低い。そのため、全ての利用者の生体情報を、一意に決まった暗号鍵に変換することは非常に困難である。
【００２２】
また、一般的な生体認証では、誤照合を1万分の1程度に設定して照合する。これは、近似度を許容して揺らぎを排除して数値化すると、特徴情報の近似部分は１６ｂｉｔ以下になるということである。１６ｂｉｔの情報では、暗号鍵として不十分である。しかしながら、指紋等の各種生体情報を取得するセンサは、すでに多くの端末装置で採用されている。指紋センサの性能が向上し、その他の問題が解決されていくうちに、リバースエンジニアリングの問題は、相対的に大きくなっている。以下の実施例においては、リバースエンジニアリングを抑制することができる生体認証装置および生体認証プログラムについて説明する。
【実施例１】
【００２３】
図３は、実施例１に係る認証装置が組み込まれた端末装置１０１の全体構成を説明するためのハードウェア構成図である。端末装置１０１は、指紋認証によって起動する端末装置、指紋認証によってログイン可能となる端末装置等であり、携帯電話、ノートパソコン等である。図３を参照して、端末装置１０１は、ＣＰＵ（中央演算処理装置）１１０、主記憶装置１２０、補助記憶装置１３０、ＴＰＭ（トラステッドプラットフォームモジュール）１４０、キーボード１５０、指紋センサ１６０等を含む。ＣＰＵ１１０、主記憶装置１２０、補助記憶装置１３０、ＴＰＭ１４０、キーボード１５０、および指紋センサ１６０は、システムバス１７０によって互いに接続されている。補助記憶装置１３０には、ブートローダ１３１、指紋認証プログラム（生体認証プログラム）１３２、ユーザデータ群１３３、ＯＳ１３４、プログラム１３５、一般データ１３６等が記憶されている。
【００２４】
ＣＰＵ１１０は、ブートローダ１３１、指紋認証プログラム１３２、ＯＳ１３４、プログラム１３５等を実行するための処理装置である。主記憶装置１２０は、ＣＰＵ１１０が使用するプログラム、データ等をロードして一時的に記憶するＲＡＭ（ランダムアクセスメモリ）等のメモリである。補助記憶装置１３０は、ＲＯＭ（リードオンリメモリ）、ＨＤＤ（ハードディスクドライブ）等の不揮発性メモリである。キーボード１５０は、ユーザＩＤ等を入力するための入力装置である。指紋センサ１６０は、押印された指の指紋画像を採取するセンサである。
【００２５】
ＴＰＭ１４０は、面実装のフラッシュロム（ＦＬＡＳＨ  ＲＯＭ）に似たパッケージであり、マザーボードに直接実装されている。ＴＰＭ１４０の内部には、プロセッサ、メモリ、不揮発メモリ、時計、タイマ等の装置が組み込まれている。ＴＰＭ１４０内部の不揮発メモリに格納された情報は、パスワード等でロックすることが可能である。この格納された情報を参照するには、パスワードの入力が必要である。また、ＴＰＭ１４０は、分解での不正な読み込みに対しては、自己破壊を起こす。その結果、格納された情報は読み出せなくなる。すなわち、ＴＰＭ１４０は、高い耐タンパ姓を有している。
【００２６】
このＴＰＭ１４０にアクセスする手段として、例えばＰＨＣＳ＃１１ライブラリを用いることができる。このＰＫＣＳ＃１１を用いた、ＴＰＭアクセスの例を以下に説明する。
【００２７】
まず、パスワード登録時には、
管理者が暗号鍵および正しいパスワードを用意する
（２）ＴＰＭ１４０を初期化する
（３）Ｃ＿Ｌｏｇｉｎ関数でＴＰＭ１４０との通信を開始する（初期化状態なのでパスワード不要）
（４）Ｃ＿ＳｅｔＰＩＮ関数で正しいパスワードをＴＰＭ１４０に設定する
（５）Ｃ＿ＳｅｔＡｔｔｒｉｂｕｔｅＶａｌｕｅ関数で暗号鍵をＴＰＭ１４０に格納する
（６）Ｃ＿Ｌｏｇｏｕｔ関数でＴＰＭ１４０との通信を完了する
以上の手順により、指紋登録時に正しい生体情報と一緒に正しいパスワードが登録される。
【００２８】
パスワード照合時には、
（１）指紋認証で得た、正しいか正しくないか不明のパスワードを用意する
（２）Ｃ＿Ｌｏｇｉｎ関数に（１）のパスワードでＴＰＭ１４０と通信を開始する
（３）パスワードが間違っている場合は（５）へ移行する
（４）Ｃ＿ＧｅｔＡｔｔｒｉｂｕｔｅＶａｌｕｅ関数で暗号鍵を取得する
（５）Ｃ＿Ｌｏｇｏｕｔ関数でＴＰＭ１４０との通信を完了する
以上の手順により、パスワードが正しければ暗号鍵を取得することができ、パスワードが間違っていれば暗号鍵を取得することができない。
【００２９】
ＴＰＭ１４０には、内蔵している不揮発メモリに、ＰＩＮの失敗回数を記録する機能が装備されている。ＴＰＭ１４０には、失敗回数に上限（例えば、１０回〜２０回）が設定されている。パスワード入力の失敗回数が上限を超えると、ＴＰＭ１４０は、それ以上のパスワードの受け付けを拒否し、ロックアウトの状態になる。このロックアウトを解除するためには、管理者等が保有するマスターパスワードが必要となる。このように失敗回数に上限が設定されていることから、ＴＰＭ１４０は、総当り攻撃を防ぐことができる。
【００３０】
ブートローダ１３１は、端末装置２０１の起動時に最初に実行されるプログラムである。ブートローダ１３１は、端末装置２０１の起動時に指紋認証プログラム１３２を主記憶装置１２０にロードし、指紋認証においてＴＰＭ１４０から暗号鍵の取得に成功した場合にＯＳ１３４を主記憶装置１２０にロードする。指紋認証プログラム１３２は、端末装置２０１の起動時またはログイン時にＣＰＵ１１０によって実行されるプログラムであり、指紋認証を実行する。ユーザデータ群１３３は、各ユーザの登録ユーザデータを含む。ＯＳ１３４は、指紋認証が成功した場合に実行されるオペレーティングシステムである。プログラム１３５は、各種のアプリケーションを起動するためのプログラム、その他の一般的な事務処理を行うプログラムである。一般データ１４２は、プログラム１３５の実行で生じるデータである。機密保持のため、ＯＳ１３４、プログラム１３５および一般データ１３６は、ＴＰＭ１４０に格納された暗号鍵で暗号化されている。
【００３１】
端末装置１０１の運用前に、ＴＰＭ１４０の初期化、ＴＰＭ１４０の暗号鍵の格納、および登録ユーザデータの作成が行われる。ＴＰＭ１４０の初期化およびＴＰＭ１４０の暗号鍵の格納は、上述したＰＫＣＳ＃１１の手順で行うことができる。この初期化時に、一例として、乱数で生成した２５６ｂｉｔの値を暗号鍵とする。また、パスワードが設定された暗号鍵をＴＰＭ１４０に格納するため、パスワードも生成しておく。このパスワードは、一般的なアルファベット、数字等で構成する必要はなく、連想できない大きな値であればよい。本実施例においては、パスワードとして、２５６ｂｉｔの値を用いる。
【００３２】
図４は、ＣＰＵ１１０による指紋認証プログラム１３２の実行によって、端末装置１０１に実現される生体認証装置１００の機能ブロック図である。図４を参照して、生体認証装置１００は、生体センサ１０、照合手段２０、登録データ作成手段３０、ユーザデータ記憶部４０、および通信手段５０を含む。生体センサ１０は図３の指紋センサ１６０に対応し、ユーザデータ記憶部４０は図３のユーザデータ群１３３に対応する。
【００３３】
次に、登録ユーザデータの作成手順について説明する。図５は、ユーザ１人分の登録ユーザデータの作成手順について説明するためのフロー図である。まず、生体センサ１０は、ユーザの指紋画像を採取する（ステップＳ１）。採取された指紋画像は、主記憶装置１２０に格納される。次に、登録データ作成手段３０は、格納された指紋画像を主記憶装置１２０内の別の場所にコピーする（ステップＳ２）。
【００３４】
登録データ作成手段３０は、主記憶装置１２０内でコピーされた指紋画像に対して、生体情報である指紋特徴点データ抽出処理を行い、正常な登録指紋データを生成する（ステップＳ３）。次に、登録データ作成手段３０は、ＴＰＭ１４０に設定する正規のパスワードを正常な登録指紋データに付加し、正登録データを生成する（ステップＳ４）。次に、登録データ作成手段３０は、ステップＳ１の指紋画像を主記憶装置１２０内のさらに別の場所にコピーする。登録データ作成手段３０は、コピーされた指紋画像に、ダミーの特徴データを付加する。具体的には、登録データ作成手段３０は、コピーされた指紋画像に、隆線の太さ程度を一辺とする、黒の正方形および白の正方形を１０個程度ずつ、ランダムの位置に描画する（ステップＳ５）。
【００３５】
次に、登録データ作成手段３０は、正方形を付加された指紋画像に対して、指紋特徴点データ抽出処理を行う。付加された正方形の影響で、元の指紋画像と一致しない偽の登録指紋データＮｏ．１が生成される（ステップＳ６）。次に、登録データ作成手段３０は、偽の登録指紋データに、乱数で生成した偽のパスワードを付加し、偽登録データＮｏ．１が生成される（ステップＳ７）。ステップＳ５〜ステップＳ７が例えば９９９９回繰り返されることによって、偽登録データが９９９９個生成される（ステップＳ８〜ステップＳ１０）。
【００３６】
登録データ作成手段３０は、１個の正登録データと９９９９個の偽登録データとをシャッフルする。このシャッフルされた登録データ群を１組の登録ユーザデータとし、この登録ユーザデータにユーザＩＤを付加する（ステップＳ１１）。つまり、１つのＩＤで管理される登録ユーザデータの中には、正しいパスワードが付加された正登録データ１個と、偽のパスワードが付加された９９９９個の偽登録データが含まれている。登録ユーザデータは、ユーザデータ記憶部４０に記憶される。
【００３７】
図６は、各ユーザの登録ユーザデータの例を説明するための図である。図６を参照して、ユーザＩＤ１の「ｙａｍａｄａ」には、それぞれ付属パスワードが付加された登録指データが含まれている。この登録指データのうちどれが正登録指データであるか判別することはできない。
【００３８】
以上の手順により、正登録指データが何番目の登録指データであるかわからなくなる。したがって、この登録ユーザデータをリバースエンジニアリングしても、どの登録指データが正登録指データであるかわからないため、正登録指データに付加されたパスワードを詐取することが困難になる。なお、総当り攻撃による詐取は、ＴＰＭ１４０の機能によって回避される。以下、指紋認証について説明する。
【００３９】
図７は、ＣＰＵ１１０による指紋認証プログラム１３２の実行によって実現されるフローチャートの一例を説明するための図である。なお、指紋認証プログラム１３２は、全てのユーザの登録ユーザデータがユーザデータ記憶部４０に記憶された状態で実行される。
【００４０】
図７を参照して、照合手段２０は、ユーザによってキーボード１５０に入力されたユーザＩＤを取得する（ステップＳ２１）。次に、照合手段２０は、生体センサ１０が採取した指紋画像を取得する（ステップＳ２２）。次に、照合手段２０は、ステップＳ２１で取得した指紋画像から照合指紋データを生成する（ステップＳ２３）。照合指紋データとは、指紋画像の特徴点を抽出することによって得られるデータであり、登録指紋データとの照合処理において用いられる。次に、照合手段２０は、ステップＳ２１で取得したユーザＩＤと一致する登録ユーザデータを検索する（ステップＳ２４）。
【００４１】
次に、照合手段２０は、各登録ユーザデータに、ユーザＩＤと一致する登録ユーザデータが有るか否かを判定する（ステップＳ２５）。ステップＳ２５において「Ｎｏ」と判定された場合、照合手段２０は、照合が失敗したと判定する（ステップＳ２９）。その後、フローチャートの実行が終了する。ステップＳ２５において「Ｙｅｓ」と判定された場合、照合手段２０は、ユーザＩＤが一致する登録ユーザデータに含まれる全ての登録指紋データを照合対象とするため、当該登録指紋データを読み込む（ステップＳ２６）。それにより、１つの照合指紋データを複数の登録指紋データとの照合を行う、１対Ｎの照合が行われる。
【００４２】
次に、照合手段２０は、照合指紋データと全ての登録指紋データとの近似度を計算して、照合処理を行う（ステップＳ２７）。照合手段２０は、登録指紋データの中に、照合指紋データと近似する登録指紋データが有るか否かを判定する（ステップＳ２８）。ステップＳ２８において「Ｎｏ」と判定された場合、照合手段２０は、照合が失敗したと判定する（ステップＳ２９）。その後、フローチャートの実行が終了する。
【００４３】
ステップＳ２８において「Ｙｅｓ」と判定された場合、通信手段５０は、照合指紋データと近似する登録指紋データに付加されたパスワードをＴＰＭ１４０に送信し、暗号鍵の取得を試みる（ステップＳ３０）。照合手段２０は、ステップＳ３０の結果、暗号鍵の取得に成功したか否かを判定する（ステップＳ３１）。ステップＳ３１において「Ｎｏ」と判定された場合、通信手段５０は、ＴＰＭ１４０から連続失敗回数を取得する（ステップＳ３２）。なお、初期状態では、連続失敗回数はゼロである。
【００４４】
次に、照合手段２０は、ステップＳ３３で取得した失敗回数が所定値（例えば、５回）に到達したか否かを判定する（ステップＳ３３）。ステップＳ３３において「Ｎｏ」と判定された場合、照合手段２０は、今回失敗した登録指紋データを１対Ｎ照合対象から外す（ステップＳ３４）。その後、照合手段２０は、ステップＳ２７からの処理を繰り返す。この場合、指紋画像採取の際の指の歪み等による偶然の一致を回避することができる。
【００４５】
ステップＳ３１において「Ｙｅｓ」と判定された場合、照合手段２０は、ＴＰＭ１４０内の連続失敗回数のカウンタをリセットして、ゼロに設定しなおす（ステップＳ３５）。次に、ＣＰＵ１１０は、暗号化されたファイル（ＯＳ１３４、プログラム１３５等）の解凍を開始する（ステップＳ３６）。それにより、端末装置１０１の起動が開始する、または、端末装置１０１へのログインが完了する。その後、フローチャートの実行が終了する。
【００４６】
ステップＳ３３において「Ｙｅｓ」と判定された場合、失敗回数が上限を超えているため、ＴＰＭ１４０がロック状態に移行している。そこで、照合手段２０は、照合が失敗したと判定する（ステップＳ２９）。その後、フローチャートの実行が終了する。
【００４７】
本実施例に係る生体認証装置１００によれば、各ユーザの登録ユーザデータに偽の登録指紋データを含ませることにより、正しいパスワードを偽のパスワードの中に紛れ込ませることができる。また、偽の登録指紋データには偽の特徴点が付加されているため、正登録指紋データは、ユーザ本人の照合指紋データとしか一致しない。以上のことから、パスワードの詐取を抑制することができる。さらに、ＴＰＭ１４０を用いて失敗回数に上限を設定することができるため、総当り攻撃によるパスワードの詐取を抑制することができる。したがって、リバースエンジニアリングを抑制することができる。
【００４８】
なお、まれに、指の歪み等に起因して、偽の登録指紋データと照合指紋データとが一致してしまう場合もあり得る。しかしながら、この場合、誤照合した登録指紋データが照合対象から外されて照合が行われる。それにより、次回の照合では、照合指紋データと正登録指紋データとが高い確率で一致する。したがって、ユーザの不便を回避することができる。さらに、リバースエンジニアリングでは、登録指紋データを詐取することは可能であるが、どれが正しい登録指紋データか判別することは、困難である。特に、マニューシャ方式の認証を行っている場合は、リバースエンジニアリングで正しい登録指紋データを判別することは、非常に困難である。
【実施例２】
【００４９】
図８は、実施例２に係る端末装置１０２の全体構成を説明するためのハードウェア構成図である。端末装置１０２が実施例１に係る端末装置１０１と異なる点は、指紋センサ１６０の代わりに手のひら静脈センサ１６０ａが設けられ、指紋認証プログラム１３２の代わりに静脈認証プログラム１３２ａが備わっている点である。手のひら静脈センサ１６０ａは、ユーザの手のひらの静脈画像を採取することによって、手のひらの内部にある静脈の位置を読み取るセンサである。手のひら静脈センサ１６０ａを用いれば、外界と接していない静脈が検出されるため、使い勝手に不自由するユーザが少ない。したがって、安定した認証を実現することができる。なお、本実施例においては、静脈認証プログラム１３２ａの実行によって、図４と同様の生体認証装置が実現される。
【００５０】
次に、手のひら静脈に関する登録ユーザデータの作成手順について説明する。図９は、ユーザ１人分の手のひら静脈に関する登録ユーザデータの作成手順について説明するためのフロー図である。まず、生体センサ１０は、ユーザの手のひらの静脈画像を採取する（ステップＳ４１）。登録データ作成手段３０は、採取された静脈画像を主記憶装置１２０に格納する。次に、登録データ作成手段３０は、格納された静脈画像を主記憶装置１２０内の別の場所にコピーする（ステップＳ４２）。
【００５１】
登録データ作成手段３０は、主記憶装置１２０内でコピーされた静脈画像に対して、生体情報である静脈特徴抽出処理を行い、正常な登録静脈データを生成する（ステップＳ４３）。なお、静脈認証として、指紋認証と同様に、特徴点方式、パターンマッチング方式等の多種の照合方式を採用することができる。本実施例においては、一例として、パターンマッチング照合方式について説明する。したがって、本実施例に係る生体情報は、撮影した静脈画像を二値化（白黒化）したものである。
【００５２】
次に、登録データ作成手段３０は、ＴＰＭ１４０に設定する正規のパスワードを正常な登録静脈データに付加し、正登録静脈データを生成する（ステップＳ４４）。次に、登録データ作成手段３０は、ステップＳ４１の静脈画像を主記憶装置１２０内のさらに別の場所にコピーする。登録データ作成手段３０は、コピーされた静脈画像に、ダミーの特徴データを付加する。具体的には、登録データ作成手段３０は、コピーされた静脈画像に、太さ１ｍｍ〜２ｍｍ程度かつ長さ３ｃｍ程度の白傷線および黒傷線を、５本程度ずつランダムな位置に配置する（ステップＳ４５）。それにより、静脈の連結を改変することができる。
【００５３】
次に、登録データ作成手段３０は、白傷線および黒傷線を付加された静脈画像に対して、静脈特徴抽出処理を行う。加えた線の影響で、元の静脈画像と一致しない偽の登録静脈データＮｏ．１が生成される（ステップＳ４６）。次に、登録データ作成手段３０は、偽の登録静脈データに、乱数で生成した偽のパスワードを付加し、偽登録データＮｏ．１が生成される（ステップＳ４７）。ステップＳ４５〜ステップＳ４７が例えば９９９９回繰り返されることによって、偽登録データが９９９９個生成される（ステップＳ４８〜ステップＳ５０）。
【００５４】
登録データ作成手段３０は、１個の正登録データと９９９９個の偽登録データとをシャッフルする。このシャッフルされた登録データ群を１組の登録ユーザデータとし、この登録ユーザデータにユーザＩＤを付加する（ステップＳ５１）。つまり、１つのＩＤで管理される登録ユーザデータの中には、正しいパスワードが付加された正登録データ１個と、偽のパスワードが付加された９９９９個の偽登録データが含まれている。登録ユーザデータは、ユーザデータ記憶部４０に記憶される。
【００５５】
以上の手順により、正登録データが何番目の登録データであるかわからなくなる。したがって、この登録ユーザデータをリバースエンジニアリングしても、どの登録データが正登録データであるかわからないため、正登録データに付加されたパスワードを詐取することが困難になる。なお、総当り攻撃による詐取は、ＴＰＭ１４０の機能によって回避される。手のひら静脈認証は、静脈認証プログラム１３２ａに従って行われる。手のひら静脈認証は、図７で説明した手順と同様の手順により行うことができる。
【実施例３】
【００５６】
図１０は、実施例３に係る端末装置１０３の全体構成を説明するためのハードウェア構成図である。端末装置１０３が実施例１に係る端末装置１０１と異なる点は、指紋センサ１６０の代わりに虹彩センサ１６０ｂが設けられ、指紋認証プログラム１３２の代わりに虹彩認証プログラム１３２ｂが備わっている点である。虹彩センサ１６０ｂは、ユーザの目の虹彩画像を採取するセンサである。なお、本実施例においては、虹彩認証プログラム１３２ｂの実行によって、図４と同様の生体認証装置が実現される。
【００５７】
次に、虹彩に関する登録ユーザデータの作成手順について説明する。図１１は、ユーザ１人分の、虹彩に関する登録ユーザデータの作成手順について説明するためのフロー図である。まず、生体センサ１０は、ユーザの目の虹彩画像を採取する（ステップＳ６１）。登録データ作成手段３０は、採取された虹彩画像を主記憶装置１２０に格納する。次に、登録データ作成手段３０は、格納された虹彩画像を主記憶装置１２０内の別の場所にコピーする（ステップＳ６２）。
【００５８】
登録データ作成手段３０は、主記憶装置１２０内でコピーされた虹彩画像に対して、生体情報である虹彩特徴抽出処理を行い、正常な登録虹彩データを生成する（ステップＳ６３）。なお、虹彩認証として、指紋認証と同様に、特徴点方式、パターンマッチング方式等の多種の照合方式を採用することができる。本実施例において、一例として、パターンマッチング照合方式について説明する。したがって、本実施例に係る生体情報は、撮影した虹彩画像を二値化（白黒化）したものである。
【００５９】
次に、登録データ作成手段３０は、ＴＰＭ１４０に設定する正規のパスワードを正常な登録虹彩データに付加し、正登録データを生成する（ステップＳ６４）。次に、登録データ作成手段３０は、ステップＳ６１の虹彩画像を主記憶装置１２０内のさらに別の場所にコピーする。ＣＰＵ１１０は、コピーされた虹彩画像に、ダミーの特徴データを付加する。具体的には、登録データ作成手段３０は、コピーされた虹彩画像に、太さ１ｍｍ〜２ｍｍ程度かつ長さ３ｃｍ程度の白傷線および黒傷線を、５本程度ずつランダムな位置に配置する（ステップＳ６５）。それにより、偽の虹彩を作成することができる。なお、黒傷線は、黒目と重複しないように配置することが好ましい。
【００６０】
次に、登録データ作成手段３０は、白傷線および黒傷線を付加された虹彩画像に対して、虹彩特徴抽出処理を行う。加えた線の影響で、元の虹彩画像と一致しない偽の登録虹彩データＮｏ．１が生成される（ステップＳ６６）。偽の登録虹彩データに、乱数で生成した偽のパスワードを付加し、偽登録データＮｏ．１が生成される（ステップＳ６７）。ステップＳ６５〜ステップＳ６７が例えば９９９９回繰り返されることによって、偽登録データが９９９９個生成される（ステップＳ６８〜ステップＳ７０）。
【００６１】
登録データ作成手段３０は、１個の正登録データと９９９９個の偽登録データとをシャッフルする。このシャッフルされた登録データ群を１組の登録ユーザデータとし、この登録ユーザデータにユーザＩＤを付加する（ステップＳ７１）。つまり、１つのＩＤで管理される登録ユーザデータの中には、正しいパスワードが付加された正登録データ１個と、偽のパスワードが付加された９９９９個の偽登録データが含まれている。登録ユーザデータは、ユーザデータ記憶部４０に記憶される。
【００６２】
以上の手順により、正登録データが何番目の登録データであるかわからなくなる。したがって、この登録ユーザデータをリバースエンジニアリングしても、どの登録データが正登録データであるかわからないため、正登録データに付加されたパスワードを詐取することが困難になる。なお、総当り攻撃による詐取は、ＴＰＭ１４０の機能によって回避される。虹彩認証は、虹彩認証プログラム１３２ｂに従って行われる。虹彩認証は、図７で説明した手順と同様の手順により行うことができる。なお、虹彩認証においては誤照合率が低くなるため、偽登録データを用意しても誤照合されなくなる。したがって、不正アクセス者が偶然にパスワードを発見しても、不正に情報を詐取される確立を小さくすることができる。
【実施例４】
【００６３】
図１２は、実施例４に係る端末装置１０４の全体構成を説明するためのハードウェア構成図である。図１２を参照して、端末装置１０４が実施例１に係る端末装置１０１と異なる点は、ＴＰＭ１４０の代わりに、ＩＣカードリーダライタ１４０ａが設けられている点である。ＩＣカードリーダライタ１４０ａは、ＩＣカード１４０ｂの情報の読み書きをするための装置である。本実施例においては、ＩＣカードリーダライタ１４０ａが、図４の通信手段５０に対応する。
【００６４】
通常のＩＣカードは、数百バイトから数千バイトの記憶容量を持ち、情報の読み書きに対してパスワードを設定することができる。パスワードの設定されたＩＣカードは、情報の読み書きの前にパスワード認証を要求し、認証に成功するまで情報の読み書きを禁止する。このＩＣカードも、パスワード入力の失敗回数を計測可能であり、失敗回数が上限を超えた場合にはロック状態となる。また、ＩＣカードの制御ライブラリとして、ＴＰＭモジュールと同様のＰＫＣＳ＃１１等を用いることができる。
【００６５】
以上のことから、ＩＣカードリーダライタ１４０ａおよびＩＣカード１４０ｂは、実施例１に係るＴＰＭ１４０と同等の機能を実現する。さらに、ＩＣカード１４０ｂは端末装置１０４から取り外して保存・管理することができる。したがって、生体認証および物理トークンの２つの要素による認証を行うことができる。
【００６６】
なお、上記各例では、セキュリティ回路としてＴＰＭモジュールおよびＩＣカードについて説明したが、それに限られない。正規のパスワード入力によって暗号鍵を解放しかつパスワードの入力失敗回数に上限が設定されたセキュリティ回路であれば、その他のものでも用いることができる。また、上記各例では、認証装置および認証プログラムが適用される対象として、携帯電話、ノートＰＣ等の端末装置について説明したが、それに限られない。例えば、デスクトップパソコン等の非携帯装置に適用してもよい。また、端末装置と通信可能なサーバに登録ユーザデータが記憶されていてもよい。
【００６７】
以上、本発明の実施例について詳述したが、本発明は係る特定の実施例に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【００６８】
１０１〜１０４  端末装置
１１０  ＣＰＵ
１２０  主記憶装置
１３０  補助記憶装置
１３１  ブートローダ
１３２  指紋認証プログラム
１３２ａ  静脈認証プログラム
１３２ｂ  虹彩認証プログラム
１３３  ユーザデータ群
１４０  ＴＰＭ
１５０  キーボード
１６０  指紋センサ
１６０ａ  手のひら静脈センサ
１６０ｂ  虹彩センサ
【図１】
0005589608.tif 000002
【図２】
0005589608.tif 000003
【図３】
0005589608.tif 000004
【図４】
0005589608.tif 000005
【図５】
0005589608.tif 000006
【図６】
0005589608.tif 000007
【図７】
0005589608.tif 000008
【図８】
0005589608.tif 000009
【図９】
0005589608.tif 000010
【図１０】
0005589608.tif 000011
【図１１】
0005589608.tif 000012
【図１２】
0005589608.tif 000013