説明

データセキュリティ

データセキュリティを増大させるシステム100は、保護されるべき予め決められたシステムデータ104を有する。暗号化ユニット108は、個々の鍵に依存して、コンテントデータの個々のブロックを暗号処理するために使用される。鍵供給部106は、予め決められたシステムデータ104の個々の部分112に依存して、コンテントデータの個々のブロックの前記処理のために使用される個々の鍵を決定し、ここで、前記部分は、すべての予め決められたシステムデータを含まず、予め決められたシステムデータの異なる個々の部分が、コンテントデータの個々のブロックについて選択される。データセキュリティを増大させるサーバシステム200は、クライアントシステム100に、処理されたコンテントデータ110を供給する出力部202を有し、クライアントシステムは、保護されるべき予め決められたシステムデータ104を有する。サーバシステム200は更に、暗号化ユニット208及び鍵供給部206を有する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データセキュリティを増大させることに関する。
【背景技術】
【0002】
著作権で保護されたコンテントの配布媒体としてのインターネットの使用は、コンテントプロバイダの利益を守るための課題を生んでいる。具体的には、コンテントプロバイダの著作権及びビジネスモデルを保証するこが必要とされる。コンシューマエレクトロニクスプラットホームは、ますます、ソフトウェアをロードされたプロセッサを使用して動作されるようになっている。このようなソフトウェアは、例えばオーディオ及び/又はビデオのようなデジタルコンテントのレンダリング(再生)のための機能の主要部分を提供しうる。コンテントが諸条件の下で使用されることができる該諸条件を含むコンテント所有者の利益を強化する1つのやり方は、再生ソフトウェアの制御を有することによる。例えばテレビジョン又はDVDプレーヤにおいて実現される多くのコンシューマエレクトロニクスプラットホームは、従来、クローズされて使用されてきたが、今日ではますます多くのプラットホームが、少なくとも部分的にオープンである。これは具体的にはPCプラットホームに当てはまる。その理由は、あるユーザは、コンテントへのアクセスを提供するPCハードウェア及びソフトウェアの完全な制御を有するものとみなされうるからである。更に、ユーザは、任意のコンテント保護機構を攻撃し迂回するための相当量の時間及び資源を有するものとみなされる。結果として、コンテントプロバイダは、セキュアでないネットワークにわたって及びすべてのユーザ又は装置が信頼されることができるわけではないコミュニティに対し、ユーザを合法化するために、コンテントを送り出さなければならない。
【0003】
デジタル権利管理システムは、多くの場合、コンテントの非認可の使用を防ぐための暗号化方法、及び/又は非合法的に配布されたコンテントのソースの追跡を可能にするためのデジタル署名方法を使用する。デジタル権利管理に生じる問題の1つは、コンテントが諸条件下で使用されることができる該諸条件を履行するソフトウェアコードが、改ざんされてはならないことである。
【発明の概要】
【発明が解決しようとする課題】
【0004】
暗号化に依存するデジタル権利管理の脆弱性の2つの領域は、コンテントが諸条件下で使用されることができる該諸条件を履行するソフトウェアコンポーネント並びに鍵の配布及び取り扱いである。諸条件の履行を除去することを狙う攻撃者は、ソフトウェアコンポーネントに含まれるプログラムコードの改ざんによってこれを達成することを試みることがある。鍵の取り扱いに関連して、再生のために、メディアプレーヤは、ライセンスデータベースから解読鍵を取り出さなければならない。そののち、メディアプレーヤは、暗号化されたコンテントの解読のために、この解読鍵をメモリ内のどこかに記憶しなければならない。これは、鍵への攻撃の2つの選択肢を、攻撃者に提供する。第1に、ライセンスデータベースアクセス機能のリバースエンジニアリングは、ブラックボックスソフトウェアを生じさせることができ(すなわち、攻撃者は、ソフトウェア機能の内部動作を理解する必要はない)、それにより、攻撃者が、すべてのライセンスデータベースからアセット鍵を取り出すことを可能にする。第2に、コンテント解読の間のメモリへのアクセスを観察することによって、アセット鍵を取り出すことが可能になりうる。両方のケースとも、鍵が損なわれると考えられる。
【0005】
改ざん耐性のあるソフトウェアとは、目標指向の改ざんを複雑化するための特別なフィーチャを有するソフトウェアを示す。ソフトウェアアプリケーションの改ざん耐性を増大させるさまざまな技法が存在する。これらの技法のほとんどは、ソフトウェアアプリケーションの制御及びデータパスの両方にランダム性及び複雑さのベール(覆い)を付加することによって、アプリケーションの組み込まれた知識を隠すことに基づく。この背景にある考えは、単にコードインスペクションによって情報を抽出することがより困難になることである。従って、例えば、アプリケーションのアクセス及び許可制御を扱うコードを見つけ、従ってそれを変更することは、より困難である。しかしながら、ソフトウェアアプリケーションの改ざん耐性を増大するためのこれらの技法は、必ずしも満足なものではない。
【課題を解決するための手段】
【0006】
データセキュリティを増大させるための改善されたシステムを有することが有利である。この問題によりよく対処するために、本発明の第1の見地において、
処理されるべきコンテントデータを受け取る入力部と、
保護されるべき予め決められたシステムデータと、
個々の鍵に依存して、コンテントデータの個々のブロックを暗号処理する暗号化ユニットと、
予め決められたシステムデータの個々の部分に依存して、コンテントデータの個々のブロックの前記処理のために使用される個々の鍵を決定する鍵供給部であって、前記部分は、すべての予め決められたシステムデータを含まず、予め決められたシステムデータの異なる個々の部分が、コンテントデータの個々のブロックについて選択される、鍵供給部と、
を有するシステムが提示される。
【0007】
鍵は、システムデータの選択された部分に依存するので、悪意のあるユーザによるシステムデータのこの選択された部分に対する変更は、その鍵をも変更し、こうして、個々のコンテントブロックの暗号処理が成功することを妨げる。このようにして、選択された部分が、改ざんから保護される。異なる個々の部分が、個々のコンテントブロックについて使用されるので、相対的に多数のデータビットが、改ざんから保護される。別の利点は、システムが、システムデータ特有の暗号文の生成を可能にすることである;鍵はシステムデータに依存するので、同じシステムデータがシステムに利用可能である場合のみ、暗号処理が成功しうる。概して、このシステムデータは、コンテントデータを処理することが認可されていないシステムの少なくともいくつかには利用可能にされないので、これはセキュリティを高める。
【0008】
一実施例において、予め決められたシステムデータは、コンピュータ実行可能な命令を含むソフトウェアコードを有する。この場合、ソフトウェアコードを変更することは、鍵がソフトウェアコードの変更された部分に依存するときはいつでも処理が妨げられることを意味するので、ソフトウェアコードは、認可されない変形から保護される。例えば、保護されるべきソフトウェアコードは、デジタル権利管理を履行することに関連する命令を含む。
【0009】
一実施例において、鍵供給部は、コンテントデータの個々のブロックの外側のコンテントデータに依存して、予め決められたシステムデータの一部を選択するように構成される。これは、送信側及び受信側の両方において、予め決められたシステムデータの同じ部分を選択する非常に効率的なやり方である。コンテントデータは概して、なんらかのランダム性を有するので、これは、選択された部分にランダム性を導入する。
【0010】
一実施例において、鍵供給部は、コンテントデータの暗号文に基づいて、前記部分を選択するように構成される。暗号文は、平文より良好なランダム特性を有するので、この例におけるソフトウェアコードの一部の選択もまた、より良好なランダム特性を有する。
【0011】
一実施例において、鍵供給部は、以前に処理されたデータブロックの暗号文に基づいて、前記部分を選択するように構成される。以前に処理されたデータブロックの暗号文は、選択された部分が現在データブロックを処理するために必要とされるときには、すぐに利用可能である。これは、受信エンド及び送信エンドの両方に当てはまる。
【0012】
一実施例において、鍵供給部は、暗号鍵を得るために、選択された部分の疑似ランダム関数を計算するように構成される。疑似ランダムキャラクタは、暗号化スキームを壊すことをより困難にする。別の実施例において、疑似ランダム関数は、ハッシュ関数である。
【0013】
一実施例において、暗号化ユニットは、個々の鍵の少なくとも一部及びコンテントデータの個々のブロックの少なくとも一部を伴うXOR演算を適用するように構成される。XOR関数は、実行するのは特に効率的であるが、壊すのは容易ではない。
【0014】
一実施例は、コンテントデータに対応する暗号文を記憶する格納部を有し、暗号化ユニットは、記憶されたコンテントデータを解読するように構成される。これが望ましい場合はいつでも、格納部は、コンテントデータが記憶され、取り出されることを可能にする。暗号文は、予め決められたシステムデータに依存するので、記憶されたコンテントデータは、このシステムデータを有しない他のシステムによって使用されることができない。従って、格納部は、相対的にセキュアである。
【0015】
一実施例において、暗号化ユニットは、
個々の鍵に依存して、入力部から受け取られるコンテントデータの個々のブロックを暗号化し、格納部を使用して暗号化されたコンテントデータを記憶する暗号器と、
個々の鍵に依存して、格納部を使用して記憶された暗号化されたコンテントデータの個々のブロックを解読する解読器と、
有する。
【0016】
鍵は、システム特有である(すなわち、予め決められたシステムデータに依存する)ので、暗号化及び解読は、同じシステム上で有利に実施されることができる。この1つの適切な応用例は、コンテントが、同じシステムによるのちの解読及び使用のために、システム上で暗号化され局所的に記憶される例である。
【0017】
一実施例において、暗号化ユニットは、個々の鍵に依存してデジタルウォーターマークをコンテントデータに適用するように構成される。デジタルウォーターマークは、鍵データに依存するので、それは、予め決められたシステムデータに依存する。従って、デジタルウォーターマークは、コンテントデータにウォーターマークを付すために使用されたシステムデータを識別するために使用されることができる。
【0018】
一実施例は、データセキュリティを増大させるサーバシステムであって、
処理されるべきコンテントデータを受け取る入力部と、
保護されるべき予め決められたシステムデータを有するクライアントシステムに、処理されたコンテントデータを供給する出力部と、
個々の鍵に依存して、コンテントデータの個々のブロックを暗号処理する暗号化ユニットと、
予め決められたシステムデータの個々の部分に依存して、コンテントデータの個々のブロックの前記処理のために使用される前記個々の鍵を決定する鍵供給部であって、前記部分は、すべての予め決められたシステムデータを含まず、予め決められたシステムデータの異なる個々の部分が、コンテントデータの個々のブロックについて選択される、鍵供給部と、
を有するシステムを有する。
【0019】
一実施例は、クライアントシステム及びサーバシステムを備えるシステムであって、
サーバシステムの出力部が、クライアントシステムの入力部に、サーバシステムの暗号化ユニットによって処理されたコンテントデータを供給し、
サーバシステムの鍵供給部及びクライアントシステムの鍵供給部が、サーバシステムの入力部においてコンテントデータを受け取ることに応じて及びクライアントシステムの入力部で対応するコンテントデータを受け取ることに応じて、それぞれ、ソフトウェアコードの同じ部分を使用する、
システムを有する。
【0020】
一実施例は、データセキュリティを増大させる方法であって、
処理されるべきコンテントデータを受け取るステップと、
個々の鍵に依存して、コンテントデータの個々のブロックを暗号処理するステップと、
保護されるべき予め決められたシステムデータの個々の部分に依存して、コンテントデータの個々のブロックの前記処理のために使用される個々の鍵を決定するステップであって、前記部分は、すべての予め決められたシステムデータを含まず、予め決められたシステムデータの異なる個々の部分が、コンテントデータの個々のブロックについて選択される、ステップと、
を含む方法を有する。
【0021】
一実施例は、データセキュリティを増大させる方法であって、
処理されるべきコンテントデータを受け取るステップと、
保護されるべき予め決められたシステムデータを有するクライアントシステムに、処理されたコンテントデータを供給するステップと、
個々の鍵に依存して、コンテントデータの個々のブロックを暗号処理するステップと、
予め決められたシステムデータの個々の部分に依存して、コンテントデータの個々のブロックの前記処理のために使用される個々の鍵を決定するステップであって、前記部分は、すべての予め決められたシステムデータを含まず、予め決められたシステムデータの異なる個々の部分が、コンテントデータの個々のブロックについて選択される、ステップと、
を含む方法を有する。
【0022】
一実施例は、説明される方法のうちの少なくとも1つをプロセッサに実施させるためのコンピュータ実行可能な命令を含むコンピュータプログラムを有する。
【0023】
以下でChow1と呼ばれる「White-Box Cryptography and an AES Implementation」(by Stanley Chow, Philip Eisen, Harold Johnson, and Paul C. Van Oorschot, in Selected Areas in Cryptography: 9th Annual International Workshop, SAC 2002, St. John's, Newfoundland, Canada, August 15-16, 2002)及び以下でChow2と呼ばれる「A White-Box DES Implementation for DRM Applications」(by Stanley Chow, Phil Eisen, Harold Johnson, and Paul C. van Oorschot, in Digital Rights Management: ACM CCS-9 Workshop, DRM 2002, Washington, DC, USA, November 18, 2002)は、個別のステップではなく合成を表わすランダムな全単射によって、そのテーブルを符号化することと、それを含まれるアプリケーションに組み入れることによって暗号限界を広げることとの組み合わせによって、鍵を隠そうとする方法を開示している。
【0024】
国際出願番号PCT/IB2007/050640(出願人整理番号PH005600)の明細書には、データ処理システムの完全性を保護する方法が開示されている。方法は、保護されるべきデータストリングを決定することを含み、データストリングの完全性は、データ処理システムの完全性の標示である。予め決められたデータ処理機能を表すパラメータの組は、データストリングをパラメータの組のビット表現に組み込むために、パラメータの組の冗長性を使用して計算される、システムは、パラメータの組に従って、データを処理することを可能にされる。パラメータの組は、暗号鍵を含む暗号化アルゴリズムの少なくとも一部を表す。パラメータの組は、更に、ルックアップテーブルのネットワークを表す。ルックアップテーブルのネットワークは、データ処理アルゴリズムのホワイトボックス実現の複数のルックアップテーブルを含む。データ処理アルゴリズムは、暗号化アルゴリズムを含む。
【0025】
本発明のこれら及び他の見地は、図面を参照して更に解明され、記述される。
【図面の簡単な説明】
【0026】
【図1】暗号化スキームを示す図。
【図2】解読スキームを示す図。
【図3】暗号化スキームを示す図。
【図4】解読スキームを示す図。
【図5】一実施例を示す図。
【図6】一実施例を示す図。
【発明を実施するための形態】
【0027】
改ざん耐性のあるソフトウェアは、目標とされる改ざんを実施することが困難であるソフトウェアである。ソフトウェア改ざん耐性は、例えばデジタル権利管理(DRM)クライアント、支払いシステム及び条件付きアクセスシステムのような多くのアプリケーションにおいて決定的に重要である。脅威の1つは、攻撃者が、公開鍵のような重要なセキュリティデータ、又はアクセス決定のようなソフトウェアの重要な動作を変更することを試みることである。この文脈において、コード硬化(ハードニング)は、プログラムフローを混乱させ、こうしてプログラムの重要な部分を隠すことによって実現されることができることに注意されたい。攻撃者が、重要な部分の位置に関する全情報を有する場合でも、コード硬化は、攻撃者のパスに障害物を置くことによって実現されることができる。コード硬化を実現する1つのやり方は、単に攻撃者が変更することに関心をもつ部分に代わって、コードのかなり多くの部分を変更することを攻撃者に強いるように、プログラムの多くの部分を混ぜ合わせることである。
【0028】
コード硬化の1つの方法は、プログラムコードのハッシュの検証である。ハッシュ法は、隣接するメモリアドレスに作用する。コードのどの部分がハッシュされるかを攻撃者が識別するのは相対的に容易でありうる。コードの大きなブロックが、改ざんに対して硬化されることを必要とする場合、ハッシュ法は、多くの作業を必要としうる。より大きいプログラムにとってより効率的である方法を有することが望ましい。更に、暗号化されたコンテント(暗号文)が、プログラムコードに依存する方法、すなわち、プログラムコードが、鍵のような役割を果たすシステムを有することが望ましい。より一般的にいえば、相対的にかなり大量のデータを改ざんから守ることが望ましく、ここで、データは、例えばハードウェア識別子データ、BIOSデータ、レジストリエントリ又はコンテントデータフラグメントのような、システム上で利用可能なデータであることが好ましい。
【0029】
この記述において、重要な点は、ソフトウェアコードの保護にあるが、概念は、任意のデータタイプを保護することに拡張されることができる。実際に、記述される実施例は、暗号化アルゴリズムに対する鍵データとして使用されるべき相対的に大量のデータを使用することを可能にする。このような大量のデータは、例えば暗号化システムにおいてしばしば使用される相対的に小さい鍵と比較して、悪意のあるエンティティによって配布されることに対する脆弱さが低い。保護されるべき予め決められたシステムデータの例は、システム上に存在する任意のデータ、ハードウェア識別子、BIOS、コンテント、ドキュメント、レジストリ設定、オペレーティングシステム要素、その他を含む。
【0030】
一実施例において、ある装置上で走っているプログラムコードが、改ざん耐性をもつようにされる。方法は、暗号アルゴリズムを使用するものであり、コードによる改ざんがユーザにとって機能の(部分的な)欠如を引き起こすという考えに基づく。解読アルゴリズムは、装置上で実現されるものとする。一実施例において、解読アルゴリズムは、鍵及びプログラムコードに依存する。プログラムコードに対する変形は、解読アルゴリズムがもはや適切に解読を行わないことを意味する。それゆえ、プログラムコードは、相対的に改ざん耐性をもつ。
【0031】
解読アルゴリズムとプログラムコードとの間の依存を実現する1つのアプローチは、コードフラグメントとして鍵を規定することである。これを説明するために、AESブロック暗号が適用されるものとする。このブロック暗号は、10ラウンドを有し、各ラウンドは、128ビットラウンド鍵によってパラメータ化される。各ラウンド鍵が、コンピュータプログラムの128ビットフラグメントとして規定される場合、これは、ラウンド鍵内で使用されるプログラムの10×128=1280ビットの総数をもたらす。こうして、コンピュータプログラムコードのこれらのビットの変更は、鍵に対する変更を意味し、鍵は、所望のプログラム挙動を得るために変更されないことが必要とされるので、コンピュータプログラムコードのこれらの1280ビットは、改ざん耐性をもつようにされる。
【0032】
一実施例において、任意のサイズのプログラムが、改ざん耐性をもつようにされうる。nビットのブロックサイズを有するブロック暗号が、一例として使用される。nビットより多くを含むコンテントを暗号化し/解読する場合、複数の暗号化/解読が、コンテントの複数ブロックについて実施されることを必要とする。暗号化/解読がどのように互いに結びつけられるかを指定するブロック暗号モードが開発された。pを、i番目の平文ブロックとし、cを対応するi番目の暗号文ブロックとする。暗号文ブロックcは、コードフラグメントfに依存する。言い換えると、pの暗号化及びcの解読の両方が、コードフラグメントfに依存する。cが依存するコードフラグメントは、値ci−1から導かれる。値ci−1は、cに先行する暗号文ブロックである。暗号の1つの特性は、連続する暗号文ブロックが、擬似ランダムシーケンスを形成することであるので、cが依存するコードフラグメントは、擬似ランダム値から導かれる;それゆえ、コードフラグメントは、疑似ランダム的に選択される。
【0033】
この暗号化/解読がfに依存する場合、コードフラグメントf内のビットの変形は、不正確な暗号化/解読を引き起こす。更に、暗号化/解読が依存するコードフラグメントは、疑似ランダムなやり方で選択される。こうして、大きいソフトウェアプログラムが改ざん耐性をもつようにする効率的な方法が、提供される。
【0034】
ブロック暗号は、通常、一定のサイズ、即ちnビット、のブロックを暗号化し/解読する。ブロック暗号がnビットより多いコンテントに適用されるやり方は、ブロック暗号モードと呼ばれる。いくつかのブロック暗号モードは、NISTによって標準化されている。これらのモードで最も一般的なものは、CBC(暗号ブロックチェーニング)モードである。このモード及び他のブロック暗号モードは、制限無く使用されることができる。CBCモードは、以下のように動作する;図1及び図2を参照されたい。
【0035】
平文及び暗号文を、nビットブロックに分割させる。i番目の平文ブロックは、pによって示され、i番目の暗号文ブロックは、cによって示される。更に、E(p)は、鍵Kによるpの暗号化を示し、D(c)は、鍵Kによるcの解読を示す。CBCに従う平文と暗号文との間の関係は、

及び

によって与えられる。ここで、cは、ある初期値IVとして規定され、

は、XOR演算を示す。このブロック暗号モードの背景にある考えは、平文ブロックiが、それに暗号文ブロックi−1を加えることによってランダム化されることである。
【0036】
一実施例において、CBCモードが使用される。他のブロック暗号モードが、同様に使用されることができる。プログラムコードと暗号化/解読との間の依存を実現するために、2つの問題が生じる。第1に、どのコードフラグメントがi番目の暗号化/解読に依存するようにされるかという問題が生じる。第2に、依存がどのように実現されるかという問題が生じる。
【0037】
第1の問題は、以下のようにかなえられる。暗号文ブロックi−1に、i番目の暗号化/解読に依存するようにされるコードフラグメントを決定させる。これは、例えば以下のように実現されることができる。改ざん耐性をもつようにされることを必要とするソフトウェアコードが、メモリのアドレス0,1,...,28-1に記憶されているとする。しかしながら、これは一例にすぎない。より多くのアドレスが、単純明快なやり方で使用されることができる。各アドレスは、プログラムの1ワードを含む。更に、ブロック暗号モードにおける各々の暗号化/解読は、mワードを含むコードフラグメントに依存するようにされるものとする。暗号化/解読i+1は、アドレス、
ci-1 mod 28, (ci-1+1) mod 28,...,(ci-1+m) mod 28
において、ソフトウェアコードフラグメントに依存するようにされる。
【0038】
暗号文ブロックのシーケンスは、疑似ランダムビットストリームとみなされることができるので、このストラテジは、各々の暗号化/解読において、(擬似)ランダムコードフラグメントが完全性に関してチェックされる特性を有する。これは、プログラム内の各変更が、最終的に、不正確な暗号化/解読を生じさせるので、相対的に大きいプログラムが、改ざん耐性をもつようにされることができることを意味する。
【0039】
生じる第2の問題は、ブロック暗号化/解読とコードフラグメントとの間の依存をどのように実現すべきかである。CBCモードにおいて、i番目の暗号化/解読は、(i−1)番目の暗号ブロックに依存するようにされる。この依存が生成されるのと同じやり方で、コードフラグメントへの依存が、生成されることができる。これは、i番目の暗号化/解読がnビット(nビットはブロックサイズである)を含むコードフラグメントf(ci−1)に依存する場合、暗号文ブロックc及び平文ブロックpが、

及び

によってそれぞれ与えられることを意味する。これは、図3及び図4において視覚化される。
【0040】
図5は、本発明の一実施例を示す。図は、データを処理するシステム100を示す。システムは、クライアントシステムでありうる。図は更に、データを処理するサーバシステム200を示す。例えば、サーバ200は、インターネットのようなデータネットワークを介する送信によって又はCD−ROMディスクのような取り外し可能な記憶媒体によって、クライアント100に供給される処理されたデータ110を準備する。データは更に、内部記憶媒体116から生じるものであってもよい。
【0041】
図は、入力部102を示している。入力部102は、処理される必要があるデータを受け取る。入力部102は、例えばサーバ200からデータを受け取る。データは、局所データ格納部116からも受け取られることができる。データは更に、局所的に走る別のアプリケーションから又はユーザ入力から受け取られることができる。データは、例えばデータファイル、画像、オーディオファイル、ムービー、又は例えばストリーミングビデオ又はストリーミングオーディオのようなストリーミングメディアコンテントを含むことができる。データは、暗号化されることができ、処理は、暗号化されたデータの解読でありうる。処理は更に、データの署名若しくはウォーターマーキング、又はデータの署名若しくはウォーターマークの検証を含みうる。データは、セレクタ106に転送される。
【0042】
鍵供給部106は、受け取られたコンテントを処理する際に使用されるべきソフトウェアコードの部分112を選択する。好適には、セレクタ106は、それが、コードの異なる部分を定期的に選択して、ソフトウェアコード104のすべてがやがて選択されることを達成するように実現される。鍵供給部106は、選択された部分112に依存して暗号鍵を供給する。選択された部分112は、暗号鍵を直接的に表現してもよく、又は暗号鍵は、この部分112から導出されてもよい。例えば、鍵は、コードの一部のコンテントのハッシュ関数として計算されることができる。好適には、鍵供給部106は、暗号文に基づいて前記部分を選択するように構成される。ブロック暗号が使用される場合、以前に処理されたデータブロックが、使用されることができる。
【0043】
暗号化ユニット108は、入力部102を介して取り出されるデータの暗号処理を、鍵供給部106によって供給される鍵に依存して実施する。暗号処理は、供給された鍵を使用してコンテントを解読することを含むことができる。暗号化ユニットは、例えば選択された部分のビットを平文又は暗号文とXOR演算することによって、選択された部分のビット表現を直接的に鍵として使用することもできる。選択された部分112及びコンテント110を伴う任意の線形又は非線形演算が、2つの間の依存を生成するために使用されることができる。暗号処理は更に、暗号化及び/又はデジタル署名及び/又はデジタルウォーターマーキングを含みうる。しかしながら、これらは、暗号処理の非制限的な例である。
【0044】
暗号化ユニット108の出力は、暗号処理されたデータ114である。このデータは、格納部116へ出力され、又は送信若しくは他の処理及び/又はレンダリングのために出力される。例えば、出力データ114は、テレビジョンへのレンダリングのためのビデオ信号を含みうる。
【0045】
システム100は、局所又は遠隔記憶媒体116上へのデータのセキュアな記憶のために使用されることができる。格納部116は、コンテントデータに対応する暗号文を記憶するために使用される。データが解読される必要があるときは必ず、格納部116に記憶された暗号化されたコンテントは、入力部102を介して、暗号化ユニット108及び鍵供給部106に供給される。
【0046】
格納部116に記憶される暗号化されたデータは、外部ソースから受け取られることもできる。しかしながら、それは、システム自体によって生成されることもできる;例えば、ユーザのプロファイル若しくはドキュメント又はオーディオ/ビデオコンテントが、暗号化された形でセキュアに記憶されることができる。そのために、好適には、暗号化ユニットは、暗号器及び解読器の両方を有する。入力部102から受け取られる暗号化されていないデータは、まず、鍵供給部106及び暗号化ユニット108を使用して暗号化され、こうして暗号化されたデータ114は、格納部116に記憶され、必要なときはいつも、記憶された暗号化されたデータが、格納部116から入力部102に供給され、入力部102から鍵供給部106及び暗号化ユニット108に供給されて、出力114において解読されたデータが得られる。
【0047】
代替として、暗号化ユニットは、ソフトウェアコード104の選択された部分112に依存して、コンテントデータにデジタルウォーターマークを適用する。
【0048】
一実施例は、サーバシステム200を含む。このサーバシステム200は、コンテントデータがクライアント100の入力部112に供給される前に、コンテントデータを準備するために使用される。サーバ200及びクライアント100は、それぞれ異なるコンピュータ上で走っていてもよい。サーバ200及びクライアント100は、単一のマシン上で走る異なる処理を含むものであってもよい。サーバ200は、クライアント100上で使用されるソフトウェアコードについての知識を有する。この知識は、ソフトウェアコード104の選択された部分112に依存して、クライアント100上で適切に処理されることができるコンテントデータを生成するのに少なくとも十分である。例えば、サーバは、鍵供給部106によって選択されうるコードの異なる部分112に対応する予め計算された暗号鍵のリストを有する。代替として、鍵供給部206は、ソフトウェアコード104の局所コピーを有する。代替として、一例において、サーバ200のセレクタ206が、クライアント100に記憶される実際のコード104へのアクセスを有する。サーバシステム200は、出力部202、鍵供給部206、暗号化ユニット208及び入力部210を有する。コンテントデータ214は、入力部210によって受け取られ、鍵供給部206及び暗号化ユニット208に転送される。鍵供給部206は、ソフトウェアコード104の一部112を選択し、選択された部分112に依存して、暗号化ユニット208に鍵を供給する。この鍵は、入力コンテントデータを暗号処理するために暗号化ユニット208によって使用される。処理されたコンテントデータ110は、出力部202を介して、クライアントシステム100の入力部102へ供給される。
【0049】
一実施例は、データセキュリティを増大させる方法であって、処理されるべきコンテントデータ(110)を受け取るステップと、個々の鍵に依存して、コンテントデータの個々のブロックを暗号処理するステップと、保護されるべき予め決められたシステムデータ(104)の個々の部分(112)に依存して、コンテントデータの個々のブロックの前記処理のために使用される個々の鍵を決定するステップであって、前記部分は、すべての予め決められたシステムデータを含まず、予め決められたシステムデータの異なる個々の部分が、予め決められたスキームに従ってコンテントデータの個々のブロックについて選択される、ステップと、を含む方法を含む。
【0050】
一実施例は、データセキュリティを増大させる方法であって、処理されるべきコンテントデータ(214)を受け取るステップと、保護されるべき予め決められたシステムデータ(104)を含むクライアントシステム(100)に、処理されたコンテントデータ(110)を供給するステップと、個々の鍵に依存して、コンテントデータの個々のブロックを暗号処理するステップと、予め決められたシステムデータ(104)の個々の部分(112)に依存して、コンテントデータの個々のブロックの前記処理のために使用される個々の鍵を決定するステップであって、前記部分は、すべての予め決められたシステムデータを含まず、予め決められたシステムデータの異なる個々の部分は、予め決められたスキームに従ってコンテントデータの個々のブロックについて選択される、ステップと、を含む方法を含む。
【0051】
一実施例は、上述された方法のいずれかをプロセッサに実施させるためのコンピュータ実行可能な命令を含むコンピュータプログラムを含む。
【0052】
図6は、記述されたシステム及び方法を実現するのに適した例示のハードウェアアーキテクチャを示している。ハードウェアアーキテクチャは、例えばパーソナルコンピュータ、セットトップボックス、テレビジョン受信機又はデジタルビデオプレーヤ/レコーダにおいて実現されることができる。サーバシステム200は、例えばサーバコンピュータにおいて実現されることができる。図は、メモリ91、ディスプレイ93(又はディスプレイ用のコネクタ)、入力部94(例えばキーボード、マウス、遠隔制御装置)、通信ポート95(例えばイーサネット、ワイヤレスネットワーク、アンテナケーブル入力)及び記憶媒体96(例えばコンパクトディスク、CD−ROM、DVD、外部フラッシュメモリのような取り外し可能な記憶媒体又は例えばハードディスクのような内部不揮発性記憶媒体)を制御するプロセッサ92を示している。メモリ91は、説明される方法の1又は複数をプロセッサに実施させるためのコンピュータ命令を含む。これらのコンピュータ命令は、記憶媒体96から又は通信ポート95を介してインターネットから、メモリ91にロードされることができる。入力部94は、ユーザがシステムと対話することを可能にするために使用される。ディスプレイは、ユーザとのインタラクションのために使用され、任意には、ビデオ又は静止画像をレンダリングするために使用される。スピーカ(図示せず)が、ユーザインタラクション及び/又はオーディオコンテントのレンダリングのために設けられることもできる。サーバシステム及びクライアントシステムは、図6と同じハードウェアシステム上のソフトウェアアプリケーションとして実現されることができ、それらは、同時に走ることができ、プロセス間通信を介して互いに通信することができる。代替として、クライアント及びサーバは、別個のハードウェアシステム上で走ることができ、双方とも図6と同様のアーキテクチャを有する。例えば、サーバは、コンテントプロバイダによって位置付けられ、所有され、クライアントは、コンシューマによって所有され、コンシューマの家に位置付けられる。
【0053】
本発明は、本発明を実施に至らせるように適応されるコンピュータプログラム、特に担体上又は担体内のコンピュータプログラムにも及ぶことが理解されるであろう。プログラムは、ソースコード、オブジェクトコード、コード中間ソース及び例えば部分的にコンパイルされた形のオブジェクトコードでありえ、又は、本発明による方法の実現において使用されるのに適した任意の他の形でありうる。担体は、プログラムを担持することが可能な任意のエンティティ又はデバイスでありうる。例えば、担体は、CD−ROM若しくは半導体ROMのようなROM、又はフロッピーディスク若しくはハードディスク磁気記録媒体のような記憶媒体を含むことができる。更に、担体は、電気若しくは光学ケーブルを介して又は無線若しくは他の手段によって伝達されることができる、電気信号又は光学信号のような送信可能な担体であってもよい。プログラムがこのような信号において具体化される場合、担体は、このようなケーブル又は他のデバイス若しくは手段によって構成されることができる。代替として、担体は、プログラムが組み込まれる集積回路でありえ、かかる集積回路は、関連した方法を実施するように又は実施に使用されるように適応される。
【0054】
上述の実施例は、本発明を制限するのではなく、説明するものであり、当業者であれば、添付の特許請求の範囲を逸脱することなく多くの他の代替実施例を設計することが可能であることに注意すべきである。請求項において、括弧内に置かれた任意の参照符号は、請求項を制限するものとして解釈されるべきではない。「有する、含む」なる動詞及びその活用形の使用は、請求項に記載のもの以外の構成要素又はステップの存在を除外しない。構成要素の前の冠詞「a」又は「an」は、このような構成要素の複数の存在を除外しない。本発明は、いくつかの異なった構成要素を含むハードウェアによって、及び適切にプログラムされたコンピュータによって、実現されることができる。いくつかの手段を列挙する装置の請求項において、これらの手段のいくつかは、同じ一つのハードウェアアイテムによって具体化されることができる。特定の方策が相互に異なる従属請求項に記述されているという単なる事実は、これらの方策の組み合わせが有利に使用されることができないことを示さない。

【特許請求の範囲】
【請求項1】
データセキュリティを増大させるシステムであって、
処理されるべきコンテントデータを受け取る入力部と、
保護されるべき予め決められたシステムデータと、
個々の鍵に依存して、前記コンテントデータの個々のブロックを暗号処理する暗号化ユニットと、
前記予め決められたシステムデータの個々の部分に依存して、前記コンテントデータの個々のブロックの前記処理のために使用される前記個々の鍵を決定する鍵供給部であって、前記予め決められたシステムデータの前記部分は、すべての前記予め決められたシステムデータを含まず、前記予め決められたシステムデータの異なる個々の部分が、前記コンテントデータの前記個々のブロックについて選択される、鍵供給部と、
を有するシステム。
【請求項2】
前記予め決められたシステムデータが、コンピュータ実行可能な命令を含むソフトウェアコードを有する、請求項1に記載のシステム。
【請求項3】
前記鍵供給部は、前記コンテントデータの前記個々のブロックの外側のコンテントデータに依存して、前記予め決められたシステムデータの前記部分を選択する、請求項1に記載のシステム。
【請求項4】
前記鍵供給部は、前記コンテントデータの暗号文に基づいて、前記予め決められたシステムデータの前記部分を選択する、請求項3に記載のシステム。
【請求項5】
前記鍵供給部が、以前に処理されたデータブロックの前記暗号文に基づいて、前記予め決められたシステムデータの前記部分を選択する、請求項4に記載のシステム。
【請求項6】
前記鍵供給部は、暗号鍵を得るために、前記選択された部分の疑似ランダム関数を計算する、請求項1に記載のシステム。
【請求項7】
前記暗号化ユニットは、前記個々の鍵の少なくとも一部及び前記コンテントデータの前記個々のブロックの少なくとも一部に関するXOR演算を適用する、請求項1に記載のシステム。
【請求項8】
前記コンテントデータに対応する暗号文を記憶する格納部を更に有し、前記暗号化ユニットが、前記記憶されたコンテントデータを解読する、請求項1に記載のシステム。
【請求項9】
前記暗号化ユニットは、
前記個々の鍵に依存して前記入力部から受け取られる前記コンテントデータの前記個々のブロックを暗号化し、前記格納部を使用して前記暗号化されたコンテントデータを記憶する暗号器と、
前記個々の鍵に依存して、前記格納部を使用して記憶された前記暗号化されたコンテントデータの個々のブロックを解読する解読器と、
を有する、請求項8に記載のシステム。
【請求項10】
前記暗号化ユニットが、前記個々の鍵に依存して、前記コンテントデータにデジタルウォーターマークを付す、請求項1に記載のシステム。
【請求項11】
データセキュリティを増大させるサーバシステムであって、
処理されるべきコンテントデータを受け取る入力部と、
保護されるべき予め決められたシステムデータを有するクライアントシステムに、処理されたコンテントデータを供給する出力部と、
個々の鍵に依存して、前記コンテントデータの個々のブロックを暗号処理する暗号化ユニットと、
前記予め決められたシステムデータの個々の部分に依存して、前記コンテントデータの個々のブロックの前記処理のために使用される前記個々の鍵を決定する鍵供給部であって、前記予め決められたシステムデータの前記部分は、すべての前記予め決められたシステムデータを含まず、前記予め決められたシステムデータの異なる個々の部分が、前記コンテントデータの前記個々のブロックについて選択される、鍵供給部と、
を有するサーバシステム。
【請求項12】
請求項1に記載のクライアントシステム及び請求項11に記載のサーバシステムを有するシステムであって、
前記サーバシステムの前記出力部は、前記クライアントシステムの前記入力部に、前記サーバシステムの前記暗号化ユニットによって処理された前記コンテントデータを供給し、
前記サーバシステムの前記鍵供給部及び前記クライアントシステムの前記鍵供給部は、前記サーバシステムの前記入力部において前記コンテントデータを受け取ることに応じて及び前記クライアントシステムの前記入力部において対応するコンテントデータを受け取ることに応じて、それぞれ、前記ソフトウェアコードの同じ部分を使用する、システム。
【請求項13】
データセキュリティを増大させる方法であって、
処理されるべきコンテントデータを受け取るステップと、
個々の鍵に依存して、前記コンテントデータの個々のブロックを暗号処理するステップと、
保護されるべき予め決められたシステムデータの個々の部分に依存して、前記コンテントデータの個々のブロックの前記処理のために使用される前記個々の鍵を決定するステップであって、前記予め決められたシステムデータの前記部分は、すべての前記予め決められたシステムデータを含まず、前記予め決められたシステムデータの異なる個々の部分が、前記コンテントデータの前記個々のブロックについて選択される、ステップと、
を含む方法。
【請求項14】
データセキュリティを増大させる方法であって、
処理されるべきコンテントデータを受け取るステップと、
保護されるべき予め決められたシステムデータを含むクライアントシステムに、処理されたコンテントデータを供給するステップと、
個々の鍵に依存して、前記コンテントデータの個々のブロックを暗号処理するステップと、
前記予め決められたシステムデータの個々の部分に依存して、前記コンテントデータの個々のブロックの前記処理のために使用される前記個々の鍵を決定するステップであって、前記予め決められたシステムデータの前記部分は、すべての前記予め決められたシステムデータを含まず、前記予め決められたシステムデータの異なる個々の部分が、前記コンテントデータの前記個々のブロックについて選択される、ステップと、
を含む方法。
【請求項15】
請求項13又は14に記載の方法をプロセッサに実施させるコンピュータ実行可能な命令を含むコンピュータプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公表番号】特表2010−529718(P2010−529718A)
【公表日】平成22年8月26日(2010.8.26)
【国際特許分類】
【出願番号】特願2010−508946(P2010−508946)
【出願日】平成20年5月19日(2008.5.19)
【国際出願番号】PCT/IB2008/051960
【国際公開番号】WO2008/142633
【国際公開日】平成20年11月27日(2008.11.27)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.イーサネット
2.フロッピー
【出願人】(598036964)イルデト・ビー・ヴイ (16)
【Fターム(参考)】