(57)【要約】【課題】  例えば、製造メーカの負担及びユーザの操作を最小限に抑えつつ、改ざんを困難にする技術を提供する。【解決手段】  第１、第２のデータ処理装置を備える検証情報生成システムであって、第１のデータ処理装置は、あらかじめ設定された第１の秘密情報を記憶保持する記憶保持手段と、第２のデータ処理装置より第２の秘密情報に関する情報を受信する受信手段と、第１の秘密情報と第２の秘密情報に関する情報から鍵情報を生成する鍵情報生成手段と、鍵情報を第２の秘密情報から導出可能とする鍵導出補助情報を生成する鍵導出補助情報生成手段と、検証対象情報と鍵情報に基づいて検証情報を生成する検証情報生成手段と、検証対象情報、検証情報、並びに鍵導出補助情報を出力する出力手段とを備え、第２の秘密情報は、第２のデータ処理装置にあらかじめ設定された情報である。【選択図】  図５
2006129079.tif 000002
【特許請求の範囲】
【請求項１】
あらかじめ設定された第１の秘密情報を記憶保持する記憶保持手段と、
第２の秘密情報に関する情報を取得する取得手段と、
前記第１の秘密情報と前記第２の秘密情報に関する情報から鍵情報を生成する鍵情報生成手段と、
前記鍵情報を前記第２の秘密情報から導出可能とする鍵導出補助情報を生成する鍵導出補助情報生成手段と、
検証対象情報と前記鍵情報に基づいて検証情報を生成する検証情報生成手段と、
前記検証対象情報、前記検証情報、並びに前記鍵導出補助情報を出力する出力手段とを備えることを特徴とするデータ処理装置。
【請求項２】
前記鍵情報生成手段は、第３の情報を取得し、前記第３の情報と前記第１の秘密情報と前記第２の秘密情報に関する情報から鍵情報を生成することを特徴とする請求項１に記載のデータ処理装置。
【請求項３】
前記第３の情報は、外部からの入力によって取得される情報であることを特徴とする請求項２に記載のデータ処理装置。
【請求項４】
前記第３の情報は、乱数生成によって取得される情報であることを特徴とする請求項２に記載のデータ処理装置。
【請求項５】
前記第２の秘密情報に関する情報は、外部から得られた情報であることを特徴とする請求項１乃至４のいずれか１項に記載のデータ処理装置。
【請求項６】
前記第２の秘密情報に関する情報は、前記第２の秘密情報から所定の演算により得られた情報であることを特徴とする請求項１乃至５のいずれか１項に記載のデータ処理装置。    
【請求項７】
撮像手段を更に備え、当該撮像手段で撮像した画像データを前記検証対象情報として生成することを特徴とする請求項１乃至６のいずれか１項に記載のデータ処理装置。
【請求項８】
あらかじめ設定された第２の秘密情報を記憶保持する記憶保持手段と、
検証対象情報に関する検証情報と鍵導出補助情報を入力する入力手段と、
前記第２の秘密情報と前記鍵導出補助情報に基づいて鍵情報を導出する鍵情報導出手段と、
前記検証情報と前記鍵情報に基づいて前記検証対象情報の改ざんの有無を検出する改ざん検出手段とを備え、
前記検証情報は、前記第２の秘密情報に関する情報を用いて生成されたものであることを特徴とするデータ処理装置。
【請求項９】
前記鍵導出補助情報は、外部装置にあらかじめ設定されている第１の秘密情報を用いて生成されており、前記検証情報は、前記第１の秘密情報と前記第２の秘密情報に関する情報を用いて生成されたものであることを特徴とする請求項８に記載のデータ処理装置。
【請求項１０】
第１、第２のデータ処理装置を備える検証情報生成システムであって、
前記第１のデータ処理装置は、
前記第１のデータ処理装置にあらかじめ設定された第１の秘密情報を記憶保持する記憶保持手段と、
前記第２のデータ処理装置より、第２の秘密情報に関する情報を受信する受信手段と、
前記第１の秘密情報と前記第２の秘密情報に関する情報から鍵情報を生成する鍵情報生成手段と、
前記鍵情報を前記第２の秘密情報から導出可能とする鍵導出補助情報を生成する鍵導出補助情報生成手段と、
検証対象情報と前記鍵情報に基づいて検証情報を生成する検証情報生成手段と、
前記検証対象情報、前記検証情報、並びに前記鍵導出補助情報を出力する出力手段とを備え、
前記第２の秘密情報は、前記第２のデータ処理装置にあらかじめ設定された情報であることを特徴とする検証情報生成システム。
【請求項１１】
第１、第２のデータ処理装置を備える改ざん検出システムであって、
前記第２のデータ処理装置は、
前記第２のデータ処理装置にあらかじめ設定された第２の秘密情報を記憶保持する記憶保持手段と、
前記第１のデータ処理装置より、検証対象情報に関する検証情報と鍵導出補助情報を受信する受信手段と、
前記第２の秘密情報と前記鍵導出補助情報に基づいて鍵情報を導出する鍵情報導出手段と、
前記検証情報と前記鍵情報に基づいて前記検証対象情報の改ざんの有無を検出する改ざん検出手段とを備え、
前記鍵導出補助情報は、前記第１のデータ装置にあらかじめ設定されている第１の秘密情報を用いて生成されたものであることを特徴とする改ざん検出システム。
【請求項１２】
あらかじめ設定された第１の秘密情報を記憶保持する記憶保持工程と、
第２の秘密情報に関する情報を取得する取得工程と、
前記第１の秘密情報と前記第２の秘密情報に関する情報から鍵情報を生成する鍵情報生成工程と、
前記鍵情報を前記第２の秘密情報から導出可能とする鍵導出補助情報を生成する鍵導出補助情報生成工程と、
検証対象情報と前記鍵情報に基づいて検証情報を生成する検証情報生成工程と、
前記検証対象情報、前記検証情報、並びに前記鍵導出補助情報を出力する出力工程とを備えることを特徴とするデータ処理方法。
【請求項１３】
あらかじめ設定された第２の秘密情報を記憶保持する記憶保持工程と、
検証対象情報に関する検証情報と鍵導出補助情報を入力する入力工程と、
前記第２の秘密情報と前記鍵導出補助情報に基づいて鍵情報を導出する鍵情報導出工程と、
前記検証情報と前記鍵情報に基づいて前記検証対象情報の改ざんの有無を検出する改ざん検出工程とを備え、
前記検証情報は、前記第２の秘密情報に関する情報を用いて生成されたものであることを特徴とするデータ処理方法。
【請求項１４】
請求項１２又は１３に記載のデータ処理方法を実行するためのコンピュータプログラム。
【請求項１５】
請求項１４に記載のコンピュータプログラムを格納したことを特徴とするコンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、デジタルデータの改ざん検出技術に関する。
【背景技術】
【０００２】
近年、デジタルカメラが急速に普及している。デジタルカメラで撮影された画像は、電子的な画像データとして記憶保管することが可能であるため、従来の銀塩写真のように現像、プリントといった手間が省けるだけでなく、経年劣化がない、保管や検索が容易に行える、データを通信回線を用いて遠隔地に送信できるといった様々なメリットがある。このため、多くの業務分野でデジタルカメラが利用されている。
【０００３】
例えば、事故車の破損状況を撮影し、撮影された画像に基づいて事故査定を行う損害保険業界、建設現場での工事の進捗状況や仕様の確認のために建築物を撮影する建設業界が挙げられる。国土交通省では既に土木工事現場の記録用にデジタルカメラで撮影された画像の使用を認めている。
【０００４】
しかし、デジタル化されることによるデメリットも指摘されている。それは、市販のフォトレタッチツール等のアプリケーションプログラムを使用することで、パーソナルコンピュータ上で容易に加工や修正が出来てしまうことである。即ち、加工や修正が容易であるが故に、画像が証拠として扱われる事故の写真や報告書において、デジタルカメラで撮影された画像の信頼性が銀塩写真の画像と比較して低くなってしまうという点である。
【０００５】
銀塩写真でも画像の改変を行うことは不可能ではないが、その改変を行うためのコストが改変で得られるコストよりも非常に大きいか、画像の改変結果が不自然であることから実際には改変は行われにくく、それが証拠として採用される根拠になっている。従って損害保険業界、建設業界ではこの問題が将来大きな問題になることが懸念されており、このような欠点を克服するための仕組みが必要とされている。
【０００６】
現在では、暗号技術を利用したデジタル署名データによる画像データの改竄検出システムが提案されている（特許文献１）。
【０００７】
このシステムは、画像データを生成する画像生成装置（カメラ）と、画像データの完全性（改変されていないこと）を検証する画像検証装置で構成される。カメラは、カメラ固有の秘密情報と、撮影してデジタル化した画像データとに基づいて所定の演算を実行し、画像データを識別する情報（改竄を検知する）であるデジタル署名データを生成する。そして、デジタル署名データと画像データとを出力する。画像検証装置では、所定の演算を画像データに施した結果のデータと、デジタル署名データを上記生成時の演算の逆演算を施したデータとを比較することで検証を行う。また、上記特許ではデジタル署名データの生成にハッシュ関数（圧縮関数）と公開鍵暗号を使用している。
【０００８】
また、上記のデジタル署名データの代わりにＭＡＣ（Ｍｅｓｓａｇｅ  Ａｕｔｈｅｎｔｉｃａｔｉｏｎ  Ｃｏｄｅ）が用いられることもある。ＭＡＣは共通鍵暗号やハッシュ関数等を使用して生成されるものであり、処理速度が公開鍵暗号よりも高速であることが特徴であるが、ＭＡＣの生成、及び、検証に同一の共通鍵が用いられるため、共通鍵をカメラと画像検証装置の双方において厳重に管理する必要がある。
【０００９】
カメラで撮像した画像データは通常、カメラに接続されている小型のメモリーカード（不揮発性メモリ）に記憶され、メモリーカードは主としてフラッシュＥＥＰＲＯＭによって構成される。最近の微細化技術によりメモリの高密度化が図られており、４ｃｍ四方の面積、高さ２〜３ｍｍ程度のメモリカードで数百Ｍバイトの記憶容量を持つものが製品化されている。さらに、上記フラッシュＥＥＰＲＯＭに加えてＣＰＵ、ＲＡＭ、ＲＯＭで構成される演算部を持ち、セキュリティー機能を実装している、メモリーカードやＩＣカードが実用化されつつある。これらの演算機能を用いることにより、カメラの外部である、メモリカードやＩＣカードにおいて、画像データ等の改ざんを検出するためのデータを生成することが可能となっている。
【特許文献１】米国特許第５４９９２９４号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
以下では、カメラのような画像生成装置を対象に、ＭＡＣを用いて画像データの改ざんを検出するシステムを考える。ここでは、ＩＣカードが改ざんの有無を検証するものとする。ＭＡＣは前述したように共通鍵暗号を用いて検証データを作成し、検証する仕組みであり、その共通鍵が漏洩すると安全性は保障できない。従って、検証データの作成側はカメラに、検証側はＩＣカードに、それぞれ同一の共通鍵を秘密に格納する必要がある。共通鍵を検証データの作成側と検証側でどのように共有／設定するかについて考察すると、次の２通りが考えられよう。
１．ユーザが共通鍵を生成し、カメラとＩＣカードに設定する。
２．メーカが共通鍵を生成し、カメラとＩＣカードに初めから共通鍵を設定しておく。
【００１１】
これらの場合、以下の問題が発生する。
１．共通鍵を設定したユーザは共通鍵を知ることができるので、このユーザだけは改ざんが可能である。従って、前記従来技術で述べたカメラ画像が改ざんされていないという証拠性は実現できていないことになる。また、ＩＣカードの内容はユーザ毎に異なるので、１つのＩＣカードで他のカメラの検証を行うことができない。これは、実際の使用において著しく不便である。
２．メーカの守秘がよく行われていれば共通鍵が漏洩することはなく、ユーザが共通鍵を知ることができないので安全性は高い。しかし、カメラやＩＣカードの対毎に異なる共通鍵を設定することは生産工程を煩雑にする。そのため、全てのカメラと検証装置で同じ共通鍵が設定されると考えられる。この場合、１つのカメラの共通鍵が解析されれば、全てのカメラに被害が及ぶ。また、過去の検証データも改ざん可能になり信用できなくなる。
【００１２】
本発明は上記問題点に鑑みなされたものであり、例えば、製造メーカの負担及びユーザの操作を最小限に抑えつつ、改ざんを困難にする技術を提供することを目的とする。
【課題を解決するための手段】
【００１３】
上記目的を達成するため、例えば本発明による検証情報生成システムは以下の構成を備える。即ち、
第１、第２のデータ処理装置を備える検証情報生成システムであって、
前記第１のデータ処理装置は、
前記第１のデータ処理装置にあらかじめ設定された第１の秘密情報を記憶保持する記憶保持手段と、
前記第２のデータ処理装置より、第２の秘密情報に関する情報を受信する受信手段と、
前記第１の秘密情報と前記第２の秘密情報に関する情報から鍵情報を生成する鍵情報生成手段と、
前記鍵情報を前記第２の秘密情報から導出可能とする鍵導出補助情報を生成する鍵導出補助情報生成手段と、
検証対象情報と前記鍵情報に基づいて検証情報を生成する検証情報生成手段と、
前記検証対象情報、前記検証情報、並びに前記鍵導出補助情報を出力する出力手段とを備え、
前記第２の秘密情報は、前記第２のデータ処理装置にあらかじめ設定された情報である。
【００１４】
上記目的を達成するため、例えば本発明による改ざん検出システムは以下の構成を備える。即ち、
第１、第２のデータ処理装置を備える改ざん検出システムであって、
前記第２のデータ処理装置は、
前記第２のデータ処理装置にあらかじめ設定された第２の秘密情報を記憶保持する記憶保持手段と、
前記第１のデータ処理装置より、検証対象情報に関する検証情報と鍵導出補助情報を受信する受信手段と、
前記第２の秘密情報と前記鍵導出補助情報に基づいて鍵情報を導出する鍵情報導出手段と、
前記検証情報と前記鍵情報に基づいて前記検証対象情報の改ざんの有無を検出する改ざん検出手段とを備え、
前記鍵導出補助情報は、前記第１のデータ装置にあらかじめ設定されている第１の秘密情報を用いて生成されたものである。
【００１５】
尚、上記では秘密に管理される情報を秘密情報と称している。
【発明の効果】
【００１６】
本願発明によれば、例えば、製造メーカの負担及びユーザの操作を最小限に抑えつつ、改ざんを困難にする技術を提供することができる。
【発明を実施するための最良の形態】
【００１７】
以下、添付図面を参照して本発明に係る実施の形態を詳細に説明する。ただし、この実施の形態に記載されている構成要素はあくまでも例示であり、この発明の範囲をそれらのみに限定する趣旨のものではない。
【００１８】
＜第１の実施形態＞
図１は実施形態におけるシステム構成図である。図に示すように、このシステムは、認証対象の画像データを生成すると共に、その検証データを生成する画像生成装置１１と、画像検証補助装置１３と、それらと通信可能な耐攻撃装置１２で構成される。
【００１９】
画像生成装置１１は、ＭＡＣ作成用の鍵を設定する機能と、画像データを生成／撮影する機能と、生成した画像データに対するＭＡＣデータを生成する機能と、補助パラメータ（例えばカメラの場合、撮影時刻、焦点距離、絞り値、ＩＳＯ感度、測光モード、画像ファイルサイズ、撮影者情報等）を生成する機能と、ＭＡＣデータ付き画像ファイル（画像データ、ＭＡＣデータ、補助パラメータなどで構成）を生成する機能と、耐攻撃装置１２と通信を行う機能とを有する。なお、画像生成装置１１は、デジタルカメラ、デジタルビデオカメラ、スキャナなどの撮像装置であっても、カメラユニットを有する電子機器であってもよいが、簡単のため、以下ではカメラ（デジタルカメラ）として説明する。
【００２０】
耐攻撃装置１２は、検証データの生成・検証に必要な情報を記憶する機能と、検証に必要な情報を計算する機能と、画像生成装置１１や画像検証補助装置１３とデータを通信する機能とを有する。なお、耐攻撃装置１２はフラッシュＥＥＰＲＯＭに加えてＣＰＵ、ＲＡＭ、ＲＯＭで構成される演算部を持つ、セキュリティー機能付きメモリーカード、またはＩＣカードである。簡単のため、以下ではＩＣカードとして説明する。
【００２１】
画像検証補助装置１３は、ＭＡＣデータ付き画像ファイルを分離する機能と、分離した画像データのハッシュ値を計算する機能と、耐攻撃装置１２と通信する機能と、その判定結果を表示する機能を有する。なお、画像検証補助装置１３は、Ｗｅｂサーバのようなデータを蓄積し、データを配信可能なＰＣのようなものでも、ＣＰＵとメモリ等を有した小型機器であってもよいが、簡単のため、以下ではＰＣとして説明する。
【００２２】
図２は、実施形態におけるカメラ１１のブロック構成図である。図において、２２は操作部であって、カメラへの各種パラメータの設定、被写体の撮影指示などを行うスイッチやパネルなどからなるユーザとのインターフェース部である。２５はＣＣＤ（電荷結合素子）等の光学センサーを有する撮像部であり、操作部２２に入力された指示に従って被写体の画像データ及び補助パラメータを生成する。２１は書き込み可能な不揮発性メモリで構成される鍵保持部である。２３は制御部２９からの要求に従って所定の演算を行う演算部（ＣＰＵやＲＡＭ、ＲＯＭまたは専用のＩＣチップ等により構成される）、２６は撮像した画像から所定形式の画像ファイルを生成し、不図示の着脱自在なメモリカードに書き込む画像ファイル生成部である。２９は装置全体の制御を司る制御部、２７はハッシュ値を演算するハッシュ生成部、２８はＭＡＣ生成部である。２４はＩＣカード（耐攻撃装置）１２と通信を行う通信部である。
【００２３】
図４は、実施形態におけるＩＣカード１２のブロック構成図である。図において、４１は書き込み可能な不揮発性メモリで構成される鍵保持部であり、４３は制御部４７からの要求に従って所定の演算を行う演算部である。４２は制御部４７からの要求に従って所定のアルゴリズムにより乱数を生成する乱数生成部であり、４５はＭＡＣを生成するＭＡＣ生成部である。４７は装置全体の制御を司る制御部、４６は画像データの完全性を判定する判定部、４４は他の装置と通信を行う通信部である。
【００２４】
図６は実施形態における、ＰＣ（画像検証補助装置）１３の機能ブロック構成図である。画像検証補助装置１３は上記の如くＰＣで構成しているものとし、尚且つ、ＰＣの構成は説明するまでもないであろうから、図では、画像検証補助装置として機能するプログラムが実行されている状態の構成を示している。すなわち、図に示す各機能部はＣＰＵとその処理を行うプログラムによって構成されるものである。
【００２５】
図６において、６２は画像ファイルから、画像データと検証データ（ＭＡＣを含む）とを分離する画像ファイル分離部であり、６３はハッシュ生成部、６５は認証結果（改竄されているか否か等）を表示する表示部である。６１は、ＩＣカード（耐攻撃装置）と通信を行う通信部であり、６６は装置全体の制御を司る制御部である。
【００２６】
上記構成において、カメラ１１は生産工程において予め定められた秘密情報Ａを鍵保持部２１に持つとする。この秘密情報Ａはメーカが提供する全カメラに共通の情報である。ここで、秘密情報Ａ及び後述するａｉ、Ａｉは数値を表し、所定のビット長をもつ数値として設定される。尚、鍵保持部２１は鍵情報が漏れないように演算部２３以外の外部への読み出しが出来ないような構成をとっているとする。
【００２７】
同様に、ＩＣカード１２は生産工程において予め定められた秘密情報Ｂを鍵保持部４１に持つとする。この秘密情報Ｂはメーカが提供する全ＩＣカードに共通の情報である。ここで、秘密情報Ｂは数値を表し、所定のビット長をもつ数値として設定されている。尚、鍵保持部４１は鍵情報が漏れないように演算部４３以外の外部への読み出しが出来ないような構成をとっているとする。
【００２８】
次に、カメラをユーザ毎又はカメラ毎に固有の秘密情報ａｉで個別化する、鍵個別化処理について、図３を用いて説明する。図３は鍵個別化処理のフローを示すフローチャートである。鍵個別化処理は、操作部２２を通してユーザが任意の固有データａｉをカメラに入力することと、次の演算部２３の演算によって実現できる。
【００２９】
まず、操作部２２からユーザ固有の秘密情報ａｉが入力される（ステップＳ３１）。ａｉは、例えば英数字の文字列であり、操作部２２を構成するスイッチやパネル等の簡単な操作により入力される。次に、カメラ１１の制御部２９は、演算部２３において、記憶されていたＡと入力されたａｉを用いて、Ａｉ＝Ａ×ａｉを計算するように制御する（ステップＳ３２）。そして、その結果を前述の鍵保持部２１に記憶するように制御する（ステップＳ３３）。
【００３０】
このように、ＡｉはＡ及びａｉを入力として演算を行った結果であるが、Ａはメーカの定めた共通の秘密情報、ａｉはユーザのみが知っている情報であるため、第３者（メーカも含む）がＡｉの値を知ることができないのみならず、ユーザ自身もＡｉの値を知ることができないことに留意する。
【００３１】
尚、カメラ１１は更に乱数を生成する乱数生成部を備え、ユーザの初回使用時等にこの乱数生成部に基づいてａｉを生成するような構成をとってもよい。この場合、ａｉを知り得るエンティティは存在しないことになり、安全性が更に高まることになる。
【００３２】
次に、カメラ１１の撮像部２５及び画像ファイル生成部２６によって生成された画像ファイル（以下、単に画像とも呼ぶ）Ｄについて、カメラ１１とＩＣカード１２との協力により、ＭＡＣデータを含む検証データを生成する処理を、図５を用いて説明する。図５は、画像Ｄに対する検証データ（ＭＡＣデータを含む）を生成する処理を示すフローチャートである。ただし以下において、ＸはＧＦ（Ｐ）の原始根であり、Ｐは素数である。Ｘ＾ａの表記はＸ＾ａ  ｍｏｄ  Ｐの省略とする。
【００３３】
まず、ＩＣカード１２は乱数生成部４２を用いて乱数ｂｊを生成する（ステップＳ５１）。乱数ｂｊの生成は、例えば、画像ファイルの検証情報を生成する度に行うような構成をとってもよいし、或いは、一定時間毎に行うような構成をとってもよい。ここで、乱数生成部４２は適当な初期値と鍵を設定したＤＥＳやＡＥＳのような共通鍵暗号によって乱数を生成する。
【００３４】
次に、ＩＣカード１２の演算部４３を用いてＢＢｊ＝Ｘ＾（Ｂ×ｂｊ）とＢｊ＝Ｘ＾ｂｊを計算する（ステップＳ５２）。次に、生成したＢＢｊとＢｊを通信部４４を用いてカメラ１１に送付する（ステップＳ５３）。ここで、演算部４３はＣＰＵやＲＡＭ，ＲＯＭまたは専用のＩＣチップ等により構成され、指定された演算を実行する。また、乱数ｂｊや、ＢＢｊ、Ｂｊ、及びこれらを計算する過程で用いた値は、ステップ５３の処理後、メモリから消去する。
【００３５】
以上のＩＣカード１２の処理は、制御部２９によって制御される。尚、ＢＢｊ、ＢｊよりＢ、ｂｊを求めることは計算量的に困難であることに留意する。また、ＢＢｊは、秘密情報Ｂと、乱数ｂｊより得られる値であり、全てのＩＣカード１２が共通に有する秘密情報Ｂのみから求めることはできないことに留意する。
【００３６】
次に、カメラ１１はＩＣカード１２から通信部２４を介して送られたＢＢｊとＢｊから鍵Ｋｉｊ＝ＢＢｊ＾Ａｉ＝Ｘ＾（Ｂ×ｂｊ×Ａｉ）とＢＡｉｊ＝Ｂｊ＾Ａｉ＝Ｘ＾（ｂｊ×Ａｉ）を演算部２３において計算する（ステップＳ５４）。
【００３７】
ここで、通信部２４はＩＣカードとの標準の通信プロトコルによって実装されている。尚、鍵Ｋｉｊは、Ｂ、ｂｊ、Ａ、ａｉの関数である。従って、鍵Ｋｉｊは、全てのカメラが共通に保持する秘密情報Ａ、全てのＩＣカードが共通に保持する秘密情報Ｂのみからは求めることができないことに留意する。また、ＢＡｉｊは、ｂｊ、Ａ、ａｉの関数であり、秘密情報Ｂに関する何らかの情報を取得できない限り、ＢＡｉｊより鍵Ｋｉｊを求めることはできないことに留意する。
【００３８】
次に、カメラ１１は鍵Ｋｉｊを用いて画像Ｄに対するＭＡＣをＭＡＣ生成部２８において生成する（ステップＳ５５）。この時、ＭＡＣは、画像Ｄをハッシュ生成部２７において圧縮し、圧縮された値（ハッシュ値）に対してＭＡＣ生成部２８において鍵Ｋｉｊを用いて計算することによって得られる。
【００３９】
ここで、画像Ｄは、撮像部２５により撮像された画像を、画像ファイル生成部２６において圧縮しＪＰＥＧ等の形式で出力した、画像ファイルとする。尚、画像ファイル生成部２６によって生成される画像ファイルのファイル形式は、ＪＦＩＦ（ＪＰＥＧ  Ｆｉｌｅ  Ｉｎｔｅｒｃｈａｎｇｅ  Ｆｏｒｍａｔ）、ＴＩＦＦ（Ｔａｇｇｅｄ  Ｉｍａｇｅ  Ｆｉｌｅ  Ｆｏｒｍａｔ）及びＧＩＦ（Ｇｒａｐｈｉｃｓ  Ｉｎｔｅｒｃｈａｎｇｅ  Ｆｏｒｍａｔ）の何れかであっても、それらを拡張したものであっても、他の画像ファイルフォーマットであってもよい。
【００４０】
また、ハッシュ生成部２７で用いられるハッシュ関数Ｈとしては、ＭＤ５、ＳＨＡ１、ＲＩＰＥＭＤ等が一般的に知られている。
【００４１】
また、ＭＡＣ生成部２８におけるＭＡＣデータの生成アルゴリズムとしては、ＤＥＳやＡＥＳなどの共通鍵暗号のＣＢＣ（Ｃｉｐｈｅｒ  Ｂｌｏｃk  Ｃｈａｉｎｉｎｇ）モードを用いる手法と、ＨＭＡＣと呼ばれる鍵付きのハッシュ関数を用いる手法が知られている。例えばＤＥＳのＣＢＣモードの場合、対象となるデータをＣＢＣモードで暗号化し、その最後のブロックの前半の３２ビットをＭＡＣデータをする方法などがある。
【００４２】
次に、カメラ１１は画像ファイル生成部２６において生成された、画像Ｄ（画像ファイル）にＭＡＣとＢＡｉｊを添付する（ステップＳ５６）。よって、画像ファイルには画像ＤとＭＡＣ及び検証に用いるＢＡｉｊを少なくとも含む。最後に、カメラ１１は送られてきたＢＢｊとＢｊと生成した鍵Ｋｉｊを、一時的な使用に用いたメモリから消去する（ステップＳ５７）。
【００４３】
以上、カメラ１１における、ステップＳ５４からステップＳ５７の各処理は、カメラ１１の制御部２９によって制御される。
【００４４】
次に、ＭＡＣ検証処理について図７を用いて説明する。ＭＡＣ検証処理は図１に示すＰＣ（画像検証補助装置）１３と耐攻撃装置（ＩＣカード）１２によって行われる。
【００４５】
まず、ＰＣ１３は画像ＤとＭＡＣ及び検証に用いるＢＡｉｊを含む画像ファイルを不図示の画像入力部（通信部６１を含む）から読み込む（ステップＳ７０）。例えば、ネットワークを経由して画像ファイルを読み込む場合、画像入力部はネットワークインタフェース等である。
【００４６】
ＰＣ１３は、読み込んだ画像ファイルを画像ファイル分離部６２によって、画像ＤとＭＡＣ及び検証に用いるＢＡｉｊに分離する（ステップＳ７１）。次に、ＰＣ１３は画像Ｄからハッシュ生成部６３を用いてハッシュ値Ｈを生成する（ステップＳ７２）。
【００４７】
ＰＣ１３は、ＩＣカード１２への通信部６１を用いて生成したハッシュ値Ｈと分離したＭＡＣ及び検証に用いるＢＡｉｊを送る（ステップＳ７３）。
【００４８】
ここで、画像検証補助装置１３はＰＣであるので通信部６１はＩＣカードなどとのＩ/Ｏであり、画像ファイル分離部６２、ハッシュ生成部６３はＣＰＵやＲＡＭ、ＲＯＭ等によって実行される。
【００４９】
ＩＣカード１２は送られてきたＢＡｉｊから検証用の鍵Ｋｉｊ＝ＢＡｉｊ＾Ｂ＝Ｘ＾（Ｂ×ｂｊ×Ａｉ）を演算部４３において計算する（ステップＳ７４）。ここで、送られてきたＢＡｉｊがステップＳ５４の処理において生成されたＢＡｉｊと等しいときのみ、鍵ＫｉｊはステップＳ５４の処理において生成されたＫｉｊと等しくなることに留意する。
【００５０】
次に、ＩＣカード１２は、送られてきたハッシュ値Ｈに対するＭＡＣ２を、鍵Ｋｉｊを用いてＭＡＣ生成部４５において生成する（ステップＳ７５）。そして、生成したＭＡＣ２と送られてきたＭＡＣを判定部４６において比較し（ステップＳ７６）、ＭＡＣとＭＡＣ２が一致すれば改ざん無し（ステップＳ７７）、一致しなければ改ざん有りと判定する（ステップＳ７８）。
【００５１】
ここで、ＭＡＣ生成アルゴリズムは、改竄を行った画像データＤ’について鍵Ｋｉｊを知らずに改ざん無しという判定が得られるようなＭＡＣ２を求めることは計算量的に困難であることが知られている。更に、秘密情報Ｂに関する情報が得られない限り、Ｋｉｊ＝ＢＡｉｊ＾Ｂを求めることはできないことに留意する。
【００５２】
次にその結果を通信部４４を用いてＰＣ１３に送る（ステップＳ７９）。ここで、ＭＡＣ生成部４５のＭＡＣ生成アルゴリズムは、カメラ１２のＭＡＣ生成部２８のアルゴリズムと同じであり、例えば、ＤＥＳやＡＥＳ等の共通鍵暗号を用いて計算される。また、判定部４６はＣＰＵなどによって実現される。
【００５３】
最後に、ＰＣ１３は送られてきた判定結果をモニタ等の表示部６５を用いて表示する（ステップＳ８０）。すなわち、判定部４６において改ざんなしと判定された場合、「改変なし」などと表示し、改ざんありと判定された場合、「改変あり」などと表示する。
【００５４】
以上、ＰＣ１３におけるステップＳ７０からＳ７３、及び、ステップＳ８０の処理は、ＰＣ１３の制御部６６によって制御される。また、ＩＣカード１２におけるステップＳ７４からステップＳ７９の処理は、ＩＣカード１２の制御部４７によって制御される。
【００５５】
以上説明したように、本実施形態では、メーカが生産工程においてカメラ１１に設定する秘密情報は、全てのカメラ１１について同一であるため、生産工程は煩雑にならない。更に、カメラ１１をユーザの設定により秘密情報を個別化した場合は、個別化された秘密情報を用いて検証情報を生成するため、仮に１つのカメラ１１が解析されても被害が他のカメラに及ばない。ここで、ユーザの設定は操作部２２の簡単な操作により実現され、また、ユーザの操作はこれのみであることに留意する。また、全てのカメラ１１に共通に設定される情報は秘密に管理されるため、ユーザは知り得ず、従って、ユーザによる改ざんも困難である。
【００５６】
本実施形態では、ユーザの設定により秘密情報を個別化したが、必ずしも個別化しなくてもよいのは言うまでもない。個別化しない場合は、メーカにおける生産工程を煩雑にせず、なおかつユーザによる改ざんも困難であり、カメラ内での処理を減らすことができる。
【００５７】
また、メーカが生産工程においてＩＣカード１２に設定する秘密情報は、全てのＩＣカード１２について同一であるため、生産工程は煩雑にならない。また、所定のＩＣカード１２を用いて、全てのカメラ１１の検証情報の生成、及び、全ての検証情報の検証を行うことができる。
【００５８】
また、本実施形態では、説明の都合上、鍵個別化処理とＭＡＣ生成処理とを分けて説明したが、ステップ５４で鍵個別化処理を行いながら、鍵を生成するようにしてもよい。
【００５９】
＜第２の実施形態＞
第１の実施形態では、カメラ１１において冪乗剰余演算を行う（ステップＳ５４）構成について説明を行ったが、一般に冪乗剰余演算は高い演算能力を要する。そこで、本実施形態では、ＩＣカード１２はセキュリティに関連する高い演算機能をもつが、カメラ１１はあまり演算能力が高くない場合でも、カメラ１１において、検証データ（ＭＡＣを含む）を生成することを可能とする構成について説明する。尚、本実施形態における画像生成装置１１、耐攻撃装置１２、画像検証補助装置１３は第１の実施形態で説明した構成と同一なので説明を省略する。
【００６０】
この場合、図５に示したＭＡＣ生成処理は図１０のように変形できる（鍵個別化処理等は第１の実施形態と同様に行われているとする）。
【００６１】
まず、カメラ１１はＩＣカード１２に秘密情報Ａｉを送信する（ステップＳ１０１）。
【００６２】
次に、ＩＣカード１２は乱数生成部４２を用いて乱数ｂｊを生成する（ステップＳ１０２）。次に、ＩＣカード１２は演算部４３を用いて、Ｋｉｊ＝Ｘ＾（Ａｉ×Ｂ×ｂｊ）とＢＡｉｊ＝Ｘ＾（ｂｊ×Ａｉ）を計算する（ステップＳ１０３）。次に、ＩＣカード１２は、生成したＫｉｊとＢＡｉｊを、通信部４４を用いてカメラ１１に送付する（ステップＳ１０４）。そして、ＩＣカード１２はＫｉｊとＢＡｉｊを送付後、Ａｉ、ｂｊ、Ｋｉｊ、ＢＡｉｊ、及びこれらを計算する過程で用いた値はメモリから消去する。
【００６３】
カメラ１１はＩＣカード１２より受け取った鍵Ｋｉｊを用いて、画像Ｄに対するＭＡＣをＭＡＣ生成部２８において生成する（ステップＳ１０５）。この時、ＭＡＣは、画像Ｄをハッシュ生成部２７において圧縮し、圧縮された値（ハッシュ値）に対して鍵Ｋｉｊを用いて計算すること等は、第１の実施形態と同様である。
【００６４】
次に、カメラ１１は画像ファイル生成部２６において画像Ｄの画像ファイルにＭＡＣとＢＡｉｊを添付する（ステップＳ１０６）。最後に、カメラ１１は送られてきたＢＡｉｊと生成した鍵Ｋｉｊを消去する（ステップＳ１０７）。
【００６５】
尚、第１実施形態と同様に、ステップＳ１０１、及び、ステップＳ１０５からＳ１０７の処理はカメラ１１の制御部２９によって、ステップＳ１０２からステップＳ１０４の処理はＩＣカード１２の制御部４７によって、それぞれ制御される。
【００６６】
以上より、カメラ１１に負荷をかけることなく（本実施形態では、冪乗剰余演算を行うことなく）、第１の実施形態と同様の処理が行えるようになる。
【００６７】
＜第３の実施形態＞
以下に、第３の実施形態を説明する。第１、第２の実施形態では、ＭＡＣデータ生成処理を被写体の画像データに対してのみ生成する場合について説明したが、補助パラメータ（例えば、撮影時刻、焦点距離、絞り値、ＩＳＯ感度、測光モード、画像ファイルサイズ、撮影者情報等）のような画像データのメタデータに当たる情報に対しても、画像データと同様の仕組によってＭＡＣデータを生成することができ、ＭＡＣ検証処理も同様に補助パラメータに対して実現できる。尚、本実施形態における画像生成装置１１、耐攻撃装置１２、画像検証補助装置１３は第１の実施形態で説明した構成と同一なので説明を省略する。
【００６８】
これは、画像データ及びメタデータはどちらも二値のデータであるので、画像データをメタデータに置き換える、すなわちハッシュ生成部２７への入力を画像データからメタデータに切り替えることによって実現可能であることは明らかである。このデータ切り替えは制御部２９により実現される。
【００６９】
その手順を図８、９に示す。図８はステップＳ５８として補助パラメータへのＭＡＣ生成処理を図５のフローチャートに加えたものであり、図９は図７のフローチャートにおけるステップＳ７２の処理をステップＳ８２の補助パラメータへのハッシュ値生成に置き換えたものである。また、画像データの改ざんを検出する際は、図７の手順で行えばよい。また、図８はステップＳ５５とステップＳ５８により、画像データのＭＡＣと補助パラメータのＭＡＣを別々に生成しているが、画像データと補助パラメータを含めたものに対してＭＡＣを生成して、画像検証補助装置で共に改ざんされていないかを検出するようにしてもよい。
【００７０】
以上のような構成を実装することにより、画像データだけでなく、画像に関連するメタデータに関しても改ざんを検出することができるようになる。
【００７１】
＜その他の実施形態＞
以上、本願発明に係る実施形態を説明したが、本願発明は上記の構成に限られるものではない。
【００７２】
例えば、第１の実施形態では、ＭＡＣ検証処理を図１における画像検証補助装置１３（ＰＣ）、耐攻撃装置１２（ＩＣカード）と分離して説明したが、画像検証補助装置１３と耐攻撃装置１２を一体化した装置を用いる構成であっても良い。この場合、画像ファイルのみを画像生成装置１１から画像検証補助装置１３に入力すればよく、図７の処理は１つの装置内の処理になり、画像検証補助装置１３と耐攻撃装置１２の区別は必要なくなる。
【００７３】
また、鍵の個別化処理は簡単のためＡｉ＝Ａ×ａｉで計算したが、Ａｉ＝ｆ（Ａ，ａｉ）の関数であれば良い。即ち、この計算はＡとａｉを入力として所定の演算を行う計算であれば、どのようなものでもよい（例えば、Ａｉ＝Ａ＋ａｉでもよい）。
【００７４】
この場合、ＡｉはＡ及びａｉを入力として演算を行った結果であるが、Ａはメーカの定めた共通の秘密情報、ａｉはユーザのみが知っている情報であるため、第３者（メーカも含む）がＡｉの値を知ることができないのみならず、ユーザ自身もＡｉの値を知ることができないことに留意する。
【００７５】
また、上記実施形態では、秘密情報Ａはメーカが提供する全カメラに共通の情報であり、秘密情報Ｂはメーカが提供する全ＩＣカードに共通の情報であるとしたが、機種ごとにそれぞれ異なる情報にするなど適宜変更してもいいのは言うまでもない。
【００７６】
また、本第１乃至第３の実施形態では、検証対象となる情報を画像データとする構成について説明を行ったが、これに限られるものではない。即ち、音声や動画、文書ファイル等、所定のデジタルデータについて適用可能である。
【００７７】
また、本第１乃至第３の実施形態では、検証対象となる情報を生成する装置をデジタルカメラとする構成について説明を行ったが、これに限られるものではない。即ち、ボイスレコーダ、デジタルビデオカメラ、携帯電話、ＰＣ等、所定の情報処理装置について適用可能である。
【００７８】
以上、本発明の実施形態例について詳述したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記憶媒体等としての実施態様を取ることが可能であり、具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
【００７９】
尚、本発明は、前述した実施形態の機能を実現するプログラムを、システムあるいは装置に直接あるいは遠隔から供給し、そのシステムあるいは装置のコンピュータが該供給されたプログラムコードを読み出して実行することによっても達成される場合を含む。
【００８０】
従って、本発明の機能処理をコンピュータで実現するために、該コンピュータにインストールされるプログラムコード自体も本発明の技術的範囲に含まれる。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含む。
【００８１】
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等の形態であっても良い。
【００８２】
プログラムを供給するための記録媒体としては、例えば、フロッピー（登録商標）ディスク、ハードディスク、光ディスク、光磁気ディスク、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−Ｒ）などがある。
【００８３】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続し、該ホームページから本発明のコンピュータプログラムそのもの、もしくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるＷＷＷサーバも、本発明に含まれるものである。
【００８４】
また、本発明のプログラムを暗号化してＣＤ−ＲＯＭ等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせ、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。  また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される他、そのプログラムの指示に基づき、コンピュータ上で稼動しているＯＳなどが、実際の処理の一部または全部を行ない、その処理によっても前述した実施形態の機能が実現され得る。
【００８５】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行ない、その処理によっても前述した実施形態の機能が実現される。
【図面の簡単な説明】
【００８６】
【図１】本実施形態における画像検証システムの一構成例を説明する図である。
【図２】本実施形態における画像生成装置１１の主要な機能構成を説明するブロック図である。
【図３】本実施形態における鍵個別化処理を説明するフローチャートである。
【図４】本実施形態における耐攻撃装置１２の主要な機能構成を説明するブロック図である。
【図５】第１の実施形態におけるＭＡＣ生成処理を説明するフローチャートである。
【図６】本実施形態における画像検証補助装置１３の主要機能構成を説明するブロック図である。
【図７】第１の実施形態におけるＭＡＣ検証処理を説明するフローチャートである。
【図８】第３の実施形態におけるＭＡＣ生成処理を説明するフローチャートである。
【図９】第３の実施形態におけるＭＡＣ検証処理を説明するフローチャートである。
【図１０】第２の実施形態におけるＭＡＣ生成処理を説明するフローチャートである。
【図１】
2006129079.tif 000003
【図２】
2006129079.tif 000004
【図３】
2006129079.tif 000005
【図４】
2006129079.tif 000006
【図５】
2006129079.tif 000007
【図６】
2006129079.tif 000008
【図７】
2006129079.tif 000009
【図８】
2006129079.tif 000010
【図９】
2006129079.tif 000011
【図１０】
2006129079.tif 000012