(57)【特許請求の範囲】
【請求項１】
ブロック単位で可変長符号化された画像データのサイズを示すサイズ情報と、前記画像データを構成する可変長符号化されたブロックの数を示すブロック数情報とを入力する入力部と、
前記入力部により入力されたサイズ情報とブロック数情報とに基づいて、前記画像データのうち暗号化される部分のデータサイズ単位である暗号化データサイズと前記画像データのうち暗号化されない部分のデータサイズ単位である非暗号化データサイズとを処理装置により算出するサイズ計算部と、
前記画像データを、先頭から交互に、前記サイズ計算部により算出された暗号化データサイズの第１データと前記サイズ計算部により算出された非暗号化データサイズの第２データとに分け、各第１データを処理装置により暗号化して、前記画像データの暗号化データを出力する暗号処理部と
を備えることを特徴とする画像暗号化装置。
【請求項２】
前記サイズ計算部は、前記入力部により入力されたサイズ情報が示す画像データのサイズを前記入力部により入力されたブロック数情報が示すブロックの数で割って、前記画像データを構成する可変長符号化されたブロックの平均サイズを求め、求めたブロックの平均サイズに所定の第１係数を掛けて前記暗号化データサイズを算出することを特徴とする請求項１の画像暗号化装置。
【請求項３】
前記サイズ計算部は、求めたブロックの平均サイズに所定の第２係数を掛けて前記非暗号化データサイズを算出することを特徴とする請求項２の画像暗号化装置。
【請求項４】
前記画像データは、フレーム内予測とフレーム間予測とを行う動画像符号化方式によって符号化されたデータであり、
前記サイズ計算部は、前記画像データがフレーム内予測を行ったデータである場合、前記非暗号化データサイズとして、前記画像データがフレーム間予測を行ったデータである場合より小さい値を算出することを特徴とする請求項１から３のいずれかの画像暗号化装置。
【請求項５】
コンテキスト適応型二値算術符号を用いてブロック単位で符号化された画像データのサイズを示すサイズ情報と、前記画像データを構成する可変長符号化されたブロックの数を示すブロック数情報とを入力する入力部と、
前記入力部により入力されたサイズ情報とブロック数情報とに基づいて、前記画像データのうち暗号化される部分のデータサイズである暗号化データサイズを処理装置により算出するサイズ計算部と、
前記画像データのうち、先頭から、前記サイズ計算部により算出された暗号化データサイズのデータを処理装置により暗号化して、前記画像データの暗号化データを出力する暗号処理部と
を備えることを特徴とする画像暗号化装置。
【請求項６】
前記サイズ計算部は、算出した暗号化データサイズを所定ビットの整数倍に調整することを特徴とする請求項１から５のいずれかの画像暗号化装置。
【請求項７】
前記暗号処理部は、前記画像データの先頭に付加されたヘッダデータを暗号化して前記暗号化データの一部として出力することを特徴とする請求項１から６のいずれかの画像暗号化装置。
【請求項８】
前記画像データは、スライス層のデータであり、
前記画像データを構成する可変長符号化されたブロックは、マクロブロック層のデータであることを特徴とする請求項１から７のいずれかの画像暗号化装置。
【請求項９】
ブロック単位で可変長符号化された画像データのサイズを示すサイズ情報と、前記画像データを構成する可変長符号化されたブロックの数を示すブロック数情報とを入力する入力部と、
前記入力部により入力されたサイズ情報とブロック数情報とに基づいて、前記画像データのうち暗号化される部分のデータサイズ単位である暗号化データサイズと前記画像データのうち暗号化されない部分のデータサイズ単位である非暗号化データサイズとを処理装置により算出するサイズ計算部と、
前記画像データの暗号化データを、先頭から交互に、前記サイズ計算部により算出された暗号化データサイズの第１データと前記サイズ計算部により算出された非暗号化データサイズの第２データとに分け、各第１データを処理装置により復号して、前記画像データを出力する復号処理部と
を備えることを特徴とする画像復号装置。
【請求項１０】
コンテキスト適応型二値算術符号を用いてブロック単位で符号化された画像データのサイズを示すサイズ情報と、前記画像データを構成する可変長符号化されたブロックの数を示すブロック数情報とを入力する入力部と、
前記入力部により入力されたサイズ情報とブロック数情報とに基づいて、前記画像データのうち暗号化される部分のデータサイズである暗号化データサイズを処理装置により算出するサイズ計算部と、
前記画像データの暗号化データのうち、先頭から、前記サイズ計算部により算出された暗号化データサイズのデータを処理装置により復号して、前記画像データを出力する復号処理部と
を備えることを特徴とする画像復号装置。
【請求項１１】
入力部が、ブロック単位で可変長符号化された画像データのサイズを示すサイズ情報と、前記画像データを構成する可変長符号化されたブロックの数を示すブロック数情報とを入力し、
サイズ計算部が、前記入力部により入力されたサイズ情報とブロック数情報とに基づいて、前記画像データのうち暗号化される部分のデータサイズ単位である暗号化データサイズと前記画像データのうち暗号化されない部分のデータサイズ単位である非暗号化データサイズとを処理装置により算出し、
暗号処理部が、前記画像データを、先頭から交互に、前記サイズ計算部により算出された暗号化データサイズの第１データと前記サイズ計算部により算出された非暗号化データサイズの第２データとに分け、各第１データを処理装置により暗号化して、前記画像データの暗号化データを出力することを特徴とする画像暗号化方法。
【請求項１２】
入力部が、コンテキスト適応型二値算術符号を用いてブロック単位で符号化された画像データのサイズを示すサイズ情報と、前記画像データを構成する可変長符号化されたブロックの数を示すブロック数情報とを入力し、
サイズ計算部が、前記入力部により入力されたサイズ情報とブロック数情報とに基づいて、前記画像データのうち暗号化される部分のデータサイズである暗号化データサイズを処理装置により算出し、
暗号処理部が、前記画像データのうち、先頭から、前記サイズ計算部により算出された暗号化データサイズのデータを処理装置により暗号化して、前記画像データの暗号化データを出力することを特徴とする画像暗号化方法。
【請求項１３】
入力部が、ブロック単位で可変長符号化された画像データのサイズを示すサイズ情報と、前記画像データを構成する可変長符号化されたブロックの数を示すブロック数情報とを入力し、
サイズ計算部が、前記入力部により入力されたサイズ情報とブロック数情報とに基づいて、前記画像データのうち暗号化される部分のデータサイズ単位である暗号化データサイズと前記画像データのうち暗号化されない部分のデータサイズ単位である非暗号化データサイズとを処理装置により算出し、
復号処理部が、前記画像データの暗号化データを、先頭から交互に、前記サイズ計算部により算出された暗号化データサイズの第１データと前記サイズ計算部により算出された非暗号化データサイズの第２データとに分け、各第１データを処理装置により復号して、前記画像データを出力することを特徴とする画像復号方法。
【請求項１４】
入力部が、コンテキスト適応型二値算術符号を用いてブロック単位で符号化された画像データのサイズを示すサイズ情報と、前記画像データを構成する可変長符号化されたブロックの数を示すブロック数情報とを入力し、
サイズ計算部が、前記入力部により入力されたサイズ情報とブロック数情報とに基づいて、前記画像データのうち暗号化される部分のデータサイズである暗号化データサイズを処理装置により算出し、
復号処理部が、前記画像データの暗号化データのうち、先頭から、前記サイズ計算部により算出された暗号化データサイズのデータを処理装置により復号して、前記画像データを出力することを特徴とする画像復号方法。
【請求項１５】
入力部が、ブロック単位で可変長符号化された画像データのサイズを示すサイズ情報と、前記画像データを構成する可変長符号化されたブロックの数を示すブロック数情報とを入力する入力処理と、
サイズ計算部が、前記入力処理により入力されたサイズ情報とブロック数情報とに基づいて、前記画像データのうち暗号化される部分のデータサイズ単位である暗号化データサイズと前記画像データのうち暗号化されない部分のデータサイズ単位である非暗号化データサイズとを処理装置により算出するサイズ計算処理と、
暗号処理部が、前記画像データを、先頭から交互に、前記サイズ計算処理により算出された暗号化データサイズの第１データと前記サイズ計算処理により算出された非暗号化データサイズの第２データとに分け、各第１データを処理装置により暗号化して、前記画像データの暗号化データを出力する暗号処理と
をコンピュータに実行させることを特徴とする画像暗号化プログラム。
【請求項１６】
入力部が、コンテキスト適応型二値算術符号を用いてブロック単位で符号化された画像データのサイズを示すサイズ情報と、前記画像データを構成する可変長符号化されたブロックの数を示すブロック数情報とを入力する入力処理と、
サイズ計算部が、前記入力処理により入力されたサイズ情報とブロック数情報とに基づいて、前記画像データのうち暗号化される部分のデータサイズである暗号化データサイズを処理装置により算出するサイズ計算処理と、
暗号処理部が、前記画像データのうち、先頭から、前記サイズ計算処理により算出された暗号化データサイズのデータを処理装置により暗号化して、前記画像データの暗号化データを出力する暗号処理と
をコンピュータに実行させることを特徴とする画像暗号化プログラム。
【請求項１７】
入力部が、ブロック単位で可変長符号化された画像データのサイズを示すサイズ情報と、前記画像データを構成する可変長符号化されたブロックの数を示すブロック数情報とを入力する入力処理と、
サイズ計算部が、前記入力処理により入力されたサイズ情報とブロック数情報とに基づいて、前記画像データのうち暗号化される部分のデータサイズ単位である暗号化データサイズと前記画像データのうち暗号化されない部分のデータサイズ単位である非暗号化データサイズとを処理装置により算出するサイズ計算処理と、
復号処理部が、前記画像データの暗号化データを、先頭から交互に、前記サイズ計算処理により算出された暗号化データサイズの第１データと前記サイズ計算処理により算出された非暗号化データサイズの第２データとに分け、各第１データを処理装置により復号して、前記画像データを出力する復号処理と
をコンピュータに実行させることを特徴とする画像復号プログラム。
【請求項１８】
入力部が、コンテキスト適応型二値算術符号を用いてブロック単位で符号化された画像データのサイズを示すサイズ情報と、前記画像データを構成する可変長符号化されたブロックの数を示すブロック数情報とを入力する入力処理と、
サイズ計算部が、前記入力処理により入力されたサイズ情報とブロック数情報とに基づいて、前記画像データのうち暗号化される部分のデータサイズである暗号化データサイズを処理装置により算出するサイズ計算処理と、
復号処理部が、前記画像データの暗号化データのうち、先頭から、前記サイズ計算処理により算出された暗号化データサイズのデータを処理装置により復号して、前記画像データを出力する復号処理と
をコンピュータに実行させることを特徴とする画像復号プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像暗号化装置及び画像復号装置及び画像暗号化方法及び画像復号方法及び画像暗号化プログラム及び画像復号プログラムに関するものである。
【背景技術】
【０００２】
近年、ビデオや監視映像等、動画像の電子化に伴い、これらのコンテンツを不正な閲覧から守るため、データの暗号化が求められている。
【０００３】
動画像はＭＰＥＧ２やＨ．２６４等、フレーム内予測とフレーム間予測を使って圧縮・符号化されることが多い。フレーム内予測とは、同一フレーム内の情報のみで圧縮を行う方式であり、この方式で符号化されるフレームはＩフレームと呼ばれる。フレーム間予測とは、前後するフレーム内の情報を用いて圧縮を行う方式であり、この方式で符号化されるフレームはＰフレームやＢフレームと呼ばれる。ＭＰＥＧ２やＨ．２６４等の動画像の圧縮では、ＰフレームやＢフレームは必須ではなく、Ｉフレームのみで符号化することも可能である。これは、圧縮率と品質とのトレードオフで決まる。また、組み込みシステムでは、リアルタイム性を優先するために、演算時間のかかるフレーム間予測を行わずに、フレーム内予測のみのフレームで動画像データを構成する場合もある。
【０００４】
動画像の秘匿を行う場合、負荷の低減の観点から、動画像データ全体を暗号化するのではなく、動画像データの一部を暗号化することで、負荷低減と秘匿性を両立させる方法が提案されている（例えば、特許文献１〜３参照）。特許文献１では、ＧＯＰ（Ｇｒｏｕｐ・Ｏｆ・Ｐｉｃｔｕｒｅｓ）層、スライス層等の開始コードに続くパラメータや符号化データを暗号化する方法が示されている。特許文献２では、フレーム内データのみを暗号化する方法が示されている。特許文献３では、圧縮画像データについて所定の周期で暗号データと暗号化しないデータを配置する方法が示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平５−９５３５２号公報
【特許文献２】特開平８−１６３５３３号公報
【特許文献３】特開２００９−２１３０８３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１では、層の開始コードに続くパラメータと符号化データを部分的に暗号化する。しかし、一般に、層の開始コードに続くパラメータは固定値であることが多く、一度推定されると、暗号化の如何に関わらず画像の復号が可能となってしまう。また、層の開始コードに続く符号化データの一部のみを暗号化する場合、特定の条件が重なると、暗号を解かなくても、当該層に含まれる暗号化されていない符号化データをデコード可能となり、原画像に関する部分情報を推定される可能性がある。
【０００７】
特許文献２では、Ｉフレームを暗号化することで、Ｐ／Ｂフレームのデコードが不可能となり、その結果、動画像を完全に秘匿できるとしている。しかし、Ｐ／Ｂフレームのみでも、対象の一部（エッジ／動き等）が推定可能な程度に復元できることがわかってきた。また、Ｉフレームのみで符号化された動画像を暗号化する場合に、全フレームデータを暗号化しなくてはならず、暗号化に多大な演算コストがかかる。
【０００８】
特許文献３では、圧縮画像データについて所定の周期で暗号データと暗号化しないデータを配置する。しかし、この場合、非暗号化データを配置する周期を設計者が決めなければならない。非暗号化データサイズを大きくすれば、演算負荷は下げられるが、暗号化されていない信号から原画像に関する部分情報がデコードできてしまうリスクが高まる。逆に、非暗号化データサイズを小さくすれば部分情報がデコードできてしまうリスクは低くなるが、演算負荷が高まる。この負荷と安全性のトレードオフについて、特許文献３では指針が示されていないため、設計者が試行錯誤的に決めなければならない。また、監視映像のように、時間によって、エンコードされる画像データが変化する場合、仮に特定のサンプル画像でチューニングを行っても、実運用時の画像データの変化に対応できない。
【０００９】
本発明は、例えば、演算負荷低減と秘匿性を両立し、かつ、負荷と安全性のトレードオフについて、設計者がチューニングをするための指標を与え、かつ、画像データの特性の変化にも対応可能な画像暗号化装置を提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明の一の態様に係る画像暗号化装置は、
ブロック単位で可変長符号化された画像データのサイズを示すサイズ情報と、前記画像データを構成する可変長符号化されたブロックの数を示すブロック数情報とを入力する入力部と、
前記入力部により入力されたサイズ情報とブロック数情報とに基づいて、前記画像データのうち暗号化される部分のデータサイズ単位である暗号化データサイズと前記画像データのうち暗号化されない部分のデータサイズ単位である非暗号化データサイズとを処理装置により算出するサイズ計算部と、
前記画像データを、先頭から交互に、前記サイズ計算部により算出された暗号化データサイズの第１データと前記サイズ計算部により算出された非暗号化データサイズの第２データとに分け、各第１データを処理装置により暗号化して出力する暗号処理部と
を備えることを特徴とする。
【発明の効果】
【００１１】
本発明の一の態様によれば、演算負荷低減と秘匿性を両立し、かつ、負荷と安全性のトレードオフについて、設計者がチューニングをするための指標を与え、かつ、画像データの特性の変化にも対応可能な画像暗号化装置を提供することが可能となる。
【図面の簡単な説明】
【００１２】
【図１】実施の形態１に係る画像暗号化装置の構成を示すブロック図。
【図２】実施の形態１に係る画像暗号化装置の暗号化部の構成を示すブロック図。
【図３】実施の形態１に係る画像暗号化装置のハードウェア構成の一例を示す図。
【図４】実施の形態１に係る画像暗号化装置のサイズ計算部の動作を示すフローチャート。
【図５】実施の形態１に係る画像暗号化装置の暗号処理部の動作を示すフローチャート。
【図６】実施の形態１に係る画像暗号化装置が出力するデータのフォーマットを示す図。
【図７】実施の形態１に係る画像復号装置の構成を示すブロック図。
【図８】実施の形態１に係る画像復号装置の復号部の構成を示すブロック図。
【図９】実施の形態１に係る画像復号装置のサイズ計算部の動作を示すフローチャート。
【図１０】実施の形態１に係る画像復号装置の復号処理部の動作を示すフローチャート。
【図１１】実施の形態２に係る画像暗号化装置の暗号処理部の動作を示すフローチャート。
【図１２】実施の形態１に係る画像復号装置の復号処理部の動作を示すフローチャート。
【発明を実施するための形態】
【００１３】
以下、本発明の実施の形態について、図を用いて説明する。
【００１４】
実施の形態１．
以下、本実施の形態について、Ｈ．２６４を例に説明する。ここで、Ｈ．２６４は、ＶＣＬ（ビデオ符号化層）とＮＡＬ（ネットワーク抽象化層）の２つの層からなる。Ｈ．２６４では、１つのピクチャ（画像）が複数の種類のＮＡＬユニットに分割して符号化される。なお、本実施の形態は、ＭＰＥＧ２等、他の動画像フォーマットにも適用できる。また、ＪＰＥＧ等の静止画像にも適用可能である。
【００１５】
図１は、本実施の形態に係る画像暗号化装置１００の構成を示すブロック図である。
【００１６】
図１において、画像暗号化装置１００は、ＮＡＬユニット抽出部１０１、ＮＡＬユニット判定部１０２、パラメータ解析部１０３、暗号鍵生成部１０４、暗号化部１０５、ストリーム合成部１０６を備える。
【００１７】
また、図示していないが、画像暗号化装置１００は、処理装置、記憶装置、入力装置、出力装置等のハードウェアを備える。ハードウェアは画像暗号化装置１００の各部によって利用される。例えば、処理装置は、画像暗号化装置１００の各部でデータや情報の演算、加工、読み取り、書き込み等を行うために利用される。記憶装置は、そのデータや情報を記憶するために利用される。また、入力装置は、そのデータや情報の入力を受け付けるために、出力装置は、そのデータや情報を出力するために利用される。
【００１８】
ＮＡＬユニット抽出部１０１は、動画像データストリーム１０７の入力を受け付ける。ＮＡＬユニット抽出部１０１は、入力された動画像データストリーム１０７を複数のＮＡＬユニット１０８に分解して出力する。ＮＡＬユニット１０８は、ＳＰＳ（シーケンスパラメータセット）、ＰＰＳ（ピクチャパラメータセット）のパラメータセットＮＡＬユニット１０９と、Ｉスライスデータ、Ｂスライスデータ、Ｐスライスデータ等のスライスデータＮＡＬユニット１１０と、ＡＵＤ（アクセスユニットデリミッタ）、ＳＥＩ（付加拡張情報）等のその他ＮＡＬユニット１１１とを含む。Ｈ．２６４のバイトストリームフォーマットの場合、ＮＡＬユニット１０８のデータ中に“００ｈ００ｈ０３ｈ０ｘｈ”（ｘ＝０，１，２，３）というパターンが存在した場合、“００ｈ００ｈ０ｘｈ”（ｘ＝０，１，２，３）に変換する処理が必要となる。ＮＡＬユニット抽出部１０１は必要に応じてこの処理を行う。
【００１９】
ＮＡＬユニット判定部１０２は、ＮＡＬユニット１０８の種類を判定する。ＮＡＬユニット判定部１０２は、判定したＮＡＬユニット１０８の種類がパラメータセットＮＡＬユニット１０９であれば、そのＮＡＬユニット１０８をパラメータ解析部１０３とストリーム合成部１０６に送る。ＮＡＬユニット判定部１０２は、判定したＮＡＬユニット１０８の種類がスライスデータＮＡＬユニット１１０であれば、そのＮＡＬユニット１０８を暗号化部１０５に送る。ＮＡＬユニット判定部１０２は、判定したＮＡＬユニット１０８の種類がその他ＮＡＬユニット１１１であれば、そのＮＡＬユニット１０８をストリーム合成部１０６に送る。また、ＮＡＬユニット判定部１０２は、スライスデータＮＡＬユニットサイズ１１９を求め、暗号化部１０５に送る。
【００２０】
パラメータ解析部１０３は、パラメータセットＮＡＬユニット１０９を解析し、画像サイズ等を含む画像パラメータ１１２を生成し、暗号化部１０５に送る。
【００２１】
暗号鍵生成部１０４は、暗号鍵導出用データ１１３の入力を受け付ける。暗号鍵生成部１０４は、入力された暗号鍵導出用データ１１３を用いて暗号鍵データ１１５及び暗号鍵情報ＮＡＬユニット１１４を生成する。暗号鍵生成部１０４は、暗号鍵データ１１５を暗号化部１０５に、暗号鍵情報ＮＡＬユニット１１４をストリーム合成部１０６に送る。暗号鍵情報ＮＡＬユニット１１４には、復号時に参照する鍵のインデックス情報や、暗号鍵データ１１５の生成に使用した乱数データ等を格納する。
【００２２】
暗号化部１０５は、画像パラメータ１１２やスライスデータＮＡＬユニットサイズ１１９を参照して、後述する暗号化データサイズを算出する。暗号化部１０５は、暗号鍵データ１１５を使って、スライスデータＮＡＬユニット１１０を暗号化し、暗号化スライスデータＮＡＬユニット１１７を生成してストリーム合成部１０６に送信する。また、暗号化部１０５は、暗号化データサイズを算出するためのパラメータを復号情報ＮＡＬユニット１１６に格納してストリーム合成部１０６に送信する。
【００２３】
ストリーム合成部１０６は、各部から送られたＮＡＬユニット１０８（パラメータセットＮＡＬユニット１０９、その他ＮＡＬユニット１１１、復号情報ＮＡＬユニット１１６、暗号化スライスデータＮＡＬユニット１１７）を合成して暗号化動画像データストリーム１１８を生成する。Ｈ．２６４のバイトストリームフォーマットの場合、ＮＡＬユニット１０８のデータ中に“００ｈ００ｈ０ｘｈ”（ｘ＝０，１，２，３）というパターンが存在した場合、“００ｈ００ｈ０３ｈ０ｘｈ”（ｘ＝０，１，２，３）に変換する処理が必要となる。ストリーム合成部１０６は必要に応じてこの処理を行う。
【００２４】
本実施の形態において、動画像エンコーダと組み合わせて暗号処理を行う場合は、画像暗号化装置１００からＮＡＬユニット抽出部１０１及びＮＡＬユニット判定部１０２を省略してもよい。この場合、動画像エンコーダから、別途パラメータセットＮＡＬユニット１０９、スライスデータＮＡＬユニット１１０、その他ＮＡＬユニット１１１、スライスデータＮＡＬユニットサイズ１１９を供給する。
【００２５】
図２は、暗号化部１０５の構成を示すブロック図である。
【００２６】
図２において、暗号化部１０５は、入力部２００、サイズ計算部２０１、暗号処理部２０２、復号情報ＮＡＬユニット生成部２０３を備える。
【００２７】
入力部２００は、ＮＡＬユニット判定部１０２からのスライスデータＮＡＬユニット１１０及びスライスデータＮＡＬユニットサイズ１１９、パラメータ解析部１０３からの画像パラメータ１１２をサイズ計算部２０１に入力する。また、入力部２００は、ＮＡＬユニット判定部１０２からのスライスデータＮＡＬユニット１１０及びスライスデータＮＡＬユニットサイズ１１９、暗号鍵生成部１０４からの暗号鍵データ１１５を暗号処理部２０２に入力する。
【００２８】
ここで、スライスデータＮＡＬユニット１１０は、ブロック単位で可変長符号化された画像データ（スライス層のデータ）と、画像データの先頭のマクロブロックアドレス等、画像データに関する情報を含むスライスヘッダとで構成される。画像データを構成する可変長符号化されたブロックは、それぞれマクロブロック（マクロブロック層のデータ）であり、それぞれのマクロブロックには、ピクチャ内での位置を示すマクロブロックアドレスが割り当てられる。本実施の形態では、ピクチャの先頭のマクロブロックから末尾のマクロブロックまで昇順にマクロブロックアドレスが割り当てられているものとする。スライスデータＮＡＬユニットサイズ１１９は、スライスデータＮＡＬユニット１１０のサイズを示す情報である。画像パラメータ１１２は、ピクチャを構成するマクロブロックの数等、ピクチャに関する情報を含む。
【００２９】
スライスデータＮＡＬユニット１１０、スライスデータＮＡＬユニットサイズ１１９、画像パラメータ１１２には、スライスデータＮＡＬユニット１１０ごとに、画像データのサイズを示すサイズ情報と、画像データを構成するマクロブロックの数を示すブロック数情報とが含まれる。例えば、後述するように、スライスヘッダ（具体的には、スライスヘッダを解析して求められるスライスヘッダのサイズ）とスライスデータＮＡＬユニットサイズ１１９はサイズ情報として利用することができる。また、スライスヘッダ（具体的には、スライスヘッダで示される画像データの先頭のマクロブロックアドレス）と画像パラメータ１１２（具体的には、ピクチャを構成するマクロブロックの数）はブロック数情報として利用することができる。なお、スライスヘッダに、画像データに関する情報として、サイズ情報やブロック数情報を直接含めるようにしても構わない。
【００３０】
サイズ計算部２０１は、画像パラメータ１１２、スライスデータＮＡＬユニットサイズ１１９、スライスデータＮＡＬユニット１１０を入力として（即ち、入力部２００により入力されたサイズ情報とブロック数情報とに基づいて）、暗号化データサイズ２０４及び非暗号化データサイズ２０５を処理装置により算出する。また、サイズ計算部２０１は、暗号化データサイズ２０４及び非暗号化データサイズ２０５の導出に必要なパラメータを復号情報２０６として、復号情報ＮＡＬユニット生成部２０３に渡す。
【００３１】
ここで、暗号化データサイズ２０４は、スライスデータＮＡＬユニット１１０の画像データのうち、暗号処理部２０２により暗号化される部分のデータサイズ単位である。非暗号化データサイズ２０５は、スライスデータＮＡＬユニット１１０の画像データのうち、暗号処理部２０２により暗号化されない部分のデータサイズ単位である。
【００３２】
暗号処理部２０２は、暗号鍵データ１１５、スライスデータＮＡＬユニットサイズ１１９、スライスデータＮＡＬユニット１１０、暗号化データサイズ２０４、非暗号化データサイズ２０５を入力として、暗号化スライスデータＮＡＬユニット１１７を生成する。具体的には、暗号処理部２０２は、スライスデータＮＡＬユニット１１０の画像データを、先頭から交互に、サイズ計算部２０１により算出された暗号化データサイズ２０４の第１データとサイズ計算部２０１により算出された非暗号化データサイズ２０５の第２データとに分け、暗号鍵データ１１５を用いて各第１データを処理装置により暗号化し、暗号化スライスデータＮＡＬユニット１１７として出力する。暗号処理部２０２は、必要に応じて復号補助情報２０７も生成する。
【００３３】
復号情報ＮＡＬユニット生成部２０３は、復号情報２０６を入力として、復号情報ＮＡＬユニット１１６を生成する。復号情報ＮＡＬユニット生成部２０３は、必要に応じて復号補助情報２０７も入力とする。
【００３４】
図３は、画像暗号化装置１００のハードウェア構成の一例を示す図である。
【００３５】
図３において、画像暗号化装置１００は、コンピュータであり、ＬＣＤ９０１（Ｌｉｑｕｉｄ・Ｃｒｙｓｔａｌ・Ｄｉｓｐｌａｙ）、キーボード９０２（Ｋ／Ｂ）、マウス９０３、ＦＤＤ９０４（Ｆｌｅｘｉｂｌｅ・Ｄｉｓｋ・Ｄｒｉｖｅ）、ＣＤＤ９０５（Ｃｏｍｐａｃｔ・Ｄｉｓｃ・Ｄｒｉｖｅ）、プリンタ９０６といったハードウェアデバイスを備えている。これらのハードウェアデバイスはケーブルや信号線で接続されている。ＬＣＤ９０１の代わりに、ＣＲＴ（Ｃａｔｈｏｄｅ・Ｒａｙ・Ｔｕｂｅ）、あるいは、その他の表示装置が用いられてもよい。マウス９０３の代わりに、タッチパネル、タッチパッド、トラックボール、ペンタブレット、あるいは、その他のポインティングデバイスが用いられてもよい。
【００３６】
画像暗号化装置１００は、プログラムを実行するＣＰＵ９１１（Ｃｅｎｔｒａｌ・Ｐｒｏｃｅｓｓｉｎｇ・Ｕｎｉｔ）を備えている。ＣＰＵ９１１は、処理装置の一例である。ＣＰＵ９１１は、バス９１２を介してＲＯＭ９１３（Ｒｅａｄ・Ｏｎｌｙ・Ｍｅｍｏｒｙ）、ＲＡＭ９１４（Ｒａｎｄｏｍ・Ａｃｃｅｓｓ・Ｍｅｍｏｒｙ）、通信ボード９１５、ＬＣＤ９０１、キーボード９０２、マウス９０３、ＦＤＤ９０４、ＣＤＤ９０５、プリンタ９０６、ＨＤＤ９２０（Ｈａｒｄ・Ｄｉｓｋ・Ｄｒｉｖｅ）と接続され、これらのハードウェアデバイスを制御する。ＨＤＤ９２０の代わりに、フラッシュメモリ、光ディスク装置、メモリカードリーダライタ又はその他の記憶媒体が用いられてもよい。
【００３７】
ＲＡＭ９１４は、揮発性メモリの一例である。ＲＯＭ９１３、ＦＤＤ９０４、ＣＤＤ９０５、ＨＤＤ９２０は、不揮発性メモリの一例である。これらは、記憶装置の一例である。通信ボード９１５、キーボード９０２、マウス９０３、ＦＤＤ９０４、ＣＤＤ９０５は、入力装置の一例である。また、通信ボード９１５、ＬＣＤ９０１、プリンタ９０６は、出力装置の一例である。
【００３８】
通信ボード９１５は、ＬＡＮ（Ｌｏｃａｌ・Ａｒｅａ・Ｎｅｔｗｏｒｋ）等に接続されている。通信ボード９１５は、ＬＡＮに限らず、ＩＰ−ＶＰＮ（Ｉｎｔｅｒｎｅｔ・Ｐｒｏｔｏｃｏｌ・Ｖｉｒｔｕａｌ・Ｐｒｉｖａｔｅ・Ｎｅｔｗｏｒｋ）、広域ＬＡＮ、ＡＴＭ（Ａｓｙｎｃｈｒｏｎｏｕｓ・Ｔｒａｎｓｆｅｒ・Ｍｏｄｅ）ネットワークといったＷＡＮ（Ｗｉｄｅ・Ａｒｅａ・Ｎｅｔｗｏｒｋ）、あるいは、インターネットに接続されていても構わない。ＬＡＮ、ＷＡＮ、インターネットは、ネットワークの一例である。
【００３９】
ＨＤＤ９２０には、オペレーティングシステム９２１（ＯＳ）、ウィンドウシステム９２２、プログラム群９２３、ファイル群９２４が記憶されている。プログラム群９２３のプログラムは、ＣＰＵ９１１、オペレーティングシステム９２１、ウィンドウシステム９２２により実行される。プログラム群９２３には、本実施の形態の説明において「〜部」として説明する機能を実行するプログラムが含まれている。プログラムは、ＣＰＵ９１１により読み出され実行される。ファイル群９２４には、本実施の形態の説明において、「〜データ」、「〜情報」、「〜ＩＤ（識別子）」、「〜フラグ」、「〜結果」として説明するデータや情報や信号値や変数値やパラメータが、「〜ファイル」や「〜データベース」や「〜テーブル」の各項目として含まれている。「〜ファイル」や「〜データベース」や「〜テーブル」は、ＲＡＭ９１４やＨＤＤ９２０等の記憶媒体に記憶される。ＲＡＭ９１４やＨＤＤ９２０等の記憶媒体に記憶されたデータや情報や信号値や変数値やパラメータは、読み書き回路を介してＣＰＵ９１１によりメインメモリやキャッシュメモリに読み出され、抽出、検索、参照、比較、演算、計算、制御、出力、印刷、表示といったＣＰＵ９１１の処理（動作）に用いられる。抽出、検索、参照、比較、演算、計算、制御、出力、印刷、表示といったＣＰＵ９１１の処理中、データや情報や信号値や変数値やパラメータは、メインメモリやキャッシュメモリやバッファメモリに一時的に記憶される。
【００４０】
本実施の形態の説明において用いるブロック図やフローチャートの矢印の部分は主としてデータや信号の入出力を示す。データや信号は、ＲＡＭ９１４等のメモリ、ＦＤＤ９０４のフレキシブルディスク（ＦＤ）、ＣＤＤ９０５のコンパクトディスク（ＣＤ）、ＨＤＤ９２０の磁気ディスク、光ディスク、ＤＶＤ（Ｄｉｇｉｔａｌ・Ｖｅｒｓａｔｉｌｅ・Ｄｉｓｃ）、あるいは、その他の記録媒体に記録される。また、データや信号は、バス９１２、信号線、ケーブル、あるいは、その他の伝送媒体により伝送される。
【００４１】
本実施の形態の説明において「〜部」として説明するものは、「〜回路」、「〜装置」、「〜機器」であってもよく、また、「〜ステップ」、「〜工程」、「〜手順」、「〜処理」であってもよい。即ち、「〜部」として説明するものは、ＲＯＭ９１３に記憶されたファームウェアで実現されていても構わない。あるいは、「〜部」として説明するものは、ソフトウェアのみ、あるいは、素子、デバイス、基板、配線といったハードウェアのみで実現されていても構わない。あるいは、「〜部」として説明するものは、ソフトウェアとハードウェアとの組み合わせ、あるいは、ソフトウェアとハードウェアとファームウェアとの組み合わせで実現されていても構わない。ファームウェアとソフトウェアは、プログラムとして、フレキシブルディスク、コンパクトディスク、磁気ディスク、光ディスク、ＤＶＤ等の記録媒体に記憶される。プログラムはＣＰＵ９１１により読み出され、ＣＰＵ９１１により実行される。即ち、プログラムは、本実施の形態の説明で述べる「〜部」としてコンピュータを機能させるものである。あるいは、プログラムは、本実施の形態の説明で述べる「〜部」の手順や方法をコンピュータに実行させるものである。
【００４２】
図４は、サイズ計算部２０１の動作を示すフローチャートである。なお、図４では、サイズ計算部２０１が、１ピクチャ分のスライスデータＮＡＬユニット１１０を受けて、１ピクチャを構成する全スライスデータＮＡＬユニット１１０の暗号化データサイズ２０４及び非暗号化データサイズ２０５を計算しているが、暗号化するスライスデータＮＡＬユニット１１０に応じて逐次的に計算してもよい。
【００４３】
ステップＳ３０１において、サイズ計算部２０１は、入力部２００により入力されたスライスデータＮＡＬユニット１１０を１ピクチャ単位で、マクロブロックアドレスの小さい順に処理装置によりソートする。なお、入力されるスライスデータＮＡＬユニット１１０がマクロブロックアドレスの小さい順にソートされていることが保証できる場合はこの処理を省いてもよい。以降、１ピクチャを構成するスライスデータＮＡＬユニット１１０の総数をＮ（ＮはＮ≧１となる整数）とし、各々のスライスデータＮＡＬユニット１１０をＳｌｉｃｅ［ｉ］（ｉは１≦ｉ≦Ｎとなる整数）と記す。画像データの先頭のマクロブロックアドレスをｆｉｒｓｔ＿ｍｂ＿ｉｎ＿ｓｌｉｃｅと記す。Ｓｌｉｃｅ［ｉ］のスライスデータＮＡＬユニットサイズ１１９をＳｌｉｃｅＬｅｎｇｔｈ［ｉ］、Ｓｌｉｃｅ［ｉ］に含まれるマクロブロックの数をＳｌｉｃｅＢｌｏｃｋ［ｉ］、Ｓｌｉｃｅ［ｉ］の暗号化データサイズ２０４をＥｎｃＬｅｎ［ｉ］、非暗号化データサイズ２０５をＮｏＥｎｃＬｅｎ［ｉ］と記す。ステップＳ３０１の処理が完了した時点で、Ｓｌｉｃｅ［ｉ］はｆｉｒｓｔ＿ｍｂ＿ｉｎ＿ｓｌｉｃｅの小さい順にソートされている。
【００４４】
ステップＳ３０２において、サイズ計算部２０１は、Ｓｌｉｃｅ［ｉ］のスライスヘッダを処理装置により解析し、スライスヘッダのデータ長を求める。以降、Ｓｌｉｃｅ［ｉ］のスライスヘッダのデータ長をＳｌｉｃｅＨｅａｄｅｒＬｅｎｇｔｈ［ｉ］と記す。サイズ計算部２０１は、ＳｌｉｃｅＬｅｎｇｔｈ［ｉ］とＳｌｉｃｅＨｅａｄｅｒＬｅｎｇｔｈ［ｉ］との差分をとることで、Ｓｌｉｃｅ［ｉ］に含まれる符号化された信号（画像データ）のデータ長を算出する。
【００４５】
ステップＳ３０３において、サイズ計算部２０１は、Ｓｌｉｃｅ［ｉ］のスライスヘッダからＳｌｉｃｅ［ｉ］のｆｉｒｓｔ＿ｍｂ＿ｉｎ＿ｓｌｉｃｅを、Ｓｌｉｃｅ［ｉ＋１］のスライスヘッダからＳｌｉｃｅ［ｉ＋１］のｆｉｒｓｔ＿ｍｂ＿ｉｎ＿ｓｌｉｃｅを取得し、下記の式１により、ＳｌｉｃｅＢｌｏｃｋ［ｉ］を処理装置により計算する。
ＳｌｉｃｅＢｌｏｃｋ［ｉ］＝（Ｓｌｉｃｅ［ｉ＋１］のｆｉｒｓｔ＿ｍｂ＿ｉｎ＿ｓｌｉｃｅ）−（Ｓｌｉｃｅ［ｉ］のｆｉｒｓｔ＿ｍｂ＿ｉｎ＿ｓｌｉｃｅ）・・・式１
【００４６】
ステップＳ３０４において、サイズ計算部２０１は、下記の式２により、ＥｎｃＬｅｎ［ｉ］を処理装置により計算する。また、サイズ計算部２０１は、下記の式３により、ＮｏＥｎｃＬｅｎ［ｉ］を処理装置により計算する。
ＥｎｃＬｅｎ［ｉ］＝Ｌｅ×｛（ＳｌｉｃｅＬｅｎｇｔｈ［ｉ］−ＳｌｉｃｅＨｅａｄｅｒＬｅｎｇｔｈ［ｉ］）／ＳｌｉｃｅＢｌｏｃｋ［ｉ］｝・・・式２
ＮｏＥｎｃＬｅｎ［ｉ］＝Ｌｎ×｛（ＳｌｉｃｅＬｅｎｇｔｈ［ｉ］−ＳｌｉｃｅＨｅａｄｅｒＬｅｎｇｔｈ［ｉ］）／ＳｌｉｃｅＢｌｏｃｋ［ｉ］｝・・・式３
【００４７】
ここで、暗号化係数Ｌｅ、非暗号化係数Ｌｎは設計者が与えるものであり、例えば、記憶装置に予め格納されており、サイズ計算部２０１によって読み込まれる。暗号化係数Ｌｅ、非暗号化係数Ｌｎは小数値でもよいが、ここでは整数値として与えられるものとする（例えば、暗号化係数Ｌｅを５、非暗号化係数Ｌｎを２０といったように設定する）。
【００４８】
上記のように、サイズ計算部２０１は、Ｓｌｉｃｅ［ｉ］ごとに、入力部２００により入力されたサイズ情報が示す画像データのサイズ（ＳｌｉｃｅＬｅｎｇｔｈ［ｉ］−ＳｌｉｃｅＨｅａｄｅｒＬｅｎｇｔｈ［ｉ］）を、入力部２００により入力されたブロック数情報が示すブロックの数（ＳｌｉｃｅＢｌｏｃｋ［ｉ］）で割って、画像データを構成するマクロブロックの平均サイズを求める。そして、サイズ計算部２０１は、求めたブロックの平均サイズに所定の第１係数（暗号化係数Ｌｅ）を掛けて暗号化データサイズ２０４（ＥｎｃＬｅｎ［ｉ］）を算出する。また、サイズ計算部２０１は、求めたブロックの平均サイズに所定の第２係数（非暗号化係数Ｌｎ）を掛けて非暗号化データサイズ２０５（ＮｏＥｎｃＬｅｎ［ｉ］）を算出する。
【００４９】
式２及び式３の計算において、後述する暗号処理部２０２で使用する暗号法に応じて、ＥｎｃＬｅｎ［ｉ］やＮｏＥｎｃＬｅｎ［ｉ］が特定の数値の倍数になるように調整してもよい。即ち、サイズ計算部２０１は、算出した暗号化データサイズ２０４（ＥｎｃＬｅｎ［ｉ］）を所定ビットの整数倍に調整してもよい。例えば、暗号処理部２０２がＡＥＳ（Ａｄｖａｎｃｅｄ・Ｅｎｃｒｙｐｔｉｏｎ・Ｓｔａｎｄａｒｄ）暗号を使用する場合等、ＥｎｃＬｅｎ［ｉ］やＮｏＥｎｃＬｅｎ［ｉ］を１２８ビットの倍数にする必要があれば、サイズ計算部２０１は、ＥｎｃＬｅｎ［ｉ］やＮｏＥｎｃＬｅｎ［ｉ］に定数を加算する等により大きさを調整してもよい。また、ＥｎｃＬｅｎ［ｉ］については、設計者が定数Ｎｍで与えてもよい。この場合、ＥｎｃＬｅｎ［ｉ］は、例えば、記憶装置に予め格納されており、サイズ計算部２０１によって読み込まれる。
【００５０】
画像データがコンテキスト適応型二値算術符号（ＣＡＢＡＣ）で符号化されている場合、ステップＳ３０４において、サイズ計算部２０１は、前述した式３に代えて、下記の式４により、ＮｏＥｎｃＬｅｎ［ｉ］を処理装置により計算してもよい。
ＮｏＥｎｃＬｅｎ［ｉ］＝ＳｌｉｃｅＬｅｎｇｔｈ［ｉ］−ＳｌｉｃｅＨｅａｄｅｒＬｅｎｇｔｈ［ｉ］−ＥｎｃＬｅｎ［ｉ］・・・式４
【００５１】
さらに、ステップＳ３０４において、画像データの符号化方式を判定するステップを設けてもよい。この場合、サイズ計算部２０１は、コンテスト適応型可変長符号（ＣＡＶＬＣ）が用いられていれば、式３によりＮｏＥｎｃＬｅｎ［ｉ］を計算し、コンテキスト適応型二値算術符号（ＣＡＢＡＣ）が用いられていれば、式４によりＮｏＥｎｃＬｅｎ［ｉ］を計算する。
【００５２】
ステップＳ３０５において、サイズ計算部２０１は、Ｎ番目（ピクチャ内で最後尾）のスライスデータＮＡＬユニット１１０であるＳｌｉｃｅ［Ｎ］のスライスヘッダからＳｌｉｃｅ［Ｎ］のｆｉｒｓｔ＿ｍｂ＿ｉｎ＿ｓｌｉｃｅを取得し、下記の式５により、Ｓｌｉｃｅ［Ｎ］に含まれるマクロブロックの数であるＳｌｉｃｅＢｌｏｃｋ［Ｎ］を処理装置により計算する。
ＳｌｉｃｅＢｌｏｃｋ［Ｎ］＝（ピクチャに含まれる総マクロブロック数）−（Ｓｌｉｃｅ［Ｎ］のｆｉｒｓｔ＿ｍｂ＿ｉｎ＿ｓｌｉｃｅ）・・・式５
【００５３】
このとき、ピクチャに含まれる総マクロブロック数は、入力部２００により入力された画像パラメータ１１２から与える。
【００５４】
ステップＳ３０６において、サイズ計算部２０１は、ステップＳ３０４と同様に、前述した式２により、Ｓｌｉｃｅ［Ｎ］の暗号化データサイズ２０４であるＥｎｃＬｅｎ［Ｎ］を処理装置により計算する。また、サイズ計算部２０１は、ステップＳ３０４と同様に、前述した式３により、Ｓｌｉｃｅ［Ｎ］の非暗号化データサイズ２０５であるＮｏＥｎｃＬｅｎ［Ｎ］を処理装置により計算する。
【００５５】
ステップＳ３０７において、サイズ計算部２０１は、復号情報２０６を処理装置により計算する。復号情報２０６としては、Ｓｌｉｃｅ［ｉ］ごとのｆｉｒｓｔ＿ｍｂ＿ｉｎ＿ｓｌｉｃｅ、暗号化係数Ｌｅ，非暗号化係数Ｌｎ等、復号に必要となる情報を付与する。
【００５６】
図５は、暗号処理部２０２の動作を示すフローチャートである。図５では、暗号処理部２０２が、スライスヘッダの暗号化を行わずに、スライスデータ（画像データ）のみを暗号化する。
【００５７】
ステップＳ４０１において、暗号処理部２０２は、ポインタｐをスライスデータｉ（Ｓｌｉｃｅ［ｉ］の画像データ）の先頭アドレスに、相対アドレスインデックスＬを０にセットする。
【００５８】
ステップＳ４０２において、暗号処理部２０２は、スライスデータｉのスライスヘッダを処理装置により解析し、ＳｌｉｃｅＨｅａｄｅｒＬｅｎｇｔｈ［ｉ］を計算する。暗号処理部２０２は、ＳｌｉｃｅＨｅａｄｅｒＬｅｎｇｔｈ［ｉ］として、サイズ計算部２０１で計算された値を使ってもよい。
【００５９】
ステップＳ４０３において、暗号処理部２０２は、ポインタｐをＳｌｉｃｅＨｅａｄｅｒＬｅｎｇｔｈ［ｉ］分進める。暗号処理部２０２は、相対アドレスインデックスＬもＳｌｉｃｅＨｅａｄｅｒＬｅｎｇｔｈ［ｉ］分加算する。以降、暗号処理部２０２は、相対アドレスインデックスＬがＳｌｉｃｅＬｅｎｇｔｈ［ｉ］未満である間、ステップＳ４０４及びＳ４０５を実行する。
【００６０】
ステップＳ４０４において、暗号処理部２０２は、入力部２００により入力された暗号鍵データ１１５を使用して、ポインタｐからＥｎｃＬｅｎ［ｉ］だけ（即ち、サイズ計算部２０１により算出された暗号化データサイズ２０４の第１データを暗号化の対象に仕分け）、データ（第１データ）を処理装置により暗号化する。暗号化にはブロック暗号やストリーム暗号を使用することができる。
【００６１】
ステップＳ４０５において、暗号処理部２０２は、ポインタｐ、相対アドレスインデックスＬをそれぞれＥｎｃＬｅｎ［ｉ］＋ＮｏＥｎｃＬｅｎ［ｉ］だけ処理装置により加算する（即ち、サイズ計算部２０１により算出された非暗号化データサイズ２０５の第２データを暗号化しない対象に仕分ける）。
【００６２】
図６は、画像暗号化装置１００が出力するデータのフォーマットを示す図である。
【００６３】
図６の（ａ）は、復号情報ＮＡＬユニット生成部２０３が出力する復号情報ＮＡＬユニット１１６の構成を示している。復号情報ＮＡＬユニット１１６は、復号用データ５０１とヘッダ情報５０２とで構成される。復号用データ５０１には、復号情報２０６が含まれる。復号用データ５０１には必要に応じて復号補助情報２０７も含まれる。また、必要に応じてこれらの情報は暗号化されてもよい。ヘッダ情報５０２には、ＮＡＬヘッダと当該ＮＡＬユニットが復号情報ＮＡＬユニット１１６であることを示すインデックス情報とが含まれる。ＮＡＬヘッダはＳＥＩとする。
【００６４】
図６の（ｂ）は、暗号鍵生成部１０４が出力する暗号鍵情報ＮＡＬユニット１１４の構成を示している。暗号鍵情報ＮＡＬユニット１１４は、暗号鍵情報６０１とヘッダ情報６０２とで構成される。暗号鍵情報６０１には、画像暗号化装置１００と、後述する画像復号装置との間で鍵情報を共有するために必要な情報が含まれる。例えば暗号鍵本体に紐付けられたインデックス情報や、公開鍵暗号等の別の手段で暗号化された暗号鍵本体、暗号鍵データ１１５の生成に使用された乱数データ等が含まれる。ヘッダ情報６０２には、ＮＡＬヘッダと当該ＮＡＬユニットが暗号鍵情報ＮＡＬユニット１１４であることを示すインデックス情報とが含まれる。ＮＡＬヘッダはＳＥＩとする。
【００６５】
図７は、画像暗号化装置１００で暗号化された動画像データストリーム１０７、即ち、暗号化動画像データストリーム１１８を復号する画像復号装置７００の構成を示すブロック図である。
【００６６】
図７において、画像復号装置７００は、ＮＡＬユニット抽出部７０１、ＮＡＬユニット判定部７０２、パラメータ解析部７０３、暗号鍵生成部７０４、復号部７０５、ストリーム合成部７０６を備える。
【００６７】
また、図示していないが、画像復号装置７００は、処理装置、記憶装置、入力装置、出力装置等のハードウェアを備える。ハードウェアは画像復号装置７００の各部によって利用される。例えば、処理装置は、画像復号装置７００の各部でデータや情報の演算、加工、読み取り、書き込み等を行うために利用される。記憶装置は、そのデータや情報を記憶するために利用される。また、入力装置は、そのデータや情報の入力を受け付けるために、出力装置は、そのデータや情報を出力するために利用される。
【００６８】
ＮＡＬユニット抽出部７０１は、暗号化動画像データストリーム１１８の入力を受け付ける。ＮＡＬユニット抽出部７０１は、入力された暗号化動画像データストリーム１１８を複数のＮＡＬユニット７０８に分解して出力する。ＮＡＬユニット７０８は、ＳＰＳ、ＰＰＳのパラメータセットＮＡＬユニット７０９と、Ｉスライスデータ、Ｂスライスデータ、Ｐスライスデータ等が暗号化された暗号化スライスデータＮＡＬユニット７１０と、ＡＵＤ、ＳＥＩ等のその他ＮＡＬユニット７１１と、暗号化時に付与された暗号鍵情報ＮＡＬユニット７１４及び復号情報ＮＡＬユニット７１６とを含む。Ｈ．２６４のバイトストリームフォーマットの場合、ＮＡＬユニット７０８のデータ中に“００ｈ００ｈ０３ｈ０ｘｈ”（ｘ＝０，１，２，３）というパターンが存在した場合、“００ｈ００ｈ０ｘｈ”（ｘ＝０，１，２，３）に変換する処理が必要となる。ＮＡＬユニット抽出部７０１は必要に応じてこの処理を行う。
【００６９】
ＮＡＬユニット判定部７０２は、ＮＡＬユニット７０８の種類を判定する。ＮＡＬユニット判定部７０２は、判定したＮＡＬユニット７０８の種類がパラメータセットＮＡＬユニット７０９であれば、そのＮＡＬユニット７０８をパラメータ解析部７０３とストリーム合成部７０６に送る。ＮＡＬユニット判定部７０２は、判定したＮＡＬユニット７０８の種類が暗号化スライスデータＮＡＬユニット７１０又は復号情報ＮＡＬユニット７１６であれば、そのＮＡＬユニット７０８を復号部７０５に送る。ＮＡＬユニット判定部７０２は、判定したＮＡＬユニット７０８の種類が暗号鍵情報ＮＡＬユニット７１４であれば、そのＮＡＬユニット７０８を暗号鍵生成部７０４に送る。ＮＡＬユニット判定部７０２は、判定したＮＡＬユニット７０８の種類がその他ＮＡＬユニット７１１であれば、そのＮＡＬユニット７０８をストリーム合成部７０６に送る。また、ＮＡＬユニット判定部７０２は、スライスデータＮＡＬユニットサイズ７１９を求め、復号部７０５に送る。
【００７０】
パラメータ解析部７０３は、パラメータセットＮＡＬユニット７０９を解析し、画像サイズ等を含む画像パラメータ７１２を生成し、復号部７０５に送る。
【００７１】
暗号鍵生成部７０４は、暗号鍵導出用データ７１３と暗号鍵情報ＮＡＬユニット７１４の入力を受け付ける。暗号鍵生成部７０４は、入力された暗号鍵導出用データ７１３と暗号鍵情報ＮＡＬユニット７１４を用いて暗号鍵データ７１５を生成する。暗号鍵生成部７０４は、暗号鍵データ７１５を復号部７０５に送る。なお、暗号鍵データ７１５は図１の暗号鍵データ１１５と同値である。
【００７２】
復号部７０５は、画像パラメータ７１２と復号情報ＮＡＬユニット７１６から、後述する暗号化データサイズを算出する。復号部７０５は、暗号鍵データ７１５を使って、暗号化スライスデータＮＡＬユニット７１０を復号し、スライスデータＮＡＬユニット７１７を生成してストリーム合成部７０６に送信する。
【００７３】
ストリーム合成部７０６は、各部から送られたＮＡＬユニット７０８（パラメータセットＮＡＬユニット７０９、その他ＮＡＬユニット７１１、スライスデータＮＡＬユニット７１７）を合成して動画像データストリーム７１８を生成する。Ｈ．２６４のバイトストリームフォーマットの場合、ＮＡＬユニット７０８のデータ中に“００ｈ００ｈ０ｘｈ”（ｘ＝０，１，２，３）というパターンが存在した場合、“００ｈ００ｈ０３ｈ０ｘｈ”（ｘ＝０，１，２，３）に変換する処理が必要となる。ストリーム合成部７０６は必要に応じてこの処理を行う。
【００７４】
図８は、復号部７０５の構成を示すブロック図である。
【００７５】
図８において、復号部７０５は、入力部８００、サイズ計算部８０１、復号処理部８０２、復号情報ＮＡＬユニット解析部８０３を備える。
【００７６】
入力部８００は、ＮＡＬユニット判定部７０２からの暗号化スライスデータＮＡＬユニット７１０及びスライスデータＮＡＬユニットサイズ７１９、パラメータ解析部７０３からの画像パラメータ７１２をサイズ計算部８０１に入力する。また、入力部８００は、ＮＡＬユニット判定部７０２からの暗号化スライスデータＮＡＬユニット７１０及びスライスデータＮＡＬユニットサイズ７１９、暗号鍵生成部７０４からの暗号鍵データ７１５を復号処理部８０２に入力する。また、入力部８００は、ＮＡＬユニット判定部７０２からの復号情報ＮＡＬユニット７１６を復号情報ＮＡＬユニット解析部８０３に入力する。
【００７７】
復号情報ＮＡＬユニット解析部８０３は、復号情報ＮＡＬユニット７１６を入力として、復号情報８０６を取得する。これは、図２の復号情報２０６に対応する。復号情報ＮＡＬユニット７１６が暗号化されている場合は復号してから取得する。復号情報ＮＡＬユニット７１６が復号補助情報８０７を含んでいる場合はこれも取得する。これは、図２の復号補助情報２０７に対応する。
【００７８】
サイズ計算部８０１は、画像パラメータ７１２、スライスデータＮＡＬユニットサイズ７１９、暗号化スライスデータＮＡＬユニット７１０、復号情報８０６を入力として（即ち、入力部８００により入力されたサイズ情報とブロック数情報と復号情報８０６とに基づいて）、暗号化データサイズ８０４及び非暗号化データサイズ８０５を処理装置により算出する。
【００７９】
復号処理部８０２は、暗号鍵データ７１５、スライスデータＮＡＬユニットサイズ７１９、暗号化スライスデータＮＡＬユニット７１０、暗号化データサイズ８０４、非暗号化データサイズ８０５を入力として、スライスデータＮＡＬユニット７１７を生成する。具体的には、復号処理部８０２は、暗号化スライスデータＮＡＬユニット７１０の暗号化された画像データを、先頭から交互に、サイズ計算部８０１により算出された暗号化データサイズ８０４の第１データとサイズ計算部８０１により算出された非暗号化データサイズ８０５の第２データとに分け、暗号鍵データ７１５を用いて各第１データを処理装置により復号し、スライスデータＮＡＬユニット７１７として出力する。復号処理部８０２は、復号補助情報８０７があれば、これも入力とする。
【００８０】
なお、画像復号装置７００のハードウェア構成としては、図３に例示した画像暗号化装置１００と同様のハードウェア構成を採用することができる。
【００８１】
図９は、サイズ計算部８０１の動作を示すフローチャートである。なお、図９では、サイズ計算部８０１が、１ピクチャ分の暗号化スライスデータＮＡＬユニット７１０を受けて、１ピクチャを構成する全暗号化スライスデータＮＡＬユニット７１０の暗号化データサイズ８０４及び非暗号化データサイズ８０５を計算しているが、復号する暗号化スライスデータＮＡＬユニット７１０に応じて逐次的に計算してもよい。
【００８２】
ステップＳ９０１において、サイズ計算部８０１は、入力部８００により入力された暗号化スライスデータＮＡＬユニット７１０を１ピクチャ単位で、マクロブロックアドレスの小さい順に処理装置によりソートする。なお、入力される暗号化スライスデータＮＡＬユニット７１０がマクロブロックアドレスの小さい順にソートされていることが保証できる場合や、１つの暗号化スライスデータＮＡＬユニット７１０に後続する暗号化スライスデータＮＡＬユニット７１０に含まれる画像データの先頭のマクロブロックアドレスが復号情報８０６から判明する場合はこの処理を省いてもよい。以降、Ｎ（ＮはＮ≧１となる整数）、Ｓｌｉｃｅ［ｉ］（ｉは１≦ｉ≦Ｎとなる整数）、ｆｉｒｓｔ＿ｍｂ＿ｉｎ＿ｓｌｉｃｅ、ＳｌｉｃｅＬｅｎｇｔｈ［ｉ］、ＳｌｉｃｅＢｌｏｃｋ［ｉ］、ＥｎｃＬｅｎ［ｉ］、ＮｏＥｎｃＬｅｎ［ｉ］と記すものは、暗号処理の説明時と同様である。ステップＳ９０１の処理が完了した時点で、Ｓｌｉｃｅ［ｉ］はｆｉｒｓｔ＿ｍｂ＿ｉｎ＿ｓｌｉｃｅの小さい順にソートされている。
【００８３】
ステップＳ９０２において、サイズ計算部８０１は、Ｓｌｉｃｅ［ｉ］のスライスヘッダを処理装置により解析し、スライスヘッダのデータ長を求める。以降、Ｓｌｉｃｅ［ｉ］のスライスヘッダのデータ長をＳｌｉｃｅＨｅａｄｅｒＬｅｎｇｔｈ［ｉ］と記す。サイズ計算部８０１は、ＳｌｉｃｅＬｅｎｇｔｈ［ｉ］とＳｌｉｃｅＨｅａｄｅｒＬｅｎｇｔｈ［ｉ］との差分をとることで、Ｓｌｉｃｅ［ｉ］に含まれる符号化された信号（画像データ）のデータ長を算出する。
【００８４】
ステップＳ９０３において、サイズ計算部８０１は、Ｓｌｉｃｅ［ｉ］のスライスヘッダからＳｌｉｃｅ［ｉ］のｆｉｒｓｔ＿ｍｂ＿ｉｎ＿ｓｌｉｃｅを、Ｓｌｉｃｅ［ｉ＋１］のスライスヘッダからＳｌｉｃｅ［ｉ＋１］のｆｉｒｓｔ＿ｍｂ＿ｉｎ＿ｓｌｉｃｅを取得し、図４のステップＳ３０３と同様に、前述した式１により、ＳｌｉｃｅＢｌｏｃｋ［ｉ］を処理装置により計算する。
【００８５】
ステップＳ９０４において、サイズ計算部８０１は、図４のステップＳ３０４と同様に、前述した式２により、ＥｎｃＬｅｎ［ｉ］を処理装置により計算する。また、サイズ計算部８０１は、図４のステップＳ３０４と同様に、前述した式３（又は式４）により、ＮｏＥｎｃＬｅｎ［ｉ］を処理装置により計算する。
【００８６】
このとき、暗号化係数Ｌｅ、非暗号化係数Ｌｎは復号情報８０６から取得する。ＥｎｃＬｅｎ［ｉ］が定数Ｎｍで与えられる場合も復号情報８０６から取得する。
【００８７】
ステップＳ９０５において、サイズ計算部８０１は、Ｓｌｉｃｅ［Ｎ］のスライスヘッダからＳｌｉｃｅ［Ｎ］のｆｉｒｓｔ＿ｍｂ＿ｉｎ＿ｓｌｉｃｅを取得し、図４のステップＳ３０５と同様に、前述した式５により、ＳｌｉｃｅＢｌｏｃｋ［Ｎ］を処理装置により計算する。
【００８８】
このとき、ピクチャに含まれる総マクロブロック数は、入力部８００により入力された画像パラメータ７１２から与える。
【００８９】
ステップＳ９０６において、サイズ計算部８０１は、図４のステップＳ３０６と同様に、前述した式２により、ＥｎｃＬｅｎ［Ｎ］を処理装置により計算する。また、サイズ計算部８０１は、図４のステップＳ３０６と同様に、前述した式３により、ＮｏＥｎｃＬｅｎ［Ｎ］を処理装置により計算する。
【００９０】
図１０は、復号処理部８０２の動作を示すフローチャートである。スライスヘッダの暗号化は行われていないため、図１０では、復号処理部８０２が、スライスデータ（画像データ）のみを復号する。
【００９１】
ステップＳ１００１において、復号処理部８０２は、ポインタｐをスライスデータｉ（Ｓｌｉｃｅ［ｉ］の画像データ）の先頭アドレスに、相対アドレスインデックスＬを０にセットする。
【００９２】
ステップＳ１００２において、復号処理部８０２は、スライスデータｉのスライスヘッダを処理装置により解析し、ＳｌｉｃｅＨｅａｄｅｒＬｅｎｇｔｈ［ｉ］を計算する。復号処理部８０２は、ＳｌｉｃｅＨｅａｄｅｒＬｅｎｇｔｈ［ｉ］として、サイズ計算部８０１で計算された値を使ってもよい。
【００９３】
ステップＳ１００３において、復号処理部８０２は、ポインタｐをＳｌｉｃｅＨｅａｄｅｒＬｅｎｇｔｈ［ｉ］分進める。復号処理部８０２は、相対アドレスインデックスＬもＳｌｉｃｅＨｅａｄｅｒＬｅｎｇｔｈ［ｉ］分加算する。以降、復号処理部８０２は、相対アドレスインデックスＬがＳｌｉｃｅＬｅｎｇｔｈ［ｉ］未満である間、ステップＳ１００４及びＳ１００５を実行する。
【００９４】
ステップＳ１００４において、復号処理部８０２は、入力部８００により入力された暗号鍵データ７１５を使用して、ポインタｐからＥｎｃＬｅｎ［ｉ］だけ（即ち、サイズ計算部８０１により算出された暗号化データサイズ８０４の第１データを復号の対象に仕分け）、データ（第１データ）を処理装置により復号する。復号には暗号化で用いた暗号方式に対応する復号方式（例えば、ブロック暗号やストリーム暗号）を使用する。
【００９５】
ステップＳ１００５において、復号処理部８０２は、ポインタｐ、相対アドレスインデックスＬをそれぞれＥｎｃＬｅｎ［ｉ］＋ＮｏＥｎｃＬｅｎ［ｉ］だけ処理装置により加算する（即ち、サイズ計算部８０１により算出された非暗号化データサイズ８０５の第２データを復号しない対象に仕分ける）。
【００９６】
以下、本実施の形態の奏する効果について説明する。
【００９７】
Ｈ．２６４において、コンテスト適応型可変長符号（ＣＡＶＬＣ）で符号化されたデータの場合、以下の条件を満たす場合に、スライスデータ（以降、単にスライスという）先頭のマクロブロックがデコードされていなくても、スライス途中のマクロブロックのデコードが可能となる。
（Ａ１）マクロブロックの先頭ビットが判明する。
（Ａ２）マクロブロックのデータをエンコードする際に使用した符号化テーブルが判明する。
【００９８】
条件（Ａ１）は、ビットを後方探索することで探索可能である。マクロブロックは大きくても数百ビットであるため、全数探索も可能である。一方、条件（Ａ２）は４つの符号化テーブルの探索であり、テーブルごとのエントリー数も高々６２個である。よって、先頭部分のみを暗号化した場合、後方探索も含めても、４テーブル×６２エントリー×１０００ビット≒２１８ビットのオーダーの全数探索によって、非暗号化マクロブロックのデコードが可能となる。正しくデコードされたかどうかは目視によってのみ判定可能であるが、実際にはフォーマットエラーを起こす組み合わせも存在するため、目視による判定が必要な候補はさらに少なくなる。また、市販のデコーダにおいても、フォーマットエラーを無視して強制的にデコードするタイプのデコーダを使用した場合、暗号化領域を強制的にデコードした結果、上記条件を満たすマクロブロックが存在した場合に、それ以降のマクロブロックがデコードできてしまう可能性がある（以降、この現象を再同期と称する）。再同期の確率そのものは低いが、大量のスライスを処理する場合、再同期によって表示できてしまうマクロブロックが発生する可能性は高い。
【００９９】
本実施の形態によれば、画像暗号化装置１００において、暗号処理部２０２が、スライス先頭から交互に、サイズ計算部２０１により算出された暗号化データサイズ２０４の第１データとサイズ計算部２０１により算出された非暗号化データサイズ２０５の第２データとに分け、各第１データを暗号化して出力するため、上記のような再同期によるピクチャの解読（不正なデコード）を防止することができる。
【０１００】
一方、コンテキスト適応型二値算術符号（ＣＡＢＡＣ）で符号化されたデータの場合、以下の条件を満たす場合にスライス先頭のマクロブロックがデコードされていなくても、スライス途中のマクロブロックのデコードが可能となる。
（Ｂ１）マクロブロックの先頭ビットが判明する。
（Ｂ２）マクロブロックを既定するパラメータを求めるための確率変数が全て判明する。
【０１０１】
条件（Ｂ１）は、前述した条件（Ａ１）と同じであり、ビットを後方探索することで探索可能である。マクロブロックは大きくても数百ビットであるため、全数探索も可能である。一方、条件（Ｂ２）は７ビットの確率変数を、２３個のパラメータについて探索する必要がある。確率変数はパラメータごとに独立であるため、確率変数が未知の状態では、後方探索も含めると、２７×２３×１０００ビット≒２１７１ビットの全数探索が必要となり、計算量的に困難となる。確率変数はスライスごとにリセットされ、かつ、デコード対象のマクロブロックの確率変数は、それ以前のマクロブロックのデコード結果に依存するため、スライスの先頭データのみを暗号化することで十分な秘匿効果を得ることができる。
【０１０２】
本実施の形態によれば、画像暗号化装置１００において、暗号処理部２０２が、スライス先頭から、サイズ計算部２０１により算出された暗号化データサイズ２０４のデータのみを暗号化して出力してもよく、この場合にも、上記のように十分な秘匿効果を得ることができる。そして、この場合、処理負荷を低減できる。
【０１０３】
特許文献１の方法で暗号化した場合、再同期によって層の終端データまでデコードできてしまう可能性がある。一方、本実施の形態によれば、符号化データの中間値も暗号化するため、仮に再同期が発生しても、その影響を次の暗号化データまでに留めることができる。
【０１０４】
また、本実施の形態によれば、Ｉスライス／Ｐスライス／Ｂスライス全てのデータを暗号化の対象とする。よって、特許文献２のようにＰ／Ｂスライスからデータを復号される心配はない。また、設計者が決定する暗号化係数Ｌｅ、非暗号化係数Ｌｎについて、ＩスライスとＰ／Ｂスライスとで変更することも可能であるため、Ｐ／Ｂスライスの暗号化係数Ｌｅを小さくし、非暗号化係数Ｌｎを大きくすることで、さらなる負荷低減を図ることができる。即ち、図４のステップＳ３０４において、Ｓｌｉｃｅ［ｉ］がフレーム内予測を行ったデータである場合、サイズ計算部２０１が、ＮｏＥｎｃＬｅｎ［ｉ］として、Ｓｌｉｃｅ［ｉ］がフレーム間予測を行ったデータである場合より小さい値を算出するようにしてもよい。
【０１０５】
さらに、本実施の形態によれば、設計者が決定する暗号化係数Ｌｅ、非暗号化係数Ｌｎを暗号化・非暗号化するマクロブロック数とみなすことができ、ＥｎｃＬｅｎ［ｉ］，ＮｏＥｎｃｌｅｎ［ｉ］は暗号化・非暗号化されるマクロブロックのおおよそのサイズとみなすことができる。よって、統計的ではあるが、再同期のリスクも非暗号化係数Ｌｎに示すマクロブロック数程度に抑えることができる。また、入力される画像データに応じて、暗号化・非暗号化データ長が調整されるため、設計者は入力画像に応じたチューニングが不要となる。
【０１０６】
さらに、本実施の形態によれば、スライスデータがコンテキスト適応型二値算術符号（ＣＡＢＡＣ）で符号化されている場合、スライス先頭のマクロブロックに相当するデータ領域のみを暗号化することで、当該スライス全体の再同期を防止することができる。
【０１０７】
以上説明したように、本実施の形態に係る画像暗号化装置１００は、画像圧縮符号化方式で圧縮された画像データを暗号化する装置であって、符号化された信号のサイズと、前記信号に含まれる符号化ブロックの総数から、１ブロックあたりのデータサイズを算出し、前記１ブロックあたりのデータサイズから、暗号化データサイズ２０４及び非暗号化データサイズ２０５を算出し、前記符号化された信号の先頭から、暗号化データサイズ２０４の分だけデータを暗号化する処理と、非暗号化データサイズ２０５の分だけ暗号化を行わない処理を繰り返して信号を暗号化する。
【０１０８】
例えば、画像暗号化装置１００は、前記１ブロックあたりのデータサイズに定数を乗算して暗号化データサイズ２０４及び非暗号化データサイズ２０５を算出する。
【０１０９】
例えば、画像暗号化装置１００は、前記１ブロックあたりのデータサイズに定数を乗算し、かつ、前記乗算で算出した数値が、使用する暗号方式の処理単位となるように係数を加算して暗号化データサイズ２０４及び非暗号化データサイズ２０５を算出する。
【０１１０】
例えば、画像暗号化装置１００は、フレーム内予測とフレーム間予測を行う動画像符号化方式で圧縮された画像データを暗号化する場合、フレーム間予測を行った信号に対しては非暗号化データサイズ２０５を大きく設定し、フレーム内予測を行った信号に対しては非暗号化データサイズ２０５を小さく設定する。
【０１１１】
また、本実施の形態に係る画像暗号化装置１００は、圧縮符号化にコンテキスト適応型二値算術符号を用いる画像圧縮符号化方式で圧縮された画像データを暗号化する場合、符号化された信号のサイズと、前記信号に含まれる符号化ブロックの総数から、１ブロックあたりのデータサイズを算出し、前記１ブロックあたりのデータサイズから、暗号化データサイズ２０４を算出し、前記符号化された信号の先頭から、暗号化データサイズ２０４の分だけデータを暗号化してもよい。
【０１１２】
例えば、画像暗号化装置１００は、復号に必要な情報を前記画像データのフォーマットに従って、前記暗号化された画像データに印加する。
【０１１３】
本実施の形態に係る画像復号装置７００は、前記暗号化された画像データを復号する。
【０１１４】
実施の形態２．
本実施の形態について、主に実施の形態１との差異を説明する。
【０１１５】
実施の形態１では、スライスヘッダを暗号化しないが、本実施の形態では、スライスヘッダも暗号化する。本実施の形態に係る画像暗号化装置１００の構成は、図１及び図２に示した実施の形態１のものと同様である。また、画像復号装置７００の構成は、図７及び図８に示した実施の形態１のものと同様である。本実施の形態では、実施の形態１と暗号処理部２０２及び復号処理部８０２の動作が異なる。
【０１１６】
図１１は、暗号処理部２０２の動作を示すフローチャートである。図１１では、暗号処理部２０２が、スライスヘッダも暗号化する。
【０１１７】
ステップＳ１１０１において、暗号処理部２０２は、ポインタｐをスライスデータｉ（Ｓｌｉｃｅ［ｉ］の画像データ）の先頭アドレスに、相対アドレスインデックスＬを０にセットする。
【０１１８】
ステップＳ１１０２において、暗号処理部２０２は、スライスデータｉのスライスヘッダを処理装置により解析し、ＳｌｉｃｅＨｅａｄｅｒＬｅｎｇｔｈ［ｉ］を計算する。暗号処理部２０２は、ＳｌｉｃｅＨｅａｄｅｒＬｅｎｇｔｈ［ｉ］として、サイズ計算部２０１で計算された値を使ってもよい。また、後述する初期暗号化データサイズＮｐを定数で与える場合は本ステップを省略してもよい。
【０１１９】
ステップＳ１１０３において、暗号処理部２０２は、入力部２００により入力された暗号鍵データ１１５を使用して、ポインタｐから初期暗号化データサイズＮｐだけ、データを処理装置により暗号化する。暗号化にはブロック暗号やストリーム暗号を使用することができる。初期暗号化データサイズＮｐは下記の式６で与えてもよいし、設計者が定数で定めてもよい。
Ｎｐ＝ＳｌｉｃｅＨｅａｄｅｒＬｅｎｇｔｈ［ｉ］＋Ｅｎｃｌｅｎ［ｉ］・・・式６
【０１２０】
ステップＳ１１０４において、暗号処理部２０２は、ポインタｐ、相対アドレスインデックスＬをそれぞれＮｐ＋ＮｏＥｎｃＬｅｎ［ｉ］だけ処理装置により加算する。以降、暗号処理部２０２は、相対アドレスインデックスＬがＳｌｉｃｅＬｅｎｇｔｈ［ｉ］未満である間、ステップＳ１１０５及びＳ１１０６を実行する。
【０１２１】
ステップＳ１１０５において、暗号処理部２０２は、入力部２００により入力された暗号鍵データ１１５を使用して、ポインタｐからＥｎｃＬｅｎ［ｉ］だけ（即ち、サイズ計算部２０１により算出された暗号化データサイズ２０４の第１データを暗号化の対象に仕分け）、データ（第１データ）を処理装置により暗号化する。暗号化にはブロック暗号やストリーム暗号を使用することができる。
【０１２２】
ステップＳ１１０６において、暗号処理部２０２は、ポインタｐ、相対アドレスインデックスＬをそれぞれＥｎｃＬｅｎ［ｉ］＋ＮｏＥｎｃＬｅｎ［ｉ］だけ処理装置により加算する（即ち、サイズ計算部２０１により算出された非暗号化データサイズ２０５の第２データを暗号化しない対象に仕分ける）。
【０１２３】
ステップＳ１１０７において、暗号処理部２０２は、初期暗号化データサイズＮｐを復号補助情報２０７として出力する。ステップＳ１１０３で、初期暗号化データサイズＮｐを式６で与えた場合は、ＳｌｉｃｅＨｅａｄｅｒＬｅｎｇｔｈ［ｉ］を出力するようにしてもよい。
【０１２４】
図１２は、復号処理部８０２の動作を示すフローチャートである。スライスヘッダの暗号化が行われているため、図１２では、復号処理部８０２が、スライスヘッダとスライスデータ（画像データ）を復号する。
【０１２５】
ステップＳ１２０１において、復号処理部８０２は、ポインタｐをスライスデータｉ（Ｓｌｉｃｅ［ｉ］の画像データ）の先頭アドレスに、相対アドレスインデックスＬを０にセットする。
【０１２６】
ステップＳ１２０２において、復号処理部８０２は、復号補助情報８０７から初期暗号化データサイズＮｐを取得する。復号補助情報８０７がＳｌｉｃｅＨｅａｄｅｒＬｅｎｇｔｈ［ｉ］を保持している場合、復号処理部８０２は、初期暗号化データサイズＮｐを前述した式６により算出する。
【０１２７】
ステップＳ１２０３において、復号処理部８０２は、入力部８００により入力された暗号鍵データ７１５を使用して、ポインタｐから初期暗号化データサイズＮｐだけ、データ（第１データ）を処理装置により復号する。復号には暗号化で用いた暗号方式に対応する復号方式（例えば、ブロック暗号やストリーム暗号）を使用する。
【０１２８】
ステップＳ１２０４において、復号処理部８０２は、ポインタｐ、相対アドレスインデックスＬをそれぞれＮｐ＋ＮｏＥｎｃＬｅｎ［ｉ］だけ処理装置により加算する。以降、復号処理部８０２は、相対アドレスインデックスＬがＳｌｉｃｅＬｅｎｇｔｈ［ｉ］未満である間、ステップＳ１２０５及びＳ１２０６を実行する。
【０１２９】
ステップＳ１２０５において、復号処理部８０２は、入力部８００により入力された暗号鍵データ７１５を使用して、ポインタｐからＥｎｃＬｅｎ［ｉ］だけ（即ち、サイズ計算部８０１により算出された暗号化データサイズ８０４の第１データを復号の対象に仕分け）、データ（第１データ）を処理装置により復号する。復号には暗号化で用いた暗号方式に対応する復号方式（例えば、ブロック暗号やストリーム暗号）を使用する。
【０１３０】
ステップＳ１２０６において、復号処理部８０２は、ポインタｐ、相対アドレスインデックスＬをそれぞれＥｎｃＬｅｎ［ｉ］＋ＮｏＥｎｃＬｅｎ［ｉ］だけ処理装置により加算する（即ち、サイズ計算部８０１により算出された非暗号化データサイズ８０５の第２データを復号しない対象に仕分ける）。
【０１３１】
以下、本実施の形態の奏する効果について説明する。
【０１３２】
本実施の形態では、実施の形態１の効果に加え、さらにスライスヘッダを暗号化することで、スライスのマクロブロックアドレスや符号化方式等の情報を攻撃者から隠蔽することができ、安全性が増す。
【０１３３】
以上説明した実施の形態１及び２は、Ｈ．２６４を例に説明したが、前述したように、各実施の形態はＭＰＥＧ２、ＭＰＥＧ４等の他の符号化方式で符号化された動画像にも適用可能である。また、各実施の形態は、ＪＰＥＧ等の静止画像にも適用可能である。ＪＰＥＧに適用する場合、スライスデータＮＡＬユニット１１０，７１７に相当するデータとしてＳＯＳ（Ｓｔａｒｔ・Ｏｆ・Ｓｃａｎ）及びそれに続く符号化データを与える。ただし、ＥＯＩ（Ｅｎｄ・Ｏｆ・Ｉｍａｇｅ）マーカはこれに含まない。また、パラメータセットＮＡＬユニット１０９，７０９に相当するデータとしてＳＯＦ（Ｓｔａｒｔ・Ｏｆ・Ｆｒａｍｅ）０を与える。さらに、ピクチャに含まれる総マクロブロック数として（水平サイズ×垂直サイズ／６４）を与える。
【符号の説明】
【０１３４】
１００  画像暗号化装置、１０１  ＮＡＬユニット抽出部、１０２  ＮＡＬユニット判定部、１０３  パラメータ解析部、１０４  暗号鍵生成部、１０５  暗号化部、１０６  ストリーム合成部、１０７  動画像データストリーム、１０８  ＮＡＬユニット、１０９  パラメータセットＮＡＬユニット、１１０  スライスデータＮＡＬユニット、１１１  その他ＮＡＬユニット、１１２  画像パラメータ、１１３  暗号鍵導出用データ、１１４  暗号鍵情報ＮＡＬユニット、１１５  暗号鍵データ、１１６  復号情報ＮＡＬユニット、１１７  暗号化スライスデータＮＡＬユニット、１１８  暗号化動画像データストリーム、１１９  スライスデータＮＡＬユニットサイズ、２００  入力部、２０１  サイズ計算部、２０２  暗号処理部、２０３  復号情報ＮＡＬユニット生成部、２０４  暗号化データサイズ、２０５  非暗号化データサイズ、２０６  復号情報、２０７  復号補助情報、５０１  復号用データ、５０２  ヘッダ情報、６０１  暗号鍵情報、６０２  ヘッダ情報、７００  画像復号装置、７０１  ＮＡＬユニット抽出部、７０２  ＮＡＬユニット判定部、７０３  パラメータ解析部、７０４  暗号鍵生成部、７０５  復号部、７０６  ストリーム合成部、７０８  ＮＡＬユニット、７０９  パラメータセットＮＡＬユニット、７１０  暗号化スライスデータＮＡＬユニット、７１１  その他ＮＡＬユニット、７１２  画像パラメータ、７１３  暗号鍵導出用データ、７１４  暗号鍵情報ＮＡＬユニット、７１５  暗号鍵データ、７１６  復号情報ＮＡＬユニット、７１７  スライスデータＮＡＬユニット、７１８  動画像データストリーム、７１９  スライスデータＮＡＬユニットサイズ、８００  入力部、８０１  サイズ計算部、８０２  復号処理部、８０３  復号情報ＮＡＬユニット解析部、８０４  暗号化データサイズ、８０５  非暗号化データサイズ、８０６  復号情報、８０７  復号補助情報、９０１  ＬＣＤ、９０２  キーボード、９０３  マウス、９０４  ＦＤＤ、９０５  ＣＤＤ、９０６  プリンタ、９１１  ＣＰＵ、９１２  バス、９１３  ＲＯＭ、９１４  ＲＡＭ、９１５  通信ボード、９２０  ＨＤＤ、９２１  オペレーティングシステム、９２２  ウィンドウシステム、９２３  プログラム群、９２４  ファイル群。
【図１】
0005610981.tif 000002
【図２】
0005610981.tif 000003
【図３】
0005610981.tif 000004
【図４】
0005610981.tif 000005
【図５】
0005610981.tif 000006
【図６】
0005610981.tif 000007
【図７】
0005610981.tif 000008
【図８】
0005610981.tif 000009
【図９】
0005610981.tif 000010
【図１０】
0005610981.tif 000011
【図１１】
0005610981.tif 000012
【図１２】
0005610981.tif 000013