以下詳細な本発明の実施例に関して説明する。なお、以下の各実施例は、処理の内容を矛盾させない範囲で適宜組み合わせることが可能である。以下、図面に基づいて各実施例について説明する。
[第一の実施例]
図1は、第一の実施例に関する認証システムにおける、登録処理を説明するための図である。まず、本実施例における認証システムについて、説明する。認証システムは、端末装置1と認証装置2とを含む。なお、端末装置1と認証装置2とは、ネットワークNを介して接続されている。ネットワークNは、例えば、インターネットである。
端末装置1は、認証装置2へ認証を要求するコンピュータである。また、認証装置2は、端末装置1の要求に応じて、認証を実行するコンピュータである。また、認証装置2は、各種処理を実行するサーバ21と認証に必要な情報を記憶するデータベース22とを含む。
次に、登録処理について説明する。登録処理とは、後の認証において照合対象となる情報を登録するための処理である。まず、端末装置1は、登録対象となるユーザのユーザID「A」と、登録対象となる認証用情報「mA」との入力を受け付ける。
ユーザIDは、ユーザを識別するための情報である。また、認証用情報は、後の認証時にユーザを認証するために利用される情報であって、例えばパスワード情報や生体情報である。例えば、生体情報は、虹彩情報、指紋情報、静脈情報である。なお、端末装置2は、各種認証用情報の入力を受け付けるためのインターフェースを有する。
次に、端末装置1は、ユーザID「A」と認証情報「mA」とを、認証装置2へ送信する。なお、認証情報は、登録処理において、認証装置2に入力される情報であって、認証用情報に関する情報を含む情報である。なお、本実施例においては、認証情報は、認証用情報そのものである。つまり、本実施例においては、認証情報は、暗号化された認証用情報ではない。
認証装置2は、ユーザID「A」と認証情報「mA」とを受信する。そして、認証装置2は、鍵情報「K」を用いて認証情報「mA」を暗号化することで、登録情報「EK(mA)」を生成する。そして、データベース22は、ユーザID「A」と登録情報「EK(mA)」とを対応付けて記憶する。
なお、登録情報は、認証装置2が有する鍵情報により、端末装置1から受信した認証情報を暗号化した情報である。ただし、本実施例における暗号化には、同じ鍵情報を用いた同様の演算を2度行うことで、鍵情報を用いた1度目の演算の効果を排除可能な演算が適用される。
例えば、暗号化は、鍵情報Kに基づき生成された乱数と、認証情報「mA」との排他的論理和により行われる。また、暗号化は、鍵情報Kと認証情報「mA」との排他的論理和により行われてもよい。このように、排他的論理和を用いた暗号化を採用した場合、登録処理および後述の認証処理において、各装置における処理計算量を小さくすることができる。また、暗号化によるデータ量の増大を防ぐことができる。
図2は、第一の実施例に関する認証システムにおける、認証処理を説明するための図である。端末装置1は、認証対象となるユーザのユーザID「A」と、認証対象となる被認証情報「mA’」との入力を受け付ける。被認証情報は、正規のユーザのみが保持する情報であって、例えばパスワード情報や生体情報である。ただし、被認証情報は、認証用情報と同じ種類であって、同様のフォーマットである。
そして、端末装置1は、ユーザID「A」と入力情報「mA’」とを、認証装置2へ送信する。入力情報は、認証処理において、認証装置2に入力される情報であって、被認証情報に関する情報を含む情報である。なお、本実施例においては、入力情報は、被認証情報そのものである。
認証装置2は、ユーザID「A」に対応する登録情報「EK(mA)」を読み出し、入力情報「mA’」と登録情報「EK(mA)」との比較結果を演算する。このとき、比較結果は、暗号化と同様の演算手法により得られる。例えば、認証装置2は、入力情報「mA’」と登録情報「EK(mA)」との排他的論理和を演算する。
さらに、認証装置2は、比較結果と鍵情報「K」とを用いて認証を行う。そして、認証装置2は、認証結果を端末装置1へ送信する。例えば、認証装置2は、排他的論理和の演算結果を鍵情報「K」で復号することで、認証用情報と被認証情報とのハミングベクトルを得る。ハミングベクトルは、認証用情報と被認証情報との類似度を示す情報である。例えば、ハミングベクトルの中で「1」を示すビットが少ないほど、認証用情報と被認証情報との類似度は高いことを示す。
本実施例においては、入力情報「mA’」と登録情報「EK(mA)」との排他的論理和は、被認証情報「mA’」と認証用情報「mA」との排他的論理和を、鍵情報「K」で暗号化したものに相当する。被認証情報「mA’」と認証用情報「mA」との排他的論理和は、認証用情報「mA」と被認証情報「mA’」とのハミングベクトルを示す。よって、入力情報「mA’」と登録情報「EK(mA)」との排他的論理和を、鍵情報Kで復号することで、ハミングベクトルが得られる。そして、認証装置2は、ハミングベクトルにおいて「1」を示すビット数と、閾値「T」とを比較することで、認証の成功または失敗を判定することができる。例えば、ハミングベクトルにおいて「1」を示すビット数が閾値「T」以上であるときに、認証は失敗と判断される。
第一の実施例においては、データベース22に登録された登録情報「EK(mA)」が漏えいしたとしても、第三者はなりすましを行うことはできない。具体的には、認証時に、端末装置1と認証装置2との通信経路において、第三者が、入力情報を、不正に入手した登録情報「EK(mA)」に置換したとする。このとき、認証装置2には、ユーザID「A」と入力情報「EK(mA)」が入力される。
その後、認証装置2は、ユーザ「A」の登録情報「EK(mA)」と、入力情報「EK(mA)」との比較結果を演算する。なお、比較結果は、登録情報「EK(mA)」と、入力情報「EK(mA)」とが一致することを示す。
しかし、本実施例においては、認証装置2は、さらに、鍵情報「K」を比較結果に作用させたうえで、認証を行う。したがって、鍵情報「K」を用いた演算がさらに実行されることによって、比較結果が、登録情報「EK(mA)」と、入力情報「EK(mA)」とが一致することを示していたとしても、第三者による認証を失敗とすることができる。
ここで、鍵情報「K」は、認証において利用される閾値「T」に基づき決定されることが望ましい。例えば、鍵情報「K」において「1」を示すビットがT個以上、または、鍵情報「K」に基づき生成される乱数において「1」を示すビットがT個以上となるように、鍵情報「K」が生成される。なお、閾値「T」は、認証用情報および被認証情報のデータ量や、必要とされる認証強度に基づき、適宜設定される。
次に、第一の実施例の変形例について、説明する。図3は、第一の実施例の変形例における、登録処理を説明するための図である。変形例における認証システムは、端末装置1’と認証装置2’とを含む。
ここで、変形例は、端末装置1’と認証装置2’との通信において、認証用情報及び被認証情報が暗号化された状態で通信されることで、よりセキュリティを向上させる。つまり、端末装置1’は、暗号化を行う機能を有する。なお、図1および図2における端末装置1は暗号化を実施しないが、セキュアな通信経路を利用することで、認証用情報及び被認証情報に対して一定の秘匿性を与えることができる。例えば、通信される情報は、Secure Socket Layer(SSL)により、暗号化される。
また、変形例においては、暗号化には、ユーザごとに異なる鍵が利用されるとする。例えば、ユーザID「A」に対応する鍵情報「KA」が利用される。ただし、複数のユーザに対して共通の鍵情報が利用されてもよい。なお、以下、端末装置1’において利用される、ユーザID「A」に対応する鍵情報は「KA1」、認証装置2’において利用される、ユーザID「A」に対応する鍵情報は「KA2」とする。
例えば、あらかじめ、端末装置1’や認証装置2’が各ユーザIDと鍵情報とを対応付けて記憶する。また、端末装置1’や認証装置2’がユーザIDや補助情報に基づき、ユーザごとの鍵情報KAを生成してもよい。補助情報は、鍵情報の生成のために利用される情報である。また、補助情報は、秘匿された情報であることが望ましい。例えば、鍵情報の生成には、Password Base Key Derivation Functionが利用される。
ただし、登録処理において、あるユーザAに対して生成される鍵情報「KA1」と、認証処理において同一のユーザAに対して生成される鍵情報「KA1」は、同一の鍵情報である。また、登録処理において、あるユーザAに対して生成される鍵情報「KA2」と、認証処理において同一のユーザAに対して生成される鍵情報「KA2」は、同一の鍵情報である。
次に、端末装置1’が利用する鍵情報「KA1」と、認証装置2’が利用する鍵情報「KA2」とは、異なる鍵情報である。つまり、端末装置1’において、認証用情報及び被認証情報が鍵情報「KA1」により暗号化されるが、認証装置2’は、鍵情報「KA1」を有さないため、認証用情報及び被認証情報を復号することはできない。したがって、生体情報などの認証用情報は、認証装置2’に対して秘匿化されることとなる。生体情報は、パスワード情報と異なり、変更することができない情報であるため、生体情報に対するセキュリティがより強化される。
まず、図3において、端末装置1’は、ユーザID「A」と、認証用情報「mA」の入力を受け付ける。そして、端末装置1’は、ユーザID「A」に対応する鍵「KA1」を用いて、認証用情報「mA」を暗号化することで、認証情報「EKA1(mA)」を生成する。そして、端末装置1’は、ユーザID「A」と認証情報「EKA1(mA)」とを、認証装置2’へ送信する。先の実施例と異なり、認証情報は、認証用情報そのものではなく、鍵「KA1」により暗号化された認証用情報である。
次に、認証装置2’は、ユーザID「A」と認証情報「EKA1(mA)」とを受信する。そして、認証装置2’は、鍵情報「KA2」を用いて認証情報「EKA1(mA)」を暗号化することで、登録情報「EKA2(EKA1(mA))」を生成する。そして、データベース22’は、ユーザID「A」と登録情報「EKA2(EKA1(mA))」とを対応付けて記憶する。
図4は、第一の実施例の変形例における、認証処理を説明するための図である。端末装置1’は、認証対象となるユーザのユーザID「A」と、被認証情報「mA’」との入力を受け付ける。端末装置1’は、ユーザID「A」に対応する鍵KA1を用いて、被認証情報「mA’」を暗号化することで、入力情報「EKA1(mA’)」を生成する。そして、端末装置1’は、ユーザID「A」と入力情報「EKA1(mA’)」とを、認証装置2’へ送信する。先の実施例と異なり、入力情報は、被認証情報そのものではなく、鍵「KA1」により暗号化された被認証情報である。
認証装置2’は、ユーザID「A」と入力情報「EKA1(mA’)」とを受信すると、ユーザID「A」に対応する登録情報「EKA2(EKA1(mA))」を読み出すとともに、入力情報「EKA1(mA’)」と登録情報「EKA2(EKA1(mA))」との比較結果を演算する。例えば、認証装置2’は、入力情報「EKA1(mA’)」と登録情報「EKA2(EKA1(mA))」との排他的論理和を算出する。さらに、認証装置2’は、比較結果と鍵情報「KA2」とを用いて認証を行う。そして、認証装置2’は、認証結果を端末装置1へ送信する。
ここで、入力情報「EKA1(mA’)」と登録情報「EKA2(EKA1(mA))」との排他的論理和の演算結果は、鍵情報「KA1」による暗号化の効果が排除され、認証用情報「mA」と被認証情報「mA’」との排他的論理和(ハミングベクトル)が、鍵情報「KA2」により、暗号化された情報に相当する。認証装置2’は、鍵情報「KA2」により比較結果を復号することで、ハミングベクトルを得ることができる。なお、端末装置1’および認証装置2’により実行される暗号化は、排他的論理和に限られず、先に述べたとおり、同様の鍵情報で2度同様の演算を行うことで、暗号化の効果を排除可能な方法であればよい。
以上のように、変形例は、登録情報の漏えいに伴うなりすましを防止するとともに、認証用情報や被認証情報に対するセキュリティをより向上させることができる。特に、認証用情報や被認証情報が生体情報である場合には、パスワード等と異なり、変更できない。したがって、生体情報に対するセキュリティを強化することが望まれる。
次に、第一の実施例に関する端末装置と認証装置の機能的構成について、説明する。図5は、第一の実施例に関する端末装置および認証装置の機能ブロック図である。なお、図5における端末装置100は第一の実施例の変形例における端末装置1’に対応するが、端末装置100は端末装置1であってもよい。認証装置200は第一の実施例の変形例における認証装置2’に対応するが、認証装置200は端末装置2であってもよい。
端末装置100は、受信部101、送信部102、取得部103、制御部104、記憶部106を有する。受信部101は、認証装置200から情報を受信する処理部である。例えば、認証処理においては、受信部101は、認証装置200から、認証結果を受信する。
送信部102は、認証装置200へ情報を送信する処理部である。例えば、送信部102は、登録処理においては、登録要求を認証装置200へ送信する。登録要求は、ユーザIDと、認証情報とを含む情報であって、認証装置200へ登録情報の登録を要求するための情報である。また、送信部102は、認証処理においては、認証要求を認証装置200へ送信する。認証要求は、ユーザIDと、入力情報とを含む情報であって、認証装置200へ認証を要求するための情報である。
取得部103は、認証用情報および被認証情報を取得する処理部である。取得部103は、画像を撮影する撮像装置や、パスワード等の入力を受け付ける入力装置から、画像やパスワード入力を取得する。例えば、認証用情報が生体情報である場合には、カメラからユーザの一部を撮影した画像を取得するとともに、特徴点に関する情報を、画像から抽出することで、認証用情報が取得される。
制御部104は、端末装置100の動作を制御する処理部である。例えば、制御部104は、登録処理および認証処理を実行する。また、制御部104は、例えば、暗号化部105を含む。なお、取得部103は、制御部104の一部であってもよい。
暗号化部105は、暗号化処理を実行する処理部である。例えば、暗号化部105は、登録処理において、認証用情報を暗号化して、認証情報を生成する。また、暗号化部105は、認証処理において、被認証情報を暗号化して、入力情報を生成する。なお、暗号化には、ユーザごとの鍵情報であって、端末装置100が管理する鍵情報が利用される。本実施例においては、ユーザごとの鍵情報は、端末装置100の記憶部106に記憶される。よって、暗号化部105は、記憶部106から取得した鍵情報を利用して、暗号化を行う。
記憶部106は、登録処理および認証処理に必要な情報を記憶する。例えば、記憶部106は、ユーザID「A」に対応付けて、鍵情報「KA1」を記憶する。
また、暗号化部105は、ユーザごとの鍵情報を生成してもよい。そして、暗号化部105は、生成した鍵情報を利用して、暗号化処理を実行してもよい。例えば、鍵情報の生成において、Password Base Key Derivation Functionを用いることができる。
次に、認証装置200は、受信部201、送信部202、制御部203、記憶部207を有する。受信部201は、端末装置100から情報を受信する処理部である。例えば、受信部201は、登録要求や、認証要求を、端末装置100から受信する。
送信部202は、端末装置へ情報を送信する処理部である。例えば、送信部202は、認証結果を端末装置100へ送信する。
制御部203は、認証装置200の動作を制御する処理部である。例えば、制御部203は、登録処理および認証処理を実行する。また、制御部203は、暗号化部204、演算部205、認証部206を含む。
暗号化部204は、暗号化処理を実行する処理部である。例えば、暗号化部204は、登録処理において、認証情報を暗号化して、登録情報を生成する。なお、暗号化には、ユーザごとの鍵情報が利用される。本実施例においては、ユーザごとの鍵情報は、ユーザIDと対応付けられて、記憶部207に記憶される。よって、暗号化部204は、記憶部207から取得した鍵情報を利用して、暗号化を行う。なお、暗号化部204は、ユーザごとの鍵情報として、例えば、乱数生成器から取得した乱数を利用する。また、生成した鍵情報は、ユーザIDと対応付けて、記憶部207に記憶される。
演算部205は、登録情報と入力情報との比較結果を演算する処理部である。例えば、演算部205は、登録情報と入力情報との排他的論理和を演算する。
認証部206は、比較結果および鍵情報に基づき、認証を実行する処理部である。例えば、認証部206は、比較結果を鍵情報で復号することで、認証用情報と被認証情報とのハミングベクトルを得る。そして、認証部206は、ハミングベクトルにおいて「1」を示すビット数と閾値「T」とを比較し、認証結果を生成する。
記憶部207は、登録処理および認証処理に必要な情報を記憶する。例えば、記憶部207は、ユーザID「A」に対応付けて、登録情報「EKA2(EKA1(mA))」を記憶する。さらに、記憶部207は、ユーザID「A」に対応付けて、鍵情報「KA2」を記憶してもよい。
図6は、登録情報管理テーブルのデータ構成例を示す図である。なお、登録情報管理テーブルは、記憶部207に記憶される。
登録情報管理テーブルは、ユーザID2071と、登録情報2072とを対応付けて記憶する。ユーザIDは、ユーザを識別する情報である。登録情報は、端末装置100から受信した認証情報を、自装置の鍵情報を用いて暗号化した情報である。
次に、各装置における処理について説明する。図7は、第一の実施例に関する端末装置の処理フローチャートである。
端末装置100の制御部104は、登録処理を実行するか否かを判定する(Op.1)。例えば、ユーザにより登録処理の開始命令が入力された場合には、制御部104は登録処理を実行することを判定する。一方、ユーザにより登録処理の開始命令が入力されない場合には、制御部104は登録処理を実行しないことを判定する。つまり、制御部104は、認証処理を実行することを判定する。
登録処理を実行する場合(Op.1Yes)、取得部103は、ユーザIDを取得する(Op.2)。なお、ユーザIDは、ユーザによる入力や、ICチップ内蔵のカードから情報を読み取ることで、取得される。次に、取得部103は、認証用情報を取得する(Op.3)。なお、例えば、カメラを制御することで、ユーザの体の一部を撮影したり、ICチップ内臓のカードから認証用情報を読み取ることで、認証用情報は、取得される。Op.2およびOp.3の順序は入れ替え可能である。
次に、暗号化部105は、認証情報を生成する(Op.4)。例えば、暗号化部105は、認証用情報と鍵情報の排他的論理和を演算する。例えば、鍵情報に基づき生成された乱数と、認証用情報との排他的論理和を演算する。なお、乱数生成に利用した初期ベクトルは、認証処理における暗号化でも利用される。
送信部102は、制御部104の制御の下、認証装置200へ登録要求を送信する(Op.5)。そして、端末装置100は、登録処理を終了する。
一方、端末装置が登録処理を実行しないと判定した場合(Op.1No)、端末装置は、認証処理を実行する。なお、認証処理を実行する前に、認証処理を実行するか否かを判定してから認証処理に入ってもよい。この場合、認証処理を実行しないと判定した場合には、Op.1へ戻る。まず、取得部103は、ユーザIDを取得する(Op.6)。そして、取得部103は、認証用情報を取得する処理(Op.3)と同様の手法で、被認証情報を取得する(Op.7)。なお、Op.6およびOp.7の順序は入れ替え可能である。
次に、暗号化部105は、入力情報を生成する(Op.8)。例えば、暗号化部105は、被認証情報と鍵情報の排他的論理和を演算する。例えば、鍵情報に基づき生成された乱数と、被認証情報との排他的論理和を演算する。なお、認証情報の生成における暗号化方法と、入力情報の生成における暗号化情報は、同様の手法が用いられる。さらに、鍵情報も同一の情報が利用される。また、乱数生成に利用した初期ベクトルは、先の登録処理における暗号化に利用された初期ベクトルと同一である。
送信部102は、制御部104の制御の下、認証装置200へ認証要求を送信する(Op.9)。そして、認証結果を、認証装置200から受信したかを判定する(Op.10)。認証結果を受信するまで待機し(Op.10No)、受信した場合は(Op.10Yes)、制御部104は、表示装置へ認証結果を表示する(Op.11)。そして、端末装置100は、認証処理を終了する。
次に、図8は、第一の実施例に関する認証装置の処理フローチャートである。制御部203は、登録要求を受信したか否かを判定する(Op.20)。例えば、受信部201が受信した情報に、登録要求であることを示すフラグ情報が付与されているか否かに基づき、判定が行われる。
登録要求を受信した場合(Op.20Yes)、暗号化部204は、登録情報を生成する(Op.21)。例えば、暗号化部204は、登録情報に含まれるユーザIDを取得し、ユーザIDに対応する鍵情報を取得する。そして、暗号化部204は、鍵情報を用いて、認証情報を暗号化することで、登録情報を生成する。
暗号化部204は、記憶部207へ、ユーザIDと対応付けて、登録情報を記憶する(Op.22)。そして、認証装置200は、登録処理を終了する。
一方、登録要求を受信しない場合(Op.20No)、制御部203は、認証要求を受信したか否かを判定する(Op.23)。例えば、受信部201が受信した情報に、認証要求であることを示すフラグ情報が付与されているか否かに基づき、判定が行われる。
認証要求を受信していない場合は(Op.23No)、処理を終了する。一方、認証要求を受信した場合は(Op.23Yes)、演算部205は、認証要求に含まれるユーザIDに対応する登録情報を、記憶部207から取得する(Op.24)。
そして、認証要求に含まれる入力情報と、登録情報との比較結果を演算する(Op.25)。例えば、入力情報と、登録情報との排他的論理和が演算される。なお、演算結果は、認証用情報と被認証情報とのハミングベクトルが、登録情報の生成(Op.21)で利用された鍵情報により暗号化された情報に相当する。
次に、認証部206は、登録情報の生成(Op.21)で利用された鍵情報を用いて、比較結果を復号する(Op.26)。認証部206は、復号結果と、閾値とに基づき、認証の成功または失敗を判定する(Op.27)。
認証が成功である場合(Op.27Yes)、送信部202は、認証結果「成功」を、端末装置100へ送信する(Op.28)。一方、認証が失敗である場合(Op.27No)、送信部202は、認証結果「失敗」を、端末装置100へ送信する(Op.29)。そして、認証装置200は、認証処理を終了する。
以上のように、本実施例による認証システムは、登録情報が漏えいした場合であっても、第三者によるなりすましを防ぐことができる。また、変形例によれば、認証装置200において、認証用情報や被認証情報が暗号化されていない状態で取り扱われることはない。よって、認証用情報や被認証情報に対するセキュリティを確保することができる。さらに、端末装置100が利用する鍵情報と、認証装置200が利用する鍵情報とが異なることで、認証装置200に対して、認証用情報や被認証情報を秘匿することができる。
[第二の実施例]
図9は、第二の実施例に関する認証システムにおける、登録処理を説明するための図である。第二の実施例における認証システムは、端末装置3と管理装置4と判定装置5を含む。なお、端末装置3と管理装置4と判定装置5とは、ネットワークNを介して接続されている。また、管理装置4と判定装置5は、専用のネットワークで接続されてもよい。なお、一つの管理装置4に対して、複数の判定装置5が接続する構成であってもよい。
端末装置3は、管理装置4へ認証を要求するコンピュータである。また、端末装置3は、第一の実施例の変形例同様、ユーザごとの鍵情報KA1を管理する。管理装置4は、登録情報を管理するコンピュータである。つまり、管理装置4は、登録情報を記憶する。管理装置4は、処理を実行するサーバ41と登録情報を記憶するデータベース42とを含む。
判定装置5は、認証の成功または失敗を判定するコンピュータである。判定装置5は、鍵情報「KA2」を管理するとともに、登録情報と入力情報との比較結果と、鍵情報「KA2」に基づき認証を行う。なお、第一の実施例同様、鍵情報「KA1」と鍵情報「KA2」とは異なる鍵情報であって、ユーザID「A」に対応する鍵情報である。
本実施例の登録処理においては、端末装置3は、ユーザID「A」と、認証用情報「mA」の入力を受け付ける。そして、端末装置3は、ユーザID「A」に対応する鍵「KA1」を用いて、認証用情報「mA」を暗号化することで、認証情報「EKA1(mA)」を生成する。そして、端末装置3は、ユーザID「A」と認証情報「EKA1(mA)」とを、判定装置5へ送信する。
次に、判定装置5は、ユーザID「A」と認証情報「EKA1(mA)」とを受信する。そして、判定装置5は、鍵情報「KA2」を用いて認証情報「EKA1(mA)」を暗号化することで、登録情報「EKA2(EKA1(mA))」を生成する。そして、ユーザID「A」と登録情報「EKA2(EKA1(mA))」を、管理装置4へ送信する。
管理装置4は、判定装置5から受信したユーザID「A」と登録情報「EKA2(EKA1(mA))」とを対応付けて、データベース42へ記憶する。
図10は、第二の実施例に関する認証システムにおける、認証処理を説明するための図である。端末装置3は、認証対象となるユーザのユーザID「A」と、被認証情報「mA’」との入力を受け付ける。端末装置3は、ユーザID「A」に対応する鍵「KA1」を用いて、被認証情報「mA’」を暗号化することで、入力情報「EKA1(mA’)」を生成する。そして、端末装置3は、ユーザID「A」と入力情報「EKA1(mA’)」とを、管理装置4へ送信する。
管理装置4は、ユーザID「A」と入力情報「EKA1(mA’)」とを受信すると、ユーザID「A」に対応する登録情報「EKA2(EKA1(mA))」を読み出すとともに、入力情報「EKA1(mA’)」と登録情報「EKA2(EKA1(mA))」との比較結果を演算する。本実施例においては、入力情報「EKA1(mA’)」と登録情報「EKA2(EKA1(mA))」との排他的論理和を演算することで、比較結果「EKA2(HV)」を得る。なお、HVは、認証用情報「mA」と被認証用情報「mA’」との排他的論理和であるハミングベクトルを示す。つまり、比較結果「EKA2(HV)」は、認証用情報と被認証情報とのハミングベクトルを、鍵情報「KA2」で暗号化した情報に相当する。
次に、管理装置4は、ユーザID「A」と比較結果「EKA2(HV)」とを、判定装置5へ送信する。判定装置5は、ユーザID「A」に対応する鍵情報「KA2」と、比較結果「EKA2(HV)」とを用いて、認証を実行する。例えば、判定装置5は、鍵情報「KA2」で比較結果「EKA2(HV)」を復号することで、ハミングベクトルを得る。そして、判定装置5は、ハミングベクトルにおいて「1」を示すビット数と閾値「T」との比較によって、認証の成功または失敗を判定する。判定装置5は、認証結果を端末装置3へ送信する。
以上のように、管理装置4は、第一の実施例における演算部205および記憶部207の機能を有する。一方、判定装置5は、第一の実施例における暗号化部204および認証部206の機能を有する。よって、第二の実施例においては、端末装置3は、登録処理の際には、判定装置5と通信を行い、認証処理の際には、管理装置4と通信を行う。なお、管理装置4と判定装置5をまとめて、第一の実施例と同様に、認証装置と称する場合もある。
また、本実施例においては、登録情報を管理する管理装置4と、鍵情報を管理する判定装置5とが別の装置である。つまり、登録情報と鍵情報を別の主体が管理することで、登録情報を鍵情報とがともに流出する危険性を低減する。よって、第二の実施例は、登録情報の漏えいに伴うなりすましを、より強固に防ぐことができる。
次に、第二の実施例に関する管理装置と判定装置の機能的構成について、説明する。図11は、第二の実施例に関する管理装置および判定装置の機能ブロック図である。図11における管理装置400は図9および図10における管理装置4に対応する。図11における判定装置500は図9および図10における判定装置5に対応する。
なお、端末装置3は、図5に示す端末装置100と同様の機能的構成である。ただし、登録処理における登録要求は判定装置500へ送信されるように、制御部104により制御される。また、認証処理における認証要求は、管理装置400へ送信されるように、制御部104により制御される。
管理装置400は、受信部401、送信部402、制御部403、記憶部405を有する。受信部401は、端末装置3または、判定装置500から情報を受信する。例えば、受信部401は、判定装置500から登録情報を受信する。なお、登録情報は、判定装置500により生成される。また、受信部401は、端末装置3から認証要求を受信する。
送信部402は、判定装置500へ情報を送信する。例えば、送信部402は、入力情報と登録情報との比較結果を判定装置500へ送信する。
制御部403は、管理装置400の動作を制御する処理部である。例えば、制御部403は、登録処理および認証処理を実行する。例えば、登録処理において、制御部403は、判定装置500から受信した登録情報を、ユーザIDと対応付けて記憶部405へ格納する。また、制御部403は、演算部404を含む。
演算部404は、登録情報と入力情報との比較結果を演算する処理部である。例えば、演算部404は、記憶部405から取得した登録情報と、認証要求に含まれる入力情報との排他的論理和を演算する。なお、比較結果は、送信部402により、判定装置500へ送信される。
記憶部405は、登録処理および認証処理に必要な情報を記憶する。例えば、記憶部405は、ユーザID「A」に対応付けて、登録情報「EKA2(EKA1(mA))」を記憶する。例えば、記憶部405は、図6に示す登録情報管理テーブルを保持する。
判定装置500は、受信部501、送信部502、制御部503、記憶部506を有する。受信部501は、端末装置3または、管理装置400から情報を受信する。例えば、受信部501は、端末装置3から登録要求を受信する。また、受信部501は、管理装置400から、登録情報と入力情報との比較結果を受信する。
送信部502は、端末装置3または、管理装置400へ情報を送信する。例えば、送信部502は、登録情報を管理装置400へ送信する。また、送信部502は、認証結果を、端末装置3へ送信する。
制御部503は、判定装置500の動作を制御する処理部である。例えば、制御部503は、登録処理および認証処理を実行する。また、制御部503は、暗号化部504、認証部505を含む。
暗号化部504は、暗号化処理を実行する処理部である。例えば、暗号化部504は、登録処理において、認証情報を暗号化して、登録情報を生成する。なお、暗号化には、ユーザごとの鍵情報が利用される。
認証部505は、比較結果および鍵情報に基づき、認証を実行する処理部である。例えば、認証部505は、比較結果を鍵情報で復号することで、認証用情報と被認証情報とのハミングベクトルを得る。そして、認証部505は、ハミングベクトルにおいて「1」を示すビット数と閾値「T」とを比較し、認証結果を生成する。
記憶部506は、登録処理および認証処理に必要な情報を記憶する。例えば、記憶部506は、ユーザID「A」に対応付けて、鍵情報「KA2」を記憶してもよい。
次に、第二の実施例における各種装置による処理の流れについて説明する。端末装置3による処理の流れは、第一の実施例と同様である。図12は、第二の実施例に関する判定装置の処理フローチャートである。
制御部503は、端末装置3から登録要求を受信したか否かを判定する(Op.30)。例えば、受信部501が受信した情報に、登録要求であることを示すフラグ情報が付与されているか否かに基づき、判定が行われる。
登録要求を受信した場合(Op.30Yes)、暗号化部504は、登録情報を生成する(Op.31)。例えば、暗号化部504は、登録要求に含まれるユーザIDを取得し、ユーザIDに対応する鍵情報を、記憶部506から取得する。そして、暗号化部504は、鍵情報を用いて、登録要求に含まれる認証情報を暗号化する。
送信部502は、管理装置400へ、ユーザIDと対応付けて、登録情報を送信する(Op.32)。そして、判定装置500は、登録処理を終了する。
一方、登録要求を受信しない場合(Op.30No)、制御部503は、管理装置400から、入力情報と登録情報との比較結果を受信したか否かを判定する(Op.33)。例えば、受信部501が受信した情報に、比較結果であることを示すフラグ情報が付与されているか否かに基づき、判定が行われる。
比較結果を受信していない場合は(Op.33No)、処理を終了する。一方、比較結果を受信した場合は(Op.33Yes)、認証部505は、登録情報の生成(Op.31)で利用された鍵情報を用いて、比較結果を復号する(Op.34)。認証部505は、復号結果と、閾値「T」とに基づき、認証の成功または失敗を判定する(Op.35)。
認証が成功である場合(Op.35Yes)、送信部502は、認証結果「成功」を、端末装置3へ送信する(Op.36)。一方、認証が失敗である場合(Op.35No)、送信部502は、認証結果「失敗」を、端末装置3へ送信する(Op.37)。そして、判定装置500は、認証処理を終了する。
次に、図13は、第二の実施例に関する管理装置の処理フローチャートである。
まず、制御部403は、判定装置500から登録情報を受信したか否かを判定する(Op.40)。例えば、受信部401が受信した情報に、登録情報であることを示すフラグ情報が付与されているか否かに基づき、判定が行われる。
登録情報を受信した場合(Op.40Yes)、制御部403は、登録情報とユーザIDとを対応付けて、記憶部405に格納する(Op.41)。そして、管理装置400は、認証処理を終了する。
一方、登録情報を受信しない場合(Op.40No)、制御部403は、端末装置3から認証要求を受信したかを判定する(Op.42)。例えば、受信部401が受信した情報に、認証要求であることを示すフラグ情報が付与されているか否かに基づき、判定が行われる。
認証要求を受信していない場合は(Op.42No)、処理を終了する。一方、認証要求を受信した場合は(Op.42Yes)、演算部404は、認証要求に含まれるユーザIDに対応する登録情報を、記憶部405から取得する(Op.43)。
そして、演算部404は、認証要求に含まれる入力情報と、登録情報との比較結果を演算する(Op.44)。例えば、入力情報と、登録情報との排他的論理和が演算される。なお、演算結果は、認証用情報と被認証情報とのハミングベクトルが、判定装置500における登録情報の生成(Op.31)で利用された鍵情報により暗号化された情報に相当する。
次に、送信部402は、比較結果を、ユーザIDとともに、判定装置500へ送信する(Op.45)。そして、管理装置400は、認証処理を終了する。
以上のように、第二の実施例によれば、登録情報の漏えいによる第三者のなりすましを防止することができる。さらに、第二の実施例によれば、管理装置400が登録情報を管理し、判定装置500が鍵情報を管理することで、なりすましを、より強固に防止することができる。
[第三の実施例]
第一の実施例の変形例および第二の実施例では、例として、ユーザID「A」に関して登録処理を行う際、端末側で鍵情報KA1により暗号化が行われるとともに、認証装置200または判定装置500により鍵情報「KA2」により暗号化が行われることを説明した。つまり、第一の実施例の変形例および第二の実施例では、登録情報は、異なる2つの鍵情報により2重に暗号化された認証用情報となる。
ここで、第三の実施例は、3以上のM重に暗号化された認証用情報を登録情報として利用する。以降説明するように、M個の鍵情報を、各々異なる装置が管理することで、登録情報と鍵情報が同時に盗まれるリスクをさらに低減することができる。なお、以下、Mが「3」の場合を例に説明する。
図14は、第三の実施例に関する認証システムにおける、登録処理を説明するための図である。第三の実施例における認証システムは、端末装置6と管理装置7と判定装置8と、さらに中継装置9を含む。なお、端末装置3と管理装置7と判定装置8と中継装置9とは、ネットワークNを介して接続されている。また、管理装置7と判定装置8と中継装置9は、専用のネットワークで接続されてもよい。なお、管理装置7と判定装置8と中継装置9をまとめて、第一の実施例と同様に、認証装置と称する場合もある。
端末装置6は、中継装置9を介して、管理装置4へ認証を要求するコンピュータである。また、端末装置6は、第一の実施例の変形例および第二の実施例同様、ユーザごとの鍵情報「KA1」を管理する。管理装置7は、第二の実施例同様、登録情報を管理するコンピュータである。つまり、管理装置7は、登録情報を記憶する。管理装置7は、サーバ71とデータベース72とを含む。
判定装置8は、認証の成功または失敗を判定するコンピュータである。つまり、判定装置8は、鍵情報「KA2」を管理するとともに、登録情報と入力情報との比較結果、および鍵情報「KA2」に基づき認証を行う。なお、鍵情報「KA1」と鍵情報「KA2」とは異なる鍵情報である。
中継装置9は、端末装置6と、管理装置7または判定装置8との間の通信を中継するコンピュータである。さらに、中継装置9は、鍵情報「KA3」を管理する。なお、鍵情報「KA3」は、ユーザID「A」に対応する鍵情報であって、ユーザごとに異なる鍵情報である。さらに、鍵情報「KA3」は、鍵情報「KA1」および鍵情報「KA2」とは異なる鍵情報である。中継装置9は、登録処理および認証処理の際、端末装置6から受信した情報を、自身が管理する鍵情報「KA3」で暗号化する。
まず、本実施例の登録処理においては、端末装置6は、ユーザID「A」と、認証用情報「mA」の入力を受け付ける。そして、端末装置6は、ユーザID「A」に対応する鍵「KA1」を用いて、認証用情報「mA」を暗号化することで、第一認証情報「EKA1(mA)」を生成する。そして、端末装置3は、ユーザID「A」と第一認証情報「EKA1(mA)」とを、中継装置9へ送信する。
次に、中継装置9は、ユーザID「A」と第一認証情報「EKA1(mA)」とを受信する。そして、中継装置9は、鍵情報「KA3」を用いて第一認証情報「EKA1(mA)」を暗号化することで、第二認証情報「EKA3(EKA1(mA))」を生成する。そして、ユーザID「A」と第二認証情報「EKA3(EKA1(mA))」を、判定装置8へ送信する。
判定装置8は、ユーザID「A」と第二認証情報「EKA3(EKA1(mA))」とを受信する。そして、判定装置8は、鍵情報「KA2」を用いて第二認証情報「EKA3(EKA1(mA))」を暗号化することで、登録情報「EKA2(EKA3(EKA1(mA)))」を生成する。そして、ユーザID「A」と登録情報「EKA2(EKA3(EKA1(mA)))」を、管理装置7へ送信する。
管理装置7は、判定装置8から受信したユーザID「A」と登録情報「EKA2(EKA3(EKA1(mA)))」とを対応付けて、データベース72へ記憶する。
ここで、第一認証情報は、認証用情報が端末装置6によって暗号化された情報である。第二認証情報は、第一認証情報が中継装置9によって暗号化された情報である。登録情報は、第二認証情報が判定装置8によって暗号化された情報であって、先の実施例同様、管理装置7が認証処理のために記憶する情報である。
次に、図15は、第三の実施例に関する認証システムにおける、認証処理を説明するための図である。端末装置6は、認証対象となるユーザのユーザID「A」と、被認証情報「mA’」との入力を受け付ける。端末装置6は、ユーザID「A」に対応する鍵情報「KA1」を用いて、被認証情報「mA’」を暗号化することで、第一入力情報「EKA1(mA’)」を生成する。そして、端末装置6は、ユーザID「A」と第一入力情報「EKA1(mA’)」とを、中継装置9へ送信する。
中継装置9は、ユーザID「A」と、第一入力情報「EKA1(mA’)」とを受信する。端末装置6は、ユーザID「A」に対応する鍵情報「KA3」を用いて、第一入力情報「EKA1(mA’)」を暗号化することで、第二入力情報「EKA3(EKA1(mA’))」を生成する。そして、端末装置6は、ユーザID「A」と第二入力情報「EKA3(EKA1(mA’))」とを、管理装置7へ送信する。
管理装置7は、ユーザID「A」に対応する登録情報「EKA2(EKA3(EKA1(mA)))」を読み出し、第二入力情報「EKA3(EKA1(mA’))」と登録情報「EKA2(EKA3(EKA1(mA)))」との比較結果「EKA2(HV)」を演算する。例えば、管理装置7は、第二入力情報「EKA3(EKA1(mA’))」と登録情報「EKA2(EKA3(EKA1(mA)))」との排他的論理和を演算する。演算結果は、認証用情報「mA」と被認証情報「mA’」との排他的論理和であるハミングベクトルHVを、鍵情報「KA2」で暗号化した情報に相当する。
そして、管理装置7は、ユーザID「A」と比較結果「EKA2(HV)」とを、判定装置8へ送信する。判定装置8は、ユーザID「A」に対応する鍵情報「KA2」と、比較結果「EKA2(HV)」とを用いて、認証を実行する。判定装置8は、認証結果を端末装置6へ送信する。なお、判定結果は、中継装置9を経由してもよいし、直接端末装置6へ送られてもよい。
第一入力情報は、被認証情報が端末装置6によって暗号化された情報である。第二入力情報は、第一入力情報が中継装置9によって暗号化された情報である。比較結果は、第二入力情報と登録情報との比較結果を示す情報であって、先の実施例同様、認証用情報と被認証情報との類似度を示す情報が、判定装置8が管理する鍵により暗号化された情報に相当する。
以上のように、中継装置9を経由して、端末装置6と、判定装置8または管理装置7とは、通信を行う。中継装置9は、登録処理において、自身が管理する鍵情報を利用して暗号化を行うため、最終的に管理装置7に登録される登録情報は、3重に暗号化された状態となる。つまり、第三の実施例は、先の実施例同様、登録情報が漏えいした場合に第三者のなりすましを防ぐとともに、さらに、鍵情報を管理する主体を追加することで、鍵情報が漏えいした場合のなりすましのリスクをさらに低減することができる。
次に、中継装置9の機能的構成について説明する。図16は、第三の実施例に関する中継装置の機能ブロック図である。図16における中継装置900は図14および図15における中継装置9に対応する。なお、端末装置6、管理装置7、判定装置8は、第二の実施例と同様の機能的構成である。ただし、各装置における受信部や送信部が通信する相手が、図14および図15で説明したとおり、第二の実施例とは異なる。
中継装置900は、受信部901、送信部902、制御部903、記憶部905を有する。受信部901は、端末装置6から情報を受信する処理部である。例えば、受信部901は、端末装置6から第一登録要求や、第一認証要求を受信する。第一登録要求は、登録処理時に端末装置6が生成する情報であって、登録対象となるユーザのユーザIDや、第一認証情報を含む情報である。また、第一認証要求は、認証処理時に端末装置6が生成する情報であって、認証対象となるユーザのユーザIDや、第一入力情報を含む情報である。
送信部902は、管理装置7や判定装置8へ情報を送信する処理部である。例えば、送信部902は、判定装置8へ第二登録要求を送信する。また、送信部902は、管理装置7へ第二認証要求を送信する。第二登録要求は、中継装置9が端末装置6から第一登録要求を受信したことを契機に生成される情報であって、登録対象となるユーザのユーザIDや、第二認証情報を含む情報である。第二認証要求は、中継装置9が端末装置6から第一認証要求を受信したことを契機に生成される情報であって、認証対象となるユーザのユーザIDや、第二入力情報を含む情報である。
制御部903は、中継装置900の動作を制御する処理部である。例えば、制御部903は、登録処理および認証処理を実行する。また、制御部903は、暗号化部904を含む。
暗号化部904は、暗号化処理を実行する処理部である。例えば、暗号化部904は、登録処理において、第一認証情報を暗号化して、第二認証情報を生成する。暗号化部904は、認証処理において、第一入力情報を暗号化して、第二入力情報を生成する。なお、暗号化には、ユーザごとの鍵情報が利用される。先の実施例同様、ユーザごとの鍵情報は、予め記憶部905に格納されていてもよいし、随時生成されてもよい。
記憶部905は、登録処理および認証処理に必要な情報を記憶する。例えば、記憶部905は、ユーザID「A」に対応付けて、鍵情報「KA3」を記憶してもよい。
次に、第三の実施例における中継装置900の処理の流れについて説明する。なお、端末装置6、管理装置7、判定装置8による処理の流れは、第二の実施例と同様である。ただし、機能的構成と同様、各装置における受信部や送信部が通信する相手が、図14および図15で説明したとおり、第二の実施例とは異なる。図17は、第三の実施例に関する中継装置の処理フローチャートである。
まず、制御部903は、端末装置6から第一登録要求を受信したか否かを判定する(Op.50)。例えば、受信部901が受信した情報に、第一登録要求であることを示すフラグ情報が付与されているか否かに基づき、判定が行われる。
第一登録要求を受信した場合(Op.50Yes)、暗号化部904は、第二認証情報を生成する(Op.51)。例えば、暗号化部904は、第一登録要求に含まれるユーザIDを取得し、ユーザIDに対応する鍵情報を、記憶部905から取得する。そして、暗号化部904は、鍵情報を用いて、第一登録要求に含まれる第一認証情報を暗号化する。
送信部902は、判定装置8へ、ユーザIDと対応付けて、第二認証情報を送信する(Op.52)。そして、中継装置900は、登録処理を終了する。
第一登録要求を受信していない場合(Op.50No)、制御部903は、第一認証要求を受信したか否かを判定する(Op.53)。例えば、受信部901が受信した情報に、第一認証要求であることを示すフラグ情報が付与されているか否かに基づき、判定が行われる。
第一認証要求を受信していない場合は(Op.53No)、中継装置900は処理を終了する。一方、第一認証要求を受信した場合(Op.53Yes)、暗号化部904は、第二入力情報を生成する(Op.54)。例えば、暗号化部904は、第一認証要求に含まれるユーザIDを取得し、ユーザIDに対応する鍵情報を、記憶部905から取得する。そして、暗号化部904は、鍵情報を用いて、第一認証要求に含まれる第一入力情報を暗号化する。
送信部902は、管理装置7へ、ユーザIDと対応付けて、第二認証要求を送信する(Op.55)。そして、中継装置900は、登録処理を終了する。
以上のように、中継装置900が、登録処理の過程で暗号処理を実行することで、最終的に管理装置7に登録される登録情報は、M重に暗号化される(Mは3以上)。登録情報の生成の過程で、暗号化に利用される鍵情報は、各々異なる装置が管理するため、より一層、なりすましのリスクを低減することができる。なお、認証処理の過程でも、中継装置900が暗号化を実行することで、先の実施例と同様の方法で、M重に暗号化された登録情報を利用した認証が実現される。
[第四の実施例]
第四の実施例は、登録情報を管理装置に登録する際に、先の実施例とは異なる手法を利用する。詳細は後述するが、端末装置は、認証用情報から、第一認証用情報および第二認証用情報を生成する。一方が判定装置へ送信され、他方は管理装置へ送信される。そして、管理装置は、自身が受信した情報と、判定装置を経由して得られた情報とから、登録情報を生成する。
図18は、第四の実施例に関する認証システムにおける、登録処理を説明するための図である。第四の実施例における認証システムは、端末装置3’と管理装置4’と判定装置5’を含む。なお、端末装置3’と管理装置4’と判定装置5’とは、ネットワークNを介して接続されている。また、管理装置4’と判定装置5’は、専用のネットワークで接続されてもよい。なお、管理装置4’と判定装置5’とをまとめて、第一の実施例同様、認証装置と称する場合もある。
端末装置3’は、管理装置4’へ認証を要求するコンピュータである。また、端末装置3’は、第二の実施例同様、ユーザごとの鍵情報「KA1」を管理する。管理装置4’は、登録情報を管理するコンピュータである。つまり、管理装置4’は、登録情報を記憶する。管理装置4’は、処理を実行するサーバ41’と登録情報を記憶するデータベース42’とを含む。
判定装置5’は、認証の成功または失敗を判定するコンピュータである。判定装置5’は、第二の実施例と同様に鍵情報「KA2」を管理するとともに、さらに、端末装置3’が管理する鍵情報「KA1」も管理する。また、判定装置5’は、登録情報と入力情報との比較結果に基づき認証を行う。なお、鍵情報「KA1」と鍵情報「KA2」とは異なる鍵情報である。
なお、判定装置5’は、鍵情報「KA1」と鍵情報「KA2」との排他的論理和演算の結果を、鍵情報「KA3」として保持してもよい。そして、判定装置5’は、以下説明する、鍵情報「KA1」および鍵情報「KA2」の2つの鍵情報を作用させる処理において、一つの鍵情報「KA3」を作用させてもよい。
ここで、判定装置5’が鍵情報「KA1」も有するため、端末装置3’により暗号化された情報は、判定装置5’により復号可能となる。したがって、例えば、認証用情報「mA」が鍵情報「KA1」により暗号化された情報が、判定装置5’による取得されると、認証用情報「mA」が判定装置5’に入手される。
そこで、本実施例では、登録処理において、端末装置3’は、認証用情報「mA」そのものではなく、第一認証用情報を生成して、判定装置5’へ送信する。つまり、判定装置5’は、認証用情報「mA」そのものを入手することはできない。
以下、詳細を説明する。本実施例の登録処理においては、端末装置3’は、ユーザID「A」と、認証用情報「mA」の入力を受け付ける。そして、端末装置3’は、第一認証用情報「mA1」と第二認証用情報「mA2」とを生成する。ここでは、第一認証用情報「mA1」と第二認証用情報「mA2」との排他的論理和が認証用情報「mA」となるように、端末装置3’は、第一認証用情報「mA1」と第二認証用情報「mA2」とを生成する。
例えば、端末装置3’は、まず、乱数「m」を生成する。そして、端末装置3’は、乱数「m」を第一認証用情報「mA1」とする。さらに、端末装置3’は、第一認証用情報「mA1」と認証用情報「mA」の排他的論理和を、第二認証用情報「mA2」とする。なお、第二認証用情報「mA2」が乱数「m」であって、第二認証用情報「mA2」と認証用情報「mA」の排他的論理和が、第一認証用情報「mA1」であってもよい。
端末装置3’はユーザID「A」に対応する鍵情報「KA1」を用いて、第一認証用情報「mA1」を暗号化することで、部分認証情報「EKA1(mA1)」を生成する。そして、端末装置3’は、ユーザID「A」と部分認証情報「EKA1(mA1)」とを、判定装置5’へ送信する。部分認証情報は、端末装置3’から判定装置5’へ送信される情報であって、第一認証用情報が、端末装置3’と判定装置5’で共有された鍵情報「KA1」によって暗号化された情報である。
また、端末装置3’は、ユーザID「A」と第二認証用情報「mA2」とを、管理装置4’へ送信する。なお、端末装置3’と管理装置4’との通信は、セキュアな通信路であることが望ましい。例えば、Secure Socket Layer(SSL)により、第二認証用情報「mA2」は暗号化された状態で通信されることが望ましい。
次に、判定装置5’は、ユーザID「A」と部分認証情報「EKA1(mA1)」とを受信する。そして、判定装置5’は、鍵情報「KA1」および鍵情報「KA2」を用いて、部分認証情報「EKA1(mA1)」を、部分登録情報「EKA2(mA1)」へ変換する。つまり、鍵情報「KA1」による暗号化から、鍵情報「KA2」による暗号化へ変換する。
具体的には、部分認証情報「EKA1(mA1)」と鍵情報「KA1」と鍵情報「KA2」との排他的論理和を演算することで、部分登録情報「EKA2(mA1)」を得る。部分登録情報は、判定装置5’から管理装置4’へ送信される情報であって、第一認証用情報を判定装置5’が管理する鍵情報により暗号化した情報である。そして、ユーザID「A」と部分登録情報「EKA2(mA1)」を、管理装置4’へ送信する。
管理装置4’は、端末装置3’から、ユーザID「A」と第二認証用情報「mA2」とを受信する。さらに、管理装置4’は、判定装置5’からユーザID「A」と部分登録情報「EKA2(mA1)」とを受信する。管理装置4’は、第二認証用情報「mA2」と部分登録情報「EKA2(mA1)」との排他的論理和を演算することで、登録情報「EKA2(mA)」を生成する。
なお、第一認証用情報「mA1」と第二認証用情報「mA2」との排他的論理和は、認証用情報「mA」となるため、第二認証用情報「mA2」と部分登録情報「EKA2(mA1)」との排他的論理和の演算結果は、認証用情報「mA」を鍵情報「KA2」で暗号化した情報に相当する。そして、管理装置4’は、ユーザID「A」と登録情報「EKA2(mA)」とを対応付けて、データベース42’へ記憶する。
図19は、第四の実施例に関する認証システムにおける、認証処理を説明するための図である。端末装置3’は、認証対象となるユーザのユーザID「A」と、被認証情報「mA’」との入力を受け付ける。端末装置3’は、ユーザID「A」に対応する鍵「KA1」を用いて、被認証情報「mA’」を暗号化することで、入力情報「EKA1(mA’)」を生成する。そして、端末装置3’は、ユーザID「A」と入力情報「EKA1(mA’)」とを、管理装置4’へ送信する。
管理装置4’は、ユーザID「A」に対応する登録情報「EKA2(mA)」を読み出し、入力情報「EKA1(mA’)」と登録情報「EKA2(mA))」との比較結果「EKA2(EKA1(HV))」を演算する。例えば、管理装置4’は、入力情報「EKA1(mA’)」と登録情報「EKA2(mA)」との排他的論理和を演算する。演算結果は、認証用情報と被認証情報との排他的論理和の演算結果であるハミングベクトルHVを、鍵情報「KA1」および鍵情報「KA2」で暗号化した情報に相当する。
そして、管理装置4’は、ユーザID「A」と比較結果「EKA2(EKA1(HV))」とを、判定装置5’へ送信する。判定装置5’は、ユーザID「A」に対応する鍵情報「KA1」と鍵情報「KA2」と比較結果「EKA2(EKA1(HV))」とを用いて、認証を実行する。例えば、判定装置5’は、鍵情報「KA1」および鍵情報「KA2」で比較結果「EKA2(EKA1(HV))」を復号することで、ハミングベクトルHVを得る。そして、判定装置5’は、ハミングベクトルHVにおいて「1」を示すビット数と閾値との比較によって、認証の成功または失敗を判定する。判定装置5’は、認証結果を端末装置3’へ送信する。
以上のように、管理装置4’は、部分登録情報と、第二認証用情報とから登録情報を生成する。したがって、認証用情報そのものを判定装置5’が入手できない形態で、登録情報の管理装置4’への他の登録方法が実現される。
なお、鍵情報「KA1」と鍵情報「KA2」との排他的論理和における「1」を示すビット数が、認証の成功または失敗を判定する際の閾値「T」以上となるように、鍵情報「KA1」および鍵情報「KA2」は生成される。
登録情報「EKA2(mA)」が漏えいした場合に、第三者は、認証処理において、登録情報「EKA2(mA)」を、入力情報として、管理装置4’へ送信する。この際、登録情報「EKA2(mA)」と入力情報「EKA2(mA)」との比較結果「EKA2(EKA1(HV))」は、「0」が並んだデータ列となる。
本実施例では、判定装置5’は、認証に先だって、比較結果「EKA2(EKA1(HV))」と鍵情報「KA1」と鍵情報「KA2」との排他的論理和を演算する。そこで、なりすましを防ぐために、演算結果において「1」を示すビット列が閾値「T」以上である必要がある。したがって、予め、鍵情報「KA1」と鍵情報「KA2」との排他的論理和における「1」を示すビット数が、閾値「T」以上となるように、鍵情報「KA1」および鍵情報「KA2」は生成される。
次に、第四の実施例に関する各装置の機能的構成について説明する。端末装置3’は、図5に示す端末装置100と同様の機能的構成を有する。ただし、端末装置3’における制御部104は、第一認証用情報および第二認証用情報の生成を行う。
管理装置4’は、図11に示す管理装置400と同様の機能的構成を有する。ただし、制御部403は、部分登録情報と第二認証用情報とに基づき、登録情報を生成する。
判定装置5’は、図11に示す判定装置500と同様の機能的構成を有する。ただし、暗号化部504は、登録処理において、第一認証用情報に対して、鍵情報「KA1」および鍵情報「KA2」を適用することで、部分登録情報を生成する。また、認証部505は、認証処理において、鍵情報「KA1」および鍵情報「KA2」を利用して、認証を行う。
次に、第四の実施例に関する各装置の処理フローについて説明する。図20は、第四の実施例に関する端末装置の処理フローチャートである。
制御部104は、登録処理を実行するか否かを判定する(Op.60)。例えば、ユーザにより登録処理の開始命令が入力された場合には、制御部104は登録処理を実行することを判定する。一方、ユーザにより認証処理の開始命令が入力されない場合には、制御部104は登録処理を実行しないことを判定する。
登録処理を実行する場合(Op.60Yes)、取得部103は、ユーザIDを取得する(Op.61)。なお、ユーザの入力や、ICチップ内蔵のカードから情報を読み取ることで、ユーザIDは取得される。そして、取得部103は、認証用情報を取得する(Op.62)。なお、例えば、ユーザの体の一部を撮影したり、ICチップ内臓のカードから情報を読み取ることで、認証用情報は取得される。Op.61およびOp.62の順序は入れ替え可能である。
次に、制御部104は、第一認証用情報および第二認証用情報を生成する(Op.63)。第一認証用情報と第二認証用情報との排他的論理和が認証用情報となるように、第一認証用情報および第二認証用情報は生成される。
次に、暗号化部105は、部分認証情報を生成する(Op.64)。例えば、暗号化部105は、第一認証用情報と鍵情報の排他的論理和を演算する。例えば、鍵情報に基づき生成された乱数と、認証用情報との排他的論理和を演算してもよい。
送信部102は、制御部104の制御の下、判定装置5’へ登録要求を送信する(Op.65)。なお、登録要求は、ユーザIDと部分認証情報を含む。送信部102は、制御部104の制御の下、管理装置4’へ登録仮要求を送信する(Op.66)。なお、登録仮要求は、ユーザIDと第二認証用情報を含む。そして、端末装置100は、登録処理を終了する。
一方、制御部104が登録処理を実行しないと判定した場合(Op.60No)、端末装置100は、認証処理を実行する。なお、第一の実施例と同様に、端末装置100は、認証処理を実行するか否かを判定してもよい。まず、取得部103は、ユーザIDを取得する(Op.67)。そして、取得部103は、被認証情報を取得する(Op.68)。なお、Op.67およびOp.68の順序は入れ替え可能である。
次に、暗号化部105は、入力情報を生成する(Op.69)。例えば、暗号化部105は、被認証情報と鍵情報の排他的論理和を演算する。例えば、鍵情報に基づき生成された乱数と、被認証情報との排他的論理和を演算する。なお、認証情報の生成における暗号化方法と、入力情報の生成における暗号化方法は、同様の手法が用いられる。さらに、認証情報の生成における暗号化方法と、入力情報の生成における暗号化方法には、同一の鍵情報が利用される。
送信部102は、制御部104の制御の下、管理装置4’へ認証要求を送信する(Op.70)。認証要求は、ユーザIDと入力情報を含む。そして、制御部104は、認証結果を、判定装置5’から受信したかを判定する(Op.71)。認証結果を受信するまで待機し(Op.71No)、受信した場合は(Op.71Yes)、制御部104は、表示装置へ認証結果を表示する(Op.72)。そして、端末装置100は、認証処理を終了する。
次に、図21は、第四の実施例に関する判定装置の処理フローチャートである。制御部503は、端末装置3’から登録要求を受信したか否かを判定する(Op.80)。例えば、受信部501が受信した情報に、登録要求であることを示すフラグ情報が付与されているか否かに基づき、判定が行われる。
登録要求を受信した場合(Op.80Yes)、暗号化部504は、部分登録情報を生成する(Op.81)。例えば、暗号化部504は、登録要求に含まれるユーザID「A」を取得し、ユーザID「A」に対応する鍵情報「KA1」および鍵情報「KA2」を、記憶部506から取得する。なお、鍵情報「KA1」は、端末装置3’と共有された鍵情報である。そして、暗号化部504は、2つの鍵情報を用いて、登録要求に含まれる部分認証情報の暗号化を、鍵情報「KA1」による暗号化から鍵情報「KA2」による暗号化へ変換する。
送信部502は、管理装置4’へ、ユーザIDと対応付けて、部分登録情報を送信する(Op.82)。そして、判定装置500は、登録処理を終了する。
一方、登録要求を受信しない場合(Op.80No)、制御部503は、管理装置4’から、入力情報と登録情報との比較結果を受信したか否かを判定する(Op.83)。例えば、受信部501が受信した情報に、比較結果であることを示すフラグ情報が付与されているか否かに基づき、判定が行われる。
比較結果を受信していない場合は(Op.83No)、処理を終了する。一方、比較結果を受信した場合は(Op.83Yes)、認証部505は、部分登録情報の生成(Op.81)で利用された2つの鍵情報を用いて、比較結果を復号する(Op.84)。認証部505は、復号結果と、閾値「T」とに基づき、認証の成功または失敗を判定する(Op.85)。
認証が成功である場合(Op.85Yes)、送信部502は、認証結果「成功」を、端末装置3’へ送信する(Op.86)。一方、認証が失敗である場合(Op.85No)、送信部502は、認証結果「失敗」を、端末装置3’へ送信する(Op.87)。そして、判定装置500は、認証処理を終了する。
次に、図22は、第四の実施例に関する管理装置の処理フローチャートである。
まず、制御部403は、判定装置5’から登録仮要求を受信したか否かを判定する(Op.90)。例えば、受信部401が受信した情報に、登録仮要求であることを示すフラグ情報が付与されているか否かに基づき、判定が行われる。
登録仮要求を受信した場合(Op.90Yes)、制御部403は、判定装置5’から、登録部分情報を受信したか否かを判定する(Op.91)。登録部分情報を受信するまで待機し(Op.91No)、登録情報を受信した場合(Op.91Yes)、制御部403は、登録情報を生成する(Op.92)。例えば、制御部403は、部分登録情報と、登録仮要求に含まれる第二認証用情報との排他的論理和を演算する。そして、生成した登録情報とユーザIDとを対応付けて、記憶部405に格納する(Op.93)。そして、管理装置400は、認証処理を終了する。
一方、登録仮要求を受信しない場合(Op.90No)、制御部403は、端末装置3’から認証要求を受信したかを判定する(Op.94)。例えば、受信部401が受信した情報に、認証要求であることを示すフラグ情報が付与されているか否かに基づき、判定が行われる。
認証要求を受信していない場合は(Op.94No)、処理を終了する。一方、認証要求を受信した場合は(Op.94Yes)、演算部404は、認証要求に含まれるユーザIDに対応する登録情報を、記憶部405から取得する(Op.95)。
そして、演算部404は、認証要求に含まれる入力情報と、登録情報との比較結果を演算する(Op.96)。例えば、入力情報と、登録情報との排他的論理和が演算される。なお、演算結果は、認証用情報と被認証情報とのハミングベクトルが、判定装置4’における部分登録情報の生成(Op.91)で利用された2つの鍵情報により暗号化された情報に相当する。
次に、送信部402は、比較結果を、ユーザIDとともに、判定装置5’へ送信する(Op.97)。そして、管理装置400は、認証処理を終了する。
以上のように、第四の実施例によれば、登録情報の登録を、判定装置4’に認証用情報を秘匿したまま、他の実施例と異なる方法で実現することができる。
[ハードウェア構成例]
次に図23は、本発明に関する各装置のハードウェア構成例である。なお、第一の実施例、第二の実施例、第三の実施例、第四の実施例の各々に関する端末装置、認証装置、管理装置、判定装置は、各々コンピュータにより実現される。よって、図23は、各実施例における端末装置、認証装置、管理装置、判定装置の各々として機能するコンピュータ1000のハードウェア構成を示す。
コンピュータ1000は、各実施例に係る登録処理および認証処理を実行し、各実施例における端末装置、認証装置、管理装置、判定装置の各々として機能する。コンピュータ1000はCentral Processing Unit(CPU)1001、Read Only Memory(ROM)1002、Random Access Memory(RAM)1003、通信装置1004、Hard Disk Drive(HDD)1005、入力装置1006、表示装置1007、媒体読取装置1008を有しており、各部はバス1009を介して相互に接続されている。そしてCPU1001による管理下で相互にデータの送受を行うことができる。
各実施例のフローチャートに示した登録処理または認証処理が記述された認証プログラムは、コンピュータ1000が読み取り可能な記録媒体に記録される。コンピュータ1000が読み取り可能な記録媒体には、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記録装置には、HDD、フレキシブルディスク(FD)、磁気テープ(MT)などがある。
光ディスクには、Digital Versatile Disc(DVD)、DVD−RAM、Compact Disc − Read Only Memory(CD−ROM)、Compact Disc − Recordable/ReWritable(CD−R/RW)などがある。光磁気記録媒体には、Magneto − OPtical disk(MO)などがある。認証プログラムを流通させる場合には、例えば、認証プログラムが記録されたDVD、CD−ROMなどの可搬型記録媒体が販売されることが考えられる。
そして各実施例に係る登録処理および認証処理が記述された認証プログラムを実行するコンピュータ1000の媒体読取装置1008が、認証プログラムを記録した記録媒体から、該プログラムを読み出す。CPU1001は、読み出された認証プログラムをHDD1005若しくはROM1002、RAM1003に格納する。
CPU1001は、各実施例に関わる装置全体の動作制御を司る中央処理装置である。そして、CPU1001が、各実施例に関わる認証プログラムをHDD1005から読み出して実行する。CPU1001は、各装置における制御部として機能するようになる。先に述べたとおり、プログラムはCPU1001とアクセス可能なROM1002またはRAM1003に格納されていても良い。
つぎに、通信装置1004は、CPU1001の制御の下、各装置における受信部または送信部として機能する。
HDD1005は、CPU1001の管理下で、各装置における記憶部として機能する。つまり、HDD1005は、登録処理および認証処理に必要な情報を記憶する。プログラム同様、登録処理および認証処理に必要な情報はCPU1001とアクセス可能なROM1002またはRAM1003に格納されても良い。さらに、処理の過程で生成される各種情報は、例えば、RAM1003に格納される。つまり、RAM1003が記憶部として機能する場合もある。
入力装置1006は、各種入力を受け付ける。入力装置1006は、例えばキーボードやマウスである。表示装置1007は、各種情報を表示する。表示装置1007は、例えばディスプレイである。