(57)【要約】      （修正有）【課題】全数探索攻撃に耐え得るようにセキュリティの強度を向上させた認証技術を提供する。【解決手段】入力される情報をコンピュータで処理して利用者の認証を行う認証処理方法において、コンピュータは、利用者の認証に用いられる第１の情報に関して鍵を生成し、この鍵と第３の情報（例えば乱数）を用いて第１のハッシュ値を計算して、記憶部に格納し、かつ第３の情報を用いてイメージ情報を生成し、それを暗号化処理して記憶部に格納する。利用者の認証に際しては、入力器から入力された第1の情報から鍵を生成し、その鍵を用いて記憶部に格納されたイメージ情報を復号してイメージを表示器に表示する。利用者は表示されたそのイメージから認識された第２の情報を入力器から入力する。コンピュータは、入力された第２の情報と鍵とを用いて第２のハッシュ値を計算する。そして記憶部に格納された第１のハッシュ値と第２のハッシュ値を照合し、認証を行う。【選択図】  図１
2006287843.tif 000002
【特許請求の範囲】
【請求項１】
入力器から入力される情報をコンピュータで処理して利用者の認証を行う認証処理方法において、
利用者の認証に用いられる第１の情報に関して生成された鍵と第３の情報を用いて第１のハッシュ値を計算し、該第１のハッシュ値を予め記憶部に格納するステップと、
該第３の情報を用いて該イメージ情報を生成し、該鍵によって暗号化処理して予め該記憶部に格納するステップと、
利用者の認証時に、該入力器から入力された第１の情報に関して鍵を生成するステップと、
該鍵を用いて、該記憶部に格納された該イメージ情報を復号処理して、イメージを表示器に表示するステップと、
該表示器に表示された該イメージから利用者によって認識された第２の情報を該入力器から入力するステップと、
該鍵と該第２の情報を用いて第２のハッシュ値を計算するステップと、
該記憶部に格納された第１のハッシュ値と該第２のハッシュ値を照合し、該照合の結果に応じて認証を行うステップと、
を有することを特徴とする認証処理方法。
【請求項２】
該鍵と、該第３の情報として乱数を使用して第１のハッシュ値を計算し、該記憶部に格納することを特徴とする請求項１の認証処理方法。
【請求項３】
該乱数に関連して該イメージ情報を生成し、該鍵で暗号化した情報を該記憶部に格納することを特徴とする請求項２の認証処理方法。
【請求項４】
前記第１の情報は利用者のパスワードであり、該パスワードが正しい場合に該イメージ情報を復号化し、正しくない場合には該イメージ情報とは関係の無い情報を生成することを特徴とする請求項１乃至３のいずれかの認証処理方法。
【請求項５】
該表示器に表示されたイメージから利用者により認識された第２の情報を、文字列の情報として該入力器より入力することを特徴とする請求項１乃至４のいずれかの認証処理方法。
【請求項６】
該表示器に表示されたイメージから利用者により認識された第２の情報を、音声情報として入力器より入力することを特徴とする請求項１乃至４のいずれかの認証処理方法。
【請求項７】
入力器から入力される情報をコンピュータで処理して利用者の認証を行う認証処理方法において、
利用者の認証に用いられる第１の情報に関して生成された鍵と第３の情報を用いて第１の一方向性関数情報を生成し、予め記憶部に格納するステップと、
該第３の情報を用いて人間に感知され得る第４の情報を生成して該鍵で暗号化して予め記憶部に格納するステップと、
利用者の認証時に、該入力器から入力された第１の情報に関して鍵を生成するステップと、
該鍵を用いて、該記憶部に格納された該第４の情報を復号処理して、関連する情報を該出力器に出力するステップと、
該出力器に出力された該関連する情報から利用者によって認識された第２の情報を該入力器から入力するステップと、
該鍵と該第２の情報を用いて第２の一方向性関数情報を生成するステップと、
該第１の方向性関数情報と該第２の方向性関数情報を照合することにより認証を行うステップと、
を有することを特徴とする認証処理方法。
【請求項８】
該コンピュータは、該第４の情報としてイメージ情報又は音声情報を用いて処理し、該第１及び該第２の方向性関数情報としてハッシュ関数を用いて処理することを特徴とする請求項７の認証処理方法。
【請求項９】
該コンピュータは、該第３の情報として乱数を用いて処理することを特徴とする請求項７又は８の認証処理方法。
【請求項１０】
請求項１乃至９のいずれかの請求項に記載の認証処理方法の各ステップをコンピュータ上で実行する機能を有することを特徴とするプログラム。
【請求項１１】
入力器から入力される情報をコンピュータで処理して利用者の認証を行う認証処理装置において、
利用者の認証を行うための情報を入力する入力器と、情報を出力する出力器と、認証処理に用いられる情報を格納する記憶部と、認証のための情報処理を行うコンピュータとを有し、
該コンピュータは、更に、ある情報に関して鍵を生成する鍵生成手段と、ある情報を用いて一方向性関数を計算する一方向性関数計算手段と、該一方向性関数計算手段によって生成された一方向性関数を照合する照合手段とを有し、
かつ、該コンピュータは、
利用者の認証に用いられる第１の情報に関して該鍵生成手段によって鍵を生成し、生成された該鍵と第３の情報を用いて該一方向性関数計算手段によって第１の一方向性関数情報を生成し、該第１の一方向性関数情報を該記憶部に格納させ、
該第３の情報を用いて人間に感知され得る第４の情報を生成し、該鍵で暗号化した該第４の情報を該記憶部に格納させ、
利用者の認証時に、該入力器から入力された該第１の情報に関して該鍵生成手段により鍵を生成し、該鍵を用いて該記憶部に格納された該第４の情報を読み出し、該第４の情報に関連する情報を該出力器に出力し、
該出力器に出力された該関連の情報から利用者によって認識されて、該該入力器から入力される第２の情報と該鍵を用いて、該一方向性関数計算手段によって第２の一方向性関数情報を生成し、
該照合手段によって、該第１の方向性関数情報と該第２の方向性関数情報を照合することにより認証処理を行うこと、を特徴とする認証処理装置。
【請求項１２】
前記一方向性関数計算手段はハッシュ値計算手段であり、
該記憶部は、予め利用者に関連付けて、前記ハッシュ値計算手段で使用されるハッシュ値及び前記イメージ情報のファイル名を登録する管理テーブルを格納することを特徴とする請求項１１の認証処理装置。
【請求項１３】
該一方向性関数計算手段はハッシュ値計算手段であって、該第３の情報として乱数を用いてハッシュ値を計算し、
該第４の情報を生成するための手段としてイメージ情報又は音声情報を生成するための手段を有すること、を特徴とする請求項１１又は１２の認証処理装置。
【請求項１４】
利用者から得られる情報をコンピュータで処理して利用者の認証を行う認証処理方法において、
利用者の認証情報に従って鍵を生成すると共に、該鍵と他の情報を用いて、該コンピュータで第１の一方向性関数情報を生成して予め記憶部に格納しておき、
該第１の一方向性関数情報の生成において使用した該他の情報と用いて、人間に感知され得るイメージ情報又は音声情報を含む特定の情報を該コンピュータで生成し、該鍵を用いて暗号化して予め記憶部に格納しておき、
利用者の認証に際して、該入力器から入力される利用者の認証情報に従って鍵を生成し、該鍵を用いて該記憶部に格納された該特定の情報を復号処理して出力器に出力し、該出力器に出力された情報から該利用者によって認識された第２の情報を該入力器から入力し、
該コンピュータで、該鍵と該第２の情報を用いて第２の一方向性関数情報を生成し、該第１の方向性関数情報と該第２の方向性関数情報を照合することにより該利用者の認証を行うことを特徴とする認証処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は認証処理方法及び装置に係り、特にスタンドアロン環境で使用される情報処理装置やサービス提供装置における利用者本人を認証するための技術に関するものである。
【背景技術】
【０００２】
パーソナルコンピュータ（ＰＣ）のような情報処理装置を利用する場合、或いはインターネット等のネットワークを利用してプロバイダからサービスの提供を受ける場合に、利用者が正当な本人であるかの認証が行なわれる。
【０００３】
利用者の認証に関しては、通常、情報処理装置やプロバイダのサーバに予め利用者のＩＤとパスワードを登録しておき、利用時に利用者から入力されたＩＤやパスワードが予め登録されたものと照合して、一致する場合にその利用者を正当な本人とみなしてアクセスを許可している。
また、予め登録するＩＤやパスワードを隠すために、ハッシュ関数が使用されている。利用者の認証は、例えば、ハッシュ関数により計算された情報（ハッシュ値）を予め記憶装置に登録しておき、認証時に入力されたＩＤやパスワードの情報からハッシュ化された情報と、予め登録されたハッシュ値とを照合することにより行われる。
【０００４】
この種の公知例として例えば、特開２００２−３５３９５８公報（特許文献１）には、ユーザＩＤと暗証番号のデータ列に対してハッシュ化して照合情報を得て、それを本人確認のために利用する技術が開示されている。
【０００５】
ところで、信頼性が評価可能な認証技術においては、認証のために入力する情報（認証情報）の暗号化ロジックやハッシュ値の計算ロジックは公開されていることが多い。そのため、認証のために予め登録された情報（照合情報）が盗難されると、公開されている暗号化ロジックやハッシュ値の計算ロジックを使用して認証情報が解読される恐れがある。とりわけ、スタンドアロン環境に置かれた装置（スタンドアロン装置という）では、悪意の者による試行錯誤の結果、最終的には認証情報が盗まれる可能性が一層高い。
【０００６】
【特許文献１】特開２００２−３５３９５８公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
そこで、上記のような試行錯誤によって認証情報が盗まれることを防ぐための一策として、認証情報をできるだけ長い情報量とすることが考えられる。このようにすれば、悪者が総当り攻撃や辞書攻撃等を行なったとしても、正当な認証情報を取得するには長時間を要することになるので、結果として盗難が難しくなることを期待するものである。
【０００８】
しかし、人間の記憶力には限りがあるため、認証情報を余り長くすると、利用者はそれを覚えられないか或いは記憶が非常に困難となるので、問題である。記憶困難と考える利用者は自分の認証情報を手帳やメモに書いておくこともあり、それらが盗み見されたりすると、認証情報としての意味がなくなる。
【０００９】
そこで、本発明の目的は、全数探索攻撃に耐え得るようにセキュリティの強度を向上させた認証処理方法、そのためのプログラム及び認証装置を提供することにある。
本発明の他の目的は、認証情報に対する利用者による記憶の過度な負担を避け、比較的短い認証情報を使用して、総当り攻撃等から認証情報の盗難を防止し得る、オフライン装置に好適な認証技術を提供することにある。
【課題を解決するための手段】
【００１０】
本発明に係る認証処理方法は、入力器から入力される情報をコンピュータで処理して利用者の認証を行う認証処理方法において、利用者の認証に用いられる第１の情報に関して生成された鍵と第３の情報を用いて第１のハッシュ値を計算し、第１のハッシュ値を予め記憶部に格納するステップと、第３の情報を用いてイメージ情報を生成し、鍵によって暗号化処理して予め記憶部に格納するステップと、利用者の認証時に、入力器から入力された第１の情報に関して鍵を生成するステップと、鍵を用いて、記憶部に格納されたイメージ情報を復号処理して、イメージを表示器に表示するステップと、表示器に表示されたイメージから利用者によって認識された第２の情報を入力器から入力するステップと、鍵と第２の情報を用いて第２のハッシュ値を計算するステップと、記憶部に格納された第１のハッシュ値と第２のハッシュ値を照合し、照合の結果に応じて認証を行うステップと、を有する認証処理方法である（請求項１に関連）。
好ましい例では、鍵と、第３の情報として乱数を使用して第１のハッシュ値を計算し、記憶部に格納する。
また、好ましくは、乱数に関連してイメージ情報を生成し、鍵で暗号化した情報を記憶部に格納する。
また、好ましくは、前記第１の情報は利用者のパスワードであり、パスワードが正しい場合にイメージ情報を生成し、正しくない場合にはイメージ情報とは関係の無い情報を生成する。
また、一例では、表示器に表示されたイメージから利用者により認識された第２の情報を、文字列の情報として入力器より入力する。
また、他の例では、表示器に表示されたイメージから利用者により認識された第２の情報を、音声情報として入力器より入力する。
【００１１】
本発明に係る認証処理方法は、更に一般的には、入力器から入力される情報をコンピュータで処理して利用者の認証を行う認証処理方法において、利用者の認証に用いられる第１の情報に関して生成された鍵と第３の情報を用いて第１の一方向性関数情報を生成し、予め記憶部に格納するステップと、第３の情報を用いて人間に感知され得る第４の情報を生成して鍵で暗号化して予め記憶部に格納するステップと、利用者の認証時に、入力器から入力された第１の情報に関して鍵を生成するステップと、鍵を用いて、記憶部に格納された第４の情報を復号処理して、関連する情報を出力器に出力するステップと、出力器に出力された関連する情報から利用者によって認識された第２の情報を入力器から入力するステップと、鍵と第２の情報を用いて第２の一方向性関数情報を生成するステップと、第１の方向性関数情報と第２の方向性関数情報を照合することにより認証を行うステップと、を有する認証処理方法である（請求項７に関連）。
好ましい例では、コンピュータは、第４の情報としてイメージ情報又は音声情報を用いて処理し、第１及び第２の方向性関数情報としてハッシュ関数を用いて処理する。
また、好ましい例では、コンピュータは、第３の情報として乱数を用いて処理する。
【００１２】
更に、本発明は、上記の認証処理方法の各ステップをコンピュータ上で実行する機能を有するプログラムとして把握される（請求項１０に関連）。
【００１３】
本発明に係る認証処理装置は、入力器から入力される情報をコンピュータで処理して利用者の認証を行う認証処理装置において、利用者の認証を行うための情報を入力する入力器と、情報を出力する出力器と、認証処理に用いられる情報を格納する記憶部と、認証のための情報処理を行うコンピュータとを有し、
コンピュータは、更に、ある情報に関して鍵を生成する鍵生成手段と、ある情報を用いて一方向性関数を計算する一方向性関数計算手段と、一方向性関数計算手段によって生成された一方向性関数を照合する照合手段とを有し、
かつ、コンピュータは、
利用者の認証に用いられる第１の情報に関して鍵生成手段によって鍵を生成し、生成された鍵と第３の情報を用いて一方向性関数計算手段によって第１の一方向性関数情報を生成し、第１の一方向性関数情報を記憶部に格納させ、
第３の情報を用いて人間に感知され得る第４の情報を生成し、鍵で暗号化した第４の情報を記憶部に格納させ、
利用者の認証時に、入力器から入力された第１の情報に関して鍵生成手段により鍵を生成し、鍵を用いて記憶部に格納された第４の情報を読み出し、第４の情報に関連する情報を出力器に出力し、
出力器に出力された関連の情報から利用者によって認識されて、入力器から入力される第２の情報と鍵を用いて、一方向性関数計算手段によって第２の一方向性関数情報を生成し、照合手段によって、第１の方向性関数情報と第２の方向性関数情報を照合することにより認証処理を行う認証処理装置である（請求項１１に関連）。
好ましい例では、前記一方向性関数計算手段はハッシュ値計算手段であり、記憶部は、予め利用者に関連付けて、前記ハッシュ値計算手段で使用されるハッシュ値及び前記イメージ情報のファイル名を登録する管理テーブルを格納する。
また、好ましい例では、一方向性関数計算手段はハッシュ値計算手段であって、第３の情報として乱数を用いてハッシュ値を計算し、第４の情報を生成するための手段としてイメージ情報又は音声情報を生成するための手段を有する。
【００１４】
本発明に係る認証処理方法は、更に表現を変えれば次にように把握され得る。すなわち、利用者から得られる情報をコンピュータで処理して利用者の認証を行う認証処理方法において、利用者の認証情報に従って鍵を生成すると共に、鍵と他の情報を用いて、コンピュータで第１の一方向性関数情報を生成して予め記憶部に格納しておき、
第１の一方向性関数情報の生成において使用した他の情報と用いて、人間に感知され得るイメージ情報又は音声情報を含む特定の情報をコンピュータで生成し、鍵を用いて暗号化して予め記憶部に格納しておき、
利用者の認証に際して、入力器から入力される利用者の認証情報に従って鍵を生成し、鍵を用いて記憶部に格納された特定の情報を復号処理して出力器に出力し、出力器に出力された情報から利用者によって認識された第２の情報を入力器から入力し、
コンピュータで、鍵と第２の情報を用いて第２の一方向性関数情報を生成し、第１の方向性関数情報と第２の方向性関数情報を照合することにより利用者の認証を行う認証処理方法である（請求項１４に関連）。
【発明の効果】
【００１５】
本発明によれば、全数探索攻撃に耐え得るようにセキュリティの強度を向上させた認証技術を提供することができる。また、比較的短い認証情報を使用することで、利用者の負担を軽減し、総当り攻撃等から認証情報の盗難を防止することができる。
【発明を実施するための最良の形態】
【００１６】
以下、図面を参照しながら本発明の一実施例について詳細に説明する。
まず、図１を参照して、本発明の一実施例による認証技術の概念について説明する。
利用者は認証のための情報（認証情報）Ｐ１をコンピュータに入力する。コンピュータでは、入力された認証情報Ｐ１から鍵Ｋ１を生成して、この鍵Ｋ１で保存イメージを復号し、デフォルメされた出力用イメージＤ２を生成する。図示の例では、保存イメージからデフォルメされた英数字「ｓｍｗｍ」の出力イメージが生成される。
【００１７】
出力されたイメージＤ２は表示画面に表示される。利用者は表示されたイメージＤ２から自らが認識した文字を文字列Ｘ２として入力する。処理装置側では、コンピュータと接続されたデータベース（ＤＢという）には、Ｋ１で暗号化処理されたＤ２（以下Ｋ１（Ｄ２）で示す）と、Ｋ１とＸ２のハッシュ値であるｈ（Ｋ１，Ｘ２）とを保持している。
そこで、入力された文字列Ｘ２とＫ１からハッシュ値Ｈ２を計算して、予めＤＢに登録していたハッシュ値Ｈ１と照合し、その結果が正しければ、正当な本人であると認証する。
【００１８】
オフライン全数探索攻撃の対象は、Ｋ１（Ｄ２）とｈ（Ｋ１，Ｘ２）となる。そこで、Ｋ１（Ｄ２）を復号しても認識対象がイメージであるため、その認識は人間以外が行うことは極めて困難である。即ち、コンピュータの試行錯誤による文字列を順列組合わせ処理から認証情報を生成する場合に比べて、人間によるイメージの認識を介在させているので、Ｘ２の情報をコンピュータで類推することは、現状の技術では難しい。また、正当な利用者以外の者が試行錯誤によって、正当な認証情報Ｐ１を入力すること、及び正当な認証情報Ｐ１に基づいて生成、表示された正常なイメージから正しいＸ２を認識するには相当の時間を要することになる。
【００１９】
このように、利用者にイメージを目視確認させるためにＫ１値による全数探索攻撃は非常に困難であり、Ｋ１とＸ２を合せた情報は十分な長さを持つため、ｈ（Ｋ１，Ｘ２）に対する全数探索攻撃は一層困難になる。
【００２０】
図２は、認証情報の登録について示す。
利用者より認識情報Ｐ１が入力されると、コンピュータはその情報Ｐ１から鍵Ｋ１を生成する。コンピュータでは、乱数Ｘ２を発生させてそのデフォルメされたイメージＤ２を生成する。そして、イメージＤ２を鍵Ｋ１で暗号化した保存イメージＤ２´を生成して、ＤＢに記憶する。更に、コンピュータでは、一方向性関数であるハッシュ値ｈ（Ｋ１，Ｘ２）を生成して、ＤＢに記憶する。
【００２１】
ここで乱数Ｘ２を使用するのは、鍵Ｋ１と無関係な情報として用いるためである。つまり、イメージＤ２を見た者から鍵Ｋ１を推測されたり、鍵Ｋ１から乱数Ｘ２を生成する内部ロジックを知っている悪意の者による総当り攻撃（この場合、総当りの長さはＫ１＋Ｘ２でなくＫ１だけになってしまう）を避けるために、Ｋ１とＸ２とを無関係な情報として用いる。
【００２２】
英数字文字列からデフォルメされたイメージを生成する手法としては、例えば従来から知られているCAPTCHA法を用いる。CAPTCHA法においては、Ｘ２からＤ２を生成するアルゴリズムは非可逆的であるためＤ２からＸ２を算出できない。また、Ｘ２値による全数探索攻撃に対しては、Ｄ２のイメージ中に乱数を電子透かしのように雑音として紛れ込ませることによって防ぐことができる。
なお、暗号化の方法としては、従来より知られているＡＥＳ(Advanced Encryption Standard)法等を使用する。
【００２３】
次に、図３を参照して、本実施例における認証処理装置のハードウェア構成について説明する。
認証処理装置は、共通バスに接続された入力器１１、表示器１２、コンピュータ(ＣＰＵ)１３、データベース(ＤＢ)１４が形成される記憶装置を有して構成される。これは、例えばパーソナルコンピュータ（ＰＣ）を想定してよい。
【００２４】
入力器１１は例えばキーボードやマウスであり、一義的には上述の認証情報及び文字入力のために使用されるが、この他にも種々の情報入力に使用される。表示器１２は、認証に際してデフォルメされたイメージを表示するが、この他に認証時及び認証情報の登録時における利用者への種々のガイダンス等を表示する。
【００２５】
ＣＰＵ１３は、入力器１１、表示器１２及びＤＢ１４間で入出力される情報の処理及びそれら情報の転送の制御を行う。とりわけ、暗号化プログラム及びハッシュ値計算用のプログラムを実行して、上記の暗号鍵を生成する処理、デフォルメされたイメージを生成する処理、ハッシュ値を計算する処理、および計算されたハッシュ値に関する照合のための処理、等を行う。
【００２６】
データベース(ＤＢ)１４は、利用者とハッシュ値及び暗号化イメージとを関係付けるファイル管理テーブル４０、並びにイメージを鍵Ｋ１で暗号化された保存用イメージＭ１を記憶する。
【００２７】
図４に、ファイル管理テーブル４０の一例を示す。
このテーブル４０は、ユーザ名４０１に対応して、その利用者に使用されるハッシュ値４０２（第１のハッシュ値を意味する）、及び暗号化イメージファイル名４０３を登録する。
【００２８】
図５は、ＤＢ１４に格納される保存用イメージＤ２の例を示す。
図５の（１）〜（３）にデフォルメされたイメージＤ２を示すが、実際にはこのようなイメージＤ２の暗号化されたものが記憶される。これらの各イメージは図４の管理テーブル４０内の暗号化イメージファイル名４０３によって指定される。
【００２９】
次に、図６及び図７を参照して本実施例における認証情報の登録動作及び認証動作について説明する。
まず、図６を用いて認証情報の登録動作について説明する。
登録に際して、表示器１２に入力画面Ｇを表示する（Ｓ６１）。表示された入力画面Ｇに対して、利用者は入力器１１からユーザ名Ｕ、例えば「Tanaka」を入力する（Ｓ６２）。引き続いて、利用者は認証のための情報（認証情報）Ｐ１を入力する（Ｓ６３）。例えば、認証情報Ｐ１としては、図８に示すように、入力画面の入力エリアに８文字から成るパスワードを入力する。
【００３０】
入力器１１から入力された認識情報Ｐ１は、コンピュータ１３で、その情報Ｐ１から鍵Ｋ１を生成する（Ｓ６４）。鍵Ｋ１は情報Ｐ１を数値に置換したバイナリデータである。そしてその英数字列から乱数Ｘ２を発生する（Ｓ６５）。乱数の発生方法は、通常知られている方法を用いて実現できる。
【００３１】
次に、コンピュータ１３は、英数字からなる乱数Ｘ２からＸ２のデフォルメされたイメージＤ２を生成する（Ｓ６６）。そして、イメージＤ２を鍵Ｋ１で暗号化して保存イメージＭ１を生成し、それをＤＢ１４に格納する（Ｓ４７）。この場合、保存イメージＭ１にはファイル名が付与され、そのファイル名はファイル管理テーブル４０に登録される。
【００３２】
その後、コンピュータ１３は、乱数Ｘ２と鍵Ｋ１からハッシュ値を計算する（Ｓ６８）。求められたハッシュ値Ｈ１は保存用のハッシュ値として、先に生成された保存用イメージＭ１と同様にＤＢ１４に保存される。ここで、ハッシュ値Ｈ１及び保存イメージＭ１は、当該利用者と対応付けてファイル管理テーブル４０に登録される（Ｓ６９）。以上の動作が終わると、一連の登録動作を終了する。
【００３３】
ここで、英数字文字列からデフォルメされたイメージＤ２を生成する方法としては、例えばＣＡＰＴＣＨＡ（Carnegie Mellon Universityの登録商標）法を用いるのが好ましい。ＣＡＰＴＣＨＡ法においては、乱数Ｘ２からイメージＤ２を生成するアルゴリズムは非可逆的であるためＤ２から元の値Ｘ２を算出できない。また、乱数Ｘ２値による全数探索攻撃に対しては、イメージＤ２の中に乱数を電子透かしのように雑音として紛れ込ませることによって防ぐことができる。
また、暗号化方法としては例えばＡＥＳ法を使用し、ハッシュ関数としては、よく知られた例えばＳＨＡ１やＭＤ５等の手法を使用するのがよい。
【００３４】
次に、図７を用いて認証動作について説明する。
まず、表示器１２に入力画面Ｇが表示されると（Ｓ７０１）、その入力画面Ｇに対して、利用者は入力器１１からユーザ名Ｕ、例えば「Tanaka」を入力し（Ｓ７０２）、更に認証情報Ｐ１を入力する（Ｓ７０３）。認証情報Ｐ１としては、例えば図８に示す入力画面の入力エリアに８文字から成るパスワードを入力する。
【００３５】
コンピュータ１３は、入力された認証情報Ｐ１を英数字化した鍵Ｋ１を生成する（Ｓ７０４）。そして、ＤＢ１４に登録されているファイル管理テーブル４０を参照して、ユーザ名「Tanaka」に対応して登録されているハッシュ値４０１及び暗号化イメージファイル名４０３を取得する。そして、暗号化イメージファイル名４０３に該当する保存イメージＭ１をＤＢ１４から読み出す（Ｓ７０５）。
【００３６】
コンピュータ１３は、読み出された保存イメージＭ１を鍵Ｋ１で復号し、イメージＤ２を生成する（Ｓ７０６）。そして、そのイメージＤ２を表示器１２に表示する（Ｓ７０８）。表示されるイメージＤ２は、例えば図９に示すようなデフォルメされたイメージである。
【００３７】
利用者は、表示器１２に表示されたイメージＤ２からその意味するところを自ら認識し、その認識した文字列Ｘ２を表示画面の入力領域に英数字で入力する（Ｓ７０９）。
【００３８】
一方、ステップＳ７０３で入力された認識情報Ｐ１が利用者に正当なものでなければ、ファイル管理テーブル４０から正規のイメージファイルが読み出されないので、表示器１２には正しいイメージＤ２が表示されないことになる。何か表示されたとしても全く意味のないイメージとなる。従って、不正な利用者にとっては、表示された無意味なイメージから正しい認識ができないので、正当な文字列Ｘ２を入力できないか、又は多大な試行錯誤を繰り返すことになる。そこで、正当な文字列Ｘ２の入力が一定時間内にあったか否かを監視して（Ｓ７１０）、一定時間以上要した場合には認証失敗と判断する。その旨を表示器１２に表示する。
【００３９】
一定時間以内に正しく入力された文字列Ｘ２はコンピュータ１３に送られる。（Ｓ７１０）。コンピュータ１３では、鍵Ｋ１と受信した文字列Ｘ２からハッシュ値Ｈ２を計算する（Ｓ７１１）。更に、当該利用者に対応して登録されていたハッシュ値Ｈ１を管理テーブル４０から読み出す（Ｓ７１２）。そして、コンピュータ１３は、先に算出したハッシュ値Ｈ２と、管理テーブル４０から読み出されたハッシュ値Ｈ１とを照合する（Ｓ７１３）。
【００４０】
照合の結果、両者が一致すれば、認証成功とみなして（Ｓ７１４〜７１５）、以後の処理を行う。例えば、当該利用者に対してＰＣへのアクセスを許容する。一方、照合の結果一致しなければ認証失敗とみなして、その旨を表示器１２に表示して利用者に通知し、認証処理を終わる（Ｓ７１６）。
【００４１】
尚、上記した登録処理及び認証処理は、それぞれのステップの処理を行うプログラムをコンピュータで実行することにより実現される。
【００４２】
本実施例によれば、システムが保持する照合情報が盗難、漏洩する可能性があり、また利用者を認証するためアルゴリズムが攻撃者に知られる可能性があるような、とりわけセキュリティに関して脆弱なスタンドアロン環境下において、利用者が比較的短い認証情報情報を使用するだけで、利用者の認識情報を解読するためのオフライン全数探索攻撃に耐え得るセキュリティ強度を持たせることができる。
【００４３】
以上、本発明の一実施例について述べたが、本発明は上記実施例に限定されず、これ以外にも色々と変形し、或いは応用して実施し得る。
例えば、上記実施例における用語の定義や呼び方については一例であってこれに限定されるものではない。例えば、テーブルに関する構成及び呼び名は一例であり、上記実施例に限定されない。上記のテーブルをＤＢとして構成してもよい。
【００４４】
他の変形例として、認証情報Ｐ１の入力については、図８のように、入力画面の入力エリアにパスワードの文字列を入力する例に限らない。例えば、１６個の絵文字をマリックス（４×４）表示し、その絵文字から、利用者毎に予め決められた絵及び順序に従って各行２つずつの絵を選択して入力するようにしてもよい。
例えば、英数字８文字で４６ビット、１０×１０＝１００通りの絵の中から８個を選ぶとすると、５３ビット長の鍵Ｋ１が得られる。また乱数Ｘ２は、英数字１０文字にすると５７ビット長になる。鍵Ｋ１と合わせると(Ｋ１,Ｘ２)は１１０ビット長程度になる。
【００４５】
また他の例として、イメージＤ２を認識した後、利用者が入力する文字列Ｘ２は、キーボードからではなく、音声入力器を用いて音声入力するようにしてもよい。
【００４６】
また、上記実施例では表示器にイメージＤ２を表示し、その表示されたイメージから利用者が認識した文字列Ｘ２を入力するようにした。然し、他の例では、表示器に代わって音声出力器に音声としてＤ２´を出力し、利用者は出力された音声Ｄ２´から認識できた情報Ｘ２´を文字入力又は音声入力するようにしてもよい。この場合では、出力器に出力された音声は人間にしか理解できない（コンピュータのような機械には理解できない）ので、上記したイメージと同様の効果がある。
【００４７】
更に他の例として、上記実施例では、鍵Ｋ１と無関係な情報として乱数Ｘ２を発生させて使用しているが、乱数に限らない。鍵Ｋ１と無関係な情報であれば、固定値でもよいし、或いは日々変わる日付けや時刻の情報でもよい。
【図面の簡単な説明】
【００４８】
【図１】本発明の一実施例における認証の概念を説明すための図。
【図２】一実施例における認証情報の登録の概要を示す図。
【図３】一実施例における認証装置のハードウェア構成を示す図。
【図４】一実施例の認証処理装置におけるファイル管理テーブルの構成例を示す図。
【図５】一実施例の認証処理装置において使用されるイメージの例を示す図。
【図６】一実施例による認証処理方法における登録の動作説明に供するフローチャート図。
【図７】一実施例による認証処理方法の動作説明に供するフローチャート図。
【図８】一実施例の認証処理装置における入力画面の例を示す図。
【図９】一実施例の認証処理装置における認識情報入力用の入力画面の例を示す図。
【符号の説明】
【００４９】
１１：入力器                  １２：表示器        
１３：コンピュータ（ＣＰＵ）  １４：データベース（ＤＢ）
４０：ファイル管理テーブル    ４０１：ユーザ名
４０２：ハッシュ値            ４０３：イメージファイル名
Ｐ１：認証情報                Ｄ２：出力イメージ          Ｋ１：鍵
Ｈ１、Ｈ２：ハッシュ値        Ｘ２：乱数                  
【図１】
2006287843.tif 000003
【図２】
2006287843.tif 000004
【図３】
2006287843.tif 000005
【図４】
2006287843.tif 000006
【図５】
2006287843.tif 000007
【図６】
2006287843.tif 000008
【図７】
2006287843.tif 000009
【図８】
2006287843.tif 000010
【図９】
2006287843.tif 000011