(57)【要約】【課題】暗号処理を行うプロセッサやメモリは数バイト単位を一度に処理することで処理速度の向上を行っているが、圧縮画像データやストリーム暗号が１バイト単位でデータを生成するために、最大限の処理能力を発揮できない。これは暗号データの復号処理でも同じであり、１バイト単位の処理では、送信側と受信側の双方でプロセッサとメモリの処理能力を最大限に発揮できない。【解決手段】画像圧縮データの発生バイト数を調整し、暗号データ部分のデータ長をプロセッサのレジスタ長の倍数や、メモリが１回でアクセスできるバイト数の倍数になるよう、数バイトを単位としたものにする。また、メモリに格納するデータはメモリ境界をまたがないように配置することで、１回の演算で複数バイトのデータを処理し、暗号処理の処理負荷を低減する。【選択図】図６
2008035431.tif 000002
【特許請求の範囲】
【請求項１】
１回のアクセスで複数バイト読み書き可能なメモリと、１回の処理で前記複数バイトの整数倍のデータを暗号化する暗号処理部を備え、画像圧縮データを暗号化してネットワークへ配信する画像圧縮装置であって、
画像圧縮データが所定のデータ長になるようにスタッフィングデータを付加する画像圧縮部を備える、
ことを特徴とする画像圧縮装置。
【請求項２】
請求項１に記載の画像圧縮装置において、
１回の処理で前記複数バイトの整数倍のデータを暗号化したことを示すための情報を画像圧縮データ内に付加する、
ことを特徴とする画像圧縮装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、圧縮対象となる画像を圧縮する画像圧縮装置に関し、特に、画像を効果的に暗号化する画像圧縮装置に関する。
【背景技術】
【０００２】
近年のネットワーク技術の発達により、画像データをネットワークで伝送するようになった。画像データは画像圧縮技術との組み合わせでデジタルデータ化し、伝送データ量の削減が行われる。このようなデジタルデータは、ネットワークの普及とともにインターネットなどの公開されたネットワークを介して伝送されることも多く、データ内容が万人の目にさらされる可能性が出てくる。このため、監視目的でネットワークカメラを使用するようなデータの機密性が問題になる使用方法では、暗号化技術の導入などの対策が必要になる。
ネットワークに伝送するデータの暗号化では、主に２つのアプローチがある。１つ目は、ネットワークの伝送路全体を暗号化する方法である。代表的な技術にＶＰＮ（Virtual Private Network）がある。２つ目は、伝送するデジタルデータを暗号化する方法である。この方法は、伝送路の種類によらず暗号化することができるため、ハードディスクレコーダなどの記録装置を接続しても、暗号化したままデジタルデータを記録することができる特徴がある。
画像データの伝送目的に使う暗号は、一定サイズ毎に暗号化するブロック暗号よりも、ビット単位あるいはバイト単位などで逐次暗号化するストリーム暗号の方が、任意のデータ長である画像圧縮データのリアルタイム伝送に適している。
また、近年の画像圧縮処理はソフトウェアで実行する製品が増えてきており、暗号化処理もソフトウェアで実行するようになった。しかし、監視に使用する動画像データの場合、データを圧縮しても数Ｍｂｐｓのデータ量になる。ストリーム暗号はリアルタイム伝送向けに高速なアルゴリズムが考案されているが、ソフトウェアでの実行では、プロセッサ能力により限界が出てくる。
図１にソフトウェアによる画像圧縮データを暗号化しネットワークへ伝送する装置の構成を示す。装置は主に、圧縮処理７、メモリ１１、暗号処理８、メモリ１２、配信処理９からなる。装置の入力にはカメラ６を接続し、出力はネットワーク１０に接続する。
圧縮処理７は、カメラ６が出力した映像データ１を取り込み画像圧縮処理を行い、圧縮データ２としてメモリ１１に格納する。暗号処理８は、メモリ１１に格納した圧縮データ２を平文データ３として取り出し、暗号処理を行う。そして、暗号化した暗号データ４をメモリ１２に格納する。配信処理９は、メモリ１２に格納された暗号データ４を取り出し、ネットワークプロトコルに適合したデータに変換し、配信データ５としてネットワーク１０に出力する。
次に、圧縮処理７の構成を図４で説明する。従来の構成は単純であり、入力した映像データ１は、画像圧縮２７で圧縮し、圧縮データ２としてメモリ１１に格納する。
更に、暗号処理８の構成を図５で説明する。暗号処理８は、データ切り替え器１５、暗号処理制御部２４、鍵ストリーム発生部２３、初期ベクトル発生部２１、暗号鍵管理部２２からなり、メモリ１１から被暗号データである平文データ３を読み出し、暗号データ４をメモリ１２に格納する（以降、被暗号データを平文データと呼ぶ）。
メモリ１１から読み出した平文データ３は、データ切り替え器１５に直接入力する系と、鍵ストリーム発生部２３が出力した鍵ストリーム２５と平文データ３を結合してデータ切り替え器１５に入力する系の２つに分かれる。データ切り替え器１５は、暗号処理制御部２４が出力したデータ切り替え信号２０により、２つの入力を切り替える。それにより平文と暗号文を切り替えて、暗号データ４をメモリ１２に出力する。
鍵ストリーム発生部２３は、初期ベクトル発生部２１が出力する初期ベクトル２８と、暗号鍵管理部２２が出力する鍵データ２６を入力し、この２つから疑似乱数を生成し、鍵ストリーム２５として出力する。この鍵ストリーム２５と平文データ３を結合することで、暗号データ４を生成する。結合は、例えば、排他的論理和（以降ＸＯＲと記述する）を実行する処理である。
暗号処理制御部２４は、データ切り替え器１５での入力データの切り替えタイミングを制御するものであり、データ切り替え信号２０によりデータ切り替え器１５を切り替える。また、この切り替えタイミングに合わせ、メモリ１１から平文データ３を読み出すためのメモリ読み出し制御信号１９をメモリ１１へ出力する。
暗号処理８の動作を説明する。暗号化には様々な手法があるのでその一例であるが、平文データ３と鍵ストリーム２５とをＸＯＲすることで暗号データ４を生成する。鍵ストリーム２５は、鍵データ２６と、初期値が毎回変化する初期ベクトル２８から乱数列を生成する。ソフトウェアで発生する乱数列は真の乱数ではないので、疑似乱数と呼ぶ。
この暗号処理８が出力する暗号データ４の構成は、一部分が平文データ、他の部分が暗号化したデータという２つのデータが混在したものである。平文データの部分は、画像圧縮データのヘッダ部分や、様々な状態を示すフラグを格納する領域などであり、いずれも受信機側で暗号データを復号する前段階として取得すべき初期ベクトルと呼ばれるデータ等、特別な暗号化されないデータの集まりである。平文データの中に画像圧縮データのヘッダを含む場合、平文データが出現する周期は、画像圧縮データのヘッダが出現する周期に関係するものとなる。例えば、ＮＴＳＣ画像の各フレームを表すヘッダを平文データに含む場合、平文データが出現する周期は１秒間に約３０回になる。なお、暗号化に用いる初期ベクトル２８を暗号データ４に含ませて伝送する場合、初期ベクトル２８は暗号データの復号に使用するため、平文データとして伝送する必要がある。
【特許文献１】特開２００６−１０９４２８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
ストリーム暗号の特徴として、ビット単位あるいはバイト単位などで逐次暗号化する点は前述したとおりである。また、ＭＰＥＧ−４やＪＰＥＧやＨ．２６４に代表される画像圧縮技術は、バイト単位で圧縮データを生成する。このため両者の親和性は非常に高い。
【０００４】
しかし、この暗号化処理をプロセッサのソフトウェアで実行する場合、ＸＯＲを１バイト単位で実行することは可能だが、プロセッサのレジスタ長やデータバス幅から見ると、数バイトまとめてＸＯＲする方が処理速度が速くなる。例えば、３２ビットのレジスタ長を持つプロセッサの場合、４バイトのデータを１命令でＸＯＲ処理することが可能である。画像圧縮処理もプロセッサで同時に実行する場合、処理能力に余裕がなくなりやすく、暗号処理の負荷が大きいと全体の処理能力が不足し、最悪はリアルタイムに画像圧縮処理が実行できずフレーム抜けを起こすことがある。
【０００５】
また、ＳＤＲＡＭなどプロセッサに接続した作業メモリについても、１回のアクセスで数バイトを一度に読み書きするため、アクセスを数バイト単位にした方がアクセス速度が速くなり、結果的にプロセッサの処理速度向上につながる。更に、メモリ上のデータは、例えば１回のアクセスで４バイトを処理するメモリの場合、メモリの先頭番地から４バイト毎に区切られたメモリ境界の中に収まるデータのアクセスは速いが、同じ４バイトでもメモリ境界をまたぐように配置されたデータのアクセスでは、１回のアクセスで読み書きが出来ず処理速度が遅くなる。
【０００６】
このようにプロセッサやメモリは数バイト単位を一度に処理することで処理速度の向上を行っているが、圧縮画像データやストリーム暗号が１バイト単位でデータを生成するために、最大限の処理能力を発揮できない。
【０００７】
以上のことは暗号データの復号処理でも同じであり、１バイト単位の処理では、送信側と受信側の双方でプロセッサとメモリの処理能力を最大限に発揮できないことになる。
本発明は、このような従来の事情に鑑み為されたもので、画像圧縮データを効果的に暗号化する画像圧縮装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するため、本発明に係る画像圧縮装置は、１回のアクセスで複数バイト読み書き可能なメモリと、１回の処理で前記複数バイトの整数倍のデータを暗号化する暗号処理部を備え、画像圧縮データを暗号化してネットワークへ配信する画像圧縮装置であって、画像圧縮データが所定のデータ長になるようにスタッフィングデータを付加する画像圧縮部を備える。
【０００９】
更に、本発明に係る画像圧縮装置において、１回の処理で前記複数バイトの整数倍のデータを暗号化したことを示すための情報を画像圧縮データ内に付加する。
【００１０】
また、上記目的を達成するため、本発明に係る画像圧縮装置は、画像圧縮データを暗号化しネットワークへ配信する画像圧縮装置において、画像圧縮データが所定のデータ長になるようにスタッフィングデータを追加する画像圧縮手段と、数バイト単位の平文データと鍵ストリームとの演算を一回で実行する暗号処理手段を備える。
【００１１】
更に、本発明に係る画像圧縮装置において、暗号処理のアルゴリズムに１バイト単位で暗号化可能なストリーム暗号を使用する。
【００１２】
更に、本発明に係る画像圧縮装置において、平文データと暗号データが混在したデータストリームであり、暗号データのサイズが所定のバイト数の倍数長であり、メモリ上の暗号データの先頭位置が所定バイト数の倍数長の位置に配置されている。
【００１３】
更に、本発明に係る画像圧縮装置において、暗号データのデータ長を、平文データと鍵ストリームとの演算を一回の実行で処理できる最大のバイト数、もしくは一回のアクセスで読み書き可能なバイト数のうち、大きい方のバイト数に合わせる。
【００１４】
更に、本発明に係る画像圧縮装置において、暗号処理の演算で数バイト単位で平文データと鍵ストリームとの演算を一回で実行したことを示すための情報を平文データ内に格納する。
【００１５】
また、画像圧縮データの発生バイト数を調整し、暗号データ部分のデータ長をプロセッサのレジスタ長の倍数や、メモリが１回でアクセスできるバイト数の倍数になるよう、数バイトを単位としたものにする。また、メモリに格納するデータはメモリ境界をまたがないように配置することで、暗号処理の処理負荷を低減する。暗号処理では上記の数バイトを単位として１回のＸＯＲで演算するようにする。さらに、暗号データが数バイトを単位として生成されたことを示すフラグを平文データに付加することで、受信側で数バイトを単位とした暗号データの復号処理を実行可能であることを判別できるようにし、復号側の処理負荷も低減する。
【発明の効果】
【００１６】
以上説明したように、本発明に係る画像圧縮装置によると、暗号処理とその対となる復号処理のプロセッサ等の処理負荷を軽減することができる。
【発明を実施するための最良の形態】
【００１７】
以下、本発明の実施の形態について、図面を参照しながら説明する。
本発明の画像圧縮データストリーム暗号装置の構成は、従来と同様な図１による構成になり、従来と異なるのは、圧縮処理７と暗号処理８の内部構成と動作である。
圧縮処理７の構成を図２に示し、動作を説明する。従来の圧縮処理７は画像圧縮２７のみで構成されていたが、本発明ではスタッフィング数計算１７とスタッフィング発生１８の処理が加わる。スタッフィングとは「詰め物データ」のことで、所定のデータ数に調整するために追加する、画像圧縮データとは無関係なデータのことである。ただし、ＭＰＥＧ−４規格で規定されたスタッフィングとは異なり、本説明でのスタッフィングはユーザデータ等、圧縮データ中に挿入してデータ長を調整するのに利用できるデータ全てを総称してスタッフィングと呼称する。
動作の一例として、以下の仮定において説明する。プロセッサのレジスタ長を３２ビット（＝４バイト）とし１回のＸＯＲ演算で４バイトを処理可能とする。また、メモリから１回のアクセスで読み書きできるバイト数を４バイトとする。よって、メモリ境界は先頭番地から４バイト毎の位置に存在する。
画像圧縮２７が出力した圧縮データ１３のデータサイズは、圧縮データサイズ１４としてスタッフィング計算１７に入力し、必要なスタッフィング数をスタッフィングサイズ１６として、スタッフィング発生１８へ出力する。例えば、圧縮データ１３が８３バイトであった場合、８３バイト以上で４の倍数になる最小値８４バイトを求め、差し引き１バイトのスタッフィングを付加すると計算する。圧縮データ量が不用意に増大することを防ぐため最小値８４バイトを求めたが、４の倍数であれば８８バイトや９２バイトでもかまわない。この「１バイト」という計算結果をスタッフィングサイズ１６として、スタッフィング発生１８に出力する。
スタッフィング発生１８は、入力されたスタッフィングサイズ１６から必要な数のスタッフィングをスタッフィングデータ１５として出力し、圧縮データ１３に追加し、圧縮データ２としてメモリ１１に出力する。上記の仮定に従うと、スタッフィングサイズ１６は「１バイト」、圧縮データ１３は「８３バイト」であるから、スタッフィングが追加された圧縮データ２は「８４バイト」になる。スタッフィングデータ１５の値は、画像圧縮規格により異なるが、例えばＭＰＥＧ−４規格のスタッフィングであれば、１６進数で「７Ｆ」になり、この値が圧縮データの所定の位置にあれば、受信側の伸張処理ではこのデータを読み飛ばす。
スタッフィングが付加された圧縮データ２は、メモリ１１に格納されるが、メモリ境界は４バイト毎、圧縮データ２のサイズは４の倍数であることから、メモリ１１への書き込み開始をメモリ１１の４バイト境界位置に合わせれば、圧縮データ２の書き込み終了位置も４バイト境界に合った位置になる。そのため書き込み開始位置をメモリ１１の０番地、４番地、８番地、・・・と４の倍数位置にすれば、圧縮データ２の書き込み終了位置のデータが３バイトを残してメモリ境界をまたぐなど、４の倍数以外の端数を残してメモリ境界をまたぐことはない。
次に、暗号処理８の構成を図３に示し、動作を説明する。従来の構成との違いは、フラグ発生部１３が追加されているだけであるが、内部処理で比較すると、一度に処理するデータのバイト数が従来と異なる。本発明では数バイトを１単位として処理するため、上記仮定に合わせれば、平文データ３、暗号データ４、鍵ストリーム２５が４バイト単位で処理される。従来はこのデータ幅は１バイト単位であった。よって、平文データ３と鍵ストリーム２５の結合を行うＸＯＲ演算は４バイトを１回で処理する。
初期ベクトル２８と鍵データ２６から鍵ストリーム２５を生成する動作や、それを平文データ３と結合したデータと平文データ３をデータ切り替え器１５で切り替えながら、暗号データ４としてメモリ１２に格納する処理も、従来と同じであり、先に述べたようにデータ幅が４バイトになる部分が従来の１バイト幅と異なるのみである。
本発明で追加したフラグ発生部１３について、同じ図３で説明する。このフラグの目的は、暗号処理を数バイト単位、この例の仮定では４バイト単位で処理したことを受信側の暗号データの復号処理に知らせることである。受信データ中にフラグを付加することで、フラグに有無により、暗号データの復号処理を従来と同じ１バイト単位にするか、数バイト単位にするかを判断する。フラグがあれば数バイト単位、この仮定では４バイト単位で復号処理が実行でき、受信側のプロセッサの処理負荷を軽減できる。
このフラグは、暗号データの復号を行う際に参照することから、暗号化対象とせず、平文データの中に付加する。フラグ付加の動作は、暗号処理制御部２４がタイミングを制御する。従来から暗号処理制御部２４は、平文データと暗号データの切り替えを制御しているため、平文データにフラグを付加するタイミングの制御も可能である。暗号処理制御部２４は、フラグ付加制御信号１４をフラグ発生部１３に出力することで、フラグ１６を発生させ、平文データ３の所定の位置にフラグ１６を付加する。
次に、図６を用いて数バイト単位のメモリ１１からの読み出しと、鍵ストリーム２５との演算の様子を、より詳細に説明する。メモリ１１には平文データ３が格納されている。図６では、幅４バイト毎に区切って図示してあり、先頭番地のデータから１バイト毎に１、２、３、・・・とナンバリングしている。メモリ１１からの読み出しを１回実行すると４バイトの平文データ３が読み出される。図６では、１、２、３、４のデータが読み出されたとする。これに合わせ鍵ストリーム２５が生成される。図６では、一、二、三、四の４バイトのデータである。この平文データ３と鍵ストリーム２５を１回のＸＯＲで演算し、４バイトの暗号データ４を生成する。
図６では、平文データ３の「１」と鍵ストリーム２５の「一」をＸＯＲし「１'」が生成される。同様に「２'」「３'」「４'」が生成される。ＸＯＲは各ビット毎の演算であり、桁上がりがない。よって従来の暗号処理でＸＯＲ演算を１バイト毎に実行し、「１」と「一」から「１'」を、「２」と「二」から「２'」を生成するのと同じ結果になる。つまり平文データと鍵ストリームが同一な値であれば、従来の１バイト単位で暗号化するストリーム暗号と同じ暗号データを生成することになるため、暗号処理を４バイト単位で行っても、受信側の復号処理を１バイト単位の従来の暗号アルゴリズムで復号することも可能である。また、圧縮データのサイズが４バイトの倍数長で、被暗号データ部分を４バイト境界に配置すれば、これとは逆に暗号処理を１バイト単位、復号処理を４バイト単位で行うことも可能である。
このように、４バイトの平文データ３と、４バイトの鍵ストリーム２５から、４バイトの暗号ストリーム４を生成するのに１回のＸＯＲで演算できるので、従来の１バイトごとのＸＯＲ演算より１／４の処理時間で暗号データ４を生成できる。
前述したように暗号データ４は、一部の平文データとそれ以外の暗号化データから構成される。その一例を図７を用いて説明する。
図７は、暗号データ４の一部分を抜粋したものである。暗号データ４の中には圧縮した画像データがフレーム毎に連結して格納されている。１つの画像フレームは先頭に平文データ、後方に暗号データがある。平文データと暗号データはそれぞれ４の倍数長であり、１つの画像フレームも４の倍数長となる。
平文データの内容は、先頭に画像フレームの先頭を示すフレームヘッダや暗号データを復号する際に使用する初期ベクトル、本発明で付加したフラグが格納されている。受信側では、平文データに格納されたフレームヘッダを検索して画像フレームの先頭を認識する。また初期ベクトルを読み込み、暗号データ部分の復号処理に使用する。フラグが付加されていた場合、暗号データ長は４の倍数で、かつメモリに格納した際には４バイトごとのメモリ境界をまたがないように格納できることを示している。そこで４バイトのデータを１回のＸＯＲ演算で処理できることが分かり、受信側プロセッサの処理負荷を低減することができる。
以上の例では、プロセッサのレジスタ長を４バイト、１回のメモリアクセスで読み書きできるデータ長も４バイトとして説明した。しかし、このそれぞれのサイズは他のバイト数でもかまわない。例えば、プロセッサのレジスタ長を倍の８バイト、メモリアクセスのデータ長を４バイトとした場合、暗号データに付加するスタッフィングの数は、暗号データ長が８の倍数になるようにする。
このように、圧縮データの生成時に付加するスタッフィングの個数を調整し、フラグを付加することで、暗号処理、復号処理のプロセッサ負荷を低減することができる。
【００１８】
また、本発明の適用分野としては、必ずしも以上に示したものに限られず、本発明は、種々な分野に適用することが可能なものである。
【００１９】
また、本発明に係る画像圧縮装置において行われる各種の処理としては、例えばプロセッサやメモリ等を備えたハードウエア資源においてプロセッサがＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）に格納された制御プログラムを実行することにより制御される構成が用いられてもよく、また、例えば当該処理を実行するための各機能手段が独立したハードウエア回路として構成されてもよい。
【００２０】
また、本発明は上記の制御プログラムを格納したフロッピー（登録商標）ディスクやＣＤ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ）−ＲＯＭ等のコンピュータにより読み取り可能な記録媒体や当該プログラム（自体）として把握することもでき、当該制御プログラムを当該記録媒体からコンピュータに入力してプロセッサに実行させることにより、本発明に係る処理を遂行させることができる。
【図面の簡単な説明】
【００２１】
【図１】画像圧縮データストリーム暗号装置を示す図である。
【図２】本発明の一実施例に係る圧縮処理を示す図である。
【図３】本発明の一実施例に係る暗号処理を示す図である。
【図４】従来の圧縮処理を示す図である。
【図５】従来の暗号処理を示す図である。
【図６】４バイトを同時に処理する暗号処理を示す図である。
【図７】暗号データの構造を示す図である。
【符号の説明】
【００２２】
１：映像データ、２：圧縮データ、３：平文データ、４：暗号データ、５：配信データ、６：カメラ、７：圧縮処理、８：暗号処理、９：配信処理、１０：ネットワーク、１１：メモリ、１２：メモリ、１３：圧縮データ、１４：圧縮データサイズ、１５：スタッフィングデータ、１６：スタッフィングサイズ、１７：スタッフィング数計算、１８：スタッフィング発生、１９：メモリ読み出し制御信号、２０：データ切り替え信号、２１：初期ベクトル発生部、２２：暗号鍵管理部、２３：鍵ストリーム発生部、２４：暗号処理制御部、２５：鍵ストリーム、２６：鍵データ、２７：圧縮処理、２８：初期ベクトル。
【図１】
2008035431.tif 000003
【図２】
2008035431.tif 000004
【図３】
2008035431.tif 000005
【図４】
2008035431.tif 000006
【図５】
2008035431.tif 000007
【図６】
2008035431.tif 000008
【図７】
2008035431.tif 000009