(57)【特許請求の範囲】
【請求項１】
ストリーム暗号方式によって画像データを暗号化する暗号化装置であって、
初期ベクトルに基づいて、乱数配列である基本ベクトルを生成する基本ベクトル生成回路と、
前記基本ベクトルと、画像のフレームサイズ未満の暗号化対象領域を指定するための座標情報とに基づいて、前記暗号化対象領域内の画素毎のマスク値が設定された画像マスクを生成する画像マスク生成回路と、
前記画像マスクの各マスク値と前記画像データの各画素値との排他的論理和を演算することにより、暗号化画像データを生成する暗号化画像データ生成回路と、
を備える、暗号化装置。
【請求項２】
前記画像マスク生成回路は、暗号化強度を設定するための強度設定情報に基づいて、前記基本ベクトルの全データ長のうち前記マスク値の生成のために使用する有効データ長を異ならせることにより、前記マスク値の乱雑度を可変に設定する、請求項１に記載の暗号化装置。
【請求項３】
前記座標情報によって、画像の１フレーム内に複数の前記暗号化対象領域を指定可能であり、
前記強度設定情報によって、複数の前記暗号化対象領域毎に異なる暗号化強度を設定可能である、請求項２に記載の暗号化装置。
【請求項４】
前記基本ベクトル生成回路は、画像の１フレームのデータサイズ未満のデータ長を有する前記基本ベクトルを生成し、
前記画像マスク生成回路は、画像ライン毎に異なる順序で前記基本ベクトルの乱数配列を並び替えることによって、前記画像マスクの各ラインのマスク値を設定する、請求項１〜３のいずれか一つに記載の暗号化装置。
【請求項５】
前記基本ベクトル生成回路は、２のべき乗のバイト長を有する前記基本ベクトルを生成し、
前記画像マスク生成回路は、
前記基本ベクトルの乱数配列を並び替えるために画像ライン毎に異なるオフセット値及びピッチ値を設定し、
前記ピッチ値を、２のべき乗でない値に設定する、請求項４に記載の暗号化装置。
【請求項６】
あるフレームに関して生成された前記暗号化画像データに基づいて、次のフレームに関する前記初期ベクトルを生成する初期ベクトル生成回路をさらに備える、請求項１〜５のいずれか一つに記載の暗号化装置。
【請求項７】
コンピュータを、
初期ベクトルに基づいて、乱数配列である基本ベクトルを生成する基本ベクトル生成手段、
前記基本ベクトルと、画像のフレームサイズ未満の暗号化対象領域を指定するための座標情報とに基づいて、前記暗号化対象領域内の画素毎のマスク値が設定された画像マスクを生成する画像マスク生成手段、及び、
前記画像マスクの各マスク値と前記画像データの各画素値との排他的論理和を演算することにより、暗号化画像データを生成する暗号化画像データ生成手段、
として機能させるためのプログラム。
【請求項８】
（Ａ）基本ベクトル生成回路が、初期ベクトルに基づいて、乱数配列である基本ベクトルを生成するステップと、
（Ｂ）画像マスク生成回路が、前記基本ベクトルと、画像のフレームサイズ未満の暗号化対象領域を指定するための座標情報とに基づいて、前記暗号化対象領域内の画素毎のマスク値が設定された画像マスクを生成するステップと、
（Ｃ）暗号化画像データ生成回路が、前記画像マスクの各マスク値と前記画像データの各画素値との排他的論理和を演算することにより、暗号化画像データを生成するステップと、
を備える、暗号化方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動画像の画像データを暗号化するための暗号化装置、プログラム、及び暗号化方法に関する。
【背景技術】
【０００２】
複数の回路基板間で動画像の画像データを転送する場合、回路基板間の配線上で画像データが抜き取られる可能性がある。そこで、送信側の回路基板で画像データを暗号化することによって暗号化画像データを送信し、受信側の回路基板で暗号化画像データを復号化することによって、回路基板間で転送される画像データを保護することができる。
【０００３】
なお、下記特許文献１には、鍵データと情報データとの排他的論理和によって暗号文を生成するストリーム暗号方式において、前回の暗号文中から取り出した一部のデータに基づいて鍵データを生成し、当該鍵データによって次回の情報データを暗号化する暗号化装置が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】国際公開番号ＷＯ２００４／０８６６７２号
【発明の概要】
【発明が解決しようとする課題】
【０００５】
回路基板間で動画像の画像データを転送する場合、ＡＥＳ等のブロック暗号方式によって画像データの全てを暗号化したのでは、処理時間及び回路規模の増大を招くとともに、画像データの通信以外に共通鍵の交換が必要になるため処理が複雑化する。
【０００６】
本発明はかかる問題を解決するために成されたものであり、簡易な構成及び処理によって画像データを暗号化することが可能な、暗号化装置、プログラム、及び暗号化方法を得ることを目的とするものである。
【課題を解決するための手段】
【０００７】
本発明の第１の態様に係る暗号化装置は、ストリーム暗号方式によって画像データを暗号化する暗号化装置であって、初期ベクトルに基づいて、乱数配列である基本ベクトルを生成する基本ベクトル生成回路と、前記基本ベクトルと、画像のフレームサイズ未満の暗号化対象領域を指定するための座標情報とに基づいて、前記暗号化対象領域内の画素毎のマスク値が設定された画像マスクを生成する画像マスク生成回路と、前記画像マスクの各マスク値と前記画像データの各画素値との排他的論理和を演算することにより、暗号化画像データを生成する暗号化画像データ生成回路と、を備えることを特徴とするものである。
【０００８】
第１の態様に係る暗号化装置によれば、画像マスク生成回路は、基本ベクトルと、画像のフレームサイズ未満の暗号化対象領域を指定するための座標情報とに基づいて、暗号化対象領域内の画素毎のマスク値が設定された画像マスクを生成する。そして、暗号化画像データ生成回路は、画像マスクの各マスク値と画像データの各画素値との排他的論理和を演算することにより、暗号化画像データを生成する。これにより、画像のフレーム全体のうち画像マスクがかけられた暗号化対象領域のみの画像データを暗号化することができる。秘匿の必要性が高い重要な画像部分を暗号化対象領域として指定することにより、回路基板間で画像データを転送する場合であっても、重要な画像部分が抜き取られることを効果的に防止できる。また、暗号化画像データを受信した復号化装置では、暗号化装置と同一のアルゴリズムによって同一の画像マスクを生成し、当該画像マスクと暗号化画像データとの排他的論理和を演算することによって、暗号化画像データを復号化することができる。従って、暗号化装置は復号化装置に対して暗号化画像データのみを送信すれば足り、暗号化装置と復号化装置との間で鍵の交換は不要となる。その結果、ＡＥＳ等のブロック暗号方式によって画像データの全てを暗号化する場合と比較すると、簡易な構成及び処理によって画像データを暗号化することが可能となる。
【０００９】
本発明の第２の態様に係る暗号化装置は、第１の態様に係る暗号化装置において特に、前記画像マスク生成回路は、暗号化強度を設定するための強度設定情報に基づいて、前記基本ベクトルの全データ長のうち前記マスク値の生成のために使用する有効データ長を異ならせることにより、前記マスク値の乱雑度を可変に設定することを特徴とするものである。
【００１０】
第２の態様に係る暗号化装置によれば、画像マスク生成回路は、暗号化強度を設定するための強度設定情報に基づいて、基本ベクトルの全データ長のうちマスク値の生成のために使用する有効データ長を異ならせることにより、マスク値の乱雑度を可変に設定する。暗号化強度を高く設定した場合には、マスク値の乱雑度が高くなるため暗号化対象領域の攪拌度は高くなり、一方、暗号化強度を低く設定した場合には、マスク値の乱雑度が低くなるため暗号化対象領域の攪拌度は低くなる。従って、暗号化対象領域として指定する画像部分の秘匿の必要性等に応じて、暗号化対象領域の攪拌度を任意に設定することが可能となる。
【００１１】
本発明の第３の態様に係る暗号化装置は、第２の態様に係る暗号化装置において特に、前記座標情報によって、画像の１フレーム内に複数の前記暗号化対象領域を指定可能であり、前記強度設定情報によって、複数の前記暗号化対象領域毎に異なる暗号化強度を設定可能であることを特徴とするものである。
【００１２】
第３の態様に係る暗号化装置によれば、座標情報によって、画像の１フレーム内に複数の暗号化対象領域を指定でき、また、強度設定情報によって、複数の暗号化対象領域毎に異なる暗号化強度を設定できる。従って、暗号化対象領域として指定する各画像部分の秘匿の必要性等に応じて、各暗号化対象領域の攪拌度を任意に設定することが可能となる。例えば、秘匿の必要性が高い重要な画像部分には、高い暗号化強度を設定するとともに、課金誘導等のために元の画像が大まかに推測されるのが望ましい画像部分には、低い暗号化強度を設定することができる。
【００１３】
本発明の第４の態様に係る暗号化装置は、第１〜第３のいずれか一つの態様に係る暗号化装置において特に、前記基本ベクトル生成回路は、画像の１フレームのデータサイズ未満のデータ長を有する前記基本ベクトルを生成し、前記画像マスク生成回路は、画像ライン毎に異なる順序で前記基本ベクトルの乱数配列を並び替えることによって、前記画像マスクの各ラインのマスク値を設定することを特徴とするものである。
【００１４】
第４の態様に係る暗号化装置によれば、基本ベクトル生成回路は、画像の１フレームのデータサイズ未満のデータ長を有する基本ベクトルを生成し、画像マスク生成回路は、基本ベクトルの乱数配列を並び替えることによって画像マスクの各ラインのマスク値を設定する。従って、１フレームのデータサイズに相当するデータ長の基本ベクトルを生成する必要がないため、回路構成及び処理の簡略化を図ることができる。また、画像マスク生成回路は、画像ライン毎に異なる順序で基本ベクトルの乱数配列を並び替える。一般に画像データは隣接する画像ライン間で相関が高いため、画像ライン毎に乱数の配列順序を異ならせることによってその相関が低くなり、その結果、画像マスクにおけるマスク値の乱雑度を高めることができる。
【００１５】
本発明の第５の態様に係る暗号化装置は、第４の態様に係る暗号化装置において特に、前記基本ベクトル生成回路は、２のべき乗のバイト長を有する前記基本ベクトルを生成し、前記画像マスク生成回路は、前記基本ベクトルの乱数配列を並び替えるために画像ライン毎に異なるオフセット値及びピッチ値を設定し、前記ピッチ値を、２のべき乗でない値に設定することを特徴とするものである。
【００１６】
第５の態様に係る暗号化装置によれば、画像マスク生成回路は、マスク値を生成するにあたり、画像ライン毎に異なるオフセット値及びピッチ値を設定する。これにより、画像ライン毎に異なる順序で基本ベクトルの乱数配列を簡易に並び替えることができる。また、基本ベクトル生成回路は、２のべき乗のバイト長を有する基本ベクトルを生成し、画像マスク生成回路は、ピッチ値を２のべき乗でない値に設定する。これにより、マスク値を生成する際に基本ベクトルの特定のバイトのみが繰り返し使用されることを回避でき、その結果、マスク値の乱雑度を高めることができる。
【００１７】
本発明の第６の態様に係る暗号化装置は、第１〜第５のいずれか一つの態様に係る暗号化装置において特に、あるフレームに関して生成された前記暗号化画像データに基づいて、次のフレームに関する前記初期ベクトルを生成する初期ベクトル生成回路をさらに備えることを特徴とするものである。
【００１８】
第６の態様に係る暗号化装置によれば、初期ベクトル生成回路は、あるフレームに関して生成された暗号化画像データに基づいて、次のフレームに関する初期ベクトルを生成する。このように、フレーム毎に初期ベクトルを更新することによって基本ベクトルも更新されるため、画像データのフレーム毎に新たな基本ベクトルを用いて画像データを適切に暗号化することが可能となる。また、自己循環によって初期ベクトルを更新するため、暗号化装置と復号化装置との間で初期ベクトルを同期させるための通信は不要となり、通信量を削減することが可能となる。
【００１９】
本発明の第７の態様に係るプログラムは、コンピュータを、初期ベクトルに基づいて、乱数配列である基本ベクトルを生成する基本ベクトル生成手段、前記基本ベクトルと、画像のフレームサイズ未満の暗号化対象領域を指定するための座標情報とに基づいて、前記暗号化対象領域内の画素毎のマスク値が設定された画像マスクを生成する画像マスク生成手段、及び、前記画像マスクの各マスク値と前記画像データの各画素値との排他的論理和を演算することにより、暗号化画像データを生成する暗号化画像データ生成手段、として機能させるためのプログラムである。
【００２０】
第７の態様に係るプログラムによれば、画像マスク生成手段は、基本ベクトルと、画像のフレームサイズ未満の暗号化対象領域を指定するための座標情報とに基づいて、暗号化対象領域内の画素毎のマスク値が設定された画像マスクを生成する。そして、暗号化画像データ生成手段は、画像マスクの各マスク値と画像データの各画素値との排他的論理和を演算することにより、暗号化画像データを生成する。これにより、画像のフレーム全体のうち画像マスクがかけられた暗号化対象領域のみの画像データを暗号化することができる。秘匿の必要性が高い重要な画像部分を暗号化対象領域として指定することにより、回路基板間で画像データを転送する場合であっても、重要な画像部分が抜き取られることを効果的に防止できる。また、暗号化画像データを受信した復号化装置では、暗号化装置と同一のアルゴリズムによって同一の画像マスクを生成し、当該画像マスクと暗号化画像データとの排他的論理和を演算することによって、暗号化画像データを復号化することができる。従って、暗号化装置は復号化装置に対して暗号化画像データのみを送信すれば足り、暗号化装置と復号化装置との間で鍵の交換は不要となる。その結果、ＡＥＳ等のブロック暗号方式によって画像データの全てを暗号化する場合と比較すると、簡易な構成及び処理によって画像データを暗号化することが可能となる。
【００２１】
本発明の第８の態様に係る暗号化方法は、（Ａ）基本ベクトル生成回路が、初期ベクトルに基づいて、乱数配列である基本ベクトルを生成するステップと、（Ｂ）画像マスク生成回路が、前記基本ベクトルと、画像のフレームサイズ未満の暗号化対象領域を指定するための座標情報とに基づいて、前記暗号化対象領域内の画素毎のマスク値が設定された画像マスクを生成するステップと、（Ｃ）暗号化画像データ生成回路が、前記画像マスクの各マスク値と前記画像データの各画素値との排他的論理和を演算することにより、暗号化画像データを生成するステップと、を備えることを特徴とするものである。
【００２２】
第８の態様に係る暗号化方法によれば、ステップ（Ｂ）では、基本ベクトルと、画像のフレームサイズ未満の暗号化対象領域を指定するための座標情報とに基づいて、暗号化対象領域内の画素毎のマスク値が設定された画像マスクが生成される。そして、ステップ（Ｃ）では、画像マスクの各マスク値と画像データの各画素値との排他的論理和を演算することにより、暗号化画像データが生成される。これにより、画像のフレーム全体のうち画像マスクがかけられた暗号化対象領域のみの画像データを暗号化することができる。秘匿の必要性が高い重要な画像部分を暗号化対象領域として指定することにより、回路基板間で画像データを転送する場合であっても、重要な画像部分が抜き取られることを効果的に防止できる。また、暗号化画像データを受信した復号化装置では、暗号化装置と同一のアルゴリズムによって同一の画像マスクを生成し、当該画像マスクと暗号化画像データとの排他的論理和を演算することによって、暗号化画像データを復号化することができる。従って、暗号化装置は復号化装置に対して暗号化画像データのみを送信すれば足り、暗号化装置と復号化装置との間で鍵の交換は不要となる。その結果、ＡＥＳ等のブロック暗号方式によって画像データの全てを暗号化する場合と比較すると、簡易な構成及び処理によって画像データを暗号化することが可能となる。
【発明の効果】
【００２３】
本発明によれば、簡易な構成及び処理によって画像データを暗号化することが可能となる。
【図面の簡単な説明】
【００２４】
【図１】本発明の実施の形態に係るデータ処理システムの構成を示す図である。
【図２】暗号化回路による画像データの暗号化の一例を示す図である。
【図３】暗号化回路の構成を示す図である。
【図４】基本ベクトルから画像マスクを生成する手法を説明するための図である。
【図５】暗号化回路の動作を説明するためのフローチャートである。
【図６】復号化回路の構成を示す図である。
【図７】復号化回路の動作を説明するためのフローチャートである。
【図８】暗号化回路及び復号化回路の機能をＣＰＵによって実現する場合の構成を示す図である。
【発明を実施するための形態】
【００２５】
以下、本発明の実施の形態について、図面を用いて詳細に説明する。なお、異なる図面において同一の符号を付した要素は、同一又は相応する要素を示すものとする。
【００２６】
図１は、本発明の実施の形態に係るデータ処理システム１の構成を示す図である。図１に示すようにデータ処理システム１は、配線Ｌを介して接続された送信側回路基板１１と受信側回路基板１２とを備えている。例えば、受信側回路基板１２は、データ処理システム１におけるメインのデータ処理を実行する回路基板であり、送信側回路基板１１は、グラフィックス等のサブのデータ処理を実行する回路基板である。
【００２７】
送信側回路基板１１は、いずれもバスに接続された、ＣＰＵ２１、暗号化回路２２、記憶部２３、ＤＭＡ（Direct Memory Access）回路２４、及びインタフェース回路２５を有している。記憶部２３には、非暗号の動画像の画像データが格納されている。なお、暗号化回路２２は、ＤＭＡ回路２４の機能の一部としてＤＭＡ回路２４内に設けても良い。送信側回路基板１１は、記憶部２３から読み出した画像データを暗号化回路２２で暗号化することによって暗号化画像データを生成し、その暗号化画像データを、配線Ｌを介して受信側回路基板１２に送信する。
【００２８】
受信側回路基板１２は、いずれもバスに接続された、ＣＰＵ３１、復号化回路３２、記憶部３３、ＤＭＡ回路３４、及びインタフェース回路３５を有している。なお、復号化回路３２は、ＤＭＡ回路３４の機能の一部としてＤＭＡ回路３４内に設けても良い。受信側回路基板１２は、送信側回路基板１１から受信した暗号化画像データを復号化回路３２で復号化することによって非暗号の画像データを復元し、その画像データを記憶部３３に格納する。
【００２９】
図２は、暗号化回路２２による画像データの暗号化の一例を示す図である。暗号化回路２２においては、フレーム全体のうち暗号化すべき領域を設定するための座標情報Ｄ１２によって、フレーム内に一以上の暗号化対象領域を任意に設定することができる。暗号化対象領域のサイズとしては、フレームサイズ未満のサイズを設定することができる。但し、フレームサイズと同じサイズを設定することにより、フレーム全体を暗号化対象領域として設定することもできる。図２に示した例では、「ＡＢＣＤＥ」のロゴが表示されたフレームのうち「Ｂ」及び「Ｄ」に対応する画像部分が暗号化対象領域Ｒ１，Ｒ２として設定されている。なお、暗号化回路２２においては、フレームの左上角を原点として、フレームの横軸（ｘ軸）に沿ったｘ座標と、縦軸（ｙ軸）に沿ったｙ座標とによって、各画素の位置が規定される。
【００３０】
また、暗号化回路２２においては、暗号化強度を設定するための強度設定情報Ｄ１３によって、暗号化対象領域における画像の攪拌度を任意に設定することができる。図２に示した例では、暗号化対象領域Ｒ１に対しては高い暗号化強度が設定されており、その攪拌度は高いため、「Ｂ」の文字は全く識別できない。また、暗号化対象領域Ｒ２に対しては低い暗号化強度が設定されており、その攪拌度は低いため、大まかに推測できる程度に「Ｄ」の文字が識別できる。また、暗号化対象領域Ｒ１，Ｒ２以外の非暗号化対象領域Ｒ０に関しては、画像は攪拌されていない。
【００３１】
図３は、暗号化回路２２の構成を示す図である。図３の接続関係で示すように、暗号化回路２２は、基本ベクトル生成回路４１、画像マスク生成回路４２、ＸＯＲ演算回路４３、初期ベクトル生成回路４４、入力回路４５、及び出力回路４６を備えて構成されている。本実施の形態の例において、暗号化回路２２は、ＯＦＢモードによるストリーム暗号方式を使用し、通常のＯＦＢ構成に必要な基本ベクトル生成回路４１及びＸＯＲ演算回路４３に、画像マスク生成回路４２及び初期ベクトル生成回路４４を追加した構成を有している。
【００３２】
基本ベクトル生成回路４１は、初期ベクトルＤ１１，Ｄ１７に基づいて、乱数配列である基本ベクトルＤ１４を生成する。初期ベクトルＤ１１，Ｄ１７及び基本ベクトルＤ１４のデータ長は予め定められており、本実施の形態の例では、初期ベクトルＤ１１，Ｄ１７のデータ長は８バイト、基本ベクトルＤ１４のデータ長は２０４８バイトとする。つまり、基本ベクトルＤ１４は２０４８バイト長の乱数配列であり、本明細書では、２０４８バイトの中の特定の１バイトの乱数を表すときは、Ｎ［ｎ］（ｎは０〜２０４７）と表記する。基本ベクトルＤ１４のデータ長は、画像の１フレームのデータサイズよりも十分に小さい。
【００３３】
基本ベクトル生成回路４１は、任意の暗号アルゴリズムによって、８バイト長の初期ベクトルＤ１１，Ｄ１７から２０４８バイト長の基本ベクトルＤ１４を生成する。例えば、８バイト長の初期ベクトルＤ１１，Ｄ１７に対してｂｌｏｗｆｉｓｈを２５６回実行することにより、２０４８バイト長の基本ベクトルＤ１４を生成する。但し、ＡＥＳ等の他の暗号アルゴリズムを用いても良い。基本ベクトル生成回路４１は、１フレームに対して１つの基本ベクトルＤ１４を生成し、その基本ベクトルＤ１４を画像マスク生成回路４２に入力する。
【００３４】
画像マスク生成回路４２は、基本ベクトルＤ１４に基づいて、画素毎のマスク値が設定された画像マスクＤ１５を生成する。画像マスク生成回路４２には、暗号化対象領域の座標情報Ｄ１２と強度設定情報Ｄ１３とが入力される。座標情報Ｄ１２及び強度設定情報Ｄ１３は、画像の重要度等に応じてユーザが任意に設定しても良いし、外部システムによって自動設定されても良い。例えば、監視カメラシステムにおける顔認識や動き認識の結果に基づいてこれらの情報が自動設定されても良い。
【００３５】
強度設定情報Ｄ１３によって暗号化強度Ｍを設定することができ、本実施の形態の例では、暗号化強度Ｍの最大値は基本ベクトルＤ１４のデータ長に相当する「２０４８」であり、最小値は「０」である。
【００３６】
説明の簡単化のため、本実施の形態の例では、暗号化強度Ｍの値は「２０４８」「８」「０」のいずれかに設定されるものとする。暗号化強度Ｍの値が「２０４８」である場合には、２０４８バイト長の基本ベクトルＤ１４の全長を使ってマスク値を設定できるため、マスク値の乱雑度は高くなる。暗号化強度Ｍの値が「８」である場合には、基本ベクトルＤ１４内の特定の８バイト（例えば先頭８バイト）を使ってマスク値を設定するため、マスク値の乱雑度は低くなる。また、暗号化強度Ｍの値が「０」である場合には、マスク値は「０」となり、画像データは暗号化されない。つまり、画像マスク生成回路４２は、強度設定情報Ｄ１３に基づいて、基本ベクトルＤ１４の全データ長のうち画像マスクＤ１５の生成のために使用する有効データ長を異ならせることにより、マスク値の乱雑度を可変に設定する。
【００３７】
図４は、一つの画像ラインに関して、画像マスク生成回路４２によって基本ベクトルＤ１４から画像マスクＤ１５を生成する手法を説明するための図である。図４には、暗号化強度Ｍが「８」に設定された場合の例を示している。暗号化強度Ｍが「８」に設定されているため、基本ベクトルＤ１４の有効データ長は、バイトＢ０からバイトＢ７までの８バイトである。
【００３８】
画像マスク生成回路４２は、ｙ軸に沿って並ぶ画像ライン毎に、ピッチ値Ｐ及びオフセット値Ｑを設定する。具体的に、画像マスク生成回路４２は、下記式に従い、各画像ラインのピッチ値Ｐ（ｙ）及びオフセット値Ｑ（ｙ）を、隣接する画像ラインの設定値とは異なる値に設定する。
【００３９】
Ｐ（ｙ）＝Ｎ［（ｙ＋Ｐ（ｙ−１））％Ｍ］
Ｑ（ｙ）＝Ｎ［（ｙ＋Ｑ（ｙ−１））％Ｍ］
但し、
Ｐ（−１）＝０
Ｑ（−１）＝１
【００４０】
また、画像マスク生成回路４２は、上記式で求めたピッチ値Ｐ（ｙ）が２のべき乗の値である場合には、例えばそのピッチ値Ｐ（ｙ）に「１」を加算することにより、２のべき乗でない値に設定する。
【００４１】
画像マスク生成回路４２は、設定されたピッチ値Ｐ（ｙ）及びオフセット値Ｑ（ｙ）に基づいて、基本ベクトルＤ１４の乱数配列を並び替えることによって、画像マスクＤ１５を生成する。具体的に、画像マスク生成回路４２は、下記式に従い、座標（ｘ，ｙ）に位置する画素に対するマスク値ＭＡＳＫ（ｘ，ｙ，Ｍ）を設定する。暗号化強度Ｍによって、基本ベクトルＤ１４の有効データ長が設定される。
【００４２】
ＭＡＳＫ（ｘ，ｙ，Ｍ）＝Ｎ［（Ｐ（ｙ）＊ｘ＋Ｑ（ｙ））％Ｍ］
【００４３】
図４に示した例では、ピッチ値Ｐは「３」、オフセット値Ｑは「２」に設定されている。従って、基本ベクトルＤ１４の先頭バイトＢ０から２バイトずれた位置にあるバイトＢ２が、画像マスクＤ１５の先頭バイトとなる。また、基本ベクトルＤ１４においてバイトＢ２から３バイト離れた位置にあるバイトＢ５が、画像マスクＤ１５の２番目のバイトとなる。同様に、基本ベクトルＤ１４において３バイトずつ離れた位置にあるバイト（末尾に到達すると先頭に戻る）を順番に並べることにより、画像マスクＤ１５が生成される。画像マスクＤ１５の各バイトが、各画素に対応するマスク値ＭＡＳＫとなる。例えば、図４に示した画像マスクＤ１５がかけられる画像ラインの第０列（ｘ＝０）には、第０番目のマスク値としてバイトＢ２が適用され、第１列（ｘ＝１）には、第１番目のマスク値としてバイトＢ５が適用される。画像マスク生成回路４２は、生成した画像マスクＤ１５を、ＸＯＲ演算回路４３に入力する。
【００４４】
ＸＯＲ演算回路４３は、画像マスクＤ１５の各マスク値と、入力回路４５から入力された画像データＤ１６の各画素値との排他的論理和を演算する。これにより、各画素値が暗号化される。ＸＯＲ演算回路４３は、画像データＤ１６に含まれる全ての画素に対して上記と同様の演算を順に実行し、これにより、暗号化画像データＤ１００が生成される。暗号化画像データＤ１００は、出力回路４６から出力され、受信側回路基板１２に向けて送信される。また、暗号化画像データＤ１００は、初期ベクトル生成回路４４に入力される。
【００４５】
初期ベクトル生成回路４４は、あるフレームに関して生成された暗号化画像データＤ１００に基づいて、次のフレームに関する初期ベクトルＤ１７を生成する。例えば、暗号化画像データＤ１００のうち、予め定められた特定の８バイト（例えば先頭８バイト）を抽出することにより、初期ベクトルＤ１７を生成する。
【００４６】
図５は、暗号化回路２２の動作を説明するためのフローチャートである。シーケンスの先頭フレームが入力されて暗号化処理が開始されると、まずステップＳＰ１０において初期ベクトルＤ１１が決定される。最初の初期ベクトルＤ１１としては、予め規定された乱数値が使用される。
【００４７】
次にステップＳＰ１１において基本ベクトル生成回路４１は、初期ベクトルＤ１１に基づいて基本ベクトルＤ１４を生成する。
【００４８】
次にステップＳＰ１２において画像マスク生成回路４２は、第０行目（ｙ＝０）の画像ラインに関するピッチ値Ｐ（０）及びオフセット値Ｑ（０）を設定する。
【００４９】
次にステップＳＰ１３において画像マスク生成回路４２は、基本ベクトルＤ１４と、座標情報Ｄ１２及び強度設定情報Ｄ１３とに基づいて、第０行目の画像ラインに属する第０列目（ｘ＝０）の画素に関するマスク値ＭＡＳＫ（０，０，Ｍ）を設定する。
【００５０】
次にステップＳＰ１４においてＸＯＲ演算回路４３は、画像マスク生成回路４２から入力されたマスク値（０，０，Ｍ）と、入力回路４５から入力された座標（０，０）の画素値との排他的論理和を演算することにより、座標（０，０）の画素値を暗号化する。
【００５１】
次にステップＳＰ１５において出力回路４６は、座標（０，０）の暗号化画素値を出力する。
【００５２】
座標ｘを更新することにより、第０行目の画像ラインに属する全ての画素に対して、ステップＳＰ１３〜ＳＰ１５の処理が順番に実行される。
【００５３】
第０行目の画像ラインに対する処理が完了すると、第１行目（ｙ＝１）の画像ラインに対して同様の処理が実行される。同様に、座標ｙを更新することにより、フレーム内の全ての画像ラインに対して、ステップＳＰ１２〜ＳＰ１５の処理が順番に実行される。フレーム内の全ての画素に対する処理が完了することにより、先頭フレームに関する暗号化処理が終了する。
【００５４】
次のフレームに関する暗号化処理においては、初期ベクトルＤ１１に代えて初期ベクトルＤ１７が使用される。初期ベクトル生成回路４４は、先頭フレームに関する暗号化処理の過程でＸＯＲ演算回路４３が出力した暗号化画素値を保持しており、フレーム全体の暗号化画素値の中から予め定められた特定領域（例えば先頭８バイト）の暗号化画素値を抽出することにより、次のフレームに対する初期ベクトルＤ１７を生成する。
【００５５】
図６は、復号化回路３２の構成を示す図である。図６の接続関係で示すように、復号化回路３２は、基本ベクトル生成回路５１、画像マスク生成回路５２、ＸＯＲ演算回路５３、初期ベクトル生成回路５４、入力回路５５、及び出力回路５６を備えて構成されている。ＸＯＲ演算回路５３及び初期ベクトル生成回路５４には入力回路５５から暗号化画像データＤ１００が入力される点、及び、ＸＯＲ演算回路５３からは復号化された画像データＤ２６が出力される点が、暗号化回路２２と異なる。
【００５６】
基本ベクトル生成回路５１は、初期ベクトルＤ１１，Ｄ１７と同様の初期ベクトルＤ２１，Ｄ２７に基づいて、基本ベクトルＤ１４と同様の基本ベクトルＤ２４を生成する。
【００５７】
画像マスク生成回路５２は、基本ベクトルＤ２４に基づいて、画像マスクＤ１５と同様の画像マスクＤ２５を生成する。また、画像マスク生成回路５２には、座標情報Ｄ１２及び強度設定情報Ｄ１３と同様の座標情報Ｄ２２及び強度設定情報Ｄ２３が入力される。
【００５８】
ＸＯＲ演算回路５３は、画像マスクＤ２５の各マスク値と、入力回路５５から入力された暗号化画像データＤ１００の各画素値との排他的論理和を演算する。これにより、各画素値が復号化される。ＸＯＲ演算回路５３は、暗号化画像データＤ１００に含まれる全ての画素に対して上記と同様の演算を順に実行し、これにより、画像データＤ１６と同様の非暗号の画像データＤ２６を生成する。
【００５９】
初期ベクトル生成回路５４は、あるフレームに関する暗号化画像データＤ１００に基づいて、初期ベクトルＤ１７と同様の、次のフレームに関する初期ベクトルＤ２７を生成する。
【００６０】
図７は、復号化回路３２の動作を説明するためのフローチャートである。シーケンスの先頭フレームが入力されて復号化処理が開始されると、まずステップＳＰ２０において初期ベクトルＤ２１が決定される。
【００６１】
次にステップＳＰ２１において基本ベクトル生成回路５１は、初期ベクトルＤ２１に基づいて基本ベクトルＤ２４を生成する。
【００６２】
次にステップＳＰ２２において画像マスク生成回路５２は、画像マスク生成回路４２と同様に、第０行目（ｙ＝０）の画像ラインに関するピッチ値Ｐ（０）及びオフセット値Ｑ（０）を設定する。
【００６３】
次にステップＳＰ２３において画像マスク生成回路５２は、画像マスク生成回路４２と同様に、基本ベクトルＤ２４と、座標情報Ｄ２２及び強度設定情報Ｄ２３とに基づいて、第０行目の画像ラインに属する第０列目（ｘ＝０）の画素に関するマスク値ＭＡＳＫ（０，０，Ｍ）を設定する。
【００６４】
次にステップＳＰ２４においてＸＯＲ演算回路５３は、画像マスク生成回路５２から入力されたマスク値（０，０，Ｍ）と、入力回路５５から入力された座標（０，０）の暗号化画素値との排他的論理和を演算することにより、座標（０，０）の画素値を復号化する。
【００６５】
次にステップＳＰ２５において出力回路５６は、復号化された座標（０，０）の画素値を出力する。
【００６６】
座標ｘを更新することにより、第０行目の画像ラインに属する全ての画素に対して、ステップＳＰ２３〜ＳＰ２５の処理が順番に実行される。
【００６７】
第０行目の画像ラインに対する処理が完了すると、第１行目（ｙ＝１）の画像ラインに対して同様の処理が実行される。同様に、座標ｙを更新することにより、フレーム内の全ての画像ラインに対して、ステップＳＰ２２〜ＳＰ２５の処理が順番に実行される。フレーム内の全ての画素に対する処理が完了することにより、先頭フレームに関する復号化処理が終了する。
【００６８】
次のフレームに関する復号化処理においては、初期ベクトルＤ２１に代えて初期ベクトルＤ２７が使用される。初期ベクトル生成回路５４は、先頭フレームに関する復号化処理の過程で入力回路５５が出力した暗号化画素値を保持しており、初期ベクトル生成回路４４と同様に、フレーム全体の暗号化画素値の中から特定領域の暗号化画素値を抽出することにより、次のフレームに対する初期ベクトルＤ２７を生成する。
【００６９】
なお、図３，６では、暗号化回路２２及び復号化回路３２をハードウェアによって構成する例を示したが、暗号化回路２２及び復号化回路３２の機能をコンピュータによるソフトウェア処理によって実現しても良い。図８は、暗号化回路２２及び復号化回路３２の機能をＣＰＵ２１，３１によって実現する場合の構成を示す図である。ＣＰＵ２１は、ＲＡＭ２６から読み出したプログラム２７を実行することにより、図３に示した基本ベクトル生成回路４１、画像マスク生成回路４２、ＸＯＲ演算回路４３、及び初期ベクトル生成回路４４と同等の、基本ベクトル生成手段、画像マスク生成手段、ＸＯＲ演算手段、及び初期ベクトル生成手段として機能する。換言すれば、プログラム２７は、ＣＰＵ２１を、基本ベクトル生成手段、画像マスク生成手段、ＸＯＲ演算手段、及び初期ベクトル生成手段として機能させるためのプログラムである。同様に、ＣＰＵ３１は、ＲＡＭ３６から読み出したプログラム３７を実行することにより、図６に示した基本ベクトル生成回路５１、画像マスク生成回路５２、ＸＯＲ演算回路５３、及び初期ベクトル生成回路５４と同等の、基本ベクトル生成手段、画像マスク生成手段、ＸＯＲ演算手段、及び初期ベクトル生成手段として機能する。換言すれば、プログラム３７は、ＣＰＵ３１を、基本ベクトル生成手段、画像マスク生成手段、ＸＯＲ演算手段、及び初期ベクトル生成手段として機能させるためのプログラムである。
【００７０】
このように本実施の形態に係る暗号化回路２２によれば、画像マスク生成回路４２は、基本ベクトルＤ１４と、画像のフレームサイズ未満の暗号化対象領域を指定するための座標情報Ｄ１２とに基づいて、暗号化対象領域内の画素毎のマスク値が設定された画像マスクＤ１５を生成する。そして、ＸＯＲ演算回路４３（暗号化画像データ生成回路）は、画像マスクＤ１５の各マスク値と画像データＤ１６の各画素値との排他的論理和を演算することにより、暗号化画像データＤ１００を生成する。これにより、画像のフレーム全体のうち画像マスクＤ１５がかけられた暗号化対象領域のみの画像データを暗号化することができる。秘匿の必要性が高い重要な画像部分を暗号化対象領域として指定することにより、回路基板１１，１２間で画像データを転送する場合であっても、重要な画像部分が抜き取られることを効果的に防止できる。また、暗号化画像データＤ１００を受信した復号化回路３２では、暗号化回路２２と同一のアルゴリズムによって同一の画像マスクＤ２５を生成し、当該画像マスクＤ２５と暗号化画像データＤ１００との排他的論理和を演算することによって、暗号化画像データＤ１００を復号化することができる。従って、暗号化回路２２は復号化回路３２に対して暗号化画像データＤ１００のみを送信すれば足り、暗号化回路２２と復号化回路３２との間で鍵の交換は不要となる。その結果、ＡＥＳ等のブロック暗号方式によって画像データの全てを暗号化する場合と比較すると、簡易な構成及び処理によって画像データを暗号化することが可能となる。
【００７１】
また、本実施の形態に係る暗号化回路２２によれば、画像マスク生成回路４２は、暗号化強度Ｍを設定するための強度設定情報Ｄ１３に基づいて、基本ベクトルＤ１４の全データ長のうちマスク値の生成のために使用する有効データ長を異ならせることにより、マスク値の乱雑度を可変に設定する。暗号化強度Ｍを高く設定した場合には、マスク値の乱雑度が高くなるため暗号化対象領域の攪拌度は高くなり、一方、暗号化強度Ｍを低く設定した場合には、マスク値の乱雑度が低くなるため暗号化対象領域の攪拌度は低くなる。従って、暗号化対象領域として指定する画像部分の秘匿の必要性等に応じて、暗号化対象領域の攪拌度を任意に設定することが可能となる。
【００７２】
また、本実施の形態に係る暗号化回路２２によれば、座標情報Ｄ１２によって、画像の１フレーム内に複数の暗号化対象領域を指定でき、また、強度設定情報Ｄ１３によって、複数の暗号化対象領域毎に異なる暗号化強度Ｍを設定できる。従って、暗号化対象領域として指定する各画像部分の秘匿の必要性等に応じて、各暗号化対象領域の攪拌度を任意に設定することが可能となる。例えば、秘匿の必要性が高い重要な画像部分には、高い暗号化強度を設定するとともに、課金誘導等のために元の画像が大まかに推測されるのが望ましい画像部分には、低い暗号化強度を設定することができる。
【００７３】
また、本実施の形態に係る暗号化回路２２によれば、基本ベクトル生成回路４１は、画像の１フレームのデータサイズ未満のデータ長を有する基本ベクトルＤ１４を生成し、画像マスク生成回路４２は、基本ベクトルＤ１４の乱数配列を並び替えることによって画像マスクＤ１５の各ラインのマスク値を設定する。従って、１フレームのデータサイズに相当するデータ長の基本ベクトルを生成する必要がないため、回路構成及び処理の簡略化を図ることができる。また、画像マスク生成回路４２は、画像ライン毎に異なる順序で基本ベクトルＤ１４の乱数配列を並び替える。一般に画像データは隣接する画像ライン間で相関が高いため、画像ライン毎に乱数の配列順序を異ならせることによってその相関が低くなり、その結果、画像マスクＤ１５におけるマスク値の乱雑度を高めることができる。
【００７４】
また、本実施の形態に係る暗号化回路２２によれば、画像マスク生成回路４２は、マスク値を生成するにあたり、画像ライン毎に異なるオフセット値Ｑ及びピッチ値Ｐを設定する。これにより、画像ライン毎に異なる順序で基本ベクトルＤ１４の乱数配列を簡易に並び替えることができる。また、基本ベクトル生成回路４１は、２のべき乗のバイト長を有する基本ベクトルＤ１４を生成し、画像マスク生成回路４２は、ピッチ値Ｐを２のべき乗でない値に設定する。これにより、マスク値を生成する際に基本ベクトルＤ１４の特定のバイトのみが繰り返し使用されることを回避でき、その結果、マスク値の乱雑度を高めることができる。
【００７５】
また、本実施の形態に係る暗号化回路２２によれば、初期ベクトル生成回路４４は、あるフレームに関して生成された暗号化画像データＤ１００に基づいて、次のフレームに関する初期ベクトルＤ１７を生成する。このように、フレーム毎に初期ベクトルＤ１７を更新することによって基本ベクトルＤ１４も更新されるため、画像データＤ１６のフレーム毎に新たな基本ベクトルＤ１４を用いて画像データＤ１６を適切に暗号化することが可能となる。また、自己循環によって初期ベクトルＤ１７を更新するため、暗号化回路２２と復号化回路３２との間で初期ベクトルＤ１７，Ｄ２７を同期させるための通信は不要となり、通信量を削減することが可能となる。
【符号の説明】
【００７６】
２２  暗号化回路
４１  基本ベクトル生成回路
４２  画像マスク生成回路
４３  ＸＯＲ演算回路
４４  初期ベクトル生成回路
【図１】
0006697307.tif 000002
【図２】
0006697307.tif 000003
【図３】
0006697307.tif 000004
【図４】
0006697307.tif 000005
【図５】
0006697307.tif 000006
【図６】
0006697307.tif 000007
【図７】
0006697307.tif 000008
【図８】
0006697307.tif 000009