(57)【特許請求の範囲】
【請求項１】
パケットのデータを暗号化する暗号化装置であって、
カウンタモードを用いたスクランブル方式のカウンタ初期値をパケットごとに生成する初期値生成手段と、
前記データを前記パケットのペイロードのデータ部分ごとに、前記初期値生成手段で生成されたカウンタ初期値を用いて前記カウンタモードのスクランブル方式でスクランブルするスクランブル手段と、
前記カウンタ初期値が前記パケットのヘッダに設定されているか否かを示す初期値制御情報を前記ヘッダに設定するとともに、前記初期値制御情報で前記カウンタ初期値が前記ヘッダに設定されることを示す場合に前記カウンタ初期値を前記ヘッダに設定するヘッダ再構成手段と、を備え、
前記初期値生成手段は、前記パケットを特定するパケット識別子およびパケットシーケンス番号と定数とを連結して前記カウンタ初期値を生成することを特徴とする暗号化装置。
【請求項２】
カウンタモードを用いたスクランブル方式のカウンタ初期値がパケットのヘッダに設定されているか否かを示す初期値制御情報を含むとともに、前記初期値制御情報で前記カウンタ初期値が前記ヘッダに設定されていると指定されている場合に前記カウンタ初期値を含んだ前記ヘッダと、データ部分が暗号化されたペイロードとで構成される前記パケットを復号する復号装置であって、
前記ヘッダに設定されている前記初期値制御情報により、当該ヘッダにカウンタ初期値が含まれているか否かを判定する初期値制御情報判定手段と、
前記ヘッダにカウンタ初期値が含まれていない場合に、前記ヘッダに設定されている前記パケットを特定するパケット識別子およびパケットシーケンス番号と定数とを連結してカウンタ初期値を生成する初期値生成手段と、
前記ヘッダにカウンタ初期値が含まれている場合に、前記ヘッダから当該カウンタ初期値を抽出する初期値抽出手段と、
前記初期値生成手段で生成されたカウンタ初期値、または、前記初期値抽出手段で抽出されたカウンタ初期値を用いて前記カウンタモードのスクランブル方式で、前記パケットのペイロードのデータ部分をデスクランブルするデスクランブル手段と、
を備えることを特徴とする復号装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、カウンタモード（ＣＴＲモード）でデータのブロック暗号を行う暗号化装置および復号装置に関する。
【背景技術】
【０００２】
非特許文献１では、安全な放送サービスを実現するため、放送コンテンツに対する第２世代のアクセス制御方式が規格化され、さらに、４Ｋ／８Ｋ等の新しい放送サービスの多重化方式としてＭＭＴ（MPEG Media Transport）・ＴＶＬ（Type Length Value）のスクランブル方式について規定されている。
このＭＭＴ・ＴＶＬのスクランブル方式では、ＭＭＴ階層のパケットであるＭＭＴＰパケットのスクランブルに用いる暗号利用モードとして、カウンタモード（ＣＴＲモード）が採用されている。なお、暗号利用モード（Block cipher modes of operation）とは、共通鍵ブロック暗号を用いて、ブロック長よりも長いデータを暗号化する手法のことである。
【０００３】
ここで、カウンタモードのスクランブル方式は、図８に示すように、カウンタ初期値ＩＶをカウンタで順次インクリメント（＋１）し、暗号鍵（秘密鍵）ｋｅｙでブロック暗号（ＡＥＳ暗号、Ｃａｍｅｌｌｉａ暗号）により暗号化する。そして、このスクランブル方式は、暗号化前データの所定長（鍵長と同じ）のブロックごとに、順次暗号化したカウンタ値とＸＯＲ演算することで、暗号化データを生成する。
【０００４】
このカウンタモードのカウンタ値については、アメリカ国立標準技術研究所（National Institute of Standards and Technology,NIST）の暗号アルゴリズムの安全性に関する評価結果報告において、「同じ秘密鍵で使用されるすべてのカウンタ値が互いに異なること」と記載されている（非特許文献２）。
【０００５】
一方、非特許文献１には、カウンタ初期値の運用について、３つの方法が存在することが記載されている。
１つめの方法は、ＭＭＴＰパケットの送信装置側（暗号化側）と受信装置側（復号側）とで予め同じカウンタ初期値を共有しておく方法である。しかし、非特許文献２に記載のとおり、安全性の観点からカウンタ初期値を固定値で運用することは、同じ秘密鍵（暗号鍵）で使用するカウンタ値が同じになる場合があり、望ましくない。
【０００６】
２つめの方法は、カウンタ初期値をそのままパケットのヘッダに格納して伝送する方法である。この方法は、最もシンプルかつ安全な方法であるが、カウンタ初期値のビット（例えば、１２８ビット）のすべてを、パケットごとに伝送する必要があり、伝送帯域の効率性の観点で問題がある。
【０００７】
３つめの方法は、カウンタ初期値を生成するための初期値生成情報（シード）を伝送し、受信装置側（復号側）でカウンタ初期値を生成する方法である。この方法は、２つめの方法に比べて伝送量が抑えられるため、伝送帯域の点では効率的であるが、受信装置側でカウンタ初期値を生成するため、カウンタ初期値の生成アルゴリズムによっては、受信装置に負荷がかかるおそれがあり、特にメモリリソース等が制限される放送受信装置においては、コスト増を引き起こす懸念もある。
なお、非特許文献１には、これらの方法をどのように運用するかについての記載はない。
【先行技術文献】
【非特許文献】
【０００８】
【非特許文献１】「デジタル放送におけるアクセス制御方式（第２世代）及びＣＡＳプログラムのダウンロード方式  標準規格（ＡＲＩＢ  ＳＴＤ−Ｂ６１）」、１．１版、Ｐ７−３１、一般社団法人電波産業会、平成２７年３月１７日改定
【非特許文献２】Morris Dworkin,“Recommendation for Block Cipher Modes of Operation - Methods and Techniques”, NIST Special Publication 800-38A, p15, 2001.
【発明の概要】
【発明が解決しようとする課題】
【０００９】
前記した手法のうち、安全性の観点からは、２つめの手法（カウンタ初期値をそのまま伝送する手法）、または、３つめの手法（初期値生成情報を伝送し受信装置側で生成する手法）を採用することが有効であると考えられる。
しかし、前記したように、２つめの手法および３つめの手法は、それぞれ、伝送帯域の効率性および受信装置（復号装置）の処理負荷の観点でトレードオフの関係がある。このどちらの手法を選択するかは、伝送帯域や受信装置のＣＰＵ、メモリリソース等を考慮して変化しうる。そのため、カウンタ初期値の運用を固定的にするのではなく、伝送帯域や受信装置の性能に応じて柔軟にカウンタ初期値を運用することが望ましい。
【００１０】
本発明は、このような問題に鑑みてなされたものであり、カウンタ初期値の設定方法を切り替えることが可能な暗号化装置および復号装置を提供することを課題とする。
【課題を解決するための手段】
【００１１】
前記課題を解決するため、本発明に係る暗号化装置は、パケットのデータを暗号化する暗号化装置であって、初期値生成手段と、スクランブル手段と、ヘッダ再構成手段と、を備える構成とした。
【００１２】
かかる構成において、暗号化装置は、初期値生成手段によって、カウンタモードを用いたスクランブル方式のカウンタ初期値をパケットごとに個別に生成する。例えば、初期値生成手段は、データの種類を識別するパケット識別子と、同一のパケット識別子でパケットの順序を示すパケットシーケンス番号とを連結する等、パケットを一意に特定するパケット特定情報と定数とを連結して、復号装置と同じ予め定めた生成アルゴリズムで、パケットごとに異なるカウンタ初期値を生成する。
そして、暗号化装置は、スクランブル手段によって、パケットのペイロードのデータ部分を、初期値生成手段で生成されたカウンタ初期値を用いて、順次、カウンタをインクリメントして、カウンタモードのスクランブル方式でスクランブルする。
【００１３】
また、暗号化装置は、ヘッダ再構成手段によって、パケット（ＭＭＴＰパケット）のヘッダを再構成する。このヘッダ再構成手段は、カウンタ初期値がパケットのヘッダに設定されているか否かを示す初期値制御情報をヘッダに設定する。さらに、初期値制御情報でカウンタ初期値がヘッダに設定されることを示す場合に、ヘッダ再構成手段は、ヘッダにカウンタ初期値を付加する。
このヘッダに含まれる初期値制御情報によって、復号装置において、ヘッダにカウンタ初期値が含まれているか否かを判定することが可能になる。
【００１４】
なお、暗号化装置は、コンピュータを、初期値生成手段、スクランブル手段、ヘッダ再構成手段として機能させるための暗号化プログラムで動作させることができる。
【００１５】
また、前記課題を解決するため、本発明に係る復号装置は、カウンタモードを用いたスクランブル方式のカウンタ初期値がパケットのヘッダに設定されているか否かを示す初期値制御情報を含むとともに、初期値制御情報でカウンタ初期値がヘッダに設定されている場合にカウンタ初期値を含んだヘッダと、データ部分が暗号化されたペイロードとで構成されるパケットを復号する復号装置であって、初期値制御情報判定手段と、初期値生成手段と、初期値抽出手段と、デスクランブル手段と、を備える構成とした。
【００１６】
かかる構成において、復号装置は、初期値制御情報判定手段によって、ヘッダに設定されている初期値制御情報により、当該ヘッダにカウンタ初期値が含まれているか否かを判定する。
そして、復号装置は、ヘッダにカウンタ初期値が含まれていない場合には、初期値生成手段によって、ヘッダに設定されているパケットを特定するパケット識別子およびパケットシーケンス番号と定数とを連結してカウンタ初期値を生成する。これによって、カウンタ初期値がヘッダに設定されていなくても、暗号化装置と同じカウンタ初期値を生成することができる。
【００１７】
そして、復号装置は、ヘッダにカウンタ初期値が含まれている場合には、初期値抽出手段によって、ヘッダから当該カウンタ初期値を抽出する。
これによって、復号装置は、パケット単位で、暗号化装置と同一のカウンタ初期値を使用することができる。
そして、復号装置は、デスクランブル手段によって、初期値生成手段で生成されたカウンタ初期値、または、初期値抽出手段で抽出されたカウンタ初期値を用いて、カウンタモードのスクランブル方式で、パケットのペイロードのデータ部分をデスクランブルする。
【００１８】
なお、復号装置は、コンピュータを、初期値制御情報判定手段、初期値生成手段、初期値抽出手段、デスクランブル手段として機能させるための復号プログラムで動作させることができる。
【発明の効果】
【００１９】
本発明は、以下に示す優れた効果を奏するものである。
本発明によれば、カウンタモードを用いたスクランブル方式において、カウンタ初期値の設定方法を、単に、初期値制御情報の設定のみで柔軟に切り替えることができる。これによって、本発明は、例えば、パケットを伝送する伝送帯域が狭い場合、カウンタ初期値を伝送せず、暗号化装置と復号装置の双方でパケット特定情報からカウンタ初期値を生成することで、パケット容量を抑え、伝送効率を高めることができる。また、本発明は、例えば、高解像度の映像等でパケットの復号速度が要求される場合、カウンタ初期値をそのままパケットに設定することで、復号装置の負荷を抑え、特にメモリリソース等が制限された放送受信装置等においても安定した動作を実現することができる。
【図面の簡単な説明】
【００２０】
【図１】本発明の実施形態に係る暗号化装置および復号装置を放送システムに適用したシステム構成図である。
【図２】本発明の実施形態に係る暗号化装置の構成を示すブロック構成図である。
【図３】ＭＭＴＰパケットの構成を示すデータ構造図である。
【図４】ＭＭＴＰパケットの拡張領域の構成を示すデータ構造図である。
【図５】本発明の実施形態に係る復号装置の構成を示すブロック構成図である。
【図６】本発明の実施形態に係る暗号化装置の動作を示すフローチャートである。
【図７】本発明の実施形態に係る復号装置の動作を示すフローチャートである。
【図８】カウンタモードのスクランブル方式を説明するための説明図である。
【発明を実施するための形態】
【００２１】
以下、本発明の実施形態について図面を参照して説明する。
≪放送システムの構成≫
まず、図１を参照して、本発明の実施形態に係る暗号化装置１および復号装置２を備えた放送システムＳの構成について説明する。
【００２２】
放送システムＳは、メディアトランスポート方式としてＭＭＴ（MPEG Media Transport）を用い、コンテンツをＩＰパケット化し、放送波Ｗまたは通信回線Ｎを介して、伝送するものである。
この放送システムＳは、放送事業者が有するデジタル放送の送信装置１００（または、通信ネットワークのサービスを行う送信装置１００）と、各家庭等に設置されたデジタル放送の受信装置２００とで構成される。なお、ここでは、受信装置２００を１台だけ図示しているが、複数あってもよいことはいうまでもない。
【００２３】
送信装置１００は、映像、音声、データ等のコンテンツ（以下、単にデータという）を、ＭＭＴＰパケット化したのち、ＩＰパケット化（ＭＭＴ ｏｖｅｒ ＩＰ）するとともに、必要に応じて、ネットワークレイヤやメディアトランスポートレイヤに対して、スクランブルを施して、放送波Ｗまたは通信回線Ｎを介して送信するものである。なお、送信装置１００は、放送波Ｗを介して送信する際には、ＩＰパケットのＴＬＶ（Type Length Value）化を併せて行う。
ここでは、送信装置１００は、暗号化装置１を備え、必要に応じて、ＭＭＴＰパケットのペイロード領域（より詳細には、ペイロードのデータ部分）をスクランブル（暗号化）する。また、図示していないが、送信装置１００は、暗号化装置１のほかに、映像、音声等のデータや制御信号をＭＭＴＰパケット化する多重化装置や変調装置を備えている。
【００２４】
暗号化装置１は、カウンタモードを用いたスクランブル方式でデータを暗号化するものである。この暗号化装置１は、カウンタ初期値、または、そのカウンタ初期値を生成するための初期値生成情報（シード）を、ＭＭＴＰパケットのヘッダに設定することで、復号側との間でカウンタ初期値を一致させる。この暗号化装置１については後で詳細に説明する。
【００２５】
受信装置２００は、ＭＭＴＰパケットをＩＰパケット化したデータを、放送波Ｗまたは通信回線Ｎを介して受信し、保護されたスクランブルデータをデスクランブルして、利用可能（映像再生等）とするものである。
この受信装置２００は、復号装置２を備え、スクランブル（暗号化）されたＭＭＴＰパケットをデスクランブル（復号）する。
【００２６】
復号装置２は、カウンタモードを用いたスクランブル方式で暗号化されたデータを復号するものである。この復号装置２は、ＭＭＴＰパケットのヘッダにカウンタ初期値が設定されている場合、そのカウンタ初期値を用い、同ヘッダにカウンタ初期値が設定されていない場合、初期値生成情報からカウンタ初期値を生成することで、カウンタモードによる復号を行う。この復号装置２については後で詳細に説明する。
以下、本発明の実施形態に係る暗号化装置１および復号装置２の構成および動作について順次説明する。
【００２７】
＜暗号化装置の構成＞
まず、図２を参照（適宜図１参照）して、本発明の実施形態に係る暗号化装置１の構成について説明する。
図２に示すように、暗号化装置１は、ポリシ設定手段１０と、スクランブル方式設定手段１１と、パケット特定情報設定手段１２と、初期値切り替え設定手段１３と、初期値設定手段１４と、スクランブル手段１５と、ヘッダ再構成手段１６と、を備える。
【００２８】
ポリシ設定手段１０は、スクランブルを行うために用いる各種情報および制御情報（以下、ポリシという）を、設定するものである。このポリシ設定手段１０には、適宜外部からポリシを反映させるか、あるいは、予め半導体メモリ等の一般的な記憶媒体でポリシを保持しておいてもよい。
ここでは、ポリシ設定手段１０は、ポリシとして、スクランブル方式識別子、パケット特定情報、初期値制御情報等を設定する。
【００２９】
スクランブル方式識別子は、スクランブル時の暗号アルゴリズムの種別を示すもので、例えば、ＡＥＳ、Ｃａｍｅｌｌｉａ等のスクランブル方式を識別する値である。
パケット特定情報は、暗号化装置１が生成するＭＭＴＰパケットを特定するための情報である。このパケット特定情報は、カウンタ初期値を生成するためのシードとなる情報（初期値生成情報）である。
例えば、パケット特定情報は、パケット識別子およびパケットシーケンス番号である。
パケット識別子は、入力するデータを映像とした場合、パケット識別子ＰＩＤ＝０ｘ０１００のように、データの種類に応じて予め定めた値である。
パケットシーケンス番号は、パケット識別子が同一である間、パケット識別子内で順序を表すパケットの順序番号である。
【００３０】
初期値制御情報は、カウンタモードのカウンタ初期値を制御するための情報である。ここでは、初期値制御情報は、復号装置２側でカウンタ初期値を生成するか否かを示すフラグとし、例えば、復号装置２側でカウンタ初期値を生成する場合は“０”、復号装置２側でカウンタ初期値を生成しない場合は“１”とする。
【００３１】
スクランブル方式設定手段１１は、ポリシ設定手段１０に基づいて、スクランブル方式を、スクランブル手段１５と、ヘッダ再構成手段１６とに設定するものである。
具体的には、スクランブル方式設定手段１１は、ポリシ設定手段１０により設定されたスクランブル方式を識別するスクランブル方式識別子を、ヘッダ再構成手段１６に出力する。また、スクランブル方式設定手段１１は、スクランブル方式識別子に対応するスクランブル方式（ＡＥＳ、Ｃａｍｅｌｌｉａ等）でスクランブルを行う旨を、スクランブル手段１５に指示する。
【００３２】
パケット特定情報設定手段１２は、ポリシ設定手段１０により設定されたＭＭＴＰパケットを特定する情報（パケット特定情報）を、初期値設定手段１４とヘッダ再構成手段１６とに設定するものである。
具体的には、パケット特定情報設定手段１２は、パケット識別子およびパケットシーケンス番号を、初期値設定手段１４およびヘッダ再構成手段１６に出力する。
これによって、例えば、映像を構成する複数のＭＭＴＰパケットとして同一のパケット識別子を用いる場合に、パケット識別子とパケットシーケンス番号とによって、個々のＭＭＴＰパケットを特定することができる。
【００３３】
初期値切り替え設定手段１３は、ポリシ設定手段１０により設定されたカウンタ初期値の生成方法を、初期値設定手段１４とヘッダ再構成手段１６とに設定するものである。
具体的には、初期値切り替え設定手段１３は、ポリシ設定手段１０から設定されるカウンタ初期値の生成方法を示す初期値制御情報により、初期値設定手段１４において、第１初期値生成手段１４ａを起動させるか、第２初期値生成手段１４ｂを起動させるかの切り替え制御を行う。ここでは、初期値切り替え設定手段１３は、復号装置２側でカウンタ初期値を生成する場合、第１初期値生成手段１４ａを起動させ、復号装置２側でカウンタ初期値を生成しない場合、第２初期値生成手段１４ｂを起動するように制御する。
また、初期値切り替え設定手段１３は、ポリシ設定手段１０によって設定される初期値制御情報をヘッダ再構成手段１６に出力する。
【００３４】
初期値設定手段１４は、ポリシ設定手段１０から設定されるカウンタ初期値を、スクランブル手段１５に設定するものである。なお、初期値設定手段１４は、初期値切り替え設定手段１３によって、第２初期値生成手段１４ｂが起動された場合は、さらに、生成したカウンタ初期値を、ヘッダ再構成手段１６に設定する。
【００３５】
ここでは、初期値設定手段１４は、第１初期値生成手段１４ａと、第２初期値生成手段１４ｂと、を備える。なお、初期値設定手段１４は、初期値切り替え設定手段１３からの指示により、第１初期値生成手段１４ａまたは第２初期値生成手段１４ｂのいずれか一方を起動する。
【００３６】
第１初期値生成手段（初期値生成手段）１４ａは、パケット特定情報設定手段１２から入力されるパケット特定情報から、復号装置２と同じ予め定めた生成アルゴリズムで、カウンタ初期値を生成するものである。
具体的には、第１初期値生成手段１４ａは、少なくともパケット特定情報として入力されるパケット識別子とパケットシーケンス番号とを連結することで、カウンタ初期値を生成する。
【００３７】
例えば、パケット識別子（ｐａｃｋｅｔ＿ｉｄ）が１６ビット（ｂｉｔ）、パケットシーケンス番号（ｐａｃｋｅｔ＿ｓｅｑｕｅｎｃｅ＿ｎｕｍｂｅｒ）が３２ビット（ｂｉｔ）で、カウンタ初期値ＩＶが１２８ビット（ｂｉｔ）であるとすると、第１初期値生成手段１４ａは、以下の式（１）に示す生成アルゴリズムによって、パケット識別子とパケットシーケンス番号とを連結し、カウンタ初期値のビット数分、ゼロ（０）パディングして、カウンタ初期値ＩＶを生成する。なお、「｜｜」は連結を示す。また、パケット識別子およびパケットシーケンス番号の順番はどちらが先であっても構わない。また、パディングの末尾を“１”としても構わない。
【００３８】
【数１】
0006464310.tif 000002
【００３９】
これによって、第１初期値生成手段１４ａは、パケット特定情報（初期値生成情報）により、パケット個別のカウンタ初期値を生成することができる。この第１初期値生成手段１４ａは、生成したカウンタ初期値をスクランブル手段１５に出力する。
【００４０】
第２初期値生成手段（初期値生成手段）１４ｂは、所定のブロック長を満たすカウンタ初期値を乱数により生成するものである。なお、第２初期値生成手段１４ｂは、ブロック長から予め定めたパケット長に応じたカウンタビット長を減算したビット数分の乱数を発生させ、さらに、所定のブロック長になるまでゼロ（０）パディング行うことでカウンタ初期値を生成してもよい。
【００４１】
この第２初期値生成手段１４ｂは、生成したカウンタ初期値をスクランブル手段１５に出力するとともに、ヘッダ再構成手段１６に出力する。この第２初期値生成手段１４ｂで生成されたカウンタ初期値は、ヘッダに設定され、復号装置２で利用される。
【００４２】
スクランブル手段１５は、受信したＭＭＴＰパケットのうち、ペイロードのデータ部分に対して、カウンタモードでブロック暗号を行うことで、データをスクランブルするものである。
このスクランブル手段１５は、初期値設定手段１４で設定されたカウンタ初期値を用いて、スクランブル方式設定手段１１で設定されたスクランブル方式（ＡＥＳ、Ｃａｍｅｌｌｉａ等）により、カウンタモードで、図８で説明したようにブロック（例えば、１２８ビット）単位で暗号化する。
【００４３】
なお、図８に示すブロック暗号に用いる暗号鍵ｋｅｙは、復号装置２と共通の鍵であって、予め暗号化装置１と復号装置２との間で共有しておく。この暗号鍵の共有は、特に限定するものではないが、例えば、通信回線Ｎを介して復号装置２に送信することとしてもよいし、ＡＲＩＢ  ＳＴＤ−Ｂ２５に規定されている３重鍵暗号方式により、放送波Ｗを介して、ＥＣＭ（Entitlement Control Message）によって送信することとしてもよい。
このスクランブル手段１５は、スクランブルしたデータ（ペイロードデータ）を含むＭＭＴＰパケットをヘッダ再構成手段１６に出力する。
【００４４】
ヘッダ再構成手段１６は、ＭＭＴＰパケットのヘッダの拡張領域に各種情報を配置するものである。
すなわち、ヘッダ再構成手段１６は、スクランブル方式設定手段１１、パケット特定情報設定手段１２、初期値切り替え設定手段１３および初期値設定手段１４から入力される情報を、ＭＭＴＰパケットのヘッダ領域内の予め定めた位置に設定する。
【００４５】
ここで、図３および図４を参照（適宜図２参照）して、ヘッダ再構成手段１６によって構成されるヘッダの例について説明する。
図３は、ＭＭＴＰパケットの構成を示している。なお、図３中、「ｕｉｍｓｂｆ」は、最上位ビットが先頭の符号無し整数を示し、「ｂｓｌｂｆ」は、左ビットが先頭のビット列を示す。
【００４６】
図３において、「ＭＭＴＰ＿ｐａｙｌｏａｄ（）」より前の領域が、ＭＭＴＰパケットのヘッダ領域である。この図３の「ｈｅａｄｅｒ＿ｅｘｔｅｎｓｉｏｎ＿ｂｙｔｅ」（拡張領域）には、図４の太線で示した「マルチ拡張ヘッダタイプ」から「ＭＭＴスクランブル初期値情報」までが設定される。なお、ＭＭＴＰパケットの構成については、一般社団法人電波産業会で規格化されているＡＲＩＢ  ＳＴＤ−Ｂ６０に規定されているため、ここでは詳細な説明を省略し、本発明に関連する情報についてのみ説明する。
【００４７】
図３の「ｐａｃｋｅｔ＿ｉｄ」および「ｐａｃｋｅｔ＿ｓｅｑｕｅｎｃｅ＿ｎｕｍｂｅｒ」の領域は、それぞれ、パケット特定情報設定手段１２で設定されるパケット識別子およびパケットシーケンス番号を設定する領域である。
また、図４の「スクランブル方式識別子」の領域は、スクランブル方式設定手段１１から通知されるスクランブル方式識別子を設定する領域である。ここでは、ヘッダ再構成手段１６は、「スクランブル方式識別子」を設定する場合、「スクランブル方式識別制御ビット」に“１”を設定することで、「スクランブル方式識別子」の領域が存在することを示す。なお、スクランブル方式が固定の場合、ＣＡＴ（限定受信テーブル：Conditional Access Table）やＭＰＴ（ＭＭＴパッケージテーブル）等の制御信号を用いた別の手段で予め復号装置２にスクランブル方式識別子が通知済みである場合等、必ずしもヘッダ領域に「スクランブル方式識別子」の領域を設ける必要はない。
【００４８】
また、図４の「ＭＭＴスクランブル初期値情報」の領域は、初期値設定手段１４の第２初期値生成手段１４ｂで生成されるカウンタ初期値を設定する領域である。ここでは、ヘッダ再構成手段１６は、初期値切り替え設定手段１３から通知される初期値制御情報によって、復号装置２側でカウンタ初期値を生成しないことが指示された場合、「ＭＭＴスクランブル初期値情報」にカウンタ初期値を設定し、「ＭＭＴスクランブル制御ビット」に初期値制御情報の値“１”を設定する。
【００４９】
一方、ヘッダ再構成手段１６は、初期値切り替え設定手段１３から通知される初期値制御情報によって、復号装置２側でカウンタ初期値を生成することが指示された場合、「ＭＭＴスクランブル初期値情報」を設けず、「ＭＭＴスクランブル制御ビット」に初期値制御情報の値“０”を設定する。
このヘッダ再構成手段１６は、再構成したＭＭＴＰパケットを暗号化パケットとして外部に出力する。
【００５０】
このヘッダ再構成手段１６から出力されたＭＭＴＰパケットは、図１で説明したように、送信装置１００によって、ＵＤＰヘッダやＩＰヘッダの付与によりＩＰパケット化されて、受信装置２００に送信される。また、ＭＭＴＰパケットは、放送波Ｗによって送信される場合、送信装置１００によって、ＩＰパケット化後、さらにＴＬＶ化されて受信装置２００に送信される。
【００５１】
以上説明したように暗号化装置１を構成することで、暗号化装置１は、データをカウンタモードで暗号化してＭＭＴＰパケット化する際に、カウンタ初期値を逐次ＭＭＴＰパケットに付加するか、復号装置２で生成するかを、設定により柔軟に切り替えることができる。
また、暗号化装置１は、復号装置２でカウンタ初期値を生成させる場合に、パケット識別子とパケットシーケンス番号とを用いて、スクランブル手段１５で使用するカウンタ初期値を生成し、ヘッダにパケット識別子とパケットシーケンス番号とを設定するため、パケット単位で異なるカウンタ初期値を、復号装置２と一致させることができる。
【００５２】
これによって、暗号化装置１は、復号装置２との間でパケットを伝送する場合、その伝送帯域が狭ければ、カウンタ初期値を伝送せず、暗号化装置１と復号装置２の双方でパケット特定情報からカウンタ初期値を生成することで、パケット容量を抑え、伝送効率を高めることができる。また、暗号化装置１は、高解像度の映像等でパケットの復号速度が要求される場合等において、カウンタ初期値をそのままパケットに設定することで、復号装置２の負荷を抑えることができる。
なお、暗号化装置１は、図示を省略したコンピュータを、前記した各手段として機能させるプログラム（暗号化プログラム）で動作させることができる。
【００５３】
＜復号装置の構成＞
次に、図５を参照（適宜図１参照）して、本発明の実施形態に係る復号装置２の構成について説明する。
図５に示すように、復号装置２は、パケットヘッダ抽出手段２０と、初期値切り替え判定手段２１と、初期値設定手段２２と、スクランブル方式設定手段２３と、デスクランブル手段２４と、を備える。
【００５４】
パケットヘッダ抽出手段２０は、暗号化装置１で生成されたＭＭＴＰパケット（暗号化パケット）から、ヘッダ領域を抽出するものである。このパケットヘッダ抽出手段２０は、抽出したヘッダ領域から予め定められた該当の情報を、初期値切り替え判定手段２１と、初期値設定手段２２と、スクランブル方式設定手段２３とに出力する。
【００５５】
初期値切り替え判定手段（初期値制御情報判定手段）２１は、パケットヘッダ抽出手段２０から抽出されたヘッダ領域（拡張領域）において、初期値制御情報（「ＭＭＴスクランブル制御ビット」（図４参照））を参照し、ヘッダにカウンタ初期値が含まれているか否かを判定するものである。
すなわち、初期値切り替え判定手段２１は、ヘッダにカウンタ初期値が含まれていない場合、カウンタ初期値を生成する必要があると判定し、ヘッダにカウンタ初期値が含まれている場合、当該カウンタ初期値を使用すると判定する。
【００５６】
ここでは、初期値切り替え判定手段２１は、「ＭＭＴスクランブル制御ビット」が“０”の場合、カウンタ初期値を生成する動作モードであると判定し、初期値設定手段２２に対して、初期値生成手段２２ａを起動させる旨を指示する。
一方、初期値切り替え判定手段２１は、「ＭＭＴスクランブル制御ビット」が“１”の場合、ヘッダに設定されたカウンタ初期値を使用する動作モードであると判定し、初期値設定手段２２に対して、初期値抽出手段２２ｂを起動させる旨を指示する。
【００５７】
初期値設定手段２２は、初期値切り替え判定手段２１から指示される動作モードによって、カウンタ初期値を生成する、または、ヘッダから抽出することで、デスクランブル手段２４に設定するものである。ここでは、初期値設定手段２２は、初期値生成手段２２ａと、初期値抽出手段２２ｂと、を備える。
【００５８】
初期値生成手段２２ａは、パケットヘッダ抽出手段２０から抽出されたヘッダ領域に設定されているＭＭＴＰパケットを特定する情報（パケット特定情報）から、暗号化装置１と同じ予め定めた生成アルゴリズムで、カウンタ初期値を生成するものである。
具体的には、初期値生成手段２２ａは、ヘッダ領域に設定されているパケット識別子（ｐａｃｋｅｔ＿ｉｄ）およびパケットシーケンス番号（ｐａｃｋｅｔ＿ｓｅｑｕｅｎｃｅ＿ｎｕｍｂｅｒ）（図３参照）をシードとして、暗号化装置１の第１初期値生成手段１４ａと同じ生成アルゴリズム（前記式（１））によって、カウンタ初期値を生成する。
この初期値生成手段２２ａは、生成したカウンタ初期値をデスクランブル手段２４に設定する。
【００５９】
初期値抽出手段２２ｂは、パケットヘッダ抽出手段２０から抽出されたヘッダ領域に設定されているカウンタ初期値を抽出するものである。
具体的には、初期値生成手段２２ａは、ヘッダ領域（拡張領域）に設定されている「ＭＭＴスクランブル初期値情報」（図４参照）の値をカウンタ初期値として抽出する。
この初期値抽出手段２２ｂは、抽出したカウンタ初期値をデスクランブル手段２４に設定する。
これによって、初期値設定手段２２は、暗号化装置１がＭＭＴＰパケットごとに用いたカウンタ初期値と同じカウンタ初期値を生成または抽出することができる。
【００６０】
スクランブル方式設定手段２３は、スクランブル方式（ＡＥＳ、Ｃａｍｅｌｌｉａ等）をデスクランブル手段２４に設定するものである。
ここでは、スクランブル方式設定手段２３は、パケットヘッダ抽出手段２０から抽出されたヘッダ領域（拡張領域）において、「スクランブル方式識別制御ビット」（図４参照）を参照し、ヘッダ領域に「スクランブル方式識別子」が存在する場合、スクランブル方式識別子で特定されるスクランブル方式（ＡＥＳ、Ｃａｍｅｌｌｉａ等）をデスクランブル手段２４に設定する。
【００６１】
デスクランブル手段２４は、暗号化装置１で生成されたＭＭＴＰパケット（暗号化パケット）のペイロード領域（より詳細には、ペイロードのデータ部分）を復号するものである。
このデスクランブル手段２４は、初期値設定手段２２で設定されたカウンタ初期値を用いて、スクランブル方式設定手段２３で設定されたスクランブル方式（ＡＥＳ、Ｃａｍｅｌｌｉａ等）により、カウンタモードで、ペイロードのデータ部分をブロック（例えば、１２８ビット）単位で復号する。
【００６２】
なお、復号に用いる暗号鍵は、暗号化装置１と共通の鍵であって、予め暗号化装置１と復号装置２との間で共有しておく。例えば、通信回線Ｎを介して暗号化装置１から受信することとしてもよいし、ＡＲＩＢ  ＳＴＤ−Ｂ２５に規定されている３重鍵暗号方式により、放送波Ｗを介して、ＥＣＭ（Entitlement Control Message）によって受信することとしてもよい。
【００６３】
以上説明したように復号装置２を構成することで、復号装置２は、ＭＭＴＰパケットのヘッダに設定されているＭＭＴスクランブル制御ビットによって、カウンタ初期値を生成するか、ＭＭＴＰパケットのヘッダに設定されているカウンタ初期値を使用するかを、柔軟に切り替えることができる。
【００６４】
また、復号装置２は、カウンタ初期値を生成する場合に、ＭＭＴＰパケットのヘッダに設定されているパケット識別子とパケットシーケンス番号とを用いて、デスクランブル手段２４で使用するカウンタ初期値を生成するため、パケット単位で異なるカウンタ初期値を、暗号化装置１と共有することができる。
なお、復号装置２は、図示を省略したコンピュータを、前記した各手段として機能させるプログラム（復号プログラム）で動作させることができる。
【００６５】
＜暗号化装置の動作＞
次に、図６を参照（構成については、適宜図２参照）して、本発明の実施形態に係る暗号化装置１の動作について説明する。
【００６６】
まず、暗号化装置１は、スクランブル手段１５によって、外部から入力されるＭＭＴＰパケットのペイロードのデータ部分を抽出する（ステップＳ１０）。
また、暗号化装置１は、スクランブル方式設定手段１１によって、ポリシ設定手段１０により設定されたスクランブル方式識別子を、スクランブル方式を識別する情報として、スクランブル手段１５に対して設定する（ステップＳ１１）。また、このとき、スクランブル方式設定手段１１は、ヘッダ再構成手段１６にスクランブル方式識別子を通知する（不図示）。
【００６７】
そして、暗号化装置１は、初期値切り替え設定手段１３によって、ポリシ設定手段１０からの初期値制御情報の設定により、カウンタ初期値の生成方法を判定する（ステップＳ１２）。なお、このとき、初期値切り替え設定手段１３は、ヘッダ再構成手段１６に初期値制御情報の値を通知する（不図示）。
【００６８】
ここで、初期値制御情報の値が“０”の場合、すなわち、復号装置２側でカウンタ初期値を生成する場合、暗号化装置１は、初期値設定手段１４の第１初期値生成手段１４ａを起動させる（ステップＳ１３）。
そして、暗号化装置１は、パケット特定情報設定手段１２が、ポリシ設定手段１０からのパケット特定情報（パケット識別子およびパケットシーケンス番号）を第１初期値生成手段１４ａに設定し、第１初期値生成手段１４ａが、そのパケット特定情報からカウンタ初期値を生成する（ステップＳ１４）。このとき、パケット特定情報設定手段１２は、ヘッダ再構成手段１６にパケット特定情報を通知する（不図示）。そして、暗号化装置１は、ステップＳ１８に動作を進める。
【００６９】
一方、ステップＳ１２において、初期値制御情報の値が“１”の場合、すなわち、復号装置２側でカウンタ初期値を生成しない場合、暗号化装置１は、初期値設定手段１４の第２初期値生成手段１４ｂを起動させる（ステップＳ１５）。
そして、暗号化装置１は、第２初期値生成手段１４ｂによって、乱数によりカウンタ初期値を生成する（ステップＳ１６）。そして、暗号化装置１は、ヘッダ再構成手段１６によって、カウンタ初期値をヘッダに設定する（ステップＳ１７）。その後、暗号化装置１は、ステップＳ１８に動作を進める。
【００７０】
ステップＳ１４またはステップＳ１７の動作後、暗号化装置１は、初期値設定手段１４によって、ステップＳ１４で生成されたカウンタ初期値またはステップＳ１６で生成されたカウンタ初期値を、スクランブル手段１５に対して設定する（ステップＳ１８）。
そして、暗号化装置１は、スクランブル手段１５によって、ステップＳ１１で設定されたスクランブル方式により、ステップＳ１８で設定されたカウンタ初期値を用いて、ステップＳ１０で抽出されたデータをカウンタモードでスクランブル（ブロック暗号）する（ステップＳ１９）。
【００７１】
その後、暗号化装置１は、ヘッダ再構成手段１６によって、スクランブル方式を示すスクランブル方式識別子と、初期値制御情報の値を示すＭＭＴスクランブル制御ビットと、パケット特定情報であるパケット識別子およびパケットシーケンス番号と、を含んだヘッダを再構成し、暗号化データを含むＭＭＴＰパケットを構成する（ステップ２０）。
【００７２】
以上の動作によって、暗号化装置１は、ＭＭＴＰパケットのペイロードのデータ部分をカウンタモードで暗号化する際に、カウンタ初期値を逐次ＭＭＴＰパケットに付加するか、復号装置２で生成するかを、設定により柔軟に切り替えることができる。
【００７３】
＜復号装置の動作＞
次に、図７を参照（構成については、適宜図５参照）して、本発明の実施形態に係る復号装置２の動作について説明する。
【００７４】
まず、復号装置２は、パケットヘッダ抽出手段２０によって、暗号化装置１（図２参照）で生成されたＭＭＴＰパケット（暗号化パケット）から、ヘッダを抽出する（ステップＳ３０）。
そして、復号装置２は、スクランブル方式設定手段２３によって、ステップＳ３０で抽出されたヘッダに設定されているスクランブル方式識別子で特定されるスクランブル方式（ＡＥＳ、Ｃａｍｅｌｌｉａ等）をデスクランブル手段２４に設定する（ステップＳ３１）。なお、スクランブル方式は、予めＣＡＴやＭＰＴ等の制御信号を用いて取得してもよく、その場合、復号装置２は、ステップＳ３１の動作を省略してもよい。
【００７５】
そして、復号装置２は、初期値切り替え判定手段２１によって、ステップＳ３０で抽出されたヘッダ（拡張領域）において、初期値制御情報（「ＭＭＴスクランブル制御ビット」（図４参照））を参照し、カウンタ初期値を生成するか、ヘッダに設定されたカウンタ初期値を使用するかの判定を行う（ステップＳ３２）。
【００７６】
ここで、初期値制御情報（ＭＭＴスクランブル制御ビット）の値が“０”の場合、すなわち、カウンタ初期値を生成する場合、復号装置２は、初期値設定手段２２の初期値生成手段２２ａを起動させる（ステップＳ３３）。
そして、復号装置２は、初期値生成手段２２ａによって、ステップＳ３０で抽出されたヘッダから、パケット特定情報（パケット識別子およびパケットシーケンス番号）を抽出する（ステップＳ３４）。
そして、復号装置２は、初期値生成手段２２ａによって、ステップＳ３４で抽出されたパケット特定情報から、カウンタ初期値を生成する（ステップＳ３５）。そして、復号装置２は、ステップＳ３８に動作を進める。
【００７７】
一方、ステップＳ３２において、初期値制御情報（ＭＭＴスクランブル制御ビット）の値が“１”の場合、すなわち、ヘッダに設定されたカウンタ初期値を使用する場合、復号装置２は、初期値設定手段２２の初期値抽出手段２２ｂを起動させる（ステップＳ３６）。
そして、復号装置２は、初期値抽出手段２２ｂによって、ステップＳ３０で抽出されたヘッダから、カウンタ初期値（「ＭＭＴスクランブル初期値情報」（図４参照））を抽出する（ステップＳ３７）。そして、復号装置２は、ステップＳ３８に動作を進める。
【００７８】
ステップＳ３５またはステップＳ３７の動作後、復号装置２は、初期値設定手段２２によって、ステップＳ３５で生成されたカウンタ初期値またはステップＳ３７で抽出されたカウンタ初期値を、デスクランブル手段２４に対して設定する（ステップＳ３８）。
そして、復号装置２は、デスクランブル手段２４によって、ステップＳ３１で設定されたスクランブル方式により、ステップＳ３８で設定されたカウンタ初期値を用いて、ＭＭＴＰパケットのペイロードのデータ部分をカウンタモードでデスクランブル（ブロック復号）する（ステップＳ３９）。
【００７９】
以上の動作によって、復号装置２は、ＭＭＴＰパケットのヘッダに設定されているＭＭＴスクランブル制御ビットによって、カウンタ初期値を生成するか、ＭＭＴＰパケットのヘッダに設定されているカウンタ初期値を使用するかを、柔軟に切り替えることができる。
【００８０】
以上、本発明の実施形態に係る暗号化装置１および復号装置２の構成および動作について説明したが、本発明はこの実施形態に限定されるものではない。
【００８１】
（変形例１）
暗号化装置１では、スクランブル方式設定手段１１と、パケット特定情報設定手段１２と、初期値切り替え設定手段１３と、それぞれ、ポリシごとに個別に設けたが、これらの各手段は、そのポリシを参照したい手段の内部に備える構成であっても構わない。
例えば、スクランブル方式設定手段１１は、スクランブル方式を参照したいスクランブル手段１５およびヘッダ再構成手段１６の内部に備えてもよい。また、パケット特定情報設定手段１２は、パケット特定情報を参照したい初期値設定手段１４およびヘッダ再構成手段１６の内部に備えてもよい。また、初期値切り替え設定手段１３は、初期値制御情報を参照したい初期値設定手段１４およびヘッダ再構成手段１６の内部に備えてもよい。
また、ポリシ設定手段１０は、必ずしも暗号化装置１内部に備える必要はない。その場合、スクランブル方式設定手段１１、パケット特定情報設定手段１２および初期値切り替え設定手段１３は、それぞれ個別に、外部から適宜必要は情報が設定されることとすればよい。
【００８２】
（変形例２）
暗号化装置１では、第２初期値生成手段１４ｂにおいて乱数によりカウンタ初期値を生成した。しかし、第２初期値生成手段１４ｂは、第１初期値生成手段１４ａと同じ生成アルゴリズム（前記式（１））によってカウンタ初期値を生成することとしても構わない。
また、その場合、第１初期値生成手段１４ａと第２初期値生成手段１４ｂとを個別に設けずに１つの初期値生成手段に統合してもよい。ただし、その場合は、初期値切り替え設定手段１３によって統合した初期値生成手段が起動されることになる。そこで、初期値切り替え設定手段１３において、復号装置２側でカウンタ初期値を生成しないと判定された場合のみ、統合した初期値生成手段が、生成したカウンタ初期値をヘッダ再構成手段１６に出力することとすればよい。
（変形例３）
暗号化装置１では、パケット特定情報設定手段１２が、ポリシ設定手段１０によって、パケット特定情報を設定されることとした。しかし、パケット特定情報設定手段１２は、外部から入力されるパケットのヘッダから、パケット特定情報を取得することとしてもよい。
【００８３】
（変形例４）
暗号化装置１では、パケット特定情報として、パケット識別子とパケットシーケンス番号とを用いたが、個々のパケットを識別可能であれば、これに限定されるものではない。例えば、パケット識別子の代わりに、パケットの配信時刻を示すタイムスタンプ（図３中、ｔｉｍｅｓｔａｍｐ）を用いてもよい。
【００８４】
（変形例５）
暗号化装置１および復号装置２では、スクランブル方式設定手段１１，２３を設けたが、スクランブル方式を固定にする場合、必ずしも、スクランブル方式設定手段１１，２３を設ける必要はない。
【００８５】
（変形例６）
暗号化装置１および復号装置２では、パケットとして、ＭＭＴＰパケットを例に説明したが、ペイロードのデータをカウンタモードのスクランブル方式によって暗号化および復号可能なパケットであれば、他のパケットであっても構わない。
【符号の説明】
【００８６】
Ｓ      放送システム
１      暗号化装置
１０    ポリシ設定手段
１１    スクランブル方式設定手段
１２    パケット特定情報設定手段
１３    初期値切り替え設定手段
１４    初期値設定手段
１４ａ  第１初期値生成手段（初期値生成手段）
１４ｂ  第２初期値生成手段（初期値生成手段）
１５    スクランブル手段
１６    ヘッダ再構成手段
２      復号装置
２０    パケットヘッダ抽出手段
２１    初期値切り替え判定手段（初期値制御情報判定手段）
２２    初期値設定手段
２２ａ  初期値生成手段
２２ｂ  初期値抽出手段
２３    スクランブル方式設定手段
２４    デスクランブル手段
１００  送信装置
２００  受信装置
【図１】
0006464310.tif 000003
【図２】
0006464310.tif 000004
【図３】
0006464310.tif 000005
【図４】
0006464310.tif 000006
【図５】
0006464310.tif 000007
【図６】
0006464310.tif 000008
【図７】
0006464310.tif 000009
【図８】
0006464310.tif 000010