(57)【特許請求の範囲】
【請求項１】
コンピュータに、
情報に施された電子署名に対する検証を行わせる指示を受け付ける受付機能と、
前記受付機能によって受け付けられた指示に応じて、前記電子署名に対応する電子証明書に基づき当該電子署名に対する検証を行う検証機能と、
前記検証機能によって検証を行った電子署名を施した情報に改竄がないと判断された場合は、当該情報と、当該情報に施された電子署名と、当該電子署名に対応する電子証明書の有効期限を表す有効期限情報と、の組み合わせに対してハッシュ値を算出するハッシュ値算出機能と、
前記ハッシュ値算出機能によって算出されたハッシュ値に対してタイムスタンプを付与するタイムスタンプ付与機能と、
前記検証を行った電子署名を施した情報、当該電子署名、前記タイムスタンプ付与機能によってタイムスタンプが付与されたハッシュ値及び前記有効期限情報を対応させて記憶装置に出力する機能と、
前記検証機能によって前記検証を行った電子署名を施した情報に改竄がないと判断された場合は、当該情報に改竄がないことを示す情報を出力する検証結果出力機能
を実現させるための情報処理プログラム。
【請求項２】
前記コンピュータに、
前記受付機能によって受け付けられた指示に応じて、前記記憶装置から前記検証を行った電子署名を施した情報に対応する前記ハッシュ値と前記有効期限情報を取得する取得機能と、
前記取得機能によって取得された有効期限情報が表す有効期限内に現在はあるか否かを判断する判断機能と、
前記判断機能によって有効期限内に現在はあると判断された場合は、タイムスタンプが付与されたハッシュ値の検証を行う第２の検証機能と、
をさらに実現させ、
前記検証結果出力機能は、前記第２の検証機能によって前記組み合わせに改竄がないと判断された場合は、前記検証を行った電子署名を施した情報に対して改竄がないことを示す情報を出力する
ことを特徴とする請求項１に記載の情報処理プログラム。
【請求項３】
前記ハッシュ値算出機能は、前記電子証明書が複数ある場合は、該電子証明書の有効期限のうち最も短い有効期限を表す有効期限情報を用いて、ハッシュ値を算出する
ことを特徴とする請求項１又は２に記載の情報処理プログラム。
【請求項４】
情報に施された電子署名に対する検証を行わせる指示を受け付ける受付手段と、
前記受付手段によって受け付けられた指示に応じて、前記電子署名に対応する電子証明書に基づき当該電子署名に対する検証を行う検証手段と、
前記検証手段によって検証を行った電子署名を施した情報に改竄がないと判断された場合は、当該情報と、当該情報に施された電子署名と、当該電子署名に対応する電子証明書の有効期限を表す有効期限情報と、の組み合わせに対してハッシュ値を算出するハッシュ値算出手段と、
前記ハッシュ値算出手段によって算出されたハッシュ値に対してタイムスタンプを付与するタイムスタンプ付与手段と、
前記検証を行った電子署名を施した情報、当該電子署名、前記タイムスタンプ付与手段によってタイムスタンプが付与されたハッシュ値及び前記有効期限情報を対応させて記憶装置に出力する手段と、
前記検証手段によって前記検証を行った電子署名を施した情報に改竄がないと判断された場合は、当該情報に改竄がないことを示す情報を出力する検証結果出力手段
を具備することを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理プログラム及び情報処理装置に関する。
【背景技術】
【０００２】
電子署名に対する検証に関する技術がある。
これに関連する技術として、例えば、特許文献１には、検証鍵、ユーザ情報などの各種の情報を保持する検証装置が文書受理者に代わって検証を行い、検証結果に検証装置自身の署名を施すことを目的とし、保持部は、それぞれ、ユーザ検証鍵、ユーザ個人情報、ユーザ相互関係情報、及び文書情報を保持しており、署名付き文書が署名付き文書入力部から入力されると、ユーザＩＤ・文書種類識別部は各署名者のユーザＩＤと文書種類とを抽出し、署名検証部及び署名権限検証部は、必要なユーザ検証鍵、ユーザ個人情報、ユーザ相互関係情報、及び文書情報を上記保持部から取り出し、署名の検証、署名権限の検証を行い、署名部は、検証結果表示文作成部によって作成された検証結果に、検証装置署名鍵保持部に保持されている検証装置自身の署名を施し、出力部がそれを出力することが開示されている。
【０００３】
また、例えば、特許文献２には、複数の電子文書の一括検証にかかる時間を短縮することを課題とし、電子文書の重要度を判定し、重要度が高いと判定した電子文書が有するすべての電子署名を検証して、その電子文書の検証結果を生成し、また、重要度が高くないと判定した電子文書が有する最新の電子署名を検証して、その電子文書の検証結果を生成することが開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平０８−１０１８６８号公報
【特許文献２】特開２００８−９８７８３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明は、情報に施された電子署名に対する検証を行う場合にあって、次回の検証に用いるための、電子署名に対する検証の結果を記憶装置に記憶させるようにした情報処理プログラム及び情報処理装置を提供することを目的としている。
【課題を解決するための手段】
【０００６】
かかる目的を達成するための本発明の要旨とするところは、次の各項の発明に存する。
請求項１の発明は、コンピュータに、情報に施された電子署名に対する検証を行わせる指示を受け付ける受付機能と、前記受付機能によって受け付けられた指示に応じて、前記電子署名に対応する電子証明書に基づき当該電子署名に対する検証を行う検証機能と、前記検証機能によって検証を行った電子署名を施した情報に改竄がないと判断された場合は、当該情報と、当該情報に施された電子署名と、当該電子署名に対応する電子証明書の有効期限を表す有効期限情報と、の組み合わせに対してハッシュ値を算出するハッシュ値算出機能と、前記ハッシュ値算出機能によって算出されたハッシュ値に対してタイムスタンプを付与するタイムスタンプ付与機能と、前記検証を行った電子署名を施した情報、当該電子署名、前記タイムスタンプ付与機能によってタイムスタンプが付与されたハッシュ値及び前記有効期限情報を対応させて記憶装置に出力する機能と、前記検証機能によって前記検証を行った電子署名を施した情報に改竄がないと判断された場合は、当該情報に改竄がないことを示す情報を出力する検証結果出力機能を実現させるための情報処理プログラムである。
【０００７】
請求項２の発明は、前記コンピュータに、前記受付機能によって受け付けられた指示に応じて、前記記憶装置から前記検証を行った電子署名を施した情報に対応する前記ハッシュ値と前記有効期限情報を取得する取得機能と、前記取得機能によって取得された有効期限情報が表す有効期限内に現在はあるか否かを判断する判断機能と、前記判断機能によって有効期限内に現在はあると判断された場合は、タイムスタンプが付与されたハッシュ値の検証を行う第２の検証機能と、をさらに実現させ、前記検証結果出力機能は、前記第２の検証機能によって前記組み合わせに改竄がないと判断された場合は、前記検証を行った電子署名を施した情報に対して改竄がないことを示す情報を出力することを特徴とする請求項１に記載の情報処理プログラムである。
【０００８】
請求項３の発明は、前記ハッシュ値算出機能は、前記電子証明書が複数ある場合は、該電子証明書の有効期限のうち最も短い有効期限を表す有効期限情報を用いて、ハッシュ値を算出することを特徴とする請求項１又は２に記載の情報処理プログラムである。
【０００９】
請求項４の発明は、情報に施された電子署名に対する検証を行わせる指示を受け付ける受付手段と、前記受付手段によって受け付けられた指示に応じて、前記電子署名に対応する電子証明書に基づき当該電子署名に対する検証を行う検証手段と、前記検証手段によって検証を行った電子署名を施した情報に改竄がないと判断された場合は、当該情報と、当該情報に施された電子署名と、当該電子署名に対応する電子証明書の有効期限を表す有効期限情報と、の組み合わせに対してハッシュ値を算出するハッシュ値算出手段と、前記ハッシュ値算出手段によって算出されたハッシュ値に対してタイムスタンプを付与するタイムスタンプ付与手段と、前記検証を行った電子署名を施した情報、当該電子署名、前記タイムスタンプ付与手段によってタイムスタンプが付与されたハッシュ値及び前記有効期限情報を対応させて記憶装置に出力する手段と、前記検証手段によって前記検証を行った電子署名を施した情報に改竄がないと判断された場合は、当該情報に改竄がないことを示す情報を出力する検証結果出力手段を具備することを特徴とする情報処理装置である。
【発明の効果】
【００１０】
請求項１の情報処理プログラムによれば、情報に施された電子署名に対する検証を行う場合にあって、次回の検証に用いるための、電子署名に対する検証の結果を記憶装置に記憶させることができる。
【００１１】
請求項２の情報処理プログラムによれば、電子署名に対する２回目以降の検証を行う場合において、本構成を有しない場合と比較して、システムへの負担を軽減させることができる。
【００１２】
請求項３の情報処理プログラムによれば、複数の電子証明書の有効期限が切れているにもかかわらず、以前に行われた電子署名に対する検証の結果を用いてしまうことを抑制することができる。
【００１３】
請求項４の情報処理装置によれば、情報に施された電子署名に対する検証を行う場合にあって、次回の検証に用いるための、電子署名に対する検証の結果を記憶装置に記憶させることができる。
【図面の簡単な説明】
【００１４】
【図１】本実施の形態の構成例についての概念的なモジュール構成図である。
【図２】本実施の形態を実現するためのシステム構成の例を示す説明図である。
【図３】本実施の形態による処理例を示すフローチャートである。
【図４】署名関連テーブルのデータ構成例を示す説明図である。
【図５】本実施の形態による処理例（１）を示す説明図である。
【図６】本実施の形態による処理例（２）を示す説明図である。
【図７】本実施の形態による画面提示例を示す説明図である。
【図８】本実施の形態を実現するコンピュータのハードウェア構成例を示すブロック図である。
【発明を実施するための形態】
【００１５】
以下、図面に基づき本発明を実現するにあたっての好適な一実施の形態の例を説明する。
図１は、本実施の形態の構成例についての概念的なモジュール構成図を示している。
なお、モジュールとは、一般的に論理的に分離可能なソフトウェア（コンピュータ・プログラム）、ハードウェア等の部品を指す。したがって、本実施の形態におけるモジュールはコンピュータ・プログラムにおけるモジュールのことだけでなく、ハードウェア構成におけるモジュールも指す。それゆえ、本実施の形態は、それらのモジュールとして機能させるためのコンピュータ・プログラム（コンピュータにそれぞれの手順を実行させるためのプログラム、コンピュータをそれぞれの手段として機能させるためのプログラム、コンピュータにそれぞれの機能を実現させるためのプログラム）、システム及び方法の説明をも兼ねている。ただし、説明の都合上、「記憶する」、「記憶させる」、これらと同等の文言を用いるが、これらの文言は、実施の形態がコンピュータ・プログラムの場合は、記憶装置に記憶させる、又は記憶装置に記憶させるように制御するの意である。また、モジュールは機能に一対一に対応していてもよいが、実装においては、１モジュールを１プログラムで構成してもよいし、複数モジュールを１プログラムで構成してもよく、逆に１モジュールを複数プログラムで構成してもよい。また、複数モジュールは１コンピュータによって実行されてもよいし、分散又は並列環境におけるコンピュータによって１モジュールが複数コンピュータで実行されてもよい。なお、１つのモジュールに他のモジュールが含まれていてもよい。また、以下、「接続」とは物理的な接続の他、論理的な接続（データの授受、指示、データ間の参照関係等）の場合にも用いる。
また、システム又は装置とは、複数のコンピュータ、ハードウェア、装置等がネットワーク（一対一対応の通信接続を含む）等の通信手段で接続されて構成されるほか、１つのコンピュータ、ハードウェア、装置等によって実現される場合も含まれる。「装置」と「システム」とは、互いに同義の用語として用いる。もちろんのことながら、「システム」には、人為的な取り決めである社会的な「仕組み」（社会システム）にすぎないものは含まない。
また、各モジュールによる処理毎に又はモジュール内で複数の処理を行う場合はその処理毎に、対象となる情報を記憶装置から読み込み、その処理を行った後に、処理結果を記憶装置に書き出すものである。したがって、処理前の記憶装置からの読み込み、処理後の記憶装置への書き出しについては、説明を省略する場合がある。なお、ここでの記憶装置としては、ハードディスク、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、外部記憶媒体、通信回線を介した記憶装置、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）内のレジスタ等を含んでいてもよい。
【００１６】
本実施の形態である情報処理装置１００は、情報に施された電子署名に対する検証を行うものであって、図１の例に示すように、検証指示モジュール１１０、文書・電子署名・検証結果記憶モジュール１２０、検証処理モジュール１３０を有している。
検証指示モジュール１１０は、検証指示受付モジュール１１２、検証指示制御モジュール１１４、検証結果取得モジュール１１６、提示モジュール１１８を有しており、主に
検証指示の受け取り、検証処理を制御し、検証結果の提示等を行う。
【００１７】
検証指示受付モジュール１１２は、情報に施された電子署名に対する検証を行わせる指示を受け付ける。情報とは、コンピュータで扱える電子データである。以下、主に、電子文書を例として挙げて説明する。なお、電子文書とは、テキストデータ、場合によっては画像、動画、音声等の電子データ、又はこれらの組み合わせであり、記憶、編集及び検索等の対象となり、システム又は利用者間で個別の単位として交換できるものをいい、これらに類似するものを含む。また、内容としては、電子署名が施されるようなものであればよく、ビジネス文書等が該当する。
【００１８】
検証指示制御モジュール１１４は、検証指示受付モジュール１１２によって受け付けられた指示に基づいて、他のモジュールを制御する。
検証結果取得モジュール１１６は、文書・電子署名・検証結果記憶モジュール１２０と接続されており、検証指示受付モジュール１１２によって受け付けられた指示に応じて、文書・電子署名・検証結果記憶モジュール１２０から検証を行った電子署名を施した情報に対応するハッシュ値と有効期限情報を取得する。また、情報、電子署名、タイムスタンプが付与されたハッシュ値及び有効期限情報の組み合わせを取得するようにしてもよい。
また、検証指示制御モジュール１１４は、文書・電子署名・検証結果記憶モジュール１２０内に対応するデータがない場合、つまり、検証結果取得モジュール１１６がハッシュ値と有効期限情報を取得できなかった場合は、電子署名検証モジュール１４０による検証を行うように制御する。
【００１９】
提示モジュール１１８は、電子署名検証モジュール１４０による検証結果を示す情報を提示する。例えば、電子署名検証モジュール１４０によって検証を行った電子署名を施した情報に改竄がないと判断された場合は、その情報に改竄がないことを示す情報（具体的には、例えば、メッセージ等）を出力し、改竄があると判断された場合は、その情報に対して改竄があることを示す情報を出力し、電子証明書の有効期限を過ぎている場合は、その電子証明書が有効期限切れであることを示す情報を出力する。また、検証結果期限検証モジュール１６０による検証によって、情報、電子署名及び電子証明書の有効期限情報の組み合わせに改竄がないと判断された場合は、検証を行った電子署名を施した情報に対して改竄がないことを示す情報を出力する。したがって、その情報に対して以前に検証が行われ、その検証結果が記憶されており、その検証で使われた電子証明書の有効期限内であって、情報、電子署名及び電子証明書の有効期限情報の組み合わせに改竄がないと判断された場合は、情報に施された電子署名に対する検証を行うことなく、その情報に対して改竄がないことを示す情報を出力することになる。
なお、ここでの「出力」とは、情報提示を行う機器、プログラム等（具体的には、例えば、情報処理装置１００に接続された表示装置、情報処理装置１００と通信回線を介して接続されている他の情報処理装置のウェブブラウザ等）に出力することであり、具体的には、ディスプレイ等の表示装置への表示の他に、プリンタ等の印刷装置への印刷、スピーカー等の音声出力装置への音声の出力等があり、それらの組み合わせであってもよい。
【００２０】
文書・電子署名・検証結果記憶モジュール１２０は、検証指示モジュール１１０の検証結果取得モジュール１１６及び検証結果生成モジュール１５０と接続されている。タイムスタンプ処理モジュール１５６によって、情報、電子署名、タイムスタンプが付与されたハッシュ値及び有効期限情報を対応させて文書・電子署名・検証結果記憶モジュール１２０に記憶させる。また、検証結果取得モジュール１１６が、検証指示受付モジュール１１２によって受け付けられた指示に応じて、その組み合わせを文書・電子署名・検証結果記憶モジュール１２０から取得する。
文書・電子署名・検証結果記憶モジュール１２０は、具体的には、例えば署名関連テーブル４００を記憶する。図４は、署名関連テーブル４００のデータ構成例を示す説明図である。
署名関連テーブル４００は、文書欄４１０、電子署名欄４２０、検証結果欄４３０を有しており、検証結果欄４３０は、有効期限欄４３２、ハッシュ値欄４３４を有している。
文書欄４１０は、情報として電子文書を記憶する。例えば、文書名、ＵＲＬ（Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｌｏｃａｔｏｒ）等の電子文書が記憶されている場所であってもよい。
電子署名欄４２０は、その電子文書に施された電子署名を記憶する。例えば、ＵＲＬ等の電子署名が記憶されている場所であってもよい。
有効期限欄４３２は、電子証明書の有効期限を記憶する。電子証明書が複数ある場合は、有効期限を複数記憶する。
ハッシュ値欄４３４は、文書欄４１０、電子署名欄４２０、有効期限欄４３２にそれぞれ記憶されている情報の組み合わせに対するハッシュ値を記憶する。なお、このハッシュ値にはタイムスタンプ処理モジュール１５６によってタイムスタンプが付与されている。
なお、電子署名検証モジュール１４０による検証が行われていない場合（改竄ありと判断された場合も含む）は、有効期限欄４３２、ハッシュ値欄４３４には何も記憶されていない状態（いわゆるＮＵＬＬの状態）である。この場合、検証結果取得モジュール１１６がハッシュ値と有効期限情報を取得できないこととなる。
【００２１】
検証処理モジュール１３０は、電子署名検証モジュール１４０、検証結果生成モジュール１５０、検証結果期限検証モジュール１６０を有しており、主に、電子署名に対する検証を行い、その検証結果を文書・電子署名・検証結果記憶モジュール１２０に記憶させ、検証結果を用いた検証等を行う。
電子署名検証モジュール１４０は、検証指示受付モジュール１１２によって受け付けられた指示に応じて、電子署名に対応する電子証明書に基づき、その電子署名に対する検証を行う。ここでの検証は、一般的に用いられている検証を行えばよい。例えば、電子署名が、電子文書のハッシュ値を算出し、そのハッシュ値（メッセージダイジェストともいう）に対して秘密鍵を用いた暗号化である場合、その秘密鍵に対応した公開鍵である電子証明書を用いて復号し、電子文書のハッシュ値を算出し、復号した値と比較し、一致していれば改竄がないと判断し、一致していなければ改竄されていると判断するようにしてもよい。なお、電子文書のハッシュ値を算出するとは、平文である電子文書を引数としてハッシュ関数を計算することであり、その計算結果がハッシュ値である。
【００２２】
検証結果生成モジュール１５０は、電子証明書有効期限抽出モジュール１５２、ハッシュ値算出モジュール１５４、タイムスタンプ処理モジュール１５６を有しており、文書・電子署名・検証結果記憶モジュール１２０と接続されており、主に、電子署名検証モジュール１４０による検証結果を文書・電子署名・検証結果記憶モジュール１２０に記憶させることを行う。
電子証明書有効期限抽出モジュール１５２は、検証に用いた電子証明書の有効期限を表す有効期限情報を取得する。電子証明書は、電子証明書発行事業者によって発行されるが、その有効期限が定められている。例えば、電子証明書発行事業者が管理するサーバーで有効期限が閲覧できるようになっており、これを参照することによって電子証明書の有効期限情報を取得する。複数の署名が施されている場合は、それぞれの証明書の有効期限を取得する。電子署名検証モジュール１４０は、電子証明書有効期限抽出モジュール１５２によって取得された電子証明書の有効期限情報を用いて、現在が有効期限内であるか否かを判断して、有効期限内である場合に検証を行い、有効期限内でない場合は、提示モジュール１１８にその旨を提示させるようにしてもよい。
【００２３】
ハッシュ値算出モジュール１５４は、電子署名検証モジュール１４０によって検証を行った電子署名を施した情報に改竄がないと判断された場合は、その情報、その情報に施された電子署名と、その電子署名に対応する電子証明書有効期限抽出モジュール１５２によって取得された電子証明書の有効期限情報と、の組み合わせに対してハッシュ値を算出する。情報、電子署名及び電子証明書の有効期限情報の組み合わせであれば、どのような順番であってもよいし、他の情報を付加したものであってもよい。もちろんのことながら、電子署名が複数の場合も含み、それにともなって電子証明書の有効期限情報も複数の場合も含む。
また、ハッシュ値算出モジュール１５４は、複数の電子署名が施されている場合は、電子署名それぞれの電子証明書の有効期限のうち最も短い有効期限を表す有効期限情報を用いて、ハッシュ値を算出するようにしてもよい。検証に用いられる電子証明書は複数ある場合があり、電子証明書が複数あると判断した場合は、複数の有効期限のうち最も現在に近い有効期限を選択して、ハッシュ値を算出する。
【００２４】
タイムスタンプ処理モジュール１５６は、ハッシュ値算出モジュール１５４によって算出されたハッシュ値に対してタイムスタンプを付与する。例えば、通信回線を介して接続されているタイムスタンプサーバー（第三者機関のＴＳＡ（Ｔｉｍｅ−Ｓｔａｍｐｉｎｇ  Ａｕｔｈｏｒｉｔｙ、タイムスタンプ局）を用いて、タイムスタンプを付与する処理を行う。より具体的には、例えば、規格として定められている「ＩＥＴＦ  ＲＦＣ  ３１６１（Ｔｉｍｅ  Ｓｔａｍｐ  Ｐｒｏｔｏｃｏｌ）」等を用いて処理を行う。
そして、タイムスタンプ処理モジュール１５６は、検証を行った電子署名を施した情報、その電子署名、タイムスタンプが付与されたハッシュ値及び有効期限情報を対応させて文書・電子署名・検証結果記憶モジュール１２０に記憶させるように制御する。
【００２５】
検証結果期限検証モジュール１６０は、検証結果取得モジュール１１６によって取得された有効期限情報が表す有効期限内であるか否かを判断する。つまり、現在がその有効期限内であるか否かを判断することによって、検証結果を活用できるか否かを判断している。そして、有効期限内であると判断した場合は、タイムスタンプが付与されたハッシュ値の検証を行う。ここでの検証は、例えば、タイムスタンプが付与されたハッシュ値に対してタイムスタンプサーバー２４０の公開鍵で復号したハッシュ値と情報、電子署名及び電子証明書の有効期限情報の組み合わせに対して算出されたハッシュ値とを比較し、一致していれば改竄がないと判断し、一致していなければ改竄されていると判断するようにしてもよい。
また、検証指示制御モジュール１１４は、検証結果期限検証モジュール１６０によって有効期限内ではないと判断された場合は、電子署名検証モジュール１４０による検証を行うように制御する。
【００２６】
図２は、本実施の形態を実現するためのシステム構成の例を示す説明図である。
クライアント装置２１０、クライアント装置２２０、情報処理装置２３０、タイムスタンプサーバー２４０は、通信回線２９０を介してそれぞれ接続されている。
利用者がクライアント装置２１０、クライアント装置２２０を操作することによって、電子文書に施された電子署名に対する検証を行わせる指示を情報処理装置２３０に対して行わせる。
情報処理装置２３０は、図１に例示した情報処理装置１００に対応するものである。利用者の指示を受け付けて、検証処理を行う。以前に検証した結果があれば、それを利用する。
タイムスタンプサーバー２４０は、検証結果に対してタイムスタンプを付与する。
【００２７】
図３は、本実施の形態による処理例を示すフローチャートである。なお、検証指示制御モジュール１１４が、全体のフローを制御する。
ステップＳ３０２では、検証結果取得モジュール１１６が文書・電子署名・検証結果記憶モジュール１２０から検証結果を取得し、取得できた場合はステップＳ３１４へ進み、それ以外の場合はステップＳ３０４へ進む。
ステップＳ３０４では、電子署名検証モジュール１４０が電子署名の検証を行い、検証がＯＫの場合（改竄がない場合）はステップＳ３０６へ進み、それ以外の場合はステップＳ３１２へ進む。
【００２８】
ステップＳ３０６では、電子証明書有効期限抽出モジュール１５２が電子署名に関連する全ての電子証明書の有効期限のうち、最も短い有効期限（つまり、現在日時に最も近い有効期限）を抽出する。
ステップＳ３０８では、ハッシュ値算出モジュール１５４が電子文書と電子署名と有効期限の組み合わせに対してハッシュ値を算出する。
【００２９】
ステップＳ３１０では、タイムスタンプ処理モジュール１５６がハッシュ値に対してタイムスタンプを付与して検証結果を作成する。そして、文書・電子署名・検証結果記憶モジュール１２０に記憶させる。
ステップＳ３１２では、提示モジュール１１８が電子署名は無効として結果を提示する。
【００３０】
ステップＳ３１４では、検証結果期限検証モジュール１６０が文書・電子署名・検証結果記憶モジュール１２０に記憶されている有効期限を用いて電子証明書は有効期限内か否かを判断し、有効期限内の場合はステップＳ３１６へ進み、それ以外の場合はステップＳ３０４へ進む。
ステップＳ３１６では、検証結果期限検証モジュール１６０が検証結果の検証を行い、検証がＯＫの場合はステップＳ３１８へ進み、それ以外の場合はステップＳ３０４へ進む。
ステップＳ３１８では、提示モジュール１１８が電子署名は有効として結果を提示する。
【００３１】
図５は、本実施の形態による処理例（１）を示す説明図である。この処理例（１）は、検証結果が存在する場合を説明している。
ステップＳ５０２では、利用者５１０のクライアント装置２１０に対する操作によって、電子文書に施された電子署名に対する検証を行わせる指示を情報処理装置１００（検証指示モジュール１１０の検証指示受付モジュール１１２）へ送信する。図７に例示するように、クライアント装置２１０は検証対象受付・検証結果提示画面７００をクライアント装置２１０の画面に提示する。利用者５１０の操作によって、検証対象受付領域７１０に対象となる電子文書の名称が記載され、検証の指示が行われる。
【００３２】
ステップＳ５０４、ステップＳ５０６では、検証指示モジュール１１０の検証指示制御モジュール１１４は検証結果取得モジュール１１６を制御して、文書・電子署名・検証結果記憶モジュール１２０からステップＳ５０２で指示された電子文書、その電子文書の電子署名、検証結果としての有効期限、ハッシュ値を取得する。
ステップＳ５０８では、検証指示モジュール１１０の検証指示制御モジュール１１４は検証結果取得モジュール１１６を制御して、検証処理モジュール１３０内の検証結果期限検証モジュール１６０にステップＳ５０６で取得したデータ（電子文書、その電子文書の電子署名、検証結果としての有効期限、ハッシュ値）を渡す。検証結果期限検証モジュール１６０は、電子文書、その電子文書の電子署名、検証結果としての有効期限の組み合わせからハッシュ値を算出し、ステップＳ５０６で取得したハッシュ値と比較することによって検証する。
【００３３】
ステップＳ５１０では、検証処理モジュール１３０内の検証結果期限検証モジュール１６０は、検証結果を検証指示モジュール１１０内の提示モジュール１１８へ送信する。
ステップＳ５１２では、検証指示モジュール１１０内の提示モジュール１１８は、検証結果をクライアント装置２１０の画面に提示する。図７に例示するように、検証結果をクライアント装置２１０の検証対象受付・検証結果提示画面７００の検証結果提示領域７２０に提示する。
【００３４】
図６は、本実施の形態による処理例（２）を示す説明図である。この処理例（２）は、検証結果が存在しない場合を説明している。
ステップＳ６０２では、図５に例示したステップＳ５０２と同等の処理を行う。
ステップＳ６０４、ステップＳ６０６では、検証指示モジュール１１０の検証指示制御モジュール１１４は検証結果取得モジュール１１６を制御して、文書・電子署名・検証結果記憶モジュール１２０からステップＳ６０２で指示された電子文書、その電子文書の電子署名を取得する。なお、この処理例（２）では、検証結果としての有効期限、ハッシュ値は取得できない。したがって、検証結果期限検証モジュール１６０による検証ではなく、電子署名検証モジュール１４０による検証が行われることになる。
【００３５】
ステップＳ６０８では、検証指示モジュール１１０の検証指示制御モジュール１１４は検証結果取得モジュール１１６を制御して、検証処理モジュール１３０内の電子署名検証モジュール１４０にステップＳ６０６で取得したデータ（電子文書、その電子文書の電子署名）を渡す。電子署名検証モジュール１４０は、その電子署名の検証を行う。
ステップＳ６１０、ステップＳ６１２では、検証処理モジュール１３０の検証結果生成モジュール１５０は、ステップＳ６０８での検証がＯＫの場合（改竄がないと判断した場合）、電子署名を検証するために利用した電子証明書の有効期限のうち、現在日時と最も近い日時の有効期限を抽出し、電子文書、電子署名、その有効期限の組み合わせに対するハッシュ値を算出し、このハッシュ値に対してタイムスタンプを付与するために、タイムスタンプサーバー２４０へ送信し、タイムスタンプサーバー２４０からタイムスタンプトークンを受け取る。このタイムスタンプトークンが、タイムスタンプを付与したハッシュ値である。
【００３６】
ステップＳ６１４では、検証処理モジュール１３０のタイムスタンプ処理モジュール１５６は、電子文書、電子署名、その有効期限、タイムスタンプを付与したハッシュ値を文書・電子署名・検証結果記憶モジュール１２０に記憶させる。
ステップＳ６１６では、検証処理モジュール１３０内のタイムスタンプ処理モジュール１５６は、ステップＳ６０８での電子署名の検証結果を検証指示モジュール１１０内の提示モジュール１１８へ送信する。
ステップＳ６１８では、図５に例示したステップＳ５１２と同等の処理を行う。
【００３７】
なお、本実施の形態としてのプログラムが実行されるコンピュータのハードウェア構成は、図８に例示するように、一般的なコンピュータであり、具体的にはパーソナルコンピュータ、サーバーとなり得るコンピュータ等である。つまり、具体例として、処理部（演算部）としてＣＰＵ８０１を用い、記憶装置としてＲＡＭ８０２、ＲＯＭ８０３、ＨＤ８０４を用いている。ＨＤ８０４として、例えばハードディスクを用いてもよい。検証指示制御モジュール１１４、検証結果取得モジュール１１６、電子署名検証モジュール１４０、電子証明書有効期限抽出モジュール１５２、ハッシュ値算出モジュール１５４、タイムスタンプ処理モジュール１５６、検証結果期限検証モジュール１６０等のプログラムを実行するＣＰＵ８０１と、そのプログラムやデータを記憶するＲＡＭ８０２と、本コンピュータを起動するためのプログラム等が格納されているＲＯＭ８０３と、補助記憶装置であるＨＤ８０４と、キーボード、マウス等のデータを入力する入力装置８０６と、ＣＲＴや液晶ディスプレイ等の出力装置８０５と、ネットワークインタフェースカード等の通信ネットワークと接続するための通信回線インタフェース８０７、そして、それらをつないでデータのやりとりをするためのバス８０８により構成されている。これらのコンピュータが複数台互いにネットワークによって接続されていてもよい。
【００３８】
前述の実施の形態のうち、コンピュータ・プログラムによるものについては、本ハードウェア構成のシステムにソフトウェアであるコンピュータ・プログラムを読み込ませ、ソフトウェアとハードウェア資源とが協働して、前述の実施の形態が実現される。
なお、図８に示すハードウェア構成は、１つの構成例を示すものであり、本実施の形態は、図８に示す構成に限らず、本実施の形態において説明したモジュールを実行可能な構成であればよい。例えば、一部のモジュールを専用のハードウェア（例えばＡＳＩＣ等）で構成してもよく、一部のモジュールは外部のシステム内にあり通信回線で接続しているような形態でもよく、さらに図８に示すシステムが複数互いに通信回線によって接続されていて互いに協調動作するようにしてもよい。また、特に、パーソナルコンピュータの他、情報家電、複写機、ファックス、スキャナ、プリンタ、複合機（スキャナ、プリンタ、複写機、ファックス等のいずれか２つ以上の機能を有している画像処理装置）などに組み込まれていてもよい。
【００３９】
なお、説明したプログラムについては、記録媒体に格納して提供してもよく、また、そのプログラムを通信手段によって提供してもよい。その場合、例えば、前記説明したプログラムについて、「プログラムを記録したコンピュータ読み取り可能な記録媒体」の発明として捉えてもよい。
「プログラムを記録したコンピュータ読み取り可能な記録媒体」とは、プログラムのインストール、実行、プログラムの流通などのために用いられる、プログラムが記録されたコンピュータで読み取り可能な記録媒体をいう。
なお、記録媒体としては、例えば、デジタル・バーサタイル・ディスク（ＤＶＤ）であって、ＤＶＤフォーラムで策定された規格である「ＤＶＤ−Ｒ、ＤＶＤ−ＲＷ、ＤＶＤ−ＲＡＭ等」、ＤＶＤ＋ＲＷで策定された規格である「ＤＶＤ＋Ｒ、ＤＶＤ＋ＲＷ等」、コンパクトディスク（ＣＤ）であって、読出し専用メモリ（ＣＤ−ＲＯＭ）、ＣＤレコーダブル（ＣＤ−Ｒ）、ＣＤリライタブル（ＣＤ−ＲＷ）等、ブルーレイ・ディスク（Ｂｌｕ−ｒａｙ  Ｄｉｓｃ（登録商標））、光磁気ディスク（ＭＯ）、フレキシブルディスク（ＦＤ）、磁気テープ、ハードディスク、読出し専用メモリ（ＲＯＭ）、電気的消去及び書換可能な読出し専用メモリ（ＥＥＰＲＯＭ）、フラッシュ・メモリ、ランダム・アクセス・メモリ（ＲＡＭ）等が含まれる。
そして、前記のプログラム又はその一部は、前記記録媒体に記録して保存や流通等させてもよい。また、通信によって、例えば、ローカル・エリア・ネットワーク（ＬＡＮ）、メトロポリタン・エリア・ネットワーク（ＭＡＮ）、ワイド・エリア・ネットワーク（ＷＡＮ）、インターネット、イントラネット、エクストラネット等に用いられる有線ネットワーク、あるいは無線通信ネットワーク、さらにこれらの組み合わせ等の伝送媒体を用いて伝送させてもよく、また、搬送波に乗せて搬送させてもよい。
さらに、前記のプログラムは、他のプログラムの一部分であってもよく、あるいは別個のプログラムと共に記録媒体に記録されていてもよい。また、複数の記録媒体に分割して
記録されていてもよい。また、圧縮や暗号化など、復元可能であればどのような態様で記録されていてもよい。
【符号の説明】
【００４０】
１００…情報処理装置
１１０…検証指示モジュール
１１２…検証指示受付モジュール
１１４…検証指示制御モジュール
１１６…検証結果取得モジュール
１１８…提示モジュール
１２０…文書・電子署名・検証結果記憶モジュール
１３０…検証処理モジュール
１４０…電子署名検証モジュール
１５０…検証結果生成モジュール
１５２…電子証明書有効期限抽出モジュール
１５４…ハッシュ値算出モジュール
１５６…タイムスタンプ処理モジュール
１６０…検証結果期限検証モジュール
【図１】
0005533380.tif 000002
【図２】
0005533380.tif 000003
【図３】
0005533380.tif 000004
【図４】
0005533380.tif 000005
【図５】
0005533380.tif 000006
【図６】
0005533380.tif 000007
【図７】
0005533380.tif 000008
【図８】
0005533380.tif 000009