(57)【要約】【課題】  画像を再圧縮させた場合でも、改竄を誤検出することが無く、改竄の有無を検知出来る画像処理装置を提供することを目的とする。【解決手段】  画像処理装置は、画像を周波数変換係数に変換する周波数変換部と、周波数変換係数を第１の量子化テーブルに基づいて量子化して量子化周波数変換係数を算出する量子化部を備える。更に当該画像処理装置は、周波数変換係数または量子化周波数変換係数の正負の符号に基づいて改竄を検知する改竄検知コードを生成する生成部を備える。【選択図】  図２
2014003506.tif 000002
【特許請求の範囲】
【請求項１】
画像を周波数変換係数に変換する周波数変換部と、
前記周波数変換係数を第１の量子化テーブルに基づいて量子化して量子化周波数変換係数を算出する量子化部と、
前記周波数変換係数または前記量子化周波数変換係数の正負の符号に基づいて改竄を検知する改竄検知コードを生成する生成部と、
を備えることを特徴とする画像処理装置。
【請求項２】
前記生成部は、前記周波数変換係数または前記量子化周波数変換係数のうち、正符号の係数と、負符号の係数と、値が０の係数を区別して、前記改竄検知コードを生成することを特徴とする請求項１記載の画像処理装置。
【請求項３】
前記周波数変換係数が所定の周波数成分毎に格納される周波数変換係数ブロックまたは、前記量子化周波数変換係数が所定の周波数成分毎に格納される量子化周波数変換係数ブロックに対する前記正符号の係数の位置、前記負符号の係数の位置、または前記値が０の係数の位置を示す位置情報を算出する位置算出部を更に備え、
前記生成部は、前記位置情報に基づいて前記改竄検知コードを生成することを特徴とする請求項１または請求項２に記載の画像処理装置。
【請求項４】
画像が周波数変換係数に変換され、前記周波数変換係数が第１の量子化テーブルに基づいて量子化された量子化周波数変換係数を取得し、前記周波数変換係数または前記量子化周波数変換係数の正負の符号に基づいて改竄を検知する第１の改竄検知コードを生成する生成部と、
前記正負の符号に基づいて生成された第２の改竄検知コードを取得し、前記第１の改竄検知コードと前記第２の改竄検知コードを比較する比較部と、
を備えることを特徴とする画像処理装置。
【請求項５】
前記第２の改竄検知コードは、前記周波数変換係数または前記量子化周波数変換係数のうち、正符号の係数と、負符号の係数と、値が０の係数を区別して生成されており、
前記生成部は、前記周波数変換係数または前記量子化周波数変換係数のうち、前記正符号の係数と、前記負符号の係数と、前記値が０の係数を区別して、前記第１の改竄検知コードを生成することを特徴とする請求項４記載の画像処理装置。
【請求項６】
前記第２の改竄検知コードは、前記量子化周波数変換係数が所定の周波数成分毎に格納される量子化周波数変換係数ブロック、または前記周波数変換係数が所定の周波数成分毎に格納される周波数変換係数ブロックに対する前記正符号の係数の位置、前記負符号の係数の位置、前記値が０の係数の位置を示す位置情報を算出する位置算出部を更に備え、
前記生成部は、前記位置情報に基づいて前記第１の改竄検知コードを生成する、
ことを特徴とする請求項４または請求項５に記載の画像処理装置。
【請求項７】
画像を周波数変換係数に変換し、
前記周波数変換係数を第１の量子化テーブルに基づいて量子化して量子化周波数変換係数を算出し、
前記周波数変換係数または前記量子化周波数変換係数の正負の符号に基づいて改竄を検知する改竄検知コードを生成する、
処理をコンピュータが実行する画像処理方法。
【請求項８】
画像が周波数変換係数に変換され、前記周波数変換係数が第１の量子化テーブルに基づいて量子化された量子化周波数変換係数を取得し、
前記周波数変換係数または前記量子化周波数変換係数の正負の符号に基づいて改竄を検知する第１の改竄検知コードを生成し、
前記正負の符号に基づいて生成された第２の改竄検知コードを取得し、前記第１の改竄検知コードと前記第２の改竄検知コードを比較する、
処理をコンピュータが実行する画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像等のコンテンツに対する改竄の防止または検知を行う画像処理装置、画像処理方法に関する。
【背景技術】
【０００２】
近年、デジタル画像処理技術の発達と、デジタル撮影が可能なカメラの出現により、飛躍的にデジタル静止画像ならびにデジタル映像（以後両者を併せて画像と称する）の利用場面が増加している。撮影した画像は、従来の銀塩写真とは異なり、パソコンの画像編集ソフトウェア等を用いて容易に画像を変更することが可能である。この為、ドライブレコーダ、監視映像、ならびに工事報告書の写真等の証拠性を求められる画像では、不正な改竄が行われる可能性がある為、改竄の有無を正確に検知することが重要となる。
【０００３】
画像の改竄の有無を検知する方法として、改竄されていない原画像のハッシュ値を算出しておき、改竄を検知したい画像に対しても同様のハッシュ値を算出し、ハッシュ値の一致または不一致により画像の改竄を判定する技術が開示されている。
【０００４】
上述の開示技術は、画像の改竄検知の為の検証データとなるロバストデジタル署名データを作成し、作成したロバストデジタル署名データを用いて画像の改竄検知を行う。具体的には、始めに改竄されていない原画像から、画像が本質的に変化しない場合に変わらない特徴量を算出する。具体的な特徴量として、ＤＣＴ係数ブロック毎に量子化ＤＣＴ係数を算出する。そして、ハッシュ関数を用いて、量子化ＤＣＴ係数のハッシュ値を算出する。その後、秘密鍵を用いてデジタル署名を行い、ロバストデジタル署名データを出力する。
【０００５】
画像の改竄の有無を検知する場合は、公開鍵を用いてロバストデジタル署名データからハッシュ値を算出する。また、改竄検知対象の画像から、画像の特徴量となる量子化ＤＣＴ係数を算出し、量子化ＤＣＴ係数のハッシュ値を算出する。最後に、ロバストデジタル署名データから算出されたハッシュ値と、改竄検知を行いたい画像の量子化ＤＣＴ係数から算出されたハッシュ値を比較する。ハッシュ値が異なる場合は画像が改竄されていると判定する。
【０００６】
上述の開示技術においては、例えば、交通事故の写真を自分に有利になる様に信号の色を書き換える等、画像を修正する等の画像が改竄された場合に、画像の改竄を検出することが可能である。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特許第４４５４９０８号
【発明の概要】
【発明が解決しようとする課題】
【０００８】
ところで、画像の利用場面の増加に伴い、ストレージ機器の記憶容量の制約から、圧縮された画像を再度圧縮する再圧縮が頻繁に行われている。これは、改竄検知対象の画像は、撮影時には、画質を良くする為に、圧縮率を低く設定されている場合が多い。しかし、このような画像をストレージ機器に保存する場合は、再圧縮して画質を落としてでも記憶容量を極力低くしたいという要望がある場合が多い為である。
【０００９】
圧縮率は、量子化テーブルの係数で一意的に決定される。つまり、圧縮率が異なると量子化テーブルはそれぞれ異なるものとなる。ここで、例えば、量子化テーブルＡで量子化されたＪＰＥＧ画像等の画像に対して、量子化テーブルＢを使用して再圧縮を行った場合、再圧縮の前後で量子化テーブルが異なるため、量子化ＤＣＴ係数等の量子化周波数変換係数も再圧縮の前後で異なる。
【００１０】
そのため、再圧縮前の画像からハッシュ関数により算出した量子化周波数変換係数のハッシュ値Ａと、再圧縮後の画像からハッシュ関数により算出した量子化周波数変換係数のハッシュ値Ｂは異なる値となってしまう。この為、上述の開示技術も含めて、画像の再圧縮を行う場合は、画像の本質的な内容は変化しないにも関わらず、ハッシュ値が再圧縮の前後で異なる。この為、画像が改竄されていないのにもかかわらず、改竄されているものとして誤検出してしまうという課題がある。
【００１１】
本発明は、画像を再圧縮させた場合でも、改竄を誤検出することが無く、改竄の有無を検知出来る画像処理装置を提供することを目的とする。
【課題を解決するための手段】
【００１２】
本発明が開示する一様態における画像処理装置は、画像を周波数変換係数に変換する周波数変換部と、周波数変換係数を第１の量子化テーブルに基づいて量子化して量子化周波数変換係数を算出する量子化部を備える。更に当該画像処理装置は、周波数変換係数または量子化周波数変換係数の正負の符号に基づいて改竄を検知する改竄検知コードを生成する生成部を備える。
【００１３】
また、本発明が開示する他の様態における画像処理装置は、画像が周波数変換係数に変換され、周波数変換係数が第１の量子化テーブルに基づいて量子化された量子化周波数変換係数を取得し、周波数変換係数または量子化周波数変換係数の正負の符号に基づいて改竄を検知する第１の改竄検知コードを生成する生成部を備える。更に当該画像処理装置は、正負の符号に基づいて生成された第２の改竄検知コードを取得し、第１の改竄検知コードと第２の改竄検知コードを比較する比較部を備える。
【００１４】
なお、本発明の目的及び利点は、請求項において特に指摘されたエレメント及び組み合わせにより実現され、かつ達成されるものである。また、上記の一般的な記述及び下記の詳細な記述の何れも、例示的かつ説明的なものであり、請求項のように、本発明を制限するものではないことを理解されたい。
【発明の効果】
【００１５】
本明細書に開示される画像処理装置では、画像を再圧縮させた場合でも、改竄を誤検出すること無く、改竄の有無を検知することが可能となる。
【図面の簡単な説明】
【００１６】
【図１】一つの実施形態による画像処理装置１０の構成の一例を示す図である。
【図２】実施例１における制御部１１の一例を示す機能ブロック図である。
【図３】圧縮画像の周波数変換係数の一例となるＤＣＴ変換係数を示す。
【図４】量子化テーブルの一例となる第１の量子化テーブルを示す。
【図５】量子化周波数変換係数の一例となる量子化ＤＣＴ係数を示す。
【図６】再圧縮の為に、第１の量子化テーブルとは異なる任意の量子化テーブルで量子化した量子化周波数変換係数の一例となる量子化ＤＣＴ係数を示す。
【図７】（ａ）は、原画像の周波数変換係数を示す。（ｂ）は、（ａ）の周波数変換係数を第１の量子化テーブルを用いて変換した量子化周波数変換係数を示す。（ｃ）は、（ａ）の周波数変換係数を第１の量子化テーブル以外の任意の第１の量子化テーブルを用いて変換し、係数の一部が改竄されている量子化周波数変換係数を示す。
【図８】（ａ）は、オリジナルの原画像の量子化周波数変換係数ブロックの量子化周波数係数をラスタ順でスキャンを実施する概念図である。（ｂ）は改竄検知コードの一例を示す。
【図９】ジグザグスキャン方式の概念図を示す。
【図１０】縦方向優先スキャン方式の概念図を示す。
【図１１】実施例１における改竄防止処理の一例を示すフローチャートである。
【図１２】一つの実施形態による画像処理装置３０の構成の一例を示す図である。
【図１３】実施例２における制御部３１の一例を示す機能ブロック図である。
【図１４】実施例２における改竄検知処理の一例を示すフローチャート（その１）である。
【図１５】実施例２における改竄検知処理の一例を示すフローチャート（その２）である。
【図１６】実施例３における制御部３１の一例を示す機能ブロック図である。
【図１７】実施例３における改竄検知処理の一例を示すフローチャートである。
【図１８】実施例４における制御部１１の一例を示す機能ブロック図である。
【図１９】一つの実施形態による改竄防止機能と改竄検知機能を有する第１の画像処理システム１９００の構成図である。
【図２０】一つの実施形態による改竄防止機能と改竄検知機能を有する第２の画像処理システム２０００の構成図である。
【発明を実施するための形態】
【００１７】
以下に、一つの実施形態による画像処理装置、画像処理方法、画像処理用コンピュータプログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例は開示の技術を限定するものではない。
【００１８】
（実施例１）
図１は、一つの実施形態による画像処理装置１０の構成の一例を示す図である。図１に示す画像処理装置１０は、画像に対する改竄を防止する改竄防止装置としても機能する。図１に示す画像処理装置１０は、制御部１１、主記憶部１２、補助記憶部１３、表示制御部１４、記録媒体Ｉ／Ｆ部１６、及びカメラＩ／Ｆ部１８を有する。なお、各部は、バスを介して相互にデータ送受信可能に接続されている。
【００１９】
制御部１１は、画像処理装置１０で、各機能の制御やデータの演算、加工を行うＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）である。また、制御部１１は、主記憶部１２や補助記憶部１３に記憶されたプログラムを実行する演算装置である。制御部１１は、各記憶部からデータを受け取り、演算、加工した上で、出力部や各記憶部に出力する。
【００２０】
また、例えば、制御部１１は、補助記憶部１３に記憶される改竄防止プログラムとして機能する画像処理用プログラムを実行することで、画像に対する改竄防止機能の役割を果たす。
【００２１】
主記憶部１２は、例えばＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）などであり、制御部１１が実行する基本ソフトウェアであるＯＳやアプリケーションソフトウェアなどのプログラムやデータを記憶又は一時保存する記憶部である。また、主記憶部１２は、プログラムやデータを置くワークメモリとして機能する。
【００２２】
補助記憶部１３は、例えばＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）または、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）などであり、アプリケーションソフトウェアなどに関連するデータを記憶する記憶装置である。補助記憶部１３は、改竄防止プログラムを記憶する。
【００２３】
補助記憶部１３は、カメラＩ／Ｆ部１８から取得した画像を記憶する。また、補助記憶部１３は、記録媒体１７などから取得された画像などを記憶しておいてもよい。
【００２４】
表示制御部１４は、画像やデータなどを表示部１５に表示するため、表示制御を行う。
【００２５】
記録媒体Ｉ／Ｆ（インターフェース）部１６は、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）などのデータ伝送路を介して接続された記録媒体１７（例えば、フラッシュメモリなど）と画像処理装置１０とのインターフェースである。
【００２６】
また、記録媒体１７に、所定のプログラム（画像処理用プログラム）を格納し、この記録媒体１７に格納されたプログラムは記録媒体Ｉ／Ｆ部１６を介して画像処理装置１０にインストールされる。インストールされた所定のプログラムは、画像処理装置１０により実行可能となる。
【００２７】
なお、記録媒体１７を例えばＳＤカードとした場合は、記録媒体Ｉ／Ｆ部１６は、ＳＤカードスロットである。
【００２８】
カメラＩ／Ｆ部１８は、カメラ１９で撮像された画像を取得する。取得された画像は、主記憶部１２に記憶される。なお、カメラ１９や表示部１５は、画像処理装置１０に内蔵されてもよい。
【００２９】
また、画像処理装置１０は、図示しない通信部を有し、有線又は無線で通信を行う。通信部は、例えば、圧縮画像、公開鍵、電子署名等を外部装置等に送信する。
【００３０】
（改竄防止機能）
次に、制御部１１について詳細に説明する。図２は、実施例１における制御部１１の一例を示す機能ブロック図である。図２に示す制御部１１は、ブロック分割部２１、
周波数変換部２２、量子化部２３、可変長符号化部２４、位置算出部２５、生成部２６、署名生成部２７を有する。ここで、制御部１１は、改竄から保護したい原画像、及び固有の秘密鍵を入力データとする。
【００３１】
ブロック分割部２１は、ＪＰＥＧ（Ｊｏｉｎｔ  Ｐｈｏｔｏｇｒａｐｈｉｃ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）のように、入力された原画像を例えば、８×８ブロック等の所定のブロックに分割する。
【００３２】
周波数変換部２２は、ブロック分割部２１で分割されたそれぞれのブロックの画像に対して、例えば離散コサイン変換（ＤＣＴ（Ｄｉｓｃｒｅｔｅ  Ｃｏｓｉｎｅ  Ｔｒａｎｓｆｏｒｍ）変換）を用いて周波数変換係数を算出する。なお、実施例１においては、一例としてＤＣＴ変換を用いて説明するが、離散ウェーブレット変換や、離散アダマール変換等を用いて周波数変換係数を算出することも可能である。
【００３３】
図３には、圧縮画像の周波数変換係数の一例となるＤＣＴ変換係数を示す。図３に示される様に、垂直周波数成分と水平周波数成分が所定の周波数成分毎に分割された８×８＝６４個のＤＣＴ係数が周波数変換部２２によって算出される。周波数変換部２２は、算出した周波数変換係数を量子化部２３に出力する。
【００３４】
量子化部２３は、圧縮率に応じた量子化テーブルを用いて、量子化周波数変換係数の一例となる量子化ＤＣＴ係数を算出する。図４には、量子化テーブルの一例となる第１の量子化テーブルを示す。図４に示される様に、第１の量子化テーブルは、例えば、ユーザーの視認性に大きな影響を与え難い高次の周波数成分の係数が大きくなる様に設定される。
【００３５】
図５には、量子化周波数変換係数の一例となる量子化ＤＣＴ係数を示す。なお、図５に示される量子化ＤＣＴ係数は、図４に示す第１の量子化テーブルを用いて算出された係数である。また、一度量子化されたＤＣＴ係数は、同一の量子化テーブルを用いた量子化処理に対しては可逆であり、逆量子化変換を実行すると、図３に示す基の周波数変換係数に戻る。ここで、量子化周波数変換係数は、次式に従って算出される。
（数１）
Ｓｑｖｕ = ｒｏｕｎｄ(Ｓｖｕ / Ｑｕｖ)  
但し、Ｓｑｖｕは量子化周波数変換係数ブロックのｖ（水平周波数成分）行、ｕ（垂直周波数成分）列の量子化周波数変換係数、
Ｓｖｕは周波数変換係数ブロックのｖ行ｕ列の周波数変換係数、
Ｑｕｖは量子化テーブルのｖ行ｕ列の係数（Ｑｖｕは正の整数）、とする。
【００３６】
図５に示される通り、量子化周波数変換係数は高域の周波数成分になるにつれ、係数が０になる箇所が多くなる。ここで、本発明者により以下の事象が新たに着目された。図６には、再圧縮の為に、第１の量子化テーブルとは異なる任意の量子化テーブルで量子化した量子化周波数変換係数の一例となる量子化ＤＣＴ係数を示す。図６に示される様に、再圧縮を実行した場合は、量子化ＤＣＴ係数が異なっていることが確認される。この為、単純に量子化ＤＣＴ係数からハッシュ値を生成すると、上述の改竄の誤検知が生じてしまう。
【００３７】
ここで、量子化ＤＣＴ係数の正負の符号に着目すると、再圧縮の為、任意の量子化テーブルを用いて量子化周波数変換係数を算出しても、正符号の係数は、符号が変わらず正符号の係数か、係数の値が０となり、係数の符号が正から負に反転することはない。また、負符号の係数においても、再圧縮の為、任意の量子化テーブルを用いて量子化周波数変換係数を算出しても負符号の係数は、符号が変わらず負符号の係数か、係数の値が０となり、係数の符号が負から正に反転することはない。この事象に着目すれば、改竄検知対象となる画像の量子化ＤＣＴ係数の符号が正符号の位置に対応する原画像の量子化ＤＣＴ係数の符号が負符号に反転している場合や、改竄検知対象となる画像の量子化ＤＣＴ係数の符号が負符号の位置に対応する原画像の量子化ＤＣＴ係数の符号が正符号に反転している場合は、画像の改竄が行われたと判定することが可能となる。
【００３８】
図７（ａ）には、原画像の周波数変換係数を示す。図７（ｂ）には、図７（ａ）の周波数変換係数を第１の量子化テーブルを用いて変換した量子化周波数変換係数を示す。図７（ｃ）には、図７（ａ）の周波数変換係数を復号した原画像に対して改竄が施された画像を周波数変換し、第１の量子化テーブル以外の任意の量子化テーブルを用いて量子化した量子化周波数変換係数を示す。図７（ａ）〜図７（ｃ）に示される様に、オリジナルの原画像の量子化周波数変換係数の量子化周波数変換係数ブロックにおける正符号の係数の位置または、負符号の係数の位置に対応した、改竄検知対象の圧縮画像の量子化周波数変換係数が０以外の値であり、かつ当該係数の符号が反転している場合、画像の改竄が行われたと判定することが出来る。なお、実施例１の例示として量子化周波数変換係数について記載しているが、周波数変換係数を用いても同様の原理を適用することが出来る。図７（ａ）ならびに図７（ｃ）に示される様に、オリジナルの原画像の周波数変換係数の量子化周波数変換係数ブロックにおける正符号の係数の位置または、負符号の係数の位置に対応した、改竄検知対象の圧縮画像の量子化周波数変換係数が０以外の値であり、かつ当該係数の符号が反転している場合、画像の改竄が行われたと判定することが出来る。
【００３９】
なお、実施例１の例示として量子化ＤＣＴ係数を挙げているが、量子化アダマール変換係数、量子化ウェーブレット変換係数等の量子化周波数変換係数の場合でも同様の考え方を適用することが出来る。
【００４０】
図２の位置算出部２５は、周波数変換係数ブロックまたは量子化周波数変換係数ブロックを例えばラスタ順にスキャンする。更に、位置算出部２５は、周波数変換係数ブロックまたは量子化周波数変換係数ブロックに対する正符号の係数の位置、負符号の係数の位置、または値が０の係数の位置を示す位置情報を算出し、当該位置情報を、生成部２６に出力する。
【００４１】
生成部２６は、位置算出部２５からの位置情報を取得し、例えば、周波数変換係数または量子化周波数変換係数が正符号の係数である場合を１、周波数変換係数または量子化周波数変換係数が負符号の係数である場合を２、更に、周波数変換係数または量子化周波数変換係数の値が０である場合を０としたものを、改竄検知コードとして生成して、署名生成部２７へ出力する。このとき、生成部２６は、位置算出部２５が算出した位置情報や、周波数変換係数または量子化周波数変換係数のいずれかで改竄検知コードを生成したかという識別子を改竄検知コードに付加することも可能である。改竄検知コードに付加する位置情報は、例えば、スキャン順のシリアルＮｏや周波数変換係数ブロックまたは量子化周波数変換係数ブロックの座標値（ｖ、ｕ）であれば良い。
【００４２】
また、生成部２６は、位置算出部２５から位置情報を取得しなくとも、改竄検知コードを生成することも可能である。具体的には、生成部２６は、周波数変換係数ブロックまたは量子化周波数変換係数ブロックを例えばラスタ順にスキャンし、例えば、周波数変換係数または量子化周波数変換係数が正符号の係数である場合を１、負符号の係数である場合を２、係数の値が０である場合を０としたものを、改竄検知コードとして生成する。
【００４３】
図８（ａ）は、オリジナルの原画像の量子化周波数変換係数ブロックの量子化周波数係数をラスタ順でスキャンを実施する概念図である。図８（ｂ）は改竄検知コードの一例を示す。図８（ａ）、（ｂ）に示す様に、位置算出部２５または、生成部２６は、量子化周波数変換係数ブロックを例えばラスタ順にスキャンしたあと、量子化周波数変換係数が正符号の係数である場合を１、負符号の係数である場合を２、係数の値が０である場合を０としたものから改竄検知コードを生成する。なお、位置算出部２５が算出する位置情報を用いる場合は、必要に応じて量子化周波数変換係数ブロックの座標値（ｖ、ｕ）等の位置情報が改竄検知コードに付加される。なお、図８（ａ）、（ｂ）には量子化周波数変換係数ブロックを用いた例示を記載しているが、周波数変換係数ブロックを用いた場合にもおいても同様の処理となる為、詳細な説明は省略する。
【００４４】
ここで、図９には、ジグザグスキャン方式の概念図を示す。図１０には、縦方向優先スキャン方式の概念図を示す。図９または図１０に示す通り、上述したラスタスキャンの他、ジグザグスキャン、縦方向優先スキャン等のスキャン順で量子化周波数変換係数ブロックをスキャンすることも可能である。なお、周波数変換係数ブロックを用いた場合においても同様の処理となる為、詳細な説明は省略する。
【００４５】
図２の署名生成部２７は、生成部２６で生成された改竄検知コードを、画像処理装置１０が予め有する固有の秘密鍵を用いて、暗号化して電子署名データとして出力する。なお、固有の秘密鍵は、例えば、主記憶部１２等に記憶される。更に、固有の秘密鍵の対となる公開鍵も、例えば、主記憶部１２等に記憶される。なお、署名生成部２７は、主記憶部１２などから秘密鍵を予め取得しておく。また、署名生成部２７は、ＳＨＡ−１などの既存ハッシュ関数を用いてハッシュ値を計算し、最後に秘密鍵を用いてハッシュ値を暗号化し、電子署名データとして出力してもよい。なお、署名生成部２７は、必須の構成ではなく、必要に応じて備えられれば良い。署名生成部２７を構成要件としない場合は、生成部２６が改竄検知コードを出力する。
【００４６】
可変長符号化部２４は、量子化部２３から取得した量子化周波数変換係数を、ハフマン符号等を用いて圧縮符号化する。可変長符号化部２４は、圧縮符号化された圧縮画像を出力する。
【００４７】
画像処理装置１０は、圧縮画像、生成した電子署名データまたは改竄検知コード、固有の秘密鍵の対となる公開鍵を出力する。これらの情報は、後の改竄検知に利用される。次に、改竄防止装置として機能する画像処理装置の各処理について詳しく説明する。
【００４８】
（改竄防止処理）
次に、実施例１における改竄防止装置として機能する画像処理装置１０の動作について説明する。図１１は、実施例１における改竄防止処理の一例を示すフローチャートである。
【００４９】
図１１に示すステップＳ１２０１で、ブロック分割部２１は、改竄防止対象の原画像が入力されると、画像を例えば、８×８画素の複数のブロックに分割する。
【００５０】
ステップＳ１２０２で、周波数変換部２２は、複数のブロック数に分割されたそれぞれの画像に対して周波数変換を行い、周波数変換係数を算出する。
【００５１】
ステップＳ１２０３で、量子化部２３は、圧縮率に応じた任意の量子化テーブルを用いて、量子化周波数変換係数を算出する。
【００５２】
ステップＳ１２０４で、位置算出部２５は、周波数変換係数ブロック内における周波数変換係数または、量子化周波数変換係数ブロック内における量子化周波数変換係数の符号が正符号の係数の位置、負符号の係数の位置、または値が０の係数の位置を示す位置情報を算出する。
【００５３】
ステップＳ１２０５で、生成部２６は、位置算出部２５が算出した位置情報に基づいて、改竄検知コードを生成する。具体的には、生成部２６は、位置算出部２５から位置情報を必要に応じて取得し、例えば、周波数変換係数または量子化周波数変換係数が正符号の係数である場合を１、負符号の係数である場合を２、係数の値が０である場合を０としたものを、改竄検知コードとして生成して、署名生成部２７へ出力する。このとき、生成部２６は、位置算出部２５が算出する位置情報を改竄検知コードに付加しても良い。
【００５４】
ステップＳ１２０６で、生成部２６は、所定のブロック数に分割されたそれぞれの画像に対して改竄検知コードの生成が完了したか否かを判定する。否の場合（ステップＳ１２０６−Ｎｏ）は、ステップＳ１２０４の処理に戻り、完了した場合は（ステップＳ１２０６−Ｙｅｓ）は、ステップＳ１２０７に処理を進める。
【００５５】
ステップＳ１２０７で、可変長符号化部２４は、例えばハフマン符号等を用いて、ステップＳ１２０３で算出した量子化周波数変換係数を符号化する。
【００５６】
ステップＳ１２０８で、署名生成部２７は、ステップＳ１２０５で生成された改竄検知コードを秘密鍵で暗号化する。または、署名生成部２７はハッシュ関数を用いたハッシュをとっても良い。
【００５７】
なお、画像処理装置１０は、ステップＳ１２０５の処理とステップＳ１２０７の処理を並列に実行してもよい。あるいは、画像処理装置１０は、ステップＳ１２０７の処理を行う前にステップＳ１２０５の処理を実行してもよい。
【００５８】
以上、実施例１によれば、再圧縮を実施しても（換言すると任意の量子化テーブルを用いても）、正負の符号が反転しない周波数変換係数または量子化周波数変換係数の正負の符号に基づいて改竄検知コードを生成している為に、改竄の誤検知を防止することが可能となる。
【００５９】
（実施例２）
次に、実施例２における画像処理装置３０について説明する。画像処理装置３０は、改竄検知装置として機能する。画像処理装置３０は、実施例１の改竄防止装置１で出力した画像に対して共通の改竄検知処理を行う。
【００６０】
図１２は、画像処理装置３０の構成の一例を示す図である。図１２に示す画像処理装置３０は、画像に対する改竄を検知する改竄検知装置として機能する。図１２に示す画像処理装置３０は、制御部３１、主記憶部３２、補助記憶部３３、表示制御部３４、記録媒体Ｉ／Ｆ部３６、及び入力Ｉ／Ｆ部３８を有する。各部は、バスを介して相互にデータ送受信可能に接続されている。
【００６１】
制御部３１は、画像処理装置３０の中で、各機能の制御やデータの演算、加工を行うＣＰＵである。また、制御部３１は、主記憶部３２や補助記憶部３３に記憶されたプログラムを実行する演算装置である。制御部３１は、各記憶部からデータを受け取り、演算、加工した上で、出力部や各記憶部に出力する。
【００６２】
例えば、制御部３１は、補助記憶部３３に記憶される改竄検知プログラムを実行することで、画像に対する改竄検知機能の役割を果たす。
【００６３】
主記憶部３２は、例えばＲＡＭなどであり、制御部３１が実行する基本ソフトウェアであるＯＳやアプリケーションソフトウェアなどのプログラムやデータを記憶又は一時保存する記憶部である。また、主記憶部３２は、プログラムやデータを置くワークメモリとして機能する。
【００６４】
補助記憶部３３は、例えばＨＤＤまたは、ＳＳＤなどであり、アプリケーションソフトウェアなどに関連するデータを記憶する記憶装置である。補助記憶部３３は、改竄検知プログラムを記憶する。
【００６５】
補助記憶部３３は、例えば改竄防止装置として機能する画像処理装置１０から取得した圧縮画像や公開鍵、電子署名を記憶する。また、補助記憶部３３は、記録媒体３７などから取得された画像などを記憶しておいてもよい。
【００６６】
表示制御部３４は、画像やデータなどを表示部３５に表示するため、表示制御を行う。
【００６７】
記録媒体Ｉ／Ｆ部３６は、ＵＳＢなどのデータ伝送路を介して接続された記録媒体３７（例えば、フラッシュメモリなど）と画像処理装置３０とのインターフェースである。
【００６８】
また、記録媒体３７に、所定のプログラム（改竄検知プログラムとして機能する画像処理用プログラム）を格納し、この記録媒体３７に格納されたプログラムは記録媒体Ｉ／Ｆ部３６を介して画像処理装置３０にインストールされる。インストールされた所定のプログラムは、画像処理装置３０により実行可能となる。
【００６９】
なお、記録媒体３７を例えばＳＤカードとした場合は、記録媒体Ｉ／Ｆ部３６は、ＳＤカードスロットである。
【００７０】
入力Ｉ／Ｆ部３８は、入力デバイスとなるマウス・キーボード３９から入力されたデータを取得する。取得されたデータは、主記憶部３２や補助記憶部３３に記憶される。なお、マウス・キーボード３９や表示部３５は、画像処理装置３０に内蔵されてもよい。
【００７１】
また、画像処理装置３０は、通信部を有し、有線又は無線で通信を行う。通信部は、例えば、圧縮画像、公開鍵、電子署名を改竄防止装置として機能する画像処理装置１０から受信する。
【００７２】
（改竄検知機能）
次に、改竄検知機能を有する制御部３１について詳しく説明する。図１３は、実施例２における制御部３１の一例を示す機能ブロック図である。図１３に示す制御部３１は、可変長復号部４１、逆量子化部４２、逆周波数変換部４３、ブロック結合部４４、位置算出部４５、生成部４６、署名認証部４７、及び比較部４８を有する。ここで、制御部３１は、改竄検知対象の圧縮画像、電子署名及び画像処理装置１０の秘密鍵と対となる公開鍵を入力データとする。
【００７３】
可変長復号部４１は、圧縮画像を取得し、ハフマン符号等により符号化された量子化周波数変換係数を復号して、逆量子化部４２と、位置算出部４５へ出力する。なお、可変長復号部４１より復号された量子化周波数変換係数は、例えば、図５に示す量子化周波数変換係数となる。
【００７４】
逆量子化部４２は、復号された量子化周波数変換係数を、量子化テーブルを用いて周波数変換係数に変換して、逆周波数変換部４３ならびに位置算出部４５へ出力する。なお、量子化テーブルは、例えば、図４に示す第１の量子化テーブルを用いれば良い。逆量子化部４２により、逆量子化された周波数変換係数は、例えば、図３に示す周波数変換係数となる。
なお、周波数変換係数は、次式に従って算出される。
（数２）
Ｓｖｕ =Ｓｑｖｕ × Ｑｕｖ
但し、Ｓｖｕは周波数変換係数ブロックのｖ行ｕ列の周波数変換係数、
Ｓｑｖｕは量子化周波数変換係数ブロックのｖ（水平周波数成分）行、ｕ（垂直周波数成分）列の量子化周波数変換係数、
Ｑｕｖは量子化テーブルのｖ行ｕ列の係数（Ｑｖｕは正の整数）、とする。
また、逆量子化部４２は、通常は、圧縮画像に添付されている量子化テーブルを使用するが、複数の量子化テーブルを格納し、周波数変換係数に使用する量子化テーブルを画像処理装置１０から指定されても良い。また、周波数変換係数に使用する量子化テーブルを画像処理装置１０から取得しても良い。
【００７５】
逆周波数変換部４３は、周波数変換係数に対して逆周波数変換を行い、所定のブロック（例えば、８×８画素の複数のブロック）に分割された画像に変換し、ブロック結合部４４に出力する。なお、逆周波数変換は、例えば逆離散コサイン変換（ＩＤＣＴ）、逆ウェーブレット変換または逆離散アダマール変換等を用いることが可能である。
【００７６】
ブロック結合部４４は、所定のブロックに分割された画像を結合して原画像を出力する。出力された原画像は、例えば、図１２の表示部３５に表示される。
【００７７】
図１３の位置算出部４５は、周波数変換係数ブロックまたは量子化周波数変換係数ブロックを例えばラスタ順にスキャンし、周波数変換係数ブロックまたは量子化周波数変換係数ブロックに対する正符号の係数の位置、負符号の係数の位置、または値が０の係数の位置を示す位置情報を算出する。位置算出部４５は、当該位置情報を、生成部４６に出力する。なお、位置算出部４５の機能は、図２の位置算出部２５の同等の機能を有する為、詳細な説明は省略する。なお、位置算出部４５には図示しないセレクタを含み周波数変換係数を取得するか、量子化周波数変換係数を取得するかを識別子等に基づいて選択することが出来る。
【００７８】
図１３の生成部４６は、位置算出部４５から位置情報を取得し、例えば、周波数変換係数または量子化周波数変換係数が正符号の係数である場合を１、負符号の係数である場合を２、係数の値が０である場合を０としたものを、改竄検知コードとして生成して、比較部４８に出力する。なお、生成部４６の機能は、図２の生成部２６と同等の機能を有する為、詳細な説明は省略する。
【００７９】
図１３の署名認証部４７は、画像処理装置１０の生成部２６が生成した改竄検知コードを暗号化した秘密鍵と対となる公開鍵と、電子署名を画像処理装置１０から取得する。署名認証部４７は公開鍵を用いて電子署名を確認するとともに、暗号化された改竄検知コードを復号して、比較部４８へ出力する。なお、画像処理装置１０が改竄検知コードを暗号化しない場合は、署名認証部４７は、平文の改竄検知コードを画像処理装置１０から取得して、比較部４８に出力する。また、電子署名の確認結果は、例えば、図１２の表示部３５に表示される。
【００８０】
ここで、説明の便宜上、画像処理装置３０の生成部４６が生成した改竄検知コードを第１の改竄検知コードと定義し、画像処理装置１０の生成部２６が生成した改竄検知コードを第２の改竄検知コードと定義して称することとする。
【００８１】
比較部４８は、第１の改竄検知コードと、第２の改竄検知コードを比較して、双方のコードが一致している場合は、改竄無しと判定する。また、比較部４８は、第１の改竄検知コードと、第２の改竄検知コードの双方が一致していない場合においても、第２の改竄検知コードで正符号に相当する係数が、第１の改竄検知コードで正符号に相当する係数または値が０の係数であり、かつ、第２の改竄検知コードで負符号に相当する係数が、第１の改竄検知コードで負符号に相当する係数または値が０の係数であれば改竄無しと判定する。また、比較部４８は、第２の改竄検知コードで正符号に相当する係数が、第１の改竄検知コードで負符号に反転している係数や、第２の改竄検知コードで負符号に相当する係数が、第１の改竄検知コードで正符号に反転している係数が１つでも存在している場合は改竄有りと判定し、改竄検証結果を出力する。
例えば、比較部４８は、
・第１の改竄検知コード＝１２１０００００、１０００１０００、２０・・・
・第２の改竄検知コード＝１２１０００２１、１００２１０００、２０・・・
の場合は、第２の改竄検知コードで正符号に相当する係数が、第１の改竄検知コードで正符号に相当する係数または値が０の係数であり、かつ、第２の改竄検知コードで負符号に相当する係数が、第１の改竄検知コードで負符号に相当する係数または値が０の係数である為、改竄無しと判定する。
また、比較部４８は、
・第１の改竄検知コード＝１２２０００００、１０００１０００、１０・・・
・第２の改竄検知コード＝１２１０００２１、１００２１０００、２０・・・
の場合は、第２の改竄検知コードで正符号に相当する係数が、第１の改竄検知コードで負符号に反転している係数や、第２の改竄検知コードで負符号に相当する係数が、第１の改竄検知コードで正符号に反転している係数が存在している為、改竄有りと判定する。
なお、改竄検証結果は、例えば、表示部３５に表示される。また、比較部４８は、第１の改竄検知コードと第２の改竄検知コードを比較する際、少なくとも係数の値が０である場合は、当該係数については改竄検知の対象から除外しても良い。
【００８２】
比較部４８は、第２の改竄検知コードと第１の改竄検知コードの比較によって改竄有りと判定した場合は、改竄された係数を含むブロックを検出し、改竄された係数の位置情報をブロック結合部４４に出力する。
【００８３】
ブロック結合部４４は、改竄されたブロックの位置情報に基づいて原画像に対して、改竄された位置に丸印等の任意の印を重畳して出力する。任意の印が重畳された原画像は、例えば、表示部３５に表示される。
【００８４】
（改竄検知処理１）
次に、実施例２における改竄検知装置として機能する画像処理装置３０の動作について説明する。図１４は、実施例２における改竄検知処理の一例を示すフローチャート（その１）である。図１５は、実施例２における改竄検知処理の一例を示すフローチャート（その２）である。図１４、図１５に示す処理は、実施例１において生成された電子署名、公開鍵と改竄検知対象の圧縮画像を入力して改竄を検知する処理である。
【００８５】
ステップＳ１５０１で、可変長復号部４１は、所定のブロック数に分割された圧縮画像を取得し、ハフマン符号等により符号化された量子化周波数変換係数を復号して、逆量子化部４２と、位置算出部４５へ出力する。
【００８６】
ステップＳ１５０２で、逆量子化部４２は、復号された量子化周波数変換係数を、量子化テーブルを用いて周波数変換係数に変換して、逆周波数変換部４３ならびに位置算出部４５へ出力する。
【００８７】
ステップＳ１５０３で、逆周波数変換部４３は、周波数変換係数に対して逆周波数変換を行い、所定のブロック（例えば、８×８画素の複数のブロック）に分割された画像に変換し、ブロック結合部４４に出力する。
【００８８】
ステップＳ１５０４で、ブロック結合部４４は、所定のブロックに分割された画像を結合して原画像を出力する。
【００８９】
ステップＳ１５０５で、位置算出部４５は、周波数変換係数ブロックまたは量子化周波数変換係数ブロックを例えばラスタ順にスキャンし、正符号の係数の位置、負符号の係数の位置、または値が０の係数の位置を示す位置情報を算出し、当該位置情報を、生成部４６に出力する。ステップＳ１５０５の処理は、図１１のステップＳ１２０４と同等の処理の為、詳細な説明は省略する。
【００９０】
ステップＳ１５０６で、生成部４６は、位置情報を取得し、周波数変換係数または量子化周波数変換係数が正符号の係数である場合を１、周波数変換係数または量子化周波数変換係数が負符号の係数である場合を２、更に、周波数変換係数または量子化周波数変換係数の値が０である場合を０としたものを、第１の改竄検知コードとして生成して、比較部４８に出力する。なお、ステップＳ１５０６は、図１１のステップ１２０５と同等の処理の為、詳細な説明は省略する。
【００９１】
ステップＳ１５０７で、生成部４６は、所定のブロック数に分割されたそれぞれの圧縮画像に対して改竄検知コードの生成が完了したか否かを判定する。否の場合（ステップＳ１５０７−Ｎｏ）は、ステップＳ１５０５の処理に戻り、完了した場合は（ステップＳ１５０７−Ｙｅｓ）は、ステップＳ１５０９に処理を進める。
【００９２】
ステップＳ１５０８で、署名認証部４７は公開鍵を用いて電子署名を確認するとともに、暗号化された画像処理装置１０の生成部２６が生成した第２の改竄検知コードを復号して、比較部４８へ出力する。
【００９３】
ステップＳ１５０９で、比較部４８は、第１の改竄検知コードと、第２の改竄検知コードを比較して、双方のコードが一致している場合は、改竄無しと判定する（ステップＳ１５１０−Ｎｏ）。また、比較部４８は、第１の改竄検知コードと、第２の改竄検知コードの双方が一致していない場合においても、第２の改竄検知コードで正符号に相当する係数が、第１の改竄検知コードで正符号に相当する係数または値が０の係数であり、かつ、第２の改竄検知コードで負符号に相当する係数が、第１の改竄検知コードで負符号に相当する係数または値が０の係数であれば改竄無しと判定する（ステップＳ１５１０−Ｎｏ）。また、比較部４８は、第２の改竄検知コードで正符号に相当する係数が、第１の改竄検知コードで負符号に反転している係数や、第２の改竄検知コードで負符号に相当する係数が、第１の改竄検知コードで正符号に反転している係数が１つでも存在している場合は改竄有りと判定し（ステップＳ１５１０−Ｙｅｓ）、改竄検証結果をそれぞれ表示部３５へ出力する。（ステップＳ１５１１、Ｓ１５１２）なお、比較部４８は、第１の改竄検知コードと第２の改竄検知コードを比較する際、少なくとも係数の値が０である場合は、当該係数については改竄検知の対象から除外しても良い。
【００９４】
ステップＳ１５１３で、ブロック結合部４４は、第２の改竄検知コードと第１の改竄検知コードの比較によって改竄有りと判定した場合は、改竄された係数を含むブロックの位置情報を比較部４８から取得する。更にブロック結合部４４は、改竄されたブロックの位置情報に基づいて原画像に対して、改竄された位置に丸印等の任意の印を重畳して出力する。
【００９５】
以上、実施例２によれば、画像の改竄が行われず、再圧縮だけされた画像に対して、改竄と誤検知しないことが可能となる。また、画像を書き換える等の改竄があった場合は、その位置をブロック単位で特定することが可能となる。
【００９６】
（実施例３）
（改竄検知機能の変形例）
次に、改竄検知機能を有する制御部３１の変形例について詳細に説明する。図１６は、実施例３における制御部３１の一例を示す機能ブロック図である。図１６に示す制御部３１は、可変長復号部４１、逆量子化部４２、逆周波数変換部４３、ブロック結合部４４、署名認証部４７、及び判定部５１を有する。ここで、制御部３１は、改竄検知対象の圧縮画像、電子署名及び画像処理装置１０の秘密鍵と対となる公開鍵を入力データとする。
【００９７】
なお、判定部５１を除く、可変長復号部４１、逆量子化部４２、逆周波数変換部４３、ブロック結合部４４、署名認証部４７は、図１３に示す機能と同様である為、説明を省略する。
【００９８】
図１６の判定部５１は、署名認証部４７から復号された改竄検知コードを取得する。更に、判定部５１は、署名認証部４７から取得した改竄検知コードに含まれる位置情報を取得する。また、判定部５１は、可変長復号部４１から量子化周波数変換係数または、逆量子化部４２から周波数変換係数を取得する。なお、判定部５１には図示しないセレクタを含み周波数変換係数を取得するか、量子化周波数変換係数を取得するかを識別子等に基づいて選択することが出来る。
【００９９】
判定部５１は、取得した改竄検知コードに含まれる位置情報に対応する、改竄検知対象画像の周波数変換係数または量子化周波数変換係数に基づいて改竄の有無を判定する。具体的には、改竄検知コードに含まれる、改竄検知対象画像の周波数変換係数ブロックまたは量子化周波数変換係数ブロックにおける正符号の係数の位置または、負符号の係数の位置に対応した、改竄検知対象の圧縮画像の量子化周波数変換係数が０以外の値であり、かつ当該係数の符号が反転している場合、画像の改竄が行われたと判定する。換言すると、判定部５１は、取得した改竄検知コードのみで改竄の有無を判定することが可能であり、判定部５１自身が改竄検知コードを生成する必要がない。なお、判定部５１は、改竄有りと判定した場合は、改竄された係数の位置情報をブロック結合部４４に出力する。
【０１００】
判定部５１の判定処理について、図８（ａ）、（ｂ）を参照して具体例を説明する。判定部５１は、図８（ｂ）の改竄検知コードに含まれる位置情報の一例となる量子化周波数変換係数ブロックの座標値から任意の第１の座標情報を取得する。図８（ｂ）を例とすると、例えば任意の第１の座標情報は（１、２）とする。次に判定部５１は、任意の第１の座標情報となる（１、２）に基づいて、図８（ａ）の改竄検知対象画像の量子化周波数変換係数ブロックの座標値（１、２）の係数の符号を参照する。ここで、図８（ｂ）において任意の第１の座標情報（１、２）に対応する改竄検知コードの係数は１であり、当該係数は、正の符号に相当する。図８（ａ）の改竄検知対象画像の量子化周波数変換係数ブロックの座標値（１、２）の係数は正の符号である為、判定部５１は改竄なしと判定する。続いて、判定部５１は、任意の第２の位置座標を取得し、任意の第１の位置座標と同様に改竄の有無の判定を行う。ここで、任意の第１ないし第ｎの位置座標は、図８（ｂ）のスキャン順のシリアルＮｏに倣って決定しても良いし、特定の位置座標を選定しても良い。例えば、図８（ａ）に示される通り、高域周波数領域においては、係数が０になる傾向にある為、当該領域を改竄の有無の判定から除いても良い。また、量子化周波数変換係数ブロックを例示として記載しているが、周波数変換ブロックを用いた場合でも同様の処理となる為、詳細な説明は省略する。
【０１０１】
（改竄検知処理の変形例）
次に、実施例３における改竄検知装置として機能する画像処理装置３０の動作について説明する。図１７は、実施例３における改竄検知処理の一例を示すフローチャートである。図１７に示す処理は、実施例１において生成された電子署名、公開鍵と改竄検知対象の圧縮画像を入力して改竄を検知する処理である。
【０１０２】
ステップＳ１６０１〜Ｓ１６０５ならびにＳ１６０７〜Ｓ１６１０の処理は、図１４、図１５に示す、ステップＳ１５０１〜Ｓ１５０４、Ｓ１５０８ならびにＳ１５１０〜１５１３の処理と同様である為、説明を省略する。
【０１０３】
ステップＳ１６０６で、判定部５１は、位置情報に対応する、変換した周波数変換係数または復号した量子化周波数変換係数に基づいて改竄の有無を判定する。具体的には、改竄検知コードに含まれる、改竄検知対象画像の周波数変換係数ブロックまたは量子化周波数変換係数ブロックにおける正符号の係数の位置または、負符号の係数の位置に対応した、改竄検知対象の圧縮画像の量子化周波数変換係数が０以外の値であり、かつ当該係数の符号が反転している場合、画像の改竄有りと判定する。また、判定部５１は、改竄有りと判定した場合は、改竄された係数の位置情報をブロック結合部４４に出力する。
【０１０４】
以上、実施例３によれば、画像の改竄が行われず、再圧縮だけされた画像に対して、改竄と誤検知しないことが可能となる。また、画像を書き換える等の改竄があった場合は、その位置をブロック単位で特定することが可能となる。更に、改竄検知コードを作成することが不要であり、改竄検知の処理速度を向上させることが可能になる。
【０１０５】
（実施例４）
（改竄防止機能の変形例）
次に、改竄防止機能を有する制御部１１の変形例について詳細に説明する。図１８は、実施例４における制御部１１の一例を示す機能ブロック図である。図１８に示す制御部１１は、可変長復号部４１、逆量子化部４２、位置算出部２５、生成部２６、及び署名生成部２７を有する。ここで、制御部１１は、改竄防止対象の量子化周波数変換係数を含む圧縮画像、固有の秘密鍵を入力データとする。
【０１０６】
なお、可変長復号部４１、逆量子化部４２、位置算出部２５、生成部２６、署名生成部２７はそれぞれ、図２ならびに図１３に示す機能と同様である為、詳細な説明を省略する。
【０１０７】
可変長復号部４１は、圧縮画像を取得し、ハフマン符号等により符号化された量子化周波数変換係数を復号して、逆量子化部４２と、位置算出部４５へ出力する。
【０１０８】
逆量子化部４２は、復号された量子化周波数変換係数を、量子化テーブルを用いて周波数変換係数に変換して、位置算出部４５へ出力する。なお、改竄検知コードを周波数変換係数に基づいて生成しない場合は、逆量子化部４２は必須の構成ではない。
【０１０９】
位置算出部２５は、周波数変換係数ブロックまたは量子化周波数変換係数ブロックを例えばラスタ順にスキャンし、位置情報を、生成部２６に出力する。
【０１１０】
生成部２６は、必要に応じて位置算出部２５から位置情報を取得し、例えば、周波数変換係数または量子化周波数変換係数が正符号の係数である場合を１、周波数変換係数または量子化周波数変換係数が負符号の係数である場合を２、更に、周波数変換係数または量子化周波数変換係数の値が０である場合を０としたものを、改竄検知コードとして生成して、署名生成部２７へ出力する。このとき、生成部２６は、位置情報や、周波数変換係数または量子化周波数変換係数のいずれかで改竄検知コードを生成したかという識別子を改竄検知コードに付加することも可能である。改竄検知コードに付加する位置情報は、例えば、スキャン順のシリアルＮｏや周波数変換係数ブロックまたは量子化周波数変換係数ブロックの座標値（ｖ、ｕ）であれば良い。
【０１１１】
署名生成部２７は、生成部２６で生成された改竄検知コードを、画像処理装置１０が予め有する固有の秘密鍵を用いて、暗号化して電子署名データとして出力する。なお、固有の秘密鍵は、例えば、主記憶部１２等に記憶される。なお、署名生成部２７は、必須の構成ではなく、必要に応じて備えられれば良い。署名生成部２７を構成要件としない場合は、生成部２６が改竄検知コードを出力する。
【０１１２】
以上、実施例４によれば、圧縮画像に対しても改竄検知コードを生成することが可能となり、誤検知を防止することが可能となる。
【０１１３】
（実施例５）
（改竄防止機能と改竄検知機能を有する第１の画像処理システム）
図１９は、一つの実施形態による改竄防止機能と改竄検知機能を有する第１の画像処理システム１９００の構成図である。画像処理システム１９００は、第１制御部１１０と第２制御部３１０を有する。第１制御部１１０は、ブロック分割部２１、周波数変換部２２、量子化部２３、可変長符号化部２４、第１位置算出部２５０、生成部２６、及び署名生成部２７を有する。ここで、第１制御部１１０が有するブロック分割部２１、周波数変換部２２、量子化部２３、可変長符号化部２４、生成部２６、署名生成部２７の各機能は、図２に示す各機能と同様である為、詳細な説明を省略する。また、図１９に示す第１位置算出部２５０も図２に示す位置算出部２５の機能と同様である為、詳細な説明を省略する。
【０１１４】
第２制御部３１０は、可変長復号部４１、逆量子化部４２、逆周波数変換部４３、ブロック結合部４４、第２位置算出部４５０、生成部４６、署名認証部４７、及び比較部４８を有する。ここで、第２制御部３１０が有する可変長復号部４１、逆量子化部４２、逆周波数変換部４３、ブロック結合部４４、生成部４６、署名認証部４７、比較部４８の各機能は、図１３に示す各機能と同様である為、詳細な説明を省略する。また、図１９に示す第２位置算出部４５０も図１３に示す位置算出部４５の機能と同様である為、詳細な説明を省略する。なお、画像処理システム１９００における、第１制御部１１０と第２制御部３１０は、図１に示す画像処理装置１０が有する制御部１１または、図１２に示す画像処理装置３０が有する制御部３１によって実現させることが出来る。
【０１１５】
図１９に示す、画像処理システム１９００の第１制御部１１０は、改竄から保護したい原画像、及び固有の秘密鍵等を、画像送信側（改竄防止側）となる第１クライアント１００から受信する。第１制御部１１０は、図２に示す制御部１１と同様の処理で改竄検知コードを生成した後、圧縮画像、公開鍵、電子署名等を、画像受信側（改竄検知側）となる第２クライアント２００へ送信する。
【０１１６】
第２クライアント２００は、圧縮画像、公開鍵、電子署名等を画像処理システム１９００の第１制御部１１０から受信する。第２クライアント２００は、改竄の有無を検証する為に、第１制御部１１０から受信した圧縮画像、公開鍵、電子署名等を画像処理システム１９００に送信する。
【０１１７】
画像処理システム１９００の第２制御部３１０は、図１３に示す制御部３１と同様の処理で改竄の有無を検知し、電子署名の確認結果、改竄の有無の検証結果や、必要に応じて原画像と当該原画像に重畳して示した画像を、第２クライアント２００に送信する。
【０１１８】
なお、第１制御部１１０は、圧縮画像、公開鍵、電子署名等を必ずしも第２クライアントに送信する必要はない。例えば、第１制御部１１０は、圧縮画像、公開鍵、電子署名等を図１に示す補助記憶部１３に記憶させ、一意のＩＤのみを第２クライアントに送信する。ＩＤを受信した第２クライアントは、当該ＩＤを画像処理システム１９００システムに送信する。画像処理システム１９００の第２制御部３１０は、第２クライアントから送信されるＩＤに基づき、補助記憶部１３にアクセスし、圧縮画像、公開鍵、電子署名等を署名認証部４７や可変長復号部４１に格納させて、改竄の有無を検証し、改竄検証結果や、原画像、更に必要に応じて当該原画像に重畳して示した画像を第２クライアント２００に送信しても良い。
【０１１９】
実施例５によれば、画像の改竄が行われず、再圧縮だけされた画像に対して、改竄と誤検知しないことが可能となる。
【０１２０】
（実施例６）
（改竄防止機能と改竄検知機能を有する第２の画像処理システム）
図２０は、一つの実施形態による改竄防止機能と改竄検知機能を有する第２の画像処理システム２０００の構成図である。
画像処理システム２０００は、第１制御部１１０と第２制御部３１１を有する。第１制御部１１０は、ブロック分割部２１、周波数変換部２２、量子化部２３、可変長符号化部２４、第１位置算出部２５０、生成部２６、及び署名生成部２７を有する。ここで、第１制御部１１０が有するブロック分割部２１、周波数変換部２２、量子化部２３、可変長符号化部２４、第１位置算出部２５０、生成部２６、署名生成部２７の各機能は、図１９の制御部１１０に示す各機能と同様である為、詳細な説明を省略する。
【０１２１】
図２０の第２制御部３１１は、可変長復号部４１、逆量子化部４２、逆周波数変換部４３、ブロック結合部４４、署名認証部４７、及び判定部５１を有する。ここで、第２制御部３１１が有する可変長復号部４１、逆量子化部４２、逆周波数変換部４３、ブロック結合部４４、署名認証部４７、判定部５１の各機能は、図１６に示す各機能と同様である為、詳細な説明を省略する。なお、画像処理システム２０００における、第１制御部１１０と第２制御部３１１は、図１に示す画像処理装置１０が有する制御部１１または、図１２に示す画像処理装置３０が有する制御部３１によって実現させることが出来る。
【０１２２】
図２０に示す、画像処理システム２０００の第１制御部１１０は、改竄から保護したい原画像、及び固有の秘密鍵等を、画像送信側（改竄防止側）となる第１クライアント１００から受信する。第１制御部１１０は、図２に示す制御部１１と同様の処理で改竄検知コードを生成した後、圧縮画像、公開鍵、電子署名等を、画像受信側（改竄検知側）となる第２クライアント２００へ送信する。
【０１２３】
第２クライアント２００は、圧縮画像、公開鍵、電子署名等を画像処理システム２０００の第１制御部１１０から受信する。第２クライアント２００は、改竄の有無を検証する為に、第１制御部１１０から受信した圧縮画像、公開鍵、電子署名等を画像処理システム２０００に送信する。
【０１２４】
画像処理システム２０００の第２制御部３１１は、図１６に示す制御部３１と同様の処理で改竄の有無を検知し、電子署名の確認結果、改竄の有無の検証結果や、必要に応じて原画像と当該原画像に重畳して示した画像を、第２クライアント２００に送信する。
【０１２５】
なお、第１制御部１１０は、圧縮画像、公開鍵、電子署名等を必ずしも第２クライアントに送信する必要はない。例えば、第１制御部１１０は、圧縮画像、公開鍵、電子署名等を図１に示す補助記憶部１３に記憶させ、一意のＩＤのみを第２クライアントに送信する。ＩＤを受信した第２クライアントは、当該ＩＤを画像処理システム２０００システムに送信する。画像処理システム２０００の第２制御部３１１は、第２クライアントから送信されるＩＤに基づき、補助記憶部１３にアクセスし、圧縮画像、公開鍵、電子署名等を署名認証部４７や可変長復号部４１に格納させて、改竄の有無を検証し、改竄検証結果や、原画像、更に必要に応じて当該原画像に重畳して示した画像を第２クライアント２００に送信しても良い。
【０１２６】
実施例６によれば、画像の改竄が行われず、再圧縮だけされた画像に対して、改竄と誤検知しないことが可能となる。
【０１２７】
（改竄防止機能と改竄検知機能を有するその他の画像処理システム）
図１９と図２０に開示した画像処理システム１９００、画像処理システム２０００ならびに第１クライアント１００、第２クライアントの各装置の各構成要素は、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、図１９の第２クライアント２００に制御部３１０の各機能を統合することにより、第２クライアント２００単独で改竄を検知することが可能となる。また、図２０の第２クライアント２００に制御部３１１の各機能を統合することでも、第２クライアント２００単独で改竄を検知することが可能となる。
【０１２８】
なお、前述した各実施例で説明した改竄防止処理及び改竄検知処理を実現するためのプログラムを記録媒体に記録することで、各実施例での改竄防止処理及び改竄検知処理をコンピュータに実施させることができる。例えば、このプログラムを記録媒体に記録し、このプログラムが記録された記録媒体をコンピュータや携帯装置に読み取らせて、前述した改竄防止処理及び改竄検知処理を実現させることも可能である。
【０１２９】
記録媒体は、ＣＤ−ＲＯＭ、フレキシブルディスク、光磁気ディスク等の様に情報を光学的，電気的或いは磁気的に記録する記録媒体、ＲＯＭ、フラッシュメモリ等の様に情報を電気的に記録する半導体メモリ等、様々なタイプの記録媒体を用いることができる。
【０１３０】
画像処理装置で実行されるプログラムは、各実施例で説明した各部を含むモジュール構成となっている。実際のハードウェアとしては、制御部が補助記憶部からプログラムを読み出して実行することにより上記各部のうち１又は複数の各部が主記憶部上にロードされ、１又は複数の各部が主記憶部上に生成されるようになっている。
【０１３１】
また、改竄防止対象又は改竄検知対象の画像は、動画でもよく、フレーム毎に、上記の処理を行ってもよいし、所定間隔のフレーム毎に上記処理を行ってもよい。
【０１３２】
また、上述の実施例において、図示した各装置の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
【０１３３】
ここに挙げられた全ての例及び特定の用語は、当業者が、本発明及び当該技術の促進に対する本発明者により寄与された概念を理解することを助ける、教示的な目的において意図されたものであり、本発明の優位性及び劣等性を示すことに関する、本明細書の如何なる例の構成、そのような特定の挙げられた例及び条件に限定しないように解釈されるべきものである。本発明の実施形態は詳細に説明されているが、本発明の範囲から外れることなく、様々な変更、置換及び修正をこれに加えることが可能であることを理解されたい。
【０１３４】
以上説明した実施形態及びその変形例に関し、更に以下の付記を開示する。
（付記１）
画像を周波数変換係数に変換する周波数変換部と、
前記周波数変換係数を第１の量子化テーブルに基づいて量子化して量子化周波数変換係数を算出する量子化部と、
前記周波数変換係数または前記量子化周波数変換係数の正負の符号に基づいて改竄を検知する改竄検知コードを生成する生成部と、
を備えることを特徴とする画像処理装置。
（付記２）
前記生成部は、前記周波数変換係数または前記量子化周波数変換係数のうち、正符号の係数と、負符号の係数と、値が０の係数を区別して、前記改竄検知コードを生成することを特徴とする付記１記載の画像処理装置。
（付記３）
前記周波数変換係数が所定の周波数成分毎に格納される周波数変換係数ブロックまたは、前記量子化周波数変換係数が所定の周波数成分毎に格納される量子化周波数変換係数ブロックに対する前記正符号の係数の位置、前記負符号の係数の位置、または前記値が０の係数の位置を示す位置情報を算出する位置算出部を更に備え、
前記生成部は、前記位置情報に基づいて前記改竄検知コードを生成することを特徴とする付記１または付記２に記載の画像処理装置。
（付記４）
前記改竄検知コードを秘密鍵で暗号化して電子署名を生成する署名生成部を更に備えることを特徴とする付記１ないし付記３のいずれか一つに記載の画像処理装置。
（付記５）
前記画像を所定のブロック数に分割するブロック分割部を更に有し、
前記周波数変換部は、前記所定のブロック数に分割されたそれぞれの画像を前記周波数変換係数に変換することを特徴とする付記１ないし付記４のいずれか一つに記載の画像処理装置。
（付記６）
画像が周波数変換係数に変換され、前記周波数変換係数が第１の量子化テーブルに基づいて量子化された量子化周波数変換係数を取得し、前記周波数変換係数または前記量子化周波数変換係数の正負の符号に基づいて改竄を検知する第１の改竄検知コードを生成する生成部と、
前記正負の符号に基づいて生成された第２の改竄検知コードを取得し、前記第１の改竄検知コードと前記第２の改竄検知コードを比較する比較部と、
を備えることを特徴とする画像処理装置。
（付記７）
前記第２の改竄検知コードは、前記周波数変換係数または前記量子化周波数変換係数のうち、正符号の係数と、負符号の係数と、値が０の係数を区別して生成されており、
前記生成部は、前記周波数変換係数または前記量子化周波数変換係数のうち、前記正符号の係数と、前記負符号の係数と、前記値が０の係数を区別して、前記第１の改竄検知コードを生成することを特徴とする付記６記載の画像処理装置。
（付記８）
前記第２の改竄検知コードは、前記量子化周波数変換係数が所定の周波数成分毎に格納される量子化周波数変換係数ブロック、または前記周波数変換係数が所定の周波数成分毎に格納される周波数変換係数ブロックに対する前記正符号の係数の位置、前記負符号の係数の位置、前記値が０の係数の位置を示す位置情報を算出する位置算出部を更に備え、
前記生成部は、前記位置情報に基づいて前記第１の改竄検知コードを生成する、
ことを特徴とする付記６または付記７に記載の画像処理装置。
（付記９）
前記量子化周波数変換係数を前記周波数変換係数に変換する逆量子化部と、
前記周波数変換係数を所定のブロックに分割された画像に変換する逆周波数変換部と、
前記所定のブロックに分割された画像を結合して原画像を出力するブロック結合部と、
を更に備え、
前記比較部は、前記第１の改竄検知コードと前記第２の改竄検知コードの比較結果に基づき、改竄を検知した場合は、改竄された前記ブロックの位置情報を前記ブロック結合部へ出力し、
前記ブロック結合部は、前記位置情報に基づいて前記原画像に対して、改竄された位置を重畳して出力する、
ことを特徴とする付記８記載の画像処理装置。
（付記１０）
前記改竄検知コードを秘密鍵で暗号化して生成された電子署名と、前記秘密鍵と対になる公開鍵を取得し、前記公開鍵で前記電子署名を復号する署名認証部を更に備えることを特徴とする付記７ないし付記９のいずれか一つに記載の画像処理装置。
（付記１１）
画像が周波数変換係数に変換され、前記周波数変換係数が第１の量子化テーブルに基づいて量子化された量子化周波数変換係数と、
前記量子化周波数変換係数が所定の周波数成分毎に格納される量子化周波数変換係数ブロック、または前記周波数変換係数が所定の周波数成分毎に格納される周波数変換係数ブロックに対する前記正符号の係数、前記負符号の係数、前記値が０の係数の位置を示す位置情報が含まれる改竄検知コードと、を取得し、
前記位置情報と前記周波数変換係数ブロックまたは、前記量子化周波数変換係数ブロックに格納される前記周波数変換係数または前記量子化周波数変換係数の正負の符号に基づいて改竄の有無を判定する判定部、
を備えることを特徴とする画像処理装置。
（付記１２）
画像を周波数変換係数に変換し、
前記周波数変換係数を第１の量子化テーブルに基づいて量子化して量子化周波数変換係数を算出し、
前記周波数変換係数または前記量子化周波数変換係数の正負の符号に基づいて改竄を検知する改竄検知コードを生成する、
処理をコンピュータが実行する画像処理方法。
（付記１３）
前記生成することは、前記周波数変換係数または前記量子化周波数変換係数のうち、正符号の係数と、負符号の係数と、値が０の係数を区別して、前記改竄検知コードを生成することを特徴とする付記１２記載の画像処理方法。
（付記１４）
前記周波数変換係数が所定の周波数成分毎に格納される周波数変換係数ブロックまたは、前記量子化周波数変換係数が所定の周波数成分毎に格納される量子化周波数変換係数ブロックに対する前記正符号の係数の位置、前記負符号の係数の位置、または前記値が０の係数の位置を示す位置情報を算出し、
前記生成することは、前記位置情報に基づいて前記改竄検知コードを生成することを特徴とする付記１３に記載の画像処理方法。
（付記１５）
画像が周波数変換係数に変換され、前記周波数変換係数が第１の量子化テーブルに基づいて量子化された量子化周波数変換係数を取得し、
前記周波数変換係数または前記量子化周波数変換係数の正負の符号に基づいて改竄を検知する第１の改竄検知コードを生成し、
前記正負の符号に基づいて生成された第２の改竄検知コードを取得し、前記第１の改竄検知コードと前記第２の改竄検知コードを比較する、
処理をコンピュータが実行する画像処理方法。
（付記１６）
前記第２の改竄検知コードは、前記周波数変換係数または前記量子化周波数変換係数のうち、正符号の係数と、負符号の係数と、値が０の係数を区別して生成されており、
前記生成することは、前記周波数変換係数または前記量子化周波数変換係数のうち、前記正符号の係数と、前記負符号の係数と、前記値が０の係数を区別して、前記第１の改竄検知コードを生成することを特徴とする付記１５記載の画像処理方法。
（付記１７）
前記第２の改竄検知コードは、前記量子化周波数変換係数が所定の周波数成分毎に格納される量子化周波数変換係数ブロック、または前記周波数変換係数が所定の周波数成分毎に格納される周波数変換係数ブロックに対する前記正符号の係数の位置、前記負符号の係数の位置、または前記値が０の係数の位置を示す位置情報を算出し、
前記生成することは、前記位置情報に基づいて前記第１の改竄検知コードを生成することを特徴とする付記１５または付記１６記載の画像処理方法。
（付記１８）
画像を周波数変換係数に変換し、
前記周波数変換係数を第１の量子化テーブルに基づいて量子化して量子化周波数変換係数を算出し、
前記周波数変換係数または前記量子化周波数変換係数の正負の符号に基づいて改竄を検知する改竄検知コードを生成する、
処理をコンピュータに実行させることを特徴とする画像処理プログラム。
（付記１９）
画像が周波数変換係数に変換され、前記周波数変換係数が第１の量子化テーブルに基づいて量子化された量子化周波数変換係数を取得し、
前記周波数変換係数または前記量子化周波数変換係数の正負の符号に基づいて改竄を検知する第１の改竄検知コードを生成し、
前記正負の符号に基づいて生成された第２の改竄検知コードを取得し、前記第１の改竄検知コードと前記第２の改竄検知コードを比較する、
処理をコンピュータに実行させることを特徴とする画像処理プログラム。
（付記２０）
画像を周波数変換係数に変換する周波数変換部と、
前記周波数変換係数を第１の量子化テーブルに基づいて量子化して量子化周波数変換係数を算出する量子化部と、
前記周波数変換係数または前記量子化周波数変換係数の正負の符号に基づいて改竄を検知する第２の改竄検知コードを生成する第２生成部と、
画像が周波数変換係数に変換され、前記周波数変換係数が第１の量子化テーブルに基づいて量子化された量子化周波数変換係数を取得し、前記周波数変換係数または前記量子化周波数変換係数の正負の符号に基づいて改竄を検知する第１の改竄検知コードを生成する第１生成部と、
前記正負の符号に基づいて生成された第２の改竄検知コードを取得し、前記第１の改竄検知コードと前記第２の改竄検知コードを比較する比較部と、
を備えることを特徴とする画像処理システム。
【符号の説明】
【０１３５】
ブロック分割部２１
周波数変換部２２
量子化部２３
可変長符号化部２４
位置算出部２５
生成部２６
署名生成部２７
可変長復号部４１
逆量子化部４２
逆周波数変換部４３
ブロック結合部４４
位置算出部４５
生成部４６
比較部４８
判定部５１
【図１】
2014003506.tif 000003
【図２】
2014003506.tif 000004
【図３】
2014003506.tif 000005
【図４】
2014003506.tif 000006
【図５】
2014003506.tif 000007
【図６】
2014003506.tif 000008
【図７】
2014003506.tif 000009
【図８】
2014003506.tif 000010
【図９】
2014003506.tif 000011
【図１０】
2014003506.tif 000012
【図１１】
2014003506.tif 000013
【図１２】
2014003506.tif 000014
【図１３】
2014003506.tif 000015
【図１４】
2014003506.tif 000016
【図１５】
2014003506.tif 000017
【図１６】
2014003506.tif 000018
【図１７】
2014003506.tif 000019
【図１８】
2014003506.tif 000020
【図１９】
2014003506.tif 000021
【図２０】
2014003506.tif 000022