(57)【要約】      （修正有）【課題】圧縮を改竄とみなさずに、改竄されていないことを示す数学的根拠を有する画像処理装置を提供する。【解決手段】画像処理装置１１は、画像の周波数係数を計算する周波数計算部１０１と、周波数係数から、２つの周波数係数のペアを複数選択する係数選択部１０２と、選択された各ペアの２つの周波数係数の差分絶対値と閾値との比較結果及び２つの周波数係数の大小関係に基づきコードを生成するコード生成部１０３と、コードを秘密鍵で暗号化し、電子署名を生成する電子署名生成部１０４と、を備える。【選択図】図５
2013126189.tif 000002
【特許請求の範囲】
【請求項１】
画像の周波数係数を計算する周波数計算部と、
前記周波数係数から、２つの周波数係数のペアを複数選択する係数選択部と、
選択された各ペアの２つの周波数係数の差分絶対値と閾値との比較結果及び該２つの周波数係数の大小関係に基づきコードを生成するコード生成部と、
前記コードを秘密鍵で暗号化し、電子署名を生成する電子署名生成部と、
を備える画像処理装置。
【請求項２】
前記コード生成部は、
前記差分絶対値が前記閾値未満の場合、該差分絶対値のペアに対してｎｕｌｌコードを与える請求項１記載の画像処理装置。
【請求項３】
前記差分絶対値が前記閾値未満であり、前記閾値から所定範囲内である場合、前記差分絶対値が前記閾値を超えるように前記２つの周波数係数のいずれかにノイズを加算又は減算するノイズ加算部をさらに備える請求項２記載の画像処理装置。
【請求項４】
前記係数選択部は、
前記ペアを選択する際、第１の周波数係数は所定の走査順に選択し、第２の周波数係数を所定基準に従って選択する請求項１乃至３いずれか一項に記載の画像処理装置。
【請求項５】
前記所定基準は、前記第１の周波数係数と前記第２の周波数係数との差分絶対値が最大となることである請求項４記載の画像処理装置。
【請求項６】
前記周波数計算部は、
前記画像が分割されたブロック単位で前記周波数係数を計算し、
前記係数選択部は、
１つのブロック内、又は２つ以上のブロックに跨って前記２つの周波数係数のペアを選択する請求項１乃至５いずれか一項に記載の画像処理装置。
【請求項７】
画像の周波数係数を計算し、
前記周波数係数から、２つの周波数係数のペアを複数選択し、
選択された複数の前記ペアの２つの周波数係数の差分絶対値と閾値との比較結果及び該２つの周波数係数の大小関係に基づきコードを生成し、
前記コードを秘密鍵で暗号化し、電子署名を生成する処理をコンピュータが実行する改竄防止方法。
【請求項８】
改竄検知対象の画像の周波数係数を計算する周波数計算部と、
前記周波数係数から、２つの周波数係数のペアを複数選択する係数選択部と、
選択された複数の前記ペアの２つの周波数係数の大小関係に基づきコードを生成するコード生成部と、
電子署名と公開鍵とを取得し、該公開鍵で該電子署名を復号したコードと、前記コード生成部により生成されたコードとを比較し、前記画像に対する改竄の有無を確認する署名確認部と、
を備える画像処理装置。
【請求項９】
改竄検知対象の画像の周波数係数を計算し、
前記周波数係数から、２つの周波数係数のペアを複数選択し、
選択された複数の前記ペアの２つの周波数係数の大小関係に基づきコードを生成し、
電子署名と公開鍵とを取得し、該公開鍵で該電子署名を復号したコードと、前記生成されたコードとを比較し、前記画像に対する改竄の有無を確認する処理をコンピュータが実行する改竄検知方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンテンツに対する改竄の防止又は検知を行う画像処理装置、改竄防止方法及び改竄検知方法に関する。
【背景技術】
【０００２】
近年、ディジタル技術の発達と、ディジタル撮影が可能なカメラの出現により、飛躍的に静止画像、映像（以後両者を併せて画像とよぶ）の編集が容易になっている。画像の編集が容易になるのに伴って、撮影した画像の改竄が問題となっている。
【０００３】
ここで、テレビニュースによると、国や自治体が発注する工事では、作業が適正に行われていることを確認するため、現場写真の提出が義務付けられている。国がおよそ１００件の公共工事を対象に、あわせて２０万枚余りの現場写真を調べたところ、改竄の疑いが強いものが１０００枚余り見つかっている。
【０００４】
画像の改竄は通常、画像編集ソフトによって行われる。例えば、交通事故の写真を自分に有利になるように信号の色を書き換えたりすることが容易に行える。
【０００５】
このようなディジタル画像の改竄防止技術としては、ディジタル署名や電子透かしがある。さらに電子透かしには、フラジャイル透かし、セミフラジャイル透かしと呼ばれるものがある。
【０００６】
図１は、各改竄防止技術の性質を説明するための図である。図１に示すように、各改ざん防止技術は、以下のような性質を持つ。
電子署名：再圧縮は改竄とみなされ、ハッキングに対する耐性は強い
フラジャイル透かし：再圧縮は改竄とみなされ、ハッキングに対する耐性は中
セミフラジャイル透かし：再圧縮は改竄とみなされず、ハッキングに対する耐性は弱い
再圧縮とは、圧縮された画像を再度圧縮することをいう。再圧縮は、例えばストレージ節約のために行われる。ハッキングとは、改竄を気づかれないように改竄することをいう。
【０００７】
各改竄防止技術の中で最もよく利用されているものが電子署名である。電子署名は画像の中の画素値１ビットの改竄も許さない特徴があり、ハッキングにも非常に強い。
【０００８】
フラジャイル透かしは、電子透かし技術を用いる。編集によって非常に壊れやすい透かしを事前に埋めておき、透かしが壊されていないかどうかを調べることによって改竄の有無を検出する。フラジャイル透かしは、１ｂｉｔの改竄も許さないため、画像圧縮も改竄とみなされる。また、フラジャイル透かしのハッキングに対する耐性は中程度である。
【０００９】
セミフラジャイル透かしは、大きな改竄だけを検出し、軽微な改竄は検出しない。この特徴は、画像再圧縮に対応するために開発されていることである。
【００１０】
図２は、再圧縮の問題点を説明するための図である。図２に示す例では、改竄検知対象の画像は、撮影時には、画質を良くするため、圧縮率を低く設定されている場合が多い。しかし、このような画像を例えばディスクに保存する場合は、再圧縮して画質を落としてでもストレージの容量を極力低くしたいという希望がある場合が多い。
【００１１】
しかし、電子署名、フラジャイル透かしは、１ｂｉｔの相違も改竄とみなすので、署名や透かしで改竄検知機能が付加されていても、再圧縮することによって、保存された画像はすべて改竄された画像として判断されてしまう。
【００１２】
セミフラジャイル透かしは、悪意のある改竄のような明らかな改竄を検出し、画像の再圧縮は改竄とみなさないため、このような状況で使われやすい。しかし、セミフラジャイル透かしは、便利な反面、電子署名のように数学的にその強度が証明されていない。また、透かし埋め込みのアルゴリズムが漏洩すれば、一旦透かしを画像から外して、画像を改竄し、再度透かしを戻すような処理も可能である。このため、ハッキングに対する耐性が低い。
【先行技術文献】
【非特許文献】
【００１３】
【非特許文献１】中村 高雄, 高嶋 洋一: "電子透かし", 映像情報メディア学会誌, 61, 7, pp.948-950 (2007)
【発明の概要】
【発明が解決しようとする課題】
【００１４】
ところで、改竄検知の結果は、裁判で証拠とされるべく、改竄されていないことを高い確率で証明されることが重要である。セミフラジャイル透かしは、電子署名と比較すると、改竄されていないことを数学的に示す根拠や、かつハッキングに対する耐性に関しても、電子署名に比べて数学的根拠が薄い。
【００１５】
そこで、開示の技術は、上記問題に鑑みてなされたものであり、圧縮を改竄とみなさずに、改竄されていないことを示す数学的根拠を有することができる画像処理装置、改竄防止方法及び改竄検知方法を提供することを目的とする。
【課題を解決するための手段】
【００１６】
開示の一態様における画像処理装置は、画像の周波数係数を計算する周波数計算部と、前記周波数係数から、２つの周波数係数のペアを複数選択する係数選択部と、選択された各ペアの２つの周波数係数の差分絶対値と閾値との比較結果及び該２つの周波数係数の大小関係に基づきコードを生成するコード生成部と、前記コードを秘密鍵で暗号化し、電子署名を生成する電子署名生成部と、を備える。
【００１７】
また、開示の他の態様における画像処理装置は、改竄検知対象の画像の周波数係数を計算する周波数計算部と、前記周波数係数から、２つの周波数係数のペアを複数選択する係数選択部と、選択された複数の前記ペアの２つの周波数係数の大小関係に基づきコードを生成するコード生成部と、電子署名と公開鍵とを取得し、該公開鍵で該電子署名を復号したコードと、前記コード生成部により生成されたコードとを比較し、前記画像に対する改竄の有無を確認する署名確認部と、を備える。
【発明の効果】
【００１８】
開示の技術によれば、圧縮を改竄とみなさずに、改竄されていないことを示す数学的根拠を有することができる。
【図面の簡単な説明】
【００１９】
【図１】各改竄防止技術の性質を説明するための図。
【図２】再圧縮の問題点を説明するための図。
【図３】改竄を防止、検知するシステムの一例を示す図。
【図４】画像処理装置の構成の一例を示す図。
【図５】実施例１における改竄防止機能の一例を示すブロック図。
【図６】２つの周波数係数の組を選択する方法（その１）を示す図。
【図７】２つの周波数係数の組を選択する方法（その２）を示す図。
【図８】コードＤを生成する具体例（その１）を示す図。
【図９】実施例１における改竄防止処理の一例を示すフローチャート。
【図１０】実施例２における改竄防止機能の一例を示すブロック図。
【図１１】コードＤを生成する具体例（その２）を示す図。
【図１２】実施例２における改竄防止処理の一例を示すフローチャート。
【図１３】画像処理装置の構成の一例を示す図。
【図１４】実施例３における改竄検知機能の一例を示すブロック図。
【図１５】実施例３における改竄検知処理の一例を示すフローチャート。
【発明を実施するための形態】
【００２０】
以下、各実施例について、添付図面を参照しながら説明する。
【００２１】
＜システム＞
まず、開示の改竄防止、検知システムについて説明する。図３は、改竄を防止、検知するシステムの一例を示す図である。図３は、改竄防止装置１と改竄検知装置２の関係を示す。
【００２２】
改竄防止装置１は、画像から生成されたコードを固有の秘密鍵によって暗号化し、電子署名とする。改竄防止装置１は、この秘密鍵に対応する公開鍵と、電子署名と、圧縮された画像を改竄検知装置２に渡す。
【００２３】
改竄検知装置２は、改竄検知対象の画像からコードを生成する。また、改竄検知装置２は、改竄防止装置１から受信した電子署名を秘密鍵に対応する公開鍵で復号し、コードを生成する。改竄検知装置２は、両者のコードを比較して、一致すれば改竄なし、一致しなければ改竄ありと判定する。このシステムは、画像が圧縮されていた場合、単に圧縮されただけでは改竄とみなさず、また、電子署名の枠組みで改竄検知を行うことができるので、数学的な強度が証明されている。以下、改竄防止装置１、改竄検知装置２それぞれについて詳しく説明する。
【００２４】
［実施例１］
まず、改竄防止装置１として機能する画像処理装置１０について説明する。
【００２５】
＜構成＞
図４は、画像処理装置１０の構成の一例を示す図である。図４に示す画像処理装置１０は、画像に対する改竄を防止する改竄防止装置１として機能する。図４に示す画像処理装置１０は、制御部１１、主記憶部１２、補助記憶部１３、表示制御部１４、記録媒体Ｉ／Ｆ部１６、及びカメラＩ／Ｆ部１８を有する。各部は、バスを介して相互にデータ送受信可能に接続されている。
【００２６】
制御部１１は、コンピュータの中で、各装置の制御やデータの演算、加工を行うＣＰＵ（Central Processing Unit）である。また、制御部１１は、主記憶部１２や補助記憶部
１３に記憶されたプログラムを実行する演算装置である。制御部１１は、各記憶部からデータを受け取り、演算、加工した上で、出力部や各記憶部に出力する。
【００２７】
例えば、制御部１１は、補助記憶部１３に記憶される改竄防止プログラムを実行することで、画像に対する改竄防止機能の役割を果たす。
【００２８】
主記憶部１２は、例えばＲＡＭ（Random Access Memory）などであり、制御部１２が実行する基本ソフトウェアであるＯＳやアプリケーションソフトウェアなどのプログラムやデータを記憶又は一時保存する記憶部である。また、主記憶部１２は、プログラムやデータを置くワークメモリとして機能する。
【００２９】
補助記憶部１３は、例えばＨＤＤ（Hard Disk Drive）などであり、アプリケーションソフトウェアなどに関連するデータを記憶する記憶装置である。補助記憶部１３は、改竄防止プログラムを記憶する。
【００３０】
補助記憶部１３は、カメラＩ／Ｆ部１８から取得した画像を記憶する。また、補助記憶部１３は、記録媒体１７などから取得された画像などを記憶しておいてもよい。
【００３１】
表示制御部１４は、画像やデータなどを表示部１５に表示するため、表示制御を行う。
【００３２】
記録媒体Ｉ／Ｆ（インターフェース）部１６は、ＵＳＢ（Universal Serial Bus）などのデータ伝送路を介して接続された記録媒体１７（例えば、フラッシュメモリなど）と画像処理装置１０とのインターフェースである。
【００３３】
また、記録媒体１７に、所定のプログラム（改竄防止プログラム）を格納し、この記録媒体１７に格納されたプログラムは記録媒体Ｉ／Ｆ部１６を介して画像処理装置１０にインストールされる。インストールされた所定のプログラムは、画像処理装置１０により実行可能となる。
【００３４】
なお、記録媒体１７を例えばＳＤカードとした場合は、記録媒体Ｉ／Ｆ部１６は、ＳＤカードスロットである。
【００３５】
カメラＩ／Ｆ部１８は、カメラ１９で撮像された画像を取得する。取得された画像は、主記憶部１２に記憶される。なお、カメラ１９や表示部１５は、画像処理装置１０に内蔵されてもよい。
【００３６】
また、画像処理装置１０は、通信部を有し、有線又は無線で通信を行う。通信部は、例えば、圧縮画像、公開鍵、電子署名を改竄検知装置２に送信する。
【００３７】
＜改竄防止機能＞
次に、改竄防止機能を有する制御部１１について詳しく説明する。図５は、実施例１における改竄防止機能の一例を示すブロック図である。図５に示す制御部１１は、周波数計算部１０１、係数選択部１０２、コード生成部１０３、署名生成部１０４、圧縮部１０５を有する。ここで、画像処理装置１０は、改竄から保護したい画像、及び固有の秘密鍵を入力データとする。
【００３８】
周波数計算部１０１は、画像の周波数係数を計算する。周波数計算部１０１は、例えば、ＪＰＥＧ（Joint Photographic Experts Group）のように、画像を８×８ブロックに分割し、それぞれのブロックに対して周波数変換を用いて周波数係数を計算する。周波数計算部１０１は、計算した周波数係数を係数選択部１０２に出力する。
【００３９】
係数選択部１０２は、任意の２つの周波数係数を組（ペア）にして複数選択する。２つの周波数係数の選択方法は、１つの周波数係数は、例えばラスタスキャン（走査）順に選択し、他方の周波数係数は、所定基準で選択する方法がある。係数選択部１０２は、選択した複数の周波数係数の組をコード生成部１０３に出力する。
【００４０】
コード生成部１０３は、選択された各組の２つの周波数係数の差分絶対値と閾値との比較結果及びその２つの周波数係数の大小関係に基づいてコードを生成する。生成されたコードは、署名生成部１０４に出力される。
【００４１】
署名生成部１０４は、取得したコードに対し、秘密鍵を用いて暗号化し、この暗号化されたコードを電子署名として出力する。署名生成部１０４は、主記憶部１０２などから秘密鍵を取得しておく。
【００４２】
圧縮部１０５は、画像を圧縮し、画像のデータサイズを小さくする。圧縮部１０５は、圧縮画像を出力する。なお、圧縮部１０５は、他の装置に備えられてもよく、必須の構成ではない。
【００４３】
画像処理装置１０は、圧縮した圧縮画像、生成した電子署名、固有の秘密鍵の対となる公開鍵を出力する。これらの情報は、後の改竄検知に利用される。次に、改竄防止装置としての各処理について詳しく説明する。
【００４４】
《周波数計算部》
周波数計算部１０１は、画像を所定ブロック（例えば８×８画素ブロック）に分割する。周波数計算部１０１で用いられる周波数変換は、例えば、ＤＣＴ（Discrete Cosine Transform）や、ウェーブレット変換などが用いられる。
【００４５】
《係数選択部》
係数選択部１０２は、ブロック単位で計算された周波数係数のうち、２つの周波数係数の組を複数選択する。その選択方法は、例えば以下の２つを挙げる。
【００４６】
図６は、２つの周波数係数の組を選択する方法（その１）を示す図である。図６に示す例では、車が衝突している画像ｉｍ１１内の８×８のブロックｂｌ１１から周波数係数の組を選択する例である。
【００４７】
まず、係数選択部１０２は、周波数係数Ａ０、Ａ１、・・・を所定の走査（例えばラスタスキャン）順で選択し、このＡｎに対してペアとなる周波数係数Ｂｎをランダムに選択する。このランダムな周波数係数Ｂｎの位置については、改竄検知装置で共有しておく。
【００４８】
係数選択部１０２は、このようにして、周波数係数のペア（Ａ０、Ｂ０）、（Ａ１、Ｂ１）、・・・を決定する。このときのペアの選択方法は、１つのブロック内に閉じていてもかまわないし、複数のブロックにまたがっていてもよい。
【００４９】
図７は、２つの周波数係数の組を選択する方法（その２）を示す図である。図７に示す例では、２つのブロックにまたがって周波数係数のペアを選択する例である。図７に示すように、係数選択部１０２は、１つの周波数係数Ａｎについては、ｂｌ１１とｂｌ１２とでラスタスキャン順に選択し、他の周波数係数Ｂｎについては、ｂｌ１１とｂｌ１２とでまたがってランダムに選択する。
【００５０】
これにより、係数選択部１０２で選択された周波数係数のペア（Ａｎ，Ｂｎ）は、２つのブロックにまたがり、第三者がこのペアを予測することが困難になる。
【００５１】
なお、係数選択部１０２は、後述するコード生成部１０３で生成されるｎｕｌｌコードの数を最小限にするために、Ａ０から順にＢの中で絶対差分を最大にするペアを選んでもよい。Ａｉに対して、ペアとなるＢｉは重複してもよい。このとき、選んだＢｉの情報は、改竄検出装置に出力される。
【００５２】
《コード生成部》
コード生成部１０３は、係数選択部１０２で選択された周波数係数のペアから式（１）、（２）を計算することによって、コードを生成する。コードはＤで表される。
【００５３】
【数１】
2013126189.tif 000003
【００５４】
【数２】
2013126189.tif 000004
【００５５】
（コードＤの性質）
コードＤは、式（１）、（２）によれば、周波数係数の差分絶対値と閾値αとの比較結果、及び２つの周波数係数の大小関係から生成される。２つの選択された周波数係数同士の差分絶対値が閾値α以上の場合は、その大小関係によって「００」又は「１１」のバイナリデータの値がその組に対して与えられる。また、２つの周波数係数の差分絶対値が閾値αより小さい場合は、ｎｕｌｌコードを意味する「０１」を与える。
【００５６】
ｎｕｌｌコードを与える理由は、２つの周波数係数の差分絶対値が小さいと、圧縮後のこの２つの周波数係数の差分絶対値が０になる可能性があるからである。よって、この差分絶対値が閾値より小さい場合は、改竄の比較対象にはしないためにｎｕｌｌコードが与えられる。
【００５７】
（コードＤが再圧縮の影響を受けない理由）
画像を圧縮する場合、圧縮前あるいは最初の圧縮後の画像の周波数係数の大小関係は、周波数係数の差が十分にある場合においては、画像圧縮を行ってもその大小関係が変化することはない。
【００５８】
すなわち、コード生成部１０３は、コードＤを生成する場合、各組の周波数係数の差分絶対値が閾値α以上の場合は「００」又は「１１」のコードを与える。また、コード生成部１０３は、各組の周波数係数の差分絶対値が閾値αより小さい場合は、ｎｕｌｌコード（「０１」）を与える。
【００５９】
これにより、コード生成部１０３は、画像圧縮の影響を受けないコードＤを生成することができる。コードＤが画像圧縮の影響を受けないため、コードＤから生成される電子署名も画像圧縮の影響を受けない。画像圧縮は、圧縮された画像を再度圧縮することも含む。
【００６０】
《署名生成部》
署名生成部１０４は、コード生成部１０３で生成されたコードＤに対して、画像処理装置１０（改竄防止装置）固有の秘密鍵により、暗号化して出力する。また、署名生成部１０４は、ＳＨＡ−１などの既存ハッシュ関数を用いてハッシュ値を計算し、最後に秘密鍵を用いてハッシュ値を暗号化し、署名データとして出力してもよい。
【００６１】
＜具体例＞
次に、具体例を用いて実施例１における改竄防止処理について説明する。図８は、コードＤを生成する具体例（その１）を示す図である。図８に示す例では、係数選択部１０２は、例えば画像ｉｍ１１のブロックｂｌ１１内の周波数係数に対して、ペア（Ａｉ，Ｂｉ）（ｉ＝０〜６３）をそれぞれ選択する。図８に示す例では、周波数係数Ａｉは、ラスタスキャン順に選択され、周波数係数Ｂｉはランダムに選択される。
【００６２】
係数選択部１０２により、例えば以下のペアが選択されたとする。
（Ａ０，Ｂ０）＝（１００，２０）
（Ａ１，Ｂ１）＝（１０，７０）
（Ａ２，Ｂ２）＝（６０，６０）
（Ａ３，Ｂ３）＝（５０，２５）
・・・
（Ａ６２，Ｂ６２）＝（１０，８０）
（Ａ６３，Ｂ６３）＝（２，３）
このとき、閾値αを３０とすると、コード生成部１０３は、式（１）に基づいて、ペア毎に次のバイナリデータを与える。
Ｄ０＝００
Ｄ１＝１１
Ｄ２＝０１
Ｄ３＝０１
・・・
Ｄ６２＝１１
Ｄ６３＝０１
コード生成部１０３は、Ｄｉを順に並べてコードＤを生成する。
Ｄ＝００１１０１０１…１１０１
これにより、画像圧縮に影響を受けないコードを生成することができる。
【００６３】
＜動作＞
次に、実施例１における改竄防止装置１としての画像処理装置１０の動作について説明する。図９は、実施例１における改竄防止処理の一例を示すフローチャートである。
【００６４】
図９に示すステップＳ１０１で、周波数計算部１０１は、改竄防止対象の画像が入力されると、画像を、例えば８×８画素の複数のブロックに分割する。
【００６５】
ステップＳ１０２で、周波数計算部１０１は、全てのブロックに対し、周波数変換を行う。周波数変換は、例えばＤＣＴやウェーブレット変換である。
【００６６】
ステップＳ１０３で、係数選択部１０２は、１つ又は複数のブロックを選択する。
【００６７】
ステップＳ１０４で、係数選択部１０２は、ブロック内の周波数係数をラスタ走査しＡ０、Ａ１、Ａ２、・・・、Ａ６３とする。また、係数選択部１０２は、各Ａｉに対して、そのペアとなるＢｉを選択し、決定する。
【００６８】
ステップＳ１０５で、コード生成部１０３は、式（１）に基づき、コードＤを生成する。署名生成部１０４は、生成されたコードＤを秘密鍵で暗号化する。また、署名生成部１０４は、ハッシュ関数を用いてハッシュをとってもよい。
【００６９】
ステップＳ１０６で、制御部１１は、画像中の全てのブロックを処理したかを判定する。全てのブロックを処理していれば（ステップＳ１０６−ＹＥＳ）ステップＳ１０７に進み、全てのブロックを処理していなければ（ステップＳ１０６−ＮＯ）ステップＳ１０３に戻る。
【００７０】
ステップＳ１０７で、圧縮部１０５は、改竄防止対象の画像を圧縮する。
【００７１】
以上、実施例１によれば、圧縮を改竄とみなさずに、改竄されていないことを示す数学的根拠を有する改竄防止処理を行うことができる。これは、開示の技術が、数学的に強度が証明された電子証明の枠組みを用いているため、ハッキングに対する耐性は電子署名と同等であるからである。
【００７２】
また、画像の圧縮前後で、周波数係数の大小関係の性質を利用するので、画像圧縮を行っても、署名データの値が変更されないため、圧縮を改竄とみなさない。したがって、開示の技術は、圧縮を改竄とみなさず、ハッキングに対する耐性は強いといえる。
【００７３】
［実施例２］
次に、実施例２における画像処理装置１０について説明する。実施例２における画像処理装置１０は、改竄防止装置１として機能する。実施例２では、コードＤのｎｕｌｌデータを減らすため、周波数係数にノイズを加算又は減算する。
【００７４】
＜構成＞
実施例２における画像処理装置１０の構成は、実施例１における画像処理装置１０と同様であるため、その説明を省略する。なお、実施例２における画像処理装置の構成を説明する際、図４に示す符号と同じ符号を用いて説明する。
【００７５】
＜改竄防止機能＞
次に、改竄防止機能を有する制御部１１について詳しく説明する。図１０は、実施例２における改竄防止機能の一例を示すブロック図である。図１０に示す機能で、図５に示す機能と同様の機能は同じ符号を付し、その説明を省略する。
【００７６】
ノイズ加算部２０１は、係数選択部１０２により選択された周波数係数のペアの差分絶対値が、閾値未満であるが、この閾値から所定範囲内にある場合、この差分絶対値が閾値を超えるように２つの周波数係数の何れかにノイズを加算又は減算する。ノイズは、画質に影響を与えないような値とする。ノイズ加算部２０１は、ノイズを加算した周波数係数を含むブロックを有する画像を圧縮部２０２に出力する。
【００７７】
ノイズ加算部２０１は、ノイズを加算した周波数係数のペアを含む複数の周波数係数のペアをコード生成部１０３に出力する。コード生成部１０３、署名生成部１０４の処理は、実施例１と同様である。
【００７８】
圧縮部２０２は、ノイズ加算部２０１によりノイズが加算された周波数係数を含むブロックを有する画像に対し、圧縮処理を行う。圧縮画像は、改竄検知装置などに出力される。次に、ノイズ加算部２０１について詳しく説明する。
【００７９】
《ノイズ加算部》
ノイズ加算部２０１は、係数選択部１０２により選択された周波数係数のペアの差がある一定の範囲内の場合は、周波数係数の一方にノイズを加算又は減算して、係数の差を大きくする。
【００８０】
【数３】
2013126189.tif 000005
【００８１】
式（３）は、式（１）、（２）によるコード生成の結果、ｎｕｌｌコードが多いと、改竄検知能力が低下する問題を防いでいる。例えば、コードのすべてがｎｕｌｌコードの場合、改竄前のコードと改竄後に圧縮率を大きくした画像から計算したコードも全てｎｕｌｌコードになるため、改竄検知は不可能となる。
【００８２】
そこで、実施例２における改竄防止装置は、式（３）の動作を行うノイズ加算部２０１を持つことによって、ｎｕｌｌコードを削減し、改竄検知能力を向上させる効果を持つ。たとえば、｜Ａｉ−Ｂｉ｜の差分絶対値が９で、閾値αの値が１０の場合、差分絶対値が＋１あれば、ｎｕｌｌコードを用いないで済む。
【００８３】
そこで、差分絶対値が閾値までわずかな場合は、ノイズを加算あるいは減算して、元画像を劣化させないレベルでＡｉとＢｉとの差分絶対値が閾値を超えるように設定する方がよい。
【００８４】
例えば、｜Ａｉ−Ｂｉ｜の差分絶対値が９、β＝９、α＝１０の場合、式（３）を用いれば、その差分絶対値はαとなるので、ｎｕｌｌコードを用いないで済む。
【００８５】
また、その他の例として、Ａｉ＝１２、Ｂｉ＝３、α＝１０、β＝８のとき、
８≦｜１２−３｜＜１０であるので、
Ａｉ＝１３（Ｂｉ＝３）
あるいは
Ｂｉ＝２（Ａｉ＝１２）
上記の通り、ノイズ加算部２０１は、ノイズを用いて周波数係数の調整を行う。
【００８６】
また、閾値α、βは画像の圧縮率によって選択してもよい。圧縮率が高いと予想される場合には、αの値を大きく、βの値を小さくする。逆に圧縮率が低いと予想される場合にはαの値を小さく、βの値を大きくすることによって、誤検出を少なくすることができる。
【００８７】
閾値βは画質に影響するパラメータであるので、求める画質によって調整すればよい。βが小さい場合は、加算、減算されるノイズが多くなるので、画質は劣化する。画質、誤検出率はトレードオフの関係にあり、経験的に最適な値を設定するのが望ましい。ノイズ加算部２０１は、圧縮率をパラメータとして、α、βの取りうる値を表にしておき、動的にα、βを選択してもよい。
【００８８】
＜具体例＞
次に、具体例を用いて実施例２における改竄防止処理について説明する。図１１は、コードＤを生成する具体例（その２）を示す図である。図１１に示す例では、係数選択部１０２は、例えば画像ｉｍ１１のブロックｂｌ１１内の周波数係数に対して、ペア（Ａｉ，Ｂｉ）（ｉ＝０〜６３）をそれぞれ選択する。図１１に示す例では、周波数係数Ａｉは、ラスタスキャン順に選択され、周波数係数Ｂｉはランダムに選択される。
【００８９】
係数選択部１０２により、例えば以下のペアが選択されたとする。
（Ａ０，Ｂ０）＝（１００，２０）
（Ａ１，Ｂ１）＝（１０，７０）
（Ａ２，Ｂ２）＝（６０，６０）
（Ａ３，Ｂ３）＝（５０，２５）
・・・
（Ａ６２，Ｂ６２）＝（１０，８０）
（Ａ６３，Ｂ６３）＝（２，３）
α＝３０、β＝２５とすると、
（Ａ３，Ｂ３）＝（５０，２５）のペアだけが、式（３）の条件に当てはまるので、このペアは式（３）を用いて（Ａ３，Ｂ３）＝（５５，２５）に変更される。
【００９０】
次に、コード生成部１０３は、式（１）に基づいて、ペア毎に次のバイナリデータを与える。
Ｄ０＝００
Ｄ１＝１１
Ｄ２＝０１
Ｄ３＝００
・・・
Ｄ６２＝１１
Ｄ６３＝０１
コード生成部１０３は、Ｄｉを順に並べてコードＤを生成する。
Ｄ＝００１１０１００…１１０１
これにより、画像圧縮に影響を受けないコードを生成することができる。
【００９１】
＜動作＞
次に、実施例２における改竄防止装置の動作について説明する。図１２は、実施例２における改竄防止処理の一例を示すフローチャートである。図１２に示すステップＳ２０１〜Ｓ２０４、Ｓ２０６〜Ｓ２０８の処理は、図９に示すステップＳ１０１〜Ｓ１０４、Ｓ１０５〜Ｓ１０７の処理と同様であるため、その説明を省略する。
【００９２】
ステップＳ２０５で、ノイズ加算部２０１は、式（３）を用いて、条件を満たす周波数係数のペアにはノイズを加算する。これにより、ｎｕｌｌコードを減らすことができ、改竄検知能力を向上させることができる。
【００９３】
以上、実施例２によれば、圧縮を改竄とみなさずに、改竄されていないことを示す数学的根拠を有する改竄防止処理に対する改竄検知能力をさらに向上させることができる。また、閾値βの値が小さければ、加算されるノイズの大きさも小さくなるため、画質に与える影響を抑えることができる。
【００９４】
［実施例３］
次に、実施例３における画像処理装置３０について説明する。画像処理装置３０は、改竄検知装置２として機能する。画像処理装置３０は、実施例１や２の改竄防止装置１で出力した画像に対して共通の改竄検知処理を行う。
【００９５】
＜構成＞
図１３は、画像処理装置３０の構成の一例を示す図である。図１３に示す画像処理装置３０は、画像に対する改竄を検知する改竄検知装置２として機能する。図１３に示す画像処理装置３０は、制御部３１、主記憶部３２、補助記憶部３３、表示制御部３４、記録媒体Ｉ／Ｆ部３６、及び入力Ｉ／Ｆ部３８を有する。各部は、バスを介して相互にデータ送受信可能に接続されている。
【００９６】
制御部３１は、コンピュータの中で、各装置の制御やデータの演算、加工を行うＣＰＵ（Central Processing Unit）である。また、制御部３１は、主記憶部３２や補助記憶部３３に記憶されたプログラムを実行する演算装置である。制御部３１は、各記憶部からデータを受け取り、演算、加工した上で、出力部や各記憶部に出力する。
【００９７】
例えば、制御部３１は、補助記憶部３３に記憶される改竄検知プログラムを実行することで、画像に対する改竄検知機能の役割を果たす。
【００９８】
主記憶部３２は、例えばＲＡＭ（Random Access Memory）などであり、制御部３２が実行する基本ソフトウェアであるＯＳやアプリケーションソフトウェアなどのプログラムやデータを記憶又は一時保存する記憶部である。また、主記憶部３２は、プログラムやデータを置くワークメモリとして機能する。
【００９９】
補助記憶部３３は、例えばＨＤＤ（Hard Disk Drive）などであり、アプリケーションソフトウェアなどに関連するデータを記憶する記憶装置である。補助記憶部３３は、改竄検知プログラムを記憶する。
【０１００】
補助記憶部３３は、例えば改竄防止装置１から取得した圧縮画像や公開鍵、電子署名を記憶する。また、補助記憶部３３は、記録媒体３７などから取得された画像などを記憶しておいてもよい。
【０１０１】
表示制御部３４は、画像やデータなどを表示部３５に表示するため、表示制御を行う。
【０１０２】
記録媒体Ｉ／Ｆ（インターフェース）部３６は、ＵＳＢ（Universal Serial Bus）などのデータ伝送路を介して接続された記録媒体３７（例えば、フラッシュメモリなど）と画像処理装置３０とのインターフェースである。
【０１０３】
また、記録媒体３７に、所定のプログラム（改竄検知プログラム）を格納し、この記録媒体３７に格納されたプログラムは記録媒体Ｉ／Ｆ部３６を介して画像処理装置３０にインストールされる。インストールされた所定のプログラムは、画像処理装置３０により実行可能となる。
【０１０４】
なお、記録媒体３７を例えばＳＤカードとした場合は、記録媒体Ｉ／Ｆ部３６は、ＳＤカードスロットである。
【０１０５】
入力Ｉ／Ｆ部３８は、マウスやキーボードの入力デバイス３９から入力されたデータを取得する。取得されたデータは、主記憶部３２や補助記憶部３３に記憶される。なお、入力デバイス３９や表示部３５は、画像処理装置３０に内蔵されてもよい。
【０１０６】
また、画像処理装置３０は、通信部を有し、有線又は無線で通信を行う。通信部は、例えば、圧縮画像、公開鍵、電子署名を改竄防止装置１から受信する。
【０１０７】
＜改竄検知機能＞
次に、改竄検知機能を有する制御部３１について詳しく説明する。図１４は、実施例３における改竄検知機能の一例を示すブロック図である。図１４に示す制御部３１は、周波数計算部３０１、係数選択部３０２、コード生成部３０３、署名確認部３０４、復号部３０５を有する。ここで、改竄検知装置２は、改竄検知対象の画像、電子書名及び改竄防止装置１の秘密鍵と対となる公開鍵を入力データとする。改竄検知対象の画像は、圧縮された圧縮画像とする。
【０１０８】
周波数計算部３０１は、画像の周波数係数を計算する。周波数計算部３０１は、例えば、ＪＰＥＧ（Joint Photographic Experts Group）のように、画像を８×８ブロックに分割し、それぞれのブロックに対して周波数変換を用いて周波数係数を計算する。周波数計算部３０１は、計算した周波数係数を係数選択部３０２に出力する。
【０１０９】
係数選択部３０２は、任意の２つの周波数係数を組（ペア）にして複数選択する。２つの周波数係数の選択方法は、改竄防止装置１と同じ選択方法である。係数選択部３０２は、選択した複数の周波数係数の組をコード生成部３０３に出力する。
【０１１０】
コード生成部３０３は、選択された各組の２つの周波数係数の大小関係に基づいてコードを生成する。生成されたコードは、署名確認部３０４に出力される。
【０１１１】
署名確認部３０４は、改竄防止装置１から取得された公開鍵で、電子署名を復号したコードと、コード生成部３０３により生成されたコードとを比較し、改竄検知対象の画像に対する改竄の有無を確認する。署名確認部３０４は、両者のコードを比較する際、電子署名で復号したコードのうち、ｎｕｌｌコードを除いたコードで比較を行う。
【０１１２】
また、署名確認部３０４は、比較結果が一致すれば改竄なし、比較結果が一致しなければ改竄ありと判定できる。この改竄有無結果は、例えば表示部３５などに表示される。
【０１１３】
復号部３０５は、改竄検知対象の画像を復号する。改竄検知装置２は、署名確認部３０４で改竄有りの場合、復号された画像に対して、どの部分が改竄されたかを表示することもできる。次に、改竄検知装置２としての各処理について詳しく説明する。周波数計算部３０１と係数選択部３０２とについては、実施例１や２と同様であるため、その説明を省略する。
【０１１４】
《コード生成部》
コード生成部３０３は、次の式（４）により、周波数係数の各組に対してバイナリデータを与える。
【０１１５】
【数４】
2013126189.tif 000006
【０１１６】
《署名確認部》
まず、改竄防止装置１で生成されたコードは、改竄防止装置１固有の秘密鍵によって暗号化され、電子署名とされる。これに対して、改竄検知装置２では、改竄検知対象の画像からコードを生成する。
【０１１７】
また、署名確認部３０４は、改竄防止装置１から受信した電子署名を公開鍵で復号し、コードを生成する。署名確認部３０４は、両者のコードを比較して、一致すれば改竄なし、一致しなければ改竄ありと判定する。
【０１１８】
＜部分改竄検知＞
改竄防止装置１において、画像のブロック毎にコードを複数生成し、署名を複数生成することができる。この場合、改竄検知装置２は、署名を複数確認し、改竄が検出された場合は、復号部３０５に改竄された位置の情報を伝え、改竄されている領域を図示することができる。
【０１１９】
なお、改竄検知装置２は、周波数係数のペアの一方であるＡｉがラスタ走査順であるため、コードの位置で画素の位置が分かり、両者のコードの比較結果で、どの位置のデータが一致しないかを特定することで、画素レベルで改竄を検知することができる。
【０１２０】
＜具体例＞
次に、具体例を用いて実施例３における改竄検知処理について説明する。以下では、簡単のため、図１１に示す画像が圧縮された画像を改竄検知対象とする。
【０１２１】
まず、署名確認部３０４は、改竄防止装置１が生成した電子署名からコードを復号する。ここでは、実施例２における改竄防止装置１で生成されたコードＤ＝００１１０１００…１１０１が得られたとする。
【０１２２】
係数選択部３０２は、実施例２における改竄防止装置１と同様にして周波数係数のペアを選択する。選択された周波数係数のペアは、以下の通りである。
（Ａ０，Ｂ０）＝（９６，２０）
（Ａ１，Ｂ１）＝（１０，６７）
（Ａ２，Ｂ２）＝（６０，５６）
（Ａ３，Ｂ３）＝（５２，２５）
・・・
（Ａ６２，Ｂ６２）＝（１０，７７）
（Ａ６３，Ｂ６３）＝（０，０）
ここで、コード生成部３０３は、式（４）を用いて各組に対するバイナリデータを与える。
Ｄ'０＝００
Ｄ'１＝１１
Ｄ'２＝００
Ｄ'３＝００
・・・
Ｄ'６２＝１１
Ｄ'６３＝０１
コード生成部３０３は、これらのコードを並べてコードＤ'を生成する。
Ｄ'＝００１１００００，…，１１０１
署名確認部３０４は、実施例２における改竄防止装置１が生成したコードを公開鍵で復号する。例えば、復号されたコードは、以下の通りである。
Ｄ＝００１１０１００…１１０１
署名確認部３０４は、両者のコードのうち、改竄防止装置１のコードＤの中で、ｎｕｌｌコード（０１）の位置にあるコードを比較対象から除外する。例えば、ｎｕｌｌコードは、「ｘｘ」に置き換えられるとする。また、署名確認部３０４は、コードＤ'の中で、コードＤで「ｘｘ」になった位置と同じ位置のデータを「ｘｘ」にする。
【０１２３】
このとき、両者のコードは、
Ｄ'＝００１１ｘｘ００，…，１１ｘｘ
Ｄ  ＝００１１ｘｘ００，…，１１ｘｘ
となり、両者のコードが一致する。
よって、署名確認部３０４は、改竄はなかったと判定する。
【０１２４】
＜動作＞
次に、実施例３における改竄検知装置２として機能する画像処理装置３０の動作について説明する。図１５は、実施例３における改竄検知処理の一例を示すフローチャートである。図１５に示す処理は、実施例１や実施例２において生成された電子署名、圧縮画像、公開鍵を入力して改竄を検知する処理である。
【０１２５】
ステップＳ３０１〜Ｓ３０４の処理は、図９に示すステップＳ１０１〜Ｓ１０４の処理と同様であるため、その説明を省略する。ただし、改竄検知対象は、圧縮画像である。
【０１２６】
ステップＳ３０５で、コード生成部３０３は、式（４）を用いて、コードＤ'を生成する。
【０１２７】
ステップＳ３０６で、制御部３１は、画像中の全てのブロックで処理をしたかを判定する。全てのブロックで処理していれば（ステップＳ３０６−ＹＥＳ）ステップＳ３０７に進み、全てのブロックで処理していなければ（ステップＳ３０６−ＮＯ）ステップＳ３０３に戻る。
【０１２８】
ステップＳ３０７で、署名確認部３０４は、改竄を確認したい画像の電子署名を復号し、コードＤを生成する。
【０１２９】
ステップＳ３０８で、署名確認部３０４は、コードＤとコードＤ'とが一致するか否かを判定する。コードＤとＤ'とが一致すれば（ステップＳ３０８−ＹＥＳ）ステップＳ３０９に進み、コードＤとＤ'とが一致しなければ（ステップＳ３０８−ＮＯ）ステップＳ３１０に進む。
【０１３０】
ステップＳ３０９で、署名確認部３０４は、圧縮された画像に対し、改竄なしと判定する。
【０１３１】
ステップＳ３１０で、署名確認部３０４は、圧縮された画像に対し、改竄ありと判定する。
【０１３２】
以上、実施例３によれば、圧縮だけされた画像に対し、改竄とみなさないことができる。また、画像を書き換えるような改竄があった場合は、周波数係数の大小関係を壊す可能性が高いため、改竄を検知することができる。
【０１３３】
［変形例］
なお、前述した各実施例で説明した改竄防止処理及び改竄検知処理を実現するためのプログラムを記録媒体に記録することで、各実施例での改竄防止処理及び改竄検知処理をコンピュータに実施させることができる。例えば、このプログラムを記録媒体に記録し、このプログラムが記録された記録媒体をコンピュータや携帯装置に読み取らせて、前述した改竄防止処理及び改竄検知処理を実現させることも可能である。
【０１３４】
なお、記録媒体は、ＣＤ−ＲＯＭ、フレキシブルディスク、光磁気ディスク等の様に情報を光学的，電気的或いは磁気的に記録する記録媒体、ＲＯＭ、フラッシュメモリ等の様に情報を電気的に記録する半導体メモリ等、様々なタイプの記録媒体を用いることができる。
【０１３５】
画像処理装置で実行されるプログラムは、各実施例で説明した各部を含むモジュール構成となっている。実際のハードウェアとしては、制御部が補助記憶部からプログラムを読み出して実行することにより上記各部のうち１又は複数の各部が主記憶部上にロードされ、１又は複数の各部が主記憶部上に生成されるようになっている。
【０１３６】
また、改竄防止対象又は改竄検知対象の画像は、動画でもよく、各フレーム毎に、上記の処理を行ってもよいし、所定間隔のフレーム毎に上記処理を行ってもよい。
【０１３７】
以上、実施例について詳述したが、特定の実施例に限定されるものではなく、特許請求の範囲に記載された範囲内において、種々の変形及び変更が可能である。また、前述した各実施例の構成要素を全部又は複数を組み合わせることも可能である。
【０１３８】
なお、以上の各実施例に関し、さらに以下の付記を開示する。
（付記１）
画像の周波数係数を計算する周波数計算部と、
前記周波数係数から、２つの周波数係数のペアを複数選択する係数選択部と、
選択された各ペアの２つの周波数係数の差分絶対値と閾値との比較結果及び該２つの周波数係数の大小関係に基づきコードを生成するコード生成部と、
前記コードを秘密鍵で暗号化し、電子署名を生成する電子署名生成部と、
を備える画像処理装置。
（付記２）
前記コード生成部は、
前記差分絶対値が前記閾値未満の場合、該差分絶対値のペアに対してｎｕｌｌコードを与える付記１記載の画像処理装置。
（付記３）
前記差分絶対値が前記閾値未満であり、前記閾値から所定範囲内である場合、前記差分絶対値が前記閾値を超えるように前記２つの周波数係数のいずれかにノイズを加算又は減算するノイズ加算部をさらに備える付記２記載の画像処理装置。
（付記４）
前記係数選択部は、
前記ペアを選択する際、第１の周波数係数は所定の走査順に選択し、第２の周波数係数を所定基準に従って選択する付記１乃至３いずれか一項に記載の画像処理装置。
（付記５）
前記所定基準は、前記第１の周波数係数と前記第２の周波数係数との差分絶対値が最大となることである付記４記載の画像処理装置。
（付記６）
前記周波数計算部は、
前記画像が分割されたブロック単位で前記周波数係数を計算し、
前記係数選択部は、
１つのブロック内、又は２つ以上のブロックに跨って前記２つの周波数係数のペアを選択する付記１乃至５いずれか一項に記載の画像処理装置。
（付記７）
画像の周波数係数を計算し、
前記周波数係数から、２つの周波数係数のペアを複数選択し、
選択された複数の前記ペアの２つの周波数係数の差分絶対値と閾値との比較結果及び該２つの周波数係数の大小関係に基づきコードを生成し、
前記コードを秘密鍵で暗号化し、電子署名を生成する処理をコンピュータが実行する改竄防止方法。
（付記８）
改竄検知対象の画像の周波数係数を計算する周波数計算部と、
前記周波数係数から、２つの周波数係数のペアを複数選択する係数選択部と、
選択された複数の前記ペアの２つの周波数係数の大小関係に基づきコードを生成するコード生成部と、
電子署名と公開鍵とを取得し、該公開鍵で該電子署名を復号したコードと、前記コード生成部により生成されたコードとを比較し、前記画像に対する改竄の有無を確認する署名確認部と、
を備える画像処理装置。
（付記９）
前記署名確認部は、
前記復号したコードのうち、ｎｕｌｌコードの部分以外で比較を行う付記７記載の画像処理装置。
（付記１０）
改竄検知対象の画像の周波数係数を計算し、
前記周波数係数から、２つの周波数係数のペアを複数選択し、
選択された複数の前記ペアの２つの周波数係数の大小関係に基づきコードを生成し、
電子署名と公開鍵とを取得し、該公開鍵で該電子署名を復号したコードと、前記生成されたコードとを比較し、前記画像に対する改竄の有無を確認する処理をコンピュータが実行する改竄検知方法。
【符号の説明】
【０１３９】
１  改竄防止装置
２  改竄検知装置
１０、３０  画像処理装置
１１、３１  制御部
１２、３２  主記憶部
１３、３３  補助記憶部
１４、３４  表示制御部
１６、３６  記録媒体Ｉ／Ｆ部
１８  カメラＩ／Ｆ部
３８  入力Ｉ／Ｆ部
１０１、３０１  周波数計算部
１０２、３０２  係数選択部
１０３、３０３  コード生成部
１０４  署名生成部
１０５、２０２  圧縮部
２０１  ノイズ加算部
３０４  署名確認部
３０５  復号部
【図１】
2013126189.tif 000007
【図２】
2013126189.tif 000008
【図３】
2013126189.tif 000009
【図４】
2013126189.tif 000010
【図５】
2013126189.tif 000011
【図６】
2013126189.tif 000012
【図７】
2013126189.tif 000013
【図８】
2013126189.tif 000014
【図９】
2013126189.tif 000015
【図１０】
2013126189.tif 000016
【図１１】
2013126189.tif 000017
【図１２】
2013126189.tif 000018
【図１３】
2013126189.tif 000019
【図１４】
2013126189.tif 000020
【図１５】
2013126189.tif 000021