(57)【要約】暗号化されたデータ暗号化鍵が、２つの関係者間で交換されるメッセージのランダムヘッダ内に、両方の関係者によって既知である共有関数に応じて隠蔽される。変更されたランダムヘッダのチェックサムがその後に付加される。
2005521295.tif 000002
【特許請求の範囲】
【請求項１】
特定のデータ交換のシーケンスからの１つの特定のデータ交換に基づいて各ランダム暗号化鍵を生成し、様々な前記ランダム鍵を暗号化するために共有暗号化鍵を更に用い、それにより、前記暗号化されたランダム鍵を暗号化されたデータに関連付けて位置決めする、データを暗号化する方法であって、前記方法は、
１つ以上の空間的及び／又は時間的変数についての前記関連付けを維持しながら、前記暗号化されたランダム鍵を前記データ交換の中に隠蔽することを特徴とする方法。
【請求項２】
前記関連付けを維持することは、当該の前記データ交換のランダムヘッダに前記暗号化されたランダム鍵を格納することに関連する請求項１記載の方法。
【請求項３】
対称ブロック暗号化アルゴリズムを使用する請求項１記載の方法。
【請求項４】
前記ランダムヘッダの一部を、隠蔽関数によって選択し、
前記選択された一部を、前記暗号化されたランダムのビットによって置換する請求項１記載の方法。
【請求項５】
前記データは、チェックサムモードを有する暗号ブロック連鎖法における対称ブロック符号化アルゴリズムにおいて前記生成されたランダム鍵を用いて暗号化される請求項４記載の方法。
【請求項６】
前記ファイルの最初のＮｈバイトからの全ブロックの連続的なＥＸＯＲを実行する請求項５記載の方法。
【請求項７】
前記共有秘密鍵及びデータバイトの数Ｎｄの組合せであるシード情報を用いてセキュリティレベルを更に上げる請求項６記載の方法。
【請求項８】
前記データバイト及びヘッダバイトにＥＸＯＲ処理による完全性確認定数（Ｐｎ＋１）を付加する請求項１記載の方法。
【請求項９】
前記隠蔽関数Ｆを、
【数１】
2005521295.tif 000004
に応じて定義付け、ただし、ｎは、乱数からのビットであり、それにより、選択するバイトのランクを示し、
前記関数は、置換するための十分な数の様々なバイトが見つけ出されるまで定義付けられる請求項１記載の方法。
【請求項１０】
請求項１記載の方法を実施することによってデータを暗号化するよう構成される装置において、前記装置は、
特定のデータ交換のシーケンスの１つの特定のデータ交換に基づいて各ランダム暗号化鍵を生成する生成手段と、
前記生成手段によって供給され、共有暗号化鍵を更に用いることにより、様々な前記ランダム鍵を暗号化する暗号化手段と、
前記暗号化されたランダム鍵を前記暗号化されたデータに関連付けて位置決めする位置決め手段と、
を有し、前記装置は、
１つ以上の空間的及び／又は時間的変数についての前記関連付けを維持しながら、前記暗号化されたランダム鍵を前記データ交換の中に隠蔽する隠蔽手段を有することを特徴とする装置。
【請求項１１】
特定のデータ交換のシーケンスの１つの特定のデータ交換に基づいてそれぞれ生成されたランダム暗号化鍵を、前記ランダム暗号化鍵の復号化の後に用い、前記共有暗号化鍵に関連付けられ、様々な前記ランダム鍵を復号化するための共有復号化鍵を更に用いながら、同時に、暗号化されたデータとの関連付けによって前記暗号化されたランダム鍵を導出する、請求項１記載の方法によって暗号化されたデータを復号化する方法であって、前記方法は、
１つ以上の前記空間的及び／又は時間的変数についての前記関連付けを考慮することから前記暗号化されたランダム鍵を隠蔽から抽出することを特徴とする方法。
【請求項１２】
特定のデータ交換のシーケンスの１つの特定のデータ交換に基づいてそれぞれ生成されたランダム暗号化鍵を用いることによってデータを復号化するよう構成され、復号化手段は、暗号化されたデータとの関連付けによって前記暗号化されたランダム鍵を導出するよう構成される導出手段によって様々な前記ランダム鍵を復号化するために前記共有暗号化鍵に関連付けられる共有復号化鍵を更に用いるよう構成される装置であって、前記装置は、
１つ以上の前記空間的及び／又は時間的変数についての前記関連付けを考慮することによって前記データ交換からの前記暗号化されたランダム鍵を隠蔽から抽出するよう構成される抽出手段によって特徴付けられる装置。
【請求項１３】
請求項１０記載の装置及び請求項１２記載の装置のそれぞれを有し、中間の転送は格納媒体及び／又は伝送媒体を介する、データを暗号化及び復号化するよう構成されるシステム。
【請求項１４】
請求項１記載の方法を用いて、若しくは、請求項８記載の装置によって生成される暗号化されたデータを含む、及び／又は、請求項９記載の方法、若しくは、請求項１０記載の装置のためのソース材料として使用するための実体媒体又は信号。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、請求項１の前提部分に詳細に記載するように、特定のデータ交換のシーケンスからの１つの特定のデータ交換に基づいて各ランダム暗号化鍵を生成することによってデータを暗号化する方法に係る。
【背景技術】
【０００２】
データ交換は、格納に関連付けられ、その後、遅延された読取り、又は、受信者へのブロードキャストを恐らく含む伝送が続き得る。データを読取りするとき又は受信するとき、最初に、暗号化されたランダム鍵が共有鍵を用いて復号化され、次に、得られたランダム暗号化鍵による本来のデータの復号化が後に続く。この方法は、特定の鍵に関連付けられる暗号文の量が１ランダム鍵のサイズだけに制限されるので、セキュリティのレベルを上げ、このことは、暗号化されたランダム鍵に強引な攻撃を行うときに遭遇するような暗号解読者の問題を今まで以上に大きくする。実際に、暗号化された鍵以外は、データは、ファイルのフォーマットによって表されるように少なくとも何らかの相関の形式を有する代わりに、真にランダムである。
【０００３】
しかしながら、本願の発明者は、暗号解読者が暗号化されたランダム鍵の時間的及び／又は空間的な発生をすぐに指摘することができるべきではなく、そのような発生の場所に関して不確かなままにされるようより高い度合いの安全性の必要性を認識している。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
従って、特に、本発明は、いわば暗号化された暗号化鍵を隠蔽し、それにより、攻撃者は攻撃するためのターゲットを見つけるためにどこを探していいのか分からないが、データの意図した受信者は依然として適切な容易さで当該のランダム鍵の場所を見つけ出すことができることを目的とする。
【課題を解決するための手段】
【０００５】
従って、本発明の面の１つでは、本発明は、請求項１の特徴部に記載するように特徴付けられる。
【０００６】
特に、暗号化された鍵は、当該のデータ交換のヘッダ内に隠蔽される。様々な理由によって、データ自体ではなくヘッダを用いることが有利である。本発明の原理は、実際に、暗号化及び復号化の両方の間に制約された装置で実施するのが容易である。暗号化では、符号化は、ランダムデータ列を生成し、隠蔽関数によって選択されるそのランダムデータ列の一部を、暗号化されたランダム鍵のビットによって置換する。このようなアプローチは、隠蔽関数によって選択されるデータファイルからのビットの前に又は後に暗号化されたランダム鍵を挿入することとは異なる。後者の暗号化されたランダム鍵を挿入する手順は、実際に、暗号化されたランダム鍵のための余地をデータファイルに作るために、かなり大きいバッファを設けることを必要とする。尚、ヘッダ原理は、伝送又は格納のための一部の既存の規格によるヘッダを表すと解釈すべきではない。このコンテキストでは、ヘッダは、「データ交換の始まりにおける又は始まりに近い」一部を意味する。
【０００７】
更に、復号化では、ブロック暗号が、おそらくフィードバックモードで使用される。暗号化されたランダム鍵をデータに挿入することは、暗号ブロックの配列を変更してしまう。暗号化されたデータの隣に、特定のブロックは、暗号化されたランダム鍵からのビットを追加として有し得る。復号化の際には、暗号化されたランダム鍵のビットをスキップするよう配慮されなければならない。この面は、更なる処理オーバヘッド及び／又は必要なメモリ空間を追加し得る。両方の状況において、処理構造は、本発明の置換実施例によって単純化される。
【０００８】
ヘッダ内に暗号化されたランダム鍵を隠蔽することに対するもう１つの主張は、ヘッダ内に暗号化されたランダム鍵を隠蔽することは、セキュリティレベルを上げることである。実際に、ハッカーは、平文データファイルと暗号化されたデータファイルとの間のサイズ差を見つけ出し、従って、鍵は、データファイルに加えることによって隠蔽されたと考えることができるであろう。その後の攻撃段階は、非常に小さいデータファイルを書込み／符号化システムに供給することであろう。ここで、暗号化されたファイルにおける特定のビットロケーションにおいて、暗号化されたランダム鍵自体からのビットにヒットする確率は、Ｎｒ／Ｎｄであり、ここで、Ｎｒは、ランダム部であり、Ｎｄは、全体のサイズである。上述のアプローチでは、商は、単位元に近づくであろう。対照的に、本来のランダムマター内に鍵を隠蔽することは、この確率を、Ｎｒ／（Ｎｈ＋Ｎｄ）まで下げる。この商の値は、１よりかなり低くなり得、このことは、ファイルに追加されたランダムマタービットの数（Ｎｈ）に依存する。
【０００９】
本発明は更に、このような暗号化方法を実施するよう構成される装置と、そのような暗号化の結果を復号化する方法及び装置と、その暗号化及び復号化の両方を実行するよう構成されるシステムと、そのように暗号化されたデータを有する実体媒体又は信号にも関連する。本発明の更なる有利な面は、従属項に記載する。
【発明を実施するための最良の形態】
【００１０】
本発明のこれらの及び更なる面及び利点は、好適な実施例の開示、また、特に、添付図面を参照しながら以下に詳細に説明する。添付図面において、対応する構成要素は、同一の番号を有する。
【００１１】
図１は、共有秘密鍵による従来技術の暗号化方法を示す。左側では、書込み又は送信が行われ、右側では、読取り又は受信が行われる。共有秘密鍵（２４）を使用することにより、入力データ（２０）は、効果的に暗号化（２２）され、次に、媒体（２８）上に書込み（２６）される。媒体は、追記型ＣＤ、ＺＩＰ、フラッシュメモリ、伝送線、又は放送機関のように様々であり得る。以下の開示は、ＮＲＺ、ＥＦＭ等といった光学的に読取り可能なデータ符号化といった物理的な現実、及び、メッセージ又はレコードのフォーマッティングといった他のＯＳＩ層から抽出する。データの使用のために、最初に、媒体（２８）は、読取り（３０）され、その後、データは、共有秘密鍵（２４）を使用して復号化（３２）され、それによりデータ（３６）の表示を可能にする。原則的に、データ２０とデータ３６は、同一であることが可能である。以下の開示は、一般的に、ＤＥＳ、ＲＳＡ等の本来の暗号化アルゴリズムから抽出する。秘密鍵の分配は、許可されていると考える。
【００１２】
図２は、ランダム鍵を暗号化するために共有秘密鍵を使用する改良された暗号化方法を示し、ここでは、これらのランダム鍵は、本来のデータを暗号化するために使用される。次に、暗号化されたデータと暗号化されたランダム鍵は共に、媒体上に格納される。図２では、ランダム鍵（３８）は、適切なランダム又は擬似ランダム手順によって生成され、データ（２０）を暗号化（４０）するために使用され、更に、共有秘密鍵（２４）を使用してそのランダム鍵自体も暗号化（４２）される。その後、暗号化された主体は、媒体（４８）上に書込み（４４、４６）される。このデータの使用のために、最初に、媒体（４８）は読取り（５０、５２）され、その後、共有鍵（２４）を使用して、実際のランダム鍵（３８）を復号化（５４）し、そして、復号化されたランダム鍵を使用して、本来のデータ（５８）を復号化（５６）する。
【００１３】
ここで、本発明は、新規の方法で暗号化されたランダム鍵を物理媒体上又は交換信号内に隠蔽し、また、暗号解読のために事実上利用可能である暗号文の量を減少することによって安全性を更に高めることにある。この点に関して、図３は、ランダム鍵の暗号化のための共有鍵の使用と、その後のランダム鍵の隠蔽を説明する。ただし、図３に示す多くの構成要素は、図２の構成要素に対応し、暗号化されたランダム鍵は、その当該のランダム鍵が関係する暗号化されたデータに関連付けられて隠蔽（６０）され、その後、その組合せは、媒体（６４）上に書込み（６２）される。そのデータを使用するためには、媒体（６４）は読取り（６６）され、その後、隠蔽されたランダム鍵が最初に回収（６８）され、図２と同様に、復号化（５４）される。その後に、それを受けてデータが復号化される。
【００１４】
この点に関し、図４は、暗号化されたランダム鍵を実際に隠蔽するための１つの実施例を示す。特に、本発明の方法は、暗号化されたデータと暗号化されたランダム鍵を同一ファイルに入れることにある。このことは、斜線によって示すように、ファイルの始まりにランダム材料の多数のＮｈバイトを挿入し、これらのＮｈバイトの後に、暗号化されたデータのＮｄバイトを付加することによって行われる。従って、完全なファイルは、Ｎｈ＋Ｎｄバイトである。Ｎｈのサイズは、暗号化されたランダム鍵のサイズＮｒに正比例し、また更に、Ｎｈのサイズは、使用された対称ブロック暗号化アルゴリズムのブロックサイズの整数の倍数でもなければならない。割合Ｎｈ／Ｎｒの値と共に効果的なセキュリティは更に増加する。
【００１５】
ファイルの最初のＮｈバイトが、ランダムマターで充填されると、送信及び受信システムの両方によって知られている共有関数Ｆが、媒体上にデータを書込みするために呼び出される。この関数は、Ｎｂバイトのランダム材料からＮｒバイトの選択を戻す。戻されたバイトのそれぞれに対し、ランダム材料は、反対方向の斜線によって示すように、暗号化されたランダム鍵からの連続バイトによって置換される。図４の下に示す（７８）ように、全ての戻されたバイトが処理されると、ファイルの最初のＮｈバイトからの全ブロックの連続的な（running）ＥＸＯＲ（排他的論理和）結果（Ｐ０、８０）が計算される。
【００１６】
次に、例えば、それ自体は従来技術であるチェックサムモードを有する暗号ブロック連鎖法によって対称ブロック符号化アルゴリズムにおいて生成されたランダム鍵を用いて、データ（８２）が暗号化される。Bruce  Schneier  によるテキストブック「Applied  Cryptology」（２０７−２０８ページ、第２版、１９９６年）を参照されたい。当該の技術は、図５に示すように、ファイルの最初のＮｈバイトのブロックの連続的なＥＸＯＲ計算（９２）の結果（Ｐ０）を用いて連続的なＥＸＯＲ計算（８６、８８）を始めることにより更に改良される。ここでは、他の図面と同様に、ＥＸＯＲ処理は、標準的な十文字が書かれた円の符号指示によって示す。
【００１７】
ランダムデータヘッダの連続的なＥＸＯＲを、データのＣＢＣＣ暗号化のためのフィードとして追加することによって、受信者は、ハッカーによって１ビットも変更されていないことを確実にすることができる。このことは、ハッカーが一度にランダムデータヘッダの１ビットのみを変更する攻撃を阻止するために必要である。ランダム材料の変更されたビットが、関数Ｆによって選択されない場合、受信システムは、依然として当該のファイルを効果的に読取りし得る。その一方で、変更されたビットが、暗号化されたランダム鍵に属する場合、復号化に使用されるべき鍵が正しくないので、暗号化されたデータファイルは正しく受信されない。従って、ハッカーは、暗号化されたランダム鍵と、ランダム材料の残りの部分とを区別することができる。このアプローチを繰り返すことによって、関数Ｆの行うことを迅速に見つけ出し、するとすぐに、全ての更なる暗号化されたデータファイルにおける暗号化されたランダム鍵からのビットを見つけ出すことを可能にする。
【００１８】
図５は、図４の実施例に関連する暗号化計算の詳細を説明する。ここでは、Ｃ０は、初期設定ファクタ（initialization  factor）として使用されるランダム材料のブロックである。暗号化されるべきデータは、Ｐ１乃至Ｐｎに及び、Ｐｎ＋１は、完全性定数（integrity  constant）として機能する定数ブロックであり、Ｃｎ＋１に暗号化される。これらのｎ＋２バイトは、ファイルの最初のＮｈバイトに付加される。ブロックＰｎ＋１は、例えば、均一値０×２５を有する一連のバイトによって表され得る。
【００１９】
図６は、暗号化されたランダム鍵を実際に回収する１つの実施例を示す。復号化のために、物理媒体からデータ９４を読取りするシステムによって共有秘密関数Ｆが呼び出される。反対方向の斜線によって示すこの関数Ｆは、ＮｈバイトのファイルからＮｒバイトの選択を戻し、その選択から暗号化されたランダム鍵が回収される。ファイルの最初のＮｈバイトからの全てのブロックの連続的なＥＸＯＲ９６は、オリジナルの値Ｐ０を得る（９８）よう計算される。次に、暗号化されたランダム鍵は、共有秘密鍵を使用して復号化され、その結果は、上述したＣＲＣＣモードにおける対称ブロック暗号化アルゴリズムを介したバイトＮｈの後のファイル内に見つけられるデータを復号化するために使用される。後者のデータ復号化は、データの最初のブロックで連続的なＥＸＯＲを開始するのではなく、ファイルの最初のＮｈバイトのブロックの連続的なＥＸＯＲ計算（１１４、Ｐ０）の結果でのみ始まる点で変更される。後者のデータの復号化は、特に、図７に示す。
【００２０】
図７は、図６の実施例に関連する回収計算の詳細を示す。ここでは、Ｃ０は、初期設定ベクトルとして直接的に使用される。Ｐｎ＋１の値は、それが、完全性定数と一致するか否かを決定するよう確認される。一致する場合は、暗号化されたデータファイルも、暗号化されたランダム鍵を隠蔽するよう使用された最初のＮｈバイトも改竄されていないことを証明し、従って、ＣＢＣＣモードの変更及びＰ０の導入も改竄されていない。
【００２１】
関数Ｆは、入力として、選択のために利用可能なバイトの数（Ｎｈ）と、選択するためのバイトの数（Ｎｒ）を取る。関数Ｆの様々な定義付けが可能である。ここでは、以下の例示的な実施例をＦに対し使用する。乱数発生器からｎ個のビットを取る。ｎは、
【００２２】
【数２】
2005521295.tif 000003
として定義付けられる。次に、これらのｎ個のビットを選択するためのバイトのランク番号として解釈する。このランクは、０乃至Ｎｒの範囲にある。この手順は、Ｎｒ個の異なるバイトが選択されるまで続けられる。この手順は、送信及び受信サブシステムの両方が、乱数発生器に対し同じ秘密シード情報を共有するときにのみ有効である。そうでない場合には、両方のサブシステムは、異なる選択を有し得る。更にセキュリティレベルを上げるために、本発明の方法は、共有秘密シード及びデータバイトの数Ｎｄ及び／又は物理媒体の製造番号などの組合せであるシード情報を使用して、交換される各ファイルに対し異なる選択を生成する。上述したように、セキュリティの度合いは、割合Ｎｈ／Ｎｒと共に増加する。しかしながら、特に、実効処理能力に応じて、より単純で、更により高度な定義付けをＦに対し使用し得る。例えば、関数Ｆは、ｎ番目のバイト毎に戻すことが可能で、ｎは、Ｎｈ／Ｎｒとして定義付けられる。
【００２３】
暗号化されたランダム鍵のバイトを、ランダム材料のプールに分配し、これに暗号化された材料自体を付加することによって、システムのセキュリティは、暗号解読者がどのバイトがランダム材料に、暗号化されたデータに、及び暗号化されたランダム鍵のそれぞれに属するのかを知ることができないので、効果的に増加され、従って、解析のための暗号文はもはや入手可能でなくなる。共有される秘密（即ち、共有秘密シード）が保護されたままである条件で、バイト組合せを行うことによって、暗号化されたランダム鍵である正しい暗号文を見つけ出す確率は、｛（Ｎｈ＋Ｎｄ）ｎｒ｝−１である。この点におけるセキュリティは、暗号化されたランダム鍵の隠蔽手順において、バイトからビットに分解能を変更することによって更に高められる。更に、ファイルの最初のＮｈバイトの連続的なＥＸＯＲの付加、及びそれを変更されたＣＢＣＣモードに挿入することは、完全性を強化し、ほとんど追加のハードウェア設備を必要としない。特に、ハッシュ関数でさえも必要でない。
【００２４】
図８は、本発明のセキュリティ向上手段を使用するシステムを示す。左から右に向かって、システムは、データ源１００と、本発明に応じてソースデータを暗号化するアルゴリズムを実施するエンコーダ装置１０２と、装置１０２によって暗号化されたデータを運ぶ実体媒体１０４と、実体媒体１０４上の暗号化されたデータが、復号化のためのソースデータとして機能する復号化手段１０６と、装置１０６によって復号化されたデータを、それ自体は本発明とは関係のないアプリケーションのために使用するデータユーザ機能１０８を有する。実体媒体を必要としない信号を介するデータ交換に関しても、システム全体は類似するであろう。
【図面の簡単な説明】
【００２５】
【図１】共有秘密鍵を使用するデータ暗号化方法を示す図である。
【図２】共有秘密鍵を使用し、共有秘密鍵でランダム暗号化鍵を暗号化する暗号化方法を示す図である。
【図３】ランダム鍵を暗号化するための共有鍵の使用と後続するその暗号化されたランダム鍵の隠蔽を示す図である。
【図４】暗号化されたランダム鍵を実際に隠蔽するための実施例を示す図である。
【図５】図４の実施例に関連する暗号化計算の詳細を示す図である。
【図６】暗号化されたランダム鍵を実際に取出しするための実施例を示す図である。
【図７】図６の実施例に関連する取出し計算の詳細を示す図である。
【図８】本発明のセキュリティ増加手段を使用する総合的システムを示す図である。
【図１】
2005521295.tif 000005
【図２】
2005521295.tif 000006
【図３】
2005521295.tif 000007
【図４】
2005521295.tif 000008
【図５】
2005521295.tif 000009
【図６】
2005521295.tif 000010
【図７】
2005521295.tif 000011
【図８】
2005521295.tif 000012
【国際調査報告】
2005521295.tif 000013
2005521295.tif 000014