(57)【要約】【課題】  １回の通信で送信されるファイル毎に鍵を変更する送受信システムにおいても、送受信エラーの発生時に受信済以降のデータのみを再度送受信できる送受信システムを提供すること。【解決手段】  受信装置２０は、コンテンツの各データ範囲に対応付けて、１または複数の鍵を保存するための鍵リスト２６に保存された鍵の中から、復号化しようとするコンテンツのデータ範囲に属する鍵を選択し、選択された鍵を使用して、コンテンツのデータを復号化する。選択された鍵が、復号化しようとするコンテンツのデータ範囲に属さない場合、鍵リスト２６に保存された鍵の中から、現在設定されている鍵とは異なる鍵を選択する。【選択図】図６
2006191341.tif 000002
【特許請求の範囲】
【請求項１】
コンテンツを保存するためのコンテンツデータベースと、
該コンテンツの各データ範囲に対応付けられた、１または複数の鍵を保存するための鍵リストと、
該鍵リストに保存された鍵の中から、復号化しようとするコンテンツのデータ範囲に対応する鍵を選択する鍵選択手段と、
該鍵選択手段によって選択された鍵を使用して、該コンテンツのデータを復号化する復号化手段とを備える、コンテンツ復号化装置。
【請求項２】
前記鍵選択手段によって選択された鍵が、復号化しようとするコンテンツのデータ範囲に対応するか否かを判断する判断手段をさらに備え、
該判断手段が選択された鍵が復号化しようとするコンテンツのデータ範囲に対応しないと判断した場合、前記鍵選択手段が前記鍵リストに保存された鍵の中から、現在選択されている鍵とは異なる鍵を選択する、請求項１に記載のコンテンツ復号化装置。
【請求項３】
前記コンテンツおよび該コンテンツを復号化する鍵を受信する受信手段と、
該鍵を、該コンテンツの各データ範囲に対応付けて前記鍵リストに登録する鍵登録手段とをさらに備える、請求項１または２に記載のコンテンツ復号化装置。
【請求項４】
請求項１〜３のいずれかに記載のコンテンツ復号化装置と、コンテンツ暗号化装置とを備え、
該コンテンツ暗号化装置が、コンテンツを暗号化する鍵を生成する鍵生成手段と、
該鍵生成手段が生成した鍵を使用して該コンテンツを暗号化する暗号化手段と、
該コンテンツおよび該鍵を該コンテンツ復号化装置に送信する送信手段とを有する、コンテンツ復暗号化システム。
【請求項５】
コンテンツを保存するためのコンテンツデータベースと、
該コンテンツの各データ範囲に対応付けられた、１または複数の鍵を保存するための鍵リストと、
該鍵リストに保存された鍵の中から、復号化しようとするコンテンツのデータ範囲に対応する鍵を選択する鍵選択手段と、
該鍵選択手段によって選択された鍵を使用して、該コンテンツのデータを復号化する復号化手段と、
受信装置が該コンテンツを復号化するための受信装置用鍵を生成する鍵生成手段と、
該鍵生成手段が生成した該受信装置用鍵を使用して、該復号化手段が復号化したコンテンツを暗号化する暗号化手段と、
該暗号化手段が暗号化したコンテンツを該受信装置に送信する送信手段とを備える、コンテンツ送信装置。
【請求項６】
コンテンツを保存するためのコンテンツデータベースと、
該コンテンツの各データ範囲に対応付けられた、１または複数の鍵を保存するための鍵リストと、
該コンテンツおよび該コンテンツを復号化する鍵を受信する受信手段と、
該コンテンツを該コンテンツデータベースに登録するコンテンツ登録手段と、
該鍵を、該コンテンツのデータ範囲に対応付けて該鍵リストに登録する鍵登録手段とを備える、コンテンツ受信装置。
【請求項７】
コンテンツの各データ範囲に対応付けられた１または複数の鍵を保存するための鍵リストに保存された鍵の中から、復号化しようとするコンテンツのデータ範囲に対応する鍵を選択する鍵選択ステップと、
該鍵選択ステップによって選択された鍵を使用して、該コンテンツのデータを復号化する復号化ステップとをコンピュータに実行させる、コンテンツ復号化プログラム。
【請求項８】
送信装置からコンテンツおよび該コンテンツを復号化する鍵を受信する受信ステップと、
該受信したコンテンツをコンテンツデータベースに登録するコンテンツ登録ステップと、
該コンテンツの各データ範囲に対応付けて、１または複数の鍵を保存するための鍵リストに、該受信した鍵を該受信したコンテンツのデータ範囲に対応付けて登録する鍵登録ステップとをコンピュータに実行させる、コンテンツ受信装置の動作プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、暗号化されたコンテンツを復号化する復号化装置、暗号化されたコンテンツを一旦復号化し、別の鍵で暗号化して送信する送信装置、および暗号化されたコンテンツを受信する受信装置、ならびにそれらの動作プログラムに関する。
【背景技術】
【０００２】
コンテンツファイル（以下、単にファイルということがある）を送信する送信装置と、送信装置からファイルを受信してデータベースに保存する受信装置とを備えるコンテンツ送受信システムにおいて、ファイルの第三者による傍受または改ざん、あるいはファイルの不正使用を防止するために、ファイルを鍵によって暗号化する方法が採用されている。送信装置または受信装置は、ファイル毎に一意的な鍵を使ってファイルを暗号化／復号化する。また、１回の通信で送信されるファイル毎に鍵を変更することにより、セキュリティを向上することができる。
【０００３】
一方、ファイルの送受信時に送受信エラー等の障害が発生すると、ファイルの送受信が途中で停止してしまう。この場合、ファイル全体を最初から送受信し直すと送受信が完了するまでに時間がかかってしまうので、受信済のデータ以降のデータのみを送受信する方法が採られている。しかし、この方法と、上記の１回の通信で送信されるファイル毎に鍵を変更する暗号化技術との両方を採用することは、以下の理由により不可能である。すなわち、１つのファイルの各データ範囲によって復号化する鍵が変更されてしまうからである。現在の技術では、受信装置は１つのファイルに対して鍵を１つしか保存しない。従って、ファイルを再生している途中で復号化する鍵が変わってしまい、ファイルの再生が途中で停止してしまう。そのため、１回の通信で送信されるファイル毎に鍵を変更する暗号化技術を用いる場合、送受信が途中で停止してしまうと、最初からファイル全体を送受信し直し、ファイルのデータ範囲によって鍵が変更されないようにする必要がある。
【０００４】
【特許文献１】特開２０００−３４１３２４号公報
【特許文献２】特開２００３−３１８８８１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
本発明の目的は、１回の通信で送信されるファイル毎に鍵を変更する送受信システムにおいても、送受信エラーの発生時に受信済以降のデータのみを送受信できる送受信システムを提供することである。
【課題を解決するための手段】
【０００６】
本発明の好ましい実施形態のコンテンツ復号化装置は、コンテンツを保存するためのコンテンツデータベースと、該コンテンツの各データ範囲に対応付けられた、１または複数の鍵を保存するための鍵リストと、該鍵リストに保存された鍵の中から、復号化しようとするコンテンツのデータ範囲に対応する鍵を選択する鍵選択手段と、該鍵選択手段によって選択された鍵を使用して、該コンテンツのデータを復号化する復号化手段とを備える。
【０００７】
鍵リストにはコンテンツの各データ範囲（鍵有効範囲）に対応して一意の鍵が保存されている。コンテンツを復号化する場合には、まず鍵リストの中からこれから復号化しようとするデータ範囲に対応した鍵を選択して、この鍵を設定する。選択された鍵を使用してコンテンツのデータを復号化する。つまり、鍵リストに保存されている鍵を順番に使用することにより、コンテンツのデータ全体を復号化することができる。従って、通信毎に鍵を変更する技術においても、送受信エラー等によりコンテンツ受信が途中で停止した時に、受信済のデータ以降のデータのみ再取得することができる。通信毎に変化する鍵を受信したデータ範囲に対応付けて保存して、データ範囲に対応する鍵を鍵リストに基づいて選択し、復号化するからである。
【０００８】
好ましい実施形態においては、コンテンツ復号化装置は、上記鍵選択手段によって選択された鍵が、復号化しようとするコンテンツのデータ範囲に対応するか否かを判断する判断手段をさらに備える。該判断手段が選択された鍵が復号化しようとするコンテンツのデータ範囲に対応しないと判断した場合、上記鍵選択手段は、上記鍵リストに保存された鍵の中から、現在選択されている鍵とは異なる鍵を選択する。
【０００９】
選択されている鍵が復号化しようとするデータ範囲に対応しないと判断されると、鍵リストの中から別の鍵を選択し設定する。つまり、現在選択されている鍵がデータ範囲に対応する間は、選択されている鍵を使ってコンテンツのデータを復号化し、現在選択されている鍵が復号化しようとするデータ範囲を外れると鍵を変更して、変更した鍵を使用して再びコンテンツのデータを復号化する。そのため、鍵リストに保存された鍵を順番に使ってデータ範囲の全てを復号化することができる。
【００１０】
好ましい実施形態においては、コンテンツ復号化装置は、上記コンテンツおよび該コンテンツを復号化する鍵を受信する受信手段と、該鍵を、該コンテンツの各データ範囲に対応付けて前記鍵リストに登録する鍵登録手段とをさらに備える。
【００１１】
コンテンツを受信した場合に、受信したコンテンツの各データ範囲に対応付けて鍵を保存するので、上記の通り、通信毎に変化する鍵を受信したデータ範囲毎に保存することができる。
【００１２】
本発明の別の局面においては、コンテンツ復暗号化システムが提供され得る。このシステムは、上記のコンテンツ復号化装置と、コンテンツ暗号化装置とを備える。該コンテンツ暗号化装置は、コンテンツを暗号化する鍵を生成する鍵生成手段と、該鍵生成手段が生成した鍵を使用して該コンテンツを暗号化する暗号化手段と、該コンテンツおよび該鍵を該コンテンツ復号化装置に送信する送信手段とを有する。
【００１３】
本発明の好ましい実施形態のコンテンツ送信装置は、コンテンツを保存するためのコンテンツデータベースと、該コンテンツの各データ範囲に対応付けられた、１または複数の鍵を保存するための鍵リストと、該鍵リストに保存された鍵の中から、復号化しようとするコンテンツのデータ範囲に対応する鍵を選択する鍵選択手段と、該鍵選択手段によって選択された鍵を使用して、該コンテンツのデータを復号化する復号化手段と、受信装置が該コンテンツを復号化するための受信装置用鍵を生成する鍵生成手段と、該鍵生成手段が生成した該受信装置用鍵を使用して、該復号化手段が復号化したコンテンツを暗号化する暗号化手段と、該暗号化手段が暗号化したコンテンツを該受信装置に送信する送信手段とを備える。
【００１４】
コンテンツを送信する際には、まず、受信装置用鍵を生成する。鍵リストの中から送信しようとするデータ範囲に対応した鍵を選択して、この鍵を設定する。選択した鍵を使ってコンテンツのデータを復号化する。生成した受信装置用鍵を使用して再びコンテンツを暗号化し、受信装置に送信する。例えば、ピアツーピア通信方式では装置間でお互いにコンテンツの送受信が行われ、１台の装置が送信装置の機能と受信装置の機能とを有する。すなわち、送信装置も他装置からコンテンツを受信することになるが、この時にコンテンツのデータ範囲の全てを復号化できるように、データ範囲に対応付けて鍵を保存している。送信装置がコンテンツを送信する際にはコンテンツを一旦復号化する必要があるからである。
【００１５】
本発明の好ましい実施形態のコンテンツ受信装置は、コンテンツを保存するためのコンテンツデータベースと、該コンテンツの各データ範囲に対応付けられた、１または複数の鍵を保存するための鍵リストと、該コンテンツおよび該コンテンツを復号化する鍵を受信する受信手段と、該コンテンツを該コンテンツデータベースに登録するコンテンツ登録手段と、該鍵を、該コンテンツのデータ範囲に対応付けて該鍵リストに登録する鍵登録手段とを備える。
【００１６】
コンテンツを受信すると、受信したコンテンツのデータ範囲（鍵有効範囲）に対応付けて一意に鍵を保存する。そのため、コンテンツを復号化する場合に、鍵リストの中からこれから復号化しようとするデータに対応した鍵を選択して、この鍵を設定し、選択した鍵を使ってコンテンツのデータを復号化することができる。つまり、鍵リストに保存されている鍵を順番に使用することにより、コンテンツのデータ範囲全体を復号化することができる。従って、通信毎に鍵を変更する技術においても、送受信エラー等によりコンテンツ送受信が途中で停止した時に、受信済のデータ以降のデータのみを再取得することができる。通信毎に変化する鍵を受信した各データ範囲毎に保存して、データ範囲に対応する鍵を鍵リストに基づいて設定し、復号化することができるからである。
【００１７】
好ましい実施形態においては、コンテンツ受信装置は、上記鍵リストに保存された鍵の中から、復号化しようとするコンテンツのデータ範囲に対応する鍵を選択する鍵選択手段と、該鍵選択手段によって選択された鍵を使用して、該コンテンツのデータを復号化する復号化手段と、該復号化手段が復号化したコンテンツのデータを再生する再生手段とをさらに備える。
【００１８】
本発明の別の局面においては、コンテンツ復号化プログラムが提供され得る。このプログラムは、コンテンツの各データ範囲に対応付けられた１または複数の鍵を保存するための鍵リストに保存された鍵の中から、復号化しようとするコンテンツのデータ範囲に対応する鍵を選択する鍵選択ステップと、該鍵選択ステップによって選択された鍵を使用して、該コンテンツのデータを復号化する復号化ステップとをコンピュータに実行させる。
【００１９】
本発明のさらに別の局面においては、コンテンツ受信プログラムが提供され得る。このプログラムは、送信装置からコンテンツおよび該コンテンツを復号化する鍵を受信する受信ステップと、該受信したコンテンツをコンテンツデータベースに登録するコンテンツ登録ステップと、該コンテンツの各データ範囲に対応付けて、１または複数の鍵を保存するための鍵リストに、該受信した鍵を該受信したコンテンツのデータ範囲に対応付けて登録する鍵登録ステップとをコンピュータに実行させる。
【発明の効果】
【００２０】
本発明のコンテンツ復号化装置は、鍵リストに保存された鍵の中から、復号化しようとするコンテンツのデータ範囲に対応する鍵を選択し、選択した鍵を使用して、コンテンツのデータを復号化するので、通信毎に鍵が変更し１つのコンテンツのデータ範囲毎に鍵が異なる場合にも、コンテンツのデータ全体を復号化することができる。
【発明を実施するための最良の形態】
【００２１】
以下、本発明の好ましい実施形態について、図面を参照して具体的に説明するが、本発明はこれらの実施形態には限定されない。図１は、本発明の好ましい実施形態によるコンテンツ送受信システム１の構成を示すブロック図である。例えば、コンテンツ送受信システム１は、ピアツーピア型のコンテンツ送受信システムであり、複数のピア間でコンテンツを相互に送受信する。図１の例では、２つのピア１０および２０を記載しており、説明を簡単化するため、ピア１０は特に送信装置１０としての機能に注目して記載し（以下、送信装置１０とする）、ピア２０は受信装置２０としての機能を注目して記載する（以下、受信装置２０とする）。なお、送信装置１０および受信装置２０は、コンテンツを復号化する復号化装置の機能を有する。送信装置１０および受信装置２０はインターネット、ＬＡＮ等のネットワーク３０を介して相互に接続される。送信装置１０は、鍵によって暗号化されたコンテンツ（例えば、映像、音楽、音声および／または静止画等）のファイル（以下、単にファイルということがある）を保有している。送信装置１０は、鍵によってファイルを一旦復号化し、新たに生成した鍵によって再びファイルを暗号化してファイルを鍵と共に受信装置２０に送信する。受信装置２０は、送信装置１０から送信されたファイルおよび鍵を受信し、その鍵を使ってファイルを復号化して再生する。
【００２２】
送信装置１０は、コンテンツデータベース１１、送信装置１０全体の動作を制御するマイコン１２、ＲＯＭ、ＲＡＭ、バッファメモリ等のメモリ１３、暗号／復号アプリケーション１４、インターフェース１５、および鍵データベース１６を有する。コンテンツデータベース１１、暗号／復号アプリケーション１４および鍵データベース１６は例えば図示しないハードディスクに格納されている。コンテンツデータベース１１は複数のコンテンツのファイルを保存する。暗号／復号アプリケーション１４は、コンテンツデータベース１１に保存されたファイルを鍵データベース１６内に保存された鍵によって復号化する。暗号／復号アプリケーション１４は、また、鍵を生成し、生成した鍵によってファイルを暗号化する。鍵は、暗号／復号アプリケーション１４によって通信毎にその都度生成される。インターフェース１５は、受信装置２０からコンテンツ送信の要求を受信し、暗号化されたファイルおよび鍵を受信装置２０に送信するインターフェースである。鍵データベース１６は、詳細は後述するが、ファイルの各データ範囲に対応する１または複数の鍵を保存する。
【００２３】
受信装置２０は、コンテンツデータベース２１、受信装置２０全体の動作を制御するマイコン２２、ＲＯＭ，ＲＡＭ，バッファメモリ等のメモリ２３、復号アプリケーション２４、インターフェース２５、鍵データベース２６および再生アプリケーション２７を有する。インターフェース２５は、送信装置１０にファイル送信の要求を送信し、送信装置１０からファイルおよび鍵を受信するインターフェースである。コンテンツデータベース２１、復号アプリケーション２４、鍵データベース２６および再生アプリケーション２７は例えば図示しないハードディスクに格納されている。コンテンツデータベース２１は送信装置１０から受信したファイルを保存する。復号アプリケーション２４は、鍵データベース２６に保存された鍵によって、コンテンツデータベース２１に保存されたファイルを復号化する。復号プログラム２４は、また、送信装置１０から受信した鍵をファイルのデータ範囲に対応付けて鍵データベース２６に保存する。鍵データベース２６は、詳細は後述するが、ファイルの各データ範囲に対応する１または複数の鍵を保存する。再生アプリケーション２７は、コンテンツデータベース２１に保存されたファイルを再生する。
【００２４】
鍵データベース１６，２６の詳細を説明する。鍵データベースは、ファイルの各データ範囲に対応付けて、各データを復号化するための鍵を保存する。すなわち、本例では通信毎に鍵を変えてファイルのデータが送信されるので、１つのファイルであってもデータ範囲によって復号化する鍵が異なる。そこで、各データ範囲毎に復号化するための鍵を保存する。鍵データベースは、表１に示す鍵リストを保存している。鍵リストは、１つのファイルに対して１つ保存されており、ファイルの各データ範囲に対応する鍵を管理するリストである。
【表１】
2006191341.tif 000003
【００２５】
鍵リストは、鍵番号と鍵情報とを含む。鍵番号は、各鍵情報に付与される通し番号（０，１，２，・・）であり、１つのファイルに対する鍵の数だけこの番号が存在する。鍵情報は、ファイルの各データ範囲を復号化する鍵に関する情報である。鍵情報の詳細を表２に示す。
【表２】
2006191341.tif 000004
【００２６】
鍵情報は、鍵cryptkeyおよび鍵有効範囲offsetを含む。鍵cryptkeyには、ファイルの各データ範囲を復号化する鍵が保存される。鍵有効範囲は、対応する鍵によって復号化できるファイルのデータ範囲を示す。鍵有効範囲には、例えば、対応する鍵によって復号化できるデータ範囲の終了アドレスが保存される。終了アドレスのみが保存されることにより、鍵によって復号化できるデータ範囲の開始アドレスも判断できる。すなわち、復号化できるデータ範囲の開始アドレスは、鍵番号が１つ前の鍵によって復号化できるデータの終了アドレスである。もちろん、鍵有効範囲として、開始アドレスのみ、開始アドレスと終了アドレス、または開始アドレスとサイズ等を用いてもよい。
【００２７】
図２は、鍵と、鍵によって復号化できる各データ範囲との対応関係を示す図である。鍵０によって復号化できるデータは開始アドレス０から終了アドレス１４９までのデータＡ０（サイズは１５０）であり、鍵１によって復号化できるデータは開始アドレス１５０から終了アドレス３９９までのデータＡ１（サイズは２５０）である（以下、Ａ２，Ａ３共に同様）。
【００２８】
次に、コンテンツ送受信システム１の動作を説明する。まず、送信装置１０のファイル送信処理（復号化処理および暗号化処理を含む）について図３を参照して説明する。送信装置１０は、受信装置２０がファイルを復号化するための鍵を生成する（Ｓ３０１）。本例では、セキュリティを高めるため、同一のファイルに対して装置毎に鍵を変更している。ここでは、受信装置２０用の鍵を新たに生成する。鍵の生成は、マイコン１２が暗号／復号アプリケーション１４を実行して行われる。送信装置１０は、復号開始アドレスをメモリ１３に設定する（Ｓ３０２）。復号開始アドレスは、暗号化されたファイルの復号化を開始する最初のアドレスである。復号開始アドレスは、また、復号完了した位置を把握するためのアドレスでもある。ファイルを受信装置２０に送信する際に、受信装置２０が送信を要求するファイルの開始アドレスを指定するので、送信装置１０はこのアドレスを復号開始アドレスとして設定する。通常、ファイルの全てを送信する場合、復号開始アドレスは０に設定される。
【００２９】
送信装置１０は、鍵リストに基づいて、Ｓ３０２で設定された復号開始アドレスに対応する鍵をメモリ１３内に設定する（選択する）（Ｓ３０３）。鍵を設定するとは、復号開始アドレスに対応する鍵番号を選択してメモリ１３に設定することを意味する。例えば、図２を参照して、復号開始アドレスが０に設定された場合、鍵番号は０に設定される。送信装置１０は、設定された復号開始アドレスがファイルサイズ未満であるか否かを判断する（Ｓ３０４）。復号開始アドレスがファイルサイズに達していればファイル送信処理終了となるが、ファイルサイズ未満であればＳ３０５〜Ｓ３１０の処理を繰り返す。なお、ファイルサイズはコンテンツ情報として記憶されている。送信装置１０は、復号開始アドレスが現在設定されている鍵番号の鍵有効範囲内に属するか否かを判断する（Ｓ３０５）。鍵有効範囲内であれば、鍵リストに基づいて、現在設定されている鍵番号に対応する鍵を使ってファイルのデータを復号化する（Ｓ３０６）。
【００３０】
送信装置１０は、Ｓ３０６で復号化されたファイルのデータを、Ｓ３０１で新たに生成した受信装置２０用の鍵を使って再び暗号化する（Ｓ３０７）。暗号化はマイコン１２が暗号／復号アプリケーションを実行することにより行われる。送信装置１０は、暗号化したファイルのデータをインターフェース１５を介して受信装置２０に送信する（Ｓ３０８）。この際に、図４に示す通り、ファイルのヘッダ部分に送信予定のファイルサイズおよびＳ３０１で生成した鍵を添付して送信する。送信装置２０は、設定されている復号開始アドレスにＳ３０６で復号化したデータのサイズを加算して、新たな復号開始アドレスを算出し、メモリを書き換える（Ｓ３０９）。
【００３１】
以上の処理を繰り返していると、復号開始アドレスが鍵有効範囲に属さないようになる（Ｓ３０５：ＮＯ）。その時、送信装置１０は鍵番号をインクリメントする（１加える）ことにより、設定されている鍵を別の鍵に変更する（Ｓ３１０）。例えば、図２を参照して、鍵番号を１に変更する。従って、新たに設定した鍵番号に対応する鍵によってファイルのデータを復号化できるようになる。これは、鍵番号がデータのアドレスの順番に付与されているので、鍵番号をインクリメントすると、次に復号化するデータ範囲の鍵を設定できるからである。以上の動作により、ファイルを送信するが、送受信エラー等の理由によりファイルの送受信が中断した場合、受信装置２０は受信済のデータの終了アドレスを指定して、受信済のデータ以降のデータの送信を要求する。送信装置１０は鍵を新たに生成し（Ｓ３０１）、復号開始アドレスを受信装置２０が指定したアドレスに設定して、上記と同じ処理を繰り返す。
【００３２】
次に、受信装置２０の受信処理について図５を参照して説明する。受信装置２０は、ファイルの受信済サイズを０に初期化する（Ｓ５０１）。受信済サイズはメモリ２３内に設定される。受信装置２０は、送信装置１０からファイルを受信する（Ｓ５０２）。具体的には、受信装置２０が開始アドレスを指定してファイル送信を送信装置１０に要求する。送信装置１０から図４に示すファイルが送信されるので、受信装置２０はまずヘッダ部分のファイルサイズおよび鍵を受信し、次にデータ本体を受信する。受信装置２０は、ファイルのデータをコンテンツデータベース２１に登録する。ファイルの受信が一旦終了すると（正常にファイルのデータ全てを受信終了する場合だけでなく、送受信エラー等によりファイルの送受信が途中で中断した場合も含む）、メモリ２３内の受信済サイズをＳ５０２で実際に受信したデータのサイズに書き換える（Ｓ５０３）。
【００３３】
受信装置２０は、受信予定のファイルサイズをメモリに設定する（Ｓ５０４）。ファイルサイズは図４に示すとおりファイルのヘッダに含まれている。受信装置２０は、鍵リストの鍵番号０に、受信したファイルのデータ範囲に対応付けて鍵情報を登録する（Ｓ５０５）。まず、受信装置２０は、ファイルの受信済サイズに基づいて鍵リストに鍵有効範囲を登録する。具体的には、図２のように、受信済サイズ（例えば１５０）を鍵有効範囲（終了アドレス）として登録する（ここでは、開始アドレスは０であるので、受信済サイズがそのまま終了アドレスになる）。次に、Ｓ５０２で受信したファイルのヘッダに含まれる鍵を鍵リストに登録する。これにより、Ｓ５０２で受信したファイルのデータに対応する鍵情報が鍵リストに登録される。
【００３４】
次に、受信装置２０は受信済サイズがＳ５０４で設定したファイルサイズ未満であるか否かを判断する（Ｓ５０６）。Ｓ５０２において正常にファイルのデータ全てを受信できれば、受信済サイズはファイルサイズと等しくなるので（Ｓ５０６：ＮＯ）、受信処理を終了する。この場合、鍵リストには１つの鍵情報のみが登録される。
【００３５】
一方、Ｓ５０２において送受信エラー等によりファイルの送受信が途中で中断した場合、受信済サイズはファイルサイズ未満であるので（Ｓ５０６：ＹＥＳ）、Ｓ５０７〜Ｓ５１０へと進み、受信済のデータ以降のデータを受信する。つまり、送受信エラーによって受信が中断した回数だけＳ５０６〜Ｓ５１０の処理が繰り返される。詳細には、受信装置２０は、受信済データの終了アドレスを、データを取得開始するアドレスとして指定し、送信装置１０に受信済のデータ以降のデータを送信するよう要求する。そして、ファイルのデータを受信し、コンテンツデータベース２１に登録する（Ｓ５０７）。
【００３６】
受信装置２０は、受信済サイズをＳ５０７で実際に受信したデータのサイズに書き換える（Ｓ５０８）。受信装置２０は今回の受信予定のファイルサイズをメモリに設定する（Ｓ５０９）。ファイルサイズは図４に示すとおりファイルのヘッダに含まれている。ここでは、Ｓ５０２で受信したデータを除く残りのデータサイズとなる。受信装置２０は、鍵リストの鍵番号１に、受信したデータに対応する鍵の鍵情報を登録する（Ｓ５１０）。まず、受信装置２０は、Ｓ５０７で受信したデータの受信済サイズに基づいて鍵有効範囲を鍵リストに登録する。具体的には、図２のように、受信済サイズ（例えば２５０）を、鍵番号１の鍵有効範囲に加算した値を終了アドレスである鍵有効範囲（例えば４００）として登録する。次に、Ｓ５０７で受信したファイルのヘッダに含まれる鍵を鍵リストに登録する。これにより、Ｓ５０７で受信したファイルのデータに対応する鍵情報が登録される。Ｓ５０６に戻り、再び受信済サイズがＳ５０９で設定したファイルサイズ未満であるか否かが判断される。以上の処理を繰り返すことにより、Ｓ５０６で受信済サイズがファイルサイズと等しくなると、受信処理が終了する。なお、Ｓ５０６〜Ｓ５１０の処理を実行した回数分だけ鍵情報が追加される。例えば、Ｓ５０６〜Ｓ５１０の処理を３回繰り返した場合には、鍵リストには４つの鍵情報が登録される。
【００３７】
次に、受信装置２０のコンテンツ再生処理（復号化処理を含む）について図６を参照して説明する。ファイルの復号化に関しては、図３と同じまたは類似するので、図３と同一のステップ番号を付し、説明を簡略化する。受信装置２０は、復号開始アドレスをメモリ２３に設定する（Ｓ３０２）。ユーザが単にファイルの再生のみを入力した場合には、１つのファイルを最初から全て再生することになるので、復号開始アドレスは０に設定される。一方、ユーザがファイルの再生アドレスを入力した場合、ユーザが入力したアドレスが復号開始アドレスとして設定される。受信装置２０は、鍵リストに基づいて、Ｓ３０２で設定された復号開始アドレスに対応する鍵番号をメモリ２３内に設定する（Ｓ３０３）。復号開始アドレスがファイルサイズ未満であり（Ｓ３０４：ＹＥＳ）、復号開始アドレスが鍵有効範囲内にあるので（Ｓ３０５：ＹＥＳ）、受信装置２０は設定された鍵番号に対応する鍵を使ってファイルを復号化する（Ｓ３０６）。
【００３８】
受信装置２０は、Ｓ３０６で復号化したファイルのデータを再生する（Ｓ６０１）。具体的には、再生アプリケーション２７をマイコン２２が実行することによってファイルのデータを再生する。例えば、ファイルがエンコードされた映像データである場合には、ファイルのデータをデコードして外部に接続された図示しないディスプレイおよびスピーカー等に出力され、映像および音声として再生される。次に、受信装置２０は、設定されている復号開始アドレスにＳ３０６で復号化したデータのサイズを加算して、新たな復号開始アドレスを算出し、メモリ２３を書き換える（Ｓ３０９）。Ｓ３０４〜Ｓ３０９の処理を繰り返していると、復号開始アドレスが鍵有効範囲に属さないようになる（Ｓ３０５：ＮＯ）。Ｓ３１０において、受信装置１０は鍵番号をインクリメントすることにより、ファイルのデータを新たに設定した鍵番号に対応する鍵によって復号化できるようになる（Ｓ３０６）。以上の動作を繰り返すことにより、Ｓ３０４で復号開始アドレスがファイルサイズに達すると、再生処理を終了する。
【００３９】
以上のように、ファイルの各データ範囲に対応付けて鍵を保存することにより、１つのファイルのデータ範囲によって鍵が異なる場合であっても、ファイルの全体を復号化することができる。復号化した後に、ファイルを再生し、あるいは再び暗号化して送信することができる。
【００４０】
以上、本発明の好ましい実施形態を説明したが、本発明はこれらの実施形態には限定されない。例えば、図６のＳ３１０で鍵番号をインクリメントした後、Ｓ３０５に戻って復号開始アドレスが鍵有効範囲に属するか否かを再度判断してもよい。例えば、ファイルを巻き戻す場合や早送りする場合、単に鍵番号を１つ進めるだけでは復号開始アドレスに対応する鍵番号を設定できない場合がある。そのため、鍵有効範囲が復号開始アドレスに対応するまでＳ３０５，Ｓ３１０の処理を繰り返せばよい。また、コンテンツ送信装置は暗号化されたコンテンツを保有しているが、暗号化されていないコンテンツを保有していてもよい。この場合、上記のコンテンツを一旦復号化する処理が省かれる。また、上記の送信装置の処理、受信装置の処理、あるいはこれらに含まれる復号化処理をコンピュータに実行させるプログラムが提供されてもよく、さらに、これらのプログラムを記録した記録媒体が提供されてもよい。
【産業上の利用可能性】
【００４１】
本発明は、端末同士でコンテンツを相互に送受信するピアツーピア通信に適用可能である。この場合、１つの端末は、実施形態の送信装置および受信装置の機能を共に有する。また、ピアツーピア通信だけでなく、サーバ（送信装置）−クライアント（受信装置）方式にも適用可能である。
【図面の簡単な説明】
【００４２】
【図１】コンテンツ送受信システムを示すブロック図である。
【図２】鍵リストの構成を示す図である。
【図３】送信装置の送信処理および復号化処理を示すフローチャートである。
【図４】送信装置が送信するファイルのデータ構造を示す図である。
【図５】受信装置の受信処理および鍵登録処理を示すフローチャートである。
【図６】受信装置の再生処理および復号化処理を示すフローチャートである。
【符号の説明】
【００４３】
１              コンテンツ送受信システム
１０            送信装置
２０            受信装置
１１、２１      コンテンツデータベース
１４            復号／暗号アプリケーション
２４            復号アプリケーション
１６、２６      鍵データベース
２７            再生アプリケーション
【図１】
2006191341.tif 000005
【図２】
2006191341.tif 000006
【図３】
2006191341.tif 000007
【図４】
2006191341.tif 000008
【図５】
2006191341.tif 000009
【図６】
2006191341.tif 000010