(57)【要約】【課題】計算装置による再送攻撃への耐性を向上させること。【解決手段】第１の鍵ＫＡ１を記憶する記憶部１１と、予め設定された登録データｍAと照合される被認証データＭAを受け付け、第２の鍵ＫＡ２を保持する判定装置３０との間で、被認証データＭAを受け付ける度に生成される一時鍵Ｋｔを共有し、被認証データＭAを一時鍵Ｋｔ及び第１の鍵ＫＡ１で二重に暗号化して暗号データＣ１を生成し、第１の鍵ＫＡ１及び第２の鍵ＫＡ２で登録データｍAを二重に暗号化した暗号化登録データＣ２を保持する計算装置２０に対して暗号データＣ１を送信する演算部１２と、を有する、暗号処理装置１０が提供される。【選択図】図１
2015192352.tif 000002
【特許請求の範囲】
【請求項１】
第１の鍵を保持するコンピュータに、
予め設定された登録データと照合される被認証データを受け付け、
第２の鍵を保持する判定装置との間で、前記被認証データを受け付ける度に生成される一時鍵を共有し、
前記被認証データを前記一時鍵及び前記第１の鍵で二重に暗号化して暗号データを生成し、
前記第１の鍵及び前記第２の鍵で前記登録データを二重に暗号化した暗号化登録データを保持する計算装置に対して前記暗号データを送信する
処理を実行させる、プログラム。
【請求項２】
前記計算装置は、
前記暗号データと前記暗号化登録データとに基づいて前記被認証データと前記登録データとの差異に関する暗号化距離データを生成し、当該暗号化距離データを前記判定装置に送信し、
前記判定装置は、
前記暗号化距離データと前記第２の鍵と前記一時鍵とに基づいて前記被認証データと前記登録データとの差異を求め、求めた差異の大きさに応じて認証の成否を判定する
請求項１に記載のプログラム。
【請求項３】
前記暗号データは、前記被認証データに対する前記一時鍵及び前記第１の鍵の排他的論理和であり、
前記暗号化登録データは、前記登録データに対する前記第１の鍵及び前記第２の鍵の排他的論理和であり、
前記暗号化距離データは、前記暗号データと前記暗号化登録データと前記一時鍵との排他的論理和であり、
前記判定装置は、
前記暗号化距離データと前記第２の鍵と前記一時鍵との排他的論理和に基づいて前記差異の大きさを計算し、前記差異の大きさに応じて認証の成否を判定する
請求項２に記載のプログラム。
【請求項４】
前記一時鍵は、前記判定装置により生成され、前記判定装置から前記コンピュータへと送信される
請求項１〜３のいずれか１項に記載のプログラム。
【請求項５】
前記一時鍵を生成し、当該一時鍵を前記判定装置に送信する
処理をさらに実行させる、請求項１〜３のいずれか１項に記載のプログラム。
【請求項６】
前記一時鍵が新たに生成された場合に第１の値に設定され、且つ当該一時鍵を用いて認証の成否が判定された場合に第２の値に設定されるフラグ情報が、前記第２の値に設定されている場合には前記判定装置による判定の処理が実行されない
請求項４に記載のプログラム。
【請求項７】
第１の鍵を保持するコンピュータが、
予め設定された登録データと照合される被認証データを受け付け、
第２の鍵を保持する判定装置との間で、前記被認証データを受け付ける度に生成される一時鍵を共有し、
前記被認証データを前記一時鍵及び前記第１の鍵で二重に暗号化して暗号データを生成し、
前記第１の鍵及び前記第２の鍵で前記登録データを二重に暗号化した暗号化登録データを保持する計算装置に対して前記暗号データを送信する
暗号処理方法。
【請求項８】
第１の鍵を記憶する記憶部と、
予め設定された登録データと照合される被認証データを受け付け、第２の鍵を保持する判定装置との間で、前記被認証データを受け付ける度に生成される一時鍵を共有し、前記被認証データを前記一時鍵及び前記第１の鍵で二重に暗号化して暗号データを生成し、前記第１の鍵及び前記第２の鍵で前記登録データを二重に暗号化した暗号化登録データを保持する計算装置に対して前記暗号データを送信する演算部と、
を有する、暗号処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム、暗号処理方法、及び暗号処理装置に関する。
【背景技術】
【０００２】
高いセキュリティレベルが求められる金融機関のシステムや電子商取引のシステムなどでは高度な認証技術が利用される。最近では、利用者が設定したパスワードに基づくパスワード認証に加え、利用者の生体情報を利用した生体認証などの技術が利用されている。
【０００３】
生体認証を利用するシステムは、認証の際に利用者から生体情報を読み取り、予め登録済みの生体情報であるテンプレートデータと、読み取った生体情報との類似度を比較する。つまり、システムにより読み取られた生体情報が被認証情報として利用され、テンプレートデータが認証情報として利用される。両者が許容可能な範囲内で一致する場合には認証成功と判定され、一致しない場合には認証失敗と判定される。
【０００４】
生体情報としては、例えば、指紋、静脈、虹彩などのパターンが利用される。これらの生体情報は１人１人に固有の情報であり変更がきかない。そのため、テンプレートデータの管理には細心の注意が払われる。例えば、テンプレートデータは、暗号化した状態で認証用のサーバに登録される。但し、認証時に元のテンプレートデータを復号し、利用者から読み取った生体情報と比較する仕組みにすると、復号したテンプレートデータ及び読み取った生体情報が悪意ある第三者に窃取されるリスクが生じる。
【０００５】
上記のリスクを抑圧するため、利用者から読み取った生体情報を暗号化したデータ及び暗号化したテンプレートデータをいずれも復号せずに比較し、生体情報とテンプレートデータとのハミング距離を計算する技術が提案されている。この技術は、データを暗号化する際に排他的論理和演算（以下、記号「∧」で表す場合がある。）を利用する。
【０００６】
例えば、データＸを暗号鍵Ｋで暗号化する関数ＥK（Ｘ）としては、暗号鍵Ｋと入力情報Ｘとの排他的論理和を演算するための関数や、ＡＥＳ（Advanced Encryption Standard）暗号化のＣＴＲ（CounTeR）モードの関数が適用可能である。なお、鍵情報である暗号鍵Ｋそのものではなく、暗号鍵Ｋにより生成された乱数が暗号化に利用されてもよい。ここでは、記号「∧」を用いて、このような関数をＥK（Ｘ）＝Ｋ∧Ｘで与える。
【０００７】
利用者から読み取った生体情報をＸ１、テンプレートデータをＸ２、暗号鍵をＫとした場合、ＥK（Ｘ１）∧ＥK（Ｘ２）＝（Ｘ１∧Ｋ）∧（Ｘ２∧Ｋ）＝Ｘ１∧Ｘ２≡ＨＶが成り立つ。但し、ＨＶは、生体情報Ｘ１とテンプレートデータＸ２との差を表すハミングベクトルである。従って、上記の演算を利用すれば、ハミングベクトルＨＶの長さ（ハミング距離）を基に、暗号化した状態のまま生体情報とテンプレートデータとの一致度を評価でき、生体情報の漏洩リスクを抑圧することができる。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００５−１３０３８４号公報
【非特許文献】
【０００９】
【非特許文献１】太田  陽基、笹野  義二、菅谷  史昭、“プライバシーを保護する虹彩認証方式の提案”、コンピュータセキュリティシンポジウム  2003、pp.163-pp.168
【発明の概要】
【発明が解決しようとする課題】
【００１０】
上記の提案に係る技術は、利用者が生体情報を入力する端末装置と認証用のサーバとにより二者間で認証処理を実行する認証システムへの適用を想定した技術である。そのため、上記の技術は、利用者が生体情報を入力する端末装置と、暗号化したテンプレートデータを保持するサーバ（以下、計算装置）と、認証の成否を判定するサーバ（以下、判定装置）との間で認証処理を実行する認証システムへの適用を想定していない。
【００１１】
例えば、端末装置が暗号化した生体情報を計算装置に送信し、計算装置が暗号化した状態のまま生体情報とテンプレートデータとの差を表す距離情報を生成する仕組みについて考える。但し、計算装置で生成された距離情報に基づいて判定装置が認証の成否を判定する。この場合、計算装置が、認証の成功時に距離情報を保持しておき、当該距離情報を判定装置へ再送することで端末装置に入力された生体情報にかかわらず認証が成功する。つまり、計算装置による不正な距離情報の再送により認証が成功するリスクがある。
【００１２】
そこで、１つの側面によれば、本発明の目的は、計算装置による再送攻撃への耐性を向上させることが可能なプログラム、暗号処理方法、及び暗号処理装置を提供することにある。
【課題を解決するための手段】
【００１３】
本開示の１つの側面によれば、第１の鍵を保持するコンピュータに、予め設定された登録データと照合される被認証データを受け付け、第２の鍵を保持する判定装置との間で、被認証データを受け付ける度に生成される一時鍵を共有し、被認証データを一時鍵及び第１の鍵で二重に暗号化して暗号データを生成し、第１の鍵及び第２の鍵で登録データを二重に暗号化した暗号化登録データを保持する計算装置に対して暗号データを送信する処理を実行させる、プログラムが提供される。
【００１４】
また、本開示の他の１つの側面によれば、第１の鍵を保持するコンピュータが、予め設定された登録データと照合される被認証データを受け付け、第２の鍵を保持する判定装置との間で、被認証データを受け付ける度に生成される一時鍵を共有し、被認証データを一時鍵及び第１の鍵で二重に暗号化して暗号データを生成し、第１の鍵及び第２の鍵で登録データを二重に暗号化した暗号化登録データを保持する計算装置に対して暗号データを送信する暗号処理方法が提供される。
【００１５】
また、本開示の他の１つの側面によれば、第１の鍵を記憶する記憶部と、予め設定された登録データと照合される被認証データを受け付け、第２の鍵を保持する判定装置との間で、被認証データを受け付ける度に生成される一時鍵を共有し、被認証データを一時鍵及び第１の鍵で二重に暗号化して暗号データを生成し、第１の鍵及び第２の鍵で登録データを二重に暗号化した暗号化登録データを保持する計算装置に対して暗号データを送信する演算部と、を有する、暗号処理装置が提供される。
【発明の効果】
【００１６】
本発明によれば、計算装置による再送攻撃への耐性を向上させることが可能になる。
【図面の簡単な説明】
【００１７】
【図１】第１実施形態に係る暗号処理装置の一例を示した図である。
【図２】第２実施形態に係る認証システムの一例を示した図である。
【図３】認証システムにおける照合処理の一例を示した図である。
【図４】認証システムに含まれる計算装置による再送攻撃の一例を示した図である。
【図５】第２実施形態に係る一時鍵を利用した照合処理の一例を示した図である。
【図６】第２実施形態に係る端末装置の機能を実現可能なハードウェアの一例を示した図である。
【図７】第２実施形態に係る端末装置が有する機能の一例を示したブロック図である。
【図８】第２実施形態に係る計算装置が有する機能の一例を示したブロック図である。
【図９】第２実施形態に係る暗号化登録データの一例を示した図である。
【図１０】第２実施形態に係る判定装置が有する機能の一例を示したブロック図である。
【図１１】第２実施形態に係る一時鍵の共有方法（端末装置が一時鍵を生成する場合）について説明するための図である。
【図１２】第２実施形態に係る一時鍵の共有方法（判定装置が一時鍵を生成する場合）について説明するための図である。
【図１３】第２実施形態に係る端末装置の動作例を示したフロー図である。
【図１４】第２実施形態に係る計算装置の動作例を示したフロー図である。
【図１５】第２実施形態に係る判定装置の動作例を示したフロー図である。
【図１６】第２実施形態の一変形例に係る判定装置が有する機能の一例を示したブロック図である。
【図１７】第２実施形態の一変形例に係るフラグの一例を示した図である。
【図１８】第２実施形態の一変形例に係る判定装置の動作例を示した第１のフロー図である。
【図１９】第２実施形態の一変形例に係る判定装置の動作例を示した第２のフロー図である。
【発明を実施するための形態】
【００１８】
以下に添付図面を参照しながら、本発明の実施形態について説明する。なお、本明細書及び図面において実質的に同一の機能を有する要素については、同一の符号を付することにより重複説明を省略する場合がある。
【００１９】
＜１．第１実施形態＞
図１を参照しながら、第１実施形態について説明する。図１は、第１実施形態に係る暗号処理装置の一例を示した図である。なお、暗号処理装置１０は、第１実施形態に係る暗号処理装置の一例である。また、図中及び以下の説明において、表示の都合上、排他的論理和演算やＡＥＳ暗号化のＣＴＲモードの関数を記号「∧」と表現する場合がある。
【００２０】
図１に示すように、暗号処理装置１０は、記憶部１１及び演算部１２を有する。なお、暗号処理装置１０は、計算装置２０及び判定装置３０のそれぞれと通信できる。それぞれの通信に利用する通信回線においては、例えば、ＳＳＬ（Secure Socket Layer）などの暗号化通信技術を適用することが望ましい。
【００２１】
なお、記憶部１１は、ＲＡＭ（Random Access Memory）などの揮発性記憶装置、或いは、ＨＤＤ（Hard Disk Drive）やフラッシュメモリなどの不揮発性記憶装置である。演算部１２は、ＣＰＵ（Central Processing Unit）やＤＳＰ（Digital Signal Processor）などのプロセッサである。但し、演算部１２は、ＡＳＩＣ（Application Specific Integrated Circuit）やＦＰＧＡ（Field Programmable Gate Array）などの電子回路であってもよい。演算部１２は、例えば、記憶部１１又は他のメモリに記憶されたプログラムを実行する。
【００２２】
記憶部１１は、第１の鍵ＫＡ１を記憶する。演算部１２は、予め設定された登録データｍAと照合される被認証データＭAを受け付ける。登録データｍAは、認証情報の一例である。被認証データＭAは、被認証情報の一例である。登録データｍA及び被認証データＭAとしては、例えば、利用者の生体情報や、暗号処理装置１０又は利用者が管理する電子回路のＰＵＦ（Physical Unclonable Function）を適用可能である。
【００２３】
被認証データＭAを受け付けた演算部１２は、第２の鍵ＫＡ２を保持する判定装置３０との間で、被認証データＭAを受け付ける度に生成される一時鍵Ｋｔを共有する。共有の方法としては、例えば、一時鍵Ｋｔを判定装置３０が生成し、判定装置３０が一時鍵Ｋｔを暗号処理装置１０へと送信する方法が考えられる。他の方法としては、例えば、演算部１２が一時鍵Ｋｔを生成し、演算部１２が一時鍵Ｋｔを判定装置３０へと送信する方法が考えられる。
【００２４】
一時鍵Ｋｔを共有した演算部１２は、被認証データＭAを一時鍵Ｋｔ及び第１の鍵ＫＡ１で二重に暗号化して暗号データＣ１を生成する。例えば、演算部１２は、被認証データＭAと第１の鍵ＫＡとの排他的論理和演算を実行し、その実行結果と一時鍵Ｋｔとの排他的論理和演算を実行して暗号データＣ１を生成する。
【００２５】
演算部１２は、第１の鍵ＫＡ１及び第２の鍵ＫＡ２で登録データｍAを二重に暗号化した暗号化登録データＣ２を保持する計算装置２０に対して暗号データＣ１を送信する。このとき、演算部１２は、被認証データＭAを入力した利用者ＡのＩＤ（IDentification）を併せて計算装置２０に送信する。
【００２６】
暗号データＣ１及びＩＤを受信した計算装置２０は、受信したＩＤに対応する暗号化登録データＣ２を特定する。そして、計算装置２０は、受信した暗号データＣ１と、特定した暗号化登録データＣ２とに基づいて被認証データＭAと登録データｍAとの差異に関する暗号化距離データＣ３を生成する。例えば、計算装置２０は、暗号データＣ１と暗号化登録データＣ２との排他的論理和演算を実行して暗号化距離データＣ３を生成する。また、計算装置２０は、暗号化距離データＣ３を判定装置３０に送信する。
【００２７】
暗号化距離データＣ３を受信した判定装置３０は、受信した暗号化距離データＣ３と第２の鍵ＫＡ２と一時鍵Ｋｔとに基づいて被認証データＭAと登録データｍAとの差異を求める。例えば、判定装置３０は、暗号化距離データＣ３と第２の鍵ＫＡ２との排他的論理和演算を実行し、その実行結果と一時鍵Ｋｔとの排他的論理和演算をさらに実行して、被認証データＭAと登録データｍAとの差異を表すハミングベクトルＨＶを求める。
【００２８】
また、判定装置３０は、求めた差異の大きさに応じて認証の成否を判定する。例えば、判定装置３０は、求めたハミングベクトルＨＶの長さＬｅｎ（ＨＶ）を計算し、計算した長さＬｅｎ（ＨＶ）が予め設定された閾値Ｔｈより大きいか否かを判定する。
【００２９】
例えば、ハミングベクトルＨＶの長さＬｅｎ（ＨＶ）は、ＨＶにおけるビット値が「1」を示すビットの数である。ＨＶが「00000101」で与えられる場合、Ｌｅｎ（ＨＶ）は２となる。
【００３０】
Ｌｅｎ（ＨＶ）＞Ｔｈでない場合、判定装置３０は、認証成功（ＯＫ）と判定する。一方、Ｌｅｎ（ＨＶ）＞Ｔｈである場合、判定装置３０は、認証失敗（ＮＧ）と判定する。そして、判定装置３０は、判定結果を暗号処理装置１０に送信する。
【００３１】
上記のように、認証の度に毎回変わる一時鍵Ｋｔを利用しているため、計算装置２０が過去に生成した暗号化距離データＣ３を判定装置３０に再送した場合、判定装置３０で登録データｍ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、…の暗号化に利用される。計算装置２００は、暗号化登録データＥKA1（ＥKA2（ｍA））、ＥKB1（ＥKB2（ｍB））、…を保持する。また、判定装置３００は、第２暗号鍵ＫＡ２、ＫＢ２、…を保持する。
【００３９】
暗号化登録データＥKA1（ＥKA2（ｍA））は、第１暗号鍵ＫＡ１及び第２暗号鍵ＫＡ２を用いて登録データｍAを暗号化したデータである。つまり、暗号化登録データＥKA1（ＥKA2（ｍA））は下記の式（１）で与えられる。また、暗号化登録データＥKB1（ＥKB2（ｍB））は、第１暗号鍵ＫＢ１及び第２暗号鍵ＫＢ２を用いて登録データｍBを暗号化したデータである。つまり、暗号化登録データＥKB1（ＥKB2（ｍB））は下記の式（２）で与えられる。
【００４０】
ＥKA1（ＥKA2（ｍA））＝ｍA∧ＫＡ１∧ＫＡ２
…（１）
ＥKB1（ＥKB2（ｍB））＝ｍB∧ＫＢ１∧ＫＢ２
…（２）
以下の説明では、簡単のため、図２に例示した認証システムを想定し、登録データｍAと照合データＭAとの照合に係る処理に注目して説明を進める。
【００４１】
（照合処理の一例）
ここで、図３を参照しながら、認証システムにおける照合処理の一例について説明する。なお、図３は、認証システムにおける照合処理の一例を示した図である。
【００４２】
図３に示すように、照合データＭAが入力された端末装置１００は、利用者Ａに関する照合データＭAの判定依頼を判定装置３００へ送信する（Ｓ１１）。次いで、端末装置１００は、下記の式（３）に示すように、第１暗号鍵ＫＡ１を利用して暗号データＥKA1（ＭA）を計算する（Ｓ１２）。次いで、端末装置１００は、照合データＭAを入力した利用者ＡのＩＤと共に暗号データＥKA1（ＭA）を計算装置２００へ送信する（Ｓ１３）。
【００４３】
ＥKA1（ＭA）＝ＭA∧ＫＡ１
…（３）
利用者ＡのＩＤ及び暗号データＥKA1（ＭA）を受信した計算装置２００は、受信したＩＤに対応する暗号化登録データＥKA1（ＥKA2（ｍA））を抽出する。そして、計算装置２００は、暗号化登録データＥKA1（ＥKA2（ｍA））と暗号データＥKA1（ＭA）とを用いて、下記の式（４）で与えられる暗号化距離データＥKA2（ＨＶ）を計算する（Ｓ１４）。次いで、計算装置２００は、暗号化距離データＥKA2（ＨＶ）を判定装置３００へ送信する（Ｓ１５）。
【００４４】
ＥKA2（ＨＶ）＝ＥKA1（ＭA）∧ＥKA1（ＥKA2（ｍA））
…（４）
暗号化距離データＥKA2（ＨＶ）を受信した判定装置３００は、下記の式（５）に示すように、第２暗号鍵ＫＡ２を利用してハミングベクトルＨＶを計算する（Ｓ１６）。次いで、判定装置３００は、ハミングベクトルＨＶの長さＬｅｎ（ＨＶ）と予め設定された閾値Ｔｈとを比較し、Ｌｅｎ（ＨＶ）＞Ｔｈであるか否かを判定する（Ｓ１７）。
【００４５】
Ｓ１７でＬｅｎ（ＨＶ）＞Ｔｈであると判定した場合、判定装置３００は、認証の失敗を示す判定結果（認証ＮＧ）を端末装置１００へ送信する（Ｓ１８）。一方、Ｓ１７でＬｅｎ（ＨＶ）＞Ｔｈでないと判定した場合、判定装置３００は、認証の成功を示す判定結果（認証ＯＫ）を端末装置１００へ送信する（Ｓ１８）。Ｓ１８の処理が完了すると、図３に示した照合処理は終了する。
【００４６】
ＨＶ＝ＥKA2（ＨＶ）∧ＫＡ２
…（５）
（計算装置による再送攻撃について）
図２に例示した認証システムによれば、図３に例示した照合処理を実行できる。但し、図３に例示した照合処理の仕組みを適用した場合、図４に示すような計算装置２００による再送攻撃が考えられる。なお、図４は、認証システムに含まれる計算装置による再送攻撃の一例を示した図である。
【００４７】
図４に示したＳ１１〜Ｓ１８の処理は図３に示したＳ１１〜Ｓ１８の処理と同じである。但し、図４の例では、Ｓ１７でＬｅｎ（ＨＶ）＞Ｔｈでないと判定され、認証が成功している。この場合、図４の符号Ｑ１に示すように、計算装置２００が暗号化距離データＥKA2（ＨＶ）を保持しておき、その暗号化距離データＥKA2（ＨＶ）を計算装置２００が端末装置１００へ再送する攻撃のリスクが考えられる。
【００４８】
もちろん、計算装置２００自身ではなく、計算装置２００と判定装置３００との間の通信を傍受した第三者が暗号化距離データＥKA2（ＨＶ）を傍受し、計算装置２００になりすまして暗号化距離データＥKA2（ＨＶ）を再送する攻撃のリスクも考えられる。
【００４９】
ここで、図４の符号Ｑ２を参照する。この例では、ＩＤがＡの照合データに関する判定依頼が再び端末装置１００から判定装置３００へ送信され（Ｓ３１）、暗号データＸＸＸが計算装置２００に送信されている（Ｓ３２）。暗号データＸＸＸを受信した計算装置２００がＱ１の暗号化距離データＥKA2（ＨＶ）を判定装置３００へ再送すると、Ｓ１６及びＳ１７と同じ処理が実行され、認証の成功を示す判定結果（認証ＯＫ）が端末装置１００へ送信されてしまう（Ｓ３４）。
【００５０】
つまり、計算装置２００がＱ１の暗号化距離データＥKA2（ＨＶ）を再送する仕組みを設ければ、端末装置１００に入力する照合データの内容にかかわらず認証が成功する。そこで、第２実施形態では一時鍵を利用して上記のリスクを回避する仕組みを提案する。
【００５１】
（一時鍵を利用した照合処理について）
図５を参照しながら、第２実施形態に係る照合処理の仕組みについて説明する。なお、図５は、第２実施形態に係る一時鍵を利用した照合処理の一例を示した図である。
【００５２】
図５に示すように、照合データＭAが入力された端末装置１００は、利用者Ａに関する照合データＭAの判定依頼を判定装置３００に送信する（Ｓ１０１）。次いで、端末装置１００と判定装置３００とは、照合処理の度に新たに生成される一時鍵Ｋｔを共有する（Ｓ１０２）。一時鍵Ｋｔは、端末装置１００又は判定装置３００により生成された一時乱数である。
【００５３】
一時鍵Ｋｔを共有した後、端末装置１００は、下記の式（６）に示すように、第１暗号鍵ＫＡ１及び一時鍵Ｋｔを用いて暗号データＥKt（ＥKA1（ＭA））を計算する（Ｓ１０３）。次いで、端末装置１００は、照合データＭAのＩＤ（Ａ）と共に暗号データＥKt（ＥKA1（ＭA））を計算装置２００へ送信する（Ｓ１０４）。
【００５４】
ＥKt（ＥKA1（ＭA））＝ＭA∧ＫＡ１∧Ｋｔ
…（６）
暗号データＥKt（ＥKA1（ＭA））を受信した計算装置２００は、暗号データＥKt（ＥKA1（ＭA））と暗号化登録データＥKA1（ＥKA2（ｍA））とを用いて暗号化距離データＥKt（ＥKA2（ＨＶ））を計算する（Ｓ１０５）。但し、暗号化距離データＥKt（ＥKA2（ＨＶ））は、下記の式（７）で与えられる。そして、計算装置２００は、暗号化距離データＥKt（ＥKA2（ＨＶ））を判定装置３００へ送信する（Ｓ１０６）。
【００５５】
ＥKt（ＥKA2（ＨＶ））＝ＥKt（ＥKA1（ＭA））∧ＥKA1（ＥKA2（ｍA））
…（７）
暗号化距離データＥKt（ＥKA2（ＨＶ））を受信した判定装置３００は、下記の式（８）に示すように、第２暗号鍵ＫＡ２及び一時鍵Ｋｔを用いて暗号化距離データＥKt（ＥKA2（ＨＶ））からハミングベクトルＨＶを計算する（Ｓ１０７）。次いで、判定装置３００は、ハミングベクトルＨＶの長さＬｅｎ（ＨＶ）と予め設定された閾値Ｔｈとを比較し、Ｌｅｎ（ＨＶ）＞Ｔｈであるか否かを判定する（Ｓ１０８）。
【００５６】
Ｓ１０８でＬｅｎ（ＨＶ）＞Ｔｈであると判定した場合、判定装置３００は、認証の失敗を示す判定結果（認証ＮＧ）を端末装置１００へ送信する（Ｓ１０９）。一方、Ｓ１０８でＬｅｎ（ＨＶ）＞Ｔｈでないと判定した場合、判定装置３００は、認証の成功を示す判定結果（認証ＯＫ）を端末装置１００へ送信する（Ｓ１０９）。Ｓ１０９の処理が完了すると、図５に示した照合処理は終了する。
【００５７】
ＨＶ＝ＥKt（ＥKA2（ＨＶ））∧ＫＡ２∧Ｋｔ
…（８）
上記の一時鍵Ｋｔは、Ｓ１０２の処理を実行する度に変更される。そのため、過去に生成された暗号化距離データＥKt（ＥKA2（ＨＶ））を用いて上記の式（８）による計算を実行しても正しくハミングベクトルＨＶが得られない。つまり、計算装置２００が暗号化距離データＥKt（ＥKA2（ＨＶ））を保持し、図４の例と同様に再送攻撃を実行してもＳ１０８の処理でＬｅｎ（ＨＶ）＞Ｔｈであると判定され、認証が失敗する。つまり、再送攻撃によるリスクを抑圧することができるのである。
【００５８】
以上、第２実施形態に係る認証システムについて説明した。以下では、第２実施形態に係る認証システムの各装置について、さらに説明する。
［２−２．ハードウェア］
図６を参照しながら、端末装置１００の機能を実現可能なハードウェアについて説明する。図６は、第２実施形態に係る端末装置の機能を実現可能なハードウェアの一例を示した図である。
【００５９】
端末装置１００が有する機能は、例えば、図６に示す情報処理装置のハードウェア資源を用いて実現することが可能である。つまり、端末装置１００が有する機能は、コンピュータプログラムを用いて図６に示すハードウェアを制御することにより実現される。
【００６０】
図６に示すように、このハードウェアは、主に、ＣＰＵ９０２と、ＲＯＭ（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の排他的論理和演算（上記の式（６）を参照）を実行して暗号データＥKt（ＥKA1（ＭA））を計算する。通信部１０４は、利用者ＡのＩＤ及び論理演算部１０３が計算した暗号データＥKt（ＥKA1（ＭA））を計算装置２００へ送信する。なお、通信部１０４は、計算装置２００、判定装置３００と通信する際に利用される。
【００７５】
（計算装置の機能）
次に、図８及び図９を参照しながら、計算装置２００の機能について説明する。なお、図８は、第２実施形態に係る計算装置が有する機能の一例を示したブロック図である。また、図９は、第２実施形態に係る暗号化登録データの一例を示した図である。
【００７６】
図８に示すように、計算装置２００は、記憶部２０１と、通信部２０２と、論理演算部２０３とを有する。
なお、記憶部２０１の機能は、上述したＲＡＭ９０６や記憶部９２０などを用いて実現できる。また、通信部２０２の機能は、上述した接続ポート９２４や通信部９２６などを用いて実現できる。また、論理演算部２０３の機能は、上述したＣＰＵ９０２などを用いて実現できる。
【００７７】
記憶部２０１には、暗号化登録データ２０１ａが格納される。例えば、暗号化登録データ２０１ａは、図９に示すように、利用者のＩＤと、暗号化登録データ２０１ａとを対応付けたデータベースにより管理される。図９の例では、利用者ＡのＩＤと暗号化登録データＥKA1（ＥKA2（ｍA））が対応付けられ、利用者ＢのＩＤと暗号化登録データＥKB1（ＥKB2（ｍB））とが対応付けられている。
【００７８】
通信部２０２は、端末装置１００から利用者ＡのＩＤ及び暗号データＥKt（ＥKA1（ＭA））を受信し、利用者ＡのＩＤ及び暗号データＥKt（ＥKA1（ＭA））を論理演算部２０３に入力する。論理演算部２０３は、記憶部２０１に格納された暗号化登録データ２０１ａのうち、利用者ＡのＩＤに対応する暗号化登録データＥKA1（ＥKA2（ｍA））を記憶部２０１から読み出す。
【００７９】
そして、論理演算部２０３は、暗号データＥKt（ＥKA1（ＭA））と暗号化登録データＥKA1（ＥKA2（ｍA））との排他的論理和演算（上記の式（７）を参照）を実行し、暗号化距離データＥKt（ＥKA2（ＨＶ））を計算する。論理演算部２０３により計算された暗号化距離データＥKt（ＥKA2（ＨＶ））は、通信部２０２に入力される。通信部２０２は、論理演算部２０３から入力された暗号化距離データＥKt（ＥKA2（ＨＶ））を判定装置３００へ送信する。
【００８０】
（判定装置の機能）
次に、図１０を参照しながら、判定装置３００の機能について説明する。なお、図１０は、第２実施形態に係る判定装置が有する機能の一例を示したブロック図である。
【００８１】
図１０に示すように、判定装置３００は、記憶部３０１と、通信部３０２と、一時鍵共有部３０３と、論理演算部３０４と、判定部３０５とを有する。
なお、記憶部３０１の機能は、上述したＲＡＭ９０６や記憶部９２０などを用いて実現できる。通信部３０２の機能は、上述した接続ポート９２４や通信部９２６などを用いて実現できる。一時鍵共有部３０３、論理演算部３０４、及び判定部３０５の機能は、上述したＣＰＵ９０２などを用いて実現できる。
【００８２】
記憶部３０１には、第２暗号鍵３０１ａが格納される。なお、上述した第２暗号鍵ＫＡ２、ＫＢ２、…は、第２暗号鍵３０１ａの一例である。
通信部３０２は、端末装置１００から利用者ＡのＩＤ及び判定依頼を受信した場合、利用者ＡのＩＤを論理演算部３０４に入力し、判定依頼を一時鍵共有部３０３に入力する。判定依頼が入力された一時鍵共有部３０３は、通信部３０２を介して端末装置１００との間で一時鍵Ｋｔを共有する。また、一時鍵共有部３０３は、端末装置１００と共有した一時鍵Ｋｔを記憶部３０１に格納する。
【００８３】
また、通信部３０２は、計算装置２００から暗号化距離データＥKt（ＥKA2（ＨＶ））を受信した場合、暗号化距離データＥKt（ＥKA2（ＨＶ））を論理演算部３０４に入力する。論理演算部３０４は、記憶部３０１に格納された第２暗号鍵３０１ａのうち、判定依頼と共に通信部３０２が受信した利用者ＡのＩＤに対応する第２暗号鍵ＫＡ２及び一時鍵Ｋｔを記憶部３０１から読み出す。
【００８４】
そして、論理演算部３０４は、暗号化距離データＥKt（ＥKA2（ＨＶ））、第２暗号鍵ＫＡ２、及び一時鍵Ｋｔの排他的論理和演算（上記の式（８）を参照）を実行し、ハミングベクトルＨＶ（ＨＶ＝ｍA∧ＭA）を計算する。論理演算部３０４により計算されたハミングベクトルＨＶは、判定部３０５に入力される。
【００８５】
ハミングベクトルＨＶが入力された判定部３０５は、ハミングベクトルＨＶの長さＬｅｎ（ＨＶ）を求め、Ｌｅｎ（ＨＶ）と予め設定された閾値Ｔｈとを比較する。Ｌｅｎ（ＨＶ）＞Ｔｈである場合、判定部３０５は、通信部３０２を介して、認証の失敗を示す判定結果（認証ＮＧ）を端末装置１００へ送信する。Ｌｅｎ（ＨＶ）＞Ｔｈでない場合、判定部３０５は、通信部３０２を介して、認証の成功を示す判定結果（認証ＯＫ）を端末装置１００へ送信する。
【００８６】
以上、第２実施形態に係る認証システムに含まれる各装置の機能について説明した。
上記のように、一時鍵Ｋｔは、端末装置１００が判定装置３００へ判定依頼を送信する度に生成され、端末装置１００と判定装置３００との間で共有される。そのため、計算装置２００が過去に計算した暗号化距離データＥKt（ＥKA2（ＨＶ））を保持しておき、判定装置３００に対して再送攻撃を実行しても認証が失敗する。従って、再送攻撃によるリスクを抑圧することができる。なお、照合データＭAに係る処理に注目して説明したが、他の照合データＭB、…についても同様である。
【００８７】
［２−４．一時鍵の共有方法について］
ここで、一時鍵Ｋｔの共有方法について、さらに説明する。一時鍵Ｋｔの共有方法としては、端末装置１００が一時鍵Ｋｔを生成する方法と、判定装置３００が一時鍵Ｋｔを生成する方法とが考えられる。以下、これらの方法について、それぞれ説明する。
【００８８】
（端末装置が一時鍵を生成する場合）
まず、図１１を参照しながら、端末装置１００が一時鍵Ｋｔを生成する方法について説明する。なお、図１１は、第２実施形態に係る一時鍵の共有方法（端末装置が一時鍵を生成する場合）について説明するための図である。
【００８９】
図１１に示すように、端末装置１００は、一時鍵Ｋｔを生成する（Ｓ５１）。次いで、端末装置１００は、一時鍵Ｋｔを記憶部１０１に格納して保持する（Ｓ５２）。次いで、端末装置１００は、判定依頼と共に、Ｓ５１で生成した一時鍵Ｋｔを判定装置３００へ送信する（Ｓ５３）。一時鍵Ｋｔを受信した判定装置３００は、受信した一時鍵Ｋｔを記憶部３０１に格納して保持する（Ｓ５４）。Ｓ５４の処理が完了すると、端末装置１００と判定装置３００との間で一時鍵Ｋｔが共有された状態になる。
【００９０】
（判定装置が一時鍵を生成する場合）
次に、図１２を参照しながら、判定装置３００が一時鍵Ｋｔを生成する方法について説明する。なお、図１２は、第２実施形態に係る一時鍵の共有方法（判定装置が一時鍵を生成する場合）について説明するための図である。
【００９１】
図１２に示すように、判定依頼を受けた判定装置３００は、一時鍵Ｋｔを生成する（Ｓ６１）。次いで、判定装置３００は、一時鍵Ｋｔを記憶部３０１に格納して保持する（Ｓ６２）。次いで、判定装置３００は、Ｓ６１で生成した一時鍵Ｋｔを端末装置１００へ送信する（Ｓ６３）。一時鍵Ｋｔを受信した端末装置１００は、受信した一時鍵Ｋｔを記憶部１０１に格納して保持する（Ｓ６４）。Ｓ６４の処理が完了すると、端末装置１００と判定装置３００との間で一時鍵Ｋｔが共有された状態になる。
【００９２】
以上、一時鍵Ｋｔの共有方法について説明した。
［２−５．装置の動作］
次に、第２実施形態に係る認証システムに含まれる各装置の動作について説明する。
【００９３】
（端末装置の動作）
まず、図１３を参照しながら、端末装置１００の動作について説明する。なお、図１３は、第２実施形態に係る端末装置の動作例を示したフロー図である。
【００９４】
図１３に示すように、利用者Ａから照合データＭAの入力を受けた端末装置１００は、通信部１０４の機能により、利用者ＡのＩＤと共に判定依頼を判定装置３００へ送信する（Ｓ１１１）。次いで、端末装置１００は、一時鍵共有部１０２の機能により、一時鍵Ｋｔを判定装置３００との間で共有する（Ｓ１１２）。
【００９５】
次いで、端末装置１００は、論理演算部３０４の機能により、第１暗号鍵ＫＡ１及び一時鍵Ｋｔを利用し、上記の式（６）に従って暗号データＥKt（ＥKA1（ＭA））を計算する（Ｓ１１３）。次いで、端末装置１００は、通信部１０４の機能により、Ｓ１１３で計算した暗号データＥKt（ＥKA1（ＭA））を計算装置２００へ送信する（Ｓ１１４）。その後、端末装置１００は、判定装置３００から判定結果を受信する（Ｓ１１５）。判定結果は、例えば、端末装置１００の表示部（非図示）に表示され、利用者Ａに提示される。表示処理が完了すると、図１３に示した一連の処理は終了する。
【００９６】
（計算装置の動作）
次に、図１４を参照しながら、計算装置２００の動作について説明する。なお、図１４は、第２実施形態に係る計算装置の動作例を示したフロー図である。
【００９７】
図１４に示すように、計算装置２００は、通信部２０２の機能により、利用者ＡのＩＤと共に、暗号データＥKt（ＥKA1（ＭA））を端末装置１００から受信する（Ｓ１２１）。次いで、計算装置２００は、論理演算部２０３の機能により、利用者ＡのＩＤに対応する暗号化登録データＥKA2（ＥKA1（ｍA））を記憶部２０１から抽出する（Ｓ１２２）。
【００９８】
次いで、計算装置２００は、論理演算部２０３の機能により、上記の式（７）に従って暗号データＥKt（ＥKA1（ＭA））及び暗号化登録データＥKA2（ＥKA1（ｍA））から暗号化距離データＥKt（ＥKA2（ＨＶ））を生成する（Ｓ１２３）。次いで、計算装置２００は、通信部２０２の機能により、暗号化距離データＥKt（ＥKA2（ＨＶ））を判定装置３００へ送信する（Ｓ１２４）。Ｓ１２４の処理が完了すると、図１４に示した一連の処理は終了する。
【００９９】
（判定装置の動作）
次に、図１５を参照しながら、判定装置３００の動作について説明する。なお、図１５は、第２実施形態に係る判定装置の動作例を示したフロー図である。
【０１００】
図１５に示すように、判定装置３００は、通信部３０２の機能により、端末装置１００から判定依頼を受信する（Ｓ１３１）。次いで、判定装置３００は、一時鍵共有部３０３の機能により、一時鍵Ｋｔを端末装置１００との間で共有する（Ｓ１３２）。
【０１０１】
また、判定装置３００は、通信部３０２の機能により、暗号化距離データＥKt（ＥKA2（ＨＶ））を計算装置２００から受信する（Ｓ１３３）。次いで、判定装置３００は、論理演算部３０４の機能により、上記の式（８）に従って第２暗号鍵ＫＡ２、一時鍵Ｋｔ、及び暗号化距離データＥKt（ＥKA2（ＨＶ））からハミングベクトルＨＶを計算する（Ｓ１３４）。
【０１０２】
次いで、判定装置３００は、判定部３０５の機能により、Ｓ１３４で計算したハミングベクトルＨＶの大きさＬｅｎ（ＨＶ）を計算する（Ｓ１３５）。次いで、判定装置３００は、判定部３０５の機能により、Ｌｅｎ（ＨＶ）と予め設定された閾値Ｔｈとを比較し、Ｌｅｎ（ＨＶ）＞Ｔｈであるか否かを判定する（Ｓ１３６）。Ｌｅｎ（ＨＶ）＞Ｔｈである場合、処理はＳ１３８へと進む。一方、Ｌｅｎ（ＨＶ）＞Ｔｈでない場合、処理はＳ１３７へと進む。
【０１０３】
処理がＳ１３７へと進んだ場合、判定装置３００は、判定部３０５の機能により、認証の成功を示す判定結果（認証ＯＫ）を端末装置１００へ送信する（Ｓ１３７）。一方、処理がＳ１３８へと進んだ場合、判定装置３００は、判定部３０５の機能により、認証の失敗を示す判定結果（認証ＮＧ）を端末装置１００へ送信する（Ｓ１３８）。Ｓ１３７又はＳ１３８の処理が完了すると、図１５に示した一連の処理は終了する。
【０１０４】
以上、第２実施形態に係る認証システムに含まれる各装置の動作について説明した。
上記のように、一時鍵Ｋｔは、端末装置１００が判定装置３００へ判定依頼を送信する度に生成され、端末装置１００と判定装置３００との間で共有される。そのため、計算装置２００が過去に計算した暗号化距離データＥKt（ＥKA2（ＨＶ））を保持しておき、判定装置３００に対して再送攻撃を実行しても認証が失敗する。従って、再送攻撃によるリスクを抑圧することができる。なお、照合データＭAに係る処理に注目して説明したが、他の照合データＭB、…についても同様である。
【０１０５】
以上、第２実施形態について説明した。
＜３．変形例（フラグの利用）＞
次に、第２実施形態の一変形例（以下、本変形例）について説明する。本変形例は、前回利用した一時鍵Ｋｔが判定装置３００の記憶部３０１に存在し、かつ、今回利用する一時鍵Ｋｔが生成される前の時点で実行される計算装置２００による再送攻撃のリスクを抑制する方法に関する。
【０１０６】
［３−１．装置の機能］
まず、図１６及び図１７を参照しながら、本変形例に係る装置の機能について説明する。なお、本変形例に係る端末装置１００及び計算装置２００の機能は、図７に示した端末装置１００の機能及び図８に示した計算装置２００の機能と同じである。また、図１６は、第２実施形態の一変形例に係る判定装置が有する機能の一例を示したブロック図である。図１７は、第２実施形態の一変形例に係るフラグの一例を示した図である。
【０１０７】
図１６に示すように、本変形例に係る判定装置３００は、記憶部３０１と、通信部３０２と、一時鍵共有部３０３と、論理演算部３０４と、判定部３０５とを有する。本変形例に係る判定装置３００と図１０に示した判定装置３００との主な相違点は、記憶部３０１に格納されるフラグ３０１ｂの存在、及びフラグ３０１ｂを管理する一時鍵共有部３０３及び論理演算部３０４の機能にある。以下、これらの相違点について説明する。
【０１０８】
フラグ３０１ｂは、一時鍵Ｋｔが生成されたタイミングでＯＦＦに設定され、一時鍵Ｋｔを記憶部３０１から読み出したタイミングでＯＮに設定される情報である。図１７に示すように、フラグ３０１ｂは、照合データを入力する利用者のＩＤ毎に用意されている。図１７の例では、利用者ＡのＩＤに対応するフラグがＯＮ、利用者ＢのＩＤに対応するフラグがＯＦＦに設定されている。フラグ３０１ｂの値を参照することで、記憶部３０１に格納されている一時鍵Ｋｔが、既に利用済みであるか否かを判断することができる。
【０１０９】
フラグ３０１ｂの値は、一時鍵共有部３０３及び論理演算部３０４が管理する。一時鍵共有部３０３は、端末装置１００との間で一時鍵Ｋｔを共有する処理の中で一時鍵Ｋｔを記憶部３０１に格納した際にフラグ３０１ｂをＯＦＦに設定する。判定装置３００が一時鍵Ｋｔを生成する方法を採用した場合、一時鍵共有部３０３は、一時鍵Ｋｔを生成した際にフラグ３０１ｂをＯＦＦに設定する。
【０１１０】
論理演算部３０４は、上記の式（８）に従って暗号化距離データＥKt（ＥKA2（ＨＶ））からハミングベクトルＨＶを計算する際、記憶部３０１から一時鍵Ｋｔを読み出した後でフラグ３０１ｂをＯＮに設定する。また、論理演算部３０４は、暗号化距離データＥKt（ＥKA2（ＨＶ））が入力された際にフラグ３０１ｂがＯＦＦであるか確認する。フラグ３０１ｂがＯＦＦの場合、論理演算部３０４は、上記の式（８）に従ってハミングベクトルＨＶを計算する。
【０１１１】
フラグ３０１ｂがＯＮの場合、論理演算部３０４は、一時鍵Ｋｔが未更新である旨を判定部３０５に通知する。なお、フラグ３０１ｂがＯＮの場合に認証に失敗する所定のデータが論理演算部３０４から判定部３０５へと送信されるようにしてもよい。このように、フラグ３０１ｂを利用することにより、前回利用した一時鍵Ｋｔが判定装置３００の記憶部３０１に存在し、かつ、今回利用する一時鍵Ｋｔが生成される前の時点で実行される計算装置２００による再送攻撃を防止することができる。
【０１１２】
以上、本変形例に係る装置の機能について説明した。
［３−２．装置の動作］
次に、図１８及び図１９を参照しながら、本変形例に係る装置の動作について説明する。なお、本変形例に係る端末装置１００及び計算装置２００の動作は、図１３に示した動作及び図１４に示した動作と同じである。
【０１１３】
また、図１８は、第２実施形態の一変形例に係る判定装置の動作例を示した第１のフロー図である。図１９は、第２実施形態の一変形例に係る判定装置の動作例を示した第２のフロー図である。
【０１１４】
図１８に示すように、判定装置３００は、通信部３０２の機能により、端末装置１００から判定依頼を受信する（Ｓ２０１）。次いで、判定装置３００は、一時鍵共有部３０３の機能により、一時鍵Ｋｔを端末装置１００との間で共有する（Ｓ２０２）。次いで、判定装置３００は、一時鍵共有部３０３の機能により記憶部３０１に格納されているフラグ３０１ｂをＯＦＦに設定する（Ｓ２０３）。
【０１１５】
また、判定装置３００は、通信部３０２の機能により、暗号化距離データＥKt（ＥKA2（ＨＶ））を計算装置２００から受信する（Ｓ２０４）。次いで、判定装置３００は、論理演算部３０４の機能により、フラグ３０１ｂがＯＦＦか否かを確認する（Ｓ２０５）。フラグ３０１ｂがＯＦＦである場合、処理はＳ２０６へと進む。一方、フラグ３０１ｂがＯＮである場合、処理は図１９のＳ２１１へと進む。
【０１１６】
処理がＳ２０６へと進んだ場合、判定装置３００は、記憶部３０１から一時鍵Ｋｔを読み出し、フラグ３０１ｂをＯＮに設定する（Ｓ２０６）。次いで、判定装置３００は、論理演算部３０４の機能により、上記の式（８）に従って第２暗号鍵ＫＡ２、一時鍵Ｋｔ、及び暗号化距離データＥKt（ＥKA2（ＨＶ））からハミングベクトルＨＶを計算する（Ｓ２０７）。Ｓ２０７の処理が完了すると、処理は図１９のＳ２０８へと進む。
【０１１７】
処理がＳ２０８へと進んだ場合、判定装置３００は、判定部３０５の機能により、Ｓ２０７で計算したハミングベクトルＨＶの大きさＬｅｎ（ＨＶ）を計算する（Ｓ２０８）。次いで、判定装置３００は、判定部３０５の機能により、Ｌｅｎ（ＨＶ）と予め設定された閾値Ｔｈとを比較し、Ｌｅｎ（ＨＶ）＞Ｔｈであるか否かを判定する（Ｓ２０９）。Ｌｅｎ（ＨＶ）＞Ｔｈである場合、処理はＳ２１１へと進む。一方、Ｌｅｎ（ＨＶ）＞Ｔｈでない場合、処理はＳ２１０へと進む。
【０１１８】
処理がＳ２１０へと進んだ場合、判定装置３００は、判定部３０５の機能により、認証の成功を示す判定結果（認証ＯＫ）を端末装置１００へ送信する（Ｓ２１０）。一方、処理がＳ２１１へと進んだ場合、判定装置３００は、判定部３０５の機能により、認証の失敗を示す判定結果（認証ＮＧ）を端末装置１００へ送信する（Ｓ２１１）。Ｓ２１０又はＳ２１１の処理が完了すると、図１８及び図１９に示した一連の処理は終了する。
【０１１９】
以上、本変形例に係る装置の動作について説明した。
上記のようにフラグ３０１ｂを利用することにより、前回利用した一時鍵Ｋｔが判定装置３００の記憶部３０１に存在し、かつ、今回利用する一時鍵Ｋｔが生成される前の時点で実行される計算装置２００による再送攻撃を防止することができる。
【０１２０】
以上、第２実施形態の一変形例について説明した。
＜４．付記＞
以上説明した実施形態に関し、さらに以下の付記を開示する。
【０１２１】
（付記１）  第１の鍵を保持するコンピュータに、
予め設定された登録データと照合される被認証データを受け付け、
第２の鍵を保持する判定装置との間で、前記被認証データを受け付ける度に生成される一時鍵を共有し、
前記被認証データを前記一時鍵及び前記第１の鍵で二重に暗号化して暗号データを生成し、
前記第１の鍵及び前記第２の鍵で前記登録データを二重に暗号化した暗号化登録データを保持する計算装置に対して前記暗号データを送信する
処理を実行させる、プログラム。
【０１２２】
（付記２）  前記計算装置は、
前記暗号データと前記暗号化登録データとに基づいて前記被認証データと前記登録データとの差異に関する暗号化距離データを生成し、当該暗号化距離データを前記判定装置に送信し、
前記判定装置は、
前記暗号化距離データと前記第２の鍵と前記一時鍵とに基づいて前記被認証データと前記登録データとの差異を求め、求めた差異の大きさに応じて認証の成否を判定する
付記１に記載のプログラム。
【０１２３】
（付記３）  前記暗号データは、前記被認証データに対する前記一時鍵及び前記第１の鍵の排他的論理和であり、
前記暗号化登録データは、前記登録データに対する前記第１の鍵及び前記第２の鍵の排他的論理和であり、
前記暗号化距離データは、前記暗号データと前記暗号化登録データと前記一時鍵との排他的論理和であり、
前記判定装置は、
前記暗号化距離データと前記第２の鍵と前記一時鍵との排他的論理和に基づいて前記差異の大きさを計算し、当該差異の大きさに応じて認証の成否を判定する
付記２に記載のプログラム。
【０１２４】
（付記４）  前記一時鍵は、前記判定装置により生成され、前記判定装置から前記コンピュータへと送信される
付記１〜３のいずれかに記載のプログラム。
【０１２５】
（付記５）  前記一時鍵を生成し、当該一時鍵を前記判定装置に送信する
処理をさらに実行させる、付記１〜３のいずれかに記載のプログラム。
（付記６）  前記一時鍵が新たに生成された場合に第１の値に設定され、且つ当該一時鍵を用いて認証の成否が判定された場合に第２の値に設定されるフラグ情報が、前記第２の値に設定されている場合には前記判定装置による判定の処理が実行されない
付記４に記載のプログラム。
【０１２６】
（付記７）  第１の鍵を保持するコンピュータが、
予め設定された登録データと照合される被認証データを受け付け、
第２の鍵を保持する判定装置との間で、前記被認証データを受け付ける度に生成される一時鍵を共有し、
前記被認証データを前記一時鍵及び前記第１の鍵で二重に暗号化して暗号データを生成し、
前記第１の鍵及び前記第２の鍵で前記登録データを二重に暗号化した暗号化登録データを保持する計算装置に対して前記暗号データを送信する
暗号処理方法。
【０１２７】
（付記８）  第１の鍵を記憶する記憶部と、
予め設定された登録データと照合される被認証データを受け付け、第２の鍵を保持する判定装置との間で、前記被認証データを受け付ける度に生成される一時鍵を共有し、前記被認証データを前記一時鍵及び前記第１の鍵で二重に暗号化して暗号データを生成し、前記第１の鍵及び前記第２の鍵で前記登録データを二重に暗号化した暗号化登録データを保持する計算装置に対して前記暗号データを送信する演算部と、
を有する、暗号処理装置。
【０１２８】
（付記９）  前記計算装置は、
前記暗号データと前記暗号化登録データとに基づいて前記被認証データと前記登録データとの差異に関する暗号化距離データを生成し、当該暗号化距離データを前記判定装置に送信し、
前記判定装置は、
前記暗号化距離データと前記第２の鍵と前記一時鍵とに基づいて前記被認証データと前記登録データとの差異を求め、求めた差異の大きさに応じて認証の成否を判定する
付記８に記載の暗号処理装置。
【０１２９】
（付記１０）  前記暗号データは、前記被認証データに対する前記一時鍵及び前記第１の鍵の排他的論理和であり、
前記暗号化登録データは、前記登録データに対する前記第１の鍵及び前記第２の鍵の排他的論理和であり、
前記暗号化距離データは、前記暗号データと前記暗号化登録データとの排他的論理和であり、
前記判定装置は、
前記暗号化距離データと前記第２の鍵と前記一時鍵との排他的論理和に基づいて前記差異の大きさを計算し、当該差異の大きさに応じて認証の成否を判定する
付記９に記載の暗号処理装置。
【０１３０】
（付記１１）  前記一時鍵は、前記判定装置により生成され、前記判定装置から前記暗号処理装置へと送信される
付記８〜１０のいずれかに記載の暗号処理装置。
【０１３１】
（付記１２）  前記演算部は、前記一時鍵を生成し、当該一時鍵を前記判定装置に送信する
付記８〜１０のいずれかに記載の暗号処理装置。
【０１３２】
（付記１３）  前記一時鍵が新たに生成された場合に第１の値に設定され、且つ当該一時鍵を用いて認証の成否が判定された場合に第２の値に設定されるフラグ情報が、前記第２の値に設定されている場合には前記判定装置による判定の処理が実行されない
付記１１に記載の暗号処理装置。
【０１３３】
（付記１４）  付記１〜６のいずれかに記載のプログラムが記録された、コンピュータにより読取り可能な記録媒体。
（付記１５）  第１の鍵を保持する端末装置、第２の鍵を保持する判定装置、及び、前記第１の鍵と前記第２の鍵と予め設定された登録データとの排他的論理和である暗号化登録データを保持する計算装置を含み、前記端末装置に入力された被認証データと前記登録データとの一致度から認証の成否を判定する認証システムであって、
前記端末装置は、
認証の処理を実行する度に毎回新たに生成される一時鍵を前記判定装置との間で共有し、
前記第１の鍵と前記一時鍵と前記被認証データとの排他的論理和である暗号データを前記計算装置に送信する処理を実行し、
前記計算装置は、
前記暗号データと前記暗号化登録データとの排他的論理和である暗号化距離データを計算し、前記判定装置へと前記暗号化距離データを送信し、
前記判定装置は、
前記第２の鍵と前記一時鍵と前記暗号化距離データとの排他的論理和に基づいて認証の成否を判定する
認証システム。
【０１３４】
（付記１６）  第１の鍵を保持する端末装置、第２の鍵を保持する判定装置、及び、前記第１の鍵と前記第２の鍵と予め設定された登録データとの排他的論理和である暗号化登録データを保持する計算装置を含み、前記端末装置に入力された被認証データと前記登録データとの一致度から認証の成否を判定する認証システムの端末装置であって、
前記第１の鍵を記憶する記憶部と、
認証の処理を実行する度に毎回新たに生成される一時鍵を前記判定装置との間で共有し、前記第１の鍵と前記一時鍵と前記被認証データとの排他的論理和である暗号データを前記計算装置に送信する演算部と、
を有し、
前記計算装置で前記暗号データと前記暗号化登録データとの排他的論理和である暗号化距離データが計算され、
前記計算装置から前記判定装置へと前記暗号化距離データが送信され、
前記判定装置で前記第２の鍵と前記一時鍵と前記暗号化距離データとの排他的論理和に基づいて認証の成否が判定される
端末装置。
【０１３５】
（付記１７）  第１の鍵を保持する端末装置、第２の鍵を保持する判定装置、及び、前記第１の鍵と前記第２の鍵と予め設定された登録データとの排他的論理和である暗号化登録データを保持する計算装置を含み、前記端末装置に入力された被認証データと前記登録データとの一致度から認証の成否を判定する認証システムの計算装置であって、
前記暗号化登録データを記憶する記憶部と、
認証の処理を実行する度に毎回新たに生成され、且つ前記端末装置と前記判定装置との間で共有される一時鍵と、前記第１の鍵と、前記被認証データとの排他的論理和である暗号データを前記端末装置から受信し、前記暗号データと前記暗号化登録データとの排他的論理和である暗号化距離データを計算し、前記判定装置に前記暗号化距離データを送信する演算部と、
を有し、
前記判定装置で前記第２の鍵と前記一時鍵と前記暗号化距離データとの排他的論理和に基づいて認証の成否が判定される
計算装置。
【０１３６】
（付記１８）  第１の鍵を保持する端末装置、第２の鍵を保持する判定装置、及び、前記第１の鍵と前記第２の鍵と予め設定された登録データとの排他的論理和である暗号化登録データを保持する計算装置を含み、前記端末装置に入力された被認証データと前記登録データとの一致度から認証の成否を判定する認証システムの判定装置であって、
前記第２の鍵を記憶する記憶部と、
認証の処理を実行する度に毎回新たに生成される一時鍵を前記端末装置との間で共有した後、前記端末装置で前記第１の鍵と前記一時鍵と前記被認証データとの排他的論理和である暗号データが生成され、当該暗号データが前記端末装置から前記計算装置へと送信され、前記計算装置で前記暗号データと前記暗号化登録データとの排他的論理和である暗号化距離データが計算された場合に、前記計算装置から前記暗号化距離データを取得し、前記第２の鍵と前記一時鍵と前記暗号化距離データとの排他的論理和に基づいて認証の成否を判定する演算部と、
を有する、判定装置。
【符号の説明】
【０１３７】
１０  暗号処理装置
１１  記憶部
１２  演算部
２０  計算装置
３０  判定装置
ＫＡ１  第１の鍵
ＫＡ２  第２の鍵
Ｋｔ  一時鍵
ＭA  被認証データ
ｍA  登録データ
Ｃ１  暗号データ
Ｃ２  暗号化登録データ
Ｃ３  暗号化距離データ
ＨＶ  ハミングベクトル
Ｔｈ  閾値
【図１】
2015192352.tif 000003
【図２】
2015192352.tif 000004
【図３】
2015192352.tif 000005
【図４】
2015192352.tif 000006
【図５】
2015192352.tif 000007
【図６】
2015192352.tif 000008
【図７】
2015192352.tif 000009
【図８】
2015192352.tif 000010
【図９】
2015192352.tif 000011
【図１０】
2015192352.tif 000012
【図１１】
2015192352.tif 000013
【図１２】
2015192352.tif 000014
【図１３】
2015192352.tif 000015
【図１４】
2015192352.tif 000016
【図１５】
2015192352.tif 000017
【図１６】
2015192352.tif 000018
【図１７】
2015192352.tif 000019
【図１８】
2015192352.tif 000020
【図１９】
2015192352.tif 000021