JP2017152751A - 送信装置、および受信装置 - Google Patents
送信装置、および受信装置 Download PDFInfo
- Publication number
- JP2017152751A JP2017152751A JP2014137014A JP2014137014A JP2017152751A JP 2017152751 A JP2017152751 A JP 2017152751A JP 2014137014 A JP2014137014 A JP 2014137014A JP 2014137014 A JP2014137014 A JP 2014137014A JP 2017152751 A JP2017152751 A JP 2017152751A
- Authority
- JP
- Japan
- Prior art keywords
- sample
- encrypted
- encryption
- counter value
- payload
- 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.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/36—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols with means for detecting characters not meant for transmission
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs
- H04N21/2347—Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving video stream encryption
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/44—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs
- H04N21/4405—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs involving video stream decryption
Abstract
【課題】MMTを用いて伝送された暗号化コンテンツをMPEG-DASHを用いて蓄積または外部に伝送する場合に、暗号化コンテンツを再暗号化することなく再利用することができる送信装置および受信装置を提供することを目的とする。
【解決手段】サンプルを入力し暗号化されたパケット列を出力する送信装置において、前記サンプルを分割し暗号化ブロックサイズの整数倍のサイズをもつ1以上のペイロードを生成するフラグメント生成手段と、暗号化に用いるカウンタ値を生成するカウンタ値生成手段と、前記ペイロードを前記カウンタ値に基づいて暗号化する暗号化手段と、前記暗号化されたペイロードを前記パケットとして出力する多重化手段と、を備え、前記カウンタ値生成手段は、サンプル内の隣接する前記暗号化ブロック間の前記カウンタ値が連続するように制御することを特徴とする。
【選択図】図1
【解決手段】サンプルを入力し暗号化されたパケット列を出力する送信装置において、前記サンプルを分割し暗号化ブロックサイズの整数倍のサイズをもつ1以上のペイロードを生成するフラグメント生成手段と、暗号化に用いるカウンタ値を生成するカウンタ値生成手段と、前記ペイロードを前記カウンタ値に基づいて暗号化する暗号化手段と、前記暗号化されたペイロードを前記パケットとして出力する多重化手段と、を備え、前記カウンタ値生成手段は、サンプル内の隣接する前記暗号化ブロック間の前記カウンタ値が連続するように制御することを特徴とする。
【選択図】図1
Description
本発明は、コンテンツを暗号化して送信する送信装置、および暗号化されたコンテンツを受信する受信装置に関する。
近年、映像・音声等のコンテンツを効率的に伝送するため、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を用いた伝送ではサンプルと呼ばれる単位で暗号化される。そのため、これら2つの方式を組み合わせた配信システムを構築する場合などでは、MMT配信用とMPEG-DASH配信用とで、別々の暗号化コンテンツを準備する必要があった。
特許文献1には、暗号化された放送データを蓄積または外部に伝送する場合に、再暗号化することによってコンテンツを保護する装置が記載されている。しかしながら、再暗号化により、処理負荷が増大するという問題がある。
本発明では、第1の伝送方式(MMT)を用いて伝送された暗号化コンテンツを第1の伝送方式と暗号化単位の異なる第2の伝送方式(MPEG-DASH)を用いて蓄積または外部に伝送する場合に、暗号化コンテンツを再暗号化することなく再利用することができる送信装置および受信装置を提供することを目的とする。
上記課題を解決するために、本発明の一態様に係る送信装置は、サンプルを入力し暗号化されたパケット列を出力する送信装置において、前記サンプルを分割し暗号化ブロックサイズの整数倍のサイズをもつ1以上のペイロードを生成するフラグメント生成手段と、暗号化に用いるカウンタ値を生成するカウンタ値生成手段と、前記ペイロードを前記カウンタ値に基づいて暗号化する暗号化手段と、前記暗号化されたペイロードを前記パケットとして出力する多重化手段と、を備え、前記カウンタ値生成手段は、サンプル内の隣接する前記暗号化ブロック間の前記カウンタ値が連続するように制御することを特徴とする。
上記課題を解決するために、本発明の一態様に係る受信装置は、暗号化されたパケット列を入力しサンプルを出力する受信装置において、前記パケットから前記サンプルを含むパケットを分離する分離手段と、前記サンプルを含むパケットから暗号化ブロックサイズの整数倍のサイズをもつペイロードを抽出するフラグメント取得手段と、前記ペイロードの復号に用いるカウンタ値を生成するカウンタ値生成手段と、前記ペイロードを復号する復号手段と、を備え、前記カウンタ値生成手段は、サンプル内の隣接する前記暗号化ブロック間の前記カウンタ値が連続するように制御することを特徴とする。
上記課題を解決するために、本発明の一態様に係る送信装置は、サンプルを入力し暗号化されたパケット列を出力する送信装置において、前記サンプルのサブサンプル毎に、非暗号化データを含む第1のペイロードと暗号化ブロックサイズの整数倍のサイズをもつ1以上の第2のペイロードとを生成するフラグメント生成手段と、暗号化に用いるカウンタ値を生成するカウンタ値生成手段と、前記第2のペイロードを前記カウンタ値に基づいて暗号化する暗号化手段と、前記第1のペイロードと前記暗号化された第2のペイロードとを前記パケットとして出力する多重化手段と、を備え、前記カウンタ値生成手段は、サンプル内の隣接する前記暗号化ブロック間の前記カウンタ値が連続するように制御することを特徴とする。
上記課題を解決するために、本発明の一態様に係る受信装置は、暗号化されたパケット列を入力しサンプルを出力する受信装置において、前記パケットから前記サンプルを含むパケットを分離する分離手段と、前記サンプルを含むパケットから非暗号化データを含む第1のペイロードと暗号化ブロックサイズの整数倍のサイズをもつ第2のペイロードとを抽出するフラグメント取得手段と、前記第2のペイロードの復号に用いるカウンタ値を生成するカウンタ値生成手段と、前記第2のペイロードを復号する復号手段と、を備え、前記カウンタ値生成手段は、サンプル内の隣接する前記暗号化ブロック間の前記カウンタ値が連続するように制御することを特徴とする。
本発明に係る送信装置および受信装置は、第1の伝送方式(MMT)を用いて伝送された暗号化コンテンツを第1の伝送方式と暗号化単位の異なる第2の伝送方式(MPEG-DASH)を用いて外部に伝送する場合に、暗号化コンテンツを再暗号化することなく再利用することができるといった効果を奏する。
(MPEG-DASHにおける暗号化)
図13は、MPEG-DASHで定義されるセグメントの一例を示した図である。セグメントはISOBMFFで定義されるmoof (Movie Fragment Box)およびmdat (Movie Data Box)を少なくとも含む。mdatには1以上のサンプル(Sample)が含まれ、サンプルは1以上のサブサンプル(Subsample0, Subsample1)から構成される。H.264やH.265等のNAL構造の符号化データをサンプルとして格納する場合、例えば、NALユニットのサイズを示すデータ(Len)と、NALユニット(NALUnit)をサブサンプルに対応させることができる。
図13は、MPEG-DASHで定義されるセグメントの一例を示した図である。セグメントはISOBMFFで定義されるmoof (Movie Fragment Box)およびmdat (Movie Data Box)を少なくとも含む。mdatには1以上のサンプル(Sample)が含まれ、サンプルは1以上のサブサンプル(Subsample0, Subsample1)から構成される。H.264やH.265等のNAL構造の符号化データをサンプルとして格納する場合、例えば、NALユニットのサイズを示すデータ(Len)と、NALユニット(NALUnit)をサブサンプルに対応させることができる。
セグメントの暗号化はサンプル単位で行われる。例えば、サンプルを128ビット(16バイト)単位で区切り(block0, block1, … , block8)、128ビットAES-CTRを用いて暗号化する。暗号化に用いる鍵や初期化ベクトル等はmoof内のSample Encryption Boxに記述される。
図14は、Sample Encryption Boxの詳細を示した図である。Sample Encryption Boxには、128ビットAES-CTR等の暗号アルゴリズムを示すAlgorithmID、初期化ベクトルのサイズを示すIV_size、暗号化の鍵を示すKID、対応するmdatに含まれるサンプル数を示すsample_count、サンプルの暗号化に用いる初期化ベクトルを示すInitializationVector、サンプルに含まれるエントリの数NumberOfEntries、エントリ内の未暗号化データのバイト数を示すBytesOfClearData、エントリ内の暗号化データのバイト数を示すBytesOfEncryptedData等が含まれる。なお、図14のカッコ内の数値は各フィールドのビット数を示している。
図13では、サンプル全体を1エントリとし(NumberOfEntries=1)、全てのデータを暗号化(BytesOfClearData=0, BytesOfEncryptedData=Sampleのサイズ)する例を示したが、サブサンプルを1エントリとし(NumberOfEntries=2)、サブサンプルの一部のデータのみ暗号化(例えば、BytesOfClearData=Lenのサイズ、BytesOfEncryptedData=NALUnitのサイズ)するようにしてもよい。
(MMTにおける暗号化)
図15(a)は、MMTで定義されるMMTPパケットの構成を示した図である。MMTPパケットは、MMTPパケットヘッダ、MMTPパケットヘッダ拡張(オプション)、MMTPペイロードヘッダ、MMTPペイロード、およびメッセージ認証コード(オプション)から構成される。MMTでは、MMTPパケット単位でMMTPペイロードが暗号化される。また、MMTPパケットヘッダ、MMTPパケットヘッダ拡張、およびMMTPペイロードヘッダをまとめてMMTPヘッダ(MMTPH)と呼ぶこととする。
図15(a)は、MMTで定義されるMMTPパケットの構成を示した図である。MMTPパケットは、MMTPパケットヘッダ、MMTPパケットヘッダ拡張(オプション)、MMTPペイロードヘッダ、MMTPペイロード、およびメッセージ認証コード(オプション)から構成される。MMTでは、MMTPパケット単位でMMTPペイロードが暗号化される。また、MMTPパケットヘッダ、MMTPパケットヘッダ拡張、およびMMTPペイロードヘッダをまとめてMMTPヘッダ(MMTPH)と呼ぶこととする。
図15(b)は、MMTPパケットヘッダの詳細を示した図である。MMTPパケットヘッダには、MMTPパケットのペイロードタイプ(type)、パケット識別子(packet_id)、配信タイムスタンプ(timestamp)、パケットシーケンス番号(packet_sequence_number)等が記述される。ペイロードタイプ(type)は、MMTPパケットがMPU (Media Processing Unit)を含むか(type=0x00)、制御メッセージを含むか(type=0x02)、等を識別するためのフィールドである。
図15(c)は、暗号化に関する情報をMMTPパケットヘッダ拡張に記述する場合の構成を示した図である。MMTPパケットヘッダ拡張には、暗号化有無を示すMMTスクランブル制御ビット、初期化ベクトルの有無を示すMMTスクランブル初期値制御ビット、初期化ベクトルを示すMMTスクランブル初期値情報等が記述される。
図15(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’)、を識別するためのフィールドである。
なお、図15のカッコ内の数値は各フィールドのビット数を示している。
図16は、MMTを用いてサンプルを伝送する場合のMMTPパケット列の一例を示した図である。ここでは、サブサンプルをMMTで定義されるMFU (Media Fragment Unit)に対応させ、そのサイズに応じて複数のMMTPパケットに分割し伝送する様子を示している。
1つめのサブサンプル(Subsample0)は、MFU00とMFU01に分割され2つの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スクランブル初期値情報に記述される。
同様に、2つめのサブサンプル(Subsample1)は、MFU10とMFU11に分割され2つの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パケットで伝送される。
図17は、図16のMMTPパケット列の各MMTPペイロードを結合したサンプルを示した図である。このサンプルを、対応する暗号化鍵とMFU00のMMTPパケットヘッダ拡張に記述されている初期化ベクトルIV00を用いて、1つの暗号化単位として復号を試みた場合、BLK0, BLK1は正しく復号できるものの、BLK2以降は、カウンタ値が暗号化時と異なっていたり、暗号化ブロック境界が暗号化時と異なっていたり(例えば、BLK4と、BLK5の一部のBLK5aが新たな暗号化ブロックを構成)するため、正しく復号することができないという問題がある。
以下では、この問題を解決するための方法について説明する。
(送信装置)
図1は、本発明の実施形態に係る送信装置の要部構成を示すブロック図である。
図1は、本発明の実施形態に係る送信装置の要部構成を示すブロック図である。
送信装置1は、フラグメント生成部11、カウンタ値生成部12、暗号化部13、鍵生成部14、関連情報生成部15、多重化部16から構成される。送信装置1は、サンプル列を入力し、MMTPパケット列を出力する。
フラグメント生成部11は、入力されたサンプルを分割しMMTPペイロードを出力する。
カウンタ値生成部12は、初期化ベクトルIVを生成し、関連情報生成部15および多重化部16に出力する。また、初期化ベクトルIVに基づきカウンタ初期値を生成し、暗号化ブロック毎に更新されるカウンタ値を暗号化部13に出力する。
カウンタ初期値の生成方法としては、例えば128ビットAES-CTRを用いて暗号化する場合、初期化ベクトルIVのサイズを128ビットとし、初期化ベクトルIVをそのままカウンタ初期値としてもよいし、初期化ベクトルIVのサイズを64ビットとし、上位64ビットを初期化ベクトルIV、下位64ビットをゼロとしてカウンタ初期値を設定してもよい。
暗号化部13は、カウンタ値生成部12により生成されるカウンタ値、および鍵生成部14により生成されるスクランブル鍵Ksに基づき、128ビットAES-CTRを用いてMMTPペイロードを暗号化し、暗号化されたMMTPペイロードを出力する。
鍵生成部14は、MMTPペイロードを暗号化するためのスクランブル鍵Ks、およびスクランブル鍵Ksを暗号化するためのワーク鍵Kwを生成し、暗号化Ks、暗号化KwをそれぞれECM (Entitlement Control Message)、EMM (Entitlement Management Message)として多重化部16に出力する。なお、ワーク鍵Kwは受信装置に割り当てられるデバイス鍵Kd等に基づき暗号化される。また、鍵生成部14は、スクランブル鍵Ksを暗号化部13に通知する。
関連情報生成部15は、MMTで定義されるMF (Movie Fragment)メタデータ、MPU (Media Processing Unit)メタデータ等を生成する。MFメタデータは、少なくとも対応するサンプル列の復号に必要なスクランブル鍵Ksや初期化ベクトルIV等の情報を含んでいる。MPUメタデータは、少なくともコンテンツのライセンスに関する情報(例えば、再生可能期間、再生可能回数等)を含んでいる。
多重化部16は、暗号化部13より出力される暗号化されたMMTPペイロード、鍵生成部14より出力されるECMおよびEMM、カウンタ値生成部12より出力される初期化ベクトルIV、関連情報生成部15より出力されるMFメタデータおよびMPUメタデータ等を、MMTPパケットを用いて多重化して出力する。
(受信装置)
図2は、本発明の実施形態に係る受信装置の要部構成を示すブロック図である。
図2は、本発明の実施形態に係る受信装置の要部構成を示すブロック図である。
受信装置2は、分離部21、フラグメント取得部22、鍵取得部23、関連情報取得部24、カウンタ値生成部25、復号部26、記録部27から構成される。受信装置2は、MMTPパケット列を入力し、サンプル列を出力する。
分離部21は、入力されたMMTPパケットをペイロードタイプに応じて分離する。MMTPペイロードがMFU (Media Fragment Unit)の場合はフラグメント取得部22へ、ECMおよびEMMの場合は鍵取得部23へ、MFメタデータおよびMPUメタデータの場合は関連情報取得部24へ出力する。
フラグメント取得部22は、分離部21より出力されるMFUを含むMMTPパケットから初期化ベクトルIVを抽出しカウンタ値生成部25へ通知するとともに、暗号化されたMMTPペイロードを復号部26に出力する。なお、初期化ベクトルIVはMMTPパケットヘッダ拡張に記述されている。
鍵取得部23は、分離部21より出力されるECMおよびEMMを含むMMTPパケットから暗号化されたスクランブル鍵Ksおよび暗号化されたワーク鍵Kwを抽出し、受信装置に割り当てられたデバイス鍵Kd等に用いてスクランブル鍵Ksを復号し、復号されたスクランブル鍵Ksを復号部26に通知する。
関連情報取得部24は、分離部21より出力されるMFメタデータおよびMPUメタデータを含むMMTPパケットからMFメタデータおよびMPUメタデータを抽出し、記録部27に出力する。なお、MFメタデータおよびMPUメタデータは暗号化されていないものとする。
カウンタ値生成部25は、フラグメント取得部22より通知される初期化ベクトルIVに基づきカウンタ初期値を生成するとともに、暗号化ブロック毎に更新されるカウンタ値を復号部26に通知する。
カウンタ初期値の生成方法としては、例えば、128ビットAES-CTRで暗号化されていて、初期化ベクトルIVのサイズが128ビットの場合は初期化ベクトルIVをそのままカウンタ初期値に設定する。あるいは、初期化ベクトルIVのサイズが64ビットの場合は上位64ビットを初期化ベクトルIV、下位64ビットをゼロとしてカウンタ初期値を設定してもよい。
復号部26は、カウンタ値生成部25より通知されるカウンタ値、および鍵生成部23より通知されるスクランブル鍵Ksに基づき、128ビットAES-CTRを用いてMMTPペイロードを復号し、復号したMMTPペイロードをサンプルとして出力する。
記録部27は、フラグメント取得部22より出力される暗号化されたMMTPペイロード、関連情報取得部24より出力されるMFメタデータおよびMPUメタデータを結合しISOBMFFのデータとして記録する。
〔実施形態1〕
サンプル全体を暗号化する場合の送信装置および受信装置について説明する。
サンプル全体を暗号化する場合の送信装置および受信装置について説明する。
(パケット構成)
まず、サンプル全体を暗号化する場合のパケット構成について説明する。
まず、サンプル全体を暗号化する場合のパケット構成について説明する。
図3は、サンプルと暗号化ブロックの関係を説明するための図である。暗号アルゴリズムとして128ビットAES-CTRを用いるため、各暗号化ブロック(block0〜block8)は128ビット長である。ただし、最終暗号化ブロックは128ビット長に満たない場合がある。
図4は、サンプルをMFUとして伝送する場合のMMTPパケット列の一例を示した図である。この例では、サンプルは4つの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暗号化時のカウンタ値+1、MFU03のカウンタ初期値は、BLK6暗号化時のカウンタ値+1となるように制御される。
ここで、MMTPパケットヘッダ拡張のMMTスクランブル初期値情報には、上記カウンタ初期値が記述される(IV00, IV01, IV02, IV03)。あるいは、MFUの先頭を含むMMTPパケットにのみMMTスクランブル初期値情報を記述し、MFUの先頭以外のMMTPパケットのカウンタ初期値は、受信装置で直前の暗号化ブロックのカウンタ値+1となるように導出するようにしてもよい。あるいは、カウンタ初期値をLSBからMSBに向かってスキャンした際に‘1’が出現するビット位置およびそれより上位のビットのみをMMTスクランブル初期値情報として記述してもよい。この場合、受信装置で、MMTスクランブル初期値情報の値を(128−(MMTスクランブル初期値情報のビット数))だけ左論理シフト演算することでカウンタ初期値を導出することができる。
図5は、図4のMMTPパケット列の各MMTPペイロードを結合したサンプルを示した図である。ここで、BLK1とBLK2、BLK4とBLK5、BLK6とBLK7は、それぞれ異なる暗号化単位に属する暗号化ブロックであるが、それぞれの暗号化ブロック間でカウンタ値が連続するように制御されているため、このサンプルに対応するMFメタデータに含まれる初期値情報IV00、またはMFUの先頭を含むMMTPパケットの初期値情報IV00を得るだけでサンプル全体を正しく復号することができる。
(送信方法)
図6は、サンプル全体を暗号化する場合の送信装置1の動作フローを示した図である。
図6は、サンプル全体を暗号化する場合の送信装置1の動作フローを示した図である。
鍵生成部14は、サンプルを暗号化するためのスクランブル鍵Ksを生成する(S10)。
フラグメント生成部11は、1以上のNALユニットから構成されるサンプルを入力し(S11)、1以上の暗号化ブロックから構成されるMMTPペイロードを生成する(S12)。ただし、サンプルの最後のMMTPペイロードは鍵長に満たない場合がある。
生成されたMMTPペイロードがサンプルの先頭MMTPペイロードか否かを判定する(S13)。
サンプルの先頭MMTPペイロードの場合(S13でYes)、カウンタ値生成部12は、任意の値をカウンタ初期値に設定するとともに、カウンタ値生成で用いた初期化ベクトルIVを多重化部16へ出力する(S14)。
サンプルの先頭MMTPペイロードでない場合(S13でNo)、カウンタ値生成部12は、同一サンプルの直前の暗号化ブロックのカウンタ値+1をカウンタ初期値に設定する(S15)。
暗号化部13は、フラグメント生成部11より出力されたMMTPペイロードを128ビットAES-CTRで暗号化し、暗号化されたMMTPペイロードを多重化部16へ出力するとともに、カウンタ値を更新する(S16)。
多重化部16は、MMTPパケットヘッダ、MMTPパケットヘッダ拡張、MMTPペイロードヘッダをMMTPペイロードに付加し、MMTPパケットを出力する(S17)。
サンプルの暗号化が完了した場合(S18でYes)終了し、そうでない場合(S18でNo)S12に進む。
(受信方法)
図7は、サンプル全体を暗号化する場合の受信装置2の動作フローを示した図である。
図7は、サンプル全体を暗号化する場合の受信装置2の動作フローを示した図である。
分離部21は、サンプルの先頭を含むMMTPパケットを検索する(S20)。
鍵取得部23は、サンプルを復号するためのスクランブル鍵Ksを取得する(S21)。
フラグメント取得部22は、MFUを含むMMTPパケットを取得する(S22)。
フラグメント取得部22は、MMTPパケットヘッダ拡張に初期化ベクトルIVが記述されているか否かを判定する(S23)。
MMTPパケットヘッダ拡張に初期化ベクトルIVが記述されている場合(S23でYes)、カウンタ値生成部25は、初期化ベクトルIVに基づきカウンタ初期値を設定する(S24)。
MMTPパケットヘッダ拡張に初期化ベクトルIVが記述されていない場合(S23でNo)、カウンタ値生成部25は、同一サンプルの直前の暗号化ブロックのカウンタ値+1をカウンタ初期値に設定する(S25)。
復号部26は、フラグメント取得部22より出力された暗号化されたMMTPペイロードを128ビットAES-CTRで復号し(S26)、出力する(S27)。
サンプルの復号が完了した場合(S28でYes)終了し、そうでない場合(S28でNo)S22に進む。
上記構成とすることで、MMTPパケットとして暗号化されたコンテンツを再暗号化することなく、サンプルとして暗号化されたコンテンツとして扱うことができる。また、MPEG-DASHにおけるセグメント等、サンプルとして暗号化されたコンテンツを再暗号化することなく、MMTPパケットとして伝送することができる。
〔実施形態2〕
サブサンプルの一部を暗号化する場合の送信装置および受信装置について説明する。
サブサンプルの一部を暗号化する場合の送信装置および受信装置について説明する。
(パケット構成)
まず、サブサンプルの一部を暗号化する場合のパケット構成について説明する。
まず、サブサンプルの一部を暗号化する場合のパケット構成について説明する。
図8は、サンプルと、非暗号化データおよび暗号化ブロックの関係を説明するための図である。暗号アルゴリズムとして128ビットAES-CTRを用いるため、暗号化ブロック(block0〜block6)は128ビット長である。
1つめのサブサンプル(Subsample0)は、1つの非暗号化データ(ClearData0)と、複数の暗号化ブロック(block0, block1, block2, block3)から構成される。暗号アルゴリズムとして128ビットAES-CTRを用いるため、暗号化ブロックはすべて128ビット(16バイト)長である。
非暗号化データ(ClearData0)のサイズ(BytesOfClearData)は、
BytesOfClearData = Lenのサイズ +(Subsampleのサイズ - Lenのサイズ)% 16バイト
により導出することができる。Lenのサイズは通常4バイト(32ビット)である。
BytesOfClearData = Lenのサイズ +(Subsampleのサイズ - Lenのサイズ)% 16バイト
により導出することができる。Lenのサイズは通常4バイト(32ビット)である。
あるいは、NALユニット(NALUnit)ヘッダも非暗号化データに含めるようにし、
BytesOfClearData = Lenのサイズ + NALUnitヘッダのサイズ
+(Subsampleのサイズ - Lenのサイズ - NALUnitヘッダのサイズ)% 16バイト
により導出してもよい。
BytesOfClearData = Lenのサイズ + NALUnitヘッダのサイズ
+(Subsampleのサイズ - Lenのサイズ - NALUnitヘッダのサイズ)% 16バイト
により導出してもよい。
あるいは、
BytesOfClearData = Subsampleのサイズ % 16バイト
により導出してもよい。
BytesOfClearData = Subsampleのサイズ % 16バイト
により導出してもよい。
同様に、2つめのサブサンプル(Subsample1)も、1つの非暗号化データ(ClearData1)と、複数の暗号化ブロック(block4, block5, block6)から構成される。
図9(a)は、サンプルをMFUとして伝送する場合のMMTPパケット列の一例を示した図である。この例では、サンプルは5つの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暗号化時のカウンタ値+1となるように制御される。
ここで、暗号化ブロックを含むMMTPパケット(MFU01, MFU02, MFU04)のMMTPパケットヘッダ拡張のMMTスクランブル初期値情報には、上記カウンタ初期値が記述される(IV00, IV01, IV02)。あるいは、MFUの最初の暗号化ブロックを含むMMTPパケット(MFU01)にのみMMTスクランブル初期値情報を記述し、それ以外のMMTPパケットのカウンタ初期値は、受信装置で直前の暗号化ブロックのカウンタ値+1となるように導出するようにしてもよい。あるいは、カウンタ初期値をLSBからMSBに向かってスキャンした際に‘1’が出現するビット位置およびそれより上位のビットのみをMMTスクランブル初期値情報として記述してもよい。この場合、受信装置で、MMTスクランブル初期値情報の値を(128−(MMTスクランブル初期値情報のビット数))だけ左論理シフト演算することでカウンタ初期値を導出することができる。なお、MFU00, MFU03は、暗号化ブロックを含まないため、MMTスクランブル初期値情報は不要である。
あるいは、図9(b)のように、サブサンプルをMFUとして伝送してもよい。サブサンプルをMFUとしているため、MFU02とMFU03の分割指標(f_i)の値が図9(a)と異なっている。MFU02の分割指標(f_i)には、MFUの終端を含みかつ先頭を含まないことを示す“11”が記述される。MFU03の分割指標(f_i)には、MFUの先頭を含みかつ終端を含まないことを示す“01”が記述される。
図10は、図9のMMTPパケット列の各MMTPペイロードを結合したサンプルを示した図である。ここで、BLK1とBLK2、BLK3とBLK4は、それぞれ異なる暗号化単位に属する暗号化ブロックであるが、それぞれの暗号化ブロック間でカウンタ値が連続するように制御されているため、このサンプルに対応するMFメタデータに含まれる初期値情報IV00、非暗号化データサイズBytesOfClearData、および暗号化ブロックサイズBytesOfEncryptedDataを得ることでサンプル全体を正しく復号することができる。
(送信方法)
図11は、サブサンプルの一部を暗号化する場合の送信装置1の動作フローを示した図である。
図11は、サブサンプルの一部を暗号化する場合の送信装置1の動作フローを示した図である。
鍵生成部14は、サンプルを暗号化するためのスクランブル鍵Ksを生成する(S100)。
フラグメント生成部11は、NALユニットから構成されるサブサンプルを入力し(S101)、サブサンプルの先頭を含む非暗号化データまたは1以上の暗号化ブロックから構成されるMMTPペイロードを生成する(S102)。
生成されたMMTPペイロードがサンプルの先頭MMTPペイロードか否かを判定する(S103)。
サンプルの先頭MMTPペイロードの場合(S103でYes)、カウンタ値生成部12は、任意の値をカウンタ初期値に設定するとともに、カウンタ値生成で用いた初期化ベクトルIVを多重化部16へ出力する(S104)。
サンプルの先頭MMTPペイロードでない場合(S103でNo)、カウンタ値生成部12は、同一サンプルの直前の暗号化ブロックのカウンタ値+1をカウンタ値に設定する(S105)。
続いて、生成されたMMTPペイロードがサブサンプルの先頭MMTPペイロードか否かを判定する(S106)。
サブサンプルの先頭MMTPペイロードの場合(S106でYes)、フラグメント生成部11より出力されたMMTPペイロードは、暗号化されずに多重化部16へ出力される。
サブサンプルの先頭MMTPペイロードでない場合(S106でNo)、暗号化部13は、フラグメント生成部11より出力されたMMTPペイロードを128ビットAES-CTRで暗号化し、暗号化されたMMTPペイロードを多重化部16へ出力するとともに、カウンタ値を更新する(S107)。
多重化部16は、MMTPパケットヘッダ、MMTPパケットヘッダ拡張、MMTPペイロードヘッダをMMTPペイロードに付加し、MMTPパケットを出力する(S108)。
サブサンプルの暗号化が完了した場合(S109でYes)S110へ、そうでない場合(S109でNo)S102へ進む。
サンプルの暗号化が完了した場合(S110でYes)終了し、そうでない場合(S110でNo)S101へ進む。
(受信方法)
図12は、サブサンプルの一部を暗号化する場合の受信装置2の動作フローを示した図である。
図12は、サブサンプルの一部を暗号化する場合の受信装置2の動作フローを示した図である。
図12の動作フローは、S221が加わる点がサンプル全体を暗号化する場合の受信装置2の動作フロー(図7)と異なる。図7と同一のステップについては同一の符号を付しその説明は省略する。
S221では、MMTPパケットヘッダ拡張のMMTスクランブル制御ビットを参照し、フラグメント取得部22で取得したMMTPパケットが暗号化されているか否かを判定する(S221)。
MMTPパケットが暗号化されている場合(S221でYes)S23へ、MMTPパケットが暗号化されていない場合(S221でNo)S27へ進む。
上記構成とすることで、MMTPパケットとして暗号化されたコンテンツを再暗号化することなく、サンプルとして暗号化されたコンテンツとして扱うことができる。また、MPEG-DASHにおけるセグメント等、サンプルとして暗号化されたコンテンツを再暗号化することなく、MMTPパケットとして伝送することができる。
〔プログラム等〕
送信装置の制御ブロック(フラグメント生成部、カウンタ値生成部、暗号化部、多重化部等)、および受信装置の制御ブロック(分離部、フラグメント取得部、カウンタ値生成部、復号部等)は、集積回路(ICチップ)等に形成された論理回路(ハードウェア)によって実現してもよいし、CPU(Central Processing Unit)を用いてソフトウェアによって実現してもよい。
送信装置の制御ブロック(フラグメント生成部、カウンタ値生成部、暗号化部、多重化部等)、および受信装置の制御ブロック(分離部、フラグメント取得部、カウンタ値生成部、復号部等)は、集積回路(ICチップ)等に形成された論理回路(ハードウェア)によって実現してもよいし、CPU(Central Processing Unit)を用いてソフトウェアによって実現してもよい。
後者の場合、送信装置および受信装置の各装置は、各機能を実現するソフトウェアであるプログラムの命令を実行するCPU、上記プログラムおよび各種データがコンピュータ(またはCPU)で読み取り可能に記録されたROM(Read Only Memory)または記憶装置(これらを「記録媒体」と称する)、上記プログラムを展開するRAM(Random Access Memory)などを備えている。そして、コンピュータ(またはCPU)が上記プログラムを上記記録媒体から読み取って実行することにより、本発明の目的が達成される。上記記録媒体としては、「一時的でない有形の媒体」、例えば、テープ、ディスク、カード、半導体メモリ、プログラマブルな論理回路などを用いることができる。また、上記プログラムは、該プログラムを伝送可能な任意の伝送媒体(通信ネットワークや放送波等)を介して上記コンピュータに供給されてもよい。なお、本発明は、上記プログラムが電子的な伝送によって具現化された、搬送波に埋め込まれたデータ信号の形態でも実現され得る。
本発明は、例えば、放送システムや映像配信システム等に好適に利用することができる。
1 送信装置
11 フラグメント生成部
12 カウンタ値生成部
13 暗号化部
14 鍵生成部
15 関連情報生成部
16 多重化部
2 受信装置
21 分離部
22 フラグメント取得部
23 鍵取得部
24 関連情報取得部
25 カウンタ値生成部
26 復号部
27 記録部
11 フラグメント生成部
12 カウンタ値生成部
13 暗号化部
14 鍵生成部
15 関連情報生成部
16 多重化部
2 受信装置
21 分離部
22 フラグメント取得部
23 鍵取得部
24 関連情報取得部
25 カウンタ値生成部
26 復号部
27 記録部
Claims (4)
- サンプルを入力し暗号化されたパケット列を出力する送信装置において、
前記サンプルを分割し暗号化ブロックサイズの整数倍のサイズをもつ1以上のペイロードを生成するフラグメント生成手段と、
暗号化に用いるカウンタ値を生成するカウンタ値生成手段と、
前記ペイロードを前記カウンタ値に基づいて暗号化する暗号化手段と、
前記暗号化されたペイロードを前記パケットとして出力する多重化手段と、を備え、
前記カウンタ値生成手段は、サンプル内の隣接する前記暗号化ブロック間の前記カウンタ値が連続するように制御することを特徴とする送信装置。 - 暗号化されたパケット列を入力しサンプルを出力する受信装置において、
前記パケットから前記サンプルを含むパケットを分離する分離手段と、
前記サンプルを含むパケットから暗号化ブロックサイズの整数倍のサイズをもつペイロードを抽出するフラグメント取得手段と、
前記ペイロードの復号に用いるカウンタ値を生成するカウンタ値生成手段と、
前記ペイロードを復号する復号手段と、を備え、
前記カウンタ値生成手段は、サンプル内の隣接する前記暗号化ブロック間の前記カウンタ値が連続するように制御することを特徴とする受信装置。 - サンプルを入力し暗号化されたパケット列を出力する送信装置において、
前記サンプルのサブサンプル毎に、非暗号化データを含む第1のペイロードと暗号化ブロックサイズの整数倍のサイズをもつ1以上の第2のペイロードとを生成するフラグメント生成手段と、
暗号化に用いるカウンタ値を生成するカウンタ値生成手段と、
前記第2のペイロードを前記カウンタ値に基づいて暗号化する暗号化手段と、
前記第1のペイロードと前記暗号化された第2のペイロードとを前記パケットとして出力する多重化手段と、を備え、
前記カウンタ値生成手段は、サンプル内の隣接する前記暗号化ブロック間の前記カウンタ値が連続するように制御することを特徴とする送信装置。 - 暗号化されたパケット列を入力しサンプルを出力する受信装置において、
前記パケットから前記サンプルを含むパケットを分離する分離手段と、
前記サンプルを含むパケットから非暗号化データを含む第1のペイロードと暗号化ブロックサイズの整数倍のサイズをもつ第2のペイロードとを抽出するフラグメント取得手段と、
前記第2のペイロードの復号に用いるカウンタ値を生成するカウンタ値生成手段と、
前記第2のペイロードを復号する復号手段と、を備え、
前記カウンタ値生成手段は、サンプル内の隣接する前記暗号化ブロック間の前記カウンタ値が連続するように制御することを特徴とする受信装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014137014A JP2017152751A (ja) | 2014-07-02 | 2014-07-02 | 送信装置、および受信装置 |
PCT/JP2015/067786 WO2016002545A1 (ja) | 2014-07-02 | 2015-06-19 | 送信装置、および受信装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014137014A JP2017152751A (ja) | 2014-07-02 | 2014-07-02 | 送信装置、および受信装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2017152751A true JP2017152751A (ja) | 2017-08-31 |
Family
ID=55019090
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014137014A Pending JP2017152751A (ja) | 2014-07-02 | 2014-07-02 | 送信装置、および受信装置 |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP2017152751A (ja) |
WO (1) | WO2016002545A1 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6793364B2 (ja) * | 2016-07-08 | 2020-12-02 | パナソニックIpマネジメント株式会社 | コンテンツ復号装置、コンテンツ復号方法、受信装置及びプログラム |
CN109981669B (zh) * | 2019-04-02 | 2021-10-29 | 河南管软信息技术有限公司 | 应用于服务器的数据安全方法及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9445112B2 (en) * | 2012-12-06 | 2016-09-13 | Microsoft Technology Licensing, Llc | Secure transcoding of video data |
-
2014
- 2014-07-02 JP JP2014137014A patent/JP2017152751A/ja active Pending
-
2015
- 2015-06-19 WO PCT/JP2015/067786 patent/WO2016002545A1/ja active Application Filing
Also Published As
Publication number | Publication date |
---|---|
WO2016002545A1 (ja) | 2016-01-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6592569B2 (ja) | 送信装置および受信装置 | |
US10084492B2 (en) | Method and system for non-persistent real-time encryption key distribution | |
US7721088B2 (en) | Terminal device, server device, and content distribution system | |
US20030212886A1 (en) | Encryption/decryption system and encryption/decryption method | |
JP2015012492A (ja) | 限定受信システムの復号化方法、暗号化方法、受信装置、および送信装置 | |
US20150026459A1 (en) | Method and system for encrypting multimedia streams | |
JP6596131B2 (ja) | 送信装置、受信装置および限定受信システム | |
WO2016002545A1 (ja) | 送信装置、および受信装置 | |
JP5113954B1 (ja) | デジタル放送受信装置およびそのプログラム | |
WO2015034020A1 (ja) | 送信装置、受信装置、限定受信システムおよび限定受信方法 | |
JP6793364B2 (ja) | コンテンツ復号装置、コンテンツ復号方法、受信装置及びプログラム | |
CN103297809A (zh) | 媒体内容加密解密方法、装置及系统 | |
JP5901438B2 (ja) | デジタル放送受信装置およびそのプログラム、ならびに、デジタル放送送信装置 | |
US10075419B2 (en) | Method and device to protect a decrypted media content before transmission to a consumption device | |
JP6641434B2 (ja) | 送信装置 | |
JP6543397B2 (ja) | 送信装置、受信装置および限定受信システム | |
JP6539389B2 (ja) | 送信装置、受信装置および限定受信システム | |
JP2016116065A (ja) | 受信機、送信機、及びコンテンツの受信方法 |