(57)【要約】【課題】MMTを用いて伝送された暗号化コンテンツをMPEG-DASHを用いて蓄積または外部に伝送する場合に、暗号化コンテンツを再暗号化することなく再利用することができる送信装置および受信装置を提供することを目的とする。【解決手段】サンプルを入力し暗号化されたパケット列を出力する送信装置において、前記サンプルを分割し暗号化ブロックサイズの整数倍のサイズをもつ１以上のペイロードを生成するフラグメント生成手段と、暗号化に用いるカウンタ値を生成するカウンタ値生成手段と、前記ペイロードを前記カウンタ値に基づいて暗号化する暗号化手段と、前記暗号化されたペイロードを前記パケットとして出力する多重化手段と、を備え、前記カウンタ値生成手段は、サンプル内の隣接する前記暗号化ブロック間の前記カウンタ値が連続するように制御することを特徴とする。【選択図】図１
2017152751.tif 000002
【特許請求の範囲】
【請求項１】
サンプルを入力し暗号化されたパケット列を出力する送信装置において、
前記サンプルを分割し暗号化ブロックサイズの整数倍のサイズをもつ１以上のペイロードを生成するフラグメント生成手段と、
暗号化に用いるカウンタ値を生成するカウンタ値生成手段と、
前記ペイロードを前記カウンタ値に基づいて暗号化する暗号化手段と、
前記暗号化されたペイロードを前記パケットとして出力する多重化手段と、を備え、
前記カウンタ値生成手段は、サンプル内の隣接する前記暗号化ブロック間の前記カウンタ値が連続するように制御することを特徴とする送信装置。
【請求項２】
暗号化されたパケット列を入力しサンプルを出力する受信装置において、
前記パケットから前記サンプルを含むパケットを分離する分離手段と、
前記サンプルを含むパケットから暗号化ブロックサイズの整数倍のサイズをもつペイロードを抽出するフラグメント取得手段と、
前記ペイロードの復号に用いるカウンタ値を生成するカウンタ値生成手段と、
前記ペイロードを復号する復号手段と、を備え、
前記カウンタ値生成手段は、サンプル内の隣接する前記暗号化ブロック間の前記カウンタ値が連続するように制御することを特徴とする受信装置。
【請求項３】
サンプルを入力し暗号化されたパケット列を出力する送信装置において、
前記サンプルのサブサンプル毎に、非暗号化データを含む第１のペイロードと暗号化ブロックサイズの整数倍のサイズをもつ１以上の第２のペイロードとを生成するフラグメント生成手段と、
暗号化に用いるカウンタ値を生成するカウンタ値生成手段と、
前記第２のペイロードを前記カウンタ値に基づいて暗号化する暗号化手段と、
前記第１のペイロードと前記暗号化された第２のペイロードとを前記パケットとして出力する多重化手段と、を備え、
前記カウンタ値生成手段は、サンプル内の隣接する前記暗号化ブロック間の前記カウンタ値が連続するように制御することを特徴とする送信装置。
【請求項４】
暗号化されたパケット列を入力しサンプルを出力する受信装置において、
前記パケットから前記サンプルを含むパケットを分離する分離手段と、
前記サンプルを含むパケットから非暗号化データを含む第１のペイロードと暗号化ブロックサイズの整数倍のサイズをもつ第２のペイロードとを抽出するフラグメント取得手段と、
前記第２のペイロードの復号に用いるカウンタ値を生成するカウンタ値生成手段と、
前記第２のペイロードを復号する復号手段と、を備え、
前記カウンタ値生成手段は、サンプル内の隣接する前記暗号化ブロック間の前記カウンタ値が連続するように制御することを特徴とする受信装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンテンツを暗号化して送信する送信装置、および暗号化されたコンテンツを受信する受信装置に関する。
【背景技術】
【０００２】
近年、映像・音声等のコンテンツを効率的に伝送するため、MMT (ISO/IEC 23008-1: MPEG Media Transport)、MPEG-DASH (ISO/IEC 23009-1: Dynamic Adaptive Streaming over HTTP)等、新たな伝送方式の標準化が進められている。
【０００３】
映像・音声等のコンテンツを伝送する場合、通常、コンテンツを保護するために暗号化が行われる。MMTで定義されるMPU (Media Processing Unit)や、MPEG-DASHで定義されるセグメントは、H.264やH.265等の符号化データを格納するためのコンテナであり、ともにISOBMFF (ISO/IEC 14496-12: ISO Base Media File Format)をベースとしたフォーマットであるが、暗号化する際には異なる方式が用いられる場合がある。
【０００４】
例えば、MMTを用いた伝送ではMMTPパケットと呼ばれる単位で暗号化されるのに対して、MPEG-DASHを用いた伝送ではサンプルと呼ばれる単位で暗号化される。そのため、これら２つの方式を組み合わせた配信システムを構築する場合などでは、MMT配信用とMPEG-DASH配信用とで、別々の暗号化コンテンツを準備する必要があった。
【０００５】
特許文献１には、暗号化された放送データを蓄積または外部に伝送する場合に、再暗号化することによってコンテンツを保護する装置が記載されている。しかしながら、再暗号化により、処理負荷が増大するという問題がある。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００４−７６９４号公報（２００４年１月８日公開）
【発明の概要】
【発明が解決しようとする課題】
【０００７】
本発明では、第１の伝送方式(MMT)を用いて伝送された暗号化コンテンツを第１の伝送方式と暗号化単位の異なる第２の伝送方式(MPEG-DASH)を用いて蓄積または外部に伝送する場合に、暗号化コンテンツを再暗号化することなく再利用することができる送信装置および受信装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記課題を解決するために、本発明の一態様に係る送信装置は、サンプルを入力し暗号化されたパケット列を出力する送信装置において、前記サンプルを分割し暗号化ブロックサイズの整数倍のサイズをもつ１以上のペイロードを生成するフラグメント生成手段と、暗号化に用いるカウンタ値を生成するカウンタ値生成手段と、前記ペイロードを前記カウンタ値に基づいて暗号化する暗号化手段と、前記暗号化されたペイロードを前記パケットとして出力する多重化手段と、を備え、前記カウンタ値生成手段は、サンプル内の隣接する前記暗号化ブロック間の前記カウンタ値が連続するように制御することを特徴とする。
【０００９】
上記課題を解決するために、本発明の一態様に係る受信装置は、暗号化されたパケット列を入力しサンプルを出力する受信装置において、前記パケットから前記サンプルを含むパケットを分離する分離手段と、前記サンプルを含むパケットから暗号化ブロックサイズの整数倍のサイズをもつペイロードを抽出するフラグメント取得手段と、前記ペイロードの復号に用いるカウンタ値を生成するカウンタ値生成手段と、前記ペイロードを復号する復号手段と、を備え、前記カウンタ値生成手段は、サンプル内の隣接する前記暗号化ブロック間の前記カウンタ値が連続するように制御することを特徴とする。
【００１０】
上記課題を解決するために、本発明の一態様に係る送信装置は、サンプルを入力し暗号化されたパケット列を出力する送信装置において、前記サンプルのサブサンプル毎に、非暗号化データを含む第１のペイロードと暗号化ブロックサイズの整数倍のサイズをもつ１以上の第２のペイロードとを生成するフラグメント生成手段と、暗号化に用いるカウンタ値を生成するカウンタ値生成手段と、前記第２のペイロードを前記カウンタ値に基づいて暗号化する暗号化手段と、前記第１のペイロードと前記暗号化された第２のペイロードとを前記パケットとして出力する多重化手段と、を備え、前記カウンタ値生成手段は、サンプル内の隣接する前記暗号化ブロック間の前記カウンタ値が連続するように制御することを特徴とする。
【００１１】
上記課題を解決するために、本発明の一態様に係る受信装置は、暗号化されたパケット列を入力しサンプルを出力する受信装置において、前記パケットから前記サンプルを含むパケットを分離する分離手段と、前記サンプルを含むパケットから非暗号化データを含む第１のペイロードと暗号化ブロックサイズの整数倍のサイズをもつ第２のペイロードとを抽出するフラグメント取得手段と、前記第２のペイロードの復号に用いるカウンタ値を生成するカウンタ値生成手段と、前記第２のペイロードを復号する復号手段と、を備え、前記カウンタ値生成手段は、サンプル内の隣接する前記暗号化ブロック間の前記カウンタ値が連続するように制御することを特徴とする。
【発明の効果】
【００１２】
本発明に係る送信装置および受信装置は、第１の伝送方式(MMT)を用いて伝送された暗号化コンテンツを第１の伝送方式と暗号化単位の異なる第２の伝送方式(MPEG-DASH)を用いて外部に伝送する場合に、暗号化コンテンツを再暗号化することなく再利用することができるといった効果を奏する。
【図面の簡単な説明】
【００１３】
【図１】本発明の実施形態に係る送信装置の要部構成を示すブロック図である。
【図２】本発明の実施形態に係る受信装置の要部構成を示すブロック図である。
【図３】サンプルと暗号化ブロックの関係を説明するための図である。
【図４】サンプルをMFUとして伝送する場合のMMTPパケット列の一例を示した図である。
【図５】図４のMMTPパケット列の各MMTPペイロードを結合したサンプルを示した図である。
【図６】サンプル全体を暗号化する場合の送信装置１の動作フローを示した図である。
【図７】サンプル全体を暗号化する場合の受信装置２の動作フローを示した図である。
【図８】サンプルと非暗号化データおよび暗号化ブロックの関係を説明するための図である。
【図９】サンプルまたはサブサンプルをMFUとして伝送する場合のMMTPパケット列の一例を示した図である。
【図１０】図９のMMTPパケット列の各MMTPペイロードを結合したサンプルを示した図である。
【図１１】サブサンプルの一部を暗号化する場合の送信装置１の動作フローを示した図である。
【図１２】サブサンプルの一部を暗号化する場合の受信装置２の動作フローを示した図である。
【図１３】MPEG-DASHで定義されるセグメントの一例を示した図である。
【図１４】Sample Encryption Boxの詳細を示した図である。
【図１５】MMTPパケットの構成を説明するための図である。
【図１６】MMTを用いてサンプルを伝送する場合のMMTPパケット列の一例を示した図である。
【図１７】図１６のMMTPパケット列の各MMTPペイロードを結合したサンプルを示した図である。
【発明を実施するための形態】
【００１４】
（MPEG-DASHにおける暗号化）
図１３は、MPEG-DASHで定義されるセグメントの一例を示した図である。セグメントはISOBMFFで定義されるmoof (Movie Fragment Box)およびmdat (Movie Data Box)を少なくとも含む。mdatには１以上のサンプル(Sample)が含まれ、サンプルは１以上のサブサンプル(Subsample0, Subsample1)から構成される。H.264やH.265等のNAL構造の符号化データをサンプルとして格納する場合、例えば、NALユニットのサイズを示すデータ(Len)と、NALユニット(NALUnit)をサブサンプルに対応させることができる。
【００１５】
セグメントの暗号化はサンプル単位で行われる。例えば、サンプルを128ビット（16バイト）単位で区切り（block0, block1, … , block8）、128ビットAES-CTRを用いて暗号化する。暗号化に用いる鍵や初期化ベクトル等はmoof内のSample Encryption Boxに記述される。
【００１６】
図１４は、Sample Encryption Boxの詳細を示した図である。Sample Encryption Boxには、128ビットAES-CTR等の暗号アルゴリズムを示すAlgorithmID、初期化ベクトルのサイズを示すIV_size、暗号化の鍵を示すKID、対応するmdatに含まれるサンプル数を示すsample_count、サンプルの暗号化に用いる初期化ベクトルを示すInitializationVector、サンプルに含まれるエントリの数NumberOfEntries、エントリ内の未暗号化データのバイト数を示すBytesOfClearData、エントリ内の暗号化データのバイト数を示すBytesOfEncryptedData等が含まれる。なお、図１４のカッコ内の数値は各フィールドのビット数を示している。
【００１７】
図１３では、サンプル全体を１エントリとし（NumberOfEntries＝1）、全てのデータを暗号化（BytesOfClearData＝0, BytesOfEncryptedData＝Sampleのサイズ）する例を示したが、サブサンプルを１エントリとし（NumberOfEntries＝2）、サブサンプルの一部のデータのみ暗号化（例えば、BytesOfClearData＝Lenのサイズ、BytesOfEncryptedData＝NALUnitのサイズ）するようにしてもよい。
【００１８】
（MMTにおける暗号化）
図１５(a)は、MMTで定義されるMMTPパケットの構成を示した図である。MMTPパケットは、MMTPパケットヘッダ、MMTPパケットヘッダ拡張（オプション）、MMTPペイロードヘッダ、MMTPペイロード、およびメッセージ認証コード（オプション）から構成される。MMTでは、MMTPパケット単位でMMTPペイロードが暗号化される。また、MMTPパケットヘッダ、MMTPパケットヘッダ拡張、およびMMTPペイロードヘッダをまとめてMMTPヘッダ(MMTPH)と呼ぶこととする。
【００１９】
図１５(b)は、MMTPパケットヘッダの詳細を示した図である。MMTPパケットヘッダには、MMTPパケットのペイロードタイプ(type)、パケット識別子(packet_id)、配信タイムスタンプ(timestamp)、パケットシーケンス番号(packet_sequence_number)等が記述される。ペイロードタイプ(type)は、MMTPパケットがMPU (Media Processing Unit)を含むか(type＝0x00)、制御メッセージを含むか(type＝0x02)、等を識別するためのフィールドである。
【００２０】
図１５(c)は、暗号化に関する情報をMMTPパケットヘッダ拡張に記述する場合の構成を示した図である。MMTPパケットヘッダ拡張には、暗号化有無を示すMMTスクランブル制御ビット、初期化ベクトルの有無を示すMMTスクランブル初期値制御ビット、初期化ベクトルを示すMMTスクランブル初期値情報等が記述される。
【００２１】
図１５(d)は、MMTPペイロードヘッダの詳細を示した図である。MMTPペイロードヘッダには、フラグメントタイプ(FT)、分割指標(f_i)、サンプル番号(sample_number)等が記述される。フラグメントタイプ(FT)は、MMTPペイロードに格納されるデータが、MFU (Media Fragment Unit)であるか(FT＝0)、MF (Movie Fragment)メタデータであるか(FT＝1)、MPU (Media Processing Unit)メタデータであるか(FT＝2)か等を識別するためのフィールドである。分割指標(f_i)は、MMTPペイロードに格納されるMFU等のデータが、完全な形か(f_i＝‘00’)、分割されたデータの先頭を含みかつ終端を含まないか(f_i＝‘01’)、分割されたデータの先頭でもなく終端でもない部分を含むか(f_i＝‘10’)、分割されたデータの終端を含みかつ先頭を含まないか(f_i＝‘11’)、を識別するためのフィールドである。
【００２２】
なお、図１５のカッコ内の数値は各フィールドのビット数を示している。
【００２３】
図１６は、MMTを用いてサンプルを伝送する場合のMMTPパケット列の一例を示した図である。ここでは、サブサンプルをMMTで定義されるMFU (Media Fragment Unit)に対応させ、そのサイズに応じて複数のMMTPパケットに分割し伝送する様子を示している。
【００２４】
１つめのサブサンプル（Subsample0）は、MFU00とMFU01に分割され２つのMMTPパケットで伝送される。MFU00のMMTPペイロードヘッダの分割指標(f_i)には、MFUの先頭を含みかつ終端を含まないことを示す“01”が記述される。MFU01のMMTPペイロードヘッダの分割指標(f_i)には、MFUの終端を含みかつ先頭を含まないことを示す“11”が記述される。
【００２５】
MFU00のMMTPペイロードには、block0, block1を128ビットAES-CTRで暗号化したBLK0, BLK1が格納される。MFU01のMMTPペイロードには、block2, block3, block4のSubsample0に属する部分を128ビットAES-CTRで暗号化したBLK2, BLK3, BLK4が格納される。
【００２６】
MMTでは、MMTPパケット単位で暗号化されるため、MFU00とMFU01は独立に暗号化され、それらの初期化ベクトルIV00, IV01はそれぞれのMMTPパケットヘッダ拡張のMMTスクランブル初期値情報に記述される。
【００２７】
同様に、２つめのサブサンプル（Subsample1）は、MFU10とMFU11に分割され２つのMMTPパケットで伝送される。MFU10のMMTPペイロードヘッダの分割指標(f_i)には、MFUの先頭を含みかつ終端を含まないことを示す“01”が記述される。MFU11のMMTPペイロードヘッダの分割指標(f_i)には、MFUの終端を含みかつ先頭を含まないことを示す“11”が記述される。
【００２８】
MFU10のMMTPペイロードには、block4のSubsample1に属する部分、block5, block6の一部（MMTPペイロード全体が128ビットの整数倍になるように分割）を128ビットAES-CTRで暗号化したBLK5, BLK6が格納される。MFU11のMMTPペイロードには、block6の一部（MFU10に格納しなかった部分）, block7, block8を128ビットAES-CTRで暗号化したBLK7, BLK8が格納される。
【００２９】
MMTでは、MMTPパケット単位で暗号化されるため、MFU10とMFU11は独立に暗号化され、それらの初期化ベクトルIV10, IV11はそれぞれのMMTPパケットヘッダ拡張のMMTスクランブル初期値情報に記述される。
【００３０】
暗号化に用いる鍵は、ECM (Entitlement Control Message)制御メッセージとしてサンプルを伝送するMMTPパケットとは異なるMMTPパケットで伝送される。
【００３１】
図１７は、図１６のMMTPパケット列の各MMTPペイロードを結合したサンプルを示した図である。このサンプルを、対応する暗号化鍵とMFU00のMMTPパケットヘッダ拡張に記述されている初期化ベクトルIV00を用いて、１つの暗号化単位として復号を試みた場合、BLK0, BLK1は正しく復号できるものの、BLK2以降は、カウンタ値が暗号化時と異なっていたり、暗号化ブロック境界が暗号化時と異なっていたり（例えば、BLK4と、BLK5の一部のBLK5aが新たな暗号化ブロックを構成）するため、正しく復号することができないという問題がある。
【００３２】
以下では、この問題を解決するための方法について説明する。
【００３３】
（送信装置）
図１は、本発明の実施形態に係る送信装置の要部構成を示すブロック図である。
【００３４】
送信装置１は、フラグメント生成部１１、カウンタ値生成部１２、暗号化部１３、鍵生成部１４、関連情報生成部１５、多重化部１６から構成される。送信装置１は、サンプル列を入力し、MMTPパケット列を出力する。
【００３５】
フラグメント生成部１１は、入力されたサンプルを分割しMMTPペイロードを出力する。
【００３６】
カウンタ値生成部１２は、初期化ベクトルIVを生成し、関連情報生成部１５および多重化部１６に出力する。また、初期化ベクトルIVに基づきカウンタ初期値を生成し、暗号化ブロック毎に更新されるカウンタ値を暗号化部１３に出力する。
【００３７】
カウンタ初期値の生成方法としては、例えば128ビットAES-CTRを用いて暗号化する場合、初期化ベクトルIVのサイズを128ビットとし、初期化ベクトルIVをそのままカウンタ初期値としてもよいし、初期化ベクトルIVのサイズを64ビットとし、上位64ビットを初期化ベクトルIV、下位64ビットをゼロとしてカウンタ初期値を設定してもよい。
【００３８】
暗号化部１３は、カウンタ値生成部１２により生成されるカウンタ値、および鍵生成部１４により生成されるスクランブル鍵Ksに基づき、128ビットAES-CTRを用いてMMTPペイロードを暗号化し、暗号化されたMMTPペイロードを出力する。
【００３９】
鍵生成部１４は、MMTPペイロードを暗号化するためのスクランブル鍵Ks、およびスクランブル鍵Ksを暗号化するためのワーク鍵Kwを生成し、暗号化Ks、暗号化KwをそれぞれECM (Entitlement Control Message)、EMM (Entitlement Management Message)として多重化部１６に出力する。なお、ワーク鍵Kwは受信装置に割り当てられるデバイス鍵Kd等に基づき暗号化される。また、鍵生成部１４は、スクランブル鍵Ksを暗号化部１３に通知する。
【００４０】
関連情報生成部１５は、MMTで定義されるMF (Movie Fragment)メタデータ、MPU (Media Processing Unit)メタデータ等を生成する。MFメタデータは、少なくとも対応するサンプル列の復号に必要なスクランブル鍵Ksや初期化ベクトルIV等の情報を含んでいる。MPUメタデータは、少なくともコンテンツのライセンスに関する情報（例えば、再生可能期間、再生可能回数等）を含んでいる。
【００４１】
多重化部１６は、暗号化部１３より出力される暗号化されたMMTPペイロード、鍵生成部１４より出力されるECMおよびEMM、カウンタ値生成部１２より出力される初期化ベクトルIV、関連情報生成部１５より出力されるMFメタデータおよびMPUメタデータ等を、MMTPパケットを用いて多重化して出力する。
【００４２】
（受信装置）
図２は、本発明の実施形態に係る受信装置の要部構成を示すブロック図である。
【００４３】
受信装置２は、分離部２１、フラグメント取得部２２、鍵取得部２３、関連情報取得部２４、カウンタ値生成部２５、復号部２６、記録部２７から構成される。受信装置２は、MMTPパケット列を入力し、サンプル列を出力する。
【００４４】
分離部２１は、入力されたMMTPパケットをペイロードタイプに応じて分離する。MMTPペイロードがMFU (Media Fragment Unit)の場合はフラグメント取得部２２へ、ECMおよびEMMの場合は鍵取得部２３へ、MFメタデータおよびMPUメタデータの場合は関連情報取得部２４へ出力する。
【００４５】
フラグメント取得部２２は、分離部２１より出力されるMFUを含むMMTPパケットから初期化ベクトルIVを抽出しカウンタ値生成部２５へ通知するとともに、暗号化されたMMTPペイロードを復号部２６に出力する。なお、初期化ベクトルIVはMMTPパケットヘッダ拡張に記述されている。
【００４６】
鍵取得部２３は、分離部２１より出力されるECMおよびEMMを含むMMTPパケットから暗号化されたスクランブル鍵Ksおよび暗号化されたワーク鍵Kwを抽出し、受信装置に割り当てられたデバイス鍵Kd等に用いてスクランブル鍵Ksを復号し、復号されたスクランブル鍵Ksを復号部２６に通知する。
【００４７】
関連情報取得部２４は、分離部２１より出力されるMFメタデータおよびMPUメタデータを含むMMTPパケットからMFメタデータおよびMPUメタデータを抽出し、記録部２７に出力する。なお、MFメタデータおよびMPUメタデータは暗号化されていないものとする。
【００４８】
カウンタ値生成部２５は、フラグメント取得部２２より通知される初期化ベクトルIVに基づきカウンタ初期値を生成するとともに、暗号化ブロック毎に更新されるカウンタ値を復号部２６に通知する。
【００４９】
カウンタ初期値の生成方法としては、例えば、128ビットAES-CTRで暗号化されていて、初期化ベクトルIVのサイズが128ビットの場合は初期化ベクトルIVをそのままカウンタ初期値に設定する。あるいは、初期化ベクトルIVのサイズが64ビットの場合は上位64ビットを初期化ベクトルIV、下位64ビットをゼロとしてカウンタ初期値を設定してもよい。
【００５０】
復号部２６は、カウンタ値生成部２５より通知されるカウンタ値、および鍵生成部２３より通知されるスクランブル鍵Ksに基づき、128ビットAES-CTRを用いてMMTPペイロードを復号し、復号したMMTPペイロードをサンプルとして出力する。
【００５１】
記録部２７は、フラグメント取得部２２より出力される暗号化されたMMTPペイロード、関連情報取得部２４より出力されるMFメタデータおよびMPUメタデータを結合しISOBMFFのデータとして記録する。
【００５２】
〔実施形態１〕
サンプル全体を暗号化する場合の送信装置および受信装置について説明する。
【００５３】
（パケット構成）
まず、サンプル全体を暗号化する場合のパケット構成について説明する。
【００５４】
図３は、サンプルと暗号化ブロックの関係を説明するための図である。暗号アルゴリズムとして128ビットAES-CTRを用いるため、各暗号化ブロック(block0〜block8)は128ビット長である。ただし、最終暗号化ブロックは128ビット長に満たない場合がある。
【００５５】
図４は、サンプルをMFUとして伝送する場合のMMTPパケット列の一例を示した図である。この例では、サンプルは４つのMMTPパケット（MFU00, MFU01, MFU02, MFU03）に分割されて伝送される。
【００５６】
MFU00のMMTPペイロードヘッダの分割指標(f_i)には、MFUの先頭を含みかつ終端を含まないことを示す“01”が記述される。MFU01およびMFU02のMMTPペイロードヘッダの分割指標(f_i)には、MFUの先頭も終端も含まないことを示す“10”が記述される。MFU03のMMTPペイロードヘッダの分割指標(f_i)には、MFUの終端を含みかつ先頭を含まないことを示す“11”が記述される。
【００５７】
本実施形態では、各MMTPパケットのMMTPペイロードには、暗号化ブロック(128ビット長)の整数倍のサイズのデータが格納される。すなわち、MFU00には、block0, blcok1を暗号化したBLK0, BLK1が格納される。MFU01には、block2, block3, block4を暗号化したBLK2, BLK3, BLK4が格納される。MFU02には、block5, block6を暗号化したBLK5, BLK6が格納される。MFU03には、block7, block8を暗号化したBLK7, BLK8が格納される。
【００５８】
MMTではMMTPパケット単位で暗号化されるため、MMTPパケット毎にカウンタ初期値が設定される。本実施形態では、サンプル内の隣接する暗号化ブロックのカウンタ値が連続するようにカウンタ初期値が制御される。すなわち、MFU01のカウンタ初期値は、MFU00の最終暗号化ブロックであるBLK1暗号化時のカウンタ値をインクリメントした値となるように制御される。同様に、MFU02のカウンタ初期値は、BLK4暗号化時のカウンタ値＋１、MFU03のカウンタ初期値は、BLK6暗号化時のカウンタ値＋１となるように制御される。
【００５９】
ここで、MMTPパケットヘッダ拡張のMMTスクランブル初期値情報には、上記カウンタ初期値が記述される（IV00, IV01, IV02, IV03）。あるいは、MFUの先頭を含むMMTPパケットにのみMMTスクランブル初期値情報を記述し、MFUの先頭以外のMMTPパケットのカウンタ初期値は、受信装置で直前の暗号化ブロックのカウンタ値＋１となるように導出するようにしてもよい。あるいは、カウンタ初期値をLSBからMSBに向かってスキャンした際に‘1’が出現するビット位置およびそれより上位のビットのみをMMTスクランブル初期値情報として記述してもよい。この場合、受信装置で、MMTスクランブル初期値情報の値を（128−(MMTスクランブル初期値情報のビット数)）だけ左論理シフト演算することでカウンタ初期値を導出することができる。
【００６０】
図５は、図４のMMTPパケット列の各MMTPペイロードを結合したサンプルを示した図である。ここで、BLK1とBLK2、BLK4とBLK5、BLK6とBLK7は、それぞれ異なる暗号化単位に属する暗号化ブロックであるが、それぞれの暗号化ブロック間でカウンタ値が連続するように制御されているため、このサンプルに対応するMFメタデータに含まれる初期値情報IV00、またはMFUの先頭を含むMMTPパケットの初期値情報IV00を得るだけでサンプル全体を正しく復号することができる。
【００６１】
（送信方法）
図６は、サンプル全体を暗号化する場合の送信装置１の動作フローを示した図である。
【００６２】
鍵生成部１４は、サンプルを暗号化するためのスクランブル鍵Ksを生成する(S10)。
【００６３】
フラグメント生成部１１は、１以上のNALユニットから構成されるサンプルを入力し(S11)、１以上の暗号化ブロックから構成されるMMTPペイロードを生成する(S12)。ただし、サンプルの最後のMMTPペイロードは鍵長に満たない場合がある。
【００６４】
生成されたMMTPペイロードがサンプルの先頭MMTPペイロードか否かを判定する(S13)。
【００６５】
サンプルの先頭MMTPペイロードの場合（S13でYes）、カウンタ値生成部１２は、任意の値をカウンタ初期値に設定するとともに、カウンタ値生成で用いた初期化ベクトルIVを多重化部１６へ出力する(S14)。
【００６６】
サンプルの先頭MMTPペイロードでない場合（S13でNo）、カウンタ値生成部１２は、同一サンプルの直前の暗号化ブロックのカウンタ値＋１をカウンタ初期値に設定する(S15)。
【００６７】
暗号化部１３は、フラグメント生成部１１より出力されたMMTPペイロードを128ビットAES-CTRで暗号化し、暗号化されたMMTPペイロードを多重化部１６へ出力するとともに、カウンタ値を更新する(S16)。
【００６８】
多重化部１６は、MMTPパケットヘッダ、MMTPパケットヘッダ拡張、MMTPペイロードヘッダをMMTPペイロードに付加し、MMTPパケットを出力する(S17)。
【００６９】
サンプルの暗号化が完了した場合（S18でYes）終了し、そうでない場合（S18でNo）S12に進む。
【００７０】
（受信方法）
図７は、サンプル全体を暗号化する場合の受信装置２の動作フローを示した図である。
【００７１】
分離部２１は、サンプルの先頭を含むMMTPパケットを検索する(S20)。
【００７２】
鍵取得部２３は、サンプルを復号するためのスクランブル鍵Ksを取得する(S21)。
【００７３】
フラグメント取得部２２は、MFUを含むMMTPパケットを取得する(S22)。
【００７４】
フラグメント取得部２２は、MMTPパケットヘッダ拡張に初期化ベクトルIVが記述されているか否かを判定する(S23)。
【００７５】
MMTPパケットヘッダ拡張に初期化ベクトルIVが記述されている場合（S23でYes）、カウンタ値生成部２５は、初期化ベクトルIVに基づきカウンタ初期値を設定する(S24)。
【００７６】
MMTPパケットヘッダ拡張に初期化ベクトルIVが記述されていない場合（S23でNo）、カウンタ値生成部２５は、同一サンプルの直前の暗号化ブロックのカウンタ値＋１をカウンタ初期値に設定する(S25)。
【００７７】
復号部２６は、フラグメント取得部２２より出力された暗号化されたMMTPペイロードを128ビットAES-CTRで復号し(S26)、出力する(S27)。
【００７８】
サンプルの復号が完了した場合（S28でYes）終了し、そうでない場合（S28でNo）S22に進む。
【００７９】
上記構成とすることで、MMTPパケットとして暗号化されたコンテンツを再暗号化することなく、サンプルとして暗号化されたコンテンツとして扱うことができる。また、MPEG-DASHにおけるセグメント等、サンプルとして暗号化されたコンテンツを再暗号化することなく、MMTPパケットとして伝送することができる。
【００８０】
〔実施形態２〕
サブサンプルの一部を暗号化する場合の送信装置および受信装置について説明する。
【００８１】
（パケット構成）
まず、サブサンプルの一部を暗号化する場合のパケット構成について説明する。
【００８２】
図８は、サンプルと、非暗号化データおよび暗号化ブロックの関係を説明するための図である。暗号アルゴリズムとして128ビットAES-CTRを用いるため、暗号化ブロック(block0〜block6)は128ビット長である。
【００８３】
１つめのサブサンプル(Subsample0)は、１つの非暗号化データ(ClearData0)と、複数の暗号化ブロック(block0, block1, block2, block3)から構成される。暗号アルゴリズムとして128ビットAES-CTRを用いるため、暗号化ブロックはすべて128ビット(16バイト)長である。
【００８４】
非暗号化データ(ClearData0)のサイズ(BytesOfClearData)は、
BytesOfClearData = Lenのサイズ +（Subsampleのサイズ - Lenのサイズ）% 16バイト
により導出することができる。Lenのサイズは通常4バイト(32ビット)である。
【００８５】
あるいは、NALユニット(NALUnit)ヘッダも非暗号化データに含めるようにし、
BytesOfClearData = Lenのサイズ + NALUnitヘッダのサイズ
+（Subsampleのサイズ - Lenのサイズ - NALUnitヘッダのサイズ）% 16バイト
により導出してもよい。
【００８６】
あるいは、
BytesOfClearData = Subsampleのサイズ % 16バイト
により導出してもよい。
【００８７】
同様に、２つめのサブサンプル(Subsample1)も、１つの非暗号化データ(ClearData1)と、複数の暗号化ブロック(block4, block5, block6)から構成される。
【００８８】
図９(a)は、サンプルをMFUとして伝送する場合のMMTPパケット列の一例を示した図である。この例では、サンプルは５つのMMTPパケット（MFU00, MFU01, MFU02, MFU03, MFU04）に分割されて伝送される。
【００８９】
MFU00のMMTPペイロードヘッダの分割指標(f_i)には、MFUの先頭を含みかつ終端を含まないことを示す“01”が記述される。MFU01、MFU02、およびMFU03のMMTPペイロードヘッダの分割指標(f_i)には、MFUの先頭も終端も含まないことを示す“10”が記述される。MFU04のMMTPペイロードヘッダの分割指標(f_i)には、MFUの終端を含みかつ先頭を含まないことを示す“11”が記述される。
【００９０】
本実施形態では、各MMTPパケットのMMTPペイロードには、非暗号化データ、または暗号化ブロック(128ビット長)の整数倍のサイズのデータが格納される。すなわち、MFU00には、ClearData0が暗号化されずに格納される。MFU01には、block0, block1を暗号化したBLK0, BLK1が格納される。MFU02には、block2, block3を暗号化したBLK2, BLK3が格納される。MFU03には、ClearData1が暗号化されずに格納される。MFU04には、block4, block5, block6を暗号化したBLK4, BLK5, BLK6が格納される。
【００９１】
MMTではMMTPパケット単位で暗号化されるため、MMTPパケット毎にカウンタ初期値が設定される。本実施形態では、サンプル内の隣接する暗号化ブロックのカウンタ値が連続するようにカウンタ初期値が制御される。すなわち、MFU02のカウンタ初期値は、MFU01の最終暗号化ブロックであるBLK1暗号化時のカウンタ値をインクリメントした値となるように制御される。同様に、MFU04のカウンタ初期値は、BLK3暗号化時のカウンタ値＋１となるように制御される。
【００９２】
ここで、暗号化ブロックを含むMMTPパケット(MFU01, MFU02, MFU04)のMMTPパケットヘッダ拡張のMMTスクランブル初期値情報には、上記カウンタ初期値が記述される（IV00, IV01, IV02）。あるいは、MFUの最初の暗号化ブロックを含むMMTPパケット(MFU01)にのみMMTスクランブル初期値情報を記述し、それ以外のMMTPパケットのカウンタ初期値は、受信装置で直前の暗号化ブロックのカウンタ値＋１となるように導出するようにしてもよい。あるいは、カウンタ初期値をLSBからMSBに向かってスキャンした際に‘1’が出現するビット位置およびそれより上位のビットのみをMMTスクランブル初期値情報として記述してもよい。この場合、受信装置で、MMTスクランブル初期値情報の値を（128−(MMTスクランブル初期値情報のビット数)）だけ左論理シフト演算することでカウンタ初期値を導出することができる。なお、MFU00, MFU03は、暗号化ブロックを含まないため、MMTスクランブル初期値情報は不要である。
【００９３】
あるいは、図９(b)のように、サブサンプルをMFUとして伝送してもよい。サブサンプルをMFUとしているため、MFU02とMFU03の分割指標(f_i)の値が図９(a)と異なっている。MFU02の分割指標(f_i)には、MFUの終端を含みかつ先頭を含まないことを示す“11”が記述される。MFU03の分割指標(f_i)には、MFUの先頭を含みかつ終端を含まないことを示す“01”が記述される。
【００９４】
図１０は、図９のMMTPパケット列の各MMTPペイロードを結合したサンプルを示した図である。ここで、BLK1とBLK2、BLK3とBLK4は、それぞれ異なる暗号化単位に属する暗号化ブロックであるが、それぞれの暗号化ブロック間でカウンタ値が連続するように制御されているため、このサンプルに対応するMFメタデータに含まれる初期値情報IV00、非暗号化データサイズBytesOfClearData、および暗号化ブロックサイズBytesOfEncryptedDataを得ることでサンプル全体を正しく復号することができる。
【００９５】
（送信方法）
図１１は、サブサンプルの一部を暗号化する場合の送信装置１の動作フローを示した図である。
【００９６】
鍵生成部１４は、サンプルを暗号化するためのスクランブル鍵Ksを生成する(S100)。
【００９７】
フラグメント生成部１１は、NALユニットから構成されるサブサンプルを入力し(S101)、サブサンプルの先頭を含む非暗号化データまたは１以上の暗号化ブロックから構成されるMMTPペイロードを生成する(S102)。
【００９８】
生成されたMMTPペイロードがサンプルの先頭MMTPペイロードか否かを判定する(S103)。
【００９９】
サンプルの先頭MMTPペイロードの場合（S103でYes）、カウンタ値生成部１２は、任意の値をカウンタ初期値に設定するとともに、カウンタ値生成で用いた初期化ベクトルIVを多重化部１６へ出力する(S104)。
【０１００】
サンプルの先頭MMTPペイロードでない場合（S103でNo）、カウンタ値生成部１２は、同一サンプルの直前の暗号化ブロックのカウンタ値＋１をカウンタ値に設定する(S105)。
【０１０１】
続いて、生成されたMMTPペイロードがサブサンプルの先頭MMTPペイロードか否かを判定する(S106)。
【０１０２】
サブサンプルの先頭MMTPペイロードの場合（S106でYes）、フラグメント生成部１１より出力されたMMTPペイロードは、暗号化されずに多重化部１６へ出力される。
【０１０３】
サブサンプルの先頭MMTPペイロードでない場合（S106でNo）、暗号化部１３は、フラグメント生成部１１より出力されたMMTPペイロードを128ビットAES-CTRで暗号化し、暗号化されたMMTPペイロードを多重化部１６へ出力するとともに、カウンタ値を更新する(S107)。
【０１０４】
多重化部１６は、MMTPパケットヘッダ、MMTPパケットヘッダ拡張、MMTPペイロードヘッダをMMTPペイロードに付加し、MMTPパケットを出力する(S108)。
【０１０５】
サブサンプルの暗号化が完了した場合（S109でYes）S110へ、そうでない場合（S109でNo）S102へ進む。
【０１０６】
サンプルの暗号化が完了した場合（S110でYes）終了し、そうでない場合（S110でNo）S101へ進む。
【０１０７】
（受信方法）
図１２は、サブサンプルの一部を暗号化する場合の受信装置２の動作フローを示した図である。
【０１０８】
図１２の動作フローは、S221が加わる点がサンプル全体を暗号化する場合の受信装置２の動作フロー（図７）と異なる。図７と同一のステップについては同一の符号を付しその説明は省略する。
【０１０９】
S221では、MMTPパケットヘッダ拡張のMMTスクランブル制御ビットを参照し、フラグメント取得部２２で取得したMMTPパケットが暗号化されているか否かを判定する(S221)。
【０１１０】
MMTPパケットが暗号化されている場合（S221でYes）S23へ、MMTPパケットが暗号化されていない場合（S221でNo）S27へ進む。
【０１１１】
上記構成とすることで、MMTPパケットとして暗号化されたコンテンツを再暗号化することなく、サンプルとして暗号化されたコンテンツとして扱うことができる。また、MPEG-DASHにおけるセグメント等、サンプルとして暗号化されたコンテンツを再暗号化することなく、MMTPパケットとして伝送することができる。
【０１１２】
〔プログラム等〕
送信装置の制御ブロック（フラグメント生成部、カウンタ値生成部、暗号化部、多重化部等）、および受信装置の制御ブロック（分離部、フラグメント取得部、カウンタ値生成部、復号部等）は、集積回路（ＩＣチップ）等に形成された論理回路（ハードウェア）によって実現してもよいし、ＣＰＵ（Central Processing Unit）を用いてソフトウェアによって実現してもよい。
【０１１３】
後者の場合、送信装置および受信装置の各装置は、各機能を実現するソフトウェアであるプログラムの命令を実行するＣＰＵ、上記プログラムおよび各種データがコンピュータ（またはＣＰＵ）で読み取り可能に記録されたＲＯＭ（Read Only Memory）または記憶装置（これらを「記録媒体」と称する）、上記プログラムを展開するＲＡＭ（Random Access Memory）などを備えている。そして、コンピュータ（またはＣＰＵ）が上記プログラムを上記記録媒体から読み取って実行することにより、本発明の目的が達成される。上記記録媒体としては、「一時的でない有形の媒体」、例えば、テープ、ディスク、カード、半導体メモリ、プログラマブルな論理回路などを用いることができる。また、上記プログラムは、該プログラムを伝送可能な任意の伝送媒体（通信ネットワークや放送波等）を介して上記コンピュータに供給されてもよい。なお、本発明は、上記プログラムが電子的な伝送によって具現化された、搬送波に埋め込まれたデータ信号の形態でも実現され得る。
【産業上の利用可能性】
【０１１４】
本発明は、例えば、放送システムや映像配信システム等に好適に利用することができる。
【符号の説明】
【０１１５】
１          送信装置
１１        フラグメント生成部
１２        カウンタ値生成部
１３        暗号化部
１４        鍵生成部
１５        関連情報生成部
１６        多重化部
２          受信装置
２１        分離部
２２        フラグメント取得部
２３        鍵取得部
２４        関連情報取得部
２５        カウンタ値生成部
２６        復号部
２７        記録部
【図１】
2017152751.tif 000003
【図２】
2017152751.tif 000004
【図３】
2017152751.tif 000005
【図４】
2017152751.tif 000006
【図５】
2017152751.tif 000007
【図６】
2017152751.tif 000008
【図７】
2017152751.tif 000009
【図８】
2017152751.tif 000010
【図９】
2017152751.tif 000011
【図１０】
2017152751.tif 000012
【図１１】
2017152751.tif 000013
【図１２】
2017152751.tif 000014
【図１３】
2017152751.tif 000015
【図１４】
2017152751.tif 000016
【図１５】
2017152751.tif 000017
【図１６】
2017152751.tif 000018
【図１７】
2017152751.tif 000019