(57)【要約】セキュアな非自律ピアリングシステム（ＳＮＡＰ）は、階層的デジタル透かしスキームと、中央ライセンス機関と、ライセンスされた製造者及び組立者とを含んでいる。【選択図】図１２
2011511988.tif 000002
【特許請求の範囲】
【請求項１】
メディアコンテンツをメモリデバイスにプログラミングする方法であって、
デジタル透かしの入ったメディアファイルを取得し、
前記ファイルを前記メモリデバイスのメモリの一部分に書き込み、
前記メモリ部分における前記メディアファイルの位置及び前記メモリ部分における不良についてのログファイルを作成し、
前記ログファイルを前記メモリの異なる部分に書き込む、
方法。
【請求項２】
前記ログファイルの作成は、前記メモリの部分に位置するメディアファイルの部分及び前記メモリの部分における欠陥についてのマップを作成することを含む、
請求項１の方法。
【請求項３】
前記ログファイルの作成は、ログファイルをメモリに書き込む前に、前記ログファイルにデジタル署名し暗号化することを含む、
請求項１の方法。
【請求項４】
メディアコンテンツにアクセスする方法であって、
ホストデバイスにて、メディアコンテンツを記憶するデバイスに接続し、
前記デバイスからログファイルを取得し、
ホストコントローラにて、前記ログファイルを暗号解読してホストコントローラ暗号解読ログファイルを生成するとともにデジタル署名を認証し、
前記ホストコントローラ暗号解読ログファイルをメモリコントローラ暗号解読ログファイルと比較し、
一致すると判断した後、前記メディアコンテンツへのアクセスを許可する、
方法。
【請求項５】
さらに、
一致しないと判断した後、メディアコンテンツを記憶する前記デバイスを使用不可にするか、再生を停止するか、セキュリティシステムの更新を要求するか、前記メディアコンテンツの信頼できないものを置換するかのいずれかを行う、
請求項４の方法。
【請求項６】
さらに、
前記ホストデバイス上の更新情報と関連づけられた時刻を、メディアコンテンツを記憶する前記デバイス上の更新情報に関連づけられた時刻と比較し、最も新しい更新情報を決定し、
前記決定に応じて、前記ホストデバイス又はメディアコンテンツを記憶する前記デバイスのいずれかを前記最も新しい更新情報で更新する、
方法。
【請求項７】
前記ホストデバイスでの接続は、パーソナルコンピュータ、セットトップボックス、メディアプレーヤ、テレビ、キオスク、または携帯デバイスのいずれかでの接続を含む、
請求項４のメディアコンテンツにアクセスする方法。
【請求項８】
コントローラメモリの一部に記憶されたコントローラ識別子を有するコントローラと、
前記コントローラと通信を行う少なくとも１つのメモリ構成要素デバイスとを備え、前記メモリデバイスはデバイスメモリの一部に記憶されたチップ識別子を有する、
メモリデバイス。
【請求項９】
前記コントローラは、コントローラメモリの一部に記憶されたチップセット認証番号を有する、
請求項８のメモリデバイス。
【請求項１０】
前記メモリデバイスは、デバイスメモリの一部に記憶されたハードウェア認証コードを有する、
請求項８のメモリデバイス。
【請求項１１】
前記メモリデバイスは、デバイスメモリの一部に記憶されたチップセット認証番号を有する、
請求項８のメモリデバイス。
【請求項１２】
前記メモリデバイスは、デバイスメモリの一部に記憶されたメディアファイルを有する、
請求項８のメモリデバイス。
【請求項１３】
メモリデバイスを製造する方法であって、
コンピュータにて、製造者からメモリデバイスに対する不良ブロックデータを含むメッセージを受信し、
前記メモリデバイスに一意なチップ識別子を割り当て、
前記チップ識別子及び前記不良ブロックデータを用いて前記チップに対する公開暗号鍵を生成し、
前記公開暗号鍵を用いて前記チップに対する秘密暗号鍵を生成し、
前記チップ識別子を暗号化するために前記秘密暗号鍵を用いて前記メモリデバイスに対するハードウェア認証番号を生成し、
前記チップ識別子及び前記ハードウェア認証番号を前記製造者に送信する、
方法。
【請求項１４】
さらに、
前記製造者に固有の暗号メッセージ認証コードを用いて前記チップ識別子に署名して暗号署名タグを生成する、
請求項１３の方法。
【請求項１５】
前記チップ識別子を暗号化するための前記秘密暗号鍵の使用は、さらに前記チップ識別子とともに前記暗号署名タグを用いて前記ハードウェア認証番号を生成することを含む、
請求項１４の方法。
【請求項１６】
前記不良ブロックデータを含むメッセージの受信は、暗号化されたメッセージを受信することを含む、
請求項１３の方法。
【請求項１７】
さらに、前記不良ブロックデータの暗号を解読する、
請求項１６の方法。
【請求項１８】
受信及び送信は、前記製造者のところにある専用セキュアポータルで行われる、
請求項１３の方法。
【請求項１９】
メモリデバイスを製造する方法であって、
セキュアポータルを通じて不良ブロックデータをライセンス機関に送信し、
前記セキュアポータルにて、前記ライセンス機関からチップ識別子及びハードウェア認証番号を受信し、
前記チップ識別子及びハードウェア認証番号を検証し、
検証後、前記チップ識別子及びハードウェア認証番号を用いて前記メモリデバイスをプログラムする、
方法。
【請求項２０】
前記チップ識別子及びハードウェア認証番号の検証は、前記チップ識別子及びハードウェア認証番号を暗号解読することを含む、
請求項１９の方法。
【請求項２１】
さらに、前記認証データの機能性を確保するために、プログラミングの後に前記メモリデバイスをテストする、
請求項１９の方法。
【請求項２２】
前記プログラミングは、前記チップ識別子及びハードウェア認証番号を１回限りのプロセスにより書き込むことを含む、
請求項１９の方法。
【請求項２３】
前記１回限りのプロセスは、前記メモリデバイス内のメモリアレイの一部を物理的に損傷させて当該部分を読み取り専用にすることを含む、
請求項２２の方法。
【請求項２４】
メモリコントローラを製造する方法であって、
コンピュータを介してライセンス機関とセッションを確立し、
前記ライセンス機関からコントローラ識別子及びファームウェアファイルを受信し、
前記ファームウェアを前記コンピュータに付属するコントローラにアップロードし、
前記コントローラ識別子を用いて前記コントローラをプログラムする、
方法。
【請求項２５】
前記セッションの確立は、専用のセキュアコンピュータを用いてセッションを確立することを含む、
請求項２４の方法。
【請求項２６】
前記ファームウェアのコントローラへのアップロードは、ファームウェア認証更新を含む、
請求項２４の方法。
【請求項２７】
前記コントローラのプログラミングは、前記コントローラ識別子を１回限りのプロセスにより書き込むことを含む、
請求項２４の方法。
【請求項２８】
前記１回限りのプロセスは、前記コントローラ識別子が書き込まれたメモリデバイスの部分を物理的に損傷させて当該部分を読み取り専用にすることを含む、
請求項２２の方法。
【請求項２９】
メモリコントローラを製造する方法であって、
製造者のコンピュータでセキュアなセッションを確立し、
コントローラ識別子及びファームウェアファイルを前記製造者のコンピュータに送信し、
前記コントローラ識別子をデータベースに記録し、前記データベース内で前記コントローラ識別子は前記製造者に関連づけられている、
方法。
【請求項３０】
チップセットをコントローラにバインドする方法であって、
１組のメモリデバイス及びコントローラを携帯デバイスに取り付け、
前記デバイスを検証し、
コントローラ識別子を読み込み、
前記コントローラ識別子及び前記メモリデバイスに対するハードウェア認証番号をライセンス機関に送信し、
前記ライセンス機関からチップセット認証番号を受信し、
前記チップセット認証番号を前記コントローラ及び前記メモリデバイスにプログラムする、
方法。
【請求項３１】
前記チップの検証は、
プログラミング及び検証テスト、
消去及び検証テスト、
各チップのスペア領域を構文解析してランタイム不良ブロックを検出すること、
各チップに対してハードウェア認証番号を認証すること、
のうち少なくとも１つを行うことを含む、
請求項３０の方法。
【請求項３２】
さらに、
前記携帯デバイスに取り付けられたメモリデバイスに対してすべての不良ブロックについてのブロック損傷ログを算出し、
前記ブロック損傷ログを各メモリデバイスにプログラムする、
請求項３０の方法。
【請求項３３】
前記ブロック損傷ログのプログラミングは、前記ブロック損傷ログを１回限りのプロセスにより各メモリデバイスに書き込むことを含む、
請求項３０の方法。
【請求項３４】
前記１回限りのプロセスは、前記ブロック損傷ログが書き込まれた前記メモリデバイスの部分を物理的に損傷させて当該部分を読み取り専用にすることを含む、
請求項３３の方法。
【請求項３５】
前記チップセット認証番号のプログラミングは、前記チップセット認証番号が書き込まれた前記メモリデバイス及び前記コントローラの部分を物理的に損傷させて当該部分を読み取り専用にすることを含む、
請求項３０の方法。
【請求項３６】
デジタルファイルに透かしを入れる方法であって、
少なくとも２つの異なる透かしを用いて、デジタルメディアファイルにデジタル方式で透かしを入れ、少なくとも第１及び第２のグローバル透かし入りファイルを生成し、
前記グローバル透かし入りファイルを２次セグメントに分割し、
前記２次セグメントを組み合わせて１次セグメントにし、前記１次セグメントが、一意なインスタンスパターンに従って前記第１及び第２のグローバル透かし入りファイルからの２次セグメントの組み合わせを含むようにし、
前記１次セグメントを組み合わせてグローバルセグメントにし、前記グローバルセグメントが、前記一意なインスタンスパターンに従って前記第１及び第２のグローバル透かし入りファイルからの１次セグメントの組み合わせを含むようにし、
前記グローバルセグメントから一意なメディアインスタンスを生成し、前記グローバルセグメントは、一意なメディアインスタンスに対する前記一意なインスタンスパターンの要素を構成する、
方法。
【請求項３７】
前記少なくとも２つの異なる透かしは、３つの透かしを含む、
請求項３６の方法。
【請求項３８】
前記一意なインスタンスパターンは、５つの要素を有する、
請求項３６の方法。
【請求項３９】
前記２次セグメントを組み合わせることは、２次セグメントを連結して前記１次セグメントにすることを含む、
請求項３６の方法。
【請求項４０】
前記１次セグメントを組み合わせることは、前記１次セグメントを連結して前記グローバルセグメントにすることを含む、
請求項３６の方法。
【請求項４１】
さらに、前記２次セグメントを暗号化する、
請求項３６の方法。
【請求項４２】
さらに、前記２次セグメントに適用された暗号化に基づき２次ハッシュテーブルを生成する、
請求項４１の方法。
【請求項４３】
さらに、前記１次セグメントを暗号化する、
請求項４２の方法。
【請求項４４】
さらに、前記１次セグメントに適用された暗号化に基づき１次ハッシュテーブルを生成する、
請求項４３の方法。
【請求項４５】
さらに、前記１次ハッシュテーブルに基づき暗号化合成ハッシュテーブルを生成する、
請求項４４の方法。
【発明の詳細な説明】
【背景技術】
【０００１】
ユーザからユーザへメディアファイルを転送するピアリングネットワーク（peering network）の利用は、要求しているユーザにとってのアクセスの速さ、ネットワークにおける帯域幅の均衡化、及びセントラルコンテンツレポジトリで必要とされる帯域幅の減少といった多くの魅力的な特徴を有している。しかしながら、コンテンツを自由に交換しているユーザがコンテンツ所有者の財産権を侵害するおそれがある。
【０００２】
また、コンテンツ所有者も著作権保護されたコンテンツのコピーを制限して欲しいと考えている。著作権保護されたコンテンツの転送を非常に困難にする技術については多くの例がある。（例えば、電子的販売やレンタルビジネスにおいて）コンテンツを恒久的又は一時的に保存するために物理的メディアを使用する場合、コンテンツの所有者又はそのライセンシーは、種々の暗号化手法によるバインド（binding）方法を用いる。典型的には、これらの方法は、コンテンツをコピーされたり転送されたりすることから保護するために、暗号機能においてメディアＩＤを使用している。
【０００３】
非自律ピアリングシステムの例は、いずれも「ピアリングを介したオンデマンドメディア」というタイトルの米国特許第７，１６５，０５０号及び米国特許公開公報第２００６００６４３８６号に見ることができる。
【０００４】
以下の図面を参照しつつ本開示内容を読むことによって本発明の実施形態を最もよく理解できるであろう。
【図面の簡単な説明】
【０００５】
【図１】図１は、グローバル透かし入りの複数のインスタンスを有するメディアファイルの一例を示す。
【図２】図２は、セグメントに構文解析されたメディアファイルの一例を示す。
【図３】図３は、タイトルスキーマ用のデータ構造の一例を示す。
【図４】図４は、一意なインスタンスパターンの１次表現の一例を示す。
【図５】図５は、異なるグローバル透かしを有する３つの一意なインスタンスパターンに対する１次表現の一例を示す。
【図６】図６は、１次表現の一例の詳細を示す。
【図７】図７は、インターリーブ攻撃の結果の一例を示す。
【図８】図８は、一意なインスタンスパターンの２次表現の概要を示す。
【図９】図９は、ハッシュテーブル階層の一例を示す。
【図１０】図１０は、簡易非自律ピアリングパターン表現と暗号解読パスに基づく科学的犯罪捜査能力のある特定方法の比較を示す。
【図１１】図１１は、簡易非自律ピアリングパターン表現と暗号解読パスに基づく科学的犯罪捜査能力のある特定方法の比較を示す。
【図１２】図１２は、簡易非自律ピアリング準拠プロセスの構成要素の製造及び組立のためのライセンス及び認証システムの概要を示す。
【図１３】図１３は、一意なチップ識別子をそのチップの物理的欠陥にバインドする方法の一例を示す。
【図１４】図１４は、メモリコントローラに対して一意なコントローラ識別子を作成する方法の一例を示す。
【図１５】図１５は、一意な組のメモリチップを用いて一意なコントローラをバインドする方法の一例を示す。
【図１６】図１６は、簡易非自律ピアリングに準拠したメモリデバイスにメディアファイルを書き込む方法の一例を示す。
【図１７】図１７は、メモリデバイス内のメディアファイルを検証する方法の一例を示す。
【図１８】図１８は、ＳＮＡＰライセンス機関の管理下でコンテンツのダウンロードを要求したホストデバイス間の処理の一例を示す。
【図１９】図１９は、ダウンロードされたコンテンツの暗号を解読する要求をしているホストデバイスの一例を示す。
【図２０】図２０は、メモリデバイス上のコンテンツを認証するホストデバイスの一例を示す。
【図２１】図２１は、メモリデバイスからのコンテンツを再生するホストデバイスの一例を示す。
【発明を実施するための形態】
【０００６】
ここでの説明に従い簡易非自律ピアリングシステム（simple non-autonomous peering system）（ＳＮＡＰ）を用いれば、権利の濫用を防止しつつピアリングネットワークの利点を得ることができる。ＳＮＡＰ環境又はシステムは、特定のメディアファイルに対する一意なインスタンス（unique instances）を生成し、複数の保護レイヤを用いる明確な方法によりユーザが他のピア（peer）からそのインスタンスを「ビルド（build）」することを可能にする。これにより、ＮＡＮＤフラッシュメモリ、光メディア、ソリッドステートハードドライブ、スピンドルハードドライブなどを含む（これらに限定されない）様々なメディアタイプに対するレンタル、販売、ペイパービュー方式、劇場展示及び電子販売を含む幅広い種類のコンテンツ貨幣化モデル（content monetization models）が実現可能となる。これらの機能は、ネットワークや閉鎖型ネットワーク環境において様々なピアからファイルがセグメントで提供されるセキュアな「スウォーミング（swarming）」を介して消費者に提供されるものであってもよいし、キオスクなどの販売場所にセキュアな電子配信を提供するものであってもよい。
【０００７】
ＳＮＡＰシステムは、コンテンツをＮＡＮＤフラッシュにバインドするために、ＮＡＮＤフラッシュメディアに固有の物理的欠陥を利用している。ＮＡＮＤフラッシュにおけるこれらの欠陥は不良ブロック（bad blocks）と呼ばれる。ＮＡＮＤフラッシュは、ブロックに物理的にグループ分けされたページからなるデータ領域と、データ領域及びそれに格納されたデータに付随する論理的及び物理的メタデータの記憶のための「スペア（spare）」領域という２つの異なる物理的格納領域を含む一種の不揮発性固体記憶装置（non-volatile solid-state memory）である。これらの２つの領域の構成は、製造業者によって異なる場合があるが、すべてのＮＡＮＤフラッシュチップに両方の領域が存在する。ＮＡＮＤフラッシュチップは、性能を向上させるために、ページごとにプログラムされ、ブロック方式により消去される。
【０００８】
ＮＡＮＤフラッシュメモリを作るために使用される固有の製造方法のために、製造時にＮＡＮＤフラッシュチップの欠陥品が５．５％に達することがよくある。これは、チップ製造業者が商業的に採算のとれる歩留まりを維持するためにはやむを得ないことである。ＮＡＮＤフラッシュメモリはブロックごとに消去されるため、ページプログラムサイクル中又はブロック消去サイクル中に欠陥が検出されると、データ破壊の可能性を避けるためにメモリのブロック全体を「不良（bad）」としなければならない。欠陥ブロックは、チップ製造業者による製造後の厳格なテストにおいて特定の値（典型的には０００ｈ）をブロックのスペア領域にプログラムすることにより特定される。実行時に検出された不良ブロックはスペア領域に異なる値（１６ビットのブロックに対して典型的にはＦＦＦｈ）でマークされる。
【０００９】
以下の説明では、ＮＡＮＤフラッシュに関する用語及び例を用いることに留意しなければならない。しかしながら、特許請求の範囲は、ＮＡＮＤフラッシュデバイスに制限されるものではない。他のメモリ技術もＮＡＮＤフラッシュデバイスと類似の特性を有する場合があり、ＮＡＮＤフラッシュデバイスに制限することは意図されておらず、また示唆されているわけでもない。
【００１０】
ＳＮＡＰシステムは、一意なメディアインスタンス（unique media instances）をコンテンツが格納された特定のブロックアドレスにバインドする。また、ＳＮＡＰシステムは、フラッシュメディア及び記録されたコンテンツを認証するために、一意なメディアインスタンスが記録、すなわちＮＡＮＤフラッシュ用語で「プログラムされた」場所のデジタル署名を用いる。また、ＳＮＡＰシステムは、フラッシュメディア及び記録されたコンテンツを認証するために、不良ブロックの場所のデジタル署名を用いる。これらの署名は、一意なメディアインスタンスを暗号化及び解読するために必要とされる鍵を暗号化手法により修正するためにも用いられる。
【００１１】
これら２つのデジタル署名は、フラッシュメディア及びコンテンツの信憑性を決定する基礎となり、様々なプレーヤ及び家庭用電子製品において再生を停止したり、デバイスやコンテンツを無効にしたり、更新したりするために使用される。不良ブロックのパターンが同じＮＡＮＤフラッシュデバイスが相当数あることは非常に考えにくいため、ＳＮＡＰシステムは、１つのＮＡＮＤデバイスから他のＮＡＮＤデバイスにコンテンツを不正に転送することを非常に難しくしている。ＳＮＡＰシステムは、コンテンツの所有者が１つのＮＡＮＤフラッシュデバイスから他のＮＡＮＤフラッシュデバイスにコンテンスの転送を許可できるようにする。この転送は、移動あるいはコピー処理又はその両方により可能である。これは、コンテンツの所有者のビジネスのルールに従って行うことができ、その多くはそのような転送処理に対する料金の支払いを伴い、あるいはそのような料金の支払いを伴わない場合もある。いずれにしても、ＳＮＡＰシステムは、コンテンツが転送されたかどうかを制御するものであり、それをセキュアな方法で行うものである。
【００１２】
また、ＳＮＡＰは、Digital Cinema Initiativeにおいて述べられているような電子的劇場配信システムにおいて、科学的犯罪捜査上特定可能なセキュアなコンテンツを我々に提供することができる。プレーヤ及び配信ネットワークリソースに関して、ＳＮＡＰの高度な柔軟性、セキュリティ、及び科学的犯罪捜査上の証明可能性が比較的安価で手に入る。
【００１３】
ＳＮＡＰ環境及びメディアインスタンスの前処理
図１は、作成されエンコードされたマスタメディアファイルの複数のインスタンスの概略を示す。本システムは、異なるグローバル透かし（global watermark）をマスタ１０の複数のコピーに適用する。このグローバル透かしは、０ビット又は１ビット以上のペイロードデータ（payload data）を含むことができる。この説明では、異なる透かしの入ったバージョンを識別するために色（ここではインスタンスと呼ぶ）を用いる。インスタンス１２、１４、及び１６のそれぞれは、異なる透かし（それぞれ緑、赤、及び青）でエンコードされている。それぞれの異なるグローバル透かしは、一意なグローバルマーク識別子により内部的に特定される。ＳＮＡＰは多くの異なるグローバル透かしを利用できることに留意しなければならない。それぞれのグローバルマークは、後述するように２つの異なるグローバルマークがマスタ内の類似データ範囲に適用されるように、マスタの異なるコピーに適用される。
【００１４】
マスタの３つの異なるインスタンスに加えて、それぞれの透かし技術を互いに異なるものにしてもよい。同じ透かし技術で３つの異なるバリエーションを持つのではなく、例えば、３つの異なる透かし技術を使ったり、あるいは単一の透かしキャリア内でペイロードを変化させたりすることもできる。
【００１５】
概して、マスタのこれらのインスタンスのそれぞれは、図２に示されるように所定数の２次セグメント（second order segments）に構文解析（parsed）される。別の実施形態においては、透かしを適用する前に映画データをセグメントに構文解析することも可能である。透かしキャリア及び／又はペイロードが確実に単一のセグメントのデータ内で正常にエンコード／検出されるようにするためには、この方法が望ましい場合がある。２次セグメントの数は、図３でより詳細に説明されたタイトルスキーム（title scheme）に従う。ＳＮＡＰは、１次セグメント(first order segments)を構築するために２次セグメントを使い、一意なインスタンスパターン（unique instance pattern）（ＵＩＰ）を構成する表現（expression）を構築するために１次セグメントを使うボトムズアップ手法（bottoms−up methodology）を使用する。
【００１６】
概して、図２の２次セグメントはデータ範囲に従ってお互いに対応している。例えば、特定の２次セグメントに対応する異なるインスタンスからのデータ範囲は、複数の色の間で対応している。例えば、２０，２２，２４のような同図の左側にある２次セグメントは、赤、緑、及び青のインスタンス１２，１４，１６中の同一のデータ範囲に該当する。同様に、２６，２８，３０のような同図の右端にある２次セグメントは、インスタンス中の類似又は同一のデータ範囲に該当する。データ圧縮に先だって透かしが映画データのベースバンドで適用される場合には、透かしデータを含めることにより、異なる透かしキャリア及び／又はペイロードビットがあるために、類似セグメントが異なるファイルサイズを有することになることに留意すべきである。
【００１７】
異なるインスタンスのすべてが異なる透かしを持つことができるので、ＡＥＳ−Ｅ  ＣＢＣやＣＴＲモードのようなデータ「チェイン（chaining）」を用いる単一鍵暗号化システムを、異なる透かしを持つセグメント間で移行させるためには、何らかの調節を行う必要がある。これは、初期化ベクトルテーブル３２を用いることにより行うことができる。この初期化ベクトルテーブル３２は、それぞれの２次セグメントの最後の１２８ビット暗号ブロックを記録することができる。これにより、単一鍵暗号化システムが移行の開始時点を特定することが可能となる。
【００１８】
例えば、ＣＢＣモードでは、暗号文（cipher text）のそれぞれのブロックが前方に連鎖され（chained）、次のブロックの暗号解読に用いられる。異なる透かしを含むＳＮＡＰセグメントは、連結（concatenated）ないし結合されてメディアインスタンスを形成するため、透かし処理自体が連鎖ブロックを変更してしまうため通常のＣＢＣモードは失敗する。適切な１２８ビット透かし入り暗号文ブロックを初期化ベクトルと類似の方法により注入してＣＢＣ鎖を開始する。
【００１９】
上述したように、２次セグメントは連結ないし結合されて１次セグメントを形成する。その後、１次セグメントは連結され、一意なインスタンスパターンの一要素をそれぞれ表現するグローバルセグメントを形成する。そして、グローバルセグメントは結合されてメディアインスタンスを形成する。ユーザがメディアファイルの転送を要求すると、システムはこれまでに述べたタイトルスキーマ（title schema）にしたがってセグメントにアクセスする。セグメントは、セントラルファイルサーバ、同一ネットワーク上の他のユーザ、ＤＶＲネットワークのようなもの、ケーブルテレビのセットトップボックスネットワーク、キオスクからの直接転送などを含む、多くの異なるソースから生じ得る。
【００２０】
そのようなタイトルスキーマの一例を図３に示す。上述したように、タイトルスキーマはボトムズアップ手法を用いている。ここで用いられたタイトルスキーマの例では、インスタンス１２，１４，１６は、４０のような２０００個の２次セグメントに分割されている。４２のような１次セグメントを形成するために、適切な２次セグメントから２０個の２次セグメントが連結され、この場合、１００個の１次セグメントが形成される。タイトルスキーマは、どの２次セグメントがどのインスタンスから取り出されるかという組み合わせを決定する。ここでの例では、１次セグメントＳ１は２次セグメントＳ１〜Ｓ２０からなり、１次セグメントＳ１００は２次セグメントＳ１９８１〜Ｓ２０００からなる。
【００２１】
４４のようなグローバルセグメントの形成は、１次セグメントの連結に起因している。与えられたスキーマの例においては、２０個の１次セグメントの連結が１つのグローバルセグメントを生じる。この例におけるグローバルセグメントＧＳ１  ４４は、１次セグメントＳ１〜Ｓ２０の連結により形成されている。セグメントという語は１次又は２次セグメントのデータ範囲を意味し、「表現（expression）」という語は１次及びグローバルセグメントを構成するセグメントの種類と透かしに関するセグメントの順序と実体（substance）を意味する。
【００２２】
ここで与えられた２次セグメント、１次セグメント、グローバルセグメントの数など特定の数値は例示に過ぎず、限定事項は本発明の理解を容易にするための手段としてのみ提供されるものであることに留意しなければならない。同様に、ここでは連結を用いてセグメントが結合されたが、低次セグメントを結合して高次セグメントを形成する他の種類の方法を適用することもできる。
【００２３】
図３に戻って、４４のようなグローバルセグメントの１つは、一意なインスタンスパターン（ＵＩＰ）において使用される要素の１つに対応するものである。ユーザがダウンロード又は転送しようとするメディアファイルとして見るのは４６のような要素で構成されるＵＩＰ４８である。これは、図４を参照するとより理解できるかもしれない。
【００２４】
ＵＩＰのそれぞれのエレメント内にはＵＩＰの１次表現がある。これは、階層的な透かしフレームワークを生成する。図４に見られるように、本例におけるＵＩＰは、緑−青−赤−青−緑ＵＩＰである。このパターンは１次セグメントで繰り返される。要素４６を構成する１次セグメントＳ１−Ｓ２０は、セグメント５０,５２,５４,５６，５８における同一パターン内で繰り返されている。
【００２５】
ここで与えられた特定の例においては、ＵＩＰは緑−青−赤−青−緑である。そして、パターンは緑の１次表現Ｅ１内で繰り返され、要素５０が緑となり、要素５２が青となり、要素５４が赤となり、要素５６が青となり、要素５８が緑となる。そして、このパターンは、１次表現のそれぞれにおいて繰り返される。
【００２６】
図５は、最初のエレメントについては異なるグローバルセグメントを有し、残りの４つのエレメントについては同一のエレメントを有する３つの異なるＵＩＰに関して、最初のエレメント４６のグローバル表現範囲内の１次表現を示すものである。これは、最初のエレメントの表現範囲内のそれぞれ異なるエレメントに対する一意な要素マッピングを強調して示している。
【００２７】
要素６０は、展開された（expanded）とき、６２で示されるその１次セグメント内で緑−青−赤−青−緑のパターンを繰り返す。要素６４は、展開されたとき、６６で示される赤−青−赤−青−緑のＵＩＰを繰り返す。さらに、要素６８は、７０で示される青−青−赤−青−緑のパターンを繰り返す。
【００２８】
図６は、１次表現のより詳細な図を示している。この表現の最初の部分Ａは１次オフセット（first order offset）である。１次オフセットは、グローバル表現のデータ範囲の最初からこの表現の最後の表現グループＤの前までの１次セグメントの数である。この例では、オフセットは３である。
【００２９】
この表現の一部Ｂは、１次表現グループ１〜５である。ここで使用されているように、「表現グループ」という用語は、１次セグメントのようなセグメントをいくつか集めた組を意味する。この例では、３つのインスタンスがあり、ＵＩＰは５つの要素を含んでいるため、それぞれ３つの１次セグメントを含む５つの表現グループが存在する。
【００３０】
１次オフセットの後に、１次表現グループオフセットを有する表現領域Ｃがある。ＳＮＡＰは、内部で１次表現が生じている親ＵＩＰ要素のグローバル透かしへのマッピングを利用して、１次表現グループオフセットを決定する。これらのオフセットは、例えば、親要素が緑の透かしを含んでいる場合には１次表現グループオフセットを０にするという規則により設定することができる。親要素が赤の透かしを含んでいる場合にはオフセットを１にし、その要素が青の透かしを含んでいる場合にはオフセットを２にする。このマッピングは、５つの要素すべてで同じでもよいが、５つの要素の間で異なっていてもよい。
【００３１】
１次表現の領域Ｄは１次端部（first order tail）と呼ばれる。この端部により、スプライシング攻撃（splicing attacks）の際のＵＩＰの科学的犯罪捜査能力が強化される。図６の要素は緑の透かし要素であるため、端部Ｄは緑である。より詳しくは後述するが、これは、表現の異なる部分が平文でつなぎ合わされるスプライシング攻撃の場合に、その表現の本来の透かしを検査する役割を果たす。
【００３２】
例えば、２つのメディアインスタンスをサンプルし、高い細分性でつなぎ合わせるとする。１つ目のメディアインスタンスは、緑−青−赤−青−緑のインスタンスを有するメディアインスタンスからの１次セグメント１〜２０からなる。２つ目のインスタンスは、赤−緑−緑−緑−青のＵＩＰを有するメディアインスタンスからのセグメント１〜２０からなる。これらのインスタンスがつなぎ合わされると、端部には赤及び緑の両方の透かしが現れ、これらがつなぎ合わされたものであって、本物の表現グループではないことを示すこととなる。
【００３３】
図６に示されたこの１次レベルのマーキングは、グローバルセグメントの全体にインターリーブ（interleaving）を行った場合に、結託ファイル（colluding files）のグローバルパターンを特定する１つの手段を提供する。これは潜在的に１次セグメントレベルでスプライシングを受けやすい。ＳＮＡＰは、選択された１次セグメントの内部でＵＩＰの２次表現を使用する。すなわち、２次セグメントを組み合わせて１次セグメントを形成するときに、他のグローバルインスタンスの２次セグメントが少なくとも部分的にＵＩＰのパターンに組み合わされる。
【００３４】
例えば、上述した緑−青−赤−青−緑のＵＩＰを用いて１次セグメントを組み合わせ、このＵＩＰを真似た表現にするとする。さらに、１次セグメントの内部で、２次セグメントがこのパターンを真似て表しているとする。上述したスプライシングのような結託攻撃（collusion attack）をしかけるために、侵害者は、透かしの入ったパターンの細分性を特定できなければならない。しかしながら、ＳＮＡＰは、プレーヤが科学的犯罪捜査能力のある透かしを検出したり読み込んだりすることができるかに依存しておらず、代わりに異なるマークがつけられたデータを特定するために暗号化された復号ハッシュテーブルを用いるため、攻撃者がすべてのマークを検出し読み込めるということが非常に考えにくい。
【００３５】
図７は、２つのソースファイルから交互のデータをサンプルし、透かしパターンを抹消し、メディアインスタンスへのアクセス権を取得しようと再び組み合わせた場合のメディアインスタンスの一部の例を示すものである。１次セグメント８０は、上述した緑−青−赤−青−緑のＵＩＰを有するメディアインスタンスからの１次セグメント１〜２０のデータ範囲からなる最初の要素である。１次セグメント８２は、赤−緑−緑−緑−青のＵＩＰを有するメディアインスタンスからの１次セグメント１〜２０のデータ範囲からなる最初の要素である。
【００３６】
１次セグメント８４は、透かしを抹消すべくフレームごとにインターリーブされた上記１次セグメント１〜２０の「結託（colluded）」バージョンである。それがカラーであれば、赤と緑が交互に現れる「ストライプ」データとなる。セグメントは、乱雑に混ぜられ、ＵＩＰの実際の最初の要素として機能しなくなる。しかしながら、ＳＮＡＰの強力な点の１つは、タイトルスキーマ内でセグメントを利用してメディアインスタンスを解読することができないので、そのような攻撃を最終的に失敗に終わらせることができるだけではなく、映画データが「平文にリップ（ripped to the clear）」された場合に、つなぎ合わされた２つのファイルのソースを特定できることにある。
【００３７】
要素８４のオフセット領域Ｏを分析すると、赤と緑の透かしが存在することが分かり、これは結託ファイルが、赤の透かしが入ったファイルからの１つの要素Ｅ１と、緑の透かしが入ったファイルからの１つの要素Ｅ１であることを意味している。オフセットをさらに分析すると、このインスタンスには、結託ファイルが２つだけ、即ち赤から始まるＵＩＰを有するファイルと緑から始まるＵＩＰを有するファイルがあることが分かる。部分２〜５を分析すれば、赤から始まるＵＩＰが赤−緑−緑−緑−青のＵＩＰであると特定でき、緑から始まるＵＩＰが緑−青−赤−青−緑のＵＩＰであると特定できることになる。端部の項Ｔはこの分析を確認するものである。
【００３８】
上記から分かるように、ＳＮＡＰ環境及びスキーマは、ファイルを使用できないようにできるだけではなく、システム内でメディアインスタンスの科学的犯罪捜査によるトラッキングを行うために結託ファイルのソースを特定することができる。これは、ＵＩＰの要素の１次表現を用いることにより達成することができた。１次セグメント内で２次セグメントの表現を決定するために利用される方法は、さらに高い細分性を考慮している。
【００３９】
図８は、ＵＩＰの２次表現の概要を示す。これらは、複数のメディアインスタンスからの完全な１次セグメントが１次透かしパターンを抹消するためにつなぎ合わされる中間細分化攻撃（intermediate granularity attacks）に対する保護を提供する。２次表現は、通常、スウォーミング配信用のネットワーク効率を維持するために個々の１次セグメントと隣接している。これは制限として予定されているものではなく、２次表現は、グローバル表現の方法により１次セグメントの境界を埋めることができる。典型的には、１つの１次表現グループ内にＵＩＰの２次表現を含む１つの１次セグメントが存在する。上述したように、表現グループごとにパターンオフセットをランダム化することが望ましい。
【００４０】
図８の例においては、１次セグメントが１次表現グループを通して複数のオフセットで生じ得るように、表現グループオフセットの増加形態を用いた２次表現グループに対して１次セグメントが選ばれる。内部的には、１次表現グループは、２次表現グループオフセットを用いる。２次表現グループオフセットは、ＵＩＰを通して要素ごとに各要素の異なるグローバル透かしにマップされる。
【００４１】
図８は、緑−青−赤−青−緑のグローバルＵＩＰ４８を有する例示ファイルからの１次セグメント１〜２０を示している。２０個の２次セグメントが連結されたものである２次セグメント表現のそれぞれは、最初のオフセット部分と後端部の後で、要素値Ｅ１〜Ｅ５においてその内部で緑−青−赤−青−緑のＵＩＰを模倣している。２次表現グループ９０は１次表現グループの最初のセグメント９２に対応し、２次表現グループ９４は、１次表現グループの９番目のセグメント９６に対応する。１次表現グループがどの２次表現グループから構成されるかは、タイトルスキーマ及び規則により設定されたオフセットによって決定される。
【００４２】
ＳＮＡＰハッシュテーブル
ＳＮＡＰ環境に透かしを作成させ維持させることができる要素の１つはハッシュテーブルである。ハッシュテーブルは、ＳＮＡＰの科学的犯罪捜査能力のある透かしやメディアインスタンスパターンを検出又は解釈可能なアプリケーションを必要とすることなく、タイトルスキーマにより操作されるピアからスウォーミングアプリケーションが適切なデータを選択するように、スウォーミングアプリケーションの挙動を操作するために使用される。
【００４３】
加えて、ＳＮＡＰは、一般的に、ＣＭＡＣ（暗号に基づくメッセージ認証コード）タグを用いている。受信された場合に、これらのタグは、暗号化手法により記録メディアの物理的属性にバインドされ、確実にマッチさせるために当該記録メディアに配信される鍵を使用しているメッセージから生成されたタグと比較される。これらのタグは更新可能なものである。透かしが入り暗号化されたデータが新しいＣＭＡＣ鍵でハッシュされると、ディスクリプタメタデータが完全に更新される。これにより、過去に配信された映画が無効となるわけではないが、鍵共有攻撃（key sharing attack）の場合と同様にユーザ間での鍵及び／ディスクリプタメタデータの交換が拒否される。また、ＣＭＡＣタグは、データ及びエラー訂正の認証を提供する。
【００４４】
一意なメディアインスタンス内の各セグメントのＣＭＡＣタグは、そのメディアインスタンス用の合成ハッシュテーブル（composite hash table）に含まれている。透かしと同様に、ハッシュテーブル生成は図９に示されるようなボトムズアップ手法を用いているので、それは合成ハッシュテーブルと呼ばれている。
【００４５】
図９は、１つの透かし方法に対応する１つのメディアインスタンスに対するハッシュテーブル階層の概要を示している。この例において、メディアインスタンスは、青の透かしが入ったインスタンスである。プロセスは２次セグメントから始まる。更新可能なタイトル暗号化ＣＭＡＣ鍵を用いて平文の２次セグメントを最初にハッシュすることにより２次鍵がバッチ処理で計算される。そして、各セグメントのＣＭＡＣタグは、１００のようなマスタ鍵２次ハッシュテーブル（ＨＴ２）からの類似のタグと不可逆的組み合わせ機能を用いて組み合わされる。マスタ鍵２次ハッシュテーブルは、１次鍵と類似し、構造的にテーブルを持っているが、一意でランダムな値を有している。マスタ鍵２次ハッシュテーブルの１つの組をすべてのメディアインスタンスに対して使用することができる。
【００４６】
上述したように、より一般的なＳＨＡ−１やＭＤ５の平文ハッシュ技術ではなくＣＭＡＣを用いることの１つの利点は、ＣＭＡＣにより、ＳＮＡＰがタイトル暗号化ＣＭＡＣ鍵を変更し、鍵生成プロセスを繰り返すことにより、タイトルの鍵セットを素早く更新できるようになることである。このプロセスは、タイトルが新しいマスタを作ることを要求せずにネットワークにリリースされた後であっても行うことができる。
【００４７】
１つの１次セグメントを有する複数の２次セグメントのグループのそれぞれに対するＣＭＡＣタグは、１０２のような１次鍵ハッシュテーブルに書き込まれる。そして、それぞれのＣＭＡＣタグは、対応するランダムハッシュアナログ（random hash analog）と組み合わされ、１次セグメントマスタ鍵は、得られる値を一意なセグメント鍵として使用できるようなテーブルを有している。そして、ＳＮＡＰは、各２次セグメントをその対応する鍵に暗号化する。
【００４８】
前処理のそれぞれの状態の後に、すべてのハッシュとランダムな値が一意であることを検証し、ハッシュ衝突（hash collision）を生じているデータがないことを確実にすることが好ましい。ハッシュ衝突は、２つの異なるセグメントが互いに合致するハッシュを持つときに生じる。これが生じると、インスタンスの１つはユーザに分からないようにデータを修正して一意なハッシュを返すようにしなければならない。これにより、記述したセグメントに対する一意な識別子としてタグを確実に機能させることができ、ハッシュ衝突を用いてハッシュアルゴリズムの挙動をリバースエンジニアリングし、その後暗号化鍵生成方法を発見しようとする攻撃者から確実に保護することができる。
【００４９】
追加の保護として、１０２のような１次鍵ハッシュテーブルがクロスマッピングされる。クロスマッピングは、透かしの入った他のメディアインスタンスからの類似の２次セグメントに対するＣＭＡＣタグを用いて２次セグメントを生成するものである。例えば、青の２次セグメントに対する鍵は、類似する赤の２次セグメントのハッシュを用いて生成される。赤の２次セグメントの鍵は、緑の２次セグメントのハッシュを用いて生成され、緑の２次セグメントの鍵は青の２次セグメントから得られる。このように、個々のメディアプレーヤが持っていない情報を用いて鍵が得られる。
【００５０】
２次セグメントの暗号化の後、それらは連結されて１次セグメントが生成される。得られた１次セグメントは、２次ハッシュテーブルを書き込むのに用いたものと同一のＣＭＡＣを用いてハッシュされる。そして、ＣＭＡＣタグは、１次ハッシュテーブルに書き込まれる。それまでに生成された２次ハッシュテーブルは、１次ハッシュテーブル（ＨＴ１）１０４におけるそれぞれの１次セグメントのＣＭＡＣタグの下でネストさせてもよい。
【００５１】
そして、１０４のような１次ハッシュテーブルが組み合わされて青のグローバルハッシュテーブル１０６が生成される。そして、青のグローバルハッシュテーブルは、青の透かしが入ったセグメントを用いてメディアインスタンスを再構築するために、任意の青の１次及び２次セグメントを記述するために必要なすべての情報を含んでいる。赤及び緑のグローバルハッシュテーブルとともに使用される場合、複数のグローバル透かしを用いたメディアインスタンスを暗号解読することができる。
【００５２】
図１０及び図１１は、ＳＮＡＰのパターン表現及びシーケンス鍵ベース（ＳＫＢ）システムによって生成された暗号解読パス及びパターンの比較を示している。図１０は、ＳＫＢシステムに基づく科学的犯罪捜査能力のあるパターンを示している。メディアプレーヤ１１０のような装置におけるデバイス鍵、メディア鍵束（media key bundle）１１２、及びシーケンス鍵束（sequence key bundle）１１４を使用して、結果としてパターンが付けられたオーディオビデオストリーム１１６に拡張ビデオオブジェクト（ＥＶＯＢ）の変形体が置かれる。
【００５３】
メディアインスタンスを保護するために複雑さが結果的に生じるが、さらに重大なのはパターンの漏れである。ＥＶＯＢは、科学的犯罪捜査能力のある透かしパターンの境界を直接表している離散ファイルである。これは、科学的犯罪捜査能力のあるパターンになりすますことを可能にするパターン情報をハッカーに提供することになる。その結果として、これは、科学的犯罪捜査において暗号解読プレーヤを検出する能力を備える。
【００５４】
これに対して、図１１に示されるメディアインスタンス１２０は、暗号化された合成ハッシュテーブル１２２によって部分的にのみ示されている。実際に得られるメディアストリーム１２６は、上記で詳述した２つのレベルにおける更なる暗号化の結果であり、一意な暗号化された合成鍵束１２４を要求する。このように、ハッシュテーブル生成及び合成に加えて、複数のレベルの透かし技術、メディアインスタンスのすべてのレベルにおけるＵＩＰの利用により、ＳＮＡＰ環境は、ハッカーに対する高度なレベルの保護能力だけでなく、暗号解読プレーヤを検出することができる科学的犯罪捜査能力を有する、メディアインスタンスのためのセキュアな認証環境を提供する。
【００５５】
上述したＳＮＡＰ環境の１つの側面は、特定のメディアプレーヤから暗号解読と鍵を分離したことにある。典型的なセキュアな環境においては、要求を行ったプレーヤは、そのプレーヤに所望のメディアストリームを暗号解読させることを可能とする鍵及び／又はハッシュテーブルを受信する。ＳＮＡＰ環境においては、暗号解読能力は、プレーヤに依存しておらず、そのため、より強固にかつ鍵を特定のデバイスに持たせにくくすることができる。
【００５６】
しかしながら、上述したように、コンテンツが物理メディアに記憶される場合、認証なしにコンテンツを転送することができないようにコンテンツと鍵をそのメディアにバインドすることが重要である。あるＮＡＮＤフラッシュデバイスから他のＮＡＮＤフラッシュデバイスへの不正な転送を防止するために、ＳＮＡＰで暗号化された一意なメディアインスタンスと別個の鍵とは、双方とも暗号化手法によりメディアにバインドされている必要がある。これについては「ＳＮＡＰセキュアホスト環境」において詳述する。
【００５７】
ＳＮＡＰセキュアホスト環境
ＳＮＡＰセキュアホスト環境は、プレイヤーホスト上のセキュアプロセッサ内、またはＮＡＮＤフラッシュカードコントローラ内、あるいはその両方にＳＮＡＰ更新可能ロジック（SNAP Renewable Logic）コードを有している。ＳＮＡＰ更新可能ロジックは、特定の暗号データを生成するためのデータとテンプレートとを含んでいる。ＳＮＡＰ更新可能ロジックは、既知の通信用暗号化環境と、ホストアプリケーションとＳＮＡＰが有効にされたＮＡＮＤフラッシュデバイスとの間での暗号演算とを提供する。
【００５８】
ＳＮＡＰ更新可能ロジックは、暗号データをＮＡＮＤフラッシュデバイスごとに異なる形態に変形させる。ＳＮＡＰ更新可能ロジックへの入力は、１）デバイス不良ブロック、チップＩＤ、ＳＮＡＰチェインログ、ＳＮＡＰセグメントチェインと、２）ＳＮＡＰ更新文字列とを含んでいる。ＳＮＡＰ更新可能ロジックの出力は、ＳＮＡＰ  ＨＡＮ（ハードウェア認証番号）を認証し、暗号化手法により保護するために使用されるＳＮＡＰ  ＨＡＫ（ハードウェア認証鍵）である。上記１）で列挙した入力変数がＮＡＮＤフラッシュデバイスによって異なっているので、ＳＮＡＰ更新可能ロジックはＮＡＮＤフラッシュデバイスごとに異なる形態で実施される。
【００５９】
任意の２つのＮＡＮＤフラッシュデバイスが同一の認証及び暗号技術を全く同じ方法で使用していることは考えにくいので、これはより高いレベルの複雑性を攻撃者に与えることができる。ＳＮＡＰ更新文字列は、ＳＮＡＰ処理において使用されるアルゴリズムと変数の両方のロジックを変更する。このＳＮＡＰ更新文字列を一定周期で更新し、スタジオが、一意なメディアインスタンス及びそれぞれの鍵をＮＡＮＤフラッシュデバイスの欠陥に暗号化手法を使ってバインドする方法を変更することができる。
【００６０】
不揮発性記憶メディアの認証
一実施形態においては、不揮発性記憶メディア上の不良ブロックのランダム性を用いて信用取引を行うことができる。一般的に、フラッシュ及び他の記憶メディアの製造業者は、製造後に物理メモリの不良ブロックをデバイスに特定させる不良ブロック特定方法を用いている。そのようにすることで、製造業者はそのデバイスを販売することができ、不良ブロックがメモリの残りの「有効」ブロックにアクセスする任意の処理デバイスに対してマークされ特定されているため、デバイスは意図された通りに動作する。
【００６１】
製造後試験において、物理メモリの各ブロックに対して「プログラム」、「読み込み」、及び「消去」という複数の動作がなされる。メモリブロックを構成するページの一部またはすべてが壊れると、そのブロックに関連するスペア領域内に加え、不良ブロックのページに特定の値（例えば「００ｈ」）を書き込むことによりブロック全体が不良とマークされる。これら製造時に検出された不良ブロックは、その後消費者がデバイスを操作しているときに検出される不良ブロックとは区別される。消費者が操作しているときに特定される不良ブロックは、そのブロックのページ及びスペア領域に異なる値（例えば「Ｆ０ｈ」）を書き込むことにより特定される。
【００６２】
製造時に特定される不良ブロックのパターンはランダムであるので、この情報は、一意な認証・暗号化のメカニズムを提供するのに利用可能な一意な値を提供する。不良ブロックのパターンをデバイスの一意なメディアＩＤと組み合わせて一意な認証値を生成してもよい。また、不良ブロックのパターンは、メモリのブロック内で壊れている特定のページを特定することも可能であり、その値はこの認証の堅牢性を高めるためにも利用することができる。これは、製造時の一意な認証値を考慮しているが、何らかのインフラストラクチャが、この一意な値が捏造されたりコピーされたりすることを防止するために、この一意な値を確実にモニタし、トラッキングすることに役立つ場合がある。
【００６３】
これらのデバイスの製造を中央ライセンス機関の下で行うことができ、ライセンス機関はデバイスが「ＳＮＡＰ準拠」であることを保証する。そのようなシステムの概要が図１２に示されている。図１２において、ＳＮＡＰライセンス機関、即ちＳＬＡ１５０は、製造系列（manufacturing chain）の様々なポイントで利用可能なポータルを通じてセキュアな接続を有している。これら１６０、１７０、及び１８０のようなポータルは、セキュアな認証されたリンクをＳＬＡに提供する。これにより、詐欺者／侵害者がこれら２つの主体の間で交換される情報をハックまたは破壊しようとすることがより困難になる。
【００６４】
典型的には、製造系列は少なくとも３つの部分を有している。ＳＮＡＰポータル１６０は、ＮＡＮＤフラッシュメモリチップを製造するチップ製造業者のところにある。ＮＡＮＤフラッシュメモリに関してチップという用語を使用することは、ＩＣパッケージ商品メモリチップの形態であるか、マルチチップパッケージ（ＭＣＰ）またはSolution on a Chip（ＳｏＣ）の場合のように他のデバイスに一体化されているかどうかを問わず、任意のＮＡＮＤフラッシュメモリアレー（ダイ）を広くカバーするものと考えなければならない。ＳＬＣ又はＭＬＣのＮＡＮＤフラッシュを複数面含んでいる複数面デバイスの面は、メモリのアドレス指定の挙動（単一デバイス又は複数デバイスアドレス指定）に一致した方法により処理される。
【００６５】
ＳＮＡＰポータル１７０は、メモリコントローラ製造施設にある。不揮発性メモリ製品の多くは、製品上の様々なメモリ構造へのデータの移動及び様々なメモリ構造からのデータの移動を管理するためにオンボードコントローラを備えている。ここでの議論において、このコントローラは、ＳＮＡＰプロトコルに従って製造され、ＳＮＡＰ準拠と呼ばれることがある。
【００６６】
ＳＮＡＰポータル１８０は、コントローラを一組のメモリデバイスに組み合わせて、（ＳＤカード、フラッシュサムドライブ等の）メモリ製品、ＭＰ３プレーヤのようなデジタルメディアコンテンツプレーヤ、映画や音楽が再生可能なビデオゲームプレーヤ、またはデジタルコンテンツを記憶するために不揮発性メモリを用いるその他の製品のような家庭用製品にする組立者のところにある。ここでの議論においては、複数の主体を組み合わせることやすべての主体を１つの場所におくことができるという了解の下で、それぞれの主体は別個の主体であるかのように述べる。付加的なセキュリティレイヤが追加されることになるため区画化を行うことが好ましい。それぞれの主体はライセンスを必要とする。メモリ製造者はチップバインドライセンスを有しており、コントローラ製造者はコントローラバインドライセンスを有しており、組立者はチップセットバインドライセンスを有している。１つの主体が３つの機能すべてを行う場合には、その主体は３つのライセンスすべてを有しており、侵害のリスクが増す。
【００６７】
図１３は、一意なチップ識別子（ＩＤ）を生成し、メモリチップ上に刻印する方法の例を示している。ここ及びクレームにおける「チップ」という用語は、メモリ中の任意の個別化された部分を意味する。
【００６８】
この図において、図の左側のブロックは製造者にて行われ、右側のブロックはＳＬＡにて行われる。上述したように、製造者が完成品のメモリチップをテストし、その不良ブロックを決定したときプロセスが１９０にて開始する。不良ブロックデータは、１９２にてＳＬＡに受信される。そして、ＳＬＡは、１９４にてチップに一意なチップＩＤを割り当て、１９６にて不良ブロックデータを暗号解読する。メモリが一度に１つのチップでプログラムされる場合、製造者はメモリ製造業者であり得る。あるいは、メモリチップがグループ化される場合には、コントローラとチップセットプログラミングに関して以下でより詳細に述べるように、製造者は組立者でもあり得る。
【００６９】
そして、ＳＬＡは、単独で又はチップＩＤと組み合わせて、不良ブロックデータに対して少なくとも１つの操作を行い、チップに対して一意な識別子を生成する。そして、チップＩＤは、２００にてその製造者に対するベンダー固有のＣＭＡＣ鍵を用いてＳＬＡにより署名される。この署名プロセスは、ＳＬＡ以外のデバイスにより認証できるように公開鍵を用いることができ、あるいは、ＳＬＡのみが認証できるように秘密鍵のみを用いることができる。ここで、得られたＣＭＡＣダイジェストはチップＣＭＡＣと呼ばれる。
【００７０】
その後、ＳＬＡは、２０４にて、チップの秘密鍵を用いて、署名タグとチップＩＤを暗号化してハードウェア認証番号（ＨＡＮ）を生成する。そして、ＳＬＡは２０６にてチップＩＤ及びＨＡＮに署名し、暗号化する。そして、暗号化されたＨＡＮとＩＤは２０８にて製造者のＳＮＡＰポータルに送信される。
【００７１】
製造者のところに戻って、ＳＮＡＰポータルは、２１０にてＨＡＮの暗号を解読し、検証する。ＳＮＡＰポータルの管理下、又はおそらくＳＮＡＰポータル自身の内部にて、ＨＡＮ及びチップＩＤでチップがプログラムされる。このプログラミングは、（ＮＡＮＤフラッシュメモリ内のＮＡＮＤゲートのような）メモリ内の１組のゲートが読み取り専用となるように物理的に損傷させられる「ライトワンス」手法を伴うものであってもよい。これにより、チップＩＤやＨＡＮの変更が防止されるため、もう１つのセキュリティレイヤが付加されることになる。
【００７２】
ＳＬＡを中心としたチップ特定プロセスとは異なり、コントローラのためのプロセスは製造者にとって幾分複雑である。このプロセスの例が図１４に示されている。２２０にて、コントローラ製造者のところでＳＮＡＰコントローラがＳＮＡＰポータルに接続される。ＳＬＡ又はＳＮＡＰポータル、あるいはその両方が２２２のようにセッションを確立する。そして、ＳＬＡは、２２４にてコントローラＩＤ及びファームウェアを製造者に送信する。ＳＬＡは、２３２にて、後のモニタリングやトラッキングのためにコントローラＩＤを製造者に関連づけてデータベース又は他の種類の記憶装置に記録してもよい。
【００７３】
一方、製造者は、２２６にてＳＮＡＰポータルを通じてコントローラＩＤ及びファームウェアを受信する。ＳＮＡＰポータルは、２２８にて、それ自身で、あるいは製造者の機械を制御することにより、ファームウェアをコントローラにアップロードし、コントローラをＳＮＡＰコントローラとする。そして、２３０にてコントローラＩＤでＳＮＡＰコントローラがプログラムされる。
【００７４】
一意なＩＤをどのようにしてメモリチップ及びメモリコントローラに割り当てるかを見てきたが、ここでは、１組のメモリチップで一意なコントローラをバインドすること（チップセットバインドと呼ぶ）について述べる。このプロセスの例が図１５に示されている。
【００７５】
２４０にて、メモリチップとコントローラの両方を含むデバイスがプログラミングのためにＳＮＡＰポータルに接続される。典型的には偽造のＳＮＡＰ準拠チップを検出するために、各チップに対してプログラム／検証及び消去／検証テストを行うことによりチップが検証される。これは、不良ブロックのタグを消去することによりなされる。これが検出された場合、そのデバイスは偽造品として拒否される。さらなるテストとして、ランタイム不良ブロックの存在を検出するためにチップのスペア領域を構文解析してもよい。また、ＳＮＡＰポータルは、ＨＡＮのフィールド構文解析によりチップのＨＡＮを認証してもよい。
【００７６】
チップの検証の後、ＳＮＡＰポータルは、２４４にてコントローラＩＤを読み込み、２４６にてコントローラＩＤ及びすべてのＨＡＮをＳＬＡに送信する。そして、ＳＬＡは、異なるハードウェア認証コード（ＨＡＮ）を算出し、それを２４８にてＳＮＡＰポータルに返す。そして、ポータルは、例えば上述したライトワンス手法を用いてＨＡＮをＳＮＡＰコントローラ及び各チップにプログラムする。追加的なセキュリティ手段として、ＳＮＡＰコントローラ及びＳＮＡＰポータルは共同してチップセット内のすべてのチップに対するすべての不良ブロックアドレスを含む暗号化されたブロック損傷ログを算出し、将来参照するためにこれらを各構成チップのシステム領域に書き込んでもよい。このＳＮＡＰに従ったコントローラ及びチップを含むデバイスを使用することにより、すべてのチップ及びコントローラが必ず合致するＨＡＮを有し、デバイスが正当なものであることが保証される。
【００７７】
上述のプロセスにより製造されたＳＮＡＰ準拠デバイスが利用可能になると、ユーザにメディアコンテンツを提供するためにそれらを使用することができる。このプロセスの例が図１６に示されている。図１６においてはメディアファイルが得られる。好ましくは、このメディアファイルは、図１〜１１に関して述べた透かし階層（watermarking hierarchy）を用いたものである。そして、透かしの入った１つ又は複数のインスタンスが２６２にてメモリに書き込まれる。
【００７８】
メディアファイルを含む完成品の製造過程をデータベースに記録してもよい。このデータベースは、コンテンツのコピーのトラッキングを可能とし、コンテンツプロバイダがライセンス使用料を受け取る基礎を提供する。
【００７９】
ファイルをメモリに書き込むと、ログを作成し、２６６にてメモリ内でファイルの論理的及び物理的位置をバインドしてもよい。そして、アクセス時にメモリコンテンツの信憑性を検証及び確認するためにこのログを用いることができる。このプロセスの例が図１７に示されている。
【００８０】
図１７においては、ＳＮＡＰコントローラの管理下でメモリチップ内に透かしの入ったコンテンツを有するＳＮＡＰ準拠デバイスがホストデバイスに接続される。これは、コンピュータ、セットトップボックス、キオスク、テレビ、メディアプレーヤ、ポータブルデバイスなどであってよい。このプロセスは、デバイス上の更新ファイルの日付によるデバイスまたはホストデバイスの更新を伴っていてもよい。
【００８１】
製造後、メディア鍵束、ユーザ、メディア、またはデバイスに対するライセンスの取消などに加え、上述した透かしアルゴリズムに関する最新の情報がホストデバイスに提供される。同様に、メディアインスタンスを受信すると、デバイスはそのときに最新の情報を受信する。デバイス及びホストデバイスが接続するとき、どちらが最新の情報を有しているのかに関する決定がなされ、どちらが有していてもその情報を他方のデバイスに提供する。このように、ライセンス、取消、及びアルゴリズムに関する最新の情報がすべてのＳＮＡＰ準拠デバイスに伝播する。デバイスへの外部接続により又はネットワークを通してメディアインスタンスがダウンロードされるときにホストデバイスが新しいメディアに接続するたびにホストデバイスを更新してもよい。
【００８２】
２７０にて更新が完了すると、ホストデバイスは、２７２にて、メディアインスタンスをメモリに書き込む際に生成されたファイル及び位置のログファイルを取得する。そして、２７４にて、このログファイルが暗号解読／復号され、メモリ内の位置に基づいてメディアファイルが認証される。
【００８３】
一方、メモリコントローラはログファイルに対して同じ操作を行い、２７６にて２つの結果が比較される。２７８にてこれら２つの結果が一致する場合には、２８２にてメディアインスタンスの再生が許可される。これら２つの結果が一致しない場合には、デバイスが使用不可にされる、即ち２８０にてメディアインスタンスが使用不可にされる。
【００８４】
ＳＮＡＰインフラストラクチャの様々な構成要素及び方法を確証してきたが、ホストデバイスが映画やオーディオファイルなどのいくつかのコンテンツを要求し、再生するときに生じる出来事について議論しておくことは有用である。コンテンツはダウンロード可能な形態のあらゆるタイプの保護コンテンツであるとの了解の下で、図１８〜２１ではこれらを映画に関して述べる。
【００８５】
図１８においては、ホストコントローラがＳＮＡＰライセンス機関（ＳＬＡ）のサーバからコンテンツをダウンロードするように要求する。これまで詳述したように、実際には、このダウンロードはＳＬＡサーバの管理下でピアデバイスから行うことができる。２９０にて、再生デバイス内のコントローラは、ＳＬＡサーバに連絡し、コンテンツ、この例では映画を要求する。
【００８６】
サーバは、先に詳述したような一意なインスタンスパターン（ＵＩＰ）を２９２にて生成し、２９６にてＵＩＰに関連づけたハッシュテーブルを生成する。サーバは、３００にて、ハッシュテーブルをホストコントローラに送信し、ホストコントローラのコントローラＩＤをＵＩＰとともにサーバ側に記憶する。これは、上述した結託攻撃のようなものの中で現れるＵＩＰの任意のインスタンスの特定を考慮しており、これにより侵害されているセグメントのソースのトラッキングが可能となる。
【００８７】
２９８にて、ホストコントローラはハッシュテーブルを受信する。３０２にて、ホストコントローラは、ハッシュテーブルの要求を満たすために、どこに位置しているかを問わず映画の様々なセグメントの位置を決定する。ピアから得られるセグメントもあれば、コンテンツプロバイダ等から得られるセグメントもある。３０６にて、ホストコントローラはセグメントチェインログを生成する。セグメントチェインログは、映画インスタンスのすべてのセグメントの位置についてのログである。ホストコントローラにより映画が付属のフラッシュデバイス又は自身の不揮発性メモリに記憶されるときにセグメントチェインログを生成してもよい。チェインログは、映画インスタンスの特定のセグメントがＮＡＮＤフラッシュチップに記憶されている物理的（チップ／ブロック／ページ）アドレスの逐次ログである。チェインログをデバイス、セグメント、又は映画のような１つの完全なコンテンツと関連づけてもよい。
【００８８】
ハッシュテーブルを満足し、必要なセグメントをすべて取得すると、ホストコントローラは、暗号化されたセグメントへのアクセスを許可するために必要なすべての鍵を取得する。これは図１９に示されている。
【００８９】
３１０にて、ホストコントローラはＳＬＡサーバに連絡し、ダウンロードしたＵＩＰに対する鍵束を要求する。サーバは、３１２にてＵＩＰを検索し、３１６にてその鍵束を生成する。一方、ホストコントローラは、３１８にて、すべてのセグメントを受信したときに生成されたチェインログを送信する。ＳＬＡサーバは３２０にてチェインログを受信する。
【００９０】
ＳＬＡサーバは、３２４にて上述したＳＮＡＰ更新可能ロジックをインスタンス化し、３２６にて更新文字列を用いてそれを初期化する。これにより、ＳＮＡＬ更新可能ロジックが鍵を生成するために使用したプロセスを確実に「リフレッシュ」することになり、鍵を解読することがより難しくなる。３２８にて、ＳＬＡサーバは、セグメントが記憶されたデバイス内の位置を特定するチェインログを使用して、鍵をこれらのデバイス属性にバインドする。そして、３３０にて、この束の全体が暗号化され、３３４にて更新文字列とともにホストデバイスに返される。
【００９１】
ホストコントローラは、３３２にて、バインドされた鍵束と更新文字列を受信する。図１６に関して述べたように、接続のときに、更新及び取消に関して最も新しい情報の一部として更新文字列をあるデバイスから他のデバイスに渡してもよい。３３５にて、ホストデバイスは鍵束、更新文字列、及びプログラムセグメントをフラッシュデバイスにプログラムする。
【００９２】
そして、コンテンツは、適切なホストデバイスによるアクセスに対する準備が整った状態でフラッシュデバイス上に存在することになる。このプロセスの例が図２０に示されている。３３６にて、ホストデバイスはフラッシュデバイスとセキュアなセッションを確立する。ホストデバイスは、３３８にて、ＳＮＡＰ更新可能ロジックをインスタンス化し、３４０にて、フラッシュドライブに記憶された映画の再生を要求する。フラッシュデバイスは、３４４にて、映画のハッシュテーブル及び暗号化された鍵束をホストデバイスに提供する。ホストコントローラは、３４６にて映画のセグメントチェインログを認証し、コンテンツのコピーが正当なものであることを保証する。認証後、ホストは映画を再生することができる。
【００９３】
映画や他のコンテンツを再生すると、認証及びセキュリティ構造における最終プロセスが開始する。この例が図２１に示されている。ホストコントローラは、３４６にて過去にフラッシュデバイスにダウンロードされた映画セグメントを要求することにより映画を再生する。３４８にてセグメントが受信される。これらのセグメントは、透かしに関して先に詳述した２次セグメントであってもよい。
【００９４】
３５０にて、暗号化されたハッシュテーブルにおいて過去に与えられていた値に対してセグメントのハッシュが認証される。３５２にて、このセグメントに対するチェインログがフラッシュデバイスから提供され、３５４にて、コントローラはそれを用いてそのセグメントに対する鍵を算出する。鍵が算出されると、ホストコントローラは３５６にてセグメントの暗号を解読することができ、コンテンツをユーザに与えることができる。
【００９５】
このように、コンテンツの透かしからメモリチップ、コントローラ、及びコンテンツが記憶されるチップセットに対する一意な識別子の生成に至るまでの複数のセキュリティレベルは、そのコンテンツが侵害されることからコンテンツプロバイダを保護している。透かしから始まり、メディアファイルのロード、製品構成要素の生成及びメディアファイルへのバインドまで、ここで述べた処理はトラッキング及び記録され、権利の保護とこれらの権利から生ずる収入を保証しつつ、コンテンツの配信を可能にしている。
【００９６】
ここまでＳＮＡＰ環境のための方法及び装置、複数のレベルにおけるデジタルデータの透かし技術、及び携帯デバイスの認証に対する特定の実施形態について述べてきたが、以下の請求項に述べられている事項を除き、それら特定の参照が本件発明の範囲に対する限定になるものとして考慮されることを意図しているものではない。
【図１】
2011511988.tif 000003
【図２】
2011511988.tif 000004
【図３】
2011511988.tif 000005
【図４】
2011511988.tif 000006
【図５】
2011511988.tif 000007
【図６】
2011511988.tif 000008
【図７】
2011511988.tif 000009
【図８】
2011511988.tif 000010
【図９】
2011511988.tif 000011
【図１０】
2011511988.tif 000012
【図１１】
2011511988.tif 000013
【図１２】
2011511988.tif 000014
【図１３】
2011511988.tif 000015
【図１４】
2011511988.tif 000016
【図１５】
2011511988.tif 000017
【図１６】
2011511988.tif 000018
【図１７】
2011511988.tif 000019
【図１８】
2011511988.tif 000020
【図１９】
2011511988.tif 000021
【図２０】
2011511988.tif 000022
【図２１】
2011511988.tif 000023
【国際調査報告】
2011511988.tif 000024
2011511988.tif 000025
2011511988.tif 000026
2011511988.tif 000027