[発明者による知見]
デジタル放送及びコンテンツ配信では、著作権保護されるべきAVコンテンツが暗号化されたうえで伝送される。また、こうしたAVコンテンツは、Blu−ray(登録商標) Discをはじめとする光ディスク及びHDD等に蓄積されるが、この際にもAVコンテンツは暗号化されたうえで、蓄積される。さて、従来のSD(Standard Definition)画質及びHD(High Definition)画質のコンテンツにおいては、このようなAVコンテンツを伝送及び蓄積する際の多重化フォーマットとして、MPEG2−TS方式が利用されることが一般的であった。
多重化フォーマットとは、AVコンテンツを構成するビデオ信号及びオーディオ信号等を一つのデジタルデータとして扱うためのフォーマットである。多重化フォーマットによって構成されるデジタルデータでは、例えば、MPEG4−AVC(MPEG4−Advanced Video Coding)方式で符号化されたビデオ信号、及びMPEG2−AAC(MPEG2−Advanced Audio Coding)方式で符号化されたオーディオ信号が、適切なサイズのデータに細分化され、これら細分化されたデータが再生に必要となる順番で並べ直されるとともに、制御用の情報が付与されている。
MPEG2−TS方式を用いている日本の地上デジタル放送及びBS/CSデジタル放送では、固定長である188バイトのサイズのデータを一つの単位として、ビデオ信号及びオーディオ信号が、伝送されるデジタルデータに格納されている。ここで、一単位のデータは、パケットと呼ばれ、MPEG2−TS方式ではTSパケットと呼ばれている。1つのTSパケットは、制御情報を格納するTSヘッダと、実際のビデオ信号及びオーディオ信号を格納するTSペイロードとから構成される。日本の地上デジタル放送及びBS/CSデジタル放送では、TSヘッダは4バイトの固定長であり、TSペイロードは原則として184バイトの固定長である。なお、TSペイロードの一部をAdaptation Fieldと呼ばれる追加の制御情報を格納するために利用することもある。
また、Blu−ray(登録商標) Disc等の光ディスクでは、このTSパケットに対して、さらに光ディスクからの読み出し時刻を指示する4バイトのタイムスタンプが先頭に付与された192バイトの固定長のデータを一つの単位として、ビデオ信号及びオーディオ信号が格納されている。この192バイトの固定長データとする方式は、タイムスタンプ付きであることからTime Stamped TS方式又はTTS方式と呼ばれ、一単位のデータはTTSパケットと呼ばれる。
さて、先述したように著作権保護されるべきAVコンテンツは暗号化されたうえで、伝送又は格納されることとなる。日本の地上デジタル放送及びBS/CSデジタル放送では、TSパケットの188バイトのデータのうちで4バイトのTSヘッダ部を除いた、184バイトのTSペイロード部が、暗号化の対象となる。地上デジタル放送及びBS/CSデジタル放送では、必ずしもAVコンテンツが常に暗号化される訳ではなく、一部の番組については暗号化されることなく、平文で伝送されることもある。また、暗号化される場合にも番組の切り替わりなどに対応するために、二つの鍵(イーブン鍵及びオッド鍵と呼ばれる)の何れかで暗号化されることとなる。こうした暗号文と平文との選択、及びイーブン鍵とオッド鍵との選択をするために、TSヘッダには、これらの選択を制御するためのtransport scrambling controlという名前の2ビットのデータが格納されている。この2ビットのデータを読み出すことによって、引き続く184バイトのTSペイロードを復号するべきか、復号するとすればどちらの鍵で復号するべきかを判断することが可能となる。本開示では、暗号化されているか否かに関わらず、暗号化される情報を含み得るコンテンツを暗号化コンテンツと呼ぶ。よって、暗号化されていない平文のAVコンテンツも、暗号化コンテンツに含まれうる。
また、Blu−ray(登録商標) Disc等の光ディスクにおいては、192バイトのTTSパケットを32個集めた6144バイトのAligned Unitと呼ばれる単位で、暗号化処理が行われる。このような単位を用いる理由は、当該光ディスクでは、一般的に2048バイト単位のセクタと呼ばれる単位でデータが読みだされ、192バイトと2048バイトとの最小公倍数である6144バイトが処理単位として好都合なためである。当該光ディスクでは、この6144バイトのうちの先頭16バイトを除く、残る6128バイトが暗号化の対象となる。このような光ディスクでも、必ずしもコンテンツが暗号化されているとは限らないため、地上デジタル放送などと同様に先頭16バイトの中に含まれるtransport scrambling controlの情報を用いて、データが暗号化される対象かどうかが制御される。
昨今新たな高画質のコンテンツとして4Kコンテンツが注目されている。従来のHD(High Definition)コンテンツは2Kコンテンツとも呼ばれ、その画素数は縦1920画素×横1080画素であるが、4Kコンテンツは、2Kコンテンツを縦横各々2倍とした、縦3840画素×横2160画素の画素数を有するものである。4Kコンテンツは従来の2Kコンテンツと比較して単純比較で言えば4倍の容量が必要となるが、昨今の動画圧縮技術の進展により、おおよそ2倍程度の容量で記録することが可能であると言われている。また、さらなる高画質なコンテンツとして画素数を縦7680画素×横4320画素とする8Kコンテンツも検討されている。
4Kコンテンツ又は8Kコンテンツを放送波で伝送するために、新たに高度BSデジタル放送、高度広帯域CSデジタル放送等の開発が進められている。これらの放送では、4Kの場合には35Mbps(1秒間に35Mビット)の伝送帯域が想定され、8Kの場合には100Mbps(1秒間に100Mビット)の伝送帯域が想定されている。これらの放送のコンテンツを格納するための光ディスクも検討されている。
また、高度BSデジタル放送及び高度広帯域CSデジタル放送では、通信による伝送との連携を強化するために、新たな多重化フォーマットとしてMMT/TLV(MPEG Media Transport/Type Length Value)方式が採用される。MMT/TLV方式によって構成されるデジタルデータでは、従来のMPEG2−TS方式と同様に、ビデオ信号及びオーディオ信号が適切なサイズに細分化され、これら細分化されたデータが再生に必要となる順番で並べ直されるとともに、制御用の情報が付与される。従来のMPEG2−TS方式との大きな相違点は、この際の細分化のサイズが、必ずしも固定長サイズではなく、可変長サイズであることである。さらに、従来は各TSパケット(又はTTSパケット)毎に固定の位置に格納されていたtransport scrambling controlに相当する復号を制御するための情報も、可変長サイズであるとともに、固定の位置に格納されるわけではない。
従来の2Kコンテンツを対象とした地上デジタル放送及びBS/CSデジタル放送を受信するテレビ受像器、並びにBlu−ray(登録商標) Discの録画及び/又は再生に用いられるBlu−ray(登録商標)レコーダ/プレイヤでは、固定長サイズのパケット構造をもつMPEG2−TS方式に適したLSI(Large−Scale Integration)が採用されている。このようなLSIは、非常に負荷の重い処理である暗号化及び復号処理を専用のハードウェア回路によって実現している。そして、当該LSIは、地上デジタル放送及びBS/CSデジタル放送の188バイト単位毎に固定位置にあるtransport scrambling control、又は、Blu−ray(登録商標) Discの6144バイト単位毎に固定位置にあるtransport scrambling controlを見て、暗号化されたコンテンツの復号処理を高速に行うことが可能である。
しかしながら、次世代の4Kコンテンツ又は8Kコンテンツを対象とした高度BSデジタル放送及び高度広帯域CSデジタル放送では、可変長サイズのパケット構造をもつMMT/TLV方式でコンテンツが伝送されるため、上述した固定長サイズに特化した従来型のLSIでは処理が難しい。MMT/TLV方式で多重化され且つ可変長サイズのパケット構造を含むAVコンテンツも取り扱えるようなLSIを新たに開発すれば対応は可能だが、このような新たなLSIの開発には時間もコストもかかる。さらに、4Kコンテンツ又は8Kコンテンツに対応した新しいテレビ及びBlu−ray(登録商標)レコーダ/プレイヤでも、従来の2Kコンテンツの放送及び光ディスクの受信、再生及び/又は録画への対応が必要になる。このため、従来型の固定長サイズのパケット構造に特化した専用ハードウェア回路を持つLSIでも、MMT/TLV方式で多重化されたコンテンツの再生を可能とするコンテンツ復号方法が求められる。
そこで、本開示に係る発明者は、コンテンツの可変長構造のパケットつまり可変長パケットを、固定長構造のパケットつまり固定長パケットに変換する方法を見出した。なお、固定長パケットは、固定されたサイズのヘッダ部分と、固定されたサイズのペイロード部分とを有する。具体的には、暗号ブロックを使用する暗号利用モードの一例であるCTRモード(Counter Mode)のように、コンテンツ内に設定される暗号ブロックのうちの任意の暗号ブロック位置からの暗号化及び復号処理が可能なランダムアクセス性を有する暗号利用モードの特性を活かすことで、コンテンツを復号及び再暗号化することなく、可変長パケットを固定長パケットに変換することが可能である。そして、この変換では、可変長パケットのペイロード部分が、例えば固定長サイズに分割されることによって、固定長パケットのペイロード部分に格納される。さらに、この変換の際に、可変長パケットのヘッダ部分の暗号カウンタ情報を更新するとともに、固定長パケットのペイロード部分に格納された実データ部のサイズを追記した上で、可変長パケットのヘッダ部分を固定長パケットのヘッダ部分として再構成することが可能である。このようにすることで、コンテンツを固定長パケット構造に最適化することができる。これにより、従来型の固定長サイズのパケット構造に特化した専用ハードウェア回路を持つLSIでも、コンテンツの復号処理が可能となる。つまり、コンテンツの復号処理が簡略になる。
以下、適宜図面を参照しつつ、実施の形態を詳細に説明する。但し、必要以上に詳細な説明は省略する場合がある。例えば、既によく知られた事項の詳細説明や実質的に同一の構成に対する重複説明を省略する場合がある。これは、以下の説明が不必要に冗長になるのを避け、当業者の理解を容易にするためである。また、以下の実施の形態の説明において、略平行、略直交のような「略」を伴った表現が、用いられる場合がある。例えば、略平行とは、完全に平行であることを意味するだけでなく、実質的に平行である、すなわち、例えば数%程度の差異を含むことも意味する。他の「略」を伴った表現についても同様である。なお、発明者は、当業者が本開示を十分に理解するために添付図面及び以下の説明を提供するのであって、これらによって特許請求の範囲に記載の主題を限定することを意図するものではない。
[実施の形態]
[1−1.コンテンツ復号装置]
本開示の実施の形態に係るコンテンツ復号装置について、図面を参照しながら説明する。
図1は、実施の形態に係るコンテンツ復号装置1を適用した受信装置102の構成を模式的に示した図である。図1を参照すると、本実施の形態では、受信装置102は、AVコンテンツ等のコンテンツを放送局101から受信する放送受信装置であり、AVコンテンツは、MMT/TLV方式で多重化された暗号ストリームとして放送局101から受信装置102へと伝送される。典型的には、受信装置102は、テレビ受信機であるが、例えば後述する表示モジュール108を外付けにする形であれば、セットトップボックス(STB)、チューナー又はBlu−ray(登録商標)レコーダなどのレコーダ等であってもよい。
受信装置102は、可変長−固定長変換モジュール103、制御モジュール104、CAS(Conditional Access System;限定受信システムとも呼ばれる)モジュール105、固定長復号モジュール106、デマルチ/デコードモジュール107及び表示モジュール108を備える。本実施の形態では、可変長−固定長変換モジュール103、固定長復号モジュール106及びデマルチ/デコードモジュール107は、コンテンツ復号装置1を構成する。しかしながら、本願のコンテンツ復号装置1は、少なくとも可変長−固定長変換モジュール103を含めばよい。ここで、可変長−固定長変換モジュール103は、可変長−固定長変換部の一例であり、固定長復号モジュール106は、固定長復号部の一例である。
可変長−固定長変換モジュール103は、MMT/TLV方式で多重化された暗号ストリームとしてのコンテンツの可変長パケットを、固定長パケットに変換する。
表示モジュール108は、映像及び音声を出力可能な装置であり、例えば、液晶パネル又は有機若しくは無機EL(Electro−Luminescence)パネル等の表示装置と、スピーカ等の音声出力装置とを含み得る。
固定長復号モジュール106は、可変長−固定長変換モジュール103によって変換された固定長パケットを含む暗号ストリーム、つまり固定長暗号ストリームを復号する。
デマルチ/デコードモジュール107は、固定長復号モジュール106によって復号された信号である固定長暗号ストリームを分解して複数の信号とするデマルチと、デマルチされた信号を表示モジュール108で再生可能なビデオ信号、オーディオ信号等に復号するデコードとを実施する。
制御モジュール104は、受信装置102全体を制御する。本実施の形態では、制御モジュール104は、可変長−固定長変換モジュール103、CASモジュール105、固定長復号モジュール106、デマルチ/デコードモジュール107及び表示モジュール108を制御する。
CASモジュール105は、コンテンツに対する契約管理等を行う。
可変長−固定長変換モジュール103、制御モジュール104、CASモジュール105、固定長復号モジュール106及びデマルチ/デコードモジュール107の各構成要素は、専用のハードウェアで構成されてもよく、各構成要素に適したソフトウェアプログラムを実行することによって実現されてもよい。この場合、各構成要素は、例えば、演算処理部(図示せず)と、制御プログラムを記憶する記憶部(図示せず)とを備えてもよい。演算処理部としては、MPU(Micro Processing Unit)、CPU(Central Processing Unit)等が例示される。記憶部としては、メモリ等が例示される。なお、各構成要素は、集中制御を行う単独の要素で構成されてもよく、互いに協働して分散制御を行う複数の要素で構成されてもよい。
例えば、可変長−固定長変換モジュール103、制御モジュール104、CASモジュール105、固定長復号モジュール106及びデマルチ/デコードモジュール107の各構成要素の一部または全部は、1つのシステムLSI(Large Scale Integration:大規模集積回路)から構成されているとしてもよい。システムLSIは、複数の構成部を1つのチップ上に集積して製造された超多機能LSIであり、具体的には、マイクロプロセッサ、ROM(Read Only Memory)、RAM(Random Access Memory)等を含んで構成されるコンピュータシステムである。RAMには、コンピュータプログラムが記憶されている。マイクロプロセッサが、コンピュータプログラムにしたがって動作することにより、システムLSIは、その機能を達成する。
又は、例えば、可変長−固定長変換モジュール103は、汎用のLSIにより実現され、このLSIは、1チップで形成されることができるが、複数のチップで形成されてもよい。固定長復号モジュール106及びデマルチ/デコードモジュール107は一緒に、汎用のLSIにより実現され、このLSIは、1チップで形成されることができる。しかしながら、固定長復号モジュール106及びデマルチ/デコードモジュール107は、個別にチップ化されてもよい。特に、固定長復号モジュール106で行う暗号コンテンツの復号処理、及びデマルチ/デコードモジュール107で行う復号後の平文コンテンツのデコード処理は多大な計算処理能力を必要とするため、一般的には専用のハードウェアで処理することが望ましい。
システムLSI及びLSIは、LSI製造後にプログラムすることが可能なFPGA(Field Programmable Gate Array)であってもよく、LSI内部の回路セルの接続及び設定を再構成可能なリコンフィギュラブルプロセッサを含んでもよい。
上述のような受信装置102の制御モジュール104は、放送局101から受信した放送波を受信装置102のチューナー(図示しない)でアナログ信号からデジタル信号へと変換し、MMT/TLV形式の暗号ストリームとして可変長−固定長変換モジュール103へと送付する。なお、チューナーは、受信装置102と別個に設けられてもよい。
可変長−固定長変換モジュール103が受け取るMMT/TLV形式のストリームの構成を模式的に示したものが図2である。なお、図2は、MMT/TLV形式でのストリームの構成の一例を示す模式図である。図2に示されるように、MMT/TLV形式のストリームは、TLVパケット、IP(Internet Protocol)パケット、MMTパケットの三層の構造で構成されている。MMT/TLV形式のストリームは、まず、1つ以上の可変長のTLVパケットから構成される。各TLVパケットは、1つのTLVヘッダと1つのTLVペイロードとから構成される。TLVペイロードは可変長であり、1つのTLVペイロードには、1つの可変長のIPパケットが格納される。
1つのIPパケットは、1つのIP/UDP(User Datagram Protocol)ヘッダと1つのIPペイロードとから構成されている。ここで、IP/UDPヘッダは基本的には固定長であるが、オプションデータがある際には可変長となる場合もある。なお、IPペイロードは可変長である。
また放送ではIP/UDPヘッダの内容がほぼ同一であることを利用して、連続する一連のIPパケットにおいて先頭のIP/UDPヘッダにはデータを記載したうえで、後続するIPパケットのIP/UDPヘッダでは前と同じ内容であることを示す制御情報を上位のTLVヘッダに記載して、IP/UDPヘッダの記載内容を圧縮する方法もある。この場合には、通常形式のIP/UDPヘッダと、圧縮形式のIP/UDPヘッダではそのサイズが異なることとなる。
さらに1つのIPペイロードに、1つの可変長のMMTパケットが格納される。1つのMMTパケットは、1つのMMTヘッダと1つのMMTペイロードとから構成される。MMTヘッダは、1つのMMT基本ヘッダを少なくとも含む。MMT基本ヘッダは、基本的には固定長であるが、オプションデータがある際には可変長となる場合もある。また、MMT基本ヘッダの後にMMT拡張ヘッダがあることもある。MMT拡張ヘッダは、固定長のものもあれば、可変長のものもある。複数のMMT拡張ヘッダが、1つのMMT基本ヘッダの後に設けられる場合もある。MMT拡張ヘッダの後に、1つのMMTペイロードが続く。MMTペイロードに、分割された実際のビデオ信号及び/又はやオーディオ信号が格納される。
次に図3を参照して、TLVパケットの構造について詳細を示す。なお、図3は、図2のTLVパケットの構成の一例を示す図である。先述したとおりTLVパケットは、TLVヘッダとTLVペイロードとから構成される。TLVヘッダの先頭には、先頭を示すデリミタとして常に二進数で01という値が、2ビット分のデータ量を使用して記載される。このデリミタに引き続いて、6ビットの将来拡張用フィールド(図3で、「reserved_future_use」と示される)が用意される。現時点ではこのフィールドは全て1の値が設定されるが、将来何らかの理由で拡張が必要となった場合には、ここにゼロの値が記載されることもあり得る。次にTLVパケットのペイロード内に格納されるデータの種別を示す8ビットのpacket_typeが格納される。ペイロードの中身は先述したとおり原則としてIPパケットであるが、IPv4(Internet Protocol version 4)パケットが格納されるケースとIPv6(Internet Protocol version 6)パケットが格納されるケースとがある。また、放送の場合にはIPパケット内のIPヘッダの値がほぼ一定の値となることから、IPヘッダを圧縮形式で記載する圧縮IPパケットも、TLVペイロードに格納されることがあり得る。また、IPパケットの代わりに、放送伝送路に多重化されたIPパケットを受信装置102が多重解除するための制御情報であるTLV−SI(Service Information)が、TLVペイロードに格納されることもある。さらには、リアルタイムで伝送される放送では、必ずしも全ての時間で意味のあるデータを送信しているわけではないことから、その間を埋めるためのヌルパケットがTLVペイロードに格納されることもあり得る。先述したpacket_typeは、これらIPパケット、圧縮IPパケット、TLV−SI及びヌルパケットのいずれがTLVペイロードに格納されているかを示すために用いられる。
ここで、可変長−固定長変換モジュール103は、TLVペイロードに格納されているデータがTVL−SIである場合には、このデータを制御用の情報として、図1に示す制御モジュール104に通知する。なお、TLV−SIは平文で伝送されるため、特に復号処理などを行う必要はない。制御モジュール104は、TLV−SIに記載される制御情報に従って、可変長−固定長変換モジュール103の動作を制御する。
また、可変長−固定長変換モジュール103は、TLVペイロードに格納されているデータがヌルパケットである場合には、単にこれを無視する。これに対してTLVペイロード内の情報がIPパケット又は圧縮IPパケットである場合には、可変長−固定長変換モジュール103は、IPパケットに関するさらなる処理を継続する。
図4は、図2のIPパケットの構成、並びにIP/UDPヘッダの内部のIPヘッダ及びUDPヘッダの構成の一例を示す図である。なお、本実施の形態では、IPパケットが非圧縮のIPv4パケットである場合のみを代表事例として示す。IPパケットは、圧縮形式である場合及びIPv6である場合には、異なる挙動となるが、本開示の趣旨には無関係であるため説明を割愛する。IPパケットは、先述したとおりIP/UDPヘッダとIPペイロードとから構成されている。
図4に示すとおり、IPヘッダ及びUDPヘッダはそれぞれ、様々なフィールドを含み得る。図4においてアルファベットで記載されるフィールドは、従来から定義されるフィールドである。IPヘッダの先頭には、IPv4パケット及びIPv6パケット等のIPパケットのバージョンを示す4ビットのversionが記載される。例えば、versionのフィールドでは、IPパケットがIPv4であれば、4が指定される。続く32ビットのIHLのフィールドは、IPヘッダのサイズを32ビットワード値で記載したものである。例えば、32ビットワード値が5である場合には、IPヘッダのサイズが20バイトであることが示される。このIHLの値によって、オプションの項目であるoption_or_paddingのサイズが判定可能である。total_lengthのフィールドは、当該IPパケット全体のサイズをバイト単位で示したものである。なお、本実施の形態で説明する項目以外の項目であるtype_of_service、identification、flags、flagment_offset、time_to_live、protocol、header_checksum、source_address及びdestination_addressの項目それぞれについては、本開示の趣旨には無関係であるため、説明を割愛する。
次にIPヘッダの直後には、図4に示すとおりUDPヘッダが続く。UDPヘッダは、それぞれが16ビットであるsource_port、destination_port、length及びcheck_sumのフィールドから構成される。このうちで、lengthのフィールドには、当該UDPヘッダと、当該UDPヘッダ以降に続くIPペイロードとを合計したサイズが、バイト単位で示される。なお、source_port、destination_port及びcheck_sumの項目それぞれについては、本開示の趣旨には無関係であるため、説明を割愛する。
図2に示されるように、UDPヘッダの後には、可変長のIPペイロードが続く。このIPペイロードには、可変長のMMTパケットが通常は格納される。本実施の形態で通常と記載するのは、MMTパケット形式のIPパケット以外に、受信装置102に時刻を通知するためのNTP(Network Time Protocol)形式のIPパケットが通知されることがあるためである。例えば、IPパケットがIPv4パケットであり、宛先IPアドレスとして224.0.1.1が指定されている場合には、このIPv4パケットのIPペイロードに含まれるのはNTPの情報である。なお、NTP形式のIPパケットについても、平文で伝送されるため、特に復号処理などを行う必要はない。
次に図5は、図2のMMTパケットの構成、並びにMMTヘッダの内部のMMT基本ヘッダ及びMMT拡張ヘッダの構成の一例を示す図である。MMTパケットは、MMTヘッダとMMTペイロードとから構成される。図5に示されるように、MMTヘッダには、MMT基本ヘッダとMMT拡張ヘッダとが含まれ得、これらのうちMMT基本ヘッダが少なくとも含まれる。MMT基本ヘッダ及びMMT拡張ヘッダはそれぞれ、様々なフィールドを含み得る。図5においてアルファベットで記載されるフィールドは、MMT/TLV方式で定義されるフィールドであり、日本語の斜体で記載されるフィールドは、日本の4K/8K放送で規定されるフィールドである。
MMT基本ヘッダは、まず2ビットのversionのフィールドから始まる。versionのフィールドには、MMTパケットのバージョン番号が示され、本実施の形態では00が指定される。次の1ビットのpacket_counter_flagのフィールドには、後述するオプションの項目であるpacket_counterのフィールドが存在するか否かが指定される。具体的には、存在する場合は1、存在しない場合には0となる。このフィールドの値によって、MMTヘッダのサイズがかわり、よってMMTペイロードのサイズが変わることとなる。Extention_flagは、MMT拡張ヘッダが存在するか否かを指定する1ビットのフラグである。Extention_flagのフィールドでは、MMT拡張ヘッダが存在する場合には1、存在しない場合には0が指定される。このフィールドに関しても、その値によって、MMTヘッダ全体のサイズとMMTペイロードのサイズとが変わることとなる。16ビットのpacket_idは、対応するMMTペイロードに格納されるデータの種別を識別するための情報である。このpacket_idのフィールドに示される値によって、MMTペイロードに格納されているデータがビデオ信号であるか、オーディオ信号であるか、制御用の情報(MMT−SI[Service Information])であるかなどを判定することが可能である。
ここで、MMTペイロードに格納されているデータがMMT−SIである場合には、可変長−固定長変換モジュール103は、さらにそのMMT−SIの情報内容を識別し、必要に応じて図1で示す制御モジュール104又はCASモジュール105に識別結果を通知する。CASモジュール105に通知する必要がある情報は、コンテンツ視聴の契約者毎の契約情報及び契約者の共通情報などの暗号を解くためのワーク鍵等を含むEMM(Entitlement Management Message)、並びに、放送される番組に関する情報及び復号に必要となる鍵等を含むECM(Entitlement Control Message)である。これら以外の情報は、制御モジュール104へと通知され、制御モジュール104は、受け取った情報を、その内容に応じて、可変長−固定長変換モジュール103、固定長復号モジュール106及び/又はデマルチ/デコードモジュール107を制御するために利用する。なお、MMT−SIは、基本的には平文であり、固定長復号モジュール106で復号処理を行う必要はない。EMM及びECMの暗号化は、ビデオ信号及びオーディオ信号と別の方式によって行われているが、これらの復号はCASモジュール105によって実行されるため、固定長復号モジュール106による復号処理に関して特に考慮する必要はない。
続く16ビットのtimestampのフィールドには、当該MMTパケットの先頭のバイトが放送局101から送出される時刻が、短形式NTPタイムスタンプで記載される。なお、FEC_type(2ビットのデータ量)、RAP_flag(1ビットのデータ量)、payload_type(6ビットのデータ量)、packet_sequence_number(32ビットのデータ量)、及びpacket_counter(32ビットのデータ量であり且つオプションの項目である)の各項目については、本開示の趣旨には無関係であるため、説明を割愛する。
先述したように、Extention_flagのフィールドに1が指定されている場合には、MMT基本ヘッダに続いてMMT拡張ヘッダが続くこととなる。複数のMMT拡張ヘッダが、1つのMMTパケットに記載されることがあるが、図5は、1つのMMT拡張ヘッダが記載された例を示している。なお、逆にMMT拡張ヘッダが全く記載されないケースもあり得る。
MMT拡張ヘッダが存在する場合、その先頭の16ビットのフィールドは、extension_typeとなり、このフィールドでは、例えば、マルチタイプヘッダ拡張を示す0x0000が指定される。さらに、続く16ビットのフィールドには、extention_lengthが指定され、extention_lengthのフィールドでは、このフィールドの情報以降に引き続くMMT拡張ヘッダのサイズが、バイト単位で記載される。次に記載される1ビットのマルチヘッダ拡張終了フラグのフィールドには、当該MMT拡張ヘッダが最後のものであるか否かが記載される。例えば、当該MMT拡張ヘッダの後にMMT拡張ヘッダが記載する場合には、このフィールドでは1が指定され、当該MMT拡張ヘッダの後にMMT拡張ヘッダが記載される場合には、このフィールドでは0が指定される。
続く15ビットのマルチヘッダ拡張タイプのフィールドには、当該MMT拡張ヘッダに含まれる情報の種別が記載される。ここで、MMTペイロードに暗号化の対象となるビデオ信号及び/又はオーディオ信号が格納される場合には、MMT拡張ヘッダに暗号の制御に関する情報を格納する必要がある。マルチヘッダ拡張タイプのフィールドには、例えば、上記制御に関する情報が格納される場合、0x0001が指定される。
次に16ビットの拡張領域長のフィールドには、当該MMT拡張ヘッダのサイズがバイト単位で記載される。次の3ビットのリザーブのフィールドの説明は省略する。リザーブのフィールドに続く2ビットのMMTスクランブル制御ビットのフィールドには、MMTペイロードに格納されるビデオ信号及び/又はオーディオ信号が暗号化されているか否かが示され、暗号化されている場合にはイーブン鍵及びオッド鍵のどちらを用いるかが示されることとなる。次の1ビットのスクランブル方式識別制御ビットのフィールドには、後述するスクランブル方式識別子が記録されているか否かが示される。1ビットのMMTスクランブル初期値制御ビットのフィールドには、後述するMMTスクランブル初期値情報が記載されているか否かが示される。なお、1ビットのメッセージ認証制御ビットは、本開示の趣旨との関係が薄いため、説明を割愛する。
先述したスクランブル方式識別制御ビットのフィールドが1となっている場合には、当該MMT拡張ヘッダには、8ビットのスクランブル方式識別子が記載される。可変長−固定長変換モジュール103及び固定長復号モジュール106は、スクランブル方式識別子のフィールドの情報を用いて、MMTペイロードの暗号化に実際に利用される暗号化方式を判定する。本実施の形態では、このスクランブル方式識別子が、例えば、0x01となっている場合には、広く利用されている鍵長128bits(ビット)、192bits及び256bitsのAES(Advanced Encryption Standard)暗号化方式のうちの鍵長128bitsのAES暗号化方式が利用される。なお、AES暗号化方式は、暗号ブロックを用いて固定長の平文を暗号化するものであり、暗号化と復号とに共通の鍵、又は暗号化から容易に導出可能な復号鍵を用いる暗号化方式の1つのである。
スクランブル方式識別子のフィールドに続く16ビットのペイロード長のフィールドには、後述するMMTスクランブル初期値情報の長さがバイト単位で指定される。ここでMMTスクランブル初期値情報の長さは16バイトである。このため、ペイロード長のフィールドには、例えば、0x0010が指定される。最後に、MMTスクランブル初期値情報のフィールドには、AES暗号化方式を利用する場合の初期値であるカウンタ情報が記載される。なお、MMTスクランブル初期値制御ビットが0となっている場合、つまり、MMTスクランブル初期値情報が記載されていない場合には、カウンタ情報として、MMTスクランブル初期値情報に記載される値ではなく、packet_sequence_number及びpacket_id等の値を用いて計算される値が利用されることとなる。
ここで、図6を用いて、AES暗号化方式を用いる際の暗号利用モードの一つであるAES−CTRモードでのメッセージの暗号化及び復号について説明する。図6は、パケットの暗号化方式の一例であるAES−CTRモードでの暗号化及び復号処理を説明する図である。さらに、図6における上半分の領域の6A(Counter mode encryption)は、AES−CTRモードでの暗号化処理を説明する図であり、図6における下半分の領域の6B(Counter mode decryption)は、AES−CTRモードでの復号処理を説明する図である。
6Aにより示される図を参照すると、暗号化の際には、鍵(Key)に加えて初期値であるIV(Initial Vector)を用いる。なお、IVは、AES−CTRモードの場合には、その特性からカウンタと呼ばれることもある。AES−CTRモードでは、メッセージが16バイト毎のブロックに分割され、各ブロックに対して暗号化が実施される。具体的には、鍵(Key)を用いてIVを暗号化(ENC)処理した値に対して、メッセージの先頭16バイトのブロック(m1)をXOR(排他的論理和)したものが、最初の16バイトのブロック(m1)のメッセージに対応する暗号文(c1)となる。メッセージの次の16バイトのブロックについては、IVに+1をする、つまりIVに1を加えて得られる新たな初期値である更新初期値を、鍵(Key)を用いて暗号化(ENC)処理した値に対して、当該16バイトのブロック(m2)をXORしたものが、ブロック(m2)のメッセージに対応する暗号文(c2)となる。このように、IVに+1の処理を順次実施して得られる更新初期値を用いて上述のような処理を連続して行うことで、16バイト以上の長いメッセージに対しても暗号文を作成することが可能である。なお、メッセージの長さが16バイトの倍数になっていない場合には、末尾のブロックにおいてXORをビット単位で行うことによって暗号文を得る。
また、6Bにより示される図を参照すると、復号処理の内容は、暗号化の場合と全く同様である。特に、復号であるにも関わらず、IV、及び、IVに+1の処理を順次実施して得られる更新初期値を、鍵(Key)を用いて暗号化(ENC)処理することに、注意が必要である。なお、暗号化(ENC)処理した値に対して、暗号文(c1、c2・・・・等)をXORしたものが、ブロック(m1、m2・・・・等)のメッセージである。
また、AES−CTRモードの特性の1つとして、任意の位置から暗号化及び復号が可能である、つまり、任意のブロック位置からの暗号化及び復号処理が可能なランダムアクセス性を有することが挙げられる。例えば、従来一般的に利用されている暗号利用モードであるAES−CBC(Cipher Block Chaining)モードの場合には、1つ前のブロックの暗号化結果を用いて次のブロックの暗号化処理が行われる。よって、AES−CTRモードは、前のブロックから順次暗号化処理が行われなければならないAES−CBCモードとは対照的である。AES−CTRモードにおいては、例えば先頭のブロックから10ブロック後のブロックのメッセージを暗号化する場合でも、暗号化されたデータを復号する場合でも、そのIV(初期値又はカウンタ)に対して10を加算した値を対象として、鍵を用いて暗号化(ENC)を行い、さらにXORすることによって、結果が得られる。つまり、暗号化又は復号すべきブロックの順番が判別できればよい。
コンテンツ復号装置1、具体的には、固定長復号モジュール106は、このAES−CTRモードを用いて、暗号化対象となっているMMTペイロードを先頭から復号することとなる。その際の初期値は先述したMMTスクランブル初期値情報から取得できる。
次に、図7を用いて、本開示に係る可変長構造のMMT/TLV形式のストリームを、復号の前処理で固定長に変換する方式について説明する。なお、図7は、図2のMMT/TLV形式のストリームに含まれる可変長のMMTパケットを復号の前処理で固定長に変換する手順を説明する図である。図7は、既にTLVヘッダの除去、TLV−SIの抽出及び除去、IPヘッダの除去、NTPパケットの抽出及び除去を終えて、連続する可変長のMMTパケットが取り出されている状態を示す。可変長−固定長変換モジュール103は、このような状態の可変長のMMTパケットを、固定長構造のパケットである固定長パケットへと変換していく。
具体的には、可変長のMMTパケットのMMTペイロード(MP1)のサイズが、固定長パケットの固定長ペイロード(FP1)のサイズと全く等しい場合には、単純にMMTペイロード(MP1)がそのまま固定長ペイロード(FP1)に格納されることとなる。そして、当該MMTパケットにおけるMMTペイロード(MP1)に対応するMMTヘッダ(MH1)が変換され、当該固定長パケットにおける固定長ペイロード(FP1)に対応する固定長ヘッダ(FH1)に格納される。
これに対して、MMTペイロード(MP2)の方が固定長ペイロード(FP2)よりも長い場合には、MMTペイロード(MP2)は、分割されて、複数の固定長ペイロード(FP2及びFP3)に格納されることとなる。この場合、MMTペイロードは定められた固定長サイズ、本実施の形態では固定長ペイロードのサイズに先頭から分割され、前から順に固定長ペイロードへと格納されていく。なお、図7は、一例として、1つのMMTペイロードが2つの固定長ペイロードに分割されて格納されるケースを図示している。なお、こうして分割して固定長ペイロードに格納していく際に、必ずしも、可変長のMMTペイロードのサイズは、固定長ペイロードのサイズの整数倍になっているとは限らない。このようなケースでは、末尾の固定長ペイロードでは途中までしかデータが埋まらないこととなる。このようなケースでは、固定長ペイロードのうちのデータが埋まらなかった部分がダミーデータとして扱われる仕組みが必要となる。
また、MMTペイロード(MP2)に対応するMMTヘッダ(MH2)が2つのタイプに変換され、それぞれが固定長ペイロード(FP2及びFP3)に対応する固定長ヘッダ(FH2及びFH3)に格納される。
逆にMMTペイロード(MP3)が、定められた固定長のサイズの固定長ペイロード(FP4)よりも短い場合には、分割されることなく、MMTペイロード(MP3)は、そのまま固定長ペイロード(FP4)に格納される。固定長ペイロード(FP4)のうちのデータが埋まらなかった残りの部分は、ダミーデータとして扱われることとなる。また、MMTペイロード(MP3)に対応するMMTヘッダ(MH3)が変換され、固定長ペイロード(FP4)に対応する固定長ヘッダ(FH4)に格納される。なお、各固定長ヘッダ(FH1〜FH4)のサイズは同一であり、各固定長ペイロード(FP1〜FP4)のサイズは同一である。
次に、図8を参照して、MMTヘッダを固定長ヘッダに変換する仕組みについて説明していく。図8は、可変長のMMTヘッダを固定長ヘッダに変換する際の互いの対応関係の一例を示す図である。固定長ヘッダは、様々なフィールドを含み得る。図8においてアルファベットで記載されるフィールドは、MMT/TLV方式等で定義されるフィールドであり、日本語の斜体で記載されるフィールドは、日本の4K/8K放送で規定される又は本開示の特有のフィールドである。
図8に示される変換では、図1で示すデマルチ/デコードモジュール107での処理で少なくとも必要となる情報だけを取り出すべく、不要なデータは削除している。図8において、MMTヘッダの中で削除されるフィールドが、ハッチがけされて例示されている。しかしながら、将来の拡張性を担保するためなどに、必ずしもMMTヘッダの情報を削除する必要はなく、例えば全ての情報をコピーとして、変換後の固定長ヘッダに持たせても良い。逆に、reserved及びリザーブのフィールドについては、将来の拡張に対応する必要がないのであれば、削除することも可能である。同様にversion、FEC_type、RAP_flag及びpayload_typeなども、可変長−固定長変換モジュール103の後段のデマルチ/デコードモジュール107で必要ないのであれば削除しても構わない。
MMTヘッダのMMT基本ヘッダ及びMMT拡張ヘッダに格納されていたデータの中で、version、FEC_type、reserved、RAP_flag、payload_type、packet_id、timestamp、packet_sequence_number、packet_counter、リザーブ、及びMMTスクランブル制御ビットの各フィールドについては、固定長ヘッダにそのままコピーされる。なお、1つのMMTパケットが複数の固定長パケットに分割して格納される場合にも、これらの情報はそのまま記録すれば良い。ただし、timestampについては、可変長−固定長変換モジュール103の後段のデマルチ/デコードモジュール107での処理に必要となる場合には、MMTヘッダに記載されたtimestampから変更してもよい。具体的には、分割された2つ目以降の固定長パケットについては、MMTヘッダに記載されたtimestampに対して、当該固定長パケットよりも前の分割された固定長パケットの固定長ペイロードのサイズ分のデータを放送で伝送する際にかかる時間をプラスしたtimestampが、採用されてよい。図8では、通常、MMTヘッダから固定長ヘッダにそのままコピーされるフィールドは、実線矢印で結ばれ、通常、MMTヘッダから固定長ヘッダに変更を伴って移されるフィールドは、破線矢印で結ばれている。
次に、固定長ヘッダで新たに記載されるpayload_counterとペイロード内実データ長とについて説明する。本実施の形態では、payload_counterは、1つのMMTパケットが複数の固定長パケットに分割される際に、この分割を管理するための情報である。payload_counterのフィールドに示される数値0及び1のうちの数値0は、当該固定長ヘッダを有する固定長パケットが、分割後の先頭の固定長パケットであること、又は、分割が行われることがなかった固定長パケットであることを示す。payload_counterのフィールドに示される数値1は、当該固定長ヘッダを有する固定長パケットが、分割後の2番目の固定長パケットであることを示す。以降、payload_counterのフィールドに示される数値は、2である場合に3番目の固定長パケットを示し、3である場合に4番目の固定長パケットを示すというかたちで、固定長パケットの分割数及びその順序に応じて増加する値を示す。なお、payload_counterのフィールドに示される数値には、分割後の最後の固定長パケットを明示する場合に、例えば0xFFという最後を示す値が適用されてもよい。
次に、本実施の形態では、ペイロード内実データ長は、先述したダミーデータを取り扱うための仕組みである。通常時は、ペイロード内実データ長は、固定長ペイロードのサイズに一致しているが、ダミーデータが存在する場合には、固定長ペイロードのサイズからこのダミーデータのサイズを除いたサイズが、ペイロード内実データ長として記載される。
最後に、固定長ヘッダのMMTスクランブル初期値情報について、分割後の先頭の固定長パケット、又は分割が行われることがなかった固定長パケットのMMTスクランブル初期値情報のフィールドには、変換前である元のMMTヘッダの中のMMTスクランブル初期値情報が、そのまま記載される。なお、元のMMTヘッダのMMTスクランブル初期値制御情報に0が指定されている場合には、先述したpacket_sequence_number及びpacket_id等を用いた計算の結果得られるカウンタ値が、そのまま記載される。
次に、分割の有無に関係なく2つ目以降の固定長パケットの場合には、1つ前の固定長パケットの固定長ヘッダの中に記載されたMMTペイロードスクランブル初期値情報に対して、固定長ペイロードのサイズを16で割った数字を加算した値が、上記2つ目以降の固定長パケットのMMTスクランブル初期値制御情報のフィールドに記載される。なお、本実施の形態では、固定長ペイロードのサイズを16バイトの倍数として想定している。実際には、AES−CTRモードは16バイト単位で処理することとなるため、16の倍数となっていることが処理効率の点からも望ましい。このように固定長パケット毎にそのAES−CTRモードでのIVの値を記載することにより、可変長−固定長変換モジュール103の後段の固定長復号モジュール106は、固定長ヘッダの固定位置に記載されている値を参照するだけでAES−CTRモードでのIVの値を設定することが可能である。同様に、固定長復号モジュール106は、固定長ヘッダの固定位置に記載されているMMTスクランブル制御ビットを参照することにより、復号の必要性、及び復号する場合に用いるべき鍵(例えば、イーブン鍵か、オッド鍵か?)を判断することが可能である。固定長復号モジュール106は、上述の種々の情報を用いて固定長ペイロード部分を復号し、復号後の固定長ペイロード部分と固定長ヘッダとを含む平文となった固定長パケットを、後段のデマルチ/デコードモジュール107へ転送する。
固定長パケットを受け取ったデマルチ/デコードモジュール107は、packet_idを参照することにより、含まれるデータがビデオ信号であるかオーディオ信号であるかなどの判定をすることができ、またペイロード内の実データ長を見ることにより、ダミーデータを削除することもできる。
なお、本実施の形態では、固定長復号モジュール106とデマルチ/デコードモジュール107とを分ける構成としていたが、例えば固定長復号処理とデマルチ処理とを1つのモジュールで行う構成としてもよい。この場合には、当該モジュールでの処理結果は、ビデオ単独の信号又はオーディオ単独の信号となり、それぞれの信号は、ビデオ用のデコードモジュール又はオーディオ用のデコードモジュールに通知されることによってデコードを受けることが可能である。また、本実施の形態では、固定長復号モジュール106は、平文化した状態の固定長パケットをそのままデマルチ/デコードモジュール107に通知するように構成されていたが、例えば、固定ヘッダの中で不要な情報を削除すること、及び/又は、逆に追加の制御情報を加えることを実施した上で、デマルチ/デコードモジュール107に通知する構成としてもよい。
上述のようにして、デマルチ/デコードモジュール107がデコードしたビデオ信号、オーディオ信号は、表示モジュール108で表示される。
さらに、図9を用いて、コンテンツ復号装置1、つまり可変長−固定長変換モジュール103が、可変長のMMTパケットを固定長パケットに分割しつつ変換する処理について説明する。図9は、実施の形態に係るコンテンツ復号装置1による可変長のMMTパケットを固定長パケットに変換する処理の流れを示すフローチャートである。
最初にステップS901にて、可変長−固定長変換モジュール103は、1つのMMTパケットに着目し、このMMTパケットのMMTペイロードのデータを、可変長−固定長変換モジュール103が保持するメモリに読み出す、つまり取得する。次にステップS902にて、可変長−固定長変換モジュール103は、可変長−固定長変換モジュール103が保持する現カウンタ格納用のレジスタに、当該MMTパケットのMMTヘッダ内に記載されたMMTスクランブル初期値情報を格納する。つまり、可変長−固定長変換モジュール103は、上記MMTスクランブル初期値情報を、現カウンタ値に設定する。なお、MMTスクランブル初期値情報が0である場合には、可変長−固定長変換モジュール103は、先述したpacket_sequence_number及びpacket_id等を用いた計算の結果得られるカウンタ値を格納する。
次にステップS903にて、可変長−固定長変換モジュール103は、ステップS901で読み込んだMMTペイロードのデータが、定められた固定長よりも長いか否かを判定する。可変長−固定長変換モジュール103は、長い場合(ステップS903でYes)にはステップS904に移行する。これは、MMTペイロードのデータが固定長ペイロードに収まりきらないケースである。
このため、可変長−固定長変換モジュール103は、ステップS904において、MMTペイロードから、その先頭から一定の固定長サイズで読み出したデータを、ダミーデータ無しで固定長ペイロードにコピーする、つまり固定長ペイロードを作成する。さらに、可変長−固定長変換モジュール103は、図8を用いて先述した方法で、固定長ヘッダを作成して固定長ペイロードと結合し、固定長パケットを生成する。この際、可変長−固定長変換モジュール103は、作成する固定長ヘッダ内のMMTスクランブル初期値情報には、先の現カウンタ格納用のレジスタに格納した値を用いる。次にステップS905では、可変長−固定長変換モジュール103は、現カウンタ格納用のレジスタに格納されている値を、作成した固定長ペイロードのサイズに対応する値だけ増加させると共に、メモリに格納されたMMTペイロードデータから既に固定長ペイロードに格納したデータを取り除く。つまり、可変長−固定長変換モジュール103は、現カウンタ値とメモリ内のMMTペイロードデータの残データとを更新する。次いで、可変長−固定長変換モジュール103は、もう一度ステップS903に移行し、メモリ内の残データを、上述で処理したMMTペイロードの内容と読み替えてステップS903以降の処理を行う。
ステップS903において、MMTペイロードのデータが定められた固定長よりも長くない(ステップS903でNo)と判定した場合には、可変長−固定長変換モジュール103は、ステップS906に移行し、MMTペイロードのデータ(又は残データ)が、固定長と同じであるか否かを確認する。全く同じである場合(ステップS906でYes)には、可変長−固定長変換モジュール103は、ステップS907に移行して、MMTペイロードのデータ(又は残データ)を、ダミーデータ無しでコピーして固定長ペイロードを作成する。さらに、可変長−固定長変換モジュール103は、図8を用いて先述した方法で、固定長ヘッダを作成して固定長ペイロードと結合し、固定長パケットを生成する。この際、可変長−固定長変換モジュール103は、作成する固定長ヘッダ内のMMTスクランブル初期値情報には、現カウンタ格納用のレジスタに格納した値を用いる。
なお、ステップS906において、MMTペイロードのデータ(又は残データ)が固定長と同じでない(ステップS906でNo)、つまり、固定長未満であると判定した場合には、可変長−固定長変換モジュール103は、ステップS908に移行し、MMTペイロードのデータ(又は残データ)とダミーデータとを用いて固定長ペイロードを作成する、つまりダミーデータありで固定長ペイロードを作成する。この際、可変長−固定長変換モジュール103は、固定長ヘッダ内のペイロード内実データ長のフィールドに、MMTペイロードのデータ(又は残データ)のサイズを記載する。上述のように、ステップS901〜S908の処理を実施することによって、可変長−固定長変換モジュール103は、可変長のMMTパケットを、分割の必要性を判定して分割しつつ固定長パケットに変換する。
[1−2.効果等]
上述したように、実施の形態に係るコンテンツ復号装置1は、多重化方式として可変長のパケット構造を持つ暗号化コンテンツを復号する。コンテンツ復号装置1は、可変長のパケット構造を持つ暗号化コンテンツとしての第一の暗号化コンテンツを受け取って、固定長のパケット構造を持つ第二の暗号化コンテンツに変換する可変長−固定長変換モジュール103を備える。さらに、実施の形態に係るコンテンツ復号装置1は、第二の暗号化コンテンツを復号する固定長復号モジュール106を備えてもよい。
上述の構成において、可変長のパケット構造を持つ第一の暗号化コンテンツでは、各種情報の位置及びサイズが、一定でない。このため、第一の暗号化コンテンツをそのまま復号する場合、第一の暗号化コンテンツにおいて必要な情報を探し出し、サイズが一定でない第一の暗号化コンテンツに対応した復号が必要になる。さらに、一般的に復号処理自体にも高い処理能力が要求される。よって、可変長−固定長変換モジュール103に要求される処理能力が非常に高くなる。第一の暗号化コンテンツを固定長のパケット構造を持つ第二の暗号化コンテンツに変換することによって、各種情報の位置及びサイズが固定される。このため、復号のための必要な情報の取得が容易になり、一定サイズの第二の暗号化コンテンツに対応した復号は、可変長−固定長変換モジュール103に要求する処理能力を大きく低減する。よって、多重化方式で伝送されるコンテンツの復号処理を簡略にすることが可能になる。例えば、次世代4K/8K放送に対応する第一の暗号化コンテンツであっても、従来の固定長の多重化パケット構造に特化したLSIは、比較的小規模な改修を受けるだけで、可変長−固定長変換モジュール103として十分な機能を果たすことができる。一方、上記のような第一の暗号化コンテンツをそのまま復号するには、既存のLSIの改修では対応できず、新規なLSIの開発が必要なる。
実施の形態に係るコンテンツ復号装置1では、第一の暗号化コンテンツの暗号方式には、暗号化コンテンツ内に設定される暗号ブロックのうちの任意の暗号ブロック位置からの暗号化及び復号処理が可能なランダムアクセス性を有する暗号モードが用いられる。さらに、暗号モードは、CTRモードであってもよい。上述の構成において、暗号化コンテンツの復号の際、暗号ブロックは、暗号化コンテンツ内での順番に関係なく、アクセスを受けて復号されることができる。これにより、可変長−固定長変換モジュール103は、その処理能力に応じて、暗号ブロックの復号順序の変更及び複数の暗号ブロックの並行した復号等を実施しつつ、暗号化コンテンツの復号を実施することができる。また、可変長−固定長変換モジュール103は、必要な暗号ブロックを取捨選択して暗号化コンテンツの復号を実施することもできる。よって、暗号化コンテンツの復号処理速度の向上が可能になる。
実施の形態に係るコンテンツ復号装置1では、可変長−固定長変換モジュール103は、復号及び再暗号化処理を行わずに、第一の暗号化コンテンツを第二の暗号化コンテンツに変換する。上述の構成において、第一の暗号化コンテンツから第二の暗号化コンテンツへの変換処理速度の向上が可能になる。
実施の形態に係るコンテンツ復号装置1では、可変長−固定長変換モジュール103は、第一の暗号化コンテンツの第二の暗号化コンテンツへの変換では、第一の暗号化コンテンツのペイロード部を先頭から順次分割して第二の暗号化コンテンツの固定長のペイロード部に格納すると共に、第二の暗号化コンテンツのペイロード部の復号に必要となるパラメータを生成して、第二の暗号化コンテンツの固定長のヘッダ部に格納する。さらに、可変長−固定長変換モジュール103は、第二の暗号化コンテンツのペイロード部に格納された実際のデータ長を第二の暗号化コンテンツのヘッダ部に格納する。
上述の構成において、暗号化される情報を通常含むペイロード部が、第二の暗号化コンテンツの固定長のペイロード部のサイズに応じて分割され、当該ペイロード部に格納される。これにより、第一の暗号化コンテンツから第二の暗号化コンテンツへの変換が簡易になる。また、第二の暗号化コンテンツのヘッダ部に含まれる第二の暗号化コンテンツのペイロード部に格納される実際のデータ長から、復号されるべきデータ長の判別が可能である。これにより、固定長のペイロード部のサイズに適合するために第二の暗号化コンテンツのペイロード部にダミーデータが含まれる場合でも、ダミーデータを排除して実際のデータのみを復号処理することが可能である。
また、実施の形態に係る受信装置102は、多重化方式として可変長のパケット構造を持つ暗号化コンテンツを受信して再生する受信装置であり、上記コンテンツ復号装置1を備える。よって、受信装置102は、実施の形態に係るコンテンツ復号装置1と同様の効果を奏する。
また、上記実施の形態に係るコンテンツ復号装置1等において、特定の処理部が実行する処理を別の処理部が実行してもよい。また、複数の処理の順序が変更されてもよく、複数の処理が並行して実行されてもよい。
なお、上記実施の形態に係るコンテンツ復号装置1等において、各構成要素は、専用のハードウェアで構成されるか、各構成要素に適したソフトウェアプログラムを実行することによって実現されてもよい。各構成要素は、CPU又はプロセッサなどのプログラム実行部が、ハードディスク又は半導体メモリなどの記録媒体に記録されたソフトウェアプログラムを読み出して実行することによって実現されてもよい。
また、上記実施の形態に係るコンテンツ復号装置1等において、各構成要素は、LSI、超多機能LSI等の回路でもよい。複数の構成要素が、全体として1つの回路を構成してもよく、それぞれ別々の回路を構成してもよい。また、回路は、それぞれ、汎用的な回路でもよく、専用の回路でもよい。
また、上記実施の形態に係るコンテンツ復号装置1等において、構成要素の一部又は全部は、脱着可能なICカード又は単体のモジュールから構成されてもよい。ICカード又はモジュールは、マイクロプロセッサ、ROM、RAMなどから構成されるコンピュータシステムである。ICカード又はモジュールは、上記のLSI又は超多機能LSIを含むとしてもよい。マイクロプロセッサが、コンピュータプログラムにしたがって動作することにより、ICカード又はモジュールは、その機能を達成する。これらICカード及びモジュールは、耐タンパ性を有するとしてもよい。
また、実施の形態に係るコンテンツ復号方法は、多重化方式として可変長のパケット構造を持つ暗号化コンテンツを復号するコンテンツ復号方法であって、可変長のパケット構造を持つ暗号化コンテンツとしての第一の暗号化コンテンツを受け取って、固定長のパケット構造を持つ第二の暗号化コンテンツに変換する変換工程を含む。さらに、実施の形態に係るコンテンツ復号方法は、第二の暗号化コンテンツを復号する復号工程を含む。
また、実施の形態に係るコンテンツ復号方法の変換工程では、復号及び再暗号化処理を行わずに、第一の暗号化コンテンツを第二の暗号化コンテンツに変換する。さらに、実施の形態に係るコンテンツ復号方法の変換工程では、第一の暗号化コンテンツのペイロード部を先頭から順次分割して第二の暗号化コンテンツの固定長のペイロード部に格納すると共に、第二の暗号化コンテンツのペイロード部の復号に必要となるパラメータを生成して、第二の暗号化コンテンツの固定長のヘッダ部に格納する。さらにまた、変換工程では、第二の暗号化コンテンツのペイロード部に格納された実際のデータ長を第二の暗号化コンテンツのヘッダ部に格納する。
上記方法によって、実施の形態に係るコンテンツ復号装置1の効果と同様の効果が得られる。なお、上記方法は、MPU、CPU、プロセッサ、LSIなどの回路、ICカード又は単体のモジュール等によって、実現されてもよい。
また、実施の形態での処理は、ソフトウェアプログラム又はソフトウェアプログラムからなるデジタル信号によって実現されてもよい。例えば、実施の形態での処理は、次のようなプログラムによって、実現される。
すなわち、このプログラムは、多重化方式として可変長のパケット構造を持つ暗号化コンテンツを復号するためのプログラムであり、コンピュータに、可変長のパケット構造を持つ暗号化コンテンツとしての第一の暗号化コンテンツを、固定長のパケット構造を持つ第二の暗号化コンテンツに変換させる。よって、実施の形態に係るコンテンツ復号装置1の効果と同様の効果が得られる。
なお、上記プログラム及び上記プログラムからなるデジタル信号は、コンピュータ読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、CD−ROM、MO、DVD、DVD−ROM、DVD−RAM、BD(Blu−ray(登録商標) Disc)、半導体メモリ等に記録したものであってもよい。
また、上記プログラム及び上記プログラムからなるデジタル信号は、電気通信回線、無線又は有線通信回線、インターネットを代表とするネットワーク、データ放送等を経由して伝送するものであってもよい。
また、上記プログラム及び上記プログラムからなるデジタル信号は、記録媒体に記録して移送されることにより、又はネットワーク等を経由して移送されることにより、独立した他のコンピュータシステムにより実施されてもよい。
[他の実施の形態]
以上のように、本開示における技術の例示として、上記の実施の形態を説明した。しかしながら、本開示における技術は、これに限定されず、適宜、変更、置換、付加、省略などを行った実施の形態にも適用可能である。また、上記実施の形態及び下記の他の実施形態で説明する各構成要素を組み合わせて、新たな実施の形態とすることも可能である。そこで、以下、他の実施の形態を例示する。
上記実施の形態に係るコンテンツ復号装置1は、MMTパケットのMMTペイロードのデータの暗号利用モードとして、CTRモード、具体的には、AES−CTRモードを使用していたが、これに限定されない。暗号利用モードは、データの複数のブロックのうちの任意のブロック位置からの暗号化及び復号処理が可能なランダムアクセス性を有するものであれば、いかなる暗号利用モードであってもよい。
また、本開示の包括的又は具体的な態様は、システム、方法、集積回路、コンピュータプログラム又はコンピュータ読み取り可能なCD−ROMなどの記録媒体で実現されてもよい。また、本開示の包括的又は具体的な態様は、システム、方法、集積回路、コンピュータプログラム及び記録媒体の任意な組み合わせで実現されてもよい。