(57)【要約】【課題】  ユーザの要求に応じて電子署名の方法等を変更することを可能にし、もって、より柔軟性のある改竄判定を行うことのできる画像署名装置および方法を提供する。【解決手段】  本発明の一側面に係る画像署名方法は、画像の提示先を選択するステップ（Ｓ５０２）、提示対象の画像をメモリから選択するステップ（Ｓ５０３）、選択された提示対象の画像がメモリに最初に記憶された時点から無修正であるか否かを判定するステップ（Ｓ５０８）、前記提示対象の画像がメモリに最初に記憶された時点から無修正であると判定された場合、前記提示先に応じた署名アルゴリズムにより前記提示対象の画像に電子署名を付加するステップ（Ｓ５１２）、を有する。【選択図】  図５
2005197808.tif 000002
【特許請求の範囲】
【請求項１】
入力した画像を記憶する画像記憶手段と、
画像の提示先を選択する提示先選択手段と、
提示対象の画像を前記画像記憶手段から選択する画像選択手段と、
前記画像選択手段により選択された前記提示対象の画像が前記画像記憶手段に最初に記憶された時点から無修正であるか否かを判定する判定手段と、
前記判定手段により前記提示対象の画像が前記画像記憶手段に最初に記憶された時点から無修正であると判定された場合、前記提示先に応じた署名アルゴリズムにより前記提示対象の画像に電子署名を付加する署名手段と、
を有することを特徴とする画像署名装置。
【請求項２】
前記署名アルゴリズムは、前記提示先の公開鍵を含むことを特徴とする請求項１に記載の画像署名装置。
【請求項３】
入力した画像に、ユーザの指示によっては変更することのできない第１の署名アルゴリズムにより電子署名を付加する第１の署名手段と、
前記第１の署名手段による電子署名が付加された画像を記憶する画像記憶手段と、
画像の提示先を選択する提示先選択手段と、
提示対象の画像を前記画像記憶手段から選択する画像選択手段と、
前記画像選択手段により選択された前記提示対象の画像が前記画像記憶手段に最初に記憶された時点から無修正であるか否かを判定する判定手段と、
前記判定手段により前記提示対象の画像が前記画像記憶手段に最初に記憶された時点から無修正であると判定された場合、前記提示先に応じた第２の署名アルゴリズムにより前記提示対象の画像に電子署名を付加する第２の署名手段と、
を有することを特徴とする画像署名装置。
【請求項４】
前記第２の署名アルゴリズムを実現するためのデータを外部装置から受信する受信手段を更に有し、
前記第２の署名手段は、前記受信手段により受信された前記データにより実現される前記第２の署名アルゴリズムに基づいて前記提示対象の画像に電子署名を付加することを特徴とする請求項３に記載の画像署名装置。
【請求項５】
前記受信手段は、前記判定手段により前記提示対象の画像が前記画像記憶手段に最初に記憶された時点から無修正であると判定された場合に、前記データを前記外部装置から受信することを特徴とする請求項３に記載の画像署名装置。
【請求項６】
前記データは、公開鍵を含むことを特徴とする請求項４または５に記載の画像署名装置。
【請求項７】
入力した画像をメモリに記憶する画像記憶ステップと、
画像の提示先を選択する提示先選択ステップと、
提示対象の画像を前記メモリから選択する画像選択ステップと、
前記画像選択ステップにより選択された前記提示対象の画像が前記メモリに最初に記憶された時点から無修正であるか否かを判定する判定ステップと、
前記判定ステップにより前記提示対象の画像が前記メモリに最初に記憶された時点から無修正であると判定された場合、前記提示先に応じた署名アルゴリズムにより前記提示対象の画像に電子署名を付加する署名ステップと、
を有することを特徴とする画像署名方法。
【請求項８】
入力した画像に、ユーザの指示によっては変更することのできない第１の署名アルゴリズムにより電子署名を付加する第１の署名ステップと、
前記第１の署名ステップで電子署名が付加された画像をメモリに記憶する画像記憶ステップと、
画像の提示先を選択する提示先選択ステップと、
提示対象の画像を前記メモリから選択する画像選択ステップと、
前記画像選択ステップにより選択された前記提示対象の画像が前記メモリに最初に記憶された時点から無修正であるか否かを判定する判定ステップと、
前記判定ステップにより前記提示対象の画像が前記メモリに最初に記憶された時点から無修正であると判定された場合、前記提示先に応じた第２の署名アルゴリズムにより前記提示対象の画像に電子署名を付加する第２の署名ステップと、
を有することを特徴とする画像署名方法。
【請求項９】
請求項７又は８に記載の画像署名方法を実行するためのプログラム。
【請求項１０】
請求項９に記載のプログラムを格納したコンピュータ読み取り可能な可読記憶媒体。
【請求項１１】
画像に電子署名を付加する署名装置と、署名アルゴリズムを実現するためのデータを前記署名装置に供給するサーバ装置とを含む画像署名システムであって、
前記署名装置は、
入力した画像を記憶する画像記憶手段と、
画像の提示先を選択する提示先選択手段と、
提示対象の画像を前記画像記憶手段から選択する画像選択手段と、
前記画像選択手段により選択された前記提示対象の画像が前記画像記憶手段に最初に記憶された時点から無修正であるか否かを判定する判定手段と、
前記判定手段により前記提示対象の画像が前記画像記憶手段に最初に記憶された時点から無修正であると判定された場合、前記サーバ装置から提供される前記データにより実現される署名アルゴリズムに基づいて前記提示対象の画像に電子署名を付加する署名手段と、
を有することを特徴とする画像署名システム。
【請求項１２】
画像に電子署名を付加する署名装置と、署名アルゴリズムを実現するためのデータを前記署名装置に供給するサーバ装置とを含む画像署名システムであって、
前記署名装置は、
入力した画像に、ユーザの指示によっては変更することのできない第１のアルゴリズムにより電子署名を付加する第１の署名手段と、
前記第１の署名手段による電子署名が付加された画像を記憶する画像記憶手段と、
画像の提示先を選択する提示先選択手段と、
提示対象の画像を前記画像記憶手段から選択する画像選択手段と、
前記画像選択手段により選択された前記提示対象の画像が前記画像記憶手段に最初に記憶された時点から無修正であるか否かを判定する判定手段と、
前記判定手段により前記提示対象の画像が前記画像記憶手段に最初に記憶された時点から無修正であると判定された場合、前記サーバ装置から提供される前記データにより実現される第２の署名アルゴリズムに基づいて前記提示対象の画像に電子署名を付加する第２の署名手段と、
を有することを特徴とする画像署名システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像署名装置および方法に関し、特に、画像の改竄防止機能を有する画像署名装置および方法に関する。
【背景技術】
【０００２】
デジタルカメラで撮影した画像の改竄防止に関する従来技術としては例えば、特開平１１−３０８５６４号公報（特許文献１）や特開２００１−０７８０７０号公報（特許文献２）が挙げられる。これらの文献は、カメラ内部に備える暗号化鍵を用いて画像に対し改竄検知用データ（メッセージ認証コード）あるいは電子署名を付加する技術を開示している。画像が改竄されていないことを確認するためには、カメラ内部に備えた暗号化鍵に対応する復号化鍵を用いて、改竄検知用データあるいは電子署名を復号化し、得られたハッシュ値（メッセージダイジェスト）と画像から計算されたハッシュ値を比較することになる。
【０００３】
【特許文献１】特開平１１−３０８５６４号公報
【特許文献２】特開２００１−０７８０７０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
上記した従来技術には以下のような課題が存在する。
【０００５】
すなわち、画像が無修正であることを確認するためにカメラ内部に備えた暗号化鍵に対応する復号化鍵を用いるため、ユーザがこれを取り扱うには、そのカメラの暗号化について知っていなければならなかった。ユーザが知る必要があるものは、鍵だけでなく、暗号化アルゴリズムやハッシュ値を求めるためのハッシュアルゴリズム等も知る必要がある。
【０００６】
しかし、カメラメーカーとしてはこれら暗号化に関する情報は公開したくないという理由と、ユーザの利便を図るという理由から、カメラメーカーが改竄判定システムを提供して、改竄判定システムが復号化鍵、暗号化アルゴリズム、及びハッシュアルゴリズムを管理することによって、ユーザに暗号化に関する詳細を見せないで、改竄判定を可能にするのが通常であった。
【０００７】
このようにすると、改竄判定は可能になるが、ユーザ側から見ると改竄判定の確かさや暗号の強度については知り得ず、従って原本性の保証にも疑問を持たざるを得ず、不満が生じ得る。
【０００８】
また、たとえ各カメラメーカーが暗号化に関する詳細を公開したとして、ユーザ側で改竄判定システムを構築できるようにしたとしても、その詳細を決定する権限はカメラメーカー側にあるので、いつそれが変更されるか分からず、変更されたらユーザ側で改竄判定システムを修正しなければならなくなるといった不都合もある。
【０００９】
さらに、従来、製造上の都合からカメラに内蔵された鍵や暗号化アルゴリズムといったものは固定的で変更できず、ユーザ側が必要な暗号強度を持つ暗号化方式を採りたいという希望をもったとしても、従来方式ではこれを実現することはできない。つまり、従来の技術では改竄判定システムを構築する上での柔軟性に欠けている。
【００１０】
さらに、従来のカメラにおける署名方法は一つの方法をサポートするのみで、署名入り画像を受け取る相手に合わせて署名方法を変えるなどということは行っていない。
【００１１】
本発明は上記した問題を解決するためになされたもので、その目的は、ユーザの要求に応じて電子署名の方法等を変更することを可能にし、もって、より柔軟性のある改竄判定を行うことのできる画像署名装置および方法を提供することである。
【課題を解決するための手段】
【００１２】
本発明の一側面に係る画像署名装置は、入力した画像を記憶する画像記憶手段と、画像の提示先を選択する提示先選択手段と、提示対象の画像を前記画像記憶手段から選択する画像選択手段と、前記画像選択手段により選択された前記提示対象の画像が前記画像記憶手段に最初に記憶された時点から無修正であるか否かを判定する判定手段と、前記判定手段により前記提示対象の画像が前記画像記憶手段に最初に記憶された時点から無修正であると判定された場合、前記提示先に応じた署名アルゴリズムにより前記提示対象の画像に電子署名を付加する署名手段とを有することを特徴とする。
【００１３】
本発明の別の側面に係る画像署名装置は、入力した画像に、ユーザの指示によっては変更することのできない第１の署名アルゴリズムにより電子署名を付加する第１の署名手段と、前記第１の署名手段による電子署名が付加された画像を記憶する画像記憶手段と、画像の提示先を選択する提示先選択手段と、提示対象の画像を前記画像記憶手段から選択する画像選択手段と、前記画像選択手段により選択された前記提示対象の画像が前記画像記憶手段に最初に記憶された時点から無修正であるか否かを判定する判定手段と、前記判定手段により前記提示対象の画像が前記画像記憶手段に最初に記憶された時点から無修正であると判定された場合、前記提示先に応じた第２の署名アルゴリズムにより前記提示対象の画像に電子署名を付加する第２の署名手段とを有することを特徴とする。
【００１４】
本発明の更に別の側面は画像署名方法に係り、入力した画像をメモリに記憶する画像記憶ステップと、画像の提示先を選択する提示先選択ステップと、提示対象の画像を前記メモリから選択する画像選択ステップと、前記画像選択ステップにより選択された前記提示対象の画像が前記メモリに最初に記憶された時点から無修正であるか否かを判定する判定ステップと、前記判定ステップにより前記提示対象の画像が前記メモリに最初に記憶された時点から無修正であると判定された場合、前記提示先に応じた署名アルゴリズムにより前記提示対象の画像に電子署名を付加する署名ステップとを有することを特徴とする。
【００１５】
本発明の更に別の側面に係る画像署名方法は、入力した画像に、ユーザの指示によっては変更することのできない第１の署名アルゴリズムにより電子署名を付加する第１の署名ステップと、前記第１の署名ステップで電子署名が付加された画像をメモリに記憶する画像記憶ステップと、画像の提示先を選択する提示先選択ステップと、提示対象の画像を前記メモリから選択する画像選択ステップと、前記画像選択ステップにより選択された前記提示対象の画像が前記メモリに最初に記憶された時点から無修正であるか否かを判定する判定ステップと、前記判定ステップにより前記提示対象の画像が前記メモリに最初に記憶された時点から無修正であると判定された場合、前記提示先に応じた第２の署名アルゴリズムにより前記提示対象の画像に電子署名を付加する第２の署名ステップとを有することを特徴とする。
【発明の効果】
【００１６】
本発明によれば、ユーザの要求に応じて電子署名の方法等を変更することを可能になり、これにより、柔軟性のある改竄判定を行うことのできる画像署名装置および方法が提供される。
【発明を実施するための最良の形態】
【００１７】
以下、図面を参照して本発明の好適な実施形態について詳細に説明する。なお、以下の説明において、単に「署名」とあるのは「電子署名」の意である。
【００１８】
図１は、本実施形態に係る画像署名システムの構成を示すブロック図である。
【００１９】
同図において、１０１は本発明が適用される画像署名装置としてのデジタルカメラである。
【００２０】
１０２は、最終的に画像を受け取る画像受信者から署名アプリケーション１０５と画像受信者に関する画像受信者情報１１４とを受信し、これらを蓄積するとともにデジタルカメラ１０１に送信する第１のサーバ装置としてのアプリケーションサーバである。
【００２１】
１０３は、画像受信者から画像受信者の公開鍵１０６、その公開鍵１０６を用いた暗号化を行うための暗号化アルゴリズム１０７、ハッシュアルゴリズム１０８、及び画像受信者情報１１４を受信し、これらを蓄積するとともにデジタルカメラ１０１に送信する第２のサーバ装置としての公開鍵サーバである。
【００２２】
１０４は、デジタルカメラ１０１から署名付き画像データ１０９を受信する画像受信者クライアントであり、上記の署名アプリケーション１０５および画像受信者情報１１４をアプリケーションサーバ１０２に送信すると共に、公開鍵１０６、暗号化アルゴリズム１０７、ハッシュアルゴリズム１０８、及び画像受信者情報１１４を公開鍵サーバ１０３に送信する。
【００２３】
画像受信者クライアント１０４は公開鍵１０６に対応する私的鍵１１０を有している。つまり、公開鍵１０６で暗号化したデータは私的鍵１１０で復号化可能である。
【００２４】
暗号化アルゴリズム１０７及びハッシュアルゴリズム１０８については、アルゴリズムを実現するプログラム自体が通信されてもよいが、一般的な暗号化処理には標準的なアルゴリズムが使用されることが通常であるから、アルゴリズムに関する情報、例えばアルゴリズムの通称名が通信されてもよい。通称名だけでも、互いにどのような処理をすればよいかが分かる。以後、通信されるものがどちらであっても、暗号化アルゴリズム１０７、ハッシュアルゴリズム１０８と記述する。
【００２５】
暗号化アルゴリズム１０７及びハッシュアルゴリズム１０８については、プログラム自体が通信されてデジタルカメラ１０１にて受信される場合、暗号化及びハッシュ値計算を行う際、それらのプログラムを呼び出せばよい。アルゴリズムに関する情報のみがデジタルカメラ１０１に送られてくる場合は、そのアルゴリズムを実装したプログラム（図示せず）をデジタルカメラ１０１が有していて、これを実行できるものとする。
【００２６】
さらに、暗号化アルゴリズム１０７及びハッシュアルゴリズム１０８は必ず画像受信者クライアント１０４からデジタルカメラ１０１に送られなければならないということはない。後述するように、これらが送られなければ、デジタルカメラ１０１ではデフォルトのアルゴリズムを用いることができる。
【００２７】
デジタルカメラ１０１は共通鍵１１１を有している。この一つの鍵を用いるだけで、データの暗号化及び復号化が可能なので、「共通」という語が用いられる。共通鍵１１１と公開鍵１０６及び私的鍵１１０とが行うデータの暗号化及び復号化についての関連はない。例えば、公開鍵１０６で暗号化したデータを共通鍵１１１では復号化できない。
【００２８】
また、デジタルカメラ１０１は、共通鍵１１１を用いた暗号化を行うための暗号化アルゴリズム１１２及びハッシュアルゴリズム１１３を、それぞれデフォルトとして有する。暗号化アルゴリズム１１２及びハッシュアルゴリズム１１３は実行可能なプログラムの形式でデジタルカメラ１０１内に存在する。これらの共通鍵１１１、暗号化アルゴリズム１１２及びハッシュアルゴリズム１１３は、デジタルカメラに内蔵されたもので、操作者の指示によっては変更できないものであることが好ましい。
【００２９】
図２は本実施形態におけるデジタルカメラ１０１の内部構成を示すブロック図である。
【００３０】
同図において、デジタルカメラ１０１は、デジタルカメラ１０１全体を制御する中央制御装置（以下、「ＣＰＵ」と称す。）２０１、各種動作プログラムを読み取り可能に格納したＲＯＭ２０２、プログラム動作中の一時的な値の保存に用いるＲＡＭ２０３、各種時間を計測するタイマ２０４、各種設定メニュー及び画像を表示するディスプレイ２０５、音声録音に用いるマイク２０６、音声出力に用いるスピーカ２０７、各種操作ボタン２０８、撮影した画像ファイルや各種設定データファイルを保存しておくための不揮発性メモリであるＦｌａｓｈＲＯＭ２０９、デジタルカメラ１０１の外部と接続するインタフェースとなるネットワークＩ／Ｆ２１０、図示しないレンズを通して集めた光を電気信号に置き換える電荷結合素子（以下、ＣＣＤと称す）２１１を備え、相互にバスで接続されている。
【００３１】
なお、ＦｌａｓｈＲＯＭ２０９はデジタルカメラ１０１に内蔵されていてもよいし、外部から挿入可能なメモリカード上に搭載されているものでもよい。
【００３２】
また、デジタルカメラ１０１が撮影した画像データの格納場所はＦｌａｓｈＲＯＭ２０９の他、ＲＡＭ２０３でもよいし、または図示しないがハードディスク等の記憶媒体でもよい。以後の例では、代表的な画像データの格納場所として、ＦｌａｓｈＲＯＭ２０９についてのみ言及する。
【００３３】
また、図１において外部からデジタルカメラ１０１が受信する署名アプリケーション１０５、公開鍵１０６、暗号化アルゴリズム１０７及びハッシュアルゴリズム１０８についても、その格納場所はＲＡＭ２０３、ＦｌａｓｈＲＯＭ２０９、あるいは図示しないがハードディスク等の記憶媒体でもよい。
【００３４】
図１のデジタルカメラ１０１が有する共通鍵１１１、暗号化アルゴリズム１１２、及びハッシュアルゴリズム１１３はＲＯＭ２０２に格納されている。外部からこれを読み出すことはできない。
【００３５】
図２では、デジタルカメラ１０１が外部と何らかのデータを通信する手段として、ネットワークＩ／Ｆ２１０を挙げたが、それ以外にも、着脱可能なメモリカードを用いることができる。その場合は、例えば、ＦｌａｓｈＲＯＭ２０９が着脱可能なメモリカードとなっており、外部でそのメモリカードにデータを書き込んでから、再度デジタルカメラ１０１に装着することで、外部で書き込んだデータをデジタルカメラ１０１の内部に取り込むことが可能である。逆に、デジタルカメラ１０１が書き込んだデータを外部に持っていくことも当然可能である。
【００３６】
つまり、図１に示した署名付き画像データ１０９、署名アプリケーション１０５、公開鍵１０６、暗号化アルゴリズム１０７及びハッシュアルゴリズム１０８はネットワークＩ／Ｆ２１０の他に、メモリカードを用いて、外部と通信することが可能である。
【００３７】
また、ネットワークＩ／Ｆ２１０の通信方式は通常用いられるどのようなものでもよく、有線、無線、その他の種別を問わない。
【００３８】
次に画像に署名を付加する方法及び署名付き画像の改竄判定を行う方法について、図３を用いて説明する。
【００３９】
まず、画像に署名を付加する方法について説明する。
【００４０】
ＦｌａｓｈＲＯＭ２０９に、画像データが格納されているものとする。画像データのフォーマットはＪＰＥＧあるいはＴＩＦＦ等の画像ヘッダを有するものを例にとり説明するが、特開２００１−７８０７０号公報（特許文献２）に記載されているような、画像イメージ中に署名を埋め込む方式であれば、画像ヘッダを有しないフォーマットでもかまわない。
【００４１】
この画像データをＣＰＵ２０１が読み出し、画像データ中のイメージ部分のデータ（画像イメージデータ）あるいは画像イメージデータと画像ヘッダを合わせた画像データ全体から、所定のハッシュアルゴリズム（１０８あるいは１１３）を用いて、ハッシュ値（メッセージダイジェスト、ＭＤ）を計算する。
【００４２】
次に、ＣＰＵ２０１は、暗号化鍵（公開鍵１０６あるいは共通鍵１１１）と暗号化アルゴリズム（１０７あるいは１１２）を用いて、ＭＤからメッセージ認証コード（ＭＡＣ：Message Authentication Code）を計算する。
【００４３】
計算の結果、得られたＭＡＣをＣＰＵ２０１は画像ヘッダ中の所定の位置に埋め込む。
【００４４】
以上のようにして、画像に署名が付加される。
【００４５】
また、以上の説明から分かるように、署名に用いる道具として、デジタルカメラ１０１に内蔵された共通鍵１１１、暗号化アルゴリズム１１２、及びハッシュアルゴリズム１１３を使用することも可能であるし、さらに、デジタルカメラ１０１の外部からデジタルカメラ１０１に供給された公開鍵１０６、暗号化アルゴリズム１０７、及びハッシュアルゴリズム１０８を使用することも可能である。なお、デジタルカメラ１０１が署名と署名の復号化を行う時に、デジタルカメラ１０１に内蔵された共通鍵１１１、暗号化アルゴリズム１１２、及びハッシュアルゴリズム１１３を使用する代わりに、図示しない公開鍵、私的鍵、それらを使用する暗号化アルゴリズム、及びハッシュアルゴリズムを使用してもよい。公開鍵、私的鍵とも外部に公開されなければ、共通鍵を用いるのと同様な効果が得られる。但し、共通鍵を用いた暗号化方式の方が、一般的に言って処理は高速である。
【００４６】
次に、署名付き画像の改竄判定を行う方法について説明する。
【００４７】
まず、ＦｌａｓｈＲＯＭ２０９に記憶された署名付き画像を読み出し、それからＣＰＵ２０１がＭＡＣを取り出す。図３ではＭＡＣは署名付き画像の画像ヘッダに埋め込まれており、ＣＰＵ２０１は署名付き画像のフォーマットからＭＡＣがどのように埋め込まれているか知っているものとする。
【００４８】
次いで、ＣＰＵ２０１は復号化によって、ＭＡＣからＭＤを取得する。この際に用いる復号化鍵はもちろん、前述したＭＤからＭＡＣを計算する時に使用した鍵と対になるものでなければならない。ＭＤからＭＡＣを計算する時に共通鍵１１１を使用した場合は、ＭＡＣからＭＤを計算するときも共通鍵１１１を使用する。ＭＤからＭＡＣを計算する時に公開鍵１０６を使用した場合は、ＭＡＣからＭＤを計算するときは私的鍵１１０を使用する。なお、正確に言えば、画像受信者クライアント１０４が有する私的鍵１１０をＣＰＵ２０１が使用することはできないので、ＣＰＵ２０１が暗号化及び復号化できるのは共通鍵１１１を用いた場合である。ＣＰＵ２０１が公開鍵１０６を用いて付与した署名を復号化して検証できるのは画像受信者クライアント１０４である。画像受信者クライアント１０４が署名付き画像の改竄判定を行う場合もここで説明したのと同様の手順になる。
【００４９】
なお、復号化を行うＣＰＵ２０１や画像受信者クライアント１０４は復号化を行う際に用いる復号化アルゴリズム（これも署名時に用いた暗号化アルゴリズムと対になるものである）の選択も適切にできるものとする。
【００５０】
デジタルカメラ１０１が有する暗号化アルゴリズム１１２は、広義の暗号化アルゴリズムであり、前記の署名時に用いた暗号化アルゴリズムの他に、この復号化アルゴリズムも含むものとする。
【００５１】
このようにして得たＭＤと画像データから前述の署名時と同様の手順で得たＭＤとを比較する。比較の結果一致すれば、その画像は改竄されていないということが判定できる。
【００５２】
次に、デジタルカメラ１０１における画像撮影処理について、図４のフローチャートを用いて説明する。
【００５３】
まず、デジタルカメラ１０１のユーザが撮影を行う（ステップＳ４０１）。この時点では撮影した画像の画像データはＲＡＭ２０３に格納されている。
【００５４】
次に、ＣＰＵ２０１はカメラ情報、例えばカメラメーカー名や、デジタルカメラ１０１の製造シリアル番号など、を画像ヘッダ内に入れるかどうかを判断する（ステップＳ４０２）。この判断はＲＡＭ２０３上に記憶された所定のフラグにより行う。このフラグはユーザ設定によって更新できる。カメラ情報を画像ヘッダに入れるのは、どのカメラでこの画像を撮影したのかを明示するためである。この情報がなくても改竄判定はできるため、必須の情報という訳ではないが、カメラ情報があったほうが、画像がどのカメラで撮影されたかの追跡ができるため、撮影者が改竄画像を見て、改竄されたかどうか判断することが容易になり、結果として、より改竄防止には効果がある。
【００５５】
ステップＳ４０２でＹに進んだ場合、ＣＰＵ２０１がカメラ情報を画像ヘッダに入れる（ステップＳ４０３）。
【００５６】
次に、ＣＰＵ２０１は画像に対し、共通鍵１１１を用いて署名する（ステップＳ４０４）。署名方法は図３で説明した方法をとる。
【００５７】
このようにして得た署名付き画像（まだＲＡＭ２０３上にある）をＦｌａｓｈＲＯＭ２０９に書き込み、記憶する（ステップＳ４０５）。
【００５８】
本実施形態におけるデジタルカメラ１０１は、前述のようにカメラ内部の共通鍵を用いて署名を付けた画像をＦｌａｓｈＲＯＭ２０９から読み出し、最終的に署名付き画像を提示する相手に応じた署名方法を用いて更に署名を付ける処理を行うことが可能である。これにより得られる署名付き画像データはネットワークＩ／Ｆ２１０を介してその相手のクライアントに送信することもできるし、ＦｌａｓｈＲＯＭ２０９に戻すこともできる。ＦｌａｓｈＲＯＭ２０９が着脱自在に構成されている場合には、署名付き画像データをネットワークＩ／Ｆ２１０を介して送信するのではなく、ＦｌａｓｈＲＯＭ２０９自体を相手先のクライアントに装着することもできる点で、署名付き画像データをＦｌａｓｈＲＯＭ２０９に戻す実益がある。
【００５９】
以下ではまず、共通鍵を用いて署名が付けられた画像に、提示する相手に応じた署名方法を用いて更に署名を付け、これをＦｌａｓｈＲＯＭ２０９に記憶する処理を、図５のフローチャートを用いて説明する。署名付き画像データをネットワークＩ／Ｆ２１０を介して相手のクライアントに送信する処理ついては図７のフローチャートを用いて後述することとする。
【００６０】
まず、デジタルカメラ１０１のユーザは数ある機能の中から、メニュー選択等の手段を通じて署名機能を選択する（ステップＳ５０１）。
【００６１】
署名機能を選択後、ユーザは最終的に署名付き画像を提示する相手を選択する（ステップＳ５０２）。このステップが必要な理由は、後で、相手に応じて署名方法を変更するためである。
【００６２】
次に、ＣＰＵ２０１は選択された相手がＲＡＭ２０３上に画像受信者として記憶されているかどうかを判定する（ステップＳ５１４）。詳細は後述するが図８に示すように、画像受信者のリストがＲＡＭ２０３上に存在する。このリスト中に選択した相手がいなければ、相手に対応する署名手段がない旨をディスプレイ２０５に表示して（ステップＳ５１５）終了する。リスト中に選択した相手がいる場合は、次に、ユーザは署名を付けようとする画像を選択する（ステップＳ５０３）。
【００６３】
選択が終了すると、ＣＰＵ２０１は選択された画像をＦｌａｓｈＲＯＭ２０９から読み出し、ＲＡＭ２０３上に置く（ステップＳ５０４）。
【００６４】
次に、ＣＰＵ２０１は画像が共通鍵１１１で署名されているかどうかを判断する（ステップＳ５０５）。これを判断するのは、ＦｌａｓｈＲＯＭ２０９に格納されている画像が全て署名されているとは限らないからである。画像を自分のためのみに使うのであって、改竄防止が必要ないのであれば、図４のように撮影時に署名をする必要はない。
【００６５】
署名されていなければ、無修正が保証できない旨をディスプレイ２０５に表示し（ステップＳ５０７）、画像に署名を行わないまま終了する。
【００６６】
署名されていれば、図３に示したごとく、画像中の署名を共通鍵１１１で復号化する（ステップＳ５０６）。
【００６７】
そして、ＣＰＵ２０１は復号化して得られたＭＤと画像から計算したＭＤを比較することにより、画像は無修正のままかどうかを判定する（ステップＳ５０８）。
【００６８】
ＭＤが一致せず、画像が修正されていると判断した場合は、画像が修正されている旨を表示し（ステップＳ５１０）、画像に署名を行わないまま終了する。
【００６９】
ＣＰＵ２０１が画像は無修正であると判断した場合は、次にＣＰＵ２０１は共通鍵１１１で行った署名は画像から削除すべきかどうかを判定する（ステップＳ５０９）。この判定は所定のフラグに基づいて行う。デジタルカメラ１０１のユーザがこのフラグを設定できるようにしておいてもよい。
【００７０】
削除すべきと判断した場合は、画像から共通鍵１１１で行った署名部分（ＭＡＣ）を削除する（ステップＳ５１１）。
【００７１】
改竄判定のためには、この後で付与する署名を用いればよいので、共通鍵１１１で行った署名を残しておく必要はない。しかし、この後で行う署名は公開鍵１０６を用いて行うので、ＣＰＵ２０１がこの署名を復号化することはできなくなってしまう。従って、後でＣＰＵ２０１が再度、この画像に対して改竄判定や復号化を行うのであれば、共通鍵１１１で行った署名を画像に付けたままにしておくのがよい。
【００７２】
次に、ＣＰＵ２０１はこの画像に対し、公開鍵１０６を用いて署名を実行する（ステップＳ５１２）。この手順の詳細については後述する。
【００７３】
共通鍵１１１で行った署名（ＭＡＣ１とする）を画像に残したまま、公開鍵１０６で行った署名（ＭＡＣ２とする）を追加するとなると、２つの署名が画像に付与されることになる。
【００７４】
公開鍵１０６で行った署名を復号化するのは、通常どおり復号化すれば問題はない。問題は、共通鍵１１１で署名を行った後に、公開鍵１０６で行った署名が追加されることになるので、これが画像の改竄と判定されてしまう恐れがあることである。
【００７５】
この問題を解決するためには、共通鍵１１１で行う暗号化及び公開鍵１０６で行う暗号化の対象を、図３の画像イメージデータに対して計算したＭＤとする方法、あるいは、公開鍵１０６で付与するＭＡＣ２の領域をＣＰＵ２０１が知っており、その部分を除いて、ＭＤを計算する方法等が挙げられる。
【００７６】
ステップＳ５１２による署名終了後、署名した画像をＦｌａｓｈＲＯＭ２０９に記憶して終了する（ステップＳ５１３）。
【００７７】
次に、ステップＳ５１２に示した署名機能実行手順の詳細について図６のフローチャートを用いて説明する。
【００７８】
まず、ＣＰＵ２０１は署名機能を署名アプリケーション１０５によって行うかどうかを判定する（ステップＳ６０１）。署名機能は、アプリケーションサーバ１０２からデジタルカメラ１０１が受信した署名アプリケーション１０５で行う方法と、公開鍵サーバ１０３からデジタルカメラ１０１が受信した公開鍵１０６、暗号化アルゴリズム１０７、及びハッシュアルゴリズム１０８の全て、あるいはそのうちの部分（ただし、公開鍵１０６は必須である）を用いて行う方法の２種類がある。
【００７９】
なお、署名アプリケーション１０５を用いるといっても、ＣＰＵ２０１から見て公開鍵１０６、暗号化アルゴリズム１０７、及びハッシュアルゴリズム１０８の詳細が分からないだけで、署名アプリケーション１０５自体はこれらの情報及びプログラムを保持している。
【００８０】
ステップＳ６０１でＣＰＵ２０１が署名機能を署名アプリケーション１０５によって行うかどうかを判定するには、ここで署名が付けられた画像が提示される相手、つまり、ステップＳ５０２で選択された相手に対して、署名アプリケーション１０５がＲＡＭ２０３上に記憶されているかどうかを調べる。
【００８１】
ここで図８に、ＲＡＭ２０３上に記憶される、デジタルカメラ１０１が画像を提示する相手と署名手段とを関連付けたテーブルの例を示す。ここで、相手とは、例えば画像受信者クライアント１０４における画像受信者のことであり、相手情報とは画像受信者情報１１４のことである。
【００８２】
同図において、相手としては、Ａ、Ｂ、Ｃ、及びＤの４者が記憶され、その各々に関連付けられた形で、署名手段が記憶されている。署名手段としては、署名アプリケーション１０５、公開鍵１０６、暗号化アルゴリズム１０７、及びハッシュアルゴリズム１０８が記憶される。
【００８３】
署名アプリケーションＡ、Ｂとあるのは、互いに異なった署名アプリケーション１０５を指している。デジタルカメラ１０１は画像受信者クライアント１０４Ａ（図示しないが、相手Ａにあたる）からアプリケーションサーバ１０２を通じて署名アプリケーションＡを受信する。同様に、画像受信者クライアント１０４Ｂ（図示しないが、相手Ｂにあたる）から署名アプリケーションＢを受信する。ＣＰＵ２０１は署名アプリケーション１０５を受信したときに、相手情報も受け取り（相手情報は、アプリケーションサーバ１０２との所定のプロトコルに則ったやりとりの中で得てもよいし、署名アプリケーション１０５の中に埋め込まれていてもよい）、そのようにして得た相手情報と署名アプリケーション１０５を関連付ける形で記憶している。
【００８４】
一方、相手Ｃと相手Ｄに関しては、デジタルカメラ１０１は公開鍵サーバ１０３から情報を得ている。公開鍵Ｃ、公開鍵Ｄが示すように、これらの鍵は別物である。相手Ｄに関しては、公開鍵１０６Ｄ、暗号化アルゴリズム１０７、及びハッシュアルゴリズム１０８が記憶されているが、相手Ｃに関しては、公開鍵１０６Ｃしか記憶されていない。これは、相手Ｃからは（直接には公開鍵サーバ１０３からだが）公開鍵１０６Ｃしか受け取らなかったことを示す。相手Ｃに対する署名時には、暗号化アルゴリズムおよびハッシュアルゴリズムには例えば、デフォルトである暗号化アルゴリズム１１２およびハッシュアルゴリズム１１３が使用される。
【００８５】
デジタルカメラ１０１が相手Ｃ（画像受信者クライアント１０４Ｃ）に対し署名付き画像データ１０９を送ろうとして、デフォルトのアルゴリズムを署名に使用した場合は、どの暗号化アルゴリズムやハッシュアルゴリズムを用いたかを、画像受信者クライアント１０４Ｃに送る署名付き画像データ１０９の中に埋め込む方法か、画像受信者クライアント１０４Ｃとの所定のプロトコルを用いる方法によって、画像受信者クライアント１０４Ｃに通知する。あるいは、最初から画像受信者クライアント１０４Ｃが、デジタルカメラ１０１が用いるデフォルトアルゴリズムを知っているように、デジタルカメラ１０１と画像受信者クライアント１０４Ｃの間で了解を取った上で、図１のシステムを構築してもよい。
【００８６】
図８の例でステップＳ６０１の判定はどうなるかと言えば、相手Ａ及び相手Ｂに関しては、署名アプリケーション１０５が記憶されているので、Ｙｅｓとなる。逆に、相手Ｃ及び相手Ｄに関してはＮｏである。
【００８７】
ステップＳ６０１でＮと判定された場合、次にＣＰＵ２０１は選択された相手に応じて図８のテーブルから公開鍵１０６を読み出し、使用する（正確には使用するものとして記憶するということ。実際に使用するのは後のステップＳ６１２においてである。）（ステップＳ６０４）。
【００８８】
次に、ＣＰＵ２０１は選択した相手から暗号化アルゴリズム１０７が提供されているかどうかを判定する（ステップＳ６０６）。提供されている場合は、その暗号化アルゴリズム１０７を使用する（ステップＳ６０７）。提供されていない場合は、前述したデフォルトの暗号化アルゴリズムを使用する（ステップＳ６０８）。
【００８９】
次に、ＣＰＵ２０１は選択した相手からハッシュアルゴリズム１０８が提供されているかどうかを判定する（ステップＳ６０９）。提供されている場合は、そのハッシュアルゴリズム１０８を使用する（ステップＳ６１０）。提供されていない場合は、前述したデフォルトのハッシュアルゴリズムを使用する（ステップＳ６１１）。
【００９０】
そして、ＣＰＵ２０１は前記の手順で選んだ公開鍵１０６、暗号化アルゴリズム１０７、及びハッシュアルゴリズム１０８を用いて、画像に署名を行って（ステップＳ６１２）、終了する。
【００９１】
ステップＳ６０１でＣＰＵ２０１が署名機能を署名アプリケーション１０５で行うと判定した場合は、画像データを署名アプリケーション１０５に渡し、署名アプリケーション１０５を実行することによって、署名を行って（ステップＳ６０３）、終了する。ここで署名アプリケーション１０５が行う処理の内容は、図３やステップＳ６１２で説明したのと同様の処理である。
【００９２】
署名アプリケーション１０５はＣＰＵ２０１が実行するが、アプリケーションはＣＰＵ２０１が実行できるものであればその形式は問わない。ＣＰＵ２０１が実行できるネイティブバイナリの形でもよいし、Ｊａｖａ（Ｊａｖａは米国Ｓｕｎ Ｍｉｃｒｏｓｙｓｔｅｍｓ社の米国およびその他の国における商標または登録商標である。）アプリケーションのような中間コード形式でもよいし、インタプリタが解釈、実行するスクリプト形式でもよい。
【００９３】
さて、図５で説明したのは、署名した画像を再度記憶媒体に記憶する手順についてであった。これは、前述のように、ＦｌａｓｈＲＯＭ２０９が着脱自在に構成されている場合にはそのＦｌａｓｈＲＯＭ２０９を取り外して画像受信者クライアントに装着する態様を想定してのものである。一方、図７のフローチャートは、ネットワークＩ／Ｆ２１０を介して署名付き画像を送信する態様を示している。なお、署名付き画像を受信した画像受信者クライアント１０４は、その画像に対し改竄判定を行うことになる。
【００９４】
以下、図７のフローチャートについて説明する。
【００９５】
まず、デジタルカメラ１０１のユーザは数ある機能の中から、メニュー選択等の手段を通じて送信機能を選択する（ステップＳ７０１）。
【００９６】
送信機能を選択後、ユーザは最終的に署名付き画像を送信する相手を選択する（ステップＳ７０２）。このステップが必要な理由は、後で、相手に応じて署名方法を変更するためである。
【００９７】
次に、ＣＰＵ２０１は選択された相手がＲＡＭ２０３上に画像受信者として記憶されているかどうかを判定する（ステップＳ７１９）。ＲＡＭ２０３上に存在する画像受信者のリスト中に選択した相手がいなければ、相手に対応する署名手段がない旨をディスプレイ２０５に表示する（ステップＳ７２０）。そして、署名を付けないまま画像を相手に送信して（ステップＳ７０７）、終了する。リスト中に選択した相手がいる場合は、次に、ユーザは署名を付けようとする画像を選択する（ステップＳ７０３）。
【００９８】
選択が終了すると、ＣＰＵ２０１は選択された画像をＦｌａｓｈＲＯＭ２０９から読み出し、ＲＡＭ２０３上に置く（ステップＳ７０４）。
【００９９】
次に、ＣＰＵ２０１は画像が共通鍵１１１で署名されているかどうかを判断する（ステップＳ７０８）。これを判断するのは、ＦｌａｓｈＲＯＭ２０９に格納されている画像が全て署名されているとは限らないからである。画像を自分のためのみに使うのであって、改竄防止が必要ないのであれば、図４のように撮影時に署名をする必要はない。
【０１００】
署名されていなければ、無修正が保証できない旨をディスプレイ２０５に表示し（ステップＳ７１０）、署名を付けないまま画像を相手に送信して（ステップＳ７０７）、終了する。署名されていれば、図３に示したごとく、画像中の署名を共通鍵１１１で復号化する（ステップＳ７０９）。
【０１０１】
そして、ＣＰＵ２０１は復号化して得られたＭＤと画像から計算したＭＤを比較することにより、画像は無修正のままかどうかを判定する（ステップＳ７１１）。
【０１０２】
ＭＤが一致せず、画像が修正されていると判断した場合は、画像が修正されている旨を表示し（ステップＳ７１３）、署名を付けないまま画像を相手に送信して（ステップＳ７０７）、終了する。
【０１０３】
ＣＰＵ２０１が画像は無修正であると判断した場合は、次にＣＰＵ２０１は共通鍵１１１で行った署名は画像から削除すべきかどうかを判定する（ステップＳ７１２）。この判定は所定のフラグに基づいて行う。デジタルカメラ１０１のユーザがこのフラグを設定できるようにしておいてもよい。
【０１０４】
削除すべきと判断した場合は、画像から共通鍵１１１で行った署名部分（ＭＡＣ）を削除する（ステップＳ７１４）。
【０１０５】
改竄判定のためには、この後で付与する署名を用いればよいので、共通鍵１１１で行った署名を残しておく必要はない。しかし、この後で行う署名は公開鍵１０６を用いて行うので、ＣＰＵ２０１がこの署名を復号化することはできなくなってしまう。従って、後でＣＰＵ２０１が再度、この画像に対して改竄判定や復号化を行うのであれば、共通鍵１１１で行った署名を画像に付けたままにしておくのがよい。
【０１０６】
なお、この手順においては署名を付けた画像は画像受信者クライアント１０４に送信してしまうのであるから、ＣＰＵ２０１が再度、署名を復号化することはないとも判断できる。しかし、図７のシーケンスでは明示していないが、署名付き画像データ１０９を送信を行うとともに記憶媒体に記憶しておいて、再度署名を復号化する可能性があるなら（元の画像データを署名付き画像データ１０９で上書き保存しておく場合等）、共通鍵１１１で行った署名を残しておく意味もある。
【０１０７】
次に、ＣＰＵ２０１はこの画像に対し、公開鍵１０６を用いて署名を実行する（ステップＳ７１７）。この手順は図６を用いて説明したとおりである。
【０１０８】
署名終了後、署名付き画像データ１０９を選択した相手である画像受信者クライアント１０４にネットワークＩ／Ｆ２１０を通じて送信し（ステップＳ７１８）、終了する。
【０１０９】
署名付き画像データ１０９を画像受信者クライアント１０４に送信する手段としては、どのようなものでもよく、有線あるいは無線、通信プロトコルの如何を問わない。
【０１１０】
次に、デジタルカメラ１０１がアプリケーションサーバ１０２から署名アプリケーション１０５を即座にダウンロードする際の手順について、図９のフローチャートを用いて説明する。
【０１１１】
まず、デジタルカメラ１０１のＣＰＵ２０１はネットワークＩ／Ｆ２１０を通じて、所定のプロトコルを用いて、アプリケーションサーバ１０２にアクセスする（ステップＳ９０１）。アプリケーションサーバ１０２は、必要であれば、デジタルカメラ１０１のアクセスの認証を行う。
【０１１２】
署名アプリケーション１０５のダウンロードがアプリケーションサーバ１０２によって許可されれば、デジタルカメラ１０１のＣＰＵ２０１はネットワークＩ／Ｆ２１０を通じて署名アプリケーション１０５をダウンロードする（ステップＳ９０２）。
【０１１３】
さらに、ＣＰＵ２０１は、ダウンロードした署名アプリケーション１０５に対応する相手情報すなわち画像受信者情報１１４をアプリケーションサーバ１０２から取得する（ステップＳ９０３）。
【０１１４】
ここで取得する画像受信者情報１１４は相手を特定できるものであればその内容は問わない。図５のように最終的に署名付き画像データ１０９を記憶媒体に記憶するだけなら、ステップＳ５０２で相手を選択するためには、相手の名前だけでもよいことになる。
【０１１５】
一方、図７のように最終的に署名付き画像データ１０９を相手に送信するなら、画像受信者情報１１４とは、相手がコンピュータであれば、そのアドレス（例えばＩＰアドレス）、電話線につながっている端末なら電話番号、インターネット上のリソースであればこれを表現するＵＲＬ（Uniform Resource Locator）等、様々なものが考えられるが、そのうちのいずれでも、あるいはそれら以外のものでもよい。
【０１１６】
そして、ＣＰＵ２０１は、前述のようにして得た及び画像受信者情報１１４に関連付けて署名アプリケーション１０５を図８に示したテーブルに記憶する（ステップＳ９０４）。その際、画像受信者情報１１４は図８のテーブルの相手欄に格納される。
【０１１７】
一人の画像受信者に対し、画像受信者情報１１４が複数存在することも考えられる。（例えば、ＩＰアドレスとＵＲＬ等）その場合には相手欄に複数の画像受信者情報１１４が格納される。その場合には、なるべく変更が少ない情報を相手欄のキーとするのがよい。例えば前記のＩＰアドレスとＵＲＬの２つの画像受信者情報１１４が送られてきたときのことを考えると、ＵＲＬの方が変更が少ないと考えられるので、これをキーとしておく。そうすれば、ＩＰアドレスだけ変更された場合、ＵＲＬをキーとして、ＩＰアドレス情報だけを更新すればよいことになる。
【０１１８】
同じ画像受信者クライアント１０４から複数回、署名アプリケーション１０５及び画像受信者情報１１４（画像受信者情報１１４は同じで、署名アプリケーション１０５が異なるとする）を受け取った場合は、図８のテーブルにおいて、該当する相手の欄を後で受け取ったデータで上書きする方法がまず考えられる。この方法では、署名アプリケーション１０５を更新することができる。
【０１１９】
また、図８のテーブルにおいて、同じ画像受信者クライアント１０４を指す複数のエントリ（互いに署名アプリケーション１０５は異なる）を作成する方法でもよい。この方法では、同じ画像受信者クライアント１０４に対し、実行する署名アプリケーション１０５を選択することによって、署名方法を変えることができる。
【０１２０】
ここまで画像受信者情報１１４を図８のテーブルのキーとして扱ってきたが、この情報は必須というわけではない。ステップＳ５０２において、画像を提示する相手を選択する代わりに、最初から署名アプリケーション１０５を選択するのであれば、画像受信者情報１１４は不要である。この場合は図８のテーブルに相手欄が存在しなくてもよい。
【０１２１】
図７のシーケンスにおいては、後で署名付き画像データ１０９を送信する都合上、相手選択が必須のように見えるが、署名アプリケーション１０５が送信機能までも内包しており、予め決まった所へ署名付き画像データ１０９を送信するのであれば、これもまた相手の選択をしないで、署名アプリケーション１０５の選択さえすればよいことになる。
【０１２２】
さて、以上の記述では、署名アプリケーション１０５、公開鍵１０６、暗号化アルゴリズム１０７、及びハッシュアルゴリズム１０８をデジタルカメラ１０１に送る際の暗号化については何も触れてこなかった。改竄防止という観点からはそれらの情報の暗号化は不要だからである。デジタルカメラ１０１が署名をつけた画像に対し、第三者が改竄すれば、前述の処理で画像受信者クライアント１０４は必ず改竄を発見できる。
【０１２３】
しかし、なりすましに関しては、注意する必要がある。公開鍵１０６、暗号化アルゴリズム１０７、及びハッシュアルゴリズム１０８（署名アプリケーション１０５もこれらの情報を内包していると考えれば、これらだけを考慮すればよい）を第三者が知ることができれば、そして、画像のどの部分に対してＭＤを計算して、どのようにＭＡＣを埋め込めばよいかを知ることができれば、第三者はデジタルカメラ１０１になりすまして、偽画像を画像受信者クライアント１０４に送りつけることができる可能性がある。
【０１２４】
従って、少なくとも公開鍵１０６は第三者に対して秘匿しておく必要がある。なお、暗号化アルゴリズム１０７やハッシュアルゴリズム１０８は公開鍵１０６に比べると、秘匿しておく必要性は少ない。それらのアルゴリズムを隠しても、暗号の強度が高まるわけではないからである。公開鍵１０６は「公開」という文字がついているが、この場合、第三者に公開するという意味ではなく、私的鍵１１０と対をなすという意味での公開鍵１０６である。
【０１２５】
このように見てくると、公開鍵１０６と私的鍵１１０は、第三者に対して秘匿するのであるから、それらは共通鍵暗号方式で用いる共通鍵でもよいことになる。その場合は、もちろん、暗号化アルゴリズム１０７はその共通鍵暗号方式に即したものが選ばれる。また、その共通鍵はデジタルカメラ内部での署名に用いられるわけではなく、共通鍵１１１とは異なるものである。
【０１２６】
さて、公開鍵１０６を使用する場合について考えると、これを第三者に対して秘匿するためには、公開鍵１０６が画像受信者クライアント１０４からデジタルカメラ１０１に送られるまでの経路を暗号化すればよい。例えば、ＳＳＬ（Secure Socket Layer）を使用したり、以上に述べたのと別の公開鍵暗号方式を用いて、公開鍵１０６をデジタルカメラ１０１に送ったりする方法が考えられる。また、このとき暗号化アルゴリズム１０７やハッシュアルゴリズム１０８も同様に暗号化してもよい。
【０１２７】
次に、デジタルカメラ１０１が公開鍵１０６を公開鍵サーバ１０３から受信する際の手順について、図１０のフローチャートを用いて説明する。
【０１２８】
まず、デジタルカメラ１０１のＣＰＵ２０１はネットワークＩ／Ｆ２１０を通じて、所定のプロトコルを用いて、公開鍵サーバ１０３にアクセスする（ステップＳ１００１）。公開鍵１０６を取得するのに必要であれば、デジタルカメラ１０１のアクセスの認証を公開鍵サーバ１０３は行う。
【０１２９】
公開鍵１０６のダウンロードが公開鍵サーバ１０３によって許可されれば、デジタルカメラ１０１のＣＰＵ２０１はネットワークＩ／Ｆ２１０を通じて公開鍵１０６をダウンロードする（ステップＳ１００２）。
【０１３０】
次に、ＣＰＵ２０１は、暗号化アルゴリズム１０７が公開鍵サーバ１０３から提供されている場合は（ステップＳ１００３）、公開鍵サーバ１０３からネットワークＩ／Ｆ２１０を通じて暗号化アルゴリズム１０７を取得する（ステップＳ１００４）。
【０１３１】
次に、ＣＰＵ２０１は、ハッシュアルゴリズム１０８が公開鍵サーバ１０３から提供されている場合は（ステップＳ１００５）、公開鍵サーバ１０３からネットワークＩ／Ｆ２１０を通じてハッシュアルゴリズム１０８を取得する（ステップＳ１００６）。
【０１３２】
さらに、ＣＰＵ２０１は、ダウンロードした公開鍵１０６に対応する相手情報すなわち画像受信者情報１１４を公開鍵サーバ１０３から取得する（ステップＳ１００７）。
【０１３３】
最後に、ＣＰＵ２０１は、前述のようにして得た及び画像受信者情報１１４に関連付けて公開鍵１０６、そしてあれば暗号化アルゴリズム１０７あるいはハッシュアルゴリズム１０８を図８に示したテーブルに記憶する（ステップＳ１００８）。
【０１３４】
次に、デジタルカメラ１０１において画像を撮影後、即座に画像受信者クライアント１０４に対して送信する手順について、図１１のフローチャートを用いて説明する。
【０１３５】
まず、デジタルカメラ１０１のユーザが撮影を行う（ステップＳ１１０１）。このとき、デジタルカメラ１０１のモードは、予め選択されていた画像受信者クライアント１０４に即座に撮影画像を送信するようになっているものとする。
【０１３６】
ＣＰＵ２０１は、前記の選択した相手（画像受信者クライアント１０４）は署名を必要とするかどうかを判定する（ステップＳ１１０２）。ここでは、同じ相手に送信するにしても、署名を行わなくてもよい場合があり、それを示すフラグがあると仮定して、このような判定を行っている。
【０１３７】
署名が必要であった場合は、ＣＰＵ２０１は選択した相手が署名手段を提供しているかどうかを判定する（ステップＳ１１０３）。図８のテーブルに選択した相手が存在し、その相手に対する署名手段が記憶されていれば、署名手段が提供されているものと見なす。
【０１３８】
ステップＳ１１０２あるいはステップＳ１１０３でいずれかがＮの場合は、撮影した画像を相手にそのまま送信して（ステップＳ１１０４）、終了する。
【０１３９】
相手が署名手段を提供していた場合は、ＣＰＵ２０１は画像ヘッダの中にカメラ情報を入れる（ステップＳ１１０５）。
【０１４０】
そして、ＣＰＵ２０１は署名機能を実行する（ステップＳ１１０６）。これは図６のシーケンスを用いて説明したのと同様の手順をとる。
【０１４１】
最後に、ＣＰＵ２０１は、署名付き画像データ１０９を画像受信者クライアント１０４に送信して（ステップＳ１１０７）、終了する。
【０１４２】
（他の実施形態）
以上、説明した実施形態は、図１に示したように、デジタルカメラ１０１、アプリケーションサーバ１０２、公開鍵サーバ１０３および画像受信者クライアント１０４で構成される画像署名システムを前提に説明したが、デジタルカメラ１０１がアプリケーションサーバ１０２および公開鍵サーバ１０３の両機能を含む構成であってもよい。つまり本発明は、複数の機器から構成されるシステムに適用してもよいし、また、一つの機器からなる装置に適用してもよい。
【０１４３】
なお、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラムを、システムあるいは装置に直接あるいは遠隔から供給し、そのシステムあるいは装置のコンピュータがその供給されたプログラムコードを読み出して実行することによっても実現される。その場合、プログラムの機能を有していれば、その形態はプログラムである必要はない。
【０１４４】
従って、本発明の機能処理をコンピュータで実現するために、そのコンピュータにインストールされるプログラムコード自体およびそのプログラムを格納した記憶媒体も本発明を構成することになる。つまり、本発明の特許請求の範囲には、本発明の機能処理を実現するためのコンピュータプログラム自体、およびそのプログラムを格納した記憶媒体も含まれる。
【０１４５】
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等、プログラムの形態を問わない。
【０１４６】
プログラムを供給するための記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−Ｒ）などがある。
【０１４７】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続し、そのホームページから本発明のコンピュータプログラムそのもの、もしくは圧縮され自動インストール機能を含むファイルをハードディスク等の記憶媒体にダウンロードすることによっても供給できる。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるＷＷＷサーバも、本発明のクレームに含まれるものである。
【０１４８】
また、本発明のプログラムを暗号化してＣＤ−ＲＯＭ等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせ、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
【０１４９】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される他、そのプログラムの指示に基づき、コンピュータ上で稼動しているＯＳなどが、実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現され得る。
【０１５０】
さらに、記憶媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現される。
【図面の簡単な説明】
【０１５１】
【図１】本発明の実施形態に係る画像署名システムの構成を示すブロック図である。
【図２】実施形態におけるデジタルカメラの内部構成を示すブロック図である。
【図３】画像に署名を付加する方法及び署名付き画像の改竄判定を行う方法を説明する図である。
【図４】実施形態のデジタルカメラにおける画像撮影処理を示すフローチャートである。
【図５】共通鍵を用いて署名が付けられた画像に、提示する相手に応じた署名方法を用いて更に署名を付け、これをＦｌａｓｈＲＯＭに記憶する処理を示すフローチャートである。
【図６】署名機能実行手順の詳細を示すフローチャートである。
【図７】共通鍵を用いて署名が付けられた画像に、提示する相手に応じた署名方法を用いて更に署名を付け、これを相手先のクライアントに送信する処理を示すフローチャートである。
【図８】相手（画像受信者）と署名方法を関連付けて記憶するテーブルの例を示す図である。
【図９】デジタルカメラが署名アプリケーションをアプリケーションサーバから即座にダウンロードする際の手順を示すフローチャートである。
【図１０】デジタルカメラが公開鍵を公開鍵サーバから受信する際の手順を示すフローチャートである。
【図１１】デジタルカメラにおいて画像を撮影後、即座に画像受信者に対して送信する手順について説明したフローチャートである。
【図１】
2005197808.tif 000003
【図２】
2005197808.tif 000004
【図３】
2005197808.tif 000005
【図４】
2005197808.tif 000006
【図５】
2005197808.tif 000007
【図６】
2005197808.tif 000008
【図７】
2005197808.tif 000009
【図８】
2005197808.tif 000010
【図９】
2005197808.tif 000011
【図１０】
2005197808.tif 000012
【図１１】
2005197808.tif 000013