(57)【要約】【課題】  認証情報を画像全体に埋め込み，埋め込まれた画像に対して真正性を検証する画像検証装置等を提供する。【解決手段】  上記画像検証装置は，画像等から原画像をページ単位に作成する原画像生成部と；ハッシュ値を求め，認証情報を生成する認証情報生成部と；認証情報の暗号画像を作成する暗号画像形成部と；原画像と暗号画像をＸＯＲ演算によって重ね合わせ，合成画像を作成する出力画像合成部（１３）と；合成画像を入力画像として入力し，その入力画像から検証用暗号画像を検出する暗号画像検出部と；上記入力画像と検証用暗号画像とをＸＯＲ演算によって重ね合わせ，検証用原画像を作成する原画像合成部（３４）と；検証用暗号画像を基にして得られた認証情報を復号し，ハッシュ値を取得するハッシュ値取得部（３５）と；検証用原画像の検証用ハッシュ値を求め，上記ハッシュ値と比較し，検証する検証部（３６）とを備える。【選択図】    図１
2006222788.tif 000002
【特許請求の範囲】
【請求項１】
画像の真正性について検証する画像検証装置において：
少なくとも文書又は画像から原画像をページ単位に作成する原画像生成部と；
少なくともページ単位の前記原画像を基にして，その原画像のハッシュ値を求めることで，認証情報を生成する認証情報生成部と；
前記認証情報に基づき，該認証情報の機密を保持するために暗号画像を作成する暗号画像形成部と；
前記原画像と前記暗号画像とを排他的論理和演算によって重ね合わせ，合成画像を作成する出力画像合成部と；
前記合成画像を入力画像として入力し，その入力画像から検証に用いるための検証用暗号画像を検出する暗号画像検出部と；
前記入力画像と前記検証用暗号画像とを排他的論理和演算によって重ね合わせ，検証用原画像を作成する原画像合成部と；
前記検証用暗号画像を基にして得られた認証情報を復号し，ハッシュ値を取得するハッシュ値取得部と；
前記検証用原画像を基にして，その検証用原画像の検証用ハッシュ値を求め，前記ハッシュ値取得部により取得したハッシュ値と該検証用ハッシュ値とを比較し，一致／不一致について検証する検証部と；
を備えることを特徴とする，画像検証装置。
【請求項２】
請求項１に記載の画像検証装置で検証するために画像を埋め込む画像埋め込み装置において：
少なくとも文書又は画像から原画像をページ単位に作成する原画像生成部と；
少なくともページ単位の前記原画像を基にして，その原画像のハッシュ値を求めることで，認証情報を生成する認証情報生成部と；
前記認証情報に基づき，該認証情報の機密を保持するために暗号画像を作成する暗号画像形成部と；
前記原画像と前記暗号画像とを排他的論理和演算によって重ね合わせ，合成画像を作成する出力画像合成部と；
を備えることを特徴とする，画像埋め込み装置。
【請求項３】
色ビット情報は画素単位に表示する色を１又は２以上のビットからなるビット列で表現した情報であり，前記出力画像合成部は，前記原画像を構成する全ての画素に係る各色ビット情報のビット列を最下位ビットから最上位ビットまで各々順番に並べ，該並べられた全ての画素に係る色ビット情報のビット列をビットの順位別に分解することで，前記原画像から複数のレイヤ画像を生成し，その複数のレイヤ画像のいずれかと，前記暗号画像とを重ね合わせることを特徴とする，請求項２に記載の画像埋め込み装置。
【請求項４】
色ビット情報は画素単位に表示する色を１又は２以上のビットからなるビット列で表現した情報であり，前記出力画像合成部は，前記原画像を複数の画素からなる複数のブロックに分割し，該分割されたブロックを画像変換し，該画像変換された複数のブロックのうち直流成分係数に対応する直流成分ブロックを取得し，該直流成分ブロックを構成する全ての画素に係る各色ビット情報のビット列を最下位ビットから最上位ビットまで各々順番に並べ，該並べられた全ての画素に係る色ビット情報のビット列をビット順位別に分解することで，前記原画像から複数のブロックレイヤ画像を生成し，その複数のブロックレイヤ画像のうち前記最上位ビットを含んで分解された最上位ブロックレイヤ画像を除く他のブロックレイヤ画像のいずれかと，前記暗号画像とを重ね合わせることを特徴とする，請求項２に記載の画像埋め込み装置。
【請求項５】
前記出力画像合成部は，前記暗号画像と重ね合わせる対象のブロックレイヤ画像を埋め合わせ処理し，前記原画像と略同一の大きさのレイヤ画像に拡大処理した後に，前記暗号画像と重ね合わせることを特徴とする，請求項４に記載の画像埋め込み装置。
【請求項６】
前記入力画像はＪＰＥＧからなる画像であり，前記色ビット情報は前記ブロックに構成された画素の明るさを少なくとも示すことを特徴とする，請求項４又は５に記載の画像埋め込み装置。
【請求項７】
前記色ビット情報は，複数種類の赤色に関する色を１又は２以上のビットからなるビット列で表現した赤色ビット情報と，緑色を１又は２以上のビットからなるビット列で表現した緑色ビット情報と，青色を１又は２以上のビットからなるビット列で表現した青色ビット情報とから構成されることを特徴とする，請求項３〜６のうちいずれか１項に記載の画像埋め込み装置。
【請求項８】
請求項１に記載の画像検証装置で作成された画像から検出する画像検出装置において：
原画像を基にして生成された認証情報から該認証情報の機密を保持するために暗号画像に変換され，その暗号画像と，該原画像とを排他的論理和演算によって重ね合わせて作成された合成画像を入力画像として入力し，その入力画像から検証に用いるための検証用暗号画像を検出する暗号画像検出部と；
前記入力画像と前記検証用暗号画像とを排他的論理和演算によって重ね合わせ，検証用原画像を作成する原画像合成部と；
前記検証用暗号画像を基にして得られた認証情報を復号し，ハッシュ値を取得するハッシュ値取得部と；
前記検証用原画像を基にして，その検証用原画像の検証用ハッシュ値を求め，前記ハッシュ値取得部により取得したハッシュ値と該検証用ハッシュ値とを比較し，一致／不一致について検証する検証部と；
を備えることを特徴とする，画像検出装置。
【請求項９】
色ビット情報は画素単位に表示する色を１又は２以上のビットからなるビット列で表現した情報であり，前記原画像合成部は，前記入力画像を構成する全ての画素に係る各色ビット情報のビット列を最下位ビットから最上位ビットまで各々順番に並べ，該並べられた全ての画素に係る色ビット情報のビット列をビット順位別に分解することで，前記入力画像から複数のレイヤ画像を生成し，その複数のレイヤ画像のいずれかと，前記暗号画像とを重ね合わせることを特徴とする，請求項８に記載の画像検出装置。
【請求項１０】
色ビット情報は画素単位に表示する色を１又は２以上のビットからなるビット列で表現した情報であり，前記原画像合成部は，前記入力画像を複数の画素からなる複数のブロックに分割し，該分割されたブロックを画像変換し，該画像変換された複数のブロックのうち直流成分係数に対応する直流成分ブロックを取得し，該直流成分ブロックを構成する全ての画素に係る各色ビット情報のビット列を最下位ビットから最上位ビットまで各々順番に並べ，該並べられた全ての画素に係る色ビット情報のビット列をビット順位別に分解することで，前記入力画像から複数のブロックレイヤ画像を生成し，その複数のブロックレイヤ画像のいずれかと，前記暗号画像とを重ね合わせることを特徴とする，請求項８に記載の画像検出装置。
【請求項１１】
前記原画像合成部は，前記暗号画像と重ね合わせる対象のブロックレイヤ画像を埋め合わせ処理し，前記入力画像と略同一の大きさのレイヤ画像に拡大処理した後に，前記暗号画像と重ね合わせることを特徴とする，請求項１０に記載の画像検出装置。
【請求項１２】
前記入力画像はＪＰＥＧからなる画像であり，前記色ビット情報は前記ブロックに構成された画素の明るさを少なくとも示すことを特徴とする，請求項１０又は１１に記載の画像埋め込み装置。
【請求項１３】
前記色ビット情報は，複数種類の赤色に関する色を１又は２以上のビットからなるビット列で表現した赤色ビット情報と，緑色を１又は２以上のビットからなるビット列で表現した緑色ビット情報と，青色を１又は２以上のビットからなるビット列で表現した青色ビット情報とから構成されることを特徴とする，請求項９〜１２のうちいずれか１項に記載の画像検出装置。
【請求項１４】
画像埋め込み方法において：
少なくとも文書又は画像から原画像をページ単位に作成する原画像生成ステップと；
少なくともページ単位の前記原画像を基にして，その原画像のハッシュ値を求めることで，認証情報を生成する認証情報生成ステップと；
前記認証情報に基づき，該認証情報の機密を保持するために暗号画像を作成する暗号画像形成ステップと；
前記原画像と前記暗号画像とを排他的論理和演算によって重ね合わせ，合成画像を作成する出力画像合成ステップと；
を含むことを特徴とする，画像埋め込み方法。
【請求項１５】
コンピュータをして，画像埋め込み装置として機能させるコンピュータプログラムにおいて：
少なくとも文書又は画像から原画像をページ単位に作成する原画像生成手段と；
少なくともページ単位の前記原画像を基にして，その原画像のハッシュ値を求めることで，認証情報を生成する認証情報生成手段と； 
前記認証情報に基づき，該認証情報の機密を保持するために暗号画像を作成する暗号画像形成手段と；
前記原画像と前記暗号画像とを排他的論理和演算によって重ね合わせ，合成画像を作成する出力画像合成手段と；
を含むことを特徴とする，コンピュータプログラム。
【請求項１６】
画像検出方法において：
原画像を基にして生成された認証情報から該認証情報の機密を保持するために暗号画像に変換され，その暗号画像と，該原画像とを排他的論理和演算によって重ね合わせて作成された合成画像を入力画像として入力し，その入力画像から検証に用いるための検証用暗号画像を検出する暗号画像検出ステップと；
前記入力画像と前記検証用暗号画像とを排他的論理和演算によって重ね合わせ，検証用原画像を作成する原画像合成ステップと；
前記検証用暗号画像を基にして得られた認証情報を復号し，ハッシュ値を取得するハッシュ値取得ステップと；
前記検証用原画像を基にして，その検証用原画像の検証用ハッシュ値を求め，前記ハッシュ値取得ステップにおいて取得した前記ハッシュ値と該検証用ハッシュ値とを比較し，一致／不一致について検証する検証ステップと；
を含むことを特徴とする，画像検出方法。
【請求項１７】
コンピュータをして，画像検出装置として機能させるコンピュータプログラムにおいて：
原画像を基にして生成された認証情報から該認証情報の機密を保持するために暗号画像に変換され，その暗号画像と，該原画像とを排他的論理和演算によって重ね合わせて作成された合成画像を入力画像として入力し，その入力画像から検証に用いるための検証用暗号画像を検出する暗号画像検出手段と；
前記入力画像と前記検証用暗号画像とを排他的論理和演算によって重ね合わせ，検証用原画像を作成する原画像合成手段と；
前記検証用暗号画像を基にして得られた認証情報を復号し，ハッシュ値を取得するハッシュ値取得手段と；
前記検証用原画像を基にして，その検証用原画像の検証用ハッシュ値を求め，前記ハッシュ値取得手段から出力されたハッシュ値と該検証用ハッシュ値とを比較し，一致／不一致について検証する検証手段と；
を含むことを特徴とする，コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は画像検証装置，画像埋め込み装置，画像検出装置，画像埋め込み方法，画像検出方法，コンピュータプログラム，および印刷物製造方法に関する。
【背景技術】
【０００２】
従来から，画像ファイル又は文書ファイルなどデータ自体の改ざん等を防止する目的で用いられる情報（ディジタル署名など）や，画像ファイル文書ファイルなどのデータを作成した時刻の改ざん等を防止する目的で用いられる情報（タイムスタンプ）などを，データに埋め込む技術が数多く存在する（例えば，非特許文献１参照）。
【０００３】
かかる改ざん等を防止する目的で用いられる情報は，いわゆるデータの真正性を証明する認証情報等に相当し，その認証情報が埋め込まれた画像又は文書ファイルを，例えば画面上に表示しても，又は紙媒体に印刷しても，目視できない形式で認証情報が埋め込まれているため，利用者は認証情報を特定し，取り出すことが容易に出来ないようになっている。
【０００４】
【非特許文献１】塚田  孝則著「企業システムのためのＰＫＩ」日経ＢＰ社出版，２００１年１２月２５日，ｐ．１４−３７
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら，認証情報の埋め込み先としては，利用者には秘密の上で，画像ファイルのヘッダ領域等の特定領域や，別ファイルなど，予め決められた場所に埋め込む場合が一般的であった。
【０００６】
かかる場合，認証情報は画像ファイルと切り離し可能であるため，利用者によって認証情報の埋め込み先が特定された場合，認証情報のみを取り出し，他の認証情報にすり替えたり，偽造されたりする等の危険性があった。
【０００７】
本発明は，上記問題点に鑑みてなされたものであり，本発明の目的は，認証情報を画像全体に埋め込み，埋め込まれた画像に対して真正性を検証することが可能な，新規かつ改良された画像検証装置，画像埋め込み装置，画像検出装置，画像埋め込み方法，画像検出方法，コンピュータプログラム，および印刷物製造方法を提供することである。
【課題を解決するための手段】
【０００８】
上記課題を解決するため，本発明の第１の観点によれば，画像の真正性について検証する画像検証装置が提供される。上記画像検証装置は，少なくとも文書又は画像から原画像をページ単位に作成する原画像生成部と；少なくともページ単位の原画像を基にして，その原画像のハッシュ値を求めることで，認証情報を生成する認証情報生成部と；認証情報に基づき，当該認証情報の機密を保持するために暗号画像を作成する暗号画像形成部と；上記原画像と暗号画像とを排他的論理和演算（又は，ＸＯＲ演算）によって重ね合わせ，合成画像を作成する出力画像合成部と；上記合成画像を入力画像として入力し，その入力画像から検証に用いるための検証用暗号画像を検出する暗号画像検出部と；上記入力画像と検証用暗号画像とを排他的論理和演算によって重ね合わせ，検証用原画像を作成する原画像合成部と；検証用暗号画像を基にして得られた認証情報を復号し，ハッシュ値を取得するハッシュ値取得部と；上記検証用原画像を基にして，その検証用原画像の検証用ハッシュ値を求め，ハッシュ値取得部により取得したハッシュ値と当該検証用ハッシュ値とを比較し，一致／不一致について検証する検証部とを備えることを特徴としている。
【０００９】
本発明によれば，画像検証装置は，原画像とは別途に用意するのではなく原画像ごとに異なる認証情報を，原画像から直接的に認証情報を生成し，その認証情報を暗号画像に形成した後，上記原画像と暗号画像とを排他的論理和演算によって重ね合わせ合成画像を作成している。なお，原画像と暗号画像とは略同一のサイズである。さらに合成画像が出力された画像ファイル又は印刷媒体（又は，印刷物）などを入力した後，その入力画像から検証に用いるために検証用の暗号画像（検証用暗号画像）を検出し，その検証用暗号画像と入力画像とを再度排他的論理和演算により検証用の原画像（検証用原画像）を作成する。その検証用原画像から求められる検証用ハッシュ値と検証用暗号画像を少なくとも復号することで得られるハッシュ値とを比較することで，入力画像の真正性を検証している。かかる構成により，検証用ハッシュ値とハッシュ値とが不一致であれば，その入力画像は改ざん等の不正処理が施されたと判断し，利用者に認識しやすいように画面上等に表示することができる。また，検証する判断材料となり機密性が高い認証情報を，原画像の画質等の劣化を最小限にするとともに，原画像の画像全体に渡って埋め込むことが可能であるため，第三者に特定され認証情報を取得される危険性を極めて低く抑えることができる。
【００１０】
なお，本発明に係る暗号画像は，例えば，目視上地紋または透かし模様などから構成されている画像であり，また暗号画像は，例えば，複数種類のドットパターンが規則正しく配置され，その中の少なくとも一種類のドットパターンは原画像を基にして生成される認証情報が与えられる。
【００１１】
また，上記ドットパターンは，例えば，所定の方向に所定の間隔でドットが配置され，ドットの輝度値を振幅とし，所定の方向と垂直な方向を伝播方向とする波を表現したものである。そのドットの方向及び／又は間隔を変化させたドットパターンを複数用意し，ドットパターンを組み合わせて配置することにより，機密情報としての認証情報が与えられる。
【００１２】
上記課題を解決するために，本発明の別の観点によれば，画像埋め込み装置が提供される。上記画像埋め込み装置は，少なくとも文書又は画像から原画像をページ単位に作成する原画像生成部と；少なくともページ単位の原画像を基にして，その原画像のハッシュ値を求めることで，認証情報を生成する認証情報生成部と；当該認証情報に基づき，認証情報の機密を保持するために暗号画像を作成する暗号画像形成部と；上記原画像と暗号画像とを排他的論理和演算によって重ね合わせ，合成画像を作成する出力画像合成部とを備えることを特徴としている。なお，上記画像埋め込み装置は，例えば上記画像検証装置で検証するために画像を埋め込むが，かかる例に限定されない。
【００１３】
本発明によれば，原画像とは別に用意せずに，原画像ごとに異なる認証情報を，原画像から直接的に認証情報を生成し，その認証情報を暗号画像に形成した後，その原画像と暗号画像とを排他的論理和演算によって重ね合わせ合成画像を作成している。かかる構成によれば，合成画像の真正性を検証する判断材料となり機密性が非常に高い認証情報を，原画像の画質等が劣化する程度を最小限にするとともに，原画像の画像全体に渡って埋め込むことが可能であるため，第三者に埋め込まれた認証情報が特定され，認証情報を改ざん，破壊，または取得される危険性を極めて低く抑えることができる。
【００１４】
色ビット情報は画素単位に表示する色を１又は２以上のビットからなるビット列で表現した情報（又は，置き換えた情報，変換した情報）であり，上記出力画像合成部は，上記原画像を構成する全ての画素に係る各色ビット情報のビット列を最下位ビットから最上位ビットまで各々順番に並べ，当該並べられた全ての画素に係る色ビット情報のビット列をビット順位別に分解することで，上記原画像から複数のレイヤ画像を生成し，その複数のレイヤ画像のいずれかと，上記暗号画像とを重ね合わせるように構成してもよい。かかる構成により，原画像の画質等が劣化する程度を抑えるとともに，原画像の画像全体に渡って埋め込むことが可能であるため，第三者に埋め込まれた認証情報が特定され，認証情報を改ざん，破壊，または取得される危険性を極めて低く抑えることができる。なお，上記原画像は，例えば，複数階調からなるグレイスケール画像等に相当する。
【００１５】
上記原画像は，少なくともグレイスケールからなる画像であってもよい。なお，入力画像は，複数階調からなる画像であって，色ビット情報のビット長は，例えば８ビット，１６ビット，２４ビット，または３２ビットなどであって，１又は２以上であればかかる例に限定されない。
【００１６】
色ビット情報は画素単位に表示する色を１又は２以上のビットからなるビット列で表現した情報（又は，置き換えた情報，変換した情報）であり，出力画像合成部は，原画像を複数の画素からなる複数のブロックに分割し，当該分割されたブロックを画像変換し，画像変換された複数のブロックのうち，直流成分係数（例えば，ＤＣ係数，Ｃ（０，０））に対応する直流成分ブロックを取得し，当該直流成分ブロックを構成する全ての画素に係る各色ビット情報のビット列を最下位ビットから最上位ビットまで各々順番に並べ，当該並べられた全ての画素に係る色ビット情報のビット列をビット順位別に分解することで，原画像から複数のブロックレイヤ画像を生成し，その複数のブロックレイヤ画像のうち最上位ビットを含んで分解された最上位ブロックレイヤ画像を除く他のブロックレイヤ画像のいずれかと，暗号画像とを重ね合わせるように構成してもよい。なお，直流成分ブロックは，画像全体の色ビット情報の平均値を示したブロックである。
【００１７】
上記出力画像合成部は，暗号画像と重ね合わせる対象のブロックレイヤ画像を埋め合わせ処理し，原画像と略同一の大きさのレイヤ画像に拡大処理した後に，暗号画像と重ね合わせるように構成してもよい。なお，埋め合わせ処理では，例えば０等の数値が用いられる。
【００１８】
上記原画像はＪＰＥＧ（Ｊｏｉｎｔ  Ｐｈｏｔｏｇｒａｐｈｉｃ  Ｅｘｐｅｒｔ  Ｇｒｏｕｐ）からなる画像であり，色ビット情報は上記ブロックに構成された画素の明るさを少なくとも示すように構成してもよい。なお，原画像は，上記ＪＰＥＧに限定されることなく，例えば，原画像は，ＪＰＥＧ−ＬＳまたはＪＰＥＧ２０００などからなる画像でもよい。
【００１９】
上記色ビット情報は，複数種類の赤色に関する色を１又は２以上のビットからなるビット列で表現した赤色ビット情報（色彩と濃度を含む）と，緑色を１又は２以上のビットからなるビット列で表現した緑色ビット情報と，青色を１又は２以上のビットからなるビット列で表現した青色ビット情報とから構成されるようにしてもよい。なお，上記色ビット情報は，原画像がＪＰＥＧなどからなる画像の場合も含まれる。また色ビット情報のビット長は，例えば８ビット，１６ビット，２４ビット，または３２ビットなどであって，１又は２以上であればかかる例に限定されない。
【００２０】
また，上記色ビット情報は，赤色を１又は２以上のビットからなるビット列で表現した赤色ビット情報と，緑色を１又は２以上のビットからなるビット列で表現した緑色ビット情報と，青色を１又は２以上のビットからなるビット列で表現した青色ビット情報とから構成され，出力画像合成部は，上記並べられた全ての画素に係る赤色ビット情報，緑色ビット情報，および青色ビット情報のビット列をビット順位別に分解することで，上記原画像から複数の赤色レイヤ画像，緑色レイヤ画像，および青色レイヤ画像を生成し，その複数の赤色レイヤ画像のいずれかと，暗号画像に構成された赤色暗号画像（暗号画像に構成された全ての画素のうち赤色に関する赤色ビット情報からなる画像）とを重ね合わせ，複数の緑色レイヤ画像のいずれかと，暗号画像に構成された緑色暗号画像（暗号画像に構成された全ての画素のうち緑色に関する緑色ビット情報からなる画像）とを重ね合わせ，上記複数の青色レイヤ画像のいずれかと，上記暗号画像に構成された青色暗号画像（暗号画像に構成された全ての画素のうち青色に関する青色ビット情報からなる画像）とを重ね合わせるように構成してもよい。かかる構成により，原画像がＲＧＢからなるカラー画像の場合であっても暗号画像を重ね合わせることができる。
【００２１】
上記認証情報生成部は，ハッシュ値を少なくとも暗号化することによって，認証情報を生成するように構成してもよい。なお，かかる暗号化で用いられる暗号化鍵は非対称鍵又は対称鍵どちらでもよく，また所定間隔で変更するワンタイムパスワード等と組み合わせてもよい。
【００２２】
上記課題を解決するために，本発明の別の観点によれば，画像検出装置が提供される。上記画像検出装置は，原画像を基にして生成された認証情報から当該認証情報の機密を保持するために暗号画像に変換され，その暗号画像と，該原画像とを排他的論理和演算によって重ね合わせて作成された合成画像を入力画像として入力し，その入力画像から検証に用いるための検証用暗号画像を検出する暗号画像検出部と；上記入力画像と検証用暗号画像とを排他的論理和演算によって重ね合わせ，検証用原画像を作成する原画像合成部と；検証用暗号画像を復号することで得られた認証情報を基にして，ハッシュ値を取得するハッシュ値取得部と；検証用原画像を基にして，その検証用原画像の検証用ハッシュ値を求め，前記ハッシュ値取得部により取得したハッシュ値と該検証用ハッシュ値とを比較し，一致／不一致について検証する検証部とを備えることを特徴としている。なお，暗号画像検出部は，上記合成画像が例えば出力画像ファイル等として出力された場合，その出力画像ファイルを入力した入力画像のサイズが原画像と所定率だけ大きい又は小さい場合，入力画像を縮小／拡大し，原画像と同じサイズにするようにしてもよい。また，上記画像検出装置は，例えば上記画像検証装置で作成された画像から検出するが，かかる例に限定されない。
【００２３】
本発明によれば，入力画像から検証に用いるために検証用の暗号画像（検証用暗号画像）を検出し，その検証用暗号画像と入力画像とを排他的論理和演算することによって検証用の原画像（検証用原画像）を作成する。なお，上記入力画像は，合成画像から入力されたものであって，その合成画像は，原画像と暗号画像とを排他的論理和演算によって重ね合わされて作成されている。その検証用原画像から求められる検証用ハッシュ値と検証用暗号画像を少なくとも復号することで得られるハッシュ値とを比較することで，入力画像の真正性を検証している。かかる構成により，検証用ハッシュ値とハッシュ値とが不一致であれば，その入力画像は改ざん等の不正処理が施されたと瞬時に判断することができ，例えば画面上に入力画像が改ざん等の不正処理が施された旨を伝えるメッセージ又はアイコン等を表示することができる。したがって利用者は入力画像が改ざん等されたと容易に認識することができる。
【００２４】
色ビット情報は画素単位に表示する色を１又は２以上のビットからなるビット列で表現した情報（又は，置き換えた情報，変換した情報）であり，上記原画像合成部は，入力画像を構成する全ての画素に係る各色ビット情報のビット列を最下位ビットから最上位ビットまで各々順番に並べ，当該並べられた全ての画素に係る色ビット情報のビット列をビット順位別に分解することで，上記入力画像から複数のレイヤ画像を生成し，その複数のレイヤ画像のいずれかと，上記暗号画像とを重ね合わせるように構成してもよい。
【００２５】
上記入力画像は，少なくともグレイスケールからなる画像であってもよい。なお，入力画像は，複数階調からなる画像であって，色ビット情報のビット長は，例えば８ビット，１６ビット，２４ビット，または３２ビットなどであって，１又は２以上であればかかる例に限定されない。
【００２６】
また，上記色ビット情報は画素単位に表示する色を１又は２以上のビットからなるビット列で表現した情報であり，上記原画像合成部は，入力画像を複数の画素からなる複数のブロックに分割し，当該分割されたブロックを画像変換し，当該画像変換された複数のブロックのうち直流成分係数（例えば，ＤＣ係数，Ｃ（０，０））に対応する直流成分ブロックを取得し，当該直流成分ブロックを構成する全ての画素に係る各色ビット情報のビット列を最下位ビットから最上位ビットまで各々順番に並べ，該並べられた全ての画素に係る色ビット情報のビット列をビット順位別に分解することで，入力画像から複数のブロックレイヤ画像を生成し，その複数のブロックレイヤ画像のいずれかと，暗号画像とを重ね合わせるように構成してもよい。
【００２７】
原画像合成部は，暗号画像と重ね合わせる対象のブロックレイヤ画像を埋め合わせ処理し，入力画像と略同一の大きさのレイヤ画像に拡大処理した後に，暗号画像と重ね合わせるように構成してもよい。
【００２８】
また，上記色ビット情報は，赤色を１又は２以上のビットからなるビット列で表現した赤色ビット情報と，緑色を１又は２以上のビットからなるビット列で表現した緑色ビット情報と，青色を１又は２以上のビットからなるビット列で表現した青色ビット情報とから構成され，原画像合成部は，上記並べられた全ての画素に係る赤色ビット情報，緑色ビット情報，および青色ビット情報のビット列をビット順位別に分解することで，上記入力画像から複数の赤色レイヤ画像，緑色レイヤ画像，および青色レイヤ画像を生成し，その複数の赤色レイヤ画像のいずれかと，暗号画像に構成された赤色暗号画像（暗号画像に構成された全ての画素のうち赤色に関する赤色ビット情報からなる画像）とを重ね合わせ，複数の緑色レイヤ画像のいずれかと，暗号画像に構成された緑色暗号画像（暗号画像に構成された全ての画素のうち緑色に関する緑色ビット情報からなる画像）とを重ね合わせ，上記複数の青色レイヤ画像のいずれかと，上記暗号画像に構成された青色暗号画像（暗号画像に構成された全ての画素のうち青色に関する青色ビット情報からなる画像）とを重ね合わせるように構成してもよい。かかる構成により，入力画像がＲＧＢからなるカラー画像の場合であっても暗号画像を重ね合わせることができる。
【００２９】
上記入力画像はＪＰＥＧからなる画像であり，色ビット情報は上記ブロックに構成された画素の明るさを少なくとも示すように構成してもよい。なお，原画像は，上記ＪＰＥＧに限定されることなく，例えば，原画像は，ＪＰＥＧ−ＬＳまたはＪＰＥＧ２０００などからなる画像でもよい。
【００３０】
上記色ビット情報は，複数種類の赤色に関する色を１又は２以上のビットからなるビット列で表現した赤色ビット情報（色彩と濃度を含む）と，緑色を１又は２以上のビットからなるビット列で表現した緑色ビット情報と，青色を１又は２以上のビットからなるビット列で表現した青色ビット情報とから構成されるようにしてもよい。なお，上記色ビット情報は，原画像がＪＰＥＧなどからなる画像の場合も含まれる。また色ビット情報のビット長は，例えば８ビット，１６ビット，２４ビット，または３２ビットなどであって，１又は２以上であればかかる例に限定されない。
【００３１】
上記ハッシュ値取得部は，認証情報を少なくとも復号することによって，認証情報からハッシュ値を取り出すように構成してもよい。なお，かかる復号で用いられる復号鍵は上記認証情報生成部で用いられた暗号化鍵と対応する非対称鍵又は対称鍵のどちらでもよく，また所定間隔で変更するワンタイムパスワード等と組み合わせてもよい。
【００３２】
上記課題を解決するために，本発明の別の観点によれば，画像埋め込み方法が提供される。上記画像埋め込み方法は，少なくとも文書又は画像から原画像をページ単位に作成する原画像生成ステップと；少なくともページ単位の原画像を基にして，その原画像のハッシュ値を求めることで，認証情報を生成する認証情報生成ステップと；認証情報に基づき，当該認証情報の機密を保持するために暗号画像を作成する暗号画像形成ステップと；上記原画像と暗号画像とを排他的論理和演算によって重ね合わせ，合成画像を作成する出力画像合成ステップとを含むことを特徴としている。
【００３３】
上記課題を解決するために，本発明の別の観点によれば，コンピュータをして，画像埋め込み装置として機能させるコンピュータプログラムが提供される。上記コンピュータプログラムは，少なくとも文書又は画像から原画像をページ単位に作成する原画像生成手段と；少なくともページ単位の前記原画像を基にして，その原画像のハッシュ値を求めることで，認証情報を生成する認証情報生成手段と；上記認証情報に基づき，当該認証情報の機密を保持するために暗号画像を作成する暗号画像形成手段と；上記原画像と暗号画像とを排他的論理和演算によって重ね合わせ，合成画像を作成する出力画像合成手段とを含むことを特徴としている。
【００３４】
上記課題を解決するために，本発明の別の観点によれば，画像検出方法が提供される。上記画像検出方法は，原画像を基にして生成された認証情報から当該認証情報の機密を保持するために暗号画像に変換され，その暗号画像と，上記原画像とを排他的論理和演算によって重ね合わせて作成された合成画像を入力画像として入力し，その入力画像から検証に用いるための検証用暗号画像を検出する暗号画像検出ステップと；上記入力画像と検証用暗号画像とを排他的論理和演算によって重ね合わせ，検証用原画像を作成する原画像合成ステップと；検証用暗号画像を復号することで得られた認証情報を基にして，ハッシュ値を取得するハッシュ値取得ステップと；検証用原画像を基にして，その検証用原画像の検証用ハッシュ値を求め，上記ハッシュ値取得ステップにおいて取得したハッシュ値と当該検証用ハッシュ値とを比較し，一致／不一致について検証する検証ステップとを含むことを特徴としている。
【００３５】
上記課題を解決するために，本発明の別の観点によれば，コンピュータをして，画像検出装置として機能させるコンピュータプログラムが提供される。上記コンピュータプログラムは，原画像を基にして生成された認証情報から当該認証情報の機密を保持するために暗号画像に変換され，その暗号画像と，上記原画像とを排他的論理和演算によって重ね合わせて作成された合成画像を入力画像として入力し，その入力画像から検証に用いるための検証用暗号画像を検出する暗号画像検出手段と；入力画像と検証用暗号画像とを排他的論理和演算によって重ね合わせ，検証用原画像を作成する原画像合成手段と；検証用暗号画像を復号することで得られた認証情報を基にして，ハッシュ値を取得するハッシュ値取得手段と；検証用原画像を基にして，その検証用原画像の検証用ハッシュ値を求め，上記ハッシュ値取得手段から出力されたハッシュ値と当該検証用ハッシュ値とを比較し，一致／不一致について検証する検証手段とを含むことを特徴としている。
【発明の効果】
【００３６】
以上説明したように，本発明によれば，以下に示すように優れた効果がある。
（１−１）原画像の真正性を検証することができるとともに，その検証するために必要な認証情報を原画像に基づいて作成し，作成元の原画像の画像全体に直接埋め込んでいるため認証情報を特定することができず，認証情報の破壊，改ざんなどの危険性が極めて低くて，セキュリティレベルを向上させることができる。
（１−２）原画像の所定領域に認証情報を埋め込むと予め取り決める必要が無いため，その所定領域が何らかの原因によって汚れたり，雑音が入ったりすることで，認証情報が検出不能になる等の危険性を低く抑えることができる。
（２−１）１ページ単位に画像の真正性の検証を行うため，複数ページに１つの認証情報が埋め込まれた場合の検証よりも改ざん等の不正処理の有無を確実に検出することができる。
（２−２）認証情報には，例えば，原画像の作成元である文書ファイルの作成日時に関する情報等も含まれ得るため，いわゆるｅ文書法に対応した電子画像の検証処理を行うことができる。
（２−３）作成された合成画像は，出力画像ファイル等のデータであっても，紙媒体等に印刷された印刷媒体であっても，どちらの場合でも一旦入力すれば画像の真正性を検証できるため利用者のニーズに柔軟に対応できる。
（２−４）画像の真正性の検証結果は，表示画面に表示されるため，利用者は一目で改ざん等の不正処理の有無を検出することができる。
【発明を実施するための最良の形態】
【００３７】
以下，本発明の好適な実施の形態について，添付図面を参照しながら詳細に説明する。なお，以下の説明及び添付図面において，略同一の機能及び構成を有する構成要素については，同一符号を付することにより，重複説明を省略する。
【００３８】
図１は，本実施の形態にかかる画像検証装置１００の概略的な構成を示すブロック図である。図１に示すように，画像検証装置１００には，主としてコード画像埋め込み装置１０と，コード画像検出装置３０とが備わる。
【００３９】
図１に示すコード画像埋め込み装置１０は，原画像を作成し，その原画像から改ざん防止等のために認証情報を生成し，さらに原画像と合成するために認証情報をコード画像（暗号画像）に変換し，原画像にコード画像を埋め込んで（重ね合わせて）合成画像を作成する装置である。
【００４０】
原画像は，例えば，文書ファイルまたは画像ファイル等のディジタルデータである場合や，文字，記号，図形，もしくは静止画像またはそれらの組合せが印刷された印刷媒体をスキャンして得たものなどを例示することができるが，かかる例に限定されない。
【００４１】
また，コード画像検出装置３０は，コード画像埋め込み装置１０によって作成された合成画像からなる出力画像ファイルを入力し，その入力された合成画像からコード画像を検出し，抽出する。さらにコード画像検出装置３０は，抽出したコード画像と合成画像とを重ね合わせることで，検証用の原画像（検証用原画像）を取得する装置である。
【００４２】
なお，後程詳細に説明するが，上記合成画像は原画像とコード画像とが重ね合わさることで作成されている。その合成画像にさらに同じコード画像を重ね合わせると，元の原画像と略同一の画像になる特質を本実施の形態では利用している。
【００４３】
また，コード画像検出装置３０は，抽出したコード画像から認証情報に含まれるハッシュ値を取得し，そのハッシュ値と上記検証用原画像を基にして求められた検証するためのハッシュ値（検証用ハッシュ値）とを比較して，一致するか否かを検証する装置である。
【００４４】
（コード画像埋め込み装置１０）
ここで，図１を参照しながら，さらに具体的にコード画像埋め込み装置１０について説明する。図１に示すように，コード画像埋め込み装置１０は，文書ファイル等をもとに原画像を構成し，さらに原画像からコード画像を作成する装置である。コード画像埋め込み装置１０は，図１に示したように，原画像生成部１１と，認証情報生成部１２と，出力画像合成部１３と，出力デバイス１４と，コード画像形成部１８とから構成されている。なお，コード画像は文書ファイル等に文字以外の形式で埋め込む情報であって，原画像の真正性等を検証するための機密情報である。
【００４５】
原画像生成部１１では，文書ファイル又は画像ファイルを入力し，原画像を作成する。上記原画像は，例えば紙面に印刷する状態の画像や，パーソナルコンピュータ（パソコン）等の情報処理装置の画面に表示する状態の画像等を例示することができる。
【００４６】
具体的には，印刷された原画像中の白画素領域は何も印刷されない部分であり，黒画素領域は黒の塗料が塗布される部分である。なお，本実施の形態では，白い紙面に黒のインク（単色）で印刷を行うことを前提として説明するが，本発明はこれに限定されず，カラー（多色）で印刷を行う場合であっても，同様に本発明を適用可能である。また，上記画像ファイルは，画像処理ソフトから作成される場合，印刷媒体をスキャニングすることによって作成される場合などを例示することができる。
【００４７】
認証情報生成部１２は，上記原画像生成部１１により作成された原画像を基にして，その原画像のハッシュ値を求める。さらに求められたハッシュ値を所定の暗号鍵で暗号化する。上記暗号化されたハッシュ値は，認証情報となる。
【００４８】
なお，認証情報生成部１２によって求められるハッシュ値は，一方向性を持った関数（ハッシュ関数）で，計算された値であって，例えば，ＭＤ（Ｍｅｓｓａｇｅ  Ｄｉｇｅｓｔ）５の場合，１２８ビットからなる値であり，ＳＨＡ−１（Ｓｅｃｕｒｅ  Ｈａｓｈｉｎｇ  Ａｌｇｏｒｉｔｈｍ  １）の場合，１６０ビットからなる値であるが，かかる例に限定されない。
【００４９】
また，認証情報生成部１２によってハッシュ値を暗号化する際に用いられる暗号化鍵は，例えば，ＲＳＡ等の非対称鍵や，ＡＥＳ（Ａｄｖａｎｃｅｄ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ）等の対象鍵等の鍵を例示することができるが，かかる例に限定されない。
【００５０】
コード画像形成部１８は，認証情報生成部１２によって生成された認証情報を必要に応じてＮ元符号化（Ｎは２以上）し，符号語の各シンボルをあらかじめ用意した信号に割り当てる。信号は任意の大きさの矩形領域中にドットを配列することにより任意の方向と波長を持つ波を表現し，波の方向や波長に対してシンボルを割り当てたものである。コード画像は，これらの信号がある規則に従って画像上に配置されたものである。
【００５１】
出力画像合成部１３は，原画像とコード画像（又は，透かし画像）を重ね合わせてコード画像入りの原画像（合成画像）を作成する。なお，出力画像合成部１３は，原画像とコード画像とを排他的論理和演算（ＸＯＲ演算）によって重ね合わせているが，詳細については後述する。
【００５２】
また，出力デバイス１４は，フラッシュメモリ，フロッピディスク（登録商標）等の記録手段に合成画像をファイルとして格納する。
【００５３】
（コード画像検出装置３０）
コード画像検出装置３０は，例えば，ファイルとして格納されている文書を入力画像として取り込み，埋め込まれているコード画像や，原画像を復元し，原画像に埋め込んだ認証情報が改ざんされていないか，原画像が改ざんされていないか検証する装置である。
【００５４】
コード画像検出装置３０は，図１に示したように，入力デバイス３１と，コード画像検出部３２と，認証情報取得部３３と，原画像合成部３４と，ハッシュ値取得部３５と，検証部３６とから構成されている。
【００５５】
入力デバイス３１は，フラッシュメモリ等の記憶媒体に記憶されたデータを読み／書き可能な入力装置である。また，コード画像検出部３２は，入力画像に対してフィルタ処理を行い，埋め込まれた信号を検出する。検出された信号からシンボルを復元し，埋め込まれたコード画像（又は，透かし情報，暗号画像）を取り出す。なお，例えば装置の特性等により，コード画像埋め込み装置１０が作成した原画像と比べて画像のサイズが同程度にならない場合，予めコード画像検出部３２は，補正処理を施し，上記入力画像を原画像と略同一のサイズに拡大／縮小処理を行っても良い。
【００５６】
以上のように構成されるコード画像埋め込み装置１０及びコード画像検出装置３０の動作について説明する。まず，図１〜図１１を参照しながら，コード画像埋め込み装置１０の動作について説明する。
【００５７】
（原画像生成部１１）
文書ファイルはフォント情報やレイアウト情報を含むデータであり，ワープロソフト等で作成されるものとする。原画像生成部１１は，この文書ファイルを基に，文書が紙に印刷された状態の画像をページごとに作成する。なお，文書ファイルに限定されず，例えばＢＭＰ（ビットマップ）形式などからなる画像ファイルの場合でも良い。この原画像は白黒の二値画像であり，画像上で白い画素（値が１の画素）は背景であり，黒い画素（値が０の画素）は文字領域（インクが塗布される領域）であるものとする。
【００５８】
なお，本実施の形態にかかる原画像は白黒の二値画像の場合を例に挙げて説明するが，かかる例に限定されず，例えば，原画像は所定の階調からなるグレイスケール画像やカラー画像などの場合でもよい。
【００５９】
（認証情報生成部１２）
認証情報は原画像に基づいて作成される原画像の改ざんを検出するため等に用いられる認証データ又は電子署名データである。認証情報生成部１２では，まず原画像についてのハッシュ値を例えばハッシュ関数などを用いて計算する。
【００６０】
認証情報生成部１２は，求められた原画像のハッシュ値を，さらに所定の暗号化鍵で暗号化することで認証情報を生成する。なお，上記暗号化鍵は，セキュリティレベルを上げるためワンタイムパスワード（ＯＴＰ）など所定時間ごとに変更してもよい。
【００６１】
コード画像形成部１８では，上記認証情報生成部１２によって生成された認証情報から原画像の背景として重ね合わせるためのコード画像を作成する。なお，上記コード画像は，原画像に重ね合わせて埋め込まれると地紋などの模様で透かし等の態様であることから，透かし画像，透かし情報等のように記載する場合もある。
【００６２】
図２は，コード画像形成部１８の処理の流れを示す流れ図である。
【００６３】
まず，認証情報生成部１２によって生成された認証情報をＮ元符号に変換する（ステップＳ１０１）。Ｎは任意であるが，本実施の形態では説明を容易にするためＮ＝２とする。従って，ステップＳ１０１で生成される符号は２元符号であり，０と１のビット列で表現されるものとする。このステップＳ１０１ではデータをそのまま符号化しても良いし，データを暗号化したものを符号化しても良い。
【００６４】
次いで，符号語の各シンボルに対して透かし信号を割り当てる（ステップＳ１０２）。透かし信号とはドット（黒画素）の配列によって任意の波長と方向を持つ波を表現したものである。透かし信号については，さらに後述する。
【００６５】
さらに，符号化されたデータのビット列に対応する信号ユニットを透かし画像上に配置する（ステップＳ１０３）。
【００６６】
上記ステップＳ１０２において，符号語の各シンボルに対して割り当てる透かし信号について説明する。図３は透かし信号の一例を示す説明図である。
【００６７】
透かし信号の幅と高さをそれぞれＳｗ，Ｓｈとする。ＳｗとＳｈは異なっていても良いが，本実施の形態では説明を容易にするためＳｗ＝Ｓｈとする。長さの単位は画素数であり，図３の例ではＳｗ＝Ｓｈ＝１２である。これらの信号が紙面に印刷されたときの大きさは，コード画像（透かし画像）の解像度に依存しており，例えば透かし画像が６００ｄｐｉ（ｄｏｔ  ｐｅｒ  ｉｎｃｈ：解像度の単位であり，１インチ当たりのドット数）の画像であるとしたならば，図３の透かし信号の幅と高さは，印刷文書上で１２／６００＝０．０２（インチ）となる。
【００６８】
以下，幅と高さがＳｗ，Ｓｈの矩形を１つの信号の単位として「信号ユニット」と称する。図３（１）は，ドット間の距離が水平軸に対してａｒｃｔａｎ（３）（ａｒｃｔａｎはｔａｎの逆関数）の方向に密であり，波の伝搬方向はａｒｃｔａｎ（−１／３）である。以下，この信号ユニットをユニットＡと称する。図３（２）はドット間の距離が水平軸に対してａｒｃｔａｎ（−３）の方向に密であり，波の伝搬方向はａｒｃｔａｎ（１／３）である。以下，この信号ユニットをユニットＢと称する。
【００６９】
図４は，図３（１）の画素値の変化をａｒｃｔａｎ（１／３）の方向から見た断面図である。図４において，ドットが配列されている部分が波の最小値の腹（振幅が最大となる点）となり，ドットが配列されていない部分は波の最大値の腹となっている。
【００７０】
また，ドットが密に配列されている領域はそれぞれ１ユニットの中に２つ存在するため，この例では１ユニットあたりの周波数は２となる。波の伝播方向はドットが密に配列されている方向に垂直となるため，ユニットＡの波は水平方向に対してａｒｃｔａｎ（−１／３），ユニットＢの波はａｒｃｔａｎ（１／３）となる。なお，ａｒｃｔａｎ（ａ）の方向とａｃｒｔａｎ（ｂ）の方向が垂直のとき，ａ×ｂ＝−１である。
【００７１】
本実施の形態では，ユニットＡで表現される透かし信号にシンボル０を割り当て，ユニットＢで表現される透かし信号にシンボル１を割り当てる。また，これらをシンボルユニットと称する。
【００７２】
透かし信号には図３（１），（２）で示されるもの以外にも，例えば図５（３）〜（５）で示されるようなドット配列が考えられる。図５（３）は，ドット間の距離が水平軸に対してａｒｃｔａｎ（１／３）の方向に密であり，波の伝搬方向はａｒｃｔａｎ（−３）である。以下，この信号ユニットをユニットＣと称する。
【００７３】
図５（４）は，ドット間の距離が水平軸に対してａｒｃｔａｎ（−１／３）の方向に密であり，波の伝搬方向はａｒｃｔａｎ（３）である。以下，この信号ユニットをユニットＤと称する。図５（５）は，ドット間の距離が水平軸に対してａｒｃｔａｎ（１）の方向に密であり，波の伝搬方向はａｒｃｔａｎ（−１）である。なお，図５（５）は，ドット間の距離が水平軸に対してａｒｃｔａｎ（−１）の方向に密であり，波の伝搬方向はａｒｃｔａｎ（１）であると考えることもできる。以下，この信号ユニットをユニットＥと称する。
【００７４】
このようにして，先に割り当てた組み合わせ以外にも，シンボル０とシンボル１を割り当てるユニットの組合わせのパターンが複数考えられるため，どの透かし信号がどのシンボルに割り当てられているかを秘密にして第三者（不正者）が埋め込まれた信号を簡単に解読できないようにすることもできる。
【００７５】
さらに，図２に示したステップＳ１０２で，認証情報を４元符号で符号化した場合には，例えば，ユニットＡに符号語のシンボル０を，ユニットＢにシンボル１を，ユニットＣにシンボル２を，ユニットＤにシンボル３を割り当てることも可能である
【００７６】
図３，図５に示した透かし信号の一例においては，１ユニット中のドットの数をすべて等しくしているため，これらのユニットを隙間なく並べることにより，透かし画像の見かけの濃淡が均一となる。したがって，例えば印刷された紙面上では，単一の濃度を持つグレイ画像が背景として埋め込まれているように見える。
【００７７】
このような効果を出すために，例えば，ユニットＥを背景ユニット（シンボルが割り当てられていない信号ユニット）と定義し，これを隙間なく並べてコード画像の背景とし，シンボルユニット（ユニットＡ，ユニットＢ）をコード画像に埋め込む場合は，埋め込もうとする位置の背景ユニット（ユニットＥ）とシンボルユニット（ユニットＡ，ユニットＢ）とを入れ替える。
【００７８】
図６（１）はユニットＥを背景ユニットと定義し，これを隙間なく並べてコード画像の背景とした場合を示す説明図である。図６（２）は図６（１）の背景画像の中にユニットＡを埋め込んだ一例を示し，図６（３）は図６（１）の背景画像の中にユニットＢを埋め込んだ一例を示している。本実施の形態では，背景ユニットをコード画像の背景とする方法について説明するが，シンボルユニットのみを配置することによってコード画像を生成しても良い。
【００７９】
次いで，符号語の１シンボルをコード画像に埋め込む方法について，図７を参照しながら説明する。
【００８０】
図７は，コード画像へのシンボル埋め込み方法の一例を示す説明図である。ここでは，例として「０１０１」というビット列を埋め込む場合について説明する。
【００８１】
図７（１），（２）に示すように，同じシンボルユニットを繰り返し埋め込む。これは例えば文書中の文字が埋め込んだシンボルユニットの上に重なった場合，信号検出時に検出されなくなることを防ぐためであり，シンボルユニットの繰り返し数と配置のパターン（以下，ユニットパターンと称する。）は任意である。
【００８２】
すなわち，ユニットパターンの一例として，図７（１）のように繰り返し数を４（１つのユニットパターン中に４つのシンボルユニットが存在する）にしたり，図７（２）のように繰り返し数を２（１つのユニットパターン中に２つのシンボルユニットが存在する）にしたりすることができ，あるいは，繰り返し数を１（１つのユニットパターン中には１つのシンボルユニットだけが存在する）としてもよい。
【００８３】
また，図７（１），（２）は１つのシンボルユニットに対して１つのシンボルが与えられているが，図７（３）のようにシンボルユニットの配置パターンに対してシンボルを与えても良い。
【００８４】
１ページ分（原画像の１ページ分に相当）のコード画像の中に何ビットの情報量を埋め込むことができるかは，信号ユニットの大きさ，ユニットパターンの大きさ，原画像の大きさに依存する。原画像の水平方向と垂直方向にいくつの信号を埋め込んだかは，既知として信号検出を行っても良いし，入力装置から入力された画像の大きさと信号ユニットの大きさから逆算しても良い。
【００８５】
１ページ分のコード画像の水平方向にＰｗ個，垂直方向にＰｈ個のユニットパターンが埋め込めるとすると，画像中の任意の位置のユニットパターンをＵ（ｘ，ｙ），ｘ＝１〜Ｐｗ，ｙ＝１〜Ｐｈと表現し，Ｕ（ｘ，ｙ）を「ユニットパターン行列」と称することにする。また，１ページに埋め込むことができるビット数を「埋め込みビット数」と称する。埋め込みビット数はＰｗ×Ｐｈである。
【００８６】
図８は，認証情報をコード画像に埋め込む方法について示した流れ図である。
【００８７】
ここでは１枚（１ページ分，原画像の大きさに相当）のコード画像に，同じ情報を繰り返し埋め込む場合について説明する。同じ情報を繰り返し埋め込むことにより，コード画像と原画像を重ね合わせたときに１つのユニットパターン全体が塗りつぶされるなどして埋め込み情報が消失するような場合でも，埋め込んだ情報（認証情報）を取り出すことを可能とするためである。
【００８８】
まず，認証情報をＮ元符号に変換する（ステップＳ２０１）。図２のステップＳ１０１と同様である。以下では，符号化されたデータをデータ符号と称し，ユニットパターンの組合わせによりデータ符号を表現したものをデータ符号ユニットＤｕと称する。
【００８９】
次いで，データ符号の符号長（ここではビット数）と埋め込みビット数から，１枚の画像にデータ符号ユニットを何度繰り返し埋め込むことができるかを計算する（ステップＳ２０２）。本実施の形態ではデータ符号の符号長データをユニットパターン行列の第１行に挿入するものとする。データ符号の符号長を固定長として符号長データはコード画像には埋め込まないようにしても良い。
【００９０】
データ符号ユニットを埋め込む回数Ｄｎは，データ符号長をＣｎとして以下の式で計算される。
【００９１】
【数１】
2006222788.tif 000003
【００９２】
ここで剰余をＲｎ（Ｒｎ＝Ｃｎ−（Ｐｗ×（Ｐｈ−１）））とすると，ユニットパターン行列にはＤｎ回のデータ符号ユニットおよびデータ符号の先頭Ｒｎビット分に相当するユニットパターンを埋め込むことになる。ただし，剰余部分のＲｎビットは必ずしも埋め込まなくても良い。
【００９３】
図９の説明では，ユニットパターン行列のサイズを９×１１（１１行９列），データ符号長を１２（図中で０〜１１の番号がついたものがデータ符号の各符号語を表わす）とする。
【００９４】
次いで，ユニットパターン行列の第１行目に符号長データを埋め込む（ステップＳ２０３）。図９の例では符号長を９ビットのデータで表現して１度だけ埋め込んでいる例を説明しているが，ユニットパターン行列の幅Ｐｗが十分大きい場合，データ符号と同様に符号長データを繰り返し埋め込むこともできる。
【００９５】
さらに，ユニットパターン行列の第２行以降に，データ符号ユニットを繰り返し埋め込む（ステップＳ２０４）。図９で示すようにデータ符号のＭＳＢ（ｍｏｓｔ  ｓｉｇｎｉｆｉｃａｎｔ  ｂｉｔ）またはＬＳＢ（ｌｅａｓｔ  ｓｉｇｎｉｆｉｃａｎｔ  ｂｉｔ）から順に行方向に埋め込む。図９の例ではデータ符号ユニットを７回，およびデータ符号の先頭６ビットを埋め込んでいる例を示している。
【００９６】
データの埋め込み方法は図９のように行方向に連続になるように埋め込んでも良いし，列方向に連続になるように埋め込んでも良い。
【００９７】
以上，コード画像形成部１８における，コード画像の形成について説明した。次いで，コード画像埋め込み装置１０の出力画像合成部１３について説明する。
【００９８】
（出力画像合成部１３）
出力画像合成部１３では，原画像生成部１１で作成した原画像と，コード画像形成部１８で作成したコード画像を重ね合わせる。コード画像入り原画像（合成画像）の各画素の値は，原画像とコード画像の対応する画素値の排他的論理和演算（ＸＯＲ）によって計算する。すなわち，原画像とコード画像共に１（白）であれば合成画像の画素値は０（黒）となり，原画像とコード画像共に０（黒）であれば合成画像の画素値は０（白）となり，原画像とコード画像のいずれかが１（白）であれば合成画像の画素値は１（白）となる。
【００９９】
図１０は，コード画像入り原画像（合成画像）の一例を示す説明図である。図１１は，図１０の一部を拡大して示した説明図である。ここで，ユニットパターンは図７（１）のパターンを用いている。合成画像は，出力デバイス１４によって出力画像ファイルまたは印刷媒体として出力される。
【０１００】
なお，本実施の形態にかかる出力画像合成部１３では，原画像が白又は黒からなる二値画像の場合を例に挙げて説明したが，本実施の形態に係る出力画像合成部１３では，かかる例に限定されず，所定の階調からなるグレイスケール画像の場合や，所定の階調からなるカラー画像の場合，もしくはＪＰＥＧ方式によるグレイスケール画像またはカラー画像等の場合でも実施可能である。以下，上記原画像がグレイスケール画像等の場合，出力画像合成部１３による原画像とコード画像の重ね合わせ処理について説明する。
【０１０１】
図１２を参照しながら，原画像がグレイスケール画像である場合の出力画像合成部１３による重ね合わせ処理について説明する。図１２は，本実施の形態にかかる原画像がグレイスケール画像の場合の重ね合わせ処理の概略を示す説明図である。
【０１０２】
図１２（ａ）に示すように，例えば，１００×２００画素など，本実施の形態に係る原画像は複数の画素から構成されている。また，原画像は，例えば，８階調，１６階調，または２５６階調などのグレイスケール画像である。なお，原画像の階調は，１又は２以上の階調であればいかなる階調の場合でも実施可能である。
【０１０３】
出力画像合成部１３は，上記図１２（ａ）に示すように原画像に構成される画素の色ビット情報を１画素ごとに取得する。なお，色ビット情報は，例えば８ビットなど，画素に表現される色を１又は２ビット以上のビット列で置き換えた情報である。画素に表現される色は，例えば，階調や明るさ（濃度値）などから定義され，それらの程度を数値化することで表現する色が決定される。上記色ビット情報には，上記階調または明るさを示す数値等の情報が含まれている。
【０１０４】
例えば，図１２（ａ）に示すグレイ色でハッチングされた１画素を取得すると，出力画像合成部１３は，図１２（ｂ）に示す矢印の個所にＺ軸方向に色ビット情報に含まれるビットを並べていく。
【０１０５】
なお，色ビット情報のビット列のうち，特に最上位桁に対応するビットのことを最上位ビットと，最下位桁に対応するビットのことを最下位ビットと，本明細書では，記載する場合がある。
【０１０６】
色ビット情報のビット列が並べられると，その１ビットが１つのレイヤ画像の階層に対応するようになっている。図１２（ｂ）に示すように，矢印の個所に並べられた各ビット（０，１，１，０，…，１，０）が，各レイヤ画像（（１），（２），（３），（４），…，（ｎ−１），（ｎ））と対応するようになっている。なお，ｎは自然数であってビット列の長さと同じとする。
【０１０７】
また，図１２（ｂ）に示すレイヤ画像のうちレイヤ画像（１）を特に，最上位レイヤ画像と，レイヤ画像（ｎ）を最下位レイヤ画像と，本明細書では記載する場合がある。なお，上記最上位レイヤ画像は，上記色ビット情報の最上位ビットに対応する（又は，最上位ビットを含む）レイヤ画像であって，同じく最下位レイヤ画像は，上記最下位ビットに対応する（又は，最下位ビットを含む）レイヤ画像である。
【０１０８】
出力画像合成部１３は，図１２（ａ）に示すグレイ色のハッチングされた画素と同様に，Ｘ軸方向に隣の画素を取得し，ビット列を図１２（ｂ）に示すように隣接するようにＺ軸方向に並べていく。それを原画像に構成される画素全てについて処理を行う。
【０１０９】
上記出力画像合成部１３が原画像に構成される画素全てについてビットをＺ軸方向に並べる処理を行うため，レイヤ画像と原画像との大きさは実質的に同一となる。
【０１１０】
全画素について出力画像合成部１３による色ビット情報のビット列がＺ軸方向に並べられると，出力画像合成部１３は，図１２（ｃ）に示すように，コード画像形成部１８によって作成されたコード画像と複数のレイヤ画像のうち最下位レイヤ画像（レイヤ画像（ｎ））とを排他的論理和演算（ＸＯＲ演算）によって重ね合わせ，コード画像入りレイヤ画像（ｎ）を作成する。
【０１１１】
コード画像入りレイヤ画像（ｎ）を作成すると出力画像合成部１３は，Ｚ軸方向にビットを並べた逆の処理，つまり図１２（ｂ）→図１２（ａ）の順に処理を行うことで，各画素の色ビット情報に戻すと合成画像を作成することができる。
【０１１２】
かかる最下位レイヤ画像とコード画像とを排他的論理和演算することによって，コード画像を重ね合わせることによる合成画像の画質等に対する影響度を低く抑えることができ，外見上，何らコード画像を埋め込んでいない状態の原画像と遜色なくすることができる。
【０１１３】
なお，従来では認証情報の埋め込み位置を予め決めずに，原画像の画像自体に認証情報を埋め込むことで認証情報だけを切り出して改ざんすることが困難な埋め込み技術が強く望まれていたが，原画像の画像データ自体に手を加えてしまうため，原画像の画質等に影響を及ぼすことが懸念されていたため実現されなかった。
【０１１４】
なお，最下位レイヤ画像にコード画像を埋め込む処理に限定されず，他のレイヤ画像，例えば，レイヤ画像（ｎ−１）などにコード画像を埋め込むことは実施可能である。
【０１１５】
また，本実施の形態に係る出力画像合成部１３では，原画像がグレイスケール画像の他にも，例えば２５６階調等のカラー画像の場合でも，１画素を赤色（Ｒ），緑色（Ｇ），青色（Ｂ）ごとにグレイスケール画像の場合とほぼ同様な処理を行えば，重ね合わせ処理を行うことが可能である。
【０１１６】
次に，図１３を参照しながら，原画像がＪＰＥＧ方式の場合の出力画像合成部１３による重ね合わせ処理について説明する。図１３は，本実施の形態にかかる原画像がＪＰＥＧ方式である場合の重ね合わせ処理の概略を示す説明図である。
【０１１７】
図１３（ａ）に示すように，原画像がグレイスケール画像の場合と異なり，まず出力画像合成部１３は，原画像を１画素単位ではなく，８×８画素からなるブロック単位に分割し，ＤＣＴ変換を行う。なお，図１３（ａ）に示すように，８×８画素（６４画素）からなる分割され，ＤＣＴ変換（離散コサイン変換）された１つのブロックを基底画像と記載する。なお，本実施の形態では，画像変換として，ブロックごとにＤＣＴ変換を行うが，例えば，画像変換は，ＤＦＴ（離散フーリエ変換），ＷＨＴ（アダマール変換），またはＫＬＴ（カルーネンレーブ変換）など，直交変換であればかかる例に限定されずいかなる場合でも実施可能である。
【０１１８】
また，本実施の形態にかかる出力画像合成部１３は，８×８画素からなるブロック単位に原画像を分割する場合を例に挙げて説明するが，かかる例に限定されない。例えば，出力画像合成部１３は，１６×１６画素からなるブロック単位に原画像を分割する場合などでも実施可能である。
【０１１９】
次に，出力画像合成部１３は，ＤＣＴ変換後の基底画像のうち，変換結果として得られる６４個の変換係数のうち直流成分係数（ＤＣ係数，Ｃ（０，０））に対応する直流成分サブブロック（１画素）を取得する。この直流成分サブブロックの画素値は，かかる６４画素からなる基底画像の明るさの平均等を示している。
【０１２０】
出力画像合成部１３は，上記図１３（ａ）に示すように直流成分サブブロックの色ビット情報を取得する。例えば，図１３（ａ）に示すグレイ色でハッチングされた直流成分サブブロックを出力画像合成部１３が取得すると，出力画像合成部１３は，図１３（ｂ）に示す矢印の個所にＺ軸方向に色ビット情報からなるビット列を並べていく。
【０１２１】
直流成分サブブロックのビット列が並べられると，その１ビットが１つのブロックレイヤ画像の階層に対応するようになっている。図１３（ｂ）に示すように，矢印の個所に並べられた各ビット（０，１，０，１，…，０，０）が，各ブロックレイヤ画像（（１），（２），（３），（４），…，（ｍ−１），（ｍ））と対応するようになっている。なお，ｍは自然数であって直流成分サブブロックのビット列の長さと同じである。
【０１２２】
また，図１３（ｂ）に示すブロックレイヤ画像のうちブロックレイヤ画像（１）を特に，最上位ブロックレイヤ画像と，ブロックレイヤ画像（ｍ）を最下位ブロックレイヤ画像と，本明細書では記載する場合がある。なお，上記最上位ブロックレイヤ画像は，上記直流成分サブブロックのビット列の最上位ビットに対応する（又は，最上位ビットを含む）ブロックレイヤ画像であって，同じく最下位ブロックレイヤ画像は，上記最下位ビットに対応する（又は，最下位ビットを含む）ブロックレイヤ画像である。
【０１２３】
出力画像合成部１３は，図１３（ａ）に示す原画像のうち左上から順に８×８画素のブロックを分割し，ＤＣＴ変換し，直流成分サブブロックのビット列を図１３（ｂ）に示すようにＺ軸方向に並べていく。それを原画像に構成される８×８画素のブロック全てについて処理を行う。
【０１２４】
上記出力画像合成部１３は，原画像において分割されたブロックのうち直流成分サブブロックのビット列だけをＺ軸方向に並べるため，ブロックレイヤ画像と原画像との大きさは異なり，１／６４だけブロックレイヤ画像のほうが小さい。このため，コード画像形成部１８はブロックレイヤ画像と同じサイズでコード画像を作成する。
【０１２５】
出力画像合成部１３は，図１３（ｄ）に示すように，コード画像形成部１８によって作成されたコード画像とブロックレイヤ画像（ｍ）とを排他的論理和演算（ＸＯＲ演算）によって重ね合わせ，コード画像入りブロックレイヤ画像（ｍ）を作成する。
【０１２６】
次に，出力画像合成部１３は，各ブロックレイヤ画像について，Ｚ軸方向にビットを並べた逆の処理，つまり図１３（ｂ）→図１３（ａ）の順に処理を行うことで，各ブロックの各直流成分サブブロックのビット列に戻し，さらに量子化，エントロピー符号化等を順に行うと，ＪＰＥＧ方式の合成画像を作成することができる。
【０１２７】
かかるブロックレイヤ画像とコード画像とを排他的論理和演算することによって，コード画像を重ね合わせることによるＪＰＥＧ方式の合成画像の画質等に対する影響度を低く抑えることができる。
【０１２８】
なお，最下位ブロックレイヤ画像にコード画像を埋め込む処理に限定されず，他のレイヤ画像，例えば，ブロックレイヤ画像（ｍ−１）などにコード画像を埋め込むことは実施可能である。
【０１２９】
また，本実施の形態に係る出力画像合成部１３では，原画像がＪＰＥＧ方式のグレイスケール画像の場合を例に挙げて説明したが，かかる例に限定されず，例えば原画像が，ＪＰＧＥ方式のカラー画像の場合でも実施可能である。
【０１３０】
以上，コード画像埋め込み装置１０の動作について説明した。かかるコード画像埋め込み装置１０による原画像にコード画像を重ね合わせることによって，例えば，以下に示す効果がある。
（１）原画像の真正性を検証することができるとともに，その検証するために必要な認証情報を原画像に基づいて作成し，作成元の原画像の画像全体に直接埋め込んでいるため認証情報を特定することができず，認証情報の破壊，改ざんなどの危険性が極めて低くて，セキュリティレベルを向上させることができる。
（２）原画像の所定領域に認証情報を埋め込むと予め取り決める必要が無いため，その所定領域が何らかの原因によって汚れたり，雑音が入ったりすることで，認証情報が検出不能になる等の危険性を低く抑えることができる。
【０１３１】
次いで，図１，及び，図１４〜図２２を参照しながら，コード画像検出装置３０の動作について説明する。
【０１３２】
（コード画像検出部３２）
図１４は，コード画像検出部３２の処理の流れを示す流れ図である。
【０１３３】
まず，フラッシュメモリ等の記憶手段に格納された出力画像ファイルを計算機のメモリ等に入力する（ステップＳ３０１）。この画像を入力画像と称する。以下では，二値画像又は２５６階調のグレイ画像等として説明する。入力画像が直流成分にコード画像入りブロックレイヤ画像をもつＪＰＥＧ画像である場合は，そのコード画像入りブロックレイヤ画像につき同様の処理を行う。
【０１３４】
次いで，入力画像の大きさと信号ユニットの大きさから，ユニットパターンがいくつ埋め込まれているかを計算する（ステップＳ３０２）。例えば入力画像の大きさがＷ（幅）×Ｈ（高さ）であるとして，信号ユニットの大きさをＳｗ×Ｓｈ，ユニットパターンはＵｗ×Ｕｈ個のユニットから構成されるとすると，入力画像中に埋め込まれているユニットパターンの数（Ｎ＝Ｐｗ×Ｐｈ）は以下のように計算される。
【０１３５】
【数２】
2006222788.tif 000004
【０１３６】
ただし，コード画像埋め込み装置１０とコード画像検出装置３０で解像度が異なる場合には，それらの解像度の比によって入力画像中の信号ユニットの大きさを正規化した後，上記の計算を行う。
【０１３７】
次いで，ステップＳ３０２で計算したユニットパターン数をもとに入力画像に対してユニットパターンの区切り位置を設定する（ステップＳ３０３）。図１５は入力画像（図１５（１））と，ユニットパターンの区切り位置を設定した後の入力画像（図１５（２））の一例を示している。
【０１３８】
次いで，ユニットパターンの区切りごとにシンボルユニットの検出を行い，ユニットパターン行列を復元する（ステップＳ３０４）。以下に，信号検出の詳細を説明する。
【０１３９】
まず，入力画像をグレイスケール画像に変換する。図１６は，入力画像中における，図３（１）に示したユニットＡに対応する領域の一例を示した説明図である。図３では信号ユニットは二値画像であるが，ここでは多値画像となっている。近傍画素を含めた平均の濃度等に変換することで，図１６のようにドットの周囲が白と黒の中間色になる。したがって図１６を波の伝播方向と平行な方向から見た断面図は図１７のようになる。図４が矩形波であるのに対し，図１７は滑らかな波となる。
【０１４０】
以下では入力画像から信号ユニットを検出するために，波の周波数と方向，および影響範囲を同時に定義できる二次元ウェーブレットフィルタを用いる。以下では，二次元ウェーブレットフィルタの一つであるガボールフィルタを用いる例を示すが，ガボールフィルタと同様な性質を持つフィルタであれば，必ずしもガボールフィルタである必要はなく，さらには信号ユニットと同じドットパターンを持つテンプレートを定義してパターンマッチングを行うなどの方法でも良い。
【０１４１】
以下にガボールフィルタＧ（ｘ，ｙ），ｘ＝０〜ｇｗ−１，ｙ＝０〜ｇｈ−１を示す。ｇｗ，ｇｈはフィルタのサイズであり，ここでは上記コード画像埋め込み装置１０で埋め込んだ信号ユニットと同じ大きさである。
【０１４２】
【数３】
2006222788.tif 000005
【０１４３】
信号検出にはコード画像に埋め込んだシンボルユニットと周波数，波の方向，および大きさが等しいガボールフィルタを，埋め込んだ信号ユニットの種類と同じ数だけ用意する。ここでは図３のユニットＡとユニットＢに対応するガボールフィルタをフィルタＡ，フィルタＢと称する。
【０１４４】
入力画像中の任意の位置でのフィルタ出力値はフィルタと画像間のコンボリューションにより計算する。ガボールフィルタの場合は実数フィルタと虚数フィルタ（虚数フィルタは実数フィルタと半波長分位相がずれたフィルタ）が存在するため，それらの２乗平均値をフィルタ出力値とする。例えば，フィルタＡの実数フィルタと画像間のコンボリューションがＲｃ，虚数フィルタとのコンボリューションがＩｃであったとすると，出力値Ｆ（Ａ）は以下の式で計算する。
【０１４５】
【数４】
2006222788.tif 000006
【０１４６】
図１８は，ステップＳ３０３によって区切られたユニットパターンＵ（ｘ，ｙ）中に埋め込まれているシンボルユニットがユニットＡであるかユニットＢであるかを判定する方法について説明する説明図である。
【０１４７】
ユニットパターンＵ（ｘ，ｙ）に対するシンボル判定ステップを以下のように行う。
（１）フィルタＡの位置を移動しながら，ユニットパターンＵ（ｘ，ｙ）中のすべての位置についてＦ（Ａ）を計算した結果の最大値をユニットパターンＵ（ｘ，ｙ）に対するフィルタＡの出力値とし，これをＦｕ（Ａ，ｘ，ｙ）とする。
（２）ユニットパターンＵ（ｘ，ｙ）に対するフィルタＢの出力値を（１）と同様に計算し，これをＦｕ（Ｂ，ｘ，ｙ）とする。
（３）Ｆｕ（Ａ，ｘ，ｙ）とＦｕ（Ｂ，ｘ，ｙ）を比較し，Ｆｕ（Ａ，ｘ，ｙ）≧Ｆｕ（Ｂ，ｘ，ｙ）であればユニットパターンＵ（ｘ，ｙ）に埋め込まれているシンボルユニットはユニットＡであると判定し，Ｆｕ（Ａ，ｘ，ｙ）＜Ｆｕ（Ｂ，ｘ，ｙ）であればユニットパターンＵ（ｘ，ｙ）に埋め込まれているシンボルユニットはユニットＢであると判定する。
【０１４８】
（１），（２）において，フィルタを移動するステップ幅は任意であり，ユニットパターン上の代表的な位置での出力値のみを計算してもよい。また，（３）でＦｕ（Ａ，ｘ，ｙ）とＦｕ（Ｂ，ｘ，ｙ）の差の絶対値があらかじめ定めておいた閾値以下であった場合には判定不能としてもよい。
【０１４９】
また（１）において，フィルタをずらしながらコンボリューションを計算する過程で，Ｆ（Ａ）の最大値があらかじめ定めた閾値を超えた場合に，ただちにＵ（ｘ，ｙ）に埋め込まれているシンボルユニットはユニットＡであると判定して処理を中止しても良い。（２）においても同様に，Ｆ（Ｂ）の最大値があらかじめ定めた閾値を超えた場合に，ただちにＵ（ｘ，ｙ）に埋め込まれているシンボルユニットはユニットＢであると判定しても良い。
【０１５０】
以上，信号検出（ステップＳ３０４）の詳細について説明した。再び，図１４の流れ図に戻り，以降のステップＳ３０５について説明する。ステップＳ３０５では，ユニットパターン行列のシンボルを連結してデータ符号を再構成し，元の情報を復元する。
【０１５１】
図１９は情報復元の一例を示す説明図である。情報復元のステップは以下の通りである。
（１）各ユニットパターンに埋め込まれているシンボルを検出する（図１９  Ｓ１）。
（２）シンボルを連結してデータ符号を復元する（図１９  Ｓ２）。
（３）データ符号を復号して埋め込まれた情報（認証情報）を取り出す（図１９  Ｓ３）。
【０１５２】
図２０〜図２２はデータ符号の復元方法の一例を示す説明図である。復元方法は基本的に図８の逆の処理となる。
【０１５３】
まず，ユニットパターン行列の第１行から符号長データ部分を取り出して，埋め込まれたデータ符号の符号長を得る（ステップＳ４０１）。
【０１５４】
次いで，ユニットパターン行列のサイズとＳ４０１で得たデータ符号の符号長をもとに，データ符号ユニットを埋め込んだ回数Ｄｎおよび剰余Ｒｎを計算する（ステップＳ４０２）。
【０１５５】
次いで，ユニットパターン行列の２行目以降からステップＳ２０３と逆の方法でデータ符号ユニットを取り出す（ステップＳ４０３）。図２１の例ではＵ（１，２）（２行１列）から順に１２個のパターンユニットごとに分解する（Ｕ（１，２）〜Ｕ（３，３），Ｕ（４，３）〜Ｕ（６，４），・・・）。Ｄｎ＝７，Ｒｎ＝６であるため，１２個のパターンユニット（データ符号ユニット）は７回取り出され，剰余として６個（データ符号ユニットの上位６個に相当する）のユニットパターン（Ｕ（４，１１）〜Ｕ（９，１１））が取り出される。
【０１５６】
次いで，ステップＳ４０３で取り出したデータ符号ユニットに対してビット確信度演算を行うことにより，埋め込んだデータ符号を再構成する（ステップＳ４０４）。以下，ビット確信度演算について説明する。
【０１５７】
図２２のようにユニットパターン行列の２行１列目から最初に取り出されたデ−外符号ユニットをＤｕ（１，１）〜Ｄｕ（１２，１）とし，順次Ｄｕ（１，２）〜Ｄｕ（１２，２），・・・，と表記する。また，剰余部分はＤｕ（１，８）〜Ｄｕ（６，８）とする。ビット確信度演算は各データ符号ユニットの要素ごとに多数決を取るなどして，データ符号の各シンボルの値を決定することである。これにより，文字領域との重なりや紙面の汚れなどが原因で，任意のデータ符号ユニット中の任意のユニットから正しく信号検出を行えなかった場合（ビット反転エラーなど）でも，最終的に正しくデータ符号を復元することができる。
【０１５８】
具体的には例えばデータ符号の１ビット目は，Ｄｕ（１，１），Ｄｕ（１，２），・・・，Ｄｕ（１，８）の信号検出結果が１である方が多い場合には１と判定し，０である方が多い場合には０と判定する。同様にデータ符号の２ビット目はＤｕ（２，１），Ｄｕ（２，２），・・・，Ｄｕ（２，８）の信号検出結果による多数決によって判定し，データ符号の１２ビット目はＤｕ（１２，１），Ｄｕ（１２，２），・・・，Ｄｕ（１２，７）（Ｄｕ（１２，８）は存在しないためＤｕ（１２，７）までとなる）の信号検出結果による多数決によって判定する。
【０１５９】
ビット確信度演算は，図１８の信号検出フィルタの出力値を加算することによっても行うこともできる。これは，例えば図３（１）のユニットＡに０のシンボルが割り当てられ，図３（２）のユニットＢに１のシンボルが割り当てられているものとし，Ｄｕ（ｍ，ｎ）に対するフィルタＡによる出力値の最大値をＤｆ（Ａ，ｍ，ｎ），Ｄｕ（ｍ，ｎ）に対するフィルタＢによる出力値の最大値をＤｆ（Ｂ，ｍ，ｎ）とすると，データ符号のＭビット目は，
【０１６０】
【数５】
2006222788.tif 000007
【０１６１】
の場合は１と判定し，それ以外の場合は０と判定する。ただし，Ｎ＜Ｒｎの場合はＤｆの加算はｎ＝１〜Ｒｎ＋１までとなる。
【０１６２】
ここではデータ符号を繰り返し埋め込む場合について説明したが，データを符号化する際に誤り訂正符号などを用いることにより，データ符号ユニットの繰り返しを行わないような方法も実現できる。
【０１６３】
以上から，コード画像検出部３２は，入力画像から検証用のコード画像（検証用コード画像又は検証用暗号画像）を取得し，認証情報に復号することができる。なお，取得された認証情報は，認証情報取得部３３に送信される。
【０１６４】
次に，認証情報取得部３３は，認証情報を上記コード画像形成部１８において説明したのとほぼ同様に検証用のコード画像（検証用コード画像）に変換するとともに，当該認証情報をハッシュ値取得部３５に伝送する。
【０１６５】
ハッシュ値取得部３５は，上記認証情報を認証情報取得部３３から受け取るとコード画像埋め込み装置１０に備わる認証情報生成部１２が用いた暗号鍵に対応する復号鍵で当該認証情報を復号し，ハッシュ値を取り出す。
【０１６６】
原画像合成部３４は，認証情報取得部３３から検証用コード画像を受け取り，コード画像検出部３２から入力画像を受け取ると，上記入力画像と上記検証用コード画像とを再び重ね合わせ検証用原画像を出力する。
【０１６７】
なお，原画像合成部３４による重ね合わせ処理は，上記説明の出力画像合成部１３による重ね合わせ処理と実質的に同一であるため詳細な説明は省略する。
【０１６８】
また，上記検証用原画像は，何ら改ざん等の不正処理が画像自体に施されていなければ，上記コード画像埋め込み装置１０で作成された原画像とほぼ同一のものである。したがって，後程説明するが，検証用原画像と原画像とが異なっていた場合，検証部３６によって改ざんされたと判断される。
【０１６９】
以上，出力画像合成部１３による重ね合わせ処理と，原画像合成部３４による重ね合わせ処理によって，原画像とコード画像との関係は，以下の式で示すことができる。
【０１７０】
【数６】
2006222788.tif 000008
【０１７１】
上記式６が成り立つ関係をより具体的に示すために，以下，図２３を参照しながら，説明する。なお，図２３は，本実施の形態にかかる原画像とコード画像との関係を概略的に示す説明図である。また，図２３に示す原画像は，二値画像である場合を例に挙げて説明するが，例えば，グレイスケール画像，フルカラー画像などの原画像である場合でも同様である。
【０１７２】
まず，図２３（ａ）に示すように，原画像の画素値が０（黒）であって，コード画像も０（黒）である場合，出力画像合成部１３によって重ね合わされて作成される合成画像の画素値も０（黒）である。
【０１７３】
さらに，図２３（ａ）に示すように，先程の合成画像の画素値０（黒）と先程のコード画像の画素値０（黒）とから，原画像合成部３４によって再び重ね合わされた検証用の原画像（検証用原画像）の画素値も０（黒）となり元の原画像の画素値０（黒）と一致する。
【０１７４】
次に，図２３（ｂ）に示すように，原画像の画素値が１（白）であって，コード画像が０（黒）である場合，出力画像合成部１３によって重ね合わされて作成される合成画像の画素値は１（白）である。
【０１７５】
さらに，図２３（ｂ）に示すように，先程の合成画像の画素値１（白）と先程のコード画像の画素値０（黒）とから，原画像合成部３４によって再び重ね合わされた検証用原画像の画素値は１（白）となり元の原画像の画素値１（白）と一致する。
【０１７６】
次いで，図２３（ｃ）に示すように，原画像の画素値が０（黒）であって，コード画像が１（白）である場合，出力画像合成部１３によって重ね合わされて作成される合成画像の画素値は１（白）である。
【０１７７】
さらに，図２３（ｃ）に示すように，先程の合成画像の画素値１（白）と先程のコード画像の画素値１（白）とから，原画像合成部３４によって再び重ね合わされた検証用原画像の画素値は０（黒）となり元の原画像の画素値０（黒）と一致する。
【０１７８】
さいごに，図２３（ｄ）に示すように，原画像の画素値が１（白）であって，コード画像が１（白）である場合，出力画像合成部１３によって重ね合わされて作成される合成画像の画素値は０（黒）である。
【０１７９】
さらに，図２３（ｄ）に示すように，先程の合成画像の画素値０（黒）と先程のコード画像の画素値１（白）とから，原画像合成部３４によって再び重ね合わされた検証用原画像の画素値は１（白）となり元の原画像の画素値１（白）と一致する。
【０１８０】
したがって，原画像の画素値（白又は黒）とコード画像の画素値（白又は黒）との組合せ全てについて，原画像にコード画像を排他的論理和演算で２回重ね合わせ処理を実行すると，理論上では，元の原画像に戻るのが分かる。
【０１８１】
次に，検証部３６では，原画像合成部３４によって重ね合わされて出力された検証用原画像について検証用ハッシュ値を求める。なお，検証用ハッシュ値は，認証情報生成部１２で既に説明した通りであるため詳細な説明は省略する。
【０１８２】
検証用ハッシュ値を計算すると，検証部３６は，ハッシュ値取得部３５から比較対象となるハッシュ値を受け取ると，双方の検証用ハッシュ値とハッシュ値が一致するか否かを検証する。
【０１８３】
上記双方の値が異なれば，検証部３６は，入力画像（合成画像）が改ざんされたと判断し，コード画像検出装置３０に備わる液晶ディスプレイ等の表示画面にその旨を表示する。また上記双方の値が一致した場合，検証部３６は，入力画像（合成画像）には真正性がある旨を画面に表示する。
【０１８４】
以上で，コード画像検出装置３０についての説明を終了する。なお，コード画像検出装置３０には，以下の優れた効果がある。
（１）１ページ単位に画像の真正性の検証を行うため，複数ページに１つの認証情報が埋め込まれた場合の検証よりも改ざん等の不正処理の有無を確実に検出することができる。
（２）認証情報には，例えば，原画像の作成元である文書ファイルの作成日時に関する情報等も含まれ得るため，いわゆるｅ文書法に対応した電子画像の検証処理を行うことができる。
（３）作成された合成画像は，出力画像ファイル等のデータであっても，紙媒体等に印刷された印刷媒体であっても，どちらの場合でも一旦入力すれば画像の真正性を検証できるため利用者のニーズに柔軟に対応できる。
（４）画像の真正性の検証結果は，表示画面に表示されるため，利用者は一目で改ざん等の不正処理の有無を検出することができる。
【０１８５】
なお，上述した一連の処理は，専用のハードウェアにより行うこともできるし，ソフトウェアにより行うこともできる。一連の処理をソフトウェアによって行う場合には，そのソフトウェアを構成するプログラムが，汎用のコンピュータやマイクロコンピュータ等の情報処理装置にインストールされ，上記情報処理装置をコード画像埋め込み装置１０及び／又はコード画像検出装置３０として機能させる。
【０１８６】
プログラムは，コンピュータに内蔵されている記憶手段としてのＨＤＤ（ハードディスクドライブ）やＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ），ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ），またはフラッシュメモリ等に予め記録しておくことができる。
【０１８７】
また，本明細書において，コンピュータに各種の処理を行わせるためのプログラムを記述する処理ステップは，必ずしもフローチャートとして記載された順序に沿って時系列に処理する必要はなく，並列的あるいは個別に実行される処理（例えば，並列処理あるいはオブジェクトによる処理）も含むものである。
【０１８８】
以上，添付図面を参照しながら本発明にかかるコード画像埋め込み装置，及び，画像検証装置の好適な実施形態について説明したが，本発明はかかる例に限定されない。当業者であれば，特許請求の範囲に記載された技術的思想の範疇内において各種の変更例または修正例に想到し得ることは明らかであり，それらについても当然に本発明の技術的範囲に属するものと了解される。
【０１８９】
上記実施形態においては，原画像は文書ファイルから作成された画像（文書画像）の場合を例に挙げて説明したが，かかる例に限定されず，例えば，静止画等の画像ファイルから作成された場合等でも実施可能である。
【０１９０】
上記実施形態においては，画像検証装置１００には，コード画像埋め込み装置１０と，コード画像検出装置３０とが一体的に備わる場合を例に挙げて説明したが，かかる例に限定されず，例えば，画像検証装置１００Ａには，コード画像埋め込み装置１０のみ備え，また画像検証装置１００Ｂには，コード画像検出装置３０のみ備える場合でも，画像検証装置１００Ａのコード画像埋め込み装置１０がコード画像入り原画像（合成画像）を出力し，そのコード画像入り原画像を画像検証装置１００Ｂのコード画像検出装置３０が上記コード画像入り原画像の真正性を検証することによっても実施可能である。
【０１９１】
上記実施形態においては，画像検証装置１００は，出力画像合成部１３と原画像合成部３４が備わる場合を例に挙げて説明したが，画像を排他的論理和演算等によって重ね合わせることが可能であれば，かかる例に限定されず，例えば，画像検証装置１００のコード画像埋め込み装置１０とコード画像検出装置３０とに出力画像合成部１３が２つ備わる場合でもよい。
【産業上の利用可能性】
【０１９２】
本発明は，画像の真正性を検証することが可能な画像検証装置に適用可能である。
【図面の簡単な説明】
【０１９３】
【図１】本実施の形態にかかるコード画像埋め込み装置及びコード画像検出装置の構成を示す説明図である。
【図２】コード画像形成部１８の処理の流れを示す流れ図である。
【図３】透かし信号の一例を示す説明図であり，（１）はユニットＡを，（２）はユニットＢを示している。
【図４】図３（１）の画素値の変化をａｒｃｔａｎ（１／３）の方向から見た断面図である。
【図５】透かし信号の一例を示す説明図であり，（３）はユニットＣを，（４）はユニットＤを，（５）はユニットＥを示している。
【図６】背景画像の説明図であり，（１）はユニットＥを背景ユニットと定義し，これを隙間なく並べた透かし画像の背景とした場合を示し，（２）は（１）の背景画像の中にユニットＡを埋め込んだ一例を示し，（３）は（１）の背景画像の中にユニットＢを埋め込んだ一例を示している。
【図７】コード画像へのシンボル埋め込み方法の一例を示す説明図である。
【図８】認証情報をコード画像に埋め込む方法について示した流れ図である。
【図９】コード画像検出部３２の処理の流れを示す流れ図である。
【図１０】コード画像入り原画像の一例を示す説明図である。
【図１１】図１０の一部を拡大して示した説明図である。
【図１２】本実施の形態にかかる原画像がグレイスケール画像の場合の重ね合わせ処理の概略を示す説明図である。
【図１３】本実施の形態にかかる原画像がＪＰＥＧ方式である場合の重ね合わせ処理の概略を示す説明図である。
【図１４】コード画像検出部３２の処理の流れを示す流れ図である。
【図１５】図１５は入力画像（図１５（１））と，ユニットパターンの区切り位置を設定した後の入力画像（図１５（２））の一例を示している。
【図１６】入力画像中におけるユニットＡに対応する領域の一例を示した説明図である。
【図１７】図１６を波の伝播方向と平行な方向から見た断面図である。
【図１８】ユニットパターンＵ（ｘ，ｙ）中に埋め込まれているシンボルユニットがユニットＡであるかユニットＢであるかを判定する方法について説明する説明図である。
【図１９】情報復元の一例を示す説明図である
【図２０】データ符号の復元方法の一例を示す説明図である。
【図２１】データ符号の復元方法の一例を示す説明図である。
【図２２】データ符号の復元方法の一例を示す説明図である。
【図２３】本実施の形態にかかる原画像とコード画像との関係を概略的に示す説明図である。
【符号の説明】
【０１９４】
１０        コード画像埋め込み装置
１１        原画像生成部
１２        認証情報生成部
１３        出力画像合成部
１８        コード画像形成部
３０        コード画像検出装置
３３        認証情報取得部
３４        原画像合成部
３５        ハッシュ値取得部
３６        検証部
１００      画像検証装置
【図１】
2006222788.tif 000009
【図２】
2006222788.tif 000010
【図３】
2006222788.tif 000011
【図４】
2006222788.tif 000012
【図５】
2006222788.tif 000013
【図６】
2006222788.tif 000014
【図７】
2006222788.tif 000015
【図８】
2006222788.tif 000016
【図９】
2006222788.tif 000017
【図１０】
2006222788.tif 000018
【図１１】
2006222788.tif 000019
【図１２】
2006222788.tif 000020
【図１３】
2006222788.tif 000021
【図１４】
2006222788.tif 000022
【図１５】
2006222788.tif 000023
【図１６】
2006222788.tif 000024
【図１７】
2006222788.tif 000025
【図１８】
2006222788.tif 000026
【図１９】
2006222788.tif 000027
【図２０】
2006222788.tif 000028
【図２１】
2006222788.tif 000029
【図２２】
2006222788.tif 000030
【図２３】
2006222788.tif 000031