(57)【要約】【課題】サイズの大きな画像データファイルに対する改竄検出用ダイジェスト値を高速に生成する。【解決手段】メモリ手段に格納された前記複数の画像ファイルデータを単位とする集合画像ファイルデータに含まれる複数の画像データを単位とした集合画像データに対しハッシュ演算を行う、または画像データファイルの１部分に対してのみハッシュ演算をおこなうことで、演算時間を短縮するように構成した改竄検知情報生成装置。【選択図】図２
2008022373.tif 000002
【特許請求の範囲】
【請求項１】
複数の画像ファイルデータを格納するメモリ手段と、
前記メモリ手段に格納された前記複数の画像ファイルデータを単位とする集合画像ファイルデータに含まれる複数の画像データを単位とした集合画像データに対しハッシュ演算を行うハッシュ演算手段と、を備え、
前記ハッシュ演算手段より、前記集合画像データのダイジェスト値を得る、ことを特徴とする改竄検知情報生成装置。
【請求項２】
前記集合画像ファイルデータは、複数または単独の画像データ及びヘッダデータと、を含む、ことを特徴とする請求項１に記載の改竄検知情報生成装置。
【請求項３】
署名演算手段をさらに備え、
前記署名演算手段は、前記ダイジェスト値に対して鍵情報により署名を行い、前記集合画像ファイルデータに関連する署名データを生成する、ことを特徴とする請求項１又は２に記載の改竄検知情報生成装置。
【請求項４】
前記ダイジェスト値を一時記憶する第１レジスタ手段と、
前記ハッシュ演算手段を設定する第２レジスタ手段と、をさらに備え、
前記集合画像データをハッシュ演算処理する場合には、１つの前記画像データに対するハッシュ演算処理の終了後、得られたダイジェスト値を前記第１レジスタ手段に格納すると共に、前記第２レジスタ手段の内容を更新したのちに、次の画像データに対するハッシュ演算処理を実行する、ことを特徴とする請求項１乃至３のいずれか１項に記載の改竄検知情報生成装置。
【請求項５】
前記第２レジスタ手段は、前記ハッシュ演算処理に対するパディング処理の有無を選択するフラグレジスタ手段を備え、
前記ハッシュ演算手段は、前記画像データの処理後に特定情報のパディング処理を実行し、前記集合画像データのハッシュ演算処理を実行する場合、前記画像データ単位で前記パディング処理の有無を選択すると共に、前記集合画像データの最後で前記パディング処理を可能とした、ことを特徴とする請求項４に記載の改竄検知情報生成装置。
【請求項６】
撮像部と、
改竄検知情報生成部と、を備え、
前記改竄検知情報生成部は、
前記撮像部で得られた画像ファイルデータを格納するメモリ手段と
前記メモリ手段に格納された前記複数の画像ファイルデータに含まれる複数の画像データを単位とした集合画像データに対しハッシュ演算を行うハッシュ演算手段と、を備え、
前記複数のハッシュ演算手段より、前記集合画像データに対応したダイジェスト値を得る、ことを特徴とする撮像装置。
【請求項７】
前記集合画像ファイルデータは、複数または単独の画像データ及びヘッダデータとを含む、ことを特徴とする請求項６に記載の撮像装置。
【請求項８】
前記改竄検知情報生成部は、署名演算手段をさらに備え、
前記署名演算手段は、前記ダイジェスト値に対して鍵情報により署名を行い、前記集合画像ファイルデータに関連する署名データを生成する、ことを特徴とする請求項６又は７に記載の撮像装置。
【請求項９】
取り外し可能な記憶手段に対してデータの読出し／書込みを行う読出し／書込み手段をさらに備え、
前記読出し／書込み手段は、前記取り外し可能な記憶手段に、前記集合画像ファイルデータと前記集合画像ファイルデータに関連する署名データとを書込む、ことを特徴とする請求項８に記載の撮像装置。
【請求項１０】
画像ファイルデータを格納するメモリ手段と、
前記メモリ手段に格納された前記画像ファイルデータに含まれる画像データの一部である部分画像データを取り出す部分画像データ取り出し手段と、
前記部分画像データ取り出し手段により前記メモリ手段より取り出された前記部分画像データに対しハッシュ演算を行うハッシュ演算手段と、を備え、
前記ハッシュ演算手段より、前記部分画像データに対応したダイジェスト値を得る、ことを特徴とする改竄検知情報生成装置。
【請求項１１】
前記部分画像データ取り出し手段は、
前記メモリ手段の制御を行うメモリ制御手段と、
前記メモリ制御手段への設定情報を保持するレジスタ手段と、を備え、
前記レジスタ手段は、前記設定情報として前記メモリ手段に格納された前記画像データの読出し開始位置とデータサイズを格納すると共に、前記読出し開始位置に対する相対的な読出し位置を指示する指示値を格納し、前記設定情報に従って、前記メモリ手段より、前記部分画像データを取り出す、ことを特徴とする請求項１０に記載の改竄検知情報生成装置。
【請求項１２】
前記指示値は、固定的な数値又は設定可能な数値である、ことを特徴とする請求項１１に記載の改竄検知情報生成装置。
【請求項１３】
署名演算手段と、
鍵情報と、
前記鍵情報を入力とする乱数発生手段と、をさらに備え、
前記部分画像データ取り出し手段は、前記乱数発生手段の出力に基づき前記指示値を設定すると共に、
前記署名演算手段は、前記ダイジェスト値に対して前記鍵情報により署名を行い、前記画像ファイルデータに関連する署名データを生成する、ことを特徴とする請求項１１又は１２に記載の改竄検知情報生成装置。
【請求項１４】
撮像部と、
改竄検知情報生成部と、を備え、
前記改竄検知情報生成部は、
画像ファイルデータを格納するメモリ手段と、
前記メモリ手段に格納された前記画像ファイルデータに含まれる画像データの一部である部分画像データを取り出す部分画像データ取り出し手段と、
前記部分画像データ取り出し手段により前記メモリ手段より取り出された前記部分画像データに対しハッシュ演算を行うハッシュ演算手段と、を備え、
前記ハッシュ演算手段より、前記部分画像データに対応したダイジェスト値を得る、ことを特徴とする撮像装置。
【請求項１５】
前記部分画像データ取り出し手段は、
前記メモリ手段の制御を行うメモリ制御手段と、
前記メモリ制御手段への設定情報を保持するレジスタ手段と、を備え、
前記レジスタ手段は、前記設定情報として前記メモリ手段に格納された前記画像データの読出し開始位置とデータサイズを格納すると共に、前記読出し開始位置に対する相対的な読出し位置を指示する指示値を格納し、前記設定情報に従って、前記メモリ手段より、前記部分画像データを取り出す、ことを特徴とする請求項１４に記載の撮像装置。
【請求項１６】
前記指示値は、固定的な数値又は設定可能な数値である、ことを特徴とする請求項１５に記載の撮像装置。
【請求項１７】
署名演算手段と、
鍵情報と、
前記鍵情報を入力とする乱数発生手段と、をさらに備え、
前記部分画像データ取り出し手段は、前記乱数発生手段の出力に基づき前記指示値を設定すると共に、
前記署名演算手段は、前記ダイジェスト値に対して前記鍵情報により署名を行い、前記画像ファイルデータに関連する署名データを生成する、ことを特徴とする請求項１４乃至１６のいずれか１項に記載の撮像装置。
【請求項１８】
複数の画像ファイルデータをメモリ手段に格納する格納工程と、
前記メモリ手段に格納された前記複数の画像ファイルデータを単位とする集合画像ファイルデータに含まれる複数の画像データを単位とした集合画像データに対しハッシュ演算を行うハッシュ演算工程と、を備え、
前記ハッシュ演算工程より、前記集合画像データのダイジェスト値を得る、ことを特徴とする改竄検知情報生成方法。
【請求項１９】
撮像工程と、
改竄検知情報生成工程と、を備え、
前記改竄検知情報生成工程は、
前記撮像工程でえられた画像ファイルデータをメモリ手段に格納する格納工程と、
前記メモリ手段に格納された前記複数の画像ファイルデータに含まれる複数の画像データを単位とした集合画像データに対しハッシュ演算を行うハッシュ演算工程と、を備え、
前記複数のハッシュ演算工程より、前記集合画像データに対応したダイジェスト値を得る、ことを特徴とする撮像方法。
【請求項２０】
画像ファイルデータをメモリ手段に格納する格納工程と、
前記メモリ手段に格納された前記画像ファイルデータに含まれる画像データの一部である部分画像データを取り出す部分画像データ取り出し工程と、
前記部分画像データ取り出し工程により前記メモリ手段より取り出された前記部分画像データに対しハッシュ演算を行うハッシュ演算工程と、を備え、
前記ハッシュ演算工程より、前記部分画像データに対応したダイジェスト値を得る、ことを特徴とする改竄検知情報生成方法。
【請求項２１】
撮像工程と、
改竄検知情報生成工程と、を備え、
前記改竄検知情報生成工程は、
前記撮像工程で得られた画像ファイルデータをメモリ手段に格納する格納工程と、
前記メモリ手段に格納された前記画像ファイルデータに含まれる画像データの一部である部分画像データを取り出す部分画像データ取り出し工程と、
前記部分画像データ取り出し工程により前記メモリ手段より取り出された前記部分画像データに対しハッシュ演算を行うハッシュ演算工程と、を備え、
前記ハッシュ演算工程より、前記部分画像データに対応したダイジェスト値を得る、ことを特徴とする撮像方法。
【請求項２２】
請求項１８又は２０に記載の改竄検知情報生成方法の手順をコンピュータに実行させるためのプログラム。
【請求項２３】
請求項１９又は２１に記載の撮像方法の手順をコンピュータに実行させるためのプログラム。
【請求項２４】
請求項１８又は２０に記載の改竄検知情報生成方法の手順をコンピュータに実行させるためのプログラムが記述されたコンピュータ可読記憶媒体。
【請求項２５】
請求項１９又は２１に記載の撮像方法の手順をコンピュータに実行させるためのプログラムが記述されたコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像データに対する改竄検知情報の発生を高速に処理可能な改竄検知情報生成装置、改竄検知情報生成装置を搭載した撮像装置、改竄検知情報生成方法、プログラムおよび記憶媒体に関する。
【背景技術】
【０００２】
従来よく知られているように、ＣＣＤやＣ−ＭＯＳ等の半導体撮像素子を備えるデジタルカメラにおいては、動画像信号、静止画像信号等を映像信号として取り込み、デジタル化し、画像データとして半導体メモリ等の記憶手段に格納する機能を有する。最近では、半導体技術の向上により、画素数が、例えば６００万画素から、大きいものでは１０００万画素を越える画素数を有する半導体撮像素子が開発され、使用されつつある。したがって、このような画素数の大きな半導体撮像素子を備えたデジタルカメラで撮影して得られる画像データの品質の向上は著しい。その結果、従来より使われてきた銀塩カメラの利用分野にも進出する場合が出てきている。例えば、新聞や雑誌に掲載される写真の撮影や、証明用写真等にもデジタルカメラが使われ始めている。
【０００３】
その様なデジタルカメラの利用分野の拡大に伴い、配布物としての写真の取り扱いや、写真そのものの信憑性などに注意を払うべき問題に焦点が当てられている。即ち、画像データは電気信号なので、銀塩カメラで作成した写真より容易に改竄することが可能であり、この問題を解決しないと、画像データの信憑性が疑われ、公式な証拠として採用出来ないことになる。
【０００４】
従来より、デジタルカメラで撮影して得た画像データに対する改竄検出データの生成、署名及び記録方法の例としては、幾つかの提案が為されている。例えば特許文献１は、生成した画像ファイルデータを記録媒体に保存する際、画像データは画像領域に、また署名データはプロパティ領域に格納する発明が開示されている。
【０００５】
図１は、従来技術における改竄検知情報の生成手段の１例を示す。図１において、１０１は機器全体の制御を扱うプロセッサ部であり、通常ＣＰＵや、機器全体の制御を行う制御プログラムを格納するＲＯＭを含む。プロセッサ部１０１は、撮影処理、現像処理及び画像ファイルデータ生成処理を制御する。尚、図１においては、撮像処理に必要な部分は省略されている。図示しない撮像部より得られ、処理対象となる画像データは、画像ファイルデータＡ、Ｂ及びＣとして図１のワークメモリ部１０５に格納される。
【０００６】
各画像ファイルデータの属性（サイズ、格納番地等）は、図１のファイル管理レジスタ部１０２に保持される。前記のプロセッサ部１０１は、ファイル管理レジスタ部１０２から、処理対象となる画像ファイルデータの属性を読出し、メモリ制御レジスタ部１０３へ転送する。メモリ制御レジスタ部１０３は、転送された画像ファイルデータの属性を格納する。
【０００７】
メモリ制御レジスタ部１０３は、読み出そうとする画像ファイルデータのアドレスやサイズをメモリ制御部１０４に指示する。するとメモリ制御部１０４は、ワークメモリ部１０５に対してステータス（status）を発行し、実際にワークメモリ部１０５から画像ファイルデータを読出し、又は書き込む制御を行う。
【０００８】
図１において、１０６はハッシュ処理を行う為のハッシュ演算部である。ハッシュ処理は、改竄検出の手段としては一般的に使用されている。ハッシュ関数は一方向関数であり、関数の結果値より被演算データ（入力メッセージ：ここでは、画像ファイルデータである）を得る。またハッシュ演算部１０６は、演算前にプロセッサ部１０１よって初期化される。
【０００９】
ワークメモリ部１０５から読み出された画像ファイルデータは、ハッシュ処理を行う為にハッシュ演算部１０６へ転送される。また、１０７は署名演算部であり、たとえば、ＳＨＡ１等の演算方法が用いられる。ここでは、ハッシュ演算部１０６の演算出力結果（以下、ダイジェスト値とする）に対して、機器（たとえば、型名、製造番号などが特定されたデジタルカメラ）固有の鍵情報にて署名する働きをする。したがって、デジタルカメラ（機器）で撮影して得られた画像データ（ファイル）にそのデジタルカメラ（機器）に固有の署名データを付加することで、安全にデジタルカメラ（機器）から取り出し、外に画像ファイルデータを持ち出すことが出来る。
【特許文献１】特開２００２−０１００４４号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
図１で説明したハッシュ演算部１０６では、入力となるメッセージ（画像ファイルデータ）に対して複数回の演算処理が必要となる。したがって、このハッシュ演算部１０６を通すだけでデジタルカメラとしてのスループットが低下する。例えば、ＭＤ５ Message-Digest Algorithm（以下、ＭＤ５アルゴリズムとする）では、入力メッセージの１ワードに対して４回のハッシュ演算処理が必要である。つまり、ハードウエア処理として１クロックに１回のハッシュ演算処理を行ったとしても、メッセージ入力に対して４倍の処理時間が掛かることになる。その為、たとえば、高速連写を実現しているデジタルカメラ等では、高速な連写と同時に改竄検出用ダイジェスト値の生成を行う制御は困難であった。
【課題を解決するための手段】
【００１１】
上記目的を達成するため、本発明の実施形態は、複数の画像ファイルデータを格納するメモリ手段と、前記メモリ手段に格納された前記複数の画像ファイルデータを単位とする集合画像ファイルデータに含まれる複数の画像データを単位とした集合画像データに対しハッシュ演算を行うハッシュ演算手段と、を備え、前記ハッシュ演算手段より、前記集合画像データのダイジェスト値を得る、ことを特徴とする改竄検知情報生成装置を提供する。
【００１２】
上記目的を達成するため、本発明の他の実施形態は、撮像部と、改竄検知情報生成部と、を備え、前記改竄検知情報生成部は、前記撮像部で得られた画像ファイルデータを格納するメモリ手段と前記メモリ手段に格納された前記複数の画像ファイルデータに含まれる複数の画像データを単位とした集合画像データに対しハッシュ演算を行うハッシュ演算手段と、を備え、前記複数のハッシュ演算手段より、前記集合画像データに対応したダイジェスト値を得る、ことを特徴とする撮像装置を提供する。
【００１３】
上記目的を達成するため、本発明のさらに他の実施形態は、画像ファイルデータを格納するメモリ手段と、前記メモリ手段に格納された前記画像ファイルデータに含まれる画像データの一部である部分画像データを取り出す部分画像データ取り出し手段と、前記部分画像データ取り出し手段により前記メモリ手段より取り出された前記部分画像データに対しハッシュ演算を行うハッシュ演算手段と、を備え、前記ハッシュ演算手段より、前記部分画像データに対応したダイジェスト値を得る、ことを特徴とする改竄検知情報生成装置を提供する。
【００１４】
上記目的を達成するため、本発明のさらに他の実施形態は、撮像部と、改竄検知情報生成部と、を備え、前記改竄検知情報生成部は、画像ファイルデータを格納するメモリ手段と、前記メモリ手段に格納された前記画像ファイルデータに含まれる画像データの一部である部分画像データを取り出す部分画像データ取り出し手段と、前記部分画像データ取り出し手段により前記メモリ手段より取り出された前記部分画像データに対しハッシュ演算を行うハッシュ演算手段と、を備え、前記ハッシュ演算手段より、前記部分画像データに対応したダイジェスト値を得る、ことを特徴とする撮像装置を提供する。
【００１５】
上記目的を達成するため、本発明のさらに他の実施形態は、複数の画像ファイルデータをメモリ手段に格納する格納工程と、前記メモリ手段に格納された前記複数の画像ファイルデータを単位とする集合画像ファイルデータに含まれる複数の画像データを単位とした集合画像データに対しハッシュ演算を行うハッシュ演算工程と、を備え、前記ハッシュ演算工程より、前記集合画像データのダイジェスト値を得る、ことを特徴とする改竄検知情報生成方法を提供する。
【００１６】
上記目的を達成するため、本発明のさらに他の実施形態は、撮像工程と、改竄検知情報生成工程と、を備え、前記改竄検知情報生成工程は、前記撮像工程でえられた画像ファイルデータをメモリ手段に格納する格納工程と、前記メモリ手段に格納された前記複数の画像ファイルデータに含まれる複数の画像データを単位とした集合画像データに対しハッシュ演算を行うハッシュ演算工程と、を備え、前記複数のハッシュ演算工程より、前記集合画像データに対応したダイジェスト値を得る、ことを特徴とする撮像方法を提供する。
【００１７】
上記目的を達成するため、本発明のさらに他の実施形態は、画像ファイルデータをメモリ手段に格納する格納工程と、前記メモリ手段に格納された前記画像ファイルデータに含まれる画像データの一部である部分画像データを取り出す部分画像データ取り出し工程と、前記部分画像データ取り出し工程により前記メモリ手段より取り出された前記部分画像データに対しハッシュ演算を行うハッシュ演算工程と、を備え、前記ハッシュ演算工程より、前記部分画像データに対応したダイジェスト値を得る、ことを特徴とする改竄検知情報生成方法を提供する。
【００１８】
上記目的を達成するため、本発明のさらに他の実施形態は、撮像工程と、改竄検知情報生成工程と、を備え、前記改竄検知情報生成工程は、前記撮像工程で得られた画像ファイルデータをメモリ手段に格納する格納工程と、前記メモリ手段に格納された前記画像ファイルデータに含まれる画像データの一部である部分画像データを取り出す部分画像データ取り出し工程と、前記部分画像データ取り出し工程により前記メモリ手段より取り出された前記部分画像データに対しハッシュ演算を行うハッシュ演算工程と、を備え、前記ハッシュ演算工程より、前記部分画像データに対応したダイジェスト値を得る、ことを特徴とする撮像方法を提供する。
【００１９】
上記目的を達成するため、本発明のさらに他の実施形態は、前記実施形態において、各工程をコンピュータに実行させるプログラムを提供する。
【００２０】
上記目的を達成するため、本発明のさらに他の実施形態は、前記実施形態において、各工程をコンピュータに実行させるプログラムが記憶されたコンピュータ可読記憶媒体を提供する。
【発明の効果】
【００２１】
本発明によれば、対象となる画像データファイルのサイズが大きくても、改竄検出用ダイジェスト値の生成を高速に処理することが可能となる。
【発明を実施するための最良の形態】
【００２２】
本発明をデジタルカメラに適用した２つの実施形態について図２及び３を用いて説明する。図２に示した実施形態１では、主にデジタルカメラの高速連写制御を妨げないように複数の画像データファイルをまとめて集合画像ファイルデータとしてハッシュ演算処理を行う例を示す。また、図３に示した実施形態２では、画像ファイルデータの一部を選択し又は削減することにより得られる部分画像データファイルに対してハッシュ演算処理を行い、それにより、ハッシュ演算処理を高速化する例を示す。
【００２３】
＜実施形態１＞
図２は、本発明の実施形態１におけるデジタルカメラの要部ブロック図である。図２において、デジタルカメラは、撮像部１、改竄検知情報生成部２、ＬＣＤ表示部３及び取り外し可能な半導体メモリカード４とで構成される。ＬＣＤ表示部４は、撮影前の被写体画像、撮影後の被写体画像や、半導体メモリカード４に格納された画像データをモニタするために備えられる。撮像部１は、光学系、半導体撮像素子、信号処理回路、デジタル変換回路等を含み、画像データを出力する。これらの構成や動作の詳細な説明は、この明細書では省略される。
【００２４】
実施形態１の説明では、改竄検知情報生成部２における画像ファイルデータのハッシュ処理について詳細に説明し、それ以外の撮像、現像処理等の詳細な説明等については本発明の本質ではないので省略する。
【００２５】
デジタルカメラの撮像部１で得られた画像ファイルデータＡ、Ｂは、最終的に半導体メモリカード４などの不揮発性メモリに記録されるまで、一時的格納手段としてＤＲＡＭ等の揮発性メモリに一時的に格納される。２０５は、その様な一時的格納手段としてのワークメモリ部を示す。当然のことながら、画像ファイルデータは、ＨＤＤ等の記録ディスク、光磁気デイスク等の記録倍他への記録のみならず、デジカルカメラに備えられた図示しないＩ／Ｆを通じて、外部にある記憶装置に転送することもありうる。
【００２６】
図２の改竄検知情報生成部２において、２０１は機器全体の制御を扱うプロセッサ部であり、通常ＣＰＵや、機器全体の制御を行う制御プログラムを格納するＲＯＭを含む。プロセッサ部２０１は、撮像部１の制御も含めて、撮影処理、現像処理及び画像ファイルデータ生成処理を制御する。先に説明するように、撮像部１より得られ、処理対象となる画像データは、画像ファイルデータＡ、Ｂ及びＣとして図２のワークメモリ部２０５に一時的に格納される。
【００２７】
画像ファイルデータの属性（サイズ、格納番地等）は、ファイル管理レジスタ部２０２に保持される。このファイル管理レジスタ部２０２は、ワークメモリ部２０５の中に割り当てることも可能である。前記のプロセッサ部２０１は、ファイル管理レジスタ部２０２から、処理対象となる画像ファイルデータの属性を読出し、メモリ制御レジスタ部２０３へ転送する。メモリ制御レジスタ部２０３は、転送された画像ファイルデータの属性を格納する。
【００２８】
メモリ制御レジスタ部２０３は、読み出そうとする画像ファイルデータのアドレスやサイズをメモリ制御部２０４に指示する。するとメモリ制御部２０４は、ワークメモリ部２０５に対してステータス（status）を発行し、実際にワークメモリ部２０５から画像ファイルデータを読出し、又は書き込む制御を行う。
【００２９】
ワークメモリ２０５に画像ファイルデータＡが存在しているとする。デジタルカメラ本体の設定により改竄検出データの付加が要求されている場合、撮影して得られた画像ファイルデータに対してハッシュ処理が施される。
【００３０】
図１で説明した従来の制御方法では、対象となる画像ファイルデータに対して一次元的にダイジェスト処理が施される。前記ＭＤ５アルゴリズム処理では、ダイジェスト値を求めるのに、１ワードに対して４回のハッシュ演算処理が行われる。ハードウエアで１クロックに１ワードを読み込んでハッシュ演算処理する場合には、最短でもその４倍の処理時間が掛かることになる。実際には、１６ワードを一対として処理され、１ワードは３２bitである。
【００３１】
本発明の実施形態１においては、図２に示すように、プロセッサ部２０１は、ワークメモリ部２０５内に、ハッシュ演算処理の対象とする画像ファイルデータが格納された時点で改竄検出用ハッシュ演算処理及び署名演算処理の実行を指示する。ここでいうハッシュ演算処理の対象とする画像ファイルデータのファイル数は、デジタルカメラ（機器）でデフォルト値を持つが、ユーザーが任意の値を設定可能とすることも可能である。したがって、ここでは、ハッシュ演算処理の対象とする画像ファイルデータのファイル数は、特に数値を固定化しない。実施形態１では、２つの画像ファイルデータＡ、Ｂを集合画像ファイルデータとしてまとめて処理することが可能とされる。
【００３２】
プロセッサ２０１は、動作の開始時にファイル管理レジスタ部２０２の内容を読み出す。ファイル管理レジスタ部２０２の内容の一例を、図４の（ａ）に図示する。ファイル管理レジスタ部２０２には２つの主属性情報（記録属性情報及びメモリ配置情報）を持たせる。この場合、記録属性とは、ファイル属性に係るものであり、ワークメモリ部２０５の状態に依存せずにファイルの内容について示すものである。一方、メモリ配置情報は、ワークメモリ部２０５上に於ける画像ファイルデータの格納位置等を示すものである。このように、ファイル管理レジスタ部２０２では、これら集合画像ファイルデータＡ、Ｂの２つの主属性情報を１つのレコードとし、前記の対象となる集合画像ファイルデータが有する画像ファイルデータの数に対応した複数レコードを管理する。
【００３３】
ファイル管理レジスタ部２０２中のファイルサイズとデータサイズとは、通常等価な数値であるが、ファームウエア上、画像ファイルデータをストラクチャ単位でデータ授受を行う場合には、各々定義しておく方が使い勝手が良い。したがって、本実施形態では各々定義される。勿論、これらは統一しても良い。また、データサイズには、データの管理をワード単位で扱う場合もあるので、その場合には、バイト端数分でファイルサイズとは実際の数値に相違が出る場合もある。
【００３４】
プロセッサ部２０１は、最初に処理すべき画像ファイルデータのメモリ配置情報を読出し、メモリ制御レジスタ部２０３へ格納する。メモリ制御レジスタ部２０３の設定内容については、図４の（ｂ）に示している。ここでの説明は読出し制御なので、ファイル管理レジスタ部２０２の対象とする画像ファイルデータのスタートアドレス値をメモリ制御レジスタ部２０３の読出しアドレス「read address」値に設定する。さらに、データサイズ値を読出し長「read length」値に設定する。
【００３５】
図４の（ｂ）に示すメモリ制御レジスタ部のモードレジスタ値は、ワークメモリの制御動作を定義するものである。例えば、バースト長等ＳＤＲＡＭのモードレジスタに設定する値がそれに当たる。
【００３６】
またプロセッサ部２０１は、記録属性中のファイルサイズを読出し、前記一括してハッシュ演算処理を行う画像ファイルデータ分について、総和を取る。この値は、ハッシュ演算部２０６に入力される画像ファイルデータ（メッセージ）の総数と等価であり、ＭＤ５プロトコルでは、パディングした最後にこのサイズを画像ファイルデータ（メッセージ）に付加して演算する際に使用される。
【００３７】
図２では、複数の画像ファイルデータ（メッセージ）を含む集合画像ファイルデータに対して１つのダイジェスト値を得る。そのため、ハッシュ演算部２０６の出力であるダイジェスト値を一時保持するダイジェストレジスタ部２０８と、最後にパディング処理の実行を付加する等の制御指示の為のメッセージ制御レジスタ部２０９を具備している。
【００３８】
メッセージ制御レジスタ部２０９には、前記合計メッセージサイズの他に、パディングの実行を指示するパディング要求 (フラグ)と、ダイジェスト値の初期値を保持する（図４の（ｃ）図示）。今、ダイジェスト値が４ワード分のデータで構成されるとして、この４ワード各々の分の初期値を word_A、word_B、word_C、およびword_D としている。
【００３９】
前記ダイジェスト初期値は、図２中ダイジェストレジスタ部２０８の初期値としても設定される。該ダイジェストレジスタ部２０８の内容は、図４中（ｄ）に示す。
【００４０】
ハッシュ演算の為の初期設定が完了した時点で、前記プロセッサ２０１はメモリ制御部２０４に対してワークメモリ２０５からのデータ読出し開始を指示する。読み出されたデータは、前記ハッシュ演算部２０６へと送出され画像ファイルデータ（メッセージデータ）として扱われる。
【００４１】
集合画像ファイルデータの中の１の画像ファイルデータの走査が終了した時点で、メッセージ制御レジスタ部２０９のパディング要求フラグが”Ｎ”状態ならば、ハッシュ演算部２０６は動作を停止して次の画像ファイルデータの入力があるまで待機する。
【００４２】
プロセッサ部２０１は、メモリ制御部２０４からのデータ読出し終了割込みを受けて、次の画像ファイルデータの読出し処理へと、制御を移行する。もし、ワークメモリ部２０５上で所望の集合画像ファイルデータの複数の画像ファイルデータのアドレスが連続しているならば、メモリ制御レジスタ部２０３に合計サイズを指定して読出し処理を実行しても良い。ここでは、１画像ファイルデータ毎に設定を更新していく制御について説明している。
【００４３】
プロセッサ部２０１は、最後の画像ファイルデータの読出しを行う際に、前記メッセージ制御レジスタ部２０９のパディング要求を”Ｎ”とする。それにより、画像ファイルデータ（メッセージ）の読出し終了後には、ダイジェストレジスタ部２０８内に所望の集合画像ファイルデータに対するダイジェスト値を得ることが出来る。
【００４４】
ハッシュ演算によって得られたダイジェスト値は、図２中の署名演算部２０７によりデジタルカメラ（機器）固有（形式名及び製造番号で特定される）の鍵情報２１１で暗号化される。
【００４５】
図５は、図２のプロセッサ部２０１の改竄検知情報を生成する処理の動作を説明するフローチャートである。先ずステップＳ５０１で、プロセッサ部２０１は、先ずメッセージとすべき画像ファイルデータの総数Ｎを設定し、現在の処理対象の画像ファイルデータを示す数値ｎを初期値（ｎ＝０）にする。この総数Ｎは、集合画像ファイルデータに含まれる画像データに数であり、ユーザが定義した数値で良い。
【００４６】
次にステップＳ５０２に進み、ハッシュ演算部２０６を初期化するため、メッセージ制御レジスタ部２０９に対してダイジェスト初期値を設定する。ここでは、パディング情報や、合計のメッセージサイズは与えない。メッセージサイズは、プロセッサ部２０１に於いて変数として持つ。このメッセージサイズ変数は、１画像ファイルデータの処理が終了する毎にそのサイズを加算し、総和をとる。
【００４７】
さらにステップＳ５０３で、最初（ｎ＝０）の画像ファイルデータに対する属性情報を、ファイル管理レジスタ部２０２より読み出し、ステップＳ５０４でファイルサイズを先程の総和に加算する。
【００４８】
また、ステップＳ５０５で、現在の処理中の画像ファイルデータのファイル数ｎが、ｎ＝Ｎ−１の関係にないならば、ステップＳ５０６に進む。そして、ファイル属性中のメモリ配置情報を、ワークメモリ部２０５へのメモリアクセス情報としてメモリ制御レジスタ部２０３へ設定する。この状態で、ステップＳ５０７で示すようにハッシュ演算部２０６を起動する。
【００４９】
プロセッサ部２０１は、ステップＳ５０８でハッシュ演算部２０６の終了を検知したら、ステップＳ５０９で処理ファイル数ｎに１を加算する。ここでの処理ファイル数ｎが、処理すべきファイル総数Ｎに到達していなければ、ステップＳ５０３へと戻り、引き続きハッシュ演算処理を行う。
【００５０】
そしてステップＳ５０３で、次の画像ファイルデータのファイル属性を読み込み、ステップＳ５０４でメッセージサイズの総和を更新する。今度は、ステップＳ５０５で、この画像ファイルデータが最後の処理すべき画像ファイルデータ（ｎ＝Ｎ−１）であると判定されれば、ステップＳ５１４に進む。そして、前述のメッセージサイズ変数を、メッセージ制御レジスタ部２０９のメッセージサイズレジスタに設定すると共に、パディング要求も設定する。その状態でハッシュ演算処理を実行すると、集合画像ファイルデータに含まれる全ての画像ファイルのダイジェスト値が計算されハッシュ演算処理が完了する。あとは、ステップＳ５１１で結果のダイジェスト値を読出し、ステップＳ５１２で署名処理（暗号化処理）を実行し、ステップＳ５１３で署名処理の完了を確認し、フローを終了する。
【００５１】
＜実施形態２＞
図３は、本発明の他の実施形態としての実施形態２を示し、画像ファイルデータの任意の一部分を部分画像ファイルデータとし、ダイジェスト値を生成する。本実施形態２の適用は、１つの画像ファイルデータに対して、又は実施形態１の様に複数の画像ファイルデータであっても実施可能である。なお、図３に示した実施形態２は、多くの部分で実施形態１の構成及び動作と共通するので、それらの部分の説明は省略する。
【００５２】
図３のファイル管理レジスタ部３０２の内容を図４の（ａ）に、メモリ制御レジスタ部３０３の内容を図４の（ｂ）’に、メッセージ制御レジスタ部３０９の内容を図４の（ｃ）に、ダイジェストレジスタ部３０８の内容を図４の（ｄ）にそれぞれ示す。これらは一例であり、夫々内容はこれに限定されるものではない。尚、これらのレジスタの夫々は、ワークメモリ部３０５中の任意のアドレス上に割り付けて設けても良い。
【００５３】
今、撮影後の画像を含む画像ファイルデータが、図３のワークメモリ部３０５に格納されているとする。デジタルカメラ本体の設定で改竄検知情報の付加が選択されている場合には、この画像ファイルデータに対してハッシュ演算処理が為される。図３のプロセッサ部３０１は、ファイル管理レジスタ部３０２よりメモリ配置情報である開始アドレスとデータサイズを取得する。
【００５４】
取得した情報は、メモリアクセス情報としてメモリ制御レジスタ部３０３に与える。通常であれば、これをメモリ制御部３０４に転送することで、開始アドレスからデータサイズ相当分の画像ファイルデータをワークメモリ部３０５より読み出し、全てをハッシュ演算処理に掛けることになる。しかしながら、実施形態２では、対象となる画像ファイルデータ中の任意のデータ部分のみを読み出すことで、改竄検知情報の生成時間を短縮し、スループットを上げるものである。
【００５５】
本実施形態２では、対象となる画像ファイルデータ中の任意の部分画像データのデータ位置の決定は、図３の乱数発生部３１４で決定される。例えば、対象となる画像ファイルデータに対する乱数を発生させる。ここでは、乱数発生のアルゴリズム自体は特定しない。また、画像ファイルデータをパーソナルコンピュータＰＣ等にて改竄検出の実行を行う場合には、ＰＣ等にて同様のハッシュ処理の実行が必要となるので、ここでは乱数のシード値として鍵情報３１３を与えている。
【００５６】
対象となる画像ファイルデータは、乱数の結果にしたがって間引き処理が実行される。間引きの割合は、スループットと改竄検出効果との兼ね合いから決定する。あまり間引くと改竄検知効果は低下する。間引きによる改竄検知効果の低下の補完として、図３の３１２のチェックサム（画像ファイルデータ：メッセージの総和）を用いても良い。この場合、チェックサム３１２は、画像ファイルデータの現像（rawデータならば撮像）走査の出力（ワークメモリへの書込み）時に加算により求めることが出来る。
【００５７】
メモリ制御レジスタ部３０３は、アドレス初期値から乱数発生部３１４より受け取った値を図４の（ｂ）’に記載の「rd shift value」に設定する。そしてメモリ制御部３０４はそれを反映して現在位置よりその分シフトした位置の画像ファイルデータを読み出していく。例えば、ワークメモリ部３０５がＳＤＲＡＭで構成される場合には、ある程度連続したアドレスをアクセスすることがデータのレイテンシを隠匿すること（スループットの向上）につながる。したがって、ある程度バースト転送可能な量は連続して読み出しても良い。
【００５８】
読み出された間引き後の部分画像ファイルデータは、図３のハッシュ演算部３０６に転送され、そこでハッシュ演算処理が為される。ダイジェスト値計算用の初期値は、図３のメッセージ制御レジスタ部３０９によりハッシュ演算部３０６に設定される。また、複数の画像ファイルデータを処理したり、ワークメモリ部３０５上のアドレス空間が連続しないデータを扱う場合には、ダイジェストレジスタ部３０８に、一旦ダイジェスト値を格納する。そして、次の画像ファイルデータ（メッセージデータ）のハッシュ演算部３０６への入力時に、その値を戻して使用する。
【００５９】
最終的なダイジェスト値は、ダイジェストレジスタ部３０８に格納される。例えば、プロセッサ部３０１は、メモリ制御部３０４よりデータ読出し完了割込みを受ける。すると、前記ダイジェストレジスタ部３０８に存在する図４の（ｄ）に記載の「digest_valid」フラグにて、パディング処理までが終了してダイジェストが有効であること確認してから、結果のダイジェスト値を、署名演算部３０７に入力する。
【００６０】
前記ダイジェスト値のデータは、前記鍵情報により暗号化された署名データとして例えば画像ファイルデータの最後に付加され、半導体メモリカード４に画像データと共に格納され、デジタルカメラ外部へと持ち出し可能となる。
【００６１】
尚、本実施形態２では、乱数発生部３１４を用いて任意の間隔でワークメモリ部３０５をアクセスすることで、部分画像ファイルデータを取り出すように間引きを実行した。しかし、固定された領域で画像ファイルデータのハッシュ演算処理を行う部分を選択しても良い。その場合には、領域指示のパラメータをメモリ制御レジスタ部３０３に設定する。例えば、画像ファイルデータをいくつかの短冊状の領域に分割し、隣接しない領域同士を選択して部分画像データとする等である。それが、画像ファイルデータを水平に４分割するのであれば、最上位のブロックと、上から３番目のブロックを選択することになる。また、画像ファイルデータがカラー画像ファイルデータであれば、輝度信号（Ｙ）と２つの色差信号（Ｒ−Ｙ、Ｂ−Ｙ）や、それぞれの色信号（Ｒ、Ｇ、Ｂ）などで分割することも考えられる。他にも分割の仕方は色々考えられるが、本提案では何れかに限定するものではない。
【００６２】
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給しても達成可能である。すなわち、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読出し実行することによっても、達成されることは言うまでもない。この場合、記憶媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【００６３】
プログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性の半導体メモリカード、ＲＯＭなどを用いることができる。また、コンピュータが読出したプログラムコードを実行することにより、前述した実施形態の機能が実現される場合もある。
【００６４】
しかし、さらにそのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００６５】
さらに、記憶媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれる場合もあり得る。その後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【図面の簡単な説明】
【００６６】
【図１】従来技術における改竄検知情報生成部の要部ブロック図である。
【図２】本発明の実施形態１におけるデジタルカメラに適用した改竄検知情報生成部の要部ブロック図である。
【図３】本発明の実施形態２におけるデジタルカメラに適用した改竄検知情報生成部の要部ブロック図である。
【図４】本発明の実施形態１、２におけるデジタルカメラの改竄検知情報生成部に含まれるレジスタの内容を説明する図である。
【図５】本発明の実施形態１における改竄検知情報生成部の動作を説明するフローチャートである。
【図１】
2008022373.tif 000003
【図２】
2008022373.tif 000004
【図３】
2008022373.tif 000005
【図４】
2008022373.tif 000006
【図５】
2008022373.tif 000007