(57)【要約】  暗号用鍵データ120を更新するためのシステム100は、時系列的に鍵の更新データ114を受信するための鍵入力106と、受信した時系列的な鍵の更新データ114の一つに応答して、暗号用鍵データの、すべての暗号用鍵データを含んではいない、一部分116を変更するための、鍵の更新器108と、を有し、暗号用鍵データの異なる各部分が、時系列的な鍵の更新データの対応する部分に対して選択される。システムは更に、データ処理されるべきコンテンツデータ112を受信するためのコンテンツ入力部104と、データ処理されたコンテンツデータ118を得るために、鍵データに応じて前記コンテンツデータの暗号処理を行う暗号ユニット110と、を有する。コンテンツ入力部が、コンテンツ・データストリームを受信するよう配置され、前記コンテンツ・データストリームの連続する部分が、時系列的な鍵の更新データに対応する時系列的な鍵に基づいて暗号化される。
2010528517.tif 000002
【特許請求の範囲】
【請求項１】
暗号用鍵データを記憶するためのメモリと、
時系列的に鍵の更新データを受信するための鍵データの入力部と、
受信した、前記時系列的な鍵の更新データの一つに応答して、前記暗号用鍵データの、全ての前記暗号用鍵データを含んでいることはない、一部分を変更するための鍵データ更新器と、
を有する、暗号用鍵データを更新するためのシステムであって、前記暗号用の鍵データの異なる各部分が、前記時系列的な鍵の更新データの対応する部分に対して選択される、システム。
【請求項２】
データ処理されるべきコンテンツデータを受信するためのコンテンツ入力部と、
データ処理されたコンテンツデータを得るために、前記鍵データに応じて前記コンテンツデータの暗号処理を行う暗号ユニットと、
を更に有する、請求項１に記載のシステム。
【請求項３】
前記コンテンツ入力部が、コンテンツ・データストリームを受信し、当該コンテンツ・データストリームの連続する部分が、前記時系列的な鍵の更新データに対応する時系列的な鍵に基づいて暗号化される、請求項２に記載のシステム。
【請求項４】
前記コンテンツ・データストリームは暗号化されたビデオデータを有し、前記暗号ユニットが、前記暗号化されたビデオデータを復号し、更に、当該復号されたビデオデータの再生を可能にするための出力部を有する、請求項３に記載のシステム。
【請求項５】
前記鍵データは、ルックアップテーブルの少なくとも一部を有する、請求項１に記載のシステム。
【請求項６】
前記鍵データは、複数のルックアップテーブルのネットワークの少なくとも一部を有する、請求項１に記載のシステム。
【請求項７】
前記鍵の更新データは、前記複数のルックアップテーブルから成るネットワークの少なくとも一部に対する変更を含み、当該鍵の更新データが、前記複数のルックアップテーブルから成るネットワークの前記少なくとも一部のうちの、少なくとも一つのルックアップテーブルを、変更しないまま残すよう構成されている、請求項６に記載のシステム。
【請求項８】
前記鍵の更新データが、前記複数のルックアップテーブルから成るネットワークの前記少なくとも一部のうちの、多くても一つのルックアップテーブルに対する変更を含む、請求項７に記載のシステム。
【請求項９】
前記鍵データ更新器は、受信した前記時系列的な鍵の更新データの一つの中に有る情報に応じて前記部分を選択する、請求項１に記載のシステム。
【請求項１０】
前記鍵データ更新器は、所定のシーケンスに従って、前記それぞれの部分を選択する、請求項１に記載のシステム。
【請求項１１】
全ての前記鍵データが置き換えられねばならないと指示している前記鍵の更新データに応答して、すべての前記鍵データを置き換える、全鍵データ更新器を更に有する、請求項１に記載のシステム。
【請求項１２】
時系列的に鍵の更新データを生成するための鍵の更新データ発生器と、
前記時系列的な鍵の更新データをクライアントのシステムに供する鍵データの出力部と、
を有する、暗号用の鍵の更新データを供するためのサーバ・システムであって、
それぞれの前記時系列的な鍵の更新データのうちの一つが、暗号用鍵データの、全ての前記暗号用鍵データを含んでいはいない、それぞれの部分に対する変更を表しており、前記暗号用鍵データの異なる各部分が、前記時系列的な鍵の更新データの対応する部分に対して選択される、サーバ・システム。
【請求項１３】
暗号用鍵データを記憶するステップと、
時系列的に鍵の更新データを受信するステップと、
受信した、前記時系列的な鍵の更新データの一つに応答して、前記暗号用鍵データの、全ての前記暗号用鍵データを含んではいない、一部分を変更するステップと、
を含む、暗号用鍵データを更新する方法であって、前記暗号用鍵データの異なる各部分が、前記時系列的な鍵の更新データの対応する部分に対して選択される、方法。
【請求項１４】
時系列的に鍵の更新データを生成するステップと、
前記時系列的な鍵の更新データをクライアントのシステムに供給するステップと、
を含む、暗号用鍵データの更新方法であって、それぞれの、前記時系列的な鍵の更新データの一つは、前記暗号用鍵データのそれぞれの、全ての暗号用鍵データを含んではいない対応する部分に対する変更を表わしており、前記暗号用鍵データの異なる各部分が、前記時系列的な鍵の更新データの対応する部分に対して選択される、方法。
【請求項１５】
請求項１３又は請求項１４に記載の方法をデータプロセッサに実行させるための、コンピュータで実行可能な命令を有するコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、暗号用の鍵データを更新することに関する。
【背景技術】
【０００２】
著作権で保護されたコンテンツに対する配布媒体としてのインターネットの使用は、コンテンツ・プロバイダの利益を確保するための課題を創出した。特に、コンテンツ・プロバイダの著作権及びビジネス・モデルを保証することが必要とされている。家電製品のプラットフォームは、ますます、ソフトウェアを搭載したデータプロセッサを使用して動作している。斯様なソフトウェアは、オーディオ及び/又はビデオなどのデジタルコンテンツを再生（プレイバック）するための機能の主要な部分を供する。コンテンツが使われることができる契約条件を含む、コンテンツオーナーの興味を引く一つの態様は、再生ソフトウェアについての制御をもつことによる。伝統的に、例えばテレビ又はDVDプレーヤ中に組み込まれた多くの家電製品のプラットフォームが、（商品毎に）閉じて使われてきた一方、今日では、より多くのプラットフォームが、少なくとも部分的に解放されている。この事は、特にPCのプラットフォームに当てはまる。と云うのは、何人かのユーザは、コンテンツへのアクセスを供するPCのハードウェア及びソフトウェアに対して、完全に制御ができると看做されているからである。また、斯様なユーザは、いかなるコンテンツ保護メカニズムも攻撃し迂回するための大量の時間及びリソースをもっていると看做されている。この結果、コンテンツ・プロバイダは、不安定なネットワークを通じて合法的なユーザに、及び全てのユーザ又は全ての装置が信頼されることができるというわけではないコミュニティに、コンテンツを配信しなければならない。
【０００３】
デジタル著作権管理システムは、コンテンツの不正使用を防止するために、しばしば、暗号化手段、及び/又は不法に配信されたコンテンツのソースの追跡を可能にするためのデジタル署名手段を使用する。デジタル著作権管理において起きている課題の一つは、コンテンツが使用可能となる契約条件を強制するソフトウェア・コードが改竄されてはならないということである。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
暗号化に依存しているデジタル著作権管理の、脆弱さをもつ二つのエリアは、コンテンツが使用可能となる契約条件を強制するソフトウェアのプラグインと、鍵の配信及び鍵の取扱いとである。契約条件の強制を取り除くことを意図しているアタッカーは、ソフトウェアのプラグイン内に含まれるプログラムコードの不正操作によって、これを実現することを試みる可能性がある。鍵の取扱いに関連して、コンテンツを再生するためにメディア・プレーヤは、復号鍵をライセンスのデータベースから抽出せねばならない。この時点で、当該プレーヤは、暗号化されたコンテンツの復号のために、この復号鍵をメモリの何処かに記憶しなければならない。この事は、アタッカーに、鍵への攻撃のための二つのオプションを供する。第1に、ライセンス・データベースへのアクセス機能のリバース・エンジニアリングは、結果としてブラックボックス化したソフトウェアを生じる可能性があり（即ち、アタッカーは、ソフトウェア機能の内部動作を理解する必要はなく）アタッカーがすべてのライセンス・データベースから資産鍵を取り出すことを可能にする。第2に、コンテンツ復号の際にメモリに対するアクセスを観察することによって、資産鍵を取り出すことが可能であろう。いずれの場合でも、鍵が危険にさらされることが考えられる。
【０００５】
不正操作に対して抵抗力があるソフトウェアとは、目標指向がある不正操作を複雑にするための特別な特徴をもつソフトウェアを意味する。ソフトウェア・アプリケーションの不正操作に対する抵抗力を増大させるさまざまな技術が存在する。大部分のこれらの技術は、ソフトウェア・アプリケーションの制御とデータ経路との両方に、ランダムさ及び複雑さのベールを加えることによって、埋め込まれたアプリケーション情報を隠すことに基づいている。これの背後にある着想は、単にソフトウェア・コードの精査だけによって情報を得ることが、より困難になるということである。これ故、例えば、アプリケーションのアクセス及び認可制御を取り扱うコードを見いだし、結果的にそれを変更することは、より困難である。
【０００６】
これ以降「Chow1」と呼ぶ、Stanley Chow, Philip Eisen, Harold Johnson, 及びPaul C. Van Oorschotによる, 「ホワイトボックス化した暗号化、及びAES規格の実施」、暗号化部会、：第9回、年次国際ワークショップ、SAC 2002、セントジョンズ、ニューファンドランド、カナダ、2002年8月15〜16日、及びこれ以降「Chow2」と呼ぶ、Stanley Chow, Phil Eisen, Harold Johnson, 及びPaul C. van Oorschotによる「DRMアプリケーションのためのホワイトボックス化したDESの実施」、デジタル著作権管理部会、：ACM CCS-9  ワークショップ、DRM 2002、ワシントンD．C．米国、2002年11月18日、は、個々のステップよりもむしろ組成物を表しているランダムな全単射で鍵テーブルを符号化することと、暗号の境界を、更に境界を押し出すことによって、含んでいるアプリケーションへと延在させることとの組合せによって鍵を隠す目的を有する方法を開示している。これらの方法を使用するとき、鍵を変更することは困難である。
【課題を解決するための手段】
【０００７】
暗号用の鍵データを更新するための改善されたシステムをもつことは、好都合であろう。この懸念によりよく対処するために、本発明の第1の態様において、
-  暗号用鍵データを記憶するためのメモリと、
-  時系列的に鍵の更新データを受信するための鍵データ入力部と、
-  受信した、時系列的な鍵の更新データのうちの一つに応答して、暗号用鍵データの、すべての暗号用鍵データを含んではいない、一部分を変更させるための鍵データ更新器と、を有するシステムが提案され、暗号用鍵データの異なる各部分が、時系列的な鍵の更新データの対応する部分に対して選択される。
【０００８】
鍵の更新データは、鍵データの一部を変更するに過ぎず、これ故、鍵の更新データには、より少ない情報が封入される必要がある。したがって、鍵の更新データを送信するために必要とされる帯域幅はより狭い。それにもかかわらずシステムは比較的安全である。この理由は、鍵データ更新器は、鍵の更新データに応答して、鍵データの異なる部分を更新するようにするからである。これ故、複数回の鍵の更新の後に変更されたビット数は、個々の鍵の更新データ中で変更されたビット数よりも多い。これは、鍵データのサイズと比較して、比較的少ない鍵の更新データの使用を可能にする。
【０００９】
実施例は、
-  データ処理されるべきコンテンツデータを受信するためのコンテンツ入力部と、
-  データ処理されたコンテンツデータを得るために、鍵データに応じてコンテンツデータの暗号処理を行うための暗号ユニットと、を有する。
【００１０】
通常、鍵の管理及び暗号処理は、単一のシステムで実行される。
【００１１】
実施例においては、コンテンツ入力部は、コンテンツ・データストリームを受信するために配置されている。当該コンテンツ・データストリームの連続した部分が、時系列的な鍵の更新データに対応する時系列的な鍵に基づいて暗号化される。この事は、1個の固定された鍵のみが用いられる時よりも、データストリームをより安全にし、他方、鍵の更新データ用の帯域幅を比較的狭く保つ。
【００１２】
実施例では、コンテンツ・データストリームは、暗号化されたビデオデータを有し、暗号ユニットが、暗号化されたビデオデータを復号するために配置され、復号されたビデオデータの再生を可能にするための出力部を更に有する。上記システムは、セットトップボックス、デジタルビデオ受信機及び記録機、DVDプレーヤ、及びデジタルTVなどのビデオ・ユニット内で実施されるのに特に適している。
【００１３】
実施例においては、鍵データは、ルックアップテーブルの少なくとも一部を含んでいる。当該ルックアップテーブルは、個別に変更することができる個別の項目から成っている。ルックアップテーブルは、多くのメモリを占有する傾向があるので、以下に説明される態様で、鍵の更新データのサイズを減じることが好都合である。例えば、ルックアップテーブルの対になっている項目は、ルックアップテーブルの全単射性を維持するために交換されてもよい。
【００１４】
実施例においては、鍵データは、複数のルックアップテーブルから成るネットワークのうちの少なくとも一部を含んでいる。複数のルックアップテーブルから成るネットワークの連続した部分が変更されることができる。何故なら、当該ルックアップテーブルは個別に変更されることができる個別の項目から成っているからである。例えば、一つ以上のルックアップテーブル全体が置き換えられるか、又は、一つ以上のルックアップテーブルの幾つかの項目のみが変更される。複数のルックアップテーブルから成るネットワークは、多くのメモリを占有する傾向があるので、以下に説明される態様で、鍵の更新データのサイズを減じることが好都合である。
【００１５】
実施例において、鍵の更新データは、複数のルックアップテーブルから成るネットワークのうちの少なくとも一部に対する変更部分を有する。鍵の更新データは、複数のルックアップテーブルから成るネットワークの少なくとも一部のうちの、少なくとも一つのルックアップテーブルを変更せずに残すよう構成されている。鍵データ更新器及び鍵の更新データ発生器を動作させる比較的簡単な態様は、変更されていない一つ又はこれより多くの完全なルックアップテーブルを残すことによる。
【００１６】
実施例では、鍵の更新データは、複数のルックアップテーブルから成るネットワークの少なくとも一部のうちの、多くても一つのルックアップテーブルに対する変更部分を有する。これは更に、必要とされる帯域幅を減じる。
【００１７】
実施例においては、鍵データ更新器は、受信した時系列的な鍵の更新データのうちの一つが有する情報に応じて、当該情報の変更部分を選択するよう構成されている。鍵の更新データのプロバイダが、鍵データのどの部分を変更するかについて決めることができるので、これはシステムをよりフレキシブルにする。
【００１８】
実施例では、鍵データ更新器は、予め定められたシーケンスによって、それぞれに変更部分を選択するよう構成されている。どの部分を変更すべきかに関する情報が伝達される必要がないので、これは必要とされる帯域幅を更に減じる。
【００１９】
実施例は、すべての鍵データが置き換えられねばならないことが示されている鍵の更新データに応答して全ての鍵データを置き換えるために、全鍵データ更新器を有する。当該全鍵データ更新器は、一度に全ての鍵データを完全に置き換えることができるので、これは安全性を更に改善する。システムが鍵データ更新器及び全鍵データ更新器の両方を有するので、全ての鍵データの更新及び部分的な鍵データの更新の両方が、帯域幅と安全性との間の、どのような所望されるバランスを得るためにも使われることができる。
【００２０】
実施例は、暗号用の鍵の更新データを供するサーバ・システムを有し、当該サーバ・システムは、
-  時系列的に鍵の更新データを発生するための鍵の更新データ発生器を有し、時系列的な鍵の更新データのそれぞれは、暗号用鍵データの、それぞれ、すべての暗号用鍵データを含んではいない部分に対する変更を表し、暗号用鍵データの異なる各部分が、時系列的な鍵の更新データの対応する部分に対して選択される。更に当該サーバ・システムは、
-  時系列的な鍵の更新データをクライアントのシステムに供するための鍵データの出力部を有する。
【００２１】
このサーバ・システムは、説明されたシステムによって受信されたコンテンツ及び鍵の更新データを供する。
【００２２】
実施例は、暗号用の鍵データを更新する方法を含み、当該方法は、
-  暗号用鍵データを記憶するステップと、
-  時系列的に鍵の更新データを受信するステップと、
-  受信した時系列的な鍵の更新データのうちの一つに応答して、暗号用鍵データのうちの、すべての暗号用鍵データを含んではいない、一部を変更させるステップと、を含み、暗号用鍵データの異なる各部分が、時系列的な鍵の更新データの対応する部分に対して選択される。
【００２３】
実施例は、暗号用の鍵の更新データを供する方法を含み、当該方法は、
-  時系列的に鍵の更新データを生成するステップを含み、
時系列的な鍵の更新データのそれぞれは、暗号用鍵データの、それぞれ、すべての暗号用鍵データを含んではいない部分の変更を表し、暗号用鍵データの異なる各部分が、時系列的な鍵の更新データの対応する部分に対して選択される。
更に当該方法は、
-  時系列的な鍵の更新データをクライアントのシステムに供するステップを含んでいる。
【００２４】
実施例は、これまでに説明された方法の少なくとも一つをデータプロセッサに実行させるための、コンピュータで実行可能な命令を有するコンピュータ・プログラムを有する。
【００２５】
本発明のこれらの態様及び他の態様は、図を参照して更に解明され、説明されることであろう。 
【図面の簡単な説明】
【００２６】
【図１】実施例のブロック線図を示す。
【図２】実施例のブロック線図を示す。
【発明を実施するための形態】
【００２７】
定期的に暗号鍵を変えるのは、暗号通信において普通のことである。これは、通信システムの安全性の機能を増すことを助けるか、又は、使用された特定の暗号方式で考えられる弱点を補償することを助ける。アタッカーが暗号を壊そうと試みるリスクがある、敵対的な条件において、鍵の変更は、アタッカーによって負わせられたリスクを減じるための重要なツールである。より脆弱な暗号方式が、例えば計算パワーに関して限定されたリソースを有する環境内で用いられると、この結果、計算的に強力な暗号方式が用いられることができないし、又は、より脆弱な暗号方式が、速度に対する要求を伴う環境において、広帯域又は高いスループットを使用して用いられると、この結果、データ処理されることを必要とするデータの量があまりに多すぎて、大変強力な暗号方式によって全てのデータを処理することができない。
【００２８】
悪意のあるユーザは、暗号方式のいかなる潜在的弱点も識別し、暗号用の鍵又は鍵のような要素を見いだすために、これらの弱点を使用することができる。これ故、これらの鍵又は鍵のような要素を保護する必要がある。鍵又は鍵のような要素を保護する一つの態様は、これらを定期的に変更することによる。これらの鍵は、限られた時間の間のみ有効であるので、いかなる見いだされた鍵又は鍵のような要素の使用も難しくする。
【００２９】
暗号及び鍵のホワイトボックス化した実装は、概して斯様な悪意あるユーザから鍵を保護する方法である。このため、鍵は、複数のルックアップテーブル内に隠される。種々異なるルックアップテーブルの入力部及び出力部が、複数のルックアップテーブルから成るネットワークを形成するために接続されている。これは、Chow 1、及びChow 2で概説されている。しかしながら、これらのシステムでは鍵は固定されており、鍵の情報は、複数のルックアップテーブルから成るネットワーク全体にわたって配信されている。鍵の変更は全ルックアップテーブルのネットワークを置き換えることを必要とし、比較的大きなデータ量に達する。例えば、1個の暗号用の鍵に対する通常のサイズは128ビットであるが、対応するルックアップテーブルのネットワークは数キロバイト、又は数メガバイトのサイズをもつことであろう。例えば1個の鍵kが、鍵kに応じて複数のルックアップテーブル
2010528517.tif 000003
に延在するホワイトボックス化した実装を考えよう。このホワイトボックス化した実装を用いた鍵の変更方式において、鍵iを異なる鍵jに変更することは、結果としてルックアップテーブル
2010528517.tif 000004
のシーケンスをルックアップテーブル
2010528517.tif 000005
のシーケンスと置き換えることになる。
【００３０】
実施例においては、ルックアップテーブルのサブセットのみが、鍵の変更の間に置き換えられる。このように、より少ないデータが修正されることを必要とし、これは帯域幅の要件及び/又は計算の要件を減じる。例えば、鍵i及び対応するルックアップテーブル
2010528517.tif 000006
から始めると、ここでm>=2であり、ルックアップテーブル
2010528517.tif 000007
及び
2010528517.tif 000008
のみが、新しい鍵jによる新情報と置き換えられることができる。結果として生じたテーブル・シーケンス
2010528517.tif 000009
は、鍵の変更以前のオリジナルのテーブル・シーケンスと、計算された及び/又は交信された新しいテーブルとの組合せである。複数のルックアップテーブルのいかなるサブセットも、鍵変更の一部として変更されることができる。修正されたテーブル・シーケンス
2010528517.tif 000010
へと延在するいかなる鍵kも存在しない。したがって、テーブル・シーケンスが単一の鍵kから抽出される状況に比べて、より多数のテーブル・シーケンスが可能である。これは、結果としてより大きな鍵空間を生じる。従って、安全性が増す可能性がある。
【００３１】
実施例においては、鍵変更方式は、一連の鍵k0 ,k1 ,k2 ,…を使用する。このシーケンス中にある各鍵kiを、ホワイトボックス化した実装に従って鍵に付随するテーブルと置き換えることは、結果として一連のホワイトボックス化したテーブルを生じる：即ち、
2010528517.tif 000011
【００３２】
本実施例では、鍵の変更が必要とされるときは、このテーブル・シーケンス中の次のテーブルが、これまでに使用されたテーブルのうちの一つを置き換えるために用いられる。この、次のテーブルのみが、送信されることを必要とする。この方式に従うと、鍵iから鍵jまで、m回のステップでの段階的な鍵の変更を生じる、時系列的な鍵の更新時t0,t1,…tm+1に使われる複数のテーブルが、次のように表されることができる：
2010528517.tif 000012
【００３３】
上記において、水平方向の波括弧は、鍵の更新の後で使われるテーブルを示す。時間の経過と共に、鍵iに対応するより多くのテーブルが、鍵jに対応するテーブルによって置き換えられていることに留意されたい。m+1回のステップの後、鍵iから鍵jへの完全な移行が実現されている。
【００３４】
第2の例の中では、鍵iの第n番目のテーブルが、鍵jの第n番目のテーブルと置き換えられ、結果として次のようになる：
2010528517.tif 000013
【００３５】
アタッカーが、鍵情報を含むメッセージを、どのように斯様なメッセージの受信側で使用されるべきであるかを知ることが困難であると考えることによって、追加された安全性が供されることができる点に留意されたい。斯様なメッセージを使用するためには、アタッカーは更新されたルックアップテーブルの項目の値を見出さねばならず、ルックアップテーブルのどの項目が更新されているかを見出さねばならない。使用されたプロトコルによっては、これは困難な作業である。例えば、複数のルックアップテーブルが、送信側及び受信側の両方にとって知られている予め定められた順序で更新されるが、
しかし、受信側の更新の実施を精査することによって受信側の更新の実施順序を見出すことが困難なようにされている。このように、アタッカーは新規なルックアップテーブルの値を見いだすことが可能であるにもかかわらず、彼はこの新規なルックアップテーブルを既存のルックアップテーブルのネットワークに取り入れる方法を知らないままである。種々異なる（タイプの）受信側に、ルックアップテーブルの項目が更新される順序に関する種々異なるプロトコルを供することにより、一つの特定の（タイプの）受信側をターゲットとするコンテンツが、別の（タイプの）受信側によって使われることができないことが、可能にされる。
【００３６】
実施例では、鍵を段階的に置き換えることによって、鍵空間が拡張される。例えば、128ビットのAES鍵が、10個の128ビットの巡回鍵と個別に置き換えることによって変更されたとき、鍵空間はおよそ10倍に拡張される。何故ならば、九つの中間ステップは、古い128ビットのAES鍵と、新規の128ビットのAES鍵との両方に対応する巡回鍵をもち、従って、これらの中間ステップが、何れかの単一の128ビットのAES鍵に必ずしも対応するというわけではないからである。これは、システムの安全性を更に改善することができる。巡回鍵を128ビットのAES鍵から計算するよりもむしろ、巡回鍵を個別に選択することによって、更に鍵空間を拡張することも可能である。
【００３７】
鍵が一連のランダムなビットを有する実施例においては、各々の鍵の更新データは、ランダムなビットのサブセットの更新を含む。例えば、128ビット鍵において、各々の鍵の更新データは、8ビットの更新データを含む。第1の鍵の更新データは、128ビット鍵の最初の8ビットを更新し、第2の鍵の更新データは、128ビット鍵の次の8ビットを更新し、以下同様に繰り返される。鍵のサイズ、ビットが更新される順序、及び更新されるビットの数は、例としてここで与えられているに過ぎない。
【００３８】
実施例において、母鍵を、当該母鍵よりもより多くのビットを有する、複数のパラメータ（例えば巡回鍵）へと延在させる暗号方式が用いられている。各々の鍵の更新データは、複数のパラメータの一つ以上に対する変更を含んでいる。
【００３９】
実施例では、ホワイトボックス化した実装が、暗号方式を組み込むために用いられている。このホワイトボックス化した実装において、暗号方式は、複数のルックアップテーブルから成るネットワークを用いて組み込まれる。暗号方式の鍵を説明しているであろう鍵情報は、複数のルックアップテーブルから成るネットワーク全体にわたって配信されている。（多数のルックアップテーブルの変更を意味する）鍵の変更よりはむしろ、各々の鍵の更新データが、個別のルックアップテーブルを置き換えるための情報を含んでいる。時系列的な鍵の更新データは、好ましくは種々異なるルックアップテーブルを更新する。代替的には、各々の鍵の更新データは、複数のルックアップテーブルの全てではなく、幾つかのみを置き換えるための情報を含んでいる。好ましくは、暗号方式のどのような望ましい暗号特性も、変更されたルックアップテーブルのネットワーク内で維持されることを保証するよう、注意がはらわれる。
【００４０】
例えば、鍵の更新データは、暗号方式の巡回（例えば、AESの巡回又はDESの巡回）を計算することに関係している全てのルックアップテーブルを置き換えるための情報を有してもよい。これは、巡回鍵を容易に変更することを可能にする。
【００４１】
実施例は、国際特許出願番号 PCT／IB2007/050640（出願人整理番号PH005600）で説明されているような、ホワイトボックス化した実装を含んでいる。この文書では、データ処理システムの完全性を保護する方法が、開示されている。当該方法は、保護されるべきデータ列を決定するステップを含んでおり、当該データ列の完全性が、当該データ処理システムの完全性の表示である。所定のデータ処理機能を表している一組のパラメータが、前記データ列を一組のパラメータのビット表示へ組み込むために、一組のパラメータ内にある冗長性を用いて計算されている。このシステムは、一組のパラメータによってデータを処理することを可能にしている。当該一組のパラメータは、暗号用の鍵を含む暗号アルゴリズムの少なくとも一部を表している。当該一組のパラメータは、複数のルックアップテーブルから成るネットワークも表している。当該ルックアップテーブルのネットワークは、データ処理アルゴリズムのホワイトボックス化した実装中に複数のルックアップテーブルを有する。当該データ処理アルゴリズムは、暗号アルゴリズムを有する。
【００４２】
この方法によれば、幾つかのルックアップテーブルは、保護されるべきデータ列によって、少なくとも部分的に規定される。残りのルックアップテーブルは、これを収容するよう適応されている。この場合、変更されたルックアップテーブルのネットワークが依然として保護されるべきデータ列を収容するよう、鍵の更新データが選択される。
【００４３】
図1は、実施例を例示している。図1は、改善されたデータの安全性のためのシステム100を例示している。システム100は、例えば、ソフトウェア・アプリケーションを実行するパーソナル・コンピュータ、又はセットトップボックス、若しくはテレビである。システム100は、鍵データ120を記憶するためのメモリ102を有する。メモリ102は、フラッシュメモリ及びディスクメモリを含む、どのようなタイプの揮発性又は不揮発性メモリでもあり得る。システム100は更に、処理されるべきコンテンツデータ112を受信するためのコンテンツ入力部104を有する。この入力部は、例えばインターネット接続からコンテンツ・データサーバへとデータを取り出すために配置されているか、又はデジタル・オーディオ及び/又はビデオ信号を、衛星アンテナ又はケーブルテレビの接続部から取り出すために配置されている。当該データは記憶媒体、例えばDVDなどの着脱可能な記憶媒体から得られてもよい。
【００４４】
システム100は更に、時系列的に鍵の更新データを受信するための鍵データの入力部106を有する。これらの鍵の更新データ114は、例えばデジタル通信メッセージである。これらの鍵の更新データは、コンテンツデータ112と同じケーブル及び/又は同じ接続部を介して受信されてもよい。代替的には、別個の物理的な接続部が、コンテンツデータ112、及び鍵の更新データ114のために使われる。受信された鍵の更新データ114は、鍵の更新データ114によって規定された鍵データ120の連続した部分116を変更するために、鍵データ更新器108へ送られる。これらの鍵の更新データ114の所定の数をデータ処理した後に、鍵データの全体部分が、連続する部分116のうちの一つよりも大きく変更された。手段110が、鍵データ120のそれぞれの連続する部分116を識別するために、鍵データ更新器108内に供されている。この手段110は、どの部分116が更新されるべきかについての情報に対して、鍵の更新データを解析することができる。手段110は、固定方式に従って、部分116を選択することもできる。コンテンツデータ112は、処理されたコンテンツデータ118を得るために、鍵データ120に応じて、暗号ユニット110によってデータ処理される。
【００４５】
実施例では、鍵データ入力部106及び鍵データ更新器108を有するシステムが、スマートカードなどの別個の構成要素として実装されている。このスマートカードは、メモリ102を有してもよいし、出力として、更新された鍵データを供してもよい。
【００４６】
実施例では、コンテンツ入力部104が、コンテンツ・データストリーム112を受信するために配置されており、コンテンツ・データストリーム112の連続した部分は、時系列的な鍵の更新データ114に対応した時系列的な鍵に基づいて暗号化されており、暗号ユニット110が、メモリ102内に鍵データ120として記憶された時系列的な鍵データに基づいて、コンテンツ・データストリーム112の連続した部分を復号するために配置されている。時系列的な鍵データは、時系列的な鍵の更新データ114に相当する。
【００４７】
実施例においては、鍵データ120は、ルックアップテーブルの少なくとも一部を含んでいる。
【００４８】
実施例では、鍵データ120は、複数のルックアップテーブルから成るネットワークの少なくとも一部を含んでいる。鍵の更新データ114は、複数のルックアップテーブルから成るネットワークの少なくとも一部に対する変更を含んでいる。鍵の更新データ114は、複数のルックアップテーブルから成るネットワークの少なくとも一部のうちの、少なくとも一つのルックアップテーブルを変更せずに残している。例えば、鍵の更新データは、複数のルックアップテーブルのネットワークの少なくとも一部のうちの、多くても一つのルックアップテーブルに対する変更を含んでいる。
【００４９】
実施例において、システム100は更に、全ての鍵データが置き換えられねばならないことを示す鍵の更新データに応答して、全ての鍵データを置き換えるための、全鍵データ更新器を有する。これは、一回の鍵の更新によって、全ての鍵をリセットすることを可能にする。
【００５０】
実施例では、コンテンツデータ112は暗号化されたビデオデータを有し、暗号ユニット110が、暗号化されたビデオデータを復号するために配置され、更に、復号されたビデオデータ118の再生を可能にするための出力部を有する。
【００５１】
実施例は、データの安全性を改善するために、サーバ・システム200を有する。当該サーバ・システムは、例えばコンテンツ・プロバイダ、放送会社、ケーブルテレビ事業者、又は衛星テレビのオペレータによって操作される。サーバ・システムは、クライアントのシステム内にある鍵データ120に応じて、クライアントのシステム100によってデータ処理されるべきコンテンツデータ112を供するためのコンテンツ出力部202を有する。鍵データの出力部204は、時系列的に鍵の更新データ114を、クライアントのシステムへ供する。サーバ・システム200は更に、時系列的な鍵の更新データ114を生成するための、鍵の更新データ発生器206を有する。時系列的な各々の鍵の更新データ114は、クライアントのシステム100のメモリ102内に記憶された鍵データ120の連続した部分116を変更するための情報を有し、1回よりも多い、所定の回数の置換の後、好ましくは鍵データ120の全てが置き換えられた。これらの連続した部分は、鍵の更新データ発生器206内にある手段208によって識別される。
【００５２】
データの安全性を改善する方法に関する実施例は、
-  鍵データ120を記憶するステップと、
-  データ処理されるべきコンテンツデータ112を受信するステップと、
-  時系列的に鍵の更新データ114を受信するステップと、
-  時系列的な鍵の更新データに応答して、1回よりも多い、所定の回数の置換の後、鍵データ120の全てが置き換えられるよう、鍵データの連続した部分116を変更するステップと、
-  データ処理されたコンテンツデータ118を得るために、鍵データに応じて、コンテンツデータを暗号処理するステップと、を含む。
【００５３】
データの安全性を改善する方法に関する実施例は、
-  クライアントのシステムにある鍵データ120に応じてクライアントのシステム100によって処理されるべきコンテンツデータを供するステップと、
-  時系列的に鍵の更新データ114を、クライアントのシステムに供するステップと、
-  時系列的に鍵の更新データを生成するステップと、を含み、各々の時系列的な鍵の更新データは、鍵データの連続する部分116を変更させるための情報を有し、1回よりも多い、所定の回数の置換の後、鍵データ120の全てが置き換えられた。
【００５４】
図2は、上で説明されたシステムを実施するのに適しているハードウェア・アーキテクチャの例を例示している。当該ハードウェア・アーキテクチャは、例えばパーソナル・コンピュータ、セットトップボックス、テレビ受像機、又はデジタル・ビデオプレーヤ／レコーダに実装されることができる。図2は、メモリ91を制御するためのデータプロセッサ92、ディスプレィ93（又は、ディスプレィ用のコネクタ）、入力部94（例えばキーボード、マウス、リモコン）、通信ポート95（例えばイーサネット、無線ネットワーク、アンテナ・ケーブル入力）、及び（コンパクトディスク、CD-ROM、DVD、外部のフラッシュメモリなどの着脱可能な記憶媒体、又はハードディスクなどの内部にある不揮発性記憶媒体などの）記憶媒体96を示す。メモリ91は、データプロセッサに、上で説明された方法の一つ以上を実行させるためのコンピュータ命令を記憶している。これらのコンピュータ命令は、記憶媒体96から、又は通信ポート95を介してインターネットから、メモリ91に格納されてもよい。入力部94は、ユーザがシステムと対話するのを可能にするために用いられる。ディスプレィが、ユーザを対話するために、及びオプションでビデオ又は静止画像を再生するために使われる。スピーカ（図示せず）も、ユーザとの対話及び/又はオーディオ・コンテンツを再生するために備えられてもよい。サーバ・システム及びクライアントのシステムの両方が、図2の同じハードウェアシステム上のソフトウェア・アプリケーションとして実行されることができ、両者は同時に動作し、プロセス間通信を介して互いに通信することができる。代替的には、クライアント及びサーバは、図2と同様のアーキテクチャをもつ、別々のハードウェアシステム上で動作してもよい。例えばサーバは、コンテンツ・プロバイダによって配置されると共に所有され、クライアントは、消費者によって所有されると共に消費者の家に配置される。
【００５５】
本発明は、本発明を実行するよう適応されて、コンピュータ・プログラム、特にキャリア上又はキャリア内のコンピュータ・プログラムにも延在することが理解されよう。当該プログラムは、ソースコード、オブジェクトコード、部分的にコンパイルされた形式などのコード中間のソースコード及びオブジェクトコードの形式であることができるが、又は本発明による方法の実施において使用に適する、どのような他の形式でもよい。キャリアは、プログラムを担持することができるどのような構成要素又は装置であってもよい。例えば、当該キャリアは、ROM、例えばCD-ROM、又は半導体ROMなどの記憶媒体、又は磁気記録媒体、例えばフロッピーディスク、又はハードディスクを含んでもよい。更に、当該キャリアは、電気信号又は光学信号など、電気ケーブル又は光学ケーブルを介して伝達されるか、又は無線若しくは他の手段によって伝達される、伝播性キャリアであってもよい。プログラムが斯様な信号内で実行されたとき、当該キャリアは斯様なケーブル、又は他の装置若しくは手段によって構成されてもよい。代替的には、当該キャリアは、関連した方法を実行するよう、又は関連した方法中で使用するよう適応されたプログラムが埋め込まれた集積回路でもよい。
【００５６】
上記の実施例が、本発明を限定するよりはむしろ、例示している点に留意する必要があり、当業者は、添付の請求項の範囲から逸脱することなく、多くの代替の実施例を設計することが可能であるだろう点に留意する必要がある。請求項においては、括弧の間に配置されたいかなる引用記号も、当該請求項を限定するものとして解釈されるべきではない。動詞「有する」及びその活用型の使用は、請求項において明言された以外の要素又はステップの存在を排除することはない。要素に先行する冠詞「a」又は「an」は、複数の斯様な要素の存在を排除することはない。本発明は、複数の異なった要素を有するハードウェアを用いて、及び最適にプログラムされたコンピュータを用いて実行されることができる。複数の手段を列挙している装置請求項において、これらの手段の幾つかは、ハードウェアの全く同一の品目によって実施されることができる。特定の手段が相互に種々異なる従属請求項において列挙されているという単なる事実は、これらの手段の組合せが有効に使われることができないことを示しているわけではない。
【図１】
2010528517.tif 000014
【図２】
2010528517.tif 000015
【国際調査報告】
2010528517.tif 000016
2010528517.tif 000017
2010528517.tif 000018