(57)【要約】      （修正有）【課題】オールオアナッシング暗号化に基づいてデータを暗号化する方法およびシステムを提供する。【解決手段】データを暗号化する方法は、平文ビット列の形態の暗号化すべきデータと、秘密でも公開でもよい暗号化鍵とを提供するステップと、データをそれぞれ同じサイズの奇数個のブロックに分割するステップと、ブロックを暗号化鍵で暗号化することにより、暗号化ブロックを含む中間暗号文を得るステップと、排他的論理和演算に基づいて中間暗号文を線型変換することにより最終暗号文を得るステップを備え、最終暗号文のブロックが少なくとも２つの相異なるストレージサーバに分散され、各ストレージサーバが最終暗号文の少なくとも２個のブロックを保存する。【選択図】図２
2020074039.tif 000002
【特許請求の範囲】
【請求項１】
オールオアナッシング暗号化に基づいてデータを暗号化する方法において、
ａ）入力モジュールが、暗号化すべきデータと、公開でもよい暗号化鍵とを提供するステップと、
ｂ）暗号化モジュールが、前記データをそれぞれ同じサイズの奇数個のブロックに分割するステップと、
ｃ）前記暗号化モジュールが、前記ブロックを前記暗号化鍵で暗号化することにより、暗号化ブロックを含む中間暗号文を得るステップであって、前記中間暗号文の対応するブロックとなる前の回に暗号化された平文ブロックと、現在の回の各平文ブロックと、を組み合わせたものを、前記暗号化鍵を用いて再帰的に暗号化し、すべての中間暗号文ブロックを直和するステップと、
ｄ）前記中間暗号文を表すベクトルとの単一の行列乗算を用いて変換モジュールによって前記中間暗号文を線型変換することにより最終暗号文を得るステップであって、前記ベクトル行列乗算がＸＯＲおよびＡＮＤ演算を用いて実行され、前記行列が可逆かつその逆行列と等しく、前記最終暗号文がブロックを含み、各ブロックが、ステップｄ）の前の前記中間暗号文内の同じ位置に対応する暗号化ブロック以外の、ステップｄ）の前の前記中間暗号文のすべての暗号化ブロックの和によって表されるステップと
を備え、
前記最終暗号文のブロックが、少なくとも２つの相異なるストレージサーバに分散され、各ストレージサーバが前記最終暗号文の少なくとも２個のブロックを保存し、
偶数番目の中間暗号文ブロックが、対応する平文ブロックならびに前記ランダムシードおよび当該偶数の暗号化の結果とのＸＯＲ演算に基づいて生成され、奇数番目の暗号文ブロックが、対応する平文ブロックの暗号化および前に生成された偶数番目の中間暗号文ブロックとのＸＯＲ演算の結果である、
ことを特徴とする、データを暗号化する方法。
【請求項２】
前記最終暗号文のブロックが、前記中間暗号文ブロックの和と前記中間暗号文の対応するブロックとを直和することによって生成されることを特徴とする請求項１に記載の方法。
【請求項３】
ランダムデータが前記中間暗号文内にブロックとして追加されることを特徴とする請求
項１ないし２のいずれか１項に記載の方法。
【請求項４】
ステップｂ）による暗号化を実行するため、意味論的に安全な暗号化および対称暗号化の方式が使用されることを特徴とする請求項１ないし３のいずれか１項に記載の方法。
【請求項５】
オールオアナッシング暗号化に基づいてデータを暗号化するシステムにおいて、
暗号化すべきデータと、公開でもよい暗号化鍵とを提供するように動作可能な入力モジュールと、
前記入力モジュールによって提供される前記データをそれぞれ同じサイズの奇数個のブロックに分割し、前記ブロックを前記暗号化鍵で暗号化することにより、暗号化ブロックを含む中間暗号文を得るように動作可能な暗号化モジュールであって、前記中間暗号文の対応するブロックとなる前の回に暗号化された平文ブロックと、現在の回の各平文ブロックと、を組み合わせたものを、前記暗号化鍵を用いて再帰的に暗号化し、すべての中間暗号文ブロックを直和する、暗号化モジュールと、
前記中間暗号文を表すベクトルとの単一の行列乗算を用いて前記中間暗号文を線型変換することにより最終暗号文を得るように動作可能な変換モジュールであって、前記ベクトル行列乗算がＸＯＲおよびＡＮＤ演算を用いて実行され、前記行列が可逆かつその逆行列と等しく、前記最終暗号文がブロックを含み、各ブロックが、前記線型変換の前の前記中間暗号文内の同じ位置に対応する暗号化ブロック以外の、前記線型変換の前の前記中間暗号文のすべての暗号化ブロックの和によって表される、変換モジュールと
を備え、
前記最終暗号文のブロックが、少なくとも２つの相異なるストレージサーバに分散され、各ストレージサーバが前記最終暗号文の少なくとも２個のブロックを保存し、
偶数番目の中間暗号文ブロックが、対応する平文ブロックならびに前記ランダムシードおよび当該偶数の暗号化の結果とのＸＯＲ演算に基づいて生成され、奇数番目の暗号文ブロックが、対応する平文ブロックの暗号化および前に生成された偶数番目の中間暗号文ブロックとのＸＯＲ演算の結果である、
ことを特徴とする、データを暗号化するシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、オールオアナッシング（all-or-nothing）暗号化に基づいてデータを暗号化する方法に関する。
【０００２】
また、本発明は、オールオアナッシング暗号化に基づいてデータを暗号化するシステムであって、好ましくはコンピュータ、１個以上のプロセッサおよび／またはセキュリティモジュールの形態で、好ましくは請求項１ないし１２のいずれか１項に記載の方法を実行するシステムに関する。
【背景技術】
【０００３】
本発明は、セキュリティ一般に適用可能であるが、以下ではクラウドセキュリティに関して説明する。
【０００４】
今日、クラウドセキュリティは、多くのアプリケーションおよびサービスにおいてますます重要になってきている。クラウドに保存されたデータの機密性を強化するために使用可能な重要技術の１つとして、いわゆるオールオアナッシング暗号化がある。オールオアナッシング暗号化は、データの意味論的セキュリティを提供しながら、所与のクライアントにとって、暗号文のすべてのブロックがダウンロード可能または既知である場合に限ってデータが復元可能であることを保証する。したがって、オールオアナッシング暗号化は、データの暗号化鍵の秘匿性のみに依拠するのではない。入力平文の有意味な情報を取得するためには、いかなる敵も、暗号文のすべてのデータまたはブロックにアクセス可能であることが要求される。したがって、オールオアナッシング暗号化は、透過的な鍵管理プロセスを保証し、クラウドストレージのような分散ストレージに効率的にデータを保存するために使用可能な情報分散技術を自然に補完する。
【０００５】
従来のオールオアナッシング暗号化は、例えば非特許文献１や非特許文献２に開示されている。
【０００６】
もう１つの従来のオールオアナッシング暗号化が、非特許文献３に開示されている。
【０００７】
これらの従来技術のほとんどは、オールオアナッシング暗号化のオールオアナッシング変換の後に、暗号化層を追加している。したがって、従来のオールオアナッシング暗号化は、少なくとも２回の暗号化を必要し、オールオアナッシング変換が暗号化を用いて実現されるため、これらの従来のオールオアナッシング暗号化は、特に大規模なファイルを扱う際に非効率的である。
【先行技術文献】
【非特許文献】
【０００８】
【非特許文献１】R. Rivest, "All-or-Nothing Encryption and The Package Transform", In Procedings of Fast Software Encryption, pages 210-218, 1997
【非特許文献２】Victor Boyko, "On the Security Properties of OAEP as an All-or-Nothing Transform", CRYPTO 1999: 503-518. 1998
【非特許文献３】D. R. Stinson, "Something About All or Nothing (Transforms)", In Designs, Codes and Crypthography, pages 133-138, 2001
【発明の概要】
【発明が解決しようとする課題】
【０００９】
したがって、本発明の目的は、オールオアナッシング暗号化に基づいてデータを暗号化する方法およびシステムにおいて、より効率的で、特に従来のオールオアナッシング暗号化と比べてパフォーマンスを改善した方法およびシステムを提供することである。
【００１０】
また、本発明の目的は、オールオアナッシング暗号化に基づいてデータを暗号化する方法およびシステムにおいて、意味論的に安全であって、暗号化鍵が敵に知られても平文の復元が不可能な方法およびシステムを提供することである。
【課題を解決するための手段】
【００１１】
上記の目的は、請求項１の方法および請求項１２のシステムによって達成される。
【００１２】
請求項１には、オールオアナッシング暗号化に基づいてデータを暗号化する方法が規定される。
【００１３】
請求項１によれば、本方法は、
ａ）入力モジュールが、暗号化すべきデータと、公開でもよい暗号化鍵とを提供するステップと、
ｂ）暗号化モジュールが、前記データをそれぞれ同じサイズの奇数個のブロックに分割するステップと、
ｃ）前記暗号化モジュールが、前記ブロックを前記暗号化鍵で暗号化することにより、暗号化ブロックを含む中間暗号文を得るステップであって、前記中間暗号文の対応するブロックとなる前の回に暗号化された平文ブロックと、現在の回の各平文ブロックと、を組み合わせたものを、前記暗号化鍵を用いて再帰的に暗号化し、すべての中間暗号文ブロックを直和するステップと、
ｄ）前記中間暗号文を表すベクトルとの単一の行列乗算を用いて変換モジュールによって前記中間暗号文を線型変換することにより最終暗号文を得るステップであって、前記ベクトル行列乗算がＸＯＲおよびＡＮＤ演算を用いて実行され、前記行列が可逆かつその逆行列と等しく、前記最終暗号文がブロックを含み、各ブロックが、ステップｄ）の前の前記中間暗号文内の同じ位置に対応する暗号化ブロック以外の、ステップｄ）の前の前記中間暗号文のすべての暗号化ブロックの和によって表されるステップと
を備え、
前記最終暗号文のブロックが、少なくとも２つの相異なるストレージサーバに分散され、各ストレージサーバが前記最終暗号文の少なくとも２個のブロックを保存し、
偶数番目の中間暗号文ブロックが、対応する平文ブロックならびに前記ランダムシードおよび当該偶数の暗号化の結果とのＸＯＲ演算に基づいて生成され、奇数番目の暗号文ブロックが、対応する平文ブロックの暗号化および前に生成された偶数番目の中間暗号文ブロックとのＸＯＲ演算の結果である、
ことを特徴とする。
【００１４】
オールオアナッシング暗号化に基づいてデータを暗号化するシステムであって、好ましくはコンピュータ、１個以上のプロセッサおよび／またはセキュリティモジュールの形態で、好ましくは請求項に記載の方法を実行するシステムが規定される。
【００１５】
請求項５によれば、本システムは、
暗号化すべきデータと、公開でもよい暗号化鍵とを提供するように動作可能な入力モジュールと、
前記入力モジュールによって提供される前記データをそれぞれ同じサイズの奇数個のブロックに分割し、前記ブロックを前記暗号化鍵で暗号化することにより、暗号化ブロックを含む中間暗号文を得るように動作可能な暗号化モジュールであって、前記中間暗号文の対応するブロックとなる前の回に暗号化された平文ブロックと、現在の回の各平文ブロックと、を組み合わせたものを、前記暗号化鍵を用いて再帰的に暗号化し、すべての中間暗号文ブロックを直和する、暗号化モジュールと、
前記中間暗号文を表すベクトルとの単一の行列乗算を用いて前記中間暗号文を線型変換することにより最終暗号文を得るように動作可能な変換モジュールであって、前記ベクトル行列乗算がＸＯＲおよびＡＮＤ演算を用いて実行され、前記行列が可逆かつその逆行列と等しく、前記最終暗号文がブロックを含み、各ブロックが、前記線型変換の前の前記中間暗号文内の同じ位置に対応する暗号化ブロック以外の、前記線型変換の前の前記中間暗号文のすべての暗号化ブロックの和によって表される、変換モジュールと
を備え、
前記最終暗号文のブロックが、少なくとも２つの相異なるストレージサーバに分散され、各ストレージサーバが前記最終暗号文の少なくとも２個のブロックを保存し、
偶数番目の中間暗号文ブロックが、対応する平文ブロックならびに前記ランダムシードおよび当該偶数の暗号化の結果とのＸＯＲ演算に基づいて生成され、奇数番目の暗号文ブロックが、対応する平文ブロックの暗号化および前に生成された偶数番目の中間暗号文ブロックとのＸＯＲ演算の結果である、
ことを特徴とする。
【００１６】
本発明によって認識されたこととして、必要なのは１回の暗号化および１回の排他的論理和演算のみであるため、効率が向上する。
【００１７】
また、本発明によって認識されたこととして、効率的な線型変換により、効率的な意味論的セキュリティ方式、好ましくは対称暗号化方式が提供される。
【００１８】
また、本発明によって認識されたこととして、提供される方法およびシステムは、暗号化鍵が敵に知られても平文の復元は不可能である。特に、暗号化鍵が公開されても、提供される方法およびシステムは依然として意味論的セキュリティを備える。
【００１９】
すなわち、平文ビット列および暗号化鍵Ｋの入力後、平文はブロックｐ１，...，ｐＮに分割される。ただしＮは奇数であり、各ブロックサイズはサイズＩであり、Ｉは好ましくは、使用される特定のブロック暗号のブロックサイズである。次に、入力ブロックｐ１，...，ｐＮのセットが暗号化鍵Ｋの下で暗号化されることにより、中間暗号文ｃ′＝｛Ｓ，ｃ１′，...，ｃＮ′｝が得られる。好ましくはＳは乱数シードであり、ｃ０′と置かれる。中間暗号文に線型変換が適用されると、排他的論理和演算によって最終暗号文が得られる。好ましくは、加法および乗法は、それぞれＸＯＲおよびＡＮＤ演算によって実現される。
【００２０】
暗号化鍵Ｋが与えられると、中間暗号文ｃ′は、線型変換の対応する逆演算を用いて最終暗号文ｃによって計算することができ、暗号化鍵Ｋで中間暗号文ｃ′を復号することができる。
【００２１】
以下、本発明による方法およびシステムがオールオアナッシング暗号化に基づくことを示す。中間暗号文がｃ′＝ｃ１′，...，ｃＮ′であり、Ｎが奇数であり、暗号文ｃがパラメータｃ０′，...，ｃＮ′によるオールオアナッシング暗号化である場合、最終暗号文ｃのどのＮ個のブロックが与えられても、敵は中間暗号文ｃ′の１ブロックしか復元することができない。
【００２２】
一般性を失うことなく、敵にはブロックｃ０，...，ｃ（Ｎ−１）が与えられると仮定してよい。Ｎは奇数なので、ｃＮ′＝ｃ０  ＸＯＲ  ｃ１  ＸＯＲ  ...ｃ（Ｎ−１）を計算するのは容易である。
【００２３】
残りの未知ブロックすなわちｃ１′，...，ｃ（Ｎ−１）′のセットは、［ｃ０...ｃＮ］＊Ｍとして計算することができる。ただしＭは、対角成分の値を０、他の成分の値を１としたＮ×Ｎ行列である。行列ＭのランクはＮ−１である。というのは、例えば、最後列ははじめのＮ−１列のＸＯＲをとることで計算できるからである。行列のランクがフルでなく、提供される方法のステップａ）−ｄ）の出力が擬似ランダムであるので、敵がすべての未知のｃ１′，...，ｃ（Ｎ−１）′を復元することは計算量的に実行不可能である。
【００２４】
なお、最終暗号文ブロックｃ０，...，ｃ（Ｎ−１）が与えられ、中間暗号文ブロックｃＮ′が復元されても、他の任意のブロックを復元することは計算量的に実行不可能であることをさらに示すことができる。
【００２５】
敵がある中間暗号文ブロックｃｉ′を正しく計算することが可能であれば、その敵は他のすべての未知の中間暗号文ブロックｃ１′，...，ｃ（Ｎ−１）′を正しく計算することが可能である、と仮定することができる。しかし、これは上記の観察、すなわち、最終暗号文ｃのＮ個の要素が与えられた場合、中間暗号文ｃ′内のすべての要素を復元するのは計算量的に実行不可能である、という観察と矛盾する。
【００２６】
したがって、最終暗号文ｃのＮ個のブロックが与えられた場合、中間暗号文ｃ′内の１個以外のすべてのブロックは不確定である、と結論することができる。
【００２７】
以下、次のことが示される。すなわち、Ｆをブロック暗号とし、与えられたＦ（）に対してｉ≠ｊとして平文のブロックがｐｉ＝Ｆ（ｃｉ，ｃｊ）であるとき、本発明による方法およびシステムによれば、１個以外のすべての最終暗号文ブロックと、暗号化鍵Ｋとを有する敵は、いかなる平文ブロックをも取得することができない、ということが保証される。
【００２８】
したがって、最終暗号文ｃの任意のＮ個のブロックが与えられた場合に、中間暗号文の１個のブロックｃｊ′のみを復元することができるという上記のことに基づくと、敵に暗号化鍵Ｋおよび中間暗号文の１個のブロックｃｊ′が与えられた場合に、以下の状況が起こり得ると仮定することができる。
・ｐｉ＝Ｆ（ｃｊ，ｃｉ′）であり、ｃｉ′は敵には未知のサイズＩの擬似ランダムビット列であるので、平文ブロックｐｊを計算することは計算量的に実行不可能である。
・ｉ＜ｊのとき、ｐｉはｃｊ′とは（計算量的に）独立であるので、平文ブロックｐｉを計算することは計算量的に実行不可能である。
・ｋ＜ｊ＋１のとき、ｐｊ＋１＝Ｆ（ｃｊ＋１′，ｃｋ′）であり、ｃｋ′およびｃｊ＋１′は敵には未知のサイズＩの擬似ランダムビット列であるので、平文ブロックｐｊ＋１を計算することは計算量的に実行不可能である。
・ｊ＞ｉ＋１のとき、ｐｊ＝Ｆ（ｃｊ，ｃｍ′）であり、ｃｍ、ｃｊ′は両方とも敵には未知のサイズＩの２個の擬似ランダムビット列であるので、ｐｊを計算することは計算量的に実行不可能である。
【００２９】
したがって、敵が秘密の暗号化鍵Ｋおよび最終暗号文ｃ内の任意のＮ個のブロックにのみアクセス可能である場合、その敵は、平文ｐに関していかなる有意味な情報も取得できない。これは、平文の一方向セキュリティを保証する。さらに、暗号化鍵Ｋおよび最終暗号文の２個以外のすべてのブロックが与えられた場合に、平文の意味論的セキュリティを保証することが可能であることも示すことができる。
【００３０】
さらなる特徴、利点および好ましい実施形態は、後続の従属請求項に記載される。
【００３１】
好ましい実施形態によれば、前記暗号化鍵は公開である。これにより、例えば、暗号化鍵を鍵管理サーバあるいはシステムに提供することができ、本方法のフレキシビリティが向上するので、鍵管理の利用が可能となり、暗号化鍵の開示に対するセキュリティ制限が少なくなる。
【００３２】
また、好ましい実施形態によれば、前記中間暗号文を線型変換することが、前記中間暗号文を表すベクトルとの単一の行列乗算を用いて実行される。これにより、中間暗号文の線型変換を容易に計算して最終暗号文を得ることが可能となる。さらなる利点として、線型変換を並列に実行することができる。
【００３３】
また、好ましい実施形態によれば、前記行列が可逆かつその逆行列と等しく、好ましくは前記行列は、対角成分の値が０でそれ以外の値が１である対角行列の形態で与えられる。これにより、行列の各成分について１ビットのみの記憶領域を備えればよいので、中間暗号文を線型変換する際の効率がさらに向上し、行列のための記憶領域が節減される。
【００３４】
また、好ましい実施形態によれば、前記ベクトル行列乗算がＸＯＲおよびＡＮＤ演算を用いて実行される。これにより、ベクトル行列乗算の効率的な計算が可能となる。
【００３５】
また、好ましい実施形態によれば、ステップｄ）の後、好ましくはベクトルの形態で表された前記最終暗号文がブロックを含み、各ブロックが、ステップｄ）の前の前記中間暗号文内の同じ位置に対応する暗号化ブロック以外の、ステップｃ）の前の前記中間暗号文のすべての暗号化ブロックの和によって表される。これにより、暗号ブロック連鎖モードでのブロック暗号化に基づくオールオアナッシング暗号化が提供される。
【００３６】
また、好ましい実施形態によれば、ステップｃ）−ｄ）が、
７ａ）前記中間暗号文の対応するブロックとなる前の回に暗号化された平文ブロックと、好ましくはＸＯＲ演算により、組み合わされた前記暗号化鍵を用いて、現在の回の各平文ブロックを再帰的に暗号化するステップと、
７ｂ）ステップ７ａ）によるすべての中間暗号文ブロックを直和するステップと、
７ｃ）ステップ７ｂ）の結果と前記中間暗号文の対応するブロックとを直和することによって、前記最終暗号文のブロックを生成するステップと
によって実行される。
【００３７】
これにより、ステップｃ）−ｄ）を実行するための暗号ブロック連鎖暗号化モードが効率的に実現される。
【００３８】
また、好ましい実施形態によれば、前記最終暗号文のブロックが、好ましくは少なくとも２つの相異なるストレージサービスを提供する少なくとも２つの相異なるストレージサーバに分散される。これにより、最終暗号文が、相異なるストレージサーバに分散されるので、セキュリティがさらに向上する。相異なるストレージサーバが、相異なるオペレーティングシステム上で動作する場合には、あるストレージサービスのセキュリティリークが他のストレージサーバの他のストレージサービスにアクセスするために使用可能でないため、セキュリティはさらに向上する。
【００３９】
また、好ましい実施形態によれば、各ストレージサーバが前記最終暗号文の少なくとも２個のブロックを保存する。これにより、暗号化データに対する高レベルのセキュリティを損なわずに、最終暗号文のブロックを保存するために、限定された個数のサーバを効率的に使用することが可能となる。
【００４０】
また、好ましい実施形態によれば、ランダムデータが前記中間暗号文内にブロックとして追加され、好ましくは前記中間暗号文の最初に追加される。これにより、中間暗号文の先頭ブロックとして、暗号化のランダムシードが容易に実現される。
【００４１】
また、好ましい実施形態によれば、偶数個の中間暗号文ブロックが、対応する平文ブロックならびに前記ランダムシードおよび当該偶数の暗号化の結果とのＸＯＲ演算に基づいて生成され、奇数個の暗号文ブロックが、対応する平文ブロックの暗号化および前に生成された偶数個の中間暗号文ブロックとのＸＯＲ演算の結果である。これにより、中間暗号文ブロックの生成が並列化可能となり、さらに効率が向上する。
【００４２】
また、好ましい実施形態によれば、ステップｂ）による暗号化を実行するため、意味論的に安全な暗号化および対称暗号化の方式が使用され、好ましくはカウンタモード暗号化、暗号ブロック連鎖モード暗号化、出力フィードバックモード暗号化および／または暗号フィードバックモード暗号化が使用される。これにより、最適な暗号化を選択することが可能となる。例えば、出力フィードバックモード暗号化を用いることにより、平文とビットごとにＸＯＲをとるためのビット列を事前に生成することが可能となる。また、ブロック連鎖モード暗号化は、平文ブロックが同一である場合に、相異なる暗号文ブロックを提供する。
【００４３】
本発明を好ましい態様で実施するにはいくつもの可能性がある。このためには、一方で請求項１に従属する諸請求項を参照しつつ、他方で図面により例示された本発明の好ましい実施形態についての以下の説明を参照されたい。図面を用いて本発明の好ましい実施形態を説明する際には、本発明の教示による好ましい実施形態一般およびその変形例について説明する。
【図面の簡単な説明】
【００４４】
【図１】本発明の第１の実施形態によるデータのオールオアナッシング暗号化に基づく方法のステップを示す図である。
【図２】本発明の第２の実施形態による方法の主なステップを示す図である。
【発明を実施するための形態】
【００４５】
図１は、本発明の第１の実施形態によるデータのオールオアナッシング暗号化を示している。
【００４６】
図１には、オールオアナッシング暗号化を保証する符号化手続きの具体例が示されている。
【００４７】
図１において、符号化手続きは、ＣＢＣモードにおけるブロック暗号化に対応する。最初の中間暗号文ブロックとしてセットされた初期化ベクトルＩＶが入力されると、中間暗号の他のブロックｃｉは、ｉ番目の平文ブロックｐｉと、前の中間暗号ブロックｃｉ−１′との直和を暗号化鍵Ｋで暗号化した結果によって表される（図１の第４行参照）。そして（第６行参照）、すべての中間暗号ブロックｃ０′，...，ｃＮ′の直和を計算した後、最終暗号文ブロックｃｉが、ｔと、対応する中間暗号ブロックｃｉとを直和することにより計算される（図１の第８行参照）。
【００４８】
別の例として、中間暗号文ｃ′＝Ｓ，ｃ１，...，ｃＮ（ただしＳはランダムシード）を次のように構成してもよい。
・ｃｉ′＝ｐｉ  ＸＯＲ  Ｅｎｃ＿ｋ（Ｓ||ｉ）  ｉ  ＭＯＤ  ２  ＝  ０  のとき
・ｃｉ′＝Ｅｎｃ＿ｋ（ｐｉ  ＸＯＲ  ｃｉ−１′）  ｉ  ＭＯＤ  ２  ＝  １  のとき
【００４９】
この場合は、カウンタモードと暗号ブロック連鎖暗号化モードとの両方の組合せとみなしてもよい。
【００５０】
図２は、本発明の第２の実施形態による方法の主なステップを示している。
【００５１】
図２には、別の実施形態による方法のステップが示されている。
【００５２】
第１のステップで、平文ｐをＮ個の平文ブロックｐ１，...，ｐＮに分割する。ただしＮは奇数である。次に、平文ブロックｐ１，...，ｐＮのそれぞれを例えばＡＥＳを用いて符号化することにより、中間暗号文ブロックｃ１′，...，ｃＮ′を得る。その後、すべての中間暗号文ブロックの直和を用いることにより、全中間暗号文ｔを計算する。次のステップで、各中間暗号文ブロックｃｉと全中間暗号文ｔを直和することにより、対応する最終暗号文ブロックｃ１，...，ｃＮを得る。そして、得られた最終暗号文ブロックｃ１，...，ｃＮを組み合わせて暗号文ｃとする。
【００５３】
暗号化鍵ｋが秘密である場合、提供される暗号化方法は意味論的に安全である。暗号化鍵が公開であり、１個以外のすべての暗号文ブロックが既知である場合、本暗号化方法は一方向性である。暗号化鍵が与えられ、２個以外のすべての暗号文ブロックが既知である場合、本暗号化方法は意味論的に安全でもある。
【００５４】
セキュリティをさらに向上させるには、相異なる得られた最終暗号文ブロックｃ１，...，ｃＮを、相異なるストレージサービスを提供する分散ストレージの相異なるサーバに分散させてもよい。好ましくは、各サーバが複数の最終暗号文ブロックを保存する。
【００５５】
要約すれば、本発明は、効率的な線型変換による効率的な意味論的セキュリティ方式を提供する。本発明は、従来のオールオアナッシング暗号化方法とは異なり、まず暗号化を行い、その後に線型変換を適用する。
【００５６】
本発明は、高速なオールオアナッシング暗号化を提供し、１回の暗号化および１回のビットごとのＸＯＲ演算しか必要としない。本発明によれば、基礎となる暗号化が意味論的に安全であって、暗号化鍵が敵に知られても平文の復元が不可能なので、意味論的セキュリティが可能となる。特に、暗号化鍵が公開された場合でも、２個以外のすべての最終暗号文ブロックがアクセス可能であっても、本発明は依然として意味論的セキュリティを提供する。
【００５７】
本発明の利点の１つとして、本発明によるオールオアナッシング暗号化は効率的であり、特に、従来のオールオアナッシング法のパフォーマンスを改善する。
【００５８】
上記の説明および添付図面の記載に基づいて、当業者は本発明の多くの変形例および他の実施形態に想到し得るであろう。したがって、本発明は、開示した具体的実施形態に限定されるものではなく、変形例および他の実施形態も、添付の特許請求の範囲内に含まれるものと解すべきである。本明細書では特定の用語を用いているが、それらは総称的・説明的意味でのみ用いられており、限定を目的としたものではない。
【図１】
2020074039.tif 000003
【図２】
2020074039.tif 000004