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