(57)【要約】【課題】  コンテンツを配信するシステムにおいて、コピーによるコンテンツの不正使用を防止するための、低コストな装置およびシステムを提供すること【解決手段】  コンテンツのコピーを防止するために、暗号化したコンテンツを配布し、ユーザの端末に固有な公開鍵を用いてコンテンツの復号鍵を暗号化して送る配信システムにおいて、ユーザの再生端末では、該端末に固有な情報から秘密鍵を作成して、これをもとに公開鍵を導出し、さらに、この公開鍵を配信者が事前に作成した秘密鍵で署名して配信者側に送信する。端末に固有な情報を取り出して、署名出力するまでの処理が装置内部に隠蔽されておれば、配信者は該署名を検証することで、ユーザの公開鍵がユーザ端末で正当に生成されたことを検証し得る。【選択図】  図１
2005086457.tif 000002
【特許請求の範囲】
【請求項１】
暗号化コンテンツの復号鍵を公開鍵暗号方式に従ってサーバ側に要求する機能をコンピュータに付加するプログラムであって、
サーバ側の秘密鍵を取得するサーバ秘密鍵取得ステップと、
ユーザ端末の固有情報に基づきユーザ端末側の秘密鍵を生成するユーザ秘密鍵生成ステップと、
前記ユーザ秘密鍵からユーザ端末側の公開鍵を生成するユーザ公開鍵生成ステップと、
少なくともユーザを特定するためのユーザ情報と前記ユーザ公開鍵とを含む契約情報を生成する契約情報生成ステップと、
前記サーバ側の秘密鍵を用いて前記契約情報からデジタル署名を生成するデジタル署名生成ステップと、
前記契約情報と前記デジタル署名とをサーバ側に送信する契約情報送信ステップと、
を含むことを特徴とするプログラム。
【請求項２】
請求項１において、
前記契約情報は、要求対象の復号鍵に対応する暗号化コンテンツを特定する情報を含む、
ことを特徴とするプログラム。
【請求項３】
請求項１または２において、
さらに、サーバ側の公開鍵を取得するサーバ公開鍵取得ステップと、
取得したサーバ公開鍵を用いて前記デジタル署名から契約情報を復元し、復元された契約情報と前記生成した契約情報とが一致するか否かを判定する判定ステップとを備え、
前記契約情報送信ステップは、前記判定ステップにより契約情報が正当であると判定された場合に、当該契約情報とデジタル署名とをサーバ側に送信する、
ことを特徴とするプログラム。
【請求項４】
請求項１ないし３の何れかにおいて、
さらに、ユーザ端末の変更要求に関する情報を生成する変更要求情報生成ステップと、
前記サーバ側の秘密鍵を用いて前記変更要求情報からデジタル署名を生成するデジタル署名生成ステップと、
前記変更要求情報と前記デジタル署名とをサーバ側に送信する変更要求送信ステップと、
を含むことを特徴とするプログラム。
【請求項５】
暗号化コンテンツの復号鍵を公開鍵暗号方式に従ってユーザ端末側に送信するサーバ装置であって、
ユーザを特定するためのユーザ情報と、ユーザ公開鍵と、コンテンツを特定するコンテンツ特定情報とを含む契約情報と、自己の秘密鍵を用いて前記契約情報から生成されたデジタル署名とを受信する受信手段と、
自己の公開鍵を用いて前記デジタル署名から契約情報を復元し、復元した契約情報と前記受信した契約情報とが一致するか否かを判定する判定手段と、
前記判定手段により契約情報が正当であると判定された場合に、当該契約情報に含まれるコンテンツ特定情報にて特定されたコンテンツの復号鍵を当該契約情報に含まれるユーザ公開鍵で暗号化してユーザ端末側に送信する復号鍵送信手段と、
を有することを特徴とするサーバ装置。
【請求項６】
暗号化コンテンツの復号鍵を公開鍵暗号方式に従ってユーザ端末側に送信するサーバ装置であって、
ユーザを特定するためのユーザ情報とユーザ公開鍵とを含む契約情報と、自己の秘密鍵を用いて前記契約情報から生成されたデジタル署名とを受信する受信手段と、
自己の公開鍵を用いて前記デジタル署名から契約情報を復元し、復元した契約情報と前記受信した契約情報とが一致するか否かを判定する契約情報判定手段と、
前記契約情報判定手段により契約情報が正当であると判定された場合に、当該契約情報に含まれるユーザ特定情報とユーザ公開鍵を互いに対応付けて登録するユーザ登録手段と、
を有することを特徴とするサーバ装置。
【請求項７】
請求項６において、
ユーザ端末側から復号鍵の送信要求があったとき、当該ユーザが前記ユーザ登録手段に登録されているかを判別し、登録されている場合に、前記ユーザ登録手段から当該ユーザの公開鍵を抽出し、当該公開鍵で送信要求対象の復号鍵を暗号化して前記ユーザ端末に送信する、
ことを特徴とするサーバ装置。
【請求項８】
請求項６または７において、
ユーザ端末の変更要求に関する情報と、自己の秘密鍵を用いて前記変更要求情報から生成されたデジタル署名とをユーザ端末から受信する変更要求受信手段と、
自己の公開鍵を用いて前記デジタル署名から変更要求情報を復元し、復元した変更要求情報と前記受信した変更要求情報とが一致するか否かを判定する変更要求判定手段と、
この判定により変更要求が正当であると判定された場合に、前記ユーザ登録手段に登録された当該ユーザの公開鍵に対し変更マークを付加する変更マーク付加手段と、
前記変更要求判定手段により変更要求が正当であると判定された場合に変更了承の通知をユーザ端末側に送信する変更了承通知手段と、
を有することを特徴とするサーバ装置。
【請求項９】
請求項８において、
ユーザ端末から前記契約情報とデジタル署名とを受信し、当該契約情報が正当であると判定されたとき、当該契約情報に含まれるユーザ特定情報と前記ユーザ登録手段に登録された登録情報とを比較し、その結果、当該ユーザの公開鍵に前記変更マークが付加されている場合に、当該ユーザの公開鍵を当該契約情報に含まれている公開鍵に置き換える、
ことを特徴とするサーバ装置。
【請求項１０】
請求項１から４のプログラムを格納した記憶媒体。
【請求項１１】
請求項１から４のプログラムを制御プログラムとして保持した端末装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、暗号化コンテンツを配布した後に復号鍵を販売する形態のコンテンツ配信システムに関し、特に、復号鍵の秘匿性を高めようとする際に用いて好適なものである。
【背景技術】
【０００２】
近年、コピーによっても劣化が生じないデジタルデータについて、その著作権侵害が大きな問題となっている。特にパーソナルコンピュータ(PC）においては、PC上に存在するデータは簡単にコピーすることができ、またこれを他者へ配布することも容易にできる。
【０００３】
このような環境の中で、デジタル著作物を保護する方法として、コピーそのものを物理的に制限することや、コピーは自由にできるが特定の端末のみに使用を限定する方法が考案されている。
【０００４】
前者の方法によれば、例えば、著作物を再生目的でしか取り出せない、あるいは、デジタル著作物に暗号化を施すなどして、そのままでは使用できない状態で配布し、その後、ICカードやセキュアメモリカードなどのユーザが勝手に取り出しコピーすることができない記憶装置に、暗号を解く復号鍵を配信する。しかしこの場合、全てのユーザがICカードおよびICカードReader/Writerなどの専用の装置を用意しなければならず、現状のPC環境ではコストが高くなる。
【０００５】
また、後者の方法では、デジタル著作物は暗号化などを施して提供され、その後に、利用する端末専用の復号鍵が提供される。この方法を実現するにあたり、ユーザは利用する端末に固有な情報を配信者に送信し、配信者はこの情報を用いて復号鍵を生成し、これをユーザに提供する。例えば、アプリケーションによってのみ固有情報が生成される環境において、ユーザがデジタル著作物とこのアプリケーションと復号鍵とをコピーし、他の端末でこれを使用した場合、アプリケーションは、実行中の端末に依存した固有情報を生成するため、復号鍵とのマッチングが取れず、暗号化されたデジタルコンテンツを復号することはできない。
【０００６】
このようなソフトウェアのみで保護を図る方法は、一般的にセキュリティ強度は低いが、安価なコストで実現できる。
なお、特許文献１および特許文献２では、ソフトウェアのみで構成する著作権保護の技術が記載されている。
【０００７】
いずれの発明も、ソフトウェアを購入したユーザは、ソフトウェアをインストールする装置に固有な情報、例えば、CPU番号やハードディスク番号等をソフトウェア提供者に送信する。提供者は受信した固有情報を持つ装置でのみ実行を可能にし得る秘密情報を作成し、これをユーザに提供する。
【０００８】
この秘密情報を受信したユーザが自身の装置にインストールされたソフトウェアを起動させると、ソフトウェアは当該秘密情報を自動的に読み出し、当該秘密情報に基づき処理を続行するか否かを判定する。この秘密情報は、使用する端末に依存した情報であるため、このソフトウェアを他の端末で使用することを試みても、実行することはできない。
【特許文献１】特許０３２１２０７８号
【特許文献２】特公平７−０８９３４５号
【発明の開示】
【発明が解決しようとする課題】
【０００９】
上記の方法では、秘密情報の受け渡しに際し、ソフトウェアのユーザと提供者との間で、幾つかのデータの受け渡しを行わなければならない。この時、受け渡しするデータの正当性および通信相手の正当性を証明することが必要となる。
【００１０】
提供者や提供者側から提供されるデータが正当であることを証明する方法はこれまで種々の提案がなされてきたが、ユーザやユーザ側から提供されるデータの正当性の証明については、それほど問題視されていなかった。しかし、固有情報は、秘密情報の生成に用いられるものであるから、その正当性が高いレベルで保証されていなけれがならない。たとえば、あらかじめ知っている固有情報がユーザから提供されると、取得した秘密情報がこの固有情報をもとに解析される惧れがある。そして、この解析により秘密情報の生成手法が知得されると、ユーザサイドで適宜、秘密情報が生成され、その結果、配布コンテンツの無断使用が横行するとの問題が生じ得る。
【００１１】
そこで、本発明は、かかる問題を解消し、ユーザと提供者との間でなされる秘密情報の受け渡しを適正かつ秘密裏に行い得るコンテンツ配信システムを提供することを課題とする。
【課題を解決するための手段】
【００１２】
各請求項の発明は、それぞれ以下に示す特徴を備える。
【００１３】
請求項１の発明は、暗号化コンテンツの復号鍵を公開鍵暗号方式に従ってサーバ側に要求する機能をコンピュータに付加するプログラムであって、サーバ側の秘密鍵を取得するサーバ秘密鍵取得ステップと、ユーザ端末の固有情報に基づきユーザ端末側の秘密鍵を生成するユーザ秘密鍵生成ステップと、前記ユーザ秘密鍵からユーザ端末側の公開鍵を生成するユーザ公開鍵生成ステップと、少なくともユーザを特定するためのユーザ情報と前記ユーザ公開鍵とを含む契約情報を生成する契約情報生成ステップと、前記サーバ側の秘密鍵を用いて前記契約情報からデジタル署名を生成するデジタル署名生成ステップと、前記契約情報と前記デジタル署名とをサーバ側に送信する契約情報送信ステップと、を含むことを特徴とする。
【００１４】
請求項２の発明は、請求項１に記載のプログラムであって、前記契約情報は、要求対象の復号鍵に対応する暗号化コンテンツを特定する情報を含む、ことを特徴とする。
【００１５】
請求項３の発明は、請求項１または２に記載のプログラムであって、さらに、サーバ側の公開鍵を取得するサーバ公開鍵取得ステップと、取得したサーバ公開鍵を用いて前記デジタル署名から契約情報を復元し、復元された契約情報と前記生成した契約情報とが一致するか否かを判定する判定ステップとを備え、前記契約情報送信ステップは、前記判定ステップにより契約情報が正当であると判定された場合に、当該契約情報とデジタル署名とをサーバ側に送信する、ことを特徴とする。
【００１６】
請求項４の発明は、請求項１ないし３の何れかに記載のプログラムであって、さらに、ユーザ端末の変更要求に関する情報を生成する変更要求情報生成ステップと、前記サーバ側の秘密鍵を用いて前記変更要求情報からデジタル署名を生成するデジタル署名生成ステップと、前記変更要求情報と前記デジタル署名とをサーバ側に送信する変更要求送信ステップと、を含むことを特徴とする。
【００１７】
請求項５の発明は、暗号化コンテンツの復号鍵を公開鍵暗号方式に従ってユーザ端末側に送信するサーバ装置であって、ユーザを特定するためのユーザ情報と、ユーザ公開鍵と、コンテンツを特定するコンテンツ特定情報とを含む契約情報と、自己の秘密鍵を用いて前記契約情報から生成されたデジタル署名とを受信する受信手段と、自己の公開鍵を用いて前記デジタル署名から契約情報を復元し、復元した契約情報と前記受信した契約情報とが一致するか否かを判定する判定手段と、前記判定手段により契約情報が正当であると判定された場合に、当該契約情報に含まれるコンテンツ特定情報にて特定されたコンテンツの復号鍵を当該契約情報に含まれるユーザ公開鍵で暗号化してユーザ端末側に送信する復号鍵送信手段と、を有することを特徴とする。
【００１８】
請求項６の発明は、暗号化コンテンツの復号鍵を公開鍵暗号方式に従ってユーザ端末側に送信するサーバ装置であって、ユーザを特定するためのユーザ情報とユーザ公開鍵とを含む契約情報と、自己の秘密鍵を用いて前記契約情報から生成されたデジタル署名とを受信する受信手段と、自己の公開鍵を用いて前記デジタル署名から契約情報を復元し、復元した契約情報と前記受信した契約情報とが一致するか否かを判定する契約情報判定手段と、前記契約情報判定手段により契約情報が正当であると判定された場合に、当該契約情報に含まれるユーザ特定情報とユーザ公開鍵を互いに対応付けて登録するユーザ登録手段と、を有することを特徴とする。
【００１９】
請求項７の発明は、請求項６に記載のサーバ装置であって、ユーザ端末側から復号鍵の送信要求があったとき、当該ユーザが前記ユーザ登録手段に登録されているかを判別し、登録されている場合に、前記ユーザ登録手段から当該ユーザの公開鍵を抽出し、当該公開鍵で送信要求対象の復号鍵を暗号化して前記ユーザ端末に送信する、ことを特徴とする。
【００２０】
請求項８の発明は、請求項６または７に記載のサーバ装置であって、ユーザ端末の変更要求に関する情報と、自己の秘密鍵を用いて前記変更要求情報から生成されたデジタル署名とをユーザ端末から受信する変更要求受信手段と、自己の公開鍵を用いて前記デジタル署名から変更要求情報を復元し、復元した変更要求情報と前記受信した変更要求情報とが一致するか否かを判定する変更要求判定手段と、この判定により変更要求が正当であると判定された場合に、前記ユーザ登録手段に登録された当該ユーザの公開鍵に対し変更マークを付加する変更マーク付加手段と、前記変更要求判定手段により変更要求が正当であると判定された場合に変更了承の通知をユーザ端末側に送信する変更了承通知手段と、を有することを特徴とする。
【００２１】
請求項９の発明は、請求項８に記載のサーバ装置であって、ユーザ端末から前記契約情報とデジタル署名とを受信し、当該契約情報が正当であると判定されたとき、当該契約情報に含まれるユーザ特定情報と前記ユーザ登録手段に登録された登録情報とを比較し、その結果、当該ユーザの公開鍵に前記変更マークが付加されている場合に、当該ユーザの公開鍵を当該契約情報に含まれている公開鍵に置き換える、ことを特徴とする。
【００２２】
請求項１０の発明は、記憶媒体であって、請求項１から４のプログラムを格納した、ことを特徴とする。
【００２３】
請求項１１の発明は、端末装置であって、請求項１から４のプログラムを制御プログラムとして保持したことを特徴とする。
【００２４】
本発明の特徴は、以下に示す実施の形態の説明により更に明らかとなろう。
【００２５】
ただし、以下の実施の形態は、あくまでも、本発明の一つの実施の形態であって、本発明ないし各構成要件の用語の意義は、以下の実施の形態に記載されたものに制限されるものではない。
【発明の効果】
【００２６】
以上、本発明によれば、ユーザ側端末において、自身の端末に固有な公開鍵が作成され、また、作成された公開鍵には、配信者側の秘密鍵によるデジタル署名が付加されるため、ユーザが不正に公開鍵を生成することが困難となり、さらに、配信者側も、ユーザから送信されたユーザ公開鍵が、本当にユーザの端末において正当に作成されたものであるか否か検証することができ、意図的に不正に作成されたユーザ公開鍵を用いたコンテンツ鍵の要求等を拒否することができる。
【００２７】
また、本発明によれば、端末変更要求にデジタル署名を付けた情報をユーザ側端末から配信者側に送信し、配信者側で、デジタル署名の正当性を確認してから変更要求の了承を行なうものでありから、ユーザが利用する端末の変更を円滑にかつ安全に行うことができ、ユーザの利便性を向上させることができる。
【発明を実施するための最良の形態】
【００２８】
以下、本発明の実施の形態につき図面を参照して説明する。
【実施例１】
【００２９】
図１は、本実施例におけるコンテンツ配信システムの概要を示す図である。
【００３０】
本実施例におけるコンテンツ配信システムは、サーバ１、端末２、ネットワーク３から構成される。これらの間で、コンテンツパッケージ４、デジタル著作物（コンテンツ）５、暗号化デジタル著作物６、復号鍵７、契約書８が受け渡しされる。
【００３１】
サーバ１は、配信者が配布した暗号化デジタル著作物６を復号するための復号鍵７を提供するサーバであり、ユーザの端末２から契約書８を受けると、その内容に従って復号鍵７を生成し、端末２に送信する。
【００３２】
端末２は、ユーザが使用する端末装置であり、ユーザの指示に応じて契約書８を生成し、これをサーバ１に送る。また、復号鍵７をサーバ１から受信し、これを用いて暗号化デジタル著作物６を復号し、デジタル著作物５を再生する。
【００３３】
ネットワーク３は、サーバ１と端末２とが接続されているネットワークである。
【００３４】
コンテンツパッケージ４は、配信者からユーザに対して無料または有料で配布される暗号化デジタル著作物６のデータパッケージであり、本実施例では暗号化デジタル著作物６を記憶したメディア（例えば、光ディスクやメモリカードなどの記憶媒体）により構成されている。この場合、コンテンツパッケージ４は、物流手段を用いてユーザに配布される。なお、暗号化デジタル著作物６は、ネットワーク３を介してユーザに配布される形態としても良い。
【００３５】
デジタル著作物５は、配信コンテンツであるデジタル化された著作物である。
【００３６】
暗号化デジタル著作物６は、デジタル著作物５を暗号鍵にて暗号化したものである。
【００３７】
復号鍵７は、暗号化デジタル著作物６を復号するための鍵データである。
【００３８】
契約書DATcont８は、ユーザが配信者から復号鍵７の配信を受けるときに生成される契約書である。配信時には、配信者自身の署名が添付された状態で端末２からサーバ１に送信される。また、この契約書には、ユーザ公開鍵Kpub-userと、契約に関するその他の必要情報などが含まれる。
【００３９】
１．セキュリティパラメータ
本実施例で用いる暗号鍵等のセキュリティパラメータを図２に示す。
本実施例では、公開鍵暗号方式を用いる。
公開鍵暗号方式では、暗号用の鍵と復号用の鍵が異なり、暗号用の鍵を誰もが見られる場所に公開しても暗号用の鍵から復号用の鍵を見つけ出すことが困難な仕組みになっている。このようなことから、公開鍵暗号方式で使用される暗号用の鍵を公開鍵、復号用の鍵を秘密鍵と呼ぶ。また、公開鍵暗号方式の鍵を総称して、鍵ペア（鍵対）という。
【００４０】
配信者公開鍵Kpub-distは、公開鍵暗号方式に従う配信者の公開鍵である。
配信者秘密鍵Kpri-distは、公開鍵暗号方式に従う配信者の秘密鍵である。
ユーザ公開鍵Kpub-userは、公開鍵暗号方式に従うユーザの公開鍵である。
ユーザ秘密鍵Kpri-userは、公開鍵暗号方式に従うユーザの秘密鍵である。
【００４１】
配信者公開鍵Kpub-distと配信者秘密鍵Kpri-dist、ユーザ公開鍵Kpub-userとユーザ秘密鍵Kpri-userは、各々鍵ペアを構成する。
コンテンツ鍵Kcは、コンテンツCに暗号化を施す際に用いられた秘密鍵暗号方式に従う秘密鍵である。
端末固有情報INFuserは、ユーザが使用する端末２に固有な情報（たとえば、ＣＰＵ番号やハードディスク番号、等）である。
なお、以下の説明において、鍵Ｂを用いて暗号化したデータＡを、E(A, B)と表す。
【００４２】
２．コンテンツパッケージ４の構成
ユーザに提供されるコンテンツパッケージ４の構成を図３に示す。
コンテンツパッケージ４には、暗号化コンテンツE(C, Kc)、契約書生成プログラムP3、再生プログラムP4が含まれている。
暗号化コンテンツE(C, Kc)は、コンテンツ鍵Kcによって暗号化したコンテンツCである。
再生プログラムP4は、暗号化コンテンツE(C, Kc)をコンテンツ鍵Kcで復号し、再生を実行するプログラムである。
【００４３】
契約書生成プログラムP3は、ユーザが再生を所望するコンテンツの識別情報や利用する端末２に固有な公開鍵Kpub-user等から契約書DATcont８を作成し、これを当該契約書生成プログラムP3に埋め込まれた配信者秘密鍵Kpri-distで暗号化したデジタル署名E(DATcont, Kpri-dist)を生成し、このデジタル署名を当該契約書に付加して、署名付き契約書DATcont８を作成するプログラムである。
【００４４】
ここで、デジタル署名は、公開鍵暗号方式の秘密鍵を利用して、被署名文（契約書）の完全性を保証するためのものである。すなわち、被署名文に対して秘密鍵で署名し、この署名結果（デジタル署名）を被署名文に添付しておけば、当該秘密鍵とペアになる公開鍵を用いて被署名文が復元される。そして、復元された被署名文と配信された被署名文との一致を検証することにより、配信された被署名文（契約書）の完全性が確認される。
【００４５】
なお、公開鍵暗号方式を用いたデジタル署名では、被署名文をハッシュ関数に通してダイジェスト値を生成し、これを秘密鍵で暗号化しデジタル署名としている。したがって、被署名文の正当性は、デジタル署名を公開鍵で復号したものと、被署名文のダイジェスト値を比較することにより検証することができる。なお、デジタル署名の公開鍵による復号値と被署名文のダイジェスト値が一致することを一意性という。
【００４６】
３．端末装置（サーバ）の構成
図４は、サーバ１の構成を示すブロック図である。
サーバ１は、制御部１０、表示部１１、入力部１２、通信部１３、メディアリーダライタ１４、記憶部１５、契約書認証部１６、配布鍵生成部１７、これらを接続するバス１８を備える。
【００４７】
制御部１０は、記憶部１５に格納されたプログラムを読み出し、これを解釈して各構成部を制御する。
【００４８】
表示部１１は、ディスプレイなどの表示装置であり、サーバ１の操作者に視覚情報を与える。
【００４９】
入力部１２は、マウスやキーボードなどの入力装置であり、サーバ１の操作者の指示を入力する。
【００５０】
通信部１３は、ネットワーク３に接続されており、ネットワークを介したデータの送受信を制御する。
【００５１】
メディアリーダライタ１４は、配信形態であるコンテンツパッケージ４を作成する機能を備える。
【００５２】
記憶部１５は、ハードディスクや内部メモリ等の記憶手段であり、予め、契約書認証プログラムP1、配布鍵作成プログラムP2、正規ユーザ鍵リストLIST、コンテンツC、コンテンツに対応するコンテンツ鍵Kcを保持する。
【００５３】
契約書認証部１６は、端末２から受信した契約書DATcont８が正当であるか否か判定する。詳しくは後述する。
【００５４】
配布鍵生成部１７は、契約書DATcont８が正当であるとき、当該契約書に含まれるユーザ公開鍵Kpub-userを用いてコンテンツ鍵Kcを暗号化し、ユーザに配布する鍵を生成する。詳しくは後述する。
【００５５】
図５は、契約書認証部１６の詳細なブロック構成図である。
【００５６】
契約書認証部１６は、契約書解析部１６０、配信者公開鍵保持部１６１、ユーザ公開鍵復号部１６２、判定処理部１６３を備える。
【００５７】
契約書解析部１６０は、署名付き契約書DATcont８を解析し、契約書DATcont８とデジタル署名E(DATcont, Kpri-dist)を抽出する。
【００５８】
配信者公開鍵保持部１６１は、配信者公開鍵Kpub-distを保持する。
【００５９】
ユーザ公開鍵復号処理部１６２は、契約書解析部１６０から得られたデジタル署名E(DATcont, Kpri-dist)を、配信者秘密鍵Kpri-distとペアになる配信者公開鍵Kpub-distを用いて復号する。
【００６０】
判定処理部１６３は、ユーザ公開鍵復号処理部１６２において復号された契約書DATcontと、契約書解析部１６０において抽出される契約書DATcontとを比較し、一致するか判定する。比較の結果、一致すれば、署名は正しく、データが改ざんされていないことがわかる。
【００６１】
図６は、配布鍵生成部１７の詳細なブロック構成図である。
【００６２】
配布鍵生成部１７は、セッション鍵生成部１７０、コンテンツ鍵暗号化部１７１、セッション鍵暗号化部１７２、配布鍵構成部１７３を備える。
【００６３】
セッション鍵生成部１７０は、セッション毎に異なる乱数を生成し、これをセッション鍵Ksとする。
【００６４】
コンテンツ鍵暗号化部１７１は、コンテンツ鍵Kcをセッション鍵Ksを用いて暗号化し、暗号化コンテンツ鍵E(Kc, Ks)を生成する。
【００６５】
セッション鍵暗号化部１７２は、セッション鍵Ksをユーザ公開鍵Kpub-userを用いて暗号化し、暗号化セッション鍵E(Ks, Kpub-user)を生成する。
【００６６】
配布鍵生成部１７３は、コンテンツ鍵暗号化部１７１で得られた暗号化コンテンツ鍵E(Kc, Ks)とセッション鍵暗号化部１７２で得られた暗号化セッション鍵E(Ks, Kpub-user)を、予め定められた形式にしたがってパケットに格納し配布鍵EKcを生成する。
【００６７】
４．端末２の構成
端末２の構成を図７に示す。
端末２は、制御部２０、表示部２１、入力部２２、通信部２３、メディアリーダ２４、記憶部２５、ユーザ鍵生成部２６、契約書生成部２７、コンテンツ復号部２８、デジタル署名確認部２９、再生部３０、これらを接続するバス３１を備える。
【００６８】
制御部２０は、記憶部２５に格納されたプログラムを読み出し、これを解釈して各構成部を制御する。
【００６９】
表示部２１は、ディスプレイなどの表示装置であり、端末２を操作するユーザに視覚情報を与える。
【００７０】
入力部２２は、マウスやキーボードなどの入力装置であり、端末２を操作するユーザの指示を入力する。
【００７１】
通信部２３は、ネットワーク３に接続されており、ネットワークを介したデータの送受信を制御する。
【００７２】
メディアリーダ２４は、接続されたメディアからデータを読み込む。なお、本実施例では、配送されたコンテンツパッケージ４から暗号化コンテンツE(C, Kc)、契約書生成プログラムP3、再生プログラムP4を読み込む。
【００７３】
記憶部２５は、ハードディスクや内部メモリ等の記憶手段であり、メディアリーダ２４によって読み出された暗号化コンテンツE(C, Kc)、契約書作成プログラムP3、再生プログラムP4を保持する。
【００７４】
ユーザ鍵生成部２６は、端末２に固有なユーザ秘密鍵Kpri-userおよびユーザ公開鍵Kpub-userを生成する。詳しくは後述する。
【００７５】
契約書生成部２７は、配信者に送付するための契約情報等を含んだ契約書を生成する。詳しくは、後述する。
【００７６】
コンテンツ復号部２８は、配信者から受信した暗号化コンテンツを用いて、最終的に暗号化コンテンツを復号する。詳しくは後述する。
【００７７】
デジタル署名確認部２９は、生成された契約書の正当性を確認する。
【００７８】
再生部３０は、復号されたコンテンツを再生する。
【００７９】
図８は、ユーザ鍵生成部２６の詳細なブロック構成図である。
【００８０】
ユーザ鍵生成部２６は、端末固有情報読出し部２６０と、ユーザ秘密鍵生成部２６１を備える。
【００８１】
端末固有情報読出し部２６０は、端末２に固有な情報INFuserを読み出す。
【００８２】
ユーザ秘密鍵生成部２６１は、読み出した端末固有情報INFuserからユーザ秘密鍵Kpri-userを生成する。
【００８３】
図９は、契約書生成部２７の詳細なブロック構成図である。
【００８４】
契約書生成部２７は、ユーザ公開鍵生成部２７０、契約書生成部２７１、配信者秘密鍵保持部２７２、デジタル署名生成部２７３を備える。
【００８５】
ユーザ公開鍵生成部２７０は、ユーザ秘密鍵Kpri-userからユーザ公開鍵Kpub-userを導出する。
【００８６】
契約書生成部２７１は、生成したユーザ公開鍵Kpub-userと、契約に関する情報などを含む契約書DATcont８を作成する。
【００８７】
配信者秘密鍵保持部２７２は、契約書作成プログラムP3に埋め込まれた配信者の配信者秘密鍵Kpri-distを保持する。
【００８８】
デジタル署名生成部２７３は、契約書DATcont８を配信者秘密鍵Kpri-distで暗号化し，デジタル署名E(DATcont, Kpri-dist)を生成する。
【００８９】
図１０は、コンテンツ鍵復号部２８の詳細なブロック構成図である。
【００９０】
コンテンツ鍵復号部２８は、配布鍵解析部２８０、セッション鍵復号部２８１、コンテンツ鍵復号部２８２、復号部２８３を備える。
【００９１】
配布鍵解析部２８０は、配信者から受けた配布鍵EKcを解析し、暗号化セッション鍵E(Ks, Kpub-user)と暗号化コンテンツ鍵E(Kc, Ks)を抽出する。
【００９２】
セッション鍵復号部２８１は、ユーザ鍵生成部２６にて生成されたユーザ秘密鍵Kpri-userを用いて、配布鍵解析部２８０から得られた暗号化セッション鍵E(Ks, Kpub-user)を復号する。
【００９３】
コンテンツ鍵復号部２８２は、セッション鍵Ksで暗号化されたコンテンツ鍵E(Kc, Ks)をセッション鍵復号部２８１における復号により得られたセッション鍵Ksを用いて復号する。
【００９４】
復号部２８３は、暗号化コンテンツE(C, Kc)を、コンテンツ鍵復号部２８２における復号により得られたコンテンツ鍵Kcを用いて復号する。
【００９５】
５．デジタル署名確認部２９
図１１は、デジタル署名確認部２９の詳細なブロック構成図である。
デジタル署名確認部２９は、デジタル署名復号部２９１、復号値比較部２９２を備える。
デジタル署名復号部２９１は、デジタル署名を復号用の配信者公開鍵Kpri-distで復号し、被署名文を取得する。
復号値比較部２９２は、前記復号値と被署名文とを入力し、前記復号値が前記被署名文の一意性を検証して検証結果を出力する。
【００９６】
６．コンテンツの販売から利用までの流れ
次に、図１２を用いて配信者とユーザとの間でなされる、コンテンツの提供から再生までの流れを説明する。なお、配信者側のサーバ１には、コンテンツ、コンテンツ毎のコンテンツ鍵Kc、コンテンツを再生するための再生プログラムP4、ユーザがコンテンツ鍵を取得する際に用いる契約書を作成する契約書作成プログラムP3が記憶部１５内に予め格納されている。
【００９７】
まず、配信者側のサーバ１において、コンテンツパッケージ４が作成される（ステップＳ１００）。
【００９８】
作成されたコンテンツパッケージ４は、物流手段を介してユーザに提供される（ステップＳ１０１）。これにより、ユーザはコンテンツパッケージ４を取得する（ステップＳ１０２）。
【００９９】
次に、ユーザ側端末２において、取得した暗号化コンテンツE(C, Kc)を再生するための処理、すなわち、暗号化コンテンツE(C, Kc)を復号するためのコンテンツ鍵を取得する処理が実行される。まず、ユーザは、コンテンツパッケージ４に含まれている契約書作成プログラムP3を実行させる。これにより、契約書DATcont８およびユーザ公開鍵Kpub-userが生成される。
【０１００】
ユーザ公開鍵Kpub-userの生成にあたり、端末２では、まず端末に固有な情報、例えば、ディスク番号やＣＰＵ番号等のハードウェアを識別する情報から、ユーザ秘密鍵Kpri-userを生成する。このユーザ秘密鍵Kpri-userの生成処理ステップは、契約書作成プログラムP3内部に隠蔽された形で実装されており、生成の過程で発生する結果も、契約書作成プログラムP3内部で処理される。詳細は後述する。
【０１０１】
次に、端末２において、配信を希望するコンテンツ鍵を識別するための情報や契約書作成日など各種契約情報がユーザによって入力される。これらの契約情報とユーザ公開鍵Kpub-userとで、契約書DATcont８が構成される。
【０１０２】
契約書DATcont８は、契約書作成プログラムP3内部に保持される配信者秘密鍵Kpri-distによって署名される（ステップＳ１０３）。署名された契約書E(Datcont, Kpri-dist)は、配信者公開鍵Kpub-distを用いてその正当性が検証される（ステップＳ１０４）。詳細は後述する。この契約書の確認の結果、制御部２０は、生成した契約書が正当であれば、ステップＳ１０５からの処理を続行する。一方、生成した契約書が正当でない場合、本処理を終了する。
【０１０３】
端末２において、検証された署名付き契約書DATcont８は、ネットワーク３を介してサーバ１に送信される（ステップＳ１０５）。
【０１０４】
サーバ１は、ネットワーク３を介して署名付き契約書DATcont８を受信する（ステップＳ１０６）と、配信者公開鍵Kpub-distを用いてデジタル署名を復号し、受信したデジタル署名付き契約書DATcont８を認証し、この結果に基づいて当該ユーザに対してコンテンツ鍵を提供するか否かを判断する（ステップＳ１０７）。詳細は後述する。
【０１０５】
このように、契約書DATcont８がユーザの端末２において契約書作成プログラムP3の実行により生成された情報であることを認証することによって、不正目的で意図的に生成されたユーザ公開鍵やユーザ秘密鍵を排除することができ、また、契約書が含む契約情報の通信途中での改ざんを検出することができる。
【０１０６】
ステップＳ１０７において、契約書DATcont８が正当と認証されなければ、契約はその時点で不成立となる。契約書が正当と認証されると、サーバ１は受信した契約書DATcont８に基づいて、ユーザが配信を所望するコンテンツ鍵Kcを暗号化し、配布鍵EKcを生成する（ステップＳ１０８）。詳細は後述する。
【０１０７】
ここで、コンテンツ鍵の生成とユーザとの対応関係は、記憶部１５の正規ユーザリストLISTに記憶される。また、コンテンツ代金に対する課金が発生する（図示せず）が、本発明の本質に関わらないため、具体的な方法等の説明は割愛する。
【０１０８】
次に、サーバ１から配布鍵EKcが送信され（ステップＳ１０９）、送信された配布鍵EKcが端末２に受信される（ステップＳ１１０）。受信した配布鍵EKcは記憶部２５に格納される。
【０１０９】
その後、ユーザによるコンテンツ指定および再生指示が入力されると、再生プログラムP4が起動され、配布鍵EKcがユーザ秘密鍵Kpri-userを用いて復号され、復号の結果得られたコンテンツ鍵Kcを用いて暗号化コンテンツE(C, Kc)が復号される。
【０１１０】
続いて、再生プログラムによって再生処理が行われる（ステップＳ１１１）。詳細は後述する。
【０１１１】
取得した配布鍵EKcは端末２に保持されるため、次回の再生以降、これに関する契約書の作成およびサーバ１への送信は行わなくてよい。
【０１１２】
７．各処理の詳細
端末２における契約書生成処理、契約書確認処理、コンテンツ再生処理、契約書認証処理、配布鍵生成処理について、以下に詳しく説明する。
【０１１３】
Ａ．契約書生成処理
契約書生成処理は、図１２におけるＳ１０３に相当する処理であり、端末２において契約書作成プログラムP3により実行される。
この処理に先立って、端末２では、コンテンツパッケージ４に格納された契約書作成プログラムP4が、メディアリーダ２４を介して記憶部２５にインストールされる。
【０１１４】
本処理のフローを図１３に示す。
【０１１５】
ユーザが入力部２２を介して、インストールされた契約書作成プログラムP3の実行指示を行うと、契約書作成プログラムP3が、バス３１を介して制御部２０へロードされ、契約書作成処理の実行が開始される。なお、以下のステップは、制御部２０の指示に基づいて処理される。
【０１１６】
まず、ユーザ鍵生成部２６の装置固有情報読出し部２６０が、端末２の端末固有情報INFuserを読み出す（ステップＳ２００）。
【０１１７】
読み出された端末固有情報INFuserは、ユーザ秘密鍵生成部２６１に入力される。ユーザ秘密鍵生成部２６１は、この端末固有情報INFuserに基づいて適当な数値変換を行い、ユーザ秘密鍵Kpri-userを生成する（ステップＳ２０１）。ここで、適当な数値変換とは、端末固有情報INFuserからユーザ秘密鍵Kpri-userを推測するのが困難で、かつ、複数の端末固有情報から同一のユーザ秘密鍵が生成されることが無い変換である。
【０１１８】
続いて、生成されたユーザ秘密鍵Kpri-userは、ユーザ公開鍵生成部２７０に入力され、このユーザ秘密鍵Kpri-userに対応した公開鍵ペアとなるユーザ公開鍵Kpub-userが計算によって求められる（ステップＳ２０２）。
【０１１９】
次に、契約書生成部２７１において、生成されたユーザ公開鍵Kpub-userと契約情報とから、契約書DATcont８が生成される（ステップＳ２０３）。ここで、契約情報は、端末２の表示部２１を介して、コンテンツの種類やユーザ名など、契約書DATcont８が含む情報の入力を促す表示を参照しながら、ユーザによって入力部２２から入力された情報である。
【０１２０】
生成された契約書DATcont８は、デジタル署名生成部２７３に入力され、配信者秘密鍵保持部２７２に保持されている配信者秘密鍵Kpri-distを用いて暗号化され、デジタル署名E(DATcont, Kpri-dist)となる（ステップＳ２０４）。
【０１２１】
Ｂ．契約書確認処理
契約書確認処理は、図１２におけるステップＳ１０４に相当する処理であり、端末２において契約書作成プログラムP3により実行される。
図１４は、端末２において、生成された契約書に付加されるデジタル署名が、配信者秘密鍵Kpri-distで暗号化されたものか否かを判断する処理のフロー図である。
【０１２２】
なお、上述の契約書作成処理において、作成された契約書DATcont８とそのデジタル署名E(DATcont, Kpri-dist)は、記憶部２５に格納されている。また、配信者公開鍵Kpub-distも、記憶部２５に格納されている。この配信者公開鍵Kpub-distは、事前にサーバ１から受信して取得、あるいは、前記契約書作成プログラムP3内部に隠蔽された形で実装されており、プログラムP3の実行により取得される。
【０１２３】
デジタル署名が、記憶部２５からバス３１を介して、デジタル署名復号部２９１に読み込まれる。同様に、配信者公開鍵Kpub-distが記憶部２５からバス３１を介して、デジタル署名復号部２９１に読み込まれる。
【０１２４】
デジタル署名復号部２９１において、配信者公開鍵Kpub-distを用いて、デジタル署名が復号され、復号値比較部２９２へ入力される（ステップＳ６００）。
【０１２５】
続いて、契約書８が、記憶部２５からバス３１を介して復号値比較部２９２へ読み込まれ、復号値比較部２９２において、契約書８と復号されたデジタル署名の一意性が判断される（ステップＳ６０１）。ステップＳ６０１における結果は、バス３１を介して表示部２１へ出力されると共に、制御部２０に出力される（ステップＳ６０２）。
【０１２６】
Ｃ．契約書認証処理
契約書認証処理は、図１２におけるステップＳ１０７の処理であり、契約書認証プログラムP1を利用して、端末２から受信した契約書８の正当性を判断する。
この処理に先立って、サーバ１には、端末２から通信部１３を介して受信した署名付き契約書８が、バス１８を介して記憶部１５に格納される。
【０１２７】
図１５にサーバ１における契約書認証処理のフローを示す。
【０１２８】
サーバ１において、入力部１２を介して契約書認証プログラムP1の実行を指示すると、契約書認証プログラムP1が、記憶部１５からバス１８を介して制御部１０にロードされ、処理が開始される。なお、以下のステップは、制御部１０の指示にしたがって処理される。
【０１２９】
記憶部１５に格納された署名付き契約書８は、バス１８を介して契約書解析部１６０に入力される。
【０１３０】
契約書解析部１６０は、署名付き契約書８からユーザ公開鍵Kpub-userとデジタル署名E(DATcont, Kpri-dist)を取り出し、それぞれ判定処理部１６３およびユーザ公開鍵復号処理部１６２に入力する。また、配信者公開鍵保持部１６１から配信者公開鍵Kpub-distが読み出され、ユーザ公開鍵復号処理部１６２に入力される（ステップＳ３００）。
【０１３１】
ユーザ公開鍵復号処理部１６２は、デジタル署名E(DATcont, Kpri-dist)を、配信者公開鍵Kpub-distを用いて復号する。復号した結果は判定処理部１６３に入力される（ステップＳ３０１）。
【０１３２】
判定処理部１６３は、ステップＳ３００で取得したユーザ公開鍵Kpub-userと、Ｓ３０２でのデジタル署名の復号結果である契約書中のユーザ公開鍵Kpub-userとを比較し、正当であるか否か判断する（ステップＳ３０２）。契約書が正当でない場合、本処理を中断する。一方、契約書が正当である場合、ユーザ公開鍵Kpub-userを正規ユーザの鍵とし、記憶部１５の正規ユーザリストLISTにユーザと対応させて記憶する（ステップＳ３０３）。
【０１３３】
Ｄ．配布鍵生成処理
配布鍵生成処理は、図１２のステップＳ１０８に相当する処理であり、サーバ１において、ユーザから受信した契約書DATcont８が正当であると判断された場合、端末２でのみ復号可能なコンテンツ鍵を生成する。
【０１３４】
サーバ１における配布鍵生成処理のフローを図１６に示す。
【０１３５】
サーバ１において、入力部１２を介して、配布鍵作成プログラムP2の実行が指示されると、配布鍵作成プログラムＰ２が、記憶部１５からバス１８を介して制御部１０にロードされ、実行が開始される。
【０１３６】
まず、セッション鍵生成部１７０において、乱数値であるセッション鍵Ksが生成される（ステップＳ４００）。生成されたセッション鍵Ksはコンテンツ鍵暗号化部１７１およびセッション鍵暗号化部１７２に入力される。
【０１３７】
一方、コンテンツ鍵Kcが、記憶部１５からバス１８を介して取り出されてコンテンツ鍵暗号化部１７１に入力される。コンテンツ鍵暗号化部１７１は、入力されたセッション鍵Ksを用いて、コンテンツ鍵Kcを暗号化し、これを配布鍵構成部１７３へ出力する（ステップＳ４０１）。
【０１３８】
配布先であるユーザの公開鍵Kpub-userが、記憶部１５の正規ユーザ鍵リストLISTからバス１８を介してセッション鍵暗号化部１７２へ入力される。セッション鍵暗号化部１７２は、入力されたセッション鍵を、ユーザ公開鍵Kpub-userを用いて暗号化し、これを配布鍵構成部１７３へと出力する（ステップＳ４０２）。
【０１３９】
続いて、配布鍵構成部１７３において、暗号化コンテンツ鍵E(Kc, Ks)と暗号化セッション鍵E(Ks, Kpub-user)が、所定の配布鍵フォーマットに従って格納され、配布鍵EKcとして（ステップＳ４０３）、バス１８を介して記憶部１５へ出力される。
【０１４０】
Ｅ．コンテンツ再生処理
図１７は、端末２におけるコンテンツ再生処理のフロー図である。
コンテンツ再生処理は、図１２のステップＳ１１１に相当する処理である。
この処理に先立って、端末２は、予め、サーバ１から通信部２３を介して配布鍵EKcを受け取ると、これを、バス３１を介して記憶部２５へ格納する。さらに、端末２は、提供されたコンテンツパッケージ４に格納された再生プログラムP4を、メディアリーダ２４を介して記憶部２５へインストールする。
【０１４１】
まず、入力部２２を介して、再生プログラムP4の実行指示が入力されると、記憶部２５にインストールされた再生プログラムP4が、バス３１を介して制御部２０へロードされ、実行が開始される。
【０１４２】
配布鍵EKcが、記憶部２５からバス３１を介して配布鍵解析部２８０に入力されると、配布鍵解析部２８０は、配布鍵EKcから暗号化セッション鍵E(Ks, Kpub-user)を取り出し、これをセッション鍵復号部２８１へ入力する（ステップＳ５００）。
【０１４３】
続いて、ユーザ鍵生成部２６においてユーザ秘密鍵Kpri-userが生成される。（ステップＳ５０１）。生成されたユーザ秘密鍵Kpri-userは、セッション鍵復号部２８１へ入力される。セッション鍵復号部２８は、この鍵を用いて、暗号化セッション鍵E(Ks, Kpub-user)を復号し、これをコンテンツ鍵復号部２８２へ入力する（ステップＳ５０２）。
【０１４４】
さらに、配布鍵解析部２８０は、配布鍵EKcから暗号化コンテンツ鍵E(Kc, Ks)を取り出し、これをコンテンツ鍵復号部２８２へ入力する。
【０１４５】
コンテンツ鍵復号部２８２は、Ｓ５０２において入力されたセッション鍵Ksを用いて暗号化コンテンツ鍵E(Kc, Ks)を復号し、コンテンツ鍵Kcを得る（ステップＳ５０３）。
【０１４６】
さらに、コンテンツ鍵Kcは、復号部２８３へ入力される。同時に、メディアリーダ２４に接続されたコンテンツパッケージ４からバス３１を介して読み出された暗号化コンテンツE(C, Kc)は、復号部２８３において、コンテンツ鍵Kcを用いて復号され、コンテンツＣが得られる（ステップＳ５０４）。
【０１４７】
得られたコンテンツＣは、バス３１を介して再生部３０へ入力され、再生処理が行われる（ステップＳ５０５）。
【０１４８】
上記実施例のサーバ１および端末２は、本実施例を分かりやすく説明するために構成した一例であり、これに限定されるものではない。例えば、鍵生成部は端末とデータの送受信が可能な他の装置に構築しても良く、また、鍵情報保持部は、装置内の記憶領域や外部の記憶装置に構築されていても良い。さらに、プログラムは、機能ごとに分割した形態で構成されていても良く、また統合されていても良い。
【０１４９】
上記実施例では、コンテンツ鍵はコンテンツ毎に異なるよう設定したが、例えば、同じ種類のコンテンツに同じ鍵を設定しても良い。これによると、コンテンツを種類ことにまとめて販売するなどの展開が図れる。
【０１５０】
また、上記実施例のほかに、ユーザが配信者から購入したコンテンツ鍵は、一旦ユーザ秘密鍵で全て復号された後、別途生成された端末に固有な秘密鍵暗号方式の秘密鍵を用いて再度暗号化され保存されてもよい。これによると、再生プログラムによってコンテンツを再生させる際、秘密鍵暗号方式による復号処理のみで済むため、復号時間を短縮することができる。
【０１５１】
また、上記実施例のほかに、コンテンツパッケージを特定するように、コンテンツパッケージ毎に異なる番号を付与し、これを予めコンテンツパッケージに記憶しておき、これをユーザが契約する際に契約書内に含めて提示するようにしても良い。これによると、コンテンツパッケージそのものが不正にコピーされて利用されるのを防ぐことができる。これは、メディアに最初から平文のコンテンツやその他金銭価値のあるデータを含めておいてメディアそのものが販売されるようなシステムを構築した際に、流通過程でのメディアの複製販売を防止することができる。
【０１５２】
なお、上記実施例では、ユーザが使用する端末２において、生成された契約書が配信者に送付される前に、この契約書の正当性を確認する処理を行うようにしたが、契約書の確認はサーバ１側のみで行うようにしてもよい。
【０１５３】
また、上記実施例では、コンテンツパッケージ４を、再生プログラムP4、契約書作成プログラムP3、暗号化コンテンツE(C, Kc)を含むように構成したが、再生プログラムと暗号化コンテンツとを併せて一つのプログラムとし、このプログラムに対する実行および中断を、上記実施例におけるコンテンツ鍵の有無によって制御するようにしてもよい。
【実施例２】
【０１５４】
上記実施例は、ユーザ端末において契約書生成プログラムによって生成された契約書を、配信者側サーバが検証し、契約書が正当と判断された場合にのみ、暗号化された復号鍵をユーザ端末に提供し、ユーザ端末はこれを記憶部に保持し、コンテンツ利用時、暗号化された復号鍵を動的に復号し、コンテンツの再生を行うものであった。
【０１５５】
これに対し、本実施例は、ユーザがコンテンツを利用するにあたり、契約書を生成しこれを配信者端末に送付し、配信者端末は契約書の正当性を検証する。検証の結果、契約書が正当であった場合、ユーザを正規ユーザとして登録する。ユーザがコンテンツを再生する時、コンテンツの暗号を解く復号鍵の送付をサーバに要求し、サーバは、正規ユーザであることを確認した後、復号鍵を送付する。ユーザ端末は、送られた復号鍵を用いてコンテンツの再生を行うが、この復号鍵は保持されず、再生ごとに消去される。
【０１５６】
１．サーバの構成
本実施例の配信者サーバ１Ａは、図４の実施例１におけるサーバ１の構成と同一である。但し、図４に示される配布鍵生成部１７の構成が実施例１と異なる。本実施例における配布鍵生成部１７Ａの構成を図１８に示す。
【０１５７】
配布鍵生成部１７Ａは、セッション鍵生成部１７０、コンテンツ鍵暗号化部１７１、セッション鍵暗号化部１７２、配布鍵構成部１７３、鍵許諾判定部１７４を備える。
【０１５８】
セッション鍵生成部１７０は、セッション毎に異なる乱数を生成し、これをセッション鍵Ksとする。
【０１５９】
コンテンツ鍵暗号化部１７１は、コンテンツ鍵Kcをセッション鍵Ksを用いて暗号化し、暗号化コンテンツ鍵E(Kc, Ks)を生成する。
【０１６０】
セッション鍵暗号化部１７２は、鍵許諾判定部１７４において、正規ユーザである判定された時、セッション鍵Ksをユーザ公開鍵Kpub-userを用いて暗号化し、暗号化セッション鍵E(Ks, Kpub-user)を生成する。
【０１６１】
配布鍵生成部１７３は、コンテンツ鍵暗号化部１７１で得られた暗号化コンテンツ鍵E(Kc, Ks)とセッション鍵暗号化部１７２で得られた暗号化セッション鍵E(Ks, Kpub-user)を、予め定められた形式にしたがってパケット化し配布鍵EKcを生成する。
【０１６２】
鍵許諾判定部１７４は、サーバ１Ａが管理する正規ユーザリスト、ユーザを識別するためのユーザ情報、コンテンツ識別子とに基づいて、当該ユーザが正規ユーザとして登録されているかを判定する。
【０１６３】
２．ユーザ端末装置
ユーザ端末２Ａは、図７の実施例１における端末２の構成と同一である。但し、図７に示される契約書生成部２７の構成が実施例１と異なる。本実施例における契約書生成部２７Ａの構成を図１９に示す。
【０１６４】
契約書生成部２７Ａは、ユーザ公開鍵生成部２７０、契約書生成部２７１、配信者秘密鍵保持部２７２、デジタル署名生成部２７３の他に、乱数生成部２７４を備えている。
【０１６５】
ユーザ公開鍵生成部２７０は、ユーザ秘密鍵Kpri-userからユーザ公開鍵Kpub-userを生成する。
【０１６６】
契約書生成部２７１は、生成したユーザ公開鍵Kpub-userと、契約に関する情報、および後述するユーザ情報などを含む契約書DATcont８を作成する。
【０１６７】
配信者秘密鍵保持部２７２は、プログラムに埋め込まれた配信者の配信者秘密鍵Kpri-distを保持する。
【０１６８】
デジタル署名生成部２７３は、契約書DATcont８を配信者秘密鍵Kpri-distで暗号化し，デジタル署名E(DATcont, Kpri-dist)を生成する。
【０１６９】
乱数生成部２７４は、例えば、装置内の時計等の任意のデータを用いて、例え１０桁程度のランダムな数値を生成する。生成された乱数はユーザ情報として使用される。
【０１７０】
３．コンテンツの配信から利用までの流れ
コンテンツの配信から利用までの流れを図２０を参照して説明する。
【０１７１】
まず、配信側サーバ１Ａにおいて、契約書生成プログラムP3、再生プログラムP4、コンテンツ鍵Kcでコンテンツを暗号化した暗号化コンテンツE(C, Kc)を準備し、これらをセットにしてコンテンツパッケージ４とし、配布する（ステップＳ７００）。
【０１７２】
次に、ユーザ端末２Ａでは、当該コンテンツパッケージ４を入手し、当該コンテンツパッケージ４にサムネールコンテンツなどが格納されている場合は、それを再生するなどしてコンテンツを購入するか否かを決める（ステップＳ７０１）。コンテンツを購入、すなわち、メディア２０に記録された暗号化コンテンツを再生する場合には、契約書生成プログラムP3を用いてユーザ公開鍵Kpub-userを生成する（ステップＳ７０２）。
【０１７３】
ユーザ公開鍵Kpub-userは、ユーザの端末に固有な情報である。契約書生成プログラムP3は、ユーザ公開鍵Kpub-user、コンテンツ情報、ユーザ情報からなる契約書DATcont８を生成し、これに対して配信者秘密鍵Kpri-distによるデジタル署名を生成する（ステップＳ７０３）。署名された契約書E(Datcont, Kpri-dist)は、配信者公開鍵Kpub-distを用いてその正当性が検証される（ステップＳ７０４）。この契約書の確認の結果、制御部２０は、生成した契約書が正当であれば、ステップＳ７０５からの処理を続行する。一方、生成した契約書が正当でない場合、本処理を終了する。
【０１７４】
端末２Ａにおいて、検証された署名付き契約書DATcont８は、ネットワーク３を介してサーバ１Ａに送信される（ステップＳ７０５）。
【０１７５】
サーバ１Ａは、ステップＳ７０５で端末２Ａから送信された署名付き契約書DATcont８を受信する（ステップＳ７０６）と、配信者公開鍵Kpub-distを用いてデジタル署名を復号し、受信したデジタル署名付き契約書DATcont８を認証し、この結果に基づいて当該ユーザを正規ユーザとして登録するか否かを判断する（ステップＳ７０７）。  前記認証において、契約書DATcont８が正当でないと判断されると、ユーザに契約中止を示す情報を送信し、処理を終了する。
【０１７６】
一方、契約書DATcont８が正当と認証されると、契約書DATcont８に記載されたコンテンツの識別情報とユーザ公開鍵Kpub-userをユーザ情報に対応づけて正規ユーザリストLISTに登録し、その後ユーザにユーザ登録が完了した旨を示す情報を送信する（ステップＳ７０８）。
【０１７７】
端末２Ａは、登録完了の情報を受けると（ステップＳ７０９）、暗号化コンテンツを再生するために再生プログラムP4を起動する。そして、再生したいコンテンツを選択すると、自身のユーザ情報と配信されるコンテンツを識別する情報とをサーバ１Ａに送信して、コンテンツ鍵の送信を依頼する（ステップＳ７１０）。
【０１７８】
具体的には、コンテンツパッケージ４に格納されている暗号化コンテンツのリスト情報を表示部２１に表示し、入力部２２を介してユーザが再生を所望するコンテンツを選択すると、選択されたコンテンツの識別情報と、契約書生成処理（ステップＳ７０３）で生成され、記憶部２５に保持されているユーザ情報と共に、バス３１および通信部２３を介してサーバ１Ａに送信する。同時に、生成したコンテンツ識別情報を記憶部２５に記憶する。
【０１７９】
サーバ１Ａは、端末２Ａから受信したユーザ情報とコンテンツの識別情報とから、正規ユーザリストLISTにユーザ情報とコンテンツ識別情報が登録されているかを検索する。正規ユーザリストLISTにユーザ情報とコンテンツ識別情報が登録されている場合、正規ユーザリストLISTから当該ユーザ情報に対応するユーザ公開鍵Kpub-userを取得し、コンテンツ識別情報に対応するコンテンツ鍵Kcをユーザ公開鍵Kpub-userを用いて暗号化する。ここで、生成された暗号化コンテンツ鍵EKcは、配布鍵としてユーザに送信される（ステップＳ７１１）。詳細は後述する。
【０１８０】
一方、正規ユーザリストLISTにユーザ情報とコンテンツ識別情報が登録されていない場合、未登録である旨を示す情報をユーザに通知し、処理を終了する。
【０１８１】
端末２Ａは、サーバ１Ａから送信された配布鍵EKcを受信すると（ステップＳ７１２）と、端末２Ａに固有なユーザ秘密鍵Kpri-userを生成し、この秘密鍵を用いて配布鍵EKcを復号する。更に復号されたコンテンツ鍵Kcを用いて暗号化コンテンツE(C, Kc)を復号し、再生を行う。なお、本実施例では、再生処理中において復号されたコンテンツ鍵およびコンテンツは、再生後直ちにユーザ端末から削除される（ステップＳ７１３）。
【０１８２】
４．各処理の詳細
端末２Ａにおける契約書生成処理、契約書確認処理、コンテンツ再生処理、契約書認証処理、配布鍵生成処理について、以下に説明する。
【０１８３】
Ａ．契約書生成処理
契約書生成処理は図２０におけるステップＳ７０３に相当する処理であり、端末２Ａにおいて契約書作成プログラムP3により実行される。
【０１８４】
この処理に先立って、端末２Ａでは、コンテンツパッケージ４に格納された契約書作成プログラムP4が、メディアリーダ２４を介して記憶部２５にインストールされる。
【０１８５】
本処理の詳細については、契約書にユーザ情報を含むことを除いて、実施例１における契約書生成処理と同一である。すなわち、図１３に示す契約書生成処理のフローにおいて、契約書を作成するステップＳ２０３では、まず、乱数を生成し、これをユーザ情報として、ユーザ公開鍵Kpub-user、コンテンツ識別情報などの契約情報と共に契約書を作成する。本処理のフローを図２１に示す。
【０１８６】
ユーザが入力部２２を介して、インストールされた契約書作成プログラムP3の実行指示を行うと、契約書作成プログラムP3が、バス３１を介して制御部２０へロードされ、実行が開始される。なお、以下のステップは、制御部２０の指示に基づいて処理される。
【０１８７】
まず、装置固有情報読出し部２６０が、端末２Ａの端末固有情報INFuserを読み出す（ステップＳ９００）。
【０１８８】
読み出された端末固有情報INFuserは、ユーザ秘密鍵生成部２６１に入力される。ユーザ秘密鍵生成部２６１は、この端末固有情報INFuserに基づいて適当な数値変換を行い、ユーザ秘密鍵Kpri-userを生成する（ステップＳ９０１）。ここで、適当な数値変換とは、ハードウェア情報INFuserからユーザ秘密鍵Kpri-userを推測するのが困難で、かつ、複数のハードウェア情報から同一のユーザ秘密鍵が生成されることが無い変換である。
【０１８９】
続いて、生成されたユーザ秘密鍵Kpri-userは、ユーザ公開鍵生成部２７０に入力され、このユーザ秘密鍵Kpri-userに対応した公開鍵ペアとなるユーザ公開鍵Kpub-userが計算によって求められ（ステップＳ９０２）、得られたユーザ公開鍵Kpub-userは契約書生成部２７１へ出力される。
【０１９０】
一方、乱数生成部２７４において、乱数が生成され（ステップＳ９０３）、契約書生成部２７１に入力される。更に、契約情報が契約書生成部２７１に入力され、契約書生成部２７１は、ユーザ公開鍵Kpub-user、入力された契約情報と乱数とを含む契約書を作成する（ステップＳ９０４）。ここで、契約情報とは、端末２Ａの表示部２１を介して、コンテンツの種類やユーザ名など、契約書DATcont８が含む情報の入力を促す表示を参照しながら、ユーザによって入力部２２から入力された情報である。
【０１９１】
また、乱数はユーザを特定するための情報であり、ここではユーザ情報としてユーザ毎に生成され、記憶部２５に記憶される。
【０１９２】
生成された契約書DATcont８は、デジタル署名生成部２７３に入力され、配信者秘密鍵保持部２７２に保持されている配信者秘密鍵Kpri-distを用いて暗号化され、デジタル署名E(DATcont, Kpri-dist)となる（ステップＳ９０５）。
【０１９３】
Ｂ．契約書確認処理
契約書確認処理は、図２０におけるステップＳ２０４に相当する処理であり、端末２Ａにおいて契約書作成プログラムP3により実行される。
【０１９４】
本処理の手順は、実施例１における契約書確認処理（ステップＳ１０４）と同一であるため説明を省略する。
【０１９５】
Ｃ．契約書認証処理
契約書認証処理は、図２０におけるステップＳ７０７に相当する処理であり、契約書認証プログラムP1を利用して、端末２Ａから受信した契約書８の正当性を判断する。
【０１９６】
本処理の手順は、実施例１における契約書認証処理（ステップＳ１０７）と同一であるため説明を省略する。
【０１９７】
Ｄ．配布鍵生成処理
配布鍵生成処理は、図２０におけるステップＳ７１１に相当する処理であり、ユーザの端末２Ａからコンテンツ再生が指示される（ステップＳ７１０）と、再生配布鍵作成プログラムP2が、記憶部１５からバス１８を介して制御部１０にロードされ、実行が開始される。なお、以下のステップは、制御部１０の指示にしたがって処理される。本実施例における配布鍵生成処理のフローを図２２に示す。
【０１９８】
まず、サーバ１Ａでは、通信部１１０６を介して端末２Ａから受信したユーザ情報とコンテンツ識別情報が受信され（ステップＳ１００１）、これらがバス１８を介して配布鍵生成部１７の鍵提供許諾判定部１７４に入力される。
【０１９９】
また、記憶部２５に保持された正規ユーザリストLISTもバス１８を介して読み出され、鍵提供許諾判定部１７４に入力される。
【０２００】
鍵提供許諾判定部１７４では、入力されたユーザ情報に対応するユーザが正規ユーザリストLISTに登録されているか否かを判定する（ステップＳ１００２）。
【０２０１】
ユーザが正規ユーザリストLISTに登録されている場合、更に、入力されたコンテンツ識別情報が正規ユーザリストLISTに登録されているか否かを判定する（ステップＳ１００３）。
【０２０２】
ステップＳ１００２およびステップＳ１００３において、対象のデータが正規ユーザリストLISTに登録されていない場合、共に本処理を中止する。
【０２０３】
ステップＳ１００３において、コンテンツ識別情報が正規ユーザリストLISTに登録されている場合、このコンテンツ識別情報に対するコンテンツ鍵Kcを記憶部１５から取得してコンテンツ鍵暗号化部１７１に入力し、また、ユーザ情報に対するユーザ公開鍵Kpub-userを正規ユーザリストListから取得してセッション鍵暗号化部１７２に入力する。
【０２０４】
セッション鍵生成部１７０では、セッション鍵Ksを生成し、生成されたセッション鍵Ksは、セッション鍵暗号化部１７２およびコンテンツ鍵暗号化部１７１に入力される（ステップＳ１００４）。
【０２０５】
セッション鍵暗号化部１７２は、入力されたユーザ公開鍵Kpub-userを用いて入力されたセッション鍵Ksを暗号化し、配布鍵構成部１７３へ出力する（ステップＳ１００５）。また、コンテンツ鍵暗号化部１７１は、入力されたセッション鍵Ksを用いて入力されたコンテンツ鍵Kcを暗号化し、配布鍵構成部１７３へ出力する（ステップＳ１００６）。
【０２０６】
配布鍵構成部１７３は、入力された暗号化セッション鍵と暗号化コンテンツ鍵とをまとめて配布鍵とし、これをバス１８を介して通信部１３からユーザの端末２Ａに送信する（ステップＳ１００７）。
【０２０７】
Ｅ．コンテンツ再生処理
コンテンツ再生処理は、図２０のステップＳ７１３に相当する処理であり、再生プログラムP4によって実行される。なお、再生プログラムP4は予めコンテンツパッケージ４からメディアリーダ２４およびバス３１を介して端末２Ａにインストールされ、記憶部２５に格納されている。
【０２０８】
本処理は、ユーザによるコンテンツ選択（図２０のステップＳ７１０）に基づいてサーバ１Ａから配信される配布鍵の受信に引き続いて、実行される。
【０２０９】
なお、本処理の詳細は、実施例１におけるコンテンツ再生処理（ステップＳ１１１）と同一であるため説明を省略する。
【０２１０】
Ｆ．端末変更通知処理
次に、ユーザが端末を変更する場合の処理について説明する。まず、現在使用している端末２Ａを用いて、当該端末に代わって異なる端末を使用する旨をサーバ１Ａに通知する処理について説明する。本処理のフローを図２３に示す。
【０２１１】
ユーザ端末２Ａにおいて、現在使用している端末２Ａに代わり異なる端末２Ｂを使用する旨を示す情報（端末変更情報）を作成する（ステップＳ１１００）。さらに、端末２Ａに固有な情報に基づいてユーザ公開鍵Kpub-userを生成する（ステップＳ１１０１）。
【０２１２】
生成されたユーザ公開鍵Kpub-userは、作成された端末変更情報に統合され、統合された端末変更情報は、配信者秘密鍵Kpri-userによって暗号化され、デジタル署名が付加される（ステップＳ１１０２）。
【０２１３】
署名された端末変更情報は、配信者公開鍵Kpub-distを用いてその正当性が検証される（ステップＳ１１０３）。この確認の結果、制御部２０は、生成した端末変更情報が正当であれば、ステップＳ１１０４からの処理を続行する。一方、生成した端末変更情報が正当でない場合、本処理を終了する。
【０２１４】
端末２Ａにおいて、検証された署名付き端末変更情報は、ネットワーク３を介してサーバ１Ａに送信される（ステップＳ１１０４）。
【０２１５】
サーバ１Ａは、インターネット１０を介して署名付き端末変更情報を受信する（ステップＳ１１０５）と、、配信者公開鍵Kpub-distを用いてデジタル署名を復号し、受信したデジタル署名付き端末変更情報を認証し、この結果に基づいて、ユーザ公開鍵Kpub-userと端末変更情報の正当性を判断する（ステップＳ１１０６）。ここで、端末変更情報が正当と認証されなければ、本処理を中止し、変更登録が未完了である旨を示す情報を端末２Ａへ送信する。一方、端末変更情報が正当と認証されると、正規ユーザリストLISTから変更前の端末２Ａに対応したユーザ公開鍵Kpub-userを検索し、これに変更を示すマークを付加し、変更登録が完了した旨を示す情報を端末２Ａへ送信する（ステップＳ１１０７）。
【０２１６】
端末２Ａは、変更登録完了あるいは変更登録未完了等を示す情報を受信すると、これらを表示部２１に出力するなどしてユーザに告知し、本処理を終了する（ステップＳ１１０８）。
【０２１７】
Ｇ．端末登録処理
上述の端末変更通知処理が終了すると、ユーザは新しく使用する端末２Ｂにコンテンツパッケージ４の各種プログラムをインストールする。そして、新端末２Ｂを用いて以下に説明する端末登録処理を行う。本処理のフローを図２４に示す。
【０２１８】
なお、本処理に先立ち、変更前の端末２Ａに保持されていたユーザ情報を新端末２に複写する。
【０２１９】
まず、端末２Ｂはユーザ情報を取得する（ステップＳ１２００）と、端末２Ｂの固有な情報に基づいてユーザ公開鍵Kpub-userを生成する。（ステップＳ１２０１）生成されたユーザ公開鍵Kpub-userはユーザ情報に統合され、統合されたユーザ情報は、配信者秘密鍵Kpri-userによって暗号化され、デジタル署名が付加される（ステップＳ１２０２）。
【０２２０】
署名されたユーザ情報は、配信者公開鍵Kpub-distを用いてその正当性が検証される（ステップＳ１２０３）。この検証の結果、制御部２０は、生成したユーザ情報が正当であれば、ステップＳ１２０４からの処理を続行する。一方、作成したユーザ情報が正当でない場合、本処理を終了する。
【０２２１】
端末２Ｂにおいて、検証された署名付きユーザ情報は、ネットワーク３を介してサーバ１Ａに送信される（ステップＳ１２０４）。
【０２２２】
サーバ１Ａは、ネットワーク１０を介して署名付きユーザ情報を受信する（ステップＳ１２０５）と、配信者公開鍵Kpub-distを用いてデジタル署名を復号し、受信したデジタル署名付きユーザ情報を認証し、この結果に基づいて、ユーザ公開鍵Kpub-userを含むユーザ情報の正当性を判断する（ステップＳ１２０６）。ここで、ユーザ情報が正当でないと認証されなければ、変更登録が未完了である旨を示す情報を端末２Ｂへ送信し、本処理を中止する。一方、ユーザ情報が正当と認証されると、このユーザ情報に対応するユーザ公開鍵であって、上述の端末変更処理において変更中であるとマークされているユーザ公開鍵を正規ユーザリストLISTから検索し、検索によって得られたユーザ公開鍵をステップＳ１２０６で正当と判断されたユーザ公開鍵Kpub-userによって上書きし、その後、端末２Ｂの登録が完了した旨を示す情報を端末２Ｂへ送信する（ステップＳ１２０７）。
【０２２３】
ステップＳ１２０７において、ユーザ情報が正規ユーザリストLISTに無い場合、あるいは、ユーザ情報が正規ユーザリストLISTに存在してもユーザ情報に対するユーザ公開鍵に変更中を示すマークが付されていない場合には、変更登録が未完了である旨を示す情報を端末２Ｂへ送信し、本処理を中止する。
【０２２４】
端末２Ｂにおいて、端末登録完了の情報を受信すると、これを表示部２１に表示するなどしてユーザに告知し、本処理を終了する（ステップＳ１２０８）。
【０２２５】
なお、本発明は、上記実施の形態に限定されるものではなく、他に種々の変更が可能であることは言うまでもない。
【０２２６】
上記実施例のほか、前記契約書作成プログラムは、ユーザが所望する複数のコンテンツの復号鍵をまとめてコンテンツ識別情報としてサーバに対して送信することも可能である。
【図面の簡単な説明】
【０２２７】
【図１】本発明のコンテンツ配信システムの概要を示す図である。
【図２】本発明のセキュリティパラメータを説明する図である。
【図３】本発明の実施例１におけるコンテンツパッケージの構成を示す図である。
【図４】本発明の実施例１におけるサーバ１の構成を示す図である。
【図５】本発明の実施例１におけるサーバ１の契約書認証部の構成を説明する図である。
【図６】本発明の実施例１におけるサーバ１の配布鍵生成部の構成を説明する図である。
【図７】本発明の実施例１における端末２の構成を示す図である。
【図８】本発明の実施例１における端末２のユーザ鍵生成部の構成を説明する図である。
【図９】本発明の実施例１における端末２の契約書生成部の構成を説明する図である。
【図１０】本発明の実施例１における端末２のコンテンツ復号部の構成を説明する図である。
【図１１】本発明の実施例１における端末２のデジタル署名確認部の構成を説明する図である。
【図１２】本発明の実施例１におけるコンテンツ再生までの処理を示すフローチャートである。
【図１３】本発明の実施例１における契約書生成処理を示すフローチャートである。
【図１４】本発明の実施例１における契約書認証処理を示すフローチャートである。
【図１５】本発明の実施例１における配布鍵生成処理を示すフローチャートである。
【図１６】本発明の実施例１におけるコンテンツ再生処理を示すフローチャートでである。
【図１７】本発明の実施例１におけるデジタル署名文認証処理処理を示すフローチャートである。
【図１８】本発明の実施例２におけるコンテンツパッケージの構成を示す図である。
【図１９】本発明の実施例２における端末２Ａのコンテンツ復号部の構成を説明する図である。
【図２０】本発明の実施例２におけるソフトウェア再生処理を示すフローチャートである。
【図２１】本発明の実施例２における契約書生成処理を示すフローチャートである。
【図２２】本発明の実施例２における配布鍵生成処理を示すフローチャートである。
【図２３】本発明の実施例２における端末変更通知処理を示すフローチャートである。
【図２４】本発明の実施例２における端末登録処理を示すフローチャートである。
【符号の説明】
【０２２８】
１    配信サーバ
２    ユーザ端末
３    ネットワーク
４    コンテンツパッケージ
５    デジタル著作物
６    暗号化デジタル著作物
７    復号鍵
８    契約書
【図１】
2005086457.tif 000003
【図２】
2005086457.tif 000004
【図３】
2005086457.tif 000005
【図４】
2005086457.tif 000006
【図５】
2005086457.tif 000007
【図６】
2005086457.tif 000008
【図７】
2005086457.tif 000009
【図８】
2005086457.tif 000010
【図９】
2005086457.tif 000011
【図１０】
2005086457.tif 000012
【図１１】
2005086457.tif 000013
【図１２】
2005086457.tif 000014
【図１３】
2005086457.tif 000015
【図１４】
2005086457.tif 000016
【図１５】
2005086457.tif 000017
【図１６】
2005086457.tif 000018
【図１７】
2005086457.tif 000019
【図１８】
2005086457.tif 000020
【図１９】
2005086457.tif 000021
【図２０】
2005086457.tif 000022
【図２１】
2005086457.tif 000023
【図２２】
2005086457.tif 000024
【図２３】
2005086457.tif 000025
【図２４】
2005086457.tif 000026