<第1の実施形態>
以下、図面にしたがって第1の実施形態にかかる認証システムを説明する。図1は、第1の実施形態における認証システム1の構成の一例を示す図である。
認証システム1は、生体情報を取得し、取得した生体情報と登録された生体情報を比較照合して、本人認証を行うシステムである。認証システム1は、PC(Personal Computer)でのログイン処理や入退室管理等での本人認証に使用される。なお、認証システム1は、ATM(Automatic Teller Machine)、POS(Point of sale system)端末、各種決済等の本人確認において使用することもできる。以下では、生体認証として、手のひら静脈認証の例を説明する。なお、生体認証として、虹彩、指紋、顔形なども使用することができる。認証システム1は、クライアント装置2、サーバ装置3および読み取りセンサ4を有する。
読み取りセンサ4は、手のひら撮像装置で構成される。読み取りセンサ4は、赤外センサ(CMOS(Complementary MOS)センサ)と、集光レンズと、距離センサとが設けられ、この周囲に、複数の近赤外線発光素子(LED:light emitting diode)が設けられる。例えば、周囲8ケ所に、近赤外線発光素子が設けられ、近赤外線を上方に発光する。CMOSセンサは、発光した光の反射光を受光する。読み取りセンサ4は、受光した撮像画像から抽出された手のひらの静脈パターンを生体情報として読み取る。
クライアント装置2は、読み取りセンサ4が読み取ったユーザの生体情報およびユーザのパスワードの入力を受け付けて、サーバ装置3と通信して、生体認証を行う装置である。クライアント装置2は、例えば、ワークステーション、サーバ、PC等のコンピュータの機能を備えており、認証方法に基づく後述する認証処理を実行する。クライアント装置2の詳細については後述する。また、本実施形態の認証システム1は、携帯通信端末に内蔵された機能としてのクライアント装置2および読み取りセンサ4で構成されることも可能である。
図2は、第1の実施形態における認証システムによる生体認証方法の概要を示す図である。はじめに、ユーザの認証情報の登録時の処理の概要について説明する。クライアント装置2は、ユーザからパスワード41aの入力を受け付けると(S11)、受け付けたパスワード41aから変換情報42aを生成する(S12)。変換情報42aを生成する方法については後述する。また、クライアント装置2は、ユーザの認証情報の登録時にユーザを一意に識別できる識別情報を受け付ける。例えば、クライアント装置2は、識別情報として口座情報を受け付ける。
クライアント装置2は、ユーザから生体情報43aの入力を受け付ける(S13)。クライアント装置2は、生成した変換情報42aに基づいてクライアント装置2が受け付けた生体情報43aを特徴コード化して、登録用の特徴コード化生体情報44aを生成する(S14-1,S14-2)。特徴コード化生体情報44aを生成する方法については後述する。
クライアント装置2は、生成した変換情報42aに基づいてチェックコード45aを生成する(S15)。チェックコード45aを生成する方法については後述する。クライアント装置2は、特徴コード化生体情報44aと生成されたチェックコード45aとを合成して登録データ46aを生成する(S16-1,S16-2)。クライアント装置2は、生成した登録データ46aをユーザの口座情報とともにサーバ装置3へ送信する(S17)。
サーバ装置3は、クライアント装置2から送信された登録データ46aに含まれる特徴コード化生体情報44aと、チェックコード45aと、をユーザの口座情報に対応付けて認証用データ47として登録する(S18)。
次に、ユーザの認証時の処理の概要について説明する。クライアント装置2は、ユーザからパスワード41bの入力を受け付けると(S21)、受け付けたパスワード41bから変換情報42bを生成する(S22)。変換情報42bを生成する方法については後述する。また、クライアント装置2は、ユーザの認証時に識別情報を受け付ける。例えば、クライアント装置2は、識別情報として口座情報を受け付ける。
クライアント装置2は、ユーザから生体情報43bの入力を受け付ける(S23)。クライアント装置2は、生成した変換情報42bに基づいてクライアント装置2が受け付けた生体情報43bを特徴コード化して、認証用の特徴コード化生体情報44bを生成する(S24-1,S24-2)。特徴コード化生体情報44bを生成する方法については後述する。
クライアント装置2は、生成した変換情報42bに基づいてチェックコード45bを生成する(S25)。チェックコード45bを生成する方法については後述する。クライアント装置2は、特徴コード化生体情報44bと生成されたチェックコード45bとを合成して認証データ46bを生成する(S26-1,S26-2)。クライアント装置2は、生成した認証データ46bをユーザの口座情報とともにサーバ装置3へ送信する(S27)。
サーバ装置3は、認証用データ47として登録された登録時の特徴コード化生体情報44aの中からユーザの認証時にクライアント装置2から送信された口座情報に対応付けられた特徴コード化生体情報44aを特定する。そして、サーバ装置3は、ユーザの認証時にクライアント装置2から送信された認証データ46bに含まれる特徴コード化生体情報44bを、特定した登録時の特徴コード化生体情報44aに基づいて生体情報の認証処理を行う(S28)。生体情報の認証処理については後述する。
サーバ装置3は、生体情報の認証処理の認証結果に基づいて、チェックコードの認証処理を行う(S29)。例えば、サーバ装置3は、生体情報の認証結果がOK(成功)だった場合には、ユーザの認証時にクライアント装置2から送信された認証データ46bに含まれるチェックコード45bを、認証用データ47として登録された登録時のチェックコード45aに基づいてチェックコードの認証処理を行う。チェックコードの認証処理については後述する。サーバ装置3は、認証結果48をクライアント装置2へ送信する(S30)。
図3は、第1の実施形態におけるクライアント装置のハードウェア構成図である。図3に示すように、クライアント装置2は、制御部201、入力装置202、出力装置203、記憶部204、インターフェース(I/F)205がバス206に接続されて構成されている。また、クライアント装置2は、図3に示していない他のハードウェア構成を備えていてもよい。
制御部201は、クライアント装置2全体を統括的に制御するもので、プログラムを読み込んで認証処理を実行するCPU(Central Processing Unit)を有する。入力装置202は、例えば、キーボード、ジョイスティック、ライトペン、マウス、タッチパッド、タッチパネル、トラックボール等、各種のデータや信号等を入力する。出力装置203は、例えば、LCD(Liquid Crystal Display)等の各種ディスプレイ、プリンタ等、画像やその他の情報を出力する。
記憶部204は、RAM(Random Access Memory)、ROM(Read Only Memory)、HDD(Hard Disk Drive)等を有する。記憶部204は、クライアント装置2が認証処理を実行するプログラムの他、クライアント装置2の各機能を制御し実行するための制御プログラム、画面データなどを記憶する。記憶部204は、クライアント装置2がプログラムを実行する際の作業領域を提供する。記憶部204は、ユーザから受け付けたパスワードから変換情報を生成するための第1のアルゴリズム、生成した変換情報に基づいて受け付けた生体情報を特徴コード化して、特徴コード化生体情報を生成するための第2のアルゴリズム、生成した変換情報に基づいてチェックコードを生成するための第3のアルゴリズムをそれぞれ記憶する。第1~第3のアルゴリズムについては後述する。また、記憶部204は、他のデータを記憶してもよい。
インターフェース205は、USB(Universal Serial Bus)等のシリアルインターフェースやイーサネット(登録商標)等のパラレルインターフェース等、サーバ装置3、読み取りセンサ4および図示しない外部機器と接続するためのユニットである。本実施形態における認証処理は、前述したクライアント装置2によって実行される。
図4は、第1の実施形態におけるサーバ装置のハードウェア構成図である。図4に示すように、サーバ装置3は、制御部301、入力装置302、出力装置303、記憶部304、インターフェース(I/F)305がバス306に接続されて構成されている。また、サーバ装置3は、図4に示していない他のハードウェア構成を備えていてもよい。
制御部301は、サーバ装置3全体を統括的に制御するもので、プログラムを読み込んで認証処理を実行するCPUを有する。入力装置302は、例えば、キーボード、ジョイスティック、ライトペン、マウス、タッチパッド、タッチパネル、トラックボール等、各種のデータや信号等を入力する。出力装置303は、例えば、LCD等の各種ディスプレイ、プリンタ等、画像やその他の情報を出力する。
記憶部304は、RAM、ROM、HDD等を有する。記憶部304は、サーバ装置3が認証処理を実行するプログラムの他、サーバ装置3の各機能を制御し実行するための制御プログラム、画面データなどを記憶する。記憶部304は、サーバ装置3がプログラムを実行する際の作業領域を提供する。記憶部304は、図2に示すように、クライアント装置2から送信された登録データ46aに含まれる特徴コード化生体情報44aと、チェックコード45aと、各ユーザを一意に識別できる識別情報とを対応付けて認証用データ47として登録する。記憶部304には、各識別情報に対応してそれぞれ認証用データ47が登録されている。なお、認証用データ47は、各ユーザを一意に識別できる電話番号やユーザIDを識別情報として認証用データ47に対応付けて登録してもよい。
インターフェース305は、USB等のシリアルインターフェースやイーサネット(登録商標)等のパラレルインターフェース等、クライアント装置2および図示しない外部機器と接続するためのユニットである。
本実施形態における認証処理は、前述したサーバ装置3によって実行される。
図5は、第1の実施形態におけるクライアント装置2およびサーバ装置3の機能ブロック図である。クライアント装置2およびサーバ装置3の機能について、図6、図7をあわせて説明する。図6は、第1の実施形態におけるユーザの認証情報の登録時に実行される認証情報登録処理の概要を説明する図である。図7は、第1の実施形態におけるユーザの認証時に実行される認証処理の概要を説明する図である。
図5に示すように、クライアント装置2は、生体情報受付部21、パスワード受付部22、変換情報生成部23、特徴コード化生体情報生成部24、チェックコード生成部25、データ合成部26、データ送受信部(データ送信部)27を備える。また、クライアント装置2は、図5に示していない他の機能構成を備えていてもよい。クライアント装置2は、コンピュータの機能を備えており、認証処理プログラムにしたがって後述する認証処理を実行する。
サーバ装置3は、認証データ登録部31、生体情報認証部32、チェックコード認証部33、データ送受信部34を備える。また、サーバ装置3は、図5に示していない他の機能構成を備えていてもよい。サーバ装置3は、コンピュータの機能を備えており、認証処理プログラムにしたがって後述する認証処理を実行する。
生体情報受付部21は、読み取りセンサ4を通じてユーザから取得した生体情報の入力を受け付ける。例えば、生体情報受付部21は、生体情報として手のひらの静脈パターンの情報を受け付ける。
パスワード受付部22は、キーボードなどの入力装置202を通じてユーザからパスワードの入力を受け付ける。例えば、パスワード受付部22は、ユーザが正式な利用者であることをサーバ装置3に通知するために使用するあらかじめ取り決めた任意の符号をパスワードとして受け付ける。
変換情報生成部23は、パスワード受付部22により受け付けたパスワードから変換情報を生成する。具体的には、ユーザの認証情報の登録時には、図6(1)に示すように、変換情報生成部23は、ユーザが入力したパスワード41aの文字列と、クライアント装置2が固有で持つ秘匿化情報51aとに基づいて、256ビットSHA(Secure Hash Algorithm)(第1のアルゴリズム)を適用することによりハッシュ値52aを生成する。変換情報生成部23は、生成したハッシュ値52aを変換情報42aとして使用する。秘匿化情報51aは、固有の乱数などである。
変換情報生成部23は、ユーザが入力したパスワード41aの文字列に256ビットSHAを適用して生成したハッシュ値52aを変換情報42aとして使用しているがこれに限られるものではない。例えば、変換情報生成部23は、ユーザが入力したパスワード41aの文字列に既知のアルゴリズムを適用することにより生成したデータをパスワード41aとは異なる変換情報として生成してもよい。
特徴コード化生体情報生成部24は、変換情報生成部23が生成した変換情報に基づいて生体情報受付部21が受け付けた生体情報を特徴コード化して、特徴コード化生体情報を生成する。具体的には、ユーザの認証情報の登録時には、図6(2)に示すように、特徴コード化生体情報生成部24は、変換情報生成部23が生成した変換情報42aを暗号キー53aに基づいて、128ビットAES(Advanced Encryption Standard)アルゴリズム(第2のアルゴリズム)により暗号化して、鍵ストリーム54aを生成する。特徴コード化生体情報生成部24は、生体情報受付部21が受け付けた生体情報43aに対し、生成した鍵ストリーム54aを適用して、不可逆性の特徴コード化生体情報44aを生成する。
特徴コード化生体情報生成部24は、生体情報43aに対し、変換情報生成部23が生成した変換情報42aを128ビットAESアルゴリズムにより生成した鍵ストリーム54aを適用して特徴コード化生体情報44aを生成しているがこれに限られるものではない。例えば、特徴コード化生体情報生成部24は、生体情報43aに対し、変換情報生成部23が生成した変換情報42aを既存のアルゴリズムにより生成した鍵ストリームを適用して特徴コード化生体情報を生成してもよい。
チェックコード生成部25は、変換情報生成部23が生成した変換情報に基づいてチェックコードを生成する。具体的には、ユーザの認証情報の登録時には、図6(3)に示すように、チェックコード生成部25は、変換情報生成部23が生成した変換情報42aに32ビットCRC(Cyclic Redundancy Check)アルゴリズム(第3のアルゴリズム)を適用することによりCRC値55aを生成する。チェックコード生成部25は、生成したCRC値55aをチェックコード45aとして使用する。
チェックコード生成部25は、変換情報生成部23が生成した変換情報42aに32ビットCRCアルゴリズムを適用して生成したCRC値55aをチェックコード45aとして使用しているがこれに限られるものではない。例えば、チェックコード生成部25は、変換情報生成部23が生成した変換情報42aに既知のアルゴリズムを適用することにより生成したデータをCRC値55aとは異なるチェックコードとして生成してもよい。
データ合成部26は、ユーザの認証情報の登録時には、図6(4)に示すように、特徴コード化生体情報生成部24が生成した特徴コード化生体情報44aと、チェックコード生成部25が生成したチェックコード45aとを合成して登録データ46aを生成する。具体的には、データ合成部26は、特徴コード化生体情報44aのバイナリデータと、チェックコード45aとのバイナリデータとを連結することにより合成して、登録データ46aを生成する。データ送受信部27は、ユーザの認証情報の登録時には、データ合成部26が生成した登録データ46aをユーザの認証情報の登録時に受け付けたユーザの口座情報とともにサーバ装置3へ送信する。なお、変換情報42aを変更することにより登録データ46aを適宜更新(リニューアル)してもよい。
サーバ装置3の認証データ登録部31は、クライアント装置2から送信された登録データ46aに含まれる特徴コード化生体情報44aと、チェックコード45aとを口座情報に対応付けて認証用データ47として記憶部304に登録する。 また同様に、変換情報生成部23は、ユーザの認証時には、パスワード受付部22により受け付けたパスワード41b(図2参照)から変換情報42b(図2参照)を生成する。ユーザの認証情報の登録時に受け付けたパスワード41aと、ユーザの認証時に受け付けたパスワード41bとが同じであれば、パスワード41aから生成される変換情報42aと、パスワード41bから生成される変換情報42bとは同じものとなる。
特徴コード化生体情報生成部24は、ユーザの認証時には、変換情報生成部23が生成した変換情報42b(図2参照)に基づいて生体情報受付部21が受け付けた生体情報43b(図2参照)を特徴コード化して、認証時の特徴コード化生体情報44b(図2参照)を生成する。
ユーザの認証情報の登録時に生成した変換情報42aと、ユーザの認証時に生成した変換情報42bとが同じであれば、ユーザの認証情報の登録時に生成される特徴コード化生体情報44aと、ユーザの認証時に生成される特徴コード化生体情報44bとは近似するものとなる。
チェックコード生成部25は、ユーザの認証時には、変換情報生成部23が生成した変換情報42b(図2参照)に32ビットCRCアルゴリズムを適用してCRC値55b(図示せず)を生成する。チェックコード生成部25は、生成したCRC値55b(図示せず)をチェックコード45b(図2参照)として使用する。
ユーザの認証情報の登録時に生成した変換情報42aと、ユーザの認証時に生成した変換情報42bとが同じであれば、ユーザの認証情報の登録時に生成されるチェックコード45aと、ユーザの認証時に生成されるチェックコード45bとは同じものとなる。
データ合成部26は、ユーザの認証時には、図7(1)に示すように、特徴コード化生体情報生成部24が生成した特徴コード化生体情報44bと、チェックコード生成部25が生成したチェックコード45bとを合成して認証データ46bを生成する。データ送受信部27は、ユーザの認証時には、データ合成部26が生成した認証データ46bをユーザの認証時に受け付けたユーザの口座情報とともにサーバ装置3へ送信する。 ユーザの認証時には、生体情報認証部32は、認証用データ47として登録された登録時の特徴コード化生体情報44aの中から、ユーザの認証時にクライアント装置2から送信された口座情報に対応付けられた特徴コード化生体情報44aを特定する。そして、生体情報認証部32は、図6(4)に示すように、ユーザの認証時にクライアント装置2から送信された認証データ46bに含まれる特徴コード化生体情報44b(以下、「認証時の特徴コード化生体情報44b」と呼ぶ)を、認証用データ47として記憶部304に登録された登録時の特徴コード化生体情報44a(以下、「登録時の特徴コード化生体情報44a」と呼ぶ)のうち、特定した登録時の特徴コード化生体情報44aに基づいて生体情報の認証処理を行う。生体情報認証部32による認証処理は、1段階目の認証処理である。
具体的には、図7(2)に示すように、生体情報認証部32は、認証時の特徴コード化生体情報44bに基づいて認証時のスコア56bを算出する。また、生体情報認証部32は、登録時の特徴コード化生体情報44aに基づいて登録時のスコア56aを算出する。
そして、生体情報認証部32は、認証時の特徴コード化生体情報44bに基づいて算出したスコア56b(以下、「認証時のスコア56b」と呼ぶ)と、登録時の特徴コード化生体情報44aに基づいて算出したスコア56a(以下、「登録時のスコア56a」と呼ぶ)との差分の絶対値が第1の閾値未満であるか否かに応じて、生体情報の認証処理を行う。この場合、生体情報認証部32は、記憶部304に登録されている登録時の特徴コード化生体情報44aのうち、認証時のスコア56bに一番近い登録時のスコア56aを有する登録時の特徴コード化生体情報44aに対して、生体情報の認証処理を行う。第1の閾値は、生体情報の認証処理の認証結果を判定する際に参照される値である。
生体情報認証部32は、認証時のスコア56bと登録時のスコア56aとの差分の絶対値が第1の閾値未満である場合には、生体情報の認証結果はOK(成功)であると判定する。これに対し、認証時のスコア56bと登録時のスコア56aとの差分の絶対値が第1の閾値以上である場合には、生体情報の認証結果はNG(失敗)であると判定する。
例えば、第1の閾値が「1000」であり、認証時のスコア56bが「9500」であり、登録時のスコア56aが「9000」である場合について説明する。
生体情報認証部32は、認証時のスコア56b「9500」と、登録時のスコア56a「9000」とのスコアの差分の絶対値「9500-9000=500」を算出する。スコアの差分の絶対値「500」は、第1の閾値「1000」未満であるから、生体情報認証部32は、生体情報の認証結果はOK(成功)であると判定する。
これに対し、例えば、認証時のスコア56bが「11000」となった場合について説明する。生体情報認証部32は、認証時のスコア56b「11000」と、登録時のスコア56a「9000」とのスコアの差分の絶対値「11000-9000=2000」を算出する。スコアの差分の絶対値「2000」は、第1の閾値「1000」以上であるから、生体情報認証部32は、生体情報の認証結果はNG(失敗)であると判定する。
生体情報認証部32は、スコアの算出においては既存の手のひら静脈認証技術を用いることができる。既存の手のひら静脈認証技術としては、例えば、再表2015/145590号公報等に開示された手のひら静脈認証技術が上げられる。なお、生体情報認証部32が利用する手のひら静脈認証技術は、既存の技術に限られず、今後開発される手のひら静脈認証技術であってもよい。
チェックコード認証部33は、生体情報認証部32による生体情報の認証結果に基づいて、ユーザの認証時にクライアント装置2から送信された認証時のチェックコード(以下、「認証時のチェックコード45b」と呼ぶ)45bを、認証データ登録部31により登録された登録時のチェックコード(以下、「登録時のチェックコード45a」と呼ぶ)45aに基づいてチェックコードの認証処理を行う。チェックコード認証部33による認証処理は、2段階目の認証処理である。
2段階目の認証処理で用いられる登録時のチェックコード45aは、1段階目の認証処理で用いられる登録時の特徴コード化生体情報44aに対応するデータを用いる。したがって、1段階目の認証処理で読み取られる生体情報が様々な要因で変動したとしても、2段階目の認証処理の認証結果で補完することができるため、他人の生体情報との誤認証を防止することができ、認証精度を向上させることができる。
チェックコード認証部33は、1段階目の認証処理である生体情報認証部32による認証処理の認証結果がOK(成功)の場合にのみ2段階目の認証処理であるチェックコードの認証処理を行う。
チェックコード認証部33は、図7(3)に示すように、認証時のチェックコード45bと、登録時のチェックコード45aとをバイナリレベルで一致するか否かを判定する。
認証時のチェックコード45bおよび登録時のチェックコード45aは、それぞれチェックコード生成部25が生成したCRC値55a,55b(図示せず)に基づいて生成されている。したがって、認証時のパスワード41bおよび登録時のパスワード41aが一致しているのであれば、バイナリレベルで完全に一致する。
したがって、チェックコード認証部33は、認証時のチェックコード45bと、登録時のチェックコード45aとがバイナリレベルで一致する場合には、チェックコードの認証結果はOK(成功)であると判定する。これに対し、チェックコード認証部33は、認証時のチェックコード45bと、登録時のチェックコード45aとがバイナリレベルで不一致の場合には、チェックコードの認証結果はNG(失敗)であると判定する。
データ送受信部34は、1段階目の認証処理である生体情報認証部32による認証処理の認証結果および2段階目の認証処理であるチェックコードの認証処理の認証結果を含む認証結果48(図2参照)をクライアント装置2へ送信する。
データ送受信部34は、2段階目の認証処理の認証結果がOK(成功)の場合のみ、認証結果としてOK(成功)の情報を送信する。これに対し、1段階目の認証処理の認証結果がNG(失敗)である場合および2段階目の認証処理の認証結果がNG(失敗)である場合には、データ送受信部34は、認証結果としてNG(失敗)の情報を送信する。
クライアント装置2は、認証結果48(図2参照)を受信すると、認証結果に応じて通常の決済処理を行う。例えば、認証結果がOK(成功)である場合には、決済処理を行い、認証結果がNG(失敗)である場合には、決済処理を行わずに処理を終了する。
図8は、第1の実施形態における認証システム1が実行する認証情報登録処理の一例を示すシーケンスチャートである。認証情報登録処理は、例えば、キーボードなどの入力装置202を通じてユーザから登録開始ボタンの入力を受け付けると開始される。
生体情報受付部21は、読み取りセンサ4を通じてユーザから取得した生体情報43a(図2参照)の入力を受け付ける(ステップS31)。パスワード受付部22は、キーボードなどの入力装置202を通じてユーザからパスワード41a(図2参照)の入力を受け付ける(ステップS32)。また、クライアント装置2は、ユーザの認証情報の登録時に口座情報を受け付ける。
変換情報生成部23は、ステップS32においてパスワード受付部22により受け付けたパスワード41a(図2参照)から変換情報42a(図2参照)を生成する(ステップS33)。
特徴コード化生体情報生成部24は、ステップS33において変換情報生成部23が生成した変換情報42aに基づいて生体情報受付部21が受け付けた生体情報43aを特徴コード化して、特徴コード化生体情報44a(図2参照)を生成する(ステップS34)。
チェックコード生成部25は、ステップS33において変換情報生成部23が生成した変換情報42aに基づいてチェックコード45a(図2参照)を生成する(ステップS35)。
データ合成部26は、ステップS34において特徴コード化生体情報生成部24が生成した特徴コード化生体情報44aと、ステップS35においてチェックコード生成部25が生成したチェックコード45aとを合成して登録データ46a(図2参照)を生成する(ステップS36)。
データ送受信部27は、ステップS36においてデータ合成部26が生成した登録データ46aをユーザの口座情報とともにサーバ装置3へ送信する(ステップS37)。
サーバ装置3のデータ送受信部34は、登録データ46aおよび口座情報を受信する(ステップS38)。認証データ登録部31は、クライアント装置2から送信された登録データ46aに含まれる特徴コード化生体情報44aと、チェックコード45aと、をユーザの口座情報に対応付けて認証用データ47として記憶部304に登録する(ステップS39)。この処理が終了すると認証情報登録処理は終了となる。
図9は、第1の実施形態における認証システム1が実行する認証処理の一例を示すシーケンスチャートである。認証処理は、例えば、キーボードなどの入力装置202を通じてユーザから認証開始ボタンの入力を受け付けると開始される。
生体情報受付部21は、読み取りセンサ4を通じてユーザから取得した生体情報43b(図2参照)の入力を受け付ける(ステップS51)。パスワード受付部22は、キーボードなどの入力装置202を通じてユーザからパスワード41b(図2参照)の入力を受け付ける(ステップS52)。また、クライアント装置2は、ユーザの認証時に口座情報を受け付ける。
変換情報生成部23は、ステップS52においてパスワード受付部22により受け付けたパスワード41b(図2参照)から変換情報42b(図2参照)を生成する(ステップS53)。特徴コード化生体情報生成部24は、ステップS53において変換情報生成部23が生成した変換情報42bに基づいて生体情報受付部21が受け付けた生体情報43bを特徴コード化して、特徴コード化生体情報44b(図2参照)を生成する(ステップS54)。
チェックコード生成部25は、ステップS53において変換情報生成部23が生成した変換情報42bに基づいてチェックコード45b(図2参照)を生成する(ステップS55)。データ合成部26は、ステップS54において特徴コード化生体情報生成部24が生成した特徴コード化生体情報44bと、ステップS55においてチェックコード生成部25が生成したチェックコード45bとを合成して認証データ46b(図2参照)を生成する(ステップS56)。
データ送受信部27は、ステップS56においてデータ合成部26が生成した認証データ46bをサーバ装置3へユーザの口座情報とともに送信する(ステップS57)。サーバ装置3のデータ送受信部34は、認証データ46bおよび口座情報を受信する(ステップS58)。
生体情報認証部32は、認証用データ47として登録された登録時の特徴コード化生体情報44aの中から、ユーザの認証時にクライアント装置2から送信された口座情報に対応付けられた特徴コード化生体情報44aを特定する。そして、生体情報認証部32は、認証時の特徴コード化生体情報44bを、登録時の特徴コード化生体情報44aのうち、特定した登録時の特徴コード化生体情報44aに基づいて生体情報の認証処理を行う(ステップS59)。生体情報認証部32によるステップS59の処理は、1段階目の認証処理である。
生体情報認証部32は、ステップS59による生体情報の認証結果はOK(成功)であるか否かを判定する(ステップS60)。生体情報の認証結果はOK(成功)である場合(ステップS60のYES)には、チェックコード認証部33は、認証時のチェックコード45bを、登録時のチェックコード45aに基づいてチェックコードの認証処理を行う(ステップS61)。チェックコード認証部33によるステップS61の処理は、2段階目の認証処理である。
生体情報の認証結果はNG(失敗)である場合(ステップS60のNO)には、ステップS61の処理を行わずに、処理はステップS62に進む。すなわち、チェックコード認証部33は、1段階目の認証処理である生体情報認証部32による認証処理の認証結果がOK(成功)の場合にのみ、ステップS61における2段階目の認証処理であるチェックコードの認証処理を行う。
データ送受信部34は、認証結果48(図2参照)をクライアント装置2へ送信する(ステップS62)。この処理では、2段階目の認証処理の認証結果がOK(成功)の場合のみ、認証結果としてOK(成功)の情報が送信される。これに対し、1段階目の認証処理の認証結果がNG(失敗)である場合、2段階目の認証処理の認証結果がNG(失敗)である場合には、認証結果としてNG(失敗)の情報が送信される。
クライアント装置2のデータ送受信部27は、サーバ装置3から送信された認証結果48(図2参照)を受信する(ステップS63)。クライアント装置2は、受信した認証結果に応じて従来と同様な通常の決済処理を行う(ステップS64)。例えば、認証結果がOK(成功)である場合には、決済処理を行い、認証結果がNG(失敗)である場合には、クライアント装置2は、ディスプレイなどの出力装置203を通じて認証処理がNG(失敗)である旨の画面およびメッセージを表示して処理を終了する。ディスプレイに表示するメッセージとしては、例えば「本人確認ができませんでした。窓口にご連絡ください」などを表示する。この処理が終了すると認証処理は終了となる。
第1の実施形態によれば、1段階目の認証処理として、生体情報認証部32は、認証時の特徴コード化生体情報44bを登録時の特徴コード化生体情報44aに基づいて生体情報の認証処理を行う。そして、チェックコード認証部33は、1段階目の認証処理である生体情報認証部32による認証処理の認証結果がOK(成功)の場合にのみ2段階目の認証処理として、認証時のチェックコード45bを、登録時のチェックコード45aに基づいてチェックコードの認証処理を行う。チェックコードと、特徴コード化した生体情報とはともに、同じ由来のパスワードに基づいて生成された変換情報に基づいて生成されている。認証時のパスワード41bと登録時のパスワード41aが同じであれば、生成される変換情報42b,42aはバイナリレベルで完全に一致する。
したがって、1段階目の認証処理で読み取られる生体情報が様々な要因で変動したとしても、2段階目の認証処理の認証結果で補完することができるため、他人の生体情報との誤認証を防止することができ、認証精度を向上させることができる。
また、内部の管理者や外部のハッカーなどの悪意の第三者により、変換情報が書き換えられてしまった場合であっても、2段階目の認証処理であるチェックコードの認証処理を行うことにより、生体情報が誤って認証されてしまうことを防ぐことができる。その結果認証精度が低下することを防止することができる。
<第2の実施形態>
第1の実施形態においては、生体情報認証部32は、認証時のスコア56bと登録時のスコア56aとの差分の絶対値が第1の閾値未満である場合には、生体情報の認証結果はOK(成功)であると判定する。
これに対し、第2の実施形態においては、生体情報認証部32は、認証時のスコア56bと登録時のスコア56aとの差分が第1の閾値未満であるか否かを判定する。そして、認証時のスコア56bと登録時のスコア56aとの差分が第1の閾値以上である場合であっても、認証時のスコア56bと登録時のスコア56aとの差分が第2の閾値未満である場合には、チェックコード認証部33によるチェックコードの認証結果が一致していることを条件に、生体情報の認証結果はOK(成功)であると判定する点で相違する。
生体情報は、様々な要因により変動するため、読み取りセンサ4により同一人物の手のひらの静脈パターンを生体情報として読み取った場合であっても、撮像画像レベルで毎回100%同一のデータを再現することは極めて困難である。
そこで、第2の実施形態のチェックコード認証部33は、1段階目の認証処理である生体情報認証部32による認証処理の第1の閾値による認証結果がNG(失敗)であっても、第2の閾値による認証結果がOK(成功)である場合には、2段階目の認証処理であるチェックコードの認証処理を行う。そして、チェックコード認証部33によるチェックコードの認証結果が一致していることを条件に、生体情報認証部32は、生体情報の認証結果はOK(成功)であると判定する。
第2の実施形態の認証システムに含まれるクライアント装置2およびサーバ装置3のハードウェア構成、その他の機能構成については第1の実施形態とほぼ同様であるため説明を省略する。
第2の実施形態の認証システムが実行する認証情報登録処理については、図8で示す第1の実施形態の認証システム1が実行する認証情報登録処理と同一であるため説明を省略する。
図10、図11は、第2の実施形態における認証システム1が実行する認証処理の一例を示すシーケンスチャートである。認証処理は、例えば、キーボードなどの入力装置202を通じてユーザから認証開始ボタンの入力を受け付けると開始される。第2の実施形態の認証処理のステップS71~ステップS78については、図9の第1の実施形態の認証処理のステップS51~ステップS58と同一であるため、説明を省略する。
生体情報認証部32は、認証用データ47として登録された登録時の特徴コード化生体情報44aの中から、ユーザの認証時にクライアント装置2から送信された口座情報に対応付けられた特徴コード化生体情報44aを特定する。生体情報認証部32は、認証時の特徴コード化生体情報44b(図7(2)参照)に基づいて認証時のスコア56b(図7(2)参照)を算出する(ステップS79)。また、生体情報認証部32は、登録時の特徴コード化生体情報44a(図7(2)参照)のうち、特定した登録時の特徴コード化生体情報44aに基づいて登録時のスコア56a(図7(2)参照)を算出する(ステップS80)。
生体情報認証部32は、認証時のスコア56bと登録時のスコア56aとの差分の絶対値が第1の閾値未満であるか否かを判定する(ステップS81)。認証時のスコア56bと登録時のスコア56aとの差分の絶対値が第1の閾値未満である場合には、処理はステップS83に進む。認証時のスコア56bと登録時のスコア56aとの差分の絶対値が第1の閾値以上である場合(ステップS81のNO)には、生体情報認証部32は、認証時のスコア56bと登録時のスコア56aとの差分の絶対値が第2の閾値未満であるか否かを判定する(ステップS82)。認証時のスコア56bと登録時のスコア56aとの差分の絶対値が第2の閾値以上である場合(ステップS82のNO)には、処理はステップS84に進む。生体情報認証部32によるステップS81,S82の処理は、1段階目の認証処理である。
認証時のスコア56bと登録時のスコア56aとの差分の絶対値が第1の閾値未満である場合(ステップS81のYES)、または、認証時のスコア56bと登録時のスコア56aとの差分が第2の閾値未満である場合(ステップS82のYES)には、チェックコード認証部33は、認証時のチェックコード45bを、登録時のチェックコード45aに基づいてチェックコードの認証処理を行う(ステップS83)。チェックコード認証部33によるステップS83の処理は、2段階目の認証処理である。
データ送受信部34は、認証結果48(図2参照)をクライアント装置2へ送信する(ステップS84)。この処理では、1段階目の認証処理の第1の閾値による認証結果がNG(失敗)であっても、第2の閾値による認証結果がOK(成功)であり、かつ、2段階目の認証処理の認証結果がOK(成功)の場合は、認証結果としてOK(成功)の情報が送信される。これに対し、1段階目の第1の閾値および第2の閾値による認証処理の認証結果がNG(失敗)であり、かつ、2段階目の認証処理の認証結果がNG(失敗)である場合には、認証結果としてNG(失敗)の情報が送信される。
第2の実施形態の認証処理のステップS85、S86については、図9の第1の実施形態の認証処理のステップS63,S64と同一であるため、説明を省略する。この処理が終了すると第2の実施形態の認証処理は終了となる。
第2の実施形態によれば、生体情報認証部32は、認証時のスコア56bと登録時のスコア56aとの差分が第1の閾値未満であるか否かを判定する。そして、認証時のスコア56bと登録時のスコア56aとの差分が第1の閾値以上である場合であっても、認証時のスコア56bと登録時のスコア56aとの差分が第2の閾値未満である場合には、チェックコード認証部33によるチェックコードの認証結果が一致していることを条件に、生体情報の認証結果はOK(成功)であると判定する。
したがって、1段階目の認証処理で読み取られる生体情報が様々な要因で変動したとしても、2段階目の認証処理の認証結果を用いて補完することができるため、認証精度を向上させることができる。
なお、本発明は上述した実施形態そのままに限定されるものではなく、実施段階でのその要旨を逸脱しない範囲で構成要素を変形して具体化することができる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成することができる。例えば、実施形態に示される全構成要素を適宜組み合わせても良い。更に、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。このような、発明の趣旨を逸脱しない範囲内において種々の変形や応用が可能である。