JP4910324B2 - 情報処理装置及び情報処理方法、並びにコンピュータ・プログラム - Google Patents

情報処理装置及び情報処理方法、並びにコンピュータ・プログラム Download PDF

Info

Publication number
JP4910324B2
JP4910324B2 JP2005211858A JP2005211858A JP4910324B2 JP 4910324 B2 JP4910324 B2 JP 4910324B2 JP 2005211858 A JP2005211858 A JP 2005211858A JP 2005211858 A JP2005211858 A JP 2005211858A JP 4910324 B2 JP4910324 B2 JP 4910324B2
Authority
JP
Japan
Prior art keywords
encrypted data
decryption
key
unit
information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2005211858A
Other languages
English (en)
Other versions
JP2007028552A (ja
Inventor
隆雄 森田
幸彦 青木
真一 河野
秀穂 五味
達昭 油川
祐市 泉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Priority to JP2005211858A priority Critical patent/JP4910324B2/ja
Priority to US11/427,163 priority patent/US7886160B2/en
Publication of JP2007028552A publication Critical patent/JP2007028552A/ja
Application granted granted Critical
Publication of JP4910324B2 publication Critical patent/JP4910324B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/068Network architectures or network communication protocols for network security for supporting key management in a packet data network using time-dependent keys, e.g. periodically changing keys
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0838Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
    • H04L9/0841Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving Diffie-Hellman or related key agreement protocols
    • H04L9/0844Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving Diffie-Hellman or related key agreement protocols with user authentication or key authentication, e.g. ElGamal, MTI, MQV-Menezes-Qu-Vanstone protocol or Diffie-Hellman protocols using implicitly-certified keys
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0891Revocation or update of secret information, e.g. encryption key update or rekeying
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/60Digital content management, e.g. content distribution

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Storage Device Security (AREA)

Description

本発明は、著作権保護若しくはその他の目的で暗号化されたコンテンツを復号化する情報処理装置及び情報処理方法、並びにコンピュータ・プログラムに係り、特に、IPネットワーク上で暗号化して伝送されるコンテンツを復号する情報処理装置及び情報処理方法、並びにコンピュータ・プログラムに関する。
さらに詳しくは、本発明は、TCPストリームのような長大なバイト・ストリームとして入力され、復号鍵が動的に変更される暗号データを復号する情報処理装置及び情報処理方法、並びにコンピュータ・プログラムに係り、特に、使用する鍵が変化する変化点において処理が滞ることなくバイト・ストリームを復号する情報処理装置及び情報処理方法、並びにコンピュータ・プログラムに関する。
最近、ネットワークを経由した映像や音楽などのコンテンツの流通・配信サービスが盛んに行なわれる。この種のサービスでは、CDやDVDなどのメディアの移動を必要とせず、ネットワークを経由して遠隔端末間でコンテンツ配信を行なうことができる。一方、ネットワーク経由で取り扱われるコンテンツは、著作物の1つとして、著作権法の下で無断の複製や改竄などの不正使用から保護を受ける。著作権法では、同法第30条において、個人的に又は家庭内などを使用目的とした場合の使用者本人の複製を許容する一方、同法第49条第1項においては、私的使用以外での複製物の使用を禁止している。
しかしながら、この種のコンテンツはデジタル・データであることからコピーや改竄などの不正な操作が比較的容易であることから、法的な整備だけでなく技術的な側面からも、個人的又は家庭的なコンテンツの使用を許容しながら不正使用に対する防御が必要である。
デジタル・コンテンツの利用が盛んな今日においては、その著作権保護を目的とした多くの技術が開発されている。例えば、デジタル伝送コンテンツの保護に関する業界標準であるDTCP(Digital Transmission Content Protection)では、著作権が保護された形でコンテンツを伝送させるための仕組みについて規定している(例えば、非特許文献1を参照のこと)。
DTCPでは、コンテンツ伝送時における機器間の認証プロトコルと、暗号化コンテンツの伝送プロトコルについて取り決められている。その規定は、要約すれば、DTCP準拠機器はMPEG(Moving Picture Experts Group)など取り扱いが容易な圧縮コンテンツを非暗号の状態で機器外に送出しないことと、暗号化コンテンツを復号するために必要となる鍵交換を所定の相互認証及び鍵交換(Authentication and Key Exchange:AKE)アルゴリズムに従って行なうこと、並びにAKEコマンドにより鍵交換を行なう機器の範囲を制限することなどを取り決めている。
コンテンツ提供元であるサーバ(DTCP Source)とコンテンツ提供先であるクライアント(DTCP Sink)は、AKEコマンドの送受信により、認証手続きを経て鍵を共有化し、その鍵を用いて伝送路を暗号化してコンテンツの伝送を行なう。したがって、不正なクライアントは、サーバとの認証に成功しないと暗号鍵を取得できないから、コンテンツを享受することはできない。また、AKEコマンドを送受信する機器の台数や範囲を制限することによって、コンテンツが使用される範囲を著作権法で言うところの個人的又は家庭の範囲内に抑えることができる。
DTCPは、原初的には、IEEE1394を伝送路に用いたホーム・ネットワーク上におけるデジタル・コンテンツの伝送について規定したものである。最近では、IEEE1394ベースで規定されたDTCP技術をIPネットワークに移植した技術の開発が進められている(以降、この技術をDTCP−IPと呼ぶ)。ホーム・ネットワークの多くはルータなどを経由してインターネットなどの外部の広域ネットワークに接続されているので、DTCP−IP技術の確立により、デジタル・コンテンツを保護しながらIPネットワークを利用した柔軟で効率的なコンテンツの利用が図られる。
DTCP−IPは、基本的にはDTCP規格に含まれ、DTCP技術をIPネットワークに移植した同様の技術であるが、伝送路にIPネットワークを使用すること、暗号化されたコンテンツの伝送にHTTPやRTPプロトコルを使用するという点で、IEEE1394ベースで規定された本来のDTCPとは相違する。また、IPネットワーク上にはPCを主としたさまざまな機器が接続され、データの盗聴、改竄が簡単に行なわれてしまう危険が高いことから、DTCP−IPは、コンテンツを保護しながらネットワーク伝送するためのさらなる方法を規定している(例えば、非特許文献2を参照のこと)。
ここで、DTCP−IPに従ったコンテンツの伝送手順について説明する。但し、DTCPに準拠した機器は2つの種類に分類される。1つはDTCP_Sourceと言い、コンテンツの要求を受理し、コンテンツを送信するサーバ機器である。もう1つはDTCP_Sinkと言い、コンテンツを要求し、コンテンツを受信し、再生若しくは記録するクライアント機器である。
図10には、DTCP_Source機器とDTCP_Sink機器の間でAKEに基づく鍵交換手続き、及び鍵交換により共有した鍵を利用した暗号化コンテンツ伝送を行なう仕組みを図解している。同図に示す例では、コンテンツ伝送にはHTTPプロトコルが利用される。
DTCP_SourceとDTCP_Sinkはまず1つのTCP/IPコネクションを確立し、機器同士の認証を行なう。この認証をDTCP認証、若しくはAKE(Authentication and Key Exchange)と言う。DTCP準拠機器には、DTLA(Digital Transmission Licensing Administrator)と呼ばれる認可組織によりユニークな機器IDや認証鍵Kauthが埋め込まれている。DTCP認証手続きでは、このような情報を用いて互いが正規のDTCP準拠機器であることを確かめた後、コンテンツを暗号化若しくは復号するためのDTCP_Sourceが管理している認証鍵KauthをDTCP_Sink機器と共有することができる。
AKE手続きが成功すると、DTCP_Source機器とDTCP_Sink機器は、それぞれ内部で同様の処理を行なってKauthからコンテンツ鍵の種となる種鍵Kxを生成する。種鍵Kxは、コンテンツ伝送時にコンテンツ鍵Kcを生成するために使用される(後述)。
そして、DTCP準拠の機器間でAKEによる認証及び鍵交換手続きが済んだ後、DTCP_SinkはDTCP_Source上のコンテンツを要求する。DTCP_Sourceは、CDS(Contents Directory Service)などを通じてDTCP_SinkにDTCP_Source上のコンテンツへのアクセス先を示すコンテンツ場所をあらかじめ伝えることができる。DTCP_Sinkがコンテンツを要求するとき、HTTP(Hyper Text Transfer Protocol)やRTP(Real Time Protocol)などのプロトコルを利用することができる。
図10に示すようにHTTPの手続きに従ってコンテンツを要求する場合、DTCP_SourceがHTTPサーバとなり、DTCP_SinkがHTTPクライアントとなって、コンテンツの伝送を開始する。ちなみに、RTPによる伝送を要求するとき、DTCP_SourceがRTP Senderとなり、DTCP_SinkがRTP Receiverとなってコンテンツの伝送を開始する。なお、これらの通信手続き以外にもRSTP(Real Time Streaming Protocol)などの伝送プロトコルも適用が可能である。
HTTPでコンテンツ伝送を行なう際、DTCP認証のためのTCP/IPコネクションとは別に、HTTPのためのTCP/IPコネクションがHTTPクライアントより作成される(すなわち、DTCP_Source機器とDTCP_Sink機器はそれぞれ、AKE手続き用とコンテンツ伝送用に個別のソケット(IPアドレスとポート番号の組み合わせ)を持つ)。そして、HTTPクライアントは、通常のHTTPと全く同様の動作手順によりHTTPサーバ上のコンテンツを要求する。これに対し、HTTPサーバは、要求通りのコンテンツをHTTPレスポンスとして返す。
ここで、HTTPレスポンスとして伝送されるデータは、HTTPサーバすなわちDTCP_Source機器がAKE認証をした後に共有した鍵を用いてコンテンツを暗号化したデータとなっている。
具体的には、DTCP_Source機器は、乱数を用いてノンスNcを生成して、KxとNcを基にコンテンツ鍵Kcを生成する。そして、DTCP_Sink機器から要求されているコンテンツを、コンテンツ鍵Kcを用いて暗号化し、暗号化コンテンツとノンスNcをTCPストリーム上に乗せてDTCP_Sink機器に送信する。そして、IPプロトコルは、TCPストリームを所定の単位となるパケットの大きさに分割し、さらにヘッダ部を付加したIPパケットにし、指定されたIPアドレス宛てに届ける(例えば、非特許文献3を参照のこと)。
DTCP_Sink機器側では、DTCP_Source機器からの各IPパケットを受信すると、これをTCPストリームに組み立てる。そして、このストリーム中からノンスNcを取り出すと、これと認証鍵Kauthから求めた鍵Kxを用いて同様にコンテンツ鍵Kcを算出する。そして、このコンテンツ鍵Kcを用いて暗号化コンテンツを復号することができる。そして、復号化した後の平文のコンテンツに対し再生若しくは記録などの処理を実施することができる。
このように、DTCP−IPは、DTCPに準拠した機器同士で認証を行ない、DTCP認証が完了した機器同士で鍵を共有し、コンテンツを伝送する際に暗号化及び復号をすることにより、伝送路の途中におけるコンテンツの盗聴、改竄を防ぐという、IPネットワーク上においても安全なコンテンツ伝送手法を提供することができる。
ところで、通信中のデータを保護するために暗号化通信を行なうことは一般的であるが、同じ暗号鍵を継続して使用し続けると、鍵が解読される危険が増す。このため、データ通信中に、所定期間毎、所定データ長毎、あるいは随時に暗号鍵を変更するという対策が採られることが多い。
例えば、傍受の危険の高い無線LANシステムにおいては、WEP(Wired Equivalent Privacy)を利用したセキュリティが一般的に利用されているが、連続したパケットの暗号化に使用された鍵を比較的簡単に推測できるという脆弱性があり、長時間同じWEP鍵を使用し続けると鍵を解読することができる。これに対し、WEP鍵の解読にそれなりに時間がかかることから、一定時間でWEP鍵を変更することで解読を防ぐことができる(例えば、特許文献1を参照のこと)。また、万が一WEP鍵が解読された場合でも、WEP鍵が定期的に変更されるため、解読した鍵では暗号を解くことができなくなり、安全である。
また、長大なTCPストリーム全体に渡り同じ暗号鍵を使用し続けると、鍵が解読される危険は高くなる。このため、DTCP−IPでは、Source機器は128MBのコンテンツ毎にノンスNcすなわちコンテンツ鍵Kcを更新するよう規定している(例えば、非特許文献2を参照のこと)。バイト・ストリーム中で、同じノンスNcから生成されたコンテンツ鍵Kcを用いて暗号化されたデータの範囲は、同じ鍵を用いて復号することができる復号化単位である。
しかしながら、TCP/IPなどのネットワーク上やファイル・システムからバイト・ストリームとして暗号データを受理して復号し、処理をする装置及びプログラムにおいては、復号における鍵が途中で変更されるような場合には、使用する鍵が変化する変化点において復号のための処理が滞ってしまう、という問題が発生する。
図11には、復号鍵を途中で変更しながら伝送されるバイト・ストリームを受信する通信装置の機能的構成(従来技術)を模式的に示している。ネットワークやファイル・システムからバイト・ストリームで送られてくる暗号データは、復号鍵が途中で変更されている。
受信部では、入力された暗号データのうち同じ鍵を用いて復号する範囲のデータを1つの復号化単位(図中で暗号化データ1、2、…)として扱い、後段の復号部に連続的に転送するようになっている。
バイト・ストリーム上で鍵が変更されるとき、復号部では、変更前の鍵で復号される復号化単位の暗号データについてすべて復号処理を終了するまでは鍵を変更してはならず、このため、次の新しい鍵で復号するべき復号単位の暗号データを入力することができない。
このような場合、暗号データの受信部は、復号部で復号鍵の変更が可能になるまで受信データをバッファリング若しくは保持し続ける必要があるため、円滑なデータの処理をできなくなる。例えば、次のIPパケットが届いても、以前の復号鍵を用いた復号処理が完了せず、受信バッファが満杯であれば、パケット受信エラーにより再送処理が起動してしまう。
特開2005−117458号公報 DTCP Specification Volume 1 Version 1.3 (Informational Version)http://www.dtcp.com/data/info_20040107_dtcp_Vol_1_1p3.pdf DTCP Volume 1 Supplement E Mapping DTCP to IP, Version 1.0 (Informational Version)http://www.dtcp.com/data/info_20031124_dtcp_VISE_1p0.pdf/ RFC(Request For Comment) 791 INTERNET PROTOCOL
本発明の目的は、著作権保護若しくはその他の目的で暗号化されたコンテンツを好適に復号することができる、優れた情報処理装置及び情報処理方法、並びにコンピュータ・プログラムを提供することにある。
本発明のさらなる目的は、IPネットワーク上で暗号化して伝送されるコンテンツを好適に復号することができる、優れた情報処理装置及び情報処理方法、並びにコンピュータ・プログラムを提供することにある。
本発明のさらなる目的は、TCPストリームのような長大なバイト・ストリームとして入力され、且つ復号鍵が動的に変更される暗号データを好適に復号することができる、優れた情報処理装置及び情報処理方法、並びにコンピュータ・プログラムを提供することにある。
本発明のさらなる目的は、復号鍵を動的に変更しながら暗号化されたバイト・ストリームを、使用する鍵が変化する変化点において処理が滞ることなく好適に復号することができる、優れた情報処理装置及び情報処理方法、並びにコンピュータ・プログラムを提供することにある。
本発明は、上記課題を参酌してなされたものであり、その第1の側面は、バイト・ストリームとして入力され、且つ復号鍵が動的に変更される暗号データを処理する情報処理装置であって、
バイト・ストリームとして入力される暗号データを受理し、同じ鍵を用いて復号するデータの範囲を復号化単位として識別し、バイト・ストリームから復号するのに必要な情報を抽出して、該抽出した情報を暗号データの断片を付加した暗号データ・セットとして出力する暗号データ受信部と、
暗号データ・セットをメモリ上に分散配置したままキューイングし、順次復号する暗号データ復号部と、
得られた平文データを処理する平文処理部と、
を具備することを特徴とする情報処理装置である。
本発明は、TCP/IPなどのネットワーク上やファイル・システムからバイト・ストリームとして暗号データを受理して復号する情報処理装置に関するものであり、特に、TCPストリームのような長大なバイト・ストリームとして入力される暗号データを復号する情報処理装置に関する。
暗号化通信であっても、同じ暗号鍵を継続して使用し続けると、途中で鍵が解読される危険が増す。このため、復号鍵を動的に変更しながら暗号化して、バイト・ストリームの伝送が行なわれる。この種のシステムとして、DTCP_Source機器とDTCP_Sink機器の間で行なわれるHTTPプロトコルを利用したコンテンツ伝送を挙げることができる。
しかしながら、このような暗号化バイト・ストリームを受理して復号し、処理を行なう場合には、復号鍵が変化する変化点において処理が滞るという問題がある。何故ならば、暗号データを復号する復号モジュールでは、同じ鍵を用いて復号するデータの範囲、すなわち復号化単位の暗号データについてすべて復号処理を終了するまでは鍵を変更してはならず、このため、新しい鍵で復号するべき次の復号化単位の暗号データを入力することができないからである。
本発明に係る情報処理装置は、暗号データを受理する受信部と、暗号データを復号する復号部と、復号データを再生若しくはその他のデータ処理を実行する処理部を備えている。
受信部では、バイト・ストリームとして入力される暗号データを受理すると、同じ鍵を用いて復号するデータの範囲を復号化単位として識別し、バイト・ストリームから復号するのに必要となる情報を抽出し、この種の情報を暗号データの断片に付加した暗号データ・セットとして復号部に渡す。
次いで、復号部では、暗号データ・セットを受理すると、そのデータをメモリ上に分散配置したままキューイングし、順次復号して、得られた平文データを後段の処理部に渡す。
したがって、本発明に係る情報処理装置によれば、受信部と復号部は独立して動作することができるので、ノンスなど復号時に必要なパラメータがバイト・ストリームの途中で動的に変更されても、受信部と復号部の動作が停止することなく、復号鍵の変化点において処理が滞ることもない。
前記暗号データ受信部は、読み取ることができた長さの暗号データで暗号データ・セットを生成し、また、鍵の変化点において暗号データ・セットを区切るようにする。また、オリジナル・データの長さ、暗号データの断片が暗号データ・ストリームのどの位置に存在したかの情報、暗号データが属する復号化単位の長さといった情報を暗号データ・セットに含めるようにする。
このように復号鍵に関する情報が暗号データ・セットに含まれているので、受信部と復号部は独立して動作することができる。そして、復号部では鍵が変化するときはその情報に従って鍵を変更していくのみで対応することができ、受信部はキューの入出力動作は停止させる必要がない。
また、復号部はデータをキューに溜めることができる分だけ蓄積し、そのキューに入ってきた暗号データ・セットを順番に処理していけばよい。また、復号部では暗号データ・セットをキューに入れて保持するので、暗号データの断片を復号部のバッファ領域を持たずコピーする必要はない。
このように、本発明に係る情報処理装置では、受信部と復号部の関連性を薄くし、それぞれのモジュールが独立して動作可能である。これは同時に各機能モジュールの実装を非常に簡略化できることを意味する。
また、本発明の第2の側面は、バイト・ストリームとして入力され、且つ復号鍵が動的に変更される暗号データの処理をコンピュータ・システム上で実行するようにコンピュータ可読形式で記述されたコンピュータ・プログラムであって、前記コンピュータ・システムに対し、
バイト・ストリームとして入力される暗号データを受理し、同じ鍵を用いて復号するデータの範囲を復号化単位として識別し、バイト・ストリームから復号するのに必要な情報を抽出して、該抽出した情報を暗号データの断片を付加した暗号データ・セットとして出力する暗号データ受信手順と、
暗号データ・セットを分散配置したままキューイングし、順次復号する暗号データ復号手順と、
得られた平文データを処理する平文処理手順と、
を実行させることを特徴とするコンピュータ・プログラムである。
本発明の第2の側面に係るコンピュータ・プログラムは、コンピュータ・システム上で所定の処理を実現するようにコンピュータ可読形式で記述されたコンピュータ・プログラムを定義したものである。換言すれば、本発明の第2の側面に係るコンピュータ・プログラムをコンピュータ・システムにインストールすることによって、コンピュータ・システム上では協働的作用が発揮され、本発明の第1の側面に係る情報処理装置と同様の作用効果を得ることができる。
本発明によれば、TCPストリームのような長大なバイト・ストリームとして入力され、復号鍵が動的に変更される暗号データを好適に復号することができる、優れた情報処理装置及び情報処理方法、並びにコンピュータ・プログラムを提供することができる。
また、本発明によれば、復号鍵を動的に変更しながら暗号化されたバイト・ストリームを、使用する鍵が変化する変化点において処理が滞ることなく好適に復号することができる、優れた情報処理装置及び情報処理方法、並びにコンピュータ・プログラムを提供することができる。
本発明に係る情報処理装置によれば、暗号化されたバイト・ストリームを受信する通信装置は、受信したデータを復号するまでの処理を円滑に進めることができ、受信部と復号部の状態に依存性がなく独立動作可能であり、これによってそれぞれの機能モジュールを簡略化することができる。また、復号部は未復号の暗号データを保持するためのバッファ領域を持たず、暗号データの転送にコピーを必要としないことから、暗号化ストリームの復号処理の性能を向上することができる。
本発明のさらに他の目的、特徴や利点は、後述する本発明の実施形態や添付する図面に基づくより詳細な説明によって明らかになるであろう。
以下、図面を参照しながら本発明の実施形態について詳解する。
本発明は、TCP/IPなどのネットワーク上やファイル・システムからバイト・ストリームとして暗号データを受理して復号する情報通信システムに関するものであり、特に、TCPストリームのような長大なバイト・ストリームを途中で復号鍵を変更しながら暗号化通信を行なう情報通信システムに関する。かかるシステムの具体例は、DTCP_Source機器とDTCP_Sink機器の間で行なわれるHTTPプロトコルを利用したコンテンツ伝送である。
A.システム構成
DTCP−IPに従ったコンテンツ伝送は、コンテンツの要求を受理してコンテンツを送信するサーバとしてのSource機器と、コンテンツを要求し、コンテンツを受信し、再生若しくは記録するクライアントとしてのSink機器で構成される。図1には、本発明の一実施形態に係る情報通信システムの構成例を模式的に示している。
図示の例では、Source機器A〜B、Sink機器A〜B及び中継機器A〜Cの各エンティティにより、DTCP−IP AKEシステムが構築されている。
DTCP−IP に準拠した認証サーバであるSource機器AとDTCP−IPに準拠した認証クライアントであるSink機器Aが中継機器Aと中継機器Bを経由してネットワークで接続されている。
また、中継機器A、中継機器B、中継機器C を経由して、DTCP−IPに準拠した認証サーバであるSource機器BやDTCP−IPに準拠した認証クライアントであるSink機器BがIPネットワークで接続されている。
図2及び図3には、図1に示した情報通信システムにおいて、クライアント(すなわち、Sink機器)及びサーバ(すなわち、Source機器)として動作する情報通信装置の機能構成をそれぞれ模式的に示している。Sink機器とSource機器は、インターネットなどの図示しないTCP/IPネットワーク上でコネクションを確立することができ、このコネクションを利用して、認証手続きやコンテンツ伝送手続きを実行することができる。
図2に示すSink機器は、DTCP−IP規格に準拠しており、DTCP_Sinkとして動作する。図示のクライアント機器は、機能ブロックとして、DTCP−IP認証ブロックと、DTCP−IPコンテンツ受信ブロックと、コンテンツ再生/記録ブロックを備えている。
DTCP−IP認証ブロックは、AKEブロックと、メッセージ・ダイジェスト生成ブロックと、コンテンツ復号ブロックを備えている。
AKEブロックは、DTCP−IPにおけるAKE機構(DTCP_Sink側)を実現するブロックでる。このAKEブロックは後述のメッセージ・ダイジェスト生成ブロックから要求されたパラメータを渡す機能も備えている。
メッセージ・ダイジェスト生成ブロックは、指定されたアルゴリズムに従い、パラメータのメッセージ・ダイジェストを生成するブロックである。メッセージ・ダイジェストを生成するアルゴリズムはあらかじめ用意されたアルゴリズムを指定することができる。あらかじめ用意されたアルゴリズムとして、例えばMD5やSHA−1といった一方向性ハッシュ関数に関するアルゴリズムが挙げることができる(SHA−1は、MD5と同様、MD4を改良したものに相当するが、160ビットのハッシュ値を生成するので、強度はMDシリーズを上回る)。
メッセージ・ダイジェスト生成ブロックは、DTCP−IP認証ブロックの外に公開してはならないAKEブロックが保持するパラメータのメッセージ・ダイジェストを生成できるようにAKEブロックと密に配置され、AKEブロックへパラメータを要求して取得することが可能であり、そのパラメータ若しくは外部から与えられたパラメータのメッセージ・ダイジェストを作成することができる。
コンテンツ復号ブロックは、サーバから受信した暗号化されたコンテンツ・データをAKEで交換した鍵を用いてコンテンツの復号鍵を算出し、暗号コンテンツを復号するブロックである。ここで復号されたコンテンツは、コンテンツ再生/記録ブロックへ渡される。
コンテンツ再生/記録ブロックは、渡されたコンテンツを、再生モードの場合は再生を行ない、記録モードの場合は保存する。
DTCP−IPコンテンツ受信ブロックは、AKEを実施した後にコンテンツ伝送手続きを実行する処理モジュールである。図示の例では、DTCP−IPコンテンツ受信ブロックはHTTPクライアント・ブロックを持ち、HTTPクライアントとしてHTTPサーバへコンテンツを要求し、応答されたコンテンツをHTTPサーバから受信する。
HTTPクライアント・ブロックは、HTTPリクエスト管理ブロックとHTTPレスポンス管理ブロックに分かれる。さらに、HTTPリクエスト管理ブロックは、HTTPリクエスト送信ブロックとHTTPリクエスト生成ブロックへ分かれる。
HTTPリクエスト生成ブロックは、送信するコンテンツ伝送要求(HTTPリクエスト)を生成する。ここで生成されたHTTPリクエストは、HTTPリクエスト送信ブロックによりサーバへ送信される。
HTTPレスポンス管理ブロックは、HTTPレスポンス受信ブロックとHTTPレスポンス解釈ブロックに分かれる。サーバから返信されるHTTPレスポンスと暗号化されたコンテンツは、HTTP受信ブロックで受信される。ここで受信したHTTPレスポンスは、HTTPレスポンス解釈ブロックでチェックされる。ここでのチェックがOKの場合は受信した暗号化コンテンツをDTCP−IP認証ブロック内のコンテンツ復号ブロックへ送る。また、このチェックがNGの場合は、エラー・レスポンスとしての処理を行なう。
DTCP−IP認証ブロックとDTCP−IPコンテンツ受信ブロックは、サーバ機器との間で個別のTCP/IPコネクションを確立して、それぞれ認証手続き及びコンテンツ伝送手続きを互いに独立して実行する。
また、図3に示すSource機器は、DTCP−IP規格に準拠しており、DTCP_Sourceとして動作する。サーバ機器は、機能ブロックとして、DTCP−IP認証ブロックと、DTCP−IPコンテンツ送信ブロックと、コンテンツ管理ブロックを備えている。
DTCP−IP認証ブロックは、認証手続き実行手段に相当し、AKEブロックと、メッセージ・ダイジェスト生成ブロックと、コンテンツ暗号化ブロックを備えている。
AKEブロックは、DTCP−IPにおけるAKE機構(DTCP_Source側)を実現するブロックである。このブロックは、後述のメッセージ・ダイジェスト生成ブロックから要求されたパラメータを渡す機能も備えている。AKEブロックは認証したDTCP_Sink機器に関する情報を認証した機器の数だけ保持し、それをクライアントからコンテンツが要求された際に認証済みのクライアントかどうかを判別するのに使用する。
メッセージ・ダイジェスト生成ブロックは指定されたアルゴリズムに従い、パラメータのメッセージ・ダイジェストを生成するブロックである。メッセージ・ダイジェストを生成するアルゴリズムはあらかじめ用意されたアルゴリズムを指定できる。あらかじめ用意されたアルゴリズムとは、例えばMD5やSHA−1といった一方向性ハッシュ関数に関するアルゴリズムが挙げられる(同上)。
メッセージ・ダイジェスト生成ブロックは、DTCP−IP認証ブロックの外に公開してはならないAKEブロックが保持するパラメータのメッセージ・ダイジェストを生成できるようにAKEブロックと密に配置され、AKEブロックへパラメータを要求して取得することが可能で、そのパラメータ若しくは外部から与えられたパラメータのメッセージ・ダイジェストを作成することができる。
コンテンツ暗号化ブロックは、DTCP−IPコンテンツ送信ブロックの要求に応じて、コンテンツ管理ブロックより読み出したコンテンツ・データをAKEで交換した鍵から生成したコンテンツ鍵を用いて暗号化するブロックである。ここで復号されたコンテンツは、クライアントへ送信するために、DTCP−IPコンテンツ送信ブロックへ渡される。
コンテンツ管理ブロックは、DTCP−IPの機構を用いて保護されるべきコンテンツを管理するブロックである。コンテンツ暗号化ブロックの読み出しに応じて、コンテンツのデータを渡す。
DTCP−IPコンテンツ送信ブロックは、HTTPサーバ・ブロックを持ち、HTTPサーバとしてクライアントからのリクエストを受理し要求に応じた処理を実行する。
HTTPサーバ・ブロックは、HTTPリクエスト管理ブロックとHTTPレスポンス管理ブロックに分かれる。さらに、HTTPリクエスト管理ブロックは、HTTPリクエスト受信ブロックと、HTTPリクエスト解釈ブロックに分かれる。
HTTPリクエスト受信ブロックは、クライアントからのHTTPリクエストを受信する。受信したHTTPリクエストはHTTPリクエスト解釈ブロックに送られ、チェックされる。HTTPリクエスト解釈ブロックにおけるチェックがOKの場合、HTTPリクエストの情報をDTCP−IP認証ブロックへ通知する。
HTTPレスポンス管理ブロックは、HTTPレスポンス生成ブロックとHTTPレスポンス送信ブロックに分かれる。
HTTPレスポンス生成ブロックは、HTTPリクエスト解釈ブロックでのチェックがOKの場合、暗号化されたコンテンツを返すためのHTTPレスポンスを作成する。一方、HTTPリクエスト解釈ブロックでのチェックがNGの場合、エラーを返すためのHTTPレスポンスを作成する。
HTTPレスポンス送信ブロックは、作成されたHTTPレスポンスを、要求元のクライアントへHTTPレスポンスを送信する。また、HTTPリクエスト解釈ブロックでのチェックがOKの場合には、HTTPレスポンス・ヘッダに続けて、DTCP−IP認証ブロック内のコンテンツ暗号化ブロックにて暗号化したコンテンツを送信する。
DTCP−IP認証ブロックとDTCP−IPコンテンツ送信ブロックは、Sink機器との間で個別のTCP/IPコネクションを確立して、それぞれ認証手続き及びコンテンツ伝送手続きを互いに独立して実行する。
なお、DTCP−Sink機器及びDTCP−Source機器のいずれもがDTCP−IP認証ブロック内に持つメッセージ・ダイジェスト生成ブロックはDTCP−IP自体で規定される機能モジュールではなく、また本発明の要旨には直接関連しない。例えば、本出願人に既に譲渡されている特願2004−113459号公報にはメッセージ・ダイジェスト生成ブロックに付いて記述されている。
B.HTTPを利用したコンテンツ伝送
図4には、DTCP_Source機器とDTCP_Sink機器の間でAKE手続き、及びHTTPプロトコルを利用したコンテンツ伝送を行なう仕組みを図解している。DTCP_Source機器とDTCP_Sink機器の間では、AKE手続き用のTCPコネクションと、HTTPを利用したコンテンツ要求用、並びにコンテンツ鍵の確認用のTCPコネクションがそれぞれ独立して確立される(すなわち、DTCP_Source機器とDTCP_Sink機器はそれぞれ、AKE手続き用とコンテンツ伝送用、コンテンツ鍵の確認用に個別のソケット(IPアドレスとポート番号の組み合わせ)を持つ)。
まず、AKE手続き用のTCPコネクションを確立し、同手続きが成功すると、DTCP_Source機器とDTCP_Sink機器の間では認証鍵Kauthを共有することができる。AKE手続きが終了すると、このTCPコネクションは切断される。そして、DTCP_Source機器とDTCP_Sink機器は、それぞれ内部で同様の処理を行なってKauthからコンテンツ鍵の種となる種鍵Kxを生成する。
次いで、DTCP−Sink機器側からのコンテンツ要求などに応じて、HTTPプロトコルを用いたコンテンツ伝送用のTCPコネクションが確立される。
DTCP_Source機器は、乱数を用いてノンスNcを生成して、KxとNcを基にコンテンツ鍵Kcを生成する。そして、DTCP_Sink機器から要求されているコンテンツを、コンテンツ鍵Kcを用いて暗号化し、暗号化コンテンツとノンスNcをTCPストリーム上に乗せてDTCP_Sink機器に送信する。IPプロトコルは、TCPストリームを所定の単位となるパケットの大きさに分割し、さらにヘッダ部を付加したIPパケットにし、指定されたIPアドレス宛てに届ける。
DTCP_Sink機器側では、DTCP_Source機器からの各IPパケットを受信すると、これをTCPストリームに組み立てる。そして、ストリームからノンスNcを取り出すと、これと認証鍵Kauthから求めた鍵Kxを用いてコンテンツ鍵Kcを算出する。そして、このコンテンツ鍵Kcを用いて受信した暗号化コンテンツを復号することができる。
HTTPプロトコルを利用したコンテンツ伝送が終了すると、使用したTCPコネクションを適宜切断することができる。
ここで、長大なTCPストリーム全体に渡り同じ暗号鍵を使用し続けると、鍵が解読される危険は高くなる。このため、DTCP−IPでは、Source機器は128MBのコンテンツ毎にノンスNcすなわちコンテンツ鍵Kcを更新するよう取り決められている。バイト・ストリーム中で、同じノンスNcから生成されたコンテンツ鍵Kcを用いて暗号化されたデータの範囲は、同じ鍵を用いて復号することができる復号化単位となる。
復号鍵が動的に変更される暗号化ストリームを受信及び復号処理する際には、使用する鍵が変化する変化点において処理が滞るという問題がある。本実施形態では、DTCP−Sink機器側では、受信部において、バイト・ストリームとして入力される暗号データを受理すると、同じ鍵を用いて復号するデータの範囲を復号化単位として識別し、バイト・ストリームから復号するのに必要となるノンスなどの情報を抽出し、この種の情報を暗号データの断片に付加した暗号データ・セットとして後段の復号部に渡すようにしている。したがって、受信部と復号部は独立して動作することができるので、ノンスなど復号時に必要なパラメータがバイト・ストリームの途中で動的に変更されても、受信部と復号部の動作が停止することなく、復号鍵の変化点において処理が滞ることもない。但し、この点についての詳細は後述に譲る。
また、バイト・ストリームの途中で復号鍵が動的に変更されることから、コンテンツ鍵の確認用のTCPコネクションをさらに確立し、DTCP_Sink機器は、DTCP_Source機器に対しコンテンツ鍵確認のための手続きを行なう。DTCP_Sink機器は、コンテンツ鍵の確認が必要になると、適宜このTCPコネクションを確立する。DTCP_Sink機器側で復号コンテンツについて再生やその他の平文処理が終了すると、鍵確認の必要はなくなるので、このTCPコネクションは切断される。但し、この確認手続き自体は本発明の要旨には直接関連しないので、ここではこれ以上説明しない。
C.暗号コンテンツの受信及び復号処理
上述したように、DTCP−IPは、TCPコネクションを介してDTCPに準拠した機器同士で認証を行ない、DTCP認証が完了した機器同士で鍵を共有し、コンテンツを伝送する際に暗号化及び復号をすることにより、伝送路の途中におけるコンテンツの盗聴、改竄を防ぐという、IPネットワーク上においても安全なコンテンツ伝送手法を提供することができる。さらに、長大なTCPストリーム全体に渡り同じ暗号鍵を使用し続けると、鍵が解読される危険は高くなることから、DTCP−IPでは、128MBのコンテンツ毎にノンスNcすなわちコンテンツ鍵Kcを更新するよう取り決められている。
ここで、復号鍵が途中で動的に変更される暗号化バイト・ストリームを受理して復号し、処理を行なう場合には、復号鍵が変化する変化点において処理が滞るという問題がある。何故ならば、復号モジュールでは、同じ鍵を用いて復号するデータの範囲、すなわち復号化単位の暗号データについてすべて復号処理を終了するまでは鍵を変更してはならず、このため、次の新しい鍵で復号するべき復号単位の暗号データを入力することができないからである。
これに対し、本実施形態に係るDTCP_Sink機器では、受信部において、バイト・ストリームとして入力される暗号データを受理すると、同じ鍵を用いて復号するデータの範囲を復号化単位として識別し、バイト・ストリームから復号するのに必要となるノンスなどの情報を抽出し、この種の情報を暗号データの断片に付加した暗号データ・セットとして後段の復号部に渡すようにしている。したがって、受信部と復号部は独立して動作することができるので、ノンスなど復号時に必要なパラメータがバイト・ストリームの途中で動的に変更されても、受信部と復号部の動作が停止することなく、復号鍵の変化点において処理が滞ることもない。
この項では、DTCP_Sink機器における暗号化バイト・ストリームの受信及び復号処理について詳解する。
図5には、DTCP_Sink機器において暗号化バイト・ストリームの受信及び復号処理を行なうための機能的構成を模式的に示している。図示の通り、暗号データを受理する受信部と、暗号データを復号する復号部と、復号データを再生若しくはその他のデータ処理を実行する処理部の各機能モジュールで構成される。
受信部は、DTCP−IPコンテンツ受信ブロック内のHTTPレスポンス管理ブロックに相当し、復号部は、DTCP−IP認証ブロック内のコンテンツ復号ブロックに相当する(図2を参照のこと)。また、処理部は、復号して平文状態となった映像や音響などのコンテンツを再生出力するコンテンツ再生アプリケーションに相当する。
受信部は、ネットワーク若しくはファイル・システムからバイト・ストリームの形式で暗号データを受理すると、まず読み取った暗号データからノンスNc若しくは復号鍵などの復号に必要となる復号用情報を読み取る。そして、暗号化ストリームのうち同じ鍵を用いて復号することができる復号化単位を識別して、復号化単位をさらに適当な大きさの断片に分割し、各断片に復号用の情報を付加して暗号化データ・セットを生成し、復号部に転送する。
図6には、暗号データ・セットのデータ構成例を示している。図示の例では、暗号データ・セットは、当該データ・セットに含まれる暗号データの断片の長さと、ノンスNcなど復号鍵に関する情報及びその暗号データ・セットを復号するために必要なオプション・データ、そして暗号データの断片から成るオブジェクトで構成される。
復号化単位全体の暗号データを受信するのには時間がかかる、あるいは1つの復号化単位のデータ長が復号部に1回当り投入するデータ量として大き過ぎることがあるので、受信部では復号化単位の暗号データを適当に断片化して暗号データ・セットを生成する。暗号化データの断片の長さは、例えばネットワークから一度に読むことのできた暗号データの長さやファイル・システムから一度の操作で読み出す暗号データ長さなどであるが、暗号データ・セット毎に長さを明記するため固定長である必要はない。したがって、受信部はすべての暗号データを読み取ってから暗号データ・セットを作成するのではなく、そのときに読み取ることができた長さの暗号データで暗号データ・セットを生成することができる。但し、鍵の変化点において暗号データ・セットを区切られなければならない。
暗号データ・セットに付加される鍵に関する情報とは、鍵そのものでも良いし、鍵と結び付けることのできるようなコピー・モードでも構わない。図4に示したDTCP−IPコンテンツ伝送手続きの場合、DTCP_Source機器が暗号化ストリーム乗せるノンスNcが鍵に関する情報に相当する。
オプション・データには、暗号データ・セットに含まれる暗号データの断片が暗号データ・ストリーム内のどの位置に存在したデータか(すなわち、バイト・ストリーム中の相対位置)を示す情報や、暗号データ・セットが属する復号化単位の長さ情報などが書き込まれる。
オプション・データとして書き込まれる情報の内容は、復号方法などに依存する。例えば、DTCP−IP1で扱われる暗号データは1つ以上のPCP1で構成される。1つのPCP(Protected Content Packet)がそれに含まれるデータを復号するための情報を示しており、その中には暗号化する前のオリジナル・データの長さが記述されている。
DTCP−IPでは、オリジナル・データを暗号化するのに128ビットAES(Advanced Encryption Standard)というアルゴリズムを使用している。このアルゴリズムにオリジナル・データを入力すると同じサイズの暗号データが得られるが、入力単位が128ビット固定になっているため、鍵の変化点やオリジナル・データの終端で128ビットにデータ量が満たない場合には128ビットまで0で埋められて入力される(データが128ビット以上ある場合は128ビットの暗号化を繰り返す)。また、同アルゴリズムにより復号する際には、128ビットの倍数長の暗号データを入力して同じサイズのオリジナル・データを得るが、PCPで示されたサイズ以上のオリジナル・データが得られた場合はそのサイズまでが有効データとして扱われる(復号も128ビット単位で処理を繰り返す)。
本実施形態では、DTCP−IPで扱われるPCPから鍵情報(=E−EMI)を読み出し、PCPの中に含まれる暗号データをネットワークやファイル・システムから読み取れた量毎に暗号データ・セット群を作成して、復号部に転送していく。
図7には、受信部において、DTCP−IP暗号データから暗号データ・セットを作成する様子を示している。DTCP−IP1で扱われる暗号データは1つ以上のPCP1で構成され、1つのPCPが同じ復号鍵で復号することができる復号化単位に相当する。受信部では、そのときに読み取ることができた長さの暗号データの断片にPCPヘッダに記述されている鍵情報を各暗号データ・セットに付加して、暗号データ・セット1、2…を順次生成していく。
但し、鍵の変化点や暗号データの終端では復号後の有効範囲を知る必要があるため、この暗号データの断片が暗号データ・ストリームのどの位置に存在したかの情報やオリジナル・データの長さなども一緒に暗号データ・セットへ入れておく必要がある。このようにオプション・データはその復号手法などに依存するパラメータを指定する。
なお、暗号データ・セットを作成するためには、暗号データ・ストリーム中に含まれている暗号データの断片を格納するだけのデータ領域が必要である。仮想メモリを備えたオペレーティング・システムでは動的に領域を確保して暗号データ・セットを構成することは容易である。また、資源が限られたハードウェアでは、領域を使いまわすなどの工夫をすることにより、同様の仕組みを実現することが可能である。
復号部は、受信部より転送された暗号データ・セット群を受理すると、その暗号データ・セット群をキューに溜めていく。
従来、暗号データの復号処理を行なう場合、受信した暗号データをある連続したメモリ領域に一旦コピーし、復号部がメモリから暗号データを順次読み出しながら復号処理を行なう(図11を参照のこと)。このような場合、バイト・ストリームとして入力される暗号データの復号鍵が動的に変化する際には、同じ鍵で処理すべき暗号データ、すなわち復号化単位を構成するすべての暗号データがすべて復号されたことを確認してから次の復号単位の復号鍵を復号部セットし、そして新しい鍵で復号する暗号データを入力しなければならない。しかしながら、このような方式では、受信部が復号部の状態に従って暗号データの転送を制御しなければならず、復号鍵の変更があるタイミングの前後でデータの受け渡しが滞ると言う問題がある。
これに対し、本実施形態では、受信部は復号部における復号処理の進行状態とは無関係に、暗号データ・セットを転送できるだけ転送することができる。一方、復号部はデータをキューに溜めることができる分だけ蓄積し、そのキューに入ってきた暗号データ・セットを順番に処理していけばよい。復号鍵に関する情報が暗号データ・セットに含まれているので、復号部では鍵が変化するときはその情報に従って鍵を変更していくのみで対応することができ、受信部はキューの入出力動作は停止させる必要がない。また、復号部では暗号データ・セットをキューに入れて保持するので、暗号データの断片を復号部のバッファ領域を持たずコピーする必要はない。そして、復号部は復号した平文データを処理部に転送する。
処理部では、平文データでユーザにより指定された処理を行なう。例えば、復号されたムービー若しくは音声データをデコーダに入力し再生をしたり、任意の形式のデータをファイル・システムへ保存したりする。
このように、本実施形態に係る情報処理装置では、受信部と復号部の関連性を薄くし、それぞれのモジュールが独立して動作可能である。これは同時に各機能モジュールの実装を非常に簡略化できることを意味する。
本実施形態において、DTCP−Sink装置が実施する暗号化バイト・ストリームの受信及び復号処理の概要は、図5に示した通りである。すなわち、受信部は、受信したバイト・ストリームからデータを読み取って暗号データ・セットを作成して復号部へ転送する。これに対し、復号部では、暗号データ・セットがキューイングされていたら指定された鍵情報で暗号データの断片を復号し、処理部へ転送する。そして処理部は、ユーザに指定された処理を平文データに対して実施する。
図8には、受信部において行なわれる処理手順をフローチャートの形式で示している。
まず、 ネットワークやファイル・システムなど指定された入力装置から暗号データを読み込めるかどうかをチェックする(ステップS1)。暗号データの読み込み可能な場合は次ステップS1へ進むが、暗号データの読み込みが不可能である場合には、ステップS10へ進み、当該処理ルーチンの終了処理を行なう。但し、読み込み不可能(終了)の場合であっても、前回読み取った暗号データで未処理部分が残っていて、且つ、鍵情報を保持している場合は、次ステップS2へ進む。
ステップS2では、入力装置から暗号データを読み込み、受信部にて保持する。このとき、読み込むデータのサイズは任意で、すべての暗号データを読み込む必要はない。既に読み込んだデータがある場合はその後ろに新たに読み込んだデータを連結する。
ここで、現在処理中の復号化単位における鍵情報を受信部の内部で既に持っているかどうかを判別する(ステップS3)。受信部の内部に既に鍵情報を持っている場合はステップS6へ進み、未だ鍵情報を取得していない場合は、それを解析するためにステップS4へ進む。非同期に鍵情報が変更された場合や、読み取った暗号データの内容などで、現在の鍵情報を消去して新しく鍵情報を解析する必要がある場合もステップS4へ進む。
ステップS4では、鍵情報を取得するのに必要なデータ量の暗号データを読み込んでいるかどうかをチェックする。ここで、まだ読み込みが足りない場合はステップS1へ戻る。
また、鍵情報を取得するのに十分なデータ量があれば、ステップS5へ進み、読み込んだ暗号データから鍵情報を解析し、その結果を保持する。そして鍵情報の解析で使用したデータを受信部から削除し、ステップS1へ戻ります。
ステップS6では、鍵情報や必要なオプション情報、読み込んだ暗号データの断片を用いて、暗号データ・セットを作成する。暗号データ・セットに含まれる暗号データの断片は、新たに作成した領域にコピーして保持させることができる。しかし、コピーによる負荷の増大を抑えたい場合には、ステップS1にて暗号データを読み込む際にその都度新たな領域を作成しておき、その領域に直接暗号データを読み込み、暗号データ・セットに内包することもできる。
次いで、作成した暗号データ・セットを復号部に転送する(ステップS7)。転送したら、読み込んだ暗号データから転送した暗号データの断片を削除する(若しくは転送したこととしてマークする)。
次いで、現在の鍵情報で有効な暗号データの長さが指定されていて、その長さの暗号データを復号部にすべて転送したならば(すなわち、復号化単位の暗号データをすべて転送したならば)(ステップS8)、次ステップS9へ進み、それ以外の場合はステップS1へ戻る。ステップS9では、保持している鍵情報を消去した後、ステップS1へ戻る。そして、ステップS10では、復号部に終了を通知して本処理ルーチンを終了する。
図9には、復号部において行なわれる処理手順をフローチャートの形式で示している。
まず、当該復号部に受信部から1つ以上の暗号データ・セットが転送され、復号部のキューに蓄積されているかどうかをチェックする(ステップS21)。暗号データ・セットが保持されていれば次ステップS23へ進むが、暗号データ・セットが転送されていなければステップS22へ進む。
ステップS22では、受信部から終了通知がされているかどうかをチェックする。そして、当該通知がなされていなければステップS21へ戻る。また、受信部から終了通知がされていれば、終了状態となり、本処理ルーチンを終了する。
ステップS23では、暗号データ・セットをキューから読み出し、それに示された鍵情報やオプション情報を用いて復号処理を行なう。復号化を終了したら、次ステップS24へ進む。
ステップS24では、復号結果を処理部へ転送し、次の暗号データ・セットを処理するためにステップS21に戻る。
以上、特定の実施形態を参照しながら、本発明について詳解してきた。しかしながら、本発明の要旨を逸脱しない範囲で当業者が該実施形態の修正や代用を成し得ることは自明である。
本発明の適用例として、DTCP_Source機器とDTCP_Sink機器の間で行なわれるHTTPプロトコルを利用したコンテンツ伝送を挙げることができるが、本発明の要旨はこれに限定されない。長大なバイト・ストリームを途中で復号鍵を変更しながら暗号化通信を行なう、その他のさまざまなタイプの情報通信システムに対しても、同様に本発明を適用することができる。
要するに、例示という形態で本発明を開示してきたのであり、本明細書の記載内容を限定的に解釈するべきではない。本発明の要旨を判断するためには、特許請求の範囲を参酌すべきである。
図1は、本発明の一実施形態に係る情報通信システムの構成例を模式的に示した図である。 図2は、図1に示した情報通信システムにおいて、クライアント(すなわち、Sink機器)として動作する情報通信装置の機能構成を模式的に示した図である。 図3は、図1に示した情報通信システムにおいて、サーバ(すなわち、Source機器)として動作する情報通信装置の機能構成を模式的に示した図である。 図4は、DTCP_Source機器とDTCP_Sink機器の間でAKE手続き、及びHTTPプロトコルを利用したコンテンツ伝送を行なう仕組みを示した図である。 図5は、DTCP_Sink機器において暗号化バイト・ストリームの受信及び復号処理を行なうための機能的構成を模式的に示した図である。 図6は、暗号データ・セットのデータ構成例を示した図である。 図7は、DTCP−IP暗号データから暗号データ・セットを作成する様子を示した図である。 図8は、受信部において行なわれる処理手順を示したフローチャートである。 図9は、復号部において行なわれる処理手順を示したフローチャートである。 図10は、DTCP_Source機器とDTCP_Sink機器の間でAKE手続き、及びHTTPプロトコルを利用したコンテンツ伝送を行なう仕組みを示した図である。 図11は、復号鍵を途中で変更しながら伝送されるバイト・ストリームを受信する通信装置の機能的構成(従来技術)を模式的に示した図である。

Claims (9)

  1. バイト・ストリームとして入力され、且つ復号鍵が動的に変更される暗号データを処理する情報処理装置であって、
    バイト・ストリームとして入力される暗号データから、同じ鍵を用いて復号するデータの範囲を復号化単位として識別し、バイト・ストリームから復号鍵に関する情報を抽出して、前記復号化単位を暗号データの断片に分割し、各断片に該抽出した復号鍵に関する情報を付加した暗号データ・セットを生成して出力する暗号データ受信部と、
    データを保持するメモリを有し、前記暗号データ受信部から出力される暗号データ・セットを前記メモリ上にキューイングし、暗号データ・セットに含まれている復号鍵に関する情報を用いて暗号データの断片を順次復号する暗号データ復号部と、
    得られた平文データを処理する平文処理部と、
    を具備することを特徴とする情報処理装置。
  2. 前記暗号データ受信部は、受信処理することができた長さの暗号データで暗号データ・セットを生成し、鍵の変化点において暗号データ・セットを区切る、
    ことを特徴とする請求項1に記載の情報処理装置。
  3. 前記暗号データ受信部は、前記復号鍵に関する情報とともに、復号単位の暗号データを暗号化する前のオリジナル・データの長さ、暗号データの断片が暗号データ・ストリームのどの位置に存在したかの情報、暗号データ・セットが属する復号化単位の長さを暗号データ・セットに含める、
    ことを特徴とする請求項1に記載の情報処理装置。
  4. 前記暗号データ受信部は、暗号データ復号部における復号処理の進行状態とは無関係に、暗号データ・セットを転送できるだけ転送する、
    ことを特徴とする請求項1に記載の情報処理装置。
  5. バイト・ストリームとして入力され、且つ復号鍵が動的に変更される暗号データを、コンピュータを用いて処理する情報処理方法であって、
    前記コンピュータが備える暗号データ受信手段が、バイト・ストリームとして入力される暗号データから、同じ鍵を用いて復号するデータの範囲を復号化単位として識別し、バイト・ストリームから復号鍵に関する情報を抽出して、前記復号化単位を暗号データの断片に分割し、各断片に該抽出した復号鍵に関する情報を付加した暗号データ・セットを生成して出力する暗号データ受信ステップと、
    前記コンピュータが備える暗号データ復号手段が、前記暗号データ受信ステップで出力される暗号データ・セットを前記コンピュータが備えるメモリ上にキューイングし、暗号データ・セットに含まれている復号鍵に関する情報を用いて暗号データの断片を順次復号する暗号データ復号ステップと、
    前記コンピュータが備える平文処理手段が、得られた平文データを処理する平文処理ステップと、
    を有することを特徴とする情報処理方法。
  6. 前記暗号データ受信ステップでは、受信処理することができた長さの暗号データで暗号データ・セットを生成し、鍵の変化点において暗号データ・セットを区切る、
    ことを特徴とする請求項5に記載の情報処理方法。
  7. 前記暗号データ受信ステップでは、前記復号鍵に関する情報とともに、復号単位の暗号データを暗号化する前のオリジナル・データの長さ、暗号データの断片が暗号データ・ストリームのどの位置に存在したかの情報、暗号データ・セットが属する復号化単位の長さを暗号データ・セットに含める、
    ことを特徴とする請求項5に記載の情報処理方法。
  8. 前記暗号データ受信ステップでは、暗号データ復号ステップにおける復号処理の進行状態とは無関係に、暗号データ・セットを転送できるだけ転送する、
    ことを特徴とする請求項5に記載の情報処理方法。
  9. バイト・ストリームとして入力され、且つ復号鍵が動的に変更される暗号データの処理をコンピュータ上で実行するようにコンピュータ可読形式で記述されたコンピュータ・プログラムであって、前記コンピュータを、
    バイト・ストリームとして入力される暗号データを受理し、同じ鍵を用いて復号するデータの範囲を復号化単位として識別し、バイト・ストリームから復号するのに必要な情報を抽出して、前記復号化単位を暗号データの断片に分割し、各断片に該抽出した情報を付加した暗号データ・セットを生成して出力する暗号データ受信部、
    データを保持するメモリを有し、前記暗号データ受信部から出力される暗号データ・セットを前記メモリ上に分散配置したままキューイングし、順次復号する暗号データ復号部、
    得られた平文データを処理する平文処理部、
    として機能させるためのコンピュータ・プログラム。
JP2005211858A 2005-07-21 2005-07-21 情報処理装置及び情報処理方法、並びにコンピュータ・プログラム Expired - Fee Related JP4910324B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2005211858A JP4910324B2 (ja) 2005-07-21 2005-07-21 情報処理装置及び情報処理方法、並びにコンピュータ・プログラム
US11/427,163 US7886160B2 (en) 2005-07-21 2006-06-28 Information processing apparatus and method, and computer program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005211858A JP4910324B2 (ja) 2005-07-21 2005-07-21 情報処理装置及び情報処理方法、並びにコンピュータ・プログラム

Publications (2)

Publication Number Publication Date
JP2007028552A JP2007028552A (ja) 2007-02-01
JP4910324B2 true JP4910324B2 (ja) 2012-04-04

Family

ID=37718907

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005211858A Expired - Fee Related JP4910324B2 (ja) 2005-07-21 2005-07-21 情報処理装置及び情報処理方法、並びにコンピュータ・プログラム

Country Status (2)

Country Link
US (1) US7886160B2 (ja)
JP (1) JP4910324B2 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4943071B2 (ja) * 2006-06-29 2012-05-30 京セラ株式会社 無線通信方法
EP2151086B1 (en) * 2007-04-30 2017-06-07 Telefonaktiebolaget LM Ericsson (publ) Method for establishing a random number for security and encryption, and a communications apparatus
JP4439558B2 (ja) * 2007-12-27 2010-03-24 株式会社東芝 コンテンツ鍵生成装置、コンテンツ受信装置およびコンテンツ伝送方法
US8611532B2 (en) * 2011-10-27 2013-12-17 Verizon Patent And Licensing Inc. Managing media content decryption keys in encrypted media content distribution systems and methods
TWI554908B (zh) * 2015-11-03 2016-10-21 澧達科技股份有限公司 資料加密系統
CN105357415B (zh) * 2015-11-09 2017-12-08 北京奇虎科技有限公司 图片加密、解密的方法及装置
JP6721832B2 (ja) * 2016-08-24 2020-07-15 富士通株式会社 データ変換プログラム、データ変換装置及びデータ変換方法

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0637750A (ja) * 1992-07-20 1994-02-10 Hitachi Ltd 情報転送方式
JPH0646052A (ja) * 1992-07-27 1994-02-18 Nec Corp 高速トランスポートメカニズムにおける暗号化方式
JPH06169307A (ja) * 1992-11-30 1994-06-14 Sony Corp 符号化装置及び復号化装置
JPH1051440A (ja) * 1996-08-05 1998-02-20 Sharp Corp 暗号通信装置及び暗号通信方法
JP4391610B2 (ja) * 1998-12-25 2009-12-24 パナソニック株式会社 トランスポートストリーム処理装置
JP3953253B2 (ja) * 2000-04-03 2007-08-08 東芝情報システム株式会社 暗号生成装置、暗号生成プログラムを使用する電子機器、記憶媒体、暗号文復号装置
MXPA03000419A (es) * 2000-07-14 2003-06-06 Irdeto Access Bv Arquitectura para difusion segura de datos a base de paquetes.
JP4029569B2 (ja) * 2000-12-13 2008-01-09 株式会社日立製作所 ディジタル情報記録再生装置、記録装置、受信装置および送信装置
JP3790432B2 (ja) * 2001-02-15 2006-06-28 日本電信電話株式会社 画像転送方法と画像転送システム、画像暗号化方法と暗号化端末、画像暗号化プログラム及びこのプログラムを記録した記録媒体
JP2003078515A (ja) * 2001-09-05 2003-03-14 Nec Corp コンテンツ配信システム、復号装置、暗号化装置、復号プログラム、暗号化プログラム
JP2003115830A (ja) * 2001-10-03 2003-04-18 Victor Co Of Japan Ltd 情報記録装置及び情報記録再生装置
JP2003198525A (ja) * 2001-12-27 2003-07-11 Victor Co Of Japan Ltd コンテンツの暗号化方法及び暗号化コンテンツの再生方法
JP4113462B2 (ja) * 2002-06-11 2008-07-09 松下電器産業株式会社 コンテンツ通信履歴解析システム及びデータ通信制御装置
JP2004229114A (ja) * 2003-01-24 2004-08-12 Matsushita Electric Ind Co Ltd データストリーム暗号化装置、データストリーム暗号化方法、データストリーム復号化装置、データストリーム復号化方法
JP2004328706A (ja) * 2003-03-05 2004-11-18 Toshiba Corp 送信装置、受信装置、送信制御プログラム及び受信制御プログラム
JP2005117458A (ja) 2003-10-09 2005-04-28 Sony Corp 無線接続システム、無線接続制御方法、アクセスポイント機器、および通信機器
JP2005149029A (ja) * 2003-11-13 2005-06-09 Matsushita Electric Ind Co Ltd コンテンツ配信システム、コンテンツサーバ、コンテンツ受信装置、コンテンツ配信方法、プログラム及び記録媒体
JP2006211602A (ja) * 2005-01-31 2006-08-10 Toshiba Corp データ送信機及びプログラム
JP2006229863A (ja) * 2005-02-21 2006-08-31 Seiko Epson Corp 暗号化/復号化装置、通信コントローラ及び電子機器

Also Published As

Publication number Publication date
JP2007028552A (ja) 2007-02-01
US20070033421A1 (en) 2007-02-08
US7886160B2 (en) 2011-02-08

Similar Documents

Publication Publication Date Title
JP4674502B2 (ja) 情報通信システム、情報通信装置及び情報通信方法、並びにコンピュータ・プログラム
JP3816689B2 (ja) 情報配信装置、情報受信装置及び通信方法
JP4518058B2 (ja) コンテンツ伝送システム、コンテンツ伝送装置及びコンテンツ伝送方法、並びにコンピュータ・プログラム
WO2011001630A1 (ja) データ交換処理装置およびデータ交換処理方法
US20020007452A1 (en) Content protection for digital transmission systems
JP4596256B2 (ja) 送受信システムおよび方法、送信装置および方法、受信装置および方法、並びにプログラム
JP4910324B2 (ja) 情報処理装置及び情報処理方法、並びにコンピュータ・プログラム
US8010792B2 (en) Content transmission apparatus, content reception apparatus and content transmission method
JP2011082952A (ja) 通信システム、通信装置及び通信方法、並びにコンピューター・プログラム
JP4264650B2 (ja) コンテンツ伝送システム及びコンテンツ伝送方法、コンテンツ送信装置及びコンテンツ送信方法、コンテンツ受信装置及びコンテンツ受信方法、並びにコンピュータ・プログラム
JP4468425B2 (ja) 送信装置、受信装置、コンテンツ送受信システム、コンテンツ送信方法、コンテンツ受信方法及びプログラム
JP2000347566A (ja) コンテンツ管理装置、コンテンツ利用者端末及びプログラムを記録したコンピュータ読み取り可能な記録媒体
JP2010114682A (ja) ストレージノード用再暗号化システム及び方法
JP2004328706A (ja) 送信装置、受信装置、送信制御プログラム及び受信制御プログラム
US7688860B2 (en) Data transmission apparatus, data reception apparatus, data transmission method, and data reception method
JP2007041756A (ja) 情報処理装置および方法、プログラム、並びに、セキュリティチップ
JP4439558B2 (ja) コンテンツ鍵生成装置、コンテンツ受信装置およびコンテンツ伝送方法
JP2007034903A (ja) 情報処理装置及び情報処理方法、並びにコンピュータ・プログラム
JP6443516B2 (ja) 通信システム及び通信方法
JP4736603B2 (ja) 情報通信装置及び情報通信方法、並びにコンピュータ・プログラム
JP2007036350A (ja) 情報通信装置及び情報通信方法、並びにコンピュータ・プログラム
JP2007036952A (ja) 情報通信装置及び情報通信方法、並びにコンピュータ・プログラム
JP2004064783A (ja) 分散ネットワークを安全にするための装置および方法
JP5177238B2 (ja) コンテンツ送信装置およびコンテンツ送信方法
JP2008529141A (ja) コンピュータ機器とコンシューマエレクトロニクス機器との間で情報を送信するための方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080708

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110225

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110322

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110428

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111011

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111129

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20111220

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120102

R151 Written notification of patent or utility model registration

Ref document number: 4910324

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150127

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees