(57)【要約】【課題】鍵寄託機関の負荷を軽減できる暗号化装置、暗号化方法、プログラム、およびプログラム記憶媒体を提供すること。【解決手段】暗号化装置１は、マスタ鍵を格納する耐タンパデバイス１１と、マスタ鍵によりセッション鍵を暗号化する暗号化処理部１２と、暗号化処理部１２により暗号化されたセッション鍵と、セッション鍵と、を用いて乱数を生成する乱数生成部１３と、乱数生成部１３により生成された乱数と、平文と、の排他的論理和演算を行う排他的論理和演算器（ＸＯＲ）１４と、暗号化処理部１２により暗号化されたセッション鍵と、排他的論理和演算器（ＸＯＲ）１４による演算結果と、を暗号文として出力する暗号文出力部１５と、を備える。【選択図】図１
2010056848.tif 000002
【特許請求の範囲】
【請求項１】
マスタ鍵を格納する耐タンパデバイスと、
前記マスタ鍵によりセッション鍵を暗号化する暗号化処理手段と、
前記暗号化処理手段により暗号化された後のセッション鍵と、前記暗号化処理手段により暗号化される前のセッション鍵と、を用いて乱数を生成する暗号化用乱数生成手段と、
前記暗号化用乱数生成手段により生成された乱数と、平文と、の排他的論理和演算を行う暗号化用排他的論理和演算手段と、
前記暗号化処理手段により暗号化された後のセッション鍵と、前記暗号化用排他的論理和演算手段による演算結果と、を暗号文として出力する暗号文出力手段と、
を備えることを特徴とする暗号化装置。
【請求項２】
請求項１に記載の前記暗号文を復号化する復号化装置であって、
前記暗号文に含まれる前記暗号化処理手段により暗号化された後のセッション鍵と、前記暗号化処理手段により暗号化される前のセッション鍵と、を用いて乱数を生成する復号化用乱数生成手段と、
前記復号化用乱数生成手段により生成された乱数と、前記暗号文に含まれる前記暗号化用排他的論理和演算手段による演算結果と、の排他的論理和演算を行い、平文として出力する復号化用排他的論理和演算手段と、
を備えることを特徴とする復号化装置。
【請求項３】
請求項１に記載の前記マスタ鍵が寄託された鍵寄託機関装置であって、
前記暗号文に含まれる前記暗号化処理手段により暗号化された後のセッション鍵を前記マスタ鍵により復号化する鍵復号化処理手段と、
前記暗号文に含まれる前記暗号化処理手段により暗号化された後のセッション鍵と、前記鍵復号化処理手段により復号化された後のセッション鍵と、を用いて乱数を生成する鍵寄託機関用乱数生成手段と、
前記鍵寄託機関用乱数生成手段により生成された乱数と、前記暗号文に含まれる前記暗号化用排他的論理和演算手段による演算結果と、の排他的論理和演算を行い、平文として出力する鍵寄託機関用排他的論理和演算手段と、
を備えることを特徴とする鍵寄託機関装置。
【請求項４】
耐タンパデバイスに格納されるマスタ鍵によりセッション鍵を暗号化する第１のステップと、
前記第１のステップで暗号化した後のセッション鍵と、前記第１のステップで暗号化する前のセッション鍵と、を用いて乱数を生成する第２のステップと、
前記第２のステップで生成した乱数と、平文と、の排他的論理和演算を行う第３のステップと、
前記第１のステップで暗号化した後のセッション鍵と、前記第３のステップでの演算結果と、を暗号文として出力する第４のステップと、
を備えることを特徴とする暗号化方法。
【請求項５】
請求項４に記載の前記暗号文を復号化する復号化方法であって、
前記暗号文に含まれる前記第１のステップで暗号化された後のセッション鍵と、前記第１のステップで暗号化される前のセッション鍵と、を用いて乱数を生成する第５のステップと、
前記第５のステップで生成した乱数と、前記暗号文に含まれる前記第３のステップでの演算結果と、の排他的論理和演算を行い、平文として出力する第６のステップと、
を備えることを特徴とする復号化方法。
【請求項６】
請求項４に記載の前記マスタ鍵が寄託された鍵寄託機関装置において前記暗号文を復号化する復号化方法であって、
前記暗号文に含まれる前記第１のステップで暗号化された後のセッション鍵を前記マスタ鍵により復号化する第５のステップと、
前記第５のステップで復号化した後のセッション鍵と、前記暗号文に含まれる前記第１のステップで暗号化された後のセッション鍵と、を用いて乱数を生成する第６のステップと、
前記第６のステップで生成した乱数と、前記暗号文に含まれる前記第３のステップでの演算結果と、の排他的論理和演算を行い、平文として出力する第７のステップと、
を備えることを特徴とする前記マスタ鍵が寄託された鍵寄託機関装置において前記暗号文を復号化する復号化方法。
【請求項７】
耐タンパデバイスに格納されるマスタ鍵によりセッション鍵を暗号化する第１のステップと、
前記第１のステップで暗号化した後のセッション鍵と、前記第１のステップで暗号化する前のセッション鍵と、を用いて乱数を生成する第２のステップと、
前記第２のステップで生成した乱数と、平文と、の排他的論理和演算を行う第３のステップと、
前記第１のステップで暗号化した後のセッション鍵と、前記第３のステップでの演算結果と、を暗号文として出力する第４のステップと、
をコンピュータに実行させるためのプログラム。
【請求項８】
請求項７に記載の前記暗号文の復号化をコンピュータに実行させるためのプログラムであって、
前記暗号文に含まれる前記第１のステップで暗号化された後のセッション鍵と、前記第１のステップで暗号化される前のセッション鍵と、を用いて乱数を生成する第５のステップと、
前記第５のステップで生成した乱数と、前記暗号文に含まれる前記第３のステップでの演算結果と、の排他的論理和演算を行い、平文として出力する第６のステップと、
をコンピュータに実行させるためのプログラム。
【請求項９】
請求項４に記載の前記マスタ鍵が寄託されたコンピュータに、前記暗号文の復号化を実行させるためのプログラムであって、
前記暗号文に含まれる前記第１のステップで暗号化された後のセッション鍵を前記マスタ鍵により復号化する第５のステップと、
前記暗号文に含まれる前記第１のステップで暗号化された後のセッション鍵と、前記第５のステップで復号化した後のセッション鍵と、を用いて乱数を生成する第６のステップと、
前記第６のステップで生成した乱数と、前記暗号文に含まれる前記第３のステップでの演算結果と、の排他的論理和演算を行い、平文として出力する第７のステップと、
をコンピュータに実行させるためのプログラム。
【請求項１０】
耐タンパデバイスに格納されるマスタ鍵によりセッション鍵を暗号化する第１のステップと、
前記第１のステップで暗号化した後のセッション鍵と、前記第１のステップで暗号化する前のセッション鍵と、を用いて乱数を生成する第２のステップと、
前記第２のステップで生成した乱数と、平文と、の排他的論理和演算を行う第３のステップと、
前記第１のステップで暗号化した後のセッション鍵と、前記第３のステップでの演算結果と、を暗号文として出力する第４のステップと、
をコンピュータに実行させるためのプログラムを格納するプログラム記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、暗号化装置、暗号化方法、プログラム、およびプログラム記憶媒体に関する。
【背景技術】
【０００２】
近年、インターネットの目覚しい普及により、コンピュータを利用した様々なサービスが提供されている。こうして提供されるサービスの中には、その通信内容を秘匿化するためにセッション鍵を用いた暗号を利用するものがある。
【０００３】
セッション鍵は、例えば、第３者機関としての鍵寄託機関に寄託され、利用者が暗号化や復号化を行う際に、鍵寄託機関から利用者に送信される。ところが、セッション鍵は更新周期が短いので、全てのセッション鍵を鍵寄託機関が保持しなくてはならず、鍵寄託機関の資源を圧迫するおそれがあった。
【０００４】
そこで、セッション鍵の代わりに、シードを鍵寄託機関が保持する方法が提案されている（例えば、特許文献１参照）。ここで、シードとは、１つから複数のセッション鍵を導出できるものであり、セッション鍵よりも更新期間が長いもののことである。この方法によれば、セッション鍵を保持する場合と比べて、鍵寄託機関において必要となる資源量を削減できる。
【特許文献１】特許第３５３５０２３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ところが、上述のような方法では、利用者が暗号化や復号化を行うたびに、鍵寄託機関は、シードからセッション鍵を導出し、導出したセッション鍵を利用者に送信しなくてはならない。このため、鍵寄託機関の負荷が大きくなるおそれがあった。
【０００６】
そこで、本発明は、上述の課題に鑑みてなされたものであり、鍵寄託機関の負荷を軽減できる暗号化装置、暗号化方法、プログラム、およびプログラム記憶媒体を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明は、上記の課題を解決するために、以下の事項を提案している。
【０００８】
（１）本発明は、マスタ鍵を格納する耐タンパデバイス（例えば、図１の耐タンパデバイス１１に相当）と、前記マスタ鍵によりセッション鍵を暗号化する暗号化処理手段（例えば、図１の暗号化処理部１２に相当）と、前記暗号化処理手段により暗号化された後のセッション鍵と、前記暗号化処理手段により暗号化される前のセッション鍵と、を用いて乱数を生成する暗号化用乱数生成手段（例えば、図１の乱数生成部１３に相当）と、前記暗号化用乱数生成手段により生成された乱数と、平文と、の排他的論理和演算を行う暗号化用排他的論理和演算手段（例えば、図１の排他的論理和演算器（ＸＯＲ）１４に相当）と、前記暗号化処理手段により暗号化された後のセッション鍵と、前記暗号化用排他的論理和演算手段による演算結果と、を暗号文として出力する暗号文出力手段（例えば、図１の暗号文出力部１５に相当）と、を備えることを特徴とする暗号化装置を提案している。
【０００９】
この発明によれば、暗号化装置は、暗号化処理手段により、耐タンパデバイスに格納されるマスタ鍵によりセッション鍵を暗号化する。そして、暗号化用乱数生成手段により、暗号化処理手段により暗号化された後のセッション鍵と、暗号化処理手段により暗号化される前のセッション鍵と、を用いて乱数を生成する。そして、暗号化用排他的論理和演算手段により、暗号化用乱数生成手段により生成された乱数と、平文と、の排他的論理和演算を行う。さらに、暗号文出力手段により、暗号化処理手段により暗号化された後のセッション鍵と、暗号化用排他的論理和演算手段による演算結果と、を暗号文として出力する。
【００１０】
すなわち、暗号化装置は、マスタ鍵により任意のセッション鍵を暗号化し、この暗号化した後のセッション鍵を鍵として平文を暗号化する。このため、暗号化装置が平文を暗号化する際に、鍵寄託機関は暗号化装置にセッション鍵を送信する必要がないので、鍵寄託機関の負荷を軽減できる。また、マスタ鍵を耐タンパデバイスに格納するため、マスタ鍵の耐タンパ性を向上させることができる。
【００１１】
（２）本発明は、（１）の暗号文を復号化する復号化装置について、前記暗号文に含まれる前記暗号化処理手段により暗号化された後のセッション鍵と、前記暗号化処理手段により暗号化される前のセッション鍵と、を用いて乱数を生成する復号化用乱数生成手段（例えば、図３の乱数生成部２１に相当）と、前記復号化用乱数生成手段により生成された乱数と、前記暗号文に含まれる前記暗号化用排他的論理和演算手段による演算結果と、の排他的論理和演算を行い、平文として出力する復号化用排他的論理和演算手段（例えば、図３の排他的論理和演算器（ＸＯＲ）２２に相当）と、を備えることを特徴とする復号化装置を提案している。
【００１２】
この発明によれば、復号化装置は、復号化用乱数生成手段により、暗号文に含まれる暗号化処理手段により暗号化された後のセッション鍵と、暗号化処理手段により暗号化される前のセッション鍵と、を用いて乱数を生成する。そして、復号化用排他的論理和演算手段により、復号化用乱数生成手段により生成された乱数と、暗号文に含まれる暗号化用排他的論理和演算手段による演算結果と、の排他的論理和演算を行い、平文として出力する。
【００１３】
このため、復号化装置は、セッション鍵を用いて暗号文を復号化して、平文を出力できる。
【００１４】
（３）本発明は、（１）のマスタ鍵が寄託された鍵寄託機関装置について、前記暗号文に含まれる前記暗号化処理手段により暗号化された後のセッション鍵を前記マスタ鍵により復号化する鍵復号化処理手段（例えば、図５の鍵復号化処理部３１に相当）と、前記暗号文に含まれる前記暗号化処理手段により暗号化された後のセッション鍵と、前記鍵復号化処理手段により復号化された後のセッション鍵と、を用いて乱数を生成する鍵寄託機関用乱数生成手段（例えば、図５の乱数生成部３２に相当）と、前記鍵寄託機関用乱数生成手段により生成された乱数と、前記暗号文に含まれる前記暗号化用排他的論理和演算手段による演算結果と、の排他的論理和演算を行い、平文として出力する鍵寄託機関用排他的論理和演算手段（例えば、図５の排他的論理和演算器（ＸＯＲ）３３に相当）と、を備えることを特徴とする鍵寄託機関装置を提案している。
【００１５】
この発明によれば、鍵寄託機関装置は、鍵復号化処理手段により、暗号文に含まれる暗号化処理手段により暗号化された後のセッション鍵をマスタ鍵により復号化する。そして、鍵寄託機関用乱数生成手段により、暗号文に含まれる暗号化処理手段により暗号化された後のセッション鍵と、鍵復号化処理手段により復号化された後のセッション鍵と、を用いて乱数を生成する。さらに、鍵寄託機関用排他的論理和演算手段により、鍵寄託機関用乱数生成手段により生成された乱数と、暗号文に含まれる暗号化用排他的論理和演算手段による演算結果と、の排他的論理和演算を行い、平文として出力する。
【００１６】
このため、鍵寄託機関装置は、暗号文に含まれる暗号化された後のセッション鍵をマスタ鍵により復号化し、この復号化した後のセッション鍵を用いて暗号文を復号化して、平文を出力できる。
【００１７】
（４）本発明は、耐タンパデバイスに格納されるマスタ鍵によりセッション鍵を暗号化する第１のステップ（例えば、図２のステップＳ１１に相当）と、前記第１のステップで暗号化した後のセッション鍵と、前記第１のステップで暗号化する前のセッション鍵と、を用いて乱数を生成する第２のステップ（例えば、図２のステップＳ１２に相当）と、前記第２のステップで生成した乱数と、平文と、の排他的論理和演算を行う第３のステップ（例えば、図２のステップＳ１３に相当）と、前記第１のステップで暗号化した後のセッション鍵と、前記第３のステップでの演算結果と、を暗号文として出力する第４のステップ（例えば、図２のステップＳ１４に相当）と、を備えることを特徴とする暗号化方法を提案している。
【００１８】
この発明によれば、耐タンパデバイスに格納されるマスタ鍵によりセッション鍵を暗号化し、この暗号化した後のセッション鍵と、暗号化する前のセッション鍵と、を用いて乱数を生成する。そして、生成した乱数と、平文と、の排他的論理和演算を行い、暗号化した後のセッション鍵と、排他的論理和演算の演算結果と、を暗号文として出力する。
【００１９】
すなわち、マスタ鍵により任意のセッション鍵を暗号化し、この暗号化した後のセッション鍵を鍵として平文を暗号化する。このため、平文を暗号化する際に、鍵寄託機関は暗号化を行う暗号化装置にセッション鍵を送信する必要がないので、鍵寄託機関の負荷を軽減できる。また、マスタ鍵を耐タンパデバイスに格納するため、マスタ鍵の耐タンパ性を向上させることができる。
【００２０】
（５）本発明は、（４）の暗号文を復号化する復号化方法について、前記暗号文に含まれる前記第１のステップで暗号化された後のセッション鍵と、前記第１のステップで暗号化される前のセッション鍵と、を用いて乱数を生成する第５のステップ（例えば、図４のステップＳ２１に相当）と、前記第５のステップで生成した乱数と、前記暗号文に含まれる前記第３のステップでの演算結果と、の排他的論理和演算を行い、平文として出力する第６のステップ（例えば、図４のステップＳ２２に相当）と、を備えることを特徴とする復号化方法を提案している。
【００２１】
この発明によれば、暗号文に含まれる暗号化された後のセッション鍵と、暗号化される前のセッション鍵と、を用いて乱数を生成し、この生成した乱数と、暗号文に含まれる排他的論理和演算の演算結果と、の排他的論理和演算を行い、平文として出力する。
【００２２】
このため、セッション鍵を用いて暗号文を復号化して、平文を出力できる。
【００２３】
（６）本発明は、（４）のマスタ鍵が寄託された鍵寄託機関装置において前記暗号文を復号化する復号化方法について、前記暗号文に含まれる前記第１のステップで暗号化された後のセッション鍵を前記マスタ鍵により復号化する第５のステップ（例えば、図６のステップＳ３１に相当）と、前記第５のステップで復号化した後のセッション鍵と、前記暗号文に含まれる前記第１のステップで暗号化された後のセッション鍵と、を用いて乱数を生成する第６のステップ（例えば、図６のステップＳ３２に相当）と、前記第６のステップで生成した乱数と、前記暗号文に含まれる前記第３のステップでの演算結果と、の排他的論理和演算を行い、平文として出力する第７のステップ（例えば、図６のステップＳ３３に相当）と、を備えることを特徴とする前記マスタ鍵が寄託された鍵寄託機関装置において前記暗号文を復号化する復号化方法を提案している。
【００２４】
この発明によれば、暗号文に含まれる暗号化された後のセッション鍵をマスタ鍵により復号化し、この復号化した後のセッション鍵と、暗号文に含まれる暗号化された後のセッション鍵と、を用いて乱数を生成する。そして、生成した乱数と、暗号文に含まれる排他的論理和演算の演算結果と、の排他的論理和演算を行い、平文として出力する。
【００２５】
このため、暗号文に含まれる暗号化された後のセッション鍵をマスタ鍵により復号化し、この復号化した後のセッション鍵を用いて暗号文を復号化して、平文を出力できる。
【００２６】
（７）本発明は、耐タンパデバイスに格納されるマスタ鍵によりセッション鍵を暗号化する第１のステップ（例えば、図２のステップＳ１１に相当）と、前記第１のステップで暗号化した後のセッション鍵と、前記第１のステップで暗号化する前のセッション鍵と、を用いて乱数を生成する第２のステップ（例えば、図２のステップＳ１２に相当）と、前記第２のステップで生成した乱数と、平文と、の排他的論理和演算を行う第３のステップ（例えば、図２のステップＳ１３に相当）と、前記第１のステップで暗号化した後のセッション鍵と、前記第３のステップでの演算結果と、を暗号文として出力する第４のステップ（例えば、図２のステップＳ１４に相当）と、をコンピュータに実行させるためのプログラムを提案している。
【００２７】
この発明によれば、プログラムをコンピュータに実行させることで、耐タンパデバイスに格納されるマスタ鍵によりセッション鍵を暗号化し、この暗号化した後のセッション鍵と、暗号化する前のセッション鍵と、を用いて乱数を生成する。そして、生成した乱数と、平文と、の排他的論理和演算を行い、暗号化した後のセッション鍵と、排他的論理和演算の演算結果と、を暗号文として出力する。
【００２８】
すなわち、マスタ鍵により任意のセッション鍵を暗号化し、この暗号化した後のセッション鍵を鍵として平文を暗号化する。このため、平文を暗号化する際に、鍵寄託機関は暗号化を行う暗号化装置にセッション鍵を送信する必要がないので、鍵寄託機関の負荷を軽減できる。また、マスタ鍵を耐タンパデバイスに格納するため、マスタ鍵の耐タンパ性を向上させることができる。
【００２９】
（８）本発明は、（７）の暗号文の復号化をコンピュータに実行させるためのプログラムであって、前記暗号文に含まれる前記第１のステップで暗号化された後のセッション鍵と、前記第１のステップで暗号化される前のセッション鍵と、を用いて乱数を生成する第５のステップ（例えば、図４のステップＳ２１に相当）と、前記第５のステップで生成した乱数と、前記暗号文に含まれる前記第３のステップでの演算結果と、の排他的論理和演算を行い、平文として出力する第６のステップ（例えば、図４のステップＳ２２に相当）と、をコンピュータに実行させるためのプログラムを提案している。
【００３０】
この発明によれば、プログラムをコンピュータに実行させることで、暗号文に含まれる暗号化された後のセッション鍵と、暗号化される前のセッション鍵と、を用いて乱数を生成し、この生成した乱数と、暗号文に含まれる排他的論理和演算の演算結果と、の排他的論理和演算を行い、平文として出力する。
【００３１】
このため、セッション鍵を用いて暗号文を復号化して、平文を出力できる。
【００３２】
（９）本発明は、（７）のマスタ鍵が寄託されたコンピュータに、前記暗号文の復号化を実行させるためのプログラムであって、前記暗号文に含まれる前記第１のステップで暗号化された後のセッション鍵を前記マスタ鍵により復号化する第５のステップ（例えば、図６のステップＳ３１に相当）と、前記暗号文に含まれる前記第１のステップで暗号化された後のセッション鍵と、前記第５のステップで復号化した後のセッション鍵と、を用いて乱数を生成する第６のステップ（例えば、図６のステップＳ３２に相当）と、前記第６のステップで生成した乱数と、前記暗号文に含まれる前記第３のステップでの演算結果と、の排他的論理和演算を行い、平文として出力する第７のステップ（例えば、図６のステップＳ３３に相当）と、をコンピュータに実行させるためのプログラムを提案している。
【００３３】
この発明によれば、プログラムをコンピュータに実行させることで、暗号文に含まれる暗号化された後のセッション鍵をマスタ鍵により復号化し、この復号化した後のセッション鍵と、暗号文に含まれる暗号化された後のセッション鍵と、を用いて乱数を生成する。そして、生成した乱数と、暗号文に含まれる排他的論理和演算の演算結果と、の排他的論理和演算を行い、平文として出力する。
【００３４】
このため、暗号文に含まれる暗号化された後のセッション鍵をマスタ鍵により復号化し、この復号化した後のセッション鍵を用いて暗号文を復号化して、平文を出力できる。
【００３５】
（１０）本発明は、耐タンパデバイスに格納されるマスタ鍵によりセッション鍵を暗号化する第１のステップ（例えば、図２のステップＳ１１に相当）と、前記第１のステップで暗号化した後のセッション鍵と、前記第１のステップで暗号化する前のセッション鍵と、を用いて乱数を生成する第２のステップ（例えば、図２のステップＳ１２に相当）と、前記第２のステップで生成した乱数と、平文と、の排他的論理和演算を行う第３のステップ（例えば、図２のステップＳ１３に相当）と、前記第１のステップで暗号化した後のセッション鍵と、前記第３のステップでの演算結果と、を暗号文として出力する第４のステップ（例えば、図２のステップＳ１４に相当）と、をコンピュータに実行させるためのプログラムを格納するプログラム記憶媒体を提案している。
【００３６】
この発明によれば、プログラム記憶媒体に記憶されたプログラムをコンピュータに実行させることで、耐タンパデバイスに格納されるマスタ鍵によりセッション鍵を暗号化し、この暗号化した後のセッション鍵と、暗号化する前のセッション鍵と、を用いて乱数を生成する。そして、生成した乱数と、平文と、の排他的論理和演算を行い、暗号化した後のセッション鍵と、排他的論理和演算の演算結果と、を暗号文として出力する。
【００３７】
すなわち、マスタ鍵により任意のセッション鍵を暗号化し、この暗号化した後のセッション鍵を鍵として平文を暗号化する。このため、平文を暗号化する際に、鍵寄託機関は暗号化を行う暗号化装置にセッション鍵を送信する必要がないので、鍵寄託機関の負荷を軽減できる。また、マスタ鍵を耐タンパデバイスに格納するため、マスタ鍵の耐タンパ性を向上させることができる。
【発明の効果】
【００３８】
この発明によれば、暗号化装置は、マスタ鍵により任意のセッション鍵を暗号化し、この暗号化した後のセッション鍵を鍵として平文を暗号化する。このため、暗号化装置が平文を暗号化する際に、鍵寄託機関は暗号化装置にセッション鍵を送信する必要がないので、鍵寄託機関の負荷を軽減できる。また、マスタ鍵を耐タンパデバイスに格納するため、マスタ鍵の耐タンパ性を向上させることができる。
【発明を実施するための最良の形態】
【００３９】
以下、本発明の実施形態について、図面を用いて、詳細に説明する。
なお、本実施形態における構成要素は適宜、既存の構成要素等との置き換えが可能であり、また、他の既存の構成要素との組合せを含む様々なバリエーションが可能である。したがって、本実施形態の記載をもって、特許請求の範囲に記載された発明の内容を限定するものではない。
【００４０】
図１から図６を用いて、本発明の実施形態について説明する。
【００４１】
＜暗号化装置の構成＞
本実施形態に係る暗号化装置１は、図１に示すように、耐タンパデバイス１１、暗号化処理部１２、乱数生成部１３、排他的論理和演算器（ＸＯＲ）１４、および暗号文出力部１５を備える。
【００４２】
耐タンパデバイス１１は、マスタ鍵ｋ＿０を格納する。暗号化処理部１２は、耐タンパデバイス１１に格納されるマスタ鍵ｋ＿０により、入力されたセッション鍵ｋを暗号化する。乱数生成部１３は、暗号化処理部１２により暗号化されたセッション鍵と、入力されたセッション鍵ｋと、を用いて乱数を生成する。排他的論理和演算器（ＸＯＲ）１４は、乱数生成部１３により生成された乱数と、入力された平文Ｍと、の排他的論理和演算を実行する。暗号文出力部１５は、暗号化処理部１２により暗号化されたセッション鍵と、排他的論理和演算器（ＸＯＲ）１４による演算結果と、を暗号文（Ｃ１、Ｃ２）として出力する。
【００４３】
＜暗号化装置の処理＞
次に、図２を用いて、暗号化装置の処理について説明する。
【００４４】
まず、暗号化処理部１２により、耐タンパデバイス１１に格納されるマスタ鍵ｋ＿０により、セッション鍵ｋを暗号化する（ステップＳ１１）。この処理では、暗号化の方式としてブロック鍵暗号を用いるものとし、この処理により暗号化されたセッション鍵Ｃ＿２を以下のように表すものとする。
【００４５】
【数１】
2010056848.tif 000003
【００４６】
次に、乱数生成部１３により、暗号化処理部１２により暗号化されたセッション鍵Ｃ＿２と、セッション鍵ｋと、を用いて乱数を生成する（ステップＳ１２）。ここで、この処理により生成された乱数をｆ＿ｋ（Ｃ＿２）と表すものとする。
【００４７】
次に、排他的論理和演算器（ＸＯＲ）１４により、乱数生成部１３により生成された乱数ｆ＿ｋ（Ｃ＿２）と、平文Ｍと、の排他的論理和演算を実行する（ステップＳ１３）。ここで、ビット列Ａとビット列Ｂとの排他的論理和をＡ  ＸＯＲ  Ｂと表すものとすると、この処理による演算結果Ｃ＿１は、以下のようになる。
【００４８】
【数２】
2010056848.tif 000004
【００４９】
次に、暗号文出力部１５により、暗号化処理部１２により暗号化されたセッション鍵Ｃ＿２と、排他的論理和演算器（ＸＯＲ）１４による演算結果Ｃ＿１と、を暗号文（Ｃ１、Ｃ２）として出力する（ステップＳ１４）。
【００５０】
以上によれば、暗号化装置１は、マスタ鍵ｋ＿０により任意のセッション鍵ｋを暗号化し、この暗号化したセッション鍵Ｃ＿２を鍵として平文Ｍを暗号化する。このため、暗号化装置１が平文Ｍを暗号化する際に、鍵寄託機関は暗号化装置１にセッション鍵ｋを送信する必要がないので、鍵寄託機関の負荷を軽減できる。また、マスタ鍵ｋ＿０は、耐タンパデバイス１１に格納されるので、マスタ鍵ｋ＿０の難読化を実現し、マスタ鍵ｋ＿０の耐タンパ性を向上させることができる。
【００５１】
＜復号化装置の構成＞
本実施形態に係る復号化装置２は、暗号化装置１により暗号化された暗号文（Ｃ１、Ｃ２）を復号化して、平文Ｍを出力する。この復号化装置２は、図３に示すように、乱数生成部２１および排他的論理和演算器（ＸＯＲ）２２を備える。
【００５２】
乱数生成部２１は、入力された暗号文（Ｃ１、Ｃ２）に含まれる暗号化されたセッション鍵Ｃ＿２と、入力されたセッション鍵ｋと、を用いて乱数を生成する。排他的論理和演算器（ＸＯＲ）２２は、乱数生成部２１により生成された乱数と、入力された暗号文（Ｃ１、Ｃ２）に含まれる排他的論理和演算器（ＸＯＲ）１４による演算結果Ｃ＿１と、の排他的論理和演算を実行し、平文Ｍとして出力する。
【００５３】
＜復号化装置の処理＞
次に、図４を用いて、復号化装置の処理について説明する。
【００５４】
まず、乱数生成部２１により、暗号文（Ｃ１、Ｃ２）に含まれる暗号化されたセッション鍵Ｃ＿２と、セッション鍵ｋと、を用いて乱数を生成する（ステップＳ２１）。この処理では、乱数生成部１３により生成される乱数と等しい乱数ｆ＿ｋ（Ｃ＿２）が生成される。
【００５５】
次に、排他的論理和演算器（ＸＯＲ）２２により、乱数生成部２１により生成された乱数ｆ＿ｋ（Ｃ＿２）と、暗号文（Ｃ１、Ｃ２）に含まれる排他的論理和演算器（ＸＯＲ）１４による演算結果Ｃ＿１と、の排他的論理和演算を実行し、平文Ｍして出力する（ステップＳ２２）。この処理により出力される平文Ｍは、以下のようになる。
【００５６】
【数３】
2010056848.tif 000005
【００５７】
以上によれば、復号化装置２は、セッション鍵ｋを用いて暗号文（Ｃ１、Ｃ２）を復号化して、平文Ｍを出力できる。
【００５８】
＜鍵寄託機関装置の構成＞
本実施形態に係る鍵寄託機関装置３は、暗号化装置１の耐タンパデバイス１１に格納されているマスタ鍵を寄託されており、図５に示すように、鍵復号化処理部３１、乱数生成部３２、および排他的論理和演算器（ＸＯＲ）３３を備える。
【００５９】
鍵復号化処理部３１は、入力されたマスタ鍵ｋ＿０により、入力された暗号文（Ｃ１、Ｃ２）に含まれる暗号化されたセッション鍵Ｃ＿２を復号化する。乱数生成部３２は、入力された暗号文（Ｃ１、Ｃ２）に含まれる暗号化されたセッション鍵Ｃ＿２と、鍵復号化処理部３１により復号化されたセッション鍵ｋと、を用いて乱数を生成する。排他的論理和演算器（ＸＯＲ）３３は、乱数生成部３２により生成された乱数と、入力された暗号文（Ｃ１、Ｃ２）に含まれる排他的論理和演算器（ＸＯＲ）１４による演算結果Ｃ＿１と、の排他的論理和演算を実行し、平文Ｍとして出力する。
【００６０】
＜鍵寄託機関装置の処理＞
次に、図６を用いて、復号化装置の処理について説明する。
【００６１】
まず、鍵復号化処理部３１により、マスタ鍵ｋ＿０により、暗号文（Ｃ１、Ｃ２）に含まれる暗号化されたセッション鍵Ｃ＿２を復号化する（ステップＳ３１）。この処理では、暗号文（Ｃ１、Ｃ２）からセッション鍵ｋが得られる。
【００６２】
次に、乱数生成部３２により、暗号文（Ｃ１、Ｃ２）に含まれる暗号化されたセッション鍵Ｃ＿２と、鍵復号化処理部３１により得られたセッション鍵ｋと、を用いて乱数を生成する（ステップＳ３２）。この処理では、乱数生成部１３や乱数生成部２１により生成される乱数と等しい乱数ｆ＿ｋ（Ｃ＿２）が生成される。
【００６３】
次に、排他的論理和演算器（ＸＯＲ）３２により、乱数生成部３２により生成された乱数ｆ＿ｋ（Ｃ＿２）と、暗号文（Ｃ１、Ｃ２）に含まれる排他的論理和演算器（ＸＯＲ）１４による演算結果Ｃ＿１と、の排他的論理和演算を実行し、平文Ｍとして出力する（ステップＳ３３）。この処理により出力される平文Ｍは、以下のようになる。
【００６４】
【数４】
2010056848.tif 000006
【００６５】
以上によれば、鍵寄託機関装置３は、暗号文（Ｃ１、Ｃ２）に含まれる暗号化されたセッション鍵Ｃ＿２をマスタ鍵ｋ＿０により復号化してセッション鍵ｋを導出し、このセッション鍵ｋを用いて暗号文（Ｃ１、Ｃ２）を復号化して、平文Ｍを出力できる。このため、鍵寄託機関装置３では、マスタ鍵ｋ＿０を用いて暗号文（Ｃ１、Ｃ２）を復号して平文Ｍを出力し、この平文Ｍを確認することにより、不正行為が行われたか否かを検証できる。
【００６６】
なお、本発明の暗号化装置１の処理を行うプログラムをコンピュータ読み取り可能な記録媒体に記憶し、この記録媒体に記録されたプログラムを暗号化装置１（コンピュータシステム）に読み込ませ、実行させることによって、本発明を実現できる。ここでいうコンピュータシステムとは、ＯＳや周辺装置等のハードウェアを含む。また、復号化装置２および鍵寄託機関装置３についても、暗号化装置１と同様に、それぞれの処理を行うプログラムをコンピュータ読み取り可能な記録媒体に記憶し、これら記憶媒体に記憶されたプログラムを復号化装置２および鍵寄託機関装置３（いずれもコンピュータシステム）に読み込ませ、実行させることによって、本発明を実現できる。
【００６７】
また、「コンピュータシステム」は、ＷＷＷ（Ｗｏｒｌｄ  Ｗｉｄｅ  Ｗｅｂ）システムを利用している場合であれば、ホームページ提供環境（あるいは表示環境）も含むものとする。また、上述のプログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク（通信網）や電話回線等の通信回線（通信線）のように情報を伝送する機能を有する媒体のことをいう。
【００６８】
また、上述のプログラムは、上述の機能の一部を実現するためのものであってもよい。さらに、上述の機能をコンピュータシステムにすでに記録されているプログラムとの組合せで実現できるもの、いわゆる差分ファイル（差分プログラム）であってもよい。
【００６９】
以上、この発明の実施形態につき、図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【図面の簡単な説明】
【００７０】
【図１】本発明の実施形態に係る暗号化装置の構成図である。
【図２】本発明の実施形態に係る暗号化装置の動作を示すフローチャートである。
【図３】本発明の実施形態に係る復号化装置の構成図である。
【図４】本発明の実施形態に係る復号化装置の動作を示すフローチャートである。
【図５】本発明の実施形態に係る鍵寄託機関装置の構成図である。
【図６】本発明の実施形態に係る鍵寄託機関装置の動作を示すフローチャートである。
【符号の説明】
【００７１】
１・・・暗号化装置
２・・・復号化装置
３・・・鍵寄託機関装置
１１・・・耐タンパデバイス
１２・・・暗号化処理部
１３、２１、３２・・・乱数生成部
１４、２２、３３・・・排他的論理和演算器（ＸＯＲ）
１５・・・暗号文出力部
３１・・・鍵復号化処理部
【図１】
2010056848.tif 000007
【図２】
2010056848.tif 000008
【図３】
2010056848.tif 000009
【図４】
2010056848.tif 000010
【図５】
2010056848.tif 000011
【図６】
2010056848.tif 000012