【課題を解決するための手段】
【0011】
上記の目的は、請求項1の方法および請求項12のシステムによって達成される。
【0012】
請求項1には、オールオアナッシング暗号化に基づいてデータを暗号化する方法が規定される。
【0013】
請求項1によれば、本方法は、
a)入力モジュールが、暗号化すべきデータと、公開でもよい暗号化鍵とを提供するステップと、
b)暗号化モジュールが、前記データをそれぞれ同じサイズの奇数個のブロックに分割するステップと、
c)前記暗号化モジュールが、前記ブロックを前記暗号化鍵で暗号化することにより、暗号化ブロックを含む中間暗号文を得るステップであって、前記中間暗号文の対応するブロックとなる前の回に暗号化された平文ブロックと、現在の回の各平文ブロックと、を組み合わせたものを、前記暗号化鍵を用いて再帰的に暗号化し、すべての中間暗号文ブロックを直和するステップと、
d)前記中間暗号文を表すベクトル
と行列の単一
の乗算を用いて変換モジュールによって前記中間暗号文を線型変換することにより最終暗号文を得るステップであって、前記ベクトル
−行列
の乗算がXORおよびAND演算を用いて実行され、前記行列が可逆かつその逆行列と等しく、前記最終暗号文がブロックを含み、各ブロックが、ステップd)の前の前記中間暗号文内の同じ位置に対応する暗号化ブロック以外の、ステップd)の前の前記中間暗号文のすべての暗号化ブロックの和によって表されるステップと
を備え、
前記最終暗号文のブロックが、少なくとも2つの相異なるストレージサーバに分散され、各ストレージサーバが前記最終暗号文の少なくとも2個のブロックを保存し、
偶数番目の中間暗号文ブロックが、対応する平文ブロック
とランダムシードおよび当該偶数の暗号化の結果とのXOR演算に基づいて生成され、奇数番目の暗号文ブロックが、対応する平文ブロック
と前に生成された偶数番目の中間暗号文ブロックとのXOR演算の
暗号化の結果である、
ことを特徴とする。
【0014】
オールオアナッシング暗号化に基づいてデータを暗号化するシステムであって、好ましくはコンピュータ、1個以上のプロセッサおよび/またはセキュリティモジュールの形態で、好ましくは
請求項に記載の方法を実行するシステムが規定される。
【0015】
請求項5によれば、本システムは、
暗号化すべきデータと、公開でもよい暗号化鍵とを提供するように動作可能な入力モジュールと、
前記入力モジュールによって提供される前記データをそれぞれ同じサイズの奇数個のブロックに分割し、前記ブロックを前記暗号化鍵で暗号化することにより、暗号化ブロックを含む中間暗号文を得るように動作可能な暗号化モジュールであって、前記中間暗号文の対応するブロックとなる前の回に暗号化された平文ブロックと、現在の回の各平文ブロックと、を組み合わせたものを、前記暗号化鍵を用いて再帰的に暗号化し、すべての中間暗号文ブロックを直和する、暗号化モジュールと、
前記中間暗号文を表すベクトルと
行列の単一の
乗算を用いて前記中間暗号文を線型変換することにより最終暗号文を得るように動作可能な変換モジュールであって、前記ベクトル
−行列
の乗算がXORおよびAND演算を用いて実行され、前記行列が可逆かつその逆行列と等しく、前記最終暗号文がブロックを含み、各ブロックが、前記線型変換の前の前記中間暗号文内の同じ位置に対応する暗号化ブロック以外の、前記線型変換の前の前記中間暗号文のすべての暗号化ブロックの和によって表される、変換モジュールと
を備え、
前記最終暗号文のブロックが、少なくとも2つの相異なるストレージサーバに分散され、各ストレージサーバが前記最終暗号文の少なくとも2個のブロックを保存し、
偶数番目の中間暗号文ブロックが、対応する平文ブロック
とランダムシードおよび当該偶数の暗号化の結果とのXOR演算に基づいて生成され、奇数番目の暗号文ブロックが、対応する平文ブロック
と前に生成された偶数番目の中間暗号文ブロックとのXOR演算の
暗号化の結果である、
ことを特徴とする。
【0016】
本発明によって認識されたこととして、必要なのは1回の暗号化および1回の排他的論理和演算のみであるため、効率が向上する。
【0017】
また、本発明によって認識されたこととして、効率的な線型変換により、効率的な意味論的セキュリティ方式、好ましくは対称暗号化方式が提供される。
【0018】
また、本発明によって認識されたこととして、提供される方法およびシステムは、暗号化鍵が敵に知られても平文の復元は不可能である。特に、暗号化鍵が公開されても、提供される方法およびシステムは依然として意味論的セキュリティを備える。
【0019】
すなわち、平文ビット列および暗号化鍵Kの入力後、平文はブロックp1,...,p
Nに分割される。ただしNは奇数であり、各ブロックサイズはサイズIであり、Iは好ましくは、使用される特定のブロック暗号のブロックサイズである。次に、入力ブロックp
1,...,p
Nのセットが暗号化鍵Kの下で暗号化されることにより、中間暗号文c′={S,c
1′,...,c
N′}が得られる。好ましくはSは乱数シードであり、c
0′と置かれる。中間暗号文に線型変換が適用されると、排他的論理和演算によって最終暗号文が得られる。好ましくは、加法および乗法は、それぞれXORおよびAND演算によって実現される。
【0020】
暗号化鍵Kが与えられると、中間暗号文c′は、線型変換の対応する逆演算を用いて最終暗号文cによって計算することができ、暗号化鍵Kで中間暗号文c′を復号することができる。
【0021】
以下、本発明による方法およびシステムがオールオアナッシング暗号化に基づくことを示す。中間暗号文がc′=c
1′,...,c
N′であり、Nが奇数であり、暗号文cがパラメータc
0′,...,c
N′によるオールオアナッシング暗号化である場合、最終暗号文cのどのN個のブロックが与えられても、敵は中間暗号文c′の1ブロックしか復元することができない。
【0022】
一般性を失うことなく、敵にはブロックc
0,...,c
(N−1)が与えられると仮定してよい。Nは奇数なので、c
N′=c
0 XOR c
1 XOR ...c
(N−1)を計算するのは容易である。
【0023】
残りの未知ブロックすなわちc
1′,...,c
(N−1)′のセットは、[c
0...c
N]*Mとして計算することができる。ただしMは、対角成分の値を0、他の成分の値を1としたN×N行列である。行列MのランクはN−1である。というのは、例えば、最後列ははじめのN−1列のXORをとることで計算できるからである。行列のランクがフルでなく、提供される方法のステップa)−d)の出力が擬似ランダムであるので、敵がすべての未知のc
1′,...,c
(N−1)′を復元することは計算量的に実行不可能である。
【0024】
なお、最終暗号文ブロックc
0,...,c
(N−1)が与えられ、中間暗号文ブロックc
N′が復元されても、他の任意のブロックを復元することは計算量的に実行不可能であることをさらに示すことができる。
【0025】
敵がある中間暗号文ブロックc
i′を正しく計算することが可能であれば、その敵は他のすべての未知の中間暗号文ブロックc
1′,...,c
(N−1)′を正しく計算することが可能である、と仮定することができる。しかし、これは上記の観察、すなわち、最終暗号文cのN個の要素が与えられた場合、中間暗号文c′内のすべての要素を復元するのは計算量的に実行不可能である、という観察と矛盾する。
【0026】
したがって、最終暗号文cのN個のブロックが与えられた場合、中間暗号文c′内の1個以外のすべてのブロックは不確定である、と結論することができる。
【0027】
以下、次のことが示される。すなわち、Fをブロック暗号とし、与えられたF()に対してi≠jとして平文のブロックがp
i=F(c
i,c
j)であるとき、本発明による方法およびシステムによれば、1個以外のすべての最終暗号文ブロックと、暗号化鍵Kとを有する敵は、いかなる平文ブロックをも取得することができない、ということが保証される。
【0028】
したがって、最終暗号文cの任意のN個のブロックが与えられた場合に、中間暗号文の1個のブロックc
j′のみを復元することができるという上記のことに基づくと、敵に暗号化鍵Kおよび中間暗号文の1個のブロックc
j′が与えられた場合に、以下の状況が起こり得ると仮定することができる。
・p
i=F(c
j,c
i′)であり、c
i′は敵には未知のサイズIの擬似ランダムビット列であるので、平文ブロックp
jを計算することは計算量的に実行不可能である。
・i<jのとき、p
iはc
j′とは(計算量的に)独立であるので、平文ブロックp
iを計算することは計算量的に実行不可能である。
・k<j+1のとき、p
j+1=F(c
j+1′,c
k′)であり、c
k′およびc
j+1′は敵には未知のサイズIの擬似ランダムビット列であるので、平文ブロックp
j+1を計算することは計算量的に実行不可能である。
・j>i+1のとき、p
j=F(c
j,c
m′)であり、c
m、c
j′は両方とも敵には未知のサイズIの2個の擬似ランダムビット列であるので、p
jを計算することは計算量的に実行不可能である。
【0029】
したがって、敵が秘密の暗号化鍵Kおよび最終暗号文c内の任意のN個のブロックにのみアクセス可能である場合、その敵は、平文pに関していかなる有意味な情報も取得できない。これは、平文の一方向セキュリティを保証する。さらに、暗号化鍵Kおよび最終暗号文の2個以外のすべてのブロックが与えられた場合に、平文の意味論的セキュリティを保証することが可能であることも示すことができる。
【0030】
さらなる特徴、利点および好ましい実施形態は、後続の従属請求項に記載される。
【0031】
好ましい実施形態によれば、前記暗号化鍵は公開である。これにより、例えば、暗号化鍵を鍵管理サーバあるいはシステムに提供することができ、本方法のフレキシビリティが向上するので、鍵管理の利用が可能となり、暗号化鍵の開示に対するセキュリティ制限が少なくなる。
【0032】
また、好ましい実施形態によれば、前記中間暗号文を線型変換することが、前記中間暗号文を表すベクトルとの単一の行列乗算を用いて実行される。これにより、中間暗号文の線型変換を容易に計算して最終暗号文を得ることが可能となる。さらなる利点として、線型変換を並列に実行することができる。
【0033】
また、好ましい実施形態によれば、前記行列が可逆かつその逆行列と等しく、好ましくは前記行列は、対角成分の値が0でそれ以外の値が1である対角行列の形態で与えられる。これにより、行列の各成分について1ビットのみの記憶領域を備えればよいので、中間暗号文を線型変換する際の効率がさらに向上し、行列のための記憶領域が節減される。
【0034】
また、好ましい実施形態によれば、前記ベクトル行列乗算がXORおよびAND演算を用いて実行される。これにより、ベクトル行列乗算の効率的な計算が可能となる。
【0035】
また、好ましい実施形態によれば、ステップd)の後、好ましくはベクトルの形態で表された前記最終暗号文がブロックを含み、各ブロックが、ステップd)の前の前記中間暗号文内の同じ位置に対応する暗号化ブロック以外の、ステップc)の前の前記中間暗号文のすべての暗号化ブロックの和によって表される。これにより、暗号ブロック連鎖モードでのブロック暗号化に基づくオールオアナッシング暗号化が提供される。
【0036】
また、好ましい実施形態によれば、ステップc)−d)が、
7a)前記中間暗号文の対応するブロックとなる前の回に暗号化された平文ブロックと、好ましくはXOR演算により、組み合わされた前記暗号化鍵を用いて、現在の回の各平文ブロックを再帰的に暗号化するステップと、
7b)ステップ7a)によるすべての中間暗号文ブロックを直和するステップと、
7c)ステップ7b)の結果と前記中間暗号文の対応するブロックとを直和することによって、前記最終暗号文のブロックを生成するステップと
によって実行される。
【0037】
これにより、ステップc)−d)を実行するための暗号ブロック連鎖暗号化モードが効率的に実現される。
【0038】
また、好ましい実施形態によれば、前記最終暗号文のブロックが、好ましくは少なくとも2つの相異なるストレージサービスを提供する少なくとも2つの相異なるストレージサーバに分散される。これにより、最終暗号文が、相異なるストレージサーバに分散されるので、セキュリティがさらに向上する。相異なるストレージサーバが、相異なるオペレーティングシステム上で動作する場合には、あるストレージサービスのセキュリティリークが他のストレージサーバの他のストレージサービスにアクセスするために使用可能でないため、セキュリティはさらに向上する。
【0039】
また、好ましい実施形態によれば、各ストレージサーバが前記最終暗号文の少なくとも2個のブロックを保存する。これにより、暗号化データに対する高レベルのセキュリティを損なわずに、最終暗号文のブロックを保存するために、限定された個数のサーバを効率的に使用することが可能となる。
【0040】
また、好ましい実施形態によれば、ランダムデータが前記中間暗号文内にブロックとして追加され、好ましくは前記中間暗号文の最初に追加される。これにより、中間暗号文の先頭ブロックとして、暗号化のランダムシードが容易に実現される。
【0041】
また、好ましい実施形態によれば、偶数個の中間暗号文ブロックが、対応する平文ブロックならびに前記ランダムシードおよび当該偶数の暗号化の結果とのXOR演算に基づいて生成され、奇数個の暗号文ブロックが、対応する平文ブロックの暗号化および前に生成された偶数個の中間暗号文ブロックとのXOR演算の結果である。これにより、中間暗号文ブロックの生成が並列化可能となり、さらに効率が向上する。
【0042】
また、好ましい実施形態によれば、ステップb)による暗号化を実行するため、意味論的に安全な暗号化および対称暗号化の方式が使用され、好ましくはカウンタモード暗号化、暗号ブロック連鎖モード暗号化、出力フィードバックモード暗号化および/または暗号フィードバックモード暗号化が使用される。これにより、最適な暗号化を選択することが可能となる。例えば、出力フィードバックモード暗号化を用いることにより、平文とビットごとにXORをとるためのビット列を事前に生成することが可能となる。また、ブロック連鎖モード暗号化は、平文ブロックが同一である場合に、相異なる暗号文ブロックを提供する。
【0043】
本発明を好ましい態様で実施するにはいくつもの可能性がある。このためには、一方で請求項1に従属する諸請求項を参照しつつ、他方で図面により例示された本発明の好ましい実施形態についての以下の説明を参照されたい。図面を用いて本発明の好ましい実施形態を説明する際には、本発明の教示による好ましい実施形態一般およびその変形例について説明する。