説明

連鎖暗号モードのための方法および装置

【課題】従来技術の欠点の解決策に対する代替策を提供する暗号化モードを提供する。
【解決手段】暗号化連鎖モードは平文ブロックNを取り(910)、暗号化鍵N−1と平文ブロックN−1をXORして暗号化鍵Nを生成し(920)、暗号化して(930)暗号文ブロックNを出力する(940)。最初の平文ブロックについての暗号化鍵は、ランダムな初期化ベクトル(IV)とランダムな初期化鍵KをXORすることによって生成される。初期化鍵Kは、鍵スケジュール・アルゴリズムから帰結するサブ鍵であり、および暗号化鍵N−1は単にサブ鍵のうちの一つである。最初の平文ブロックについての暗号化鍵はランダムな初期化ベクトル(IV)と鍵スケジュール・アルゴリズムから帰結する一つのサブ鍵とをXORすることによって生成される。また、対応する復号方法、暗号化装置および復号装置も提供される。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は概括的には暗号に、詳細にはブロックごとのデータの連鎖暗号化に関する。
【背景技術】
【0002】
このセクションは、下記で記載および/または特許請求される本発明のさまざまな側面に関係しうる当技術分野のさまざまな側面を読者に紹介することを意図している。この議論は、本発明のさまざまな側面のよりよい理解を助けるための背景情報を読者に提供する助けとなるものと思われる。よって、これらの陳述がこの観点で読まれるべきであり、従来技術の自認として読まれるべきでないことは理解しておくべきである。
【0003】
テキスト、オーディオおよびビデオのようなデジタル・データを暗号化し、保護するための多くの従来式の暗号化モード(encryption mode)がある。これらのモードの大半は暗号化すべきデータをブロックに分割するものであり、連鎖ステップを含む。そのようなモードの例は暗号ブロック連鎖(CBC: Cipher Block Chaining)、暗号フィードバック・モード(CFB: Cipher FeedBack Mode)および出力フィードバック・モード(OFB: Output FeedBack Mode)である。これらのモードの共通した特徴は、連鎖するステップが直前の暗号化されたデータ・ブロックに基づいているということである。これらのモードの説明は例えば、非特許文献1に見出されうる。
【0004】
たとえば、特許文献1にも記載され、図1に示されているCBCは、現在のデータ・ブロックを暗号化するために直前の暗号化データ・ブロックを使用する。図1は、第一のデータ・ブロック「平文ブロック1」が初期化ベクトル(initialization vector)IVとXORされ、その出力が先進暗号化標準(AES: Advanced Encryption Standard)アルゴリズムおよび鍵を使って暗号化されて、第一の暗号化データ・ブロック「暗号ブロック1」を生成する様子を示している。この第一の暗号化データ・ブロックが、次のデータ・ブロックの暗号化の際に、次のデータ・ブロック「平文ブロック2」とXORされる。このプロセスは、最後のデータ・ブロックが暗号化されるまで繰り返される。復号は逆向きに実行される。すなわち、第一の暗号化データ・ブロックがAESおよび鍵を使って復号され、その出力がIVとXORされて第一のデータ・ブロックが得られる。
【0005】
特許文献1は平文ブロック連鎖(PCB: Plaintext Block Chaining)をも記載している。これは、暗号化に使われる鍵が直前の平文ブロックおよび暗号化全体を通じて同一の暗号化鍵から生成されるものである。この先行技術文献はまた、平文ブロックの暗号化のためにCBCとPCBを交互に使うことも記載している。
【0006】
CBCの平文に何らかの変化があればどこまでも伝搬するが、暗号文の変化は伝搬しない。この欠点を克服するため、伝搬暗号ブロック連鎖モード(PCBC: Propagating Cipher Block Chaining Mode)が開発された。PCBCは図2に示されている。
【0007】
PCBCは、CBCで暗号化されるべき各平文ブロックがまず直前の平文ブロックとXORされるようにしたものと言ってもよい。見て取れるように、平文ブロック2はまず平文ブロック1とXORされ、その出力が次いでCBCと同様に処理される。すなわち、直前の暗号文ブロック「暗号文ブロック1」とXORされ、それが暗号化されて暗号文ブロック2を生成し、この暗号文ブロック2が次の平文ブロックについてのXOR演算において使用される。第一の平文ブロックは、直前の平文ブロックがないので、本質的には、空のブロックとXORされる。
【0008】
しかしながら、ブロックどうしの入れ換えが、入れ換えられたブロックより先の平文ブロックには影響しないことが発見された。これは、そうした変化がどこまでも伝搬されるのではないということを意味する。
【0009】
この欠点を克服するため、修正PCBC(MPCBC: Modified PCBC)と呼ばれるモードが提案されている。MPCBCは図3に示されている。このモードによるPCBCの修正は、直前の平文ブロックとのXORの位置を暗号化前から暗号化後に変えることである。見て取れるように、平文ブロック「平文ブロック2」が直前の暗号文ブロック「暗号文ブロック1」とXORされて暗号化のための入力を与え、暗号化された出力は次いで直前の平文ブロック「平文ブロック1」とXORされて暗号文「暗号文ブロック2」が与えられる。
【0010】
MPCBCはうまく機能するように見えるが、当業者は、暗号プロトコルは、安全だと信じられているプロトコルが実際には予期されないセキュリティの破れを含むことがありうることを認識するであろう。
【先行技術文献】
【特許文献】
【0011】
【特許文献1】国際公開第2007/118829号パンフレット
【非特許文献】
【0012】
【非特許文献1】ブルース・シュナイアー(Bruce Schneier)、『暗号技術大全(Applied Cryptography)第2版』、1996年、ジョン・ワイリー・アンド・サンズ社(John Wiley & Sons, Inc.)、米国
【発明の概要】
【発明が解決しようとする課題】
【0013】
したがって、従来技術の欠点の解決策に対する代替策を提供する暗号化モードが必要とされている。本発明はそのような代替策を提供する。
【課題を解決するための手段】
【0014】
第一の側面では、本発明は、デジタル・データの現在の平文ブロックを暗号化するための鍵を生成する方法に向けられる。現在の平文ブロックは少なくとも二つの平文ブロックの順序付けられた系列に属する。装置が現在の平文ブロックを取得し、前の平文ブロックを第一の暗号化鍵と組み合わせることによって現在の平文ブロックについての第二の暗号化鍵を生成する。
【0015】
第一の好ましい実施形態では、第一の暗号化鍵は初期化暗号化鍵である。
【0016】
第二の好ましい実施形態では、第一の暗号化鍵は、前の平文ブロックの暗号化に使われた暗号化鍵である。前記前の平文ブロックは、前記順序付けられた系列において現在の平文ブロックの直前の平文ブロックである。
【0017】
第二の側面では、本発明は、デジタル・データの現在の平文ブロックを暗号化する方法に向けられる。現在の平文ブロックは少なくとも二つの平文ブロックの順序付けられた系列に属する。暗号化装置が本発明の第一の側面の方法を使って暗号化鍵を取得し、その生成された暗号化鍵とともにある暗号化アルゴリズムを使って現在の平文ブロックを暗号化する。
【0018】
第三の側面では、本発明は、デジタル・データの現在の暗号文ブロックを復号するための鍵を生成する方法に向けられる。現在の暗号文ブロックは少なくとも二つの暗号文ブロックの順序付けられた系列に属する。復号装置が現在の暗号文ブロックを取得し、前に得られた平文ブロックを第一の復号鍵と組み合わせることによって現在の暗号文ブロックについての第二の復号鍵を生成する。
【0019】
第一の好ましい実施形態では、第一の復号鍵は、前の平文ブロックを得るのに使われた復号鍵である。前記前の平文ブロックは、前記順序付けられた系列において現在の暗号文ブロックの直前の暗号文ブロックに対応する。
【0020】
第二の好ましい実施形態では、第二の復号鍵生成ステップにおいて、前記組み合わせの前に、前に得られた平文ブロックに一方向性関数が適用される。
【0021】
第三の好ましい実施形態では、前の平文ブロックの復号に使われた復号鍵は、鍵スケジュール・アルゴリズムから帰結する複数のサブ鍵のうちのあるサブ鍵または前の平文ブロックの復号に使われた複数のサブ鍵のうちのあるサブ鍵である。
【0022】
第四の側面では、本発明は、デジタル・データの現在の暗号文ブロックを復号する方法に向けられる。現在の暗号文ブロックは少なくとも二つの平文ブロックの順序付けられた系列に属する。復号装置が前記第三の側面の方法を使って復号鍵を取得し、その生成された復号鍵とともにある復号アルゴリズムを使って現在の暗号文ブロックを復号する。
【0023】
第五の側面では、本発明は、デジタル・データの現在の平文ブロックを暗号化するための暗号化鍵を生成する装置に向けられる。現在の平文ブロックは少なくとも二つの平文ブロックの順序付けられた系列に属する。本装置は、現在の平文ブロックを取得するよう適応された通信ユニットと、前の平文ブロックを第一の暗号化鍵と組み合わせることによって現在の平文ブロックについての第二の暗号化鍵を生成するよう適応されたプロセッサとを有する。
【0024】
第六の側面では、本発明は、デジタル・データの現在の暗号文ブロックを復号するための復号鍵を生成する装置に向けられる。現在の暗号文ブロックは少なくとも二つの暗号文ブロックの順序付けられた系列に属する。本装置は、現在の暗号文ブロックを取得するよう適応された通信ユニットと、前に得られた平文ブロックを第一の復号鍵と組み合わせることによって現在の暗号文ブロックについての第二の復号鍵を生成するよう適応されたプロセッサとを有する。
【0025】
ある好ましい実施形態では、暗号文ブロックを復号するために複数のサブ鍵が使われ、プロセッサは、前の平文ブロックと組み合わせるべき、複数のサブ鍵のうちからの少なくとも一つのサブ鍵を見出すよう適応される。
【0026】
本発明の好ましい特徴についてこれから、付属の図面を参照しつつ、限定しない例として、述べる。
【図面の簡単な説明】
【0027】
【図1】すでに述べたように、従来技術の暗号ブロック連鎖(CBC)モードを示す図である。
【図2】すでに述べたように、従来技術の伝搬暗号ブロック連鎖(PCBC)モードを示す図である。
【図3】すでに述べたように、従来技術の修正伝搬暗号ブロック連鎖(MPCBC)モードを示す図である。
【図4】本発明の第一の好ましい実施形態に基づく連鎖モードを示す図である。
【図5】本発明の第二の好ましい実施形態に基づく連鎖モードを示す図である。
【図6】本発明の変形実施形態に基づく連鎖モードを示す図である。
【図7】鍵スケジュール・アルゴリズムを示す図である。
【図8】本発明に基づく方法のさらなる変形実施形態を示す図である。
【図9】本発明の連鎖モードのある好ましい実施形態に基づく平文ブロックの暗号化の方法を示す図である。
【図10】本発明の連鎖モードのある好ましい実施形態に基づく平文ブロックの復号の方法を示す図である。
【図11】本発明のある好ましい実施形態に基づく連鎖モードを使った暗号化および復号のための装置を示す図である。
【発明を実施するための形態】
【0028】
本発明は、少なくとも二つの平文ブロックの順序付けられた系列に属するデジタル・データの現在の平文ブロックを暗号化するための暗号化鍵を生成する方法に向けられる。現在の平文ブロックが取得され、現在の平文ブロックについての第二の暗号化鍵が、前の平文ブロックを第一の暗号化鍵と組み合わせることによって生成される。
【0029】
本発明は少なくとも二つの変形がある:逐次式変形および非逐次式変形である。逐次式変形では、第一の暗号化鍵は、前の平文ブロックを暗号化するのに使われた暗号化鍵である。前記前の平文ブロックは、順序付けられた系列において現在の平文ブロックの直前の平文ブロックである。非逐次的な例では、第一の暗号化鍵は初期化暗号化鍵であり、これは、少なくとも二つの平文ブロックについての暗号化鍵の生成について一定のままである。復号側では、これらの変形は復号鍵の生成にも適用される。
【0030】
図4は、本発明の第一の好ましい実施形態、「非逐次的変形」に基づく連鎖モードを示している。図の上半分は暗号化を例解し、図の下半分は復号を例解する。
【0031】
第一の平文ブロック「平文ブロック1」は、先行する平文ブロックがないので特別な仕方で扱う必要がある。この目的に向け、従来技術と同様に、図4の方法は、すでに知られている、好ましくはランダムな初期化鍵Kおよび好ましくはランダムな初期化ベクトルIVを使う。IVは保護されない形で送ることができるが、鍵は暗号化されたコンテンツの受信者に安全に伝送される必要がある。当業者は、鍵Kはたとえば受信者の装置鍵で暗号化されて受信者に送信されてもよいことを認識するであろう。この暗号化ステップは、公開鍵暗号法または対称鍵暗号法を使って実行されうる。対称鍵を使って行われる場合には、本発明は初期化鍵Kの暗号化のためにも使われてもよい。
【0032】
平文ブロック1は、初期化鍵KをランダムなIVとXORしたものから帰結する暗号化鍵を使って暗号化され、それにより暗号文ブロック1が生成される。その後の各平文ブロックは、前の平文ブロックおよび初期化鍵KをXORすることによって得られる新しい暗号化鍵を使って暗号化される。得られた暗号文ブロックは、暗号化されるとすぐに一つずつ送信されてもよいが、二つ以上(全部でもよい)の暗号文ブロックを送信のためにまとめることも可能である。
【0033】
暗号文ブロック1は、初期化鍵KとIVの間のXORから帰結する復号鍵を使って復号され、平文ブロック1を生成する。その後の各暗号文ブロックは、前の生成された平文ブロックと初期化鍵KをXORすることによって得られる新しい復号鍵を使って復号される。
【0034】
当業者は、暗号化鍵および復号鍵が有利には同一であることを認識するであろう。
【0035】
復号プロセスは暗号化時に定義された順序、たとえば暗号文ブロック1、次いで暗号文ブロック2、……、暗号文ブロックNの順でしか実行できないが、暗号化プロセスはこの第一の好ましい実施形態ではいかなる順序で実行されることもできることがわかる。暗号化鍵は少なくとも前の平文ブロックと初期化鍵のような一つの基本鍵に依存するからである。たとえば、逆順に実行することもできる。すなわち、まず暗号文ブロックN、次いで暗号文ブロックN−1、……、暗号文ブロック1と暗号化していくのである。これは、復号時における順序には影響しない。復号時における順序は、暗号文ブロック1、次いで暗号文ブロック2、……、暗号文ブロックNのままである。これが可能なのは、暗号化鍵を修正するのに使われるのが平文ブロックであるためである。
【0036】
図5は、本発明の第二の好ましい実施形態「逐次式変形」に基づく連鎖モードを示している。図の上半分は暗号化を例解し、図の下半分は復号を例解する。
【0037】
第一の平文ブロック「平文ブロック1」は、先行する平文ブロックがないので特別な仕方で扱う必要がある。この目的に向け、従来技術と同様に、図5および図6の方法は、すでに知られている、好ましくはランダムな初期化鍵Kおよび好ましくはランダムな初期化ベクトルIVを使う。IVは保護されない形で送ることができるが、鍵は暗号化されたコンテンツの受信者に安全に送信される必要がある。当業者は、鍵Kはたとえば受信者の装置鍵で暗号化されて受信者に送信されてもよいことを認識するであろう。この暗号化ステップは、公開鍵暗号法または対称鍵暗号法を使って実行されうる。対称鍵を使って行われる場合には、本発明は初期化鍵Kの暗号化のためにも使われてもよい。
【0038】
平文ブロック1は、初期化鍵KをランダムなIVとXORしたものから帰結する暗号化鍵を使って暗号化され、それにより暗号文ブロック1が生成される。その後の各平文ブロックは、前の平文ブロックと前の平文ブロックを暗号化するのに使われた鍵とをXORすることによって得られる新しい暗号化鍵を使って暗号化される。得られた暗号文ブロックは、暗号化されるとすぐに一つずつ送信されてもよいが、二つ以上(全部でもよい)の暗号文ブロックを送信のためにまとめることも可能である。
【0039】
暗号文ブロック1は、初期化鍵KとIVの間のXORから帰結する復号鍵を使って復号され、平文ブロック1を生成する。その後の各暗号文ブロックは、前の生成された平文ブロックと前の暗号文ブロックを復号するのに使われた鍵とをXORすることによって得られる新しい復号鍵を使って復号される。
【0040】
当業者は、暗号化鍵および復号鍵が有利には同一であることを認識するであろう。
【0041】
逐次式変形と非逐次式変形は種々の仕方で実装されることができる。たとえば、暗号化および復号のためにいかなるブロック暗号アルゴリズムが使われることもできる。好ましいアルゴリズムはAESである。もう一つの例は、鍵と平文ブロックとを組み合わせるためにXOR以外の関数を使うことである。たとえばxを鍵Kのビット長として2xを法とする加算などである。平文ブロックを、鍵と組み合わせる前に、たとえば一方向性関数の適用によって修正することも可能である。
【0042】
また、本発明は、CBCのような他のいかなるブロック連鎖モード動作と組み合わせることもできる。CBCモードと組み合わされる場合、本発明は、修正伝搬暗号ブロック連鎖モード(MPCBC)に対する興味深い代替を提供する。本方法の第二の好ましい実施形態とCBCとの組み合わせが図6に示されている。見て取れるように、図5に対して追加された特徴は、平文ブロックが暗号化の前に前の暗号文ブロックと(XORによって)組み合わされるということである。
【0043】
以下では、提案される連鎖モードを一層効率的かつ一層安全にすることのできる具体的な機構について述べる。各ラウンドはデータを処理するためにラウンド鍵またはサブ鍵を使う。各ラウンドの構成は、サブ鍵が変更されるというほかは同じである。すなわち、データは各ラウンドで逐次的に暗号化される。したがって、たいていのブロック暗号は、マスター鍵Kからサブ鍵を計算する鍵スケジュール・アルゴリズムを含む。より正確には、鍵スケジュール・アルゴリズムが鍵Kおよび方向(「暗号化」または「復号」)を処理して、R個のサブ鍵のシーケンス、つまり方向が暗号化であればEK0、EK1、……、EKR-1、方向が復号であればDK0、DK1、……、DKR-1を生成する。暗号化は図7に描かれるようにRラウンドを通じて実行される。小さな暗号化アルゴリズム(TEA: Tiny Encryption Algorithm)のようないくつかのブロック暗号は128ビットのマスター鍵Kが4つの32ビット・ラウンド鍵に分割されて相続くラウンドで反復的に使用される単純な鍵スケジュールをもつ。他のブロック暗号はより複雑な鍵スケジュールをもつ。たとえばAESの場合がそうで、AESは鍵Kをマスター鍵Kと同じ長さをもついくつかのラウンド鍵に拡大する。
【0044】
いくつかのブロックを同じ鍵Kで暗号化するとき、鍵スケジュール・アルゴリズムは一般には、はじめに、第一の平文ブロックの暗号化の前に、一度呼び出される。一連の平文ブロックの暗号化は、前に計算されたサブ鍵を使って行われる。これがCBCやPCBCのような従来技術の方法でのやり方である。本発明では、各ブロックの暗号化のために鍵が変化するということのため、鍵スケジュール・アルゴリズムは複数回、平文ブロックの総数と同じ回数、実行される必要がある。これは、パフォーマンスに対する遅延を導入し、暗号化/復号のスピードを遅くする。これは望ましくないことがありうる。
【0045】
よって、この欠点を回避する本方法の変形実施形態をもつことが有利である。鍵を組み合わせる代わりに、少なくとも一つのサブ鍵を前の平文ブロックと組み合わせる。たとえば、XOR演算は、前のブロックを暗号化/復号するために使われる少なくとも一つのサブ鍵と前の平文ブロック自身との間で行われる。
【0046】
図8は、AESを使った本発明に基づく方法の変形実施形態を示している。AESの128ビット・バージョンは128ビットの鍵Kを、鍵スケジュール・アルゴリズムを通じて方向が暗号化のときは10個の128ビット・サブ鍵EK0、EK1、……、EK9に拡大する。平文ブロック1は10個のサブ鍵を使って逐次反復的に暗号化される。ここで、第一のサブ鍵はEK0とIVとの間のXORから帰結し、他のすべてのサブ鍵EKi(i≠0)は鍵スケジュールによってもともと生成されたサブ鍵と同一のままである。その後の各平文ブロックNは、(前の平文ブロックを暗号化するのに使われた)前の諸サブ鍵を取り、前の平文ブロックN−1をサブ鍵EKnとXORすることによって得られる新しい暗号化サブ鍵を使って逐次反復的に暗号化される。ここで、nはN−1を10で割った余りである(すなわち、n=N−1 % 10)。他のすべてのサブ鍵EKi(i≠n)は前の平文ブロックを暗号化するサブ鍵EKiと同一のままである。たとえば、図8は、初期サブ鍵EK0ないしEK9が各平文ブロックについてどのように修正されるかを示している。平文ブロック1についてはEK0だけが修正され、平文ブロック2についてはEK1だけがさらに修正される、などとなる。
【0047】
復号の際には、鍵Kは鍵スケジュール・アルゴリズムを通じて10個の128ビット・サブ鍵DK0、DK1、……、DK9に拡大される。暗号文ブロック1は10個のサブ鍵を使って逐次反復的に復号される。ここで、第一のサブ鍵はDK0とIVとの間のXORから帰結し、他のすべてのサブ鍵DKi(i≠0)は鍵スケジュールによって平文ブロック1を生成するために生成されたサブ鍵と同一である。その後の各暗号文ブロックNは、(前の暗号文ブロックを復号するのに使われた)前の諸サブ鍵を取り、前の平文ブロックN−1をサブ鍵DKnとXORすることによって得られる新しい復号サブ鍵を使って逐次反復的に復号される。ここで、nはN−1を10で割った余りである(すなわち、n=N−1 % 10)。他のすべてのサブ鍵DKi(i≠n)は前の暗号文ブロックを復号するサブ鍵DKiと同一のままである。
【0048】
復号プロセスが所定の順序(まず暗号文ブロック1、次いで暗号文ブロック2、など)でしか行えないことを考えると、復号装置は、所与の暗号文ブロックの復号のために、どのサブ鍵を前の平文ブロックと組み合わせるべきかを知ることができる。各ブロック復号動作の後、正しいサブ鍵をポイントするためにカウンタ/変数が使用されてもよい。
【0049】
各ブロック暗号化において一つのサブ鍵だけをそれを前の平文とXORすることによって修正することは、古典的な連鎖モードよりいささかも多くない演算を有することを可能にする(各ブロック暗号化において一つのXOR演算が加わるだけである)。よって、この変形実施形態は従来技術の連鎖モードと同じくらい効率的であることが理解されるであろう。
【0050】
本方法は、鍵Kを任意個のサブ鍵に拡大するブロック暗号に一般化できる。サブ鍵の総数がRであれば、各ブロックNは、(前のブロックを暗号化/復号するために使用された)前のサブ鍵を取り、前の平文ブロックN−1をサブ鍵EKn/DKnとXORすることによって得られる新しいサブ鍵を使って暗号化/復号される。ここで、nはn−1をRで割った余りである(すなわち、n=N−1 % R)。
【0051】
別の変形例では、暗号化/復号サブ鍵は、前の暗号文ブロックを暗号化/復号するのに使われたすべての前のサブ鍵を前の平文ブロックN−1とXORすることによって生成される。第一の平文/暗号文ブロックについては、暗号化/復号サブ鍵はみな初期化ベクトルIVとXORされる。
【0052】
別の変形例では、暗号化/復号サブ鍵は、常に同じサブ鍵、たとえばEK0/DK0を前の平文ブロックN−1とXORすることによって生成され、最初のブロックについてはEK0/DK0はIVとXORされる。
【0053】
あるさらなる変形例では、暗号化/復号サブ鍵は、(前の暗号文ブロックを暗号化/復号するのに使われた)少なくとも二つの前のサブ鍵(EKi,EKj)/(DKi,DKj)の任意の組み合わせを、前の平文ブロックと一緒に使って生成される。組み合わせ演算は、これに制約されるものではないが、任意の一方向性関数を使ってもよい。
【0054】
セキュリティの観点からは、いくつかのブロック暗号アルゴリズムは、鍵スケジュールの弱さのために、関係鍵攻撃(related-key attack)の問題がある。メモリ・フットプリントを最小にし、スピードを最大にするよう設計された小さな暗号化アルゴリズム(TEA: Tiny Encryption Algorithm)の場合がそうである。TEAの弱点は、その鍵スケジュール・アルゴリズムの過度に単純な設計から生じる。
【0055】
ブロック暗号に対する関係鍵攻撃を防ぐため、強力な鍵スケジュールが好ましい。そのような鍵スケジュールは次のような性質をもつべきである:
性質1:任意のサブ鍵が与えられたとき、単に使用されている諸関数を逆にすることによって他のサブ鍵またはマスター鍵にたどり着くことが実行不能であるべきである。
性質2:サブ鍵とマスター鍵Kとの間のビット漏れ(bit leakage)をなくすべきである。
【0056】
第二の性質は、たとえば、サブ鍵EKiとサブ鍵EKi-1またはサブ鍵EKi+1が多くのビット情報を共通してもたないことを保証する。いくつかの攻撃はサブ鍵の間の関係を利用するので、これらの関係が存在しなければ、そうした攻撃はより高い複雑さ(complexity)をもつことになる。
【0057】
本発明に基づく方法を使うと、鍵スケジュール出力は鍵Kのみに依存するのではなく、暗号化すべき平文にも依存することになる。これは、平文が知られていない場合に鍵スケジュールを逆にする(invert)のをより困難にする。これが性質1によって期待されることである。換言すれば、脆弱な鍵スケジュール出力をいくつかの平文ブロックと混合することによって、鍵スケジュールの脆弱性が低下する。
【0058】
さらに、各ブロック暗号化において修正されるサブ鍵を変更することは性質2を可能にする。実際、鍵スケジュールが脆弱であり、ブロックNの暗号化について多くのビット情報を共通にもつ二つのサブ鍵EKn-1およびEKnを生成する場合、対(EKn-1 XOR Pn-1およびEKn XOR Pn)は、二つの平文ブロックPn-1とPnが異なっている可能性が高いので、より少ない情報を共通にもつことになる。これが、サブ鍵EKn/DKnが各ブロック暗号化/復号において修正されるときになされることである(ここで、n=N−1 % Rで、Rはブロック暗号アルゴリズムにおけるラウンド数)。このようにして、二つのサブ鍵の間の、さらにはサブ鍵とマスター鍵Kとの間の共通情報が解消される。
【0059】
さらに、実際上攻撃をセットアップすることはしばしば、平文が異なっているが同じ鍵で暗号化された膨大な数の暗号文を必要とする。従来技術の方法では、長いメッセージを暗号化するとき、メッセージは異なるブロックに分割され、同じ鍵で暗号化される。するとこれは、攻撃を実施するために必要とされる量の暗号文を集めるときに助けとなりうる。本発明に基づく方法は、長いメッセージについて各ブロックの暗号化について鍵が変化するので、これをずっと困難にする。
【0060】
図9は、本発明のある好ましい実施形態に基づく一般的な暗号化方法をさらに例示している。図9では、単一の平文ブロックが暗号化されるが、本方法を逐次反復によって一般化することが可能であることは認識されるであろう。まず、平文ブロックNが取得され910、暗号化鍵Nが平文ブロックN−1および暗号化鍵N−1を使って生成される920。ある好ましい実施形態では、平文ブロックN−1および暗号化鍵N−1はXORを使って組み合わされる。ステップ910はステップ920のあとに行われてもよいことは理解されるであろう。次いで、平文ブロックNは、暗号化アルゴリズムおよび暗号化鍵Nを使って暗号化される930。これにより、その後送信または記憶されうる暗号文ブロックNが得られる940。前述したように、本方法は、1増やしたNを用いて反復されてもよい。
【0061】
図10は、本発明のある好ましい実施形態に基づく復号方法をさらに例示している。図10では、単一の暗号文ブロックが復号されるが、本方法を逐次反復によって一般化することが可能であることは認識されるであろう。まず、暗号文ブロックNが取得され1010、復号鍵Nが平文ブロックN−1および復号鍵N−1を使って生成される1020。ある好ましい実施形態では、平文ブロックN−1および復号鍵N−1はXORを使って組み合わされる。ステップ1010はステップ1020のあとに行われてもよいことは理解されるであろう。次いで、暗号文ブロックNは、復号アルゴリズムおよび復号鍵Nを使って復号される1030。これにより、平文ブロックNが得られる1040。前述したように、本方法は、1増やしたNを用いて反復されてもよい。
【0062】
先に暗号化方法について述べたように、第一のブロックは、復号ユニットによってあらかじめ知られていてもよいしあるいは復号が始まる前に復号ユニットによって受信されてもよい初期化鍵を使って復号される。
【0063】
図11は、本発明のある好ましい実施形態に基づく暗号化システムを示している。暗号化システム1100は暗号化装置1110および復号装置1120を有する。暗号化装置1110は平文を受領し、受領した平文を暗号化し、得られた暗号文を出力するよう適応されている。同様に、復号装置1120は暗号文を受領し、受領した暗号文を復号し、得られた平文を出力するよう適応されている。
【0064】
より詳細には、暗号化装置1110は、平文を受領し、暗号文を出力するよう適応された少なくとも一つの通信ユニット「I/O」1116と、好ましくは、有利には平文、中間結果、暗号文および少なくとも一つの暗号化鍵を記憶するよう適応された少なくとも一つのメモリ1114とを有する。装置1110はさらに、一つまたは複数の装置秘密鍵を記憶するよう適応された保護された領域1118を有する。装置秘密鍵は、送信前に初期化鍵Kを暗号化するために使われる。暗号化装置1110によって使用されるべき装置鍵の選択は、暗号化されたデータの受信者に依存する。保護された領域1118は好ましくは、ソフトウェア変更および物理的工作に対して耐性がある。保護された領域1118は、初期化鍵Kが非対称暗号法を使って暗号化される場合には、暗号化装置1110は暗号化のために公開鍵を使うことになるので、必要ない。さらに、暗号化装置1110は、本稿で記載された方法の諸実施形態の任意のものに基づいて平文の暗号化を実行するよう適応されたプロセッサ1112を有する。
【0065】
同様に、より詳細には、復号装置1120は暗号文を受領し、平文を出力するよう適応された少なくとも一つの通信ユニット「I/O」1126と、好ましくは、有利には平文、中間結果、暗号文および少なくとも一つの復号鍵を記憶するよう適応された少なくとも一つのメモリ1124とを有する。装置1120はさらに、装置秘密鍵を記憶するよう適応された保護された領域1128を有する。装置秘密鍵は、復号装置1120に送信される前に初期化鍵Kを暗号化するために暗号化装置1110によって使われたものである。保護された領域1128は好ましくは、ソフトウェア変更および物理的工作に対して耐性である。保護された領域1128を使うことが好ましい。というのも、初期化鍵Kが非対称暗号法を使って暗号化されるとしても、復号装置1120はKの復号のために秘密鍵を使うことになり、この秘密鍵は保護され、安全な領域に記憶する必要があるからである。さらに、復号装置1120は、本稿で記載された方法の諸実施形態の任意のものに基づいて平文の復号を実行するよう適応されたプロセッサ1122を有する。
【0066】
図にはまた、プロセッサにおいて実行されたときに本稿に記載された方法の諸実施形態の任意のものに基づく暗号化方法または復号方法をそれぞれ実行させるコンピュータ可読命令が記憶されているデータ記憶媒体1130、1140が示されている。
【0067】
理解されるであろうように、本発明は、修正された平文および暗号ブロック連鎖モード(MPCBC: Modified Plain & Cipher Block Chaining Mode)に対するより安全な代替策を、少なくともある実施形態では同等の効率でありながら、提供する。
【0068】
本明細書および(該当する場合には)請求項および図面において開示される各特徴は独立して、あるいは任意の適切な組み合わせにおいて設けられてもよい。ハードウェアにおいて実装されるように記載されている特徴がソフトウェアにおいて実装されてもよく、逆にソフトウェアにおいて実装されるように記載されている特徴がハードウェアにおいて実装されてもよい。
【0069】
請求項に参照符号があったとしても単に例示のためであり、特許請求の範囲を制限する効果をもつものではない。
【符号の説明】
【0070】
910 平文ブロックNを取得
920 平文ブロックN−1に基づいて暗号化鍵Nを生成
930 暗号化鍵Nを使って平文ブロックNを暗号化
940 暗号文ブロックNを取得
1010 暗号文ブロックNを取得
1020 復号された平文ブロックN−1に基づいて復号鍵Nを生成
1030 復号鍵Nを使って暗号文ブロックNを復号
1040 平文ブロックNを取得
1110 暗号化装置
1112 プロセッサ
1114 メモリ
1116 I/O
1118 保護された領域
1120 復号装置
1122 プロセッサ
1124 メモリ
1126 I/O
1128 保護された領域

