(57)【要約】【課題】暗号文が伝達される宛先において、その暗号文の伝達元を確実に知ることができる暗号技術を提供する。【解決手段】暗号処理装置４０００は、暗号生成部２０００及び暗号変換部３０００を有する。暗号生成部２０００は、暗号生成部２０００に固有であり、かつ、暗号生成部２０００の外部からは読み出し不可能な暗号鍵、又はその暗号鍵に基づいて生成する暗号鍵で、宛先へ伝達するデータを暗号化する。暗号変換部３０００は、暗号生成部２０００によって生成された暗号文を、宛先が保持する暗号鍵又はその暗号鍵に基づいて生成できる暗号鍵で暗号化された暗号文に変換する。暗号変換部３０００は、暗号化に用いる暗号鍵を、宛先に固有の鍵情報とマスタ暗号鍵とから生成する。マスタ暗号鍵は、暗号鍵暗号変換部３０００の外部から読み取り不可能な状態で、暗号変換部３０００の内部に格納されている。【選択図】図１
2014179704.tif 000002
【特許請求の範囲】
【請求項１】
暗号生成部及び暗号変換部を有する暗号処理装置であって、
前記暗号生成部は、
当該暗号生成部に固有の鍵情報であるソース鍵情報を格納するソース鍵情報格納部と、
前記ソース鍵情報に対して一意に対応する暗号鍵であるソース暗号鍵を、当該暗号生成部の外部からは読み取り不可能な状態で格納しているソース暗号鍵格納部と、
宛先へ伝達するデータと、前記宛先が保持している暗号鍵である宛先暗号鍵に対して一意に対応する鍵情報である宛先鍵情報と、を含むソースデータを取得するソースデータ取得部と、
前記ソース鍵情報又は前記ソース鍵情報を一部に含む鍵情報に対して、一意に対応する暗号鍵を用いて、前記ソースデータ及び該暗号鍵に対して一意に対応する鍵情報を暗号化し、ソース暗号文を生成する、ソース暗号文生成部と、を有し、
前記暗号変換部は、
前記ソース暗号文と、該ソース暗号文の暗号化に用いられた暗号鍵に対して一意に対応する鍵情報である生成元鍵情報と、前記宛先鍵情報とを含むソース情報を取得するソース情報取得部と、
鍵情報に基づいて該鍵情報に対して一意に対応する暗号鍵を生成できるマスタ暗号鍵を、当該暗号変換部の外部から読み取り不可能な状態で格納しているマスタ暗号鍵格納部と、
前記マスタ暗号鍵と、前記生成元鍵情報とに基づいて、暗号鍵を生成し、該暗号鍵を用いて前記ソース暗号文を復号し、前記ソースデータ及び前記ソース子鍵情報を算出する、ソース暗号文復号部と、
前記ソース暗号文復号部による前記ソース暗号文の復号結果に基づいて、前記ソース情報の正当性を判断するソース情報正当性判断部と、
前記ソース情報正当性判断部によって、前記ソース情報が正当であると判断された場合のみ、前記マスタ暗号鍵と前記宛先鍵情報とに基づいて暗号鍵を生成し、該暗号鍵を用いて、前記ソース暗号文を復号することで算出したデータを暗号化し、宛先暗号文を生成する宛先暗号文生成部と、を有し、
前記マスタ暗号鍵は、別の暗号鍵からは算出できず、
前記マスタ暗号鍵以外の前記各暗号鍵は、前記マスタ暗号鍵、及び該暗号鍵に対して一意に対応する鍵情報とを用いるか、又は、該暗号鍵に対して一意に対応する鍵情報と該鍵情報に含まれる親鍵情報との差分、及び該親鍵情報に対して一意に対応する暗号鍵を用いなければ、生成できないこと、
を特徴とする暗号処理装置。
【請求項２】
前記ソース情報正当性判断部は、前記生成元鍵情報が、前記ソース暗号文復号部によって算出された、前記ソース暗号文の生成に用いられた暗号鍵に対して一意に対応する鍵情報と一致しない場合に、前記ソース情報が不正であると判断することを特徴とする請求項１に記載の暗号処理装置。
【請求項３】
前記ソース情報正当性判断部は、前記ソース暗号文復号部が前記ソース暗号文を復号できなかった場合に、前記ソース情報が不正であると判断することを特徴とする請求項１又は２に記載の暗号処理装置。
【請求項４】
前記ソース暗号文生成部は、前記ソース暗号鍵格納部に格納されている前記ソース暗号鍵を用いて、前記ソース暗号文の生成を行うこと、
を特徴とする請求項１乃至３いずれか一項に記載の暗号処理装置。
【請求項５】
前記ソース暗号文生成部は、前記ソース鍵情報格納部に格納されている前記ソース鍵情報に基づいて、前記ソース鍵情報を一部に含む鍵情報を生成し、生成した前記鍵情報と前記ソース鍵情報との差分、及び前記ソース暗号鍵格納部に格納されている前記ソース暗号鍵を用いて、前記ソース暗号文の生成に用いる暗号鍵を生成することを特徴とする請求項１乃至３いずれか一項に記載の暗号処理装置。
【請求項６】
前記宛先暗号文生成部は、前記宛先鍵情報と前記マスタ暗号鍵に基づいて、前記宛先鍵情報に対して一意に対応する暗号鍵を生成し、該暗号鍵を用いて、前記宛先暗号文の生成を行うこと、
を特徴とする請求項１乃至５いずれか一項に記載の暗号処理装置。
【請求項７】
前記宛先暗号文生成部は、
前記宛先鍵情報に基づいて、前記宛先鍵情報を一部に含む鍵情報を生成し、
生成した前記鍵情報と前記マスタ暗号鍵を用いて、前記宛先暗号文の生成に用いる暗号鍵を生成し、
前記ソースデータが示す前記宛先鍵情報を、生成した前記鍵情報に変更した後、前記宛先暗号文を生成すること、
を特徴とする請求項１乃至５いずれか一項に記載の暗号処理装置。
【請求項８】
前記暗号生成部は、
当該暗号処理装置の外部から前記宛先暗号文を取得する宛先暗号文取得部と、
前記宛先暗号文取得部によって取得された前記宛先暗号文を、前記ソース暗号鍵格納部に格納されている前記ソース暗号鍵を用いて復号し、前記ソースデータを算出する宛先暗号文復号部と、
を有する請求項６に記載の暗号処理装置。
【請求項９】
前記暗号生成部は、
当該暗号処理装置の外部から、前記宛先暗号文を、該宛先暗号文の暗号化に用いられた暗号鍵に対して一意に対応する鍵情報と共に取得する、宛先暗号文取得部と、
前記宛先暗号文取得部が取得した鍵情報と前記ソース鍵情報との差分、及びソース暗号鍵を用いて暗号鍵を生成し、該暗号鍵を用いて、前記宛先暗号文取得部によって取得された前記宛先暗号文を復号し、前記ソースデータを算出する、宛先暗号文復号部と、
を有する請求項７に記載の暗号処理装置。
【請求項１０】
マスタ暗号鍵保護部を有する請求項１乃至９いずれか一項に記載の暗号処理装置であって、
前記マスタ暗号鍵保護部は、
前記マスタ暗号鍵格納部の状態が正常な場合と、前記マスタ暗号鍵格納部の状態が異常な場合とで、通電状態が異なるマスタ暗号鍵保護回路部と、
前記マスタ暗号鍵保護回路部の通電状態が、前記マスタ暗号鍵格納部の状態が異常であることを示している場合に、前記マスタ暗号鍵格納部から前記マスタ暗号鍵を消去するマスタ暗号鍵消去部と、
を有する暗号処理装置。
【請求項１１】
ソース暗号鍵保護部を有する請求項１乃至１０いずれか一項に記載の暗号処理装置であって、
前記ソース暗号鍵保護部は、
前記ソース暗号鍵格納部の状態が正常な場合と、前記ソース暗号鍵格納部の状態が異常な場合とで、通電状態が異なるソース暗号鍵保護回路部と、
前記ソース暗号鍵保護回路部の通電状態が、前記ソース暗号鍵格納部の状態が異常であることを示している場合に、前記ソース暗号鍵格納部から前記ソース暗号鍵を消去するソース暗号鍵消去部と、
を有する暗号処理装置。
【請求項１２】
前記マスタ暗号鍵格納部は、複数の部分マスタ暗号鍵に変換された前記マスタ暗号鍵を格納しており、
前記複数の部分マスタ暗号鍵のデータサイズの合計値は、前記マスタ暗号鍵のデータサイズよりも大きく、
前記ソース暗号文復号部及び前記宛先暗号文生成部は、前記複数の部分マスタ暗号鍵から前記マスタ暗号鍵を算出することを特徴とする請求項１乃至１１いずれか一項に記載の暗号処理装置。
【請求項１３】
前記ソース暗号鍵格納部は、複数の部分ソース暗号鍵に変換された前記ソース暗号鍵を格納しており、
前記複数の部分ソース暗号鍵のデータサイズの合計値は、前記ソース暗号鍵のデータサイズよりも大きく、
前記ソース暗号文生成部は、前記複数の部分ソース暗号鍵から前記ソース暗号鍵を算出することを特徴とする請求項１乃至１２いずれか一項に記載の暗号処理装置。
【請求項１４】
ソース暗号文と、該ソース暗号文の暗号化に用いられた暗号鍵に対して一意に対応する鍵情報である生成元鍵情報と、宛先鍵情報とを含むソース情報を取得するソース情報取得部と、
鍵情報に基づいて該鍵情報に対して一意に対応する暗号鍵を生成できるマスタ暗号鍵を、当該暗号変換装置の外部から読み取り不可能な状態で格納しているマスタ暗号鍵格納部と、
前記マスタ暗号鍵と、前記生成元鍵情報とに基づいて、暗号鍵を生成し、該暗号鍵を用いて前記ソース暗号文を復号し、ソースデータ及びソース子鍵情報を算出する、ソース暗号文復号部と、
前記ソース暗号文復号部による前記ソース暗号文の復号結果に基づいて、前記ソース情報の正当性を判断するソース情報正当性判断部と、
前記ソース情報正当性判断部によって、前記ソース情報が正当であると判断された場合のみ、前記マスタ暗号鍵と前記宛先鍵情報とに基づいて宛先暗号鍵を生成し、該宛先暗号鍵を用いて、前記ソース暗号文を復号することで算出したデータを暗号化し、宛先暗号文を生成する宛先暗号文生成部と、を有し、
前記マスタ暗号鍵は、別の暗号鍵からは算出できず、
前記マスタ暗号鍵以外の前記各暗号鍵は、前記マスタ暗号鍵、及び該暗号鍵に対して一意に対応する鍵情報とを用いるか、又は、該暗号鍵に対して一意に対応する鍵情報と該鍵情報に含まれる親鍵情報との差分、及び該親鍵情報に対して一意に対応する暗号鍵を用いなければ、生成できないこと、
を特徴とする暗号変換装置。
【請求項１５】
当該暗号生成装置に固有の鍵情報であるソース鍵情報を格納するソース鍵情報格納部と、
前記ソース鍵情報に対して一意に対応する暗号鍵であるソース暗号鍵を、当該暗号生成装置の外部からは読み取り不可能な状態で格納しているソース暗号鍵格納部と、
宛先へ伝達するデータと、前記宛先が保持している暗号鍵である宛先暗号鍵に対して一意に対応する鍵情報である宛先鍵情報と、を含むソースデータを取得するソースデータ取得部と、
前記ソース鍵情報又は前記ソース鍵情報を一部に含む鍵情報に対して、一意に対応する暗号鍵を用いて、前記ソースデータ及び該暗号鍵に対して一意に対応する鍵情報を暗号化し、ソース暗号文を生成する、ソース暗号文生成部と、を有し、
前記マスタ暗号鍵は、別の暗号鍵からは算出できず、
前記マスタ暗号鍵以外の前記各暗号鍵は、前記マスタ暗号鍵、及び該暗号鍵に対して一意に対応する鍵情報とを用いるか、又は、該暗号鍵に対して一意に対応する鍵情報と該鍵情報に含まれる親鍵情報との差分、及び該親鍵情報に対して一意に対応する暗号鍵を用いなければ、生成できないこと、
を特徴とする暗号生成装置。
【請求項１６】
暗号生成部及び暗号変換部を有する暗号処理装置によって実行される暗号処理方法であって、
前記暗号生成部は、
当該暗号生成部に固有の鍵情報であるソース鍵情報を格納するソース鍵情報格納部と、
前記ソース鍵情報に対して一意に対応する暗号鍵であるソース暗号鍵を、当該暗号生成部の外部からは読み取り不可能な状態で格納しているソース暗号鍵格納部と、を有し、
前記暗号変換部は、鍵情報に基づいて該鍵情報に対して一意に対応する暗号鍵を生成できるマスタ暗号鍵を、当該暗号変換部の外部から読み取り不可能な状態で格納しているマスタ暗号鍵格納部を有し、
当該暗号処理方法は、
前記暗号生成部が、宛先へ伝達するデータと、前記宛先が保持している暗号鍵である宛先暗号鍵に対して一意に対応する鍵情報である宛先鍵情報と、を含むソースデータを取得するソースデータ取得ステップと、
前記暗号生成部が、前記ソース鍵情報又は前記ソース鍵情報を一部に含む鍵情報に対して、一意に対応する暗号鍵を用いて、前記ソースデータ及び該暗号鍵に対して一意に対応する鍵情報を暗号化し、ソース暗号文を生成する、ソース暗号文生成ステップと、
前記暗号変換部が、前記ソース暗号文と、該ソース暗号文の暗号化に用いられた暗号鍵に対して一意に対応する鍵情報である生成元鍵情報と、前記宛先鍵情報とを含むソース情報を取得するソース情報取得ステップと、
前記暗号変換部が、前記マスタ暗号鍵と、前記生成元鍵情報とに基づいて、暗号鍵を生成し、該暗号鍵を用いて前記ソース暗号文を復号し、前記ソースデータ及び前記ソース子鍵情報を算出する、ソース暗号文復号ステップと、
前記暗号変換部が、前記ソース暗号文復号ステップによる前記ソース暗号文の復号結果に基づいて、前記ソース情報の正当性を判断するソース情報正当性判断ステップと、
前記暗号変換部が、前記ソース情報正当性判断ステップによって、前記ソース情報が正当であると判断された場合のみ、前記マスタ暗号鍵と前記宛先鍵情報とに基づいて暗号鍵を生成し、該暗号鍵を用いて、前記ソース暗号文を復号することで算出したデータを暗号化し、宛先暗号文を生成する宛先暗号文生成ステップと、を有し、
前記マスタ暗号鍵は、別の暗号鍵からは算出できず、
前記マスタ暗号鍵以外の前記各暗号鍵は、前記マスタ暗号鍵、及び該暗号鍵に対して一意に対応する鍵情報とを用いるか、又は、該暗号鍵に対して一意に対応する鍵情報と該鍵情報に含まれる親鍵情報との差分、及び該親鍵情報に対して一意に対応する暗号鍵を用いなければ、生成できないこと、
を特徴とする暗号処理方法。
【請求項１７】
前記ソース情報正当性判断ステップは、前記生成元鍵情報が、前記ソース暗号文復号ステップによって算出された、前記ソース暗号文の生成に用いられた暗号鍵に対して一意に対応する鍵情報と一致しない場合に、前記ソース情報が不正であると判断することを特徴とする請求項１６に記載の暗号処理方法。
【請求項１８】
前記ソース情報正当性判断ステップは、前記ソース暗号文復号ステップが前記ソース暗号文を復号できなかった場合に、前記ソース情報が不正であると判断することを特徴とする請求項１６又は１７に記載の暗号処理方法。
【請求項１９】
前記ソース暗号文生成ステップは、前記ソース暗号鍵格納部に格納されている前記ソース暗号鍵を用いて、前記ソース暗号文の生成を行うこと、
を特徴とする請求項１６乃至１８いずれか一項に記載の暗号処理方法。
【請求項２０】
前記ソース暗号文生成ステップは、前記ソース鍵情報格納部に格納されている前記ソース鍵情報に基づいて、前記ソース鍵情報を一部に含む鍵情報を生成し、生成した前記鍵情報と前記ソース鍵情報との差分、及び前記ソース暗号鍵格納部に格納されている前記ソース暗号鍵を用いて、前記ソース暗号文の生成に用いる暗号鍵を生成することを特徴とする請求項１６乃至１８いずれか一項に記載の暗号処理方法。
【請求項２１】
前記宛先暗号文生成ステップは、前記宛先鍵情報と前記マスタ暗号鍵に基づいて、前記宛先鍵情報に対して一意に対応する暗号鍵を生成し、該暗号鍵を用いて、前記宛先暗号文の生成を行うこと、
を特徴とする請求項１６乃至２０いずれか一項に記載の暗号処理方法。
【請求項２２】
前記宛先暗号文生成ステップは、
前記宛先鍵情報に基づいて、前記宛先鍵情報を一部に含む鍵情報を生成し、
生成した前記鍵情報と前記マスタ暗号鍵を用いて、前記宛先暗号文の生成に用いる暗号鍵を生成し、
前記ソースデータが示す前記宛先鍵情報を、生成した前記鍵情報に変更した後、前記宛先暗号文を生成すること、
を特徴とする請求項１６乃至２０いずれか一項に記載の暗号処理方法。
【請求項２３】
前記暗号生成部が、前記暗号処理装置の外部から前記宛先暗号文を取得する宛先暗号文取得ステップと、
前記暗号生成部が、前記宛先暗号文取得ステップによって取得された前記宛先暗号文を、前記ソース暗号鍵格納部に格納されている前記ソース暗号鍵を用いて復号し、前記ソースデータを算出する宛先暗号文復号ステップと、
を有する請求項２１に記載の暗号処理方法。
【請求項２４】
前記暗号生成部が、前記暗号処理装置の外部から、前記宛先暗号文を、該宛先暗号文の暗号化に用いられた暗号鍵に対して一意に対応する鍵情報と共に取得する、宛先暗号文取得ステップと、
前記暗号生成部が、前記宛先暗号文取得ステップで取得した鍵情報と前記ソース鍵情報との差分、及びソース暗号鍵を用いて暗号鍵を生成し、該暗号鍵を用いて、前記宛先暗号文取得ステップによって取得された前記宛先暗号文を復号し、前記ソースデータを算出する、宛先暗号文復号ステップと、
を有する請求項２２に記載の暗号処理方法。
【請求項２５】
マスタ暗号鍵保護部を有する前記暗号処理装置によって実行される請求項１６乃至２４いずれか一項に記載の暗号処理方法であって、
前記マスタ暗号鍵保護部は、前記マスタ暗号鍵格納部の状態が正常な場合と、前記マスタ暗号鍵格納部の状態が異常な場合とで、通電状態が異なるマスタ暗号鍵保護回路部を有し、
当該暗号処理方法は、前記マスタ暗号鍵保護部が、前記マスタ暗号鍵保護回路部の通電状態が、前記マスタ暗号鍵格納部の状態が異常であることを示している場合に、前記マスタ暗号鍵格納部から前記マスタ暗号鍵を消去するマスタ暗号鍵消去ステップを有する暗号処理方法。
【請求項２６】
ソース暗号鍵保護部を有する前記暗号処理装置によって実行される請求項１６乃至２５いずれか一項に記載の暗号処理方法であって、
前記ソース暗号鍵保護部は、前記ソース暗号鍵格納部の状態が正常な場合と、前記ソース暗号鍵格納部の状態が異常な場合とで、通電状態が異なるソース暗号鍵保護回路部を有し、
当該暗号処理方法は、前記ソース暗号鍵保護回路部の通電状態が、前記ソース暗号鍵格納部の状態が異常であることを示している場合に、前記ソース暗号鍵格納部から前記ソース暗号鍵を消去するソース暗号鍵消去ステップを有する暗号処理方法。
【請求項２７】
前記マスタ暗号鍵格納部は、複数の部分マスタ暗号鍵に変換された前記マスタ暗号鍵を格納しており、
前記複数の部分マスタ暗号鍵のデータサイズの合計値は、前記マスタ暗号鍵のデータサイズよりも大きく、
前記ソース暗号文復号ステップ及び前記宛先暗号文生成ステップは、前記複数の部分マスタ暗号鍵から前記マスタ暗号鍵を算出することを特徴とする請求項１６乃至２６いずれか一項に記載の暗号処理方法。
【請求項２８】
前記ソース暗号鍵格納部は、複数の部分ソース暗号鍵に変換された前記ソース暗号鍵を格納しており、
前記複数の部分ソース暗号鍵のデータサイズの合計値は、前記ソース暗号鍵のデータサイズよりも大きく、
前記ソース暗号文生成ステップは、前記複数の部分ソース暗号鍵から前記ソース暗号鍵を算出することを特徴とする請求項１６乃至２７いずれか一項に記載の暗号処理方法。
【請求項２９】
暗号変換装置によって実行される暗号変換方法であって、
前記暗号変換装置は、鍵情報に基づいて該鍵情報に対して一意に対応する暗号鍵を生成できるマスタ暗号鍵を、当該暗号変換装置の外部から読み取り不可能な状態で格納しているマスタ暗号鍵格納部を有し、
当該暗号変換方法は、
ソース暗号文と、該ソース暗号文の暗号化に用いられた暗号鍵に対して一意に対応する鍵情報である生成元鍵情報と、宛先鍵情報とを含むソース情報を取得するソース情報取得ステップと、
前記マスタ暗号鍵と、前記生成元鍵情報とに基づいて、暗号鍵を生成し、該暗号鍵を用いて前記ソース暗号文を復号し、ソースデータ及びソース子鍵情報を算出する、ソース暗号文復号ステップと、
前記ソース暗号文復号ステップによる前記ソース暗号文の復号結果に基づいて、前記ソース情報の正当性を判断するソース情報正当性判断ステップと、
前記ソース情報正当性判断ステップによって、前記ソース情報が正当であると判断された場合のみ、前記マスタ暗号鍵と前記宛先鍵情報とに基づいて宛先暗号鍵を生成し、該宛先暗号鍵を用いて、前記ソース暗号文を復号することで算出したデータを暗号化し、宛先暗号文を生成する宛先暗号文生成ステップと、を有し、
前記マスタ暗号鍵は、別の暗号鍵からは算出できず、
前記マスタ暗号鍵以外の前記各暗号鍵は、前記マスタ暗号鍵、及び該暗号鍵に対して一意に対応する鍵情報とを用いるか、又は、該暗号鍵に対して一意に対応する鍵情報と該鍵情報に含まれる親鍵情報との差分、及び該親鍵情報に対して一意に対応する暗号鍵を用いなければ、生成できないこと、
を特徴とする暗号変換方法。
【請求項３０】
暗号生成装置によって実行される暗号生成方法であって、
前記暗号生成装置は、
当該暗号生成装置に固有の鍵情報であるソース鍵情報を格納するソース鍵情報格納部と、
前記ソース鍵情報に対して一意に対応する暗号鍵であるソース暗号鍵を、当該暗号生成装置の外部からは読み取り不可能な状態で格納しているソース暗号鍵格納部と、を有し、
当該暗号生成方法は、
宛先へ伝達するデータと、前記宛先が保持している暗号鍵である宛先暗号鍵に対して一意に対応する鍵情報である宛先鍵情報と、を含むソースデータを取得するソースデータ取得ステップと、
前記ソース鍵情報又は前記ソース鍵情報を一部に含む鍵情報に対して、一意に対応する暗号鍵を用いて、前記ソースデータ及び該暗号鍵に対して一意に対応する鍵情報を暗号化し、ソース暗号文を生成する、ソース暗号文生成ステップと、を有し、
前記マスタ暗号鍵は、別の暗号鍵からは算出できず、
前記マスタ暗号鍵以外の前記各暗号鍵は、前記マスタ暗号鍵、及び該暗号鍵に対して一意に対応する鍵情報とを用いるか、又は、該暗号鍵に対して一意に対応する鍵情報と該鍵情報に含まれる親鍵情報との差分、及び該親鍵情報に対して一意に対応する暗号鍵を用いなければ、生成できないこと、
を特徴とする暗号生成方法。
【請求項３１】
請求項８又は９に記載の暗号処理装置である、第１暗号処理装置及び第２暗号処理装置を有する暗号処理システムにおいて実行される認証方法であって、
前記第２暗号処理装置が、前記第１暗号処理装置に格納されている前記ソース鍵情報を前記宛先鍵情報として含む前記ソースデータを取得するステップと、
前記第２暗号処理装置が、前記第２暗号処理装置が有する前記ソース鍵情報格納部に格納されている前記ソース鍵情報又は該ソース鍵情報を一部に含む鍵情報に対して一意に対応する暗号鍵を用いて、該暗号鍵と一意に対応する鍵情報及び前記ソースデータを暗号化し、前記ソース暗号文を生成するステップと、
前記第２暗号処理装置が、前記ソース暗号文と、該ソース暗号文の生成に用いた暗号鍵と一意に対応する鍵情報である前記生成元鍵情報と、前記宛先鍵情報とを含む前記ソース情報を取得するステップと、
前記第２暗号処理装置が、前記マスタ暗号鍵と前記生成元鍵情報とに基づいて暗号鍵を生成し、該暗号鍵を用いて、前記ソース暗号文を復号するステップと、
前記第２暗号処理装置が、前記ソース暗号文の復号結果に基づいて、前記ソース情報の正当性を判断するステップと、
前記第２暗号処理装置が、前記マスタ暗号鍵と前記宛先鍵情報とに基づいて暗号鍵を生成し、該暗号鍵を用いて、前記ソースデータを暗号化し、前記宛先暗号文を生成するステップと、
前記第１暗号処理装置が、前記第２暗号処理装置から前記宛先暗号文を取得するステップと、
前記第１暗号処理装置が、該第１暗号処理装置に格納されている前記ソース暗号鍵を用いて前記宛先暗号文を復号し、前記ソースデータを算出するステップと、
前記第１暗号処理装置が、前記ソースデータを正しく算出できた場合に、前記第２暗号処理装置の認証結果を、成功とするステップと、
を有する認証方法。
【請求項３２】
暗号生成装置及び暗号変換装置を有する暗号処理システムを制御する暗号処理プログラムであって、
前記暗号生成装置は、
当該暗号生成装置に固有の鍵情報であるソース鍵情報を格納するソース鍵情報格納部と、
前記ソース鍵情報に対して一意に対応する暗号鍵であるソース暗号鍵を、当該暗号生成装置の外部からは読み取り不可能な状態で格納しているソース暗号鍵格納部と、を有し、
前記暗号変換装置は、鍵情報に基づいて該鍵情報に対して一意に対応する暗号鍵を生成できるマスタ暗号鍵を、当該暗号変換装置の外部から読み取り不可能な状態で格納しているマスタ暗号鍵格納部を有し、
当該プログラムは、
前記暗号生成装置に、
宛先へ伝達するデータと、前記宛先が保持している暗号鍵である宛先暗号鍵に対して一意に対応する鍵情報である宛先鍵情報と、を含むソースデータを取得するソースデータ取得機能と、
前記ソース鍵情報又は前記ソース鍵情報を一部に含む鍵情報に対して、一意に対応する暗号鍵を用いて、前記ソースデータ及び該暗号鍵に対して一意に対応する鍵情報を暗号化し、ソース暗号文を生成する、ソース暗号文生成機能と、を持たせ、
前記暗号変換装置に、
前記ソース暗号文と、該ソース暗号文の暗号化に用いられた暗号鍵に対して一意に対応する鍵情報である生成元鍵情報と、前記宛先鍵情報とを含むソース情報を取得するソース情報取得機能と、
前記マスタ暗号鍵と、前記生成元鍵情報とに基づいて、暗号鍵を生成し、該暗号鍵を用いて前記ソース暗号文を復号し、前記ソースデータ及び前記ソース子鍵情報を算出する、ソース暗号文復号機能と、
前記ソース暗号文復号機能による前記ソース暗号文の復号結果に基づいて、前記ソース情報の正当性を判断するソース情報正当性判断機能と、
前記ソース情報正当性判断機能によって、前記ソース情報が正当であると判断された場合のみ、前記マスタ暗号鍵と前記宛先鍵情報とに基づいて暗号鍵を生成し、該暗号鍵を用いて、前記ソース暗号文を復号することで算出したデータを暗号化し、宛先暗号文を生成する宛先暗号文生成機能と、を持たせ、
前記マスタ暗号鍵は、別の暗号鍵からは算出できず、
前記マスタ暗号鍵以外の前記各暗号鍵は、前記マスタ暗号鍵、及び該暗号鍵に対して一意に対応する鍵情報とを用いるか、又は、該暗号鍵に対して一意に対応する鍵情報と該鍵情報に含まれる親鍵情報との差分、及び該親鍵情報に対して一意に対応する暗号鍵を用いなければ、生成できないこと、
を特徴とする暗号処理プログラム。
【請求項３３】
前記ソース情報正当性判断機能は、前記生成元鍵情報が、前記ソース暗号文復号機能によって算出された、前記ソース暗号文の生成に用いられた暗号鍵に対して一意に対応する鍵情報と一致しない場合に、前記ソース情報が不正であると判断することを特徴とする請求項３２に記載の暗号処理プログラム。
【請求項３４】
前記ソース情報正当性判断機能は、前記ソース暗号文復号機能が前記ソース暗号文を復号できなかった場合に、前記ソース情報が不正であると判断することを特徴とする請求項３２又は３３に記載の暗号処理プログラム。
【請求項３５】
前記ソース暗号文生成機能は、前記ソース暗号鍵格納部に格納されている前記ソース暗号鍵を用いて、前記ソース暗号文の生成を行うこと、
を特徴とする請求項３２乃至３４いずれか一項に記載の暗号処理プログラム。
【請求項３６】
前記ソース暗号文生成機能は、前記ソース鍵情報格納部に格納されている前記ソース鍵情報に基づいて、前記ソース鍵情報を一部に含む鍵情報を生成し、生成した前記鍵情報と前記ソース鍵情報との差分、及び前記ソース暗号鍵格納部に格納されている前記ソース暗号鍵を用いて、前記ソース暗号文の生成に用いる暗号鍵を生成することを特徴とする請求項３２乃至３４いずれか一項に記載の暗号処理プログラム。
【請求項３７】
前記宛先暗号文生成機能は、前記宛先鍵情報と前記マスタ暗号鍵に基づいて、前記宛先鍵情報に対して一意に対応する暗号鍵を生成し、該暗号鍵を用いて、前記宛先暗号文の生成を行うこと、
を特徴とする請求項３２乃至３６いずれか一項に記載の暗号処理プログラム。
【請求項３８】
前記宛先暗号文生成機能は、
前記宛先鍵情報に基づいて、前記宛先鍵情報を一部に含む鍵情報を生成し、
生成した前記鍵情報と前記マスタ暗号鍵を用いて、前記宛先暗号文の生成に用いる暗号鍵を生成し、
前記ソースデータが示す前記宛先鍵情報を、生成した前記鍵情報に変更した後、前記宛先暗号文を生成すること、
を特徴とする請求項３２乃至３６いずれか一項に記載の暗号処理プログラム。
【請求項３９】
前記暗号生成装置に、
前記暗号処理システムの外部から前記宛先暗号文を取得する宛先暗号文取得機能と、
前記宛先暗号文取得機能によって取得された前記宛先暗号文を、前記ソース暗号鍵格納部に格納されている前記ソース暗号鍵を用いて復号し、前記ソースデータを算出する宛先暗号文復号機能と、
を持たせる請求項３７に記載の暗号処理プログラム。
【請求項４０】
前記暗号生成装置に、
前記暗号処理システムの外部から、前記宛先暗号文を、該宛先暗号文の暗号化に用いられた暗号鍵に対して一意に対応する鍵情報と共に取得する、宛先暗号文取得機能と、
前記暗号生成装置が、前記宛先暗号文取得機能で取得した鍵情報と前記ソース鍵情報との差分、及びソース暗号鍵を用いて暗号鍵を生成し、該暗号鍵を用いて、前記宛先暗号文取得部によって取得された前記宛先暗号文を復号し、前記ソースデータを算出する、宛先暗号文復号機能と、
を持たせる請求項３８に記載の暗号処理プログラム。
【請求項４１】
マスタ暗号鍵保護装置を有する前記暗号処理システムを制御する請求項３２乃至４０いずれか一項に記載の暗号処理プログラムであって、
前記マスタ暗号鍵保護装置は、前記マスタ暗号鍵格納部の状態が正常な場合と、前記マスタ暗号鍵格納部の状態が異常な場合とで、通電状態が異なるマスタ暗号鍵保護回路部を有し、
当該暗号処理プログラムは、前記マスタ暗号鍵保護装置に、前記マスタ暗号鍵保護回路部の通電状態が、前記マスタ暗号鍵格納部の状態が異常であることを示している場合に、前記マスタ暗号鍵格納部から前記マスタ暗号鍵を消去するマスタ暗号鍵消去機能を持たせる暗号処理プログラム。
【請求項４２】
ソース暗号鍵保護装置を有する前記暗号処理システムを制御する請求項３２乃至４１いずれか一項に記載の暗号処理プログラムであって、
前記ソース暗号鍵保護装置は、前記ソース暗号鍵格納部の状態が正常な場合と、前記ソース暗号鍵格納部の状態が異常な場合とで、通電状態が異なるソース暗号鍵保護回路部を有し、
当該暗号処理プログラムは、前記ソース暗号鍵保護装置に、前記ソース暗号鍵保護回路部の通電状態が、前記ソース暗号鍵格納部の状態が異常であることを示している場合に、前記ソース暗号鍵格納部から前記ソース暗号鍵を消去するソース暗号鍵消去機能を持たせる暗号処理プログラム。
【請求項４３】
前記マスタ暗号鍵格納部は、複数の部分マスタ暗号鍵に変換された前記マスタ暗号鍵を格納しており、
前記複数の部分マスタ暗号鍵のデータサイズの合計値は、前記マスタ暗号鍵のデータサイズよりも大きく、
前記ソース暗号文復号機能及び前記宛先暗号文生成機能は、前記複数の部分マスタ暗号鍵から前記マスタ暗号鍵を算出することを特徴とする請求項３２乃至４２いずれか一項に記載の暗号処理プログラム。
【請求項４４】
前記ソース暗号鍵格納部は、複数の部分ソース暗号鍵に変換された前記ソース暗号鍵を格納しており、
前記複数の部分ソース暗号鍵のデータサイズの合計値は、前記ソース暗号鍵のデータサイズよりも大きく、
前記ソース暗号文生成機能は、前記複数の部分ソース暗号鍵から前記ソース暗号鍵を算出することを特徴とする請求項３２乃至４３いずれか一項に記載の暗号処理プログラム。
【請求項４５】
暗号変換装置を制御する暗号変換プログラムであって、
前記暗号変換装置は、鍵情報に基づいて該鍵情報に対して一意に対応する暗号鍵を生成できるマスタ暗号鍵を、当該暗号変換装置の外部から読み取り不可能な状態で格納しているマスタ暗号鍵格納部を有し、
当該暗号変換プログラムは、前記暗号変換装置に、
ソース暗号文と、該ソース暗号文の暗号化に用いられた暗号鍵に対して一意に対応する鍵情報である生成元鍵情報と、宛先鍵情報とを含むソース情報を取得するソース情報取得機能と、
前記マスタ暗号鍵と、前記生成元鍵情報とに基づいて、暗号鍵を生成し、該暗号鍵を用いて前記ソース暗号文を復号し、ソースデータ及びソース子鍵情報を算出する、ソース暗号文復号機能と、
前記ソース暗号文復号機能による前記ソース暗号文の復号結果に基づいて、前記ソース情報の正当性を判断するソース情報正当性判断機能と、
前記ソース情報正当性判断機能によって、前記ソース情報が正当であると判断された場合のみ、前記マスタ暗号鍵と前記宛先鍵情報とに基づいて宛先暗号鍵を生成し、該宛先暗号鍵を用いて、前記ソース暗号文を復号することで算出したデータを暗号化し、宛先暗号文を生成する宛先暗号文生成機能と、を持たせ、
前記マスタ暗号鍵は、別の暗号鍵からは算出できず、
前記マスタ暗号鍵以外の前記各暗号鍵は、前記マスタ暗号鍵、及び該暗号鍵に対して一意に対応する鍵情報とを用いるか、又は、該暗号鍵に対して一意に対応する鍵情報と該鍵情報に含まれる親鍵情報との差分、及び該親鍵情報に対して一意に対応する暗号鍵を用いなければ、生成できないこと、
を特徴とする暗号変換プログラム。
【請求項４６】
暗号生成装置を制御する暗号生成プログラムであって、
前記暗号生成装置は、
当該暗号生成装置に固有の鍵情報であるソース鍵情報を格納するソース鍵情報格納部と、
前記ソース鍵情報に対して一意に対応する暗号鍵であるソース暗号鍵を、当該暗号生成装置の外部からは読み取り不可能な状態で格納しているソース暗号鍵格納部と、を有し、
当該暗号生成プログラムは、前記暗号生成装置に、
宛先へ伝達するデータと、前記宛先が保持している暗号鍵である宛先暗号鍵に対して一意に対応する鍵情報である宛先鍵情報と、を含むソースデータを取得するソースデータ取得機能と、
前記ソース鍵情報又は前記ソース鍵情報を一部に含む鍵情報に対して、一意に対応する暗号鍵を用いて、前記ソースデータ及び該暗号鍵に対して一意に対応する鍵情報を暗号化し、ソース暗号文を生成する、ソース暗号文生成機能と、を持たせ、
前記マスタ暗号鍵は、別の暗号鍵からは算出できず、
前記マスタ暗号鍵以外の前記各暗号鍵は、前記マスタ暗号鍵、及び該暗号鍵に対して一意に対応する鍵情報とを用いるか、又は、該暗号鍵に対して一意に対応する鍵情報と該鍵情報に含まれる親鍵情報との差分、及び該親鍵情報に対して一意に対応する暗号鍵を用いなければ、生成できないこと、
を特徴とする暗号生成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、暗号技術に関する。
【背景技術】
【０００２】
データの宛先へデータを安全に伝達するために、データの暗号化が行われる。ここで、「データが安全に伝達される」とは、情報の宛先以外の第３者によって、伝達するデータが読み取られないことを意味する。ソースデータの暗号化は、暗号鍵を用いて行われる。ここで、暗号鍵を用いて暗号化されたソースデータは、暗号文と呼ばれる。
【０００３】
暗号化に用いられる暗号方式は、暗号化と復号に用いる暗号鍵の違いという観点から、共通鍵暗号方式と公開鍵暗号方式に大別することができる。共通鍵暗号方式は、データの暗号化と復号に共通の暗号鍵を用いる方式である。一方、公開鍵暗号方式は、データの暗号化と復号に異なる暗号鍵を用いる方式である。共通鍵暗号方式は、公開鍵暗号方式と比べ、暗号化及び復号にかかる時間が短い。また、公開鍵暗号方式は、中間者攻撃を原理的に排除できないため、第３者によるなりすましを原理的に排除できないという問題がある。
【０００４】
共通鍵暗号方式に基づいてデータの伝達元と宛先の間で暗号文をやりとりするためには、データの伝達元と宛先の双方が、同じ暗号鍵を保持する必要がある。ここで、この暗号鍵は、伝達元及び宛先以外の第３者に取得されない必要がある。第３者がこの暗号鍵を取得してしまうと、第３者は、この暗号鍵を用いて暗号文を復号できてしまうためである。
【０００５】
そこで、データの伝達元と宛先において、同じ暗号鍵を安全な方法で保持する技術が求められている。例えば特許文献１は、情報の伝達元である車載器と、宛先であるサーバとの間で、暗号鍵を通知することなく、共通の暗号鍵を保持する技術を開示している。車載器は、車載器の位置情報をサーバに送信する。そして、車載器とサーバのそれぞれは、この位置情報を用いて、共通の暗号鍵を生成する。特許文献１は、第３者による暗号鍵の盗聴を防ぐために、位置情報を複数記録し、暗号鍵の生成に利用する位置情報を、車載器とサーバとの間で予め取り決めたパターンで変更する方法も開示している。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００８−２２８０５１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
既存の暗号処理装置で用いられる暗号方式は、第３者によるなりすましを防ぐことができない。既存の暗号処理装置で用いられる暗号方式は、公開鍵暗号方式、秘密鍵暗号方式共に、例えば暗号処理装置が遠隔操作ウイルスやマルウエアに感染することによって、暗号鍵が第３者によって取得されてしまう恐れがある。例えば特許文献１に示す方法の場合、第３者は、車載器やサーバをマルウエアに感染させることで、車載器やサーバによって生成された暗号鍵を取得できてしまう。また、特許文献１に示す方法の場合、第３者は、車載器がサーバへ送信した位置情報を全て盗聴し、盗聴した位置情報を総当たりで利用すれば、車載器が生成する暗号鍵と同じ暗号鍵を生成できてしまう。そして、暗号鍵を取得又は生成した第３者は、その暗号鍵の持ち主になりすまして暗号文の生成し、宛先へ伝達することができてしまう。
【０００８】
本発明は、以上の課題を鑑みてなされたものである。本発明の目的は、暗号文が伝達される宛先において、その暗号文の伝達元を確実に知ることができる暗号技術を提供することである。
【課題を解決するための手段】
【０００９】
本発明が提供する暗号処理装置は、暗号生成部及び暗号変換部を有する。前記暗号生成部は、当該暗号生成部に固有の鍵情報であるソース鍵情報を格納するソース鍵情報格納部と、前記ソース鍵情報に対して一意に対応する暗号鍵であるソース暗号鍵を、当該暗号生成部の外部からは読み取り不可能な状態で格納しているソース暗号鍵格納部と、宛先へ伝達するデータと、前記宛先が保持している暗号鍵である宛先暗号鍵に対して一意に対応する鍵情報である宛先鍵情報と、を含むソースデータを取得するソースデータ取得部と、前記ソース鍵情報又は前記ソース鍵情報を一部に含む鍵情報に対して、一意に対応する暗号鍵を用いて、前記ソースデータ及び該暗号鍵に対して一意に対応する鍵情報を暗号化し、ソース暗号文を生成する、ソース暗号文生成部を有する。前記暗号変換部は、前記ソース暗号文と、該ソース暗号文の暗号化に用いられた暗号鍵に対して一意に対応する鍵情報である生成元鍵情報と、前記宛先鍵情報とを含むソース情報を取得するソース情報取得部と、鍵情報に基づいて該鍵情報に対して一意に対応する暗号鍵を生成できるマスタ暗号鍵を、当該暗号変換部の外部から読み取り不可能な状態で格納しているマスタ暗号鍵格納部と、前記マスタ暗号鍵と、前記生成元鍵情報とに基づいて、暗号鍵を生成し、該暗号鍵を用いて前記ソース暗号文を復号し、前記ソースデータ及び前記ソース子鍵情報を算出する、ソース暗号文復号部と、前記ソース暗号文復号部による前記ソース暗号文の復号結果に基づいて、前記ソース情報の正当性を判断するソース情報正当性判断部と、前記ソース情報正当性判断部によって、前記ソース情報が正当であると判断された場合のみ、前記マスタ暗号鍵と前記宛先鍵情報とに基づいて暗号鍵を生成し、該暗号鍵を用いて、前記ソース暗号文を復号することで算出したデータを暗号化し、宛先暗号文を生成する宛先暗号文生成部を有する。前記マスタ暗号鍵は、別の暗号鍵からは算出できない。前記マスタ暗号鍵以外の前記各暗号鍵は、前記マスタ暗号鍵、及び該暗号鍵に対して一意に対応する鍵情報とを用いるか、又は、該暗号鍵に対して一意に対応する鍵情報と該鍵情報に含まれる親鍵情報との差分、及び該親鍵情報に対して一意に対応する暗号鍵を用いなければ、生成できない。
【００１０】
本発明が提供する暗号処理プログラムは、暗号生成装置及び暗号変換装置を有する暗号処理システムを制御するプログラムである。暗号処理プログラムは、暗号生成装置に、本発明が提供する暗号処理装置の暗号生成部が有する機能を持たせる。また、暗号処理プログラムは、暗号変換装置に、本発明が提供する暗号処理装置の暗号変換部が有する機能を持たせる。
【００１１】
本発明が提供する暗号処理方法は、暗号生成部及び暗号変換部を有する暗号処理装置によって実行される。前記暗号生成部は、当該暗号生成部に固有の鍵情報であるソース鍵情報を格納するソース鍵情報格納部と、前記ソース鍵情報に対して一意に対応する暗号鍵であるソース暗号鍵を、当該暗号生成部の外部からは読み取り不可能な状態で格納しているソース暗号鍵格納部を有する。前記暗号変換部は、鍵情報に基づいて該鍵情報に対して一意に対応する暗号鍵を生成できるマスタ暗号鍵を、当該暗号変換部の外部から読み取り不可能な状態で格納しているマスタ暗号鍵格納部を有する。当該暗号処理方法は、前記暗号生成部が、前記宛先へ伝達するデータと、宛先が保持している暗号鍵である宛先暗号鍵に対して一意に対応する鍵情報である宛先鍵情報と、を含むソースデータを取得するソースデータ取得ステップと、前記暗号生成部が、前記ソース鍵情報又は前記ソース鍵情報を一部に含む鍵情報に対して、一意に対応する暗号鍵を用いて、前記ソースデータ及び該暗号鍵に対して一意に対応する鍵情報を暗号化し、ソース暗号文を生成する、ソース暗号文生成ステップと、前記暗号変換部が、前記ソース暗号文と、該ソース暗号文の暗号化に用いられた暗号鍵に対して一意に対応する鍵情報である生成元鍵情報と、前記宛先鍵情報とを含むソース情報を取得するソース情報取得ステップと、前記暗号変換部が、前記マスタ暗号鍵と、前記生成元鍵情報とに基づいて、暗号鍵を生成し、該暗号鍵を用いて前記ソース暗号文を復号し、前記ソースデータ及び前記ソース子鍵情報を算出する、ソース暗号文復号ステップと、前記暗号変換部が、前記ソース暗号文復号ステップによる前記ソース暗号文の復号結果に基づいて、前記ソース情報の正当性を判断するソース情報正当性判断ステップと、前記暗号変換部が、前記ソース情報正当性判断ステップによって、前記ソース情報が正当であると判断された場合のみ、前記マスタ暗号鍵と前記宛先鍵情報とに基づいて暗号鍵を生成し、該暗号鍵を用いて、前記ソース暗号文を復号することで算出したデータを暗号化し、宛先暗号文を生成する宛先暗号文生成ステップを有する。前記マスタ暗号鍵は、別の暗号鍵からは算出できない。前記マスタ暗号鍵以外の前記各暗号鍵は、前記マスタ暗号鍵、及び該暗号鍵に対して一意に対応する鍵情報とを用いるか、又は、該暗号鍵に対して一意に対応する鍵情報と該鍵情報に含まれる親鍵情報との差分、及び該親鍵情報に対して一意に対応する暗号鍵を用いなければ、生成できない。
【００１２】
本発明が提供する暗号変換装置は、ソース暗号文と、該ソース暗号文の暗号化に用いられた暗号鍵に対して一意に対応する鍵情報である生成元鍵情報と、宛先鍵情報とを含むソース情報を取得するソース情報取得部と、鍵情報に基づいて該鍵情報に対して一意に対応する暗号鍵を生成できるマスタ暗号鍵を、当該暗号変換装置の外部から読み取り不可能な状態で格納しているマスタ暗号鍵格納部と、前記マスタ暗号鍵と、前記生成元鍵情報とに基づいて、暗号鍵を生成し、該暗号鍵を用いて前記ソース暗号文を復号し、ソースデータ及びソース子鍵情報を算出する、ソース暗号文復号部と、前記ソース暗号文復号部による前記ソース暗号文の復号結果に基づいて、前記ソース情報の正当性を判断するソース情報正当性判断部と、前記ソース情報正当性判断部によって、前記ソース情報が正当であると判断された場合のみ、前記マスタ暗号鍵と前記宛先鍵情報とに基づいて宛先暗号鍵を生成し、該宛先暗号鍵を用いて、前記ソース暗号文を復号することで算出したデータを暗号化し、宛先暗号文を生成する宛先暗号文生成部を有する前記マスタ暗号鍵は、別の暗号鍵からは算出できない。前記マスタ暗号鍵以外の前記各暗号鍵は、前記マスタ暗号鍵、及び該暗号鍵に対して一意に対応する鍵情報とを用いるか、又は、該暗号鍵に対して一意に対応する鍵情報と該鍵情報に含まれる親鍵情報との差分、及び該親鍵情報に対して一意に対応する暗号鍵を用いなければ、生成できない。
【００１３】
本発明が提供する暗号変換プログラムは、暗号変換装置を制御するプログラムである。当該暗号変換プログラムは、暗号変換装置に、本発明が提供する暗号変換装置が有する機能を持たせる。
【００１４】
本発明が提供する暗号変換方法は、暗号変換装置によって実行される。前記暗号変換装置は、鍵情報に基づいて該鍵情報に対して一意に対応する暗号鍵を生成できるマスタ暗号鍵を、当該暗号変換部の外部から読み取り不可能な状態で格納しているマスタ暗号鍵格納部を有する。当該暗号変換方法は、ソース暗号文と、該ソース暗号文の暗号化に用いられた暗号鍵に対して一意に対応する鍵情報である生成元鍵情報と、宛先鍵情報とを含むソース情報を取得するソース情報取得ステップと、前記マスタ暗号鍵と、前記生成元鍵情報とに基づいて、暗号鍵を生成し、該暗号鍵を用いて前記ソース暗号文を復号し、ソースデータ及びソース子鍵情報を算出する、ソース暗号文復号ステップと、前記ソース暗号文復号ステップによる前記ソース暗号文の復号結果に基づいて、前記ソース情報の正当性を判断するソース情報正当性判断ステップと、前記ソース情報正当性判断ステップによって、前記ソース情報が正当であると判断された場合のみ、前記マスタ暗号鍵と前記宛先鍵情報とに基づいて宛先暗号鍵を生成し、該宛先暗号鍵を用いて、前記ソース暗号文を復号することで算出したデータを暗号化し、宛先暗号文を生成する宛先暗号文生成ステップを有する。前記マスタ暗号鍵は、別の暗号鍵からは算出できない。前記マスタ暗号鍵以外の前記各暗号鍵は、前記マスタ暗号鍵、及び該暗号鍵に対して一意に対応する鍵情報とを用いるか、又は、該暗号鍵に対して一意に対応する鍵情報と該鍵情報に含まれる親鍵情報との差分、及び該親鍵情報に対して一意に対応する暗号鍵を用いなければ、生成できない。
【００１５】
本発明が提供する暗号生成装置は、当該暗号生成装置に固有の鍵情報であるソース鍵情報を格納するソース鍵情報格納部と、前記ソース鍵情報に対して一意に対応する暗号鍵であるソース暗号鍵を、当該暗号生成装置の外部からは読み取り不可能な状態で格納しているソース暗号鍵格納部と、宛先へ伝達するデータと、前記宛先が保持している暗号鍵である宛先暗号鍵に対して一意に対応する鍵情報である宛先鍵情報と、を含むソースデータを取得するソースデータ取得部と、前記ソース鍵情報又は前記ソース鍵情報を一部に含む鍵情報に対して、一意に対応する暗号鍵を用いて、前記ソースデータ及び該暗号鍵に対して一意に対応する鍵情報を暗号化し、ソース暗号文を生成する、ソース暗号文生成部を有する。前記マスタ暗号鍵は、別の暗号鍵からは算出できない。前記マスタ暗号鍵以外の前記各暗号鍵は、前記マスタ暗号鍵、及び該暗号鍵に対して一意に対応する鍵情報とを用いるか、又は、該暗号鍵に対して一意に対応する鍵情報と該鍵情報に含まれる親鍵情報との差分、及び該親鍵情報に対して一意に対応する暗号鍵を用いなければ、生成できない。
【００１６】
本発明が提供する暗号生成プログラムは、暗号生成装置を制御するプログラムである。当該暗号生成プログラムは、暗号生成装置に、本発明が提供する暗号生成装置が有する機能を持たせる。
【００１７】
本発明が提供する暗号生成方法は、暗号生成装置によって実行される。前記暗号生成装置は、当該暗号生成装置に固有の鍵情報であるソース鍵情報を格納するソース鍵情報格納部と、前記ソース鍵情報に対して一意に対応する暗号鍵であるソース暗号鍵を、当該暗号生成装置の外部からは読み取り不可能な状態で格納しているソース暗号鍵格納部を有する。当該暗号生成方法は、宛先へ伝達するデータと、前記宛先が保持している暗号鍵である宛先暗号鍵に対して一意に対応する鍵情報である宛先鍵情報と、を含むソースデータを取得するソースデータ取得ステップと、前記ソース鍵情報又は前記ソース鍵情報を一部に含む鍵情報に対して、一意に対応する暗号鍵を用いて、前記ソースデータ及び該暗号鍵に対して一意に対応する鍵情報を暗号化し、ソース暗号文を生成する、ソース暗号文生成ステップを有する。前記マスタ暗号鍵は、別の暗号鍵からは算出できない。前記マスタ暗号鍵以外の前記各暗号鍵は、前記マスタ暗号鍵、及び該暗号鍵に対して一意に対応する鍵情報とを用いるか、又は、該暗号鍵に対して一意に対応する鍵情報と該鍵情報に含まれる親鍵情報との差分、及び該親鍵情報に対して一意に対応する暗号鍵を用いなければ、生成できない。
【発明の効果】
【００１８】
本発明によれば、暗号文が伝達される宛先において、その暗号文の正しい伝達元を確実に知ることができる暗号技術が提供される。
【図面の簡単な説明】
【００１９】
【図１】実施形態１に係る暗号処理装置を示すブロック図である。
【図２】鍵情報を例示する第１の図である。
【図３】鍵情報を例示する第２の図である。
【図４】包含関係が成立する鍵情報を例示する図である。
【図５】再配置暗号方式の具体例を示す図である。
【図６】暗号生成部によって実行される処理の流れを例示するフローチャートである。
【図７】暗号変換部によって実行される処理の流れを例示するフローチャートである。
【図８】実施形態２の暗号処理装置を示すブロック図である。
【図９】実施形態２における暗号処理装置による処理の流れを例示するフローチャートである。
【図１０】実施形態４の暗号処理装置を示すブロック図である。
【図１１】マスタ暗号鍵保護部による処理の流れを例示するフローチャートである。
【図１２】実施形態５の暗号処理装置を示すブロック図である。
【図１３】ソース暗号鍵保護部による処理の流れを示すフローチャートである。
【図１４】各実施形態及び実施例で用いられる用語及びその説明をまとめた図である。
【図１５】実施形態３における暗号処理装置による処理の流れを例示するフローチャートである。
【発明を実施するための形態】
【００２０】
以下、本発明の実施の形態について、図面を用いて説明する。尚、すべての図面において、同様な構成要素には同様の符号を付し、適宜説明を省略する。また、各ブロック図において、矢印の流れは、情報の流れを示している。さらに、各ブロック図において、各ブロックは、ハードウエア単位の構成ではなく、機能単位の構成を示している。
【００２１】
図１４に、各実施形態及び実施例で用いられる用語及びその説明をまとめて記載する。各用語の説明は、各実施形態及び実施例の説明の中でも記載されている。
【００２２】
[実施形態１]
図１は、実施形態１に係る暗号処理装置４０００を示すブロック図である。
【００２３】
暗号処理装置４０００は、鍵情報と暗号鍵を扱う。以下、鍵情報と暗号鍵に関する前提条件について説明する。
【００２４】
＜鍵情報に関する前提条件＞
鍵情報は、暗号鍵を生成するための情報である。鍵情報と暗号鍵は、一意に対応する。１つの暗号鍵に対応する鍵情報は１つのみである。また、１つの鍵情報に対応する暗号鍵は１つのみである。
【００２５】
例えば鍵情報は、複数のデータの組み合わせによって構成されることで、階層構造（例：木構造）を持つ。図２は、鍵情報を例示する第１の図である。図２において、鍵情報Ｔａは、固定の長さを持つ８つのデータＴａ１〜Ｔａ８によって構成されている。Ｔａ１〜Ｔａ８の各サイズは、例えば１６バイトである。例えば鍵情報が木構造を表す場合、鍵情報Ｔａは、Ｔａ１が根であり、Ｔａ８が葉である木構造を表す鍵情報となる。
【００２６】
図３は、鍵情報を例示する第２の図である。図３において、鍵情報Ｔｂは、サイズが異なる複数のデータＴｂ１〜Ｔｂ３、及び各データのサイズを表すヘッダによって構成されている。Ｔｂ１〜Ｔｂ３のサイズはそれぞれ５バイト、１６バイト、２５６バイトである。
【００２７】
なお、鍵情報は、暗号鍵に対して一意に対応していればよく、上記の構成には限定されない。
【００２８】
２つの鍵情報の間には、包含関係が成立する場合がある。図４は、包含関係が成立する鍵情報を例示する図である。図４において、鍵情報Ｔｃは、Ｔｃ１〜Ｔｃ３で構成される。そして、鍵情報Ｔｄは、Ｔｃ１〜Ｔｃ３、及びＴｄ１とＴｄ２で構成される。したがって、鍵情報Ｔｄは、鍵情報Ｔｃが有する情報を全て有する。このように、ある鍵情報Ｂが有する情報が、別の鍵情報Ａに全て含まれている時、鍵情報Ｂは鍵情報Ａに含まれると表記する。以下、ある鍵情報Ａに含まれる鍵情報Ｂを、鍵情報Ａの親鍵情報と表記する。また、ある鍵情報Ｂを含む鍵情報Ａを、鍵情報Ｂの子鍵情報と表記する。
【００２９】
ここで、鍵情報Ａと鍵情報Ｂが同一の場合も、鍵情報Ａは、鍵情報Ｂが有する情報を全て有している。そのため、鍵情報Ａと鍵情報Ｂが同一の場合も、鍵情報Ｂは鍵情報Ａに含まれていることになる。ただしこの場合、同時に、鍵情報Ａは鍵情報Ｂに含まれる。したがって、鍵情報Ａと鍵情報Ｂが同一の場合、鍵情報Ｂは、鍵情報Ａの親鍵情報であると共に、鍵情報Ａの子鍵情報でもある。
【００３０】
＜暗号鍵に関する前提条件＞
マスタ暗号鍵は、鍵情報に基づいて、マスタ暗号鍵以外の暗号鍵（以下、非マスタ暗号鍵）を生成するために用いられる。マスタ暗号鍵を別の暗号鍵に基づいて生成することはできない。
【００３１】
非マスタ暗号鍵は、以下の２つの方法のいずれかで生成される。非マスタ暗号鍵Ａを生成する第１の方法は、マスタ暗号鍵、及び非マスタ暗号鍵Ａに対して一意に対応する鍵情報である鍵情報Ａを用いる方法である。非マスタ暗号鍵Ａを生成する第２の方法は、鍵情報Ａの親鍵情報である鍵情報Ｂと鍵情報Ａとの差分、及び鍵情報Ｂに対して一意に対応する非マスタ暗号鍵Ｂを用いる方法である。
【００３２】
＜各機能構成部について＞
暗号処理装置４０００は、暗号生成部２０００及び暗号変換部３０００を有する。以下、それぞれについて詳細に説明する。
【００３３】
＜暗号生成部２０００＞
暗号生成部２０００は、当該暗号生成部２０００に固有な暗号鍵であり、かつ、当該暗号生成部２０００の外部では取得不可能な暗号鍵で、宛先へ伝達するデータ（以下、伝達データ）を暗号化する。例えば伝達データは、クレジットカード番号や社外秘の情報など、第３者に知られてはいけない情報を含むデータである。以下、暗号生成部２０００が有する各機能構成部について詳細に述べる。
【００３４】
＜ソース鍵情報格納部２０１０＞
暗号生成部２０００は、ソース鍵情報格納部２０１０を有する。ソース鍵情報格納部２０１０は、当該ソース鍵情報格納部２０１０を有している暗号生成部２０００に固有の鍵情報であるソース鍵情報を格納する。
【００３５】
＜ソース暗号鍵格納部２０２０＞
暗号生成部２０００は、ソース暗号鍵格納部２０２０を有する。ソース暗号鍵格納部２０２０は、ソース暗号鍵を、当該ソース暗号鍵格納部２０２０を有している暗号生成部２０００の外部からは読み出し不可能な状態で格納する。ソース暗号鍵は、ソース鍵情報に対して一意に対応する暗号鍵である。したがって、ソース暗号鍵は、暗号生成部２０００に固有の暗号鍵である。
【００３６】
ここで、ソース暗号鍵を含め、暗号処理装置４０００で利用される全ての暗号鍵は、暗号処理装置４０００が用いる暗号方式に対応する暗号鍵である。ここで、暗号処理装置４０００は、様々な暗号方式を用いることができる。例えば暗号処理装置４０００は、DES (Data Encryption Standard) 暗号、AES (Advanced Encryption Standard) 暗号、又は再配置暗号などを用いる。また、DES 暗号や AES 暗号などのブロック暗号を用いる場合、その利用モードは任意である。ブロック暗号の利用モードには、例えば、ECB (Electric Code Book) モード、CFB (Cipher Feed Back) モード、OFB (Output Feed Back) モード、CBC (Cipher Block Chaining) モード、又はカウンタモードなどがある。
【００３７】
＜ソースデータ取得部２０４０＞
暗号生成部２０００は、ソースデータ取得部２０４０を有する。ソースデータ取得部２０４０は、ソースデータを取得する。ソースデータは、伝達データ及び宛先鍵情報を含む。宛先鍵情報は、宛先が保持している暗号鍵（以下、宛先暗号鍵）に対して一意に対応する鍵情報である。宛先鍵情報は、例えば、宛先の装置やユーザによって公開される。ただし、宛先暗号鍵は公開されない。宛先鍵情報は、ソースデータの宛先を示す情報としても役割も持つ。このように、ソースデータ取得部２０４０は、「伝達するデータ、伝達するデータの宛先を示す情報」の組み合わせを取得する。
【００３８】
＜ソース暗号文生成部２０６０＞
暗号生成部２０００は、ソース暗号文生成部２０６０を有する。ソース暗号文生成部２０６０は、ソース鍵情報又はソース鍵情報を一部に含む鍵情報に対して、一意に対応する暗号鍵を用いて、ソースデータ及びこの暗号鍵に対して一意に対応する鍵情報を暗号化して、暗号文を生成する。この暗号化によって生成された暗号文を、ソース暗号文と表記する。
【００３９】
ソース鍵情報に対して一意に対応する暗号鍵は、ソース暗号鍵である。そこで、ソース鍵情報に対して一意に対応する暗号鍵を用いる場合、ソース暗号文生成部２０６０は、ソース暗号鍵格納部２０２０に格納されているソース暗号鍵を用いて、ソース暗号文を生成する。この場合、ソース暗号文生成部２０６０は、ソースデータ及びソース鍵情報を暗号化することで、ソース暗号文を生成する。
【００４０】
一方、ソース暗号文生成部２０６０は、ソース鍵情報を一部に含む鍵情報に対して一意に対応する暗号鍵を用いる場合、この暗号鍵を生成する。ここで、ソース鍵情報を一部に含む鍵情報を、ソース子鍵情報と表記する。まず、ソース暗号文生成部２０６０は、ソース鍵情報格納部２０１０に格納されているソース鍵情報に基づいて、ソース子鍵情報を生成する。そして、ソース暗号文生成部２０６０は、ソース子鍵情報とソース鍵情報との差分、及びソース暗号鍵格納部２０２０に格納されているソース暗号鍵を用いて、ソース子鍵情報に対して一意に対応する暗号鍵を生成する。この場合、ソース暗号文生成部２０６０は、ソースデータ及びソース子鍵情報を暗号化することで、ソース暗号文を生成する。
【００４１】
例えばソース暗号文生成部２０６０は、ソース鍵情報に対して、ランダムに生成したデータを付加することで、ソース子鍵情報を生成する。なお、ソース鍵情報に付加するデータは、ランダムに生成したデータでなくてもよい。例えば、宛先暗号文生成部３０８０は、時刻などの所定の情報を宛先鍵情報に付加することで、ソース子鍵情報を生成してもよい。なお、ソース鍵情報に付加するデータは、１つであってもよいし、複数であってもよい。さらに、ソース暗号文生成部２０６０は、ソース鍵情報に付加するデータを、外部から取得してもよい。また、ソース暗号文生成部２０６０は、ソース子鍵情報自体を外部から取得してもよい。
【００４２】
ここで、ソース暗号文生成部２０６０は、ソース暗号文の生成に用いる暗号鍵を、適度な期間で変更することが好ましい。一般に、同じ暗号鍵を使い続けることは好ましくないためである。例えば、ソース暗号文生成部２０６０は、暗号処理装置４０００が利用される度に、毎回異なるデータをソース鍵情報に付加して鍵情報を生成する。そして、この鍵情報とソース鍵情報との差分、及びソース暗号鍵を用いて、ソース暗号文の生成に用いる暗号鍵を生成する。こうすることで、ソース暗号文生成部２０６０は、毎回異なる暗号鍵で、ソース暗号文を生成する。
【００４３】
ソース暗号文生成部２０６０は、暗号処理装置４０００によって扱われる暗号鍵に対応した方式で暗号化を行う。例えば、暗号処理装置４０００によって扱われる暗号鍵が AES 暗号方式で利用される暗号鍵である場合、ソース暗号文生成部２０６０は、AES 暗号方式でソースデータを暗号化する。
【００４４】
＜暗号変換部３０００＞
暗号変換部３０００は、暗号生成部２０００に固有の暗号鍵で暗号化された暗号文を、宛先が復号できる暗号文（以下、宛先暗号文）に変換する。以下、暗号変換部３０００について詳細に述べる。
【００４５】
＜マスタ暗号鍵格納部３０２０＞
暗号変換部３０００は、マスタ暗号鍵格納部３０２０を有する。マスタ暗号鍵格納部３０２０は、マスタ暗号鍵を、当該マスタ暗号鍵格納部３０２０を有する暗号変換部３０００の外部からは読み取り不可能な状態で格納する。
【００４６】
＜ソース情報取得部３０４０＞
ソース情報取得部３０４０は、ソース暗号文、生成元鍵情報、及び宛先鍵情報を含むソース情報を取得する。生成元鍵情報は、ソース暗号文の生成に用いられた暗号鍵と一意に対応する鍵情報である。ソース情報取得部３０４０は、宛先へ伝達するソースデータを含む情報として、ソース暗号文を取得する。ソース情報取得部３０４０は、ソースデータの伝達元を示す情報として、生成元鍵情報を取得する。また、ソース情報取得部３０４０は、ソースデータの宛先を示す情報として、宛先鍵情報を取得する。
【００４７】
ソース情報取得部３０４０が上記各情報を取得する具体的な方法は様々である。例えばソース情報取得部３０４０は、暗号生成部２０００によって保持されている上記各情報を読み出す。その他にも例えば、ソース情報取得部３０４０は、暗号生成部２０００以外から、上記各情報を取得してもよい。さらに、ソース情報取得部３０４０は、上記各情報の入力を、自動又は手動で受け付けてもよい。
【００４８】
＜ソース暗号文復号部３０６０＞
暗号生成部２０００は、ソース暗号文復号部３０６０を有する。ソース暗号文復号部３０６０は、ソース情報取得部３０４０が取得したソース暗号文を復号する。ソース暗号文復号部３０６０はまず、マスタ暗号鍵と、生成元鍵情報とに基づいて、暗号鍵を生成する。そして、ソース暗号文復号部３０６０は、生成した暗号鍵を用いて、ソース暗号文を復号する。
【００４９】
＜ソース情報正当性判断部３０７０＞
暗号生成部２０００は、ソース情報正当性判断部３０７０を有する。ソース情報正当性判断部３０７０は、ソース暗号文復号部３０６０によるソース暗号文の復号結果に基づき、ソース情報取得部３０４０によって取得されたソース情報の正当性を判断する。
【００５０】
ソース情報正当性判断部３０７０は、次の２つのケースのいずれかの場合に、ソース情報が不正であると判断する。第１のケースは、ソース暗号文復号部３０６０がソース暗号文を復号できなかったケースである。ここで、ソース暗号文復号部３０６０は、ソース情報に含まれる生成元鍵情報に基づいて生成される暗号鍵を用いて、ソース暗号文を復号する。したがって、ソース暗号文復号部３０６０がソース暗号文を復号できないことは、ソース情報に含まれる生成元鍵情報が、ソース暗号文の生成に使われた鍵情報と異なることを意味する。これは例えば、ソース暗号文が、当該暗号変換部３０００を有する暗号処理装置４０００とは異なる暗号処理装置４０００に備えられている暗号生成部２０００によって生成されたものである場合に起こる。
【００５１】
したがって、ソース情報正当性判断部３０７０によれば、ソース情報取得部３０４０が取得する生成元鍵情報が正当なものであることを保証することができる。上述したように、ソース情報に含まれる生成元鍵情報は、ソース暗号文の生成元、つまり、ソースデータの伝達元を示す。したがって、ソース情報正当性判断部３０７０によれば、ソース情報取得部３０４０によって取得された生成元鍵情報が、ソースデータの伝達元を正しく示しているかを検証することができる。
【００５２】
第２のケースは、ソース暗号文復号部３０６０によって算出された鍵情報が、ソース情報に含まれる生成元鍵情報と一致しないケースである。第２のケースは、第１のケースと同様に、ソース情報に含まれる生成元鍵情報が、ソース暗号文の生成に使われた鍵情報と異なる場合に発生する。したがって、ソース情報正当性判断部３０７０によれば、ソース情報取得部３０４０によって取得された生成元鍵情報が、ソースデータの伝達元を正しく示しているかを検証することができる。
【００５３】
さらにソース情報正当性判断部３０７０は、ソース暗号文復号部３０６０によって算出されたソースデータに含まれている宛先鍵情報が、ソース情報に含まれる宛先鍵情報と一致しない場合に、ソース情報が不正であると判断してもよい。上述したように、ソース情報に含まれる宛先鍵情報は、ソースデータの宛先を示す情報である。そのため、ソース情報正当性判断部３０７０によれば、ソース情報取得部３０４０によって取得された宛先鍵情報が、ソースデータの宛先を正しく示しているかを検証することができる。
【００５４】
ソース情報正当性判断部３０７０によって、ソース情報が不正であると判断された場合、ソース情報の生成元の装置及びその装置のユーザは、不正な動作を行っていると考えられる。そのため、例えばこのソース情報を生成した装置やユーザを特定する情報を、不正な動作を行う装置やユーザとして管理することが望ましい。例えば、このような装置やユーザの一覧を、ブラックリストとして管理するといった方法が考えられる。このようにすることで、不正な動作を行う可能性がある装置やユーザを把握することができる。
【００５５】
さらにこの場合、例えば、ソース情報正当性判断部３０７０に、ソース情報取得部３０４０によって取得された情報の生成元が、ブラックリストに記載されている装置やユーザである場合に、ソース情報が不正であると判断する機能を設けてもよい。こうすることで、過去に不正な動作を行った装置やユーザは、暗号処理装置４０００を利用できなくなる。そのため、暗号処理装置４０００の安全性がより向上する。
【００５６】
＜宛先暗号文生成部３０８０＞
暗号変換部３０００は、宛先暗号文生成部３０８０を有する。宛先暗号文生成部３０８０は、ソース情報正当性判断部３０７０によって、ソース情報が正当であると判断された場合のみ、次の処理を行う。まず、宛先暗号文生成部３０８０は、マスタ暗号鍵と、宛先鍵情報とに基づいて、暗号鍵を生成する。そして、宛先暗号文生成部３０８０は、この暗号鍵を用いて、ソースデータを暗号化する。ここで、この暗号化によって生成される暗号文を、宛先暗号文と表記する。
【００５７】
例えば、宛先暗号文生成部３０８０は、マスタ暗号鍵と宛先鍵情報とを用いて、宛先鍵情報に対して一意に対応する暗号鍵である、宛先暗号鍵を生成する。そして、宛先暗号文生成部３０８０は、宛先暗号鍵を用いて、ソースデータを暗号化する。
【００５８】
その他に例えば、宛先暗号文生成部３０８０は、宛先鍵情報を一部に含む鍵情報を生成する。以下、宛先鍵情報を一部に含む鍵情報を、宛先子鍵情報と表記する。宛先暗号文生成部３０８０が宛先鍵情報に基づいて宛先子鍵情報を生成する方法は、ソース暗号文生成部２０６０がソース鍵情報に基づいてソース子鍵情報を生成する方法と同様である。宛先暗号文生成部３０８０は、マスタ暗号鍵と宛先子鍵情報とを用いて、宛先子鍵情報に対して一意に対応する暗号鍵を生成する。そして、宛先暗号文生成部３０８０は、生成した暗号鍵を用いて、ソースデータを暗号化する。なお、この場合、宛先暗号文生成部３０８０は、ソースデータに含まれている宛先鍵情報を、宛先子鍵情報に変更する。
【００５９】
宛先暗号文生成部３０８０は、ソース情報が正当であると判断された場合のみ、宛先暗号文を生成する。上述したように、ソース情報正当性判断部３０７０よれば、ソース情報が、ソースデータの伝達元を正しく示していない場合に、ソース情報が不正であると判断される。したがって、ソース情報正当性判断部３０７０と宛先暗号文生成部３０８０によれば、第３者によるなりすましを防ぐことができる。
【００６０】
さらに、上述したように、ソース情報正当性判断部３０７０は、ソース情報に含まれる宛先鍵情報が、ソースデータの伝達もとを正しく示していない場合に、ソース情報が不正であると判断してもよい。この場合、ソース情報正当性判断部３０７０と宛先暗号文生成部３０８０によれば、ソース暗号文が、ソース暗号文を生成した時に意図していた宛先と異なる宛先に伝達されることを防ぐことができる。
【００６１】
＜暗号鍵生成の実施例＞
ソース暗号文生成部２０６０、ソース情報取得部３０４０、及びソース暗号文復号部３０６０が暗号鍵を生成する方法の実施例を説明する。上述したように、暗号処理装置４０００は、様々な暗号方式を利用できる。以下では、AES 暗号方式を用いる場合と、再配置暗号方式を用いる場合のそれぞれについて、暗号鍵生成の実施例を説明する。
【００６２】
＜＜AES 暗号の場合＞＞
AES 暗号方式に用いる暗号鍵の生成方法を説明する。まず、マスタ暗号鍵を用いて暗号鍵を生成する方法を説明する。数式１は、鍵情報Ｔｂに対して一意に対応する暗号鍵Ｋｂを、鍵情報Ｔｂ及びマスタ暗号鍵Ｋｍを用いて生成する方法である。鍵情報Ｔｂは、図３に示される鍵情報である。Ｅａは、鍵情報を構成する部分データを、利用する AES 暗号方式のブロックサイズと等しい大きさを持つ任意の値に変換する関数である。
【数１】
2014179704.tif 000003
【００６３】
次に、マスタ暗号鍵を用いずに暗号鍵を生成する方法を示す。例えば、上述の例において、鍵情報Ｔｂの親鍵情報として、「Ｔｂ１，Ｔｂ２」の２つを有する鍵情報Ｔ１があるとする。数式１の２行目より、鍵情報Ｔ１に対応する暗号鍵は、Ｋ２である。この場合、暗号鍵Ｋｂは、鍵情報Ｔｂの親鍵情報である鍵情報Ｔ１に対応する暗号鍵であるＫ２、及び鍵情報Ｔ１とＴｂとの差分であるＴｂ３から生成することができる。具体的には、暗号鍵Ｋｂは、Ｋ２及びＴｂ３を用いて数式１の３行目を計算することで生成される。
【００６４】
＜＜再配置暗号方式の場合＞＞
再配置暗号方式に用いる暗号鍵を生成する方法を説明する。再配置暗号方式は、暗号化するデータを複数に分割し、分割したそれぞれのデータを、暗号鍵に示される情報に基づいて再配置することで、データを暗号化する。詳しくは、特許第４７３７３３４号公報に記載されている。
【００６５】
再配置暗号方式の簡単な例について、図５を用いて説明する。図５は、再配置暗号方式における暗号化を例示する図である。Ｄは暗号化されるデータであり、Ｋは暗号鍵である。ここで、暗号鍵は、再配置表とも呼ばれる。暗号鍵Ｋは、「３，１，２」という数字の並びである。
【００６６】
暗号鍵Ｋは、合計で３つの数字から成り、１番目が３であり、２番目が１であり、３番目が２である。この暗号鍵は、暗号化するデータを３つに分割した複数の部分データのうち、１番目の部分データを３番目に再配置し、２番目の部分データを１番目に再配置し、３番目のデータを２番目に再配置することを表している。
【００６７】
そこで、図５において、データＤは、３つの部分データｄ１〜ｄ３に分割される。そして、ｄ１〜ｄ３は、暗号鍵Ｋが示す配置へ再配置される。こうすることで、データＤは、暗号化されたデータＥｒ（Ｄ，Ｋ）へ変換される。
【００６８】
再配置暗号に用いられる暗号鍵Ｋｘを、鍵情報Ｔｘとマスタ暗号鍵から生成する方法は、例えば次に示す方法である。ここで、各暗号鍵は、暗号化するデータを２５６個の部分データに分割して、各部分データを再配置するための暗号鍵であるとする。したがって、各暗号鍵は、１〜２５６の各数字を重複しないように有する順列で表される。ここで、マスタ暗号鍵は、Ｋｍ＝（２５４，５，・・・１２７，９８）であるとする。 
【００６９】
鍵情報Ｔｘは、Ｔｘ１〜Ｔｘ３を有しているとする。Ｔｘ１〜Ｔｘ３はそれぞれ、２５６バイトの整数配列である。まず、Ｔｘ１を基に、疑似乱数を生成する。そして、生成した疑似乱数を用いて、マスタ暗号鍵Ｋｍを Fisher-Yates Shuffle で攪拌し、Ｋ１を生成する。同様に、Ｔｘ２を基に、疑似乱数を生成する。そして、生成した疑似乱数を用いて、Ｋ１を Fisher-Yates Shuffle で攪拌し、Ｋ２を生成する。さらに同様に、Ｔｘ３を基に、疑似乱数を生成する。そして、生成した疑似乱数を用いて、Ｋ２を Fisher-Yates Shuffle で攪拌し、生成された配列をＫｘとする。
【００７０】
次に、マスタ暗号鍵を用いずに暗号鍵Ｋｘを生成する方法を説明する。ここで、鍵情報Ｔｘの親鍵情報として、「Ｔｘ１，Ｔｘ２」から成る鍵情報Ｔ２があるとする。この場合、暗号鍵Ｋｘは、鍵情報Ｔ２に対して一意に対応する暗号鍵Ｋ２、及び鍵情報ＴｘとＴ２との差分であるＴｘ３を用いて生成できる。具体的には、上述の例と同様に、鍵情報ＴｘとＴ２との差分であるＴｘ３を基に疑似乱数を生成し、生成した疑似乱数を用いてＫ２を Fisher-Yates Shuffle で攪拌することで、暗号鍵Ｋｘが生成される。
【００７１】
＜ハードウエア構成＞
暗号処理装置４０００は、例えば、LSI (Large Scale Integration) などの集積回路、又は集積回路とソフトウエアの組み合わせとして実装される。暗号生成部２０００と暗号変換部３０００は、それぞれ個別の集積回路として実装されてもよいし、同じ集積回路上に実装されてもよい。また、暗号生成部２０００と暗号変換部３０００は、それぞれ、複数の集積回路の組み合わせで実装されてもよい。ただし、暗号処理装置４０００の実装方法は、集積回路を用いた実装方法に限定されない。
【００７２】
例えば、ソースデータ取得部２０４０、ソース暗号文生成部２０６０、ソース情報取得部３０４０、ソース暗号文復号部３０６０、及び宛先暗号文生成部３０８０は、ワイヤードロジックなどにより、ハードウエアとして実装される。その他にも例えば、上記各機能構成部は、ソフトウエアとハードウエアの組み合わせとして実装される。ソフトウエアとハードウエアの組み合わせとは、例えば、プロセッサ、メモリ、及びストレージなどのハードウエアと、メモリ又はストレージに格納されたプログラムの組み合わせである。プロセッサは、例えば、上記各機能構成部を実現する各プログラムをメモリに読み出して実行することで、上記各機能構成部が有する機能を実現する。
【００７３】
ソース鍵情報格納部２０１０は、例えば、ROM (Read Only Memory) や RAM (Random Access Memory) として実装される。この場合、ソース鍵情報は、この ROM や RAM に格納される。その他にも例えば、ソース鍵情報格納部２０１０は、ワイヤードロジックなどを用いて実装されてもよい。この場合、ソース鍵情報は、ソース鍵情報格納部２０１０に組み込まれた物理的な電気回路として実装されることで、ソース鍵情報格納部２０１０に格納される。
【００７４】
ソース暗号鍵格納部２０２０は、例えば、暗号生成部２０００の外部との間に通信路を持たない ROM や RAM として実装される。この場合、ソース暗号鍵は、この ROM や RAM に格納される。その他にも例えば、ソース暗号鍵格納部２０２０は、ワイヤードロジックなどを用いて実装されてもよい。この場合、ソース暗号鍵は、ソース暗号鍵格納部２０２０に組み込まれた物理的な電気回路として実装されることで、ソース暗号鍵格納部２０２０に格納される。
【００７５】
マスタ暗号鍵格納部３０２０は、上述したソース暗号鍵格納部２０２０の実装方法のいずれかと同様の方法で実装される。
【００７６】
＜暗号生成部２０００による処理の流れ＞
図６は、暗号生成部２０００によって実行される処理の流れを例示するフローチャートである。ステップＳ１０２において、ソースデータ取得部２０４０は、ソースデータを取得する。ステップＳ１０４において、ソース暗号文生成部２０６０は、ソース鍵情報又はソース鍵情報を一部に含む鍵情報に対して、一意に対応する暗号鍵を用いて、ソース暗号文を生成する。
【００７７】
＜暗号変換部３０００による処理の流れ＞
図７は、暗号変換部３０００によって実行される処理の流れを例示するフローチャートである。
【００７８】
ステップＳ２０２において、ソース情報取得部３０４０は、ソース情報を取得する。
【００７９】
ステップＳ２０４において、ソース暗号文復号部３０６０は、マスタ暗号鍵と生成元鍵情報とに基づいて、暗号鍵を生成する。ステップＳ２０６において、ソース暗号文復号部３０６０は、生成した暗号鍵を用いてソース暗号文を復号し、ソースデータを算出する。
【００８０】
ステップＳ２０８において、ソース情報正当性判断部３０７０は、ソース暗号文復号部３０６０によって算出されたソースデータに基づいて、ソース情報が正当か否かを判定する。ソース情報が正当な場合、本図の処理は、ステップＳ２１０に進む。一方、ソース情報が不正な場合、本図の処理は終了する。
【００８１】
ステップＳ２１０において、宛先暗号文生成部３０８０は、マスタ暗号鍵と宛先鍵情報とに基づいて、暗号鍵を生成する。ステップＳ２１２において、宛先暗号文生成部３０８０は、生成した暗号鍵を用いてソースデータを暗号化し、宛先暗号文を生成する。
【００８２】
＜作用・効果＞
暗号処理装置４０００によれば、ソース暗号鍵及びマスタ暗号鍵が、外部からは読み出し不可能な状態で格納されている。また、暗号処理装置４０００によれば、各暗号鍵を公開する必要がない。その結果、暗号鍵が、伝達元の装置である暗号処理装置４０００以外の第３者に盗まれる恐れがない。そのため、暗号生成部２０００によって生成されるソース暗号文と同一の暗号文を、この暗号生成部２０００を含む暗号処理装置４０００を持たない第３者が生成することはできない。さらに、宛先に伝達するための暗号文である宛先暗号文を生成するためには、必ず暗号変換部３０００を利用する必要がある。
【００８３】
ここで、仮に第３者が、暗号生成部２０００によって生成されたソース暗号文を取得できたとする。そして、この第３者が、このソース暗号文に不正な生成元鍵情報を組み合わせて、不正なソース情報を生成し、ソース暗号文の伝達元を偽ることを試みたとする。もし、この不正なソース情報を用いて宛先暗号文を生成することができてしまえば、データの伝達元を偽るなりすましが可能となってしまう。
【００８４】
しかし、暗号処理装置４０００によれば、このような不正なソース情報を利用して、宛先暗号文を生成することができない。まず、上述したように、宛先暗号文を生成するためには、必ず暗号変換部３０００を利用する必要がある。しかし、上述した不正なソース情報を暗号変換部３０００に入力した場合、宛先暗号文が生成されない。宛先暗号文生成部３０８０は、ソース情報正当性判断部３０７０によってソース情報が正当であると判断された場合のみ、宛先暗号文を生成するためである。
【００８５】
このように、暗号処理装置４０００によれば、ソース暗号文と生成元鍵情報との組み合わせを変更できないため、宛先暗号文の伝達元を偽ることができない。そのため、暗号処理装置４０００によれば、宛先暗号文の宛先に対し、その宛先暗号文を復号することで得られる鍵情報が、データの伝達元を正しく示す情報であることを保証することができる。したがって、宛先は、伝達されたデータの伝達元を確実に知ることができる。宛先は、伝達されたデータの伝達元を確実に知ることができるため、第３者によるなりすましを確実に見破ることができる。
【００８６】
例えば、暗号処理装置４０００−１を持つユーザＡが、暗号処理装置４０００−２を持つユーザＢになりすまして、ユーザＣに対して嘘の情報を伝達しようとしたとする。ここで、上述したように、ユーザＡは、ユーザＢが持つ暗号処理装置４０００−２を伝達元とする宛先暗号文を生成することはできない。そこで、ユーザＡは、自身が持つ暗号処理装置４０００−１を用いて生成した宛先暗号文を、差出人がユーザＢであると偽ったメールに添付して、ユーザＣに送信することで、ユーザＢになりすまそうとしたとする。しかし、ユーザＣは、この宛先暗号文を復号することで、宛先暗号文の伝達元が、ユーザＡの持つ暗号処理装置４０００−１であることを確実に知ることができる。そのため、ユーザＣは、メールの差出人が、宛先暗号文の伝達元と異なることを知ることができる。これにより、ユーザＣは、ユーザＡによるなりすましが行われたことを見破ることができる。
【００８７】
さらに、暗号処理装置４０００によれば、ソース暗号文と宛先鍵情報との組み合わせも変更することができないため、ソース暗号文の宛先を示す情報を変更することができない。したがって、暗号処理装置４０００によれば、伝達されるデータが、不正な宛先に伝達されることを防ぐことができる。
【００８８】
また、既存の暗号方式の中には、電子署名を利用する暗号方式のように、暗号化や復号に必要な処理の一部を、外部サーバにまかせるものがある。これらの暗号方式では、多くの暗号処理装置が同時に暗号化や復号を行うと、サーバやネットワークに大きな負荷がかかる。その結果、暗号処理に要する時間が長くなる場合や、暗号処理が行えなくなる場合がある。
【００８９】
これに対し、暗号処理装置４０００は、暗号処理を、暗号処理装置４０００の内部で行う。したがって、暗号処理装置４０００によれば、サーバやネットワークに負荷をかけずに、暗号処理を行うことができる。その結果、多くの暗号処理装置４０００が、同時に動作することができる。
【００９０】
[実施形態２]
図８は、実施形態２の暗号処理装置４０００を示すブロック図である。実施形態２の暗号生成部２０００は、暗号生成部２０００を宛先とする宛先暗号文を取得し、復号する。以下で、詳しく説明する。
【００９１】
＜前提条件＞
宛先暗号文生成部３０８０は、マスタ暗号鍵と宛先鍵情報とを用いて、宛先鍵情報に対して一意に対応する暗号鍵である、宛先暗号鍵を生成する。そして、宛先暗号文生成部３０８０は、宛先暗号鍵を用いて、宛先暗号文を生成する。
【００９２】
＜宛先暗号文取得部２２６０＞
暗号生成部２０００は、宛先暗号文取得部２２６０を有する。宛先暗号文取得部２２６０は、宛先暗号文を取得する。
【００９３】
＜宛先暗号文復号部２２８０＞
暗号生成部２０００は、宛先暗号文復号部２２８０を有する。宛先暗号文復号部２２８０は、宛先暗号文取得部２２６０によって取得された宛先暗号文を、ソース暗号鍵格納部２０２０に格納されているソース暗号鍵を用いて復号する。
【００９４】
実施形態１で述べたように、伝達元の暗号処理装置４０００は、ソースデータを、宛先鍵情報に対して一意に対応する暗号鍵を用いて暗号化することで、宛先暗号文を生成する。そこで、宛先である暗号処理装置４０００は、ソース鍵情報格納部２０１０に格納している鍵情報を、宛先鍵情報として公開しておく。こうすることで、伝達元である暗号処理装置４０００の宛先暗号文生成部３０８０は、宛先の暗号処理装置４０００のソース鍵情報格納部２０１０に格納されているソース鍵情報と一意に対応する暗号鍵を生成して、宛先暗号文を生成する。ここで、宛先の暗号処理装置４０００のソース鍵情報格納部２０１０に格納されているソース鍵情報と一意に対応する暗号鍵は、宛先の暗号処理装置４０００のソース暗号鍵格納部２０２０に格納されているソース暗号鍵である。したがって、宛先の暗号処理装置４０００は、ソース暗号鍵格納部２０２０に格納されているソース暗号鍵を用いて、伝達元の暗号処理装置４０００から取得した宛先暗号文を復号することができる。
【００９５】
＜処理の流れ＞
図９は、実施形態２における暗号処理装置４０００の動作を例示するフローチャートである。ステップＳ３０２において、宛先暗号文取得部２２６０は、宛先暗号文を取得する。ステップＳ３０４において、宛先暗号文復号部２２８０は、ソース暗号鍵格納部２０２０に格納されているソース暗号鍵を用いて、宛先暗号文を復号する。
【００９６】
＜作用・効果＞
本実施形態によれば、暗号生成部２０００は、ソース暗号文の生成に加え、当該暗号生成部２０００に宛てた宛先暗号文を復号できる。ここで、暗号生成部２０００において、ソース暗号鍵格納部２０２０は、ソース暗号文の生成と、宛先暗号文の復号の双方に用いられる。したがって、本実施形態の暗号処理装置４０００によれば、暗号文を受信する装置を暗号処理装置４０００とは別に設ける場合と比較し、暗号文を受信する装置を小さいコストで製造することができる。
【００９７】
＜実施例：暗号処理装置４０００間におけるデータの伝達＞
伝達元の暗号処理装置４０００から、宛先の暗号処理装置４０００へ、ソースデータを伝達する実施例を示す。各暗号処理装置４０００は、実施形態２の暗号処理装置４０００を実装したものである。
【００９８】
暗号処理装置４０００が有するソース鍵情報格納部２０１０は、ソース鍵情報Ｔｓを格納している。伝達元の暗号処理装置４０００が有するソース暗号鍵格納部２０２０は、ソース鍵情報Ｔｓに対応するソース暗号鍵Ｋｓを格納している。伝達元の暗号処理装置４０００が有するマスタ暗号鍵格納部３０２０は、マスタ暗号鍵Ｋｍを格納している。伝達元の暗号処理装置４０００が有するソースデータ取得部２０４０によって取得されるソースデータは、伝達データがメッセージＭであり、宛先鍵情報がＴｄである。伝達元の暗号処理装置４０００に入力される宛先鍵情報は、宛先の暗号処理装置４０００が有するソース鍵情報格納部２０１０に格納されているソース鍵情報と同一である。この鍵情報を、Ｔｄとする。
【００９９】
まず、伝達元の暗号処理装置４０００における動作を説明する。
【０１００】
ソースデータ取得部２０４０は、ソースデータとして、Ｔｄ及びＭを取得する。次に、ソース暗号文生成部２０６０は、ソース暗号文を生成する。ここで、ソース暗号文生成部２０６０は、ソース暗号鍵Ｋｓを用いてソース暗号文を生成するとする。この場合、ソース暗号文生成部２０６０は、ソースデータ及びソース鍵情報を暗号化して、ソース暗号文Ｅｓ（Ｔｓ，Ｔｄ，Ｍ）を生成する。
【０１０１】
次に、ソース情報取得部３０４０は、ソース暗号文Ｅｓ（Ｔｓ，Ｔｄ，Ｍ）、生成元鍵情報Ｔｓ、及び宛先鍵情報Ｔｄを取得する。
【０１０２】
ソース暗号文復号部３０６０は、マスタ暗号鍵Ｋｍと、ソース情報取得部３０４０が取得したＴｓとから、暗号鍵を生成する。ここで、生成元鍵情報がＴｓであるため、生成される暗号鍵はＫｓである。ソース暗号文復号部３０６０は、生成した暗号鍵Ｋｓを用いて、Ｅｓ（Ｔｓ，Ｔｄ，Ｍ）を復号する。その結果、Ｔｓ、Ｔｄ、Ｍが算出される。
【０１０３】
ソース情報正当性判断部３０７０は、ソース情報の正当性を判断する。まず、ソース情報正当性判断部３０７０は、生成元鍵情報の正当性を検証する。ソース情報に含まれる生成元鍵情報はＴｓである。そして、ソース暗号文復号部３０６０によって算出された鍵情報はＴｓである。よって、両者は一致するため、生成元鍵情報は正当である。
【０１０４】
次に、ソース情報正当性判断部３０７０は、宛先鍵情報の正当性を検証する。ソース情報に含まれる宛先鍵情報はＴｄである。そして、ソース情報正当性判断部３０７０によって算出されたソースデータに含まれる宛先鍵情報はＴｄである。よって、両者は一致するため、宛先鍵情報は正当である。以上より、ソース情報正当性判断部３０７０は、ソース情報が正当であると判断する。
【０１０５】
宛先暗号文生成部３０８０は、マスタ暗号鍵Ｋｍと、宛先鍵情報Ｔｄとから、宛先暗号鍵Ｋｄを生成する。そして、宛先暗号文生成部３０８０は、生成したＫｄを用いて、Ｔｓ、Ｔｄ、及びＭを暗号化し、宛先暗号文Ｅｄ（Ｔｓ，Ｔｄ，Ｍ）を生成する。
【０１０６】
そして、宛先暗号文Ｅｄ（Ｔｓ，Ｔｄ，Ｍ）が、例えばネットワークを介して、宛先の暗号処理装置４０００へ伝達される。
【０１０７】
次に、宛先の暗号処理装置４０００の動作を説明する。
【０１０８】
宛先暗号文取得部２２６０は、上記Ｅｄ（Ｔｓ，Ｔｄ，Ｍ）を取得する。そして、宛先暗号文復号部２２８０は、ソース暗号鍵格納部２０２０に格納されているＫｄを用いて、Ｅｄ（Ｔｓ，Ｔｄ，Ｍ）を復号し、Ｔｓ，Ｔｄ，Ｍを取得する。前述したように、伝達元の宛先暗号文生成部３０８０は、Ｋｄを用いて宛先暗号文を生成している。そのため、宛先暗号文取得部２２６０は、ソース暗号鍵格納部２０２０に格納されているＫｄを用いて、宛先暗号文を復号できる。このように、上述した一連の動作により、宛先の暗号処理装置４０００に対し、メッセージＭが伝達される。
【０１０９】
ここで、Ｔｓが伝達元を正しく示していることは、伝達元のソース情報正当性判断部３０７０の動作によって保証されている。したがって、宛先の暗号処理装置４０００は、上記Ｅｄ（Ｔｓ，Ｔｄ，Ｍ）の伝達元を正しく知ることができる。
【０１１０】
なお、宛先の暗号処理装置４０００は、宛先暗号文と共に、伝達元を示す鍵情報を取得してもよい。この場合、宛先暗号文復号部２２８０は、宛先暗号文を復号することで算出した鍵情報Ｔｓ（ソース暗号文の生成に用いられた鍵情報）と、伝達元の示す鍵情報とを比較する。これにより、宛先の暗号処理装置４０００は、伝達元の暗号処理装置４０００が、伝達元を偽ろうとしていないか否かを検証することができる。
【０１１１】
また、宛先の暗号処理装置４０００は、宛先暗号文と共に、宛先を示す鍵情報を取得してもよい。この場合、宛先暗号文復号部２２８０は、宛先暗号文を復号することで算出した宛先鍵情報Ｔｄと、上記宛先を示す鍵情報とを比較する。これにより、宛先の暗号処理装置４０００は、伝達元の暗号処理装置４０００から伝達された宛先暗号文が、正しい宛先に送られたものか否かを検証することができる。
【０１１２】
＜実施例：暗号処理装置４０００による認証＞
伝達元の暗号処理装置４０００は、宛先の暗号処理装置４０００へソースデータの伝達を行う前に、宛先の暗号処理装置４０００の認証を行ってもよい。ここでいう認証とは、宛先の暗号処理装置４０００が、「伝達元の暗号処理装置から宛先暗号文を取得し、その宛先暗号文を復号する」という機能を有していることを確認する処理である。
【０１１３】
ここで、伝達元の暗号処理装置４０００のソース鍵情報格納部２０１０は、ソース鍵情報Ｔｓを格納しているとする。また、伝達元の暗号処理装置４０００のソース暗号鍵格納部２０２０は、ソース鍵情報Ｔｓに対して一意に対応するソース暗号鍵Ｋｓを格納しているとする。
【０１１４】
まず、認証される側である、宛先の暗号処理装置４０００の動作について説明する。
【０１１５】
宛先の暗号処理装置４０００は、ソースデータを取得する。このソースデータの宛先鍵情報は、伝達元のソース鍵情報格納部２０１０に格納されているソース鍵情報Ｔｓを示す。例えば宛先の暗号処理装置４０００は、伝達元の暗号処理装置４０００から、ソース鍵情報を取得して、これをソースデータの宛先鍵情報として扱う。ソースデータに含まれる伝達データは、任意のデータでよい。また、宛先の暗号生成部２０００のソース鍵情報格納部２０１０に格納されているソース鍵情報は、Ｔｄであるとする。
【０１１６】
宛先の暗号処理装置４０００は、上述の情報を入力として宛先暗号文を生成する。この宛先暗号文は、上記ソースデータが、宛先鍵情報として取得した鍵情報Ｔｓに対応する暗号鍵Ｋｓで暗号化された暗号文Ｅｓ（Ｔｄ，Ｔｓ，Ｍ）である。
【０１１７】
次に、宛先の暗号処理装置４０００を認証する側である、伝達元の暗号処理装置４０００の動作について説明する。
【０１１８】
伝達元の暗号処理装置４０００の宛先暗号文取得部２２６０は、宛先の暗号処理装置４０００が生成した宛先暗号文Ｅｓ（Ｔｄ，Ｔｓ，Ｍ）を取得する。例えばこの宛先暗号文は、宛先の暗号処理装置４０００から送信される。そして、伝達元の暗号処理装置４０００の宛先暗号文復号部２２８０は、取得した宛先暗号文を復号する。
【０１１９】
宛先暗号文復号部２２８０が宛先暗号文を正しく復号できた場合、宛先の暗号処理装置４０００は、伝達元の暗号処理装置４０００と同様の方法で暗号文を生成する装置であると判断できる。そこで、伝達元の暗号処理装置４０００は、宛先の暗号処理装置４０００から取得した宛先暗号文を正しく復号できた場合、宛先の暗号処理装置４０００の認証結果を、認証成功とする。一方、宛先暗号文復号部２２８０が宛先暗号文を正しく復号できなかった場合、宛先の暗号処理装置４０００は、伝達元の暗号処理装置４０００と同様の方法で暗号文を生成する機能を有していないと判断できる。そこで、伝達元の暗号処理装置４０００は、宛先の暗号処理装置４０００から取得した宛先暗号文を正しく復号できなかった場合、宛先の暗号処理装置４０００の認証結果を、認証失敗とする。
【０１２０】
本実施例において、伝達元の暗号処理装置４０００が、宛先の暗号処理装置４０００から取得した宛先暗号文は、Ｅｓ（Ｔｄ，Ｔｓ，Ｍ）である。したがって、伝達元の暗号処理装置４０００は、ソース暗号鍵格納部２０２０に格納されているソース暗号鍵Ｋｓを用いて、この宛先暗号文を復号できる。そこで、伝達元の暗号処理装置４０００は、宛先の暗号処理装置４０００の認証結果を、認証成功とする。
【０１２１】
このように、暗号処理装置４０００は、暗号文を伝達する前に、宛先の暗号処理装置４０００を認証することが好ましい。こうすることで、宛先暗号文を復号できない暗号処理装置４０００に対して宛先暗号文を伝達するという、無駄な処理を行わないようにすることができる。
【０１２２】
ここで、ユーザや装置を認証する既存の認証方式の中には、認証処理用のサーバを利用するものがある。サーバを利用する認証方式の場合、多くのユーザや装置を同時に認証すると、ネットワークやサーバに大きな負荷がかかる。そのため、認証に要する時間が長くなる場合や、認証が行えなくなる場合がある。
【０１２３】
これに対し、上述した暗号処理装置４０００による認証は、認証処理の大部分を、暗号処理装置４０００の内部で実行する。そのため、暗号処理装置４０００によれば、ネットワークや認証サーバに大きな負荷がかかるという問題が発生しない。その結果、多くの暗号処理装置４０００が、同時に動作することができる。
【０１２４】
＜実施例：暗号処理装置４０００が模造品であるか否かの検査＞
暗号処理装置４０００は、例えば LSI として実装される。そのため、暗号処理装置４０００が真正品であるか模造品であるかを、見た目で判断することは難しい。ここで、模造品とは、当該暗号処理装置４０００と同様の機能を有しない装置である。
【０１２５】
暗号処理装置４０００と思われる装置に対して、適当なソースデータを入力し、その装置によって出力されるデータを調べることで、暗号処理装置４０００が模造品であるか否かを調べることができる。
【０１２６】
例えば、ある装置１が、ソース暗号鍵Ｋｓを有する暗号処理装置４０００か否かを調べるとする。まず、装置１に対して、宛先鍵情報Ｔｄ及び伝達データＭを含むソースデータを入力する。この場合、装置１が、ソース暗号鍵Ｋｓを有する暗号処理装置４０００の真正品ならば、上記ソースデータが、宛先暗号鍵Ｋｄで暗号化された宛先暗号文Ｅｄ（Ｔｓ，Ｔｄ，Ｍ）が出力される。そこで、装置１によって出力されたデータを、宛先暗号鍵Ｔｄを用いて正しく復号できるか否かを調べることで、装置１が模造品であるか否かを調べることができる。
【０１２７】
この検査は、例えば上述した認証方法と同様の方法で行うことができる。伝達元の暗号処理装置４０００が、宛先の暗号処理装置４０００の認証に成功したことは、宛先の暗号処理装置４０００が真正品であることを同時に表すためである。具体的には、上記装置１とは別の装置２を用い、装置２で装置１を認証することで、装置１が模造品であるか否かを検査する。
【０１２８】
[実施形態３]
実施形態３の暗号処理装置４０００の構成は、実施形態２の暗号処理装置４０００と同様である。実施形態３の暗号生成部２０００は、暗号生成部２０００を宛先とする宛先暗号文を取得し、復号する。以下で、詳しく説明する。
【０１２９】
＜前提条件＞
宛先暗号文生成部３０８０は、宛先鍵情報を一部に含む鍵情報である、宛先子鍵情報を生成する。宛先暗号文生成部３０８０は、マスタ暗号鍵と宛先子鍵情報とを用いて、宛先子鍵情報に対して一意に対応する暗号鍵を生成する。そして、宛先暗号文生成部３０８０は、生成した暗号鍵を用いて、ソースデータを暗号化する。宛先暗号文生成部３０８０は、ソースデータに含まれている宛先鍵情報を、宛先子鍵情報に変更する。
【０１３０】
＜宛先暗号文取得部２２６０＞
暗号生成部２０００は、宛先暗号文取得部２２６０を有する。宛先暗号文取得部２２６０は、宛先暗号文を、この宛先暗号文の生成に用いられた暗号鍵に対して一意に対応する鍵情報と共に取得する。
【０１３１】
＜宛先暗号文復号部２２８０＞
暗号生成部２０００は、宛先暗号文復号部２２８０を有する。宛先暗号文復号部２２８０は、ソース鍵情報格納部２０１０に格納されているソース鍵情報、宛先暗号文取得部２２６０が取得した宛先子鍵情報、及びソース暗号鍵格納部２０２０に格納されているソース暗号鍵を用いて暗号鍵を生成する。そして、宛先暗号文復号部２２８０は、この暗号鍵を用いて、宛先暗号文を復号する。
【０１３２】
実施形態２で述べたように、宛先である暗号処理装置４０００は、ソース鍵情報格納部２０１０に格納されている暗号鍵に対して一意に対応する鍵情報を、宛先鍵情報として公開しておく。こうすることで、当該暗号処理装置４０００を宛先とする宛先暗号文は、当該暗号処理装置４０００のソース鍵情報格納部２０１０に格納されているソース鍵情報を一部に含む鍵情報を用いて暗号化される。そのため、宛先暗号文取得部２２６０が取得する鍵情報は、ソース鍵情報格納部２０１０に格納されている鍵情報を一部に含む鍵情報である。そのため、宛先暗号文復号部２２８０は、ソース鍵情報格納部２０１０に格納されているソース鍵情報と、宛先暗号文取得部２２６０によって取得された鍵情報との差分、及びソース暗号鍵格納部２０２０に格納されているソース暗号鍵を用いて、宛先暗号文の復号に用いる暗号鍵を生成できる。
【０１３３】
なお、宛先暗号鍵を生成する前に、宛先暗号文生成部３０８０は、ソースデータが示す宛先鍵情報を、宛先子鍵情報に変更する。したがって、当該暗号処理装置４０００が復号したソースデータは、宛先鍵情報の代わりに、宛先子鍵情報を示す。
【０１３４】
＜処理の流れ＞
図１５は、実施形態３における暗号処理装置４０００の動作を例示するフローチャートである。ステップＳ６０２において、宛先暗号文取得部２２６０は、宛先暗号文、及びこの宛先暗号文の生成に用いられた暗号鍵に対して一意に対応する鍵情報を取得する。
【０１３５】
ステップＳ６０４において、宛先暗号文復号部２２８０は、宛先暗号文と共に取得した鍵情報、ソース鍵情報、及びソース暗号鍵に基づいて、暗号鍵を生成する。
【０１３６】
ステップＳ６０６において、宛先暗号文復号部２２８０は、生成した暗号鍵を用いて、宛先暗号文を復号する。
【０１３７】
＜作用・効果＞
本実施形態によれば、暗号生成部２０００は、ソース暗号文の生成に加え、当該暗号生成部２０００に宛てた宛先暗号文を復号できる。ここで、暗号生成部２０００において、ソース暗号鍵格納部２０２０は、ソース暗号文の生成と、宛先暗号文の復号の双方に用いられる。したがって、本実施形態の暗号処理装置４０００によれば、暗号文を受信する装置を暗号処理装置４０００とは別に設ける場合と比較し、暗号文を受信する装置を小さいコストで製造することができる。
【０１３８】
また、本実施形態によれば、ソース暗号鍵格納部２０２０に格納されているソース暗号鍵とは異なる暗号鍵で暗号化されている宛先暗号文を復号できる。ここで一般に、暗号化及び復号に、同じ暗号鍵を使い続けることは好ましくない。本実施形態によれば、宛先暗号文復号部２２８０は、宛先暗号文取得部２２６０が取得する鍵情報、ソース鍵情報格納部２０１０に格納されているソース鍵情報、及びソース鍵情報格納部２０１０に格納されているソース暗号鍵を用いて、暗号鍵を生成する。したがって、伝達元の暗号処理装置４０００が、情報を伝達する度に異なる宛先子鍵情報を生成すれば、宛先暗号文の生成に用いられる暗号鍵が、情報を伝達する度に異なるものになる。そして、本実施形態の暗号処理装置４０００は、毎回異なる鍵情報を用いて暗号化された宛先暗号文を、復号することができる。したがって、暗号化及び復号に、同じ暗号鍵を使い続ける必要がなくなるため、安全性が向上する。
【０１３９】
＜実施例：暗号処理装置４０００間におけるデータの伝達＞
伝達元の暗号処理装置４０００から、宛先の暗号処理装置４０００へ、ソースデータを伝達する実施例を示す。各暗号処理装置４０００は、実施形態３の暗号処理装置４０００を実装したものである。
【０１４０】
暗号処理装置４０００が有するソース鍵情報格納部２０１０は、ソース鍵情報Ｔｓを格納している。伝達元の暗号処理装置４０００が有するソース暗号鍵格納部２０２０は、ソース鍵情報Ｔｓに対応するソース暗号鍵Ｋｓを格納している。伝達元の暗号処理装置４０００が有するマスタ暗号鍵格納部３０２０は、マスタ暗号鍵Ｋｍを格納している。伝達元の暗号処理装置４０００が有するソースデータ取得部２０４０によって取得されるソースデータは、伝達データがメッセージＭであり、宛先鍵情報がＴｄである。宛先の暗号処理装置４０００が有するソース鍵情報格納部２０１０に格納されているソース鍵情報は、伝達元の暗号処理装置４０００に入力される宛先鍵情報と同一の、Ｔｄである。
【０１４１】
まず、伝達元の暗号処理装置４０００における動作を説明する。
【０１４２】
ソースデータ取得部２０４０は、ソースデータとして、Ｔｄ及びＭを取得する。次に、ソース暗号文生成部２０６０は、ソース暗号文を生成する。ここで、ソース暗号文生成部２０６０は、ソース鍵情報Ｔｓに、ランダムに生成した２つのデータを付加することで、Ｔｓを一部に含む鍵情報であるソース子鍵情報Ｔｓ２を生成する。そして、ソース暗号文生成部２０６０は、ソース子鍵情報Ｔｓ２とソース鍵情報Ｔｓの差分、及びソース暗号鍵Ｋｓを用いて、暗号鍵Ｋｓ２を生成する。そして、ソース暗号文生成部２０６０は、暗号鍵Ｋｓ２を用いてソースデータ及びソース子鍵情報Ｔｓ２を暗号化して、ソース暗号文Ｅｓ２（Ｔｓ２，Ｔｄ，Ｍ）を生成する。
【０１４３】
次に、ソース情報取得部３０４０は、ソース暗号文Ｅｓ２（Ｔｓ，Ｔｄ，Ｍ）、生成元鍵情報Ｔｓ２、及び宛先鍵情報Ｔｄを取得する。
【０１４４】
ソース暗号文復号部３０６０は、マスタ暗号鍵Ｋｍと、ソース情報取得部３０４０が取得したＴｓ２とから、暗号鍵Ｋｓ２を生成する。ソース暗号文復号部３０６０は、生成した暗号鍵Ｋｓ２を用いて、Ｅｓ２（Ｔｓ２，Ｔｄ，Ｍ）を復号する。その結果、Ｔｓ２、Ｔｄ、Ｍが算出される。
【０１４５】
ソース情報正当性判断部３０７０は、ソース情報の正当性を判断する。まず、ソース情報正当性判断部３０７０は、生成元鍵情報の正当性を検証する。ソース情報に含まれる生成元鍵情報はＴｓ２である。そして、ソース暗号文復号部３０６０によって算出された鍵情報はＴｓ２である。よって、両者は一致するため、生成元鍵情報は正当である。
【０１４６】
次に、ソース情報正当性判断部３０７０は、宛先鍵情報の正当性を検証する。ソース情報に含まれる宛先鍵情報はＴｄである。そして、ソース情報正当性判断部３０７０によって算出されたソースデータに含まれる宛先鍵情報はＴｄである。よって、両者は一致するため、宛先鍵情報は正当である。以上より、ソース情報正当性判断部３０７０は、ソース情報が正当であると判断する。
【０１４７】
宛先暗号文生成部３０８０は、宛先鍵情報Ｔｄに、ランダムに生成した２つのデータを付加することで、Ｔｄを一部に含む鍵情報である宛先子鍵情報Ｔｄ２を生成する。そして、宛先暗号文生成部３０８０は、マスタ暗号鍵Ｋｍと、宛先子鍵情報Ｔｄ２とから、暗号鍵Ｋｄ２を生成する。また、宛先暗号文生成部３０８０は、ソースデータに含まれる宛先鍵情報Ｔｄを、宛先子鍵情報Ｔｄ２に変更する。そして、宛先暗号文生成部３０８０は、生成したＫｄ２を用いて、Ｔｓ２、Ｔｄ２、及びＭを暗号化し、宛先暗号文Ｅｄ２（Ｔｓ２，Ｔｄ２，Ｍ）を生成する。
【０１４８】
そして、宛先子鍵情報Ｔｄ２及び宛先暗号文Ｅｄ２（Ｔｓ２，Ｔｄ２，Ｍ）が、例えばネットワークを介して、宛先の暗号処理装置４０００へ伝達される。
【０１４９】
次に、宛先の暗号処理装置４０００の動作を説明する。
【０１５０】
宛先暗号文取得部２２６０は、宛先暗号文Ｅｄ２（Ｔｓ２，Ｔｄ２，Ｍ）を、宛先子鍵情報Ｔｄ２と共に取得する。そして、宛先暗号文復号部２２８０は、Ｔｄ２と、ソース鍵情報格納部２０１０に格納されているＴｄとの差分、及びソース暗号鍵格納部２０２０に格納されているＫｄを用いて、暗号鍵Ｋｄ２を生成する。そして、宛先暗号文復号部２２８０は、Ｅｄ２（Ｔｓ２，Ｔｄ２，Ｍ）を復号し、Ｔｓ２，Ｔｄ２，Ｍを取得する。このように、上述した一連の動作により、宛先の暗号処理装置４０００に対し、メッセージＭが伝達される。
【０１５１】
なお、宛先の暗号処理装置４０００は、宛先暗号文と共に、伝達元を示す鍵情報を取得してもよい。この場合、宛先暗号文復号部２２８０は、宛先暗号文を復号することで算出した鍵情報Ｔｓ２（ソース暗号文の生成に用いられた鍵情報）と、伝達元の示す鍵情報とを比較する。これにより、宛先の暗号処理装置４０００は、伝達元の暗号処理装置４０００が、伝達元を偽ろうとしていないか否かを検証することができる。
【０１５２】
また、宛先の暗号処理装置４０００は、宛先暗号文と共に取得したＴｄ２と、宛先暗号文を復号することで算出した宛先鍵情報Ｔｄ２とを比較してもよい。これにより、宛先の暗号処理装置４０００は、伝達元の暗号処理装置４０００から伝達された宛先暗号文が、正しい宛先に送られたものか否かを検証することができる。
【０１５３】
[実施形態４]
図１０は、実施形態４の暗号処理装置４０００を示すブロック図である。実施形態４の暗号生成部２０００は、実施形態１又は２の暗号生成部２０００と同様である。
【０１５４】
＜マスタ暗号鍵保護部３２００＞
暗号変換部３０００は、マスタ暗号鍵保護部３２００を有する。マスタ暗号鍵保護部３２００は、マスタ暗号鍵格納部３０２０を保護することで、マスタ暗号鍵が第３者に漏洩することを防ぐ。前述したように、マスタ暗号鍵格納部３０２０は、暗号変換部３０００の外部からは読み取り不可能な状態で、マスタ暗号鍵を格納している。しかし、例えば、マスタ暗号鍵格納部３０２０がワイヤードロジックで実装されている場合、第３者が、マスタ暗号鍵格納部３０２０の物理的な回路構成を直接見て模倣することで、マスタ暗号鍵を複製するといったことが考えられる。
【０１５５】
そこで、本実施形態の暗号変換部３０００は、マスタ暗号鍵保護部３２００によってマスタ暗号鍵格納部３０２０を保護することで、マスタ暗号鍵の漏洩を防ぐ。具体的には、マスタ暗号鍵保護部３２００は、マスタ暗号鍵格納部３０２０の異常が検知された場合に、マスタ暗号鍵格納部３０２０からマスタ暗号鍵を消去する。
【０１５６】
＜マスタ暗号鍵保護回路部３２２０＞
マスタ暗号鍵保護部３２００は、マスタ暗号鍵保護回路部３２２０を有する。マスタ暗号鍵保護回路部３２２０は、マスタ暗号鍵格納部３０２０の状態が正常な場合と、マスタ暗号鍵格納部３０２０の状態が異常な場合とで、通電状態が変化する回路である。
【０１５７】
例えばマスタ暗号鍵保護回路部３２２０は、マスタ暗号鍵格納部３０２０が実装された回路の周りを、物理的に覆う不透明な膜状に実装される回路である。そして、マスタ暗号鍵格納部３０２０の状態が正常な場合、マスタ暗号鍵保護回路部３２２０には、電流が流れる。この場合、マスタ暗号鍵格納部３０２０の状態が異常な場合とは、例えばマスタ暗号鍵保護回路部３２２０の一部が破壊された場合である。そのため、マスタ暗号鍵格納部３０２０の状態が異常な場合、マスタ暗号鍵保護回路部３２２０に電流が流れない状態、又はマスタ暗号鍵保護回路部３２２０に流れる電流が弱い状態や不安定な状態となる。
【０１５８】
悪意ある第３者が、上述したマスタ暗号鍵保護回路部３２２０に覆われているマスタ暗号鍵格納部３０２０に格納されているマスタ暗号鍵を複製するために、マスタ暗号鍵格納部３０２０の回路構成を調べようとしたとする。ここで、上述したように、マスタ暗号鍵格納部３０２０は、マスタ暗号鍵保護回路部３２２０に覆われている。そのため、この第３者は、マスタ暗号鍵保護回路部３２２０の一部を切断するなどしてマスタ暗号鍵保護回路部３２２０の一部を破壊しないと、マスタ暗号鍵格納部３０２０の回路構成を調べることができない。そして、この第３者がマスタ暗号鍵保護回路部３２２０の一部を切断すると、マスタ暗号鍵保護回路部３２２０に電流が流れなくなる。このように、マスタ暗号鍵保護回路部３２２０の通電状態が変化する。
【０１５９】
＜マスタ暗号鍵消去部３２４０＞
マスタ暗号鍵保護部３２００は、マスタ暗号鍵消去部３２４０を有する。マスタ暗号鍵消去部３２４０は、マスタ暗号鍵保護回路部３２２０の通電状態が、マスタ暗号鍵格納部３０２０に異常があることを示している場合に、マスタ暗号鍵格納部３０２０からマスタ暗号鍵を消去する。
【０１６０】
マスタ暗号鍵消去部３２４０は、例えば、マスタ暗号鍵格納部３０２０を実現するハードウエア回路のうち、マスタ暗号鍵を実装する部分の一部又は全部を物理的に破壊する。こうすることで、マスタ暗号鍵格納部３０２０の物理的な回路構成を見ても、マスタ暗号鍵を知ることができなくなる。その他にも例えば、マスタ暗号鍵格納部３０２０が RAM として実装されている場合、マスタ暗号鍵消去部３２４０は、この RAM に格納されている情報をソフトウエアによって読み取れない状態（例：ゼロクリアされた状態）にする。こうすることで、この RAM からマスタ暗号鍵を読み取ることができなくなる。
【０１６１】
マスタ暗号鍵消去部３２４０が、マスタ暗号鍵保護回路部３２２０の通電状態が変化したことを検知する方法は、様々である。例えば、マスタ暗号鍵消去部３２４０は、マスタ暗号鍵保護回路部３２２０の通電状態が変化したことを、マスタ暗号鍵保護回路部３２２０から通知されてもよい。その他にも例えば、マスタ暗号鍵消去部３２４０は、マスタ暗号鍵保護回路部３２２０の状態を監視することで、マスタ暗号鍵保護回路部３２２０の通電状態の変化を検知してもよい。また、マスタ暗号鍵消去部３２４０は、マスタ暗号鍵保護回路部３２２０が共有メモリに書き込んだ通電状態を示す値を参照することで、マスタ暗号鍵保護回路部３２２０の通電状態の変化を検知してもよい。
【０１６２】
マスタ暗号鍵消去部３２４０は、マスタ暗号鍵保護部３２００が駆動するために供給される電力が小さくなったり、電力供給が不安定になったりした場合にも、マスタ暗号鍵を消去することが好ましい。例えば、マスタ暗号鍵保護部３２００が電池で動作する場合、マスタ暗号鍵消去部３２４０は、この電池の残量が少なくなった場合に、マスタ暗号鍵を消去する。こうすることで、マスタ暗号鍵保護回路部３２２０がマスタ暗号鍵を保護できなくなることを防ぐ。
【０１６３】
＜処理の流れ＞
図１１は、マスタ暗号鍵保護部３２００による処理の流れを例示するフローチャートである。
【０１６４】
ステップＳ４０２において、マスタ暗号鍵消去部３２４０は、マスタ暗号鍵保護回路部３２２０によって、マスタ暗号鍵格納部３０２０が正常であると示されているか否かを判定する。マスタ暗号鍵保護回路部３２２０によって、マスタ暗号鍵格納部３０２０が正常であると示されている場合、本図の処理は、再度ステップＳ４０２を実行する。なお、本図の処理は、再度ステップＳ４０２を実行する前に、適当な期間待機してもよい。
【０１６５】
一方、マスタ暗号鍵保護回路部３２２０によって、マスタ暗号鍵格納部３０２０が正常であると示されていない場合、本図の処理は、ステップＳ４０４に進む。ステップＳ４０４において、マスタ暗号鍵消去部３２４０は、マスタ暗号鍵格納部からマスタ暗号鍵を消去する。
【０１６６】
＜作用・効果＞
本実施形態によれば、前述の各実施形態と比較し、マスタ暗号鍵が漏洩する蓋然性がより小さくなる。そのため、暗号処理装置４０００を用いたデータ伝達の安全性が向上する。
【０１６７】
[実施形態５]
図１２は、実施形４の暗号処理装置４０００を示すブロック図である。実施形態５の暗号変換部３０００の構成は、前述した各実施形態のいずれかにおける暗号変換部３０００の構成と同様である。
【０１６８】
暗号生成部２０００は、ソース暗号鍵保護部２２００を有する。ソース暗号鍵保護部２２００は、ソース暗号鍵格納部２０２０を保護することで、ソース暗号鍵が外部に漏洩することを防ぐ。実施形態５の暗号生成部２０００においてソース暗号鍵格納部２０２０を保護する理由は、実施形態４において説明した、実施形態４の暗号変換部３０００においてマスタ暗号鍵格納部３０２０を保護する理由と同様である。
【０１６９】
本実施形態の暗号生成部２０００は、ソース暗号鍵保護部２２００によってソース暗号鍵格納部２０２０を保護する。具体的には、ソース暗号鍵保護部２２００は、ソース暗号鍵格納部２０２０の異常が検知された場合に、ソース暗号鍵格納部２０２０からソース暗号鍵を消去する。以下、具体的に説明する。
【０１７０】
＜ソース暗号鍵保護回路部２２２０＞
ソース暗号鍵保護部２２００は、ソース暗号鍵保護回路部２２２０を有する。ソース暗号鍵保護回路部２２２０は、ソース暗号鍵格納部２０２０の状態が正常な場合と、ソース暗号鍵格納部２０２０の状態が異常な場合とで、通電状態が変化する回路である。ソース暗号鍵保護回路部２２２０の通電状態が変わる具体的な仕組みは、実施形態４のマスタ暗号鍵保護回路部３２２０における仕組みと同様である。
【０１７１】
＜ソース暗号鍵消去部２２４０＞
ソース暗号鍵保護部２２００は、ソース暗号鍵消去部２２４０を有する。ソース暗号鍵消去部２２４０は、ソース暗号鍵保護回路部２２２０の通電状態が、ソース暗号鍵格納部２０２０に異常があることを示している場合に、ソース暗号鍵格納部２０２０からソース暗号鍵を消去する。ソース暗号鍵消去部２２４０がソース暗号鍵を消去する具体的な方法は、実施形態４におけるマスタ暗号鍵消去部３２４０がマスタ暗号鍵を消去する方法と同様である。
【０１７２】
ソース暗号鍵消去部２２４０がソース暗号鍵消去部２２４０の通電状態の変化を検知する方法は、実施形態４のマスタ暗号鍵消去部３２４０がマスタ暗号鍵保護回路部３２２０の通電状態の変化を検知する方法と同様である。
【０１７３】
ソース暗号鍵消去部２２４０は、実施形態４のマスタ暗号鍵消去部３２４０と同様に、ソース暗号鍵保護部２２００を駆動するために供給される電力が小さくなったり不安定になったりした場合にも、ソース暗号鍵を消去することが好ましい。こうすることで、ソース暗号鍵保護回路部２２２０がソース暗号鍵を保護できなくなることを防ぐ。
【０１７４】
＜処理の流れ＞
図１３は、ソース暗号鍵保護部２２００による処理の流れを示すフローチャートである。
【０１７５】
ステップＳ５０２において、ソース暗号鍵消去部２２４０は、ソース暗号鍵保護回路部２２２０によって、ソース暗号鍵格納部２０２０が正常であると示されているか否かを判定する。ソース暗号鍵保護回路部２２２０によって、ソース暗号鍵格納部２０２０が正常であると示されている場合、本図の処理は、再度ステップＳ５０２を実行する。なお、本図の処理は、再度ステップＳ５０２を実行する前に、適当な期間待機してもよい。
【０１７６】
一方、ソース暗号鍵保護回路部２２２０によって、ソース暗号鍵格納部２０２０が正常であると示されていない場合、本図の処理は、ステップＳ５０４に進む。ステップＳ５０４において、ソース暗号鍵消去部２２４０は、ソース暗号鍵格納部２０２０からソース暗号鍵を消去する。
【０１７７】
＜作用・効果＞
本実施形態によれば、前述の各実施形態と比較し、ソース暗号鍵が漏洩する蓋然性がより小さくなる。そのため、暗号処理装置４０００を用いたデータ伝達の安全性が向上する。
【０１７８】
[実施形態６]
実施形態６のマスタ暗号鍵格納部３０２０は、複数の部分的なデータに分割されたマスタ暗号鍵を格納している。以下、マスタ暗号鍵を分割した各部分的なデータを、部分マスタ暗号鍵と表記する。ここで、複数の部分マスタ暗号鍵の合計サイズは、マスタ暗号鍵の合計サイズよりも大きい。マスタ暗号鍵は、各部分マスタ暗号鍵の大部分を正確に検知できなければ、マスタ暗号鍵を算出できないように、複数の部分マスタ暗号鍵に分割されることが望ましい。
【０１７９】
実施形態６のソース暗号文復号部３０６０及び宛先暗号文生成部３０８０は、複数の部分マスタ暗号鍵から、マスタ暗号鍵を算出する。
【０１８０】
＜実施例：AES 暗号の場合＞
マスタ暗号鍵が AES 暗号方式で用いられる暗号鍵である場合の実施例を、以下に述べる。マスタ暗号鍵Ｋは、ｎ個の部分マスタ鍵Ｋ１〜Ｋｎに分割されて、マスタ暗号鍵格納部３０２０に格納する。
【０１８１】
マスタ暗号鍵Ｋと、以下に述べる方法で生成される部分マスタ暗号鍵Ｋ１〜Ｋｎの間には、数式２に示す関係が成り立つ。ソース暗号文復号部３０６０及び宛先暗号文生成部３０８０は、部分マスタ暗号鍵Ｋ１〜Ｋｎを、以下の数式に適用することで、マスタ暗号鍵Ｋを算出する。関数ｆは、各部分マスタ暗号鍵を１２８ビットの値に変換する任意の線形変換である。マスタ暗号鍵のサイズは１２８ビットである。また、以下では、１２８ビットの部分マスタ暗号鍵が生成される。しかし、部分マスタ暗号鍵とマスタ暗号鍵のサイズは、異なっていてもよい。
【数２】
2014179704.tif 000004
【０１８２】
まず、１２８ビットの疑似乱数Ｘ１〜Ｘｎ−１を生成する。次に、以下に示す数式３によって、ｎ個の値Ｈ１〜Ｈｎを生成する。
【数３】
2014179704.tif 000005
【０１８３】
そして、以下の数式４に従って、Ｈ１〜Ｈｎから、Ｋ１〜Ｋｎを生成する。
【数４】
2014179704.tif 000006
【０１８４】
＜実施例：再配置暗号方式の場合＞
マスタ暗号鍵が再配置暗号方式で用いられる暗号鍵である場合の実施例について説明する。マスタ暗号鍵Ｋｍは、ｎ個の部分マスタ鍵Ｋ１〜Ｋｎに分割されて、マスタ暗号鍵格納部３０２０に格納される。以下、Ｋ１〜Ｋｎの生成方法を説明する。
【０１８５】
まず、Fisher-Yates shuffle などを用いて、ランダムな再配置表Ｘ１〜Ｘｎ−１を生成する。次に、以下の数式５により、Ｋ１〜Ｋｎを算出する。
【数５】
2014179704.tif 000007
【０１８６】
マスタ暗号鍵と、上記の方法で生成された部分マスタ暗号鍵の間には、以下の数式６に示す関係が成り立つ。ソース暗号文復号部３０６０及び宛先暗号文生成部３０８０は、部分マスタ暗号鍵を、以下の数式７に適用することで、マスタ暗号鍵Ｋを算出する。
【数６】
2014179704.tif 000008
【０１８７】
＜作用・効果＞
本実施形態によれば、マスタ暗号鍵が、合計サイズがマスタ暗号鍵のサイズよりも大きい複数の部分マスタ暗号鍵に分割されて、マスタ暗号鍵格納部３０２０に格納される。したがって、マスタ暗号鍵格納部３０２０にマスタ暗号鍵がそのまま格納されている場合と比較し、マスタ暗号鍵を取得するために知る必要がある情報量が多くなる。また、マスタ暗号鍵を取得するためには、複数の部分マスタ暗号鍵を取得することに加え、部分マスタ暗号鍵からマスタ暗号鍵を生成するための生成規則を知ることが必要となる。以上により、本実施形態によれば、マスタ暗号鍵をそのままの形で格納する場合と比較し、マスタ暗号鍵が漏洩する蓋然性が小さくなる。
【０１８８】
[実施形態７]
実施形態７のソース暗号鍵格納部２０２０は、複数の部分的なデータに分割されたソース暗号鍵を格納している。以下、ソース暗号鍵を分割した各部分的なデータを、部分ソース暗号鍵と表記する。ここで、複数の部分ソース暗号鍵の合計サイズは、ソース暗号鍵の合計サイズよりも大きい。ソース暗号鍵は、各部分ソース暗号鍵の大部分を正確に検知できなければ、ソース暗号鍵を算出できないように、複数の部分ソース暗号鍵に分割されることが望ましい。
【０１８９】
実施形態７のソース暗号文生成部２０６０は、複数の部分ソース暗号鍵から、ソース暗号鍵を算出する。
【０１９０】
ソース暗号鍵を複数の部分ソース暗号鍵に分割する具体的な方法は、実施形態６の実施例で説明した、マスタ暗号鍵を複数の部分マスタ暗号鍵に分割する方法と同様である。また、複数の部分ソース暗号鍵からソース暗号鍵を算出する具体的な方法は、実施形態６の実施例で説明した、複数の部分マスタ暗号鍵から、マスタ暗号鍵を算出する方法と同様である。
【０１９１】
＜作用・効果＞
本実施形態によれば、ソース暗号鍵が、合計サイズがソース暗号鍵のサイズよりも大きい複数の部分ソース暗号鍵に分割されて、ソース暗号鍵格納部２０２０に格納される。したがって、ソース暗号鍵格納部２０２０にソース暗号鍵がそのまま格納されている場合と比較し、ソース暗号鍵を取得するために知る必要がある情報量が多くなる。また、ソース暗号鍵を取得するためには、複数の部分ソース暗号鍵を取得することに加え、部分ソース暗号鍵からソース暗号鍵を生成するための生成規則を知ることが必要となる。以上により、本実施形態によれば、ソース暗号鍵をそのままの形で格納する場合と比較し、ソース暗号鍵が漏洩する確率が小さくなる。
【０１９２】
以上、図面を参照して本発明の実施形態及び実施例について述べたが、これらは本発明の例示であり、上記実施形態や実施例の組み合わせ、及び上記実施形態や実施例以外の様々な構成を採用することもできる。
【符号の説明】
【０１９３】
２０００ 暗号生成部
２０１０ ソース鍵情報格納部
２０２０ ソース暗号鍵格納部
２０４０ ソースデータ取得部
２０６０ ソース暗号文生成部
２２００ ソース暗号鍵保護部
２２２０ ソース暗号鍵保護回路部
２２４０ ソース暗号鍵消去部
２２６０ 宛先暗号文取得部
２２８０ 宛先暗号文復号部
３０００ 暗号変換部
３０２０ マスタ暗号鍵格納部
３０４０ ソース情報取得部
３０６０ ソース暗号文復号部
３０７０ ソース情報正当性判断部
３０８０ 宛先暗号文生成部
３２００ マスタ暗号鍵保護部
３２２０ マスタ暗号鍵保護回路部
３２４０ マスタ暗号鍵消去部
４０００ 暗号処理装置
【図１】
2014179704.tif 000009
【図２】
2014179704.tif 000010
【図３】
2014179704.tif 000011
【図４】
2014179704.tif 000012
【図５】
2014179704.tif 000013
【図６】
2014179704.tif 000014
【図７】
2014179704.tif 000015
【図８】
2014179704.tif 000016
【図９】
2014179704.tif 000017
【図１０】
2014179704.tif 000018
【図１１】
2014179704.tif 000019
【図１２】
2014179704.tif 000020
【図１３】
2014179704.tif 000021
【図１４】
2014179704.tif 000022
【図１５】
2014179704.tif 000023