(57)【要約】【課題】データストリームをスクランブルする方法。【解決手段】データのブロック（Ｐｉ）からなる一連のファーストシーケンス（２９、３０）を前記ストリームから求める過程と、データのブロックからなる各セカンドシーケンス（３１、３７）を形成するために、ブロックからなる各前記ファーストシーケンス（２９、３０）における前記ブロック（Ｐｉ）の順番を反転させる過程と、ブロックからなる各セカンドシーケンス（３１、３７）に対する各初期ベクトル（ＩＶ３、ＩＶＮ）で初期化される、ブロック連鎖モードで暗号Ｅｋを用いてブロックからなる各セカンドシーケンス（３１、３７）における前記ブロックを暗号化する過程とを具備する。【選択図】図２
2007133400.tif 000002
【特許請求の範囲】
【請求項１】
データストリームをスクランブルする方法であって、
データのブロック（Ｐｉ）からなる一連のファーストシーケンス（２９、３０）を前記ストリームから求める過程と、
データのブロックからなる各セカンドシーケンス（３１、３７）を形成するために、ブロックからなる各前記ファーストシーケンス（２９、３０）における前記ブロック（Ｐｉ）の順番を反転させる過程と、
ブロックからなる各セカンドシーケンス（３１、３７）に対する各初期ベクトル（ＩＶ３、ＩＶＮ）で初期化される、ブロック連鎖モードで暗号Ｅｋを用いてブロックからなる各セカンドシーケンス（３１、３７）における前記ブロックを暗号化する過程と
を具備し、
前記ストリーム内でデータユニット（２６）に含まれるブロックからなる一連のファーストシーケンス（２９、３０）に対し、前記ユニットでブロックからなるファーストシーケンス（３０）から形成されるブロックからなるセカンドシーケンス（３７）を暗号化するための少なくとも１つの初期ベクトル（ＩＶＮ）は、前記ユニットのブロックからなる先行するファーストシーケンス（２９）に従って生成されることを特徴とする方法。
【請求項２】
ブロックからなるファーストシーケンス（２９、３０）から形成されるブロックからなる各セカンドシーケンス（３１、３７）で前記ブロックを暗号化するための各初期ベクトル（ＩＶ３、ＩＶＮ）は、同一のファーストシーケンス（２９、３０）でラストブロックに先行するデータの少なくとも１つのブロックに従って生成されることを特徴とする請求項１に記載の方法。
【請求項３】
前記ユニット（２６）でブロック（３０）からなるファーストシーケンスから形成されるブロックからなるセカンドシーケンス（３７）を暗号化するための各初期ベクトル（ＩＶＮ）は、前記ユニット（２６）のブロックからなる各任意の先行するファーストシーケンス（２９）のうち少なくとも１つのブロックに従って生成されることを特徴とする請求項１又は２に記載の方法。
【請求項４】
ヘッダー（２８）及びペイロード（２６）を具備するデータパケット（２７）を受信する過程を具備し、前記ユニットは、前記ペイロードによって形成されることを特徴とする請求項１から３の何れか１項に記載の方法。
【請求項５】
前記暗号（Ｅｋ）は、所定サイズの基本ブロック上で演算するよう設定されるブロック暗号であり、データの少なくともセカンドシーケンス（３１、３７）における前記ブロック（Ｐｉ）は、前記基本ブロックサイズのサイズに対応することを特徴とする請求項１から４の何れか１項に記載の方法。
【請求項６】
前記ユニット（２６）が、ブロックからなる一連のファーストシーケンス（２９、３０）と前記基本ブロックのサイズの倍数未満のサイズに等しい後続のデータ量とによって構成される場合、
前記データ量は、少なくとも２つのブロックからなるファーストエンドシーケンスを形成するために基本ブロックのサイズの倍数に等しいサイズに埋め込まれ、
ブロックからなる前記ファーストエンドシーケンスのうち前記２つのラストブロックは、交換され、ブロックからなる前記ファーストエンドシーケンスにおける前記ブロックの順番は、データのブロックからなるセカンドエンドシーケンス（４０）を形成するために反転され、
ブロックからなる前記セカンドエンドシーケンス（４０）におけるブロックは、前記ユニットのブロックからなる先行するファーストシーケンス（２９、３０）のうち少なくとも１つのブロックに従って生成される初期ベクトル（ＩＶＮ）によって初期化される、ブロック連鎖モードで前記暗号（Ｅｋ）を用いて暗号化されることを特徴とする請求項５に記載の方法。
【請求項７】
前記ユニットが、ゼロ又は所定数のブロックからなるさらなるファーストシーケンスによって、及び１つの基本ブロックのサイズ未満のサイズに等しいデータ量（ＰＮ）によって構成される場合、
前記データ量は、ファイナルブロック（４２）を形成するために１つの基本ブロックのサイズに等しいサイズに埋め込まれ、
前記ファイナルブロック（４２）は、前記ユニットのブロックからなる少なくとも１つの任意の先行するファーストシーケンスのうち少なくとも１つのブロックに従って生成される初期ベクトルによって初期化される、ブロック連鎖モードで前記暗号（Ｅｋ）を用いて暗号化されることを特徴とする請求項５に記載の方法。
【請求項８】
前記初期ベクトルは、前記ユニットのブロックからなる任意の先行するファーストシーケンスのうち任意のブロックとは無関係の少なくとも１つのベクトル（ＩＶ０）に少なくとも基づくベクトル（ＩＶＮ）上で、暗号演算（cryptographical operation）（Ｄｋ）、好ましくは前記暗号の逆数である復号を実行することによって生成されることを特徴とする請求項７に記載の方法。
【請求項９】
データストリームをスクランブルするためのシステムであって、
データのブロック（Ｐｉ）からなる一連のファーストシーケンス（２９、３０）として前記ストリームを受信するための入力と、
データのブロックからなる各セカンドシーケンス（３１、３７）を形成するためにブロック（Ｐｉ）からなる各前記ファーストシーケンス（２９、３０）におけるブロックの順番を反転するための少なくとも１つの論理ユニット及び複数のレジスタと、
ブロックからなる各セカンドシーケンス（３１、３７）に対する各初期ベクトル（ＩＶ３、ＩＶＮ）で初期化される、ブロック連鎖モードで暗号（Ｅｋ）を用いてブロックからなる各セカンドシーケンス（３１、３７）における前記ブロックを暗号化するための処理配置（processing arrangement）と
を具備し、
前記システムは、前記ユニット（２６）のブロックからなる先行するファーストシーケンス（２９）のうち少なくとも１つのブロックに従って前記ユニットにおけるブロックからなるファーストシーケンス（３０）から形成されるブロックからなるセカンドシーケンス（３７）を暗号化するための少なくとも１つの初期ベクトル（ＩＶＮ）を生成するために、前記ストリーム内でデータユニット（２６）に含まれるブロックからなる一連のファーストシーケンス（２９、３０）に対して配置されることを特徴とするシステム。
【請求項１０】
請求項１から８の何れか１項に従う方法を実行するよう設定されることを特徴とする請求項９に記載のシステム。
【請求項１１】
データストリームを形成するために、スクランブルされたデータストリームをデスクランブルする方法であって、
スクランブルされたデータのブロック（Ｃｉ）からなる一連のシーケンス（４４、４５）をスクランブルされたデータストリームから求める過程と、
反転連鎖モード（reverse chaining mode）で復号（Ｄｋ）を用いることによって、デスクランブルされたデータのブロック（Ｐｉ）からなる関連付けられたシーケンス（４６、４７）を形成するために、スクランブルされたデータのブロックからなる各シーケンス（４４、４５）をデスクランブルする過程と
を具備し、
スクランブルされたデータのブロックからなるシーケンス（４６、４７）をデスクランブルするために、デスクランブルされたデータのブロックからなる前記シーケンス（４６、４７）におけるファイナルブロック（Ｐ３、ＰＮ）は、スクランブルされたデータのブロックからなる前記関連付けられたシーケンス（４４、４５）のうちファイナルブロック（Ｃ３、ＣＮ）に前記復号（Ｄｋ）を適用することによって、及び前記復号（Ｄｋ）の結果と初期ベクトル（ＩＶ３、ＩＶＮ）とを少なくともオペランドとして有する演算子を適用することによって求められ、デスクランブルされたデータのブロックからなる前記シーケンス（４６、４７）における前記ファイナルブロック（Ｐ３、ＰＮ）に先行する各ブロックは、スクランブルされたデータのブロック（４４、４５）からなる前記シーケンスにおけるブロックに前記復号（Ｄｋ）を対応する位置で適用することによって、及び前記復号（Ｄｋ）の結果とスクランブルされたデータのブロックとを少なくともオペランドとして有する演算子をスクランブルされたデータのブロックからなる前記シーケンス（４４、４５）における次の位置で適用することによって求められ、
前記スクランブルされたデータストリーム内でデータのユニット（３６）に含まれるスクランブルされたデータのブロックからなる一連のシーケンス（４４、４５）に対して、スクランブルされたデータのブロックからなるシーケンス（４５）をデスクランブルするための少なくとも１つの初期ベクトル（ＩＶＮ）は、前記ユニット（３６）のスクランブルされたデータのブロックからなる先行シーケンス（４４）をデスクランブルすることによって求められるデスクランブルされたデータのブロックからなるシーケンス（４６）におけるデスクランブルされたデータの少なくとも１つのブロックに従って生成されることを特徴とする方法。
【請求項１２】
スクランブルされたデータのブロック（Ｃｉ）からなる各シーケンス（４４、４５）をデスクランブルするための各初期ベクトル（ＩＶ３、ＩＶＮ）は、同一シーケンス（４４、４５）におけるスクランブルされたデータのファイナルブロック（Ｃ３、ＣＮ）に先行するスクランブルされたデータのブロックからなる前記シーケンス（４４、４５）におけるブロックに前記復号（Ｄｋ）を適用することによって、及び前記復号の結果とスクランブルされたデータのブロックとを少なくともオペランドとして有する演算子をスクランブルされたデータのブロックからなる前記同一シーケンス（４４、４５）における次の位置で適用することによって求められるデスクランブルされたデータの少なくとも１つのブロックに従って生成されることを特徴とする請求項１１に記載の方法。
【請求項１３】
前記ユニット（３６）におけるスクランブルされたデータのブロックからなるシーケンス（４５）をデスクランブルするための各初期ベクトル（ＩＶＮ）は、前記ユニット（３６）におけるスクランブルされたデータのブロックからなる先行シーケンス（４４）をデスクランブルすることによって求められるデスクランブルされたデータのブロックからなる各任意のシーケンス（４６）から、デスクランブルされたデータの少なくとも１つのブロックに従って生成されることを特徴とする請求項１１又は１２に記載の方法。
【請求項１４】
ヘッダー（３５）及びペイロード（３６）を具備するデータパケット（３４）を受信する過程を具備し、前記ユニットは、前記ペイロードによって形成されることを特徴とする請求項１１から１３のうち何れか１項に記載の方法。
【請求項１５】
前記復号（Ｄｋ）は、所定サイズの基本ブロック上で演算するよう設定され、スクランブルされたデータのブロックからなる前記シーケンス（４４、４５）におけるブロック（Ｃｉ）は、前記基本ブロックサイズのサイズに対応することを特徴とする請求項１１から１４のうち何れか１項に記載の方法。
【請求項１６】
前記ユニット（３６）が、スクランブルされたデータのブロックからなる一連のシーケンスと、前記基本ブロックサイズの整数倍及び前記基本ブロックサイズの一部（ＣＮ）のサイズに等しい後続データ量とによって構成される場合、
前記データ量は、スクランブルされたデータのブロックからなるエンドシーケンスを形成するために前記基本ブロックサイズの倍数に等しいサイズの所定データで埋め込まれ、
デスクランブルされたデータのブロックからなるエンドシーケンスにおけるファイナルブロック（ＰＮ）は、スクランブルされたデータのエンドシーケンスのうちファイナルブロックに対して直前のブロックに復号を適用することによって、前記復号の結果とスクランブルされたデータのブロックからなる前記エンドシーケンスのうち前記ファイナルブロックとをオペランドとして有するＸＯＲ演算子を適用することによって、及び前記所定データのサイズに対応する前記ＸＯＲ演算子の結果である部分（Ｃ´）を除去することによって形成され、
デスクランブルされたデータのブロックからなる前記エンドシーケンスのうち２つのファイナルブロック（ＰＮ−１、ＰＮ）に先行する各任意のブロックは、スクランブルされたデータのブロックからなる前記ファーストエンドシーケンスにおける対応する位置でブロックに前記復号（Ｄｋ）を適用することによって、及び前記復号の結果とスクランブルされたデータのブロックとをオペランドとして有するＸＯＲ演算子をスクランブルされたデータのブロックからなる前記エンドシーケンスにおける次の位置で適用することによって形成され、
デスクランブルされたデータのブロックからなる前記エンドシーケンスにおいて前記ファイナルブロック（ＰＮ）に先行するブロック（ＰＮ−１）は、前記所定データのサイズに対応する前記除去された部分（Ｃ´）とスクランブルされたデータのブロックからなる前記エンドシーケンスのうち前記ファイナルブロックとを連結することによって形成されるブロック（５２）に前記復号を適用することによって、及び前記復号の結果と前記ユニット（３６）におけるスクランブルされたデータのブロックからなる先行シーケンスをデスクランブルすることによって求められるデスクランブルされたデータのブロックからなる少なくとも１つの任意のシーケンスのうち少なくとも１つのブロックに従って生成される初期ベクトル（ＩＶＮ）とをオペランドとして有するＸＯＲ演算子を適用することによって求められることを特徴とする請求項１５に記載の方法。
【請求項１７】
次のユニットが、ゼロ又は所定数のブロックからなるさらなるシーケンスによって、及び１つの基本ブロックのサイズ未満のサイズに等しい後続データ量（ＣＮ）によって構成される場合、
前記データ量は、ファイナルブロック（５３）を形成するために１つの基本ブロックのサイズに等しいサイズで埋め込まれ、
前記ファイナルブロック（５３）は、前記ユニットにおけるスクランブルされたデータのブロックからなる先行シーケンスをデスクランブルすることによって求められるデスクランブルされたデータのブロックからなる少なくとも１つの任意のシーケンスのうち少なくとも１つのブロックに従って生成される初期ベクトルによって初期化される、ブロック連鎖モードで前記復号（Ｄｋ）を用いて復号されることを特徴とする請求項１５に記載の方法。
【請求項１８】
前記初期ベクトルは、前記ユニットにおけるスクランブルされたデータのブロックからなる先行シーケンスをデスクランブルすることによって求めることができるデスクランブルされたデータの任意の先行するブロックのうち任意のブロックとは無関係な少なくとも１つのベクトルに少なくとも基づくベクトル上で、暗号演算（Ｄｋ）、好ましくは前記復号を実行することによって生成されることを特徴とする請求項１７に記載の方法。
【請求項１９】
データストリームを形成するために、スクランブルされたデータストリームをデスクランブルするためのシステムであって、
スクランブルされたデータのブロック（Ｃｉ）からなる一連のシーケンス（４４、４５）として、スクランブルされたデータストリームを受信するための入力と、
反転連鎖モードで復号（Ｄｋ）を用いることによって、デスクランブルされたデータのブロックからなる関連付けられたシーケンス（４６、４７）を形成するために、スクランブルされたデータのブロック（Ｃｉ）からなる各シーケンス（４４、４５）をデスクランブルするための処理配置と
を具備し、
スクランブルされたデータのブロックからなるシーケンス（４４、４５）をデスクランブルするために、前記シーケンス（４６、４７）におけるデスクランブルされたデータのファイナルブロック（Ｐ３、ＰＮ）は、スクランブルされたデータのブロックからなる関連付けられたシーケンス（４４、４５）のうちファイナルブロック（Ｃ３、ＣＮ）に前記復号（Ｄｋ）を適用することによって、及び前記復号（Ｄｋ）の結果と初期ベクトル（ＩＶ３、ＩＶＮ）とを少なくともオペランドとして有する演算子を適用することによって求められ、
前記シーケンス（４６、４７）におけるデスクランブルされたデータの各先行ブロックは、スクランブルされたデータのブロックからなるシーケンスにおけるブロックに前記復号を対応する位置で適用することによって、及び前記復号の結果とスクランブルされたデータのブロックからなる前記シーケンス（４４、４５）における次の位置でスクランブルされたデータのブロックとを少なくともオペランドとして有する演算子を適用することによって求められ、
前記システムは、前記ユニット（３６）のスクランブルされたデータのブロックからなる先行シーケンス（４４）をデスクランブルすることによって求められるデスクランブルされたデータのブロックからなるシーケンスにおけるデスクランブルされたデータの少なくとも１つのブロックに従ってスクランブルされたデータのブロックからなるシーケンス（４５）をデスクランブルするための少なくとも１つの初期ベクトル（ＩＶＮ）を生成するために、スクランブルされたデータストリーム内でデータのユニット（３６）に含まれるスクランブルされたデータのブロックからなる一連のシーケンス（４４、４５）に対して構成されることを特徴とするシステム。
【請求項２０】
請求項１１から１８のうち何れか１項に従う方法を実行するよう設定されることを特徴とする請求項１９に記載のシステム。
【請求項２１】
データを送受信するための装置であって、請求項１から９のうち何れか１項に記載の方法と請求項１１から１８のうち何れか１項に記載の方法とを適用するよう配置される装置（１４）を具備することを特徴とする装置。
【請求項２２】
機械読取可能媒体に組込まれる時、請求項１から９のうち何れか１項又は請求項１１から１８のうち何れか１項に記載の方法を、情報処理機能を有するシステムが実行できるようにする一組の命令を具備することを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データストリームをスクランブルする方法に関し、データのブロックからなる一連のファーストシーケンスを前記ストリームから求める過程と、データのブロックからなる各セカンドシーケンスを形成するために、ブロックからなる各前記ファーストシーケンスにおける前記ブロックの順番を反転させる過程と、ブロックからなる各セカンドシーケンスに対する各初期ベクトルで初期化される、ブロック連鎖モードで暗号Ｅｋを用いてブロックからなる各セカンドシーケンスにおける前記ブロックを暗号化する過程とを具備する。
【０００２】
また、本発明は、データストリームをスクランブルするためのシステムに関し、データのブロックからなる一連のファーストシーケンスとして前記ストリームを受信するための入力と、データのブロックからなる各セカンドシーケンスを形成するためにブロックからなる前記ファーストシーケンスにおけるブロックの順番を反転するための少なくとも１つの論理ユニット及び複数のレジスタと、ブロックからなる各セカンドシーケンスに対する各初期ベクトルで初期化される、ブロック連鎖モードで暗号を用いてブロックからなる各セカンドシーケンスにおける前記ブロックを暗号化するための処理配置（processing arrangement）とを具備する。
【０００３】
また、本発明は、データストリームを形成するために、スクランブルされたデータストリームをデスクランブルする方法に関し、スクランブルされたデータのブロックからなる一連のシーケンスをスクランブルされたデータストリームから求める過程と、反転連鎖モード（reverse chaining mode）で復号を用いることによって、デスクランブルされたデータのブロックからなる関連付けられたシーケンスを形成するために、スクランブルされたデータのブロックからなる各シーケンスをデスクランブルする過程とを具備し、スクランブルされたデータのブロックからなるシーケンスをデスクランブルするために、デスクランブルされたデータのブロックからなる前記シーケンスにおけるファイナルブロックは、スクランブルされたデータのブロックからなる前記関連付けられたシーケンスのうちファイナルブロックに前記復号を適用することによって、及び前記復号の結果と初期ベクトルとを少なくともオペランドとして有する演算子を適用することによって求められ、デスクランブルされたデータのブロックからなる前記シーケンスにおける前記ファイナルブロックに先行する各ブロックは、スクランブルされたデータのブロックからなる前記シーケンスにおけるブロックに前記復号を対応する位置で適用することによって、及び前記復号の結果とスクランブルされたデータのブロックとを少なくともオペランドとして有する演算子をスクランブルされたデータのブロックからなる前記シーケンスにおける次の位置で適用することによって求められる。
【０００４】
また、本発明は、データストリームを形成するために、スクランブルされたデータストリームをデスクランブルするためのシステムに関し、スクランブルされたデータのブロックからなる一連のシーケンスとして、スクランブルされたデータストリームを受信するための入力と、反転連鎖モードで復号を用いることによって、デスクランブルされたデータのブロックからなる関連付けられたシーケンスを形成するために、スクランブルされたデータのブロックからなる各シーケンスをデスクランブルするための処理配置とを具備し、スクランブルされたデータのブロックからなるシーケンスをデスクランブルするために、前記シーケンスにおけるデスクランブルされたデータのファイナルブロックは、スクランブルされたデータのブロックからなる関連付けられたシーケンスのうちファイナルブロックに前記復号を適用することによって、及び前記復号の結果と初期ベクトルとを少なくともオペランドとして有する演算子を適用することによって求められ、前記シーケンスにおけるデスクランブルされたデータの各先行ブロックは、スクランブルされたデータのブロックからなるシーケンスにおけるブロックに前記復号を対応する位置で適用することによって、及び前記復号の結果とデスクランブルされたデータのブロックとを少なくともオペランドとして有する演算子をスクランブルされたデータのブロックからなる前記シーケンスにおける次の位置で適用することによって求められる。
【０００５】
また、本発明は、データを送受信するための装置に関する。
【０００６】
また、本発明は、コンピュータプログラムに関する。
【背景技術】
【０００７】
そのような方法及びシステムの各例は、ＷＯ９５／１０９０６から公知である。公知の方法において、デジタルデータは、Ｘ（１）、Ｘ（２）、．．．Ｘ（Ｎ）のＮブロックからなるパケットに分割され、各ブロックは、２ｍビットである。ブロックからなるシーケンスは、Ｘ（Ｎ）、Ｘ（Ｎ−１）、．．．、Ｘ（１）に対する暗号演算の前に反転される。このブロックからなるシーケンスは、以下の方法で暗号アルゴリズムＥによって暗号化される（ここで＾は、排他的ＯＲ（ＸＯＲ）演算子を意味するために用いられる）。
Ｙ（１）＝Ｅ［Ｘ（Ｎ）＾ＩＶ］
Ｙ（ｉ）＝Ｅ［Ｘ（Ｎ−ｉ＋１）＾Ｙ（ｉ―１）］  ここでｉ≧１及びｉ＜Ｎ
【０００８】
これら暗号化されたブロックからなるシーケンスは、シーケンスＹ（Ｎ）、Ｙ（Ｎ−１）、．．．Ｙ（１）が受信器へ転送されるように、再び反転される。
【０００９】
受信器側において、オリジナルデータブロックは、以下の復号アルゴリズムＤを用いて求められる。
Ｘ（ｉ）＝Ｄ［Ｙ（Ｎ−ｉ＋１）＾Ｙ（Ｎ−ｉ）］ここでｉ＝１、２、．．．、Ｎ−１
Ｘ（Ｎ）＝Ｄ［Ｙ（１）］＾ＩＶ
【００１０】
公知システムで使用される方法は、反転暗号ブロック連鎖（reverse cipher block chaining）、即ちＲＣＢＣ方法として示される。それは、受信器でのバッファ記憶が単に２つのデータブロックを記憶するのに必要とされる利点を示す。
【００１１】
公知の方法及びシステムの問題は、ブロックからなるシーケンスの反転を実行するために、Ｎブロックを記憶するための容量を送信器側におけるバッファが備えなければならないことである。これは、データ通信のためのシステムにおいて暗号化されたデータの多数の送信器側が存在するか、又は装置がデータの送受信器両方として機能しなければならない問題となる。
【発明の開示】
【発明が解決しようとする課題】
【００１２】
本発明の目的は、より効率的に実行される一方でコンテンツ保護の許容レベルを提供するオープニングパラグラフで示されるタイプの方法、システム、装置、及びコンピュータプログラムを提供することである。
【００１３】
この目的は、本発明によるデータストリームをスクランブルする方法によって解決でき、ストリーム内でデータユニットに含まれるブロックからなる一連のファーストシーケンスに対して、ユニットにおけるブロックからなるファーストシーケンスから形成されるブロックからなるセカンドシーケンスを暗号化するための少なくとも１つの初期ベクトルは、ユニットのブロックからなる先行するファーストシーケンスのうち少なくとも１つのブロックに従って生成されることを特徴とする。
【００１４】
データユニットは、ブロックからなる一連のファーストシーケンスを含むため、ブロックからなる各ファーストシーケンスは、より少ないブロックで形成され、それは、ブロックの順序を反転するのに必要なバッファ記憶が低くてすむことを意味する。これは、ブロックからなる少なくとも２つのセカンドシーケンスが実質的に連鎖されるので、セキュリティの許容レベルを備えることを可能にする。この連鎖は、ブロックからなるファーストシーケンスから形成されるブロックからなるセカンドシーケンスを暗号化するための少なくとも１つの初期ベクトル（最大のセキュリティが必要とされる場合のファーストベクトルを除く各ベクトル）が、ユニットのブロックからなる先行するファーストシーケンスのうち少なくとも１つのブロックに従って生成されるという事実に起因する。
【００１５】
１実施形態において、ブロックからなるファーストシーケンスから形成されるブロックからなる各セカンドシーケンスにおけるブロックを暗号化するための各初期ベクトルは、同一のファーストシーケンスのうちラストブロックに先行するデータの少なくとも１つのブロックに従って生成される。
【００１６】
これは、初期ベクトルにおけるより広範な変更が達成される効果を有する。ユニットに含まれる連続したブロックからなるファーストシーケンスのファーストブロックでも、独自性の確率が高い初期ベクトルを用いてスクランブルされる。変更は、同一のファーストシーケンスのうちラストブロックに先行するデータの少なくとも１つのブロックに従って初期ベクトルを生成することによって確保される。各ファーストシーケンスにおけるブロックの順番の反転によって、初期ベクトルの生成に基づかれたデータの１つ以上のブロックは、初期ベクトルがデスクランブラーによって必要とされる前のデスクランブル中に利用可能になる。故に、ユニットに含まれるファーストシーケンスの連続した各ファーストシーケンスに対する初期ベクトルの独自性は、各ファーストシーケンスに対する新たな初期ベクトル受信器に提供する必要がなく、比較的高い可能性で達成できる。
【００１７】
１実施形態において、ユニットにおけるブロックからなるファーストシーケンスから形成されるブロックからなるセカンドシーケンスを暗号化するための各初期ベクトルは、ユニットのブロックからなる各任意の先行するファーストシーケンスのうち少なくとも１つのブロックに従って生成される。
【００１８】
故に、セカンドシーケンス間の連鎖は、データのブロックからなるラストファーストシーケンスが、ユニットに含まれるファーストシーケンスの連続したブロックからなる全ての任意の先行するファーストシーケンスを予め求めておくことなくクリアな状態で求めることができない点で最大にされる。
【００１９】
１実施形態は、ヘッダー及びペイロードを具備するデータパケットを受信する過程を含み、ユニットは、ペイロードによって形成される。
【００２０】
この実施形態は、ペイロードが、最初に全体としてそれをバッファする必要なくスクランブルされうるため、有利である。
【００２１】
１実施形態において、暗号は、所定サイズの基本ブロック上で演算するよう設定されるブロック暗号であり、データの少なくともセカンドシーケンスにおけるブロックは、基本ブロックサイズのサイズに対応する。
【００２２】
１実施形態において、ユニットが、ブロックからなる一連のファーストシーケンスと基本ブロックのサイズの整数倍未満のサイズに等しい後続データ量とによって構成される場合、データ量は、少なくとも２つのブロックからなるファーストエンドシーケンスを形成するために基本ブロックのサイズの整数倍に等しいサイズに埋め込まれ、ブロックからなるファーストエンドシーケンスのうち２つのラストブロックは、交換され、ブロックからなるファーストエンドシーケンスにおけるブロックの順番は、データのブロックからなるセカンドエンドシーケンスを形成するよう反転され、ブロックからなるセカンドエンドシーケンスにおけるブロックは、ユニットのブロックからなる先行するファーストシーケンスのうち少なくとも１つのブロックに従って生成される初期ベクトルによって初期化される、ブロック連鎖モードで暗号を用いて暗号化される。
【００２３】
故に、方法は、暗号文窃盗の形式を実行するために適合される。これは、全体のユニットがスクランブルされることを確実にする比較的安全な方法である。さらに、それは、所定数のブロックから形成されるファーストシーケンスの使用が、ユニットのファーストシーケンスをスクランブルすることを可能にする。
【００２４】
１実施形態において、ストリームにおける次のユニットが、ゼロ又は所定数のブロックからなるさらなるファーストシーケンスによって、及び１つの基本ブロックのサイズ未満のサイズに等しいデータ量によって構成される場合、データ量は、ファイナルブロックを形成するために１つの基本ブロックのサイズに等しいサイズに埋め込まれ、ファイナルブロックは、ユニットのブロックからなる先行するファーストシーケンスのうち少なくとも１つのブロックに従って生成される初期ベクトルによって初期化される、ブロック連鎖モードで暗号を用いて暗号化される。
【００２５】
故に、後続データ量は、暗号が設定される基本ブロックサイズより少なくても、クリアな状態で送信される必要がない。
【００２６】
この実施形態の変形では、初期ベクトルは、ユニットのブロックからなる任意の先行するファーストシーケンスにおける任意のブロックとは無関係な少なくとも１つのベクトルに基づくベクトル上で、暗号演算、即ち暗号の逆数である復号を実行することによって生成される。
【００２７】
効果は、先行ユニットにおけるデータのブロックをスクランブルするための初期ベクトルを生成するのに使用されたベクトルと同一のベクトルを用いて、初期ベクトルにおける変更が達成されうることである。故に、デスクランブラーに送信される必要があるベクトルがより少なくなる一方で、安全性が比較的良好に保たれる。暗号の逆数である復号を使用することは、復号するために既に存在するデスクランブラーのハードウェア及び／又はソフトウェア設定からなる使用であるという効果を有する。
【００２８】
もう１つの実施形態によると、本発明によるデータストリームをスクランブルするためのシステムは、ユニットのブロックからなる先行するファーストシーケンスのうち少なくとも１つのブロックに従ってユニットにおけるブロックからなるファーストシーケンスから形成されるブロックからなるセカンドシーケンスを暗号化するための少なくとも１つの初期ベクトルを生成するために、ストリーム内でデータのユニットに含まれるブロックからなる一連のファーストシーケンスに対して配置される点を特徴とする。
【００２９】
その効果に起因して、システムは、専用の暗号プロセッサに含まれるのにとても適する。
【００３０】
システムは、本発明による方法を実行するよう設定されるのが好ましい。
【００３１】
もう１つの実施形態によると、本発明によるスクランブルされたデータストリームをデスクランブルする方法は、スクランブルされたデータストリーム内でデータのユニットに含まれるスクランブルされたデータのブロックからなる一連のシーケンスに対して、スクランブルされたデータのブロックからなるシーケンスをデスクランブルするための少なくとも１つの初期ベクトルが、ユニットのスクランブルされたデータのブロックからなる先行シーケンスをデスクランブルすることによって求められるデスクランブルされたデータのブロックからなるシーケンスのうちデスクランブルされたデータの少なくとも１つのブロックに従って生成されることを特徴とする。
【００３２】
方法は、本発明によるデータストリームをスクランブルする方法を適用することによって求めることができるスクランブルされたデータストリームをデスクランブルするのに適している。連続したデータのブロックからなるシーケンスが別々にかつ順番にデスクランブルされるので、シーケンス内のブロックが順番に従わず（例えば、逆順で）受信されてもさほど問題にならない。なぜなら、そのシーケンスが全体の一連のシーケンスより短いためである。スクランブルされたデータのブロックからなるシーケンスをデスクランブルするための少なくとも１つの初期ベクトルが、ユニットのスクランブルされたデータのブロックからなる先行シーケンスをデスクランブルすることによって求められるデスクランブルされたデータのブロックからなるシーケンスにおけるデスクランブルされたデータの少なくとも１つのブロックに従って生成されるため、スクランブルされたデータのブロックからなる少なくとも２つのシーケンスが連鎖され、不法なデスクランブルを困難にする。
【００３３】
１実施形態において、スクランブルされたデータのブロックからなる各シーケンスをデスクランブルするための各初期ベクトルは、同一シーケンスにおけるスクランブルされたデータのブロックからなるシーケンスのファイナルブロックに先行するスクランブルされたデータのブロックからなるシーケンスにおけるブロックに復号を適用することによって、及び復号の結果とスクランブルされたデータのブロックとを少なくともオペランドとして有する演算子をスクランブルされたデータのブロックからなる同一シーケンスにおける次の位置で適用することによって求められるデータの少なくとも１つのブロックに従って生成される。
【００３４】
これは、多数のユニットのストリームが、初期ベクトルにおける十分な変更を達成するために、スクランブラーからデスクランブラーへの多数の初期ベクトルの送信を必要としない点で有利である。
【００３５】
１実施形態において、ユニットにおけるスクランブルされたデータのブロックからなるシーケンスをデスクランブルするための各初期ベクトルは、ユニットにおけるスクランブルされたデータのブロックからなる先行シーケンスをデスクランブルすることによって求められるデスクランブルされたデータのブロックからなる各任意のシーケンスから、デスクランブルされたデータの少なくとも１つのブロックに従って生成される。
【００３６】
故に、実際には、ユニットに含まれる連続した全てのシーケンスが連鎖される。
【００３７】
１実施形態は、ヘッダー及びペイロードを具備するデータパケットを受信する過程を具備し、ユニットは、ペイロードによって形成される。
【００３８】
１実施形態において、復号は、所定サイズの基本ブロック上で演算するよう設定されるブロック暗号であり、スクランブルされたデータのブロックからなるシーケンスにおけるブロックは、基本ブロックサイズのサイズに対応する。
【００３９】
１実施形態において、スクランブルされたデータのブロックからなる一連のシーケンスと、基本ブロックサイズの整数倍及び基本ブロックサイズの一部のサイズに等しい後続データ量とによってユニットが構成される場合、データ量は、スクランブルされたデータのブロックからなるエンドシーケンスを形成するために基本ブロックサイズの整数倍に等しいサイズの所定データで埋め込まれ、デスクランブルされたデータのブロックからなるエンドシーケンスのファイナルブロックは、スクランブルされたデータのエンドシーケンスのうちファイナルブロックに対して直前のブロックに復号を適用することによって、復号の結果とスクランブルされたデータのブロックからなるエンドシーケンスのファイナルブロックとをオペランドとして有するＸＯＲ演算子を適用することによって、及び所定データのサイズに対応するＸＯＲ演算子の結果である部分を除去することによって形成され、デスクランブルされたデータのブロックからなるエンドシーケンスのうち２つのファイナルブロックに先行する各任意のブロックは、スクランブルされたデータのブロックからなるファーストエンドシーケンスにおける対応する位置でブロックに復号を適用することによって、及び復号の結果とデスクランブルされたデータのブロックとをオペランドとして有するＸＯＲ演算子をスクランブルされたデータのブロックからなるエンドシーケンスにおける次の位置で適用することによって形成され、デスクランブルされたデータのブロックからなるエンドシーケンスにおいてファイナルブロックに先行するブロックは、所定データのサイズに対応する除去された部分とスクランブルされたデータのブロックからなるエンドシーケンスのうちファイナルブロックとを連結することによって形成されるブロックに復号を適用することによって、及び復号の結果とユニットにおけるスクランブルされたデータのブロックからなる先行シーケンスをデスクランブルすることによって求められるデスクランブルされたデータのうち少なくとも１つのブロックに従って生成される初期ベクトルとをオペランドとして有するＸＯＲ演算子を適用することによって求められる。
【００４０】
これは、デスクランブラー側での暗号文窃盗の実行である。
【００４１】
１実施形態において、次のユニットが、ゼロ又は所定数のブロックからなるさらなるシーケンスによって、及び１つの基本ブロックのサイズ未満のサイズに等しい後続データ量によって構成される場合、データ量は、ファイナルブロックを形成するために１つの基本ブロックのサイズに等しいサイズで埋め込まれ、ファイナルブロックは、ユニットにおけるスクランブルされたデータのブロックからなる先行シーケンスをデスクランブルすることによって求められるデスクランブルされたデータのブロックからなる少なくとも１つの任意のシーケンスのうち少なくとも１つのブロックに従って生成される初期ベクトルによって初期化される、ブロック連鎖モードで復号を用いて復号される。
【００４２】
所定数のブロックからなるシーケンスを使用することは、シーケンス毎のブロック数がデスクランブラーへ送られる必要がないという効果を有する。ユニットの境界も所定である場合、例えばユニットがパケットのペイロードによって形成される場合、暗号の基本ブロックサイズのサイズよりも小さい任意の残余データ量が暗号化された形式でデスクランブラーへ送信されうる。それは、スクランブルされないユニットに比べて、スクランブルされたユニットのサイズを増加させる必要がない。
【００４３】
変形として、初期ベクトルは、ユニットにおけるスクランブルされたデータのブロックからなる先行シーケンスをデスクランブルすることによって求めることができるデスクランブルされたデータの任意の先行ブロックのうち任意のブロックとは無関係な少なくとも１つのベクトルに基づくベクトル上で、暗号演算、好ましくは復号を実行することによって生成される。
【００４４】
これは、初期ベクトルを導くための多数のベクトルを受信及び記憶する必要がないことを意味する。初期ベクトルが導かれるベクトルは、ストリームにおける多数のデータユニット上で一定を維持することができる。暗号演算は、排他的ＯＲ演算子等の論理演算子に対するオペランドとしてそれが決して直接に用いられないことを確実にする。
【００４５】
もう１つの実施形態によると、本発明によるデータストリームを形成するために、スクランブルされたデータストリームをデスクランブルするためのシステムは、システムが、ユニットのスクランブルされたデータのブロックからなる先行シーケンスをデスクランブルすることによって求められるデスクランブルされたデータのブロックからなるシーケンスにおけるデスクランブルされたデータの少なくとも１つのブロックに従ってスクランブルされたデータのブロックからなるシーケンスをデスクランブルするための少なくとも１つの初期ベクトルを生成するために、スクランブルされたデータストリーム内でデータのユニットに含まれるスクランブルされたデータのブロックからなる一連のシーケンスに対して構成されることを特徴とする。
【００４６】
システムは、本発明によるデスクランブルする方法を実行するよう設定されるのが好ましい。
【００４７】
本発明のもう１つの実施形態によると、本発明によるデータストリームをスクランブルする方法を適用するよう配置されるデバイスを含むデータを送受信するための装置と、本発明によるスクランブルされたデータストリームをデスクランブルする方法とが提供される。
【００４８】
スクランブル及びデスクランブルするコンプリメンタリ的方法が同じバッファ要件で実行できるので、この装置は、２つの演算のうち１つで使用されないブロックを記憶するためのレジスタを有する必要がない。故に、データの送受信器の両方として、例えば２つのネットワーク間のゲートウェイとして機能するよう配置される装置に特に適した、ハードウェアでの経済的な実装が可能になる。
【００４９】
本発明のもう１つの実施形態によると、機械読取可能媒体に組込まれる時、本発明によるデータストリームをスクランブルする方法と本発明によるスクランブルされたデータストリームをデスクランブルする方法とを、情報処理機能を有するシステムが実行できるようにする一組の命令を含むコンピュータプログラムが提供される。
【発明を実施するための最良の形態】
【００５０】
図１は、ブロードキャストデータへのスクランブル方法の適用を図示する。少なくとも一部の図示されたシステムはそれ自体、2002 European Telecommunication Standards InstituteのETSI Technical Report TR 102 035 V.1.1.1の“Digital Video Broadcasting（ＤＶＢ）; Implementation Guidelines of the DVB Simulcrypt Standard”から公知である。
【００５１】
コンテンツプロバイダー１は、プレーンテキスト、即ちスクランブルされていないコンテンツデータを運ぶパケットストリームを多重化ユニット２に提供する。エンタイトルメントコントロールメッセージ（ＥＣＭ）生成器３は、ＥＣＭを運ぶパケットストリームを多重化ユニット２に提供する。エンタイトルメントマネージメントメッセージ（ＥＭＭ）生成器４は、ＥＭＭを運ぶパケットストリームを多重化ユニット２に提供する。ストリームは、ＭＰＥＧ−２トランスポートストリーム（ＴＳ）パケットシングルストリームに多重化され、スクランブラー５に提供される。ＭＰＥＧ−２ＴＳパケットの構文は、国際標準ＩＳＯ／ＩＥＣ１３８１８−１でより全体に記載される。スクランブラー５は、以下に詳細に説明されるＭＰＥＧ−２ＴＳパケットのペイロードをスクランブルする方法を実行する。スクランブラー５は、コントロール語（ＣＷ）をＣＷ生成器６から受信し、ＣＷは、ブロック暗号に対するキーとして使用される。
【００５２】
ＣＷ生成器６は、ＥＣＭ生成器３にＣＷを提供し、加入者権限システム（ＳＡＳ）７から取得されるセッションキーに基づきＣＷを暗号化する。ＳＡＳは、個々の加入者に対する権限とともにセッションキーをＥＭＭ生成器４に提供する。ＥＭＭ生成器は、個々の加入者に提供されるセキュアトークンにアドレス指定されるＥＭＭ内にこれらのキー及び権限情報を含める。そのようなセキュアトークンは、セキュアトークンに含まれるルーチンの分析を防ぐためのコード難読化等の特徴を使用して実行されるソフトウェアエージェントを含むことができる。セキュアトークンの他の例は、セキュアトークンに記憶されるデータへのアクセス及び／又はセキュアトークンへ配線接続されるルーチンの分析を防ぐために保護機能が提供されるプロセッサを含むデバイスを含む。
【００５３】
スクランブルされたデータストリームは、スクランブラー５から変調器８へ、そしてそこから送信器９へ伝えられる。送信器９は、ブロードキャストネットワーク１０、例えば衛星、ケーブル若しくは地上ネットワーク、又は多数のそのようなネットワークを含むネットワーク上で、スクランブルされたデータストリームを放送する。他の実施形態において、スクランブルされたＭＰＥＧ−２ＴＳパケットストリームは、インターネットプロトコルに基づくようなデータネットワーク上でのさらなるデータパケット、及びブロードキャスト、マルチキャスト若しくはユニキャストにおいてカプセル化される。
【００５４】
説明のために、１つの一次統合受信デコーダ（ＩＲＤ）１１が図１に示される。一次ＩＲＤ１１は、ブロードキャストネットワーク１０上で送信されるデータを受信するためのネットワークアダプタ１２を含む。復調器１３は、スクランブラー／デスクランブラー１４が利用可能なスクランブルされたデータストリームを作成する。後者のユニットは、データストリームをデスクランブルする方法及びデータストリームをスクランブルする方法の両方を実行するように設定される。プロセッサ１５は、一次ＩＲＤ１１の動作を制御する。プロセッサ１５は、スクランブラー／デスクランブラー１４によって生成されるスクランブルされたデータストリームを、一次ＩＲＤ１１をローカルネットワーク１７に接続する第２ネットワークアダプタ１６に誘導することができる。ローカルネットワーク１７は、例えばＩＥＥＥ１３９４規格に基づくホームネットワークでもよい。二次受信器１８は、対応ネットワークアダプタ１９及びデスクランブラーチップ２０を備える。さらなるコンポーネントは、詳細に示されない。デスクランブラーチップ２０は、スクランブラー／デスクランブラー１４と同様に動作する。このため、デスクランブラーチップ２０は、さらなる詳細が説明されない。
【００５５】
スクランブラー／デスクランブラー１４に戻ると、このコンポーネントは、条件付きアクセスサブシステム（ＣＡＳＳ）２１によって提供されるＣＷを使用して、スクランブルされたＭＰＥＧ−２ＴＳパケットをデスクランブルする。ＣＡＳＳ２１は、例えばスマートカードのようなセキュアプロセシングデバイス２２に接続し、セキュアプロセシングデバイス２２は、ＥＣＭを復号化するためのキーを第１復号器２３に提供する。第１復号器２３は、スクランブラー／デスクランブラー１４へ伝えられるＣＷを取得する。ＥＭＭは、セキュアプロセシングデバイスがサービスキーを取得するのに必要な情報をセキュアプロセシングデバイス２２に提供するために、第２復号器２４によって復号化される。プロセッサは、ＥＣＭを運ぶＭＰＥＧ−２ＴＳパケット及びＥＭＭを運ぶＭＰＥＧ−２ＴＳパケットを取り出してＣＡＳＳ２１に提供するように逆多重化ユニット２５を指示する。
【００５６】
図２は、スクランブラー５及び／又はスクランブラー／デスクランブラー１４によって実行されるようなデータストリームをスクランブルする方法の１実施形態を図示する。図示された実施形態において、方法は、ＭＰＥＧ−２ＴＳパケット２７のペイロード２６によって形成されるデータユニット上で実行され、ＭＰＥＧ−２ＴＳパケット２７はさらに、ヘッダー２８を含む。ヘッダー２８は、スクランブルされないが、クリアな状態にされる。方法は、必ずしもトランスポート層ネットワークプロトコルによって定義されることなく、他のパケットタイプ上で実行されてもよいことが観察される。例えば、方法は、ＭＰＥＧ−２ＴＳパケット２７内で運ばれるプログラムエレメンタリーストリーム（ＰＥＳ）パケット上でも実行されてもよい。
【００５７】
ＭＰＥＧ−２ＴＳパケット２７は、１８８バイトの固定長であるが、ペイロード２６はそうではない。これは、ヘッダー２８の可変長によるものである。図２に図示された例において、ペイロード２６は、固定サイズの基本ブロックＰｉの整数に、及びいわゆるスーパーブロックの整数に均等に、分割できるようなサイズである。各スーパーブロックは、基本ブロックＰｉのファーストシーケンスによって形成される。ファーストファーストシーケンス２９及びラストファーストシーケンス３０は、明示的に図示される。一連のスーパーブロックは、ペイロード２６を構成する。例では、各スーパーブロックは、３つの基本ブロックＰｉからなるファーストシーケンス２９、３０によって形成される。もう１つの実施形態において、２つの基本ブロックＰｉがスーパーブロックごとに存在する。３つ以上、例えば４つ、５つ、又は１０つからなる基本ブロックがスーパーブロックごとに存在してもよい。数が多くなるにつれて、スクランブラー５及び／又はスクランブラー／デスクランブラー１４においてより多くのレジスタを必要とする。
【００５８】
ペイロード２６が、基本ブロックＰｉの整数によって形成されるスーパーブロックの整数に等しいサイズではない場合にとられるステップは、以下でさらに扱われる。
【００５９】
方法のもう１つの変形（図示せず）において、ペイロード２６は、可変サイズのスーパーブロックに分割され、即ち基本ブロックＰｉの変動する数を含む。
【００６０】
基本ブロックサイズは、ブロック暗号Ｅｋによって決定されるのが好ましく、ブロック暗号Ｅｋは、不変の変換によって基本ブロックを固定長のビットグループ上で演算させる対称キー暗号である。図示された実施形態において、ブロック暗号Ｅｋは、ＣＷに基づき個々の基本ブロックＰｉを暗号化するのに使用される。適切な暗号の例として、ＤＥＳ、トリプルＤＥＳ、及びＡＥＳ／Ｒｉｊｎｄａｅｌが挙げられる。故に、基本ブロックサイズは、一般に１２８ビットである。
【００６１】
方法の第１ステップにおいて、ファーストファーストシーケンス２９のうち基本ブロックＰ１−Ｐ３の順番は、ファーストセカンドシーケンス３１を形成するように反転される。
【００６２】
第２ステップにおいて、ブロック暗号Ｅｋは、ファーストセカンドシーケンス３１のうち３つの基本ブロックＰ１−Ｐ３を暗号化するために暗号ブロック連鎖モードで使用され、それは、ファーストセカンドシーケンスに関連付けられる初期ベクトルＩＶ３で初期化される。基本ブロックからなるファーストセカンドシーケンス３１に関連付けられる初期ベクトルＩＶ３を参照するのに使用されるインデックスは、本明細書中から明らかなように、シーケンスにおけるラスト基本ブロックＰ３のインデックスである。基本ブロックからなる関連するファーストセカンドシーケンス３１を暗号化するのに使用される初期ベクトルＩＶ３は、長期固定初期ベクトル（long-term fixed initialization vector）ＩＶ０と、基本ブロックＰ１−Ｐ３からなるファーストファーストシーケンス２９においてラスト基本ブロックＰ３に先行する基本ブロックＰ１、Ｐ２の両方の排他的ＯＲとをオペランドとして有する排他的ＯＲ演算子の適用によって形成される。
【００６３】
ペイロード２６をスクランブルする方法は、長期固定初期ベクトルＩＶ０が初期ベクトルとして決して直接使用されないように設定される。ＩＶ０は、ブロックからなるセカンド（即ち、反転された）シーケンスのうちファースト基本ブロックＰｉ上でのブロック暗号Ｅｋの演算に対して直前のＸＯＲ演算において決して使用されない。このため、ＩＶ０は、暗号解読を実質的に容易にすることなく、多重ＭＰＥＧ−２ＴＳパケット２７上で使用できる。長期固定初期ベクトルＩＶ０は、秘密状態が保持される必要はない。それは、本明細書中で概説されたデータユニットをスクランブル及びデスクランブルする方法がピアツーピアの通信で使用される時に分かる。図１に図示される状況において、単一のプロバイダが送信側及び受信側を制御する場合、長期固定初期ベクトルＩＶ０は、秘密状態が保持されうる。それは例えば、ＥＣＭ又はＥＭＭにおいて提供されうる。代替の実施形態において、スクランブルすべきデータのブロックとは無関係な初期ベクトルを導くためのベクトルは、ヘッダー２８に含まれるデータ上で所定のアルゴリズムを適用することによって求められる。
【００６４】
ブロックからなる関連するファーストセカンドシーケンス３１のうちブロックＰ１−Ｐ３を暗号化するのに使用される初期ベクトルＩＶ３が、それが求められたファーストファーストシーケンス２９におけるラストブロックＰ３に先行するデータの少なくとも一つのブロックに従って生成されるので、初期ベクトルにおけるさらなる変更が達成される。
【００６５】
ファーストセカンドシーケンス３１の暗号化の結果は、スクランブルされたブロックＣ３−Ｃ１からなるファーストファーストシーケンス３２である。図示された実施形態において、スクランブルされたブロックＣ３−Ｃ１の順番は、スクランブルされたブロックＣ１−Ｃ３からなるファーストセカンドシーケンス３３を形成するように反転される。スクランブルされたブロックＣ１−Ｃ３からなるファーストセカンドシーケンス３３は、スクランブルされたＭＰＥＧ−２ＴＳパケット３４に挿入され、そのパケットは、暗号化されていないヘッダー３５とスクランブルされたペイロード３６とを含む。
【００６６】
故に、基本ブロックＰｉ、ｉ＝１...Ｍからなるファーストファーストシーケンス２９に対して、暗号化された基本ブロックＣｉは、以下のように求められる。
ＣＭ＝Ｅｋ［ＰＭ＾ＩＶＭ］
Ｃｉ＝Ｅｋ［Ｐｉ＾Ｃｉ＋１］、ｉ＝Ｍ−１...１.
【００６７】
一般に、暗号化された基本ブロックは、以下のように見出される。
Ｃｊ＊Ｍ＝Ｅｋ［Ｐｊ＊Ｍ＾ＩＶｊ＊Ｍ］、
Ｃ（ｊ−１）＊Ｍ＋ｉ＝Ｅｋ［Ｐ（ｊ−１）＊Ｍ＋ｉ＾Ｃ（ｊ−１）＊Ｍ＋ｉ＋１］、ｉ＝Ｍ−１...１、ｊ＝１...Ｎ＼Ｍ.
シンボル“＼”は、割合の商又は整数部分に言及する。
【００６８】
図示された実施形態において、ｊ番目セカンドシーケンスでブロックを暗号化するための初期ベクトルＩＶｊ＊Ｍは、以下のように求められる。
ＩＶｊ・Ｍ＝ＩＶ０＾Ｐ１＾...Ｐｉ＾Ｐｊ・Ｍ−１
【００６９】
故に、ブロックの順番を反転することによってブロックからなるファーストシーケンスから形成されるブロックからなる各セカンドシーケンスでブロックを暗号化するための各初期ベクトルは、その同一のファーストシーケンスのうちラストブロックに先行するデータの少なくとも１つのブロックに従って生成される。この実施形態では、初期ベクトルは、その同一のファーストシーケンスでラストブロックに先行するデータの全てのブロックに従って生成される。
【００７０】
それだけでなく、パケットペイロード２６でブロックからなるファーストシーケンスから形成されるブロックからなるセカンドシーケンスを暗号化するための各初期ベクトルは、少なくとも一つのブロック、この場合全てのブロック、基本ブロックからなる任意の先行する各ファーストシーケンスシーケンス、即ち“スーパーブロック”に従って生成される。
【００７１】
基本ブロックからなるラストファーストシーケンス３０で基本ブロックの順番を反転することによって求められる、ラストセカンドシーケンス３７でブロックＰＮ−２−ＰＮを暗号化するために、暗号Ｅｋは、暗号ブロック連鎖モードで再び演算される。基本ブロックからなるラストセカンドシーケンス３７に関連付けられる初期ベクトルＩＶＮは、長期固定初期ベクトルＩＶ０とラスト基本ブロックＰＮに先行する各基本ブロックとのＸＯＲ演算を実行することによって生成される。結果は、スクランブルされたデータのブロックからなるラストファーストシーケンス３８である。ブロックの順番は、スクランブルされたデータのブロックからなるラストセカンドシーケンス３９を求めるために反転される。
【００７２】
図３は、ＭＰＥＧ−２ＴＳパケットペイロード２６が、基本ブロックからなるＮ＼Ｍファーストシーケンスの整数と、Ｍ個の基本ブロック未満のサイズに等しい後続のデータ量とによって構成される。図示された実施形態において、後続のデータ量は、２つの完全基本ブロックＰＮ−２、ＰＮ−１、及び１つの不完全ブロックＰＮに分割することができる。ラストブロックＰＮは、完全基本ブロックに等しいサイズになるようゼロが埋め込まれる。故に、ファーストエンドシーケンスは、ブロックＰＮ−２、ＰＮ−１、及び埋め込まれたＮ番目ブロックＰＮによって形成される。ブロックからなるファーストエンドシーケンスのうち２つのラストブロックの位置は、（図３に示されるように）ブロックからなるセカンドエンドシーケンス４０を形成するよう交換される。ブロックからなるセカンドエンドシーケンス４０におけるブロックは、ブロック連鎖モードで暗号Ｅｋを用いて暗号化される。初期ベクトルＩＶＮとして、初期ベクトルは、長期固定初期ベクトルＩＶ０と、ＭＰＥＧ−２ＴＳパケットペイロード２６における不完全ブロックＰＮに先行するラスト完全ブロックＰＮ−１に先行する各完全基本ブロックとをオペランドとして有するＸＯＲ演算を適用することによって生成される。結果は、スクランブルされたデータのブロックからなるファーストエンドシーケンス４１である。埋め込まれることによって追加されたデータのサイズ及び位置に対応するスクランブルされたデータ量Ｃ´は、ブロックからなるファーストエンドシーケンス４１のうちファーストブロックから除去され、ブロックの順番は引続き、スクランブルされたブロック（図示せず）からなるセカンドエンドシーケンスを求めるために反転され、セカンドエンドシーケンスは、スクランブルされたペイロード３６に挿入される。当然、スクランブルされたデータＣ´は、ブロックの順番を反転した後に除去されうる。
【００７３】
ＭＰＥＧ−２ＴＳパケットペイロード２６が基本ブロックからなるＮ＼Ｍファーストシーケンスの整数と、１つの基本ブロック未満のサイズに等しい後続のデータ量とによって構成される場合、図４に図示される演算が実行される。不完全ブロックＰＮは、ゼロが埋め込まれてフルサイズのファイナルブロック４２になる。初期ベクトルＩＶＮは、長期固定初期ベクトルＩＶ０と、パケットペイロード２６のブロックからなる任意の先行するファーストシーケンスにおける少なくとも１つのブロックとに従って生成される。それは、先行するファーストシーケンスがないときに発生しうる。ＸＯＲ演算での演算子として長期固定初期ベクトルＩＶ０を直接使用しないように、フルサイズのファイナルブロック３９に関連付けられる初期ベクトルＩＶＮはまず、暗号Ｅｋの逆数である復号とＣＷとをキーとして用いて復号化される。その結果とフルサイズのファイナルブロック４２との排他的ＯＲが求められ、ブロック暗号Ｅｋを適用することによって暗号化される。結果は、フルサイズのスクランブルされたブロック４３であり、不完全ブロックＰＮを埋め込むことによって追加されたデータのサイズ及び位置に対応する一部を除去することによって切り取られる。残存部分ＣＮは、スクランブルされたペイロード３６に挿入される。
【００７４】
一連のＭＰＥＧ−２ＴＳパケット２７のペイロードは、このようにスクランブルされ、故にスクランブルされたデータストリームを形成する。暗号文窃盗及び単一の不完全ブロックを扱う方法は、スクランブルされたペイロード３６がオリジナルプレーンテキストＭＰＥＧ−２ＴＳパケット２７のペイロード２６のサイズに等しいことを確実にする。故に、スクランブルされたＭＰＥＧ−２ＴＳパケット３４のヘッダー３５は、ヘッダーがスクランブルされたことを示すこと、及び随意的に、奇数と偶数のＣＷのどちらかがブロック暗号Ｅｋに使用されたことを示すことを除き、プレーンテキストＭＰＥＧ−２ＴＳパケット２７のヘッダーに実質的に関連して変更されない必要がある。
【００７５】
図５は、図２に図示されたスクランブル演算に対応するデスクランブル演算を図示する。図２の場面のように、図５は、スクランブルされたペイロード３６において正確にＮ＼Ｍ“スーパーブロック”があるという仮定に基づく。スクランブルされたペイロード３６は、スクランブルされたデータのブロックＣｉからなる一連のシーケンスを形成し、各シーケンスは、“スーパーブロック”に対応する。スクランブルされたデータのブロックＣ１−Ｃ３からなるファーストシーケンス４４と、ブロックＣＮ−２−ＣＮからなるラストシーケンス４５とが示される。
【００７６】
スクランブルされたデータのブロックからなる各シーケンスは、デスクランブルされたデータのブロックからなる関連付けられたシーケンスを形成するよう別々にデスクランブルされる。故に、ブロックＣ１−Ｃ３からなるファーストシーケンス４４は、プレーンテキストブロックＰ１−Ｐ３からなるファーストシーケンス４６を形成するようデスクランブルされる。ブロックＣＮ−２−ＣＮからなるラストシーケンス４５は、プレーンテキストブロックＰＮ−２−ＰＮからなるラストシーケンス４７を形成するようデスクランブルされる。プレーンテキストブロックからなるシーケンスは、プレーンテキストＭＰＥＧ−２ＴＳパケットペイロード４８を形成するように使用され、ヘッダー４９によって先行され、故に再生成されたプレーンテキストＭＰＥＧ−２ＴＳパケット５０を形成する。
【００７７】
プレーンテキストブロックからなるファーストシーケンス４６におけるデスクランブルされたデータのファーストブロックＰ１は、スクランブルされたデータのファーストブロックＣ１に暗号Ｅｋの逆数である復号Ｄｋを適用することによって、及びスクランブルされたデータのブロックからなるシーケンス４４で復号Ｄｋの結果と次のスクランブルされたブロックＣ２とをオペランドとして有するＸＯＲ演算を適用することによって求められる。セカンドブロックＰ２は、同様にして求められる。ＥＣＭから求められるＣＷは、復号Ｄｋの鍵として用いられる。
【００７８】
プレーンテキストブロックのファーストシーケンス４６におけるデスクランブルされたデータのファイナルブロックＰ３は、スクランブルされたデータのブロックＣ１−Ｃ３からなるファーストシーケンス４４のうちファイナルブロックＣ３に復号Ｄｋを適用することによって求められる。結果は、ファースト“スーパーブロック”に関連付けられる初期ベクトルＩＶ３でＸＯＲ演算される。この初期ベクトルＩＶ３は、同一シーケンスにおけるスクランブルされたデータのファイナルブロックＣ３に先行するスクランブルされたデータのブロックからなるファーストシーケンス４４におけるブロックに復号Ｄｋを適用することによって、及びスクランブルされたデータのブロックからなるシーケンスにおける次の位置で復号Ｄｋの結果とデスクランブルされたデータのブロックとを少なくともオペランドとして有する演算子すなわちＸＯＲ演算子を適用することによって求められるデータの少なくとも１つのブロックに従って生成される。図示された実施形態において、初期ベクトルＩＶ３は、固定された長期初期ベクトルＩＶ０とファイナルプレーンテキストブロックＰ３に先行するプレーンテキストブロックのファーストシーケンス４６における全ブロックとのＸＯＲである。ファイナルプレーンテキストブロックＰ３が求められる前にこれら先行するプレーンテキストブロックが求められるので、デスクランブル方法は、比較的効果がある。
【００７９】
一般に、スクランブルされたペイロード３５に含まれるスクランブルされたデータのブロックからなる各後続シーケンスに、スクランブルされたデータの定数Ｍのブロックを用いる実施形態において、プレーンテキストブロックは、以下のように見出される。
Ｐｊ＊Ｍ＝Ｄｋ［Ｐｊ＊Ｍ＾ＩＶｊ＊Ｍ］
Ｐ（ｊ−１）＊Ｍ＋ｉ＝Ｃ（ｊ−１）＊Ｍ＋ｉ＋１＾Ｄｋ［Ｃ（ｊ−１）＊Ｍ＋ｉ］、ｉ＝Ｍ−１...１、ｊ＝１...Ｎ＼Ｍ
【００８０】
図示された実施形態において、第ｊ番のシーケンスにおけるブロックを復号化するための初期ベクトルＩＶｊ＊Ｍは、以下のように求められる。
ＩＶｊ・Ｍ＝ＩＶ０＾Ｐ１＾...Ｐｉ＾Ｐｊ・Ｍ−１
【００８１】
この方法において、スクランブルされたデータのブロックからなるセカンドシーケンス及びさらに一連のシーケンスをデスクランブルするのに用いられる初期ベクトルは、スクランブルされたペイロード３６においてデスクランブルされたデータのブロックからなる先行するシーケンスをデスクランブルすることによって求められるデスクランブルされたデータのブロックからなるシーケンスにおいてデスクランブルされたデータからなる少なくとも一つのブロックに従って生成される。
【００８２】
図６は、スクランブルされたペイロード３６が、基本ブロックからなるＮ＼Ｍファーストシーケンスの整数と、基本ブロックサイズの整数倍のサイズ及び基本ブロックサイズの一部のサイズに等しい後続のデータ量とによって構成される。図示された実施形態において、後続のデータ量は、２つの完全なスクランブルされたブロックＣＮ−２、ＣＮ−１、及び１つの不完全ブロックＣＮに分割することができる。ラストブロックＣＮは、ゼロが埋め込まれてラスト完全基本ブロック５１に等しいサイズになる。故に、エンドシーケンスは、ブロックＣＮ−２、ＣＮ−１、及びラスト完全基本ブロック５１によって形成される。ファイナルプレーンテキストブロックＰＮは、スクランブルされたデータのブロックからなるエンドシーケンスのうちファイナルブロックに対して直前のブロックＣＮ−１に復号Ｄｋを適用することによって、復号の結果及びラスト完全基本ブロック５１にＸＯＲ演算子を適用することによって、及びラストのスクランブルされたブロックＣＮを埋め込むことによって追加されるデータのサイズ及び位置に対応するＸＯＲ演算子の結果である部分Ｃ´を除去することによって形成される。ファイナルの２つのプレーンテキストブロックＰＮ−１、ＰＮに先行する任意の各ブロック、この場合そのシーケンスのファーストブロックＰＮ−２は、スクランブルされたデータのブロックからなるエンドシーケンスにおいて対応する位置でブロックに復号Ｄｋを適用することによって、及びスクランブルされたデータのブロックからなるエンドシーケンスにおいて次の位置で復号Ｄｋの結果とスクランブルされたデータのブロックとにＸＯＲ演算子を適用することによって形成される。
【００８３】
プレーンテキストブロックからなるエンドシーケンスにおけるラストブロックに先行するブロックＰＮ−１は、ラストのスクランブルされたブロックＣＮと埋め込むのに用いたゼロのサイズ及び位置に対応する除去された部分Ｃ´とを連結することによって形成されるブロック５２に復号を適用することによって、そして復号Ｄｋの結果と初期ベクトルＩＶＮとをオペランドとして有するＸＯＲ演算子を適用することによって求められる。初期ベクトルＩＶＮとして、初期ベクトルは、長期固定初期ベクトルＩＶ０とプレーンテキストＭＰＥＧ−２ＴＳパケットペイロード４８における各ラストの２つのブロックＰＮ−１、ＰＮとをオペランドとして有するＸＯＲ演算を適用することによって生成される。
【００８４】
スクランブルされたペイロード３６が、スクランブルされたブロックからなるＮ＼Ｍシーケンスの整数と１つの基本ブロック未満のサイズに等しい後続データ量とによって構成される場合、図７に図示される演算が実行される。不完全なスクランブルされたブロックＣＮは、ゼロが埋め込まれてフルサイズのファイナルのスクランブルされたブロック５３になる。初期ベクトルＩＶＮは、長期固定初期ベクトルＩＶ０とスクランブルされたペイロード３６においてスクランブルされたブロックからなる任意の先行シーケンスでの少なくとも１つのブロックとに従って生成される。それは、スクランブルされたブロックからなる先行シーケンスが存在しない時に発生しうる。ＸＯＲ演算でオペランドとして直接に長期固定初期ベクトルＩＶ０を使用しないために、フルサイズのファイナルのスクランブルされたブロック５３に関連付けられる初期ベクトルＩＶＮは、キーとして用いられるＣＷで、ブロック連鎖モードで使用されたものと同一の復号Ｄｋを用いて最初に復号される。結果とフルサイズのファイナルのスクランブルされたブロック５０との排他的ＯＲが求められる。結果は、フルサイズのブロック５４であり、不完全なスクランブルされたブロックＣＮを埋め込むことによって追加されるデータのサイズ及び位置に対応する部分Ｃ´を除去することによって切り取られる。残存部分ＰＮは、プレーンテキストＭＰＥＧ−２ＴＳパケットペイロードに挿入される。
【００８５】
故に、方法は、“スーパーブロック”が所定のサイズであるが“スーパーブロック”の選択されたサイズの整数倍ではないスーパーブロックを含む可変サイズのパケットペイロードに対応できることについて詳細に説明された。各“スーパーブロック”に対する初期ベクトルは、ＸＯＲ演算子に対するマスクとして直接に使用されることはない。初期ベクトルは、初期ベクトルができるだけ多様な変更がなされるように、パケットペイロードにおいて先行するプレーンテキストブロックに可能な限り依存する。演算結果を記憶するための必要メモリは、スクランブラー及びデスクランブラーのための必要メモリと同一であり、できるだけ小さく維持でき、比較的小さなサイズの“スーパーブロック”を選択することによって安全上好ましいと考えられる。
【００８６】
本発明は、記載された実施形態に限定されず、添付の特許請求の範囲内で変更可能である。特に、１つの実施形態では、スクランブルされたブロックからなるファーストシーケンスは、スクランブラーにおいてブロックの順番を反転することによって、スクランブルされたブロックからなるセカンドシーケンスに変換されないことを可能にする。但し、その反転は、ここに図示されるスクランブルされたデータストリームをデスクランブルする方法を実行する前にデスクランブラーで実行される。
【図面の簡単な説明】
【００８７】
【図１】図１は、ブロードキャストデータストリームをスクランブル及びデスクランブルする方法を実行するためのシステムを示す図である。
【図２】図２は、データストリームをスクランブルする方法の１実施形態を示す図である。
【図３】図３は、データストリームをスクランブルする方法において暗号文窃盗を実行する方法を示す図である。
【図４】図４は、ＭＰＥＧ−２トランスポートストリームパケットペイロードのエンドを形成する単一の不完全ブロックがどのように扱われるかを示す図である。
【図５】図５は、データストリームをデスクランブルする方法の１実施形態を示す図である。
【図６】図６は、デスクランブラーにおいて暗号文窃盗の実行を示す図である。
【図７】図７は、ＭＰＥＧ−２トランスポートストリームパケットペイロードのエンドを形成する単一の不完全ブロックがデスクランブラーでどのように扱われるかを示す図である。
【符号の説明】
【００８８】
２６  ペイロード
２７  ＭＰＥＧ−２ＴＳパケット
２８  ヘッダー
２９  ファーストファーストシーケンス
３０  ラストファーストシーケンス
【図１】
2007133400.tif 000003
【図２】
2007133400.tif 000004
【図３】
2007133400.tif 000005
【図４】
2007133400.tif 000006
【図６】
2007133400.tif 000007
【図７】
2007133400.tif 000008
【図５】
2007133400.tif 000009
【外国語明細書】
2007133400.tif 000010
2007133400.tif 000011
2007133400.tif 000012
2007133400.tif 000013
2007133400.tif 000014
2007133400.tif 000015
2007133400.tif 000016
2007133400.tif 000017
2007133400.tif 000018
2007133400.tif 000019
2007133400.tif 000020
2007133400.tif 000021
2007133400.tif 000022
2007133400.tif 000023
2007133400.tif 000024
2007133400.tif 000025
2007133400.tif 000026
2007133400.tif 000027
2007133400.tif 000028
2007133400.tif 000029
2007133400.tif 000030
2007133400.tif 000031
2007133400.tif 000032
2007133400.tif 000033
2007133400.tif 000034
2007133400.tif 000035
2007133400.tif 000036
2007133400.tif 000037
2007133400.tif 000038
2007133400.tif 000039
2007133400.tif 000040
2007133400.tif 000041
2007133400.tif 000042
2007133400.tif 000043
2007133400.tif 000044