【特許請求の範囲】
【請求項1】
少なくとも二つの平文ブロックの順序付けられた系列に属するデジタル・データの現在の平文ブロックを暗号化するための鍵を生成する方法であって、ある装置において:
現在の平文ブロックを取得し;
前の平文ブロックを第一の暗号化鍵と組み合わせることによって現在の平文ブロックについての第二の暗号化鍵を生成する段階を有しており、前記第一の暗号化鍵は前の平文ブロックの暗号化に使われた暗号化鍵であり、前記前の平文ブロックは、前記順序付けられた系列において現在の平文ブロックの直前の平文ブロックである、
方法。
【請求項2】
前記第一の暗号化鍵が初期化暗号化鍵である、請求項1記載の方法。
【請求項3】
少なくとも二つの平文ブロックの順序付けられた系列に属するデジタル・データの現在の平文ブロックを暗号化する方法であって、暗号化装置において:
請求項1記載の方法を使って暗号化鍵を生成し;
生成された暗号化鍵とともにある暗号化アルゴリズムを使って現在の平文ブロックを暗号化する段階を有する、
方法。
【請求項4】
少なくとも二つの暗号文ブロックの順序付けられた系列に属するデジタル・データの現在の暗号文ブロックを復号するための鍵を生成する方法であって、ある装置において:
現在の暗号文ブロックを取得し;
前に得られた平文ブロックを第一の復号鍵と組み合わせることによって現在の暗号文ブロックについての第二の復号鍵を生成する段階を有し、前記第一の復号鍵は、前の平文ブロックを得るのに使われた復号鍵であり、前記前の平文ブロックは、前記順序付けられた系列において現在の暗号文ブロックの直前の暗号文ブロックに対応する、
方法。
【請求項5】
前記第二の復号鍵生成段階において、前記組み合わせの前に、前に得られた平文ブロックに一方向性関数が適用される、請求項4記載の方法。
【請求項6】
前記前の平文ブロックの復号に使われた復号鍵は、鍵スケジュール・アルゴリズムから帰結する複数のサブ鍵のうちのあるサブ鍵または前の平文ブロックの復号に使われた複数のサブ鍵のうちのサブ鍵である、請求項4記載の方法。
【請求項7】
少なくとも二つの平文ブロックの順序付けられた系列に属するデジタル・データの現在の暗号文ブロックを復号する方法であって、復号装置において:
請求項4記載の方法を使って復号鍵を取得し;
その生成された復号鍵とともにある復号アルゴリズムを使って現在の暗号文ブロックを復号する段階を有する、
方法。
【請求項8】
少なくとも二つの平文ブロックの順序付けられた系列に属するデジタル・データの現在の平文ブロックを暗号化するための暗号化鍵を生成する装置であって:
現在の平文ブロックを取得するよう適応された通信ユニットと;
前の平文ブロックを第一の暗号化鍵と組み合わせることによって現在の平文ブロックについての第二の暗号化鍵を生成するよう適応されたプロセッサとを有し、前記第一の暗号化鍵は前の平文ブロックの暗号化に使われた暗号化鍵であり、前記前の平文ブロックは、前記順序付けられた系列において現在の平文ブロックの直前の平文ブロックである、
装置。
【請求項9】
少なくとも二つの暗号文ブロックの順序付けられた系列に属するデジタル・データの現在の暗号文ブロックを復号するための復号鍵を生成する装置であって:
現在の暗号文ブロックを取得するよう適応された通信ユニットと;
前に得られた平文ブロックを第一の復号鍵と組み合わせることによって現在の暗号文ブロックについての第二の復号鍵を生成するよう適応されたプロセッサとを有し、前記第一の復号鍵は前の平文ブロックを得るために使われた復号鍵であり、前記前の平文ブロックは、前記順序付けられた系列において現在の暗号文ブロックの直前の暗号文ブロックである、
装置。
【請求項10】
暗号文ブロックを復号するために複数のサブ鍵が使われ、前記プロセッサは、前記前の平文ブロックと組み合わせるべき、前記複数のサブ鍵のうちからの少なくとも一つのサブ鍵を見出すよう適応されている、請求項9記載の装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate


【公開番号】特開2010−140026(P2010−140026A)
【公開日】平成22年6月24日(2010.6.24)
【国際特許分類】
【外国語出願】
【出願番号】特願2009−277650(P2009−277650)
【出願日】平成21年12月7日(2009.12.7)
【出願人】(501263810)トムソン ライセンシング (2,848)
【氏名又は名称原語表記】Thomson Licensing 
【住所又は居所原語表記】1−5, rue Jeanne d’Arc, 92130 ISSY LES MOULINEAUX, France
【Fターム(参考)】