説明

暗号化装置、暗号化方法、プログラム、およびプログラム記憶媒体

【課題】鍵寄託機関の負荷を軽減できる暗号化装置、暗号化方法、プログラム、およびプログラム記憶媒体を提供すること。
【解決手段】暗号化装置1は、マスタ鍵を格納する耐タンパデバイス11と、マスタ鍵によりセッション鍵を暗号化する暗号化処理部12と、暗号化処理部12により暗号化されたセッション鍵と、セッション鍵と、を用いて乱数を生成する乱数生成部13と、乱数生成部13により生成された乱数と、平文と、の排他的論理和演算を行う排他的論理和演算器(XOR)14と、暗号化処理部12により暗号化されたセッション鍵と、排他的論理和演算器(XOR)14による演算結果と、を暗号文として出力する暗号文出力部15と、を備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、暗号化装置、暗号化方法、プログラム、およびプログラム記憶媒体に関する。
【背景技術】
【0002】
近年、インターネットの目覚しい普及により、コンピュータを利用した様々なサービスが提供されている。こうして提供されるサービスの中には、その通信内容を秘匿化するためにセッション鍵を用いた暗号を利用するものがある。
【0003】
セッション鍵は、例えば、第3者機関としての鍵寄託機関に寄託され、利用者が暗号化や復号化を行う際に、鍵寄託機関から利用者に送信される。ところが、セッション鍵は更新周期が短いので、全てのセッション鍵を鍵寄託機関が保持しなくてはならず、鍵寄託機関の資源を圧迫するおそれがあった。
【0004】
そこで、セッション鍵の代わりに、シードを鍵寄託機関が保持する方法が提案されている(例えば、特許文献1参照)。ここで、シードとは、1つから複数のセッション鍵を導出できるものであり、セッション鍵よりも更新期間が長いもののことである。この方法によれば、セッション鍵を保持する場合と比べて、鍵寄託機関において必要となる資源量を削減できる。
【特許文献1】特許第3535023号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
ところが、上述のような方法では、利用者が暗号化や復号化を行うたびに、鍵寄託機関は、シードからセッション鍵を導出し、導出したセッション鍵を利用者に送信しなくてはならない。このため、鍵寄託機関の負荷が大きくなるおそれがあった。
【0006】
そこで、本発明は、上述の課題に鑑みてなされたものであり、鍵寄託機関の負荷を軽減できる暗号化装置、暗号化方法、プログラム、およびプログラム記憶媒体を提供することを目的とする。
【課題を解決するための手段】
【0007】
本発明は、上記の課題を解決するために、以下の事項を提案している。
【0008】
(1)本発明は、マスタ鍵を格納する耐タンパデバイス(例えば、図1の耐タンパデバイス11に相当)と、前記マスタ鍵によりセッション鍵を暗号化する暗号化処理手段(例えば、図1の暗号化処理部12に相当)と、前記暗号化処理手段により暗号化された後のセッション鍵と、前記暗号化処理手段により暗号化される前のセッション鍵と、を用いて乱数を生成する暗号化用乱数生成手段(例えば、図1の乱数生成部13に相当)と、前記暗号化用乱数生成手段により生成された乱数と、平文と、の排他的論理和演算を行う暗号化用排他的論理和演算手段(例えば、図1の排他的論理和演算器(XOR)14に相当)と、前記暗号化処理手段により暗号化された後のセッション鍵と、前記暗号化用排他的論理和演算手段による演算結果と、を暗号文として出力する暗号文出力手段(例えば、図1の暗号文出力部15に相当)と、を備えることを特徴とする暗号化装置を提案している。
【0009】
この発明によれば、暗号化装置は、暗号化処理手段により、耐タンパデバイスに格納されるマスタ鍵によりセッション鍵を暗号化する。そして、暗号化用乱数生成手段により、暗号化処理手段により暗号化された後のセッション鍵と、暗号化処理手段により暗号化される前のセッション鍵と、を用いて乱数を生成する。そして、暗号化用排他的論理和演算手段により、暗号化用乱数生成手段により生成された乱数と、平文と、の排他的論理和演算を行う。さらに、暗号文出力手段により、暗号化処理手段により暗号化された後のセッション鍵と、暗号化用排他的論理和演算手段による演算結果と、を暗号文として出力する。
【0010】
すなわち、暗号化装置は、マスタ鍵により任意のセッション鍵を暗号化し、この暗号化した後のセッション鍵を鍵として平文を暗号化する。このため、暗号化装置が平文を暗号化する際に、鍵寄託機関は暗号化装置にセッション鍵を送信する必要がないので、鍵寄託機関の負荷を軽減できる。また、マスタ鍵を耐タンパデバイスに格納するため、マスタ鍵の耐タンパ性を向上させることができる。
【0011】
(2)本発明は、(1)の暗号文を復号化する復号化装置について、前記暗号文に含まれる前記暗号化処理手段により暗号化された後のセッション鍵と、前記暗号化処理手段により暗号化される前のセッション鍵と、を用いて乱数を生成する復号化用乱数生成手段(例えば、図3の乱数生成部21に相当)と、前記復号化用乱数生成手段により生成された乱数と、前記暗号文に含まれる前記暗号化用排他的論理和演算手段による演算結果と、の排他的論理和演算を行い、平文として出力する復号化用排他的論理和演算手段(例えば、図3の排他的論理和演算器(XOR)22に相当)と、を備えることを特徴とする復号化装置を提案している。
【0012】
この発明によれば、復号化装置は、復号化用乱数生成手段により、暗号文に含まれる暗号化処理手段により暗号化された後のセッション鍵と、暗号化処理手段により暗号化される前のセッション鍵と、を用いて乱数を生成する。そして、復号化用排他的論理和演算手段により、復号化用乱数生成手段により生成された乱数と、暗号文に含まれる暗号化用排他的論理和演算手段による演算結果と、の排他的論理和演算を行い、平文として出力する。
【0013】
このため、復号化装置は、セッション鍵を用いて暗号文を復号化して、平文を出力できる。
【0014】
(3)本発明は、(1)のマスタ鍵が寄託された鍵寄託機関装置について、前記暗号文に含まれる前記暗号化処理手段により暗号化された後のセッション鍵を前記マスタ鍵により復号化する鍵復号化処理手段(例えば、図5の鍵復号化処理部31に相当)と、前記暗号文に含まれる前記暗号化処理手段により暗号化された後のセッション鍵と、前記鍵復号化処理手段により復号化された後のセッション鍵と、を用いて乱数を生成する鍵寄託機関用乱数生成手段(例えば、図5の乱数生成部32に相当)と、前記鍵寄託機関用乱数生成手段により生成された乱数と、前記暗号文に含まれる前記暗号化用排他的論理和演算手段による演算結果と、の排他的論理和演算を行い、平文として出力する鍵寄託機関用排他的論理和演算手段(例えば、図5の排他的論理和演算器(XOR)33に相当)と、を備えることを特徴とする鍵寄託機関装置を提案している。
【0015】
この発明によれば、鍵寄託機関装置は、鍵復号化処理手段により、暗号文に含まれる暗号化処理手段により暗号化された後のセッション鍵をマスタ鍵により復号化する。そして、鍵寄託機関用乱数生成手段により、暗号文に含まれる暗号化処理手段により暗号化された後のセッション鍵と、鍵復号化処理手段により復号化された後のセッション鍵と、を用いて乱数を生成する。さらに、鍵寄託機関用排他的論理和演算手段により、鍵寄託機関用乱数生成手段により生成された乱数と、暗号文に含まれる暗号化用排他的論理和演算手段による演算結果と、の排他的論理和演算を行い、平文として出力する。
【0016】
このため、鍵寄託機関装置は、暗号文に含まれる暗号化された後のセッション鍵をマスタ鍵により復号化し、この復号化した後のセッション鍵を用いて暗号文を復号化して、平文を出力できる。
【0017】
(4)本発明は、耐タンパデバイスに格納されるマスタ鍵によりセッション鍵を暗号化する第1のステップ(例えば、図2のステップS11に相当)と、前記第1のステップで暗号化した後のセッション鍵と、前記第1のステップで暗号化する前のセッション鍵と、を用いて乱数を生成する第2のステップ(例えば、図2のステップS12に相当)と、前記第2のステップで生成した乱数と、平文と、の排他的論理和演算を行う第3のステップ(例えば、図2のステップS13に相当)と、前記第1のステップで暗号化した後のセッション鍵と、前記第3のステップでの演算結果と、を暗号文として出力する第4のステップ(例えば、図2のステップS14に相当)と、を備えることを特徴とする暗号化方法を提案している。
【0018】
この発明によれば、耐タンパデバイスに格納されるマスタ鍵によりセッション鍵を暗号化し、この暗号化した後のセッション鍵と、暗号化する前のセッション鍵と、を用いて乱数を生成する。そして、生成した乱数と、平文と、の排他的論理和演算を行い、暗号化した後のセッション鍵と、排他的論理和演算の演算結果と、を暗号文として出力する。
【0019】
すなわち、マスタ鍵により任意のセッション鍵を暗号化し、この暗号化した後のセッション鍵を鍵として平文を暗号化する。このため、平文を暗号化する際に、鍵寄託機関は暗号化を行う暗号化装置にセッション鍵を送信する必要がないので、鍵寄託機関の負荷を軽減できる。また、マスタ鍵を耐タンパデバイスに格納するため、マスタ鍵の耐タンパ性を向上させることができる。
【0020】
(5)本発明は、(4)の暗号文を復号化する復号化方法について、前記暗号文に含まれる前記第1のステップで暗号化された後のセッション鍵と、前記第1のステップで暗号化される前のセッション鍵と、を用いて乱数を生成する第5のステップ(例えば、図4のステップS21に相当)と、前記第5のステップで生成した乱数と、前記暗号文に含まれる前記第3のステップでの演算結果と、の排他的論理和演算を行い、平文として出力する第6のステップ(例えば、図4のステップS22に相当)と、を備えることを特徴とする復号化方法を提案している。
【0021】
この発明によれば、暗号文に含まれる暗号化された後のセッション鍵と、暗号化される前のセッション鍵と、を用いて乱数を生成し、この生成した乱数と、暗号文に含まれる排他的論理和演算の演算結果と、の排他的論理和演算を行い、平文として出力する。
【0022】
このため、セッション鍵を用いて暗号文を復号化して、平文を出力できる。
【0023】
(6)本発明は、(4)のマスタ鍵が寄託された鍵寄託機関装置において前記暗号文を復号化する復号化方法について、前記暗号文に含まれる前記第1のステップで暗号化された後のセッション鍵を前記マスタ鍵により復号化する第5のステップ(例えば、図6のステップS31に相当)と、前記第5のステップで復号化した後のセッション鍵と、前記暗号文に含まれる前記第1のステップで暗号化された後のセッション鍵と、を用いて乱数を生成する第6のステップ(例えば、図6のステップS32に相当)と、前記第6のステップで生成した乱数と、前記暗号文に含まれる前記第3のステップでの演算結果と、の排他的論理和演算を行い、平文として出力する第7のステップ(例えば、図6のステップS33に相当)と、を備えることを特徴とする前記マスタ鍵が寄託された鍵寄託機関装置において前記暗号文を復号化する復号化方法を提案している。
【0024】
この発明によれば、暗号文に含まれる暗号化された後のセッション鍵をマスタ鍵により復号化し、この復号化した後のセッション鍵と、暗号文に含まれる暗号化された後のセッション鍵と、を用いて乱数を生成する。そして、生成した乱数と、暗号文に含まれる排他的論理和演算の演算結果と、の排他的論理和演算を行い、平文として出力する。
【0025】
このため、暗号文に含まれる暗号化された後のセッション鍵をマスタ鍵により復号化し、この復号化した後のセッション鍵を用いて暗号文を復号化して、平文を出力できる。
【0026】
(7)本発明は、耐タンパデバイスに格納されるマスタ鍵によりセッション鍵を暗号化する第1のステップ(例えば、図2のステップS11に相当)と、前記第1のステップで暗号化した後のセッション鍵と、前記第1のステップで暗号化する前のセッション鍵と、を用いて乱数を生成する第2のステップ(例えば、図2のステップS12に相当)と、前記第2のステップで生成した乱数と、平文と、の排他的論理和演算を行う第3のステップ(例えば、図2のステップS13に相当)と、前記第1のステップで暗号化した後のセッション鍵と、前記第3のステップでの演算結果と、を暗号文として出力する第4のステップ(例えば、図2のステップS14に相当)と、をコンピュータに実行させるためのプログラムを提案している。
【0027】
この発明によれば、プログラムをコンピュータに実行させることで、耐タンパデバイスに格納されるマスタ鍵によりセッション鍵を暗号化し、この暗号化した後のセッション鍵と、暗号化する前のセッション鍵と、を用いて乱数を生成する。そして、生成した乱数と、平文と、の排他的論理和演算を行い、暗号化した後のセッション鍵と、排他的論理和演算の演算結果と、を暗号文として出力する。
【0028】
すなわち、マスタ鍵により任意のセッション鍵を暗号化し、この暗号化した後のセッション鍵を鍵として平文を暗号化する。このため、平文を暗号化する際に、鍵寄託機関は暗号化を行う暗号化装置にセッション鍵を送信する必要がないので、鍵寄託機関の負荷を軽減できる。また、マスタ鍵を耐タンパデバイスに格納するため、マスタ鍵の耐タンパ性を向上させることができる。
【0029】
(8)本発明は、(7)の暗号文の復号化をコンピュータに実行させるためのプログラムであって、前記暗号文に含まれる前記第1のステップで暗号化された後のセッション鍵と、前記第1のステップで暗号化される前のセッション鍵と、を用いて乱数を生成する第5のステップ(例えば、図4のステップS21に相当)と、前記第5のステップで生成した乱数と、前記暗号文に含まれる前記第3のステップでの演算結果と、の排他的論理和演算を行い、平文として出力する第6のステップ(例えば、図4のステップS22に相当)と、をコンピュータに実行させるためのプログラムを提案している。
【0030】
この発明によれば、プログラムをコンピュータに実行させることで、暗号文に含まれる暗号化された後のセッション鍵と、暗号化される前のセッション鍵と、を用いて乱数を生成し、この生成した乱数と、暗号文に含まれる排他的論理和演算の演算結果と、の排他的論理和演算を行い、平文として出力する。
【0031】
このため、セッション鍵を用いて暗号文を復号化して、平文を出力できる。
【0032】
(9)本発明は、(7)のマスタ鍵が寄託されたコンピュータに、前記暗号文の復号化を実行させるためのプログラムであって、前記暗号文に含まれる前記第1のステップで暗号化された後のセッション鍵を前記マスタ鍵により復号化する第5のステップ(例えば、図6のステップS31に相当)と、前記暗号文に含まれる前記第1のステップで暗号化された後のセッション鍵と、前記第5のステップで復号化した後のセッション鍵と、を用いて乱数を生成する第6のステップ(例えば、図6のステップS32に相当)と、前記第6のステップで生成した乱数と、前記暗号文に含まれる前記第3のステップでの演算結果と、の排他的論理和演算を行い、平文として出力する第7のステップ(例えば、図6のステップS33に相当)と、をコンピュータに実行させるためのプログラムを提案している。
【0033】
この発明によれば、プログラムをコンピュータに実行させることで、暗号文に含まれる暗号化された後のセッション鍵をマスタ鍵により復号化し、この復号化した後のセッション鍵と、暗号文に含まれる暗号化された後のセッション鍵と、を用いて乱数を生成する。そして、生成した乱数と、暗号文に含まれる排他的論理和演算の演算結果と、の排他的論理和演算を行い、平文として出力する。
【0034】
このため、暗号文に含まれる暗号化された後のセッション鍵をマスタ鍵により復号化し、この復号化した後のセッション鍵を用いて暗号文を復号化して、平文を出力できる。
【0035】
(10)本発明は、耐タンパデバイスに格納されるマスタ鍵によりセッション鍵を暗号化する第1のステップ(例えば、図2のステップS11に相当)と、前記第1のステップで暗号化した後のセッション鍵と、前記第1のステップで暗号化する前のセッション鍵と、を用いて乱数を生成する第2のステップ(例えば、図2のステップS12に相当)と、前記第2のステップで生成した乱数と、平文と、の排他的論理和演算を行う第3のステップ(例えば、図2のステップS13に相当)と、前記第1のステップで暗号化した後のセッション鍵と、前記第3のステップでの演算結果と、を暗号文として出力する第4のステップ(例えば、図2のステップS14に相当)と、をコンピュータに実行させるためのプログラムを格納するプログラム記憶媒体を提案している。
【0036】
この発明によれば、プログラム記憶媒体に記憶されたプログラムをコンピュータに実行させることで、耐タンパデバイスに格納されるマスタ鍵によりセッション鍵を暗号化し、この暗号化した後のセッション鍵と、暗号化する前のセッション鍵と、を用いて乱数を生成する。そして、生成した乱数と、平文と、の排他的論理和演算を行い、暗号化した後のセッション鍵と、排他的論理和演算の演算結果と、を暗号文として出力する。
【0037】
すなわち、マスタ鍵により任意のセッション鍵を暗号化し、この暗号化した後のセッション鍵を鍵として平文を暗号化する。このため、平文を暗号化する際に、鍵寄託機関は暗号化を行う暗号化装置にセッション鍵を送信する必要がないので、鍵寄託機関の負荷を軽減できる。また、マスタ鍵を耐タンパデバイスに格納するため、マスタ鍵の耐タンパ性を向上させることができる。
【発明の効果】
【0038】
この発明によれば、暗号化装置は、マスタ鍵により任意のセッション鍵を暗号化し、この暗号化した後のセッション鍵を鍵として平文を暗号化する。このため、暗号化装置が平文を暗号化する際に、鍵寄託機関は暗号化装置にセッション鍵を送信する必要がないので、鍵寄託機関の負荷を軽減できる。また、マスタ鍵を耐タンパデバイスに格納するため、マスタ鍵の耐タンパ性を向上させることができる。
【発明を実施するための最良の形態】
【0039】
以下、本発明の実施形態について、図面を用いて、詳細に説明する。
なお、本実施形態における構成要素は適宜、既存の構成要素等との置き換えが可能であり、また、他の既存の構成要素との組合せを含む様々なバリエーションが可能である。したがって、本実施形態の記載をもって、特許請求の範囲に記載された発明の内容を限定するものではない。
【0040】
図1から図6を用いて、本発明の実施形態について説明する。
【0041】
<暗号化装置の構成>
本実施形態に係る暗号化装置1は、図1に示すように、耐タンパデバイス11、暗号化処理部12、乱数生成部13、排他的論理和演算器(XOR)14、および暗号文出力部15を備える。
【0042】
耐タンパデバイス11は、マスタ鍵k_0を格納する。暗号化処理部12は、耐タンパデバイス11に格納されるマスタ鍵k_0により、入力されたセッション鍵kを暗号化する。乱数生成部13は、暗号化処理部12により暗号化されたセッション鍵と、入力されたセッション鍵kと、を用いて乱数を生成する。排他的論理和演算器(XOR)14は、乱数生成部13により生成された乱数と、入力された平文Mと、の排他的論理和演算を実行する。暗号文出力部15は、暗号化処理部12により暗号化されたセッション鍵と、排他的論理和演算器(XOR)14による演算結果と、を暗号文(C1、C2)として出力する。
【0043】
<暗号化装置の処理>
次に、図2を用いて、暗号化装置の処理について説明する。
【0044】
まず、暗号化処理部12により、耐タンパデバイス11に格納されるマスタ鍵k_0により、セッション鍵kを暗号化する(ステップS11)。この処理では、暗号化の方式としてブロック鍵暗号を用いるものとし、この処理により暗号化されたセッション鍵C_2を以下のように表すものとする。
【0045】
【数1】

