(57)【要約】  【課題】  簡単な構成によって処理負担及び処理時間を軽減しつつ、各ユーザの個別認識性及びセキュリティ性を維持することが可能な生体認証装置を提供する。  【解決手段】  指紋認証装置１による認証を行なう場合、予め乱数テーブル、ランレングス符号化テーブル及び２次データを生成し、乱数テーブル及び２次データをＩＣカードに、ランレングス符号化テーブルを符号化テーブル格納用メモリ２０にそれぞれ記憶しておく。認証を行なう場合、認証対象として取得した指紋情報及びＩＣカードから読み出された乱数テーブルに基づいて認証対象の１次データを算出すると共に、ユーザＩＤ入力部２４から入力されたユーザＩＤに対応するランレングス符号化テーブルを用いて、ＩＣカードから読み出された２次データを１次データに復号化する。照合回路２６は、算出された認証対象の１次データと、復号化された１次データとを照合して認証を行なう。【選択図】      図１
2006139424.tif 000002
【特許請求の範囲】
【請求項１】
生体情報を読み取る生体読取手段と、該生体読取手段が読み取った生体情報を予め設定された認証用情報に基づいて認証する認証手段とを備える生体認証装置において、
前記生体読取手段が読み取った生体情報から認証に係る情報を算出する算出手段と、
該算出手段が算出した認証に係る情報に基づいて認証用情報を生成する生成手段と、
該生成手段が生成した認証用情報を外部記憶部に記憶させる処理を行なう記憶処理手段と、
前記外部記憶部に記憶してある認証用情報を読み出す読出手段とを備え、
前記認証手段は、前記読出手段が読み出した認証用情報に基づいて、前記生体読取手段が読み取った生体情報から前記算出手段が算出した認証に係る情報を認証するように構成してあることを特徴とする生体認証装置。
【請求項２】
前記生体読取手段が読み取った生体情報に係る特徴情報を抽出する抽出手段と、
乱数情報を生成する乱数生成手段と、
該乱数生成手段が生成した乱数情報を記憶する乱数記憶手段とを備え、
前記算出手段は、前記抽出手段が抽出した特徴情報及び前記乱数記憶手段に記憶してある乱数情報から乗算処理に基づいて認証に係る情報を算出するように構成してあることを特徴とする請求項１に記載の生体認証装置。
【請求項３】
前記乱数記憶手段は、前記外部記憶部に含まれることを特徴とする請求項２に記載の生体認証装置。
【請求項４】
前記生成手段は、前記算出手段が算出した認証に係る情報を符号化処理して認証用情報を生成する手段であり、
前記読出手段が前記外部記憶部から読み出した認証用情報を復号化処理する復号化手段を備え、
前記認証手段は、前記復号化手段が認証用情報を復号化処理した情報に基づいて、前記生体読取手段が読み取った生体情報から前記算出手段が算出した認証に係る情報を認証するように構成してあることを特徴とする請求項１乃至３のいずれかひとつに記載の生体認証装置。
【請求項５】
前記生成手段が行なう符号化処理は、ランレングス符号化処理であることを特徴とする請求項４に記載の生体認証装置。
【請求項６】
前記算出手段は、ＤＳＰデバイスにより構成されていることを特徴とする請求項１乃至５のいずれかひとつに記載の生体認証装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、個人の識別が可能な生体情報を用いて個人を認証する生体認証装置に関する。
【背景技術】
【０００２】
近年では、パーソナルコンピュータ、複写機、ファクシミリ装置等の各種機器を使用する際に各ユーザの認証を行なうことにより、適切なユーザのみに使用を制限することでセキュリティの向上を図るように構成された機器が普及している。各ユーザを認証する方法としては、各機器に予めユーザＩＤ及びパスワードを登録しておき、各ユーザが機器の使用時に入力したユーザＩＤ及びパスワードが登録されているものと一致するか否かに基づき認証を行なう方法が用いられる場合が多い。
【０００３】
しかし、上述した認証方法では、ユーザＩＤ及びパスワードが漏洩した場合には第三者によるなりすましを防止することができず、また、各ユーザは自身が登録したパスワードを覚えておく必要があると共に、機器を使用する都度、ユーザＩＤ及びパスワードの入力を行なう必要があり、操作性を向上させることが要望されている。
【０００４】
そこで、ユーザＩＤ及びパスワードの入力の替わりに、指紋情報を用いて認証を行なうように構成された機器が提供されている（例えば、特許文献１参照）。このように、指紋を読み取ることによって得られる画像データである指紋情報を用いた認証処理によれば、認証対象である指紋情報の第三者への漏洩を防止できるので、より精度のよい個人認証を行なうことができると共に、第三者によるなりすましを防止することができる。具体的には、指紋情報を用いた認証処理は、指紋情報が示す指紋の分岐点及び端点等の特徴点の位置情報を抽出し、各特徴点間を結ぶ直線が跨ぐ指紋隆起線の数等をパラメータとすることで、各指紋情報の個別認識性を向上させてセキュリティの向上を実現している。
【特許文献１】特開２００３−２７４００６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかし、特許文献１で開示された方法では正確な指紋隆起線の形状情報が必要であり、指紋を読み取って得られた指紋画像に複雑な画像処理を行なう必要がある。具体的には、例えば、指には指紋自身の凹凸情報のほかに、しわ、怪我の跡等の凹凸部分があり、指紋の隆起線部分であっても、隆起部分が極端に細くなっている場合には、隆起部分として認識されない等の問題がある。従って、これらを明確に識別するために、ノイズ除去、高コントラスト処理、細線化等の非常に複雑且つ高精度な画像処理を行なうことにより、指紋の緻密な隆起線の形状、指紋の凹凸情報等を得る必要がある。
【０００６】
また、認証処理は比較的短時間で行なうことが要求されるため、これらの画像処理を短時間で行なうためには多大な計算能力が必要とされる。従って、小規模で計算能力の低い演算デバイスによって計算する場合には、非常に大きな負荷となり、認証処理に要する演算時間への影響が大きくなることが懸念される。
【０００７】
更に、上述した認証方法では、一般的な指紋形状である「流れ型」、「渦巻き型」の指紋に対しては十分な形状認識が可能であるが、「井桁型」、「突起紋」等の特殊な指紋形状に対しては、しわ及び怪我の跡等の凹凸部分との識別が非常に困難であるために認識できない場合がある。また、「流れ型」、「渦巻き型」の指紋であっても、読み取った指紋情報が極端にかすれた画像であれば、画像処理を行なった場合であっても十分な隆起線の形状情報を得ることができず、認識できない場合がある。このような場合、正当な使用権限を有するユーザであっても、認証されないことにより、機器の使用が制限されてしまうという問題がある。
【０００８】
本発明は斯かる事情に鑑みてなされたものであって、その目的とするところは、例えば指紋認証において、上述した従来の指紋認証では認証できない可能性が高かった特殊な形状の指紋を有するユーザに対しても認証性を向上させることが可能な生体認証装置を提供することにある。
【０００９】
また、本発明の他の目的は、上述したように従来の指紋認証で必要であった複雑且つ高精度の画像処理を行なうことなく、個人から取得する生体情報から算出される各種情報を用いて認証することによって、各ユーザの個別認識性及びセキュリティ性を維持しつつ、処理負担及び処理時間を軽減することが可能な生体認証装置を提供することにある。
【課題を解決するための手段】
【００１０】
本発明に係る生体認証装置は、生体情報を読み取る生体読取手段と、該生体読取手段が読み取った生体情報を予め設定された認証用情報に基づいて認証する認証手段とを備える生体認証装置において、前記生体読取手段が読み取った生体情報から認証に係る情報を算出する算出手段と、該算出手段が算出した認証に係る情報に基づいて認証用情報を生成する生成手段と、該生成手段が生成した認証用情報を外部記憶部に記憶させる処理を行なう記憶処理手段と、前記外部記憶部に記憶してある認証用情報を読み出す読出手段とを備え、前記認証手段は、前記読出手段が読み出した認証用情報に基づいて、前記生体読取手段が読み取った生体情報から前記算出手段が算出した認証に係る情報を認証するように構成してあることを特徴とする。
【００１１】
本発明によれば、生体情報を読み取った場合、読み取った生体情報から認証に係る情報を算出する。また、算出した認証に係る情報に基づいて認証用情報を生成し、生成した認証用情報を外部記憶部に記憶させておく。そして、認証を行なう場合に、認証対象として読み取った生体情報から認証に係る情報を算出し、算出した認証に係る情報を、前記外部記憶部に記憶させた認証用情報に基づいて認証する。従って、生体情報から算出した認証に係る情報を認証対象とすると共に、前記認証に係る情報に基づいて認証用情報を生成することにより、例えば特殊な形状の指紋を有するユーザに対しても認証性の向上が可能となる。また、認証に用いる認証用情報を外部記憶部に記憶させておくことにより、装置内に記憶させておく構成と比較して前記認証用情報の漏洩を防止することが可能である。
【００１２】
本発明に係る生体認証装置は、前記生体読取手段が読み取った生体情報に係る特徴情報を抽出する抽出手段と、乱数情報を生成する乱数生成手段と、該乱数生成手段が生成した乱数情報を記憶する乱数記憶手段とを備え、前記算出手段は、前記抽出手段が抽出した特徴情報及び前記乱数記憶手段に記憶してある乱数情報から乗算処理に基づいて認証に係る情報を算出するように構成してあることを特徴とする。
【００１３】
本発明によれば、読み取った生体情報に係る特徴情報を抽出すると共に、乱数情報を生成し、生成した乱数情報を乱数記憶手段に記憶させる。認証に係る情報は、生体情報から抽出した特徴情報と前記乱数記憶手段に記憶してある乱数情報とに乗算処理を行なうことによって算出される。よって、例えば従来の指紋認証では指紋情報に対して複雑且つ高精度の画像処理を行なっていたのに対して、生体情報だけでなく乱数情報に基づいて認証に係る情報を算出することにより、高精度の画像処理を行なうことなく認証対象の情報及び認証に用いる情報を算出することが可能となり、処理負担及び処理時間を軽減しつつ、各ユーザの個別認識性及びセキュリティ性を維持することが可能である。
【００１４】
本発明に係る生体認証装置は、前記乱数記憶手段は、前記外部記憶部に含まれることを特徴とする。
【００１５】
本発明によれば、認証に係る情報を算出する際に用いる乱数情報を外部記憶部に記憶させておくことにより、生体認証を行なう際に認証対象として算出する認証に係る情報の算出処理に用いる乱数情報の漏洩を防止することが可能である。また、前記外部記憶部を紛失した場合であっても、前記乱数情報を新たに生成し、異なる乱数情報に基づいて認証用情報を生成しておくことによって、紛失した外部記憶部に記憶してある乱数情報に基づく認証用情報の利用を禁止することができ、第三者によるなりすましを防止することが可能となる。
【００１６】
本発明に係る生体認証装置は、前記生成手段は、前記算出手段が算出した認証に係る情報を符号化処理して認証用情報を生成する手段であり、前記読出手段が前記外部記憶部から読み出した認証用情報を復号化処理する復号化手段を備え、前記認証手段は、前記復号化手段が認証用情報を復号化処理した情報に基づいて、前記生体読取手段が読み取った生体情報から前記算出手段が算出した認証に係る情報を認証するように構成してあることを特徴とする。
【００１７】
本発明によれば、読み取った生体情報から算出した認証に係る情報に符号化処理を行なって生成した認証用情報を外部記憶部に記憶させておく。そして、認証を行なう場合に、前記外部記憶部から読み出して復号化処理を行ない、生成した認証用情報に基づいて、読み取った生体情報から認証対象として算出した認証に係る情報を認証する。よって、第三者が前記外部記憶部を取得した場合であっても、前記外部記憶部に記憶してある認証用情報の復号ができず、セキュリティをより向上させることが可能となる。
【００１８】
本発明に係る生体認証装置は、前記生成手段が行なう符号化処理は、ランレングス符号化処理であることを特徴とする。
【００１９】
本発明によれば、ランレングス符号化処理を行なうことによって、外部記憶部に記憶される認証用情報の情報量を少なくすることが可能となる。
【００２０】
本発明に係る生体認証装置は、前記算出手段は、ＤＳＰデバイスにより構成されていることを特徴とする。
【００２１】
本発明によれば、読み取った生体情報から認証に係る情報を算出する算出処理を、高速積和演算且つ高速シフト演算に特化したＤＳＰデバイスを用いて実行することにより、処理時間の大幅な短縮及び低コスト化が可能となる。
【発明の効果】
【００２２】
本発明では、読み取った生体情報から認証に係る情報を算出し、算出した認証に係る情報に基づいて認証用情報を生成し、生成した認証用情報を外部記憶部に記憶させておく。そして、認証を行なう場合に、読み取った生体情報から認証対象として算出した認証に係る情報を、前記外部記憶部に記憶させた認証用情報に基づいて認証する。このように、生体情報から算出した認証に係る情報を認証対象とすると共に、前記認証に係る情報に基づいて認証用情報を生成することにより、例えば従来の指紋認証では認証できない可能性が高かった「井桁型」、「突起紋」等の特殊な形状の指紋を有するユーザに対しても認証性を向上させることができる。また、認証に用いる認証用情報を外部記憶部に記憶させておくことにより、装置内に記憶させておく構成と比較して前記認証用情報の漏洩を防止することができ、セキュリティの向上を図ることができる。
【００２３】
本発明では、読み取った生体情報から抽出した特徴情報と、乱数情報とに乗算処理を行なうことによって認証に係る情報を算出する。このように、例えば従来の指紋認証では指紋情報に対して複雑且つ高精度の画像処理を行なっていたのに対して、生体情報及び乱数情報の乗算処理に基づいて認証に係る情報を算出する。これにより、高精度の画像処理を行なうことなく認証対象の情報及び認証に用いる情報を算出することができ、処理負担及び処理時間を軽減しつつ、各ユーザの個別認識性及びセキュリティ性を維持することができる。
【００２４】
本発明では、認証に係る情報を算出する際に用いる乱数情報を外部記憶部に記憶させておくことにより、生体認証を行なう際に認証対象として算出する認証に係る情報の算出処理に用いる乱数情報の漏洩を防止する。また、前記外部記憶部を紛失した場合であっても、前記乱数情報を新たに生成し、異なる乱数情報に基づいて認証用情報を生成しておくことによって、紛失した外部記憶部に記憶してある乱数情報に基づく認証用情報の利用を禁止して第三者によるなりすましを防止することができる。
【００２５】
本発明では、読み取った生体情報から算出した認証に係る情報に符号化処理を行なって生成した認証用情報を外部記憶部に記憶させておく。そして、認証を行なう場合に、前記外部記憶部から読み出して復号化処理を行なって生成した認証用情報に基づいて、読み取った生体情報から認証対象として算出した認証に係る情報を認証する。よって、第三者が前記外部記憶部を取得した場合であっても、前記外部記憶部に記憶してある認証用情報の復号ができず、セキュリティをより向上させることができる。
【００２６】
本発明では、ランレングス符号化処理を行なうことによって、外部記憶部に記憶される認証用情報の情報量を少なくすることができる。
【００２７】
本発明では、読み取った生体情報から認証に係る情報を算出する算出処理を、高速積和演算且つ高速シフト演算に特化したＤＳＰデバイスを用いて実行することにより、処理時間の大幅な短縮及び低コスト化を図ることができる。
【発明を実施するための最良の形態】
【００２８】
以下に、本発明に係る生体認証装置をその実施形態を示す図面に基づいて具体的に説明する。なお、本発明に係る生体認証装置は、利用する際に個人認証を行なうことによってセキュリティの向上を目的とした機器に搭載して用いられ、又は、オプション装置として接続されて用いられる。また、本発明の生体認証装置を搭載する機器としては、例えば複写機、複合機及びパーソナルコンピュータ等の複数のユーザで共有する機器、携帯電話器及びＰＤＡ（Personal Digital Assistants ）等の各ユーザが所有する機器等がある。更に、本発明の生体認証装置は、例えば、ドアの開閉を行なう際の認証に用いることもできる。
【００２９】
また、本発明に係る生体認証装置は、指紋認証、網膜認証、顔（人相）認証及び静脈認証等のように、座標情報として表現することができ、座標系上に個人を明確に識別できる特徴点が抽出できる生体情報（指紋情報、網膜情報、顔情報、静脈情報等）を用いた認証処理についての適用が可能である。以下では、説明の簡略化のため、指紋情報を用いた認証処理を行なう指紋認証装置を例に説明する。
【００３０】
図１は本発明に係る指紋認証装置の内部構成例を示すブロック図である。本実施形態の指紋認証装置１は、各ユーザの指紋を用いた認証処理だけでなく、認証処理に用いる認証用の登録データの生成処理も行なう。具体的には、指紋認証装置１は、認証処理及び認証用の登録データの生成処理のそれぞれを行なう場合、認証対象である各ユーザの認証用として予め登録しておく指の指紋情報と、各ユーザ毎に予め用意しておく乱数テーブルとを用いて１次データ（認証に係る情報）を生成する。
【００３１】
ここで生成された１次データは、指紋認証装置１による認証処理に際しては認証対象の１次データであり、既に登録されている認証用の１次データとの照合処理に用いられる。一方、指紋認証装置１による認証用の登録データの生成処理に際しては、上述のように生成された１次データは登録用の２次データ（認証用情報）を生成するための中間データとして用いられる。なお、２次データは、指紋認証装置１による登録データの生成処理に際して、上述のように生成した１次データに対して例えばランレングス符号化処理等の可逆符号化処理を実行することによって生成される登録用のデータである。
【００３２】
なお、このように生成された登録用の２次データ及び１次データを生成する際に用いる乱数テーブルは、予め各ユーザに配布されたＩＣカード（外部記憶部）内のメモリに記憶させておく。これにより、指紋認証装置１は、認証処理を行なう際にＩＣカードから登録用の２次データを読み出し、この２次データに対してランレングス符号化処理に用いたランレングス符号化テーブルに基づく復号化処理を行なうことにより、認証用の１次データを生成することができる。この１次データは、上述したように指紋情報から生成した認証対象の１次データと照合するために使用される。
【００３３】
従って、各ユーザは、指紋認証装置１が搭載された機器を利用する際に、登録用の２次データ及び乱数テーブルが記憶されているＩＣカードを用意しておく必要がある。ＩＣカードは接触型又は非接触型のいずれでもよく、乱数テーブルを記憶する記憶媒体はＩＣカードに限られないが、カード型の記憶媒体であれば持ち運びが容易であり操作性がよい。
【００３４】
以下に、本実施形態の指紋認証装置１の構成について具体的に説明する。本実施形態の指紋認証装置１は、指紋読取部１０、特徴点抽出処理回路１１、特徴点データ格納用メモリ１２、１次データ算出回路１３、１次データ格納用メモリ１４、メモリアクセス回路１５、乱数テーブル変更指示入力部１６、乱数テーブル生成回路１７、乱数テーブル格納用メモリ１８、符号化テーブル生成回路１９、符号化テーブル格納用メモリ２０、符号化回路２１、２次データ格納用メモリ２２、ＩＣカードリーダ・ライタ２３、ユーザＩＤ入力部２４、復号化回路２５、照合回路２６等を備えており、それぞれは図示しないシステムバスを介して相互に接続されている。
【００３５】
また、システムバスには、ＣＰＵ（Central Processing Unit ）又はＭＰＵ（Micro Processor Unit）等により構成される制御部も接続されており、制御部は、上述したようなハードウェア各部を制御すると共に、自身に内蔵されたＲＯＭに予め格納してある制御プログラムに従って、本発明に係る生体認証装置としての動作を実行する。なお、図１中の矢符は各種データの流れを示している。
【００３６】
指紋読取部（生体読取手段）１０は、半導体センサ又はＣＣＤ光学センサ等により構成されており、例えば、１本の指の先端から第１関節までの指紋部分と接触する接触面を備え、接触面に接触された指紋部分を読み取ることにより、画像データとしての指紋情報（生体情報）を取得する。
【００３７】
図２は指紋認証装置１が行なう処理を説明するための説明図であり、図２（ａ）は指紋読取部１０で読み取った指紋情報を示している。図２（ａ）に示すような指紋情報を読み取った指紋読取部１０は、取得した指紋情報を特徴点抽出処理回路１１へ転送する。特徴点抽出処理回路（抽出手段）１１は、指紋読取部１０が読み取った指紋情報に対して、個人認証に必要な数（一般的には１２〜１５個程度、本実施形態では１５個とする）の指紋特徴点、具体的には、指紋情報に係る指紋が示す隆線の分岐点及び端点等の特徴点が検出できる程度に最小限必要な鮮鋭化処理及びモホロジー等の画像処理を行なう。
【００３８】
また、特徴点抽出処理回路１１は、画像処理を行なった指紋情報から特徴点を抽出し、抽出した特徴点を示す特徴点データ（特徴情報）を特徴点データ格納用メモリ１２に格納する。なお、この特徴点データは、認証対象の１次データを生成する際に使用され、又は、認証用データとして予め登録しておく２次データを生成するための１次データを生成する際に使用される。
【００３９】
以下に、特徴点抽出処理回路１１が指紋情報から抽出した特徴点を示す特徴点データを特徴点データ格納用メモリ１２に格納する処理について説明する。特徴点抽出処理回路１１は、図２（ａ）に示す指紋情報に所定の画像処理を行なった上で特徴点を抽出した場合、抽出した全ての特徴点が含まれる矩形領域を指紋情報中に設定する。図２（ｂ）は指紋情報中に設定された矩形領域Ｒを示しており、矩形領域Ｒ中の黒点がそれぞれ特徴点を示している。図２（ｂ）中には多数の特徴点がプロットしてあるが、１２〜１５個程度であれば個人認証を行なうことができる。但し、特徴点の数を増やすことによって、より精度のよい指紋認証を行なうことができる。
【００４０】
特徴点抽出処理回路１１は、この矩形領域Ｒの頂点のうちのひとつを基準点（Ｘstart ，Ｙstart）として、この基準点（Ｘstart ，Ｙstart）を通る矩形領域Ｒの一辺をＸ方向（主走査方向）、他辺をＹ方向（副走査方向）と定義する。なお、矩形領域ＲのＸ方向の終了点を座標値（Ｘend ，Ｙstart）とし、Ｙ方向の終了点を座標値（Ｘstart ，Ｙend ）とする。次に、特徴点抽出処理回路１１は、矩形領域ＲをＸ方向及びＹ方向のそれぞれに１０２４分割し、Ｘ方向及びＹ方向のそれぞれの最大値を１０２３とした場合の正規化相対座標値（Ｘ，Ｙ）に対して、それぞれの座標値が示すエリアが特徴点であるか非特徴点であるかを特定する。
【００４１】
これにより、特徴点抽出処理回路１１は、図２（ｃ）に示すように、抽出した特徴点の矩形領域Ｒ内における分布を得ることができる。なお、指紋読取部１０が読み取った指紋情報から抽出された各特徴点（ＸReal，ＹReal）に対応する正規化相対座標値（Ｘ，Ｙ）は以下の式１を用いて算出することができる。
【００４２】
Ｘ  ＝  （ＸReal−Ｘstart）／（Ｘend −Ｘstart）×１０２３
Ｙ  ＝  （ＹReal−Ｙstart）／（Ｙend −Ｙstart）×１０２３    …（式１）
なお、座標値（ＸReal，ＹReal），（Ｘstart ，Ｙstart），（Ｘend ，Ｙstart），（Ｘstart ，Ｙend ）のそれぞれは、指紋読取部１０が読み取った指紋情報における各座標値である。また、上記の式１を用いた演算結果における小数点以下は四捨五入する。
【００４３】
図３は、図２（ｃ）に示す特徴点の分布を模式的に示す拡大図であり、矩形領域Ｒ内の各相対座標が示すエリアの値を１ビットで示している。具体的には、各相対座標が示すエリアが特徴点であれば１（図３中では１Ｂ）とし、非特徴点であれば０（図３中では０Ｂ）としてある。
【００４４】
ここで、特徴点データ格納用メモリ１２は、ＤＲＡＭ又はフラッシュメモリ等からなり、上述したように特徴点抽出処理回路１１が指紋情報から抽出した各特徴点の分布を示す特徴点データを格納する。なお、特徴点データ格納用メモリ１２は、図３に示す特徴点データを記憶するため、１０２４［エリア］×１０２４［ライン］×１［ビット］＝１０２４［ビット］×１０２４［ビット］×１［ビット］＝１２８［Ｋバイト］以上の記憶領域を有する。
【００４５】
図４は図３に示す特徴点データの特徴点データ格納用メモリ１２への格納例を示す模式図であり、特徴点データ格納用メモリ１２に１バイト単位でデータを格納する場合の一般的な格納例を示している。図４に示すように、特徴点データ格納用メモリ１２において、メモリアドレス（オフセット値）が00000Hの１バイト（８ビット）には、ＭＳＢ側からＬＳＢ側へ順に図４に示す相対座標値（０，０）〜（７，０）の８相対座標分の特徴点データが格納される。また、メモリアドレスが00001Hの１バイトには、ＭＳＢ側からＬＳＢ側へ順に図４に示す相対座標値（８，０）〜（１５，０）の８相対座標分の特徴点データが格納される。なお、「Ｈ」は１６進数の値であることを示している。
【００４６】
同様にして、特徴点抽出処理回路１１は、相対座標値（１６，０）〜（１２３，０）までの各特徴点データをメモリアドレスが00002H〜0007FHの各１バイトに順次格納し、次の相対座標値（０，１）〜（７，１）の８相対座標分の特徴点データをメモリアドレスが00080Hの１バイトに格納する。更に特徴点抽出処理回路１１は、上述した格納処理を続行し、相対座標値（１０１６，１０２３）〜（１０２３，１０２３）までの各特徴点データをメモリアドレスが1FFFFHの１バイトに格納し、１次データを算出するための特徴点データを生成する。
【００４７】
１次データ算出回路（算出手段）１３は、特徴点抽出処理回路１１が生成して特徴点データ格納用メモリ１２に格納されている特徴点データから、指紋認証装置１が行なう各処理に用いる１次データを算出する。なお、１次データ算出回路１３をＤＳＰ（Digital Signal Processor）デバイスによって構成することにより、高速な演算処理が可能となる。
【００４８】
以下に、１次データ算出回路１３による１次データの算出処理について説明する。１次データ算出回路１３は、図４に示すように特徴点データ格納用メモリ１２に格納された特徴点データに対して、メモリアドレス（オフセット値）が00000H に格納された各データをＭＳＢから順に走査していき、各エリアが特徴点であるか否かを検出する。また、１次データ算出回路１３は、特徴点を検出した場合、各特徴点を示す相対座標値（ｘ，ｙ）を算出する。具体的には、１次データ算出回路１３は、例えばメモリアドレス値ＳのＴビット目のエリアの値が１Ｂ、即ちメモリアドレス値Ｓのビット値Ｔのエリアが特徴点である場合、このエリアを示す相対座標値（ｘ，ｙ）を以下の式２を用いて算出する。
【００４９】
ｘ  ＝  ＭＯＤ（Ｓ÷１２８）×８＋Ｔ
ｙ  ＝  Ｓ÷１２８                      …（式２）
なお、ＭＯＤ（Ｓ÷１２８）は、Ｓを１２８で除した際の余りの値とする。
【００５０】
上記の式２において、「÷１２８」は２値データにおける７ビットの右シフトを、「×８」は同じく３ビットの左シフトをそれぞれ意味している。ここで、図４に示すように、特徴点データ格納用メモリ１２に格納される特徴点データのデータ量は１２８［Ｋバイト］であり、メモリアドレス値Ｓは１７ビットで表され、ビット値Ｔは０〜７の値をとるために３ビットで表される。従って、上記の式２において、Ｘ方向の相対座標値は、メモリアドレス値ＳのＬＳＢから７ビットの値のＬＳＢ側に、ビット値Ｔの３ビットの値を付加した１０ビットの値となり、Ｙ方向の相対座標値は、メモリアドレス値ＳのＭＳＢから１０ビットの値となり、実計算上はシフト演算のみで非常に簡単に相対座標値（ｘ，ｙ）を得ることができる。
【００５１】
１次データ算出回路１３は、上述したように、メモリアドレス値00000H に格納された各データをＭＳＢから順に走査して検出した各特徴点の相対座標値（ｘ，ｙ）を算出すると共に、検出順序に従って各特徴点に特徴点番号を付加し、特徴点番号及び相対座標値を対応させて自身に内蔵されたメモリに一旦記憶しておく。図５は１次データ算出回路１３によって算出されてメモリに一旦格納された各特徴点の相対座標値を示す模式図である。
【００５２】
なお、図５に示すように上記の式２を用いて算出した相対座標値（ｘ，ｙ）は、図３に模式的に示した矩形領域ＲにおいてＸ方向及びＹ方向のそれぞれの最大値を１０２３とした場合の正規化相対座標値（Ｘ，Ｙ）である。従って、１次データ算出回路１３が算出した相対座標値（ｘ，ｙ）は、図３に示す特徴点の分布に対して、図６（ａ）に示す走査方向に従って相対座標値（０，０）から順に走査していき、特徴点（ビット値が１Ｂ）であると検出されたエリアに対して、図６(ｂ)に示すように順次付加した特徴点番号に対応する特徴点を示す相対座標値（Ｘ，Ｙ）である。
【００５３】
本実施形態では、上述したように図４に示す特徴点データからシフト演算のみで各特徴点の相対座標値を算出することができるため、図４に示す特徴点データを特徴点データ格納用メモリ１２に格納しておく構成について説明しているが、図５に示すように各特徴点を示す相対座標値を特徴点データとして格納する構成としてもよい。
【００５４】
ここで、上述したように、１次データ算出回路１３は、１次データを生成する場合、上述したように算出した各特徴点の相対座標値と共に乱数テーブルを用いており、指紋認証装置１は、この乱数テーブルを各ユーザに配布してあるＩＣカードから読み取って取得する。従って、指紋認証装置１はＩＣカードへのアクセスが可能なＩＣカードリーダ・ライタ２３を備えており、所定位置にＩＣカードが載置された場合又はかざされた場合、ＩＣカードリーダ・ライタ２３によってＩＣカードに記憶してある乱数テーブルを読み取る。また、ＩＣカードリーダ・ライタ２３は、ＩＣカードから読み取った乱数テーブルをメモリアクセス回路１５へ転送する。
【００５５】
図７は乱数テーブルの構成例を示す模式図であり、図３に示す特徴点の分布情報に対応した形状を有している。具体的には、乱数テーブルは、図３に示す矩形領域Ｒにおいて、相対座標値（０，０）〜（１０２３，１０２３）の各エリアを１６×１６ブロックに分割し、１６×１６個の乱数データにより構成されている。また、各乱数データは０〜６３の整数値で表されており、ＩＣカード内のメモリには、図８に示すように６ビットの２進数データで格納されている。
【００５６】
図８は図７に示す乱数テーブルのＩＣカード内のメモリへの格納例を示す模式図であり、ＩＣカード内のメモリには各乱数データを１バイト単位で格納する。なお、各乱数データは上述したように６ビットであるためＭＳＢから２ビットは無効として使用しない。図８に示すように、ＩＣカード内のメモリにおいて、メモリアドレス（オフセット値）が00Hの１バイト（8ビット）中のＬＳＢ側の６ビットには、ｘ方向の相対座標値が０〜６３でｙ方向の相対座標値が０〜６３に対応する乱数データ「１１（２進数で001011）」が格納される。また、メモリアドレスが01Hの１バイト中のＬＳＢ側の６ビットには、ｘ方向の相対座標値が６４〜１２７でｙ方向の相対座標値が０〜６３に対応する乱数データ「４３（２進数で101011）」が格納される。
【００５７】
同様にして各乱数データがＩＣカード内のメモリに順次格納され、メモリアドレスがFFHの１バイト中のＬＳＢ側の６ビットには、ｘ方向の相対座標値が９６０〜１０２３でｙ方向の相対座標値が９６０〜１０２３に対応する乱数データ「５０（２進数で110010）」が格納される。従って、ＩＣカードは、８［ビット］（無効の２ビットを含む）×１６×１６［個］＝２５６［バイト］以上の記憶領域を有する。
【００５８】
ところで、ＩＣカードには、ユーザに配布された時点では図８に示すような乱数テーブルは記憶されておらず、各ユーザが、自身の乱数テーブルを作成するために、指紋認証装置１に設けられた乱数テーブル変更指示入力部１６を操作する。なお、乱数テーブルは、ＩＣカードが配布されて認証に用いる登録用の２次データを生成する際に作成するだけでなく、定期的に変更することが好ましい。その理由は、乱数テーブルを変更するということは、１次データ算出回路１３によって生成される１次データが変更されるということになり、ＩＣカードに登録される２次データも変更されるため、指紋認証に係るセキュリティをより向上させることができるからである。
【００５９】
乱数テーブル変更指示入力部１６は、具体的には操作パネルであり、ユーザが操作することにより乱数テーブルの作成が指示された場合、その旨を示す制御信号を出力して乱数テーブル生成回路１７へ与える。乱数テーブル生成回路（乱数生成手段）１７は、乱数発生回路を有しており、図７に示すような０〜６３までの乱数データを１６×１６個生成すると共に、生成した各乱数データを各ブロックに割り当てる。乱数テーブル生成回路１７は、生成した乱数テーブル（乱数情報）を図８に示すように乱数テーブル格納用メモリ（乱数記憶手段）１８に格納する。
【００６０】
なお、乱数テーブル変更指示入力部１６は、乱数テーブルの作成指示だけでなく、任意の数字等の乱数の発生に用いられる情報も入力するようにしてもよい。また、ユーザから乱数テーブルの作成指示が入力された場合だけでなく、例えば、ＩＣカードリーダ・ライタ２３がＩＣカードにアクセスした場合に乱数テーブルがＩＣカードに記憶されていないことを検知した場合に、乱数テーブルの生成を自動的に開始するように構成することもできる。
【００６１】
上述したようにユーザからの作成指示に従って乱数テーブル生成回路１７が生成した乱数テーブルは、メモリアクセス回路１５によって乱数テーブル格納用メモリ１８から読み出されてＩＣカードリーダ・ライタ２３へ転送され、各ユーザに対応するＩＣカード（乱数記憶手段）内のメモリに格納される。
【００６２】
指紋認証装置１が認証処理を行なう場合又は認証に用いる登録用の２次データの生成処理を行なう場合、メモリアクセス回路１５はＩＣカードリーダ・ライタ２３によって、上述したように乱数テーブルが格納されたＩＣカードから乱数テーブルを読み出して乱数テーブル格納用メモリ１８に一時的に記憶しておく。
【００６３】
従って、１次データ算出回路１３は、ＩＣカードから読み出されて乱数テーブル格納用メモリ１８に記憶されている乱数テーブルと、上述したように算出して図５に示すように１次データ算出回路１３内部のメモリに格納された各特徴点の相対座標値とを用いて１次データを算出することができる。図９は１次データ算出回路１３による１次データの算出処理を説明するための説明図である。以下の説明では、図５に示す相対座標値及び図７に示す乱数テーブルに基づく算出処理を例とする。
【００６４】
図９中の特徴点番号Ｎ、主走査方向相対座標ｘN 及び副走査方向相対座標ｙNはそれぞれ、図５に示す各特徴点の特徴点番号Ｎ及び相対座標値（ｘN，ｙN）である。まず、１次データ算出回路１３は、主走査方向相対座標ｘN及び副走査方向相対座標ｙNのそれぞれが、図７に示すように主走査方向及び副走査方向のそれぞれに１６分割されたブロックのいずれに属するかを判断する。また、１次データ算出回路１３は、主走査方向相対座標ｘN及び副走査方向相対座標ｙNによって特定される各特徴点が属するブロックを特定し、特定したブロックに割り当てられた乱数データが示す乱数値ＲNを取得する。更に、１次データ算出回路１３は、主走査方向及び副走査方向のそれぞれの相対座標ｘN，ｙNに、特定した乱数値ＲNを乗じ、ｘN×ＲN及びｙN×ＲNを算出する。
【００６５】
具体的には、図９において特徴点番号Ｎ＝０の特徴点について、主走査方向相対座標ｘ0＝４７６は４４８〜５１２の範囲内にあり、副走査方向相対座標ｙ0＝５４は０〜６４の範囲内にあり、これにより１次データ算出回路１３は、相対座標（ｘ0，ｙ0）＝（４７６，５４）の特徴点に対応する乱数値ＲN＝３８であると特定する。次に１次データ算出回路１３は、相対座標（ｘ0，ｙ0）＝（４７６，５４）のそれぞれに、特定した乱数値ＲN＝３８を乗じ、ｘ0×Ｒ0＝１８０８８（２進数で0100011010101000）及びｙ0×Ｒ0＝２０５２（２進数で0000100000000100）を算出する。
【００６６】
図１０は上述した１次データの算出過程を示す模式図である。１次データ算出回路１３は、上述した演算を１５個の各特徴点について行なうことによって１５組のｘN×ＲN値，ｙN×ＲN値を算出する。ここで、ｘN×ＲN値，ｙN×ＲN値はそれぞれ、０〜１０２３の１０ビットの相対座標値（ｘN，ｙN）及び０〜６３の６ビットの乱数値ＲNの乗算結果であるので１６ビットで表される。従って、各特徴点は１６ビットのｘN×ＲN値のＬＳＢ側に１６ビットのｙN×ＲN値を付加した３２ビットの値で表され、１次データ算出回路１３は、各特徴点を示す３２ビットの値を１５個連続させることにより、図１０（ａ）で示すような１次データを生成することができる。
【００６７】
ここで、１次データ格納用メモリ１４は、ＤＲＡＭ又はフラッシュメモリ等からなり、上述したように１次データ算出回路１３が算出した１次データを格納する。なお、１次データ格納用メモリ１４は、図１０（ａ）に示す１次データを記憶するため、３２［ビット］×（Ｎ＋１）［個］＝４×（Ｎ＋１）［バイト］以上の記憶領域が必要である。なお、本実施形態ではＮは１４である。
【００６８】
図１１は図１０に示す１次データの１次データ格納用メモリ１４への格納例を示す模式図である。１次データ格納用メモリ１４は１次データを４バイト単位で格納する。具体的には、図１１に示すように、１次データ格納用メモリ１４のメモリアドレス（オフセット値）が0000H〜0003Hの４バイト（32ビット）において、ＭＳＢ側の１６ビットには特徴点番号０の特徴点について算出したｘ0×Ｒ0値が、ＬＳＢ側の１６ビットには特徴点番号０の特徴点について算出したｙ0×Ｒ0値がそれぞれ格納される。また、メモリアドレスが0004H〜0007Hの４バイト（32ビット）において、ＭＳＢ側の１６ビットには特徴点番号１の特徴点について算出したｘ1×Ｒ1値が、ＬＳＢ側の１６ビットには特徴点番号１の特徴点について算出したｙ1×Ｒ1値がそれぞれ格納される。
【００６９】
同様にして各特徴点を示す３２ビットのデータが１次データ格納用メモリ１４に順次格納され、メモリアドレスが0038H〜003BHの４バイト（32ビット）において、ＭＳＢ側の１６ビットには特徴点番号１４の特徴点について算出したｘ14×Ｒ14値が、ＬＳＢ側の１６ビットには特徴点番号１４の特徴点について算出したｙ14×Ｒ14値がそれぞれ格納される。従って、本実施形態の１次データ格納用メモリ１４は、３２［ビット］×１５［個］＝６０［バイト］以上の記憶領域を有する。
【００７０】
指紋認証装置１が登録用の２次データの生成処理を行なっている場合、図１１に示す１次データが１次データ格納用メモリ１４に格納された後、符号化テーブル生成回路１９が、この１次データに対して最適な符号化処理を行なうための符号化テーブルを生成する。なお、本実施形態では、符号化回路２１はランレングス符号化処理を行なうので、符号化テーブル生成回路１９はそのためのランレングス符号化テーブルを生成する。
【００７１】
具体的には、符号化テーブル生成回路１９は、図１１に示すように１次データ格納用メモリ１４に格納された１次データをメモリアドレス（オフセット値）0000H のＭＳＢから順次読み出し、図１０（ａ）に示すような連続した１次データを取得する。符号化テーブル生成回路１９は、連続した１次データに対して公知のハフマン符号作成処理を行ない、図１２に示すようなランレングス符号化テーブルを生成し、生成したランレングス符号化テーブルを符号化テーブル格納用メモリ２０に格納する。
【００７２】
ここで、１次データは、図１１に示すように２進数で格納されているのでビット値０又はビット値１の羅列であり、ビット値０の連続領域（１つでもよい）とビット値１の連続領域（１つでもよい）とが交互に繰り返されるデータ構成を有する。また、１次データは、上述した通りｘN×ＲN値及びｙN×ＲN値により構成されるため、主走査方向相対座標値ｘN＝０（0000000000B ）且つ乱数値ＲN＝０（000000B ）の場合、又は副走査方向相対座標値ｙN＝０且つ乱数値ＲN＝０の場合にのみｘN×ＲN値及びｙN×ＲN値の１６ビット全てが０となる。なお、「Ｂ」は２進数の値をであることを示している。
【００７３】
同様に、主走査方向相対座標値ｘN＝１０２３（1111111111B ）且つ乱数値ＲN＝６３（111111B ）の場合、又は副走査方向相対座標値ｙN＝１０２３（1111111111B ）且つ乱数値ＲN＝６３（111111B ）の場合にのみｘN×ＲN値及びｙN×ＲN値の１６ビット全てが１となり、これら以外の相対座標値（ｘN，ｙN）及び乱数値ＲNの組み合わせの場合は、算出されるｘN×ＲN値及びｙN×ＲN値の１６ビット内にビット値０と１とが混在することになる。
【００７４】
このような構成の１次データに対して、符号化テーブル生成回路１９は、ビット値０又は１の最大連続数、即ちランレングス数を１６としたランレングス符号化テーブルを生成すればよく、また、ビット値０及び１の同一ランレングスに対して各別の可変長符号を割り当てる必要もない。従って、符号化テーブル生成回路１９は、図１２に示すように、ランレングスが１〜１６の１６パターンに対する可変長符号を規定すればよく、データ量が非常に小さいランレングス符号化テーブルとなる。なお、１次データはユーザ毎に異なるため、ランレングス符号化テーブルもユーザ毎に異なるものとなり、これにより、１次データを符号化圧縮する際に用いる符号化テーブルをユーザ毎に異なるものとすることができる。
【００７５】
図１２に示すランレングス符号化テーブルが符号化テーブル格納用メモリ２０に格納された場合、メモリアクセス回路１５は、符号化テーブル生成回路１９を介して１次データ格納用メモリ１４のメモリアドレス（オフセット値）0000H のＭＳＢから連続的に１次データを読み出すと共に、符号化テーブル格納用メモリ２０からランレングス符号化テーブルを読み出し、１次データ及びランレングス符号化テーブルを符号化回路２１へ転送する。符号化回路（生成手段）２１は、メモリアクセス回路１５から取得した１次データ中のビット値０又は１の連続領域を、ランレングス符号化テーブルを参照しながら順次可変長符号に置き換えていき、２次データを生成し、生成した２次データを２次データ格納用メモリ２２に格納する。
【００７６】
図１３は１次データから２次データを生成するランレングス符号化の処理過程を示す模式図である。符号化回路２１は、図１３（ａ）に示すように１次データ格納用メモリ１４から読み出した１次データに対して、図１３（ｂ）に示すように各ビット値０，１のランレングスを検出する。そして、符号化回路２１は、ランレングス符号化テーブルを参照しながら、検出した各ビット値０，１のランレングスを可変長符号に順次置き換え、図１３（ｃ）に示すような２次データを生成する。なお、２次データは、図１３（ｃ）に示すように、先頭の１ビットのビット値（図中斜体の“０”）で１次データの先頭のビット値を示しており、２ビット目以降が可変長符号である。
【００７７】
また、メモリアクセス回路１５は、符号化回路２１で生成した２次データが２次データ格納用メモリ２２に格納された場合、２次データを読み出してＩＣカードリーダ・ライタ２３へ転送し、ＩＣカードリーダ・ライタ（記憶処理手段）２３によって所定位置に装着されているＩＣカード内のメモリに格納させる。従って、ＩＣカード内のメモリには乱数テーブル及び２次データが格納される。ここで、乱数テーブルのデータ量は２５６［バイト］であり、２次データのデータ量は数１０［バイト］であるため、現在普及しているＩＣカードの内蔵メモリ（一般的には５１２［Ｋバイト］〜数［Ｍバイト］程度）に十分格納可能である。
【００７８】
なお、符号化回路２１が１次データから２次データを生成する際に用いるランレングス符号化テーブルは、指紋認証装置１の内部、具体的には符号化テーブル格納用メモリ２０で管理する。これにより、ＩＣカードを紛失した場合であっても、ＩＣカードに格納された２次データを復号するためのランレングス符号化テーブルがないので１次データに復号することができない。従って、ＩＣカードに乱数テーブルが格納されていても、１次データを得ることができないため、指紋情報の特徴点データを特定することができず、他者によるなりすましを防止することができる。
【００７９】
また、符号化テーブル格納用メモリ２０にはユーザＩＤ入力部２４が接続されている。ユーザＩＤ入力部２４は、具体的には操作パネルであり、ユーザによって入力されたＩＤコードを受け付け、受け付けたＩＤコードを符号化テーブル格納用メモリ２０へ転送する。符号化テーブル格納用メモリ２０は、ユーザＩＤ入力部２４から取得したＩＤコードに対応させてそれぞれのランレングス符号化テーブルを管理する。従って、指紋認証装置１で指紋認証を行ないたいユーザは、指紋読取部１０による指紋の読み取りと、ＩＣカードリーダ・ライタ２３の所定位置へのＩＣカードの載置と共に、ユーザＩＤ入力部２４からのＩＤコードの入力を行なう必要がある。
【００８０】
なお、ユーザＩＤ入力部２４を、ＩＤコードが入力された場合に、符号化テーブル格納用メモリ２０に既に格納されているランレングス符号化テーブルに対応するＩＤコードと重複していないことを確認する構成とすることにより、指紋認証装置１が認証処理を行なう際にユーザが入力したＩＤコードに基づいて、各ユーザに対応するランレングス符号化テーブルを符号化テーブル格納用メモリ２０から読み出すことができる。
【００８１】
上述したように、自身のＩＣカード内のメモリに乱数テーブル及び２次データを格納すると共に、指紋認証装置１の符号化テーブル格納用メモリ２０に自身のランレングス符号化テーブルを格納したユーザは、指紋認証装置１が搭載された機器を利用する際の指紋認証を行なうことができる。
【００８２】
以下に、指紋認証装置１による指紋を用いた認証処理について説明する。指紋認証装置１が搭載された機器を利用するために指紋認証を要求されたユーザは、まず、ＩＣカードリーダ・ライタ２３の所定位置にＩＣカードを載置し、指紋読取部１０の指の接触面に認証用として予め登録してある指を接触させると共に、ユーザＩＤ入力部２４から予め登録してあるＩＤコードを入力する。なお、ユーザは、ＩＣカードの載置、指の接触及びＩＤコードの入力をどの順番で行なってもよいが、指紋認証装置１が備える表示モニタ（図示せず）にそれぞれの処理の実行を促す画面を表示させた場合には、ユーザはスムーズに認証を行なうことができる。
【００８３】
指紋認証装置１が認証処理を行なう場合、まず、ＩＣカードリーダ・ライタ（読出手段）２３が、所定位置に載置されたＩＣカードにアクセスして乱数テーブル及び２次データを読み出し、それぞれメモリアクセス回路１５を介して、乱数テーブル格納用メモリ１８及び２次データ格納用メモリ２２に格納する。また、メモリアクセス回路１５は、ユーザＩＤ入力部２４から入力されたＩＤコードに対応するランレングス符号化テーブルを特定しておく。
【００８４】
指紋読取部１０、特徴点抽出処理回路１１及び１次データ算出回路１３は、指紋認証装置１が認証用の登録データの生成処理を行なう場合と同様の処理を順次行ない、指紋読取部１０で読み取った指紋情報に基づいて特徴点データを生成し、生成した特徴点データと、ＩＣカードから読み出して乱数テーブル格納用メモリ１８に記憶してある乱数テーブルとにより認証対象の１次データを算出し、１次データ格納用メモリ１４に記憶させておく。
【００８５】
一方で、メモリアクセス回路１５は、ＩＣカードから読み出して２次データ格納用メモリ２２に格納してある２次データと、ユーザＩＤ入力部２４から入力されたユーザＩＤに対応するランレングス符号化テーブルとを復号化回路２５へ転送する。復号化回路（復号化手段）２５は、メモリアクセス回路１５から取得した２次データを、ランレングス符号化テーブルを参照しながら、図１３で示したランレングス符号化処理と逆の復号化処理を行なうことにより認証処理に用いる認証用の１次データに復号し、生成した認証用の１次データを照合回路２６へ転送する。
【００８６】
照合回路（認証手段）２６は、１次データ格納用メモリ１４に格納してある１次データを順次読み出し、読み出した認証対象の１次データと、復号化回路２５から順次転送されてくる認証用の１次データとを１６ビット単位で比較する。具体的には、まず照合回路２６は、以下の式３を用いて、認証用の１次データと認証対象の１次データとの差異xDIFFN，yDIFFNを１６ビット単位で算出する。
【００８７】
xDIFFN＝（認証用の１次データ中の）ｘN ×Ｒ N
−  （認証対象の１次データ中の）ｘN ×Ｒ N
yDIFFN ＝（認証用の１次データ中の）ｙN ×Ｒ N
−  （認証対象の１次データ中の）ｙN ×Ｒ N        …（式３）
なお、本実施形態では、Ｎ＝０〜１４である。
【００８８】
次に照合回路２６は、Ｎ＝０〜１４のそれぞれに対して算出した差異xDIFFN，yDIFFNを予め設定された閾値Thと比較して差異xDIFFN，yDIFFNのそれぞれが閾値Thよりも大きい場合、総合差異DIFFCount を１ずつインクリメントする。そして、照合回路２６は、全ての差異xDIFFN，yDIFFNと閾値Thとの比較が終了した時点での総合差異DIFFCountと予め設定された認証不可閾値ERRThとを比較し、総合差異DIFFCountが認証不可閾値ERRThよりも小さい場合に認証されたと特定し、総合差異DIFFCountが認証不可閾値ERRThよりも大きい場合に認証されなかったと特定する。
【００８９】
上述した構成により、指紋認証装置１は、各ユーザが指紋認証に用いる登録用の２次データをまだ有していない場合には、ユーザ毎に乱数テーブル、ランレングス符号化テーブル及び２次データを生成し、生成した乱数テーブル及び２次データは各ユーザに配布されたＩＣカード内のメモリに記憶させ、ランレングス符号化テーブルは、ユーザＩＤ入力部２４から入力されたＩＤコードに対応させて符号化テーブル格納用メモリ２０に記憶させる。このような登録処理を行なっておくことにより、ユーザは、指紋認証装置１による認証処理を行なうことができる。
【００９０】
一方、指紋認証装置１は、各ユーザが指紋認証を行なう場合、各ユーザから取得した指紋情報から認証対象となる１次データを生成すると共に、各ユーザが所有するＩＣカードに記憶されている２次データを復号して認証用の１次データを生成し、認証対象の１次データ及び認証用の１次データの差異に基づいて、各ユーザが適切な権限を有するユーザであるか否かを判断することができる。
【００９１】
以下に、上述した構成の指紋認証装置１による登録用の２次データの生成処理及び認証処理について説明する。図１４乃至図１６は本発明に係る指紋認証装置１による処理の手順を示すフローチャートである。なお、以下の処理は、図示しない制御部に内蔵されたＲＯＭに記憶してある制御プログラムに従って制御部が上述したようなハードウェア各部を制御することにより実行される。また、以下の説明では、ＩＣカードに２次データが既に格納されているか否かに基づいて認証処理を行なうか登録用の２次データの生成処理を行なうかを判断する構成を例とする。更に、指紋の読み取り、ユーザＩＤの入力及びＩＣカードの載置等の実行を、それぞれを指示する画面を順次表示モニタ（図示せず）に表示させることによってユーザに促す構成を例として説明するが、それぞれの実行順序に制限はない。
【００９２】
指紋認証装置１の制御部は、通常動作における待機状態中に表示モニタに「ＩＣカードを所定位置に載置してください」等のメッセージを表示させており、ユーザに対してＩＣカードの所定位置への載置を指示する（Ｓ１）。制御部は、ＩＣカードリーダ・ライタ２３の所定位置にＩＣカードが載置されているか否かを判断しており（Ｓ２）、載置されていると判断した場合（Ｓ２：ＹＥＳ）、ＩＣカードリーダ・ライタ２３にＩＣカードへのアクセスを行なわせ（Ｓ３）、ＩＣカードに既に２次データが格納されているか否かを判断する（Ｓ４）。なお、ＩＣカードが載置されない場合（Ｓ２：ＮＯ）、制御部はＩＣカードの所定位置への載置を促す指示を継続する（Ｓ１）。
【００９３】
ＩＣカードリーダ・ライタ２３は、ＩＣカードに２次データが格納されていないと判断した場合（Ｓ４：ＮＯ）、即ちユーザが指紋認証に用いる登録用の２次データをまだ有しておらず、登録用の各データを生成したい場合、乱数テーブル生成回路１７に乱数テーブルを生成させて乱数テーブル格納用メモリ１８に格納させる（Ｓ５）。なおこの場合、メモリアクセス回路１５は、生成された乱数テーブルをＩＣカードリーダ・ライタ２３によって所定位置に載置されているＩＣカードに書き込む（Ｓ６）。
【００９４】
次に指紋認証装置１の制御部は、「指を読取面に接触させてください」等のメッセージを表示させてユーザに対して指紋の読取を指示し（Ｓ７）、指紋読取部１０は、読取面に接触している指からの指紋情報の読取が完了したか否かを判断しており（Ｓ８）、読取が完了していない場合（Ｓ８：ＮＯ）、制御部は指紋の読取の指示を継続する（Ｓ７）。指紋読取部１０による指紋情報の読取が完了した場合（Ｓ８：ＹＥＳ）、制御部は、取得した指紋情報から特徴点抽出処理回路１１に特徴点を抽出させて特徴点データを生成させ、特徴点データ格納用メモリ１２に格納させる（Ｓ９）。
【００９５】
次に、制御部は、１次データ算出回路１３に、メモリアクセス回路１５によって乱数テーブル格納用メモリ１８から読み出した乱数テーブルと、特徴点データ格納用メモリ１２に格納された特徴点データとに基づいて１次データを生成させ、１次データ格納用メモリ１４に格納させる（Ｓ１０）。次に、制御部は、符号化テーブル生成回路１９に１次データ格納用メモリ１４に格納された１次データを符号化するためのランレングス符号化テーブルを生成させ（Ｓ１１）、符号化テーブル格納用メモリ２０に一時的に格納させる。
【００９６】
次に、制御部は、符号化回路２１に、１次データ格納用メモリ１４に格納された１次データに対して、符号化テーブル格納用メモリ２０に格納されたランレングス符号化テーブルを用いたランレングス符号化処理を行なわせて２次データを生成させ、２次データ格納用メモリ２２に格納させる（Ｓ１２）。また、メモリアクセス回路１５は、生成された２次データをＩＣカードリーダ・ライタ２３の所定位置に載置されているＩＣカードに書き込む（Ｓ１３）。
【００９７】
次に制御部は、「ＩＤコードを入力してください」等のメッセージを表示モニタに表示させてＩＤコードの入力を指示し（Ｓ１４）、ユーザＩＤ入力部２４が、ユーザにより入力されたＩＤコードを受け付けたか否かを判断しており（Ｓ１５）、ＩＤコードを受付けていない場合（Ｓ１５：ＮＯ）、ＩＤコードの入力の指示を継続する（Ｓ１４）。また、ユーザＩＤ入力部２４がＩＤコードを受け付けた場合（Ｓ１５：ＹＥＳ）、制御部は、ステップＳ１１で生成したランレングス符号化テーブルを、受け付けたＩＤコードに対応させて符号化テーブル格納用メモリ２０に格納させ（Ｓ１６）、制御部は「登録用データが生成できました」等のメッセージを表示モニタに表示させて認証用の各データの生成完了をユーザに通知する（Ｓ１７）。
【００９８】
一方、ステップＳ４で、ＩＣカードに既に２次データが格納されていると判断した場合（Ｓ４：ＹＥＳ）、即ちユーザが既に登録してある各データを用いて指紋認証を行ないたい場合、制御部は、メモリアクセス回路１５に、ＩＣカードリーダ・ライタ２３によってＩＣカードから乱数テーブルを読み出させて乱数テーブル格納用メモリ１８に格納させると共に（Ｓ１８）、ＩＣカードから２次データを読み出させて２次データ格納用メモリ２２に格納させる（Ｓ１９）。
【００９９】
次に制御部は、「指を読取面に接触させてください」等のメッセージを表示させてユーザに対して指紋の読取を指示し（Ｓ２０）、指紋読取部１０の読取面に接触された指からの指紋情報の読取が完了したか否かを判断しており（Ｓ２１）、読取が完了していない場合（Ｓ２１：ＮＯ）、制御部は指紋の読取の指示を継続する（Ｓ２０）。指紋読取部１０による指紋情報の読取が完了した場合（Ｓ２１：ＹＥＳ）、制御部は、取得した指紋情報から特徴点抽出処理回路１１に特徴点を抽出させて特徴点データを生成させ、特徴点データ格納用メモリ１２に格納させる（Ｓ２２）。
【０１００】
次に、制御部は、１次データ算出回路１３に、特徴点データ格納用メモリ１２に格納された特徴点データと、ＩＣカードから読み出されて乱数テーブル格納用メモリ１８に格納してある乱数テーブルとに基づいて、認証対象の１次データを算出させ、１次データ格納用メモリ１４に格納させる（Ｓ２３）。次に制御部は、「ＩＤコードを入力してください」等のメッセージを表示モニタに表示させてＩＤコードの入力を指示し（Ｓ２４）、ユーザＩＤ入力部２４が、ユーザにより入力されたＩＤコードを受け付けたか否かを判断しており（Ｓ２５）、ＩＤコードを受付けていない場合（Ｓ２５：ＮＯ）、ＩＤコードの入力の指示を継続する（Ｓ２４）。
【０１０１】
ユーザＩＤ入力部２４がＩＤコードを受け付けた場合（Ｓ２５：ＹＥＳ）、制御部は、符号化テーブル格納用メモリ２０に格納されているランレングス符号化テーブルから、受け付けたＩＤコードに対応するランレングス符号化テーブルを特定して読み出し（Ｓ２６）、２次データ格納用メモリ２２に格納された２次データと共に復号化回路２５へ転送する。制御部は、復号化回路２５に、メモリアクセス回路１５から取得する２次データに、ランレングス符号化テーブルに基づく復号化処理を行なわせることによって認証用の１次データを生成させ、照合回路２６へ転送させる（Ｓ２７）。
【０１０２】
制御部は、照合回路２６に、１次データ格納用メモリ１４に格納されている認証対象の１次データと、復号化回路２５から転送されてくる認証用の１次データとを比較させ（Ｓ２８）、照合回路２６での比較による認証結果を表示モニタに表示させてユーザに通知する（Ｓ２９）。
【０１０３】
このように、指紋情報だけでなく、指紋情報から１次データを生成する際に用いる乱数テーブルも用いて認証処理を行なうことにより、従来において複雑且つ高負荷の画像処理技術を必要としていた指紋認証を、より単純且つ低負荷の演算処理で、認証性及びセキュリティ性を確保しつつ実現することができる。また、よりセキュリティを向上させるためには、認証処理に用いる２次データを定期的に変更することが望ましい。
【０１０４】
更に、例えば、予め右手の人差し指の指紋情報に基づく２次データ、乱数テーブル及びランレングス符号化テーブルを認証用データとして登録しておいたときに、この人差し指を怪我した場合であっても、異なる指の指紋情報に基づく認証用データを再度生成して登録しておくことにより、指紋認証装置１を搭載した機器の使用が指を怪我したことによって妨げられない。
【０１０５】
次に、上述したように特徴点データ及び乱数テーブルから１次データを算出する１次データ算出回路１３をＤＳＰデバイスによって構成した場合の具体的な処理内容を説明する。上述した１次データ算出回路１３による１次データの算出処理は、図４に示すデータ構成で特徴点データが特徴点データ格納用メモリ１２に格納してあり、図７に示すデータ構成で乱数テーブルが乱数テーブル格納用メモリ１８に格納してあるとすると、積和演算処理を主体とするＤＳＰデバイスによって高速に実行することができる。図１７及び図１８はＤＳＰデバイスによる１次データの算出処理の手順を示すフローチャートである。
【０１０６】
なお、現在多くの機器に搭載されている一般的なＤＳＰデバイスのモデルとして、演算用レジスタ幅が３２［ビット］のデバイスを用いた例を説明する。ＤＳＰ内部には、汎用レジスタとして演算用レジスタが複数（一般には８〜３２レジスタ）存在するが、以下の説明では、特徴点データにおけるｘ方向の相対座標値を格納するｘ座標レジスタ、ｙ方向の相対座標値を格納するｙ座標レジスタ、１次データ格納用メモリ１４のメモリアドレスを格納するメモリポインタレジスタ、特徴点データの各ビット値を格納するTMP1レジスタ、乱数テーブル格納用メモリ１８から読み出された乱数値（６ビット）を格納するTMP2レジスタ、１次データ算出回路１３によって算出された１次データ（ｘN×ＲN，ｙN×ＲN）を格納するTMP3レジスタの６レジスタを備えるＤＳＰデバイスを用いる。なお、ｘ座標レジスタ、ｙ座標レジスタの初期値をそれぞれ０とし、メモリポインタレジスタの初期値を１次データ格納用メモリ１４の先頭アドレスとする。
【０１０７】
ＤＳＰデバイスにより構成される１次データ算出回路１３は、まず、自身内部のｘ座標レジスタ、ｙ座標レジスタ及びメモリポインタレジスタの各レジスタを初期化する（Ｓ３１）。次に、１次データ算出回路１３は、特徴点データ格納用メモリ１２のメモリアドレス（オフセット値）00000H 〜00003Hに格納された３２ビットの特徴点データを読み出し、TMP1レジスタのＬＳＢから順次ＭＳＢまで格納していき（Ｓ３２）、TMP1レジスタのＬＳＢのビット値が０であるか１であるかを判断する（Ｓ３３）。
【０１０８】
ここで、TMP1レジスタのＬＳＢ（０ビット目）の格納データは、図３に示す特徴点データにおける相対座標値（Ｘ，Ｙ）＝（０，０）のデータに相当し、１ビット目には相対座標値（Ｘ，Ｙ）＝（１，０）のデータが可能され、２ビット目には相対座標値（Ｘ，Ｙ）＝（２，０）のデータが格納され、同様にして、３１ビット目には相対座標値（Ｘ，Ｙ）＝（３１，０）のデータが格納される。
【０１０９】
１次データ算出回路１３は、TMP1レジスタのＬＳＢのビット値が１でないと判断した場合（Ｓ３３：ＮＯ）、即ち相対座標値（Ｘ，Ｙ）＝（０，０）が特徴点でない場合、ステップＳ４１の処理へ移行し、TMP1レジスタの格納データを１ビット右にシフトさせると共に（Ｓ４１）、ｘ座標レジスタの値を１だけインクリメントし（Ｓ４２）、ｘ座標レジスタが示す値が３２の倍数であるか否かを判断する（Ｓ４３）。
【０１１０】
１次データ算出回路１３は、ｘ座標レジスタが示す値が３２の倍数でないと判断した場合（Ｓ４３：ＮＯ）、即ち、ステップＳ３２で読み出してTMP1レジスタに格納した３２ビットの特徴点データに対して０であるか１であるかの判断処理が完了していない場合、ステップＳ３３に処理を戻し、ステップＳ４１で右シフトさせたTMP1レジスタのＬＳＢのビット値が０であるか１であるかを判断する（Ｓ３３）。
【０１１１】
一方、ステップＳ３３でTMP1レジスタのＬＳＢのビット値が１であると判断した場合（Ｓ３３：ＹＥＳ）、１次データ算出回路１３は、このときのｘ座標レジスタ及びｙ座標レジスタのそれぞれが示す値を用いて、以下の式４に基づいて、図７に示す乱数テーブルにおいて、ｘ座標レジスタ及びｙ座標レジスタが示す相対座標に対応する乱数値が格納されているメモリアドレスを算出する（Ｓ３４）。
【０１１２】
乱数テーブルのメモリアドレス（オフセット値）
＝（ｙ座標レジスタ値÷６４）×１６＋（ｘ座標レジスタ値÷６４）
＝（ｙ座標レジスタ値＞＞６）＜＜４＋（ｘ座標レジスタ値＞＞６）    …（式４）
なお、「＞＞６」は右に６ビットシフト、「＜＜４」は左に４ビットシフトをそれぞれ示す。
【０１１３】
このように、各特徴点に対応する乱数値を乱数テーブル格納用メモリ１８から読み出すためにメモリアドレスを算出する演算処理は、２の倍数による乗算及び除算と加算とによって実行されるため、上記の式４に示すように各１個のシフト演算及び加算の２処理で完了する。従って、積和演算及びシフト演算を高速に行なうことが可能なＤＳＰデバイスを用いることにより、高速な演算処理が可能となる。
【０１１４】
次に、１次データ算出回路１３は、算出したメモリアドレスを用いて、乱数テーブル格納用メモリ１８にアクセスし、対応する乱数値ＲN を読み出してTMP2レジスタに格納する（Ｓ３５）。１次データ算出回路１３は、「ｘ座標レジスタの値」×「TMP2レジスタの値」（ｘN×ＲN値）を実行し（Ｓ３６）、得られた１６ビットのｘN×ＲN値をTMP3レジスタのＬＳＢ側の１６ビットに格納する。
【０１１５】
１次データ算出回路１３は、「ｙ座標レジスタの値」×「TMP2レジスタの値」（ｙN×ＲN値）を実行し（Ｓ３７）、得られた１６ビットのｙN×ＲN値をTMP3レジスタのＭＳＢ側の１６ビットに格納し、ｘN×ＲN値及びｙN×ＲN値からなる３２ビットのTMP3レジスタの値（１次データ）を、メモリポインタレジスタが示すメモリアドレスに基づいて１次データ格納用メモリ１４に格納する（Ｓ３８）。次に、１次データ算出回路１３は、メモリポインタレジスタの値を１だけインクリメントし（Ｓ３９）、インクリメントされたメモリポインタレジスタの値が所定値以上、本実施形態では、図１１に示すように００３ＢH 以上であるか否かを判断し（Ｓ４０）、所定値以上であると判断した場合（Ｓ４０：ＹＥＳ）、上述した１次データの算出処理を終了する。
【０１１６】
１次データ算出回路１３は、メモリポインタレジスタの値が所定値以上でないと判断した場合（Ｓ４０：ＮＯ）、ステップＳ４１及びＳ４２の処理を繰り返し、ステップＳ３２で読み出してTMP1レジスタに格納した３２ビットの特徴点データに対して０であるか１であるかの判断処理を行なうと共に、各特徴点データが１であると判断した場合には１次データの算出処理を実行する。
【０１１７】
ステップＳ４３で、ｘ座標レジスタが示す値が３２の倍数であると判断した場合（Ｓ４３：ＹＥＳ）、即ち、ステップＳ３２でTMP1レジスタに格納した３２ビットの特徴点データに対する上述した処理が完了したと判断した場合、１次データ算出回路１３は、ステップＳ３２で読み出した３２ビットの特徴点データの次の３２ビットの特徴点データを特徴点データ格納用メモリ１２から読み出してTMP1レジスタに格納する（Ｓ４４）。
【０１１８】
また、１次データ算出回路１３は、この時点でｘ座標レジスタの値が１０２４以上であるか否かを判断し（Ｓ４５）、１０２４以上でないと判断した場合（Ｓ４５：ＮＯ）、即ち、図３に示す特徴点データのうちのｙ方向の相対座標値が０の各特徴点データに対する処理が完了していない場合、ステップＳ４４でTMP1レジスタに格納した３２ビットの各特徴点データに対して、上述したステップＳ３３〜Ｓ４３の処理を実行する。１次データ算出回路１３は、ｘ座標レジスタの値が１０２４以上であると判断した場合（Ｓ４５：ＹＥＳ）、即ち、図３に示す特徴点データのうちのｙ方向の相対座標値が０の各特徴点データに対する処理が完了した場合、ｘ座標レジスタの値を０に初期化し（Ｓ４６）、ｙ座標レジスタの値を１だけインクリメントする（Ｓ４７）。
【０１１９】
また、１次データ算出回路１３は、インクリメントされたｙ座標レジスタの値が１０２４以上であるか否かを判断し（Ｓ４８）、１０２４以上でないと判断した場合（Ｓ４８：ＮＯ）、即ち、図３に示す全ての特徴点データに対する処理が完了していない場合、全ての特徴点データに対して、上述したステップＳ３３〜Ｓ４３の処理を繰り返し、特徴点データ格納用メモリ１２に格納してある全ての特徴点データに対して０であるか１であるかの判断処理を行なうと共に、各特徴点データが１であると判断した場合には１次データの算出処理を実行する。また、１次データ算出回路１３は、ｙ座標レジスタの値が１０２４以上であると判断した場合（Ｓ４８：ＹＥＳ）、上述したような１次データの算出処理を終了する。
【０１２０】
ここで、ＤＳＰデバイスは通常、乗算及びシフト演算を１［クロックサイクル］で行なうので、ｙ座標レジスタの値×TMP2レジスタの値の演算結果であるｙN×ＲN値を右シフト演算でTMP3レジスタに格納する処理を１［クロックサイクル］で行なうことができる。従って、ｘN×ＲN値及びｙN×ＲN値の算出処理及びTMP3レジスタへの格納処理を約２［クロックサイクル］で行なうことができる。また、ステップＳ３４の乱数テーブルにおけるメモリアドレスの算出処理を約３［クロックサイクル］で、ステップＳ３５の乱数テーブルからの乱数値の読出処理を約４〜５［クロックサイクル］で、ステップＳ３８のTMP3レジスタの値の１次データ格納用メモリ１４への格納処理を約４〜５［クロックサイクル］でそれぞれ行なうことができる。従って、１つの特徴点に対する１次データの算出処理は１５［クロックサイクル］程度で可能である。
【０１２１】
また、ステップＳ３９及びＳ４０のメモリポインタレジスタの値のインクリメント処理及び判定処理は、多くとも１０［クロックサイクル］程度で可能である。従って、仮に２ライン（２０４８[エリア]）内に１個の割合で特徴点が存在するとし、１５個の特徴点に上述した処理を行なうものとした場合、１個の特徴点に対する処理を（２０４８−１）×１０＋１×１５＝２０４８５［クロックサイクル］で行なうことができ、１５個の特徴点に対する処理は２０４８５×１５＝３０７２７５［クロックサイクル］で行なうことができる。
【０１２２】
一方、現在一般的に使用されている汎用タイプのＤＳＰデバイスの標準的な動作周波数は数１０MHz 〜１００MHz であるため、仮に上述した処理を動作周波数１００MHz 、即ち１．０×１０-8sec/ クロックサイクルで実行すると、３０７２７５クロックサイクル×１．０×１０-8sec/ クロックサイクル≒３．１msecとなり、非常に短時間で処理可能である。上述したように、１次データ算出回路１３が実行する１次データの算出処理は、ＤＳＰデバイスが高速に処理できる積和演算及びシフト処理のみによって実行できるため、専用のハードウェアを別途に設ける必要がないので低コストに実現できる。
【図面の簡単な説明】
【０１２３】
【図１】本発明に係る指紋認証装置の内部構成例を示すブロック図である。
【図２】指紋認証装置が行なう処理を説明するための説明図である。
【図３】特徴点の分布を模式的に示す拡大図である。
【図４】特徴点データの特徴点データ格納用メモリへの格納例を示す模式図である。
【図５】１次データ算出回路が算出した特徴点の相対座標値を示す模式図である。
【図６】特徴点の相対座標値の算出処理の説明図である。
【図７】乱数テーブルの構成例を示す模式図である。
【図８】乱数テーブルのＩＣカード内のメモリへの格納例を示す模式図である。
【図９】１次データの算出処理を説明するための説明図である。
【図１０】１次データの算出過程を示す模式図である。
【図１１】１次データの１次データ格納用メモリへの格納例を示す模式図である。
【図１２】ランレングス符号化テーブルの構成例を示す模式図である。
【図１３】ランレングス符号化の処理過程を示す模式図である。
【図１４】指紋認証装置による処理の手順を示すフローチャートである。
【図１５】指紋認証装置による処理の手順を示すフローチャートである。
【図１６】指紋認証装置による処理の手順を示すフローチャートである。
【図１７】ＤＳＰデバイスによる１次データの算出処理の手順を示すフローチャートである。
【図１８】ＤＳＰデバイスによる１次データの算出処理の手順を示すフローチャートである。
【符号の説明】
【０１２４】
１  指紋認証装置（生体認証装置）
１０  指紋読取部（生体読取手段）
１１  特徴点抽出処理回路（抽出手段）
１３  １次データ算出回路（算出手段）
１７  乱数テーブル生成回路（乱数生成手段）
２１  符号化回路（生成手段）
２３  ＩＣカードリーダ・ライタ（記憶処理手段、読出手段）
２５  復号化回路（復号化手段）
２６  照合回路（認証手段）
【図１】
2006139424.tif 000003
【図２】
2006139424.tif 000004
【図３】
2006139424.tif 000005
【図４】
2006139424.tif 000006
【図５】
2006139424.tif 000007
【図６】
2006139424.tif 000008
【図７】
2006139424.tif 000009
【図８】
2006139424.tif 000010
【図９】
2006139424.tif 000011
【図１０】
2006139424.tif 000012
【図１１】
2006139424.tif 000013
【図１２】
2006139424.tif 000014
【図１３】
2006139424.tif 000015
【図１４】
2006139424.tif 000016
【図１５】
2006139424.tif 000017
【図１６】
2006139424.tif 000018
【図１７】
2006139424.tif 000019
【図１８】
2006139424.tif 000020