(57)【要約】【課題】データ送信元の認証機能を備え、データ送受信時の暗号演算や証明書検証処理の負荷が少なく、データ送受信時にデータ送信元の証明書失効リストを更新可能なデータ転送方法を提供する。【解決手段】転送元は証明書により認証した転送先に対してチャレンジ鍵、自身の公開鍵、対象データの識別ＩＤ、暗号化の鍵タイプを付与。転送先は付与された鍵タイプに応じて、第１セッション鍵（及び第２セッション鍵）を生成し、第１セッション鍵と自身の公開鍵（又は第２セッション鍵）を転送元の公開鍵で暗号化し、チャレンジ鍵で暗号化して転送元に送信。転送元は受信データから取得される第２セッション鍵（又は転送先の公開鍵）で対象データを暗号化し、第１セッション鍵で暗号化して転送先に送信。転送先は受信データを第１セッション鍵で復号し、第２のセッション鍵（又は自身の公開鍵）で復号してライセンスを取得。【選択図】図１
2006115329.tif 000002
【特許請求の範囲】
【請求項１】
コンテンツデータ、該コンテンツデータを復号するための鍵データ、及び該コンテンツデータの復号許可条件データからなるライセンスを暗号化して転送する方法であって、
転送先は、自身の公開鍵を含む証明書を転送元に送信し、
転送元は、受信した証明書の正当性を検証し、チャレンジ鍵を生成し、該チャレンジ鍵を前記証明書に含まれる転送先の公開鍵で暗号化し、その暗号化データに自身の公開鍵を含む証明書を連結した第１のデータを転送先に送信するとともに、ライセンスを識別するためのライセンスＩＤと、ライセンスを暗号化する鍵のタイプを示す鍵タイプデータとを連結した第２のデータを転送先に送信し、
転送先は、前記第１のデータから転送元の公開鍵を取得した後、前記第１のデータから転送元の公開鍵を除いたデータを自身の秘密鍵で復号してチャレンジ鍵を取得するとともに、前記第２のデータに含まれる鍵タイプデータに応じて、第１のセッション鍵及び第２のセッション鍵、あるいは第１のセッション鍵のみを生成し、第１のセッション鍵と自身の公開鍵とを連結し、あるいは第１のセッション鍵と第２のセッション鍵とを連結し、その連結データを前記転送元の公開鍵で暗号化し、その暗号化データをさらに前記チャレンジ鍵で暗号化したデータを転送元に送信し、
転送元は、受信した暗号化データを前記チャレンジ鍵で復号し、その復号データをさらに自身の秘密鍵で復号し、その復号データから第１のセッション鍵及び第２のセッション鍵、あるいは第１のセッション鍵及び転送先の公開鍵を取得し、取得した第２のセッション鍵あるいは転送先の公開鍵でライセンスを暗号化し、その暗号化データをさらに前記第１のセッション鍵で暗号化したデータを転送先に送信し、
転送先は、受信した暗号化データを前記第１のセッション鍵で復号し、その復号データをさらに前記第２のセッション鍵あるいは自身の公開鍵で復号してライセンスを取得することを特徴とする方法。
【請求項２】
コンテンツデータ、該コンテンツデータを復号するための鍵データ、及び該コンテンツデータの復号許可条件データからなるライセンスを暗号化して転送する方法であって、
転送先は、自身の公開鍵を含む証明書を転送元に送信し、
転送元は、受信した証明書の正当性を検証し、チャレンジ鍵を生成し、該チャレンジ鍵を前記証明書に含まれる転送先の公開鍵で暗号化し、その暗号化データに自身の公開鍵を含む証明書を連結した第１のデータを転送先に送信するとともに、ライセンスを識別するためのライセンスＩＤと、ライセンスを暗号化する鍵のタイプを示す鍵タイプデータとを連結した第２のデータを転送先に送信し、
転送先は、前記第１のデータから転送元の公開鍵を取得した後、前記第１のデータから転送元の公開鍵を除いたデータを自身の秘密鍵で復号してチャレンジ鍵を取得するとともに、前記第２のデータに含まれる鍵タイプデータに応じて、第１のセッション鍵及び第２のセッション鍵、あるいは第１のセッション鍵のみを生成し、第１のセッション鍵と自身の公開鍵とを連結し、あるいは第１のセッション鍵と第２のセッション鍵とを連結し、その連結データを前記転送元の公開鍵で暗号化し、その暗号化データと自身の証明書失効リストとを連結し、その連結データを前記チャレンジ鍵で暗号化したデータを転送元に送信し、
転送元は、受信した暗号化データを前記チャレンジ鍵で復号し、その復号データに含まれている転送先の証明書失効リストと自身の証明書失効リストとを比較して、転送先の証明書失効リストの方が新しい場合には、転送先の証明書失効リストを自身の証明書失効リストとするとともに、前記復号データから転送先の証明書失効リストを除いたデータを自身の秘密鍵で復号し、その復号データから第１のセッション鍵及び第２のセッション鍵、あるいは第１のセッション鍵及び転送先の公開鍵を取得し、取得した第２のセッション鍵あるいは転送先の公開鍵でライセンスを暗号化し、その暗号化データと、自身の証明書失効リストとを連結し、その連結データを前記第１のセッション鍵で暗号化したデータを転送先に送信し、
転送先は、受信した暗号化データを前記第１のセッション鍵で復号して転送元の証明書失効リストを取得し、さらに、前記復号データから転送元の証明書失効リストを除いたデータを前記第２のセッション鍵あるいは自身の公開鍵で復号してライセンスを取得することを特徴とする方法。
【請求項３】
請求項１又は２に記載の転送方法において、
転送元と転送先との間で共通の第１のセッション鍵を保持している状態で前記ライセンスを暗号化して転送する場合には、
転送先は、新たなセッション鍵を生成し、そのセッション鍵を前記第１のセッション鍵で暗号化したデータを転送元に送信し、
転送元は、受信した暗号化データを前記第１のセッション鍵で復号して前記新たなセッション鍵を取得し、そのセッション鍵でライセンスを暗号化し、その暗号化データを前記第１のセッション鍵でさらに暗号化して転送先に送信することを特徴とする方法。
【請求項４】
コンテンツデータ、該コンテンツデータを復号するための鍵データ、及び該コンテンツデータの復号許可条件データからなるライセンスを暗号化して転送する方法であって、
転送先は、自身の公開鍵を含む証明書を転送元に送信し、
転送元は、受信した証明書の正当性を検証し、チャレンジ鍵を生成し、該チャレンジ鍵を前記証明書に含まれる転送先の公開鍵で暗号化し、その暗号化データに自身の公開鍵を含む証明書を連結したデータを転送先に送信し、
転送先は、受信したデータから転送元の公開鍵を取得した後、前記受信データから転送元の公開鍵を除いたデータを自身の秘密鍵で復号してチャレンジ鍵を取得するとともに、ライセンスを識別するためのライセンスＩＤを転送元に送信し、
転送先は、セッション鍵を生成し、生成したセッション鍵と転送先の公開鍵とを連結し、その連結データを転送元の公開鍵で暗号化し、その暗号化データをさらにチャレンジ鍵で暗号化したデータを転送元に送信し、
転送元は、受信した暗号化データをチャレンジ鍵で復号し、その復号データを自身の秘密鍵でさらに復号し、その復号データからセッション鍵と転送先の公開鍵とを取得し、取得したセッション鍵でライセンスを暗号化し、その暗号化データを新たに生成したセッション外殻鍵でさらに暗号化するとともに、前記セッション外殻鍵を転送先の公開鍵で暗号化し、前記２つの暗号化データを連結したデータを転送先に送信し、
転送先は、受信したデータのうち自身の公開鍵で暗号化されたデータを自身の秘密鍵で復号して前記セッション外殻鍵を取得した後、前記受信データのうち前記セッション外殻鍵で暗号化されたデータを前記セッション外殻鍵で復号し、その復号データを前記セッション鍵でさらに復号してライセンスを取得することを特徴とする方法。
【請求項５】
コンテンツデータ、該コンテンツデータを復号するための鍵データ、及び該コンテンツデータの復号許可条件データからなるライセンスを暗号化して転送する方法であって、
転送先は、自身の公開鍵を含む証明書を転送元に送信し、
転送元は、受信した証明書の正当性を検証し、チャレンジ鍵を生成し、該チャレンジ鍵を前記証明書に含まれる転送先の公開鍵で暗号化し、その暗号化データに自身の公開鍵を含む証明書を連結したデータを転送先に送信し、
転送先は、受信したデータから転送元の公開鍵を取得した後、前記受信データから転送元の公開鍵を除いたデータを自身の秘密鍵で復号してチャレンジ鍵を取得するとともに、ライセンスを識別するためのライセンスＩＤを転送元に送信し、
転送先は、セッション鍵を生成し、生成したセッション鍵と転送先の公開鍵とを連結し、その連結データを転送元の公開鍵で暗号化し、その暗号化データと自身の証明書失効リストとを連結し、その連結データをチャレンジ鍵で暗号化したデータを転送元に送信し、
転送元は、受信した暗号化データをチャレンジ鍵で復号し、その復号データに含まれている転送先の証明書失効リストと自身の証明書失効リストとを比較して、転送先の証明書失効リストの方が新しい場合には、転送先の証明書失効リストを自身の証明書失効リストとするとともに、前記復号データから転送先の証明書失効リストを除いたデータを、自身の秘密鍵で復号し、その復号データからセッション鍵と転送先の公開鍵とを取得し、取得したセッション鍵でライセンスを暗号化し、その暗号化データに自身の証明書失効リストを連結し、その連結データを新たに生成したセッション外殻鍵で暗号化するとともに、前記セッション外殻鍵を転送先の公開鍵で暗号化し、前記２つの暗号化データを連結したデータを転送先に送信し、
転送先は、受信したデータのうち自身の公開鍵で暗号化されたデータを自身の秘密鍵で復号して前記セッション外殻鍵を取得した後、前記受信データのうち前記セッション外殻鍵で暗号化されたデータを前記セッション外殻鍵で復号し、その復号データから転送元の証明書失効リストを取得するともに、前記復号データから転送元の証明書失効リストを除いたデータを前記セッション鍵で復号してライセンスを取得することを特徴とする方法。
【請求項６】
請求項４又は５に記載の転送方法において、
転送元と転送先との間で共通のセッション外殻鍵を保持している状態で前記ライセンスを暗号化して転送する場合には、
転送先は、新たなセッション鍵を生成し、そのセッション鍵を前記セッション外殻鍵で暗号化したデータを転送元に送信し、
転送元は、受信した暗号化データを前記セッション外殻鍵で復号して前記新たなセッション鍵を取得し、そのセッション鍵でライセンスを暗号化し、その暗号化データを前記セッション外殻鍵でさらに暗号化して転送先に送信することを特徴とする方法。
【請求項７】
請求項１から６のいずれか１項に記載の転送方法を用いて、記録媒体間でコンテンツデータ、該コンテンツデータを復号するための鍵データ、及び該コンテンツデータの復号許可条件データを転送するシステム。
【請求項８】
請求項１から６のいずれか１項に記載の転送方法を用いて、ネットワークノード間でコンテンツデータ、該コンテンツデータを復号するための鍵データ、及び該コンテンツデータの復号許可条件データを転送するシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、機器間やモジュール間でデータを転送するシステム及び方法に関し、特に、著作権保護のためにデータを暗号化し利用条件等に関する情報とともに送信するデータ転送システム及びデータ転送方法に関するものである。
【背景技術】
【０００２】
近年、インターネットなどの情報通信網及びそれを利用するための機器が急速に進歩している。この状況下では、データはディジタル化されて送受信され、媒体に記録される。一度媒体に記録されたディジタルデータは、複製が容易である上、複製に際して品質の劣化を伴わないという利点がある。一方で、音楽データや画像データ等の著作者の権利が存在するデータに関しては、適切な著作権保護のための方策が取られていないと、著しく著作権者の権利が侵害されてしまう恐れがある。ところが、著作権保護の目的を最優先し、ディジタルデータの流通を阻害してしまうと、著作物の複製に際して著作権料を徴収することが可能な著作権者にとっても、かえって不利益となる。
【０００３】
著作権の存在するデータの配信は、主にディジタル通信網や、放送波などを介して行なわれる。これらのデータを一般利用者が利用する際には、まず半導体メモリなどからなる記憶装置にデータを記録しておき、その記憶装置を再生装置（プレイヤー）に装着して記憶されているデータを再生する場合が多い。現時点では、記憶装置は記録再生装置に固定的に内蔵されているものもあるが、利便性の面からも今後は可搬型の記憶装置の利用が進む可能性が高い。著作権保護機能を伴った可搬型の記憶装置としては、非特許文献１に記載のメモリカードがある。
【０００４】
データを再生する装置としては、このようなデータの配信を受けるのに用いた記録再生機器や、可搬型の専用の再生装置を用いる。この場合、著作権者の権利を保護するためには、記憶装置に記録されたデータを、著作権者が主張する条件の範囲を超えて再生できないように、記録再生装置及び記憶装置にセキュリティ対策を施す必要がある。すなわち、当該機器の内部及び外部からアクセス可能な領域で行なわれるデータの授受に関しては、認証処理や暗号化処理等を十分に考慮する必要がある。
【０００５】
特許文献１，２では、このようなセキュリティ対策を機器に施す技術として、利用対象のディジタルデータを暗号化する一方で、それを復号するための鍵及び復号した際の利用条件を、不正に取得，改竄などができないようにすることで、著作権の保護を達成するものが提案されている。
【０００６】
【特許文献１】ＷＯ０１／０１３３５８号パンフレット
【特許文献２】ＷＯ０１／０４３３３９号パンフレット
【非特許文献１】http://panasonic.jp/sd/whats_sd/index.html
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、上記した従来の技術には、以下のような問題点がある。
１）機器間で復号鍵や利用条件に関する情報を転送する場合において、送信元の機器が正しい機器であるか否かを送信先の機器が認証する機能がない。このため、送信先の機器は、不正な機器から受信した復号鍵や利用条件に関する情報も記録してしまうことになり、不正アクセスに対する防御ができない。
２）データの転送が頻繁に生じると、データ再生に遅延が生じる可能性がある。これは、転送の度に送信元機器及び送信先機器の両方において負荷の高い暗号演算や証明書検証処理を行わなければならないためである。
３）証明書で機器の正当性を判別する場合には、証明書とともに失効した証明書のリストをシステム全体で用いる必要があるが、送信先の機器の証明書失効リストしか更新できない。
【０００８】
本発明は、上記のような問題点が解消されたデータ転送システム及びデータ転送方法を提供しようとするものである。
【課題を解決するための手段】
【０００９】
上記解決課題に鑑みて鋭意研究の結果、本発明者は、以下のような手順により、暗号化されたコンテンツデータと、該コンテンツデータを復号するための鍵データと、復号が許可される条件（これらをまとめたものを「ライセンス」と呼ぶ）とを、一方のモジュールから他方のモジュールへ転送するデータ転送方法に想到した。
【００１０】
第１の方法
まず初めに、転送先から、転送先のデバイスクラス公開鍵を含む証明書を転送元に送信する。転送元では受信した証明書の正当性を検証し、検証の結果受信した証明書の正当性が確認されると、自身で一時的な共通鍵暗号化のためのチャレンジ鍵を生成し、該鍵を受信したデバイスクラス公開鍵を用いて暗号化し、生成された暗号化データに自身のデバイスクラス公開鍵を含む証明書を連結し転送先に送信する。転送先では、受信した該データを、自身のデバイスクラス秘密鍵を用いて復号し、チャレンジ鍵を取得する。
【００１１】
続いて、転送元は、ライセンスを特定するためのライセンスＩＤを、ライセンスを暗号化するために用いる鍵（これを「鍵タイプ」と呼ぶ）に連結したものを送信する。転送先では、受信した鍵タイプに応じて、第１のセッション鍵と第２のセッション鍵もしくは第１のセッション鍵のみを生成する。鍵タイプは、全てのライセンスについて、１つのフィールドに記載されている。続いて、鍵タイプに応じて、第１のセッション鍵と転送先が保持するデバイス公開鍵もしくは第２のセッション鍵とを連結した後に、受信したデバイスクラス公開鍵で暗号化し、生成された２つの暗号化データのうちいずれかと自身の証明書失効リストを連結した後、チャレンジ鍵で暗号化し転送元に送信する。
【００１２】
転送元は、転送先から送信されたデータを受けて、該データをチャレンジ鍵でまず復号した後、復号した結果から転送先の証明書失効リストを除いたデータを、さらに自身のデバイスクラス秘密鍵で復号する。この復号により、連結された第１のセッション鍵と第２のセッション鍵もしくは第１のセッション鍵とデバイス公開鍵を取り出す。こうして得られた第２のセッション鍵もしくはデバイス公開鍵用いてライセンスを暗号化する。その暗号化データに自身の証明書失効リストを連結したデータを第１のセッション鍵で暗号化し、転送先に送信する。尚、転送元は、自身の証明書失効リストを上記暗号化データに連結する前に、受信した証明書失効リストと自身が保持する証明書失効リストの発行日を比較する。その結果、自身の証明書失効リストの発行日の方が古かった場合は、受信した証明書失効リストで、自身の証明書失効リストを上書きし、上記データ連結及び転送先への証明書失効リストの送信は行なわないものとする。
【００１３】
転送先は、受信した暗号化データをそれぞれ対応する鍵で復号し、得られたライセンスを自身の耐タンパ性（不正書換え防止性能）を有する領域に記録する。
【００１４】
ここで、一度転送元と転送先の間で第１のセッション鍵が共有された後、それが両者の間で保持されている状態にあるときにライセンス転送を行う場合は、転送先は新たなセッション鍵を生成すると、これを第１のセッション鍵で暗号化した後転送元に送信する。一方、転送元は受信したデータを第１のセッション鍵で復号し、新たなセッション鍵を取り出し、取り出した該鍵を用いて転送対象のライセンスを暗号化した後、第１のセッション鍵で暗号化し、転送先に送信する。
【００１５】
第２の方法
あるいは、以下のようなデータ転送方法も考えられる。
前記同様、一方のモジュールから他方のモジュールへライセンスを暗号化して転送する場合において、まず初めに、転送先から、転送先のデバイスクラス公開鍵を含む証明書を転送元に送信する。
【００１６】
転送元は受信した証明書の正当性を検証し、検証の結果受信した証明書の正当性が確認されると、自身で一時的な共通鍵暗号化のためのチャレンジ鍵を生成し、該鍵を受信したデバイスクラス公開鍵を用いて暗号化し、生成された暗号化データに自身のデバイスクラス公開鍵を含む証明書を連結し転送先に送信する。また、ライセンスを特定するためのライセンスＩＤを転送先に送信する。
【００１７】
転送先は、受信した上記証明書の暗号化データを自身のデバイスクラス秘密鍵で復号し、チャレンジ鍵を取得する。また、第１のセッション鍵を生成し、生成した第１のセッション鍵と転送先が保持するデバイス公開鍵と連結したデータを受信したデバイスクラス公開鍵で暗号化し、生成された暗号化データに証明書失効リストを連結したものをチャレンジ鍵で暗号化して転送元に送信する。
【００１８】
転送元は、まず、受信した暗号化データをチャレンジ鍵で復号し、復号した結果から転送先の証明書失効リストを除いたデータを、さらに自身のデバイスクラス秘密鍵で復号し、連結された第１のセッション鍵とデバイス公開鍵を取り出す。こうして得られた第１のセッション鍵でライセンスを暗号化した後、自身の証明書失効リストを連結し、新たな一時鍵であるセッション外殻鍵を生成し、これを用いて上記のライセンス及び証明書失効リストの連結データの暗号化データをさらに暗号化する。また、生成したセッション外殻鍵を先に取り出したデバイス公開鍵で暗号化する。こうして得られた２つの暗号化データを連結して、転送先に送信する。尚、転送元は、自身の証明書失効リストを該データに連結する前に、受信した証明書失効リストと自身が保持する証明書失効リストの発行日を比較する。その結果、自身の証明書失効リストの発行日の方が古かった場合は、受信した証明書失効リストで、自身の証明書失効リストを上書きし、上記データ連結及び転送先への証明書失効リストの送信は行なわない。
【００１９】
転送先は、受信した上記の連結データをそれぞれ対応する鍵で復号し、得られたライセンスを自身の耐タンパ性を有する領域に記録する。
【００２０】
ここで、一度転送元と転送先の間で第１のセッション鍵が共有された後、それが両者の間で保持されている状態にあるときにライセンス転送を行う場合は、転送先は新たなセッション鍵を生成すると、これをセッション外殻鍵で暗号化したものを転送元に送信する。転送元は、受信した暗号化データをセッション外殻で復号し、新たなセッション鍵を取り出し、これを用いて転送対象のライセンスを暗号化した後、セッション外殻鍵で暗号化して、転送先に送信する。
【００２１】
以上のような技術的思想を具体的に実現するための手段として、本発明は、コンテンツデータ、該コンテンツデータを復号するための鍵データ、及び該コンテンツデータの復号許可条件データからなるライセンスを暗号化して転送する方法であって、転送先は、自身の公開鍵を含む証明書を転送元に送信し、転送元は、受信した証明書の正当性を検証し、チャレンジ鍵を生成し、該チャレンジ鍵を前記証明書に含まれる転送先の公開鍵で暗号化し、その暗号化データに自身の公開鍵を含む証明書を連結した第１のデータを転送先に送信するとともに、ライセンスを識別するためのライセンスＩＤと、ライセンスを暗号化する鍵のタイプを示す鍵タイプデータとを連結した第２のデータを転送先に送信し、転送先は、前記第１のデータから転送元の公開鍵を取得した後、前記第１のデータから転送元の公開鍵を除いたデータを自身の秘密鍵で復号してチャレンジ鍵を取得するとともに、前記第２のデータに含まれる鍵タイプデータに応じて、第１のセッション鍵及び第２のセッション鍵、あるいは第１のセッション鍵のみを生成し、第１のセッション鍵と自身の公開鍵とを連結し、あるいは第１のセッション鍵と第２のセッション鍵とを連結し、その連結データを前記転送元の公開鍵で暗号化し、その暗号化データをさらに前記チャレンジ鍵で暗号化したデータを転送元に送信し、転送元は、受信した暗号化データを前記チャレンジ鍵で復号し、その復号データをさらに自身の秘密鍵で復号し、その復号データから第１のセッション鍵及び第２のセッション鍵、あるいは第１のセッション鍵及び転送先の公開鍵を取得し、取得した第２のセッション鍵あるいは転送先の公開鍵でライセンスを暗号化し、その暗号化データをさらに前記第１のセッション鍵で暗号化したデータを転送先に送信し、転送先は、受信した暗号化データを前記第１のセッション鍵で復号し、その復号データをさらに前記第２のセッション鍵あるいは自身の公開鍵で復号してライセンスを取得することを特徴とする方法を提供するものである。
【００２２】
本発明は、また、コンテンツデータ、該コンテンツデータを復号するための鍵データ、及び該コンテンツデータの復号許可条件データからなるライセンスを暗号化して転送する方法であって、転送先は、自身の公開鍵を含む証明書を転送元に送信し、転送元は、受信した証明書の正当性を検証し、チャレンジ鍵を生成し、該チャレンジ鍵を前記証明書に含まれる転送先の公開鍵で暗号化し、その暗号化データに自身の公開鍵を含む証明書を連結した第１のデータを転送先に送信するとともに、ライセンスを識別するためのライセンスＩＤと、ライセンスを暗号化する鍵のタイプを示す鍵タイプデータとを連結した第２のデータを転送先に送信し、転送先は、前記第１のデータから転送元の公開鍵を取得した後、前記第１のデータから転送元の公開鍵を除いたデータを自身の秘密鍵で復号してチャレンジ鍵を取得するとともに、前記第２のデータに含まれる鍵タイプデータに応じて、第１のセッション鍵及び第２のセッション鍵、あるいは第１のセッション鍵のみを生成し、第１のセッション鍵と自身の公開鍵とを連結し、あるいは第１のセッション鍵と第２のセッション鍵とを連結し、その連結データを前記転送元の公開鍵で暗号化し、その暗号化データと自身の証明書失効リストとを連結し、その連結データを前記チャレンジ鍵で暗号化したデータを転送元に送信し、転送元は、受信した暗号化データを前記チャレンジ鍵で復号し、その復号データに含まれている転送先の証明書失効リストと自身の証明書失効リストとを比較して、転送先の証明書失効リストの方が新しい場合には、転送先の証明書失効リストを自身の証明書失効リストとするとともに、前記復号データから転送先の証明書失効リストを除いたデータを自身の秘密鍵で復号し、その復号データから第１のセッション鍵及び第２のセッション鍵、あるいは第１のセッション鍵及び転送先の公開鍵を取得し、取得した第２のセッション鍵あるいは転送先の公開鍵でライセンスを暗号化し、その暗号化データと、自身の証明書失効リストとを連結し、その連結データを前記第１のセッション鍵で暗号化したデータを転送先に送信し、転送先は、受信した暗号化データを前記第１のセッション鍵で復号して転送元の証明書失効リストを取得し、さらに、前記復号データから転送元の証明書失効リストを除いたデータを前記第２のセッション鍵あるいは自身の公開鍵で復号してライセンスを取得することを特徴とする方法を提供するものである。
【００２３】
本発明の転送方法において、転送元と転送先との間で共通の第１のセッション鍵を保持している状態で前記ライセンスを暗号化して転送する場合には、転送先は、新たなセッション鍵を生成し、そのセッション鍵を前記第１のセッション鍵で暗号化したデータを転送元に送信し、転送元は、受信した暗号化データを前記第１のセッション鍵で復号して前記新たなセッション鍵を取得し、そのセッション鍵でライセンスを暗号化し、その暗号化データを前記第１のセッション鍵でさらに暗号化して転送先に送信することを特徴とする。
【００２４】
本発明は、また、コンテンツデータ、該コンテンツデータを復号するための鍵データ、及び該コンテンツデータの復号許可条件データからなるライセンスを暗号化して転送する方法であって、転送先は、自身の公開鍵を含む証明書を転送元に送信し、転送元は、受信した証明書の正当性を検証し、チャレンジ鍵を生成し、該チャレンジ鍵を前記証明書に含まれる転送先の公開鍵で暗号化し、その暗号化データに自身の公開鍵を含む証明書を連結したデータを転送先に送信し、転送先は、受信したデータから転送元の公開鍵を取得した後、前記受信データから転送元の公開鍵を除いたデータを自身の秘密鍵で復号してチャレンジ鍵を取得するとともに、ライセンスを識別するためのライセンスＩＤを転送元に送信し、転送先は、セッション鍵を生成し、生成したセッション鍵と転送先の公開鍵とを連結し、その連結データを転送元の公開鍵で暗号化し、その暗号化データをさらにチャレンジ鍵で暗号化したデータを転送元に送信し、転送元は、受信した暗号化データをチャレンジ鍵で復号し、その復号データを自身の秘密鍵でさらに復号し、その復号データからセッション鍵と転送先の公開鍵とを取得し、取得したセッション鍵でライセンスを暗号化し、その暗号化データを新たに生成したセッション外殻鍵でさらに暗号化するとともに、前記セッション外殻鍵を転送先の公開鍵で暗号化し、前記２つの暗号化データを連結したデータを転送先に送信し、転送先は、受信したデータのうち自身の公開鍵で暗号化されたデータを自身の秘密鍵で復号して前記セッション外殻鍵を取得した後、前記受信データのうち前記セッション外殻鍵で暗号化されたデータを前記セッション外殻鍵で復号し、その復号データを前記セッション鍵でさらに復号してライセンスを取得することを特徴とする方法を提供するものである。
【００２５】
本発明は、また、コンテンツデータ、該コンテンツデータを復号するための鍵データ、及び該コンテンツデータの復号許可条件データからなるライセンスを暗号化して転送する方法であって、転送先は、自身の公開鍵を含む証明書を転送元に送信し、転送元は、受信した証明書の正当性を検証し、チャレンジ鍵を生成し、該チャレンジ鍵を前記証明書に含まれる転送先の公開鍵で暗号化し、その暗号化データに自身の公開鍵を含む証明書を連結したデータを転送先に送信し、転送先は、受信したデータから転送元の公開鍵を取得した後、前記受信データから転送元の公開鍵を除いたデータを自身の秘密鍵で復号してチャレンジ鍵を取得するとともに、ライセンスを識別するためのライセンスＩＤを転送元に送信し、転送先は、セッション鍵を生成し、生成したセッション鍵と転送先の公開鍵とを連結し、その連結データを転送元の公開鍵で暗号化し、その暗号化データと自身の証明書失効リストとを連結し、その連結データをチャレンジ鍵で暗号化したデータを転送元に送信し、転送元は、受信した暗号化データをチャレンジ鍵で復号し、その復号データに含まれている転送先の証明書失効リストと自身の証明書失効リストとを比較して、転送先の証明書失効リストの方が新しい場合には、転送先の証明書失効リストを自身の証明書失効リストとするとともに、前記復号データから転送先の証明書失効リストを除いたデータを、自身の秘密鍵で復号し、その復号データからセッション鍵と転送先の公開鍵とを取得し、取得したセッション鍵でライセンスを暗号化し、その暗号化データに自身の証明書失効リストを連結し、その連結データを新たに生成したセッション外殻鍵で暗号化するとともに、前記セッション外殻鍵を転送先の公開鍵で暗号化し、前記２つの暗号化データを連結したデータを転送先に送信し、転送先は、受信したデータのうち自身の公開鍵で暗号化されたデータを自身の秘密鍵で復号して前記セッション外殻鍵を取得した後、前記受信データのうち前記セッション外殻鍵で暗号化されたデータを前記セッション外殻鍵で復号し、その復号データから転送元の証明書失効リストを取得するともに、前記復号データから転送元の証明書失効リストを除いたデータを前記セッション鍵で復号してライセンスを取得することを特徴とする方法を提供するものである。
【００２６】
本発明の転送方法において、転送元と転送先との間で共通のセッション外殻鍵を保持している状態で前記ライセンスを暗号化して転送する場合には、転送先は、新たなセッション鍵を生成し、そのセッション鍵を前記セッション外殻鍵で暗号化したデータを転送元に送信し、転送元は、受信した暗号化データを前記セッション外殻鍵で復号して前記新たなセッション鍵を取得し、そのセッション鍵でライセンスを暗号化し、その暗号化データを前記セッション外殻鍵でさらに暗号化して転送先に送信することを特徴とする。
【００２７】
本発明は、また、上記したいずれかの転送方法を用いて、記録媒体間でコンテンツデータ、該コンテンツデータを復号するための鍵データ、及び該コンテンツデータの復号許可条件データを転送するシステムを提供するものである。
【００２８】
本発明は、また、上記したいずれかの転送方法を用いて、ネットワークノード間でコンテンツデータ、該コンテンツデータを復号するための鍵データ、及び該コンテンツデータの復号許可条件データを転送するシステムを提供するものである。
【発明の効果】
【００２９】
以上、説明したように、本発明のデータ転送システム及びデータ転送方法によれば、不正な機器からデータを復号するための鍵やデータの利用条件情報を受信した送信先機器はそれを拒絶でき、複数のデータを復号するための鍵及びデータの利用条件情報を連続的に送信元機器から送信先機器へ送信する場合に、両機器の暗号演算に関する負荷を軽減することができ、また、送信先が有する証明書失効リストの方が、送信元が有する証明書失効リストより新しかった場合、該鍵及び該利用条件情報の転送処理の間に、送信元の証明書失効リストを送信先の証明書失効リストで更新することができる。
【発明を実施するための最良の形態】
【００３０】
以下、添付図面を参照しながら、本発明のデータ転送システム及びデータ転送方法を実施するための最良の形態を詳細に説明する。図１〜図１９は、本発明の実施の形態を例示する図であり、これらの図において、同一の符号を付した部分は同一物を表わし、基本的な構成及び動作は同様であるものとする。
【００３１】
[第１実施形態]
本発明のデータ転送システムの第１実施形態は、チューナーにより受信したディジタル映像データを可搬型の磁気ディスク装置等に記録し、それをディスプレイ上に再生できるような記録再生装置として実現されるものである。以下では、この記録再生装置を「ディジタルデータ記録再生装置」、もしくは簡潔に「記録再生装置」と呼ぶ。データを記録する媒体や装置は磁気ディスク装置に限定されるものではなく、以下において説明する機能を有する媒体や装置であればどのようなものであってもよい。例えば、容量が大きく、内部にコントローラを持ったメモリデバイスなどを用いてもよい。ディジタルデータ記録再生装置は、インターネットなどの情報通信網に接続して、テキストや音声、ゲームプログラム等の各種データを送受信できるものとする。以下では、これらのデータを総称して「コンテンツデータ」と呼ぶ。また、ディジタルデータ記録再生装置は、据え付け型である場合もあれば、可搬型である場合もある。
【００３２】
データ転送システムの全体構成
図１は、本実施形態のデータ転送システムの全体構成を概略的に示す図である。図１において、データ転送システムは、記録再生装置112と、ユーザインタフェースを提供する入力機器120と、ディスプレイ121と、可搬型磁気ディスク装置125，126と、衛星130等から放送を受信する受信アンテナ131と、ネットワーク140を通じて記録再生装置112と通信可能な配信サーバ150とから構成されている。記録再生装置112は、コンテンツ管理部101と、ネットワークインタフェース部100、ユーザインタフェースとのブリッジ部104、外部記憶装置とのインタフェース105,106及びＣＰＵ107を含むホスト部110と、ライセンス展開部102及びコンテンツ復号部103を含むコンテンツデコーダ部111とを備えている。
【００３３】
作成者の著作権保護が必要なコンテンツデータは、放送波を介して受信アンテナ131で受信された後、記録再生装置112のコンテンツ管理部101に一時的に蓄積されたり、配信サーバ150に蓄積されていたりする。このとき、コンテンツ管理部101や配信サーバ150は、所定の暗号方式により暗号化した上で、自身からコンテンツデータを出力する。このときに使用される暗号化方式は、それぞれのセキュリティ仕様によって、独自に規定されてよい。
【００３４】
記録再生装置112には、インタフェース105及び106により可搬型磁気ディスク装置125及び126が装着される。磁気ディスク装置125及び126は、記録再生装置112のコンテンツ管理部101や、配信サーバ150から送信された暗号化コンテンツデータを自身に記録する。コンテンツデータを再生する場合には、可搬型磁気ディスク装置125や126から記録再生装置112のコンテンツ復号部103に、コンテンツデータが暗号化されたままの形で送信される。
【００３５】
記録再生装置112のホスト部110に含まれるネットワークインタフェース部100、入力デバイスとの間のブリッジ部104、外部可搬型磁気ディスク装置との間のインタフェース105,106、及びこれらを制御するＣＰＵ107は、全体として、システム内部を流れるデータの処理や受け渡しを制御する。
【００３６】
記録再生装置112のコンテンツ管理部101や配信サーバ150は、コンテンツデータの暗号化と共に、それを実際に再生するため条件等に関する情報も、内部に生成及び保持する。以下では、これをライセンスと呼ぶ。ライセンスは、要求に応じて、コンテンツ管理部101や配信サーバ150から可搬型磁気ディスク装置125，126へ、あるいは可搬型磁気ディスク装置125，126からライセンス展開部102へ転送される。
【００３７】
ライセンスには、それぞれに一意に割り当てられたID（これをライセンスIDと呼ぶ）、対応するコンテンツデータを特定するためのID（これをコンテンツIDと呼ぶ）、暗号化されたコンテンツデータを解くための鍵データ、対象コンテンツデータの利用を制限するための条件が含まれる。この条件には、転送元で内容を解釈しライセンスの出力を制御するための制御情報UR_sと、ライセンス展開部102に一度転送された後、コンテンツ復号部103にコンテンツ鍵を渡して実際に復号を行うかどうかを制御するための制限情報UR_dとがある。
【００３８】
以上のように構成されたデータ転送システムにおいて、暗号化されたコンテンツデータを利用者側で再生可能とするために必要となる技術は、第１にはコンテンツデータを暗号化する方式そのものであり、第２にはコンテンツデータを暗号化するための鍵を通信路上で暗号化して転送するための方式であり、さらに、第３には、一度記録されたコンテンツデータを使用できる状態のまま無断で複製することを防止する機能である。本実施形態のデータ転送システムでは、コンテンツデータは暗号化されて自由に記録される一方で、それを利用するためのライセンスは、それを取得しようとするものと保持しているものが相互に正しいことが認められ、且つライセンスに規定された利用条件を守る範囲内でしか転送されないようにすることで、不正なコンテンツデータの利用を制限する。以下では、コンテンツデータの記録及び再生を行なう場合に、これらのコンテンツデータの転送元及び転送先について相互認証を行う機能について詳細に説明する。
【００３９】
暗号化の鍵及びデータの構成
図２は、図１に示した本実施形態のデータ転送システムにおいて使用される通信のための暗号に関する鍵データおよび配信するデータ等の特性を示す図である。転送元より送信されるデータDataは映像等のコンテンツデータである。コンテンツデータDataは、後に説明するように、コンテンツ鍵K_cによって復号可能な暗号化が施された暗号化データ{Data}K_cという形式で、コンテンツ管理部101や配信サーバ150、可搬型磁気ディスク装置125,126などに送信される。尚、以下においては、{D}Xという表記は、データDを、鍵データXにより復号可能な暗号に変換した情報であることを示すものとする。通常、鍵データXが対称暗号用鍵データである場合には、データは鍵データXを用いて暗号化されている。一方、鍵データXが非対称暗号用の秘密鍵あるいは公開鍵であった場合は、データDは、Xとは異なるこれらに対応する公開鍵データあるいは秘密鍵データYを用いて暗号化されている。以下では、非対称暗号用公開鍵データを公開鍵または公開鍵データ、非対称暗号用秘密鍵データを秘密鍵または秘密鍵データ、対称暗号用鍵データを共通鍵又は共通鍵データと略す。尚、データDに電子署名が付けられている場合も{D}Xのように記載するが、これは電子署名の対象となる、データDを一部に含むデータ集合のハッシュ値が、公開鍵Xに対応する秘密鍵Yで暗号化されていることを意味する。本明細書中で、鍵K_xと表記されているものは、図においてKxと表記されているものに相当する。
【００４０】
コンテンツデータの暗号化、復号及び再生処理や、コンテンツデコーダ部111、可搬型磁気ディスク装置125，126、配信サーバ150、コンテンツ管理部101の認証に関わる鍵として、以下のものがある。コンテンツデータを暗号化および復号するための鍵は、コンテンツ鍵K_cである。配信サーバ150、コンテンツ管理部101、コンテンツデコーダ部111には、それぞれ個別に、互いに認証を行なうための電子署名付き公開鍵KP_dcがそれぞれ設けられる。公開鍵KP_dcにより暗号化されたデータは、これに対応する秘密鍵K_dcによって復号可能である。これらの秘密鍵データは、配信サーバ、コンテンツ管理部、可搬型磁気ディスク装置、コンテンツデコーダ部それぞれのある有限個に対して、１つ割り当てられる。KP_dc及びK_dcを共有する単位をクラスと呼ぶ。同一クラスに属する機器やモジュールは、ライセンスを転送、記録、管理する部分が、ある特定の規定されたレベルを満たす方法で実装されていて、ライセンスを転送する方式が共通であることを意味する。尚、以下ではこのような機器やモジュールを、総称してデバイスと呼ぶ。
【００４１】
KP_dcは、他の一般情報と連結された後、所定の認証局によって電子署名が与えられ、各デバイスに対する証明書としての役割を果たす。電子署名を与えるための認証局の公開鍵をKP_CA、これに対応する秘密鍵をK_CAと記す。以降では、これらの認証局公開鍵及び認証局秘密鍵と呼ぶ。証明書に記載される一般情報とは、その証明書の発行元や証明書のシリアル番号などである。公開鍵KP_dcは、｛KP_dc｝KP_CAの形式で、出荷時に各デバイスに埋め込まれる。以降では、公開鍵KP_dcをデバイスクラス公開鍵、該鍵で暗号化されたデータを復号するために用いられる秘密鍵をデバイスクラス秘密鍵と呼ぶ。また、各デバイスに対しては、個別に埋め込まれる公開鍵KP_dと、該鍵で暗号化されたデータを復号するための秘密鍵K_dとが存在する。以降では、これらをデバイス公開鍵、デバイス秘密鍵と呼ぶ。
【００４２】
さらに、本実施形態のデータ転送システムにおいて使用される鍵等として以下のものがある。異なる２つのデバイス間でライセンス転送を行う際に、該データを暗号化するために、ライセンス転送を実行する度に転送先において生成される共通鍵K_sn（n ? 0）、及びK_sn（n ? 0）を転送先から転送元へ送信する際にこれを暗号化するために、デバイス間で相互認証処理を行なう度に、転送元で生成される共通鍵K_chである。K_ch及びK_s0は、一度生成されると以後固定的な鍵として利用される場合もあるが、K_sn（n ? 1）については、ライセンス転送を実行する度に、必ずK_smからK_s(m+1)へ更新されてから利用される。以後、K_chをチャレンジ鍵、K_s0をセッション固定鍵、K_sn（n ? 0）をセッション時変鍵と呼ぶ。
【００４３】
可搬型磁気ディスク装置の構成
図３は、図１に示す可搬型磁気ディスク装置の内部構成を示すブロック図である。磁気ディスク装置には、インタフェース部320を介してデータが入出力される。外部から入力されたデータは、コントローラ330を介して、ヘッド部302から磁気ディスク円盤300上に記録される。読み出す場合は、前述の逆をデータが流れる。コントローラ330は、ＣＰＵ331からも制御される。
【００４４】
配信サーバ150や記録再生装置112のコンテンツ管理部101から、記録を目的に可搬磁気ディスク装置にライセンスを転送する場合は、ライセンス転送管理部321が、必要なプロトコル処理や暗号演算処理を行なう。ライセンス転送管理部321に実際にライセンスが送信されると、該ライセンスは、ライセンス記録管理部332によって、ライセンス記録部333に記録される。本図では、ライセンス記録部333は磁気ディスク円盤300とは別に設けられているが、暗号化されたコンテンツデータの読み出しと書き込みとは異なる特殊なアクセス方法でのみアクセスが許可されていて、また本装置を分解等し内部のデータを直接読み出す等を行なうことが不可能な構成になっていれば、磁気ディスク円盤300上に記録する形態としてもよい。
【００４５】
図４は、図３に示す可搬型磁気ディスク装置のライセンス転送管理部321の内部構成を詳細に示す図である。ライセンス転送管理部321の中には、静的な記憶領域430が設けられている。この中には、認証局によって電子署名が与えられた本デバイスについての証明書{KP_dc}KP_CA（401）、証明書401の電子署名部を復号するための認証局によって発行された公開鍵KP_CA（認証局公開鍵，400）、本デバイスに固有の公開鍵KP_d（デバイス公開鍵，412）と、該鍵KP_d（412）で暗号化されたデータを復号するためのデバイス秘密鍵K_d（デバイス秘密鍵，422）が埋め込まれている。一方、書き換え可能な情報として、失効した証明書のリスト（証明書失効リスト）415と、ライセンス記録部333から読み出したライセンスを一時的に蓄積しておく領域431が設けられている。
【００４６】
ライセンス書き込み処理時の動作
ライセンス転送管理部321への入出力は、バス470を介して行なわれる。ライセンス記録部333にライセンスを書き込む場合は、図4において、主にバス470より下側にあるモジュールが使用される。以下では、それらについて順次説明する。
【００４７】
モジュール411は、自身が転送先に証明書の形で送信したデバイスクラス公開鍵KP_dc[D]を鍵として暗号化されたデータを、対応するデバイスクラス秘密鍵K_dc[D]を用いて復号するためのものである。モジュール411は、Dec /w K_dc[D]と記載してあるが、これはデバイスクラス秘密鍵K_dcを鍵として復号を行なうモジュール（Decrypter）であることを意味する。ここで、添え字中の[D]は、本鍵を用いて演算を行うモジュールが、ライセンス転送先（Destination）としての役割を担っていることを示す。同様に、添え字中の[S]は、本鍵を用いて演算を行うモジュールが、ライセンス転送元（Source）としての役割を担っていることを示す。以降、添え字として[D]及び[S]の文字が現れた場合は、全て同様の意味を表すものとする。また、以降では、ライセンス転送元を転送元、ライセンス転送先を転送先と略して記す。
【００４８】
モジュール402は、転送元から送信されてきたデバイスクラス公開鍵KP_dc[S]を含む証明書の検証を行なうモジュールである。電子署名部の検証には、認証局公開鍵KP_CA（400）が用いられる。デバイスクラス公開鍵KP_dc[S]の正当性が認められると、該鍵はモジュール413へ送られる。
【００４９】
モジュール413は、モジュール420で生成されたセッション固定鍵K_s0と自身に埋めこまれたデバイス公開鍵KP_dもしくはセッション時変鍵K_sn（n ? 1）を連結した後、該データをモジュール402から送られた転送元のデバイスクラス公開鍵KP_dc[S]を用いて暗号化するものである。K_s0及びK_sn（n ? 1）は、モジュール420で生成される。デバイス公開鍵KP_dとセッション時変鍵K_sn（n ? 1）のいずれをK_s0に連結するかは、転送対象のライセンス毎に決められており、転送元から事前に通知されている。この情報に基づいて、連結演算は行なわれる。転送元のデバイスクラス公開鍵KP_dc[S]による暗号化が行なわれたデータは、モジュール414へ送られる。尚、本モジュールによる暗号化は、一度転送元と転送先の間でセッション固定鍵K_s0の共有が完了した後は、省略することができる。
【００５０】
モジュール414は、モジュール411で復号後出力されたチャレンジ鍵K_chを用いて、モジュール413から出力されたデータを暗号化するものである。この暗号化は、自身に記録されている証明書失効リストをモジュール413から出力されたデータに連結した後、行なわれる。暗号化されたデータは、バス470及びインタフェース320を介して、転送元に送られる。
【００５１】
モジュール421は、インタフェース320及びバス470を介して転送元より送信されてきたデータを、セッション固定鍵K_s0及びセッション時変鍵K_sn（n ? 1）を用いて復号する。同様に、モジュール422は、セッション固定鍵K_s0のみを用いて復号する。セッション固定鍵及び時変鍵は、モジュール420で生成された後、モジュール413へ送られるときに同時に、421及び422の２つのモジュールに送られる。該モジュールで復号されたデータに転送元の証明書失効リストが含まれている場合は、自身の証明書失効リスト415を、該データで上書きする。証明書失効リスト以外のデータは、モジュール421の出力についてはモジュール423へ、モジュール422の出力についてはモジュール424へ送信される。
【００５２】
モジュール423は、モジュール421から出力されたデータを、自身に埋め込まれたデバイス秘密鍵K_d[D]で復号するものであり、モジュール424は、セッション時変鍵K_sn（n ? 1）で復号するものである。どちらの鍵で復号するかは、転送元より送信されるライセンスが、どちらの鍵で暗号化されているかに拠る。モジュール413では、セッション固定鍵K_s0に対し、デバイス公開鍵とセッション時変鍵のいずれかを連結したわけだが、この際に連結した鍵と同じ鍵を用いて、モジュール423あるいは424のいずれかで復号が行われる。本復号により、転送元から送信されたライセンスが取り出される。取り出されたライセンスは、ライセンス転送管理部321内のライセンス一時記録蓄積部431に蓄積された後、ライセンス記録部333へ記録される。
【００５３】
ライセンス読み出し処理時の動作
ライセンス記録部333からライセンスを読み出す場合は、図4において、主にバス470より上側にあるモジュールが使用される。以下では、それらについて順次説明する。
【００５４】
モジュール441は、転送先から証明書の形で送信されてきたデバイスクラス公開鍵KP_dc[D]を鍵として、モジュール440で生成されたチャレンジ鍵K_chを暗号化する機能をもつものである。暗号化されたデータは、バス470及びインタフェース320を介して、転送先に送信される。
【００５５】
モジュール440で生成されたチャレンジ鍵K_chは、モジュール450にも同時に入力される。モジュール450では、受け取ったチャレンジ鍵K_chを用いて、バス470から入力されたデータを復号する。ただし、バス470から送られたデータは、モジュール450か、モジュールか452のいずれかに入力される。詳細は図５以降において説明するが、簡単に述べれば、転送元と転送先の間で相互認証が行なわれた後、セッション固定鍵K_s0の共有がまだ両者の間で行われていない場合はモジュール450へ入力され、該鍵K_s0の共有が済んでいればモジュール452へ入力されるということである。
【００５６】
モジュール450は、チャレンジ鍵K_chを用いてバス470から入力されたデータを復号した後、該データをモジュール451に入力する。モジュール451は、入力された該データを、自身のデバイスクラス秘密鍵410で復号する。ただし、モジュール450から出力されるデータは、転送先において常に自身のデバイスクラス公開鍵で暗号化されているわけではない。転送先で暗号化されるのは、転送元と転送先の間でセッション固定鍵K_s0を共有する以前だけである。セッション固定鍵K_s0を共有化した後は、転送先での転送元のデバイスクラス公開鍵による暗号化は行なわれないため、モジュール451における処理は省略される。モジュール451で復号後得られたデータは、セッション時変鍵についてはモジュール454に、転送先のデバイス公開鍵KP_d[D]についてはモジュール455に、セッション固定鍵K_s0についてはモジュール461及びモジュール462にそれぞれ送信される。
【００５７】
モジュール454及びモジュール455は、入力された鍵データを用いて、ライセンス432を暗号化するモジュールである。暗号化されたライセンスは、モジュール454の出力はモジュール461に、モジュール455の出力はモジュール462にそれぞれ入力される。
【００５８】
ところで、一度セッション固定鍵K_s0が転送元と転送先の間で共有されると、バス470に送られてきたデータは、モジュール452に入力される。モジュール452は、入力されたデータをセッション固定鍵K_s0で復号するモジュールである。モジュール452の出力は、常にセッション時変鍵K_sn（ただし、n ? 1）であり、得られた鍵データは、モジュール462に送信される。つまり、モジュール462は、入力されたデータを、時間と共に変わってゆくセッション鍵K_sn（n ? 0）で暗号化するモジュールであるのに対し、モジュール461は、該入力データを時間に関して不変のセッション鍵K_s0で暗号化するモジュールである。
【００５９】
上記暗号化を行なう場合、それに先立って、まず転送先から送られてきた転送先の証明書失効リストに記載されている該証明書の発行時情報を、自身の発行日情報と、モジュール453において比較する。転送先の証明書失効リストは、モジュール450の出力結果（チャレンジ鍵の復号結果）に含まれている。比較の結果、自身の証明書失効リスト415の発行時の方が古かった場合は、転送先の証明書失効リストで自身の証明書失効リスト415を上書きする。逆に、転送先の証明書失効リストの発行時の方が古かった場合、自身の証明書失効リスト415をモジュール461あるいはモジュール462のいずれかへ送信する。もし、転送先から証明書失効リストが送信されてこなかった場合は、転送元からの証明書失効リストの送信は行なわれない。
【００６０】
証明書失効リスト415を送信する先は、どちらの鍵データを使って入力するデータを暗号化するかで決定される。モジュール461あるいはモジュール462では、モジュール454あるいはモジュール455の出力結果に対し自身の証明書失効リスト415を連結した後で、前段落に記載したような鍵データを用いて、暗号化を行なう。尚、モジュール454あるいはモジュール455の出力結果への証明書失効リスト415の連結は、暗号化演算に関する負荷を減らすため、通常はセッション固定鍵K_s0が共有化された後一度だけ行われる。（ただし、何度行なっても良い。）以上のようにして二重に暗号化されたライセンスは、モジュール461もしくはモジュール462の出力として、バス470及びインタフェース320を介して、転送先に送信される。
【００６１】
配信サーバ、コンテンツ管理部の構成と動作
図１に示す配信サーバ150及び記録再生装置112のコンテンツ管理部101は、ライセンスを生成及び発行する機能をもつ。従って、これらは上述のライセンス書き込み時の動作で必要なモジュールを内部に持つ。ただし、自身でライセンスを生成するので、ライセンス一時記録蓄積部431やライセンス記録部は必ずしも必要ではない。その代わりに、これらの部位にライセンスの生成行なう機能を持つライセンス生成部が置かれる。
【００６２】
コンテンツデコーダ部の構成と動作
コンテンツデコーダ部111は、コンテンツを復号し、それをディスプレイ121上に表示する機能を持つ。暗号化されたコンテンツを復号し、それをさらに動画像データストリームに構成するのは、コンテンツ復号部103の機能である。コンテンツ復号部103に対し暗号化されたコンテンツを復号するための鍵を送信するのは、ライセンス展開部102である。ライセンス展開部102は、所定の手順に従って、暗号化されたライセンスを、可搬型磁気ディスク装置125や126、コンテンツ管理部101、配信サーバ150などから受信する。従って、ライセンス展開部は、上述のライセンス読み込み時の動作で必要なモジュールを内部に持つ。転送元から送信されたライセンスは、ライセンス一時記録蓄積部431に蓄積された後、コンテンツ復号部103に送信される。このとき転送元から送信されるライセンスは、ライセンス全体であってもよいし、暗号化されたコンテンツを復号するのに必要な最低限の情報、すなわちコンテンツ鍵及び実際にコンテンツデータの復号を行うかどうかを制御するためのUR_dだけであっても良い。この場合、ホスト部は、復号対象のコンテンツのコンテンツIDと、コンテンツデコーダ部111に送信されたライセンスが対応するコンテンツのコンテンツID及び自身のライセンスＩＤについては、把握しているものとする。
【００６３】
転送元−ホスト部−転送先の間での処理の流れ
以下では、図５から図９を利用して、転送元から転送先にライセンスを転送する場合に、転送元と、途中で処理を制御するホスト装置と、転送先との間で行われる処理について説明する。以下では、ライセンス及びコンテンツの転送先を磁気ディスク装置とし、ライセンスの転送元はコンテンツ管理部101とするが、これに限るものではない。
【００６４】
図５において、コンテンツ利用者は、まず入力機器120などを利用して、ホスト装置から、コンテンツの再生要求を出す（500）。このときホスト装置は、利用しようとしているコンテンツとそのライセンスが既に取得済みであるかどうかについて、自身に接続されている磁気ディスク装置内を検索するために、検索要求を磁気ディスク装置に対して発行する（502）。検索は、個々のライセンスに一意に割り当てられたライセンスＩＤを用いて行なう。
【００６５】
該要求を受信した磁気ディスク装置は、送信されたライセンスＩＤを元に、自身の中に当該ライセンスが存在するか、ライセンス記録部333内を検索する（506）。その結果、ライセンスが存在する場合は、コンテンツデコーダ部111に該ライセンスを転送し（508）、存在しなかった場合は処理（507）へ移る。コンテンツデコーダ部111へのライセンス転送処理手続きについては、後述する。
【００６６】
一方、利用者がライセンスの検索を特に指定せず、テレビ放送コンテンツなどの記録を目的に、即座のコンテンツ及びライセンスの記録を要求した場合は、転送先磁気ディスク装置に対する検索要求及び該磁気ディスク装置における検索処理はスキップされ、処理507へ飛ぶ。
【００６７】
処理507では、転送先の証明書を、ホスト部へ送信する。転送先の証明書には、自身が包含するデータのハッシュ値を認証局の秘密鍵K_CAによって暗号化した電子署名が付けられている。自身が包含するデータは、自身に割り当てられたデバイスクラス公開鍵KP_CAやその発行元を記載した情報などである。該データは、KP_CAで検証できるという意味で、{KP_dc[D]}KP_CA，さらにはこれを短縮した形で(*0)と記す。
【００６８】
ホスト部110は、該証明書データを受信（510）すると、復号対象コンテンツのコンテンツIDと共に転送元に送信する（511）。
【００６９】
送信された転送先の証明書を受信した転送元は、該証明書の電子署名部を、自身に埋め込まれている認証局の公開鍵KP_CAで復号する。同時に、送信された証明書のデータ部のハッシュ値を、規定の方法で計算する。この計算結果と、KP_CAで復号した結果得られた電子署名部の値が一致していれば、送信された証明書は、少なくとも改竄が行なわれた形跡はないことになり、その正当性、曳いては転送先のデバイスクラス公開鍵KP_dc[D]の正当性が証明されたことになる。一方、その結果証明書の無効性が判明した場合は、該無効情報をホスト部へ送信する（525）。無効情報を受信したホスト部は、転送先が不正なものであるため、以下の処理の一切を停止し、処理を終了する（542）。
【００７０】
証明書の正当性が証明された場合でも、該証明書が、転送元として記録再生装置に実際に接続された磁気ディスク装置に埋め込まれたものであるかどうは断言できないので、以下に記すような更なる処理が必要になる。
【００７１】
転送先から送信された証明書の正当性が確認できると、転送元は、一時的な対称暗号用の鍵、チャレンジ鍵K_chを、自身内の鍵生成部で生成する（518）。生成されたチャレンジ鍵K_chは、転送元において、転送先から証明書の形で送信されたデバイスクラス公開鍵KP_dc[D]で暗号化される（519）。該処理によって得られたデータE(KP_dc[D], K_ch)を、以下では(*1)と記す。
【００７２】
処理520において、データ(*1)には転送元の証明書が連結される。該証明書には、転送先の証明書同様、自身が包含するデータのハッシュ値を認証局の秘密鍵K_CAによって暗号化した電子署名が付けられている。また、自身が包含するデータは、自身に割り当てられたデバイスクラス公開鍵KP_CAやその発行元を記載した情報などである。該データは、転送元（Source）に埋め込まれたKP_CAで検証できるという意味で、{KP_dc[S]}KP_CA，さらにはこれを短縮した形で(*2)と記す。(*1)と(*2)が連結されたデータを、以降では(*3)と記す。データ(*3)は、ホスト部110へ送信される（520）。
【００７３】
ホスト部110は、データ(*3)を受信すると（530）、これを転送先に送信する（531）。
転送先は、ホスト部より送信されたデータ(*3)を受信（535）すると、該データ中の電子署名部を、自身に埋め込まれている認証局の公開鍵KP_CAで復号する（536）。そして、転送元で行われたのと全く同様の方法、つまり含まれるデータのハッシュ値が、KP_CAで復号された電子署名部のデータと一致するか否かといった方法で、該証明書の正当性を検証する。該証明書の無効性が判明した場合は、該無効情報をホスト部へ送信する（540）。無効情報を受信したホスト部は、転送元が不正なものであるため、以下の処理の一切を停止し、処理を終了する（542）。有効であった場合は、対象ライセンスのライセンスＩＤ受信待ち状態に入る（538）。
【００７４】
ホスト部110は、転送先がライセンスＩＤ受信待ち538にある間に、これと並列して、転送元に対してライセンスＩＤの生成もしくはライセンス記録部333からの読み出し要求を出す（545）。
【００７５】
転送元では、該要求に基づいて、目的のライセンスの生成もしくは読み出しを行う（546）。該処理を終えると、転送元へ当該ライセンスを送信するに当たり、暗号化に必要な鍵の種類が何であるか、すなわち転送元のデバイス公開鍵KP_d[D]あるいはセッション時変鍵K_snを示す情報を（図中及び以下ではこれをKey Typeと呼ぶ）、当該ライセンスのライセンスＩＤと連結する（547）。尚、Key Typeは、全てのライセンスについて、個々に一つのフィールド1903の中に記録されている。本実施例で記載するライセンスは、全てこのようなフォーマット形式を持っているものとする。このようにしてできたデータを、以降では(*4)と記す。転送元は、データ(*4)をホスト部110へ送信する（548）。ホスト部110は、該データを受信（550）すると、そのまま転送先に送信する（551）。転送先は、該データ(*4)を受信（555）すると、図６の処理556に進み、転送元で作成されたチャレンジ鍵K_chで暗号化された、あるデータを作成する。
【００７６】
以下、処理556の詳細について図７を用いて説明する。図７において、転送先では、データ(*4)を受信すると、まずセッション固定鍵K_s0の生成を行う（700）。次に、ライセンスの転送を正常に完了できなかった場合に、当該ライセンスが転送元及び転送先のいずれからも消失してしまうことを防ぐための転送ログのエントリを生成する。この時点では、該エントリに対し、転送対象ライセンスを特定するライセンスＩＤ、生成したセッション固定鍵K_s0を記録する。次に、転送元より送信されたKey Typeに基づいて、セッション時変鍵を生成するかどうかを判定する（702）。Key Typeによって、ライセンスの暗号化に転送元のデバイス公開鍵KP_d[D]が必要である旨の記載があった場合は、処理705に遷移し、先に生成したライセンス転送ログの情報の一部を更新する。更新するのは処理状態を記載するフィールドであり、その内容は受信準備完とする（705）。次に、先に生成したセッション固定鍵K_s0とデバイス公開鍵KP_d[D]を連結したデータ(*5)を生成する（705）。該データ(*5)は、転送元から送信された証明書中に含まれるKP_dc[D]によって、まず暗号化される。その結果得られるデータを、以降では(*6)と記す。この暗号化により、ライセンスの暗号化に必要な２つの鍵、すなわちデバイス公開鍵KP_d[D]とセッション時変鍵K_s0は、少なくとも証明書に含まれていたデバイスクラス公開鍵KP_dc[S]に対する秘密鍵K_dc[S]を有するモジュールでない転送元は、送信されたデータを復号できないということになる。この事実から、仮に転送元から送信されてきた証明書が実際にライセンスを転送しようとしているモジュールとは異なったとしても、該モジュールは少なくとも認証局によって正規に認められたデバイスクラス秘密鍵を有しているものでなければ該鍵を入手することができず、それゆえ認証局によって認められていない転送元からのライセンス転送を、転送先側で拒絶することができるようになる。
【００７７】
次にデータ(*6)に対し、自身の証明書失効リストを連結し、データ(*7)を作成する（708）。作成されたデータ(*7)は、先に取り出されたチャレンジ鍵K_chで暗号化される。暗号化された該データを、以降では(*8)と記す。受信したKey Typeに、転送する際のライセンスの暗号化に、セッション時変鍵が必要と記載されていた場合は、転送元では、まずセッション時変鍵K_s1の生成を行う（710）。該鍵の生成を終えると、ライセンス転送ログにおけるセッション時変鍵のフィールドと、処理状態を記録するフィールドを更新する（711）。処理状態は、受信準備完である。
【００７８】
ライセンス転送ログの更新に続いて、生成した２つのセッション鍵、すなわちセッション固定鍵K_s0とセッション時変鍵K_s1の連結を行う（712）。連結して得られたデータを、以降では(*9)と記す。データ(*9)は、処理707同様に、転送元証明書に含まれていたデバイスクラス公開鍵KP_dc[S]で暗号化される。安全性という観点からのその意味は、前述の通りである。該鍵で暗号化されたデータは、以降では(*10)と記す。データ(*10)に、自身の証明書失効リストを連結し、データ(*11)を作成する（714）。作成されたデータ(*11)は、先に取り出されたチャレンジ鍵K_chで暗号化される（715）。暗号化された該データを、以降では(*12)と記す。以上が図６の556における処理である。
【００７９】
再び図６に戻り、上記したように、転送元から送信されるKey Typeの情報によって、データ(*8)もしくはデータ(*12)がホスト部110に送信される（557）。ホスト部110は、該データを受信後（560）、そのまま転送元へ該データを送信する（561）。転送元では、該データ(*8)あるいは(*12)を受信後、自身で以前に生成したチャレンジ鍵K_chを用いてこれを復号する（566）。また、KP_dc[S]を用いて(*6)もしくは(*10)を復号した結果は、(*5)もしくは(*9)となる（567）。処理567及び568における復号処理が終了すると、転送元は、転送先で作成されたセッション固定鍵K_s0、転送元のデバイス公開鍵KP_d[D]もしくはセッション時変鍵K_s1を取得することになる。
【００８０】
以上、転送先の証明書失効リストとデータ(*5)あるいはデータ(*9)を用いて、暗号化されたライセンス作成処理（568）を行なう。以下、処理568の詳細について図８を用いて説明する。図８において、転送先で作成されたセッション固定鍵K_s0、転送元のデバイス公開鍵KP_d[D]もしくはセッション時変鍵K_s1を取得した転送元は、転送先同様に、まずライセンス転送ログのエントリを生成する。該ログを設ける目的は、転送先と同じであり、すなわちライセンス転送が正常に完了できなかった場合のライセンス消失防止である。ここで生成したログには、送信対象ライセンスのライセンスＩＤ、セッション固定鍵K_s0、転送先のデバイス公開鍵KP_d[D]もしくはセッション時変鍵K_s1、及び処理状態をライセンス送信準備完として記録する（800）。続いて、実際に転送するライセンスを準備する（801）。磁気ディスク装置については、既に処理546において転送対象のライセンスは、ライセンス記録部333から読み出してある場合がほとんどだが、転送元がコンテンツ管理部101や配信サーバ150であった場合には、遅くともこの時点で、規定された形式を伴ったライセンスを準備する。ライセンスは、次のような形式をしている。すなわち、ライセンスID || コンテンツID || K_c || UR_s || UR_d || サービス固有情報である。ここで||は、データが連結されていることを示す。また、サービス固有情報とは、特に配信サービスなどにおいて、各サービス提供業者が独自に規定している制限情報などを含むフィールドである。本処理にて準備されたライセンスデータを、以下では(*13)と記す。
【００８１】
ライセンスの準備が終わると、転送元から送信された証明書失効リストCRL_[D]の発行時を、転送元が自身で保持している証明書失効リストの発行時と比較する。該発行時は、証明書失効リスト中に記載されているものとする（805）。その結果、自身の証明書失効リストの発行時の方が新しかった場合は820以降の処理を、転送先の証明書失効リストの方が新しかった場合は806以降の処理を行なう。
【００８２】
転送先の証明書失効リストの発行日の方が新しかった場合は、受信した転送先の証明書失効リストで、自身の証明書失効リストを上書きする（806）。続いて、対象ライセンスを転送先のデバイス公開鍵KP_d[D]で暗号化する必要があるかどうかを判断する（810）。該ライセンスにそのような指定がされていた場合は処理811へ、そうでない場合は処理816を行なう。処理811では、該ライセンス(*13)を転送先のデバイス公開鍵KP_d[D]で暗号化し、データ(*14)を生成する。その後、データ(*14)はセッション固定鍵K_s0で暗号化され、データ(*15)が生成される。同様に、処理816では、該ライセンス(*13)をセッション時変鍵K_s1で暗号化(*16)した後、セッション固定鍵K_s0で暗号化し、データ(*17)を生成する。
【００８３】
一方、処理820では、処理810と同様に、対象ライセンスを転送先のデバイス公開鍵KP_d[D]で暗号化する必要があるかどうかを判断する。当該暗号化が必要な場合は処理821へ、不要である場合は処理826を行なう。処理82１では、ライセンス(*13)を転送先のデバイス公開鍵KP_d[D]で暗号化したデータ(*18)が、処理826では該ライセンスをセッション時変鍵K_s1で暗号化したデータ(*21)が生成される。データ(*18)もしくはデータ(*21)が生成された後は、転送先の証明書失効リストを更新するために、該データに対し、自身が保持する証明書失効リストを連結する（822，827）。処理822で生成されるデータを(*19)、処理827で生成されるデータを(*22)とする。生成されたデータ(*19)あるいは(*22)は、その後セッション固定鍵K_s0で暗号化される。データ(*19)を該鍵で暗号化したデータを(*20)、同様に(*22)を暗号化したものを(*23)とする。
【００８４】
以上、(*15)、(*17)、(*20)、(*23)のいずれかのデータが生成されると、転送元はライセンス転送ログの処理状態記録フィールドを送信完とし（830）、ホスト部110へ該データを送信する。以上が図６の568における処理である。
【００８５】
再び図６において、ホスト部110は、前記4種の暗号化されたライセンスのいずれかを受信すると（570）、それをそのまま転送先に送信する（571）。転送先では、ホスト部110から送信された(*15)、(*17)、(*20)、(*23)のいずれかのデータを受信すると（575）、復号後得られたライセンスをライセンス記録部333に記録する（576）。
【００８６】
以下、処理576の詳細について図９を用いて説明する。通常、磁気ディスク装置に対して何らかのデータの書き込み処理を行なわせる場合は、書き込み命令をホスト部（この場合特に外部記憶装置インタフェース105あるいは106）が発行する際、書き込み先のアドレス及び転送するデータの長さを、同時に指定する。そこで、図９において、転送先である磁気ディスク装置は、指定されたライセンスの書き込み先アドレスと転送する暗号化された状態のライセンスデータの長さを、処理701において生成したライセンス転送ログの一つのフィールドに記録する（900）。ライセンス転送ログへの記録が終了すると、受信したデータをセッション固定鍵K_s0で復号する（901）。復号結果は、受信したライセンスがどの鍵で暗号化されているかによって、４つの処理に分かれる（902）。ライセンスが、自身のデバイス公開鍵KP_d[D]で暗号化されていた場合は、処理905もしくは処理907が行なわれる。両者のうち、処理907は、セッション固定鍵K_s0で復号した結果に、転送元の証明書失効リストが含まれていた場合のものである。また、ライセンスがセッション時変鍵で暗号化されていた場合は、処理906もしくは処理908が行なわれる。処理908は、処理907同様に、セッション固定鍵K_s0で復号した結果に、転送元の証明書失効リストが含まれていた場合のものである。処理907及び処理908は、転送元の証明書失効リスト発行時が、転送先の証明書失効リスト発行時より新しいものであったために送られてきたものであるため、自身のリストを、受信した該リストで上書きする処理が915で行なわれる。それ以外については、905及び906の処理と同じであり、すなわち必要な鍵を用いて暗号化されたライセンスを復号する処理を行なう。処理905、906、907、908での復号の結果得られるデータは、全てライセンスデータ本体(*13)となる。
【００８７】
転送先では、ライセンスデータの本体を終えると、該ライセンスの構造を確認する。その結果、ライセンスＩＤやコンテンツIDなどが正しい形で含まれていれば、続いて911以降の処理を行う。もし、データの構造に誤りがあった場合には、ホスト部110に対し、暗号化されたライセンスの再送要求を送信する（915）。データ構造に問題がなかった場合は、ライセンス転送ログの処理状態フィールドを受信完了にし（911）、ライセンス記録部333へ実際にライセンスの書き込みを行い（912）、その後でライセンス転送ログの処理状態フィールドを書き込み完了（913）に変更する。以上が図６の576における処理である。
【００８８】
再び図６において、ライセンス記録部333へのライセンスの書き込みが正常に終了すると、転送先はホスト部110からの要求受信待ち状態になる（577）。ここで、ホスト部110が転送先磁気ディスク装置に書き込み状態確認要求を送信すると（580）、転送先の磁気ディスク装置は、処理が正常に終了したことをホスト部に通知する（587）。すると、ホスト部は、磁気ディスク装置に対して、暗号化されたコンテンツの読み出し要求（590）や、記録されたライセンスのライセンス展開部102への転送要求（592）を送信する。本要求に基づいて、磁気ディスク装置125あるいは126からコンテンツデコーダ部111への暗号化コンテンツ及びライセンスが送信され、必要な復号処理が行なわれた後、ディスプレイ121上に動画像が表示される。
【００８９】
目的のコンテンツの再生に続いて、次のコンテンツの再生を利用者から要求された場合、処理595が行なわれる。処理595は、図５から図９を用いて説明した流れを基本的に踏襲するが、処理を軽くするために、いくつか相違点もある。以下、処理595の詳細について図５、図６、及び図１０から図１３を用いて説明する。
【００９０】
１つのライセンスの転送が終了した後に別のライセンスを転送する場合は、上記同様に、まず転送先に目的のライセンスが存在するか否かを検索する。この部分は、処理502から処理508にかけてである。処理506における判定の結果、対象ライセンスが転送先に存在しなかった場合は、転送先はライセンスＩＤ受信待ち538へ状態遷移する。図には記していないが、このとき転送元は、ホスト部110に対し、自身は目的のライセンスを保持していない旨の通知を行なう。転送元と転送先の認証処理は既に終了しているため、処理507から処理537については省略される。ホスト部110は、転送先から目的のライセンスがないことを通知されると、送信対象ライセンスのライセンスＩＤ準備を転送元に要求する（545）。続いて、処理555において、転送元が受信対象ライセンスのライセンスＩＤ及びKey Typeを受信するまでは、既に記載した通りである。以降については、図１０から図１３を用いて説明する。
【００９１】
図５の処理555において転送先が上記データを受信すると（555）、図１０の処理1056に進む。この処理1056の詳細について、図１１を用いて説明する。図１１において、転送先は、データ(*4)を受信すると、初めにセッション時変鍵K_s2の生成を行い（1100）、続いてライセンス転送ログのエントリを生成する。該エントリには、転送対象ライセンスを特定するライセンスＩＤ、生成したセッション時変鍵K_s2を、また処理状態を受信準備完として、これらの情報を記録する。続いて、転送元より送信されたKey Typeに基づいて、ライセンスの暗号化をセッション固定鍵K_s0と転送先のデバイス公開鍵KP_d[D]のいずれで行なうかを判定する（1102）。この判定の結果、ライセンスの暗号化に転送元のデバイス公開鍵KP_d[D]が必要である旨の記載があった場合は、セッション時変鍵K_s2と転送先のデバイス公開鍵KP_d[D]を連結した後で（1103）、該データをセッション固定鍵K_s0で暗号化する（1104）。ここで得られたデータを(*25)と記す。
【００９２】
一方、1102においてライセンスの暗号化に転送先のデバイス公開鍵KP_d[D]が必要でないと判定された場合は、生成されたセッション時変鍵K_s2のみセッション固定鍵K_s0で暗号化する（1105）。ここで得られたデータを(*26)と記す。
【００９３】
再び図１０において、上記で生成されたデータ（*25）もしくはデータ(*26)がホスト部110へ送信される（1057）。ホスト部110では、受信したデータをそのまま転送元へ送信する（1060，1061）。転送元は、受信したデータ（*25）もしくは(*26)をセッション固定鍵K_s0で復号し、データ(*24)もしくはセッション時変鍵K_s2を得る（1065，1066）。
【００９４】
続いて行われる暗号化ライセンス生成処理1067の詳細について図１２を用いて以下に説明する。図１２において、転送元では、ライセンス転送ログエントリが生成される。このとき記録されるのは、転送対象ライセンスのライセンスＩＤ、処理1066において復号演算の際に用いられたセッション固定鍵K_s0、復号処理1066の結果得られたセッション時変鍵K_s2、及び該復号結果に含まれている場合のみであるが転送元のデバイス公開鍵KP_d[D]、送信準備完としての処理状態である（1200）。続いて、実際に転送するライセンスを準備する（1201）。ライセンスの準備処理は、処理801と同義である。ゆえに、本処理で準備されたライセンスデータは(*13)と同じである。
【００９５】
セッション固定鍵K_s0が共有化される前は、ここで転送先から送信された証明書失効リストと、自身が保持する証明書失効リストの発行時比較を行なうが、セッション時変鍵K_snの共有化過程においては、本処理は行なわれない。そこで、受信したデータ（(*25)あるいは(*26)）に転送先のデバイス公開鍵KP_d[D]が含まれているか否か、即ち対象ライセンスを転送先に送信するに当たり、該公開鍵での暗号化が必要か否かを処理1210で判定し、必要であれば処理1211を、不要であれば処理1216を行なう。処理1211から処理1212では、転送対象ライセンスを転送先のデバイス公開鍵KP_d[D]で暗号化した後（処理1211，得られたデータを(*27)とする）、デバイス時変鍵で暗号化する（1212）。この結果得られたデータを(*28)とする。一方、処理1216から処理1217では、当該ライセンスをセッション時変鍵K_s2で暗号化した後（処理1216，得られたデータを(*29)とする）、セッション固定鍵K_s0 で暗号化する（1217）。この結果得られたデータを(*30)とする。
【００９６】
以上、(*28)あるいは(*30)いずれかのデータが生成されると、転送元はライセンス転送ログの処理状態記録フィールドを送信完とし（1230）、図１０の1068に進む。
【００９７】
再び図１０において、転送元は、上記で生成されたデータ(*28)あるいは(*30)をホスト部110に送信する（1068）。ホスト部は、前記2種の暗号化されたライセンスのいずれかを受信すると（1070）、それをそのまま転送先に送信する（1071）。転送先では、ホスト部から送信された(*28)あるいは(*30)のいずれかのデータを受信すると（1075）、これを処理1076において、復号後にライセンス記録部333に記録する。以下、処理1076の詳細について図１３を用いて説明する。
【００９８】
図１３において、図９同様に転送先である磁気ディスク装置は、指定されたライセンスの書き込み先アドレスと転送する暗号化された状態のライセンスデータの長さを、処理1101において生成したライセンス転送ログの１つのフィールドに記録する（1300）。ライセンス転送ログへの記録が終了すると、受信した暗号化データを作成する際に用いられた鍵データの種類によって（1302）、セッション時変鍵K_s2（1305，復号結果得られるデータは(*27)）もしくはセッション固定鍵K_s0（1307，復号結果得られるデータは(*29)）で復号する。セッション時変鍵で復号された結果は、続いて転送先デバイス秘密鍵K_d[D]（1306）で、セッション固定鍵K_s0で復号された結果は、続いてセッション時変鍵K_s2（1308）で復号される。これらの復号処理で得られるデータは、ライセンスデータ本体(*13)である。
【００９９】
ライセンスデータの本体を終えると、転送先は該ライセンスの構造を確認する。その結果、ライセンスＩＤやコンテンツIDなどが正しい形で含まれていれば、続いて1311以降の処理を行う。もし、データの構造に誤りがあった場合には、ホスト部110に対し、暗号化されたライセンスの再送要求を送信する（1315）。データ構造に問題がなかった場合は、ライセンス転送ログの処理状態フィールドを受信完了にし（1311）、ライセンス記録部333へ実際にライセンスの書き込みを行い（1312）、その後でライセンス転送ログの処理状態フィールドを書き込み完了（1313）に変更する。これで図１０の1076における処理は完了する。
【０１００】
以上で、図１０の全ての処理、すなわち図６の576における処理が完了するので、続いて577以降の処理が行なわれることになる。
【０１０１】
[第２実施形態]
本発明のデータ転送システムの第２実施形態は、第１実施形態と同様の記録再生装置等であり、その構成については図１〜図３に示すものと同様である。しかしながら、本実施形態のデータ転送システムは、可搬型磁気ディスク装置のライセンス管理部の構成及び動作について第１実施形態と異なる特徴を有するものである。以下では、ライセンス転送管理部の内部構成や、転送元、ホスト部及び転送先の間で送受信されるデータ及びその手順について説明する。
【０１０２】
可搬型磁気ディスク装置のライセンス管理部の構成
図１４は、本実施形態のデータ転送システムの可搬型磁気ディスク装置が有するライセンス転送管理部の内部構成を詳細に示す図である。図１４において、ライセンス転送管理部の中には、静的な記憶領域1430が設けられている。この中には、認証局によって電子署名が与えられた本デバイスについての証明書{KP_dc}KP_CA 401、証明書1401の電子署名部を復号するための認証局によって発行された公開鍵KP_CA（認証局公開鍵，400）、本デバイスに固有の公開鍵KP_d（デバイス公開鍵，1412）と、該鍵KP_d（1412）で暗号化されたデータを復号するための秘密鍵K_d（デバイス秘密鍵，412）が埋め込まれている。一方、書き換え可能な情報として、失効した証明書のリスト（証明書失効リスト）415と、ライセンス記録部333から読み出したライセンスを一時的に蓄積しておく領域431が設けられている。
【０１０３】
本実施形態のデータ転送システムにおいて、記録再生装置、ライセンス、システムの鍵及びデータの構成については、第１実施形態について説明した通りである。ただし、セッション鍵については、全ての鍵が個々のライセンス転送に際して常に更新されてゆくので、全てのnについてK_snをセッション時変鍵と呼ぶ。代わりに、転送元において第１実施形態で記したセッション固定鍵と同じような役割を果たすセッション外殻鍵K_soが生成され、利用される。該鍵が生成されるモジュール及び手続き上の位置については、後に詳しく説明する。
【０１０４】
ライセンス書き込み処理時の動作
ライセンス転送管理部への入出力は、バス1470を介して行なわれる。ライセンス記録部333にライセンスを書き込む場合は、図１４において、主にバス1470より下側にあるモジュールが使用される。以下では、それらについて順次説明する。
【０１０５】
モジュール1411は、自身が転送先へ証明書の形で送信したデバイスクラス公開鍵KP_dc[D]を鍵として暗号化されたデータを、対応するデバイスクラス秘密鍵K_dc[D]を用いて復号するためのものである。モジュール411は、Dec /w K_dc[D]と記載してあるが、この表記の意味は、第１実施形態に記載した通りである。添え字の[S]及び[D]、転送元と転送先の意味についても第１実施形態同様である。
【０１０６】
モジュール1402は、転送元から送信されてきたデバイスクラス公開鍵KP_dc[S]を含む証明書の検証を行なうものである。電子署名部の検証には、認証局公開鍵KP_CA（1400）が用いられる。デバイスクラス公開鍵KP_dc[S]の正当性が認められると、該鍵はモジュール1413へ送られる。
【０１０７】
モジュール1413は、モジュール1420で生成されたセッション時変鍵K_s0と自身に埋めこまれたデバイス公開鍵KP_dを連結した後、該データをモジュール1402から送られた転送元のデバイスクラス公開鍵KP_dc[S]を用いて暗号化するモジュールである。K_s0は、モジュール1420で生成される。転送元のデバイスクラス公開鍵KP_dc[S]による暗号化が行なわれたデータは、モジュール1414へ送られる。尚、本モジュールによる暗号化は、一度転送元と転送先の間でセッション外殻鍵K_soの共有が完了した後は、省略される。
【０１０８】
モジュール1414は、モジュール1411で復号後出力されたチャレンジ鍵K_chを用いて、モジュール1413から出力されたデータを暗号化するものである。この暗号化は、自身に記録されている証明書失効リストをモジュール413から出力されたデータに連結した後、行なわれる。暗号化されたデータは、バス1470及びインタフェース320を介して、転送元に送られる。
【０１０９】
モジュール1423には、E(K_so, E(K_sn, L)||CRL_[S]) || E（KP_d[D], K_so）という形のデータが、バス1470より入力される。モジュール1421は、モジュール1423で分離されたデータのうち、後半部のデータ、つまり自身のデバイス公開鍵KP_d[D]で暗号化されたセッション外殻鍵K_soを復号するモジュールである。復号後得られたセッション外殻鍵K_soは、モジュール1422へ入力される。モジュール1422では、上記該データのうちの前半部、つまりE(K_so, E(K_sn, L) || CRL_[S])を、K_soを用いて復号するものである。CRL_[S]は、転送元の証明書失効リストの発行時が、転送先の証明書失効リストの発行時より新しかった場合に送信されてくるものである。セッション外殻鍵K_soでの復号の結果、転送元の証明書失効リストが含まれていた場合は、自身の証明書失効リストを、該リストで上書きする。一方、モジュール1422で復号された証明書失効リスト以外のデータは、モジュール1424へ送信され、ここでセッション時変鍵K_s0を用いて復号される。本復号により、転送元から送信されたライセンスが取り出される。取り出されたライセンスは、ライセンス転送管理部321内のライセンス一時記録蓄積部1431に蓄積された後、ライセンス記録部333へ記録される。
【０１１０】
ライセンス読み出し処理時の動作
ライセンス記録部333からライセンスを読み出す場合は、図１４において、主にバス470より上側にあるモジュールが使用される。以下では、それらについて順次説明する。
【０１１１】
モジュール1441は、転送先から証明書の形で送信されてきたデバイスクラス公開鍵KP_dc[D]を鍵として、モジュール440で生成されたチャレンジ鍵K_chを暗号化する機能をもつものである。暗号化されたデータは、バス1470及びインタフェース320を介して、転送先に送信される。
【０１１２】
モジュール1440で生成されたチャレンジ鍵K_chは、モジュール1450にも同時に入力される。モジュール1450では、受け取ったチャレンジ鍵K_chを用いて、バス1470から入力されたデータを復号する。ただし、バス1470から送られたデータは、モジュール1450か、モジュールか1452のいずれかに入力される。詳細は図１５以降において説明するが、簡単に述べれば、転送元と転送先の間で相互認証が行なわれた後、セッション外殻鍵K_soの共有がまだ両者の間で行われていない場合はモジュール1450に入力され、該鍵K_soの共有が済んでいればモジュール1452へ入力されるということである。
【０１１３】
モジュール1450は、チャレンジ鍵K_chを用いてバス1470から入力されたデータを復号した後、該データをモジュール1451に入力する。モジュール1451は、入力された該データを、自身のデバイスクラス秘密鍵1410で復号する。ただし、モジュール1450から出力されるデータは、転送先において常に自身のデバイスクラス公開鍵で暗号化されているわけではない。転送先で暗号化されるのは、転送元と転送先の間でセッション外殻鍵K_soを共有する以前だけである。セッション外殻鍵K_soを共有化した後は、転送先での転送元のデバイスクラス公開鍵による暗号化は行なわれないため、モジュール1451における処理は省略される。モジュール1451で復号後得られたデータは、セッション時変鍵K_snについてはモジュール1454に、転送先のデバイス公開鍵KP_d[D]についてはモジュール1461に送信される。
【０１１４】
モジュール1454は、入力されたセッション時変鍵K_sn を用いて、ライセンス1432を暗号化するモジュールである。暗号化されたライセンスは、モジュール1455の出力はモジュール462に入力され、そこでセッション外殻鍵K_soを用いてさらに暗号化される。このとき、該暗号化に先立って、まず転送先から送られてきた転送先の証明書失効リストに記載されている該証明書の発行時情報を、自身の発行日情報と、モジュール1453において比較する処理が行なわれる。転送先の証明書失効リストは、モジュール1450の出力結果（チャレンジ鍵の復号結果）に含まれている。比較の結果、自身の証明書失効リスト1415の発行時の方が古かった場合は、転送先の証明書失効リストで自身の証明書失効リスト1415を上書きする。逆に、転送先の証明書失効リストの発行時の方が古かった場合、自身の証明書失効リスト1415をモジュール1461へ送信する。もし、転送先から証明書失効リストが送信されてこなかった場合は、転送元からの証明書失効リストの送信は行なわれない。
【０１１５】
ところで、一度セッション外殻鍵K_soが転送元と転送先の間で共有されると、バス1470に送られてきたデータは、上述のようにモジュール1452に入力される。モジュール1452は、入力されたデータをセッション外殻鍵K_soで復号するモジュールである。モジュール1452の出力は、常にセッション時変鍵K_sn（ただし、n ? 1）であり、得られた鍵データは、モジュール1454に送信される。モジュール1454での処理は、上述の通りである。
【０１１６】
モジュール1461は、セッション外殻鍵K_soの共有のために用いられる。セッション外殻鍵K_soは、チャレンジ鍵K_ch同様に共通鍵生成部1440で生成された後、モジュール1452とモジュール1461に送信される。モジュール1461では、転送先から送信されたデバイス公開鍵KP_d[D]でセッション外殻鍵K_soが暗号化される。セッション時変鍵K_snとセッション外殻鍵K_soで暗号化されたライセンスがモジュール1455から出力されると、これにモジュール1461の出力が連結され、バス1470へ送信される。
【０１１７】
配信サーバ、コンテンツ管理部の構成と動作
配信サーバ150及びコンテンツ管理部101は、ライセンスを生成及び発行する機能をもつ。従って、これらは上述のライセンス書き込み時の動作で必要なモジュールを内部に持つ。ただし、自身でライセンスを生成するので、ライセンス一時記録蓄積部1431やライセンス記録部は必ずしも必要ではない。その代わりに、これらの部位にライセンスの生成行なう機能を持つライセンス生成部が置かれる。第１実施形態に記載した内容と、同義である。
【０１１８】
コンテンツデコーダ部の構成と動作
コンテンツデコーダ部111は、コンテンツを復号し、それをディスプレイ121上に表示する機能を持つ。暗号化されたコンテンツを復号し、それをさらに動画像データストリームに構成するのは、コンテンツ復号部103の機能である。コンテンツ復号部103に対し暗号化されたコンテンツを復号するための鍵を送信するのは、ライセンス展開部102である。ライセンス展開部102は、所定の手順に従って、暗号化されたライセンスを、可搬型磁気ディスク装置125や126、コンテンツ管理部101、配信サーバ150などから受信する。従って、ライセンス展開部は、上述のライセンス読み込み時の動作で必要なモジュールを内部に持つ。転送元から送信されたライセンスは、ライセンス一時記録蓄積部1431に蓄積された後、コンテンツ復号部103に送信される。このとき転送元から送信されるライセンスは、ライセンス全体であっても良いし、暗号化されたコンテンツを復号するのに必要な最低限の情報、すなわちコンテンツ鍵及び実際にコンテンツデータの復号を行うかどうかを制御するためのUR_dだけであっても良い。この場合、ホスト部は、復号対象のコンテンツのコンテンツIDと、コンテンツデコーダ部111に送信されたライセンスが対応するコンテンツのコンテンツID及び自身のライセンスＩＤについては、把握しているものとする。実施例1に記載した内容と同義である。
【０１１９】
転送元−ホスト部−転送先の間での処理の流れ
以下では、図１５から図１８を利用して、転送元から転送先へライセンスを転送する場合に、転送元と途中で処理を制御するホスト装置と転送先との間で行われる処理について、説明する。以下では、ライセンス及びコンテンツの転送先を磁気ディスク装置とし、ライセンスの転送元はコンテンツ管理部101とするが、これに限るものではない。
【０１２０】
図１５において、転送先におけるライセンスＩＤ待ち（1538）に至るまでの処理は、図５における500から537までの処理と同様に行われるものとして、図示を省略している。図５における537の処理が行われた後、転送先が対象ライセンスのライセンスＩＤ受信待ち状態に入ると（1538）、ホスト部110は、これと並列して、転送元に対してライセンスＩＤの生成もしくはライセンス記録部333からの読み出し要求を出す（1545）。転送元では、該要求に基づいて、目的のライセンスの生成もしくは読み出しを行う（1546）。該処理を終えると、転送元は、準備したライセンスＩＤデータをホスト部110へ送信する（1548）。ホスト部110は、該ライセンスＩＤを受信（1550）すると、そのまま転送先へ送信する（1551）。転送先は、該ライセンスＩＤを受信（1555）すると、以前に受信済みのチャレンジ鍵K_chで暗号化された、あるデータを作成する（1556）。以下、この処理1556の詳細について図１６を用いて説明する。
【０１２１】
図１６において、転送先では、該ライセンスＩＤを受信すると、まずセッション時変鍵K_snの生成を行う（1600）。尚、転送元と転送先の間で過去にセッション外殻鍵K_soの共有が行なわれていない場合は、n = 0とする。その後、ライセンスの転送処理を行なうたびにセッション時変鍵を生成した場合、nの値は1ずつ増えてゆくものとする。
【０１２２】
続いて、ライセンスの転送を正常に完了できなかった場合に、当該ライセンスが転送元及び転送先のいずれからも消失してしまうことを防ぐための転送ログのエントリを生成する。この時点で該エントリに記録するのは、転送対象ライセンスを特定するライセンスＩＤ、生成したセッション時変鍵K_sn、受信準備完としての処理状態である（1601）。
【０１２３】
転送ログの記録を終えると、転送元と転送先の間でセッション外殻鍵K_soの共有が過去に行なわれているかどうかが判定される（1605）。セッション外殻鍵の共有の仕方については、後述する。セッション外殻鍵K_soが共有されていない時点でセッション時変鍵を生成したということは、セッション時変鍵の生成番号nが、0あるということと同義である。もしセッション外殻鍵K_soの共有が行なわれていない場合は、先に生成したセッション時変鍵K_s0とデバイス公開鍵KP_d[D]を連結したデータ(*5)を生成する（1606）。該データ(*5)は、転送元から送信された証明書中に含まれるKP_dc[D]によって、まず暗号化される（1607）。その結果得られるデータは図７の処理707で得られるデータと同じであるので、(*6)である。該暗号化により、ライセンスの暗号化に必要な２つの鍵、すなわちデバイス公開鍵KP_d[D]とセッション時変鍵K_s0は、少なくとも証明書に含まれていたデバイスクラス公開鍵KP_dc[S]に対する秘密鍵K_dc[S]を有するモジュールでない転送元は、送信されたデータを復号できないということになる。この事実から、仮に転送元から送信されてきた証明書が実際にライセンスを転送しようとしているモジュールとは異なったとしても、該モジュールは少なくとも認証局によって正規に認められたデバイスクラス秘密鍵を有しているものでなければ該鍵を入手することができず、それゆえ認証局によって認められていない転送元からのライセンス転送を、転送先側で拒絶することができるようになる。
【０１２４】
次にデータ(*6)に対し、自身の証明書失効リストを連結し、データを作成する（1608）。本処理は図７の708と同じなので、作成されるデータは(*7)である。データ(*7)は、先に復号されたチャレンジ鍵K_chで暗号化される。チャレンジ鍵K_chで暗号化されたデータは、(*8)である（図７の処理709と同じ）。
【０１２５】
一方、セッション外殻鍵K_soが過去に転送元と転送先の間で共有されていた場合は、処理1600において生成されたセッション時変鍵を、まずセッション外殻鍵K_soで暗号化する（1610）。この結果得られたデータを(*31)とする。
【０１２６】
再び図１５において、上記で生成されたデータ (*8)もしくはデータ(*31)がホスト部110に送信される（1557）。ホスト部110は、該データを受信後（1560）、そのまま転送元へ該データを送信する（1561）。転送元では、該データ(*8)あるいは(*31)を受信後（1565）、自身で以前に生成したチャレンジ鍵K_chもしくはセッション外殻鍵K_soを用いてこれを復号した後、暗号化されたライセンスを生成する（1567）。以下、この処理1567の詳細について図１７を用いて説明する。
【０１２７】
図１７において、まず、セッション外殻鍵が過去に生成されたか否かが、まず調べられる（1700）。該鍵が過去に生成されていない場合、受信したデータはチャレンジ鍵で暗号化されているはずなので、該鍵で復号する（1701）。復号結果として得られるデータは、(*7)となる。データ(*7)には、転送先の証明書失効リストが含まれるが、それ以外の部分は、自身のデバイスクラス公開鍵KP_dc[S]で暗号化されているデータである。自身のデバイスクラス公開鍵KP_dc[S]で暗号化されているデータについては、自身のデバイスクラス秘密鍵K_dc[S]で復号化する（1702）。復号結果は、(*5)である。
【０１２８】
該復号処理を終えると、セッション外殻鍵K_soの生成（1710）、続いてライセンス転送ログのエントリの生成を行なう（1711）。ここで生成したログには、送信対象ライセンスのライセンスＩＤ、セッション外殻鍵K_so、セッション時変鍵K_s0、転送先のデバイス公開鍵KP_d[D]、送信準備完として処理状態を記録する（1711）。
【０１２９】
ライセンス転送ログへの記録が終わると、実際に転送するライセンスを準備する（1712）。準備されるライセンスデータは、(*13)である（処理801と同じ）。ライセンスデータ(*13)は、転送先より送信されたセッション時変鍵K_s0によって暗号化される（1713）。この結果得られるデータを(*33)とする。
【０１３０】
ライセンス転送ログエントリの生成及び送信するライセンスの準備と並行して、転送先デバイス公開鍵KP_d[D]による生成したセッション外殻鍵K_soの暗号化が行なわれる（1710）。この結果得られるデータを(*32)とする。
【０１３１】
ライセンスの準備が終わると、転送元から送信された証明書失効リストCRL_[D]の発行時を、転送元が自身で保持している証明書失効リストの発行時と比較する。該発行時は、証明書失効リスト中に記載されているものとする（1714）。その結果、自身の証明書失効リストの発行時の方が新しかった場合は1720以降の処理を、転送先の証明書失効リストの方が新しかった場合は1725以降の処理を行なう。
【０１３２】
処理1720では、まず自身の証明書失効リストを、転送先の証明書失効リストで上書きする。続いて、セッション時変鍵K_s0にて暗号化されたライセンス(*33)を、先に生成したセッション外殻鍵K_soで暗号化し、データ(*34)を生成する（1721）。該データが生成されると、転送先でライセンスの復号ができるように、データ(*32)を該データ（*34）に連結し、データ(*35)を生成する（1722）。
【０１３３】
一方、処理1725では、転送先の証明書失効リストを更新するために、セッション時変鍵K_s0にて暗号化されたライセンス(*33)に、自身が保持する証明書失効リストを連結する。ここで生成されるデータを(*36)とする。生成されたデータ(*36)は、処理1721同様に、セッション外殻鍵K_soで暗号化された後（1726，生成されるデータは(*37)）、処理1722同様に、データ(*32)が連結される（1727，生成されるデータは(*38)）。
【０１３４】
また、セッション外殻鍵K_soを過去に生成済みであった場合は、受信したデータは該鍵で暗号化されているので、該鍵を用いて復号する（1703）。復号結果として得られるデータは、転送先にて新たに生成されたセッション時変鍵K_sn (n ? 1)である。該処理に続き、処理1711同様ライセンス転送ログエントリの生成及び記録（1730）、ライセンスデータの準備（1731）、セッション時変鍵K_sn (n ? 1)による準備されたライセンスの暗号化（1732）、セッション時変鍵K_sn (n ? 1)により暗号化された該ライセンスのセッション外殻鍵K_soによる二重暗号化（1733）が行なわれる。尚、処理1730においてライセンス転送ログに記録されるデータは、転送対象ライセンスを特定するためのライセンスＩＤ、セッション外殻鍵K_so、セッション時変鍵K_sn (n ? 1)、送信準備完としての処理状態である。また、セッション時変鍵K_sn (n ? 1)によって暗号化されたデータを(*39)、該データをセッション外殻鍵K_soにより二重暗号化したデータを(*40)と記す。
【０１３５】
以上、(*35)、(*38)、(*40)のいずれかのデータが生成されると、転送元はライセンス転送ログの処理状態記録フィールドを送信完とし（1740）、図１５の1568に進む。
【０１３６】
再び図１５において、転送元は、上記で生成されたデータ(*35)、(*38)、(*40)のいずれかをホスト部110に送信する（1568）。ホスト部110は、前記3種の暗号化されたライセンスのいずれかを受信すると（1570）、それをそのまま転送先へ送信する（1571）。転送先では、ホスト部110から送信された(*35)、(*38)、(*40)のいずれかのデータを受信すると（1575）これを処理1576において、復号後得られたライセンスをライセンス記録部333に記録する。以下、この処理1576の詳細について図１８を用いて説明する。
【０１３７】
図１８において、転送先では、まず、ホスト部（この場合特に外部記憶装置インタフェース105あるいは106）がライセンスの書き込み先として指定したアドレス及び転送するデータの長さを、処理1601において生成したライセンス転送ログの一つのフィールドに記録する（1800）。次に、セッション外殻鍵K_soが共有されているか否かを判定し（1801）、該鍵が未共有の場合は1805以降の処理を、既に共有されている場合は1810以降の処理を行なう。
【０１３８】
処理1805では、受信したデータの一部(*32)を、自身のデバイス秘密鍵で復号K_d[D]で復号する。本処理によってセッション外殻鍵K_soが得られるので、該鍵を用いて、受信したデータの残りの部分、すなわち(*34)もしくは(*37)を復号する。該データが(*37)であった場合は、自身が保持する証明書失効リストより新しい転送元の証明書失効リストが含まれているので、該リストで自身の証明書失効リストを上書きする（1808）。証明書失効リストの更新処理を終えると、セッション時変鍵K_s0で暗号化されたライセンスデータを復号し（1809）、ライセンスデータ(*13)を得る。
【０１３９】
一方で、セッション外殻鍵K_soを既に共有済みであった場合は、受信したデータは(*40)であるので、直接該鍵で復号し、データ(*39)を得る。続いて、データ(*39)をセッション時変鍵K_sn (n ? 1)で復号し、ライセンスデータ本体(*13)を得る。
【０１４０】
転送先では、ライセンスデータの平文化を終えると、該ライセンスの構造を確認する。その結果、ライセンスＩＤやコンテンツIDなどが正しい形で含まれていれば、続いて1816以降の処理を行う。もし、データの構造に誤りがあった場合には、ホスト部110に対し、暗号化されたライセンスの再送要求を送信する（1820）。データ構造に問題がなかった場合は、ライセンス転送ログの処理状態フィールドを受信完了にし（1816）、ライセンス記録部333へ実際にライセンスの書き込みを行い（1817）、その後でライセンス転送ログの処理状態フィールドを書き込み完了（1819）に変更する。これで図１５の1576における処理は完了する。
【０１４１】
以上で、図１５の全ての処理、すなわち図６の576における処理が完了するので、続いて577以降の処理が行なわれることになる。
【０１４２】
尚、本発明の第１実施形態及び第２実施形態のデータ転送システムにおいて用いられるライセンスのデータ構造の例を図１９に示している。
【０１４３】
[他の実施形態]
本発明のデータ転送システム及びデータ転送方法の他の実施形態について、以下に例示的に列挙する。
【０１４４】
（１）暗号化されたコンテンツデータ及び、該データを復号するための鍵データと、復号が許可される条件（これらをまとめたものをライセンスと呼ぶ）を、一方のモジュールから他方のモジュールへ転送する方法において、まず初めに、転送先から、転送先のデバイスクラス公開鍵を含む証明書を転送元に送信し、転送元では受信した証明書の正当性を検証し、検証の結果受信した証明書の正当性が確認されると、自身でチャレンジ鍵を生成し、該鍵を受信したデバイスクラス公開鍵を用いて暗号化し、生成された暗号化データに自身のデバイスクラス公開鍵を含む証明書を連結し転送先に送信し、該データを受信した転送先は、自身のデバイスクラス秘密鍵を用いて、該データを復号し、チャレンジ鍵を取得し、転送元は、ライセンスを特定するためのライセンスＩＤを、ライセンスを暗号化するために用いる鍵（これを鍵タイプと呼ぶ）に連結したものを送信し、転送先では、受信した鍵タイプに応じて、第１のセッション鍵と第２のセッション鍵もしくは第１のセッション鍵のみを生成した後、鍵タイプに応じて、第１のセッション鍵と転送先が保持するデバイス公開鍵もしくは第２のセッション鍵とを連結した後に、受信した転送元のデバイスクラス公開鍵で暗号化し、生成された２つの暗号化データのうちいずれかと自身の証明書失効リストを連結した後、チャレンジ鍵で暗号化し、転送元に送信し、転送元では、転送先から送信されたデータを受けて、該データをチャレンジ鍵でまず復号し、復号した結果得られるデータのうち、転送先の証明書失効リストについて、該リスト中に記載されている該リストの発行情報と、自身が保持する証明書失効リスト中に記載されている自身の該リストの発行日情報を比較し、自身の証明書失効リストの発行日の方が古かった場合は、受信した転送先の証明書失効リストで自身の証明書失効リストを上書きし、該処理と並行して、復号した結果から転送先の証明書失効リストを除いたデータを、さらに自身のデバイスクラス秘密鍵で復号し、連結された第１のセッション鍵と第２のセッション鍵もしくは第１のセッション鍵と転送先のデバイス公開鍵を取り出し、得られた該鍵を利用して、ライセンスを第２のセッション鍵もしくは転送先のデバイス公開鍵で暗号化し、該処理によって得られたデータに、該証明書失効リストの発行日比較において、自身の証明書失効リストの発行日情報の方が新しかった場合のみ、作成された該暗号化データに自身の証明書失効リストを連結し、得られた該データを第１のセッション鍵で暗号化し、転送先に送信し、転送先は、受信した該データをそれぞれ対応する鍵で復号し、自身の耐タンパ性を有する領域にライセンスを記録する方法。
【０１４５】
（２）上記（１）のデータ転送方法において、一度転送元と転送先の間で第１のセッション鍵が共有された後、それが両者の間で保持されている状態にあるときにライセンス転送を行う場合は、転送対象のライセンスが、転送先のデバイス公開鍵による暗号化を要求しない場合に限り、転送先は新たなセッション鍵を生成すると、該鍵を第１のセッション鍵で暗号化した後転送元に送信し、転送元は受信したデータを第１のセッション鍵で復号し、新たなセッション鍵を取り出し、取り出した該鍵を用いて転送対象のライセンスを暗号化した後、第１のセッション鍵で暗号化し、転送先に送信する方法。
【０１４６】
（３）上記（１）のデータ転送方法において、個々のライセンスの中の一つのフィールドとして、鍵タイプ1903が記載されているような形式によって、個々のライセンスを送信する際に求められる暗復号の方法を規定することを特徴とする、転送方法。
【０１４７】
（４）暗号化されたコンテンツデータ及び、該データを復号するための鍵データと、復号が許可される条件（これらをまとめたものをライセンスと呼ぶ）を、一方のモジュールから他方のモジュールへ転送する方法において、まず初めに、転送先から、転送先のデバイスクラス公開鍵を含む証明書を転送元に送信し、転送元では受信した証明書の正当性を検証し、検証の結果受信した証明書の正当性が確認されると、自身で一時的な共通鍵暗号化のためのチャレンジ鍵を生成し、該鍵を受信したデバイスクラス公開鍵を用いて暗号化し、生成された暗号化データに自身のデバイスクラス公開鍵を含む証明書を連結し転送先に送信し、該データを受信した転送先は、自身のデバイスクラス秘密鍵を用いて、該データを復号し、チャレンジ鍵を取得し、続いて、ライセンスを特定するためのライセンスＩＤを送信し、転送先では、第１のセッション鍵を生成し、生成した第１のセッション鍵と転送先が保持するデバイス公開鍵と連結した後受信した転送元のデバイスクラス公開鍵で暗号化し、生成された暗号化データに証明書失効リストを連結した後、チャレンジ鍵で暗号化し転送元に送信し、転送元では、転送先から送信されたデータを受けて、該データをチャレンジ鍵でまず復号し、復号した結果得られるデータのうち、転送先の証明書失効リストについて、該リスト中に記載されている該リストの発行情報と、自身が保持する証明書失効リスト中に記載されている自身の該リストの発行日情報を比較し、自身の証明書失効リストの発行日の方が古かった場合は、受信した転送先の証明書失効リストで自身の証明書失効リストを上書きし、該処理と並行して、復号した結果から転送先の証明書失効リストを除いたデータを、さらに自身のデバイスクラス秘密鍵で復号し、連結された第１のセッション鍵と転送先のデバイス公開鍵を取り出し、得られたセッション鍵を利用して、ライセンスを第１のセッション鍵で暗号化し、該処理によって得られたデータに、該証明書失効リストの発行日比較において、自身の証明書失効リストの発行日情報の方が新しかった場合のみ、作成された該暗号化データに自身の証明書失効リストを連結し、新たな一時鍵であるセッション外殻鍵を生成し、生成した該鍵で暗号化されたライセンス及びそれに連結された証明書失効リストをさらに暗号化し、生成したセッション外殻鍵を先に取り出した転送先のデバイス公開鍵で暗号化し、以上の該処理によって得られた２つのデータを連結した後、転送先に送信し、転送先は、受信した該データをそれぞれ対応する鍵で復号し、自身の耐タンパ性を有する領域にライセンスを記録する方法。
【０１４８】
（５）上記（４）のデータ転送方法において、一度転送元と転送先の間でセッション外殻鍵が共有された後、それが両者の間で保持されている状態にあるときにライセンス転送を行う場合は、転送先は新たなセッション鍵を生成すると、該鍵をセッション外殻鍵で暗号化した後転送元に送信し、転送元は受信したデータをセッション外殻で復号し、新たなセッション鍵を取り出し、取り出した該鍵を用いて転送対象のライセンスを暗号化した後、セッション外殻鍵で暗号化し、転送先に送信する方法。
【０１４９】
（６）上記（１）〜（３）のいずれかのデータ転送方法に基づいて送信されてきたライセンスを受信し、記録するために電子署名付きデバイスクラス公開鍵及びそれに対応するデバイスクラス秘密鍵、認証局が発行した公開鍵、デバイス公開鍵及びそれに対応するデバイス秘密鍵が埋め込まれていて、バス470を介して受信したデータを、自身のデバイスクラス秘密鍵を用いて復号する機能をもつモジュール411と、バス470を介して受信したデータを、認証局が発行する公開鍵を用いて検証するモジュール402と、セッション固定鍵及びセッション時変鍵を生成するモジュール420と、セッション時変鍵と自身に埋め込まれているデバイス公開鍵のいずれかを選択し、選択した鍵とセッション固定鍵とを連結した後、転送元のデバイスクラス公開鍵で暗号化するモジュール413と、モジュール413の出力に、自身の証明書失効リストを連結し、転送元から送信されたチャレンジ鍵で暗号化しバス470へ送信するモジュール414と、バス470を介して受信したデータを、セッション時変鍵で復号するモジュール421と、同様にバス470を介して受信したデータを、セッション固定鍵で復号するモジュール422と、モジュール421もしくはモジュール422の出力から、転送元の証明書失効リストを取り出し、自身の証明書失効リストを上書きするモジュール415と、モジュール421の出力のうち、証明書失効リスト以外のデータを自身のデバイス秘密鍵で復号するモジュール423と、モジュール422の出力のうち、証明書失効リスト以外のデータを自身のセッション時変鍵で復号するモジュール424と、モジュール420で生成されたセッション時変鍵を、セッション固定鍵で暗号化し、バス470へ送信するモジュール425と、モジュール423あるいはモジュール424から出力された平文ライセンスを一時的に蓄積しておき、耐タンパ性をもったライセンス記録部333に記録する機能をもったモジュール431とをもった、ライセンス転送管理部321。
【０１５０】
（７）上記（１）〜（３）のいずれかのデータ転送方法に基づいてライセンスを送信するために、電子署名付きデバイスクラス公開鍵及びそれに対応するデバイスクラス秘密鍵、認証局が発行した公開鍵、デバイス公開鍵及びそれに対応するデバイス秘密鍵が埋め込まれていて、バス470を介して受信したデータを、自身のデバイスクラス秘密鍵を用いて復号する機能をもつモジュール411と、バス470を介して受信したデータを、認証局が発行する公開鍵を用いて検証するモジュール402と、チャレンジ鍵を生成するモジュール440と、生成されたチャレンジ鍵を、転送先から証明書の形で送信されたデバイスクラス公開鍵を用いて暗号化するモジュール441と、モジュール441の出力に、デバイスクラス公開鍵を含む自身の証明書を連結するモジュール442と、バス470を介して受信したデータを、チャレンジ鍵で復号するモジュール450と、バス470を介して受信したデータを、セッション時変鍵で復号するモジュール452と、モジュール450において復号した結果得られたデータのうち、転送先から送信されてきた証明書失効リストと自身の証明書失効リストの発行日情報を比較し、自身の証明書失効リストを転送先へ送信するか否かを決めるスイッチ460を制御するモジュール453と、モジュール450において復号した結果得られたデータのうち、証明書失効リスト以外のデータを自身のデバイスクラス秘密鍵で復号するモジュール451と、自身のライセンス記録部333に記録されているライセンスを、該記録部より読み出して一時的に保持するモジュール43１と、モジュール431から取り出したライセンスを、セッション時変鍵で暗号化するモジュール454と、モジュール431から取り出したライセンスを、転送先のデバイス公開鍵で暗号化するモジュール455と、モジュール454の出力に、スイッチ460がオンとなっている場合に、自身の証明書失効リストを連結し、セッション固定鍵で暗号化し、バス470へ送信するモジュール461と、モジュール455 の出力に、スイッチ460がオンとなっている場合に、自身の証明書失効リストを連結し、セッション固定鍵で暗号化し、バス470へ送信するモジュール462とをもったライセンス転送管理部321。
【０１５１】
（８）上記（４）又は（５）のデータ転送方法に基づいて、送信されてきたライセンスを受信し記録するために、電子署名付きデバイスクラス公開鍵及びそれに対応するデバイスクラス秘密鍵、認証局が発行した公開鍵、デバイス公開鍵及びそれに対応するデバイス秘密鍵が埋め込まれていて、バス470を介して受信したデータを、自身のデバイスクラス秘密鍵を用いて復号する機能をもつモジュール1411と、バス470を介して受信したデータを、認証局が発行する公開鍵を用いて検証するモジュール1402と、セッション時変鍵を生成するモジュール1420と、セッション時変鍵と自身のデバイス公開鍵とを連結した後、転送元のデバイスクラス公開鍵で暗号化するモジュール1413と、モジュール1413の出力に、自身の証明書失効リストを連結し、転送元より送信されたチャレンジ鍵で暗号化しバス470へ送信するモジュール1414と、バス470を介して受信したデータを、自身のデバイス公開鍵で暗号化されたデータとそれ以外の部分に分離し、モジュール1421とモジュール1422へ送信するモジュール1423と、モジュール1423から送られたデータを自身のデバイス秘密鍵で復号するモジュール1421と、モジュール1421の出力結果であるセッション外殻鍵を受信し、該鍵を用いて、モジュール1423から送信されたデータを復号するモジュール1422と、モジュール1422において復号した結果得られたデータのうち、転送元の証明書失効リストで自身の証明書失効リストを上書きするモジュール1415と、モジュール1420で生成されたセッション時変鍵を、セッション外殻鍵で暗号化し、バス470へ送信するモジュール1425と、モジュール1422において復号した結果得られたデータのうち、平文ライセンスを一時的に蓄積しておき、耐タンパ性をもったライセンス記録部333に記録する機能をもったモジュール1431とをもったライセンス転送管理部321。
【０１５２】
（９）上記（４）又は（５）のデータ転送方法でライセンスを送信するために、電子署名付きデバイスクラス公開鍵及びそれに対応するデバイスクラス秘密鍵、認証局が発行した公開鍵、デバイス公開鍵及びそれに対応するデバイス秘密鍵が埋め込まれていて、バス1470を介して受信したデータを、自身のデバイスクラス秘密鍵を用いて復号する機能をもつモジュール1411と、バス1470を介して受信したデータを、認証局が発行する公開鍵を用いて検証するモジュール1402と、チャレンジ鍵を生成するモジュール1440と、生成されたチャレンジ鍵を、転送先から証明書の形で送信されたデバイスクラス公開鍵を用いて暗号化するモジュール1441と、モジュール1441の出力に、デバイスクラス公開鍵を含む自身の証明書を連結するモジュール1442と、バス470を介して受信したデータを、チャレンジ鍵で復号するモジュール1450と、バス470を介して受信したデータを、セッション外殻鍵で復号するモジュール1452と、モジュール1450の出力を、自身のデバイス秘密鍵で復号するモジュール1451と、自身のライセンス記録部333に記録されているライセンスを、該記録部より読み出して一時的に保持するモジュール143１と、モジュール1431から取り出したライセンスを、セッション時変鍵で暗号化するモジュール1454と、モジュール1454の出力に、スイッチ1460がオンとなっている場合に、自身の証明書失効リストを連結し、セッション外殻鍵で暗号化するモジュール1455と、自身で生成したセッション外殻鍵を、転送先から送信されたデバイス公開鍵で暗号化するモジュール1461と、モジュール1455の出力と、モジュール1461の出力を連結し、バス1470へ送信するモジュール1462とをもったライセンス転送管理部321。
【０１５３】
（１０）上記（６）のライセンス転送管理部321を持った磁気ディスク装置。
【０１５４】
（１１）上記（６）のライセンス転送管理部321持ったライセンスデコーダ。
【０１５５】
（１２）上記（７）のライセンス転送管理部321を持ったコンテンツ管理部101。
【０１５６】
（１３）上記（７）のライセンス転送管理部321を持った配信サーバ150。
【０１５７】
（１４）上記（７）のライセンス転送管理部321を持った磁気ディスク装置。
【０１５８】
（１５）上記（８）のライセンス転送管理部321を持った磁気ディスク装置。
【０１５９】
（１６）上記（８）のライセンス転送管理部321を持ったライセンスデコーダ。
【０１６０】
（１７）上記（９）のライセンス転送管理部321を持ったコンテンツ管理部101。
【０１６１】
（１８）上記（９）のライセンス転送管理部321を持った配信サーバ150。
【０１６２】
（１９）上記（９）のライセンス転送管理部321を持った磁気ディスク装置。
【０１６３】
以上、本発明のデータ転送システム及びデータ転送方法について、具体的な実施の形態を示して説明したが、本発明はこれらに限定されるものではない。当業者であれば、本発明の要旨を逸脱しない範囲内において、上記各実施形態又は他の実施形態にかかる発明の構成及び機能に様々な変更・改良を加えることが可能である。
【図面の簡単な説明】
【０１６４】
【図１】本発明の第１実施形態のデータ転送システムの全体構成を概略的に示す図である。
【図２】図１に示す第１実施形態のデータ転送システムにおいて、使用される通信のための暗号に関する鍵データおよび配信するデータ等の特性を示す図である。
【図３】図１に示す可搬型磁気ディスク装置の内部構成を示すブロック図である。
【図４】図３に示す可搬型磁気ディスク装置のライセンス転送管理部の内部構成を詳細に示す図である。
【図５】図１に示す第１実施形態のデータ転送システムにおいて、転送元から転送先にライセンスを転送する場合に、転送元と、途中で処理を制御するホスト装置と、転送先との間で行われる処理の流れを示すフローチャートである。
【図６】図１に示す第１実施形態のデータ転送システムにおいて、転送元から転送先にライセンスを転送する場合に、転送元と、途中で処理を制御するホスト装置と、転送先との間で行われる処理の流れを示すフローチャートである。
【図７】図１に示す第１実施形態のデータ転送システムにおいて、転送元から転送先にライセンスを転送する場合に、転送元と、途中で処理を制御するホスト装置と、転送先との間で行われる処理の流れを示すフローチャートである。
【図８】図１に示す第１実施形態のデータ転送システムにおいて、転送元から転送先にライセンスを転送する場合に、転送元と、途中で処理を制御するホスト装置と、転送先との間で行われる処理の流れを示すフローチャートである。
【図９】図１に示す第１実施形態のデータ転送システムにおいて、転送元から転送先にライセンスを転送する場合に、転送元と、途中で処理を制御するホスト装置と、転送先との間で行われる処理の流れを示すフローチャートである。
【図１０】図１に示す第１実施形態のデータ転送システムにおいて、転送元から転送先にライセンスを転送する場合に、転送元と、途中で処理を制御するホスト装置と、転送先との間で行われる処理の流れを示すフローチャートである。
【図１１】図１に示す第１実施形態のデータ転送システムにおいて、転送元から転送先にライセンスを転送する場合に、転送元と、途中で処理を制御するホスト装置と、転送先との間で行われる処理の流れを示すフローチャートである。
【図１２】図１に示す第１実施形態のデータ転送システムにおいて、転送元から転送先にライセンスを転送する場合に、転送元と、途中で処理を制御するホスト装置と、転送先との間で行われる処理の流れを示すフローチャートである。
【図１３】図１に示す第１実施形態のデータ転送システムにおいて、転送元から転送先にライセンスを転送する場合に、転送元と、途中で処理を制御するホスト装置と、転送先との間で行われる処理の流れを示すフローチャートである。
【図１４】本発明の第２実施形態において、データ転送システムの可搬型磁気ディスク装置が有するライセンス転送管理部の内部構成を詳細に示す図である。
【図１５】第２実施形態のデータ転送システムにおいて、転送元から転送先にライセンスを転送する場合に、転送元と、途中で処理を制御するホスト装置と、転送先との間で行われる処理の流れを示すフローチャートである。
【図１６】第２実施形態のデータ転送システムにおいて、転送元から転送先にライセンスを転送する場合に、転送元と、途中で処理を制御するホスト装置と、転送先との間で行われる処理の流れを示すフローチャートである。
【図１７】第２実施形態のデータ転送システムにおいて、転送元から転送先にライセンスを転送する場合に、転送元と、途中で処理を制御するホスト装置と、転送先との間で行われる処理の流れを示すフローチャートである。
【図１８】第２実施形態のデータ転送システムにおいて、転送元から転送先にライセンスを転送する場合に、転送元と、途中で処理を制御するホスト装置と、転送先との間で行われる処理の流れを示すフローチャートである。
【図１９】本発明のデータ転送システムにおいて用いられるライセンスのデータ構造の例を示す図である。
【符号の説明】
【０１６５】
100  ネットワークインタフェース部
101  コンテンツ管理部
102  ライセンス展開部
103  コンテンツ復号部
104  ユーザインタフェースブリッジ部
105，106  外部記憶装置インタフェース
107  ＣＰＵ
110  ホスト部
111  コンテンツデコーダ部
112  記録再生装置
120  入力機器
121  ディスプレイ
125，126  可搬型磁気ディスク装置
130  衛星
131  受信アンテナ
140  ネットワーク
150  配信サーバ
300  磁気ディスク円盤
302  ヘッド部
320  インタフェース部
321  ライセンス転送管理部
330  コントローラ
332  ライセンス記録管理部
333  ライセンス記録部
401  証明書
415  証明書失効リスト
430  記憶領域
431  ライセンス一時記録蓄積部
470  バス
【図１】
2006115329.tif 000003
【図２】
2006115329.tif 000004
【図３】
2006115329.tif 000005
【図４】
2006115329.tif 000006
【図５】
2006115329.tif 000007
【図６】
2006115329.tif 000008
【図７】
2006115329.tif 000009
【図８】
2006115329.tif 000010
【図９】
2006115329.tif 000011
【図１０】
2006115329.tif 000012
【図１１】
2006115329.tif 000013
【図１２】
2006115329.tif 000014
【図１３】
2006115329.tif 000015
【図１４】
2006115329.tif 000016
【図１５】
2006115329.tif 000017
【図１６】
2006115329.tif 000018
【図１７】
2006115329.tif 000019
【図１８】
2006115329.tif 000020
【図１９】
2006115329.tif 000021