【0046】
次に、乱数生成部13により、暗号化処理部12により暗号化されたセッション鍵C_2と、セッション鍵kと、を用いて乱数を生成する(ステップS12)。ここで、この処理により生成された乱数をf_k(C_2)と表すものとする。
【0047】
次に、排他的論理和演算器(XOR)14により、乱数生成部13により生成された乱数f_k(C_2)と、平文Mと、の排他的論理和演算を実行する(ステップS13)。ここで、ビット列Aとビット列Bとの排他的論理和をA XOR Bと表すものとすると、この処理による演算結果C_1は、以下のようになる。
【0048】
【数2】

【0049】
次に、暗号文出力部15により、暗号化処理部12により暗号化されたセッション鍵C_2と、排他的論理和演算器(XOR)14による演算結果C_1と、を暗号文(C1、C2)として出力する(ステップS14)。
【0050】
以上によれば、暗号化装置1は、マスタ鍵k_0により任意のセッション鍵kを暗号化し、この暗号化したセッション鍵C_2を鍵として平文Mを暗号化する。このため、暗号化装置1が平文Mを暗号化する際に、鍵寄託機関は暗号化装置1にセッション鍵kを送信する必要がないので、鍵寄託機関の負荷を軽減できる。また、マスタ鍵k_0は、耐タンパデバイス11に格納されるので、マスタ鍵k_0の難読化を実現し、マスタ鍵k_0の耐タンパ性を向上させることができる。
【0051】
<復号化装置の構成>
本実施形態に係る復号化装置2は、暗号化装置1により暗号化された暗号文(C1、C2)を復号化して、平文Mを出力する。この復号化装置2は、図3に示すように、乱数生成部21および排他的論理和演算器(XOR)22を備える。
【0052】
乱数生成部21は、入力された暗号文(C1、C2)に含まれる暗号化されたセッション鍵C_2と、入力されたセッション鍵kと、を用いて乱数を生成する。排他的論理和演算器(XOR)22は、乱数生成部21により生成された乱数と、入力された暗号文(C1、C2)に含まれる排他的論理和演算器(XOR)14による演算結果C_1と、の排他的論理和演算を実行し、平文Mとして出力する。
【0053】
<復号化装置の処理>
次に、図4を用いて、復号化装置の処理について説明する。
【0054】
まず、乱数生成部21により、暗号文(C1、C2)に含まれる暗号化されたセッション鍵C_2と、セッション鍵kと、を用いて乱数を生成する(ステップS21)。この処理では、乱数生成部13により生成される乱数と等しい乱数f_k(C_2)が生成される。
【0055】
次に、排他的論理和演算器(XOR)22により、乱数生成部21により生成された乱数f_k(C_2)と、暗号文(C1、C2)に含まれる排他的論理和演算器(XOR)14による演算結果C_1と、の排他的論理和演算を実行し、平文Mして出力する(ステップS22)。この処理により出力される平文Mは、以下のようになる。
【0056】
【数3】

