(57)【要約】【課題】  ガンマ補正処理、コントラスト補正処理、及びホワイトバランス補正処理などの影響が少ない検証データを生成して、これらの画像処理を、原本性の保証の妨げの要因から除外することを可能にする。【解決手段】  境界情報算出部２１１は、入力された画像データ内に実在する画素値の中で、非実在の画素値との差が１となる画素値を検出し、検出に成功したか否かを示す情報、及び、検出に成功した場合には検出に成功した画素値を有する画素の位置を特定する情報とを第１の検証対象情報として生成する。順序情報算出部２１２は、入力された前記画像データから、予め設定された乱数にしたがって２画素を選択する度に、選択した２画素の大小関係を特定する情報を第２の検証対象情報として生成する。検証データ生成部２１３は、第１の検証対象情報、及び、前記第２の検証対象情報を用いて、画像データの署名用の検証データを生成する。【選択図】  図２
2011130213.tif 000002
【特許請求の範囲】
【請求項１】
画像データの原本性を保証するための検証データを、前記画像データから生成する情報処理装置であって、
原本性の保証対象とする画像データを入力する画像入力手段と、
該画像入力手段によって入力された前記画像データ内に実在する画素値の中で、非実在の画素値との差が予め設定された閾値以下となる画素値を検出し、検出に成功したか否かを示す情報、及び、検出に成功した場合には検出に成功した画素値を有する画素の位置を特定する情報とを第１の検証対象情報として生成する第１の生成手段と、
前記画像入力手段によって入力された前記画像データから、予め設定された乱数にしたがってＮ画素（Ｎは２以上の整数）を選択する度に、選択したＮ画素中の第１乃至第Ｎの画素の各画素値の大小関係を特定する情報を第２の検証対象情報として生成する第２の生成手段と、
前記第１の検証対象情報、及び、前記第２の検証対象情報を用いて、前記画像入力手段によって入力された前記画像データの検証データを生成する検証データ生成手段と、
該検証データ生成手段で生成された検証データを、前記画像入力手段によって入力された前記画像データと共に出力する画像出力手段と
を備えることを特徴とする情報処理装置。
【請求項２】
前記第１の生成手段は、前記非実在の画素値との差が１である、実在する画素値を検出し、
前記第２の生成手段は、前記画像データから、前記予め設定された乱数にしたがって２つの画素を選択することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記画像入力手段は、撮像手段であることを特徴とする請求項１又は２に記載の情報処理装置。
【請求項４】
請求項１に記載の情報処理装置で生成された画像データと検証データとに基づき、前記画像データの改竄の有無を検証する検証装置であって、
検証対象の画像データと、当該画像データのための検証データとを入力する入力手段と、
該入力手段で入力した前記画像データ内に実在する画素値の中で、非実在の画素値との差が予め設定された閾値以下となる画素値を検出し、検出に成功したか否か、並びに、検出に成功した場合には検出に成功した画素値を有する画素の位置が、前記入力手段で入力した検証データに含まれる第１の検証対象情報と一致するか否かを判定する第１の判定手段と、
前記入力手段によって入力された前記画像データから、予め設定された乱数にしたがってＮ画素（Ｎは２以上の整数）を選択して得られたＮ画素中の第１乃至第Ｎの画素の各画素値の大小関係を特定する情報と、前記入力手段で入力した検証データに含まれる第２の検証対象情報とが一致するか否かを判定する第２の判定手段と、
前記第１の判定手段、及び、前記第２の判定手段の両方の判定の結果が一致することを示す場合、前記入力手段で入力した画像データは改竄無しとして判定し、前記第１の判定手段、及び、前記第２の判定手段の少なくとも一方の判定の結果が不一致を示す場合、前記入力手段で入力した画像データは改竄有りとして判定する検証手段と
を備えることを特徴とする検証装置。
【請求項５】
画像データの原本性を保証するための検証データを、前記画像データから生成する情報処理装置の制御方法であって、
画像入力手段が、原本性の保証対象とする画像データを入力する画像入力工程と、
第１の生成手段が、該画像入力工程によって入力された前記画像データ内に実在する画素値の中で、非実在の画素値との差が予め設定された閾値以下となる画素値を検出し、検出に成功したか否かを示す情報、及び、検出に成功した場合には検出に成功した画素値を有する画素の位置を特定する情報とを第１の検証対象情報として生成する第１の生成工程と、
第２の生成手段が、前記画像入力工程によって入力された前記画像データから、予め設定された乱数にしたがってＮ画素（Ｎは２以上の整数）を選択する度に、選択したＮ画素中の第１乃至第Ｎの画素の各画素値の大小関係を特定する情報を第２の検証対象情報として生成する第２の生成工程と、
検証データ生成手段が、前記第１の検証対象情報、及び、前記第２の検証対象情報を用いて、前記画像入力工程によって入力された前記画像データの検証データを生成する検証データ生成工程と、
画像出力手段が、該検証データ生成工程で生成された検証データを、前記画像入力工程によって入力された前記画像データと共に出力する画像出力工程と
を有することを特徴とする情報処理装置の制御方法。
【請求項６】
請求項１に記載の情報処理装置で生成された画像データと検証データとに基づき、前記画像データの改竄の有無を検証する検証装置の制御方法であって、
入力手段が、検証対象の画像データと、当該画像データのための検証データとを入力する入力工程と、
第１の判定手段が、該入力工程で入力した前記画像データ内に実在する画素値の中で、非実在の画素値との差が予め設定された閾値以下となる画素値を検出し、検出に成功したか否か、並びに、検出に成功した場合には検出に成功した画素値を有する画素の位置が、前記入力工程で入力した検証データに含まれる第１の検証対象情報と一致するか否かを判定する第１の判定工程と、
第２の判定手段が、前記入力工程によって入力された前記画像データから、予め設定された乱数にしたがってＮ画素（Ｎは２以上の整数）を選択して得られたＮ画素中の第１乃至第Ｎの画素の各画素値の大小関係を特定する情報と、前記入力工程で入力した検証データに含まれる第２の検証対象情報とが一致するか否かを判定する第２の判定工程と、
検証手段が、前記第１の判定工程、及び、前記第２の判定工程の両方の判定の結果が一致することを示す場合、前記入力工程で入力した画像データは改竄無しとして判定し、前記第１の判定工程、及び、前記第２の判定工程の少なくとも一方の判定の結果が不一致を示す場合、前記入力工程で入力した画像データは改竄有りとして判定する検証工程と
を有することを特徴とする検証装置の制御方法。
【請求項７】
画像データを入力する画像入力手段を有するコンピュータに読み込み込ませ実行させることで、前記コンピュータを、前記画像入力手段より入力した画像データの原本性を保証するための検証データを生成する情報処理装置として機能させる、プログラムであって、
前記コンピュータを、
該画像入力手段によって入力された前記画像データ内に実在する画素値の中で、非実在の画素値との差が予め設定された閾値以下となる画素値を検出し、検出に成功したか否かを示す情報、及び、検出に成功した場合には検出に成功した画素値を有する画素の位置を特定する情報とを第１の検証対象情報として生成する第１の生成手段、
前記画像入力手段によって入力された前記画像データから、予め設定された乱数にしたがってＮ画素（Ｎは２以上の整数）を選択する度に、選択したＮ画素中の第１乃至第Ｎの画素の各画素値の大小関係を特定する情報を第２の検証対象情報として生成する第２の生成手段、
前記第１の検証対象情報、及び、前記第２の検証対象情報を用いて、前記画像入力手段によって入力された前記画像データの検証データを生成する検証データ生成手段、
該検証データ生成手段で生成された検証データを、前記画像入力手段によって入力された前記画像データと共に出力する画像出力手段
として機能させることを特徴とするプログラム。
【請求項８】
検証対象の画像データと、当該画像データのための検証データとを入力する入力手段を有するコンピュータに読み込み込ませ実行させることで、前記コンピュータを、請求項１に記載の情報処理装置で生成された画像データと検証データとに基づき、前記画像データの改竄の有無を検証する検証装置として機能させるプログラムであって、
前記コンピュータを、
前記入力手段で入力した前記画像データ内に実在する画素値の中で、非実在の画素値との差が予め設定された閾値以下となる画素値を検出し、検出に成功したか否か、並びに、検出に成功した場合には検出に成功した画素値を有する画素の位置が、前記入力手段で入力した検証データに含まれる第１の検証対象情報と一致するか否かを判定する第１の判定手段、
前記入力手段によって入力された前記画像データから、予め設定された乱数にしたがってＮ画素（Ｎは２以上の整数）を選択して得られたＮ画素中の第１乃至第Ｎの画素の各画素値の大小関係を特定する情報と、前記入力手段で入力した検証データに含まれる第２の検証対象情報とが一致するか否かを判定する第２の判定手段、
前記第１の判定手段、及び、前記第２の判定手段の両方の判定の結果が一致することを示す場合、前記入力手段で入力した画像データは改竄無しとして判定し、前記第１の判定手段、及び、前記第２の判定手段の少なくとも一方の判定の結果が不一致を示す場合、前記入力手段で入力した画像データは改竄有りとして判定する検証手段
として機能させることを特徴とするプログラム。
【請求項９】
請求項７又は８に記載のプログラムを格納したことを特徴とするコンピュータの読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像データの原本性を保証する技術に関するものである。
【背景技術】
【０００２】
保険会社や建設会社では、事故現場や建築現場の進捗等を証拠写真として銀塩カメラを利用してきたが、これに代えてデジタルカメラを利用することが考えられている。しかし、デジタルカメラで得られたデジタル画像データは、ＰＣ用の市販のフォトレタッチツール等を用いて容易に改竄することができてしまうため、デジタルデータの信頼性は従来の銀塩写真と比較して低く、証拠としての能力に乏しいという課題がある。このような課題を解決する方法として、特許文献１に開示されているような方法が提案されている。この文献には、予めデジタルカメラ内部に秘密情報を組み込んでおき、撮影して得られたデジタル画像データに、その秘密情報を用いて署名処理を施すことが開示されている。撮影後、生成された署名情報を用いて検証処理を行うことにより、撮影画像データの原本性保証が可能となる。
【０００３】
一方、デジタルカメラなどの映像入力装置では、ＣＭＯＳ、ＣＣＤ等の撮像素子により被写体光学像を光電変換して得られた撮像画像の電気信号をＡＤ変換することにより、デジタルデータに変換する。そして、デジタルデータに変換した画像データ（以降ではＲＡＷ画像データと呼ぶ）に様々な画像再現処理を行う。画像再現処理の例としては、ガンマ補正処理、コントラスト補正処理、ホワイトバランス補正処理などが含まれる。特に、最近のデジタルカメラでは、前述したようなＲＡＷ画像データを（画像処理することなく）出力するような動作モードを備える装置もある。こうしたデジタルカメラでは、ユーザがＲＡＷ画像データをＰＣ等に転送し、ＰＣ上のアプリケーションを用いて、所望の画像処理を施すことにより画像再現処理をしている。これにより、ユーザ自身がユーザの好みに応じた画像を再現することが可能になっている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】米国特許第５４９９２９４号
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１に記載の方式は、前述したようなＲＡＷ画像データに対する画像再現処理は考慮されていない。つまり、デジタルカメラ内部においてＲＡＷ画像データに対して署名を施し、その後、ＰＣにおいて画像再現処理を実行した場合、署名の検証に失敗してしまう。即ち、特許文献１に記載の方式によれば、悪意を持って行う改竄ではない画像再現処理を施した場合でも、改竄であると判定されてしまうため、画像再現処理された画像データの原本性を保証することが困難である。
【０００６】
本発明はかかる問題点に鑑みなされたものである。そして、ガンマ補正処理、コントラスト補正処理、及びホワイトバランス補正処理などのような画像再現処理が施された画像データの原本性を保証することが可能な技術を提供しようとするものである。
【課題を解決するための手段】
【０００７】
この課題を解決するため、例えば本発明の情報処理装置は以下の構成を備える。すなわち、
画像データの原本性を保証するための検証データを、前記画像データから生成する情報処理装置であって、
原本性の保証対象とする画像データを入力する画像入力手段と、
該画像入力手段によって入力された前記画像データ内に実在する画素値の中で、非実在の画素値との差が予め設定された閾値以下となる画素値を検出し、検出に成功したか否かを示す情報、及び、検出に成功した場合には検出に成功した画素値を有する画素の位置を特定する情報とを第１の検証対象情報として生成する第１の生成手段と、
前記画像入力手段によって入力された前記画像データから、予め設定された乱数にしたがってＮ画素（Ｎは２以上の整数）を選択する度に、選択したＮ画素中の第１乃至第Ｎの画素の各画素値の大小関係を特定する情報を第２の検証対象情報として生成する第２の生成手段と、
前記第１の検証対象情報、及び、前記第２の検証対象情報を用いて、前記画像入力手段によって入力された前記画像データの検証データを生成する検証データ生成手段と、
該検証データ生成手段で生成された検証データを、前記画像入力手段によって入力された前記画像データと共に出力する画像出力手段とを備える。
【発明の効果】
【０００８】
本発明によれば、ガンマ補正処理、コントラスト補正処理、及びホワイトバランス補正処理などの影響が少ない検証データを生成するので、これらの画像処理を、原本性の保証の妨げの要因から除外することが可能になる。
【図面の簡単な説明】
【０００９】
【図１】第１の実施形態におけるシステムの全体構成を説明する図。
【図２】第１の実施形態における画像入力装置の構成を示す図。
【図３】第１の実施形態における画像検証装置の構成を示す図。
【図４】第１の実施形態における境界情報算出部の構成を示すブロック図。
【図５】第１の実施形態における構成値、及び境界値の抽出方法を説明する図。
【図６】第１の実施形態における境界情報の抽出方法を説明する図。
【図７】第１の実施形態における境界情報抽出処理を示すフローチャート。
【図８】第１の実施形態における順序情報算出部の構成を示すブロック図。
【図９】画素対を説明する図。
【図１０】順序情報の算出例を説明する図。
【図１１】第１の実施形態における撮影処理を示すフローチャート。
【図１２】第１の実施形態における検証部の構成を示すブロック図。
【図１３】第１の実施形態における第１の検証部を説明する図。
【図１４】第１の実施形態における第１の検証処理を示すフローチャート。
【図１５】第１の実施形態における画像検証処理を示すフローチャート。
【図１６】境界値となる画素を欠落画素値に改竄する場合の攻撃を説明する図。
【発明を実施するための形態】
【００１０】
以下、添付図面に従って本発明に係る実施形態を詳細に説明する。
【００１１】
［第１の実施形態］
＜システム全体構成の説明＞
はじめに、本実施形態におけるシステムの全体構成例を図１に示す。本実施形態におけるシステムは、画像入力装置１１及び画像検証装置１２から構成される。
【００１２】
図中、画像入力装置１１は、原本性の保証対象の画像データを発生し、発生した画像データを出力する。特に、本実施形態においては、その画像データに加え、当該画像データが改竄されているか否か、言い換えれば原本性を保証するための検証データを生成し、画像データと共に出力する。また、本実施形態においては、画像入力装置１１内部のＣＭＯＳ、ＣＣＤ等の撮像素子により被写体光学像を光電変換して得られた撮像画像の電気信号をＡＤ変換した画像データ（以降では、ＲＡＷ画像データと呼ぶ）を画像処理することなく出力するものとする。ＲＡＷ画像データの詳細は後述する。画像検証装置１２は、前段の画像入力装置１１から入力された画像データが改竄されているか否かを検証し、検証結果を出力する。画像入力装置１１、及び、画像検証装置１２はインターネットなどのネットワークによって接続しておき、各種データを交換可能にしておいても良い。或いは、出力時に各種データをリムーバブルメディアなどの記憶媒体に記録し、各種データを交換するようにしても良い。
【００１３】
＜画像入力装置の基本構成＞
次に、図２（Ａ）を用いて、本実施形態に適応可能な画像入力装置１１について説明する。図２（Ａ）は本実施形態に適応可能な画像入力装置１１の基本構成を示す図である。図２（Ａ）に示すように本実施形態における画像入力装置１１は、ＲＯＭ２１、保管用メモリ２２、作業用メモリ２３、ＣＰＵ２４、操作部２５、光学系２６、駆動部２７、及びＩ／Ｆ２８から構成され、夫々はバス２９で接続されている。
【００１４】
画像入力装置１１は、例えば一般に普及しているデジタルカメラ等の撮像装置であり、操作部２５を用いて撮影指示がなされた際、光学系２６により生成されたデジタル画像データを保管用メモリ２２などへ蓄積することが可能である。図中、ＲＯＭ２１は読み出し専用メモリであり、あらかじめ動作プログラムや検証データ生成に必要な共有情報が格納される。保管用メモリ２２は処理済の画像データを格納する。作業用メモリ２３では画像データが一時的に保管され、ここで該画像データの圧縮及び各種演算処理が行われる。ＣＰＵ２４は撮影指示がなされると、ＲＯＭ２１にあらかじめ格納されているプログラムに従い、画像データの圧縮処理、検証データ生成等の各種演算処理を行う。操作部２５は撮影者の撮影指示、及び種々のパラメータの設定をはじめとする各種の指示を受け付けるためのユーザインターフェイスである。光学系２６は電荷結合素子ＣＣＤ、或いは相補型金属酸化物半導体ＣＭＯＳ等の光学センサーを含み、撮影指示がなされると被写体の撮影、電気信号処理、デジタル信号処理等を行う。駆動部２７は撮影に必要な機械的な動作（フォーカスレンズやズームレンズの移動）をＣＰＵ２４の制御のもとで行う。Ｉ／Ｆ２８はメモリカード、携帯端末、通信装置といった外部装置とのインタフェースであり、画像データや検証データをこれらの機器へ送信する時に使用される。
【００１５】
＜ホストコンピュータの基本構成＞
次に、図３（Ａ）を用いて、本実施の形態に適応可能な画像検証装置１２について説明する。図３（Ａ）は本実施形態に係る画像検証装置１２として機能するホストコンピュータの基本構成を示すと共に、その周辺機器との関係を示す図である。ホストコンピュータは、一般に普及しているパーソナルコンピュータである。
【００１６】
ホストコンピュータ１２は、種々の情報を表示するモニタ３２、ホストコンピュータ１２内の各部の動作を制御、或いはＲＡＭ３５にロードされたプログラムを実行することのできるＣＰＵ３３、ＢＩＯＳやブートプログラムを記憶しているＲＯＭ３４を有する。また、ホストコンピュータ１２は」ＣＰＵ３３にて処理を行うために一時的にプログラムや処理対象の画像データを格納しておくＲＡＭ３５を有する。ＲＡＭ３５には、ＯＳ（オペレーティングシステム）やＣＰＵ３３が後述の各種処理を行うためのプログラムがロードされることになる。また、ホストコンピュータ１２は、ＲＡＭ３５等に転送されるＯＳやプログラムを格納したり、装置が動作中に画像データを格納したり、読出すために使用されるハードディスク（ＨＤ）３６を有する。また、他の外部記憶装置として、ＣＤ−ＲＯＭ（ＣＤ−Ｒ、ＣＤ−Ｒ／Ｗなど）ドライブ３７、ＦＤ（フロッピー(登録商標)）ドライブ３８、ＤＶＤドライブも設けられている。尚、ＣＤ−ＲＯＭ、ＦＤ、ＤＶＤ−ＲＯＭ等に画像処理用のプログラムが記憶されている場合には、これらプログラムをＨＤ３６にインストールし、必要に応じてＲＡＭ４５に転送されるようになっている。
【００１７】
また、ホストコンピュータは、ネットワークインタフェースカード（ＮＩＣ）３１０を接続するインタフェース３１１、マウス等のポインティングデバイス３１２、キーボード３１３を接続するインタフェース３１４を有する。ＮＩＣ３１０を接続することで、本装置を、インターネットなどのネットワークに接続することができる。また、ＲＡＭ３５、ＨＤ３６、ＣＤ−ＲＯＭ３７、ＦＤ３８、ＤＶＤ３９などに記憶されている画像データをネットワークに送信することも可能となる。更には、ネットワークから画像データを受信することも可能になる。そして、上記各構成ユニットは、システムバス３１５を介して互いに接続されている。
【００１８】
上記構成において、ホストコンピュータは、ＨＤ３６、ＣＤ３７、ＦＤ３８、及びＤＶＤ３９などに蓄積したり、或いは蓄積されている画像データ等をモニタ３２に表示したりすることが可能である。更に、これらの画像データは、ＮＩＣ３１０などを用いることによってインターネットなどを介して配布、逆に、取得することが可能である。また、ユーザからの各種指示等は、ポインティングデバイス３１２、及びキーボード３１３からの入力により行われる。ホストコンピュータ１２の内部では、バス３１５により後述する各ブロックが接続され、種々のデータの受け渡しが可能である。
【００１９】
＜画像入力装置の構成＞
以下、図２（Ｂ）を用いて本実施の形態に適用される画像入力装置１１の機能構成を説明する。なお、以下の説明では、画像入力装置１１に電源が投入され、ＯＳが作業用メモリ２３にロードされている場合である。尚、本発明はこれに限定されることなく、前述したホストコンピュータ１２によって実行するようにしても良い。この場合、各処理部は、該当するプログラム及びそれを実行するＣＰＵ３３、場合によっては周辺のハードウェアでもって実現することになる。
【００２０】
図２（Ｂ）に示すように、本実施形態における画像入力装置１１は、画像発生部２１０、境界情報算出部２１１、順序情報算出部２１２、検証データ生成部２１３、及び画像出力部２１４から構成される。なお、ここで説明する画像入力処理はソフトウェア処理により実現されてもよい。その場合には、上記各部は上記処理に必要な機能を概念的なものとして捉えたものと考慮されるべきものである。
【００２１】
画像発生部２１０は、光学系２６により、ＣＭＯＳ（相補型金属酸化物半導体）、或いはＣＣＤ（電荷結合素子）などの光学センサー、及び光学系を制御するマイクロプロセッサなどを有する。画像発生部２１０は、光学系、及び光学センサーによって生成されたビデオ信号をイメージ情報として取得し、画像データＩを形成する。画像発生部２１０で発生した画像データＩは後段の境界情報算出部２１１、順序情報算出部２１２、及び画像出力部２１４へ供給される。境界情報算出部２１１は、前段の画像発生部２１０より供給された画像データIを入力し、その画像データIから境界情報Ｂを生成し、出力する。
【００２２】
ここで本実施形態における境界情報算出部２１１の詳細について図４を用いて説明する。図４に示すように本実施形態における境界情報算出部２１１は、画像構成画素抽出部４１、境界画素抽出部４２、及び、境界情報抽出部４３から構成される。画像構成画素抽出部４１は、入力した画像データＩから画像構成画素Ｃを抽出し、境界画素抽出部４２へ出力する。ここで、入力された画像データを構成する画素値のことを画像構成画素値と定義し、画像構成画素値の集合を画像構成画素Ｃとする。画像構成画素抽出部４１は、例えばラスタスキャン順に画像データＩの画像構成画素値を抽出し、その画像構成画素値の集合を画像構成画素Ｃとして境界画素抽出部４２へ出力する。ここで、図５を用いて画像構成画素Ｃの抽出について説明する。図５において、画像データ５１は画像構成画素Ｃの抽出対象である画像データＩであり、それぞれの格子は画素を示す。また、左上の画素からラスタスキャン順に、図５の参照符号５２のように割り当てる。画像データＩの画素は、Ｃ（０）＝４、Ｃ（１）＝５、Ｃ（２）＝３、・・・、Ｃ（３３）＝２５３、Ｃ（３４）＝２５５、Ｃ（３５）＝２５５となる。ここで、画像データ５１を抽出対象の画像データとし、画像構成画素Ｃを抽出する。ラスタスキャン順に画像データ５１を構成しているすべての画素を洗い出すと画像データ５１が、画素値０、１、２、３、４、５、２００、２５０、２５１、２５２、２５３、２５４、２５５で構成されていることがわかる。従って、画像データＩ５１の画像構成画素Ｃは、画像構成画素Ｃを構成する画像構成画素値の数が１３、その画像構成画素値は０、１、２、３、４、５、２００、２５０、２５１、２５２、２５３、２５４、２５５となる。結果として、図５の画像構成画素Ｃ５３が抽出され、境界画素抽出部４２に出力する。つまり、画像構成画素Ｃ５３は、着目ブロック内に出現する色数と、各色の画素を連結したものと言える。ここでは、ラスタスキャン順に画像データIを構成する画素値を確認していたが、例えば画像を構成しうる画素値（０〜２５５）が画像データＩに含まれているかどうかを順に検査してもよい。また、以降では説明の便宜上、画像データＩを構成しない画素値を欠落画素値と定義する。例えば、前述した例における画像データＩ成分の欠落画素値は、６、７・・・１９９、２０１、２０２、・・・、２４８、２４９となる。以上、本実施形態における画像構成画素抽出部４１の詳細について説明した。
【００２３】
境界画素抽出部４２は、前段の画像構成画素抽出部４１で抽出した画像構成画素Ｃを入力し、その画像構成画素Ｃから境界画素Ｋを抽出し、境界情報抽出部４３へ出力する。ここで、画像構成画素Ｃに含まれる各画像構成画素値に最小精度を加算、或いは減算したどちらかの値が欠落画素値になるものを境界画素値と定義し、境界画素値の集合を境界画素Ｋとする。本実施形態では、画素値の最小精度を１として説明する。本実施形態では、画素値の最小精度を１としたが、例えば最小精度が１以下の表現が可能なTIFFフォーマットなどの場合は、これに限定されることはない。以下、境界画素抽出部４２の処理の詳細を説明する。
【００２４】
境界画素抽出部４２は、まず前段の画像構成画素抽出部４１で抽出した画像構成画素Ｃに含まれる各画像構成画素値に対して、画素値の最小精度である１を加算し、加算後の値が、前段の画像構成画素抽出部４１で抽出した画像構成画素Ｃに含まれているかどうかを検査する。検査の結果、加算後の値が、画像構成画素Ｃに含まれていない場合（つまり、欠落画素値になる場合）は、加算前の画像構成画素値を境界画素値として抽出する。このとき、画素値がとりうる最大値に関しては（本実施形態の場合は２５５）、画素値の最小精度である１を加算した値が存在しないため除外する。
【００２５】
以上説明した内容を、前述した画像構成画素Ｃ５３を用いて説明する。まず、画像構成画素Ｃ５３に示す画像構成画素値の１つ目の情報から画像データＩを構成する画像構成画素値の数が１３であることがわかる。そして、画像構成画素Ｃ５３の２個目から１４個目の値が、画像構成画素値であることもわかる。そこで、画像構成画素値Ｃ0＝０に画素値の最小精度である１を加算した値Ｃ0'（＝０＋１＝１）が、画像構成画素Ｃ５３の残りの画素値｛１、２、３、４、５、２００、２５０、２５１、２５２、２５３、２５４、２５５｝に含まれているかどうかを検査する。その結果、Ｃ0'＝１は前述した画素値（Ｃ1＝１）に含まれている（つまり、欠落画素値ではない）ため、画素値Ｃ0は境界画素値ではないと判断する。同様に全ての画像構成画素値について検査していくと、画像構成画素値Ｃ5＝５に１を加算した値Ｃ5'＝６は、画像構成画素Ｃ５３の画像構成画素値｛０、１、２、３、４、５、２００、２５０、２５１、２５２、２５３、２５４、２５５｝に含まれていない。つまり、欠落画素値と判定できる。従って、画素値Ｃ5は境界画素値として抽出される。
次に、境界画素抽出部４２は、前述した加算と同様に、画像構成画素Ｃに含まれる各画像構成画素値に対して画素値の最小精度である１を減算し、減算後の値が、画像構成画素抽出部４１で抽出した画像構成画素Ｃに含まれているかどうかを検査する。検査の結果、減算後の値が画像構成画素Ｃに含まれていない場合（つまり、欠落画素値になる場合）は、減算前の画像構成画素値を境界値として抽出する。このとき、画素値のとりうる最小値に関しては（本実施形態の場合は０）、画素値の最小精度である１を減算した値が存在しないため除外する。
【００２６】
以下、減算による境界画素抽出を、前述した画像構成画素５３Ｃを用いて説明する。まず、画像構成画素値Ｃ0＝０から１を減算した値Ｃ0'（＝０−１＝−１）は画素値として存在しないため除外する。画像構成画素値Ｃ1＝１から画素値の最小精度である１を減算した値Ｃ1'（１−１＝０）が、画像構成画素Ｃの画像構成画素値｛０、１、２、３、４、５、２００、２５０、２５１、２５２、２５３、２５４、２５５｝に含まれているかどうかを検査する。その結果、Ｃ1'＝０は前述した画像構成画素値（Ｃ0＝０）に含まれている（つまり、欠落画素値ではない）ため、画像構成画素値Ｃ1は境界画素値ではないと判断する。同様に全ての画像構成画素値について検査していくと、画像構成画素値Ｃ200＝２００から１を減算した値Ｃ２００''＝１９９は、画像構成画素Ｃ５３の画像構成画素値｛０、１、２、３、４、５、２００、２５０、２５１、２５２、２５３、２５４、２５５｝に含まれていない（つまり、欠落画素値である）。従って、画像構成画素値Ｃ200は境界画素値として抽出される。このようにして、全ての色成分に関して境界画素値を抽出した結果が、図５の境界画素Ｋ５４となり、境界情報抽出部４３へ出力される。
【００２７】
なお、図５の境界画素Ｋ５４の通り、画素値Ｃ200は、加算、及び、減算の双方で境界画素として判定されるが、加算と減算で重複して抽出される画素は１つにしてカウントする。ここで、図５に示すように、境界画素抽出部４２は、境界画素値が存在したかどうかについて境界情報抽出部４３へ伝える。例えば、境界画素値が存在した場合は、境界画素Ｋの先頭に１を付加し、境界画素値が存在しない場合は０を付加するなどして、境界画素値が存在するかどうかの旨を境界情報抽出部４３へ伝えるようにする。つまり、境界画素Ｋ５４は、先頭に境界画素値の有無、その後に境界画素値の数、境界画素値が含まれる。以上、本実施形態における境界画素抽出部４２の詳細について説明した。
【００２８】
境界情報抽出部４３は、前段の境界画素抽出部４２で抽出した境界画素Ｋと、画像発生部２１０で発生した画像データＩを入力し、境界画素Ｋ、及び画像データＩから境界情報Ｂを抽出し、検証データ生成部２１３へ出力する。
【００２９】
ここで、境界画素値が画像データ中の特定の位置で同値になっているということが判断できる情報を含んだものを境界情報Ｂとする。例えば、画像データＩ中で同じ境界画素値を持つ画素値の位置情報と、同値となる画素値に関する画像内の位置情報の数を含んだものを境界情報Ｂとしてもよい。また、全ての境界画素値の値とその境界画素値に対する画像内の位置情報を含んだものを境界情報Ｂとしてもよい。本実施形態では、画像データＩ中で同じ境界画素値を持つ画素値の画像内における位置情報（ラスタースキャン順にスキャンした場合に何番目の画素かを示す情報とする）、同値となる画素値に関する画像内の位置情報の数を含んだものを境界情報Ｂとして説明する。
【００３０】
境界情報抽出部４３は、境界画素Ｋに含まれる境界画素値の画像データＩ中の位置を特定し、その特定された位置に対応する画素値を抽出する。境界情報抽出部４３は、ラスタスキャン順に基準となる境界画素値を検索し、基準となった境界画素値と同等の画素値が見つかった場合は、その画像内の位置情報を抽出する。このとき、画像データＩ中に同じ境界画素値が複数存在しない場合は、その境界画素値を境界情報Ｂに含めない。このような抽出を境界画素Ｋに含まれる全ての境界画素値に対して行い、境界情報Ｂとして検証データ生成部２１３へ出力する。
【００３１】
ここで本実施形態における境界情報抽出部４３の詳細について図６を用いて説明する。まず、境界情報抽出部４３は、境界画素Ｋ５４から境界画素値が存在するかどうかを判定する。境界画素値が存在しない場合は、その旨を検証データ生成部２１３へ通知し、境界画素値が存在する場合は以下の処理を行う。
【００３２】
ここでは、図６の参照符号６１で示すのが境界情報Ｂの抽出対象である画像データＩであるものとする。境界情報抽出部４３は、境界画素Ｋ５４を入力した場合、その内容から、画像データＩに対する境界画素値は、画像６２に示す網掛け部に示すものと判定できる。ここで、入力された境界画素Ｋの値に関して、ラスタスキャン順に画像データ中の位置を検索すると、境界画素値ごとの画像内の位置情報は、境界画素値が“５”の場合は、位置Ｃ（１）となる。また、境界画素値が“２００”の場合は、位置Ｃ（７）、Ｃ（８）、Ｃ（１３）、Ｃ（１４）である。そして、境界画素値が“２５０”の場合は、位置Ｃ（２５）となる。このうち境界画素値が“５”、及び、境界画素値が“２５０”に対する位置情報は、１つしか存在しない（同じ境界画素値が複数存在しない）ため、境界情報Ｂには含めない。したがって、画像データＩに関する境界情報Ｂは、画像データ６３に示すように同じ境界画素値を持つ画素の位置情報がＣ（７）、Ｃ（８）、Ｃ（１３）、Ｃ（１４）であり、同値となる位置情報の数は“４”となる。ここで、境界情報抽出部４３は、境界情報Ｂが存在したかどうかについて検証データ生成部２１３へ伝える。例えば、境界情報Ｂが抽出できた場合は、境界情報Ｂの先頭に１を付加し、境界情報Ｂが抽出されなかった場合や、境界画素抽出部４２から境界画素値が存在しなかった場合は、境界情報Ｂの先頭に０を付加するなどして、境界情報Ｂが存在するかどうかの旨を検証データ生成部２１３へ伝える。以上のように境界情報Ｂを抽出すると、参照符号６４に示すような境界情報Ｂが得られ、検証データ生成部２１３へ出力する。なお、ここでは境界情報Ｂ６４に示すフォーマットを示したが、例えば参照符号６５に示すようなマップをもとにして、１次元に並べた参照符号６６に示すような境界情報Ｂを用いてもよい。この場合、境界情報Ｂの先頭に境界情報Ｂの有無を示す情報を付加し、その後ラスタスキャン順に画像中の位置情報に対応する情報を付加する。同値となる境界画素値がある場合は、１を付加し、そうでない場合は０を付加する。境界情報Ｂ６６の場合は、Ｃ（７）、Ｃ（８）、Ｃ（１３）、Ｃ（１４）において同値であることが確認できる。以上、本実施形態における境界情報抽出部４３の詳細について説明した。
【００３３】
上記を平たく言えば、境界情報算出部２１１は、入力された画像データ内に実在する画素値の中で、非実在の画素値との差が予め設定された閾値以下（実施形態では閾値＝１）となる画素値を検出し、検出に成功したか否かを示す情報、及び、検出に成功した場合には検出に成功した画素値を有する画素の位置を特定する情報とを第１の検証対象情報として生成する第１の生成部ということができる。
【００３４】
＜境界値算出処理のフロー＞
以下、図７（Ａ），（Ｂ）のフローチャートに従って、本実施形態における境界情報算出部２１１で実行される境界情報算出処理のフローを説明する。ここでは、まず画像構成画素抽出部４１と境界画素抽出部４２に関する処理を図７（Ａ）に従って説明し、その後、図７（Ｂ）に従って境界情報抽出部４３の処理を説明する。
【００３５】
まず、画像構成画素抽出部４１と境界画素抽出部４２に関する処理フローをあわせて説明する。はじめに画像構成画素抽出部４１において、画像発生部２１０で生成された画像データＩを入力し（Ｓ７０１）、画像構成画素抽出部４１を用いて、入力した画像データＩの画像構成画素を抽出する（Ｓ７０２）。次に、境界画素抽出部４２を用いて、画像データＩ中の画像構成画素値を特定し（Ｓ７０３）、特定した画像構成画素値に対して最小精度を加算、減算する（Ｓ７０４）。最小精度を加算した画素値、もしくは最小精度を減算した画素値が欠落画素値と同等であるかどうかを検証する（Ｓ７０５）。欠落画素値と同等である場合は演算前の画像構成画素値を境界画素値として抽出し（Ｓ７０６）、欠落画素値とならない場合は、処理を行わずに全ての画素値に対して処理を行ったかどうかを検査する（Ｓ７０７）。ここで、全ての画像構成画素値について処理を行っていない場合は、全ての画像構成画素値の処理が完了するまで処理を繰り返す。全ての画像構成画素値に対して処理が完了した場合、境界画素値が抽出されたかどうかを判断して、境界画素値が抽出できた場合は境界画素値を境界画素Ｋに含め（Ｓ７１０）、境界画素値が抽出できなかった場合はその旨を境界画素Ｋに含める（Ｓ７０９）。そして、最終的に境界画素Ｋを境界情報抽出部４３へ出力する。
【００３６】
続いて、境界情報抽出部４３に関する処理を説明する。はじめに、画像データＩおよび境界画素抽出部４２で生成された境界画素Ｋを入力し（Ｓ７１２）、境界画素が存在するかどうかを確認する（Ｓ７１３）。境界画素が存在しない場合境界情報がない旨を境界情報Ｂへ含める（Ｓ７１４）。境界画素が存在する場合は、境界情報を抽出する。境界情報の週出は、まず境界画素値を特定し（Ｓ７１５）、全ての境界画素値に対して処理をしたかどうかを確認する（Ｓ７１６）。全ての境界画素値に対して処理をした場合、Ｓ７２０へ進む。全ての境界画素値に対して処理を行っていない場合は、画像内に同じ境界画素値が存在するかどうかを確認し（Ｓ７１７）、同じ境界画素値が存在しない場合は、境界情報が存在しないと判断できるため次の境界画素値を特定し、処理を繰り返す。画像内に同じ境界画素値が存在する場合は、当該画素値に関する全ての画像内の位置情報を抽出し（Ｓ７１８）、位置情報の個数を抽出する（Ｓ７１９）。Ｓ７２０では、境界情報が存在するかどうかを確認し、存在しない場合は境界情報がない旨を境界情報Ｂに含め（Ｓ７１４）、境界情報がある場合は境界情報が存在する旨を境界情報Ｂへ含める（Ｓ７２１）。最終的に境界情報Ｂを検証データ生成部２１３へ出力する（Ｓ７２２）。以上、本実施形態における境界情報算出処理のフローについて説明した。
【００３７】
続いて、順序情報算出部２１２について説明する。順序情報算出部２１２は、前段の画像発生部２１０で発生した画像データＩ、及び、乱数初期値ＫＲが入力され、入力された乱数初期値を用いて画像データＩから順序情報Ｒが生成され、生成された順序情報Ｒが出力される。
【００３８】
ここで本実施形態における順序情報算出部２１２の詳細について図８を用いて説明する。図８に示すように本実施形態における順序情報算出部２１２は、擬似乱数生成部８１、画素対選択部８２、画素値比較部８３から構成される。
【００３９】
図中、擬似乱数生成部８１は、入力された初期値ＫＲをシードとして擬似乱数ＲＮＤを生成し、生成した擬似乱数ＲＮＤを後段の画素対選択部８２へ出力する。ただし、初期値ＫＲは、画像入力装置１１と後述する画像検証装置１２とで共有しておく必要がある。このため、予め画像入力装置１１内部のＲＯＭ２１、及び画像検証装置１２内部のＲＯＭ３４に共通の秘密情報を保持しておき、検証データ生成部２１３が必要に応じて当該秘密情報を利用するようにする。或いは、ＩＣカード等の耐タンパーな装置内部に初期値ＫＲを保持しておき、当該ＩＣカードを画像入力装置１１及び画像検証装置１２に接続するようにし、ＩＣカード内部から初期値ＫＲを取得して利用するようにしても良い。
【００４０】
画素対選択部８２は、前段の擬似乱数生成部８１で生成された擬似乱数ＲＮＤを用いて、画像データＩを構成する画素の中から２つの画素の位置を選択する。そして、選択した２つの位置の画素を１つの画素対とすることを繰り返すことにより、複数個の画素対から構成される画素対ＩＰを生成して出力する。
【００４１】
ここで図９を用いて本実施形態における画素対の例について説明する。図中、９７は画像データＩを示し、９１、９２、９４、及び９５は夫々画像データ９７中の画素を示す。図中の点線で結び付けられた画素が画素対であり、画素９１と画素９２が画素対９３を構成する。また、画素９４と画素９５が画素対９６を構成している様を示している。この場合、画素対９３と画素対９６が画素対ＩＰとして出力される。
【００４２】
画素値比較部８３は、画素対ＩＰが入力され、入力された画素対を構成する画素値同士を比較し、比較結果を順序情報Ｒとして出力する。
【００４３】
本実施形態では、画素値比較部８３内部で以下の式（１）を用いて順序情報Ｒを生成するものとする。
ｉｆ  ｃ（ｉ）＜ｃ（ｊ）  ｔｈｅｎ  Ｒｋ＝０  ｅｌｓｅ  Ｒｋ＝１  …（１）
【００４４】
式（１）において、ｃ（ｘ）は画素位置ｘにおける画素値、ｉ及びｊは前段の画素対選択部８２で選択された画素対における画素の位置である。入力された擬似乱数ＲＮＤによって選択された画素対ＩＰについて式（１）を用いて相対的大小関係Ｒｋを算出し、算出された大小関係Ｒｋを連結した結果を順序情報Ｒとして出力する。
【００４５】
以上説明したＲｋ、及び順序情報Ｒの算出の具体例を前述の図５、及び図１０を用いて説明する。画像データ５１は順序情報Ｒの算出対象である画像データであり、まず、大小関係Ｒｋを求める。表１０１は、画像データに対して、擬似乱数、画素対ＩＰ、大小関係Ｒｋを説明するためのものである。画像データ５１に対し、擬似乱数生成部８１で生成された擬似乱数ＲＮＤが、表１０１におけるｉ、及びｊであり、画素対選択部８２において選択された画素対ＩＰがＣ（ｉ）及びＣ（ｊ）である。表１０１においては、合計６個の画素対が選択されていることになる。
【００４６】
次に、夫々の画素対に対して式１を用いてＲｋを算出する。例えば、表１０１における最初の画素対は、Ｃ（ｉ）＝２００、Ｃ（ｊ）＝２である。この場合、Ｃ（ｉ）＞Ｃ（ｊ）であるためＲｋ＝１となる。一方、２番目の画素対は、Ｃ（ｉ）＝４、Ｃ（ｊ）＝２５３であるので、Ｃ（ｉ）＞Ｃ（ｊ）でないためＲｋ＝０となる。
【００４７】
以上の方法を用い、残りの画素に対しても、Ｒｋを算出する。そして、算出した大小関係Ｒｋを順に連結することにより、図１０の参照符号１０２に示す順序情報Ｒ（１０１０１０）を生成する。
【００４８】
尚、図１０の例では画像データＩに含まれる一部の画素対ＩＰに対してランダムに選択したものに対して大小関係Ｒｋを算出し、順序情報Ｒとして出力するようとして説明したが、全ての画素対ＩＰに対して大小関係Ｒｋを算出するものであっても構わない。
【００４９】
また、全ての画素対ＩＰに対して大小関係Ｒｋを算出し、順序情報Ｒとして出力する場合、擬似乱数生成部８１は必ずしも必要ではなく、擬似乱数ＲＮＤを用いて画素対を選択する代わりに、予め決めたらた順に従って、全ての画素対を選択するようにすれば良い。
【００５０】
また、本実施形態では、画素対ＩＰとして２つの画素を選択するものとして説明するが、本発明はこれに限定されることなくＮ（＞２）個の画素を選択し画素対ＩＰとしても良い。この場合、画素対選択部８２でＮ個の画素から構成される画素対ＩＰを選択し、画素値比較部８３ではＮ個の画素値の大小関係を算出し、順序情報Ｒとして出力するようにする。一般的に、Ｎ個の画素値の大小関係はＮ！通りあり得るため、一つの画素対ＩＰの大小関係ＲｋとしてはＮ！を表現し得るビット長で順序情報を構成するようにする。例えば、Ｎ＝３の場合は画素値の大小関係として３！＝６通りの場合があり得るため、３ビットで大小関係Ｒｋを表現するようにすれば良い。
【００５１】
ここで、式１を用いた場合、算出される大小関係Ｒｋは「０」か「１」が存在するため１ビットで表現可能である。しかし、例えば以下のような式（２）を用いた場合、算出される大小関係Ｒｋは、「０」、「１」、「２」の３通りが存在するため２ビットで表現する必要がある。つまり、式（１）を用いる場合に比べて式（２）を用いる場合は情報量が多くなってしまう。一方で、大小関係を厳密に表現できるため、より正確な検証が可能となる。
ｉｆ  ｃ（ｉ）＜ｃ（ｊ）  ｔｈｅｎ  Ｒｋ＝０
ｉｆ  ｃ（ｉ）＞ｃ（ｊ）  ｔｈｅｎ  Ｒｋ＝１
ｅｌｓｅ  Ｒｋ＝２                                …（２）
【００５２】
上記を平たく言えば、順序情報算出部２１２は、入力された画像データから、予め設定された乱数にしたがってＮ画素（Ｎは２以上の整数）を選択する度に、選択したＮ画素中の第１乃至第Ｎの画素の各画素値の大小関係を特定する情報を第２の検証対象情報として生成する第２の生成部と言える。
【００５３】
以上、本実施形態における順序情報算出部２１２の詳細について説明した。
【００５４】
引き続き、図２（Ｂ）に戻って説明を続ける。検証データ生成部２１３は、境界情報算出部２１１で生成された境界情報Ｂ、及び順序情報算出部２１２で生成された順序情報Ｒを入力し、入力した境界情報Ｂ、及び順序情報Ｒから検証データＳ（ＢＲ）を生成し、後段の画像出力部２１４に出力する。
【００５５】
本実施形態における検証データとしては、ＭＡＣ（Ｍｅｓｓａｇｅ  Ａｕｔｈｅｎｔｉｃａｔｉｏｎ  Ｃｏｄｅ）や電子署名などが適用可能である。尚、ＭＡＣ及び電子署名の生成方法については当業者にとって公知の技術であるので詳細な説明は省略する。電子署名やＭＡＣの対象となるデータは、例えば図１０の参照符号１０３に示すような構成とする。本実施形態では、順序情報Ｒは、ハッシュなどを利用して情報量を少なくし、境界情報Ｂに関してはそのままの情報として、まとめて電子署名やＭＡＣを適用する。本実施形態では、順序情報Ｒに関して情報量を少なくするようにしたが、これに限定することなく例えばそのままのデータに電子署名やＭＡＣを適用してもよい。
【００５６】
検証データとしてＭＡＣを適用する場合には、ＭＡＣを生成するための秘密情報を、署名鍵ＫＳとして入力するようにし、ＭＡＣを生成する際に利用する。署名鍵ＫＳは画像入力装置１１と後述する画像検証装置１２とで共有しておく必要がある。このため、予め画像入力装置１１内部のＲＯＭ２１、及び画像検証装置１２内部のＲＯＭ３４に共通の秘密情報を保持しておき、検証データ生成部２１３が必要に応じて当該秘密情報を利用するようにする。或いは、ＩＣカード等の耐タンパーな装置内部に署名鍵ＫＳを保持しておき、当該ＩＣカードを画像入力装置１１及び画像検証装置１２に接続するようにし、検証データ生成部２１３がＩＣカード内部から署名鍵ＫＳを取得して利用するようにしても良い。或いは、画像入力装置１１の内部で新たに秘密情報を発生させ、発生した秘密情報を署名鍵ＫＳとして利用するようにしても良い。この場合、発生した秘密秘密情報はＩＣカード等の耐タンパーな装置内部に保持したり、或いは暗号化を施した後画像検証装置１２へ送信するようにすれば良い。
【００５７】
一方、検証データとして電子署名を適用する場合には、電子署名を生成するための秘密鍵を、署名鍵ＫＳとして入力するようにする。このため、予め画像入力装置１１内部のＲＯＭ２１に署名鍵ＫＳを保持しておき、検証データ生成部２１３が必要に応じて当該署名鍵ＫＳを利用するようにする。或いは、ＩＣカード等の耐タンパーな装置内部に署名鍵ＫＳを保持しておき、当該ＩＣカードを画像入力装置１１に接続するようにし、検証データ生成部２１３がＩＣカード内部から署名鍵ＫＳを取得して利用するようにしても良い。或いは、画像入力装置１１の内部で新たに署名鍵ＫＳを発生させ、発生した署名鍵ＫＳを利用するようにしても良い。また、何れの場合においても、検証データ生成部２１３が利用した署名鍵ＫＳに対応する公開鍵が、後述する画像検証装置１２の内部で必要となる。このため、後段の画像出力部２１４において、署名鍵ＫＳに対応する公開鍵を画像データに付加して、画像検証装置１２へ送信するようにする。或いは、不図示のサーバ上に公開鍵を保持しておき、当該サーバ上の公開鍵の保持位置を示す情報（ＵＲＬなど）を画像データに記録するようにしておく。そして、画像検証装置１２は当該保持位置を示す情報を用いることにより、必要に応じて公開鍵をサーバから取得するようにしても良い。
【００５８】
画像出力部２１４は、前段の画像発生部２１０から出力された画像データＩ、及び検証データ生成部２１３から出力された検証データＳ（ＢＲ）を入力し、検証データＳ（ＢＲ）を画像データＩに付加して出力する。なお、本実施形態では付加方法として、Ｅｘｉｆなどでフォーマット化されている画像データＩのヘッダ中に検証データＳ（ＢＲ）を記録する。しかしながら本発明はこれに限定されることなく、画像データＩに検証データＳ（ＢＲ）を連結するようにしても良いし、そのフォーマットは如何なるものでも構わない。画像出力部２１４は、画像データＩをリムーバブルメディア等の記憶媒体に記録したり、或いは、有線／無線のネットワークを介して所定のホストへ送信したりする。以上、本実施形態における画像入力装置１１の構成について説明した。
【００５９】
＜撮影処理のフロー＞
以下、図１１のフローチャートを用いて本実施形態における画像入力装置１１で実行される撮影処理のフローを説明する。図１１は本実施形態に適用可能な撮影処理の流れを示すフローチャートである。
【００６０】
まず、ユーザからの撮影指示に従って画像発生部２１０を用いて画像データＩを撮影する（Ｓ１１１）。次に、境界情報算出部２１１において境界情報Ｂを算出し（Ｓ１１２）、擬似乱数生成部８１で生成された擬似乱数ＲＮＤを用いて画素対選択部８２において画素対ＩＰを選択し（Ｓ１１３）、画素値比較部８３を用いて画素対ＩＰの順序情報Ｒを算出する（Ｓ１１４）。そして、検証データ生成部２１３を用いて、順序情報Ｒに対する検証データＳ（ＢＲ）を生成し（Ｓ１１５）、最終的に画像出力部２１４から、検証データＳ（ＢＲ）が付加された画像データを出力する（Ｓ１１６）。以上、本実施形態における撮影処理のフローについて説明した。
【００６１】
＜画像検証装置の構成＞
以下、図３（Ｂ）を用いて本実施形態に適用される画像検証装置１２の機能構成を説明する。尚、以下の説明では、前述したホストコンピュータ１２に電源が投入され、ＯＳが作業メモリ３５にロードされ、検証処理アプリケーションプログラムも作業メモリ３５に実行されているものとする。
【００６２】
図３（Ｂ）に示すように、本実施形態における画像検証装置１２は、画像入力部３１６、順序情報算出部３１７、及び検証部３１８から構成される。尚、ここで説明する画像検証処理はソフトウェア処理により実現されても良い。その場合には、上記各部は上記処理に必要な機能を概念的なものとして捉えたものと考慮されるべきものである。
【００６３】
画像入力部３１６は、画像データＩ’を入力する。画像データＩ’がリムーバブルメディア、及び／或いはネットワーク等を介して入力されると考えると理解し易い。また、画像入力部３１６は、入力した画像データＩ’のヘッダを解析し、付加されている検証データＳ（ＢＲ）を抽出（もしくは分離）し、抽出した検証データＳ（ＢＲ）を検証部３１８に出力する。
【００６４】
順序情報算出部３１７は、前段の画像入力部３１６からの画像データＩ’、及び、ＲＯＭ３４からの乱数初期値ＫＲを入力し、入力された画像データＩ’、乱数初期値ＫＲから順序情報Ｒ’を生成し、生成された順序情報Ｒ’を出力する。尚、本実施形態においては順序情報算出部３１７の内部で実行される順序情報算出処理は、前述した図２（Ｂ）における順序情報算出部２１２の内部で実行される順序情報算出処理と同様の処理であるため、ここでの説明は省略する。
【００６５】
検証部３１８は、前段の順序情報算出部３１７で生成された順序情報Ｒ’、画像入力部３１６で抽出された検証データＳ（ＢＲ）、画像データＩ’及び検証鍵ＫＳを入力する。そして、入力されたデータを用いて画像データＩ’が改竄されているか否かを検証し、検証結果（ＯＫ／ＮＧ）を出力する。
【００６６】
ここで本実施形態における検証部３１８の詳細について図１２を用いて説明する。図１２に示すように本実施形態における検証部３１８は、復号部１２１、第１の検証部１２２、第２の検証部１２３から構成される。
【００６７】
復号部１２１は、入力された検証データＳ（ＢＲ）を、同じく入力された検証鍵ＫＳで復号する。その結果得られた、境界情報Ｂ、及び順序情報Ｒ（ハッシュなどを利用して情報量を少なくしたもの）をそれぞれ第１の検証部１２２、第２の検証部１２３へ出力する。尚、復号部１２１で実行される処理は、前述した検証データ生成部２１３に対応するものでなければならない。即ち、検証データ生成部２１３においてＭＡＣが生成された場合、検証鍵ＫＳは、ＭＡＣの場合は検証データ生成部２１３で適用された署名鍵ＫＳと同一の秘密情報を適用し、電子署名の場合は検証データ生成部２１３で適用された署名鍵ＫＳに対応する公開鍵であると考慮されるべきものである。復号に失敗した場合は、ＮＧを出力する。
【００６８】
第１の検証部１２２は、前段の復号部１２１で得られた境界情報Ｂを入力し、境界情報Ｂをもとに、画像データＩ’の検証を行い、その検証結果（ＯＫ/ＮＧ）を出力する。第１の検証部１２２は、前段の復号部１２１で得られた境界情報Ｂを参照し、まず、境界情報Ｂが存在するか否かを検査する。境界情報が存在しない場合、つまり本実施形態では境界情報Ｂの先頭が０の場合は、検証結果（ＯＫ）を出力し、境界情報が存在する場合、つまり境界情報Ｂの先頭が１の場合は、同じ境界値を持つ画素の位置情報と、同値となる位置情報の数の関係を検査する。その結果、境界情報Ｂに示されている、特定の位置情報に関して画素値が同等であると判断できた場合は検証結果（ＯＫ）を出力する。逆に、特定の位置情報に関して画素値が同等でないと判断できた場合は画像が改竄されていると判断し、検証結果（ＮＧ）を出力する。
【００６９】
ここで、本実施形態における第１の検証部１２２の詳細について図１３を用いて説明する。ここで、第１の検証部１２２に入力される境界情報Ｂは前述した図６における参照符号６４とし、画像データＩ’は図１３の参照符号１３１とする。画像データＩ’１３１の網掛け部分は、境界情報Ｂに含まれた位置情報を表している。入力された境界情報Ｂについてみると、同値となる位置情報の数は４つであり、その位置情報はそれぞれ、Ｃ（７）、Ｃ（８）、Ｃ（１３）、Ｃ（１４）であることがわかる。したがって、画像データＩ’１３１の画素Ｃ（７）、Ｃ（８）、Ｃ（１３）、Ｃ（１４）の画素値を調べてみると、全て１９９となる。よって、境界情報Ｂに示された位置情報の画素値は同値であると判断できる。境界情報Ｂに関して全て境界画素値についての検証を行い各位置情報に関して画素値が同値であると判断できた場合、第１の検証部１２２は検証結果（ＯＫ）を出力する。例えば画像データ１３２に示すように、Ｃ（１３）の画素値が２００であり、Ｃ（７）、Ｃ（８）、Ｃ（１４）の画素値が１９９のような場合は、Ｃ（７）、Ｃ（８）、Ｃ（１３）、Ｃ（１４）の画素値が同値でないため、境界情報Ｂの内容と異なり、第１の検証部１２２は検証結果（ＮＧ）を出力する。以上、本実施形態における第１の検証部の詳細について説明した。
【００７０】
＜第１の検証処理のフロー＞
以下、図１４のフローチャートを用いて本実施形態における第１の検証部１２２で実行される第１の検証処理のフローを説明する。
【００７１】
まず、復号部１２１で復号された境界情報Ｂ、及び画像データＩ’を入力し（Ｓ１６１）、入力された境界情報Ｂから、境界情報が存在するか否かを検査する（Ｓ１４２）。境界情報が存在しない場合は検証成功と判断し（Ｓ１４６）、境界情報が存在する場合は、境界情報の検証を行う。続いて入力された境界情報Ｂから同値となる位置情報の数を抽出し（Ｓ１４３）、同じ境界値を持つ画素の位置情報を抽出する（Ｓ１４４）。抽出した、同値となる位置情報の数、及び同じ境界値を持つ画素の位置情報において全ての画素値が同値であるかどうかを検証する（Ｓ１４５）。位置情報に関する画素値が同値であれば、検証成功（Ｓ１４６）、そうでなければ検証失敗（Ｓ１４７）として出力する。以上、本実施形態における第１の検証処理のフローについて説明した。
【００７２】
第２の検証部１２３は、入力された順序情報Ｒ’、及び前段の復号部１２１で抽出された順序情報Ｒを入力し、検証結果（ＯＫ／ＮＧ）を出力する。具体的には、入力された順序情報Ｒ’と順序情報Ｒを比較し、一致していれば検証結果（ＯＫ）する。入力された順序情報Ｒが検証データ生成時にハッシュなどを利用して情報量を少なくしている場合は、第２の検証部でも同様の処理を行って比較し、検証結果（ＯＫ/ＮＧ）を出力する。
【００７３】
＜画像検証処理のフロー＞
以下、図１５のフローチャートを用いて本実施形態における画像検証装置１２で実行される画像検証処理のフローを説明する。
【００７４】
まず、画像入力部３１６が画像データＩ’を入力する（Ｓ１５１）。次に、擬似乱数生成部８１で生成された擬似乱数ＲＮＤを用いて画素対選択部８２において画素対ＩＰを選択し（Ｓ１５２）、画素値比較部８３を用いて選択した画素対ＩＰの順序情報Ｒを算出する（Ｓ１５３）。そして、復号部１２１において復号処理を実行する（Ｓ１５４）。そして、復号に成功したか否かを判定する（Ｓ１５５）。復号処理に成功した場合は第１の検証処理に進み（Ｓ１５６；第１の判定処理）、さもなければ検証失敗とする（Ｓ１５１１）。第１の検証処理（Ｓ１５６）では、画像入力装置と同じように、画像データ内に実在する画素値の中で、非実在の画素値との差が予め設定された閾値以下となる画素値を検出し、検出に成功したか否か、並びに、検出に成功した場合には検出に成功した画素値を有する画素の位置を抽出する。そして、Ｓ１５７にて、抽出した情報と、復号して得られた検証データ内の境界情報Ｂと比較し、検証が成功したか否か（一致するか否か）を判定する。検証結果が検証成功である場合には処理を第２の検証処理に進め（Ｓ１５８；第２の判定処理）、さもなければ検証失敗とする（Ｓ１５１１）。第２の検証処理（Ｓ１５８）では、入力した画像データから、画像入力装置と同じ乱数にしたがって２画素を選択し、その２画素の大小関係を特定する情報を作成していく。そして、その情報のハッシュ値を求め、その値と、復号して得られた検証データ内の順序情報Ｒのハッシュ値と比較し、検証が成功したか否かを判定する（Ｓ１５９）。検証成功である場合、すなわち、境界情報Ｂ、及び、順序情報Ｒの両方が、復号して得られたそれぞれの情報と一致する場合、画像の検証は成功（改竄無し）と判定する。また、少なくともいずれか一方が不一致であった場合、Ｓ１５１１にて、検証は失敗（改竄有り）と判定して処理を終了する。以上、本実施形態における画像検証処理のフローについて説明した。
【００７５】
＜改竄方法の一例＞
以下、本発明によって対抗可能な改竄方法の一例について説明する。ここで説明する改竄方法とは、境界値となる画素を欠落画素値に改竄するような攻撃である。例えば、下記の式３を用いて順序情報を生成するとする。
ｉｆ  ｃ（ｉ）≧ ｃ（ｊ）  ｔｈｅｎ  Ｒｋ＝０  ｅｌｓｅ  Ｒｋ＝１  …（３）
このような場合、「０」と「１」の２値で順序情報Ｒを構成することが可能であるが、以下に説明する攻撃が可能である。
【００７６】
図１６に示す参照符号１６１は入力された画像データを示している。ここで、画像データ１６１に示す網掛け部は境界画素値を示している。このとき、画像データ１６１中の画素（２, ２）に対してすべての画素に対する順序情報を生成すると、参照符号１６２に示すような順序情報のマップが生成される。更に、画像データ１６１を参照符号１６３に示すような画像データに改竄する。このとき改竄する内容は、画像データ１６３に示された斜線部分に対応の境界画素値２００を欠落画素値である“１７６”に変更するものとする。このときに、画像データ１６１と同様に、画像データに示すような画像データ中の画素（２, ２）に対して全ての画素に対する順序情報を生成する。すると、参照符号１６４に示すような順序情報のマップが生成される。生成された順序情報のマップを確認すると、斜線部分の順序情報は、「０」であり前述した順序情報のマップ１６２と比較すると同じマップになってしまう。このように式（３）を用いたような順序情報が「０」、「１」の２値で表現できるような場合は、境界画素値の画素値を欠落画素値の値に変更する攻撃が可能である。
【００７７】
しかして、本実施形態では、境界情報算出部によって境界情報を算出し、境界情報を検証側に送付する。そうすることによって、境界画素値が欠落画素値に変更された場合においても、境界画素値に関しては、全てが同じ画素値にならなければならないため前述した問題を検知することが可能となる。以上、本発明によって対抗可能な改竄方法の一例について説明した。
【００７８】
以上説明したように、本実施形態によれば、画像発生部２１０において発生した画像データＩに対する検証データに、境界情報Ｂ（境界値の数とその位置情報）と順序情報Ｒを加えている。これにより、画像データＩが画像再現処理を実行した場合においても、検証処理を成功させることが可能である。特に境界情報Ｂを検証データに加えることによって、境界値となる画素を欠落画素値に改竄するような攻撃に対しても、改竄を検知することが可能となっている。これは、境界値となる値の位置に関する情報を持つことによって、境界値の一部のみを変更できないようにしているためである。
【００７９】
ところで、本発明は上述した効果以外に、順序情報を２値で表現することが重要である。上述した攻撃方法に関しては、順序情報を３値で表現することでも対抗できるが、情報量を考慮した場合、順序情報を２値で表現し、境界情報を付加した場合のほうが少ない情報量で処理することを可能としている。
【００８０】
また、実施形態では、画像入力装置１１としてデジタルカメラを例にしたが、イメージスキャナであっても構わないし、撮像手段を接続或いは収容した情報処理装置でも構わない。また、実施形態では、１画素が１成分であり、成分値は８ビットであることを前提にして説明したが、１画素が複数成分であっても構わないし、８ビットを超えるビット数で表現される場合にも適用できる。１画素が複数成分で表わされている場合、各成分について上記の実施形態を適用すればよいからである。
【００８１】
（その他の実施例）
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
2011130213.tif 000003
【図２】
2011130213.tif 000004
【図３】
2011130213.tif 000005
【図４】
2011130213.tif 000006
【図５】
2011130213.tif 000007
【図６】
2011130213.tif 000008
【図７】
2011130213.tif 000009
【図８】
2011130213.tif 000010
【図９】
2011130213.tif 000011
【図１０】
2011130213.tif 000012
【図１１】
2011130213.tif 000013
【図１２】
2011130213.tif 000014
【図１３】
2011130213.tif 000015
【図１４】
2011130213.tif 000016
【図１５】
2011130213.tif 000017
【図１６】
2011130213.tif 000018