"画像の周波数係数を計算する周波数計算部と、前記周波数係数から、2つの周波数係数のペアを複数選択する係数選択部と、選択された各ペアの2つの周波数係数の差分絶対値と閾値との比較結果及び該2つの周波数係数の大小関係に基づきコードを生成するコード生成部と、前記コードを秘密鍵で暗号化し、電子署名を生成する電子署名生成部と、を備える画像処理装置。前記コード生成部は、前記差分絶対値が前記閾値未満の場合、該差分絶対値のペアに対してnullコードを与える請求項1記載の画像処理装置。前記差分絶対値が前記閾値未満であり、前記閾値から所定範囲内である場合、前記差分絶対値が前記閾値を超えるように前記2つの周波数係数のいずれかにノイズを加算又は減算するノイズ加算部をさらに備える請求項2記載の画像処理装置。前記係数選択部は、前記ペアを選択する際、第1の周波数係数は所定の走査順に選択し、第2の周波数係数を所定基準に従って選択する請求項1乃至3いずれか一項に記載の画像処理装置。前記所定基準は、前記第1の周波数係数と前記第2の周波数係数との差分絶対値が最大となることである請求項4記載の画像処理装置。前記周波数計算部は、前記画像が分割されたブロック単位で前記周波数係数を計算し、前記係数選択部は、1つのブロック内、又は2つ以上のブロックに跨って前記2つの周波数係数のペアを選択する請求項1乃至5いずれか一項に記載の画像処理装置。画像の周波数係数を計算し、前記周波数係数から、2つの周波数係数のペアを複数選択し、選択された複数の前記ペアの2つの周波数係数の差分絶対値と閾値との比較結果及び該2つの周波数係数の大小関係に基づきコードを生成し、前記コードを秘密鍵で暗号化し、電子署名を生成する処理をコンピュータが実行する改竄防止方法。改竄検知対象の画像の周波数係数を計算する周波数計算部と、前記周波数係数から、2つの周波数係数のペアを複数選択する係数選択部と、選択された複数の前記ペアの2つの周波数係数の大小関係に基づきコードを生成するコード生成部と、電子署名と公開鍵とを取得し、該公開鍵で該電子署名を復号したコードと、前記コード生成部により生成されたコードとを比較し、前記画像に対する改竄の有無を確認する署名確認部と、を備える画像処理装置。改竄検知対象の画像の周波数係数を計算し、前記周波数係数から、2つの周波数係数のペアを複数選択し、選択された複数の前記ペアの2つの周波数係数の大小関係に基づきコードを生成し、電子署名と公開鍵とを取得し、該公開鍵で該電子署名を復号したコードと、前記生成されたコードとを比較し、前記画像に対する改竄の有無を確認する処理をコンピュータが実行する改竄検知方法。ところで、改竄検知の結果は、裁判で証拠とされるべく、改竄されていないことを高い確率で証明されることが重要である。セミフラジャイル透かしは、電子署名と比較すると、改竄されていないことを数学的に示す根拠や、かつハッキングに対する耐性に関しても、電子署名に比べて数学的根拠が薄い。そこで、開示の技術は、上記問題に鑑みてなされたものであり、圧縮を改竄とみなさずに、改竄されていないことを示す数学的根拠を有することができる画像処理装置、改竄防止方法及び改竄検知方法を提供することを目的とする。開示の一態様における画像処理装置は、画像の周波数係数を計算する周波数計算部と、前記周波数係数から、2つの周波数係数のペアを複数選択する係数選択部と、選択された各ペアの2つの周波数係数の差分絶対値と閾値との比較結果及び該2つの周波数係数の大小関係に基づきコードを生成するコード生成部と、前記コードを秘密鍵で暗号化し、電子署名を生成する電子署名生成部と、を備える。また、開示の他の態様における画像処理装置は、改竄検知対象の画像の周波数係数を計算する周波数計算部と、前記周波数係数から、2つの周波数係数のペアを複数選択する係数選択部と、選択された複数の前記ペアの2つの周波数係数の大小関係に基づきコードを生成するコード生成部と、電子署名と公開鍵とを取得し、該公開鍵で該電子署名を復号したコードと、前記コード生成部により生成されたコードとを比較し、前記画像に対する改竄の有無を確認する署名確認部と、を備える。開示の技術によれば、圧縮を改竄とみなさずに、改竄されていないことを示す数学的根拠を有することができる。以下、各実施例について、添付図面を参照しながら説明する。<システム>まず、開示の改竄防止、検知システムについて説明する。図3は、改竄を防止、検知するシステムの一例を示す図である。図3は、改竄防止装置1と改竄検知装置2の関係を示す。改竄防止装置1は、画像から生成されたコードを固有の秘密鍵によって暗号化し、電子署名とする。改竄防止装置1は、この秘密鍵に対応する公開鍵と、電子署名と、圧縮された画像を改竄検知装置2に渡す。改竄検知装置2は、改竄検知対象の画像からコードを生成する。また、改竄検知装置2は、改竄防止装置1から受信した電子署名を秘密鍵に対応する公開鍵で復号し、コードを生成する。改竄検知装置2は、両者のコードを比較して、一致すれば改竄なし、一致しなければ改竄ありと判定する。このシステムは、画像が圧縮されていた場合、単に圧縮されただけでは改竄とみなさず、また、電子署名の枠組みで改竄検知を行うことができるので、数学的な強度が証明されている。以下、改竄防止装置1、改竄検知装置2それぞれについて詳しく説明する。[実施例1]まず、改竄防止装置1として機能する画像処理装置10について説明する。<構成>図4は、画像処理装置10の構成の一例を示す図である。図4に示す画像処理装置10は、画像に対する改竄を防止する改竄防止装置1として機能する。図4に示す画像処理装置10は、制御部11、主記憶部12、補助記憶部13、表示制御部14、記録媒体I/F部16、及びカメラI/F部18を有する。各部は、バスを介して相互にデータ送受信可能に接続されている。制御部11は、コンピュータの中で、各装置の制御やデータの演算、加工を行うCPUCentralProcessingUnitである。また、制御部11は、主記憶部12や補助記憶部13に記憶されたプログラムを実行する演算装置である。制御部11は、各記憶部からデータを受け取り、演算、加工した上で、出力部や各記憶部に出力する。例えば、制御部11は、補助記憶部13に記憶される改竄防止プログラムを実行することで、画像に対する改竄防止機能の役割を果たす。主記憶部12は、例えばRAMRandomAccessMemoryなどであり、制御部12が実行する基本ソフトウェアであるOSやアプリケーションソフトウェアなどのプログラムやデータを記憶又は一時保存する記憶部である。また、主記憶部12は、プログラムやデータを置くワークメモリとして機能する。補助記憶部13は、例えばHDDHardDiskDriveなどであり、アプリケーションソフトウェアなどに関連するデータを記憶する記憶装置である。補助記憶部13は、改竄防止プログラムを記憶する。補助記憶部13は、カメラI/F部18から取得した画像を記憶する。また、補助記憶部13は、記録媒体17などから取得された画像などを記憶しておいてもよい。表示制御部14は、画像やデータなどを表示部15に表示するため、表示制御を行う。記録媒体I/Fインターフェース部16は、USBUniversalSerialBusなどのデータ伝送路を介して接続された記録媒体17例えば、フラッシュメモリなどと画像処理装置10とのインターフェースである。また、記録媒体17に、所定のプログラム改竄防止プログラムを格納し、この記録媒体17に格納されたプログラムは記録媒体I/F部16を介して画像処理装置10にインストールされる。インストールされた所定のプログラムは、画像処理装置10により実行可能となる。なお、記録媒体17を例えばSDカードとした場合は、記録媒体I/F部16は、SDカードスロットである。カメラI/F部18は、カメラ19で撮像された画像を取得する。取得された画像は、主記憶部12に記憶される。なお、カメラ19や表示部15は、画像処理装置10に内蔵されてもよい。また、画像処理装置10は、通信部を有し、有線又は無線で通信を行う。通信部は、例えば、圧縮画像、公開鍵、電子署名を改竄検知装置2に送信する。<改竄防止機能>次に、改竄防止機能を有する制御部11について詳しく説明する。図5は、実施例1における改竄防止機能の一例を示すブロック図である。図5に示す制御部11は、周波数計算部101、係数選択部102、コード生成部103、署名生成部104、圧縮部105を有する。ここで、画像処理装置10は、改竄から保護したい画像、及び固有の秘密鍵を入力データとする。周波数計算部101は、画像の周波数係数を計算する。周波数計算部101は、例えば、JPEGJointPhotographicExpertsGroupのように、画像を8×8ブロックに分割し、それぞれのブロックに対して周波数変換を用いて周波数係数を計算する。周波数計算部101は、計算した周波数係数を係数選択部102に出力する。係数選択部102は、任意の2つの周波数係数を組ペアにして複数選択する。2つの周波数係数の選択方法は、1つの周波数係数は、例えばラスタスキャン走査順に選択し、他方の周波数係数は、所定基準で選択する方法がある。係数選択部102は、選択した複数の周波数係数の組をコード生成部103に出力する。コード生成部103は、選択された各組の2つの周波数係数の差分絶対値と閾値との比較結果及びその2つの周波数係数の大小関係に基づいてコードを生成する。生成されたコードは、署名生成部104に出力される。署名生成部104は、取得したコードに対し、秘密鍵を用いて暗号化し、この暗号化されたコードを電子署名として出力する。署名生成部104は、主記憶部102などから秘密鍵を取得しておく。圧縮部105は、画像を圧縮し、画像のデータサイズを小さくする。圧縮部105は、圧縮画像を出力する。なお、圧縮部105は、他の装置に備えられてもよく、必須の構成ではない。画像処理装置10は、圧縮した圧縮画像、生成した電子署名、固有の秘密鍵の対となる公開鍵を出力する。これらの情報は、後の改竄検知に利用される。次に、改竄防止装置としての各処理について詳しく説明する。《周波数計算部》周波数計算部101は、画像を所定ブロック例えば8×8画素ブロックに分割する。周波数計算部101で用いられる周波数変換は、例えば、DCTDiscreteCosineTransformや、ウェーブレット変換などが用いられる。《係数選択部》係数選択部102は、ブロック単位で計算された周波数係数のうち、2つの周波数係数の組を複数選択する。その選択方法は、例えば以下の2つを挙げる。図6は、2つの周波数係数の組を選択する方法その1を示す図である。図6に示す例では、車が衝突している画像im11内の8×8のブロックbl11から周波数係数の組を選択する例である。まず、係数選択部102は、周波数係数A0、A1、を所定の走査例えばラスタスキャン順で選択し、このAnに対してペアとなる周波数係数Bnをランダムに選択する。このランダムな周波数係数Bnの位置については、改竄検知装置で共有しておく。係数選択部102は、このようにして、周波数係数のペアA0、B0、A1、B1、を決定する。このときのペアの選択方法は、1つのブロック内に閉じていてもかまわないし、複数のブロックにまたがっていてもよい。図7は、2つの周波数係数の組を選択する方法その2を示す図である。図7に示す例では、2つのブロックにまたがって周波数係数のペアを選択する例である。図7に示すように、係数選択部102は、1つの周波数係数Anについては、bl11とbl12とでラスタスキャン順に選択し、他の周波数係数Bnについては、bl11とbl12とでまたがってランダムに選択する。これにより、係数選択部102で選択された周波数係数のペアAn,Bnは、2つのブロックにまたがり、第三者がこのペアを予測することが困難になる。なお、係数選択部102は、後述するコード生成部103で生成されるnullコードの数を最小限にするために、A0から順にBの中で絶対差分を最大にするペアを選んでもよい。Aiに対して、ペアとなるBiは重複してもよい。このとき、選んだBiの情報は、改竄検出装置に出力される。《コード生成部》コード生成部103は、係数選択部102で選択された周波数係数のペアから式1、2を計算することによって、コードを生成する。コードはDで表される。コードDの性質コードDは、式1、2によれば、周波数係数の差分絶対値と閾値αとの比較結果、及び2つの周波数係数の大小関係から生成される。2つの選択された周波数係数同士の差分絶対値が閾値α以上の場合は、その大小関係によって00又は11のバイナリデータの値がその組に対して与えられる。また、2つの周波数係数の差分絶対値が閾値αより小さい場合は、nullコードを意味する01を与える。nullコードを与える理由は、2つの周波数係数の差分絶対値が小さいと、圧縮後のこの2つの周波数係数の差分絶対値が0になる可能性があるからである。よって、この差分絶対値が閾値より小さい場合は、改竄の比較対象にはしないためにnullコードが与えられる。コードDが再圧縮の影響を受けない理由画像を圧縮する場合、圧縮前あるいは最初の圧縮後の画像の周波数係数の大小関係は、周波数係数の差が十分にある場合においては、画像圧縮を行ってもその大小関係が変化することはない。すなわち、コード生成部103は、コードDを生成する場合、各組の周波数係数の差分絶対値が閾値α以上の場合は00又は11のコードを与える。また、コード生成部103は、各組の周波数係数の差分絶対値が閾値αより小さい場合は、nullコード01を与える。これにより、コード生成部103は、画像圧縮の影響を受けないコードDを生成することができる。コードDが画像圧縮の影響を受けないため、コードDから生成される電子署名も画像圧縮の影響を受けない。画像圧縮は、圧縮された画像を再度圧縮することも含む。《署名生成部》署名生成部104は、コード生成部103で生成されたコードDに対して、画像処理装置10改竄防止装置固有の秘密鍵により、暗号化して出力する。また、署名生成部104は、SHA-1などの既存ハッシュ関数を用いてハッシュ値を計算し、最後に秘密鍵を用いてハッシュ値を暗号化し、署名データとして出力してもよい。<具体例>次に、具体例を用いて実施例1における改竄防止処理について説明する。図8は、コードDを生成する具体例その1を示す図である。図8に示す例では、係数選択部102は、例えば画像im11のブロックbl11内の周波数係数に対して、ペアAi,Bii=0~63をそれぞれ選択する。図8に示す例では、周波数係数Aiは、ラスタスキャン順に選択され、周波数係数Biはランダムに選択される。係数選択部102により、例えば以下のペアが選択されたとする。A0,B0=100,20A1,B1=10,70A2,B2=60,60A3,B3=50,25A62,B62=10,80A63,B63=2,3このとき、閾値αを30とすると、コード生成部103は、式1に基づいて、ペア毎に次のバイナリデータを与える。D0=00D1=11D2=01D3=01D62=11D63=01コード生成部103は、Diを順に並べてコードDを生成する。D=00110101...1101これにより、画像圧縮に影響を受けないコードを生成することができる。<動作>次に、実施例1における改竄防止装置1としての画像処理装置10の動作について説明する。図9は、実施例1における改竄防止処理の一例を示すフローチャートである。図9に示すステップS101で、周波数計算部101は、改竄防止対象の画像が入力されると、画像を、例えば8×8画素の複数のブロックに分割する。ステップS102で、周波数計算部101は、全てのブロックに対し、周波数変換を行う。周波数変換は、例えばDCTやウェーブレット変換である。ステップS103で、係数選択部102は、1つ又は複数のブロックを選択する。ステップS104で、係数選択部102は、ブロック内の周波数係数をラスタ走査しA0、A1、A2、、A63とする。また、係数選択部102は、各Aiに対して、そのペアとなるBiを選択し、決定する。ステップS105で、コード生成部103は、式1に基づき、コードDを生成する。署名生成部104は、生成されたコードDを秘密鍵で暗号化する。また、署名生成部104は、ハッシュ関数を用いてハッシュをとってもよい。ステップS106で、制御部11は、画像中の全てのブロックを処理したかを判定する。全てのブロックを処理していればステップS106-YESステップS107に進み、全てのブロックを処理していなければステップS106-NOステップS103に戻る。ステップS107で、圧縮部105は、改竄防止対象の画像を圧縮する。以上、実施例1によれば、圧縮を改竄とみなさずに、改竄されていないことを示す数学的根拠を有する改竄防止処理を行うことができる。これは、開示の技術が、数学的に強度が証明された電子証明の枠組みを用いているため、ハッキングに対する耐性は電子署名と同等であるからである。また、画像の圧縮前後で、周波数係数の大小関係の性質を利用するので、画像圧縮を行っても、署名データの値が変更されないため、圧縮を改竄とみなさない。したがって、開示の技術は、圧縮を改竄とみなさず、ハッキングに対する耐性は強いといえる。[実施例2]次に、実施例2における画像処理装置10について説明する。実施例2における画像処理装置10は、改竄防止装置1として機能する。実施例2では、コードDのnullデータを減らすため、周波数係数にノイズを加算又は減算する。<構成>実施例2における画像処理装置10の構成は、実施例1における画像処理装置10と同様であるため、その説明を省略する。なお、実施例2における画像処理装置の構成を説明する際、図4に示す符号と同じ符号を用いて説明する。<改竄防止機能>次に、改竄防止機能を有する制御部11について詳しく説明する。図10は、実施例2における改竄防止機能の一例を示すブロック図である。図10に示す機能で、図5に示す機能と同様の機能は同じ符号を付し、その説明を省略する。ノイズ加算部201は、係数選択部102により選択された周波数係数のペアの差分絶対値が、閾値未満であるが、この閾値から所定範囲内にある場合、この差分絶対値が閾値を超えるように2つの周波数係数の何れかにノイズを加算又は減算する。ノイズは、画質に影響を与えないような値とする。ノイズ加算部201は、ノイズを加算した周波数係数を含むブロックを有する画像を圧縮部202に出力する。ノイズ加算部201は、ノイズを加算した周波数係数のペアを含む複数の周波数係数のペアをコード生成部103に出力する。コード生成部103、署名生成部104の処理は、実施例1と同様である。圧縮部202は、ノイズ加算部201によりノイズが加算された周波数係数を含むブロックを有する画像に対し、圧縮処理を行う。圧縮画像は、改竄検知装置などに出力される。次に、ノイズ加算部201について詳しく説明する。《ノイズ加算部》ノイズ加算部201は、係数選択部102により選択された周波数係数のペアの差がある一定の範囲内の場合は、周波数係数の一方にノイズを加算又は減算して、係数の差を大きくする。式3は、式1、2によるコード生成の結果、nullコードが多いと、改竄検知能力が低下する問題を防いでいる。例えば、コードのすべてがnullコードの場合、改竄前のコードと改竄後に圧縮率を大きくした画像から計算したコードも全てnullコードになるため、改竄検知は不可能となる。そこで、実施例2における改竄防止装置は、式3の動作を行うノイズ加算部201を持つことによって、nullコードを削減し、改竄検知能力を向上させる効果を持つ。たとえば、|Ai-Bi|の差分絶対値が9で、閾値αの値が10の場合、差分絶対値が1あれば、nullコードを用いないで済む。そこで、差分絶対値が閾値までわずかな場合は、ノイズを加算あるいは減算して、元画像を劣化させないレベルでAiとBiとの差分絶対値が閾値を超えるように設定する方がよい。例えば、|Ai-Bi|の差分絶対値が9、β=9、α=10の場合、式3を用いれば、その差分絶対値はαとなるので、nullコードを用いないで済む。また、その他の例として、Ai=12、Bi=3、α=10、β=8のとき、8≦|12-3|<10であるので、Ai=13Bi=3あるいはBi=2Ai=12上記の通り、ノイズ加算部201は、ノイズを用いて周波数係数の調整を行う。また、閾値α、βは画像の圧縮率によって選択してもよい。圧縮率が高いと予想される場合には、αの値を大きく、βの値を小さくする。逆に圧縮率が低いと予想される場合にはαの値を小さく、βの値を大きくすることによって、誤検出を少なくすることができる。閾値βは画質に影響するパラメータであるので、求める画質によって調整すればよい。βが小さい場合は、加算、減算されるノイズが多くなるので、画質は劣化する。画質、誤検出率はトレードオフの関係にあり、経験的に最適な値を設定するのが望ましい。ノイズ加算部201は、圧縮率をパラメータとして、α、βの取りうる値を表にしておき、動的にα、βを選択してもよい。<具体例>次に、具体例を用いて実施例2における改竄防止処理について説明する。図11は、コードDを生成する具体例その2を示す図である。図11に示す例では、係数選択部102は、例えば画像im11のブロックbl11内の周波数係数に対して、ペアAi,Bii=0~63をそれぞれ選択する。図11に示す例では、周波数係数Aiは、ラスタスキャン順に選択され、周波数係数Biはランダムに選択される。係数選択部102により、例えば以下のペアが選択されたとする。A0,B0=100,20A1,B1=10,70A2,B2=60,60A3,B3=50,25A62,B62=10,80A63,B63=2,3α=30、β=25とすると、A3,B3=50,25のペアだけが、式3の条件に当てはまるので、このペアは式3を用いてA3,B3=55,25に変更される。次に、コード生成部103は、式1に基づいて、ペア毎に次のバイナリデータを与える。D0=00D1=11D2=01D3=00D62=11D63=01コード生成部103は、Diを順に並べてコードDを生成する。D=00110100...1101これにより、画像圧縮に影響を受けないコードを生成することができる。<動作>次に、実施例2における改竄防止装置の動作について説明する。図12は、実施例2における改竄防止処理の一例を示すフローチャートである。図12に示すステップS201~S204、S206~S208の処理は、図9に示すステップS101~S104、S105~S107の処理と同様であるため、その説明を省略する。ステップS205で、ノイズ加算部201は、式3を用いて、条件を満たす周波数係数のペアにはノイズを加算する。これにより、nullコードを減らすことができ、改竄検知能力を向上させることができる。以上、実施例2によれば、圧縮を改竄とみなさずに、改竄されていないことを示す数学的根拠を有する改竄防止処理に対する改竄検知能力をさらに向上させることができる。また、閾値βの値が小さければ、加算されるノイズの大きさも小さくなるため、画質に与える影響を抑えることができる。[実施例3]次に、実施例3における画像処理装置30について説明する。画像処理装置30は、改竄検知装置2として機能する。画像処理装置30は、実施例1や2の改竄防止装置1で出力した画像に対して共通の改竄検知処理を行う。<構成>図13は、画像処理装置30の構成の一例を示す図である。図13に示す画像処理装置30は、画像に対する改竄を検知する改竄検知装置2として機能する。図13に示す画像処理装置30は、制御部31、主記憶部32、補助記憶部33、表示制御部34、記録媒体I/F部36、及び入力I/F部38を有する。各部は、バスを介して相互にデータ送受信可能に接続されている。制御部31は、コンピュータの中で、各装置の制御やデータの演算、加工を行うCPUCentralProcessingUnitである。また、制御部31は、主記憶部32や補助記憶部33に記憶されたプログラムを実行する演算装置である。制御部31は、各記憶部からデータを受け取り、演算、加工した上で、出力部や各記憶部に出力する。例えば、制御部31は、補助記憶部33に記憶される改竄検知プログラムを実行することで、画像に対する改竄検知機能の役割を果たす。主記憶部32は、例えばRAMRandomAccessMemoryなどであり、制御部32が実行する基本ソフトウェアであるOSやアプリケーションソフトウェアなどのプログラムやデータを記憶又は一時保存する記憶部である。また、主記憶部32は、プログラムやデータを置くワークメモリとして機能する。補助記憶部33は、例えばHDDHardDiskDriveなどであり、アプリケーションソフトウェアなどに関連するデータを記憶する記憶装置である。補助記憶部33は、改竄検知プログラムを記憶する。補助記憶部33は、例えば改竄防止装置1から取得した圧縮画像や公開鍵、電子署名を記憶する。また、補助記憶部33は、記録媒体37などから取得された画像などを記憶しておいてもよい。表示制御部34は、画像やデータなどを表示部35に表示するため、表示制御を行う。記録媒体I/Fインターフェース部36は、USBUniversalSerialBusなどのデータ伝送路を介して接続された記録媒体37例えば、フラッシュメモリなどと画像処理装置30とのインターフェースである。また、記録媒体37に、所定のプログラム改竄検知プログラムを格納し、この記録媒体37に格納されたプログラムは記録媒体I/F部36を介して画像処理装置30にインストールされる。インストールされた所定のプログラムは、画像処理装置30により実行可能となる。なお、記録媒体37を例えばSDカードとした場合は、記録媒体I/F部36は、SDカードスロットである。入力I/F部38は、マウスやキーボードの入力デバイス39から入力されたデータを取得する。取得されたデータは、主記憶部32や補助記憶部33に記憶される。なお、入力デバイス39や表示部35は、画像処理装置30に内蔵されてもよい。また、画像処理装置30は、通信部を有し、有線又は無線で通信を行う。通信部は、例えば、圧縮画像、公開鍵、電子署名を改竄防止装置1から受信する。<改竄検知機能>次に、改竄検知機能を有する制御部31について詳しく説明する。図14は、実施例3における改竄検知機能の一例を示すブロック図である。図14に示す制御部31は、周波数計算部301、係数選択部302、コード生成部303、署名確認部304、復号部305を有する。ここで、改竄検知装置2は、改竄検知対象の画像、電子書名及び改竄防止装置1の秘密鍵と対となる公開鍵を入力データとする。改竄検知対象の画像は、圧縮された圧縮画像とする。周波数計算部301は、画像の周波数係数を計算する。周波数計算部301は、例えば、JPEGJointPhotographicExpertsGroupのように、画像を8×8ブロックに分割し、それぞれのブロックに対して周波数変換を用いて周波数係数を計算する。周波数計算部301は、計算した周波数係数を係数選択部302に出力する。係数選択部302は、任意の2つの周波数係数を組ペアにして複数選択する。2つの周波数係数の選択方法は、改竄防止装置1と同じ選択方法である。係数選択部302は、選択した複数の周波数係数の組をコード生成部303に出力する。コード生成部303は、選択された各組の2つの周波数係数の大小関係に基づいてコードを生成する。生成されたコードは、署名確認部304に出力される。署名確認部304は、改竄防止装置1から取得された公開鍵で、電子署名を復号したコードと、コード生成部303により生成されたコードとを比較し、改竄検知対象の画像に対する改竄の有無を確認する。署名確認部304は、両者のコードを比較する際、電子署名で復号したコードのうち、nullコードを除いたコードで比較を行う。また、署名確認部304は、比較結果が一致すれば改竄なし、比較結果が一致しなければ改竄ありと判定できる。この改竄有無結果は、例えば表示部35などに表示される。復号部305は、改竄検知対象の画像を復号する。改竄検知装置2は、署名確認部304で改竄有りの場合、復号された画像に対して、どの部分が改竄されたかを表示することもできる。次に、改竄検知装置2としての各処理について詳しく説明する。周波数計算部301と係数選択部302とについては、実施例1や2と同様であるため、その説明を省略する。《コード生成部》コード生成部303は、次の式4により、周波数係数の各組に対してバイナリデータを与える。《署名確認部》まず、改竄防止装置1で生成されたコードは、改竄防止装置1固有の秘密鍵によって暗号化され、電子署名とされる。これに対して、改竄検知装置2では、改竄検知対象の画像からコードを生成する。また、署名確認部304は、改竄防止装置1から受信した電子署名を公開鍵で復号し、コードを生成する。署名確認部304は、両者のコードを比較して、一致すれば改竄なし、一致しなければ改竄ありと判定する。<部分改竄検知>改竄防止装置1において、画像のブロック毎にコードを複数生成し、署名を複数生成することができる。この場合、改竄検知装置2は、署名を複数確認し、改竄が検出された場合は、復号部305に改竄された位置の情報を伝え、改竄されている領域を図示することができる。なお、改竄検知装置2は、周波数係数のペアの一方であるAiがラスタ走査順であるため、コードの位置で画素の位置が分かり、両者のコードの比較結果で、どの位置のデータが一致しないかを特定することで、画素レベルで改竄を検知することができる。<具体例>次に、具体例を用いて実施例3における改竄検知処理について説明する。以下では、簡単のため、図11に示す画像が圧縮された画像を改竄検知対象とする。まず、署名確認部304は、改竄防止装置1が生成した電子署名からコードを復号する。ここでは、実施例2における改竄防止装置1で生成されたコードD=00110100...1101が得られたとする。係数選択部302は、実施例2における改竄防止装置1と同様にして周波数係数のペアを選択する。選択された周波数係数のペアは、以下の通りである。A0,B0=96,20A1,B1=10,67A2,B2=60,56A3,B3=52,25A62,B62=10,77A63,B63=0,0ここで、コード生成部303は、式4を用いて各組に対するバイナリデータを与える。D0=00D1=11D2=00D3=00D62=11D63=01コード生成部303は、これらのコードを並べてコードDを生成する。D=00110000,...,1101署名確認部304は、実施例2における改竄防止装置1が生成したコードを公開鍵で復号する。例えば、復号されたコードは、以下の通りである。D=00110100...1101署名確認部304は、両者のコードのうち、改竄防止装置1のコードDの中で、nullコード01の位置にあるコードを比較対象から除外する。例えば、nullコードは、xxに置き換えられるとする。また、署名確認部304は、コードDの中で、コードDでxxになった位置と同じ位置のデータをxxにする。このとき、両者のコードは、D=0011xx00,...,11xxD=0011xx00,...,11xxとなり、両者のコードが一致する。よって、署名確認部304は、改竄はなかったと判定する。<動作>次に、実施例3における改竄検知装置2として機能する画像処理装置30の動作について説明する。図15は、実施例3における改竄検知処理の一例を示すフローチャートである。図15に示す処理は、実施例1や実施例2において生成された電子署名、圧縮画像、公開鍵を入力して改竄を検知する処理である。ステップS301~S304の処理は、図9に示すステップS101~S104の処理と同様であるため、その説明を省略する。ただし、改竄検知対象は、圧縮画像である。ステップS305で、コード生成部303は、式4を用いて、コードDを生成する。ステップS306で、制御部31は、画像中の全てのブロックで処理をしたかを判定する。全てのブロックで処理していればステップS306-YESステップS307に進み、全てのブロックで処理していなければステップS306-NOステップS303に戻る。ステップS307で、署名確認部304は、改竄を確認したい画像の電子署名を復号し、コードDを生成する。ステップS308で、署名確認部304は、コードDとコードDとが一致するか否かを判定する。コードDとDとが一致すればステップS308-YESステップS309に進み、コードDとDとが一致しなければステップS308-NOステップS310に進む。ステップS309で、署名確認部304は、圧縮された画像に対し、改竄なしと判定する。ステップS310で、署名確認部304は、圧縮された画像に対し、改竄ありと判定する。以上、実施例3によれば、圧縮だけされた画像に対し、改竄とみなさないことができる。また、画像を書き換えるような改竄があった場合は、周波数係数の大小関係を壊す可能性が高いため、改竄を検知することができる。[変形例]なお、前述した各実施例で説明した改竄防止処理及び改竄検知処理を実現するためのプログラムを記録媒体に記録することで、各実施例での改竄防止処理及び改竄検知処理をコンピュータに実施させることができる。例えば、このプログラムを記録媒体に記録し、このプログラムが記録された記録媒体をコンピュータや携帯装置に読み取らせて、前述した改竄防止処理及び改竄検知処理を実現させることも可能である。なお、記録媒体は、CD-ROM、フレキシブルディスク、光磁気ディスク等の様に情報を光学的,電気的或いは磁気的に記録する記録媒体、ROM、フラッシュメモリ等の様に情報を電気的に記録する半導体メモリ等、様々なタイプの記録媒体を用いることができる。画像処理装置で実行されるプログラムは、各実施例で説明した各部を含むモジュール構成となっている。実際のハードウェアとしては、制御部が補助記憶部からプログラムを読み出して実行することにより上記各部のうち1又は複数の各部が主記憶部上にロードされ、1又は複数の各部が主記憶部上に生成されるようになっている。また、改竄防止対象又は改竄検知対象の画像は、動画でもよく、各フレーム毎に、上記の処理を行ってもよいし、所定間隔のフレーム毎に上記処理を行ってもよい。以上、実施例について詳述したが、特定の実施例に限定されるものではなく、特許請求の範囲に記載された範囲内において、種々の変形及び変更が可能である。また、前述した各実施例の構成要素を全部又は複数を組み合わせることも可能である。なお、以上の各実施例に関し、さらに以下の付記を開示する。付記1画像の周波数係数を計算する周波数計算部と、前記周波数係数から、2つの周波数係数のペアを複数選択する係数選択部と、選択された各ペアの2つの周波数係数の差分絶対値と閾値との比較結果及び該2つの周波数係数の大小関係に基づきコードを生成するコード生成部と、前記コードを秘密鍵で暗号化し、電子署名を生成する電子署名生成部と、を備える画像処理装置。付記2前記コード生成部は、前記差分絶対値が前記閾値未満の場合、該差分絶対値のペアに対してnullコードを与える付記1記載の画像処理装置。付記3前記差分絶対値が前記閾値未満であり、前記閾値から所定範囲内である場合、前記差分絶対値が前記閾値を超えるように前記2つの周波数係数のいずれかにノイズを加算又は減算するノイズ加算部をさらに備える付記2記載の画像処理装置。付記4前記係数選択部は、前記ペアを選択する際、第1の周波数係数は所定の走査順に選択し、第2の周波数係数を所定基準に従って選択する付記1乃至3いずれか一項に記載の画像処理装置。付記5前記所定基準は、前記第1の周波数係数と前記第2の周波数係数との差分絶対値が最大となることである付記4記載の画像処理装置。付記6前記周波数計算部は、前記画像が分割されたブロック単位で前記周波数係数を計算し、前記係数選択部は、1つのブロック内、又は2つ以上のブロックに跨って前記2つの周波数係数のペアを選択する付記1乃至5いずれか一項に記載の画像処理装置。付記7画像の周波数係数を計算し、前記周波数係数から、2つの周波数係数のペアを複数選択し、選択された複数の前記ペアの2つの周波数係数の差分絶対値と閾値との比較結果及び該2つの周波数係数の大小関係に基づきコードを生成し、前記コードを秘密鍵で暗号化し、電子署名を生成する処理をコンピュータが実行する改竄防止方法。付記8改竄検知対象の画像の周波数係数を計算する周波数計算部と、前記周波数係数から、2つの周波数係数のペアを複数選択する係数選択部と、選択された複数の前記ペアの2つの周波数係数の大小関係に基づきコードを生成するコード生成部と、電子署名と公開鍵とを取得し、該公開鍵で該電子署名を復号したコードと、前記コード生成部により生成されたコードとを比較し、前記画像に対する改竄の有無を確認する署名確認部と、を備える画像処理装置。付記9前記署名確認部は、前記復号したコードのうち、nullコードの部分以外で比較を行う付記7記載の画像処理装置。付記10改竄検知対象の画像の周波数係数を計算し、前記周波数係数から、2つの周波数係数のペアを複数選択し、選択された複数の前記ペアの2つの周波数係数の大小関係に基づきコードを生成し、電子署名と公開鍵とを取得し、該公開鍵で該電子署名を復号したコードと、前記生成されたコードとを比較し、前記画像に対する改竄の有無を確認する処理をコンピュータが実行する改竄検知方法。"