【0057】
以上によれば、復号化装置2は、セッション鍵kを用いて暗号文(C1、C2)を復号化して、平文Mを出力できる。
【0058】
<鍵寄託機関装置の構成>
本実施形態に係る鍵寄託機関装置3は、暗号化装置1の耐タンパデバイス11に格納されているマスタ鍵を寄託されており、図5に示すように、鍵復号化処理部31、乱数生成部32、および排他的論理和演算器(XOR)33を備える。
【0059】
鍵復号化処理部31は、入力されたマスタ鍵k_0により、入力された暗号文(C1、C2)に含まれる暗号化されたセッション鍵C_2を復号化する。乱数生成部32は、入力された暗号文(C1、C2)に含まれる暗号化されたセッション鍵C_2と、鍵復号化処理部31により復号化されたセッション鍵kと、を用いて乱数を生成する。排他的論理和演算器(XOR)33は、乱数生成部32により生成された乱数と、入力された暗号文(C1、C2)に含まれる排他的論理和演算器(XOR)14による演算結果C_1と、の排他的論理和演算を実行し、平文Mとして出力する。
【0060】
<鍵寄託機関装置の処理>
次に、図6を用いて、復号化装置の処理について説明する。
【0061】
まず、鍵復号化処理部31により、マスタ鍵k_0により、暗号文(C1、C2)に含まれる暗号化されたセッション鍵C_2を復号化する(ステップS31)。この処理では、暗号文(C1、C2)からセッション鍵kが得られる。
【0062】
次に、乱数生成部32により、暗号文(C1、C2)に含まれる暗号化されたセッション鍵C_2と、鍵復号化処理部31により得られたセッション鍵kと、を用いて乱数を生成する(ステップS32)。この処理では、乱数生成部13や乱数生成部21により生成される乱数と等しい乱数f_k(C_2)が生成される。
【0063】
次に、排他的論理和演算器(XOR)32により、乱数生成部32により生成された乱数f_k(C_2)と、暗号文(C1、C2)に含まれる排他的論理和演算器(XOR)14による演算結果C_1と、の排他的論理和演算を実行し、平文Mとして出力する(ステップS33)。この処理により出力される平文Mは、以下のようになる。
【0064】
【数4】

