以下、図面を参照して、本発明の実施の形態について説明する。
図1は、本発明の一実施の形態に係るホームネットワークシステム10の構成例を示すブロック図である。ホームネットワークシステム10は、例えば、DLNA(Digital Living Network Alliance)の仕様に対応する機器により構成されるホームネットワークシステムとされる。
同図において、DMS(Digital Media Server)11は、例えば、DVD(Digital Versatile Disc)レコーダ、HDD(Hard Disk Drive)レコーダなどとして構成され、DVD、HDDなどの記録媒体に、コンテンツのデータを記録する。DMS11は、例えば、ユーザによる操作などに基づいて、放送されたコンテンツなどを記録媒体に記録し、また、記録媒体に記録されたコンテンツのデータを再生する。また、DMS11は、例えば、DMP(Digital Media Player)12などからの要求に応じて記録媒体に記録されたコンテンツのデータを送信するようになされている。
DMP12は、例えば、フラッシュメモリ、HDDなどの記録媒体を有する小型のコンテンツ再生装置などとして構成され、ユーザによる操作などに基づいて、ホームネットワークシステム10に接続される他の機器から受信したコンテンツのデータを記録媒体に記録したり、記録媒体に記録されているコンテンツのデータを読み出してホームネットワークシステム10に接続される他の機器に送信したり、あるいはまた、他の機器から受信したコンテンツのデータを再生するようになされている。
DMS11とDMP12は、それぞれハブ13に接続されている。ハブ13は、例えば、IEEE802.3の規格に適合するLAN(Local Area Network)、IEEE802.11(IEEE802.11a、IEEE802.11bなども含む)の規格に適合する無線LANを構成するハブであり、DMS11とDMP12は、それぞれ有線または無線により、ハブ13を介して相互に接続される構成とされる。なお、ハブ13に代えてルータなどが用いられるようにすることも可能である。
なお、ホームネットワークシステム10においては、DTCP-IP(Digital Transmission Content Protection over Internet Protocol)と呼ばれるプロトコルに従って、コンテンツのデータの伝送が行われる。DTCP-IPは、DRM(Digital Rights Management)などの著作権保護技術により保護されたコンテンツを伝送するためのプロトコルであって、IEEE 1394などの通信規格において実装されていた著作権保護技術であるDTCPをIPネットワークに適用したものである。
同図においては、ハブ13に、DMS11とDMP12のみが接続されているが、実際にはその他の機器もハブ13に接続されてホームネットワークシステム10が構成されるようにしてもよい。
図2は、従来のDMS11の構成例を示すブロック図である。同図においてDMS11は、CPU(Central Processing Unit)31、ATA(AT Attachment)コントローラ32、およびイーサコントローラ33が、PCIバス34を介して相互に接続された構成とされている。なお、実際には、RAM(Random Access Memory)、ROM(Read Only Memory)などのメモリも必要に応じてPCIバス34に接続される。
ATAコントローラ32には、HDD41またはDVDなどにより構成される光ディスク42などの記録媒体が装着されるドライブが接続され、CPU31の制御に基づいてHDD41または光ディスク42にデータを書き込んだり、HDD41または光ディスク42に書き込まれたデータを読み出したりする。
イーサコントローラ33は、RJ45の規格に適合するコネクタが接続され、IEEE802.3の規格に適合するフレームの送受信を行うチップ、ボードなどであり、CPU31の制御に基づいて所定のデータをネットワーク上に送出したり、ネットワーク上から受信したデータを、PCIバス34に送出したりするようになされている。
この例では、イーサコントローラ33により有線で、ネットワーク(例えば、ハブ13)に接続される場合の例について説明したが、例えば、イーサコントローラ33に代えて無線LANアダプタなどが設けられ、無線によりネットワークに接続されるようにしてもよい。
CPU31は、例えば、予め記憶されているプログラムなどに基づいて各種の処理を実行し、DMS11の各部を制御する。また、CPU31は、後述するように、DTCP-IPのプロトコルに従って、コンテンツのデータの暗号化または復号の処理の実行を制御したり、ストレージ用ローカル暗号の暗号アルゴリズムによるデータの暗号化または復号の処理の実行を制御したり、コンテンツのデータの送受信に伴うTCP/IPによる通信処理の制御をするようになされている。さらに、CPU31は、必要に応じて図示せぬエンコーダまたはデコーダなど制御して、コンテンツのデータを所定の符号化方式でエンコードまたはデコードする処理の実行を制御するようになされている。
DMP12の構成も、図2に示される構成と同様なので、詳細な説明は省略する。
図3は、ホームネットワークシステム10に接続される機器においてコンテンツのデータをアップロードする処理の例を説明するアローチャートである。ここでは、DMP12からコンテンツのデータを、DMS11に送信して、DMS11の記録媒体(HDD41または光ディスク42)に記録させることでコンテンツをアップロードする処理を例として説明する。
同図のステップS11において、DMP12は、「Create Object」のコマンドを送信し、DMS11に、アップロードされるコンテンツ(オブジェクト)があることを通知する。ステップS31において、DMS11によりこれが受信される。
ステップS31で、「Create Object」のコマンドを受信したDMS11は、HDD41または光ディスク42の中で、これからアップロードされるコンテンツ(オブジェクト)を記録するディレクトリなどを特定し、決定されたディレクトリなどに関する情報を生成する。
ステップS32において、DMS11は、ステップS31の処理で生成されたディレクトリなどに関する情報とともに、「Create Object Response」のコマンドをDMP12に送信し、ステップS12でDMP12によりこれが受信される。
なお、「Create Object」、および「Create Object Response」は、それぞれDLNAのプロトコルで規定されるコマンドとされる。
ステップS13およびステップS33の処理では、DMP12とDMS11による暗号鍵交換の処理が行われる。この処理は、DTCP-IPのプロトコルで規定されるものであり、これにより、DMP12とDMS11とが、この後伝送されるコンテンツのデータの暗号化または復号に用いられる暗号鍵を共有することになる。
ステップS14において、DMP12は、アップロードするコンテンツのデータを、ステップS13の処理の結果得られた暗号鍵を用いて暗号化し、暗号化されたコンテンツのデータをDMS11に送信する。なお、この処理は、DTCP-IPのプロトコルで規定される「http-post」に対応する処理である。このとき、ネットワークを介して暗号化されたコンテンツのデータの伝送が行われることになる。
ステップS34において、DMS11は、ステップS14の処理で、DMP12が送信した暗号化されたコンテンツのデータを受信し、受信したデータを記録する。このとき、DMS11は、受信したデータをステップS33の処理の結果得られた暗号鍵を用いて復号する。そして、DMS11は、復号されたコンテンツのデータを、DMS11において、予め設定されているストレージ用ローカル暗号の暗号アルゴリズムと暗号鍵を用いて再び暗号化し、暗号化されたコンテンツのデータを、HDD41または光ディスク42に記録する。
このようにして、コンテンツのデータがアップロードされる。
図4は、ホームネットワークシステム10に接続される機器においてコンテンツのデータを再生する処理の例を説明するアローチャートである。ここでは、DMS11のHDD41または光ディスク42に記録されているコンテンツのデータを、DMP12に送信し、DMP12で再生する処理を例として説明する。
同図のステップS51において、DMP12は、「Browse Contents」のコマンドを送信し、DMS11に、再生されるコンテンツがあることを通知する。ステップS71において、DMS11によりこれが受信される。
ステップS71で、「Browse Contents」のコマンドを受信したDMS11は、HDD41または光ディスク42の中で、記録されているコンテンツのデータのリストなどに関する情報を生成する。
ステップS72において、DMS11は、ステップS71の処理で生成されたコンテンツのデータのリストなどに関する情報とともに、「Contents Directory」のコマンドをDMP12に送信し、ステップS52でDMP12によりこれが受信される。
なお、「Browse Contents」、および「Contents Directory」は、それぞれDLNAのプロトコルで規定されるコマンドとされる。
ステップS53およびステップS73の処理では、DMP12とDMS11による暗号鍵交換の処理が行われる。この処理は、DTCP-IPのプロトコルで規定されるものであり、これにより、DMP12とDMS11とが、この後伝送されるコンテンツのデータの暗号化または復号に用いられる暗号鍵を共有することになる。
ステップS54において、DMP12は、ステップS52の処理で受信したコンテンツのデータのリストなどに関する情報に基づいて、再生するコンテンツを特定し、そのコンテンツのデータの送信を、DMS11に要求する。なお、この処理は、DLNAのプロトコルで規定される「http-get」に対応する処理である。
ステップS74において、DMP12からの、コンテンツのデータの送信要求を受信したDMS11は、ステップS75において、要求されたコンテンツのデータを、HDD41または光ディスク42から読み出して、DMP12に送信する。このとき、DMS11は、HDD41または光ディスク42から読み出されたコンテンツのデータを、DMS11において、予め設定されているストレージ用ローカル暗号の暗号アルゴリズムと暗号鍵を用いて復号する。そして、DMS11は、復号されたデータをステップS73の処理の結果得られた暗号鍵を用いて再び暗号化し、暗号化されたコンテンツのデータを、DMP12に送信する。そして、ネットワークを介して暗号化されたコンテンツのデータの伝送が行われる。
ステップS55において、DMP12は、ステップS75の処理で送信されたデータを受信し、受信したデータ(暗号化されたコンテンツのデータ)を、ステップS53の処理の結果得られた暗号鍵を用いて復号し、復号されたコンテンツのデータを再生する。例えば、コンテンツのデータが、MPEG方式でエンコードされたデータである場合、DMP12に内蔵されたMPEGデコーダなどによりデコードされ、画像や音声が、DMP12のディスプレイやスピーカなどから表示または出力される。
このようにしてコンテンツのデータが再生される。
上述したように、図3のステップS34または図4のステップS75の処理では、DMS11においてストレージ用ローカル暗号の暗号化または復号の処理と、DTCP-IPのプロトコルで規定される暗号化または復号の処理とが行われ、DMS11では、いわば2重に暗号化または復号の処理が行われることになる。
すなわち、ストレージ用ローカル暗号の暗号化または復号の処理は、HDD41または光ディスク42へのデータの書き込みまたは読み出しのために行われる暗号化または復号の処理であって、DMS11において予め設定(例えば、図示せぬROMなどに記憶されている)暗号鍵と、暗号アルゴリズムにより行われる暗号化または復号の処理であり、例えば、DMP12は、ストレージ用ローカル暗号の暗号化処理により暗号化されたコンテンツのデータを復号することはできない。
一方、DTCP-IPのプロトコルで規定される暗号化または復号の処理は、DMP12との間でコンテンツを伝送するために行われる暗号化または復号の処理であって、ステップS13およびS33、またはステップS53およびS73の処理の結果、DMS11とDMP12との間で共有された暗号鍵を用いて行われる暗号化または復号の処理であり、例えば、DMP12は、DMS11でDTCP-IPのプロトコルで規定される暗号化の処理により暗号化されたコンテンツのデータを復号することができる。
ここで、DTCP-IPのプロトコルで規定される暗号化の処理について説明する。DTCP-IPのプロトコルで規定される暗号化の処理では、図5に示されるAES(Advanced Encryption Standard)-CBC(Cipher Block Chaining)と呼ばれる暗号アルゴリズムが用いられる。
AES-CBCでは、平文のデータが、例えば、128bitのブロック単位に入力されて、AESによる暗号化データが生成されて、やはり128bitのブロック単位で暗号文のデータが出力される、一方で、出力された暗号文のデータのブロックがIVデータを用いて変換され、その変換されたデータのブロックと、次に入力される平文のデータのブロックとの排他的論理和として出力された128bitのデータのブロックが、AESにより暗号化されて出力されるようになされている。
図5において「AES」として示されるブロックは、例えば、暗号化エンジンであり、供給された暗号鍵に基づいて、128bitのブロック単位で平文のデータから暗号文のデータを生成して出力するようになされている。ここで、供給される暗号鍵が、例えば、図3のステップS13およびS33、または図4のステップS53およびS73の処理の結果、DMS11とDMP12との間で共有された暗号鍵とされる。
AES-CBCでは、復号の処理についても同様に、アルゴリズムが規定されており、やはり、例えば、図3のステップS13およびS33、または図4のステップS53およびS73の処理の結果、DMS11とDMP12との間で共有された暗号鍵を用いて暗号化されたデータを復号することができるようになされている。
一方、ストレージ用ローカル暗号の暗号化または復号の処理については、特にアルゴリズムや暗号鍵の共有などの手順が規定されているものではなく、例えば、AES、DES(Data Encryption Standard)、またはこれらと同等の強度の暗号アルゴリズムによる処理とされ、DMS11を製造するメーカーなどにより選択された暗号アルゴリズムが採用されている。また、ストレージ用ローカル暗号の暗号化または復号の処理に用いられる暗号鍵は、DMS11が独自に保有するものとされ、例えば、DMS11の出荷時などに、予め図示せぬROMなどに記憶されている。
このように、図3のステップS34または図4のステップS75の処理では、いわば2重に暗号化または復号の処理が行われるとともに、コンテンツの送受信に伴いTCP/IPによる通信処理の制御も行われるようにする必要があり、DMS11のCPU31に多大な負荷がかかる。
コンテンツのデータの送受信は、例えば、DMS11によりコンテンツのデータが再生されてユーザに視聴されている場合でも行われる。例えば、DVDレコーダやHDDレコーダなどで、あるコンテンツを再生中に、ホームネットワークシステムに接続された他の機器から、別のコンテンツの取得要求があった場合、DVDレコーダやHDDレコーダは、コンテンツの再生の処理を行いつつ、バックグラウンドで2重に暗号化または復号の処理を行い、また、TCP/IPによる通信処理の制御も行わなければならない。その結果、DVDレコーダやHDDレコーダのプロセッサ(CPU31)に多大な負荷がかかり、コンテンツの再生が円滑に行われなくなり、コンテンツを視聴中のユーザに、不快な印象を与えることがある。
このため、コンテンツのデータの送受信においてもCPU31にかかる負荷ができるだけ抑制されることが望ましい。
CPU31の負荷を抑制するために、TCP/IPの通信処理における再送制御などの簡単な処理を、ホストプロセッサとは異なるハードウェアを用いて実装するトランスポートオフロードエンジン(TOE)を用いることも考えられる。
図6は、TOEを用いた場合のコンテンツのデータを再生する処理の例を説明するアローチャートである。同図は、図4に対応しており、図6の場合、DMS11の処理が、CPU31の処理とTOEの処理に分けて記述されている。
ステップS101乃至S104の処理、およびステップS161乃至S164の処理は、それぞれ図4のステップS51乃至S54の処理、およびステップS71乃至S74の処理と同様の処理なので詳細な説明は省略するが、ここまでの処理は、DMS11では、CPU31により実行され、TOEではデータの送信または受信に伴う軽微な負荷の処理が行われるのみとされる。
ステップS164において、DMP12からの、コンテンツのデータの送信要求を受信したDMS11は、ステップS165において、要求されたコンテンツのデータを、HDD41または光ディスク42から読み出して送信することになるが、図4のステップS75の場合と異なり、ステップS165では、一旦、TOEにデータが供給され、ステップS131でTOEがデータを取得する。このとき、CPU31は、HDD41または光ディスク42から読み出されたコンテンツのデータを、予め設定されているストレージ用ローカル暗号の暗号アルゴリズムと暗号鍵を用いて復号する。そして、CPU31は、復号されたデータをステップS163の処理の結果得られた暗号鍵を用いて再び暗号化し、暗号化されたコンテンツのデータを、TOEに供給する。
ステップS132において、TOEにより、暗号化されたコンテンツのデータがDMP12に送信され、ステップS105でDMP12によりこれが受信される。このとき、ネットワークを介して暗号化されたコンテンツのデータの伝送が行われることになり、TOEが、TCP/IPによる通信処理の制御を行うので、図4のステップS75の場合と比較して、CPU31の負荷は軽減されたといえる。
しかしながら、ステップS165では、やはりストレージ用ローカル暗号の暗号化または復号の処理と、DTCP-IPのプロトコルで規定される暗号化または復号の処理との、いわば2重の暗号化または復号の処理が行われることになり、この2重の暗号化または復号の処理は、CPU31に多大な負荷をかけるものとなる。
そこで、本発明においては、図7に示されるように、DMSを、ストレージ部とネットワーク部とに分けて構成し、ストレージ部とネットワーク部とにそれぞれ独立したプロセッサを配置する。
図7は、本発明を適用したDMSの一実施の形態に係る構成例を示すブロック図である。
同図に示されるDMS100は、図2のDMS11と同様に、ホームネットワークシステム10に接続され、例えば、DVD(Digital Versatile Disc)レコーダ、HDD(Hard Disk Drive)レコーダなどとして構成されるが、図2の場合と異なり、ストレージ部101とネットワーク部102とに分けて構成されており、ストレージ部101とネットワーク部102とがPCIブリッジ170により相互に接続される構成とされている。
ストレージ部101には、CPU121およびATAコントローラ122が設けられており、CPU121とATAコントローラ122がPCIバス123により相互に接続された構成とされている。なお、実際には、RAM(Random Access Memory)、ROM(Read Only Memory)などのメモリも必要に応じてPCIバス123に接続される。
ATAコントローラ122には、HDD131またはDVDなどにより構成される光ディスク132などの記録媒体が装着されるドライブが接続され、ATAコントローラ122は、CPU121の制御に基づいてHDD131または光ディスク132にデータを書き込んだり、HDD131または光ディスク132に書き込まれたデータを読み出したりする。
CPU121は、例えば、予め記憶されているプログラムなどに基づいて各種の処理を実行し、ストレージ部101の各部を制御する。また、CPU121は、必要に応じて図示せぬエンコーダまたはデコーダなど制御して、コンテンツのデータを所定の符号化方式でエンコードまたはデコードする処理の実行などを制御するようになされている。
ネットワーク部102には、CPU151およびイーサコントローラ152が設けられており、CPU151とイーサコントローラ152がPCIバス153により相互に接続された構成とされている。なお、実際には、RAM(Random Access Memory)、ROM(Read Only Memory)などのメモリも必要に応じてPCIバス153に接続される。
イーサコントローラ152は、RJ45の規格に適合するコネクタが接続され、IEEE802.3の規格に適合するフレームの送受信を行うチップ、ボードなどであり、CPU151の制御に基づいて所定のデータをネットワーク上に送出したり、ネットワーク上から受信したデータを、PCIバス153に送出したりするようになされている。
この例では、イーサコントローラ152により有線で、ネットワーク(例えば、ハブ13)に接続される場合の例について説明したが、例えば、イーサコントローラ152に代えて無線LANアダプタなどが設けられ、無線によりネットワークに接続されるようにしてもよい。
CPU151は、例えば、予め記憶されているプログラムなどに基づいて各種の処理を実行し、ネットワーク部102の各部を制御する。また、CPU151は、DTCP-IPのプロトコルに従って、コンテンツのデータの暗号化または復号の処理の実行を制御したり、ストレージ用ローカル暗号の暗号アルゴリズムによるデータの暗号化または復号の処理の実行を制御したり、コンテンツのデータの送受信に伴うTCP/IPによる通信処理の制御をするようになされている。
そして、PCIバス123とPCIバス153とがPCIブリッジ170により相互に接続され、例えば、ストレージ部101とネットワーク部102との間で高速にデータを転送し、CPU121により実行される処理で出力されたデータが逐次CPU151で実行される処理の利用に供されるようになされている。
すなわち、図7のDMS100は、ホームネットワークシステム10に接続される機器との間でのコンテンツの送受信に伴って実行される処理のうち、ストレージ用ローカル暗号の暗号化または復号の処理と、DTCP-IPのプロトコルで規定される暗号化または復号の処理との、いわば2重の暗号化または復号の処理、およびTCP/IPによる通信処理の制御を、ほぼ全てネットワーク部102により実行可能とするようにして、CPU121の負荷を抑制するようになされている。
CPU121は、HDD131および光ディスク132へのコンテンツのデータの読み出しまたは書き込みの制御、コンテンツのデータを所定の符号化方式でエンコードまたはデコードする処理の実行の制御などを行うので、例えば、DMS100で、あるコンテンツを再生中に、ホームネットワークシステムに接続された他の機器から、別のコンテンツの取得要求があった場合、ストレージ部101で、コンテンツの再生の処理を行いつつ、ネットワーク部102で2重に暗号化または復号の処理を行い、また、TCP/IPによる通信処理の制御も行うことが可能となり、その結果、CPU121にかかる負荷が抑制され、例えば、コンテンツの再生が円滑に行われなくなり、コンテンツを視聴中のユーザに、不快な印象を与えることが抑止される。
あるいはまた、DMS100を、図8に示されるように構成してもよい。図8は、DMS100の別の構成例を示すブロック図である。
同図に示されるDMS100は、図7の場合と異なり、PCIバス123にイーサコントローラ181が接続され、PCIバス153にイーサコントローラ182が接続され、ストレージ部101とネットワーク部102とがイーサコントローラ181とイーサコントローラ182とにより相互に接続される構成とされている。その他は、図7の場合と同様なので詳細な説明は省略する。
図9は、本発明のDMS100を用いて、ホームネットワークシステム10に接続される機器においてコンテンツのデータをアップロードする処理の例を説明するアローチャートである。ここでは、DMP12の記録媒体に記録されているコンテンツのデータを、図7または図8に示されるDMS100に送信して、DMS100の記録媒体(HDD131または光ディスク132)に記録させることでコンテンツをアップロードする処理を例として説明する。
同図のステップS201において、DMP12は、「Create Object」のコマンドを送信し、DMS100に、アップロードされるコンテンツ(オブジェクト)があることを通知する。ステップS261において、DMS100のストレージ部101によりこれが受信される。
ステップS261で、「Create Object」のコマンドを受信したストレージ部101は、HDD131または光ディスク132の中で、これからアップロードされるコンテンツ(オブジェクト)を記録するディレクトリなどを特定し、決定されたディレクトリなどに関する情報を生成する。
ステップS262において、ストレージ部101は、ステップS261の処理で生成されたディレクトリなどに関する情報とともに、「Create Object Response」のコマンドをDMP12に送信し、ステップS202でDMP12によりこれが受信される。
なお、「Create Object」、および「Create Object Response」は、それぞれDLNAのプロトコルで規定されるコマンドとされる。また、DLNAのプロトコルにおいて、アップロードを能動的に実行する機器(いまの場合、DMP12)は、アップロードコントローラと称される。
ここまでの処理は、DMS100では、ストレージ部101のCPU121により実行され、ネットワーク部102のCPU151ではデータの送信または受信に伴う軽微な負荷の処理が実行されるのみとされる。
ステップS203およびステップS231の処理では、DMP12とDMS100による暗号鍵交換の処理が行われる。この処理は、DTCP-IPのプロトコルで規定されるものであり、これにより、DMP12とDMS100のネットワーク部102とが、この後伝送されるコンテンツのデータの暗号化または復号に用いられる暗号鍵を共有することになる。
ステップS204において、DMP12は、アップロードするコンテンツのデータを、ステップS203の処理の結果得られた暗号鍵を用いて暗号化し、暗号化されたコンテンツのデータをDMS100に送信する。なお、この処理は、DLNAのプロトコルで規定される「http-post」に対応する処理である。このとき、ネットワークを介して暗号化されたコンテンツのデータの伝送が行われることになる。
ステップS232において、ネットワーク部102は、ステップS204の処理で、DMP12が送信した暗号化されたコンテンツのデータを受信する。そして、ネットワーク部102は、ステップS233のコンテンツ受信処理を実行する。これにより、受信したデータがステップS231の処理の結果得られた暗号鍵を用いて復号され、復号されたコンテンツのデータが、ストレージ用ローカル暗号の暗号アルゴリズムと暗号鍵を用いて再び暗号化される。
ここで、図10のフローチャートを参照して、図9のステップS233のコンテンツ受信処理の詳細について説明する。
ステップS281において、ネットワーク部102のCPU151は、伝送制御処理を実行する。この処理は、例えば、パケットの送達確認、再送制御など、TCP/IPによる通信処理の制御に対応する処理であって、実際には、図9のステップS232と同じタイミングで実行される。
ステップS282において、ネットワーク部102のCPU151は、図9のステップS231の処理の結果得られた暗号鍵を用いてDTCP-IPのプロトコルによるデータの復号を行う。これにより、ステップS232の処理で受信した暗号化されたコンテンツのデータが復号されることになる。
ステップS283において、ネットワーク部102のCPU151は、ステップS282の処理で復号されたコンテンツのデータについて、予め設定されている暗号鍵を用いて予め設定されているアルゴリズムのストレージ用ローカル暗号による暗号化を行う。
このようにして、コンテンツ受信処理が行われる。
図9に戻って、ステップS233の処理の後、ネットワーク部102は、ステップS234において、図10のステップS283の処理で、ストレージ用ローカル暗号により暗号化されたコンテンツのデータを、図7のPCIブリッジ170、または図8のイーサコントローラ181およびイーサコントローラ182を介してストレージ部101に供給する。
なお、ステップS231乃至S234の処理は、DMS100では、ネットワーク部102のCPU151により実行され、この間、ストレージ部101のCPU121には、殆ど負荷がかからない。
ステップS234で供給されたデータは、ステップS263において、ストレージ部101により取得される。ステップS263において、暗号化されたコンテンツのデータを取得したストレージ部101は、その暗号化されたコンテンツのデータを、HDD131または光ディスク132に記録する。
このようにして、コンテンツのデータがアップロードされる。上述したように、ステップS231乃至S234の処理、すなわち、ストレージ用ローカル暗号の暗号化または復号の処理と、DTCP-IPのプロトコルで規定される暗号化または復号の処理との、いわば2重の暗号化または復号の処理、およびTCP/IPによる通信処理の制御は、ネットワーク部102のCPU151により実行されるようにしたので、例えば、DMS100で、ユーザがコンテンツを視聴中に、DMP12からコンテンツのデータがアップロードされた場合でも、CPU121に過大な負荷がかかることはなく、コンテンツの再生が安定して、円滑に行われなるようにすることができる。
以上においては、DMP12がアップロードコントローラとなる例について説明したが、ホームネットワークシステム10に接続される他の機器がアップロードコントローラとされるようにしてもよい。また、例えば、HDD131に記録されているコンテンツのデータを、光ディスク132に書き込む場合などは、DMS100自身がアップロードコントローラとなることもあり得る。
図11は、本発明のDMS100を用いて、ホームネットワークシステム10に接続される機器においてコンテンツのデータを再生する処理の例を説明するアローチャートである。ここでは、図7または図8のDMS100のHDD131または光ディスク132に記録されているコンテンツのデータを、DMP12に送信し、DMP12で再生する処理を例として説明する。
同図のステップS301において、DMP12は、「Browse Contents」のコマンドを送信し、DMS100に、再生されるコンテンツがあることを通知する。ステップS361において、DMS100のストレージ部101によりこれが受信される。
ステップS361で、「Browse Contents」のコマンドを受信したストレージ部101は、HDD131または光ディスク132の中で、記録されているコンテンツのデータのリストなどに関する情報を生成する。
ステップS362において、DMS100は、ステップS301の処理で生成されたコンテンツのデータのリストなどに関する情報とともに、「Contents Directory」のコマンドをDMP12に送信し、ステップS302でDMP12によりこれが受信される。
なお、「Browse Contents」、および「Contents Directory」は、それぞれDTCP-IPのプロトコルで規定されるコマンドとされる。
ここまでの処理は、DMS100では、ストレージ部101のCPU121により実行され、ネットワーク部102のCPU151ではデータの送信または受信に伴う軽微な負荷の処理が実行されるのみとされる。
ステップS303およびステップS331の処理では、DMP12とDMS100のネットワーク部102による暗号鍵交換の処理が行われる。この処理は、DTCP-IPのプロトコルで規定されるものであり、これにより、DMP12とDMS100のネットワーク部102とが、この後伝送されるコンテンツのデータの暗号化または復号に用いられる暗号鍵を共有することになる。
ステップS304において、DMP12は、ステップS302の処理で受信されたコンテンツのデータのリストなどに関する情報に基づいて、再生するコンテンツを特定し、そのコンテンツのデータの送信を、DMS100に要求する。なお、この処理は、DLNAのプロトコルで規定される「http-get」に対応する処理である。
ステップS363において、DMP12からの、コンテンツのデータの送信要求を受信したDMS100のストレージ部101は、ステップS364において、要求されたコンテンツのデータを、HDD131または光ディスク132から読み出して、図7のPCIブリッジ170、または図8のイーサコントローラ181およびイーサコントローラ182を介してネットワーク部102に供給する。このとき、ネットワーク部102に供給されるコンテンツのデータは、ストレージ用ローカル暗号により暗号化されたままの状態とされる。
ステップS364でストレージ部101から供給された暗号化されたコンテンツのデータは、ステップS332でネットワーク部102により取得される。そして、ネットワーク部102は、ステップS333のコンテンツ送信処理を実行する。これにより、取得されたデータが予め設定された暗号鍵を用いて復号され、復号されたコンテンツのデータがステップS331の処理の結果得られた暗号鍵を用いて再び暗号化される。
ここで、図12のフローチャートを参照して、図11のステップS333のコンテンツ送信処理の詳細について説明する。
ステップS381において、ネットワーク部102のCPU151は、図11のステップS332の処理で取得された暗号化されたコンテンツのデータについて、予め設定されている暗号鍵を用いて予め設定されているアルゴリズムのストレージ用ローカル暗号による復号を行う。
ステップS382において、ネットワーク部102のCPU151は、図11のステップS331の処理の結果得られた暗号鍵を用いてDTCP-IPのプロトコルによるデータの暗号化を行う。これにより、ステップS381の処理で復号されたコンテンツのデータは、再び暗号化されることになる。
ステップS383において、ネットワーク部102のCPU151は、伝送制御処理を実行する。この処理は、例えば、パケットの送達確認、再送制御など、TCP/IPによる通信処理の制御に対応する処理であって、実際には、後述する図11のステップS334と同じタイミングで実行される。
このようにして、コンテンツ受信処理が行われる。
図11に戻って、ステップS333の処理の後、DMS100のネットワーク部102は、ステップS334において、コンテンツのデータをDMP12に送信する。このとき送信されるデータは、上述した図12のステップS382の処理により暗号化されたコンテンツのデータであり、ネットワークを介して暗号化されたコンテンツのデータの伝送が行われることになる。
なお、ステップS331、S332乃至S334の処理は、DMS100では、ネットワーク部102のCPU151により実行され、この間、ストレージ部101のCPU121には、殆ど負荷がかからない。
ステップS305において、DMP12は、ステップS334の処理で送信されたデータを受信し、受信したデータ(暗号化されたコンテンツのデータ)を、ステップS303の処理の結果得られた暗号鍵を用いて復号し、復号されたコンテンツのデータを再生する。例えば、コンテンツのデータが、MPEG方式でエンコードされたデータである場合、DMP12に内蔵されたMPEGデコーダなどによりデコードされ、画像や音声が、DMP12のディスプレイやスピーカなどから表示または出力される。
このようにしてコンテンツのデータが再生される。上述したように、ステップS331、S332乃至S334の処理、すなわち、ストレージ用ローカル暗号の暗号化または復号の処理と、DTCP-IPのプロトコルで規定される暗号化または復号の処理との、いわば2重の暗号化または復号の処理、およびTCP/IPによる通信処理の制御は、ネットワーク部102のCPU151により実行されるようにしたので、例えば、DMS100で、ユーザがコンテンツを視聴中に、DMP12からコンテンツのデータの再生が要求された場合でも、CPU121に過大な負荷がかかることはなく、コンテンツの再生が安定して、円滑に行われなるようにすることができる。
以上においては、DMP12でコンテンツを再生する例について説明したが、ホームネットワークシステム10に接続される他の機器でコンテンツが再生されるようにしてもよい。
なお、本発明は、DVDレコーダ、HDDレコーダに限らず、パーソナルコンピュータ、デジタルビデオカメラ、携帯電話機、携帯型のプレーヤなどの各種の機器にも適用することができる。
また、図7と図8において、CPU121とCPU151がそれぞれPCIバス123とPCIバス153に接続される例について説明したが、例えば、CPU121とCPU151が同一の基板上に設けられて、同一のPCIバスに接続されるようにしても構わない。
上述した一連の処理は、ハードウェアにより実行することもできるし、ソフトウェアにより実行することもできる。一連の処理をソフトウェアにより実行する場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、プログラム記録媒体からインストールされる。
コンピュータのCPU(例えば、CPU121、またはCPU151)が実行するプログラムは、例えば、磁気ディスク(フレキシブルディスクを含む)、光ディスク(CD-ROM(Compact Disc-Read Only Memory),DVD(Digital Versatile Disc)等)、光磁気ディスク、もしくは半導体メモリなどよりなるパッケージメディアであるリムーバブルメディアに記録して、あるいは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して提供される。
そして、プログラムは、リムーバブルメディアをドライブに装着することにより、インストールすることができる。また、プログラムは、無線の伝送媒体を介して、無線LANインタフェースで受信するか、または有線の伝送媒体を介して受信し、インストールすることができる。その他、プログラムは、ROMなどにあらかじめ記憶しておくことで、あらかじめインストールしておくことができる。
なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
10 ホームネットワークシステム, 12 DMP, 13 ハブ, 100 DMS, 101 ストレージ部, 102 ネットワーク部, 121 CPU, 122 ATAコントローラ, 123 PCIバス, 131 HDD, 132 光ディスク, 151 CPU, 152 イーサコントローラ, 153 PCIバス, 170 PCIブリッジ, 181 イーサコントローラ, 182 イーサコントローラ