(57)【要約】      （修正有）【課題】画質劣化を抑えつつ改ざんを検出する技術を提供する。【解決手段】撮影画像に通常のＪＰＥＧ符号化のＤＣＴ係数の量子化までを施す（Ｓ２２〜Ｓ２５）。電子透かしデータのｂｉｔ数を冗長化した誤り検出符号化とし（Ｓ２７）、誤り検出符号化データを暗号化する（Ｓ２８）。ＤＣＴブロックを暗号化済み符合データのｂｉｔ数と同一個数のグループに分割する（Ｓ２９）。各ＤＣＴブロック内の量子化係数を変調させて暗号化済み符合データを埋め込む（Ｓ３０）。通常のＪＰＥＧ符号化のエントロピー圧縮・ＪＦＩＦ形式への整形を行う（Ｓ３１．Ｓ３２）。【選択図】図３
2010245876.tif 000002
【特許請求の範囲】
【請求項１】
撮影手段をもって撮影した画像をＪＰＥＧ符号化すると同時に該撮影画像に改ざん検出用電子透かしを埋め込む方法であって、
前処理手段が、前記撮影画像にＹＣｂＣｒ変換・ダウンダンプリング・離散コサイン変換・ＤＣＴ係数の量子化を施し、各ＤＣＴブロック内に量子化係数が存在する状態に処理する第１ステップと、
誤り符号化手段が、前記電子透かしデータのｂｉｔ数に冗長化性を付与した誤り検出符号化データを生成する第２ステップと、
暗号化手段が、前記誤り検出符号化データに暗号化を施した暗号化済み符合データを生成する第３ステップと、
グループ分割手段が、前記各ＤＣＴブロックをＹ，Ｃｂ，Ｃｒ色成分に応じて、前記暗号化済み符合データのｂｉｔ数と同一個数ごとのグループに分割する第４ステップと、
最大値Ａ選択・値Ｂ算出手段が、前記各ＤＣＴブロック内の量子化係数を変調させるために、前記各ＤＣＴブロック内の量子化係数のうち絶対値が最大の値Ａを選択し、該値Ａとの差を演算する値Ｂを乱数発生手段の乱数のハッシュ関数を用いて求める第５ステップと、
埋め込み手段が、前記ＤＣＴブロックに埋め込む前記暗号化済み符合データのｂｉｔ値（０  ｏｒ  １）に応じて前記値Ａ．Ｂの差の偶奇を調整するために、前記値Ａに「−Ｋ，０，Ｋ」のいずれかを加算する第６ステップと、
ヘッダー保存手段が、（最終番号−１）グループの最終ＤＣＴブロックの前記Ｂ値を算出するために用いたハッシュ関数のハッシュ値と、該ＤＣＴブロックに前記値Ａの調整済みの量子化係数を連結した数値のハッシュ値との排他的論理和を演算し、該演算値を暗号化後にＪＰＥＧフォーマットのヘッダー内のコメント欄に保存する第７ステップと、
圧縮・整形手段が、前記暗号済み符合データのｂｉｔ値を埋め込んだ各ＤＣＴブロックの量子化係数を、エントロピー圧縮およびＪＦＩＦ形式整形する第８ステップと、
を有することを特徴とする改ざん検出用電子透かしの埋め込み方法。
【請求項２】
撮影手段をもって撮影されたＪＰＥＧフォーマット画像に改ざん検出用の電子透かしを埋め込む方法であって、
前処理手段が、前記ＪＰＥＧフォーマット画像にＪＦＩＦ形式からのデータ整形とエンピロー復号とを施し、各ＤＣＴブロックに量子化係数が存在する状態に処理する第１ステップと、
誤り符号化手段が、前記電子透かしデータのｂｉｔ数に冗長化性を付与した誤り検出符号化データを生成する第２ステップと、
暗号化手段が、前記誤り検出符号化データを暗号化した暗号化済み符合データを生成する第３ステップと、
グループ分割手段が、前記各ＤＣＴブロックをＹ，Ｃｂ，Ｃｒ色成分に応じて、前記暗号化済み符合データのｂｉｔ数と同一個数ごとのグループに分割する第４ステップと、
最大値Ａ選択・値Ｂ算出手段が、前記ＤＣＴブロック内の量子化係数を変調させるために、前記各ＤＣＴブロック内の量子化係数のうち絶対値が最大の値Ａを選択し、該値Ａとの差を演算する値Ｂを乱数発生手段の乱数のハッシュ関数を用いて求める第５ステップと、
埋め込み手段が、前記ＤＣＴブロックに埋め込む前記暗号化済み符合データのｂｉｔ値（０  ｏｒ  １）に応じて前記値Ａ．Ｂの差の偶奇を調整するために、前記値Ａに「−Ｋ，０，Ｋ」のいずれかを加算する第６ステップと、
ヘッダー保存手段が、（最終番号−１）グループの最終ＤＣＴブロックの前記Ｂ値を算出するために用いたハッシュ関数のハッシュ値と、該ＤＣＴブロックに前記値Ａの調整済みの量子化係数を連結した数値のハッシュ値との排他的論理和を演算し、該演算値をＪＰＥＧフォーマットのヘッダー内のコメント欄に暗号化して保存する第７ステップと、
圧縮・整形手段が、前記暗号済み符合データのｂｉｔ値を埋め込んだ前記各ＤＣＴブロックの量子化係数を、エントロピー圧縮およびＪＦＩＦ形式整形する第８ステップと、
を有することを特徴とする改ざん検出用電子透かしの埋め込み方法。
【請求項３】
請求項１または２のいずれか１項に記載の方法をもって電子透かしを埋め込んだＪＰＥＧ画像の改ざんを検出する方法であって、
前処理手段が、入力されたＪＰＥＧ符号化画像にＪＦＩＦ形式からのデータ整形とエンピロー復号とを施し、各ＤＣＴブロックに量子化係数が存在する状態に処理する第１ステップと、
グループ分割手段が、前記各ＤＣＴブロックをＹ，Ｃｂ，Ｃｒ色成分に応じて、前記電子透かしの埋め込み時に使用した暗号化済み符合データのｂｉｔ数と同一個数ごとのグループに分割する第２ステップと、
最大値Ａ選択・値Ｂ算出手段が、前記ＤＣＴブロック内の量子化係数を前記電子透かしの埋め込み時と同様に変調させるために、前記各ＤＣＴブロック内の量子化係数のうち絶対値が最大の値Ａを選択し、該値Ａとの差を演算する値Ｂを乱数発生手段の乱数のハッシュ関数を用いて求める第３ステップと、
ビットデータ出力手段が、前記各ＤＣＴブロックに埋め込まれた前記暗号化済み符合データのｂｉｔ値（０  ｏｒ  １）を前記値Ａ．Ｂの差の偶奇に応じて取得する第４ステップと、
暗号復号化手段が、前記第４ステップの取得値（０  ｏｒ  １）に対して、前記暗号化済み符合データの埋め込み時と同一の暗号手法および暗号鍵を用いて暗号を復号化する第５ステップと、
誤り検出復号化手段が、前記第５ステップで暗号復号化されたデータに誤り復号化処理を施し、誤りの有無・誤りの発生したＤＣＴブロックを含むグループを検出する第６ステップと、
ヘッダー保存値比較手段が、（最終番号−１）グループの最終ＤＣＴブロックの前記Ｂ値を算出するために用いたハッシュ関数のハッシュ値と、該ＤＣＴブロックに前記値Ａの調整済みの量子化係数を連結した数値のハッシュ値との排他的論理和を演算する第７ステップと、
ヘッダー保存値比較手段が、前記第７ステップの演算結果を前記ＪＰＥＧフォーマットのヘッダー内におけるコメント欄の保存値と同一手法で暗号化し、該暗号化された前記演算結果と前記保存値とを比較することにより、（最終番号−１）グループの最終ＤＣＴブロックの誤りを検出する第８ステップと、
逆量子化・逆ＤＣＴ・色空間変換手段が、第８ステップ後に前記各ＤＣＴブロックの量子化係数を逆量子化してＤＣＴ係数に戻し、逆ＤＣＴと色空間変換を経てＪＰＥＧ復号化する第９ステップと、
誤り発生箇所表示手段が、前記第６ステップおよび前記第８ステップで検出した誤りの有無・誤りの発生したＤＣＴブロックを含むグループの位置を表示させる第１０ステップと、
を有することを特徴とする電子透かしを用いた改ざん検出方法。
【請求項４】
撮影手段をもって撮影した画像をＪＰＥＧ符号化すると同時に撮影画像の改ざん検出用の電子透かしを埋め込む装置であって、
前記撮影画像にＹＣｂＣｒ変換・ダウンダンプリング・離散コサイン変換・ＤＣＴ係数の量子化を施し、各ＤＣＴブロック内に量子化係数が存在する状態に処理する手段と、
前記電子透かしデータのｂｉｔ数に冗長化性を付与した誤り検出符号化データを生成する手段と、
前記誤り検出符号化データを暗号化した暗号化済み符合データを生成する手段と、
前記各ＤＣＴブロックをＹ，Ｃｂ，Ｃｒ色成分に応じて、前記暗号化済み符合データのｂｉｔ数と同一個数ごとのグループに分割する手段と、
前記ＤＣＴブロック内の量子化係数を変調させるために、前記各ＤＣＴブロック内の量子化係数のうち絶対値が最大の値Ａを選択し、該値Ａとの差を演算する値Ｂを乱数発生手段の乱数のハッシュ関数を用いて求める手段と、
前記ＤＣＴブロックに埋め込む前記暗号化済み符合データのｂｉｔ値（０  ｏｒ  １）に応じて前記値Ａ．値Ｂの差の偶奇を調整するために、前記値Ａに「−Ｋ，０，Ｋ」のいずれかを加算する手段と、
（最終番号−１）グループの最終ＤＣＴブロックの前記Ｂ値を算出するために用いたハッシュ関数のハッシュ値と、該ＤＣＴブロックに前記値Ａの調整済みの量子化係数を連結した数値のハッシュ値との排他的論理和を演算し、該演算値をＪＰＥＧフォーマットのヘッダー内のコメント欄に暗号化して保存する手段と、を備え、
前記暗号済み符合データを埋め込んだ前記各ＤＣＴブロックの量子化係数をエントロピー圧縮およびＪＦＩＦ形式整形することでＪＰＥＧ符号化を完了させる
ことを特徴とする改ざん検出用電子透かしの埋め込み装置。
【請求項５】
撮影手段をもって撮影されたＪＰＥＧフォーマット画像に改ざん検出用の電子透かしを埋め込む装置であって、
前記ＪＰＥＧフォーマット画像にＪＦＩＦ形式からのデータ整形とエンピロー復号とを施し、各ＤＣＴブロックに量子化係数が存在する状態に処理する手段と、
前記電子透かしデータのｂｉｔ数に冗長化性を付与した誤り検出符号化データを生成する手段と、
前記誤り検出符号化データを暗号化した暗号化済み符合データを生成する手段と、
前記各ＤＣＴブロックをＹ，Ｃｂ，Ｃｒ色成分に応じて、前記暗号化済み符合データのｂｉｔ数と同一個数ごとのグループに分割する手段と、
前記ＤＣＴブロック内の量子化係数を変調させるために、前記各ＤＣＴブロック内の量子化係数のうち絶対値が最大の値Ａを選択し、該値Ａとの差を演算する値Ｂを乱数発生手段の乱数のハッシュ関数を用いて求める手段と、
前記ＤＣＴブロックに埋め込む前記暗号化済み符合データのｂｉｔ値（０  ｏｒ  １）に応じて前記値Ａ．値Ｂの差の偶奇を調整するために、前記値Ａに「−Ｋ，０，Ｋ」のいずれかを加算する手段と、
（最終番号−１）グループの最終ＤＣＴブロックの前記Ｂ値を算出するために用いたハッシュ関数のハッシュ値と、該ＤＣＴブロックに前記値Ａの調整済みの量子化係数を連結した数値のハッシュ値との排他的論理和を演算し、該演算値をＪＰＥＧフォーマットのヘッダー内のコメント欄に暗号化して保存する手段と、を備え、
前記暗号済み符合データを埋め込んだ前記各ＤＣＴブロックの量子化係数をエントロピー圧縮およびＪＦＩＦ形式整形することでＪＰＥＧ符号化を完了させる
ことを特徴とする改ざん検出用電子透かしの埋め込み装置。
【請求項６】
請求項１または２のいずれか１項に記載の装置をもって電子透かしを埋め込んだＪＰＥＧ画像の改ざんを検出する装置であって、
入力されたＪＰＥＧ符号化画像にＪＦＩＦ形式からのデータ整形とエンピロー復号とを施し、各ＤＣＴブロックに量子化係数が存在する状態に処理する手段と、
前記各ＤＣＴブロックをＹ，Ｃｂ，Ｃｒ色成分に応じて、前記電子透かしの埋め込み時に使用した暗号化済み符合データのｂｉｔ数と同一個数ごとのグループに分割する手段と、
前記ＤＣＴブロック内の量子化係数を前記電子透かしの埋め込み時と同様に変調させるために、前記各ＤＣＴブロック内の量子化係数のうち絶対値が最大の値Ａを選択し、該値Ａとの差を演算する値Ｂを乱数発生手段の乱数のハッシュ関数を用いて求める手段と、
前記各ＤＣＴブロックに埋め込まれた前記暗号化済み符合データのｂｉｔ値（０  ｏｒ  １）を前記値Ａ．Ｂの差の偶奇に応じて取得する手段と、
前記取得値（０  ｏｒ  １）に対して、前記暗号化済み符合データの埋め込み時と同一の暗号手法および暗号鍵を用いて暗号を復号化する手段と、
該暗号復号化されたデータに誤り復号化処理を施し、誤りの有無・誤りの発生したＤＣＴブロックを含むグループを検出する手段と、
（最終番号−１）グループの最終ＤＣＴブロックの前記Ｂ値を算出するために用いたハッシュ関数のハッシュ値と、該ＤＣＴブロックに前記値Ａの調整済みの量子化係数を連結した数値のハッシュ値との排他的論理和を演算する手段と、
該演算結果を前記ＪＰＥＧフォーマットのヘッダー内におけるコメント欄の保存値と同一手法で暗号化し、該暗号化された前記演算結果と前記保存値とを比較するにより（最終番号−１）グループの最終ＤＣＴブロックの誤りを検出する手段と、
前記各ＤＣＴブロックの量子化係数を逆量子化してＤＣＴ係数に戻し、逆ＤＣＴと色空間変換を経てＪＰＥＧ復号化する手段と、
前記検出した誤りの有無・誤りの発生したＤＣＴブロックを含むグループの位置を表示させる手段と、
を備えることを特徴とする電子透かしを用いた改ざん検出装置。
【請求項７】
請求項４または５のいずれか１項に記載の改ざん検出用電子透かしの埋め込み装置を構成する各手段として、コンピュータを機能させるためのプログラム。
【請求項８】
請求項６記載の電子透かしを用いた改ざん検出装置を構成する各手段として、コンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデジタル画像の処理技術に関し、特に改ざんを検出するための電子透かし埋め込み、該電子透かしを用いて改ざんを検出する技術に関する。
【背景技術】
【０００２】
近年、デジタルカメラやカメラ付き携帯電話機の普及により、誰もが手軽にデジタル写真を撮影できるようになった。デジタルカメラやカメラ付き携帯電話機でのデジタル画像の保持方式はその圧縮率の高さと画質のトレードオフ性が良好であることから、ＪＰＥＧ符号化形式がデファクトスタンダードとなっている。一部の機種ではＪＰＥＧ２０００符号化や非圧縮画像形式で保持することができるものもあるが、最も普及しているのはＪＰＥＧ符号化方式である。
【０００３】
そして、デジタルカメラ、特にカメラ付き携帯電話機は手軽に撮影可能なため、これを用いて撮影したデジタル画像を動産担保の証拠としたり、交通事故の証拠としたり、建築現場での工程証明としたり、ゴミ処理場で正しく処理した証明としたりしたいというニーズがある。また、デジタルカメラではないが類似するものとしてはドライブレコーダーがあり、撮影された映像（画像列）は交通事故の参考証拠として用いられる。
【０００４】
ところが、デジタル画像は編集が容易であるという性質があるために、改ざんされていないかを証明するのが難しく、法律上は参考証拠に留まっており、決定的な証拠にはなり得ないおそれがある。そこで、証拠性を高めるために、デジタル画像に電子透かしを付加し、電子透かしが壊れずに入っているか否かで、画像の信憑性を高める技術が特許文献１で提案されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平１０−３０８９４３
【非特許文献】
【０００６】
【非特許文献１】三谷政昭著  ”やり直しのための工業数学，情報通信と信号解析・暗号，誤り訂正符号，積分変換”  ＣＱ出版社，ＩＳＢＮ４−７８９８−３３１８−６
【非特許文献２】青木和麻呂他著  ”１２８ビットブロック暗号Ｃａｍｅｌｌｉａアルゴリズム仕様書  第２．０版”  日本電信電話株式会社，三菱電機株式会社，２００１年９月２６日
【非特許文献３】“Ａｎｎｏｕｎｃｉｎｇ  ｔｈｅ  ＡＤＶＡＣＥＤ  ＥＮＣＲＹＰＴＩＯＮ  ＳＴＡＮＤＡＲＤ（ＡＥＳ）”，Ｆｅｄｅｒａｌ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｐｒｏｃｅｓｓｉｎｇ  Ｓｔａｎｄａｒｄｓ  Ｐｕｂｌｉｃａｔｉｏｎ  １９７，Ｎｏｖｅｍｂｅｒ  ２６，２００１
【非特許文献４】“ＳＥＣＵＲＥ  ＨＡＳＨ  ＳＴＡＮＤＡＲＤ”，Ｆｅｄｅｒａｌ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｐｒｏｃｅｓｓｉｎｇ  Ｓｔａｎｄａｒｄｓ  Ｐｕｂｌｉｃａｔｉｏｎ  １８０−２，Ａｕｇｕｓｔ  １  ２００２
【非特許文献５】結城浩著  ”暗号技術入門”  ソフトバンククリエイティブ株式会社，ＩＳＢＮ４−７９７３−２２９７−７
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、特許文献１の方法では、量子化係数のゼロラン部直前に値の大きな透かしデータを埋め込むため、透かし埋め込みによる画質劣化が大きくなるおそれがある。このように画質劣化が大きいと証拠写真としての信憑性が下がるため望ましくない
本発明は、上述のような従来技術の問題点を解決するためになされたものであり、画質劣化を抑えつつ改ざんを検出する技術を提供することを解決課題とする。
【課題を解決するための手段】
【０００８】
本発明に係る改ざん検出技術は、検出用の電子透かしを画像に埋め込む装置と、該電子透かしを用いて画像の改ざんを検出する装置とをコンビネーションとして利用する。ここではＪＰＥＧ符号化・復号化の原理が密接に関連する。
【０００９】
ＪＰＥＧ符号化は、図１（ａ）に示すように、入力画像（Ｓ０１）をＹＣｂＣｒ変換し（Ｓ０２）、Ｃｂ（青系統の色相・彩度を表す信号），Ｃｒ（赤系統の色相・彩度を表す信号）のダウンダンプリング（Ｓ０３）した後に、サンプリング画素（８×８画素）のブロック単位で離散コサイン変換（ＤＣＴ：Ｄｉｓｃｒｅｔｅ  Ｃｏｓｉｎｅ  Ｔｒａｎｓｆｏｒｍ）を行う（Ｓ０４）。
【００１０】
この変換データを量子化によって情報を落としてから（Ｓ０５）、ハフマン符号によるエントロピー符号化がなされ圧縮が行われ（Ｓ０６）、ＪＦＩＦ形式に整形される（Ｓ０９）。
【００１１】
ＪＰＥＧ復号化は、図１（ｂ）に示すように、入力されたＪＰＥＧ画像（Ｓ１１）をＪＦＩＦ形式からデータ列へ整形し（Ｓ１２）、エントロピー復号化（Ｓ１３）後に逆量子化される（Ｓ１４）。この後に逆ＤＣＴを施し（Ｓ１５）、必要があれば色空間変換が行われる（Ｓ１６）。
【００１２】
本発明では、入力画像を８×８サンプリング画素のブロック（ＤＣＴブロックと呼ぶ）に分けるときに、各々のブロックに１ｂｉｔを割り当てて、電子透かしデータを誤り検出符号化かつ暗号化したｂｉｔを埋め込む。
【００１３】
このとき電子透かしデータのｂｉｔは直接ＤＣＴブロックへは対応させずに、一度誤り検出符号化して冗長性を持たせてから対応させる。このように誤り検出符号を用いることにより、何も埋め込んでいないのに偶然埋め込んだことと同じ結果が得られることを防ぎ、また復号時に元の電子透かしデータを知ることなく誤り（改ざん）の有無を知得する効果が得られる。
【００１４】
また、画像に含まれるＤＣＴブロックの総数は一般に大きい（ＶＧＡ画像の輝度成分で４８００個以上）ので、ＤＣＴブロックをグループに分けて１グループ中で独立に誤り検出符号化するようにする。これにより誤りがあった場合はその誤りが含まれるグループを特定でき、誤り（改ざん）の場所を知るという効果が得られる
さらに、ＤＣＴブロック内の量子化係数の変調方法では、量子化係数の絶対値の最大値Ａと、乱数発生手段から得た乱数と量子化係数をハッシュ処理した値とから所定の演算を経て得られる値Ｂを用いる。
【００１５】
ここではＡに「−Ｋ」、「０」、「Ｋ（Ｋ＝任意の正奇数）」を加算することでＢとの差分の偶奇を調整する。これにより元々値の大きい係数Ａに小変分のみが与えられるため、量子化係数の変化が少なく、埋め込み後の美観に与える影響が最小限に抑えられる。ＤＣＴブロック内の量子化係数を変調する方式は、非特許文献１のものも含めて複数あるが、いずれも変調による量子化係数の変化が大きく、美観的には不利となる。
【発明の効果】
【００１６】
本発明によれば、画質劣化を抑えつつ電子透かしを埋め込んで、改ざんを検出することができる。
【図面の簡単な説明】
【００１７】
【図１】（ａ）は通常のＪＰＥＧ符号化のチャート図、（ｂ）は通常のＪＰＥＧ復号化のチャート図。
【図２】本発明の実施形態に係る改ざん検出用電子透かしの埋め込み装置の構成図。
【図３】同  全体処理のチャート図。
【図４】同  ＤＣＴブロックのブループ分割を示すフローチャート。
【図５】同  ＤＣＴブロックへ暗号化符号化データを埋め込む処理を示すフローチャート。
【図６】同  絶対値の最大値Ａの選択処理を示すフローチャート。
【図７】同  Ｂ値の算出処理を示す概略図。
【図８】同  埋め込みビットにより最大値Ａの調整を示すフローチャート。
【図９】同  量子化係数の一例図。
【図１０】同  偶数行パリティビットの付加の一例図。
【図１１】同  ＤＣＴブロックグループ分けの一例図。
【図１２】図９の逆ジグザグスキャンを示す一例図。
【図１３】図９のラスタースキャンを示す一例図。
【図１４】本発明の実施形態に係る改ざん検出装置の構成図。
【図１５】同  ＤＣＴブロックから暗号化済み符合データを検出する処理を示すフローチャート。
【図１６】誤りが検出されなかった状態を示す一例図。
【図１７】改ざん箇所の表示状態を示す一例図。
【図１８】埋め込みデータのフォーマット例を示す図。
【図１９】検出用電子透かしの埋め込み装置の他例の構成図。
【図２０】同  全体処理のチャート図。
【発明を実施するための形態】
【００１８】
以下、図面に基づき本実施形態に係る電子透かしの埋め込み装置と電子透かしを用いた改ざん検出装置とを説明する。ここではデジタル映像（Ｍｏｔｉｏｎ  ＪＰＥＧ）を処理対象とする。
【００１９】
１．電子透かしの埋め込み装置
図２は、本発明の実施形態に係る改ざん検出用電子透かしの埋め込み装置を示している。この埋め込み装置１は、例えばデジタルカメラ，デジタルビデオカメラ，カメラ付き携帯電話などのデジタル映像記録装置に内蔵されたコンピュータで構成されている。
【００２０】
ここでは前記埋め込み装置１は、前記映像記憶装置の映像取得手段２が撮影した映像、即ちフレーム画像列をＪＰＥＧ符号化すると同時に改ざん検出用の電子透かしを埋め込んでいる。この映像取得手段２は、例えばＣＣＤやＣＭＯＳなどの光学部（光学センサ）で構成されている。
【００２１】
具体的には、前記埋め込み装置１は、コンピュータのハードウェアリソース（例えば画像処理プロセッサなど）とソフトウェアリソース（ＯＳやアプリケーション）との協働の結果、前処理手段３，電子透かし入力手段４，電子透かし誤り訂正符号化手段５，暗号化手段６，ＤＣＴブロックグループ分割手段７，最大値Ａの選択手段８，Ｂ値算出手段９，乱数発生器１０，暗号化済み符号データ埋め込み手段１１，最終ＤＣＴブロック演算値ヘッダー保存手段１２，エントロピー圧縮手段１３，ＪＦＩＦ形式整形手段１４として機能する。
【００２２】
前記前処理手段３には、前記映像取得手段２の撮影したフレーム画像列が伝送される。ここで伝送される各フレーム画像は、前記光学部から出力されたアナログデータをＡ／Ｄ変換したデジタルデータとする。このとき前記前処理手段３は、各フレーム画像に対して、通常のＪＰＥＧ符号化のＤＣＴ係数量子化までの処理を行う。
【００２３】
前記電子透かし入力手段４には、前記各フレーム画像に埋め込む電子透かしデータ（例えばカレンダーの日付など）を入力するためのボタン（キー）などが該当する。
【００２４】
前記電子透かし誤り訂正符号化手段５は、入力された前記電子透かしデータを所定の誤り検出符号化方法によりデータに冗長性を付与し誤り検出符号データとする。前記暗号化手段６は、前記誤り検出符号化データを所定の暗号化手法により暗号化済み符号データとする。
【００２５】
前記ＤＣＴブロックグループ分割手段７は、前記各フレーム画像を構成するＹ，Ｃｂ，Ｃｒの３種類の色成分のＤＣＴブロックを暗号化済み符号化データのｂｉｔ数と同じ個数ずつのグループに分けるものとする。
【００２６】
前記最大値Ａの選択手段８は、各グループの１つのＤＣＴブロックの量子化係数の中から絶対値が最大のＡ値を選択する。前記Ｂ値算出手段９は、乱数発生手段１０から得られた乱数値と、各ＤＣＴブロックの量子化係数を連結した数値のハッシュ値とから演算した結果に基づくＢ値を算出する。
【００２７】
前記暗号化済み符号データ埋め込み手段１１は、Ａ値に−Ｋ，０，Ｋ（Ｋは任意の正奇数）のいずれかを加える暗号化済み符号データ埋め込む。ここではＤＣＴブロックに暗号化済み符号データの「ｂｉｔ  ０」を埋め込むときには、当該ＤＣＴブロックのＡ値とＢ値との差が偶数になるようにする。一方、ＤＣＴブロックに暗号化済み符号データの「ｂｉｔ  １」を埋め込むときには、当該ＤＣＴブロックの値Ａと値Ｂとの差が奇数になるようにする。
【００２８】
前記最終ＤＣＴブロック演算値ヘッダー保存手段１２は、（最終グループ番号−１）グループの最終ＤＣＴブロックのＡ値変更済の係数を連結した数値のハッシュ値と、該最終ＤＣＴブロックのひとつ前のＤＣＴブロック係数値を演算した値との排他的論理和を取り、その結果を所定の暗号化方法により暗号化した値をＪＰＥＧフォーマットのヘッダー内におけるコメント欄に保存する。
【００２９】
前記エントロピー圧縮手段１３と前記ＪＦＩＦ形式整形手段１４とは、埋め込み完了後の量子化係数を通常のＪＰＥＧ符号化工程と同様に、エントロピー圧縮・ＪＰＥＧフォーマットに適合するように整形し、ＪＰＥＧ符号化を完了させる。以下、図３のチャート図に基づき前記埋め込み装置１の具体的な処理内容を説明する。
【００３０】
Ｓ２１〜Ｓ２５：前記映像取得手段２にて対象を撮影すると（Ｓ２１）、撮影映像のフレーム画像が連続的に前記前処理手段３に伝送される。ここでは前記前処理手段３は、各フレーム画像に対して通常のＪＰＥＧ符号化の工程と同じ処理を進める。すなわち、デジタル映像の各フレーム画像にＹＣｂＣｒ変換（Ｓ２２）とダウンサンプリング（Ｓ２３）とＤＣＴ（Ｓ２４）を経てＤＣＴ係数の量子化（Ｓ２５）までを実行する。
【００３１】
この量子化（Ｓ２５）後は、図９に示すように、各ＤＣＴブロック内では「８×８＝６４個」の量子化係数が存在する状態になる。ここでは量子化係数はＹ，Ｃｂ，Ｃｒの色成分毎に存在する。
【００３２】
また、前記ダウンサンプリング（Ｓ２３）の際には、Ｙ成分（輝度信号）よりＣｂ（青系統の色相・彩度を表す信号），Ｃｒ成分（赤系統の色相・彩度を表す信号）の方を粗くサンプリングするのが一般的であるので、ＤＣＴブロックの数はＹ成分が最も多くなる。Ｙ，Ｃｂ，Ｃｒのいずれの場合であっても、ＤＣＴブロックの中には８×８の量子化係数が含まれる。
【００３３】
Ｓ２６：前記電子透かし入力手段４により電子透かしデータを取得する。取得した電子透かしデータは、Ｓ２７．Ｓ２８にて処理が施される。ここでは一例として電子透かしデータは、４４８ｂｉｔであるとする。この４４８ｂｉｔというのは任意に決定可能であり、Ｓ２７の誤り検出符号化により冗長化した結果のｂｉｔ数が、Ｓ２９の分割された１グループ内のＤＣＴブロック数と同じになる条件下で任意に選び得る。
【００３４】
Ｓ２７：前記透かしデータ誤り検出符号化手段５は、電子透かしデータに冗長性を付与するために、誤り検出符号化を施す。ここでは誤り検出符号に偶数行パリティを選択した事例を説明する。
【００３５】
すなわち、図１０に示すように、電子透かしデータの４４８ｂｉｔを７列６４行に並べ、各行の末尾に偶数パリティｂｉｔを１個付加する。偶数パリティｂｉｔとは、パリティｂｉｔを含めた各行の８個のデータｂｉｔの中で１となる個数が偶数個となるようにパリティｂｉｔの値を１か０に定める方法である。
【００３６】
各行に偶数パリティｂｉｔを付加した結果、誤り検出符号化されたデータは６４個のパリティｂｉｔが加わり全体で４４８＋６４＝５１２ｂｉｔとなる。誤り検出符号は偶数行パリティに限らず、これ以外の検出符号（非特許文献１参照）を用いてもよい。
【００３７】
Ｓ２８：前記暗号化手段６では、誤り検出符号化された５１２ｂｉｔのデータを暗号化して、５１２ｂｉｔの暗号化済み符号データを生成する。ここでは一例として暗号にｃａｍｅｌｌｉａ暗号（非特許文献２参照）を用いる。
【００３８】
Ｃａｍｅｌｌｉａ暗号は、１２８ｂｉｔのブロック暗号であり、１２８ｂｉｔのデータの並びを別の１２８ｂｉｔのデータの並び（暗号化済み符号化データ）に変換する。変換するときには、１２８／１９２／２５６ｂｉｔの暗号鍵を必要とする。暗号化済み符号化データを復号して元のデータ符号を得るには、暗号化時と同じ暗号鍵を使ってｃａｍｅｌｌｉａ復号処理を行う。Ｃａｍｅｌｌｉａ暗号は、１２８ｂｉｔのブロック暗号であるので、５１２ｂｉｔの誤り検出符号を暗号化する場合は５１２／１２８＝４回の処理を必要とする。暗号化方法はｃａｍｅｌｌｉａ暗号に限らず、これ以外の暗号方法を用いてもよい。
【００３９】
Ｓ２９：前記ＤＣＴブロックグループ分割手段７は、画像フレーム中のＤＣＴブロックのグループ分割を行う。グループ分割の処理手順を図４のフローチャートに基づき説明する。
【００４０】
ここでは、まずＹ色成分とＣｂ色成分とＣｒ色成分のＤＣＴブロックをこの順番につなげて１列に並べる（Ｓ４１）。つぎに、この列の若い方から数えて暗号化済み符号化データのｂｉｔ数（ここでは５１２）ずつＤＣＴブロックを取り出し第１グループとする（Ｓ４２〜Ｓ４５）。
【００４１】
このときグループには先頭の５１２個を第１グループ、次の５１２個を第２グループと連続したグループ番号を付与する。最後に５１２個に満たないＤＣＴブロックが残った場合はそれらを最終グループとする（Ｓ４６）。グループ分けの様子を図１１に示す。
【００４２】
Ｓ３０：各グループに含まれるＤＣＴブロックへ暗号化済み符号データを埋め込む。ここでは暗号化済み符号データ埋め込みは、グループ毎に独立して行なわれる。図５のフローチャートに基づき具体的な処理内容を説明する。この処理は全ＤＣＴブロックが終了するまで行われるものとする（Ｓ５１）。
【００４３】
（１）絶対値の最大値Ａ選択（Ｓ５２）
まず、前記最大値選択手段８は、６４個の量子化係数の中から絶対値の最大値Ａを探索する。ここでは量子化係数は、図９に示すように、８×８の正方形に並んでおり、左上が直流成分であり右下に行くほど高周波成分を表す。絶対値の最大値が複数個ある場合は次のようにして定める。
【００４４】
すなわち、最大値が複数ある場合は、図１２の逆ジグザグスキャン（通常のＪＰＥＧのジグザグスキャンの逆順）の順序で最初に出現したものを最大値とする。ここで同値のものがあった場合、逆ジグザグスキャンで先に出現したものを採用する理由は、透かし埋め込みに用いる量子化係数をなるべく高周波成分側に持って行き、目立ちにくくするためである。このように選んだ最大値をＡとする。
【００４５】
このアルゴリズムをフローチャートにしたものを図６に示す。ここではＡ＝０を初期値として（Ｓ６１）、量子化係数を逆ジグザグスキャンにより進み係数αを取得する（Ｓ６２）。
【００４６】
つぎに、｜α｜＞Ａが成立するか否かを確認する（Ｓ６３）。成立する場合にはＡ＝｜α｜として（Ｓ６４）、量子化係数を全スキャンしたか否かを確認し（Ｓ６５）、全スキャンが完了している場合には最大値Ａ＝｜α｜として処理を終了する。
【００４７】
一方、全スキャンしていない場合にはＳ６２に戻って逆ジグザグスキャンを再開する。このときＡの値が更新されているため（Ｓ６４）、次回以降のスキャンで同値の量子化係数αが読み取られても、Ｓ６３の｜α｜＞Ａが成立することはなく、そのままＳ６５の確認処理に進む。これにより逆ジグザグスキャンの順序で最初にスキャンされた量子化係数αが最大値Ａとされる。
【００４８】
（２）Ｂ値の算出（Ｓ５３）
前記Ｂ値算出手段９のＢ値算出方法を図７に示す。Ｂ値は、各ＤＣＴブロックにつき１個算出する。Ｂの値は０か１を取る。ここではＢ値を算出するために、乱数発生器１０から得られた乱数のハッシュ値を用いる（非特許文献５  ｐ．１６２〜ｐ．１７５参照）。ハッシュ関数により算出されるハッシュ値のｂｉｔ長をＨとする。Ｈは使用するハッシュ関数により異なるが、ここでは一例としてＳＨＡ−１ハッシュ関数（非特許文献４．非特許文献５のｐ．１７６〜ｐ．１８４参照）を用いるので、Ｈ＝１６０とする。なお、ＳＨＡ−１以外のハッシュ関数を用いてもよい。
【００４９】
具体的には、第１番目のＤＣＴブロックのＢの値は、図７に示すように、前記乱数発生器１０により発生した乱数のハッシュ値の最下位ｂｉｔとする。また、第ｎ番目のＤＣＴブロックのＢ値は、ひとつ前（ｎ−１）のＢ値算出に使用した１６０ｂｉｔのハッシュ値と、ひとつ前（ｎ−１）のブロックにＳ５４のＡ値調整を加えた後のＤＣＴ係数をラスタースキャン（図１３参照）順に並べた数値のハッシュ値とのｂｉｔ毎に排他的論理和（ＸＯＲ）を取った値を、最下位ｂｉｔから数えて第ｎ番目のｂｉｔ値とする。
【００５０】
このときＤＣＴブロック個数（ｎ）が、乱数のハッシュ値ｂｉｔ長Ｈより大きい場合は「ｎ≦Ｈ」となるまでｎからＨを減じた値を用いる。例えば、ＤＣＴブロック個数ｎが１６０を越える場合に、第１６０ｂｉｔまでＢ値算出に使用したら次ブロック以降は最下位のｂｉｔに戻って算出するものとする。
【００５１】
また、前記ヘッダー保存手段１２は、（最終−１）グループの最終ＤＣＴブロックのＢ値算出に使用した１６０ｂｉｔのハッシュ値と、同ブロックの前記Ａ値調整後のＤＣＴ係数をラスタースキャン順に並べた数値とのｂｉｔ毎の排他的論理和（ＸＯＲ）を取った値を、暗号化後にＪＰＥＧヘッダーのコメント欄に保存する。
【００５２】
この値には、１２８ｂｉｔの倍数長となるように最下位ｂｉｔの右側に「０」を付加（パディング）して加えられているものとする。また、暗号化は、誤り検出符号を暗号化した方法と同じ１２８ｂｉｔブロック暗号方法および同じ暗号鍵を用いているものとする。
【００５３】
なお、前記乱数発生器１０は、乱数の種（初期値）が同一ならば同じ乱数列が得られる方法、例えば線形合同法を用いる。もっとも、乱数発生方法は線形合同法に限らず、乱数の種を決定すれば出力される乱数列が決定論的に決まるような他の方法を使用してもよい。
【００５４】
（３）Ａ値の調整（Ｓ５４）
前記暗号化済み符号データ埋め込み手段１１は、埋め込むｂｉｔによりＡ値を調整する。すなわち、Ｓ２８で生成された暗号化済み符号データのｂｉｔ「１」を埋め込むＤＣＴブロックであれば「Ａ−Ｂ＝奇数」となるように調整する一方、該暗号化済み符号データのｂｉｔ「０」を埋め込むＤＣＴブロックであれば「Ａ−Ｂ＝偶数」となるようにＡを調整する。
【００５５】
具体的には、Ａ値の調整は、（イ）任意正奇数を減じる、（ロ）任意正奇数を加える、（ハ）何もしないかの三つの手法から選択するものとする。任意正奇数は、より小さい値を使う方が埋め込み後の美観は有利となる。図８のフローチャートに基づき前記調整方法の具体的処理内容を説明する。
【００５６】
最初に「Ａ−Ｂ＝偶数」が成立するか否かを確認する（Ｓ８１）。例えば「Ａ＝１５，Ｂ＝０」の場合にデータ「１」を埋め込みたいとする。この場合には「Ａ−Ｂ＝１５」で既に奇数であるから、Ｓ８２に進む。ここでは「埋め込みビット＝０」が確認される（Ｓ８２）。この事例では「１」を埋め込みたいので、「（ハ）何もしない」が選択される。
【００５７】
「Ａ＝１５，Ｂ＝１」の場合には、「Ａ−Ｂ＝１４」で偶数であるから、Ｓ８３へ進む。Ｓ８３でも「埋め込みビット＝０」が確認される。ここでは「１」を埋め込みたいので、Ｓ８４に進む。Ｓ８４では「Ａ≧０」が成立するか否か、即ちＡの正負が確認される。この場合は正値であるので、「（ロ）任意正奇数を加える」が選択され、「Ａ＝Ａ＋１」の演算が行われる（Ｓ８５）。この事例では、Ａ＝１５＋１＝１６に調整される。
【００５８】
また、「Ａ＝−１８，Ｂ＝１」の場合にデータ「０」を埋め込みたいとする。この場合は、「Ａ−Ｂ＝−１９」で奇数であるから、Ｓ８２に進む。ここでは「０」を埋め込みたいので、Ｓ８４に進み、Ａの正負が確認される。この場合は、Ａが負値であるから、「（イ）任意正奇数を減じる」が選択され、「Ａ＝Ａ−１」の演算が行われる（Ｓ８６）。この事例では、Ａ＝−１８−１＝−１９に調整される。もし、「Ａ＝−１８，Ｂ＝０」の場合は、「Ａ−Ｂ＝−１８」で偶数なため、Ｓ８１．Ｓ８３に従って「（ハ）何もしない」が選択される。
【００５９】
このように前記暗号化済み符号データ埋め込み手段１１が、第１グループ内の各ＤＣＴブロックに暗号済み符号データのｂｉｔを埋め込んだ後に、第２グループ〜（最終−１）グループまでについても同様に暗号済み符号データを埋め込む。ここで最終グループには第１グループと同じ値を埋め込み、足りないＤＣＴブロックについては無視するものとする。暗号化済み符号データは、全てのグループで同じデータでもよく、また各グループで異なってもよい。暗号化済みデータが各グループで同じか、あるいは異なるかはアプリケーションの都合により決めてもよい。
【００６０】
Ｓ３１．Ｓ３２：Ｓ３０にて全グループについて暗号化済み符号データｂｉｔの埋め込みが終了した後には、通常のＪＰＥＧ符号化の工程と同様にエンピロー圧縮（Ｓ３１）、ＪＦＩＦ形式に適合するようにデータ整形（Ｓ３２）を実行し、ＪＰＥＧ列の映像として出力する。出力された映像はメモリカードなどの保存手段に記憶されるものとする。
【００６１】
ここで出力される映像は、電子透かしを量子化係数に埋め込むにあたって、Ｓ５４に示すように、絶対値の最大な量子化係数Ａに最小の正奇数（１．０．−１）が変数に与えられているにすぎないことから、美感を損ねることなく電子透かしが埋め込まれ、これにより画質劣化が最小限に抑えられ、証拠としての信憑性などが向上する。
【００６２】
このとき埋め込む電子透かしデータは、Ｓ２８で暗号化されているばかりか、埋め込むアルゴリズム（Ｓ５３．Ｓ５４）にも乱数を利用して埋め込む数値を定めていることから、暗号化手段６の暗号鍵および乱数発生器１０の初期値を知得していなければ、前記埋め込み装置１のアルゴリズムを熟知した者でも偽造することが難しい。
【００６３】
したがって、暗号鍵と乱数の初期値を秘密にしておけば、偽の映像を真正な映像と偽る攻撃を防ぐことができる。この場合に乱数により決まる埋め込み数値が画像の内容によっても変化するため、複数の埋め込み済み画像を解析して、前記埋め込み装置１の乱数生成パターンを推定して電子透かしを偽造しようとする攻撃者に対しても乱数生成パターンの推定を困難とさせる効果が生じる。
【００６４】
また、電子透かしを複数の色成分に埋め込むことにより、同一の画像位置に複数の電子透かしを埋め込み可能なため、前記埋め込み装置１の電子透かしを偽造しようとする攻撃者は、複数の色成分の電子透かしを両方とも矛盾のないように偽造する必要があり、この点でも偽造難易度が増加する。
【００６５】
２．改ざん検出装置
図１４は、本発明の実施形態に係る改ざん検出装置を示している。この検出装置２０は、前記埋め込み装置１で電子透かしを埋め込まれたＪＰＥＧ画像列の改ざんの有無を検出する。
【００６６】
前記検出装置２０は、前記映像記録装置に内蔵されていてもよく、また別個の装置、例えばパーソナルコンピュータ（ＰＣ）などにより構成してもよい。具体的には、前記検出装置２０は、コンピュータのハードウェアリソース（例えば前記映像記憶装置の画像処理プロセッサや、パーソナルコンピュータのＣＰＵなど）とソフトウェアリソース（ＯＳやアプリケーション）との協働の結果、ＪＰＥＧ符号化映像データ入力手段２１，前処理手段２２，ＤＣＴブロックグループ分割手段６，最大値Ａの選択手段８，Ｂ値の算出手段９，乱数発生手段１０，ビットデータ取得手段２３，暗号復号化手段２４，比較手段２５，誤り検出復号手段２６，逆量量子化手段２７，逆ＤＣＴ手段２８，色空間変換手段２９，誤り発生箇所重畳表示手段３０として機能している。
【００６７】
ここでは前記検出装置２０のＤＣＴブロックグループ分割手段７，乱数発生器１０，暗号復号化手段２４，誤り検出復号手段２６は、前記埋め込み装置１で電子透かしを埋め込む際に使用したＤＣＴブロックグループ分割形状、誤り検出符号化方法と暗号化方法とその暗号鍵、乱数発生方法と乱数発生の初期値のそれぞれの情報を既知なものとする。
【００６８】
このような前記検出装置２０の検出処理手順を説明すれば、まず前記映像データ入力手段２１は、前記メモリカードなどの保存手段に記憶されたＪＰＥＧ列の映像を読み込んで取得する。ここで取得されたデジタル映像データは、前記前処理手段２２を通じて通常のＪＰＥＧ複号化工程を経る。すなわち、各ＪＰＥＧ画像フレームが、ＪＦＩＦ形式からデータ列に整形され、該データ列がエントロピー復号化され、ＤＣＴブロックの量子化係数まで変換される。
【００６９】
つぎに、前記ＤＣＴブロックグループ分割手段７により、埋め込み時と同一のＤＣＴブロックのグループ分け（図１１参照）が行われる。この各グループのＤＣＴブロックについて、暗号化済み符号データのｂｉｔ（１  ｏｒ  ０）を検出する。
【００７０】
この検出処理を図１５のフローチャートに基づき説明する。この処理は各グループで独立に行われる。最初に前記最大値Ａの選択手段８が、最初のＤＣＴブロックについて６４個の量子化係数値を吟味して絶対値の最大値Ａを決める（Ｓ１５２）。このＡを決める方法は埋め込み時（図６参照）と全く同じである。つぎにＢ値算出手段９が埋め込み時と同じ手法でＢ値を決める（Ｓ１５３）。このとき用いる乱数発生器１０の構成と初期値は埋め込み時と同一とする。なお、前記各手段７〜１０は、前記埋め込み装置１と同様な処理を実行するため、前記検出装置２０を前記映像記録装置に内蔵する場合は前記埋め込み装置１と兼用してもよい。
【００７１】
前記ビットデータ取得手段２３は、Ｓ１５２．Ｓ１５３で定めたＡとＢを吟味し（Ｓ１５４）、Ａ−Ｂが偶数ならば「０」を取得する（Ｓ１５５）一方、Ａ−Ｂが奇数なら「１」を取得する（Ｓ１５６）。このＳ１５２〜Ｓ１５６を全ブロックに施して検出処理を終了する（Ｓ１５１）。
【００７２】
そして、前記暗号符号化手段２４は、Ｓ１５５．Ｓ１５６にて１グループ内の全てのＤＣＴブロックから埋め込みｂｉｔ（１  ｏｒ  ０）を取得（本例では全部で５１２ｂｉｔ）した後に、取得データに対して暗号の復号化を行う。この復号時には埋め込み時と同じ暗号方法および暗号鍵を用いる。これにより得られた５１２ｂｉｔの復号化データ符号に対し、誤り検出復号手段２６にて誤り検出復号化処理を行う。その結果、誤りの有無が検出され、誤りがなければ４４８ｂｉｔの埋め込み透かしデータが得られる一方、誤りがあれば誤りを含むグループを示す情報が得られる。
【００７３】
第１グループの改ざん検出後に、第２グループ〜（最終−１）グループまで同一の処理手順で改ざん検出を行う。最終グループでは検出されたビット列の並びが第１グループと同一であるか否かを確認し、同一であれば誤りが無いものと判断する。最終グループはＤＣＴブロック数が５１２個に満たないため、第１グループと比較する際に不足する分が生じるがそれは無視する。
【００７４】
また、前記比較手段２５は、次の処理手順を実行する。すなわち、（最終−１）グループの最終ＤＣＴブロックのＢ値算出に使用した１６０ｂｉｔのハッシュ値と同ＤＣＴブロックのＤＣＴ係数をラスタースキャン順に並べた数値とのｂｉｔ毎の排他的論理和（ＸＯＲ）を取った値を求める。
【００７５】
この値に１２８の倍数長となるように最下位ｂｉｔの右側に「０」を付加（パディング）して加えた数値を、誤り検出符号を符号化した方法と同一の１２８ｂｉｔブロック暗号方法および同一の暗号鍵により暗号化する。この暗号化後にＪＰＥＧヘッダーのコメント欄の数値と比較する。
【００７６】
また、前記コメント欄の数値を、誤り検出符号の符号化方法と同一の１２８ｂｉｔブロック暗号方法および同一の暗号鍵により復号化し、前記排他的論理和の値と比較してもよい。
【００７７】
比較の結果が同一であれば誤りは無く、違っていれば（最終−１）グループに誤りがあると判別する。この処理は冗長ではあるが、（最終−１）グループの最終ＤＣＴブロックは偽造に対して最も脆弱なため、この処理により偽造耐性が頑健とされる。
【００７８】
その後に前記逆量子化手段２７・前記逆ＤＣＴ手段２８にて、通常のＪＰＥＧ復号化の手順と同様に各ＤＣＴブロックの量子化係数を逆量子化しＤＣＴ係数に戻し、それに対し逆ＤＣＴを行う。さらに前記色空間変換手段２９にて色空間変換を行い映像とする。
【００７９】
したがって、前記検出装置２０の処理手順によれば、誤り検出復号手段２６にて検出された誤りの有無、誤りグループ、埋め込み透かしデータを用いて、以下のように改ざんの有無と改ざん場所を判別することができる。すなわち、図１６に示すように、全てのグループから誤りが検出されなかった場合は、その映像は透かし埋め込み後からの改ざんは行われていないものと判断される。
【００８０】
一方、誤りが検出されたグループ内の映像は、改ざんされているものと判断される。この場合には、図１７に示すように、グループを構成するＤＣＴブロックが占めるエリア内のいずれかに改ざん可能性がある。
【００８１】
ここで透かしが壊れていることを誤り検出符号により検出した場合には、壊れた透かしデータが含まれる映像グループ（＝映像範囲）が改ざんされたものと判断できる。これにより映像のどの場所が透かし埋め込み後に改ざんされたかを知る手段が提供される。
【００８２】
このように誤りが検出された箇所、即ち改ざんされた映像グループを前記重畳表示手段３０にてモニタなどに出力するものとする。ここではＪＰＥＧ復号化された映像に改ざんされたグループの位置をあらわす目印が重畳表示され、この点で改ざん箇所が容易に把握できる。
【００８３】
３．変形例（バリエーション）
本発明は、上記実施形態に限定されるものではなく、埋め込む電子透かしデータのｂｉｔ数の多寡、誤り検出符号の種類、暗号化方法の種類、乱数発生方法の種類などを、以下の態様などに変更することで多種多様なバリエーションが得られる。なお、本発明はデジタル映像のみならず、静止画像にも適用することができる。
【００８４】
＜埋め込み電子透かしデータｂｉｔ数＞
（１）Ｓ２６の電子透かしデータのｂｉｔ数は、誤り検出符号の面からすれば誤り検出符号が構成できる条件で任意の値を取り得る。例えば最小としたいのなら、データ１ｂｉｔとパリティ１ｂｉｔとなる。最大値の方は映像の大きさで決まる。例えば６４０×４８０画素のＶＧＡ画像を用いる場合は、Ｙ成分とＣｂ成分とＣｒ成分を合わせたＤＣＴ個数は７２００個であるから、この場合のデータｂｉｔ数の最大値、誤り検出符号を加えて７２００以下ということになる。
（２）暗号化方式の面からは、暗号化方式の選び方でｂｉｔ数が制約を受ける。前述のようにｃａｍｅｌｌｉａ暗号はブロック暗号と呼ばれ、１２８ｂｉｔ長を１ブロックとしたデータを、１２８ｂｉｔの暗号化された符号データに変換する。この場合、誤り検出符号を加えたｂｉｔ数はブロック長１２８の倍数であることが望ましい。ここで必須ではなく望ましい理由としては、１２８の倍数でなくても、ｂｉｔ数が足りない分は０か１のデータを付加（パディング）することにより１２８の倍数に出来るからである。もっとも、パディングにより無意味なデータを付加するよりは、何かしら意味のあるデータを付加した方がアプリケーション面では有利と言える。
（３）埋め込むデータを何にするかはアプリケーションに依存するが、例えば映像を証拠に利用する場合は、カメラ固有ＩＤ、撮影時刻（あればカメラ内時計より取得する）、撮影場所（ＧＰＳ等により取得する）を埋め込んでもよい。また、改ざん場所を特定するためには、映像をグループ分けしたそれぞれのグループに０あるいは１から通し番号を振り、それを埋め込んでもよい。埋め込むデータフォーマットの例を図１８に示す。埋め込むデータとフォーマットはこの例に限らずアプリケーションの要求により任意に設計し得る。
【００８５】
＜誤り検出符号の種類＞
（１）行パリティ
まず、Ｓ２７で誤り検出符合に使用する行パリティを補足説明する。この行パリティは、最も簡単な誤り検出符号であり、図１０に示すように、元ｂｉｔデータを行列の形に並べ、各行にパリティｂｉｔを１ｂｉｔ付加したものである。偶数パリティならば、パリティｂｉｔも含めた各行の１の数が偶数個になるようにパリティｂｉｔを選択する。奇数パリティであれば、１の数が奇数個になるようにパリティｂｉｔを選択する。パリティｂｉｔを付加した分、全体のｂｉｔ数が増える。詳細な説明では元データ４４８ｂｉｔを６４行に並べていたため、総ｂｉｔは６４ｂｉｔ増えて４４８＋６４＝５１２ｂｉｔとなる。行パリティと類似するものに列パリティがある。パリティの付加を列単位に行うことのみ異なり、他は行パリティと同じである。Ｓ２７などの誤り検出符合には、列パリティのほかに次のものが使用できる。
【００８６】
（２）行列パリティ
行列パリティは、元ｂｉｔデータを行列の形に並べ、各行と各列にパリティｂｉｔを付加したものである。垂直水平パリティとも呼ばれる。この行列パリティは、行パリティ・列パリティ単独よりも付加するパリティｂｉｔは増えるが、これを本発明に採用すれば、誤り検出の精度はより高くなる。
【００８７】
（３）ハミング符号
ハミング符号（非特許文献１  ｐ４７〜ｐ５３）によれば、元データｂｉｔをｋ個、検査ｂｉｔ（冗長ｂｉｔ）をｍ個とすると、２m−ｍ≧ｋ＋１の関係となる。例えば総ｂｉｔ数が５００ｂｉｔ程度と仮定するとｍ＝９，ｋ＝５０２の組み合わせがある。すなわち、元データが５０２ｂｉｔで、検査ｂｉｔが９ｂｉｔ、総ｂｉｔが５１１ｂｉｔである。なお、ハミング符号は誤り検出だけでなく誤り訂正も可能であるが、本発明では誤り訂正機能を使用しない。
【００８８】
（４）巡回符号（ＣＲＣ符号）
巡回符号（非特許文献１  ｐ５４〜ｐ６５）は、ハードウェア化しやすいという特徴を持つ。この巡回符号も誤り検出だけでなく誤り訂正が可能であるが、本発明では誤り訂正機能を使用しない。
【００８９】
（５）ＢＣＨ符号
ＢＣＨ符号（非特許文献１  ｐ６６〜ｐ７５）は、巡回符号の一種でランダム誤りの訂正能力が高い。もっとも、本発明では誤り訂正機能を使用しないため、ＢＣＨ符号を採用するのは、既にＢＣＨ符号化モジュールが存在しており、それを流用することでコスト的な利点があるときに限られる。
【００９０】
（６）ＲＳ符号（リードソロモン符号）
ＲＳ符号（非特許文献１  ｐ７６〜ｐ８１）は、巡回符号の一種でバースト誤りの訂正能力が高い。もっとも、本発明では誤り訂正機能を使用しないため、ＲＳ符号を採用するのは、既にＲＳ符号化モジュールが存在しており、それを流用することでコスト的な利点があるときに限られる。
【００９１】
＜暗号化方法の種類＞
まず、Ｓ２８などの暗号化に使用されるｃａｍｅｌｌｉａ暗号を補足説明する。Ｃａｍｅｌｌｉａ暗号は共通鍵方式１２８ｂｉｔブロック暗号であり、暗号化と復号化には共通の鍵を用いる。ここで１２８ｂｉｔブロック暗号とは、１２８ｂｉｔの元データを１２８ｂｉｔの暗号化データに暗号化及び１２８ｂｉｔの暗号化データを１２８ｂｉｔの元データに復号化できることを示す。暗号化と復号化の際には共通鍵が必要である。共通鍵は１２８ｂｉｔ長、１９６ｂｉｔ長、２５６ｂｉｔ長のいずれかを使うことができる。鍵長が長いほど暗号強度（暗号の破られ難さ）が高い。Ｓ２８などの暗号化には、ｃａｍｅｌｌｉａ暗号に限られず、例えばＡＥＳ暗号も使用することができる。
【００９２】
ＡＥＳ暗号（非特許文献３参照）は、共通鍵方式１２８ｂｉｔブロック暗号であり、暗号化と復号化には共通の鍵を用いる。１２８ｂｉｔブロック暗号とは１２８ｂｉｔの元データを１２８ｂｉｔの暗号化データに暗号化及び１２８ｂｉｔの暗号化データを１２８ｂｉｔの元データに復号化できることを示す。
【００９３】
暗号化と復号化の際には共通鍵が必要である。共通鍵は１２８ｂｉｔ長、１９６ｂｉｔ長、２５６ｂｉｔ長のいずれかを使うことができる。鍵長が長いほど暗号強度（暗号の破られ難さ）が高い。
【００９４】
＜乱数発生方法の種類＞
前記乱数発生器１０に用いる線形合同法を具体的に説明する。線形合同法は、擬似乱数列を生成するアルゴリズムである。アルゴリズムは漸化式Ｘｎ＋１＝（Ａ＊Ｘｎ＋Ｂ）ｍｏｄ  Ｍにて与えられる。Ａ，Ｂ，Ｍは定数でＭ＞Ａ，Ｍ＞Ｂ，Ａ＞０，Ｂ＞０である。Ｘ0が乱数の種であり、これを決めると以降のＸ1，Ｘ2，．．．が再現可能な形で得られる。前記乱数発生器１０では、Ｍ，Ａ，Ｂは予め適当な値を決めておき、その情報を埋め込み側と検出側で共有するものとする。乱数の種Ｘ0も適当な値を決めておいて、埋め込み側と検出側で共有しておけば良いが、前記乱数発生器１０では暗号鍵に使った値をそのまま用いるのが簡単である。ここでは線形合同法以外に例えば混合合同法などが用いられる。
【００９５】
混合合同法は、擬似乱数列を生成するアルゴリズムである。このアルゴリズムでは整数の初期値ａと値ｂ．ｃを決定し、ａｂ＋ｃ＝ａ’の式に代入する。求まったａ’の中央からａと同じ桁だけ数を抜き出し乱数を得る。その後、再び上記の式のａに得られた乱数を代入する作業を繰り返して擬似乱数列を得る。初期値ａが乱数の種となる。乱数の種は適当な値を決めておいて、埋め込み側と検出側で共有しておけばよいが、前記乱数発生器１０では暗号鍵に使った値をそのまま用いるのが簡単である。
【００９６】
＜装置構成のバリエーション＞
デジタルカメラなどのデジタル映像記憶装置には、前記画像取得手段２（光学センサなどの光学部）と電子回路とが一体化されたカメラモジュールを使用して製造されたタイプがある。この映像記憶装置によれば、前記画像取得手段２の光学部で受光した映像の各フレーム画像は、カメラモジュールからＪＰＥＧフォーマットデータとして出力される。この場合にはＪＰＥＧ符号化途中（Ｓ２２〜Ｓ２５）のＤＣＴ係数を外へ取り出して加工を施すことできない。そこで、図１９及び図２０に示すように、前処理手段４０のＪＰＥＧフォーマットデータ（Ｓ２２〜Ｓ３２の処理後）を前処理手段４１に伝送し、該前処理手段４１を通じてＪＦＩＦ形式からのデータ整形・エントロピー復号（Ｓ３３．Ｓ３４）を行ってＤＣＴ係数を得る。以後は、図３のフローチャートと同様に図２０のＳ２６以降の処理ステップを実行する。この埋め込み装置１の構成変更によれば、図２の装置構成と同様にＤＣＴ係数を変更することが可能となる。
【００９７】
４．その他
本発明は、前記埋め込み装置１としてコンピュータを機能させるための改ざん検出用電子透かしの埋め込み用プログラムとしても構築することができる。このプログラムは、前記埋め込み装置１の各手段２〜１４，２．４〜１４．４０．４１の全部あるいは一部として機能させるものでもよい。このプログラムによれば、前記埋め込み装置１のＳ２１〜Ｓ３２．Ｓ４１〜Ｓ４６．Ｓ５１〜Ｓ５４．Ｓ６１〜Ｓ６５．Ｓ８１〜Ｓ８５などの各種処理の全部あるいは一部をコンピュータに実行させる。
【００９８】
また、本発明は、前記検出装置２０としてコンピュータを機能させるための電子透かしを用いた改ざん検出用プログラムとしても構築することができる。このプログラムは、前記検出装置２０の各手段２１〜３０の全部として機能させるものでよく、あるいはその一部として機能させるものでもよい。このプログラムによれば、Ｓ１５１〜Ｓ１５６などの各種処理の全部あるいは一部をコンピュータに実行させる。
【００９９】
前記各プログラムは、ウェブサイトや電子メールなどネットワークを通じて提供することができる。また、前記各プログラムは、ＣＤ−ＲＯＭ，ＤＶＤ−ＲＯＭ，ＣＤ−Ｒ，ＣＤ−ＲＷ，ＤＶＤ−Ｒ，ＤＶＤ−ＲＷ，ＭＯ，ＨＤＤ，Ｂｌｕ−ｒａｙ  Ｄｉｓｋ（登録商標）などの記録媒体に記録して、保存・配布することも可能である。この記録媒体は、記録媒体駆動装置（光学ドライブなど）を利用して読み出され、そのプログラムコード自体が前記実施形態の処理を実現するので、該記録媒体も本発明を構成する。
【符号の説明】
【０１００】
１…改ざん検出用電子透かしの埋め込み装置
２…映像取得手段（撮影手段）
３．２２．４０．４１…前処理手段
４…電子透かしデータ入力手段
５…誤り検出符号化手段
６…暗号化手段
７…ＤＣＴブロックグループ分割手段（グループ分割手段）
８…最大値Ａの選択手段（最大値Ａ選択手段）
９…Ｂ値算出手段（値Ｂ算出手段）
１０…乱数発生器（乱数発生手段）
１１…暗号化済み符合データ埋め込み手段（埋め込み手段）
１２…最終ブロック演算値ヘッダー保存手段（ヘッダー保存手段）
１３…エントロピー圧縮手段（圧縮手段）
１４…ＪＦＩＦ形式整形手段（整形手段）
２３…ビットデータ取得手段
２４…暗号復号化手段
２５…比較手段
２６…誤り検出復号化手段
２７…逆量子化手段
２８…逆ＤＣＴ手段
２９…色空間変換手段
３０…誤り発生箇所重畳表示手段
【図１】
2010245876.tif 000003
【図２】
2010245876.tif 000004
【図３】
2010245876.tif 000005
【図４】
2010245876.tif 000006
【図５】
2010245876.tif 000007
【図６】
2010245876.tif 000008
【図７】
2010245876.tif 000009
【図８】
2010245876.tif 000010
【図９】
2010245876.tif 000011
【図１０】
2010245876.tif 000012
【図１１】
2010245876.tif 000013
【図１２】
2010245876.tif 000014
【図１３】
2010245876.tif 000015
【図１４】
2010245876.tif 000016
【図１５】
2010245876.tif 000017
【図１６】
2010245876.tif 000018
【図１７】
2010245876.tif 000019
【図１８】
2010245876.tif 000020
【図１９】
2010245876.tif 000021
【図２０】
2010245876.tif 000022