【0065】
以上によれば、鍵寄託機関装置3は、暗号文(C1、C2)に含まれる暗号化されたセッション鍵C_2をマスタ鍵k_0により復号化してセッション鍵kを導出し、このセッション鍵kを用いて暗号文(C1、C2)を復号化して、平文Mを出力できる。このため、鍵寄託機関装置3では、マスタ鍵k_0を用いて暗号文(C1、C2)を復号して平文Mを出力し、この平文Mを確認することにより、不正行為が行われたか否かを検証できる。
【0066】
なお、本発明の暗号化装置1の処理を行うプログラムをコンピュータ読み取り可能な記録媒体に記憶し、この記録媒体に記録されたプログラムを暗号化装置1(コンピュータシステム)に読み込ませ、実行させることによって、本発明を実現できる。ここでいうコンピュータシステムとは、OSや周辺装置等のハードウェアを含む。また、復号化装置2および鍵寄託機関装置3についても、暗号化装置1と同様に、それぞれの処理を行うプログラムをコンピュータ読み取り可能な記録媒体に記憶し、これら記憶媒体に記憶されたプログラムを復号化装置2および鍵寄託機関装置3(いずれもコンピュータシステム)に読み込ませ、実行させることによって、本発明を実現できる。
【0067】
また、「コンピュータシステム」は、WWW(World Wide Web)システムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。また、上述のプログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。
【0068】
また、上述のプログラムは、上述の機能の一部を実現するためのものであってもよい。さらに、上述の機能をコンピュータシステムにすでに記録されているプログラムとの組合せで実現できるもの、いわゆる差分ファイル(差分プログラム)であってもよい。
【0069】
以上、この発明の実施形態につき、図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【図面の簡単な説明】
【0070】
【図1】本発明の実施形態に係る暗号化装置の構成図である。
【図2】本発明の実施形態に係る暗号化装置の動作を示すフローチャートである。
【図3】本発明の実施形態に係る復号化装置の構成図である。
【図4】本発明の実施形態に係る復号化装置の動作を示すフローチャートである。
【図5】本発明の実施形態に係る鍵寄託機関装置の構成図である。
【図6】本発明の実施形態に係る鍵寄託機関装置の動作を示すフローチャートである。
【符号の説明】
【0071】
1・・・暗号化装置
2・・・復号化装置
3・・・鍵寄託機関装置
11・・・耐タンパデバイス
12・・・暗号化処理部
13、21、32・・・乱数生成部
14、22、33・・・排他的論理和演算器(XOR)
15・・・暗号文出力部
31・・・鍵復号化処理部

