(57)【要約】      （修正有）【課題】利用者から読み取った生体情報を暗号化したデータ及び暗号化した登録データを暗号状態のまま比較し生体認証を行うシステムにおいて、判定装置による不正登録を防止することのできる暗号処理装置を提供する。【解決手段】第１の鍵ＫＡ１を保持し、認証の際に被認証データを受け付ける暗号処理装置１０は、被認証データと照合される登録データｍAを第１の鍵ＫＡ１及び第２の鍵ＫＡ２で二重に暗号化した暗号化登録データＣ２が登録される計算装置２０、及び、認証の際に第２の鍵ＫＡ２を利用する判定装置３０と通信する通信部１１と、計算装置２０に暗号化登録データＣ２を登録する際、第１の鍵ＫＡ１とは異なる鍵Ｋを生成し、第１の鍵ＫＡ１及び異なる鍵Ｋで登録データｍAを二重に暗号化した暗号データＣ１を生成し、通信部１１を介して、当該異なる鍵Ｋを判定装置３０に送信し、当該暗号データＣ１を計算装置２０に送信する演算部１２と、を有する。【選択図】図１
2015192446.tif 000002
【特許請求の範囲】
【請求項１】
第１の鍵を保持し、認証の際に被認証データを受け付けるコンピュータに対し、
前記被認証データと照合される登録データを前記第１の鍵及び第２の鍵で二重に暗号化した暗号化登録データが登録される計算装置、及び、認証の際に前記第２の鍵を利用する判定装置と通信して前記計算装置に前記暗号化登録データを登録する際、
前記第１の鍵とは異なる鍵を生成し、当該異なる鍵を前記判定装置に送信し、
前記第１の鍵及び前記異なる鍵で前記登録データを二重に暗号化した暗号データを生成し、当該暗号データを前記計算装置に送信する
処理を実行させる、プログラム。
【請求項２】
前記異なる鍵は前記第２の鍵であり、
前記計算装置は、前記暗号データを用いて前記暗号化登録データの登録処理を実行する
請求項１に記載のプログラム。
【請求項３】
前記異なる鍵は、前記計算装置に前記暗号化登録データを登録する度に新たに生成される一時鍵であり、
前記判定装置は、
前記第２の鍵を保持しており、前記一時鍵で前記第２の鍵を暗号化した暗号化鍵データを生成し、当該暗号化鍵データを前記計算装置へと送信し、
前記計算装置は、前記暗号データと前記暗号化鍵データとを用いて前記暗号化登録データを生成し、当該暗号化登録データの登録処理を実行する
請求項１に記載のプログラム。
【請求項４】
前記第１の鍵及び前記異なる鍵の少なくとも１つは、設定された鍵生成関数を利用して生成される
請求項１〜３のいずれか１項に記載のプログラム。
【請求項５】
第１の鍵を保持し、認証の際に被認証データを受け付けるコンピュータが、
前記被認証データと照合される登録データを前記第１の鍵及び第２の鍵で二重に暗号化した暗号化登録データが登録される計算装置、及び、認証の際に前記第２の鍵を利用する判定装置と通信して前記計算装置に前記暗号化登録データを登録する際、
前記第１の鍵とは異なる鍵を生成し、当該異なる鍵を前記判定装置に送信し、
前記第１の鍵及び前記異なる鍵で前記登録データを二重に暗号化した暗号データを生成し、当該暗号データを前記計算装置に送信する
暗号処理方法。
【請求項６】
第１の鍵を保持し、認証の際に被認証データを受け付ける暗号処理装置であって、
前記被認証データと照合される登録データを前記第１の鍵及び第２の鍵で二重に暗号化した暗号化登録データが登録される計算装置、及び、認証の際に前記第２の鍵を利用する判定装置と通信する通信部と、
前記計算装置に前記暗号化登録データを登録する際、前記第１の鍵とは異なる鍵を生成し、前記第１の鍵及び前記異なる鍵で前記登録データを二重に暗号化した暗号データを生成し、前記通信部を介して、当該異なる鍵を前記判定装置に送信し、当該暗号データを前記計算装置に送信する演算部と、
を有する、暗号処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム、暗号処理方法、及び暗号処理装置に関する。
【背景技術】
【０００２】
高いセキュリティレベルが求められる金融機関のシステムや電子商取引のシステムなどでは高度な認証技術が利用される。最近では、利用者が設定したパスワードに基づくパスワード認証に加え、利用者の生体情報を利用した生体認証などの技術が利用されている。
【０００３】
生体認証を利用するシステムは、認証の際に利用者から生体情報を読み取り、予め登録済みの生体情報であるテンプレートデータと、読み取った生体情報との類似度を比較する。つまり、システムにより読み取られた生体情報が被認証情報として利用され、テンプレートデータが認証情報として利用される。両者が許容可能な範囲内で一致する場合には認証成功と判定され、一致しない場合には認証失敗と判定される。
【０００４】
生体情報としては、例えば、指紋、静脈、虹彩などのパターンが利用される。これらの生体情報は１人１人に固有の情報であり変更がきかない。そのため、テンプレートデータの管理には細心の注意が払われる。例えば、テンプレートデータは、暗号化した状態で認証用のサーバに登録される。但し、認証時に元のテンプレートデータを復号し、利用者から読み取った生体情報と比較する仕組みにすると、復号したテンプレートデータ及び読み取った生体情報が悪意ある第三者に窃取されるリスクが生じる。
【０００５】
上記のリスクを抑圧するため、利用者から読み取った生体情報を暗号化したデータ及び暗号化したテンプレートデータをいずれも復号せずに比較し、生体情報とテンプレートデータとのハミング距離を計算する技術が提案されている。この技術は、データを暗号化する際に排他的論理和演算（以下、記号「∧」で表す場合がある。）を利用する。
【０００６】
例えば、データＸを暗号鍵Ｋで暗号化する関数ＥK（Ｘ）としては、暗号鍵Ｋと入力情報Ｘとの排他的論理和を演算するための関数や、ＡＥＳ（Advanced Encryption Standard）暗号化のＣＴＲ（CounTeR）モードの関数が適用可能である。なお、鍵情報である暗号鍵Ｋそのものではなく、暗号鍵Ｋにより生成された乱数が暗号化に利用されてもよい。ここでは、記号「∧」を用いて、このような関数をＥK（Ｘ）＝Ｋ∧Ｘで与える。
【０００７】
利用者から読み取った生体情報をＸ１、テンプレートデータをＸ２、暗号鍵をＫとした場合、ＥK（Ｘ１）∧ＥK（Ｘ２）＝（Ｘ１∧Ｋ）∧（Ｘ２∧Ｋ）＝Ｘ１∧Ｘ２≡ＨＶが成り立つ。但し、ＨＶは、生体情報Ｘ１とテンプレートデータＸ２との差を表すハミングベクトルである。従って、上記の演算を利用すれば、ハミングベクトルＨＶの長さ（ハミング距離）を基に、暗号化した状態のまま生体情報とテンプレートデータとの一致度を評価でき、生体情報の漏洩リスクを抑圧することができる。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００５−１３０３８４号公報
【非特許文献】
【０００９】
【非特許文献１】太田  陽基、笹野  義二、菅谷  史昭、“プライバシーを保護する虹彩認証方式の提案”、コンピュータセキュリティシンポジウム  2003、pp.163-pp.168
【発明の概要】
【発明が解決しようとする課題】
【００１０】
上記の提案に係る技術は、利用者が生体情報を入力する端末装置と認証用のサーバとにより二者間で認証処理を実行する認証システムへの適用を想定した技術である。そのため、上記の技術は、利用者が生体情報を入力する端末装置と、暗号化したテンプレートデータを保持するサーバ（以下、計算装置）と、認証の成否を判定するサーバ（以下、判定装置）との間で認証処理を実行する認証システムへの適用を想定していない。
【００１１】
例えば、端末装置が暗号化した生体情報を計算装置に送信し、計算装置が暗号化した状態のまま生体情報とテンプレートデータとの差を表す距離情報を生成する仕組みについて考える。但し、計算装置で生成された距離情報に基づいて判定装置が認証の成否を判定する。また、セキュリティを高めるため、２つの暗号鍵を用いて二重にテンプレートデータを暗号化して計算装置に登録し、一方の暗号鍵を端末装置が保持し、他方の暗号鍵を判定装置が保持する場合について考える。
【００１２】
上記の場合、テンプレートデータを計算装置に登録する際に、端末装置の暗号鍵でテンプレートデータを暗号化し、判定装置の暗号鍵で更にテンプレートデータを暗号化して計算装置へ登録する処理が生じる。つまり、判定装置が最終的に計算装置へデータを登録するため、端末装置に知られずに、判定装置によりデータの不正登録が行われるリスクがある。例えば、端末装置で暗号化された任意の生体情報との排他的論理和演算が十分に短いハミングベクトルとなるようなデータが不正に登録されると、端末装置に入力される生体情報にかかわらず認証が成功するリスクが生じる。
【００１３】
そこで、１つの側面によれば、本発明の目的は、判定装置による不正登録を防止することが可能なプログラム、暗号処理方法、及び暗号処理装置を提供することにある。
【課題を解決するための手段】
【００１４】
本開示の１つの側面によれば、第１の鍵を保持し、認証の際に被認証データを受け付けるコンピュータに対し、被認証データと照合される登録データを第１の鍵及び第２の鍵で二重に暗号化した暗号化登録データが登録される計算装置、及び、認証の際に第２の鍵を利用する判定装置と通信して計算装置に暗号化登録データを登録する際、第１の鍵とは異なる鍵を生成し、当該異なる鍵を判定装置に送信し、第１の鍵及び異なる鍵で登録データを二重に暗号化した暗号データを生成し、当該暗号データを計算装置に送信する処理を実行させる、プログラムが提供される。
【００１５】
また、本開示の他の１つの側面によれば、第１の鍵を保持し、認証の際に被認証データを受け付けるコンピュータが、被認証データと照合される登録データを第１の鍵及び第２の鍵で二重に暗号化した暗号化登録データが登録される計算装置、及び、認証の際に第２の鍵を利用する判定装置と通信して計算装置に暗号化登録データを登録する際、第１の鍵とは異なる鍵を生成し、当該異なる鍵を判定装置に送信し、第１の鍵及び異なる鍵で登録データを二重に暗号化した暗号データを生成し、当該暗号データを計算装置に送信する暗号処理方法が提供される。
【００１６】
また、本開示の他の１つの側面によれば、第１の鍵を保持し、認証の際に被認証データを受け付ける暗号処理装置であって、被認証データと照合される登録データを第１の鍵及び第２の鍵で二重に暗号化した暗号化登録データが登録される計算装置、及び、認証の際に第２の鍵を利用する判定装置と通信する通信部と、計算装置に暗号化登録データを登録する際、第１の鍵とは異なる鍵を生成し、第１の鍵及び異なる鍵で登録データを二重に暗号化した暗号データを生成し、通信部を介して、当該異なる鍵を判定装置に送信し、当該暗号データを計算装置に送信する演算部と、を有する、暗号処理装置が提供される。
【発明の効果】
【００１７】
本発明によれば、判定装置による不正登録を防止することが可能になる。
【図面の簡単な説明】
【００１８】
【図１】第１実施形態に係る暗号処理装置の一例を示した図である。
【図２】第２実施形態に係る認証システムの一例を示した図である。
【図３】認証システムにおける照合処理の一例を示した図である。
【図４】認証システムにおける登録処理の一例を示した図である。
【図５】認証システムに含まれる判定装置による不正登録の一例を示した図である。
【図６】第２実施形態に係る端末装置による直接登録の一例を示した図である。
【図７】第２実施形態に係る暗号処理装置の機能を実現可能なハードウェアの一例を示した図である。
【図８】第２実施形態に係る端末装置が有する機能の一例を示したブロック図である。
【図９】第２実施形態に係る計算装置が有する機能の一例を示したブロック図である。
【図１０】第２実施形態に係る暗号化登録データの一例を示した図である。
【図１１】第２実施形態に係る判定装置が有する機能の一例を示したブロック図である。
【図１２】第２実施形態に係る鍵生成関数の利用について説明するための図である。
【図１３】第２実施形態に係る端末装置の動作例を示したフロー図である。
【図１４】第２実施形態に係る計算装置の動作例を示したフロー図である。
【図１５】第２実施形態に係る判定装置の動作例を示したフロー図である。
【図１６】第２実施形態の一変形例に係る端末装置による直接登録の一例を示した図である。
【図１７】第２実施形態に係る端末装置の動作例を示したフロー図である。
【図１８】第２実施形態に係る判定装置の動作例を示したフロー図である。
【図１９】第２実施形態に係る計算装置の動作例を示したフロー図である。
【発明を実施するための形態】
【００１９】
以下に添付図面を参照しながら、本発明の実施形態について説明する。なお、本明細書及び図面において実質的に同一の機能を有する要素については、同一の符号を付することにより重複説明を省略する場合がある。
【００２０】
＜１．第１実施形態＞
図１を参照しながら、第１実施形態について説明する。図１は、第１実施形態に係る暗号処理装置の一例を示した図である。なお、暗号処理装置１０は、第１実施形態に係る暗号処理装置の一例である。また、図中及び以下の説明において、表示の都合上、排他的論理和演算やＡＥＳ暗号化のＣＴＲモードの関数を記号「∧」と表現する場合がある。なお、暗号鍵Ｋそのものではなく、暗号鍵Ｋにより生成された乱数が暗号化に利用されてもよい。
【００２１】
図１に示すように、暗号処理装置１０は、通信部１１及び演算部１２を有する。なお、暗号処理装置１０は、ＲＡＭ（Random Access Memory）などの揮発性記憶装置（非図示）、或いは、ＨＤＤ（Hard Disk Drive）やフラッシュメモリなどの不揮発性記憶装置（非図示）をさらに有していてもよい。また、暗号処理装置１０は、計算装置２０及び判定装置３０と通信することができる。それぞれの通信に利用する通信回線においては、例えば、ＳＳＬ（Secure Socket Layer）などの暗号化通信技術を適用することが望ましい。
【００２２】
なお、通信部１１は、有線又は無線の通信回線を通じて計算装置２０及び判定装置３０と通信するための通信回路やネットワークインターフェースなどである。また、演算部１２は、ＣＰＵ（Central Processing Unit）やＤＳＰ（Digital Signal Processor）などのプロセッサである。但し、演算部１２は、ＡＳＩＣ（Application Specific Integrated Circuit）やＦＰＧＡ（Field Programmable Gate Array）などの電子回路であってもよい。演算部１２は、例えば、不揮発性記憶装置又は他の可搬記録媒体などのメモリに記憶されたプログラムを実行する。
【００２３】
暗号処理装置１０は、第１の鍵ＫＡ１を保持し、認証の際に被認証データを受け付ける。なお、計算装置２０には、被認証データと照合される登録データｍAを第１の鍵ＫＡ１及び第２の鍵ＫＡ２で二重に暗号化した暗号化登録データＣ２が登録される。また、判定装置３０は、認証の際に第２の鍵ＫＡ２を利用する。
【００２４】
なお、登録データｍAは、認証情報の一例である。被認証データは、被認証情報の一例である。登録データｍA及び被認証データとしては、例えば、利用者の生体情報や、暗号処理装置１０又は利用者が管理する電子回路のＰＵＦ（Physical Unclonable Function）を適用可能である。
【００２５】
計算装置２０に暗号化登録データＣ２を登録する際、演算部１２は、第１の鍵ＫＡ１とは異なる鍵Ｋを生成する。また、演算部１２は、第１の鍵ＫＡ１及び異なる鍵Ｋで登録データｍAを二重に暗号化した暗号データＣ１を生成する。また、演算部１２は、通信部１１を介して異なる鍵Ｋを判定装置３０に送信する。
【００２６】
例えば、演算部１２は、第１の鍵ＫＡ１、異なる鍵Ｋ、及び登録データｍAの排他的論理和（ｍA∧ＫＡ１∧Ｋ＝ＥK（ＥKA1（ｍA）））を計算し、計算結果を暗号データＣ１として計算装置２０へ送信する。このとき、演算部１２は、登録データｍAを登録する利用者ＡのＩＤ（Ａ）を計算装置２０に送信する。また、演算部１２は、通信部１１を介して暗号データＣ１を計算装置２０に送信する。
【００２７】
（Ｋ＝ＫＡ２の場合）
例えば、異なる鍵Ｋが第２の鍵ＫＡ２である場合、暗号データＣ１は、暗号化登録データＣ２と同じになる。従って、計算装置２０は、暗号データＣ１を用いて暗号化登録データＣ２の登録処理を実行する。また、判定装置３０は、暗号処理装置１０から受信した異なる鍵Ｋを第２の鍵ＫＡ２として保持する。
【００２８】
（Ｋ＝一時鍵の場合）
他の例として、異なる鍵Ｋが計算装置２０に暗号化登録データＣ２を登録する度に新たに生成される一時鍵である場合を考える。この場合、判定装置３０は、暗号処理装置１０から受信した異なる鍵Ｋ（一時鍵）で、予め保持している第２の鍵ＫＡ２を暗号化した暗号化鍵データを生成する。そして、判定装置３０は、暗号化鍵データを計算装置２０へと送信する。例えば、判定装置３０は、異なる鍵Ｋと第２の鍵ＫＡ２との排他的論理和（ＫＡ２∧Ｋ＝ＥK（ＫＡ２））を計算し、計算結果を暗号鍵データとして計算装置２０へ送信する。
【００２９】
暗号鍵データを受信した計算装置２０は、暗号データＣ１と暗号化鍵データとを用いて暗号化登録データＣ２を生成する。例えば、計算装置２０は、暗号データＣ１と暗号鍵データとの排他的論理和（ＥK（ＥKA1（ｍA））∧ＥK（ＫＡ２）＝ＥKA2（ＥKA1（ｍA）））を計算し、計算結果を暗号化登録データＣ２とする。そして、計算装置２０は、暗号化登録データＣ２の登録処理を実行する。
【００３０】
いずれの場合も登録データｍAを暗号化した暗号データＣ１が暗号処理装置１０から計算装置２０へと直接送信される。そのため、暗号化登録データＣ２の登録処理に際し、暗号処理装置１０の知らないところで、判定装置３０により不正なデータが計算装置２０に登録されるリスクを抑制することができる。
【００３１】
以上、第１実施形態について説明した。
＜２．第２実施形態＞
次に、第２実施形態について説明する。第２実施形態は、排他的論理和演算に基づく暗号処理により被認証情報及び認証情報を二重に暗号化して管理する方式（以下、重複バーナム暗号方式）を採用した認証システムに関する。なお、図中及び以下の説明において、表示の都合上、排他的論理和演算やＡＥＳ暗号化のＣＴＲモードの関数を記号「∧」と表現する場合がある。また、暗号鍵ＫによりデータＸを暗号化したデータを「ＥK（Ｘ）」と表現する場合がある。なお、暗号鍵Ｋそのものではなく、暗号鍵Ｋにより生成された乱数が暗号化に利用されてもよい。
【００３２】
（排他的論理和演算の性質について）
ここで、排他的論理和演算の性質について述べる。
排他的論理和演算は、任意のビット列Ｘ１、Ｘ２に対し、（Ｘ１∧Ｘ２）∧Ｘ２＝Ｘ１が成り立つ。つまり、同じビット列Ｘ２に対する排他的論理和演算は打ち消し合う。また、Ｘ１∧Ｘ２＝Ｘ２∧Ｘ１が成り立つ。従って、ＥK1（ＥK（Ｘ１））∧ＥK2（ＥK（Ｘ２））＝（Ｘ１∧Ｋ∧Ｋ１）∧（Ｘ２∧Ｋ∧Ｋ２）＝（Ｘ１∧Ｘ２）∧Ｋ１∧Ｋ２＝ＥK1（ＥK2（ＨＶ））が成り立つ。但し、ＨＶ≡Ｘ１∧Ｘ２である。
【００３３】
第２実施形態に係る認証システムは、上記のような排他的論理和演算の性質を利用する。なお、このような性質を有する他の暗号化関数を排他的論理和演算の代わりに利用して第２実施形態に係る認証システムを構築してもよい。このような変形についても当然に第２実施形態の技術的範囲に属する。
【００３４】
［２−１．認証システム］
図２を参照しながら、第２実施形態に係る認証システムについて説明する。図２は、第２実施形態に係る認証システムの一例を示した図である。
【００３５】
図２に示すように、第２実施形態に係る認証システムは、端末装置１００、計算装置２００、及び判定装置３００を含む。
なお、端末装置１００、計算装置２００、判定装置３００は通信回線により接続されている。通信回線としては、例えば、端末装置１００と計算装置２００、端末装置１００と判定装置３００、及び計算装置２００と判定装置３００をそれぞれ安全に接続する専用回線を適用可能である。また、通信回線として公衆通信網を利用し、ＳＳＬやＶＰＮ（Virtual Private Network）などの技術を利用してセキュリティを確保する方法を適用することが望ましい。
【００３６】
例えば、金融機関のシステムに適用する場合、手のひらや指などの静脈パターンを読み取る機能を搭載したＡＴＭ（Automated Teller Machine）端末は、端末装置１００の一例である。また、電子商取引や電子決済のシステムに適用する場合、指紋や虹彩のパターンを読み取る機器を接続した利用者のコンピュータは、端末装置１００の一例である。これらの例以外にも、第２実施形態に係る認証システムは、認証サービスを提供する任意のシステムに適用可能である。
【００３７】
端末装置１００には、照合データＭA、ＭB、…が入力される。照合データＭA、ＭB、…は、被認証情報の一例である。また、照合データＭA、ＭB、…は、それぞれ認証情報である登録データｍA、ｍB、…と照合される。端末装置１００は、第１暗号鍵ＫＡ１、ＫＢ１、…を保持する。第１暗号鍵ＫＡ１、ＫＢ１、…は、それぞれ照合データＭA、ＭB、…の暗号化に利用される。計算装置２００は、暗号化登録データＥKA2（ＥKA1（ｍA））、ＥKB1（ＥKB2（ｍB））、…を保持する。また、判定装置３００は、第２暗号鍵ＫＡ２、ＫＢ２、…を保持する。
【００３８】
暗号化登録データＥKA2（ＥKA1（ｍA））は、第１暗号鍵ＫＡ１及び第２暗号鍵ＫＡ２を用いて登録データｍAを暗号化したデータである。つまり、暗号化登録データＥKA2（ＥKA1（ｍA））は下記の式（１）で与えられる。また、暗号化登録データＥKB2（ＥKB1（ｍB））は、第１暗号鍵ＫＢ１及び第２暗号鍵ＫＢ２を用いて登録データｍBを暗号化したデータである。つまり、暗号化登録データＥKB2（ＥKB1（ｍB））は下記の式（２）で与えられる。
【００３９】
ＥKA2（ＥKA1（ｍA））＝ｍA∧ＫＡ１∧ＫＡ２
…（１）
ＥKB2（ＥKB1（ｍB））＝ｍB∧ＫＢ１∧ＫＢ２
…（２）
以下の説明では、簡単のため、図２に例示した認証システムを想定し、照合データＭAと登録データｍAとの照合に係る処理、及び暗号化登録データＥKA2（ＥKA1（ｍA））の登録に係る処理に注目して説明を進める。
【００４０】
（照合処理の一例）
ここで、図３を参照しながら、認証システムにおける照合処理の一例について説明する。なお、図３は、認証システムにおける照合処理の一例を示した図である。
【００４１】
図３に示すように、照合データＭAが入力された端末装置１００は、利用者Ａに関する照合データＭAの判定依頼を判定装置３００へ送信する（Ｓ１１）。次いで、端末装置１００は、下記の式（３）に示すように、第１暗号鍵ＫＡ１を利用して暗号データＥKA1（ＭA）を計算する（Ｓ１２）。次いで、端末装置１００は、照合データＭAを入力した利用者ＡのＩＤと共に暗号データＥKA1（ＭA）を計算装置２００へ送信する（Ｓ１３）。
【００４２】
ＥKA1（ＭA）＝ＭA∧ＫＡ１
…（３）
利用者ＡのＩＤ及び暗号データＥKA1（ＭA）を受信した計算装置２００は、受信したＩＤに対応する暗号化登録データＥKA2（ＥKA1（ｍA））を抽出する。そして、計算装置２００は、暗号化登録データＥKA2（ＥKA1（ｍA））と暗号データＥKA1（ＭA）とを用いて、下記の式（４）で与えられる暗号化距離データＥKA2（ＨＶ）を計算する（Ｓ１４）。次いで、計算装置２００は、暗号化距離データＥKA2（ＨＶ）を判定装置３００へ送信する（Ｓ１５）。
【００４３】
ＥKA2（ＨＶ）＝ＥKA1（ＭA）∧ＥKA2（ＥKA1（ｍA））
…（４）
暗号化距離データＥKA2（ＨＶ）を受信した判定装置３００は、下記の式（５）に示すように、第２暗号鍵ＫＡ２を利用してハミングベクトルＨＶを計算する（Ｓ１６）。次いで、判定装置３００は、ハミングベクトルＨＶの長さＬｅｎ（ＨＶ）と予め設定された閾値Ｔｈとを比較し、Ｌｅｎ（ＨＶ）＞Ｔｈであるか否かを判定する（Ｓ１７）。
【００４４】
例えば、ハミングベクトルＨＶの長さＬｅｎ（ＨＶ）は、ＨＶにおけるビット値が「1」を示すビットの数である。ＨＶが「00000101」で与えられる場合、Ｌｅｎ（ＨＶ）は２となる。
【００４５】
Ｓ１７でＬｅｎ（ＨＶ）＞Ｔｈであると判定した場合、判定装置３００は、認証の失敗を示す判定結果（認証ＮＧ）を端末装置１００へ送信する（Ｓ１８）。一方、Ｓ１７でＬｅｎ（ＨＶ）＞Ｔｈでないと判定した場合、判定装置３００は、認証の成功を示す判定結果（認証ＯＫ）を端末装置１００へ送信する（Ｓ１８）。Ｓ１８の処理が完了すると、図３に示した照合処理は終了する。
【００４６】
ＨＶ＝ＥKA2（ＨＶ）∧ＫＡ２
…（５）
（登録処理の一例）
次に、図４を参照しながら、認証システムにおける登録処理の一例について説明する。なお、図４は、認証システムにおける登録処理の一例を示した図である。
【００４７】
図４に示すように、登録処理を開始した端末装置１００は、第１暗号鍵ＫＡ１及び登録データｍAを用いて、下記の式（６）で与えられる暗号データＥKA1（ｍA）を計算する（Ｓ２１）。次いで、端末装置１００は、登録依頼と共に、利用者ＡのＩＤ及び暗号データＥKA1（ｍA）を判定装置３００へ送信する（Ｓ２２）。
【００４８】
ＥKA1（ｍA）＝ｍA∧ＫＡ１
…（６）
登録依頼、ＩＤ、及び暗号データＥKA1（ｍA）を受信した判定装置３００は、第２の鍵ＫＡ２及び暗号データＥKA1（ｍA）を用いて、下記の式（７）で与えられる暗号化登録データＥKA1（ＥKA2（ｍA））を計算する（Ｓ２３）。次いで、判定装置３００は、Ｓ２３で計算した暗号化登録データＥKA1（ＥKA2（ｍA））を計算装置２００へ送信する（Ｓ２４）。
【００４９】
ＥKA1（ＥKA2（ｍA））＝ＥKA1（ｍA）∧ＫＡ２
…（７）
暗号化登録データＥKA1（ＥKA2（ｍA））を受信した計算装置２００は、暗号化登録データＥKA1（ＥKA2（ｍA））の登録処理を実行する（Ｓ２５）。Ｓ２５の処理が完了すると、図４に示した登録処理は終了する。
【００５０】
（判定装置による不正登録について）
図２に例示した認証システムによれば、図４に例示した登録処理を実行できる。但し、図４に例示した登録処理の仕組みを適用した場合、図５に示すような判定装置３００による不正登録のリスクが考えられる。なお、図５は、認証システムに含まれる判定装置による不正登録の一例を示した図である。
【００５１】
図５に示したＳ２１、Ｓ２２の処理は図４に示したＳ２１、Ｓ２２の処理と同じである。但し、図５の例では符号Ｑを付した枠内に示すように、判定装置３００が、不正なデータＹＹを生成し（Ｓ３１）、不正なデータＹＹを計算装置２００へ送信している（Ｓ３２）。不正なデータＹＹは、例えば、ＫＡ２そのものである。この場合、計算装置２００により上記の不正なデータＹＹが登録される（Ｓ３３）。
【００５２】
不正なデータＹＹ（ＹＹ＝ＫＡ２）が計算装置２００に登録された場合、照合処理において次のような不正な処理が行われる可能性がある。
例えば、図３に例示した照合処理のうち、Ｓ１３の処理で悪意を持った端末装置１００から被認証情報として全てのビット値が「０」のバイナリデータ「００…０」が送信されると、計算装置２００により下記の式（８）に示す演算が実行される。この場合、ＨＶは全てのビット値が「０」のバイナリデータとなる。つまり、Ｌｅｎ（ＨＶ）＝０となる。従って、Ｌｅｎ（ＨＶ）≦Ｔｈとなり、認証が成功する。
【００５３】
（００…０）∧ＹＹ＝ＥKA2（００…０）
…（８）
図４に例示した登録処理の仕組みを適用すると、図５に示すような判定装置３００による不正登録のリスクが考えられる。もちろん、判定装置３００自身ではなく、判定装置３００と計算装置２００との間の通信に割り込み、判定装置３００になりすまして第三者が不正なデータＹＹを計算装置２００に登録する攻撃のリスクも考えられる。そこで、第２実施形態では、端末装置１００が計算装置２００へ直接データを登録できるようにする仕組みを認証システムに設ける方法を提案する。
【００５４】
（端末装置による直接登録について）
図６を参照しながら、端末装置１００が計算装置２００に暗号化登録データＥKA2（ＥKA1（ｍA））を直接登録する方法について説明する。なお、図６は、第２実施形態に係る端末装置による直接登録の一例を示した図である。
【００５５】
図６に示すように、登録処理を開始した端末装置１００は、第１暗号鍵ＫＡ１、第２暗号鍵ＫＡ２を生成する（Ｓ１０１）。次いで、端末装置１００は、登録データｍA、第１暗号鍵ＫＡ１、及び第２暗号鍵ＫＡ２を用いて、下記の式（９）に与えられる暗号化登録データＥKA2（ＥKA1（ｍA））を計算する（Ｓ１０２）。次いで、端末装置１００は、登録依頼と共に、利用者ＡのＩＤ、及びＳ１０２で計算した暗号化登録データＥKA2（ＥKA1（ｍA））を計算装置２００へ送信する（Ｓ１０３）。
【００５６】
ＥKA2（ＥKA1（ｍA））＝ｍA∧ＫＡ１∧ＫＡ２
…（９）
暗号化登録データＥKA2（ＥKA1（ｍA））を受信した計算装置２００は、暗号化登録データＥKA2（ＥKA1（ｍA））の登録処理を実行する（Ｓ１０４）。また、端末装置１００は、Ｓ１０１で生成した第２暗号鍵ＫＡ２を判定装置３００へ送信する（Ｓ１０５）。第２暗号鍵ＫＡ２を受信した判定装置３００は、受信した第２暗号鍵ＫＡ２を保持する（Ｓ１０６）。Ｓ１０６の処理が完了すると、図６に示した一連の処理は終了する。なお、Ｓ１０５、Ｓ１０６の処理は、Ｓ１０２の前に実行されてもよい。
【００５７】
上記の方法によれば、暗号化登録データＥKA2（ＥKA1（ｍA））が端末装置１００から計算装置２００へ直接送信されるため、判定装置３００により不正登録されるリスクが回避される。また、第２暗号鍵ＫＡ２が暗号化登録データＥKA2（ＥKA1（ｍA））の計算時に利用した第２暗号鍵ＫＡ２が判定装置３００へ送信されるため、図３に例示すような認証システムによる照合処理を実行することができる。
【００５８】
以上、第２実施形態に係る認証システムについて説明した。以下では、第２実施形態に係る認証システムの各装置について、さらに説明する。
［２−２．ハードウェア］
図７を参照しながら、端末装置１００の機能を実現可能なハードウェアについて説明する。図７は、第２実施形態に係る暗号処理装置の機能を実現可能なハードウェアの一例を示した図である。
【００５９】
端末装置１００が有する機能は、例えば、図７に示す情報処理装置のハードウェア資源を用いて実現することが可能である。つまり、端末装置１００が有する機能は、コンピュータプログラムを用いて図７に示すハードウェアを制御することにより実現される。
【００６０】
図７に示すように、このハードウェアは、主に、ＣＰＵ９０２と、ＲＯＭ（Read Only Memory）９０４と、ＲＡＭ９０６と、ホストバス９０８と、ブリッジ９１０とを有する。さらに、このハードウェアは、外部バス９１２と、インターフェース９１４と、入力部９１６と、出力部９１８と、記憶部９２０と、ドライブ９２２と、接続ポート９２４と、通信部９２６とを有する。
【００６１】
ＣＰＵ９０２は、例えば、演算処理装置又は制御装置として機能し、ＲＯＭ９０４、ＲＡＭ９０６、記憶部９２０、又はリムーバブル記録媒体９２８に記録された各種プログラムに基づいて各構成要素の動作全般又はその一部を制御する。ＲＯＭ９０４は、ＣＰＵ９０２に読み込まれるプログラムや演算に用いるデータなどを格納する記憶装置の一例である。ＲＡＭ９０６には、例えば、ＣＰＵ９０２に読み込まれるプログラムや、そのプログラムを実行する際に変化する各種パラメータなどが一時的又は永続的に格納される。
【００６２】
これらの要素は、例えば、高速なデータ伝送が可能なホストバス９０８を介して相互に接続される。一方、ホストバス９０８は、例えば、ブリッジ９１０を介して比較的データ伝送速度が低速な外部バス９１２に接続される。また、入力部９１６としては、例えば、マウス、キーボード、タッチパネル、タッチパッド、ボタン、スイッチ、及びレバーなどが用いられる。さらに、入力部９１６としては、赤外線やその他の電波を利用して制御信号を送信することが可能なリモートコントローラが用いられることもある。
【００６３】
出力部９１８としては、例えば、ＣＲＴ（Cathode Ray Tube）、ＬＣＤ（Liquid Crystal Display）、ＰＤＰ（Plasma Display Panel）、又はＥＬＤ（Electro-Luminescence Display）などのディスプレイ装置が用いられる。また、出力部９１８として、スピーカやヘッドホンなどのオーディオ出力装置、又はプリンタなどが用いられることもある。つまり、出力部９１８は、情報を視覚的又は聴覚的に出力することが可能な装置である。
【００６４】
記憶部９２０は、各種のデータを格納するための装置である。記憶部９２０としては、例えば、ＨＤＤなどの磁気記憶デバイスが用いられる。また、記憶部９２０として、ＳＳＤ（Solid State Drive）やＲＡＭディスクなどの半導体記憶デバイス、光記憶デバイス、又は光磁気記憶デバイスなどが用いられてもよい。
【００６５】
ドライブ９２２は、着脱可能な記録媒体であるリムーバブル記録媒体９２８に記録された情報を読み出し、又はリムーバブル記録媒体９２８に情報を書き込む装置である。リムーバブル記録媒体９２８としては、例えば、磁気ディスク、光ディスク、光磁気ディスク、又は半導体メモリなどが用いられる。
【００６６】
接続ポート９２４は、例えば、ＵＳＢ（Universal Serial Bus）ポート、ＩＥＥＥ１３９４ポート、ＳＣＳＩ（Small Computer System Interface）、ＲＳ−２３２Ｃポート、又は光オーディオ端子など、外部接続機器９３０を接続するためのポートである。外部接続機器９３０としては、例えば、プリンタなどが用いられる。
【００６７】
通信部９２６は、ネットワーク９３２に接続するための通信デバイスである。通信部９２６としては、例えば、有線又は無線ＬＡＮ（Local Area Network）用の通信回路、ＷＵＳＢ（Wireless USB）用の通信回路、光通信用の通信回路やルータ、ＡＤＳＬ（Asymmetric Digital Subscriber Line）用の通信回路やルータ、携帯電話ネットワーク用の通信回路などが用いられる。通信部９２６に接続されるネットワーク９３２は、有線又は無線により接続されたネットワークであり、例えば、インターネット、ＬＡＮ、放送網、衛星通信回線などを含む。
【００６８】
以上、端末装置１００の機能を実現可能なハードウェアについて説明した。なお、計算装置２００、及び判定装置３００の機能も図６に例示したハードウェアを利用して実現可能である。そのため、計算装置２００、及び判定装置３００の機能を実現可能なハードウェアについての詳細な説明は省略する。
【００６９】
［２−３．装置の機能］
次に、第２実施形態に係る認証システムに含まれる各装置の機能について説明する。
（端末装置の機能）
図８を参照しながら、端末装置１００の機能について説明する。なお、図８は、第２実施形態に係る端末装置が有する機能の一例を示したブロック図である。
【００７０】
図８に示すように、端末装置１００は、記憶部１０１と、鍵生成部１０２と、論理演算部１０３と、通信部１０４とを有する。
なお、記憶部１０１の機能は、上述したＲＡＭ９０６や記憶部９２０などを用いて実現できる。また、鍵生成部１０２、及び論理演算部１０３の機能は、上述したＣＰＵ９０２などを用いて実現できる。また、通信部１０４の機能は、上述した接続ポート９２４や通信部９２６などを用いて実現できる。
【００７１】
記憶部１０１には、第１暗号鍵１０１ａ、及び登録データ１０１ｂが格納される。なお、上述した第１暗号鍵ＫＡ１、ＫＢ１、…は、第１暗号鍵１０１ａの一例である。また、上述した登録データｍA、ｍB、…は、登録データ１０１ｂの一例である。以下では、簡単のため、第１暗号鍵ＫＡ１及び登録データｍAに注目して説明を進める。
【００７２】
登録データｍAに係る登録処理を実行する場合、鍵生成部１０２は、第１暗号鍵ＫＡ１及び第２暗号鍵ＫＡ２を生成する。鍵生成部１０２により生成された第１暗号鍵ＫＡ１及び第２暗号鍵ＫＡ２は、論理演算部１０３に入力される。また、第１暗号鍵ＫＡ１は記憶部１０１に格納され、第２暗号鍵ＫＡ２は通信部１０４に入力される。
【００７３】
第１暗号鍵ＫＡ１及び第２暗号鍵ＫＡ２が入力された論理演算部１０３は、記憶部１０１から登録データｍAを読み出す。また、論理演算部１０３は、下記の式（１０）に示すように、登録データｍA、第１暗号鍵ＫＡ１、及び第２暗号鍵ＫＡ２の排他的論理和演算を実行して暗号化登録データＥKA2（ＥKA1（ｍA））を生成する。論理演算部１０３により生成された暗号化登録データＥKA2（ＥKA1（ｍA））は、通信部１０４に入力される。
【００７４】
ＥKA2（ＥKA1（ｍA））＝ｍA∧ＫＡ１∧ＫＡ２
…（１０）
通信部１０４は、鍵生成部１０２により生成された第２暗号鍵ＫＡ２を判定装置３００へ送信する。また、通信部１０４は、論理演算部１０３により生成された暗号化登録データＥKA2（ＥKA1（ｍA））を計算装置２００へ送信する。なお、登録データｍAに係る登録処理を実行する場合について説明したが、他の登録データｍB、…に係る登録処理についても同様である。また、記憶部１０１、論理演算部１０３、通信部１０４は、照合処理の際にも利用される。
【００７５】
（計算装置の機能）
次に、図９及び図１０を参照しながら、計算装置２００の機能について説明する。なお、図９は、第２実施形態に係る計算装置が有する機能の一例を示したブロック図である。また、図１０は、第２実施形態に係る暗号化登録データの一例を示した図である。
【００７６】
図９に示すように、計算装置２００は、記憶部２０１と、通信部２０２と、論理演算部２０３とを有する。
なお、記憶部２０１の機能は、上述したＲＡＭ９０６や記憶部９２０などを用いて実現できる。また、通信部２０２の機能は、上述した接続ポート９２４や通信部９２６などを用いて実現できる。また、論理演算部２０３の機能は、上述したＣＰＵ９０２などを用いて実現できる。
【００７７】
記憶部２０１には、暗号化登録データ２０１ａが格納される。例えば、暗号化登録データ２０１ａは、図１０に示すように、利用者のＩＤと、暗号化登録データ２０１ａとを対応付けたデータベースにより管理される。図１０の例では、利用者ＡのＩＤと暗号化登録データＥKA2（ＥKA1（ｍA））が対応付けられ、利用者ＢのＩＤと暗号化登録データＥKB2（ＥKB1（ｍB））とが対応付けられている。
【００７８】
例えば、通信部２０２は、端末装置１００から利用者ＡのＩＤ及び暗号化登録データＥKA2（ＥKA1（ｍA））を受信する。そして、通信部２０２は、利用者ＡのＩＤ及び暗号化登録データＥKA2（ＥKA1（ｍA））を対応付けて記憶部２０１に格納し、登録データｍAに係る登録処理について計算装置２００の処理を完了する。なお、暗号化登録データＥKA2（ＥKA1（ｍA））の登録処理について説明したが、他の暗号化登録データＥKB2（ＥKB1（ｍB））、…の登録処理についても同様である。
【００７９】
なお、論理演算部２０３は、照合処理の際に利用される。例えば、通信部２０２が端末装置１００から暗号データＥKA1（ＭA）を受信した場合、論理演算部２０３は、記憶部２０１に格納されている暗号化登録データＥKA2（ＥKA1（ｍA））と暗号化登録データＥKA2（ＥKA1（ｍA））との排他的論理和演算（上記の式（４）を参照）を実行し、暗号化距離データＥKA2（ＨＶ）を計算する。そして、論理演算部２０３は、通信部２０２を介して、暗号化距離データＥKA2（ＨＶ）を判定装置３００へ送信する。
【００８０】
（判定装置の機能）
次に、図１１を参照しながら、判定装置３００の機能について説明する。なお、図１１は、第２実施形態に係る判定装置が有する機能の一例を示したブロック図である。
【００８１】
図１１に示すように、判定装置３００は、記憶部３０１と、通信部３０２と、論理演算部３０３と、判定部３０４とを有する。
なお、記憶部３０１の機能は、上述したＲＡＭ９０６や記憶部９２０などを用いて実現できる。通信部３０２の機能は、上述した接続ポート９２４や通信部９２６などを用いて実現できる。論理演算部３０３、及び判定部３０４の機能は、上述したＣＰＵ９０２などを用いて実現できる。
【００８２】
記憶部３０１には、第２暗号鍵３０１ａが格納される。なお、上述した第２暗号鍵ＫＡ２、ＫＢ２、…は、第２暗号鍵３０１ａの一例である。
登録データｍAの登録処理を実行する場合、通信部３０２は、端末装置１００から第２暗号鍵ＫＡ２を受信する。そして、通信部３０２は、第２暗号鍵ＫＡ２を記憶部３０１に格納し、登録データｍAに係る登録処理について判定装置３００の処理を完了する。なお、登録データｍAに係る登録処理について説明したが、他の登録データｍB、…に係る登録処理についても同様である。
【００８３】
なお、論理演算部３０３、及び判定部３０４は、照合処理の際に利用される。例えば、登録データｍAと照合される照合データＭAの判定依頼を通信部３０２が受信した場合、利用者ＡのＩＤを論理演算部３０３に入力する。その後、通信部３０２が計算装置２００から暗号化距離データＥKA2（ＨＶ）を受信した場合、論理演算部３０３は、暗号化距離データＥKA2（ＨＶ）と第２暗号鍵ＫＡ２との排他的論理和演算（上記の式（５）を参照）を実行し、ハミングベクトルＨＶ（ＨＶ＝ｍA∧ＭA）を計算する。
【００８４】
論理演算部３０３により計算されたハミングベクトルＨＶは、判定部３０４に入力される。ハミングベクトルＨＶが入力された判定部３０４は、ハミングベクトルＨＶの長さＬｅｎ（ＨＶ）を求め、Ｌｅｎ（ＨＶ）と予め設定された閾値Ｔｈとを比較する。Ｌｅｎ（ＨＶ）＞Ｔｈである場合、判定部３０４は、通信部３０２を介して、認証の失敗を示す判定結果（認証ＮＧ）を端末装置１００へ送信する。Ｌｅｎ（ＨＶ）＞Ｔｈでない場合、判定部３０４は、通信部３０２を介して、認証の成功を示す判定結果（認証ＯＫ）を端末装置１００へ送信する。
【００８５】
以上、第２実施形態に係る認証システムに含まれる各装置の機能について説明した。
上記のように、第２実施形態に係る認証システムにおいては、端末装置１００が暗号化登録データＥKA2（ＥKA1（ｍA））を計算装置２００へ直接登録する。そのため、登録処理に際して端末装置１００の知らないところで、判定装置３００により不正なデータが計算装置２００に登録されるリスクを抑制することができる。
【００８６】
［２−４．鍵生成関数の利用について］
ここで、図１２を参照しながら、鍵生成関数の利用について説明する。なお、図１２は、第２実施形態に係る鍵生成関数の利用について説明するための図である。
【００８７】
これまで、端末装置１００が第１暗号鍵ＫＡ１及び第２暗号鍵ＫＡ２を生成し、端末装置１００が計算装置２００に暗号化登録データＥKA2（ＥKA1（ｍA））を直接登録する仕組みについて説明してきた。
【００８８】
上記の仕組みを適用する場合、端末装置１００から第１暗号鍵ＫＡ１及び第２暗号鍵ＫＡ２が漏洩すると、計算装置２００が保持する暗号化登録データＥKA2（ＥKA1（ｍA））から登録データｍAそのものが漏洩するリスクが生じる。そのため、端末装置１００で第１暗号鍵ＫＡ１及び第２暗号鍵ＫＡ２を安全に管理する仕組みが設けられる。
【００８９】
例えば、登録処理の後、耐タンパ性を有するＩＣ（Integrated Circuit）カードに第１暗号鍵ＫＡ１を格納し、端末装置１００から第１暗号鍵ＫＡ１及び第２暗号鍵ＫＡ２を消去する方法が考えられる。そして、照合処理の都度、ＩＣカードから第１暗号鍵ＫＡ１が読み出されるようにする。他の方法として、図１２に示すように、鍵生成関数及び暗号化関数を利用して、パスワードから第１暗号鍵ＫＡ１と第２暗号鍵ＫＡ２とのペアを生成する方法が考えられる。
【００９０】
鍵生成関数としては、例えば、ＰＫＣＳ（Public Key Cryptography Standards）＃５などで規定されているＰＢＫＤＦ（Password Based Key Derivation Function）などを利用することができる。ＰＢＫＤＦには、パスワードの他、乱数、ソルト、パラメータ（繰り返し回数や暗号鍵のビット長）などが入力され、暗号鍵が出力される。図１２の例では、鍵生成関数から中間鍵Ｋｍが出力される。
【００９１】
鍵生成関数から出力された中間鍵Ｋｍは、２つの暗号化関数に入力される。暗号化関数としては、例えば、ハッシュ関数や他の一方向性関数などが利用可能である。一方の暗号化関数には固定値ＭＵ１が入力され、他方の暗号化関数には固定値ＭＵ２（ＭＵ１≠ＭＵ２）が入力される。２つの固定値ＭＵ１、ＭＵ２は利用者毎に設定される。
【００９２】
端末装置１００（鍵生成部１０２）は、一方の暗号化関数の出力を第１暗号鍵ＫＡ１、他方の暗号化関数の出力を第２暗号鍵ＫＡ２として利用する。このように、鍵生成関数を利用することで、端末装置１００から第１暗号鍵ＫＡ１及び第２暗号鍵ＫＡ２が漏洩するリスクが抑制される。また、ＩＣカードを利用する場合に比べると低コストである。
【００９３】
以上、鍵生成関数の利用について説明した。
［２−５．装置の動作］
次に、第２実施形態に係る認証システムに含まれる各装置の動作について説明する。但し、ここでは登録データｍAに係る登録処理の動作について説明する。
【００９４】
（端末装置の動作）
まず、図１３を参照しながら、端末装置１００の動作について説明する。なお、図１３は、第２実施形態に係る端末装置の動作例を示したフロー図である。
【００９５】
図１３に示すように、利用者Ａの登録データｍAに係る登録処理を開始した端末装置１００は、鍵生成部１０２の機能により、第１暗号鍵ＫＡ１及び第２暗号鍵ＫＡ２を生成する（Ｓ１１１）。次いで、端末装置１００は、通信部１０４の機能により、Ｓ１１１で生成した第２暗号鍵ＫＡ２を判定装置３００へ送信する（Ｓ１１２）。なお、Ｓ１１２の処理は、後述するＳ１１３又はＳ１１４の処理後に実行してもよい。
【００９６】
次いで、端末装置１００は、論理演算部１０３の機能により、登録データｍA、第１暗号鍵ＫＡ１、及び第２暗号鍵ＫＡ２の排他的論理和演算（上記の式（９）を参照）を実行し、暗号化登録データＥKA2（ＥKA1（ｍA））を計算する（Ｓ１１３）。次いで、端末装置１００は、通信部１０４の機能により、利用者ＡのＩＤと共に、Ｓ１１３で計算した暗号化登録データＥKA2（ＥKA1（ｍA））を計算装置２００へ送信する（Ｓ１１４）。Ｓ１１４の処理が完了すると、図１３に示した一連の処理は終了する。
【００９７】
（判定装置の動作）
次に、図１４を参照しながら、判定装置３００の動作について説明する。なお、図１４は、第２実施形態に係る計算装置の動作例を示したフロー図である。
【００９８】
図１４に示すように、判定装置３００は、通信部３０２の機能により、第２暗号鍵ＫＡ２を端末装置１００から受信する（Ｓ１２１）。次いで、判定装置３００は、通信部３０２の機能により、Ｓ１２１で受信した第２暗号鍵ＫＡ２を記憶部３０１に格納する（Ｓ１２２）。Ｓ１２２の処理が完了すると、図１４に示した一連の処理は終了する。
【００９９】
（計算装置の動作）
次に、図１５を参照しながら、計算装置２００の動作について説明する。なお、図１５は、第２実施形態に係る判定装置の動作例を示したフロー図である。
【０１００】
図１５に示すように、計算装置２００は、通信部２０２の機能により、暗号化登録データＥKA2（ＥKA1（ｍA））を端末装置１００から受信する（Ｓ１３１）。次いで、計算装置２００は、Ｓ１３１で受信した暗号化登録データＥKA2（ＥKA1（ｍA））を記憶部２０１に格納する（Ｓ１３２）。Ｓ１３２の処理が完了すると、図１５に示した一連の処理は終了する。
【０１０１】
以上、第２実施形態に係る認証システムに含まれる各装置の動作について説明した。
上記のように、端末装置１００が暗号化登録データＥKA2（ＥKA1（ｍA））を計算装置２００へ直接登録することで、判定装置３００により不正なデータが計算装置２００に登録されるリスクを抑制することができる。
【０１０２】
以上、第２実施形態について説明した。
＜３．変形例（一時鍵の利用）＞
次に、第２実施形態の一変形例（以下、本変形例）について説明する。本変形例は、第２暗号鍵ＫＡ２を判定装置３００が予め保持し、かつ、端末装置１００が第２暗号鍵ＫＡ２を保持していない状態で、端末装置１００が登録データｍAの暗号データを計算装置２００に直接登録できるようにする方法に関する。
【０１０３】
（一時鍵を利用して不正登録を防止する方法について）
図１６を参照しながら、本変形例に係る上記の方法について説明する。なお、図１６は、第２実施形態の一変形例に係る端末装置による直接登録の一例を示した図である。この方法では、登録処理の際に毎回更新される一時鍵Ｋｔが利用される。
【０１０４】
図１６に示すように、登録データｍAに係る登録処理を開始する端末装置１００は、第１暗号鍵ＫＡ１及び一時鍵Ｋｔを生成する（Ｓ２０１）。次いで、端末装置１００は、登録データｍA、第１暗号鍵ＫＡ１及び一時鍵Ｋｔの排他的論理和演算を実行し、下記の式（１１）で与えられる暗号データＥKt（ＥKA1（ｍA））を計算する（Ｓ２０２）。
【０１０５】
ＥKt（ＥKA1（ｍA））＝ｍA∧ＫＡ１∧Ｋｔ
…（１１）
次いで、端末装置１００は、利用者ＡのＩＤと共に、一時鍵Ｋｔを判定装置３００へ送信する（Ｓ２０３）。また、端末装置１００は、登録依頼と共に、利用者ＡのＩＤ、及びＳ２０２で計算した暗号データＥKt（ＥKA1（ｍA））を計算装置２００へ送信する（Ｓ２０４）。なお、Ｓ２０３、Ｓ２０４の処理は順序を入れ替えてもよい。
【０１０６】
ＩＤ及び一時鍵Ｋｔを受信した判定装置３００は、下記の式（１２）に示すように、一時鍵Ｋｔと第２暗号鍵ＫＡ２との排他的論理和演算を実行し、暗号化鍵データＥKt（ＫＡ２）を計算する（Ｓ２０５）。次いで、判定装置３００は、Ｓ２０５で計算した暗号化鍵データＥKt（ＫＡ２）を計算装置２００へ送信する（Ｓ２０６）。
【０１０７】
ＥKt（ＫＡ２）＝Ｋｔ∧ＫＡ２
…（１２）
登録依頼、ＩＤ、暗号データＥKt（ＥKA1（ｍA））、及び暗号化鍵データＥKt（ＫＡ２）を受信した計算装置２００は、下記の式（１３）に示す排他的論理和演算により、暗号化登録データＥKA2（ＥKA1（ｍA））を計算する（Ｓ２０７）。つまり、Ｓ２０７の処理において、計算装置２００は、暗号データＥKt（ＥKA1（ｍA））と暗号化鍵データＥKt（ＫＡ２）との排他的論理和演算を実行する。
【０１０８】
ＥKA2（ＥKA1（ｍA））＝ＥKt（ＥKA1（ｍA））∧ＥKt（ＫＡ２）
…（１３）
次いで、計算装置２００は、暗号化登録データＥKA2（ＥKA1（ｍA））を記憶部１０１に格納し、暗号化登録データＥKA2（ＥKA1（ｍA））を登録する（Ｓ２０８）。Ｓ２０８の処理が完了すると、図１６に示した一連の登録処理は終了する。
【０１０９】
上記のように、一時鍵Ｋｔを利用することで、判定装置３００が第２暗号鍵ＫＡ２を予め保持している場合でも端末装置１００により登録データｍAを暗号化したデータを計算装置２００へ直接送信することが可能になる。その結果、判定装置３００により不正なデータが計算装置２００に登録されるリスクを抑制することができる。
【０１１０】
［３−１．装置の機能］
ここで、本変形例に係る端末装置１００、計算装置２００、判定装置３００の機能について説明する。但し、図８、図９、図１１のブロック図に示された機能から変形された部分について説明し、共通する部分については詳細な説明を省略する。
【０１１１】
（端末装置の機能）
端末装置１００は、主に鍵生成部１０２、及び論理演算部１０３の機能が変形される。本変形例に係る鍵生成部１０２は、第１暗号鍵ＫＡ１及び一時鍵Ｋｔを生成する。また、本変形例に係る論理演算部１０３は、上記の式（１１）に従って暗号データＥKt（ＥKA1（ｍA））を計算する。そして、通信部１０４は、第２暗号鍵ＫＡ２ではなく一時鍵Ｋｔを判定装置３００へ送信し、暗号化登録データＥKA2（ＥKA1（ｍA））ではなく暗号データＥKt（ＥKA1（ｍA））を計算装置２００へ送信する。
【０１１２】
（計算装置の機能）
計算装置２００は、主に論理演算部２０３の機能が変形される。本変形例に係る論理演算部２０３は、端末装置１００から受信した暗号データＥKt（ＥKA1（ｍA））と、判定装置３００から受信した暗号化鍵データＥKt（ＫＡ２）とに基づき、上記の式（１３）に従って暗号化登録データＥKA2（ＥKA1（ｍA））を計算する。
【０１１３】
（判定装置の機能）
判定装置３００は、主に論理演算部３０３の機能が変形される。また、記憶部３０１に予め第２暗号鍵ＫＡ２が格納されている。本変形例に係る論理演算部３０３は、端末装置１００から受信した一時鍵Ｋｔに基づき、上記の式（１２）に従って暗号化鍵データＥKt（ＫＡ２）を計算する。そして、通信部３０２は、暗号化鍵データＥKt（ＫＡ２）を計算装置２００へ送信する。
【０１１４】
以上、本変形例に係る端末装置１００、計算装置２００、判定装置３００の機能について説明した。上記のように、第１暗号鍵ＫＡ１が端末装置１００で管理され、第２暗号鍵ＫＡ２が判定装置３００で管理されるため、第１暗号鍵ＫＡ１及び第２暗号鍵ＫＡ２が両方漏洩して登録データｍAが窃取されるリスクが低減される。
【０１１５】
［３−２．装置の動作］
次に、本変形例に係る認証システムに含まれる各装置の動作について説明する。但し、ここでは登録データｍAに係る登録処理の動作について説明する。
【０１１６】
（端末装置の動作）
まず、図１７を参照しながら、本変形例に係る端末装置１００の動作について説明する。なお、図１７は、第２実施形態に係る端末装置の動作例を示したフロー図である。
【０１１７】
図１７に示すように、端末装置１００は、鍵生成部１０２の機能により、第１暗号鍵ＫＡ１及び一時鍵Ｋｔを生成する（Ｓ２１１）。なお、第１暗号鍵ＫＡ１及び一時鍵Ｋｔは、図１２に示したような鍵生成関数を利用して生成されてもよい。次いで、端末装置１００は、通信部１０４の機能により、Ｓ２１１で生成した一時鍵Ｋｔを判定装置３００へ送信する（Ｓ２１２）。
【０１１８】
次いで、端末装置１００は、論理演算部１０３の機能により、登録データｍA、第１暗号鍵ＫＡ１、及び一時鍵Ｋｔの排他的論理和演算（上記の式（１１）を参照）を実行し、暗号データＥKt（ＥKA1（ｍA））を計算する（Ｓ２１３）。次いで、端末装置１００は、通信部１０４の機能により、利用者ＡのＩＤと共に、Ｓ２１３で計算した暗号データＥKt（ＥKA1（ｍA））を計算装置２００へ送信する（Ｓ２１４）。Ｓ２１４の処理が完了すると、図１７に示した一連の処理は終了する。
【０１１９】
（判定装置の動作）
次に、図１８を参照しながら、本変形例に係る判定装置３００の動作について説明する。なお、図１８は、第２実施形態に係る判定装置の動作例を示したフロー図である。
【０１２０】
図１８に示すように、判定装置３００は、通信部３０２の機能により、一時鍵Ｋｔを端末装置１００から受信する（Ｓ２２１）。次いで、判定装置３００は、論理演算部３０３の機能により、一時鍵Ｋｔと第２暗号鍵ＫＡ２との排他的論理和演算（上記の式（１２）を参照）を実行し、暗号化鍵データＥKt（ＫＡ２）を計算する（Ｓ２２２）。
【０１２１】
次いで、判定装置３００は、通信部３０２の機能により、Ｓ２２２で計算した暗号化鍵データＥKt（ＫＡ２）を計算装置２００へ送信する（Ｓ２２３）。Ｓ２２３の処理が完了すると、図１８に示した一連の処理は終了する。
【０１２２】
（計算装置の動作）
次に、図１９を参照しながら、本変形例に係る計算装置２００の動作について説明する。なお、図１９は、第２実施形態に係る計算装置の動作例を示したフロー図である。
【０１２３】
図１９に示すように、計算装置２００は、通信部２０２の機能により、暗号データＥKt（ＥKA1（ｍA））を端末装置１００から受信する（Ｓ２３１）。次いで、計算装置２００は、通信部２０２の機能により、暗号化鍵データＥKt（ＫＡ２）を判定装置３００から受信する（Ｓ２３２）。
【０１２４】
次いで、計算装置２００は、論理演算部２０３の機能により、Ｓ２３１で受信した暗号データＥKt（ＥKA1（ｍA））とＳ２３２で受信した暗号化鍵データＥKt（ＫＡ２）とを用い、暗号化登録データＥKA2（ＥKA1（ｍA））を計算する（Ｓ２３４）。Ｓ２３４の処理において、暗号化登録データＥKA2（ＥKA1（ｍA））は、例えば、上記の式（１３）に従って計算される。
【０１２５】
次いで、計算装置２００は、論理演算部２０３の機能により、暗号化登録データＥKA2（ＥKA1（ｍA））を記憶部２０１に格納する（Ｓ２３５）。Ｓ２３５の処理が完了すると、図１９に示した一連の処理は終了する。
【０１２６】
以上、第２実施形態に係る認証システムに含まれる各装置の動作について説明した。
上記のように、端末装置１００が暗号化登録データＥKA2（ＥKA1（ｍA））を計算装置２００へ直接登録することで、判定装置３００により不正なデータが計算装置２００に登録されるリスクを抑制することができる。また、第１暗号鍵ＫＡ１が端末装置１００で管理され、第２暗号鍵ＫＡ２が判定装置３００で管理されるため、第１暗号鍵ＫＡ１及び第２暗号鍵ＫＡ２が両方漏洩して登録データｍAが窃取されるリスクが低減される。
【０１２７】
以上、第２実施形態の一変形例について説明した。
＜４．付記＞
以上説明した実施形態に関し、さらに以下の付記を開示する。
【０１２８】
（付記１）  第１の鍵を保持し、認証の際に被認証データを受け付けるコンピュータに対し、
前記被認証データと照合される登録データを前記第１の鍵及び第２の鍵で二重に暗号化した暗号化登録データが登録される計算装置、及び、認証の際に前記第２の鍵を利用する判定装置と通信して前記計算装置に前記暗号化登録データを登録する際、
前記第１の鍵とは異なる鍵を生成し、当該異なる鍵を前記判定装置に送信し、
前記第１の鍵及び前記異なる鍵で前記登録データを二重に暗号化した暗号データを生成し、当該暗号データを前記計算装置に送信する
処理を実行させる、プログラム。
【０１２９】
（付記２）  前記異なる鍵は前記第２の鍵であり、
前記計算装置は、前記暗号データを用いて前記暗号化登録データの登録処理を実行する
付記１に記載のプログラム。
【０１３０】
（付記３）  前記異なる鍵は、前記計算装置に前記暗号化登録データを登録する度に新たに生成される一時鍵であり、
前記判定装置は、
前記第２の鍵を保持しており、前記一時鍵で前記第２の鍵を暗号化した暗号化鍵データを生成し、当該暗号化鍵データを前記計算装置へと送信し、
前記計算装置は、前記暗号データと前記暗号化鍵データとを用いて前記暗号化登録データを生成し、当該暗号化登録データの登録処理を実行する
付記１に記載のプログラム。
【０１３１】
（付記４）  前記第１の鍵及び前記異なる鍵の少なくとも１つは、設定された鍵生成関数を利用して生成される
付記１〜３のいずれかに記載のプログラム。
【０１３２】
（付記５）  第１の鍵を保持し、認証の際に被認証データを受け付けるコンピュータが、
前記被認証データと照合される登録データを前記第１の鍵及び第２の鍵で二重に暗号化した暗号化登録データが登録される計算装置、及び、認証の際に前記第２の鍵を利用する判定装置と通信して前記計算装置に前記暗号化登録データを登録する際、
前記第１の鍵とは異なる鍵を生成し、当該異なる鍵を前記判定装置に送信し、
前記第１の鍵及び前記異なる鍵で前記登録データを二重に暗号化した暗号データを生成し、当該暗号データを前記計算装置に送信する
暗号処理方法。
【０１３３】
（付記６）  第１の鍵を保持し、認証の際に被認証データを受け付ける暗号処理装置であって、
前記被認証データと照合される登録データを前記第１の鍵及び第２の鍵で二重に暗号化した暗号化登録データが登録される計算装置、及び、認証の際に前記第２の鍵を利用する判定装置と通信する通信部と、
前記計算装置に前記暗号化登録データを登録する際、前記第１の鍵とは異なる鍵を生成し、前記第１の鍵及び前記異なる鍵で前記登録データを二重に暗号化した暗号データを生成し、前記通信部を介して、当該異なる鍵を前記判定装置に送信し、当該暗号データを前記計算装置に送信する演算部と、
を有する、暗号処理装置。
【０１３４】
（付記７）  前記異なる鍵は前記第２の鍵であり、
前記計算装置は、前記暗号データを用いて前記暗号化登録データの登録処理を実行する
付記６に記載の暗号処理装置。
【０１３５】
（付記８）  前記異なる鍵は、前記計算装置に前記暗号化登録データを登録する度に新たに生成される一時鍵であり、
前記判定装置は、
前記第２の鍵を保持しており、前記一時鍵で前記第２の鍵を暗号化した暗号化鍵データを生成し、当該暗号化鍵データを前記計算装置へと送信し、
前記計算装置は、前記暗号データと前記暗号化鍵データとを用いて前記暗号化登録データを生成し、当該暗号化登録データの登録処理を実行する
付記６に記載の暗号処理装置。
【０１３６】
（付記９）  前記第１の鍵及び前記異なる鍵の少なくとも１つは、設定された鍵生成関数を利用して生成される
付記６〜８のいずれかに記載の暗号処理装置。
【０１３７】
（付記１０）  付記１〜４のいずれかに記載のプログラムが記録された、コンピュータにより読み取り可能な記録媒体。
（付記１１）  認証の際に被認証データを受け付ける端末装置、前記被認証データと照合される登録データを第１の鍵及び第２の鍵で二重に暗号化した暗号化登録データが登録される計算装置、及び、認証の際に前記第２の鍵を利用する判定装置を含み、前記端末装置が受け付けた被認証データと前記登録データとの一致度から認証の成否を判定する認証システムであって、
前記端末装置は、
前記第１の鍵を保持し、前記第２の鍵を生成し、前記第１の鍵及び前記第２の鍵で前記登録データを二重に暗号化して前記暗号化登録データを生成し、前記暗号化登録データを前記計算装置に送信し、前記第２の鍵を前記判定装置に送信し、
前記計算装置は、
前記端末装置から受信した前記暗号化登録データの登録処理を実行し、
前記判定装置は、
前記端末装置から受信した前記第２の鍵を保持する
認証システム。
【０１３８】
（付記１２）  認証の際に被認証データを受け付ける端末装置、前記被認証データと照合される登録データを第１の鍵及び第２の鍵で二重に暗号化した暗号化登録データが登録される計算装置、及び、認証の際に前記第２の鍵を利用する判定装置を含み、前記端末装置が受け付けた被認証データと前記登録データとの一致度から認証の成否を判定する認証システムであって、
前記端末装置は、
前記第１の鍵を保持し、前記暗号化登録データを登録する度に新たに生成される一時鍵を生成し、前記第１の鍵及び前記一時鍵で前記登録データを二重に暗号化した暗号データを生成し、当該暗号データを前記計算装置に送信し、前記一時鍵を前記判定装置に送信し、
前記判定装置は、
前記第２の鍵を生成し、当該第２の鍵を前記端末装置から受信した一時鍵で暗号化して暗号化鍵データを生成し、当該暗号化鍵データを前記計算装置に送信し、
前記計算装置は、
前記端末装置から受信した暗号データと前記判定装置から受信した暗号化鍵データとを用いて前記暗号化登録データを生成し、当該暗号化登録データの登録処理を実行する
認証システム。
【符号の説明】
【０１３９】
１０  暗号処理装置
１１  通信部
１２  演算部
２０  計算装置
３０  判定装置
ＫＡ１  第１の鍵
ＫＡ２  第２の鍵
Ｋ  異なる鍵
ｍA  登録データ
Ｃ１  暗号データ
Ｃ２  暗号化登録データ
【図１】
2015192446.tif 000003
【図２】
2015192446.tif 000004
【図３】
2015192446.tif 000005
【図４】
2015192446.tif 000006
【図５】
2015192446.tif 000007
【図６】
2015192446.tif 000008
【図７】
2015192446.tif 000009
【図８】
2015192446.tif 000010
【図９】
2015192446.tif 000011
【図１０】
2015192446.tif 000012
【図１１】
2015192446.tif 000013
【図１２】
2015192446.tif 000014
【図１３】
2015192446.tif 000015
【図１４】
2015192446.tif 000016
【図１５】
2015192446.tif 000017
【図１６】
2015192446.tif 000018
【図１７】
2015192446.tif 000019
【図１８】
2015192446.tif 000020
【図１９】
2015192446.tif 000021