(57)【要約】【課題】  改竄の有無だけでなく、予め設定された精度での改ざん位置までも特定できる技術を提供する。【解決手段】  ブロック分割部４０２は、画像データを予め定められた画素数を含む第１単位の画像データに分割する。そして、ブロック係数算出部４０３は、分割された各々の第１単位の画像データから、予め設定された演算を実行することでそれぞれに対応する第１単位の画像データ係数を算出する。また、セル分割部４０６は、ブロック分割部４０２で分割した１つの第１単位の画像データを、当該第１単位よりも小さいサイズの第２の単位の画像データに分割する。そして、前記第１単位の画像データ係数の２つを選択してペアを決定し、１つのペアについて第１単位の画像データ係数の大小関係のデータを生成することで第１検証データが生成される。また、予め設定された位置にある第２単位の画像データ係数の２つを選択し、１つのペアにおける第２単位の画像データ係数の大小関係を関係をデータを生成することで第２検証データが生成される。【選択図】  図４
2011151776.tif 000002
【特許請求の範囲】
【請求項１】
画像データの原本性を保証するための検証情報を、前記画像データから生成する情報処理装置であって、
原本性の保証の対象の画像データを入力する画像入力手段と、
該画像入力手段によって入力された前記画像データを、予め定められた画素数で表わされるブロックに分割するブロック分割手段と、
前記ブロックに含まれる画素の値について、前記ブロックの特徴を表わすブロック係数を得るための演算を行うブロック係数算出手段と、
前記ブロック分割手段で分割したブロックを、当該ブロックよりも小さいサイズのセルに分割するセル分割手段と、
前記セルに含まれる画素の値について、前記セルの特徴を表わすセル係数を得るための演算を行うセル係数算出手段と、
前記ブロック係数算出手段で得られた各ブロック係数の中から、ブロックペアとなる２つのブロック係数を選択し、１つのブロックペアを構成する２つのブロック係数の大小関係を示すデータを生成することで第１検証データを生成する第１の検証データ生成手段と、
予め設定された位置にある２つのセルに対応する前記セル係数を選択することでセルペアを決定し、１つのセルペアを構成する２つのセル係数の大小関係を示すデータを生成することで第２検証データを生成する第２の検証データ生成手段と、
前記画像入力手段により入力した前記原本性の保証の対象の画像データを出力すると共に、前記第１の検証データ生成手段で得られた前記第１検証データ、前記第２の検証データ生成手段で得られた前記第２検証データを前記原本性の保証の対象の画像データに対する前記検証情報として出力する出力手段と
を有することを特徴とする情報処理装置。
【請求項２】
前記第２の検証データ生成手段は、異なるブロックの予め設定された位置にある２つのセルに対応する前記セル係数を選択することでセルペアを決定し、１つのセルペアを構成する２つのセル係数の大小関係を示すデータを生成することで第２検証データを生成することを特徴とする請求項１に記載の情報処理装置。 
【請求項３】
前記ブロック係数算出手段は、ブロック内に含まれる画素の平均値の算出、中央値の算出、分散値の算出のいずれかを実行することを特徴とする請求項１に記載の情報処理装置。
【請求項４】
前記セル係数算出手段は、セル内に含まれる画素の平均値の算出、中央値の算出、分散値の算出のいずれかを実行することを特徴とする請求項１に記載の情報処理装置。
【請求項５】
画像データと当該画像データに対する検証情報とに基づき、前記画像データの改竄の有無を検証する検証装置であって、
検証対象の画像データと、当該画像データのための検証情報とを入力する入力手段と、
該入力手段によって入力された前記画像データを、予め定められた画素数で表わされるブロックに分割するブロック分割手段と、
前記ブロックに含まれる画素の値について、前記ブロックの特徴を表わすブロック係数を得るための演算を行うブロック係数算出手段と、
前記ブロック分割手段で分割したブロックを、当該ブロックよりも小さいサイズのセルに分割するセル分割手段と、
前記セルに含まれる画素の値について、前記セルの特徴を表わすセル係数を得るための演算を行うセル係数算出手段と、
前記ブロック係数算出手段で得られた各ブロック係数の中から、ブロックペアとなる２つのブロック係数を選択し、１つのブロックペアを構成する２つのブロック係数の大小関係を示すデータを生成し、生成されたデータと、前記入力手段で入力した前記検証情報に含まれる第１検証データとを比較し、比較の結果が一致を示す場合には改竄無し、前記比較の結果が不一致を示せば改竄有りとして判定する第１判定手段と、
該第１判定手段で改竄有りを判定された場合、予め設定された位置にある２つのセルに対応する前記セル係数を選択することでセルペアを決定し、１つのセルペアを構成する２つのセル係数の大小関係を示すデータを生成し、生成されたデータと、前記入力手段で入力した前記検証情報に含まれる第２検証データとを比較し、前記比較の結果が一致を示す場合には着目セルペアの元になったブロックは改竄無しとして判定し、前記比較の結果が不一致を示す場合には前記着目セルペアの元になったブロックが改竄された箇所として判定する第２判定手段と
を有することを特徴とする検証装置。
【請求項６】
画像データの原本性を保証するための検証情報を、前記画像データから生成する情報処理装置の制御方法であって、
画像入力手段が、原本性の保証の対象の画像データを入力する画像入力工程と、
ブロック分割手段が、該画像入力工程によって入力された前記画像データを、予め定められた画素数で表わされるブロックに分割するブロック分割工程と、
ブロック係数算出手段が、前記ブロックに含まれる画素の値について、前記ブロックの特徴を表わすブロック係数を得るための演算を行うブロック係数算出工程と、
セル分割手段が、前記ブロック分割工程で分割したブロックを、当該ブロックよりも小さいサイズのセルに分割するセル分割工程と、
セル係数算出手段が、前記セルに含まれる画素の値について、前記セルの特徴を表わすセル係数を得るための演算を行うセル係数算出工程と、
第１の検証データ生成手段が、前記ブロック係数算出工程で得られた各ブロック係数の中から、ブロックペアとなる２つのブロック係数を選択し、１つのブロックペアを構成する２つのブロック係数の大小関係を示すデータを生成することで第１検証データを生成する第１の検証データ生成工程と、
第２の検証データ生成手段が、予め設定された位置にある２つのセルに対応する前記セル係数を選択することでセルペアを決定し、１つのセルペアを構成する２つのセル係数の大小関係を示すデータを生成することで第２検証データを生成する第２の検証データ生成工程と、
出力手段が、前記画像入力工程により入力した前記原本性の保証の対象の画像データを出力すると共に、前記第１の検証データ生成工程で得られた前記第１検証データ、前記第２の検証データ生成工程で得られた前記第２検証データを前記原本性の保証の対象の画像データに対する前記検証情報として出力する出力工程と
を有することを特徴とする情報処理装置の制御方法。
【請求項７】
前記第２の検証データ生成工程は、異なるブロックの予め設定された位置にある２つのセルに対応する前記セル係数を選択することでセルペアを決定し、１つのセルペアを構成する２つのセル係数の大小関係を示すデータを生成することで第２検証データを生成することを特徴とする請求項６に記載の情報処理装置の制御方法。
【請求項８】
画像データと当該画像データに対する検証情報とに基づき、前記画像データの改竄の有無を検証する検証装置の制御方法であって、
入力手段が、検証対象の画像データと、当該画像データのための検証情報とを入力する入力工程と、
ブロック分割手段が、該入力工程によって入力された前記画像データを、予め定められた画素数で表わされるブロックに分割するブロック分割工程と、
ブロック係数算出手段が、前記ブロックに含まれる画素の値について、前記ブロックの特徴を表わすブロック係数を得るための演算を行うブロック係数算出工程と、
セル分割手段が、前記ブロック分割工程で分割したブロックを、当該ブロックよりも小さいサイズのセルに分割するセル分割工程と、
セル係数算出手段が、前記セルに含まれる画素の値について、前記セルの特徴を表わすセル係数を得るための演算を行うセル係数算出工程と、
第１判定手段が、前記ブロック係数算出工程で得られた各ブロック係数の中から、ブロックペアとなる２つのブロック係数を選択し、１つのブロックペアを構成する２つのブロック係数の大小関係を示すデータを生成し、生成されたデータと、前記入力工程で入力した前記検証情報に含まれる第１検証データとを比較し、比較の結果が一致を示す場合には改竄無し、前記比較の結果が不一致を示せば改竄有りとして判定する第１判定工程と、
第２判定手段が、該第１判定工程で改竄有りを判定された場合、予め設定された位置にある２つのセルに対応する前記セル係数を選択することでセルペアを決定し、１つのセルペアを構成する２つのセル係数の大小関係を示すデータを生成し、生成されたデータと、前記入力工程で入力した前記検証情報に含まれる第２検証データとを比較し、前記比較の結果が一致を示す場合には着目セルペアの元になったブロックは改竄無しとして判定し、前記比較の結果が不一致を示す場合には前記着目セルペアの元になったブロックが改竄された箇所として判定する第２判定工程と
を有することを特徴とする検証装置の制御方法。
【請求項９】
コンピュータに読み込ませ実行させることで、前記コンピュータを、請求項１乃至４のいずれか１項に記載の情報処理装置の各手段として機能させることを特徴とするプログラム。
【請求項１０】
コンピュータに読み込ませ実行させることで、前記コンピュータを、請求項５の検証装置の各手段として機能させることを特徴とするプログラム。
【請求項１１】
請求項９又は１０に記載のプログラムを格納したコンピュータが読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は画像データの原本性を保証する技術に関するものである。
【背景技術】
【０００２】
デジタルカメラなどで撮影した画像データは、画像編集ソフトなどを用いて改竄される心配がある。これを解決する一方法として、特許文献１に開示されているような方法が知られている。この文献によれば、予めデジタルカメラの内部にカメラ固有の秘密情報を組み込んでおき、デジタルカメラの内部で前記秘密情報を用いて画像データに署名処理を施す。そして撮影後に、前記署名情報を用いて検証できる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】米国特許５４９９２９４号
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記特許文献１にかかる技術では、画像に改竄があるか否かを検証することはできても、その画像のどの部分が改竄されているかまで特定することはできない。
【０００５】
本発明はかかる問題点に鑑みなされたものである。そして、本発明は、改竄の有無だけでなく、予め設定された精度での改ざん位置までも特定できる技術を提供しようとするものである。
【課題を解決するための手段】
【０００６】
この課題を解決するため、例えば本発明の情報処理装置は以下の構成を備える。すなわち、
画像データの原本性を保証するための検証情報を、前記画像データから生成する情報処理装置であって、
原本性の保証の対象の画像データを入力する画像入力手段と、
該画像入力手段によって入力された前記画像データを、予め定められた画素数で表わされるブロックに分割するブロック分割手段と、
前記ブロックに含まれる画素の値について、前記ブロックの特徴を表わすブロック係数を得るための演算を行うブロック係数算出手段と、
前記ブロック分割手段で分割したブロックを、当該ブロックよりも小さいサイズのセルに分割するセル分割手段と、
前記セルに含まれる画素の値について、前記セルの特徴を表わすセル係数を得るための演算を行うセル係数算出手段と、
前記ブロック係数算出手段で得られた各ブロック係数の中から、ブロックペアとなる２つのブロック係数を選択し、１つのブロックペアを構成する２つのブロック係数の大小関係を示すデータを生成することで第１検証データを生成する第１の検証データ生成手段と、
予め設定された位置にある２つのセルに対応する前記セル係数を選択することでセルペアを決定し、１つのセルペアを構成する２つのセル係数の大小関係を示すデータを生成することで第２検証データを生成する第２の検証データ生成手段と、
前記画像入力手段により入力した前記原本性の保証の対象の画像データを出力すると共に、前記第１の検証データ生成手段で得られた前記第１検証データ、前記第２の検証データ生成手段で得られた前記第２検証データを前記原本性の保証の対象の画像データに対する前記検証情報として出力する出力手段とを有する。
【発明の効果】
【０００７】
本発明によれば、改竄の有無だけでなく、改竄されている場合にはブロックという精度でその位置までも特定できるようになる。
【図面の簡単な説明】
【０００８】
【図１】実施形態におけるシステムの全体構成を説明する図。
【図２】第２の実施形態における画像入力装置の詳細な構成を示す図。
【図３】第２の実施形態における画像検証装置の詳細な構成を示す図。
【図４】第１の実施形態における画像入力装置の詳細な構成を示す図。
【図５】第１の実施形態における撮影処理のフローを示すフローチャート。
【図６】実施形態におけるブロック間、セル間の大小関係情報の算出例を示す図。
【図７】第１の実施形態における画像検証装置の詳細な構成を示す図。
【図８】第１の実施形態における画像検証処理のフローを示すフローチャート。
【図９】第１の実施形態における画像検証処理の例を示す図。
【図１０】第１、第２の実施形態における検証データの一例を示す図。
【図１１】第１の実施形態における検証部の構成を示す図。
【図１２】第１の実施形態の変形例３におけるブロック間、セル間の大小関係情報の算出例を示す図。
【図１３】第１の実施形態の変形例３における画像検証処理の例を示す図。
【図１４】第１の実施形態の変形例４における画像検証結果の表示例を示す図。
【図１５】第１の実施形態の変形例４における画像検証結果の他の表示例を示す図。
【図１６】第１の実施形態の変形例３におけるセルペアの選択例を示す図。
【図１７】第１の実施形態の変形例３におけるセルペア選択処理のフローを示すフローチャート。
【図１８】第１の実施形態の変形例３における改ざん位置特定処理のフローを示すフローチャート。
【図１９】第１の実施形態の変形例３におけるセルペア選択処理のフローを示すフローチャート。
【図２０】第１の実施形態の変形例３における改ざん位置特定処理のフローを示すフローチャート。
【発明を実施するための形態】
【０００９】
以下、図面を参照して、本発明に関わる実施形態を詳細に説明する。
【００１０】
［第１の実施形態］
＜システム全体構成の説明＞
はじめに、本実施形態におけるシステムの全体構成例を図１に示す。本実施形態におけるシステムは、画像入力装置１１、および、画像検証装置１２から構成される。
【００１１】
図中、画像入力装置１１は、画像データを発生し、発生した画像データを出力する。特に、本実施形態における画像入力装置１１は、上記の画像データに加え、当該画像データが改ざんされているか否かを検証可能な検証情報を生成し、その画像データと共に出力する。
【００１２】
また、本実施形態における画像入力装置１１は、内部のＣＭＯＳ、ＣＣＤ等の撮像素子により被写体光学像を光電変換して得られた撮像画像の電気信号をＡＤ変換した画像データを、画像処理することなく出力するものとする（ＲＡＷ画像データを出力する）。
【００１３】
画像検証装置１２は、前段の画像入力装置１１から供給された画像データに対し、改ざんされているか否かを、その検証情報に従って検証し、検証結果を出力する。
【００１４】
画像入力装置１１、および画像検証装置１２はインターネットなどのネットワークによって接続しておき、各種データを交換可能にしておいても良い。あるいは、出力時に各種データをリムーバブルメディアなどの記憶媒体に記録し、各種データを交換するようにしても良い。
【００１５】
＜画像入力装置の構成＞
以下、図４を用いて本実施形態に適用される画像入力装置１１の機能構成を説明する。この画像入力装置１１は、例えば画像を撮影し、その画像データにデジタル署名を施すデジタルカメラに相当する。なお、ここで説明する画像入力処理は撮像素子等のハードウェアと共に協動して実行される、制御部が実行するソフトウェア処理により実現されてもよい。その場合には、上記各部は上記処理に必要な機能を概念的なものとして捉えたものと考慮されるべきものである。
【００１６】
図４に示す画像入力装置１１は、画像データから、その画像の原本保証を検証するための第１検証データと第２検証データを生成するための構成を有する。第１検証データは、ブロック分割部４０２、ブロック係数算出部４０３、並びに、ブロックペア選択部４０４及びブロック間大小関係情報算出部４０５によって生成される。第２検証データは、セル分割部４０６、セル係数算出部４０７、並びに、セルペア選択部４０８及びセル間大小関係情報算出部４０９によって生成される。
【００１７】
図４において、画像発生部４０１は、光学系、および光学センサーによって生成されたビデオ信号をイメージ情報として取得し、画像データＩを形成する。画像発生部４０１で発生した画像データＩは後段のブロック分割部４０２および画像出力部４１１へ供給される。ブロック分割部４０２は、前段の画像発生部４０１で発生した画像データＩを入力し、その画像を、予め設定された複数画素で構成されるブロックに分割し、各ブロックの位置およびそのブロック内の各画素値を後段のブロック係数算出部４０３およびセル分割部４０６へ出力する。なお、実施形態では、ブロックのサイズは２画素×２画素として説明する。
【００１８】
ブロック係数算出部４０３は、前段のブロック分割部４０２から出力された１ブロック分のブロックデータからそのブロックの係数を算出し、ブロック係数を後段のブロックペア選択部４０４へ出力する。ブロック係数は例えば、ブロック内の画素の輝度の平均値である。平均値はブロック内の画素の輝度の総和からブロック内の画素数で除算する演算を行えば良い。ただし、係数としては、ブロックに含まれる画素値に依存して決まる値（スカラー値）であれば良いので、輝度の平均値以外にも、輝度の中央値や分散値なども適用可能である。ブロックペア選択部４０４は、ブロック分割部４０２で分割した各ブロックのペアを選択し、ブロックペア選択結果をブロック間大小関係算出部４０５へ出力する。
【００１９】
ブロックのペアは例えば、次のようにして決めるものとする。先ず、０から画像の水平の画素数まで、及び、０から画像の垂直方向の画素数までの乱数を発生させ、発生した乱数をブロックの左上の座標（水平座標ｘおよび垂直座標ｙ）として用い、１つのブロックを決める。そして、もう１つのブロックも同様に乱数を用いて決める。そして、この２回の乱数で決めた２つのブロックをペアとして決定する。このようにして、乱数により決定したブロックの１番目と２番目を１つのペア、３番目と４番目を１つのペア（以下略）…とする。なお、画像検証装置１２のブロックペア選択部７０４（後述）も同じ乱数のアルゴリズムを用い、その乱数発生の初期設定値（シード値）も共有する。初期設定値の共有方法は、画像出力部４１１が、画像データＩを出力する際に後述する検証データとともに乱数の初期設定値を付加する。そして、画像検証装置１２で画像データＩが入力された際に付加された乱数の初期設定値を利用すれば良い。
【００２０】
なお、ブロックペアとなる２つのブロック間の距離は所定（例えば、２画素）以上離すことが望ましい。それによって、改ざん者はブロックのペアを特定することが困難になるので、改ざん検知の精度が向上する。方法としては上記の乱数を用いた方法で片方のブロックの左上隅の座標（水平座標ｘ0および垂直座標ｙ0）を求めた場合、予め設定した距離値ＴＨを用い、もう一つのブロックの左上隅の水平座標ｘを、０からｘ0−ＴＨおよびｘ0＋ＴＨから画像サイズ（横のサイズ）までの間で乱数を発生させて求める。また、垂直座標ｙも、０からｙ0−ＴＨ、および、ｙ0＋ＴＨから画像サイズ（縦のサイズ）までの間で乱数を発生させて求めればよい。ここで、ＴＨは自然数であり、０＜ｘ0−ＴＨかつｘ0＋ＴＨ＜画像サイズ（横のサイズ）かつ０＜ｙ0−ＴＨかつｙ0＋ＴＨ＜画像サイズ（縦のサイズ）を満たすことが望ましい。なお、この時に一度選択されたブロックは次回のペアの候補からは除外しても良い。
【００２１】
ブロック間大小関係情報算出部４０５は、ブロックペア選択部４０４で選択した各ブロックペアからブロック間大小関係情報ＲＢを算出し、それを後段の検証データ生成部４１０へ出力する。
【００２２】
ブロック間大小関係情報ＲＢは例えば、ブロックペアに含まれる第１のブロックのブロック係数（第１のブロック係数とする）と第２のブロックのブロック係数（第２のブロック係数とする）を用いて、以下の式（１）で求められる。
第１のブロック係数  ≧  第２のブロック係数の場合、  ＲＢ＝０
第１のブロック係数  ＜  第２のブロック係数の場合、  ＲＢ＝１      …（１）
ただし、大小関係を示す情報ならば上記の方法以外でも可能である。
【００２３】
セル分割部４０６は、前段のブロック分割部４０２から出力された１つのブロックを更に複数のセルに分割し、各セルの位置および各画素値を示すセル分割結果を後段のセル係数算出部４０７へ出力する。
【００２４】
例えば、実施形態では、２画素×２画素を１つのブロックとしているので、１セルは１画素×１画素とする。もちろん、ブロックの大きさが４画素×４画素の場合にセルの大きさを２画素×２画素と数画素を含むものにしてもかまわない。いずれにしても、セルの大きさはブロックの大きさよりも小さくなるようにすれば良い。
【００２５】
セル係数算出部４０７は、前段のセル分割部４０６から出力された着目ブロック内のセル分割結果から各セルの係数を算出し、セル係数を後段のセルペア選択部４０８へ出力する。
【００２６】
セル係数は例えばブロック係数算出部４０３で説明したブロック係数と同様にセル内の画素の輝度の平均値である。また、輝度の平均値や分散値などを適応可能である。セルペア選択部４０８は、セル分割部４０６で分割した各セルのペアを選択し、セルペア選択結果をセル間大小関係情報算出部４０９へ出力する。
【００２７】
セルペアの決定は、ブロックペア選択部４０４で選択したブロックペアを構成する各ブロックについて行う。セル間大小関係情報算出部４０９は、セルペア選択部４０８で選択した各セルペアからセル間大小関係情報ＲＳを算出し、後段の検証データ生成部４１０へ出力する。
【００２８】
セル間大小関係情報ＲＳは例えば、ブロック間大小関係情報算出部４０５と同様にして、セルペアの第１のセルのセル係数（第１のセル係数とする）と第２のセルのセル係数（第２のセル係数とする）を用いて、以下の式（２）で求められる。
第１のセル係数  ≧  第２のセル係数の場合、ＲＳ＝０
第１のセル係数  ＜  第２のセル係数の場合、ＲＳ＝１      …（２）
【００２９】
検証データ生成部４１０（第１の検証データ生成部、及び、第２の検証データ生成部として機能する）は、入力されたブロック間大小関係情報算出部４０５で算出されたブロック間大小関係情報ＲＢ、及び、セル間大小関係情報算出部４０９で算出されたセル間大小関係情報ＲＳから、検証データ生成部４１０内の暗号化部で検証データＳ（ＲＢ）およびＳ（ＲＳ）を生成して、後段の画像出力部４１１へ出力する。
【００３０】
本実施形態における検証データとしては、ＭＡＣ（Ｍｅｓｓａｇｅ  Ａｕｔｈｅｎｔｉｃａｔｉｏｎ  Ｃｏｄｅ）や電子署名などが適用可能である。尚、ＭＡＣおよび電子署名の生成方法については当業者にとって公知の技術であるので詳細な説明は省略する。電子署名やＭＡＣの対象となるデータは、例えば図１０の参照符号１００１および１００２に示すように、ヘッダとブロック間大小関係情報ＲＢや、ヘッダとセル間大小関係情報ＲＳで構成する。それぞれ、参照符号１００１は検証データＳ（ＲＢ）の構成であり、参照符号１００２は検証データＳ（ＲＳ）の構成を示している。この中で、ＲＢおよびＲＳは選択した乱数順に配置されている。例えば、ＲＢなら１番目のブロックペアのＲＢ、２番目のブロックペアのＲＢ、…となる。一方、ＲＳなら１番目のブロックペアの一方のブロック内のセルペア（第１番目のセルペア）のＲＳ、１番目のブロックペアの他方のブロック内の２番目のセルペア（第２番目のセルペア）のＲＳ、２番目のブロックペアの一方のブロック内のセルペア（第３番目のセルペア）のＲＳ、２番目のブロックペアの他方のブロック内のセルペア（第４番目のセルペア）のＲＳ、…となる。
【００３１】
また、参照符号１００１に示すデータ構造のヘッダには、全部のＲＢの数の情報があり、参照符号１００２に示すデータ構造のヘッダにも、全部のＲＢの数の情報やブロックペア内のセルペアの数の情報が格納されている。そして、選択したＸ番目のブロックペアの中にある複数のＲＳを取得するには１００２のＲＳの先頭から（Ｘ−１）×ブロックペア内のセルペアの数分進んで、ブロックペア内のセルペアの数分取得すれば良い。このように、ヘッダを用いて特定のブロックペアにある複数のＲＳのみを直接取得できる。従って、後述する画像検証装置１２において、必要な数のブロックペアの改ざん有無を判定できることが可能になる。以上のようにして、検証データを生成する。
【００３２】
また、ハッシュなどを利用して情報量を少なくし、電子署名やＭＡＣを適用する。なお、本実施形態では、情報量を少なくするようにしたが、これに限定することなく例えばそのままのデータに電子署名やＭＡＣを適用してもよい。
【００３３】
なお、検証データとしてＭＡＣを適用する場合には、ＭＡＣを生成するための秘密情報を、署名鍵ＫＳとして入力し、ＭＡＣを生成する際に利用する。署名鍵ＫＳは画像入力装置と後述する検証装置とで共有しておく必要があるため、予め画像入力装置および検証装置の内部に共通の秘密情報を保持するようにする。一方、検証データとして電子署名を適用する場合には、電子署名を生成するための秘密鍵を、署名鍵ＫＳとして入力する。そして、予め画像入力装置の内部に署名鍵ＫＳを保持しておき、検証データ生成部４１０が必要に応じて署名鍵ＫＳを利用する。検証データ生成部４１０が利用した署名鍵ＫＳに対応する公開鍵が、後述する検証装置の内部に保持されているものとする。
【００３４】
画像出力部４１１は、画像データＩ並びに検証データを１つのファイルとしてリムーバブルメディア等の記憶媒体に記録したり、あるいは、有線／無線のネットワークを介して所定のホストへ送信したりする。ただし、画像データＩと検証データを別々なファイルにして出力しても構わない。以上、本実施形態における画像入力装置１１の構成について説明した。
【００３５】
＜撮影処理のフロー＞
以下、図５と図６を用いて本実施形態における画像入力装置１１で実行される撮影処理のフローを説明する。図５は本実施形態に適用可能な撮影処理の流れを示すフローチャートである。また、図６はブロック間大小関係情報ＲＢおよびセル間大小関係情報ＲＳの算出の具体例を示したものである。ところで、図４に示した画像入力装置は、図５に示す流れに基づいて動作が制御されるが、途中動作の一部をソフトウェア処理で行うことも可能である。
【００３６】
まず、ステップＳ５０１において、画像発生部４０１を用いて画像データＩが撮影される。例えば、図６の参照符号６０１に示すような９画素×９画素の画像データＩが得られる。なお画像データＩの各画素の数値は輝度を示している。次に、ステップＳ５０２において、画像データＩをブロック分割部４０２を用いてブロック分割する。例えば、図６の６０１ａ１に示すような２画素×２画素のブロックに分割する。ステップＳ５０３において、Ｓ５０２でブロック分割した各ブロックを用いてブロック係数算出部４０３を用いてブロック係数を算出する。例えば、図６では、輝度の平均値とし、６０１ａ１の係数はブロック内の輝度の平均値２５５である。ステップＳ５０４において、Ｓ５０２でブロック分割した各ブロックからブロックペア選択部４０４を用いてブロックペアを選択する。例えば、図６の画像データ６０１では以下の４つのブロックペアを選択する。
・６０１ａ１と６０１ａ２（ブロックペア６０１ａ）
・６０１ｂ１と６０１ｂ２（ブロックペア６０１ｂ）
・６０１ｃ１と６０１ｃ２（ブロックペア６０１ｃ）
・６０１ｄ１と６０１ｄ２（ブロックペア６０１ｄ）
【００３７】
ステップＳ５０５において、Ｓ５０４で選択したブロックペアとその各ブロックの係数を用いてブロック間大小関係情報算出部４０５を用いてブロック間大小関係情報ＲＢを算出する。例えば、図６の４つのブロックペアであるブロックペア６０１ａから６０１ｄはそれぞれ式（１）を用いて以下の通りになる。
・ＲＢ（６０１ａ）＝０
・ＲＢ（６０１ｂ）＝０
・ＲＢ（６０１ｃ）＝０
・ＲＢ（６０１ｄ）＝０
ここで、ＲＢ（Ｘ）は式（１）で算出したブロックペアＸの大小関係を示す。
【００３８】
ステップＳ５０６において、ブロック分割部４０２を用いて分割した各ブロックを、セル分割部４０６においてさらにセルに分割する。例えば、図６の画像データＩ（６０１）ではセルを１画素×１画素である。ステップＳ５０７において、Ｓ５０６でセル分割した各セルを用いて、セル係数算出部４０７を用いたセル係数を算出する。例えば、図６では、輝度として、参照符号６０１の左上のセル（画素）の係数は輝度２５５となる。
【００３９】
ステップＳ５０８において、セルペア選択部４０８を用いて、ブロックペアの一方のブロック内の左上のセルと、右下のセルをセルペアとして、選択する。具体的には、図６の参照符号６０１では黒丸で囲んだ各ブロックの左上の画素と右下の画素をセルペアとする。そして、ブロックペア６０１ａのセルペアはセルペア６０１ａ１とセルペア６０１ａ２である。ブロックペア６０１ｂのセルペアはセルペア６０１ｂ１とセルペア６０１ｂ２である。ブロックペア６０１ｃのセルペアはセルペア６０１ｃ１とセルペア６０１ｃ２である。ブロックペア６０１ｄのセルペアはセルペア６０１ｄ１とセルペア６０１ｄ２である。
【００４０】
ステップＳ５０９において、Ｓ５０８で選択したセルペアを構成する各セル係数を用いて、セル間大小関係情報算出部４０９がセル間大小関係情報ＲＳを算出する。例えば、図６の８つのセルペアであるセルペア６０１ａ１乃至６０１ｄ２はそれぞれ式（２）を用いて、以下の通りになる。
・ＲＳ（６０１ａ１）＝０
・ＲＳ（６０１ａ２）＝０
・ＲＳ（６０１ｂ１）＝０
・ＲＳ（６０１ｂ２）＝０
・ＲＳ（６０１ｃ１）＝０
・ＲＳ（６０１ｃ２）＝１
・ＲＳ（６０１ｄ１）＝０
・ＲＳ（６０１ｄ２）＝１
ここで、ＲＳ（Ｘ）は式（２）で算出したセルペアＸの大小関係を示す。
【００４１】
そして、ステップＳ５１０において、検証データ生成部４１０を用いて、ブロック間大小関係情報ＲＢおよびセル間大小関係情報ＲＳを用いて検証データＳ（ＲＢ，ＲＳ）を生成する。最後に、ステップＳ５１１において、画像出力部４１１から、検証データＳ（ＲＢ，ＲＳ）が付加された画像データを出力する。以上、本実施形態における撮影処理のフローについて説明した。
【００４２】
なお、実施形態では、図６に示すように、９×９画素で構成される画像データにおける８つのブロックを選択する例を示したが、画像データに定義される全ブロックをランダムに並べ替え、２つずつペアにしても構わない。その際、画像のサイズの水平、垂直方向の画素数がブロックの整数倍ではない場合、不足する画素が予め設定された値と見なす。実施形態の場合、ブロックのサイズは２×２画素の例で示したので、全ブロック数は画像データの総画素数／４となり、ブロックペアの数はその半分の総画素数／８となる。つまり、ブロック間大小関係情報ＲＢに必要なビット数は、総画素数／８となる。昨今のデジタルカメラの撮像画素数は、１千万画素を超えるのが普通であるから、ブロックペアの数も相当な数になり、ブロック間大小関係情報ＲＢに必要なビット数も膨大になる。これは、セル間大小関係情報ＲＳにも言えることである。そこで、総画素数に対して予め設定された比率で示される数のブロックを乱数に従って選択するようにしても良い。仮に、この比率が１／６４とするなら、平均して８×８画素の領域の中から１つのブロック（２×２画素）を決定することになる。これを別な表現で言えば、選択するブロック間の平均距離は８画素分であることを意味し、人間による意図した改竄位置を十分に特定できるものと言える。また、上記比率は、ユーザの望む精度に従って、何種類か容易しておき、その中から選択しても構わない。ただし、この場合、選択した精度に関する情報も、検証データと共に格納する。また、セルペアの数も上述したブロックペアと同様に、ブロック内の全セルをランダムに並びかえ、２つずつペアにしても構わない。
【００４３】
＜画像検証装置の構成＞
以下、図７を用いて本実施形態に適用される画像検証装置１２の機能構成を説明する。
【００４４】
なお、ここで説明する画像検証処理は、パーソナルコンピュータ等に代表される情報処理装置とそのプロセッサが実行するソフトウェア処理により実現されても良い。その場合には、上記各部は上記処理に必要な機能を概念的なものとして捉えたものと考慮されるべきものである。
【００４５】
図７において、画像入力部７０１は、検証対象となる画像データＩ’を入力する。画像データＩ’がリムーバブルメディア、および／あるいはネットワーク等を介して入力されると考えると理解し易い。また、画像入力部７０１は、入力された画像データＩ’のヘッダを解析し、付加されている検証データＳ（ＲＢ）およびＳ（ＲＳ）を抽出し、抽出した検証データＳ（ＲＢ）およびＳ（ＲＳ）を検証部７１０に出力し、画像データＩ’（もしくはヘッダを除いた画像データ）はブロック分割部７０２に出力する。なお、画像入力部７０１は、画像データＩ’を解析し、初期設定値（シード値）を抽出し、それをブロックペア選択部７０４に供給する。この結果、ブロックペア選択部７０４は、ランダムではあるものの、ブロックペア選択部４０４と同じブロックペアを選択していくことになる。
【００４６】
ブロック分割部７０２は図４におけるブロック分割部４０２と同様の処理をし、前段の画像入力部７０１から入力された画像データＩ’をブロック分割する。以降、ブロック係数算出部７０３、ブロックペア選択部７０４、ブロック間大小関係情報算出部７０５はそれぞれ図４におけるブロック係数算出部４０３、ブロックペア選択部４０４、ブロック間大小関係情報算出部４０５と同様の処理をするので説明は省略する。また、セル分割部７０６、セル係数算出部７０７、セルペア選択部７０８、並びにセル間大小関係情報算出部７０９も図４に示す同じ名称の部と同様の処理をする。
【００４７】
検証部７１０は、前段のブロック間大小関係情報算出部７０５で算出したブロック間大小関係情報ＲＢ’、セル間大小関係情報算出部７０９で算出したセル間大小関係情報ＲＳ’、画像入力部７０１で抽出された検証データＳ（ＲＢ）、Ｓ（ＲＳ）および検証鍵ＫＳを入力する。そして、入力されたデータを用いて画像データファイルＩ’（画像データ部分）が改ざんされているか否かを検証し、検証結果（ＯＫ／ＮＧ）、改ざんブロックペアＴＰＢおよび改ざん位置ＴＰＳを出力する。ここで、改ざんブロックペアＴＰＢは例えば、ブロックペアで画像の左上に近い方のブロックの左上の座標である。また、改ざん位置ＴＰＳは例えば、セルペアを内包するブロック内の左上の画素の座標である。
【００４８】
上記のようにして、画像の２次元空間を表示し、ブロックペアの各ブロック内の左上のセルの座標の位置を、他の座標のそれよりも強調して表示するようにする。この結果、強調表示される箇所が密になっている部分があれば、その位置が改竄位置として特定できるようになる。
【００４９】
ここで本実施形態における検証部７１０の詳細について図１１を用いて説明する。図１１に示すように本実施形態における検証部７１０は、復号部１１０１、第１の検証部１１０２、第２の検証部１１０３から構成される。
【００５０】
復号部１１０１は、電子署名の場合のみ入力された検証データＳ（ＲＢ）およびＳ（ＲＳ）を、同じく入力された検証鍵ＫＳを用いて復号する。ただし、始めは検証データＳ（ＲＢ）のみを復号し、検証データＳ（ＲＳ）の復号は後述する第１の検証部１１０２の検証結果がＮＧとなった場合に行なっても良い。得られたブロック間大小関係情報ＲＢおよびセル間大小関係情報ＲＳ（ハッシュなどを利用して情報量を少なくしたもの）は、それぞれ第１の検証部１１０２、第２の検証部１１０３へ出力される。ここで、検証データ生成部４１０に対応するものでなければならないので、署名鍵ＫＳは検証データ生成部４１０で適用された署名鍵ＫＳに対応する公開鍵であると考慮されるべきものである。復号に失敗した場合は、ＮＧを出力する。
【００５１】
また、ＭＡＣの場合は何も処理を行わず、検証データＳ（ＲＢ）およびＳ（ＲＳ）を、それぞれＲＳおよびＲＢとみなす。そして、ＲＳは検証鍵ＫＳとともに、第１の検証部１１０２へ出力され、ＲＢは検証鍵ＫＳとともに、第２の検証部１１０３へ出力される。後述する第１の検証部１１０２および第２の検証部１１０３において、検証鍵ＫＳを用いて、ブロック間大小関係情報ＲＢ’とセル間大小関係情報ＲＳ’のＭＡＣを生成する。そして、生成したＭＡＣと、ＲＳおよびＲＢを比較する。ここで、検証鍵ＫＳは、検証データ生成部４１０に対応するために、検証データ生成部４１０で適用された署名鍵と同一の秘密情報を適応する。
【００５２】
第１の検証部１１０２は、前段の復号部１１０１で得られたブロック間大小関係情報ＲＢと、前段のブロック間大小関係情報算出部７０５で算出したブロック間大小関係情報ＲＢ’とを入力する。そして、第１の検証部１１０２は、画像データＩ’の改ざん有無の検証を、全てのブロックペアのＲＢとＲＢ’が等しいか等しくないかを用いて判定する。その検証結果（ＯＫ/ＮＧ）を出力する。具体的には、ＲＢとＲＢ’の同じビット位置の２つのペアが一つでも異なればＮＧとする方法でも良いが、誤判定と考えられる場合を考慮する。まず、ＲＢとＲＢ’が全てのブロックペアで等しい場合は改竄無しを示す検証結果（ＯＫ）を出力する。一方、ＲＢとＲＢ’が一つでも等しくない場合は、等しい数を数えて、閾値ＴＨ１（画像のサイズと予め設定した比率で決まる値）以上の場合は改竄無しを示す検証結果（ＯＫ）を出力する。逆に、閾値ＴＨ１未満の場合は改竄有りを示す検証結果（ＮＧ）とそのブロックペアの場所を示す改ざんブロックペアＴＰＢを出力する。
【００５３】
そして、セル分割部７０６、セル係数算出部７０７、セルペア選択部７０８およびセル間大小関係情報算出部７０９を通じてセルペア大小関係情報ＲＳ’を求めた上で、後段の第２の検証部１１０３で改ざん位置の検証を行う。第２の検証部１１０３は、前段の復号部１１０１で得られたセル間大小関係情報ＲＳと前段のセル間大小関係情報算出部７０９で算出したセル間大小関係情報ＲＳ’を入力する。そして、画像データＩ’の改ざん位置の検証をＲＳとＲＳ’が等しいか等しくないかで行い、その結果に応じた出力を行う。なお、ＭＡＣで検証データを生成した場合は、さらに前段の復号部１１０１から検証鍵ＫＳを入力する。そして、検証鍵ＫＳを用いて、ＲＢ’のＭＡＣを生成し、既にＭＡＣとして生成されたＲＢと一致するか否かを判定する。
【００５４】
ＲＳとＲＳ’が等しい場合は改ざん位置ではないと判定し、何も出力しない（もしくは非改竄箇所を示す情報を出力する）。逆に、ＲＳとＲＳ’が等しくない場合は、着目セルペアを含むブロックが改竄位置であることを示す、改ざん位置ＴＰＳを出力する。なお、ＭＡＣで検証データを生成した場合は、さらに前段の復号部１１０１から検証鍵ＫＳを入力する。そして、検証鍵ＫＳを用いて、ＲＳ’のＭＡＣを生成し、既にＭＡＣとして生成されたＲＳと一致するか否かを判定する。
【００５５】
＜画像検証処理のフロー＞
以下、図８と図９を用いて本実施形態における画像検証装置１２で実行される画像検証処理のフローを説明する。図８は本実施形態に適用可能な画像検証処理の流れを示すフローチャートである。また、図９は本実施形態の改ざん有無判定と改ざん位置特定の具体例である。図９の９０１は図６の６０１が改ざんされた画像であり、斜線で示される画素は改ざんが行われた場所である。なお、図９では、電子署名を用いて検証データを生成している。ところで、図７に示した画像検証装置は図８に示す流れに基づいて動作が制御されるが、途中動作の一部をソフトウェア処理で行うことも可能である。
【００５６】
まず、ステップＳ８０１において、画像入力部７０１が画像データＩ’を入力する。例えば、図９の参照符号９０１に示すような９画素×９画素の画像データＩ’を入力する。なお図９の画像中の各画素の数値は輝度を示している。次に、ステップＳ８０２において、画像データＩ’をブロック分割部７０２を用いてブロック分割する。例えば、図９では図６と同様に参照符号９０１ａ１に示すような２画素×２画素のブロックに分割する。ステップＳ８０３において、Ｓ８０２でブロック分割した各ブロックを用いてブロック係数算出部７０３を用いてブロック係数を算出する。例えば、図９では、図６と同様にして求め、参照符号９０１ａ１で示されるブロック内の輝度の平均値は“１２７”である。ステップＳ８０４において、Ｓ８０２でブロック分割した各ブロックを用いて、ブロックペア選択部７０４を用いてブロックペアを選択する。例えば、図９の参照符号９０１では図６と同様にして以下の４つのブロックペアを選択することになる。なお、ここではブロックペア数が４つの例であるが、ブロックのペア数の決定は、画像入力装置と同じようにして決定すれば良い（例えば、画像のサイズに応じて決定する）。
・９０１ａ１と９０１ａ２（ブロックペア９０１ａ）
・９０１ｂ１と９０１ｂ２（ブロックペア９０１ｂ）
・９０１ｃ１と９０１ｃ２（ブロックペア９０１ｃ）
・９０１ｄ１と９０１ｄ２（ブロックペア９０１ｄ）
【００５７】
ステップＳ８０５において、Ｓ８０４で選択したブロックペアとその各ブロックの係数を用いてブロック間大小関係情報算出部７０５を用いてブロック間大小関係情報ＲＢ’を算出する。例えば、図９の４つのブロックペアであるブロックペア９０１ａ、ブロックペア９０１ｂ、ブロックペア９０１ｃ、ブロックペア９０１ｄはそれぞれ式（１）を用いて、以下の通りになる（４ビットになる）。
・ＲＢ’（９０１ａ）＝１
・ＲＢ’（９０１ｂ）＝１
・ＲＢ’（９０１ｃ）＝０
・ＲＢ’（９０１ｄ）＝０
【００５８】
ステップＳ８０６において、図１１の復号部１１０１で復号処理を実行する。そして、Ｓ８０７にて復号が成功したか否かを判定する。復号処理に成功した場合はブロックペアの大小関係が維持されているかを判定し（ステップＳ８０８）、さもなければ検証失敗とする（ステップＳ８０９）。なお、ＭＡＣで検証データを生成した場合は、ステップＳ８０６、ステップＳ８０８およびステップＳ８０９の処理は行わない。そのため、ステップＳ８０５を行った後は、ステップＳ８０８に進む。
【００５９】
ステップＳ８０８では、第１の検証部１１０２を用いて、ブロックペアの大小関係が維持されているか、すなわち、ＲＢとＲＢ’が一致するか否かを判定する（検証情報による第１判定処理）。具体的には、ＲＢとＲＢ’を構成するビットどうしを比較する。一致する場合は改ざんなし（ＯＫ）を出力し（ステップＳ８１０）、処理を終了する。一方、不一致の場合はステップＳ８１１に進む。なお、ＭＡＣで検証データを生成した場合は、復号部１１０１から検証鍵ＫＳを入力する。そして、検証鍵ＫＳを用いて、ＲＢ’のＭＡＣを生成し、既にＭＡＣとして生成されたＲＢと一致するか否かを判定する。
【００６０】
ステップＳ８１１において、大小関係が維持されているブロックペアの数が閾値ＴＨ１以上か否かを判定する。この閾値は閾値ＴＨ１以上の場合（ＹＥＳ）は改ざんなし（ＯＫ）を出力し（ステップＳ８１０）、処理を終了する。一方、閾値未満の場合（ＮＯ）は改ざんあり（ＮＧ）を出力し（ステップＳ８１２）、ステップＳ８１３に進む。例えば、図９では、ブロックペア９０１ｃと９０１ｄの２つはＲＢとＲＢ’が等しい。一方、ブロックペア９０１ａとブロックペア９０１ｂが、ＲＢとＲＢ’の値が等しくない。ここで、閾値ＴＨ１は３とすると、大小関係が維持されているブロックペアの数は２つであり閾値ＴＨ１未満である。従って、ブロックペア９０１ａとブロックペア９０１ｂを改ざんブロックペアＴＰＢとし、そして改ざんあり（ＮＧ）と判定される。なお、このステップＳ８１１の判定処理は、改竄の厳密性を高めるために、排除しても構わない。この場合、ステップＳ８０８がＮｏとなった場合、Ｓ８１２に進めるようにすれば良い。
【００６１】
ステップＳ８１３において、ブロック分割部７０２を用いて分割した各ブロックを、セル分割部７０６を用いてさらにセルに分割する。例えば、図９では図６と同様にして、参照符号９０１ではセルを１画素×１画素とする。
【００６２】
ステップＳ８１４において、Ｓ８０６でセル分割した各セルを用いて、セル係数算出部７０７を用いてセル係数を算出する。ただし、以降のステップでは改ざん可能性があると判定されたブロックペアＴＰＢのみに対して行う。例えば、図９では図６と同様にして求め、図９の参照符号９０１の左上のセル（画素）の係数は輝度０である。
【００６３】
ステップＳ８１５において、Ｓ８０６でセル分割した各セルを用いて、セルペア選択部７０８を用いてセルペアを選択する。例えば、図９では図６と同様に選択し、参照符号９０１では黒丸で囲んだ各ブロックの左上の画素と右下の画素をセルペアとする。そして、改ざんブロックペアと判定されたブロックペア９０１ａとブロックペア９０１ｂに対してセルペアを選択する。従って、ブロックペア９０１ａのセルペアは９０１ａ１と９０１ａ２であり、ブロックペア９０１ｂのセルペアは９０１ｂ１と９０１ｂ２となる。
【００６４】
ステップＳ８１６において、Ｓ８０８で選択したセルペアとその各ブロックの係数を用いてセル間大小関係情報算出部７０９を用いてセル間大小関係情報ＲＳ’を算出する。例えば、図９の４つのセルペアであるセルペア９０１ａ１、セルペア９０１ａ２、セルペア９０１ｂ１、セルペア９０１ｂ２はそれぞれ式（２）を用いて、ＲＳ’（９０１ａ１）＝１、ＲＳ’（９０１ａ２）＝０、ＲＳ’（９０１ｂ１）＝１、ＲＳ’（９０１ｂ２）＝０となる。
【００６５】
ステップＳ８１７において、第２の検証部１１０３を用いて、セルペアの大小関係から改ざん位置ＴＰＳを特定する（検証情報による第２判定処理）。具体的にはＲＳ’とＲＳが等しいか等しくないかで判定する。等しい場合は改ざん位置ＴＰＳでないとする。一方、等しくない場合は改ざん位置ＴＰＳとして、対象のセルペアの位置を出力する。図９では、セルペア９０１ａ１とセルペア９０１ｂ１が改ざん位置ＴＰＳとなり、それぞれ（０, ０）と（０, ２）となる。ここで、（ｘ、ｙ）のｘは水平座標であり、ｙは垂直座標である。ここで、ＭＡＣで検証データを生成した場合は、復号部１１０１から検証鍵ＫＳを入力する。そして、検証鍵ＫＳを用いて、ＲＳ’のＭＡＣを生成し、既にＭＡＣとして生成されたＲＳと一致するか否かを判定する。
【００６６】
なお、改ざん位置ＴＰＳの利用方法としては、画像データＩ’中の該当する位置に赤いマークを付けて表示する処理に用いれば良いであろう。ここで、表示は例えば図７の画像検証装置１２の検証部７１０内の表示部（非図示）で行う。そして、ステップＳ８０９、ステップＳ８１０、ステップＳ８１７の処理がそれぞれ終了した後で行う。また、改ざん位置を特定できない場合があるかもしれない。具体的には、まず、ブロック間大小関係情報ＲＢとＲＢ’が異なり、改ざんありと判定される。しかしながら、ブロックペアのどちらのブロックもセル間大小関係情報のＲＳとＲＳ’が等しく、改ざん位置ＴＰＳを特定できない場合である。その場合はブロックペアの両方のブロックを改ざん位置が特定できた場合の赤色とは異なる黄色のマークを付けて表示し、改ざん位置が不明なことを示せば良い。なお、赤色、黄色以外の色であっても改ざん位置が特定できた場合とできない場合を区別できるなら適応可能である。
【００６７】
さらに、改ざん位置の特定結果のレベルに応じて、表示レベルを変化させて表示しても良い。具体的な画像検証結果の表示例を図１４の１４０１ｃに示す。改ざん位置ＴＰＳと特定できた場合は１４０１ｄのように改ざん位置を濃い網掛けのブロックで示す。一方で、改ざんを特定できたが、改ざん位置を特定できない場合は１４０１ｅ１と１４０１ｅ２のようにブロックペアの両方のブロックを薄い網掛けのブロックで示す。このように表示レベルを変化させることで、知覚的に改ざん位置の特定結果のレベルが分かりやすくなる。
【００６８】
本実施形態では、画像検証処理において、全てのブロックペアの改ざん有無を判定した後に、改ざん位置特定を行っている。しかしながら、各ブロックペアを見て、その都度改ざん有無と改ざん位置特定を行っても良い。その結果、逐次処理になるので、メモリなどの節約が可能になる。
【００６９】
以上説明したように、本実施形態によれば、画像データにおいて階層的な検証データを生成することにより、階層的な改ざん位置（画像全体、ブロック単位）の特定が可能になる。また、ブロック間の大小関係を検証データに用いている。大小関係は画像データにガンマ補正処理、コントラスト補正処理、およびホワイトバランス補正処理などのような画像再現処理が施された場合でも変化しにくい特徴を持つ。従って、画像再現処理が施された画像データの原本性を保証できる。
【００７０】
なお、実施形態では、セルペアを、ブロック内の左上と右下の２つのセルをメンバとする例を説明したが、このセルペアの選択も、ブロックペアと同様に、乱数で決め手も良い。すなわち、着目ブロックを構成する４つのセルの中から、乱数で決まった２つをセルペアのメンバとしても良い。さらに、４つのセル全てをランダムに並びかえ、２つのセルペアを選択しても良い。
【００７１】
また、実施形態では、ブロックのサイズを２×２画素、セルのサイズを１×１画素としたが、これによって本願発明が限定されるものではない。ただし、ブロックのサイズが、改竄位置を特定する精度となるので、注意が必要である。
【００７２】
更に、実施形態では、画像データＩにおいて、ブロックを第１単位とし、ブロックを分割したセルを第２単位として、階層的な改ざん位置（画像全体、ブロック単位）の特定を行う例を示した。しかしながら、本発明においては、上記第１単位、第２単位として別の概念に適用することも可能である。例えば、動画像を画像データＩとして、フレームを第１単位とし、ブロックを第２単位として、階層的な改ざん位置（動画像全体、フレーム単位）の特定を行うことが可能である。
【００７３】
＜変形例１＞
上記の方法は、大小関係が維持されているブロックペアの数が閾値ＴＨ１未満に改ざんあり（ＮＧ）と判定した。変形例では、大小関係が維持されていない場所同士が隣接しているか否かで改ざんの有無を判定する。例えば、図９の９０１では、９０１ａ１と９０１ｂ１は大小関係が維持されていないブロックであり、かつ隣接しているので、改ざんあり（ＮＧ）となる。
【００７４】
＜変形例２＞
なお、本実施形態では、画像入力装置でブロック間大小関係情報ＲＢとセル間大小関係情報ＲＳを求め、それらを用いて検証データを生成した。しかしながら、画像入力装置１１でブロックの係数とセルの係数まで求め、それらを用いて検証データを生成する。そして、画像検証装置１２で入力された検証データからＲＢとＲＳを算出しても良い。
【００７５】
具体的には、画像入力装置１１ではブロック係数算出部４０３でブロック係数を算出し、セル係数算出部４０７でセル係数を算出する。そして、ブロック係数とセル係数を検証データ４１０に入力し、検証データを算出する。ここで、ブロックペア選択部４０４、ブロック間大小関係情報算出部４０５、セルペア選択部４０８、セル間大小関係情報算出部４０９では処理は行わない。また、画像検証装置１２ではブロック係数算出部７０３でブロック係数を算出し、セル係数算出部７０７でセル係数を算出する。そして、ブロック係数とセル係数を検証部７１０に入力し、検証データと比較して画像の検証を行う。
【００７６】
具体的には上記実施形態のように、ブロックおよびセルでペアを作成し、大小関係が維持されているか否かで行うことができる。
【００７７】
なお、ペアではなく３つ以上のブロック係数やセル係数の集合で大小関係を算出しても良い。例えば、３つの係数Ａ、Ｂ、Ｃの大小関係を２ビットで表わし、Ａが一番大きいなら「００」、Ｂが一番大きいなら「０１」、Ｃが一番大きいなら「１０」、一番大きいものが複数あるなら「１１」とする。更に、大小関係ではなく複数のブロック係数やセル係数の分散、中央値および平均値を用いても良い。例えば、上記実施例のように、ブロックペアやセルペアを用いる場合は、一方のブロック係数ともう一方のブロック係数の平均値を用いることができる。また、３つ以上のブロックやセルを一つのグループとした場合はグループの係数の平均値でも良いし、分散でも良い。
【００７８】
＜変形例３＞
本実施形態では、ブロック内の左上隅のセル、右下隅のセルをセルペアとして選択した。しかしながら、一方をブロック内から選択し、もう一方をブロックの外から選択しても良い。これによって、例えば、ブロック内の全ての画素の輝度に対して全て同じ値を加算または減算するというようなブロック内の大小関係が変化しない改ざんを検出しやすくなる。
【００７９】
具体的には、画像入力装置１１でのセルペア選択部４０８と、そのセルペア選択部４０８と同様の処理をする画像検証装置１２でのセルペア選択部７０８の処理が異なる。セルペア選択部４０８では、各ブロックにおいて、セルペアの一方をブロック内の画素から選択する。例えば、ブロック内の左上隅の画素を選択する。ただし、ブロック内ならどこでも良く、乱数を用いて選択してもかまわない。ただし、ブロックがペアを組むもう一つのブロックからは選択しない方が望ましい。なぜなら、検証部７１０で既に改ざんブロックペアＴＰＢと判定されているため、改ざんされている可能性が高いブロック同士のセルを比較することになる。その結果、誤判定をする可能性が高いからである。そして、もう一方はブロックの外から乱数を用いて選択する。このときの選択方法は例えばブロックペア選択部４０４と同様にし、画像検証装置１２のセルペア選択部７０８と共通の乱数のアルゴリズムと乱数発生の初期設定値を使用しても良い。
【００８０】
まず、図１２において、上記方法を用いたブロック間大小関係情報ＲＢおよびセル間大小関係情報ＲＳの算出の具体例を説明する。図１２は、基本的に図６と同様の構成であるので、異なる個所だけ説明する。
【００８１】
まず、図６の６０１は９画素×９画素であるが、図１２の１２０１は本変形例の特徴であるセルペアの選び方を見やすくするため、６画素×６画素とした。また、ブロックペアは以下の２つを選択する。
・１２０１ａ１と１２０１ａ２（ブロックペア１２０１ａ）
・１２０１ｂ１と１２０１ｂ２（ブロックペア１２０１ｂ）
【００８２】
そして、図６と同様に、ブロック間大小関係情報ＲＢを算出すると、以下の通りになる。
・ＲＢ（１２０１ａ）＝０
・ＲＢ（１２０１ｂ）＝１
ここで、ＲＢ（Ｘ）は式（１）で算出したブロックペアＸの大小関係を示す。
【００８３】
次に、図６と同様にセル間大小関係情報ＲＳを算出するが、画像入力装置１１のセルペア選択部４０８の処理が異なる。
【００８４】
ここでは、図１２の参照符号１２０１では黒丸で囲んだ各ブロックの左上の画素とブロックの外の乱数で選択した画素をセルペアとする。ブロック１２０１ａ１のセルペアは１２０１ｃ１と１２０１ｃ２で示す画素とする。ブロック１２０１ａ２のセルペアは１２０１ｄ１と１２０１ｄ２で示す画素とする。ブロック１２０１ｂ１のセルペアは１２０１ｅ１と１２０１ｅ２で示す画素とする。ブロック１２０１ｂ２のセルペアは１２０１ｆ１と１２０１ｆ２で示す画素とする。
【００８５】
その後、図６と同様に、セル間大小関係情報ＲＳを算出すると、以下の通りになる。
・ＲＳ（１２０１ｃ１と１２０１ｃ２）＝０
・ＲＳ（１２０１ｄ１と１２０１ｄ２）＝１
・ＲＳ（１２０１ｅ１と１２０１ｅ２）＝１
・ＲＳ（１２０１ｆ１と１２０１ｆ２）＝０
ここで、ＲＳ（ＡとＢ）は式（２）で算出した図１２のセルペアを構成するＡとＢで示す画素の輝度の大小関係を示す。
【００８６】
次に、図１３において、上記方法を用いた改ざん有無判定と改ざん位置特定の具体例を説明する。図１３は、基本的に図９と同様の構成であるので、異なる個所だけ説明する。
【００８７】
ここで、図１３の参照符号１３０１は図１２の参照符号１２０１が改ざんされた画像であり、網掛けの画素は改ざんが行われた場所であり、ブロック１３０１ａ１内の全ての画素が対象になっている。なお、網掛けの画素は全て改ざんによりの元の輝度よりも４０下げられている。
【００８８】
まず、ブロックペアは図１２と同様にして、以下の２つを選択する。
・１３０１ａ１と１３０１ａ２（ブロックペア１３０１ａ）
・１３０１ｂ１と１３０１ｂ２（ブロックペア１３０１ｂ）
そして、図９と同様にブロック間大小関係情報ＲＢ’を算出すると、以下の通りになる。
・ＲＢ’（１３０１ａ）＝１
・ＲＢ’（１３０１ｂ）＝１
このあと、ＲＢとＲＢ’を比較するが、図１３では、ブロックペア１３０１ｂはＲＢとＲＢ’が等しい。一方、ブロックペア１３０１ａが、ＲＢとＲＢ’の値が等しくない。ここで、図１３の参照符号１３０１はブロックペアの数が少ないので、閾値ＴＨ１を２とすると、大小関係が維持されているブロックペアの数は１つであり閾値ＴＨ１未満である。従って、ブロックペア１３０１ａを改ざんブロックペアＴＰＢとし、改ざんあり（ＮＧ）と判定される。
【００８９】
次に、図９と同様に、改ざん位置ＴＰＳを特定するが、画像検証装置１２のセルペア選択部７０８の処理が異なる。例えば、図１３では図１２と同様にセルペアを選択し、参照符号１３０１では黒丸で囲んだ各ブロックの左上の画素とブロックの外から乱数で選択した画素をセルペアとする。そして、改ざんブロックペアと判定されたブロック１３０１ａ１とブロック１３０１ａ２で構成されるブロックペア１３０１ａに対してセルペアを選択する。ブロック１３０１ａ１のセルペアは１３０１ｃ１と１３０１ｃ２で示す画素である。また、ブロック１３０１ａ２のセルペアは１３０１ｄ１と１３０１ｄ２で示す画素である。
【００９０】
ここで、図９と同様に、セル間大小関係情報ＲＳ’を算出すると、
・ＲＳ’（１３０１ｃ１と１３０１ｃ２）＝１
・ＲＳ’（１３０１ｄ１と１３０１ｄ２）＝１
となり、ＲＳとＲＳ’が異なるセルペア１３０１ｃ１と１３０１ｃ２が改ざん位置ＴＰＳとなる。なお、上記したように、図７の画像検証装置１２の検証部７１０内の表示部（非図示）を用いて改ざん位置ＴＰＳを赤色、黄色、網掛けなどで表示することができる。
【００９１】
なお、上記方法では、ブロック内のセル一つに対して、ブロックの外から一つのセルを選択して一つのセルペアを作成した。しかしながら、ブロック内のセル一つに対して、ブロックの外から複数のセルを選択して複数のセルペアを選択しても良い。これによって、ブロックが改ざん位置か否かをより正確に特定できる。具体的な方法を図１６（ａ）、図１７および図１８を用いて説明する。
【００９２】
図１６（ａ）は、セルペアの選択方法の概念図である。図１７は図５のステップＳ５０８のセルペア選択処理の詳細フローである。図１８は図８のステップＳ８１７の改ざん位置特定処理の詳細フローである。
【００９３】
セルペア選択処理について、図１７のフローに沿って説明する。図１７のフローの各ステップは、セルペア選択部４０８で処理される。まず、ステップＳ５０８ａで、セルペア選択を行うブロックＡを選択する。ブロックＡはブロックペアとして選択されたものにする。図１６（ａ）では、ブロックＡとしてブロック１６０１ａを選択する。次に、ステップ５０８ｂで、ブロックＡ内のセルを選択する。図１６（ａ）では、セル１６０１ｂを選択する。ステップＳ５０８ｃで、ブロックＡに所属しないセルを選択する。図１６（ａ）では、１６０１ｃのセルを選択する。ステップＳ５０８ｄで、セルペアを登録する。ステップＳ５０８ｅで、セルペア選択数Ｎを満たすか否かを判定する。ＹＥＳならステップＳ５０８ｆに進み、ＮＯならステップＳ５０８ｃに戻る。図１６（ａ）では、Ｎを３としているので、ステップＳ５０８ｃに戻り、セル１６０１ｂのペアとして、１６０１ｄおよび１６０１ｅが選択される。その結果、セルペアとして１６０１ｂと１６０１ｃ、１６０１ｂと１６０１ｄおよび１６０１ｂと１６０１ｅの計３個できる。そして、ステップＳ５０８ｆでブロックＡ内のセルを全て選択したか否かを判定する。ＹＥＳならステップＳ５０８ｇに進み、ＮＯならステップＳ５０８ｂに戻る。図１６（ａ）では、ブロック１６０１ａのセル１６０１ｂ以外のセルでも上述したように、セルペアを選択することになる。なお、ブロック内の全てのセルに対して、ペアを選択しないでも良い。最後に、ステップＳ５０８ｇで、全てのブロックペアでセルペアを選択したか否かを判定する。ＹＥＳならステップＳ５０８の処理を終了する。ＮＯなら、ステップＳ５０８ａに戻る。図１６（ａ）では、ブロック１６０１ａ以外のブロックでも同様にセルペアを選択し、処理を終了する。以上、ステップＳ５０８の詳細はフローを説明したが、図８のステップＳ８１５のセルペア選択処理でも同様のフローで処理を行われる。
【００９４】
続いて、改ざん位置特定処理について、図１８のフローに沿って説明する。図１８のフローの各ステップは、第２の検証部１１０３で処理される。まず、ステップＳ８１７ａは図１７のステップＳ５０８ａと同様に処理する。図１６（ａ）では、ブロックＡとしてブロック１６０１ａを選択する。次に、ステップＳ８１７ｂは図１７のステップＳ５０８ｂと同様に処理する。図１６（ａ）では、セル１６０１ｂを選択する。ステップＳ８１７ｃで、登録したセルペアを読み出す。図１６（ａ）では、セルペアとして、１６０１ｂと１６０１ｃを読み出す。ステップＳ８１７ｄで、セルペアの大小関係は維持されているか否かを判定する。ＹＥＳならステップＳ８１７ｅに進み。ＮＯならステップＳ８１７ｆに進む。ステップＳ８１７ｅで、セルペア選択数Ｎを満たすか否かを判定する。ＹＥＳならステップＳ８１７ｇに進む。ＮＯならステップＳ８１７ｃに戻る。ステップＳ８１７ｇで、ブロックＡ内のセルを選択したか否かを判定する。ＹＥＳならステップＳ８１７ｈに進む。ＮＯなら、ステップＳ８１７ｂに戻る。ステップＳ８１７ｆで、ブロックＡ内の一つのセルペアの大小関係が維持されていない場合に、ブロックＡは改ざん位置であると判定する。ただし、閾値を設けて、ブロック内のセルペアの大小関係が維持されていない数が一定以上なら改ざん位置であるとしても良い。ステップＳ８１７ｈで、ブロックＡ内の全てのセルペアの大小関係が維持されている場合に、ブロックＡは改ざん位置ではないとする。図１６（ａ）において、１６０１ｂが改ざんされている場合は、１６０１ｂと１６０１ｃ、１６０１ｂと１６０１ｄおよび１６０１ｂと１６０１ｅのセルペアの大小関係が一つでも維持されていなければ、改ざん位置として特定できる。最後に、ステップＳ８１７ｉで、全てのブロックペアで判定したか否かを判定する。ＹＥＳならステップＳ８１７の処理を終了する。ＮＯならステップＳ８１７ａに戻る。
【００９５】
また、ブロック内のセル一つに対して、ブロックの外から一つのセルを選択するが、そのセルは他のブロックペアのブロック内にあるようにしても良い。これによって、ブロックの外のセルの係数が正しいか否かをそのセルが含まれるブロックペアの大小関係を見れば判定できる。そのため、セル間大小関係情報が維持されているか否かをより正確に判定できる。その結果、ブロックが改ざん位置か否かをより正確に特定できる。具体的な方法を図１６（ｂ）、図１９および図２０を用いて説明する。
【００９６】
図１６（ｂ）は、セルペアの選択方法の概念図である。図１９は図５のステップＳ５０８のセルペア選択処理の詳細フローである。図２０は図８のステップＳ８１７の改ざん位置特定処理の詳細フローである。
【００９７】
セルペア選択処理について、図１９のフローに沿って説明する。図１９のフローの各ステップは、セルペア選択部４０８で処理される。まず、ステップＳ５０８ｈで、セルペア選択を行うブロックＡを選択する。ブロックＡはブロックペアとして選択されたものにする。図１６（ｂ）では、ブロックＡとしてブロック１６０２ａを選択する。次に、ステップ５０８ｉで、ブロックＡ内のセルを選択する。図１６（ｂ）では、セル１６０２ｂを選択する。ステップＳ５０８ｊで、ブロックＡ以外のブロックペアを持つブロックＢを選択する。図１６（ｂ）では、１６０２ｄのブロックをブロックＢとして選択する。ステップＳ５０８ｋで、ブロックＢ内のセルを選択する。図１６（ｂ）では、セル１６０２ｃを選択する。ステップＳ５０８ｌではセルペアを登録する。図１６（ｂ）では、セル１６０２ｂとセル１６０２ｃがセルペアとして登録する。ステップＳ５０８ｍでブロックＡ内のセルを全て選択したか否かを判定する。ＹＥＳならステップＳ５０８ｎに進み、ＮＯならステップＳ５０８ｉに戻る。図１６（ｂ）では、ブロック１６０２ａのセル１６０２ｂ以外のセルでも上述したように、セルペアを選択することになる。なお、ブロック内の全てのセルに対して、ペアを選択しないでも良い。最後に、ステップＳ５０８ｎで、全てのブロックペアでセルペアを選択したか否かを判定する。ＹＥＳならステップＳ５０８の処理を終了する。ＮＯなら、ステップＳ５０８ｈに戻る。図１６（ｂ）では、ブロック１６０２ａ以外のブロックでも同様にセルペアを選択し、処理を終了する。以上、ステップＳ５０８の詳細はフローを説明したが、図８のステップＳ８１５のセルペア選択処理でも同様のフローで処理を行われる。
【００９８】
続いて、改ざん位置特定処理について、図２０のフローに沿って説明する。図２０のフローの各ステップは、第２の検証部１１０３で処理される。まず、ステップＳ８１７ａは図１９のステップＳ５０８ｈと同様に処理する。図１６（ｂ）では、ブロックＡとしてブロック１６０２ａを選択する。次に、ステップＳ８１７ｋは図１９のステップＳ５０８ｉと同様に処理する。図１６（ｂ）では、セル１６０２ｂを選択する。ステップＳ８１７ｌで、登録したセルペアを読み出す。図１６（ｂ）では、セルペアとして、１６０２ｂと１６０２ｃを読み出す。ステップＳ８１７ｍで、セルペアの大小関係は維持されているか否かを判定する。ＹＥＳならステップＳ８１７ｏに進み。ＮＯならステップＳ８１７ｎに進む。ステップＳ８１７ｎで、ブロックＢと、ブロックＢがペアを組むブロックとの大小関係が維持されているか否かを判定する。ＹＥＳならステップＳ８１７ｐに進む。ＮＯなら、ステップＳ８１７ｏに進む。ステップＳ８１７ｏで、ブロックＡ内のセルを選択したか否かを判定する。ＹＥＳならステップＳ８１７ｑに進む。ＮＯなら、ステップＳ８１７ｋに戻る。ステップＳ８１７ｐで、一つのセルペアの大小関係が維持されていないかつ、ブロックＢと、ブロックＢがペアを組むブロックとの大小関係が維持されている場合に、ブロックＡは改ざん位置であると判定する。ただし、閾値を設けて、ブロック内のセルペアの大小関係が維持されていない数が一定以上なら改ざん位置であるとしても良い。ステップＳ８１７ｑで、ブロックＡ内の全てのセルペアの大小関係が維持されている場合に、ブロックＡは改ざん位置ではないとする。図１６（ｂ）では、ブロックＢは１６０２ｄであり、ペアを組むのはブロック１６０２ｅである。例えば、セル１６０２ｂとセル１６０２ｃのセルペアの大小関係が維持されていないかつ、ブロック１６０２ｄとブロック１６０２ｅのブロックペアの大小関係が維持されている場合があるとする。その場合は、ブロック１６０２ａが改ざん位置となる。
【００９９】
最後に、ステップＳ８１７ｒで、全てのブロックペアで判定したか否かを判定する。ＹＥＳならステップＳ８１７の処理を終了する。ＮＯならステップＳ８１７ｊに戻る。
【０１００】
＜変形例４＞
本実施形態では、一つの画像データＩ’の画像検証のみを行ったが、変形例として、複数の画像データの画像検証を実行し、インタフェース上でその結果をまとめて表示しても良い。なお、この時に表示される各画像は見やすくするため、画像サイズを縮小したサムネイル表示する。従って、改ざん画像の検証結果が視覚的に分かりやすくなる。
【０１０１】
図１４および図１５に画像検証結果の表示例を示す。図示において参照符号１４０１は８個の画像を画像検証装置１２に入力し、全画像の検証結果を表示したＧＵＩである。１４０１ａは各画像のサムネイルが入力順に左から右へ並べて表示するエリアである。その中で、改ざんと判定された画像には改ざんではないと判定された画像と区別するために１４０１ｂのように、改ざんありと判定された画像には「×」マークが付加されている。ただし、これは一例であり、画像自体が点滅するなど改ざん有無が区別できるなら何でもかまわない。１４０１ｃはエリア１４０１ａ内のサムネイル画像の一つを選択した場合に表示される元の画像するエリアであり、図示の場合、サムネイル画像１４０１ｂの元画像が選択されていることが示されている。選択したことを示すため、１４０１ｂの画像の外枠が太くなっている。なお、エリア１４０１ｃ内の１４０１ｄ、１４０１ｅ１および１４０１ｅ２は上記したように改ざん位置を示すマークである。１４０１ｄは改ざん位置を特定できた場合であり、濃い網掛けブロックで表示する。また、１４０１ｅ１および１４０１ｅ２は、改ざんは特定できたが、改ざん位置を特定できない場合であり、薄い網掛けブロックで表示する。図１４のＧＵＩ１４０２および図１５の改ざん位置の表示も同様である。
【０１０２】
１４０１ｆは改竄画像のみを表示する際のオプション選択ボタンが配置されたエリアである。例えばボタン１４０１ｇの「入力順」を選択すると、ＧＵＩ１４０１の画面がＧＵＩ１４０２へ遷移する。ＧＵＩ１４０２に示す通り、「入力順」の場合は、改ざんと判定された画像が入力された順序でソートして表示される。このときに１４０２ａに示す各画像のサムネイルには１４０１ｂにように「×」マークを付加しない。これは、改ざん画像のみを表示するので、改ざんの有無を区別する必要がないからである。また、１４０１ｃは「入力順」で表示している状態が分かるように「入力順」ボタンが網掛けで表示したものである。なお、ＧＵＩ１４０１の画面へ戻るには、「全画像を表示」ボタン１４０２ｃを選択すれば良い。なお、ボタン１４０１ｈはボタン１４０２ｃと同じ機能のボタンであるが、「全画像」を表示している状態が分かるように網掛けで表示している。以下、図１５の選択ボタンの表示および「全画像を表示」ボタンの機能も同様である。
【０１０３】
エリア１４０１ｆの各ボタンの説明に戻る。「信頼度順」ボタンは例えば改ざんブロックペアのペア間の距離がどれだけ離れているかを信頼度として、信頼度度が大きい順にソートして表示する。なお、上記の信頼度は距離が離れていれば、一か所に改ざんが行われても、両方のブロックが共に改ざんの影響を受けることが少なくなることに基づいたものである。例えば、図１５のＧＵＩ１５０１の画面に遷移する。エリア１５０１ａに各画像のサムネイルが信頼度が大きい順に左から右へ並んでいる。ここで、サムネイル１５０１ｂが一番大きい信頼度を持つ画像を示しており。エリア１５０１ｄにはサムネイル１５０１ｂの元の画像が表示されている。また、各画像のサムネイルの下には信頼度の値が表示されており、例えば、１５０１ｂの画像の信頼度は１５０１ｃに示すように、「１０．４５」となる。信頼度の具体的な計算は、まず各改ざんブロックペアのペア間の距離を各ブロックの左上画素の座標をそれぞれ（ｘ１、ｙ１）および（ｘ２、ｙ２）として、距離Ｌを以下の式（３）を用いて求める。
Ｌ＝｛（ｘ１−ｘ２）2＋（ｙ１−ｙ２）2｝1/2  …（３）
【０１０４】
そして、改ざんブロックペア全ての距離Ｌを求めて、その平均値を信頼度とする。例えば、図９の画像９０１はブロックペア９０１ａおよびブロックペア９０１ｂが改ざんブロックペアである。ここで、ブロックペア９０１ａの距離Ｌはブロック９０１ａ１の左上画像の座標が（０、０）であり、ブロック９０１ａ２の左上画像の座標が（６、６）である。その場合、Ｌ＝８．４９となる。また、ブロックペア９０１ａの距離Ｌはブロック９０１ｂ１の左上画像の座標が（０、２）であり、ブロック９０１ｂ２の左上画像の座標が（４、０）である。その場合、Ｌ＝４．４７となる。従って、信頼度＝（８．４９＋４．４７）÷２＝６．４８となる。
【０１０５】
また、他の信頼度としては、まず改ざんブロックペアで改ざん位置を特定できた場合を１、改ざんを特定できたが、改ざん位置を検出できない場合を０．５とした改ざん特定度を求める。そして、改ざんブロックペア全ての改ざん特定度を求めて、その平均値を信頼度とする。それ以外にも、信頼度として表せる指標であれば何でもかまわない。
【０１０６】
「改ざんの大きさ順」ボタンは、例えば画像内の改ざん位置ＴＰＳの大きさが大きい順にソートして表示する。例えば、図１５のＧＵＩ１５０２の画面に遷移する。エリア１５０２ａには各画像のサムネイルが改ざんの大きさが大きい順に左から右へ並んでいる。ここで、エリア１５０２ｂが一番改ざんの大きさが大きい画像のサムネイルであり、エリア１５０２ｄにはその元の画像が表示されている。また、各画像のサムネイルの下には信頼度の値が表示されており、例えば、サムネイル１５０２ｂが示す画像の信頼度は、参照符号１５０２ｃに示すように、「８」となる。
【０１０７】
改ざんの大きさの具体的な計算は、まず、各改ざん位置において、隣接するブロックが改ざん位置の個数Ｐをカウントする。例えば、図９のブロック９０１ａ１は改ざん位置であり、隣接するブロック９０１ｂ１も改ざん位置なので、Ｐ＝１個となる。ブロック９０１ｂも同様に改ざん位置であるブロック９０１ａ１が隣接するので、Ｐ＝１個となる。そして、全ての改ざん位置のＰの合計を改ざんの大きさとする。例えば、図９の画像９０１は、改ざん位置ブロック９０１ａ１とブロック９０１ｂ１のＰの合計なので、改ざんの大きさは２となる。また、図１５のエリア１５０２ｄに表示された画像は、参照符号１５０２ｅに示すように４つのブロックがお互い２つのブロックと隣接しているので、改ざんの大きさは４ブロック×２個＝８となる。なお、上記した以外の改ざんの大きさが定義できる指標ならば何でも良い。
【０１０８】
「改ざんの個数順」ボタンは画像内の改ざん位置の数が多い順にソートして表示する。表示方法は上記で説明した図１５と同様である。例えば、図９の画像９０１の改ざん位置はブロック９０１ａ１とブロック９０１ｂ１なので、改ざん位置の数は２となる。なお、上記した以外の改ざんの個数が定義できる指標ならば何でも良い。
【０１０９】
なお、上記で説明したインタフェースは一例であり、画像のサイズ順などでソートして表示してもかまわない。また、インタフェースは例えば、マウスやタッチパネルを用いて操作できる。
【０１１０】
［第２の実施形態］
本実施形態では、画像データＩが動画像データである場合を想定し、ブロックよりも更に大きい単位としてフレームの存在に注目する。そして、新たに、フレームを第３単位とし、ブロックを第１単位、セルを第２単位とする３階層の改ざん有無および改ざん位置特定を行う例を説明する。
【０１１１】
まず、本第２の実施形態における画像入力装置１１を図２に示す。なお、画像発生部２０１、ブロック係数算出部２０７、ブロックペア選択部２０８、ブロック間大小関係情報算出部２０９は図４の同じ名称の部を同様の処理をするので説明を省略する。ただし、画像発生部２０１は、時間軸に沿って順にフレームを発生する動画像発生部として機能することになる。セル分割部２１０、セル係数算出部２１１、セルペア選択部２１２、セル間大小関係情報算出部２１３についても同様である。フレーム分割部２０２は、入力された動画像入力部として機能し、入力した動画像を構成得るフレームに分割し、各フレームの位置を示すフレーム分割結果を後段のフレーム係数算出部２０３およびブロック分割部２０６へ出力する。
【０１１２】
以降、フレーム係数算出部２０３、フレームペア選択部２０４、フレーム間大小間情報算出部２０５は、第１の実施形態で説明したブロックやセルの各処理を同様にして処理する。ここで、フレーム係数は例えば第１の実施形態で説明したブロック係数と同様にセル内の画素の輝度の平均値である。また、輝度の中央値や分散値などを適応可能である。その結果として、第３検証データであるフレーム間大小関係情報ＲＰが算出され、それが後段の検証データ生成部２１４へ供給される。
【０１１３】
ブロック分割部２０６は前段のフレーム分割部２０２から出力されたフレーム分割結果から各フレームを更にブロック分割する。そして、各ブロックの位置および各画素値を示すブロック分割結果を後段のブロック係数算出部２０７およびセル分割部２１０へ出力する。
【０１１４】
検証データ生成部２１４はブロック間大小関係情報ＲＢとセル間大小関係情報ＲＳに加えて、フレーム間大小関係情報ＲＰを含めて検証データＳ（ＲＰ）、Ｓ（ＲＢ）およびＳ（ＲＳ）を第１の実施形態と同様に署名やＭＡＣを用いて生成する。
【０１１５】
なお、検証データＳ（ＲＰ）、Ｓ（ＲＢ）およびＳ（ＲＳ）の構成は図１０の参照符号１００３、１００１、１００２のようになる。参照符号１００３は検証データＳ（ＲＰ）の構成である。また、１００１は検証データＳ（ＲＢ）の構成である。なお、１００２は検証データＳ（ＲＳ）の構成であるが、第１の実施形態と同様なので、以降の説明を省略する。この中で、ＲＰおよびＲＢは選択した乱数順に配置される。例えば、ＲＰなら１番目のフレームペアのＲＰ、２番目のフレームペアのＲＰ、以下略となる。ＲＢなら１番目のフレームペア内の1番目ブロックペアのＲＢ、１番目のフレームペア内の２番目ブロックペアのＲＢ、２番目のフレームペア内の１番目ブロックペアのＲＢ、以下略となる。
【０１１６】
また、１００３のヘッダには、例えば全部のＲＰの数の情報があり、１００１のヘッダには例えば全部のＲＢの数の情報やフレームペア内のブロックペアの数の情報がある。そして、選択したＸ番目のあるフレームペアＲＰの中にある複数のＲＢを取得するには１００１のＲＢの先頭から（Ｘ−１）×フレームペア内のブロックペアの数分進んで、フレームペア内のブロックペアの数分取得すれば良い。以上のようにして、検証データを生成する。以上のようにして、検証データ生成部２１４が検証データを生成する。画像出力部２１５は、検証データＳ（ＲＰ）、Ｓ（ＲＢ）およびＳ（ＲＳ）を画像データＩに付加して出力する。
【０１１７】
以上、本第２の実施形態における画像入力装置１１の構成について説明した。なお、本第２の実施形態の撮影処理のフローは、図５に示す第１の実施形態のフローにおいて、ステップＳ５０１とステップＳ５０２の間にフレーム分割、フレーム係数算出、フレームペア選択、フレームペア大小関係算出が加わったものである。その結果、検証データがＳ（ＲＢ）およびＳ（ＲＳ）ではなくＳ（ＲＰ）、Ｓ（ＲＢ）およびＳ（ＲＳ）になる。
次に、本実施形態における画像検証装置１２を図３に示す。画像入力部３０１は、画像データＩ’を入力する。そして、画像データＩ’のヘッダを解析し、付加されている検証データＳ（ＲＰ）、Ｓ（ＲＢ）およびＳ（ＲＳ）を抽出し、抽出した検証データＳ（ＲＰ）、Ｓ（ＲＢ）およびＳ（ＲＳ）を出力する。
【０１１８】
第３分割部として機能するフレーム分割部３０２は図２におけるフレーム分割２０２と同様の処理をし、前段の画像入力部３０１から入力された画像データＩ’をフレーム分割する。
【０１１９】
以降、フレーム係数算出部３０３、フレームペア選択部３０４、フレーム間大小関係情報算出部３０５はそれぞれ図２における同じ名称の部と同様の処理をする。そして、フレーム間大小関係情報算出部３０５はブロック間大小関係情報ＲＰ’を算出する。
【０１２０】
また、ブロック分割部３０６、ブロック係数算出部３０７、ブロックペア選択部３０８およびブロック間大小関係情報算出部３０９は、後で説明する検証部３１４にて改ざんあり（ＮＧ）がブロック分割部３０６に入力された時のみ処理を行う。その場合は、改ざんフレームペアＴＰＰに対してのみ、図２の同じ名称の部と同様の処理をする。
【０１２１】
そして、ブロック間大小関係情報算出部３０９からはブロック間大小関係情報ＲＢ’を算出する。さらに、セル分割部３１０、セル係数算出部３１１、セルペア選択部３１２およびセル間大小関係情報算出部３１３は、検証部３１４にて改ざんブロックペアＴＰＢがセル分割部３１０に入力された時のみ処理を行う。その場合は、改ざんブロックペアＴＰＢに対してのみ、図２の同じ名称の部と同様の処理をする。そして、セル間大小関係情報算出部３１３からはセル間大小関係情報ＲＳ’を算出する。
【０１２２】
検証部３１４は、フレーム間大小関係情報ＲＰ’、ブロック間大小関係情報ＲＢ’、セル間大小関係情報ＲＳ’および画像入力部３０１で抽出された検証データＳ（ＲＰ）、Ｓ（ＲＢ）、Ｓ（ＲＳ）および検証鍵ＫＳが入力される。そして、入力されたデータを用いて画像データＩ’が改ざんされているか否かを検証し、検証結果（ＯＫ／ＮＧ）、改ざんフレームペアＴＰＰ、改ざんブロックペアＴＰＢおよび改ざん位置ＴＰＳを出力する。以上、本第２の実施形態における画像検証装置１２の構成について説明した。
【０１２３】
なお、本第２の実施形態の画像検証のフローは、図８に示す第１の実施形態のフローが以下のように変化する。
【０１２４】
まず、ステップＳ８０１からステップＳ８０５およびステップ８０８の処理対象がブロックからフレームに変わる。次に、ステップＳ８０６の復号対象がＳ（ＲＢ，ＲＳ）からＳ（ＲＰ）、Ｓ（ＲＢ）およびＳ（ＲＳ）に変わる。
【０１２５】
ステップＳ８１３からステップＳ８１６の処理対象がセルからブロックに変わる。最後に、追加としてステップＳ８１６で判明した改ざんブロックペアＴＰＢの各セルペアに対して、ＲＳとＲＳ´を比較することで、改ざん位置ＴＰＳを特定する。これにより、改ざんブロックペアが存在するフレームの特定およびそのフレーム内のどの位置が改ざん位置されているかを分かることができる。
【０１２６】
以上、本第２の実施形態では、フレーム、ブロック、セルの３階層の改ざん有無および改ざん位置特定を行った。しかしながら、本発明はこれに限らず、更に別の単位（例えば、複数のフレームからなる動画ファイル、または複数の動画ファイルからなるファイルグループ）などを追加して、４階層や５階層の改ざん有無および改ざん位置特定を行うこともできるであろう。
【０１２７】
以上説明したように、本第２の実施形態によれば、画像データにおいて階層的な検証データを生成することにより、第１の実施形態とは異なる階層的な改ざん位置（動画像全体、フレーム単位、ブロック単位）の特定が可能になる。
【０１２８】
また、実施形態では、第１単位、第２単位の画像データ係数として、画素の平均値を例にしたが、第１単位（第２単位も同様）で示される画像を構成する画素値から導き出せる値であれば如何なる値であっても構わない。
【０１２９】
［第３の実施形態］
第１の実施形態では、大小関係が維持されていない全てのブロックペアを構成するブロックについて改ざん位置特定を行った。しかしながら、全体的に改ざんされている場合、改ざん位置は全体であることは明らかであり、ユーザは見る必要がないと考えられる。
そこで、第１の実施形態の画像検証装置１２の検証部７１０において、大小関係が維持されているブロックペアの数と閾値ＴＨ２を用いて、以降の処理を切り替えることとする。
【０１３０】
もし大小関係が維持されているブロックペアの数が閾値ＴＨ２以上の場合は第１の実施形態と同様に改ざん位置を特定する。一方、大小関係が維持されているブロックペアの数が閾値ＴＨ２未満の場合は改ざん位置特定を行わずに処理を改ざんあり（ＮＧ）のみを出力し処理を終了する。なお、「改ざん位置が一定以上存在するため、改ざん位置を特定しない」あるいは「全体にわたって改ざんされている」と通知しても良い。
【０１３１】
以上によれば、全体的に改ざんされている場合に改ざん位置特定の処理を省略でき、処理を効率化できる。
【０１３２】
なお、上述した画像の改ざんを検証するためのデータとして、フレーム、ブロック、セルなどに対応する各単位のデータを、検証データという呼称で説明した。しかしながら、この検証データのデータ構造は、必要に応じて変更が可能であろう。
【０１３３】
例えば、検証データとして説明した各単位に対応する“改ざん検証に必要となる”データは、必要に応じて、暗号化／電子署名が省略されても良いであろう。また例えば、各単位の検証データは、最終出力される段階で、全て（フレーム、ブロック、セルなどに対応する各単位の検証データの全て）を１つにまとめてから暗号化し、外観として１つの検証データにして画像データに付加しても良いであろう。
【０１３４】
本発明においては、必要な単位での改ざん検証が容易にできるよう、各単位の検証データがランダムアクセスされやすく、各単位の検証データが独立管理されていれば良い。従って、外願のデータ形態や、その暗号化の有無にとらわれるものではない。
【０１３５】
また、実施形態では、画像入力装置１１としてデジタルカメラを例にして説明したが、イメージスキャナを有する情報処理装置が、原本を読み取る場合にも適用できる。従って、デジタルカメラに限定されるものではない。
【０１３６】
（その他の実施形態）
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
2011151776.tif 000003
【図２】
2011151776.tif 000004
【図３】
2011151776.tif 000005
【図４】
2011151776.tif 000006
【図５】
2011151776.tif 000007
【図６】
2011151776.tif 000008
【図７】
2011151776.tif 000009
【図８】
2011151776.tif 000010
【図９】
2011151776.tif 000011
【図１０】
2011151776.tif 000012
【図１１】
2011151776.tif 000013
【図１２】
2011151776.tif 000014
【図１３】
2011151776.tif 000015
【図１４】
2011151776.tif 000016
【図１５】
2011151776.tif 000017
【図１６】
2011151776.tif 000018
【図１７】
2011151776.tif 000019
【図１８】
2011151776.tif 000020
【図１９】
2011151776.tif 000021
【図２０】
2011151776.tif 000022