【特許請求の範囲】
【請求項1】
マスタ鍵を格納する耐タンパデバイスと、
前記マスタ鍵によりセッション鍵を暗号化する暗号化処理手段と、
前記暗号化処理手段により暗号化された後のセッション鍵と、前記暗号化処理手段により暗号化される前のセッション鍵と、を用いて乱数を生成する暗号化用乱数生成手段と、
前記暗号化用乱数生成手段により生成された乱数と、平文と、の排他的論理和演算を行う暗号化用排他的論理和演算手段と、
前記暗号化処理手段により暗号化された後のセッション鍵と、前記暗号化用排他的論理和演算手段による演算結果と、を暗号文として出力する暗号文出力手段と、
を備えることを特徴とする暗号化装置。
【請求項2】
請求項1に記載の前記暗号文を復号化する復号化装置であって、
前記暗号文に含まれる前記暗号化処理手段により暗号化された後のセッション鍵と、前記暗号化処理手段により暗号化される前のセッション鍵と、を用いて乱数を生成する復号化用乱数生成手段と、
前記復号化用乱数生成手段により生成された乱数と、前記暗号文に含まれる前記暗号化用排他的論理和演算手段による演算結果と、の排他的論理和演算を行い、平文として出力する復号化用排他的論理和演算手段と、
を備えることを特徴とする復号化装置。
【請求項3】
請求項1に記載の前記マスタ鍵が寄託された鍵寄託機関装置であって、
前記暗号文に含まれる前記暗号化処理手段により暗号化された後のセッション鍵を前記マスタ鍵により復号化する鍵復号化処理手段と、
前記暗号文に含まれる前記暗号化処理手段により暗号化された後のセッション鍵と、前記鍵復号化処理手段により復号化された後のセッション鍵と、を用いて乱数を生成する鍵寄託機関用乱数生成手段と、
前記鍵寄託機関用乱数生成手段により生成された乱数と、前記暗号文に含まれる前記暗号化用排他的論理和演算手段による演算結果と、の排他的論理和演算を行い、平文として出力する鍵寄託機関用排他的論理和演算手段と、
を備えることを特徴とする鍵寄託機関装置。
【請求項4】
耐タンパデバイスに格納されるマスタ鍵によりセッション鍵を暗号化する第1のステップと、
前記第1のステップで暗号化した後のセッション鍵と、前記第1のステップで暗号化する前のセッション鍵と、を用いて乱数を生成する第2のステップと、
前記第2のステップで生成した乱数と、平文と、の排他的論理和演算を行う第3のステップと、
前記第1のステップで暗号化した後のセッション鍵と、前記第3のステップでの演算結果と、を暗号文として出力する第4のステップと、
を備えることを特徴とする暗号化方法。
【請求項5】
請求項4に記載の前記暗号文を復号化する復号化方法であって、
前記暗号文に含まれる前記第1のステップで暗号化された後のセッション鍵と、前記第1のステップで暗号化される前のセッション鍵と、を用いて乱数を生成する第5のステップと、
前記第5のステップで生成した乱数と、前記暗号文に含まれる前記第3のステップでの演算結果と、の排他的論理和演算を行い、平文として出力する第6のステップと、
を備えることを特徴とする復号化方法。
【請求項6】
請求項4に記載の前記マスタ鍵が寄託された鍵寄託機関装置において前記暗号文を復号化する復号化方法であって、
前記暗号文に含まれる前記第1のステップで暗号化された後のセッション鍵を前記マスタ鍵により復号化する第5のステップと、
前記第5のステップで復号化した後のセッション鍵と、前記暗号文に含まれる前記第1のステップで暗号化された後のセッション鍵と、を用いて乱数を生成する第6のステップと、
前記第6のステップで生成した乱数と、前記暗号文に含まれる前記第3のステップでの演算結果と、の排他的論理和演算を行い、平文として出力する第7のステップと、
を備えることを特徴とする前記マスタ鍵が寄託された鍵寄託機関装置において前記暗号文を復号化する復号化方法。
【請求項7】
耐タンパデバイスに格納されるマスタ鍵によりセッション鍵を暗号化する第1のステップと、
前記第1のステップで暗号化した後のセッション鍵と、前記第1のステップで暗号化する前のセッション鍵と、を用いて乱数を生成する第2のステップと、
前記第2のステップで生成した乱数と、平文と、の排他的論理和演算を行う第3のステップと、
前記第1のステップで暗号化した後のセッション鍵と、前記第3のステップでの演算結果と、を暗号文として出力する第4のステップと、
をコンピュータに実行させるためのプログラム。
【請求項8】
請求項7に記載の前記暗号文の復号化をコンピュータに実行させるためのプログラムであって、
前記暗号文に含まれる前記第1のステップで暗号化された後のセッション鍵と、前記第1のステップで暗号化される前のセッション鍵と、を用いて乱数を生成する第5のステップと、
前記第5のステップで生成した乱数と、前記暗号文に含まれる前記第3のステップでの演算結果と、の排他的論理和演算を行い、平文として出力する第6のステップと、
をコンピュータに実行させるためのプログラム。
【請求項9】
請求項4に記載の前記マスタ鍵が寄託されたコンピュータに、前記暗号文の復号化を実行させるためのプログラムであって、
前記暗号文に含まれる前記第1のステップで暗号化された後のセッション鍵を前記マスタ鍵により復号化する第5のステップと、
前記暗号文に含まれる前記第1のステップで暗号化された後のセッション鍵と、前記第5のステップで復号化した後のセッション鍵と、を用いて乱数を生成する第6のステップと、
前記第6のステップで生成した乱数と、前記暗号文に含まれる前記第3のステップでの演算結果と、の排他的論理和演算を行い、平文として出力する第7のステップと、
をコンピュータに実行させるためのプログラム。
【請求項10】
耐タンパデバイスに格納されるマスタ鍵によりセッション鍵を暗号化する第1のステップと、
前記第1のステップで暗号化した後のセッション鍵と、前記第1のステップで暗号化する前のセッション鍵と、を用いて乱数を生成する第2のステップと、
前記第2のステップで生成した乱数と、平文と、の排他的論理和演算を行う第3のステップと、
前記第1のステップで暗号化した後のセッション鍵と、前記第3のステップでの演算結果と、を暗号文として出力する第4のステップと、
をコンピュータに実行させるためのプログラムを格納するプログラム記憶媒体。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公開番号】特開2010−56848(P2010−56848A)
【公開日】平成22年3月11日(2010.3.11)
【国際特許分類】
【出願番号】特願2008−219298(P2008−219298)
【出願日】平成20年8月28日(2008.8.28)
【出願人】(000208891)KDDI株式会社 (2,700)
【Fターム(参考)】