(57)【要約】【課題】データの保護を強化する。【解決手段】復号装置は、複数のデータ復号部と、複数の鍵生成部とを備える。複数のデータ復号部は、暗号化されたデータを互いに異なる処理で復号する。鍵ツリーは、木構造の複数のノードを有する。複数のリーフのそれぞれには、複数の再生装置のそれぞれが対応付けられている。複数のノードのそれぞれには、互いに異なるデバイス鍵が割り当てられている。鍵生成部は、デバイス鍵保持部と、鍵復号部とを有する。デバイス鍵保持部は、鍵ツリーのノードに割り当てられた複数のデバイス鍵を保持する。鍵復号部は、木構造の中から選択された１または複数のデバイス鍵のそれぞれにより鍵情報を暗号化した１または複数の暗号化鍵情報を含む鍵管理情報を取得し、デバイス鍵保持部に保持された複数のデバイス鍵により鍵管理情報を復号して鍵情報を生成する。【選択図】図２
2015056861.tif 000002
【特許請求の範囲】
【請求項１】
暗号化されたデータを互いに異なる処理で復号する複数のデータ復号部と、
前記複数のデータ復号部のそれぞれに対応して設けられ、対応する復号処理で使用される鍵情報を生成する複数の鍵生成部と、
を備え、
鍵ツリーは、木構造の複数のノードを有し、
リーフは、前記複数のノードの中の最下層のノードであり、
前記複数のリーフのそれぞれには、複数の再生装置のそれぞれが対応付けられており、
前記複数のノードのそれぞれには、互いに異なるデバイス鍵が割り当てられており、
前記複数の鍵生成部のそれぞれは、
前記鍵ツリーのノードに割り当てられた複数のデバイス鍵を保持するデバイス鍵保持部と、
前記鍵ツリーの中から選択された１または複数のデバイス鍵のそれぞれにより前記鍵情報を暗号化した１または複数の暗号化鍵情報を含む鍵管理情報を取得し、前記デバイス鍵保持部に保持された前記複数のデバイス鍵の中から前記鍵管理情報の復号に使用できる１つのデバイス鍵を選択し、選択した前記デバイス鍵により前記鍵管理情報を復号して前記鍵情報を生成する鍵復号部と、
を有する
復号装置。
【請求項２】
前記デバイス鍵保持部は、前記鍵ツリーにおける、ルートまたは中間階層のノードから対応する再生装置が対応付けられたリーフへと辿る経路上のノードに割り当てられた複数のデバイス鍵を、少なくとも保持する
請求項１に記載の復号装置。
【請求項３】
前記複数の鍵生成部のそれぞれは、前記鍵管理情報に含まれる前記暗号化鍵情報の復号に使用されたデバイス鍵が割り当てられた、前記鍵ツリー上のノードの位置を示す位置情報を検出する位置検出部をさらに有する
請求項１に記載の復号装置。
【請求項４】
前記位置検出部は、外部から参照可能なデータ領域に前記位置を示す位置情報を出力する
請求項３に記載の復号装置。
【請求項５】
前記鍵管理情報に含まれる１または複数の前記暗号化鍵情報は、無効化する再生装置を除いた全ての再生装置のそれぞれが何れか１つのデバイス鍵を保持しているように選択された前記１または複数のデバイス鍵のそれぞれにより前記鍵情報を暗号化して生成された情報であり、
１または複数の前記鍵管理情報を復号し、１つ以上の前記鍵管理情報によって無効化されていた場合に、無効化されていない場合と異なる結果を出力する
請求項１に記載の復号装置。
【請求項６】
前記鍵管理情報に含まれる１または複数の前記暗号化鍵情報は、互いに異なるノードの組み合わせのパターンとなるように選択された前記１または複数のデバイス鍵のそれぞれにより前記鍵情報を暗号化して生成された情報であることを特徴とする
請求項５に記載の復号装置。
【請求項７】
前記複数のデータ復号部のそれぞれは、記録媒体から読み出されたデータを復号する
請求項１に記載の復号装置。
【請求項８】
前記鍵管理情報は、ＡＡＣＳ（Advanced  Access  Content  System）で規定されたＭＫＢ（Media  Key  Block）の情報であることを特徴とする
請求項７に記載の復号装置。
【請求項９】
暗号化されたデータを互いに異なる処理で復号する複数のデータ復号ステップと、
前記複数のデータ復号ステップのそれぞれに対応し、対応する復号処理で使用される鍵情報を生成する複数の鍵生成ステップと、
を実行し、
鍵ツリーは、木構造の複数のノードを有し、
リーフは、前記複数のノードの中の最下層のノードであり、
前記複数のリーフのそれぞれには、複数の再生装置のそれぞれが対応付けられており、
前記複数のノードのそれぞれには、互いに異なるデバイス鍵が割り当てられており、
前記複数の鍵生成ステップのそれぞれでは、
前記鍵ツリーの中から選択された１または複数のデバイス鍵のそれぞれにより前記鍵情報を暗号化した１または複数の暗号化鍵情報を含む鍵管理情報を取得し、
前記鍵ツリーのノードに割り当てられた複数のデバイス鍵を保持するデバイス鍵保持部から、前記複数のデバイス鍵を取得し、
前記デバイス鍵保持部に保持された前記複数のデバイス鍵の中から前記鍵管理情報の復号に使用できる１つのデバイス鍵を選択し、選択した前記デバイス鍵により前記鍵管理情報を復号して前記鍵情報を生成する
復号方法。
【請求項１０】
コンピュータに請求項９に記載された復号方法を実行させるためのプログラム。
【請求項１１】
データを互いに異なる処理で暗号化する複数のデータ暗号化部と、
前記複数のデータ暗号化部のそれぞれに対応して設けられ、対応する復号処理で使用される鍵情報を暗号化する複数の鍵暗号化部と、
を備え、
鍵ツリーは、木構造の複数のノードを有し、
リーフは、前記複数のノードの中の最下層のノードであり、
前記複数のリーフのそれぞれには、複数の再生装置のそれぞれが対応付けられており、
前記複数のノードのそれぞれには、互いに異なるデバイス鍵が割り当てられており、
前記複数の鍵暗号化部のそれぞれは、
前記鍵ツリーの中から選択された１または複数のデバイス鍵を取得するデバイス鍵取得部と、
取得した前記１または複数のデバイス鍵のそれぞれにより前記鍵情報を暗号化した１または複数の暗号化鍵情報を含む鍵管理情報を生成する鍵情報生成部と、
を有する
暗号化装置。
【請求項１２】
前記複数の再生装置のそれぞれは、前記鍵ツリーのノードに割り当てられた複数のデバイス鍵を保持し、
前記デバイス鍵取得部は、無効化する再生装置を除いた全ての再生装置のそれぞれが何れか１つのデバイス鍵を保持しているように選択された前記１または複数のデバイス鍵を取得する
請求項１１に記載の暗号化装置。
【請求項１３】
前記デバイス鍵取得部は、復号処理毎に、異なるノードの組み合わせのパターンとなるように選択された前記１または複数のデバイス鍵を取得する
請求項１２に記載の暗号化装置。
【請求項１４】
前記複数の鍵暗号化部のそれぞれは、前記鍵管理情報に含まれる前記暗号化鍵情報の復号に使用されたデバイス鍵が割り当てられた、前記鍵ツリー上のノードの位置を示す位置情報を前記鍵管理情報に加える位置情報生成部をさらに有する
請求項１３に記載の暗号化装置。
【請求項１５】
前記複数のデータ暗号化部のそれぞれは、記録媒体に書き込まれるデータを生成する
請求項１２に記載の暗号化装置。
【請求項１６】
前記鍵管理情報は、ＡＡＣＳ（Advanced  Access  Content  System）で規定されたＭＫＢ（Media  Key  Block）の情報であることを特徴とする
請求項１５に記載の暗号化装置。
【請求項１７】
データを互いに異なる処理で暗号化する複数のデータ暗号化ステップと、
前記複数のデータ暗号化ステップのそれぞれに対応し、対応する復号処理で使用される鍵情報を暗号化する複数の鍵暗号化ステップと、
を実行し、
鍵ツリーは、木構造の複数のノードを有し、
リーフは、前記複数のノードの中の最下層のノードであり、
前記複数のリーフのそれぞれには、複数の再生装置のそれぞれが対応付けられており、
前記複数のノードのそれぞれには、互いに異なるデバイス鍵が割り当てられており、
前記複数の鍵暗号化ステップのそれぞれでは、
前記鍵ツリーの中から選択された１または複数のデバイス鍵を取得し、
取得した前記１または複数のデバイス鍵のそれぞれにより前記鍵情報を暗号化した１または複数の暗号化鍵情報を含む鍵管理情報を生成する
暗号化方法。
【請求項１８】
コンピュータに請求項１７に記載された暗号化方法を実行させるためのプログラム。
【請求項１９】
互いに異なる複数の処理で暗号化したデータを格納した第１領域と、
前記複数の処理のそれぞれに対応して、復号処理で使用される鍵情報を含む複数の鍵管理情報のそれぞれを格納した第２領域と、
を備え、
鍵ツリーは、木構造の複数のノードを有し、
リーフは、前記複数のノードの中の最下層のノードであり、
前記複数のリーフのそれぞれには、複数の再生装置のそれぞれが対応付けられており、
前記複数のノードのそれぞれには、互いに異なるデバイス鍵が割り当てられており、
前記複数の鍵管理情報のそれぞれは、
前記鍵ツリーの中から１または複数のデバイス鍵が選択され、選択された前記１または複数のデバイス鍵のそれぞれにより前記鍵情報を暗号化した１または複数の暗号化鍵情報を含む
記録媒体。
【請求項２０】
データを互いに異なる処理で暗号化する複数のデータ暗号化ステップと、
前記複数の暗号化ステップのそれぞれに対応し、対応する復号処理で使用される鍵情報を暗号化する複数の鍵暗号化ステップと、
前記複数のデータ暗号化ステップで暗号化されたデータ、および、前記複数の鍵暗号化ステップで暗号化された鍵情報を記録媒体に記録する記録ステップと、
を実行し、
鍵ツリーは、木構造の複数のノードを有し、
リーフは、前記複数のノードの中の最下層のノードであり、
前記複数のリーフのそれぞれには、複数の再生装置のそれぞれが対応付けられており、
前記複数のノードのそれぞれには、互いに異なるデバイス鍵が割り当てられており、
前記複数の鍵暗号化ステップのそれぞれでは、
前記鍵ツリーの中から選択された１または複数のデバイス鍵を取得し、
取得した前記１または複数のデバイス鍵のそれぞれにより前記鍵情報を暗号化した１または複数の暗号化鍵情報を含む鍵管理情報を生成する
記録媒体の製造方法。
【請求項２１】
前記複数の再生装置のそれぞれは、前記鍵ツリーのノードに割り当てられた複数のデバイス鍵を保持し、
前記複数の鍵暗号化ステップのそれぞれでは、前記鍵ツリーの中から、無効化する再生装置を除いた全ての再生装置のそれぞれが何れか１つのデバイス鍵を保持しているように選択された前記１または複数のデバイス鍵を取得する
請求項２０に記載の記録媒体の製造方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、復号装置、暗号化装置、方法、プログラム、記録媒体および製造方法に関する。
【背景技術】
【０００２】
ＢＤ（Blu-ray  Disc（登録商標））には、ＭＫＢ（Media  Key  Block）と呼ばれる鍵管理情報が記録されている。これにより、ＢＤは、不正な装置による再生を禁止させることができる。不正な装置によるＢＤの再生を禁止させるＭＫＢを生成することを、無効化（Revocation）と呼ぶ。
【０００３】
また、ＢＤでは、ＭＫＢによるコンテンツ保護とは別個に、バーチャルマシンを利用したＢＤ＋と呼ばれるコンテンツ保護技術が採用されている。ＢＤでは、このような２種類の異なるコンテンツ保護技術を採用することにより、保護の強化を図っている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】米国特許第８０２３６５５号明細書
【特許文献２】米国特許第８１２１２８７号明細書
【特許文献３】米国特許第８０４６８３７号明細書
【特許文献４】米国特許出願公開第２００９／０２１４０２９号明細書
【非特許文献】
【０００５】
【非特許文献１】Advanced  Access  Content  System  (AACS)，  “Introduction  and  Common  Cryptographic  Elements  Book”,  ２０１２年，[平成２５年７月１０日検索]、インターネット＜URL:    http://www.aacsla.com/specifications＞
【非特許文献２】Advanced  Access  Content  System  (AACS)，  “Pre-recorded  Video  Book”,  ２０１２年，[平成２５年７月１０日検索]、インターネット＜URL:  http://www.aacsla.com/specifications＞
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ところで、技術の進歩に伴い、さらにコンテンツの保護を強化する必要がある。また、特定の装置を無効化させるＭＫＢを生成する場合、その前提として、不正と疑われる装置が保持している秘密鍵を特定しなければならなかった。しかし、装置が保持している秘密鍵を特定することは非常に難しかった。
【課題を解決するための手段】
【０００７】
実施形態の復号装置は、複数のデータ復号部と、複数の鍵生成部とを備える。複数のデータ復号部は、暗号化されたデータを互いに異なる処理で復号する。複数の鍵生成部は、複数のデータ復号部のそれぞれに対応して設けられ、対応する復号処理で使用される鍵情報を生成する。鍵ツリーは、木構造の複数のノードを有する。リーフは、複数のノードの中の最下層のノードである。複数のリーフのそれぞれには、複数の再生装置のそれぞれが対応付けられている。複数のノードのそれぞれには、互いに異なるデバイス鍵が割り当てられている。複数の鍵生成部のそれぞれは、デバイス鍵保持部と、鍵復号部とを有する。デバイス鍵保持部は、鍵ツリーのノードに割り当てられた複数のデバイス鍵を保持する。鍵復号部は、鍵ツリーの中から選択された１または複数のデバイス鍵のそれぞれにより鍵情報を暗号化した１または複数の暗号化鍵情報を含む鍵管理情報を取得し、デバイス鍵保持部に保持された複数のデバイス鍵の中から鍵管理情報の復号に使用できる１つのデバイス鍵を選択し、選択したデバイス鍵により鍵管理情報を復号して鍵情報を生成する。
【図面の簡単な説明】
【０００８】
【図１】実施形態に係る暗号処理システムの構成図。
【図２】実施形態に係る復号部の構成図。
【図３】第１のＭＫＢのデータ構造を示す図。
【図４】第１のＫＣＤシードブロックのデータ構造を示す図。
【図５】実施形態に係る暗号化部の構成図。
【図６】デバイス鍵が割り当てられた鍵ツリー。
【図７】再生装置に配布されるデバイス鍵の一例。
【図８】不正利用されていない場合に暗号化に用いられるデバイス鍵の一例。
【図９】不正利用されていない場合に暗号化に用いられるデバイス鍵の他の例。
【図１０】不正利用された場合に暗号化に用いられるデバイス鍵の一例。
【図１１】ＫＣＤ鍵が割り当てられた鍵ツリーの一例。
【図１２】復号処理のフロー図。
【図１３】第１の復号処理のフロー図。
【図１４】第２の復号処理のフロー図。
【図１５】第１のＭＫＢの暗号化に用いられるデバイス鍵。
【図１６】第２のＭＫＢの暗号化に用いられるデバイス鍵。
【図１７】暗号化部および復号部のハードウェア構成図。
【発明を実施するための形態】
【０００９】
(全体構成)
図１は、実施形態に係る暗号処理システム１０の構成を示す。暗号処理システム１０は、記録媒体１５にデータを記録する記録装置２０と、記録媒体１５からデータを再生する再生装置３０と、鍵管理装置４０とを備える。
【００１０】
記録媒体１５は、一例として、ＢＤ（Blu-ray  Disc（登録商標））またはＤＶＤ（Digital  Versatile  Disk（登録商標））等の光ディスクである。記録媒体１５は、半導体メモリまたはハードディスク等の磁気ディスク等であってもよい。
【００１１】
記録装置２０は、入力部２１と、暗号化部２２（暗号化装置）と、出力部２３とを備える。入力部２１は、外部から平文コンテンツデータを入力する。暗号化部２２は、入力部２１が入力した平文コンテンツデータ等に基づき、暗号化コンテンツデータ、暗号化タイトル鍵、第１のＭＫＢ（Media  Key  Block）、第１のＫＣＤ（Key  Conversion  Data）シードブロック、データ変換処理プログラム、第２のＭＫＢおよび第２のＫＣＤシードブロックを生成する。
【００１２】
出力部２３は、暗号化部２２により生成された各データのそれぞれを記録媒体１５の予め定められた領域に記録する。
【００１３】
このような記録装置２０は、コンテンツの権利者の許可の元で製造工場において使用される。また、記録装置２０は、コンテンツの権利者の許可の元で通信路または放送を経由して提供された平文コンテンツデータを取得して、各データを記録してもよい。
【００１４】
再生装置３０は、記録装置２０により各データが記録された記録媒体１５を再生する。再生装置３０は、入力部３１と、復号部３２（復号装置）と、出力部３３とを備える。
【００１５】
入力部３１は、記録媒体１５から、暗号化コンテンツデータ、暗号化タイトル鍵、第１のＭＫＢ、第１のＫＣＤシードブロック、データ変換処理プログラム、第２のＭＫＢおよび第２のＫＣＤシードブロックを取得する。復号部３２は、入力部３１が取得した各データに基づき、平文コンテンツデータを生成する。出力部３３は、復号部３２が生成した平文コンテンツデータを外部へと出力する。
【００１６】
このような再生装置３０は、ユーザにより使用される。また、再生装置３０の復号部３２は、コンピュータにより実行されるソフトウェアであってもよいし、一部または全部がハードウェアであってもよい。また、再生装置３０は、入力部３１と復号部３２との間に他の装置が介在する構成であってもよい。
【００１７】
鍵管理装置４０は、例えば鍵管理団体等により管理されるサーバである。鍵管理装置４０は、記録媒体１５にデータを記録する際に必要な各種情報を管理する。鍵管理装置４０は、記録媒体１５にデータを記録する際に必要な各種情報をＤＶＤ等のメディアまたはネットワーク等を介して、記録媒体１５の製作者に配布する。記録媒体１５の作成者は、配布された情報を記録装置２０に与えて、記録媒体１５を作成する。また、鍵管理装置４０は、記録媒体１５からデータを再生する際に必要となる各種の情報をＤＶＤ等のメディアを介して記録媒体１５の製作者に配布する。再生装置３０の製造者は、配布された情報を再生装置３０に書き込み、再生装置３０で記録媒体１５を再生可能とする。
【００１８】
(データ)
平文コンテンツデータは、例えば、所定方式で符号化されたオーディオビジュアルデータである。平文コンテンツデータは、オーディオデータ、静止画像データ、電子書籍データおよびゲームプログラムデータ等のどのようなデジタルデータであってもよい。
【００１９】
暗号化コンテンツデータは、平文コンテンツデータを異なる複数の方式で暗号化をしたデータである。本実施形態では、暗号化コンテンツデータは、平文コンテンツデータに対して、２段階の暗号化処理をしたデータである。一つの暗号化処理は、平文コンテンツデータの一部を他のデータに置き換えて中間コンテンツデータに変換するとともに、置き換え前の一部のデータを発生させるプログラムコードおよび変換テーブルを生成するデータ変換処理である。もう一つの処理は、中間コンテンツデータを平文タイトル鍵により暗号化する暗号化処理である。
【００２０】
暗号化タイトル鍵は、平文タイトル鍵を第１のメディア鍵により暗号化したデータである。なお、１つの平文コンテンツデータを分割して、分割したそれぞれのデータに対して異なる平文タイトル鍵による暗号化処理がされてもよい。
【００２１】
第１のＭＫＢは、正当な再生装置３０に、第１のメディア鍵の元となる第１の中間鍵を生成させるための情報である。第１のＫＣＤシードブロックは、正当な再生装置３０に、第１のＫＣＤ値を生成させるための情報である。また、第１のＫＣＤシードブロックには、第１の位置情報が含まれる。第１の位置情報は、第１の中間鍵が何れのデバイス鍵で復号されたかを示す情報である。第１のメディア鍵は、第１の中間鍵、第１のＫＣＤ値および第１の位置情報に基づき生成されたデータである。なお、第１のＭＫＢおよび第１のＫＣＤ値については、詳細を図６以降でさらに説明する。
【００２２】
データ変換処理プログラムは、バーチャルマシンにより実行されるＪＡＶＡ（登録商標）等のプログラムコードと、平文コンテンツデータの一部である変換データを登録した変換テーブルとを含む。データ変換処理プログラムは、バーチャルマシンに第２のメディア鍵を入力することにより正しく実行される。平文コンテンツデータは、中間コンテンツデータの一部を、プログラムコードの実行に従ってバーチャルマシンから発生される変換データに置き換えることにより生成されたデータである。暗号化部２２は、一例として、特許文献３に示された方法により、データ変換処理プログラムおよび変換データを生成する。
【００２３】
第２のＭＫＢは、正当な再生装置３０に、第２のメディア鍵の元となる第２の中間鍵を生成させるための情報である。第２のＫＣＤシードブロックは、正当な再生装置３０に、第２のＫＣＤ値を生成させるための情報である。また、第２のＫＣＤシードブロックには、第２の位置情報が含まれる。第２の位置情報は、第２の中間鍵が何れのデバイス鍵で復号されたかを示す情報である。第２のメディア鍵は、第２の中間鍵、第２のＫＣＤ値および第２の位置情報に基づき生成されたデータである。なお、第２のＭＫＢおよび第２のＫＣＤ値については詳細を図６以降でさらに説明する。
【００２４】
(復号部３２の構成)
図２は、復号部３２の構成を示す。復号部３２は、第１のデータ復号部５１と、第２のデータ復号部５２と、第１の鍵生成部５３と、第２の鍵生成部５４とを備える。
【００２５】
第１のデータ復号部５１および第２のデータ復号部５２は、暗号化されたデータ（暗号化コンテンツデータ）を互いに異なる処理で復号する。第１の鍵生成部５３は、第１のデータ復号部５１に対応して設けられ、対応する第１のデータ復号部５１の復号処理で使用される第１のメディア鍵（第１の鍵情報）を生成する。第２の鍵生成部５４は、第２のデータ復号部５２に対応して設けられ、対応する第２のデータ復号部５２の復号処理で使用される第２のメディア鍵（第２の鍵情報）を生成する。
【００２６】
より具体的には、第１のデータ復号部５１は、コンテンツ復号部６１と、タイトル鍵復号部６２とを有する。コンテンツ復号部６１は、記録媒体１５から暗号化コンテンツデータを取得する。コンテンツ復号部６１は、暗号化コンテンツデータをタイトル鍵復号部６２により生成された平文タイトル鍵により復号して、中間コンテンツデータを生成する。
【００２７】
タイトル鍵復号部６２は、記録媒体１５から暗号化タイトル鍵を取得する。タイトル鍵復号部６２は、暗号化タイトル鍵を第１の鍵生成部５３により生成された第１のメディア鍵により復号して、平文タイトル鍵を生成する。
【００２８】
第２のデータ復号部５２は、データ変換部６３と、セキュアＶＭ部６４とを有する。データ変換部６３は、中間コンテンツデータにおける一部のデータを、セキュアＶＭ部６４から発生された変換データに置き換えて、平文コンテンツデータを生成する。
【００２９】
セキュアＶＭ部６４は、記録媒体１５からデータ変換処理プログラムを取得する。データ変換処理プログラムは、プログラムコードと、変換データを登録した変換テーブルとを含む。セキュアＶＭ部６４は、プログラムコードをセキュアバーチャルマシン上で実行して、変換テーブルに登録された変換データを出力する。
【００３０】
また、セキュアＶＭ部６４は、再生装置３０内に保持されている再生装置固有情報に基づき、処理を実行する。また、セキュアＶＭ部６４は、第２の鍵生成部５４から第２のメディア鍵を取得して、取得した第２のメディア鍵が正当な値である場合に正常に動作を実行する。
【００３１】
第１の鍵生成部５３は、デバイス鍵保持部６５と、ＭＫＢ処理部６６（鍵復号部）と、ＫＣＤ鍵保持部６７と、ＫＣＤ処理部６８（位置検出部）と、メディア鍵生成部６９とを有する。
【００３２】
デバイス鍵保持部６５は、複数のデバイス鍵を秘密に保持する。ここで、鍵管理装置４０は、鍵ツリーを管理する。鍵ツリーは、木構造に配置された複数のノードを有する。複数のノードのうち最下層のノードは、リーフという。鍵ツリーの複数のリーフのそれぞれには、複数の再生装置３０のそれぞれが対応付けられている。そして、鍵ツリーの複数のノードのそれぞれには、互いに異なるデバイス鍵が割り当てられている。
【００３３】
デバイス鍵保持部６５は、このような鍵ツリーにおける、ルート（木構造の頂点）または何れかの中間階層のノードからこの再生装置３０に対応付けられたリーフへと辿る経路上のノードに割り当てられた複数のデバイス鍵を秘密に保持する。デバイス鍵保持部６５には、製造時等において、ＤＶＤ等のメディア等またはネットワークを介して鍵管理装置４０から複数のデバイス鍵を取得した製造者により、このような複数のデバイス鍵が書き込まれる。
【００３４】
ＭＫＢ処理部６６は、記録媒体１５から第１のＭＫＢ（第１の鍵管理情報）を取得する。第１のＭＫＢは、例えば、図３に示すように、ヘッダと、バージョン情報と、１または複数の暗号化中間鍵データと、終端データとを含む。１または複数の暗号化中間データのそれぞれには、ノード位置（第１の位置情報）と暗号化中間鍵とが含まれる。第１のＭＫＢに含まれる１または複数の暗号化中間鍵は、鍵ツリーの中から選択された１または複数のデバイス鍵のそれぞれにより、中間鍵を暗号化して生成されたデータである。また、第１のＭＫＢに含まれる１または複数の第１の位置情報は、対応して含まれる暗号化中間鍵を生成したデバイス鍵の鍵ツリー内での位置を示す。
【００３５】
なお、第１のＭＫＢに含まれる１または複数の暗号化中間鍵を生成するために用いる１または複数のデバイス鍵は、鍵管理装置４０により選択される。この場合において、鍵管理装置４０は、無効化する再生装置３０を除いた全ての再生装置３０のそれぞれが何れか１つのデバイス鍵を保持しているように、１または複数のデバイス鍵を選択する。即ち、第１のＭＫＢに含まれる１または複数の暗号化中間鍵は、無効化する再生装置３０を除いた全ての再生装置３０のそれぞれが何れか１つのデバイス鍵を保持しているように選択された１または複数のデバイス鍵のそれぞれにより中間鍵を暗号化して生成されたデータである。
【００３６】
そして、ＭＫＢ処理部６６は、デバイス鍵保持部６５に保持された複数のデバイス鍵により第１のＭＫＢを復号して、中間鍵を生成する。より具体的には、ＭＫＢ処理部６６は、デバイス鍵保持部６５に保持された複数のデバイス鍵の中から第１のＭＫＢに含まれる何れかの暗号化中間鍵を復号可能な１つのデバイス鍵を選択し、暗号化中間鍵の復号処理を実行する。ＭＫＢ処理部６６は、デバイス鍵保持部６５に保持された複数のデバイス鍵が正当であれば、少なくとも何れか１つのデバイス鍵により、第１のＭＫＢに含まれる何れか１つの暗号化中間鍵の復号が可能である。ＭＫＢ処理部６６は、復号した１つの中間鍵を出力する。
【００３７】
ＫＣＤ鍵保持部６７は、鍵ツリーにおける、ルートまたは何れかの中間階層のノードからこの再生装置３０に対応付けられたリーフへと辿る経路上のノードに割り当てられた複数のＫＣＤ鍵を秘密に保持する。ＫＣＤ鍵が割り当てられた鍵ツリーは、鍵管理装置４０により管理されている。なお、ＫＣＤ鍵が割り当てられた鍵ツリーは、デバイス鍵が割り当てられた鍵ツリーと、同一の分岐パターンの木構造であり、それぞれのリーフに対応付けられた再生装置３０も同一である。
【００３８】
ＫＣＤ処理部６８は、記録媒体１５から第１のＫＣＤシードブロックを取得する。例えば、図４に示すように、ヘッダと、バージョン情報と、１または複数のＫＣＤシードデータと、終端データとを含む。１または複数のＫＣＤシードデータのそれぞれには、ノード位置（第１の位置情報）と、ＫＣＤシードとが対応して含まれる。第１のＫＣＤシードブロックに含まれる１または複数のＫＣＤシードは、鍵ツリーの中から選択された１または複数のＫＣＤ鍵のそれぞれによりＫＣＤ値および第１の位置情報を変換して生成されたデータである。
【００３９】
なお、第１の位置情報は、対応して含まれるＫＣＤシードを生成したＫＣＤ鍵の鍵ツリー上におけるノードの位置を示す。第１のＫＣＤシードブロックに含まれる１または複数のＫＣＤシードを暗号化したＫＣＤ鍵のそれぞれは、第１のＭＫＢに含まれる１または複数の暗号化中間鍵を暗号化したデバイス鍵のそれぞれと同一のノードに割り当てられている。
【００４０】
そして、ＫＣＤ処理部６８は、ＫＣＤ鍵保持部６７に保持された複数のＫＣＤ鍵により第１のＫＣＤシードブロック内のＫＣＤシードを変換して、ＫＣＤ値および変換に使用したＫＣＤ鍵が対応するノード位置を表す第１の位置情報を生成する。より具体的には、ＫＣＤ処理部６８は、ＫＣＤ鍵保持部６７に保持された複数のＫＣＤ鍵の中から正しいＫＣＤシードを生成可能な１つのＫＣＤ鍵を選択し、ＫＣＤシードの生成処理を実行する。ＫＣＤ処理部６８は、ＫＣＤ鍵保持部６７に保持された複数のＫＣＤ鍵が正当であれば、何れか１つのＫＣＤ鍵により、第１のＫＣＤシードブロックに含まれる何れか１つのＫＣＤシードからＫＣＤ値の生成が可能である。
【００４１】
ＫＣＤ処理部６８は、生成されたＫＣＤ値を出力する。また、ＫＣＤ処理部６８は、第１の位置情報を、この再生装置３０の外部から参照可能なデータ領域（すなわち、セキュアではないデータ領域）に出力する。ここで、ＫＣＤ処理部６８が出力する第１の位置情報は、第１のＫＣＤシードブロックに含まれるＫＣＤシードの復号に使用されたＫＣＤ鍵が割り当てられた、鍵ツリー上のノードの位置を示す。換言すると、第１の位置情報は、第１のＭＫＢに含まれる暗号化中間鍵の復号に使用されたデバイス鍵が割り当てられた、鍵ツリー上のノードの位置を示す。
【００４２】
メディア鍵生成部６９は、ＭＫＢ処理部６６が生成した中間鍵、および、ＫＣＤ処理部６８が生成したＫＣＤ値および第１の位置情報に基づき、第１のメディア鍵を生成する。そして、メディア鍵生成部６９は、生成した第１のメディア鍵を第１のデータ復号部５１に与える。
【００４３】
第２の鍵生成部５４は、第１の鍵生成部５３と略同一の機能および構成を有する。従って、第２の鍵生成部５４については、第１の鍵生成部５３との相違点を中心に説明する。
【００４４】
第２の鍵生成部５４は、第１のＭＫＢに代えて第２のＭＫＢ（第２の鍵管理情報）を取得し、第１のＫＣＤシードブロックに代えて第２のＫＣＤシードブロックを取得する点で、第１の鍵生成部５３と相違する。また、第２の鍵生成部５４は、第１のメディア鍵に代えて第２のメディア鍵を出力する点で、第１の鍵生成部５３と相違する。
【００４５】
第２の鍵生成部５４のデバイス鍵保持部６５は、第１の鍵生成部５３のデバイス鍵保持部６５と同一のデバイス鍵を保持してもよいし、鍵ツリーに対するノードの割り当て位置は同一であるが値が異なるデバイス鍵を保持してもよい。また、第２の鍵生成部５４のＫＣＤ鍵保持部６７は、第１の鍵生成部５３のＫＣＤ鍵保持部６７と同一のＫＣＤ鍵を保持してもよいし、鍵ツリーに対するノードの割り当て位置は同一であるが値が異なるＫＣＤ鍵を保持してもよい。
【００４６】
第２の鍵生成部５４のＭＫＢ処理部６６は、記録媒体１５から第２のＭＫＢを取得する。なお、第２のＭＫＢは、図３に示した第１のＭＫＢと同一のデータ構造を有する。ただし、第２のＭＫＢに含まれる１または複数の暗号化中間鍵は、第１のＭＫＢに含まれる１または複数の暗号化中間鍵とは、異なるノードの組み合わせのパターンとなるように選択された１または複数のデバイス鍵のそれぞれにより中間鍵を暗号化して生成されたデータである。
【００４７】
第２の鍵生成部５４のＫＣＤ処理部６８は、記録媒体１５から第２のＫＣＤシードブロックを取得する。なお、第２のＫＣＤシードブロックは、図４に示した第１のＫＣＤシードブロックと同一のデータ構造を有する。第２の鍵生成部５４のＫＣＤ処理部６８は、ＫＣＤ鍵保持部６７に保持された複数のＫＣＤ鍵により第２のＫＣＤシードブロック内のＫＣＤシードを変換して、ＫＣＤ値および第２の位置情報を生成する。第２の位置情報は、第２のＫＣＤシードブロックに含まれるＫＣＤシードを変換してＫＣＤ値を生成したＫＣＤ鍵が割り当てられた、鍵ツリー上のノードの位置を示す。換言すると、第２の位置情報は、第２のＭＫＢに含まれる暗号化中間鍵の復号に使用されたデバイス鍵が割り当てられた、鍵ツリー上のノードの位置を示す。第２の鍵生成部５４のＫＣＤ処理部６８は、第２の位置情報を、この再生装置３０の外部から参照可能なデータ領域に出力する。
【００４８】
第２の鍵生成部５４のメディア鍵生成部６９は、ＭＫＢ処理部６６が生成した中間鍵、および、ＫＣＤ処理部６８が生成したＫＣＤ値に基づき、第２のメディア鍵を生成する。そして、第２の鍵生成部５４のメディア鍵生成部６９は、生成した第２のメディア鍵を第２のデータ復号部５２に与える。
【００４９】
（暗号化部２２の構成）
図５は、暗号化部２２の構成を示す。暗号化部２２は、第１のデータ暗号化部８１と、第２のデータ暗号化部８２と、第１の鍵暗号化部８３と、第２の鍵暗号化部８４とを備える。
【００５０】
第１のデータ暗号化部８１および第２のデータ暗号化部８２は、平文コンテンツデータを互いに異なる処理で暗号化する。第１の鍵暗号化部８３は、第１のデータ暗号化部８１に対応して設けられ、対応する復号処理で使用される第１のメディア鍵（第１の鍵情報）を暗号化する。具体的には、第１の鍵暗号化部８３は、第１のＭＫＢおよび第１のＫＣＤシードブロックを生成する。
【００５１】
また、第２の鍵暗号化部８４は、第２のデータ暗号化部８２に対応して設けられ、対応する復号処理で使用される第２のメディア鍵（第２の鍵情報）を暗号化する。具体的には、第２の鍵暗号化部８４は、第２のＭＫＢおよび第２のＫＣＤシードブロックを生成する。
【００５２】
第２のデータ暗号化部８２は、データ逆変換部９１と、プログラム発生部９２とを有する。データ逆変換部９１は、平文コンテンツデータを取得する。データ逆変換部９１は、平文コンテンツデータの一部を抽出して、変換データとしてプログラム発生部９２に与える。また、データ逆変換部９１は、抽出した一部を他のデータに置き換えて、中間コンテンツデータを生成する。
【００５３】
プログラム発生部９２は、プログラムコードと、データ逆変換部９１が抽出した変換データを登録した変換テーブルとを含むデータ変換処理プログラムを生成する。また、プログラム発生部９２は、第２のメディア鍵を取得し、データ変換処理プログラムを第２のメディア鍵を入力することにより実行可能なように暗号化する。プログラム発生部９２は、生成したデータ変換処理プログラムを記録媒体１５に格納させる。
【００５４】
第１のデータ暗号化部８１は、コンテンツ暗号化部９３と、タイトル鍵暗号化部９４とを有する。コンテンツ暗号化部９３は、第２のデータ暗号化部８２により生成された中間コンテンツデータ、および、平文タイトル鍵を取得する。コンテンツ暗号化部９３は、中間コンテンツデータを平文タイトル鍵により暗号化して、暗号化コンテンツデータを生成する。コンテンツ暗号化部９３は、生成した暗号化コンテンツデータを記録媒体１５に格納させる。
【００５５】
タイトル鍵暗号化部９４は、平文タイトル鍵および第１のメディア鍵を取得する。タイトル鍵暗号化部９４は、平文タイトル鍵を第１のメディア鍵で暗号化して、暗号化タイトル鍵を生成する。タイトル鍵暗号化部９４は、生成した暗号化タイトル鍵を記録媒体１５に格納させる。
【００５６】
第１の鍵暗号化部８３は、デバイス鍵取得部９５と、ＫＣＤ鍵取得部９６と、ＭＫＢ生成部９７（鍵情報生成部）と、ＫＣＤシード生成部９８（位置情報生成部）とを有する。
【００５７】
デバイス鍵取得部９５は、鍵管理装置４０が管理する鍵ツリーの中から、鍵管理装置４０により選択された１または複数のデバイス鍵を取得する。この場合、鍵管理装置４０は、無効化する再生装置３０を除いた全ての再生装置３０のそれぞれが何れか１つのデバイス鍵を保持しているように、１または複数のデバイス鍵を選択する。さらに、また、デバイス鍵取得部９５は、デバイス鍵とともに、対応する中間鍵も例えば鍵管理装置４０から取得する。
【００５８】
ＫＣＤ鍵取得部９６は、鍵管理装置４０が管理する鍵ツリーの中から、鍵管理装置４０により選択された１または複数のＫＣＤ鍵を取得する。この場合、ＫＣＤ鍵取得部９６は、デバイス鍵取得部９５が取得した１または複数のデバイス鍵と同一のノードに割り当てられたＫＣＤ鍵を取得する。また、ＫＣＤ鍵取得部９６は、ＫＣＤ鍵とともに対応するＫＣＤ値および位置情報も鍵管理装置４０から取得する。
【００５９】
ＭＫＢ生成部９７は、第１のメディア鍵を取得する。さらに、ＭＫＢ生成部９７は、デバイス鍵取得部９５から１または複数のデバイス鍵および中間鍵、並びに、ＫＣＤ鍵取得部９６からＫＣＤ値および位置情報を取得する。そして、ＭＫＢ生成部９７は、取得したこれらの情報に基づき、第１のＭＫＢを生成して、記録媒体１５に格納させる。
【００６０】
ＫＣＤシード生成部９８は、ＫＣＤ鍵取得部９６から１または複数のＫＣＤ鍵、ＫＣＤ値および位置情報を取得する。そして、ＫＣＤシード生成部９８は、これらの情報に基づき、第１のＫＣＤシードブロックを生成して、記録媒体１５に格納させる。
【００６１】
第２の鍵暗号化部８４は、第１の鍵暗号化部８３と略同一の機能および構成を有する。ただし、第２の鍵暗号化部８４のデバイス鍵取得部９５は、異なるノードの組み合わせのパターンとなるように選択された１または複数のデバイス鍵を、鍵管理装置４０から取得する。第２の鍵暗号化部８４のＭＫＢ生成部９７は、第２のＭＫＢを生成して、記録媒体１５に格納させる。第２の鍵暗号化部８４のＫＣＤシード生成部９８は、第１のＫＣＤシードブロックを生成して、記録媒体１５に格納させる。
【００６２】
(ＭＫＢ)
つぎに、第１のＭＫＢおよび第２のＭＫＢについて、さらに詳細に説明する。本実施形態において、第１のＭＫＢおよび第２のＭＫＢは、ＡＡＣＳ（Advanced  Access  Content  System）などで採用されている木構造を有したＭＫＢ（Media  Key  Block）を例にして説明している。以下、第１のＭＫＢおよび第２のＭＫＢをまとめてＭＫＢとして説明する。
【００６３】
図６は、木構造の複数のノードにデバイス鍵が割り当てられた鍵ツリーを示す。鍵管理装置４０は、ＭＫＢを生成するための鍵ツリーを管理する。鍵ツリーは、親ノードから２つの子ノードに分岐される分岐パターンの木構造であってもよいし、親ノードから３以上の子ノードに分岐される分岐パターンの木構造であってもよい。
【００６４】
この鍵ツリーには、複数のリーフ（木構造の末端）のそれぞれに、複数の再生装置３０のそれぞれが対応付けられている。図６の例では、３２個のリーフに３２個の再生装置３０が対応付けられている。なお、実際の流通が想定される数の再生装置を十分にまかなうためには、鍵管理装置４０は、実際には図６の木構造よりも大きい木構造を管理する。
【００６５】
さらに、この鍵ツリーには、複数のノード（木構造における子ノードを持つノード）のそれぞれに、互いに異なるデバイス鍵が割り当てられている。図６の例では、６３個のノードのそれぞれに、Ｋｄ１〜Ｋｄ６３のデバイス鍵が割り当てられている。
【００６６】
図７は、左から６番目のリーフに対応付けられた再生装置３０に配布される複数のデバイス鍵を示す。複数の再生装置３０のそれぞれは、鍵管理装置４０から、製造時等に複数のデバイス鍵が配布される。そして、複数の再生装置３０のそれぞれは、配布された複数のデバイス鍵を外部からのアクセスによって露呈しないように秘密に保持する。
【００６７】
より具体的には、複数の再生装置３０のそれぞれは、鍵ツリーにおけるルート（頂点のノード）または何れかの中間階層のノードから、当該再生装置３０が対応付けられたリーフへと辿る経路上のノードに割り当てられた複数のデバイス鍵が配布され、これらを秘密に保持する。例えば、図７に示されるように、鍵ツリーの左から６番目（♯６）のリーフに対応付けられた再生装置３０は、｛Ｋｄ６，Ｋｄ３５，Ｋｄ５０，Ｋｄ５７，Ｋｄ６１，Ｋｄ６３｝を保持する。また、例えば、図７に示されるように、鍵ツリーの左から１１番目（♯１１）のリーフに対応付けられた再生装置３０は、｛Ｋｄ１１，Ｋｄ３８，Ｋｄ５１，Ｋｄ５８，Ｋｄ６１，Ｋｄ６３｝を保持する。これにより、複数の再生装置３０のそれぞれは、互いに異なる組み合わせの複数のデバイス鍵を保持することができる。
【００６８】
図８は、不正利用されたデバイス鍵が存在せず、無効化された再生装置が存在しない場合に、中間鍵の暗号化に用いられる１または複数のデバイス鍵の束の一例を示す。
【００６９】
不正利用されたデバイス鍵が存在しない場合、鍵管理装置４０は、全ての再生装置３０のそれぞれが何れか１つのデバイス鍵を保持しているように、鍵ツリーの中から１または複数のデバイス鍵（デバイス鍵の束）を選択する。そして、鍵管理装置４０は、選択した１または複数のデバイス鍵の束を、記録装置２０の暗号化部２２に与える。
【００７０】
暗号化部２２は、このように選択された１または複数のデバイス鍵のそれぞれを鍵管理装置４０から取得し、取得した１又は複数のデバイス鍵により対応する中間鍵を暗号化してＭＫＢに格納する。そして、出力部２３は、このように生成されたＭＫＢを記録媒体１５に書き込む。これにより、全ての再生装置３０のそれぞれは、秘密に保持している複数のデバイス鍵の何れか１つで、記録媒体１５に記録されたＭＫＢに含まれる何れかの暗号化中間鍵を復号することができる。
【００７１】
例えば、図８の例では、鍵管理装置４０は、｛Ｋｄ５７，Ｋｄ５８，Ｋｄ５９，Ｋｄ６０｝を選択する。そして、暗号化部２２は、これらのデバイス鍵のそれぞれにより、対応する中間鍵｛Ｋｍｐ５７，Ｋｍｐ５８，Ｋｍｐ５９，Ｋｍｐ６０｝を下記のように暗号化して、暗号化中間鍵｛Ｅ−Ｋｍｐ５７，Ｅ−Ｋｍｐ５８，Ｅ−Ｋｍｐ５９，Ｅ−Ｋｍｐ６０｝を生成する。なお、Ｅｎｃ（ｘ，ｙ）は、データｙを鍵ｘで暗号化する関数を示す。
【００７２】
Ｅ−Ｋｍｐ５７＝Ｅｎｃ（Ｋｄ５７，Ｋｍｐ５７）
Ｅ−Ｋｍｐ５８＝Ｅｎｃ（Ｋｄ５８，Ｋｍｐ５８）
Ｅ−Ｋｍｐ５９＝Ｅｎｃ（Ｋｄ５９，Ｋｍｐ５９）
Ｅ−Ｋｍｐ６０＝Ｅｎｃ（Ｋｄ６０，Ｋｍｐ６０）
【００７３】
これにより、１番目から３２番目までの全ての再生装置３０は、保持している何れかのデバイス鍵によりＭＫＢを復号して、何れかの中間鍵を得ることができる。
【００７４】
図９は、不正利用されたデバイス鍵が存在しない場合に、中間鍵の暗号化に用いられる１または複数のデバイス鍵の束の他の一例を示す。また、鍵管理装置４０は、他のパターンで１または複数のデバイス鍵を選択してもよい。
【００７５】
例えば、図９の例では、鍵管理装置４０は、｛Ｋｄ３３，Ｋｄ３４，Ｋｄ５０，Ｋｄ５８，Ｋｄ６２｝を選択する。そして、暗号化部２２は、それぞれのデバイス鍵により、対応する中間鍵｛Ｋｍｐ３３，Ｋｍｐ３４，Ｋｍｐ５０，Ｋｍｐ５８，Ｋｍｐ６２｝を下記のように暗号化して、暗号化中間鍵｛Ｅ−Ｋｍｐ３３，Ｅ−Ｋｍｐ３４，Ｅ−Ｋｍｐ５０，Ｅ−Ｋｍｐ５８，Ｅ−Ｋｍｐ６２｝を生成する。
【００７６】
Ｅ−Ｋｍｐ３３＝Ｅｎｃ（Ｋｄ３３，Ｋｍｐ３３）
Ｅ−Ｋｍｐ３４＝Ｅｎｃ（Ｋｄ３４，Ｋｍｐ３４）
Ｅ−Ｋｍｐ５０＝Ｅｎｃ（Ｋｄ５０，Ｋｍｐ５０）
Ｅ−Ｋｍｐ５８＝Ｅｎｃ（Ｋｄ５８，Ｋｍｐ５８）
Ｅ−Ｋｍｐ６２＝Ｅｎｃ（Ｋｄ６２，Ｋｍｐ６２）
【００７７】
このようにしても、１番目から３２番目までの全ての再生装置３０は、保持している何れかのデバイス鍵によりＭＫＢを復号して、何れかの中間鍵を得ることができる。
【００７８】
なお、鍵管理装置４０は、鍵ツリーにおけるルートから所定の深さまでのノードに割り当てられたデバイス鍵を除いて、１または複数のデバイス鍵を選択してもよい。この場合、複数の再生装置３０のそれぞれは、ルートから所定の深さまでのノードに割り当てられたデバイス鍵を保持しなくてもよい。これにより、複数の再生装置３０のそれぞれは、保持するデバイス鍵を少なくすることができる。
【００７９】
図１０は、鍵ツリーの左から４番目のリーフに対応付けられた再生装置３０が保持するデバイス鍵が不正利用された場合に、中間鍵の暗号化に用いられるデバイス鍵の束の一例を示す。ある再生装置３０のデバイス鍵が不正利用された場合、鍵管理装置４０は、不正利用されたデバイス鍵を保持している再生装置３０が中間鍵を取得できないように、その再生装置３０を無効化する。
【００８０】
この場合、鍵管理装置４０は、無効化する再生装置３０を除いた全ての再生装置３０のそれぞれが何れか１つのデバイス鍵を保持しているように、鍵ツリーの中から１または複数のデバイス鍵（デバイス鍵の束）を選択する。そして、鍵管理装置４０は、選択した１または複数のデバイス鍵の束を、記録装置２０の暗号化部２２に与える。
【００８１】
暗号化部２２は、このように選択された１または複数のデバイス鍵のそれぞれを鍵管理装置４０から取得し、取得した１又は複数のデバイス鍵により対応する中間鍵を暗号化してＭＫＢに格納する。そして、出力部２３は、このように生成されたＭＫＢを記録媒体１５に書き込む。
【００８２】
これにより、無効化された再生装置３０は、記録媒体１５に記録されたＭＫＢに含まれる何れの暗号化中間鍵も復号することができない。一方、無効化されていない再生装置３０のそれぞれは、記録媒体１５に記録されたＭＫＢに含まれる何れかの暗号化中間鍵を復号することができる。
【００８３】
例えば、図１０の例では、鍵管理装置４０は、｛Ｋｄ３，Ｋｄ３３，Ｋｄ５０，Ｋｄ５８，Ｋｄ６２｝を選択する。そして、暗号化部２２は、それぞれのデバイス鍵により、対応する中間鍵｛Ｋｍｐ３，Ｋｍｐ３３，Ｋｍｐ５０，Ｋｍｐ５８，Ｋｍｐ６２｝を下記のように暗号化して、暗号化中間鍵｛Ｅ−Ｋｍｐ３，Ｅ−Ｋｍｐ３３，Ｅ−Ｋｍｐ５０，Ｅ−Ｋｍｐ５８，Ｅ−Ｋｍｐ６２｝を生成する。
【００８４】
Ｅ−Ｋｍｐ３＝Ｅｎｃ（Ｋｄ３，Ｋｍｐ３）
Ｅ−Ｋｍｐ３３＝Ｅｎｃ（Ｋｄ３３，Ｋｍｐ３３）
Ｅ−Ｋｍｐ５０＝Ｅｎｃ（Ｋｄ５０，Ｋｍｐ５０）
Ｅ−Ｋｍｐ５８＝Ｅｎｃ（Ｋｄ５８，Ｋｍｐ５８）
Ｅ−Ｋｍｐ６２＝Ｅｎｃ（Ｋｄ６２，Ｋｍｐ６２）
【００８５】
これにより、鍵ツリーの４番目（♯４）の再生装置３０は、保持しているデバイス鍵で中間鍵を得ることができない。一方、４番目以外の再生装置３０は、保持している何れかのデバイス鍵で何れかの中間鍵を得ることができる。
【００８６】
暗号化部２２は、以上のようなＭＫＢを、第１のＭＫＢおよび第２のＭＫＢとして生成する。ここで、第１のＭＫＢおよび第２のＭＫＢは、同一の分岐パターンの鍵ツリーに基づき生成され、且つ、それぞれのリーフに同一の再生装置３０を対応付けられている。また、第１のＭＫＢおよび第２のＭＫＢは、それぞれのノードに同一のデバイス鍵が割り当てられていてもよいし、異なるデバイス鍵が割り当てられていてもよい。
【００８７】
また、鍵管理装置４０は、第１のＭＫＢと第２のＭＫＢとの間で、割り当てられたノードの組み合わせが互いに異なるように、１または複数のデバイス鍵の束を選択する。これにより、鍵管理装置４０は、例えば、不正が疑われる再生装置３０を調査する場合に、再生装置３０が鍵ツリーにおける何れのリーフに対応付けられているのかを、再生装置３０をリバースエンジニアリングすることなく、より正確に推定することができる。なお、この推定方法の一例については、詳細を図１５および図１６でさらに説明する。
【００８８】
(ＫＣＤシードブロック)
つぎに、第１のＫＣＤシードブロックおよび第２のＫＣＤシードブロックについて説明する。本実施形態において、第１のＫＣＤシードブロックは第１のＭＫＢに対して、第２のＫＣＤシードブロックは第２のＭＫＢに対して、それぞれ同一の役割を果たすので、以下、まとめて説明する。
【００８９】
図１１は、各ノードにＫＣＤ鍵が割り当てられた鍵ツリーを示す。鍵管理装置４０は、ＫＣＤシードブロックを生成するための鍵ツリーを管理する。この鍵ツリーは、対応するＭＫＢを生成するための鍵ツリーと同一である。
【００９０】
また、この鍵ツリーには、複数のリーフのそれぞれに、複数の再生装置３０のそれぞれが対応付けられている。複数の再生装置３０が対応付けられるリーフの位置は、対応するＭＫＢを生成するための鍵ツリーと同一である。
【００９１】
さらに、この鍵ツリーには、複数のノードのそれぞれに、互いに異なるＫＣＤ鍵が割り当てられている。図１１の例では、６３個のノードのそれぞれに、Ｋｓ１〜Ｋｓ６３のＫＣＤ鍵が割り当てられている。なお、第１のＫＣＤシードブロックと第２のＫＣＤシードブロックとの間では、鍵ツリーに割り当てられたＫＣＤ鍵は同一であってもよいし、異なってもよい。
【００９２】
複数の再生装置３０のそれぞれは、鍵管理装置４０から、製造時等に複数のＫＣＤ鍵が配布される。配布される複数のＫＣＤ鍵が割り当てられたノードの位置は、その再生装置３０に配布される複数のデバイス鍵と同一である。そして、複数の再生装置３０のそれぞれは、配布された複数のＫＣＤ鍵を外部からのアクセスによっても露呈しないように秘密に保持する。
【００９３】
また、鍵管理装置４０は、鍵ツリーの中から１または複数のＫＣＤ鍵を選択して、記録装置２０の暗号化部２２に与える。暗号化部２２に与える１または複数のＫＣＤ鍵が割り当てられたノードの位置は、その暗号化部２２に与えられた１または複数のデバイス鍵の位置と同一である。
【００９４】
暗号化部２２は、このように選択した１または複数のＫＣＤ鍵のそれぞれを鍵管理装置４０から取得し、取得した１又は複数のＫＣＤ鍵により、対応するＫＣＤ値および位置情報を暗号化して１又は複数のＫＣＤシードを生成する。暗号化部２２は、生成した１または複数のＫＣＤシードをＫＣＤシードブロックに格納する。そして、出力部２３は、このように生成されたＫＣＤシードブロックを記録媒体１５に書き込む。
【００９５】
これにより、再生装置３０は、秘密に保持している複数のＫＣＤ鍵の何れか１つで、記録媒体１５に記録されたＫＣＤシードブロックに含まれる何れかのＫＣＤシードを復号することができる。さらに、再生装置は、対応するＭＫＢに格納された１または複数の暗号化中間鍵Ｅ−Ｋｍｐのそれぞれに対して一対一で対応して生成された、１または複数のＫＣＤシードが格納されたＫＣＤシードブロックを生成することができる。
【００９６】
なお、ＫＣＤシード（ＫＣＤ−ｓｅｅｄ）、ＫＣＤ値（ＫＣＤ）、位置情報（Ｐｏｓ）、ＫＣＤ鍵（Ｋｓ）および中間鍵（Ｋｍｐ）は次のような関係となっている。
【００９７】
下記の式に示されるように、ＫＣＤシード（ＫＣＤ−ｓｅｅｄ）とＫＣＤ鍵（Ｋｓ）を関数ｆ（）に入力した場合、ＫＣＤ値（ＫＣＤ）と位置情報（Ｐｏｓ）とが出力される。位置情報Ｐｏｓは、鍵ツリー上における、ＫＣＤ鍵Ｋｓが割り当てられたノードの位置を示す。
ＫＣＤ，Ｐｏｓ＝ｆ（Ｋｓ，ＫＣＤ−ｓｅｅｄ）
【００９８】
また、下記の式に示されるように、ＫＣＤ値（ＫＣＤ）と中間鍵（Ｋｍｐ）とを関数ｇ（）に入力した場合、メディア鍵Ｋｍが出力される。
Ｋｍ＝ｇ（Ｋｍｐ，ＫＣＤ）
【００９９】
（復号処理の処理フロー）
図１２は、復号部３２の復号処理のフローを示す。復号部３２は、図１２に示されるように、暗号化コンテンツデータを復号して中間コンテンツデータを生成する第１の復号処理（Ｓ１１）と、中間コンテンツデータを平文コンテンツデータに変換する第２の復号処理（Ｓ１２）とを順次に実行する。なお、復号部３２は、第１の復号処理の一部と第２の復号処理の一部とを並行して実行してもよい。
【０１００】
図１３は、第１の復号処理のフローを示す。第１の復号処理では、まず、ステップＳ１１１において、復号部３２は、記録媒体１５から第１のＭＫＢを取得して、第１の中間鍵を生成する。
【０１０１】
続いて、ステップＳ１１２において、復号部３２は、記録媒体１５から第１のＫＣＤシードブロックを取得して、第１のＫＣＤ値および第１の位置情報を生成する。なお、ステップＳ１１１とステップＳ１１２の順番は逆または同時であっても構わない。続いて、ステップＳ１１３において、復号部３２は、第１の中間鍵、第１のＫＣＤ値および第１の位置情報から、第１のメディア鍵を生成する。
【０１０２】
続いて、ステップＳ１１４において、復号部３２は、記録媒体１５から暗号化タイトル鍵を取得する。そして、復号部３２は、暗号化タイトル鍵を第１のメディア鍵により復号して、平文タイトル鍵を生成する。
【０１０３】
続いて、ステップＳ１１５において、復号部３２は、記録媒体１５から暗号化コンテンツデータを取得する。そして、復号部３２は、暗号化コンテンツデータを平文タイトル鍵により復号して、中間コンテンツデータを生成する。
【０１０４】
図１４は、第２の復号処理フローを示す。第２の復号処理では、まず、ステップＳ１２２において、復号部３２は、記録媒体１５から第２のＭＫＢを取得して、第２の中間鍵を生成する。
【０１０５】
続いて、ステップＳ１２２において、復号部３２は、記録媒体１５から第２のＫＣＤシードブロックを取得して、第２のＫＣＤ値および第２の位置情報を生成する。続いて、ステップＳ１２３において、復号部３２は、第２の中間鍵、第２のＫＣＤ値および第２の位置情報から、第２のメディア鍵を生成する。
【０１０６】
続いて、ステップＳ１２４において、復号部３２は、記録媒体１５からデータ変換処理プログラムを取得する。そして、復号部３２は、データ変換処理プログラムに含まれるプログラムコードをセキュアバーチャルマシンに実行させ、さらに、セキュアバーチャルマシンに第２のメディア鍵および再生装置固有情報を入力して変換データを生成する。そして、ステップＳ１２５において、復号部３２は、中間コンテンツデータの一部を変換データに置き換えて、平文コンテンツデータを生成する。
【０１０７】
（再生装置３０が保持しているデバイス鍵の推定）
図１５は、第１のＭＫＢに格納される暗号化中間鍵の暗号化に用いられる１または複数のデバイス鍵の一例を示す。図１６は、第２のＭＫＢに格納される暗号化中間鍵の暗号化に用いられる１または複数のデバイス鍵の一例を示す。
【０１０８】
不正と疑われる再生装置３０を発見した場合、例えば、鍵管理装置４０は、対象の再生装置３０における第１の位置情報および第２の位置情報を取得することにより、対応の再生装置３０が対応付けられている鍵ツリーのリーフの位置を推定する。
【０１０９】
さらに、鍵管理装置４０は、第１のＭＫＢと第２のＭＫＢとの間で、割り当てられたノードの組み合わせが互いに異なるように１または複数のデバイス鍵を選択している。これにより、鍵管理装置４０は、再生装置３０が鍵ツリーにおける何れのリーフに対応付けられているのかをより正確に推定することができる。
【０１１０】
例えば、図１５に示すように、鍵管理装置４０は、第１のＭＫＢに格納される暗号化中間鍵の暗号化のために、５個のデバイス鍵｛Ｋｄ３３，Ｋｄ３４，Ｋｄ５０，Ｋｄ５８，Ｋｄ６２｝を選択したとする。また、例えば、図１６に示すように、鍵管理装置４０は、第２のＭＫＢに格納される暗号化中間鍵の暗号化のために、５個のデバイス鍵｛Ｋｄ３５，Ｋｄ３６，Ｋｄ４９，Ｋｄ５８，Ｋｄ６２｝を選択したとする。
【０１１１】
ここで、調査対象の再生装置３０（不正している可能性があると疑われている再生装置３０）が左から６番目のリーフに対応付けられているとする。ただし、鍵管理装置４０は、調査対象の再生装置３０が何れのリーフに対応付けられているかは認識していない。
【０１１２】
この場合、調査対象の再生装置３０は、第１のＭＫＢを、Ｋｄ５０のデバイス鍵を用いて復号する。従って、調査対象の再生装置３０は、Ｋｄ５０のノードの位置を示す第１の位置情報を出力する。鍵管理装置４０は、このような第１の位置情報を調査対象の再生装置３０から取得し、自己が管理している鍵ツリーと比較する。これにより、鍵管理装置４０は、調査対象の再生装置３０が、左から５番目から８番目までの何れかのリーフに対応付けられていることを推定することができる。
【０１１３】
また、調査対象の再生装置３０は、第２のＭＫＢを、Ｋｄ３５のデバイス鍵を用いて復号する。従って、調査対象の再生装置３０は、Ｋｄ３５のノードの位置を示す第２の位置情報を出力する。鍵管理装置４０は、このような第２の位置情報を調査対象の再生装置３０から取得し、自己が管理している鍵ツリーと比較する。これにより、鍵管理装置４０は、調査対象の再生装置３０が、左から５番目から６番目までの何れかのリーフに対応付けられていることを推定することができる。
【０１１４】
このように調査対象の再生装置３０が左から６番目のリーフに対応付けられている場合には、鍵管理装置４０は、第１の位置情報よりも第２の位置情報を参照することにより、調査対象の再生装置３０が対応付けられているリーフの位置をより正確に推定することができる。
【０１１５】
また、一方、調査対象の再生装置３０が左から２番目のリーフに対応付けられているとする。この場合、調査対象の再生装置３０は、第１のＭＫＢを、Ｋｄ３３のデバイス鍵を用いて復号する。従って、調査対象の再生装置３０は、Ｋｄ３３のノードの位置を示す第１の位置情報を出力する。鍵管理装置４０は、このような第１の位置情報を得ることにより、調査対象の再生装置３０が、左から１番目から２番目までの何れかのリーフに対応付けられていることを推定することができる。
【０１１６】
また、調査対象の再生装置３０は、第２のＭＫＢを、Ｋｄ４９のデバイス鍵を用いて復号する。従って、調査対象の再生装置３０は、Ｋｄ４９のノードの位置を示す第２の位置情報を出力する。鍵管理装置４０は、このような第２の位置情報を得ることにより、調査対象の再生装置３０が、左から１番目から４番目までの何れかのリーフに対応付けられていることを推定することができる。
【０１１７】
このように調査対象の再生装置３０が左から２番目のリーフに対応付けられている場合には、鍵管理装置４０は、第２の位置情報よりも第１の位置情報を参照することにより、調査対象の再生装置３０が対応付けられているリーフの位置をより正確に推定することができる。
【０１１８】
以上のように本実施形態に係る暗号処理システム１０は、１つの記録媒体１５に不可分な構成で記録された複数個のＭＫＢ（例えば、第１のＭＫＢと第２のＭＫＢ）を用い、さらに、それぞれのＭＫＢの間で割り当てられたノードの組み合わせが互いに異なるように１または複数のデバイス鍵を選択する。これにより、暗号処理システム１０によれば、１つのＭＫＢが記録された記録媒体１５を複数個組み合わせて調査対象の再生装置３０が対応付けられているリーフ位置を推定する従来の方法に比べ、コンテンツの保護を強化することができる。さらに、暗号処理システム１０によれば、調査対象の再生装置３０が鍵ツリーにおける何れのリーフに対応付けられているのかをより、正確に推定することができる。
【０１１９】
特に、不正な再生装置が２つ以上の再生装置から不正に取得した複数のデバイス鍵を保持し、それらを再生する記録媒体毎に切り替えて使用している場合には、１つの記録媒体に１つのＭＫＢが記録されているだけでは、複数の記録媒体のそれぞれに記録されたＭＫＢを再生装置が処理して得られた複数のリーフの位置情報を組み合わせたとしても、リーフ位置の推定精度を向上させることができない。これに対して、本実施形態に係る暗号処理システム１０によれば、少なくとも１つも記録媒体１５に記録された複数のＭＫＢを再生装置３０が処理することで得られた複数のリーフの位置情報を組み合わせて、リーフ位置の推定精度を向上させることができる。
【０１２０】
図１７は、暗号化部２２および復号部３２のハードウェア構成の一例を示す図である。暗号化部２２および復号部３２は、ＣＰＵ（Central  Processing  Unit）２０１などの制御装置と、ＲＯＭ（Read  Only  Memory）２０２やＲＡＭ（Random  Access  Memory）２０３などの記憶装置と、ネットワークに接続して通信を行う通信Ｉ／Ｆ２０４と、各部を接続するバスを備えている。
【０１２１】
実施形態に係る暗号化部２２および復号部３２で実行されるプログラムは、ＲＯＭ２０２等に予め組み込まれて提供される。また、このプログラムは、インストール可能な形式または実行可能な形式のファイルでＣＤ−ＲＯＭ（Compact  Disk  Read  Only  Memory）、フレキシブルディスク（ＦＤ）、ＣＤ−Ｒ（Compact  Disk  Recordable）、ＤＶＤ（Digital  Versatile  Disk）等のコンピュータで読み取り可能な記録媒体に記録してコンピュータプログラムプロダクトとして提供されるように構成してもよい。
【０１２２】
さらに、このプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、このプログラムをインターネット等のネットワーク経由で提供または配布するように構成してもよい。
【０１２３】
実施形態に係る復号部３２で実行されるプログラムは、コンピュータを上述した復号部３２の各部（第１のデータ復号部５１、第２のデータ復号部５２、第１の鍵生成部５３および第２の鍵生成部５４）として機能させうる。なお、第１のデータ復号部５１、第２のデータ復号部５２、第１の鍵生成部５３および第２の鍵生成部５４は、一部または全部がハードウェアにより構成されていてもよい。
【０１２４】
実施形態に係る暗号化部２２で実行されるプログラムは、コンピュータを上述した暗号化部２２の各部（第１のデータ暗号化部８１、第２のデータ暗号化部８２、第１の鍵暗号化部８３および第２の鍵暗号化部８４）として機能させうる。なお、第１のデータ暗号化部８１、第２のデータ暗号化部８２、第１の鍵暗号化部８３および第２の鍵暗号化部８４は、一部または全部がハードウェアにより構成されていてもよい。
【０１２５】
そして、このコンピュータは、ＣＰＵ２０１がコンピュータ読取可能な記憶媒体から上述した各プログラムを主記憶装置上に読み出して実行することができる。
【０１２６】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０１２７】
１０  暗号処理システム
１５  記録媒体
２０  記録装置
２１  入力部
２２  暗号化部
２３  出力部
３０  再生装置
３１  入力部
３２  復号部
３３  出力部
４０  鍵管理装置
５１  第１のデータ復号部
５２  第２のデータ復号部
５３  第１の鍵生成部
５４  第２の鍵生成部
６１  コンテンツ復号部
６２  タイトル鍵復号部
６３  データ変換部
６４  セキュアＶＭ部
６５  デバイス鍵保持部
６６  ＭＫＢ処理部
６７  ＫＣＤ鍵保持部
６８  ＫＣＤ処理部
６９  メディア鍵生成部
８１  第１のデータ暗号化部
８２  第２のデータ暗号化部
８３  第１の鍵暗号化部
８４  第２の鍵暗号化部
９１  データ逆変換部
９２  プログラム発生部
９３  コンテンツ暗号化部
９４  タイトル鍵暗号化部
９５  デバイス鍵取得部
９６  ＫＣＤ鍵取得部
９７  ＭＫＢ生成部
９８  ＫＣＤシード生成部
【図１】
2015056861.tif 000003
【図２】
2015056861.tif 000004
【図３】
2015056861.tif 000005
【図４】
2015056861.tif 000006
【図５】
2015056861.tif 000007
【図６】
2015056861.tif 000008
【図７】
2015056861.tif 000009
【図８】
2015056861.tif 000010
【図９】
2015056861.tif 000011
【図１０】
2015056861.tif 000012
【図１１】
2015056861.tif 000013
【図１２】
2015056861.tif 000014
【図１３】
2015056861.tif 000015
【図１４】
2015056861.tif 000016
【図１５】
2015056861.tif 000017
【図１６】
2015056861.tif 000018
【図１７】
2015056861.tif 000019