(57)【要約】【課題】電子署名とタイムスタンプとの適用対象となる電子データのサイズが大きくなった場合にも、電子署名とタイムスタンプとを高速に検証することができるようにする。【解決手段】通信ネットワーク150に接続されたサーバ装置120と、複数のクライアント装置100a〜100dとから構成され、ユーザから電子署名・タイムスタンプの検証要求を受け付けたクライアント装置が、サーバ装置との間で通信を行って、電子署名・タイムスタンプの検証を実行する電子文書検証システムであり、クライアント装置は、検証対象データを解析する手段と、クライアント装置及びサーバ装置のリソースの状態を取得する手段108と、最適検証方法定義情報116を参照し、最適な検証方法を特定する手段106と、特定した最適な検証方法により、電子署名・タイムスタンプの検証を実行する手段110とを備える。【選択図】図１
2007281770.tif 000002
【特許請求の範囲】
【請求項１】
通信ネットワークに接続された少なくとも１台のサーバ装置と、少なくとも１台のクライアント装置とから構成され、ユーザから電子署名・タイムスタンプの検証要求を受け付けたクライアント装置が、サーバ装置との間で通信を行って、電子署名・タイムスタンプの検証を実行する電子文書検証システムであって、
前記クライアント装置は、検証対象データを解析する手段と、クライアント装置及びサーバ装置のリソースの状態を取得する手段と、最適検証方法定義情報を参照し、最適な検証方法を特定する手段とを備えることを特徴とする電子文書検証システム。
【請求項２】
前記最適な検証方法を特定する手段が、最適な検証方法を特定することができなかった場合、クライアント装置とサーバ装置との間で検証シミュレーションを実行し、検証シミュレーションの結果から最適な検証方法を定義することを特徴とする請求項１記載の電子文書検証システム。
【請求項３】
通信ネットワークに接続された少なくとも１台のサーバ装置と、少なくとも１台のクライアント装置とから構成され、ユーザから電子署名・タイムスタンプの検証要求を受け付けたクライアント装置が、サーバ装置との間で通信を行って、電子署名・タイムスタンプの検証を実行する電子文書検証システムであって、
前記クライアント装置は、検証対象データを解析する手段と、クライアント装置及びサーバ装置のリソースの状態を取得する手段と、最適検証方法定義情報を参照し、最適な検証方法を特定する手段と、特定した最適な検証方法により、電子署名・タイムスタンプの検証を実行する手段とを備えることを特徴とする電子文書検証システム。
【請求項４】
前記最適検証方法定義情報は、電子署名・タイムスタンプの検証内容の構成要素となる個々の検証項目をクライアント装置、あるいは、サーバ装置のどちらが実行するのかを定義した情報であることを特徴とする請求項１記載の電子文書検証システム。
【請求項５】
前記検証対象データを解析する手段は、検証対象データの解析に際して、検証対象となる電子データのサイズを取得することを特徴とする請求項１記載の電子文書検証システム。
【請求項６】
前記検証対象データを解析する手段は、検証対象データの解析に際して、電子署名とタイムスタンプとのＰＫＩモデル、フォーマット形式モデル、電子署名及びタイムスタンプの適用対象のデータモデルを特定することを特徴とする請求項１記載の電子文書検証システム。
【請求項７】
前記クライアント装置が取得するリソース情報は、クライアント装置及びサーバ装置のそれぞれを構成するリソースの負荷情報であることを特徴とする請求項１記載の電子文書検証システム。
【請求項８】
前記検証シミュレーションは、クライアント装置とサーバ装置とで行う検証項目の全ての組み合わせを実行することを特徴とする請求項２記載の電子文書検証システム。
【請求項９】
前記最適検証方法定義情報は、検証対象データモデル、通信時間、検証対象の電子データサイズの条件、クライアントのリソース負荷情報の条件、サーバのリソース負荷情報の条件を含むことを特徴とする請求項１記載の電子文書検証システム。
【請求項１０】
通信ネットワークに接続された少なくとも１台のサーバ装置と、少なくとも１台のクライアント装置と、少なくとも１台のデータ管理サーバ装置とから構成され、ユーザから電子署名・タイムスタンプの検証要求を受け付けたクライアント装置が、サーバ装置との間で通信を行って、電子署名・タイムスタンプの検証を実行する電子文書検証システムであって、
前記クライアント装置は、検証対象データを解析する手段と、クライアント装置及びサーバ装置のリソース状態を取得する手段と、前記データ管理サーバ装置が公開する最適検証情報定義情報を参照し、最適な検証方法を特定する手段と、特定した最適な検証方法により、電子署名・タイムスタンプの検証を実行する手段とを備えることを特徴とする電子文書検証システム。
【請求項１１】
通信ネットワークに接続された少なくとも１台のサーバ装置と、少なくとも１台のクライアント装置とから構成され、ユーザから電子署名・タイムスタンプの検証要求を受け付けたクライアント装置が、サーバ装置との間で通信を行って、電子署名・タイムスタンプの検証を実行する電子文書検証プログラムであって、
検証対象データを解析するステップと、クライアント装置及びサーバ装置のリソースの状態を取得するステップと、最適検証方法定義情報を参照し、最適な検証方法を特定するステップとを実行させることを特徴とする電子文書検証プログラム。
【請求項１２】
前記最適な検証方法を特定するステップで、最適な検証方法を特定することができなかった場合、クライアント装置とサーバ装置との間で検証シミュレーションを実行するステップと、検証シミュレーションの結果から最適な検証方法を定義するステップとを実行させることを特徴とする請求項１１記載の電子文書検証プログラム。
【請求項１３】
通信ネットワークに接続された少なくとも１台のサーバ装置と、少なくとも１台のクライアント装置とから構成され、ユーザから電子署名・タイムスタンプの検証要求を受け付けたクライアント装置が、サーバ装置との間で通信を行って、電子署名・タイムスタンプの検証を実行する電子文書検証プログラムであって、
検証対象データを解析するステップと、クライアント装置及びサーバ装置のリソースの状態を取得するステップと、最適検証方法定義情報を参照し、最適な検証方法を特定するステップと、特定した最適な検証方法により、電子署名・タイムスタンプの検証を行うステップとを実行させることを特徴とする電子文書検証プログラム。
【請求項１４】
通信ネットワークに接続された少なくとも１台のサーバ装置と、少なくとも１台のクライアント装置と、少なくとも１台のデータ管理サーバ装置とから構成され、ユーザから電子署名・タイムスタンプの検証要求を受け付けたクライアント装置が、サーバ装置との間で通信を行って、電子署名・タイムスタンプの検証を実行する電子文書検証プログラムであって、
検証対象データを解析するステップと、クライアント装置及びサーバ装置のリソース状態を取得するステップ手段と、前記データ管理サーバ装置が公開する最適検証情報定義情報を参照し、最適な検証方法を特定するステップと、特定した最適な検証方法により、電子署名・タイムスタンプの検証を行うステップとを実行させることを特徴とする電子文書検証プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子文書検証システム及び検証プログラムに係り、特に、電子文書データ（電子データ）に関係付けられた電子署名やタイムスタンプ等の認証情報を検証する電子文書検証システム及び検証プログラムに関する。
【背景技術】
【０００２】
電子政府の一環として、２００５年４月にｅ−文書法が施行され、ある要件の元で、紙をスキャニングした電子データを原本と同等なものとしてみなすことができるようになった。要件の１つには、紙の持つ真実性の確保のための方策があり、この方策として、具体的には、電子署名やタイムスタンプの利用がある。このような法制度の後押しもあり、今後、電子署名やタイムスタンプ等の認証情報が付与された電子データが増加してくることが予想される。
【０００３】
電子署名やタイムスタンプが付与された電子データは、処理をせずに保管するだけでは意味がなく、その利用や処理が行われる。その際、電子署名やタイムスタンプが保証する電子データの真正性や存在時刻を確認する必要があり、そのために、電子署名とタイムスタンプとの検証が必要となる。
【０００４】
一般によく知られている電子署名とタイムスタンプとの検証方法は、例えば、非特許文献１、２、３等の国際標準規格に記載されている。例えば、公開鍵基盤（ＰＫＩ）に基づくＣＭＳベースの電子署名とＰＫＩ技術を用いたタイムスタンプとの場合、その検証は、それぞれ、以下のような手順により行われる。
【０００５】
すなわち、電子署名の検証は、１．電子署名に含まれる署名者の公開鍵証明書の有効期限が過ぎていないかどうか？、失効していないか？、改竄されていないか？等を検査し、公開鍵証明書の有効性を確認する手順、２．有効性が確認された公開鍵証明書に含まれた署名者の公開鍵を用いて電子署名の署名値を検証し、署名者本人の署名であるのかどうかを確認する手順、３．電子署名対象データのハッシュ値を求め、電子署名に含まれる該当ハッシュ値と比較し、電子署名対象データが改竄されていないのかどうかを確認する手順の３つの手順により行われる。
【０００６】
また、タイムスタンプの検証は、１．タイムスタンプに含まれるタイムスタンプ局の公開鍵証明書の有効期限が過ぎていないかどうか？、失効していないか？、改竄されていないか？等を検査し、公開鍵証明書の有効性を確認する手順、２．有効性が確認された公開鍵証明書に含まれたタイムスタンプ局の公開鍵を用いて電子署名の署名値を検証し、タイムスタンプ局の署名であるのかどうかを確認する手順、３．タイムスタンプ対象データのハッシュ値を求め、タイムスタンプに含まれる該当ハッシュ値と比較し、タイムスタンプ対象データが改竄されていないかどうかを確認する手順の３つの手順により行われる。
【０００７】
ＰＫＩ技術に立脚した電子署名とタイムスタンプとの検証を行う場合、公開鍵暗号処理や複雑なＰＫＩモデルを扱う必要があるため、比較的コストの高い処理、すなわち、大きな計算機能力を要する処理となる。また、電子署名やタイムスタンプの対象のデータのサイズが大きくなると、効率的な処理のためには、大きなメモリ容量やＣＰＵ能力が必要になってくる。
【０００８】
今後、電子政府の進展により電子申請が普及するようになると、紙文書等がスキャニングされた大容量の電子データが通信ネットワークを介して送信されるようになってくる。このとき、受付システム側は、このような大きなサイズの電子データに対する電子署名やタイムスタンプを高速に検証する必要が生じることになる。
【０００９】
前述したような検証を高速化する方法に関する従来技術として、例えば、特許文献１等に記載された技術が知られている。この従来技術は、負荷分散の観点から処理の高速化を図るものであり、クライアント装置とサーバ装置とから構成されるネットワークベースのシステムにおいて、クライアント装置とサーバ装置とが複数の処理を配分しながら効率よく処理を実行するというものである。そして、この従来技術は、サーバ装置に備えられる負荷分散モジュールが、クライアント装置から読み出されたクライアント処理能力とサーバ装置のサーバ処理能力とを比較し、処理能力が高い方へより多くの処理を配分するというものである。
【特許文献１】特開２００３−５８５１９号公報
【非特許文献１】R. Housley、他三３名、"Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile、[online]、２００２年４月、[２００６年１月２０日検索]、インターネット<URL: http://www.ietf.org/rfc/rfc3280.txt>
【非特許文献２】R. Housley、"Cryptographic Message Syntax (CMS)"、[online]、２００４年７月、[２００６年１月２０日検索]、インターネット<URL: http://www.ietf.org/rfc/rfc3852.txt>
【非特許文献３】ＩＳＯ／ＩＥＣ  １８０１４−２：２００２、２００２年
【発明の開示】
【発明が解決しようとする課題】
【００１０】
しかし、前述した特許文献１に開示された従来技術は、処理に必要な入力データのサイズの影響を考慮していないため、入力データをネットワーク上で転送する時間等に伴う性能低下を防止することができないという問題点を有している。例えば、ネットワークの帯域幅が小さい場合、クライアントの能力が低くてもクライアント側で検証を実行した方が処理を高速に行うことができる場合もあり得る。
【００１１】
また、電子署名やタイムスタンプの技術規格上、電子署名やタイムスタンプの対象となる電子データのサイズに制限は存在しない。また、ｅ−文書法に伴い公表された国税関係書類の電子保存に関する国税庁通達は、タイムスタンプ対象のデータとしては、電子データと電子署名とから構成されるデータと明記しており、しかも、複数の電子データに対してまとめて１つのタイムスタンプを適用してもよいとしている。このことは、タイムスタンプ検証において、比較的大きなサイズの電子データを扱う必要性があることを示している。このような状況の下では、前述の従来技術を用いて、クライアント処理能力とサーバ処理能力を単純に比較し、処理能力の高い方へ単純に処理を配分すると、高速に処理できない可能性が残るという問題を生じてしまう。
【００１２】
本発明の目的は、電子署名とタイムスタンプとの適用対象となる電子データのサイズが大きくなった場合にも、電子署名とタイムスタンプとを高速に検証することができるようにした電子文書検証システム及び検証プログラムを提供することにある。
【課題を解決するための手段】
【００１３】
本発明によれば前記目的は、通信ネットワークに接続された少なくとも１台のサーバ装置と、少なくとも１台のクライアント装置とから構成され、ユーザから電子署名・タイムスタンプの検証要求を受け付けたクライアント装置が、サーバ装置との間で通信を行って、電子署名・タイムスタンプの検証を実行する電子文書検証システムであって、前記クライアント装置が、検証対象データを解析する手段と、クライアント装置及びサーバ装置のリソースの状態を取得する手段と、最適検証方法定義情報を参照し、最適な検証方法を特定する手段と、特定した最適な検証方法により、電子署名・タイムスタンプの検証を実行する手段とを備えることにより達成される。
【００１４】
また、前記目的は、通信ネットワークに接続された少なくとも１台のサーバ装置と、少なくとも１台のクライアント装置と、少なくとも１台のデータ管理サーバ装置とから構成され、ユーザから電子署名・タイムスタンプの検証要求を受け付けたクライアント装置が、サーバ装置との間で通信を行って、電子署名・タイムスタンプの検証を実行する電子文書検証システムであって、前記クライアント装置が、検証対象データを解析する手段と、クライアント装置及びサーバ装置のリソース状態を取得する手段と、前記データ管理サーバ装置が公開する最適検証情報定義情報を参照し、最適な検証方法を特定する手段と、特定した最適な検証方法により、電子署名・タイムスタンプの検証を実行する手段とを備えることにより達成される。
【００１５】
また、前記目的は、通信ネットワークに接続された少なくとも１台のサーバ装置と、少なくとも１台のクライアント装置とから構成され、ユーザから電子署名・タイムスタンプの検証要求を受け付けたクライアント装置が、サーバ装置との間で通信を行って、電子署名・タイムスタンプの検証を実行する電子文書検証プログラムであって、検証対象データを解析するステップと、クライアント装置及びサーバ装置のリソースの状態を取得するステップと、最適検証方法定義情報を参照し、最適な検証方法を特定するステップと、特定した最適な検証方法により、電子署名・タイムスタンプの検証を行うステップとを実行させることにより達成される。
【００１６】
さらに、前記目的は、通信ネットワークに接続された少なくとも１台のサーバ装置と、少なくとも１台のクライアント装置と、少なくとも１台のデータ管理サーバ装置とから構成され、ユーザから電子署名・タイムスタンプの検証要求を受け付けたクライアント装置が、サーバ装置との間で通信を行って、電子署名・タイムスタンプの検証を実行する電子文書検証プログラムであって、検証対象データを解析するステップと、クライアント装置及びサーバ装置のリソース状態を取得するステップ手段と、前記データ管理サーバ装置が公開する最適検証情報定義情報を参照し、最適な検証方法を特定するステップと、特定した最適な検証方法により、電子署名・タイムスタンプの検証を行うステップとを実行させることにより達成される。
【発明の効果】
【００１７】
本発明によれば、クライアント装置は、電子署名とタイムスタンプとの適用対象となる入力データのサイズに従った最適な検証方法を選択、決定して検証を行うことができるので、電子署名とタイムスタンプとの検証を高速に行うことができる。
【発明を実施するための最良の形態】
【００１８】
以下、本発明による電子文書検証システム及び検証プログラムの実施形態を図面により詳細に説明する。
【００１９】
図１は本発明の第１の実施形態による電子文書検証システムの構成を示すブロック図である。図１において、１００（１００ａ〜１００ｄ）はクライアント装置、１０２、１２２は要求受付部、１０４は検証シミュレート部、１０６は検証方法決定処理部、１０８はリソース監視部、１１０は署名・タイムスタンプ検証処理部、１１２は検証データモデル情報、１１４は検証タイプ情報、１１６は最適検証方法定義情報、１１８は検証性能実測情報、１２０はサーバ装置、１２４はリソース監視部、１２６は署名・タイムスタンプ検証処理部、１３０は認証局装置（ＣＡ）、１３２はタイムスタンプ局装置（ＴＳＡ）、１５０は通信ネットワークである。
【００２０】
図１に示す電子文書検証システムは、複数台のクライアント装置１００（１００ａ〜１００ｄ）、サーバ装置１２０、認証局装置１３０、タイムスタンプ局装置１３２が通信ネットワーク１５０に接続されて構成される。なお、図１には、サーバ装置１２０、認証局装置１３０、タイムスタンプ局装置１３２を１台だけ示しているが、これらの装置は、複数台設けられていてもよく、また、クライアント装置１００を４台示しているが、クライアント装置１００は、さらに多数設けられていても、また、１台だけであってもよい。
【００２１】
前述において、認証局装置１３０は、電子署名やタイムスタンプに使用される公開鍵証明書を発行すると共に、公開鍵証明書の検証に必要となる公開鍵証明書の失効情報を公開する装置である。タイムスタンプ局装置１３２は、タイムスタンプサービスを提供する装置である。サーバ装置１２０は、クライアント装置１００に対して、電子署名とタイムスタンプとの検証を示す電子文書検証サービスを提供する装置である。クライアント装置１００は、ユーザの操作を受け付け、電子文書の検証を実行する。また、クライアント装置１００は、検証の一部、あるいは、全てをサーバ装置１２０に依頼することもできる。クライアント装置１００には、通信相手となるサーバ装置１２０の通信アドレスが予め登録されている。そして、クライアント装置１００とサーバ装置１２０とは、ＳＳＬ（Secure Sockets Layer）を使用してお互いに相互認証し、暗号化通信を行っている。また、クライアント装置１００とサーバ装置１２０とは、ＮＴＰ（Network Time Protocol)を使用して、時刻同期を行っている。
【００２２】
クライアント装置１００は、要求受付部１０２、検証シミュレート部１０４、検証方法決定処理部１０６、リソース監視部１０８、署名・タイムスタンプ検証部１１０を備えて構成されている。
【００２３】
要求受付部１０２は、ユーザから電子署名とタイムスタンプとの検証の要求を受け付けると共に、サーバ装置１２０に対して検証サービスの一部、あるいは、全てを依頼し、その検証結果を受信する。検証シミュレート部１０４は、電子署名とタイムスタンプとの検証の性能確認のため、予め決められたパターン数の検証方法を実行する。そして、検証シミュレート部１０４は、得られた検証性能測定結果を検証性能実測情報１１８として格納し、最適な検証方法を定義する最適検証方法定義情報１１６を作成する。検証方法決定処理１０６は、検証データモデル情報１１２、検証タイプ情報１１４、最適検証方法定義情報１１６を参照して、ユーザから入力された検証要求データに対する最適な検証方法を決定する。リソース監視部１０８は、クライアント装置１００のＣＰＵ負荷等のリソースの状態情報を定期的に監視する。署名・タイムスタンプ検証処理部１１０は、署名とタイムスタンプとの検証を実行すると共に、その実行結果を検証性能実測情報１１８として格納する。
【００２４】
サーバ装置１２０は、要求受付部１２２、リソース監視部１２４、署名・タイムスタンプ検証処理部１２６を備えて構成されている。
【００２５】
要求受付部１２２は、クライアント装置１００からの検証要求を受け付け、サーバ装置１２０内で実行した検証結果をクライアント装置１００へ送信する。リソース監視部１２４は、サーバ装置１２０のＣＰＵ負荷等のリソース状態情報を定期的に監視する。また、署名・タイムスタンプ検証処理部１２６は、署名とタイムスタンプとの検証を実行する。
【００２６】
通信ネットワーク１５０は、公衆網、インターネット、ＩＳＤＮ、専用線、ＬＡＮ等の有線網や、移動通信用基地局や通信用人工衛星を利用した無線網等の通信ネットワークにより実現されているものを使用することができる。
【００２７】
なお、クライアント装置１００及びサーバ装置１２０が備える前述したような処理部の具体的な処理内容に関しては、他の図面と合わせて後述する。
【００２８】
図２はクライアント装置１００及びサーバ装置１２０のハードウエア構成の例を示すブロック図である。図２において、２００は内部通信線、２０２はＣＰＵ、２０４はＲＡＭ、２０６は外部記憶装置、２０８はＨＳＭ、２１０は通信インタフェース、２１２は入力装置、２１４は出力装置、２１６は外部メディアインタフェース、２１８は記憶媒体である。
【００２９】
クライアント装置１００及びサーバ装置１２０は、中央演算装置であるＣＰＵ２０２、キーボードやマウス等の入力装置２１２、ハードディスク等の外部記憶装置２０６、半導体メモリ等の記憶装置であるＲＡＭ２０４、ＣＲＴディスプレイ、液晶ディスプレイ、プリンタ等の出力装置２１４、光磁気メディア等の記憶媒体２１８を読み書きするための外部メディアインタフェース２１６、通信用の通信インタフェース２１０、暗号処理に使用する秘密鍵等のセキュリティ情報の格納や暗号処理を実行するハードウェアセキュリティモジュールであるＨＳＭ２０８がバス等の内部通信線２００で接続されて構成されている。このような構成を持つを持つクライアント装置１００及びサーバ装置１２０は、汎用的なパーソナルコンピュータを用いて実現できる。もちろん、パーソナルコンピュータに限るわけではなく、ユーザに対する入力装置、出力装置、通信装置を備えた計算機（情報処理装置）であれば使用可能である。
【００３０】
なお、電子文書検証システムを構成する各装置は、予め装置に設定された通信先相手となる他の装置のアドレスを用いて、通信先と接続して通信を行う。
【００３１】
各装置には、同一の機能を提供する複数の他の装置のアドレスが登録されていてもよい。例えば、１つのクライアント装置１００に１つ以上のサーバ装置１２０のアドレスが登録されている場合、クライアント装置１００の通信先は、例えば、ラウンド・ロビン的に選択される。
【００３２】
前述の各装置の各機能や各処理部は、それぞれのＣＰＵ２０２が外部記憶装置２０６に格納されたプログラムＲＡＭ２０４にロードして実行することにより具現化される。また、各プログラムは、予め外部記憶装置２０６に格納されていてもよいし、必要に応じて、当該装置が利用可能な、着脱可能なＦＤ、ＣＤ−ＲＯＭ、ＤＶＤ等の記憶媒体２１８や通信媒体である通信ネットワーク１５０、または、通信ネットワーク１５０上を伝搬する搬送波やデジタル信号を介して、他の装置から導入されてもよい。
【００３３】
以下、クライアント装置１００及びサーバ装置１２０の各処理部の具体的な処理内容について説明する。
【００３４】
図３はクライアント装置１００における電子文書の検証処理の処理動作を説明するフローチャートであり、次に、これについて説明する。
【００３５】
（１）クライアント装置１００は、処理を開始すると、まず、ユーザから電子文書検証の要求を受け付ける。電子文書検証の要求を受け付けの処理は、図４により後述するようなＧＵＩをユーザに提供して、ユーザに必要な操作を行わせることにより実行する（ステップ３００、３０２）。
【００３６】
（２）次に、クライアント装置１００は、検証データモデル情報１１２と検証タイプの定義情報１１４を参照し、検証対象データのタイプ及び電子署名とタイムスタンプとの検証仕様を特定する。検証データモデル情報１１２及び検証タイプの定義情報１１４の具体例については、図５、図６を参照して後述する。また、ここで、検証対象となる電子データのサイズ情報も取得する（ステップ３０４）。
【００３７】
（３）次に、ステップ３０４の処理で電子署名とタイムスタンプとの検証仕様を確定すると、クライアント装置１００は、ステップ３０６にて、クライアント装置１００とサーバ装置１２０との処理負荷状態を取得する。処理負荷状態とは、例えば、ＣＰＵ使用率、メモリ使用率、ディスクアクセスの負荷等の装置を構成するリソースの負荷状態である。クライアント装置１００は、サーバ装置１２０の処理負荷状態を把握するために、サーバ装置１２０へ問い合わせを行う。この問い合わせは、図７により後述するが、リソース状態要求データをサーバ装置１２０へ送信し、サーバ装置１２０からリソース状態応答データを受信することにより行われる（ステップ３０６）。
【００３８】
（４）次に、クライアント装置１００は、最適検証方法定義情報１１６を参照して、最適な検証方法が定義されているか否かにより最適な検証方法を特定し、検証方法を特定することができたか否かを判定する。なお、最適検証方法定義情報１１６の具体例については、図９を参照して後述する（ステップ３０８）。
【００３９】
（５）ステップ３０８の判定で、最適検証方法定義情報１１６に最適検証方法定義情報が定義されていなかった場合、クライアント装置１００は、最適な検証方法を特定することができないため、検証シミュレーションを実行する。すなわち、クライアント装置１００は、検証対象データで想定される検証タイプ全てを順番に試行する。具体的には、クライアント装置１００は、クライアント装置１００で行う検証内容を実行すると共に、検証シミュレーション要求をサーバ装置１２０へ送信し、サーバ装置１２０に検証処理を実行させて、実行結果である検証結果を受け取る。なお、授受されるシミュレーション要求のデータと検証結果のデータとの詳細は、図７により後述する。ここでの処理により、ユーザから要求された検証対象データの検証がシミュレーションと同時に得られることになる。なお、検証シミュレーションの実行時には、クライアント装置１００を操作するユーザに対して、検証シミュレーション中であるとの文字列を示す画面を表示してもよい（ステップ３１８）。
【００４０】
（６）ステップ３１８の処理での検証シミュレーションが終了すると、クライアント装置１００は、検証シミュレーション結果を検証性能実測情報１１８として格納する。なお、検証性能実測情報１１８の詳細については、図８を参照して後述する（ステップ３２０）。
【００４１】
（７）次に、クライアント装置１００は、検証性能実測情報１１８の中から、検証対象データモデル、電子データサイズ、クライアントのＣＰＵ負荷、サーバのＣＰＵ負荷、通信時間が同一であるもののうちから検証時間が１番小さい検証タイプを最適な検証方法として定義する最適検証方法定義情報１１６を作成、あるいは、更新する。なお、電子データサイズ、クライアントのＣＰＵ負荷、サーバのＣＰＵ負荷が同一であるとは、例えば、これらの値が予め決められた閾値の範囲内に含まれていることを意味する（ステップ３２２）。
【００４２】
（８）次に、クライアント装置１００は、検証結果を作成し、クライアント装置１００を操作するユーザに対して検証結果を提示して、最適検証方法定義情報が定義されていない場合の処理を終了する（ステップ３１６）。
【００４３】
（９）ステップ３０８の判定で、最適検証方法定義情報１１６に最適検証方法定義情報が定義されていた場合、クライアント装置１００は、最適検証方法定義情報の中から最適な検証タイプを選択して検証を実行する。具体的には、クライアント装置１００は、クライアント装置１００で行う検証内容を実行すると共に、サーバ装置１２０で行う検証内容を含む検証要求をサーバ装置１２０へ送信し、サーバ装置１２０に検証処理を実行させて、実行結果である検証結果を受け取る。なお、授受されるシミュレーション要求のデータと検証結果のデータとの詳細は、図７により後述する（ステップ３１２）。
【００４４】
（10）その後、クライアント装置１００は、検証性能実測値を検証性能実測情報１１４として格納すると共に、検証結果を作成し、クライアント装置１００を操作するユーザに対して検証結果を提示して、最適検証方法定義情報が定義されていた場合の処理を終了する（ステップ３１４、３１６）。
【００４５】
なお、クライアント装置１００は、検証性能実測情報１１４を定期的に検査し、ある条件に合致した場合、再度、検証シミュレーションを実行してもよい。例えば、最適検証方法として採用した検証タイプが想定する検証時間と実測した検証時間との差がある閾値を超えた場合、実測値におけるクライアントのＣＰＵ負荷、サーバのＣＰＵ負荷、電子データのサイズの条件下で検証シミュレーションを実行し、最適検証方法定義情報を更新してもよい。
【００４６】
図４はステップ３０２の処理での電子文書検証の要求を受け付ける処理でユーザに提供するＧＵＩの画面例を示す図である。図４に示す画面例４００におけるフィールド４０２、フィールド４０６、フィールド４１０には、ユーザが選択した電子データファイル名、電子署名ファイル名、タイムスタンプファイル名がそれぞれ表示される。ボタン４０４、ボタン４０８、ボタン４１２は、それぞれ、電子データファイル、電子署名ファイル、タイムスタンプファイルをファイルシステムから参照するための機能を呼び出すためのボタンである。また、フィールド４１４は、電子データに対する電子署名とタイムスタンプの仕様とを示す電子文書モデルを選択するためのリストとなる。ボタン４１６は、電子署名・タイムスタンプ検証処理の実行を起動するためのボタンである。
【００４７】
図５は検証データモデル情報１１２を示すデータテーブルの例を示す図である。図５に示す検証データモデル情報１１２を示すデータテーブルは、検証対象データモデル毎に定義される電子署名とタイムスタンプの検証モデルを示している。ユーザから指定された電子文書モデルは、テーブルフィールド５０２の検証対象データモデルを示す。例えば、検証対象データモデルが、doc1であれば、テーブルフィールド５０４が示す署名ＰＫＩモデルは、ＧＰＫＩ（政府認証基盤）と呼ばれるブリッジ型のＣＡ（認証局）モデルとなる。また、テーブルフィールド５０６の署名形式モデルは、ＲＦＣ３８５２の規格に示されるＣＭＳ（Cryptographic Message Syntax）、テーブルフィールド５０８の署名対象モデルは、ＩＳＯ  １９００５−１に記載されるＰＤＦデータの全体を示す。さらに、テーブルフィールド５１０のタイムスタンプ形式モデルとテーブルフィールド５１２のタイムスタンプ対象モデルとは、それぞれ、ＲＦＣ３１６１規格、及び、国税関係書類の電子保存に関わるタイムスタンプ付与対象要件を示した国税庁通達に準拠することを示している。
【００４８】
図６は検証タイプ情報１１４を示すデータテーブルの例を示す図である。図６に示す検証タイプ情報１１４を示すデータテーブルは、検証対象データモデルにおける検証タイプの定義である。検証タイプとは、電子署名とタイムスタンプとの検証構成要素となる検証項目をクライアント装置、あるいは、サーバ装置で実行するのか否かの組み合わせを定義したものである。考えられる全ての組み合わせが検証タイプとして定義される。例えば、テーブル行６５０では、検証対象モデルとしてdoc1の検証タイプv1が定義される。テーブルフィールド６０６から６１８では、サーバ装置によりこれらの検証項目が実行されることが定義されている。具体的な検証項目としては、例えば、署名者の公開鍵証明書有効性検証（検証項目１）、署名者の署名値の検証（検証項目２）、署名対象データと署名データとの対応検証（検証項目３）、タイムスタンプ局の公開鍵証明書有効性検証（検証項目４）、タイムスタンプの署名値の検証（検証項目５）、タイムスタンプ対象データとタイムスタンプとの対応検証（検証項目６）、タイムスタンプ局を使用したタイムスタンプトークン検証（検証項目７）等である。
【００４９】
なお、検証対象データモデルによって、検証項目が異なることもある。例えば、テーブル行６５２の検証対象データモデルdoc2は、タイムスタンプ方式としては、図４から判るように、ＰＫＩ技術を使用しないＩＳＯ／ＩＥＣ  １８０１４−２のＭＡＣ方式のため、ＰＫＩ技術に特有なタイムスタンプ局の公開鍵証明書有効性検証（検証項目４）とタイムスタンプの署名値の検証（検証項目５）とは、未定義となる。
【００５０】
図７はクライアント装置１００とサーバ装置１２０との間で授受される送受信メッセージの構成例を示す図である。
【００５１】
図７（ａ）は図３のステップの処理でのサーバの処理負荷状態の問い合わせのためのリソース状態要求データ７００を示しており、このリソース状態要求データ７００は、データの種別を示すフィールド７０２、クライアント装置１００が要求を送信する時刻７０４が格納される。図７（ｂ）は問い合わせに対してサーバ装置１２０から返されるリソース状態応答データ７１０を示しており、このリソース状態応答データ７１０は、データの種別を示すフィールド７１２、サーバ装置１２０がリソース状態要求データを受信した時刻７１４、サーバ装置１２０がリソース状態応答データを送信した時刻７１６、サーバ装置がリソース状態要求データを受信した時点、あるいは、その時点を中心としたある時間幅の平均のサーバ装置のＣＰＵ負荷状態７１８が格納される。ＣＰＵ負荷状態７１８には、ＣＰＵ負荷状態だけでなく、前述したような各種リソースの負荷状態を含ませることができる。クライアント装置１００は、このような問い合わせにより、サーバ装置１２０のＣＰＵ負荷を含むリソースの負荷の情報、サーバ装置内の処理時間を知ることができる。また、クライアント装置１００とサーバ装置１２０との間の通信時間も見積もることができる。
【００５２】
図７（ｃ）は図３のステップ３１２の処理でのサーバ装置１２０へクライアント装置１００から送信される検証要求のデータ７２０を示している。この検証要求データ７２０には、検証要求識別子を示すフィールド７２２、検証対象データを示すフィールド７２４が格納される。ここで言う検証対象データとは、サーバ装置１２０で実行すべき検証項目に必要な入力データである。例えば、検証対象データモデルが、doc1であり、サーバ装置１２０で実行すべき検証項目が公開鍵証明書だけであれば、検証対象データのフィールド７２４には、公開鍵証明書だけが格納され、また、検証対象データモデルが、doc1であり、サーバ装置１２０で実行すべき検証項目の全てであれば、電子データ、電子署名データ、タイムスタンプデータから構成されるデータが格納される。また、クライアント装置１００から送信される検証要求データ７２０には、クライアント装置１００が要求を送信する時刻を示すフィールド７２６が格納される。
【００５３】
サーバ装置１２０は、検証の実行を終了すると、図７（ｄ）に示しているような検証応答データ７３０を検証結果としてクライアント装置１００に送信する。検証応答データ７３０は、データの種別、すなわち、検証応答識別子を示すフィールド７３２、検証結果データを示すフィールド７３４、サーバ装置１２０が検証要求データを受信した時刻を示すフィールド７３６、サーバ装置１２０が検証応答データを送信する時刻を示すフィールド７３８、サーバ装置１２０が検証シミュレーション要求を受信した時点、あるいは、その時点を中心としたある時間幅の平均のサーバＣＰＵの負荷状態を示すフィールド７４０が格納される。
【００５４】
図７（ｅ）は図３のステップ３１８の処理でのサーバ装置１２０へクライアント装置１００から送信される検証シミュレーション要求のデータ７５０を示している。この検証シミュレーション要求データ７５０には、シミュレート識別子を示すフィールド７５２、検証対象データを示すフィールド７５４が格納される。ここで言う検証対象データとは、サーバ装置１２０で実行すべき検証項目に必要な入力データである。例えば、検証対象データモデルが、doc1であり、サーバ装置１２０で実行すべき検証項目が公開鍵証明書だけであれば、検証対象データのフィールド７５４には、公開鍵証明書だけが格納され、また、検証対象データモデルが、doc1であり、サーバ装置１２０で実行すべき検証項目の全てであれば、電子データ、電子署名データ、タイムスタンプデータから構成されるデータが格納される。このとき、いくつかの検証タイプを実行する場合、クライアント装置１００及びサーバ装置１２０のリソース負荷（例えば、ＣＰＵ負荷）が同じ条件になるように実行する。
【００５５】
また、クライアント装置１００から送信される検証シミュレーション要求データ７５０には、クライアント装置１００が要求を送信する時刻を示すフィールド７５６、サーバ装置１２０で保つべきサーバ負荷状態を示すフィールド７５８が格納される。サーバ装置１２０は、フィールド７５８の値を読み取り、サーバＣＰＵの負荷状態を指定された状態に保ちながら検証処理を実行する。同様に、クライアント装置１００も、検証シミュレート実行中、クライアントのＣＰＵの負荷状態を指定した状態に保ちながら検証処理を実行する。ＣＰＵの負荷状態を所定の負荷状態に保つ方法としては、例えば、他の処理を受け付けない、あるいは、ダミーの処理を生成する等の方法が用いればよい。
【００５６】
サーバ装置１２０は、検証タイプの１つの実行を終了する毎に、図７（ｆ）に示しているような検証シミュレーション応答７６０を検証結果としてクライアント装置１００に送信する。検証シミュレーション応答データ７６０は、データの種別を示すフィールド７６２、検証結果データを示すフィールド７６４、サーバ装置１２０が検証シミュレーション要求データを受信した時刻を示すフィールド７６６、サーバ装置１２０が検証シミュレーション応答データを送信する時刻を示すフィールド７６８、サーバ装置１２０が検証シミュレーション要求を受信した時点、あるいは、その時点を中心としたある時間幅の平均のサーバＣＰＵの負荷状態を示すフィールド７７０が格納される。
【００５７】
図８は検証性能実測情報の例を示すデータテーブルの例を示す図である。図８に示す検証性能実測情報１１８の例において、テーブルフィールド８０２、テーブルフィールド８０４は、それぞれ、検証対象データモデルと検証タイプとを示す。テーブルフィールド８０６は、検証対象の電子データのサイズを示し、テーブルフィールド８０８とテーブルフィールド８１０とは、クライアント装置１００とサーバ装置１２０とのＣＰＵ負荷を表す。検証性能に関わる情報は、テーブルフィールド８１２、８１４、８１６、８１８に記述されており、それぞれ、クライアント装置１００とサーバ装置１２０との間の往復通信時間、電子署名とタイムスタンプとの検証時間（クライアント装置１００における検証時間とサーバ装置１２０における検証時間とのうち時間の大きい方に通信時間を含めたもの）、クライアント装置１００における検証時間、サーバ装置１２０における検証時間を示している。
【００５８】
図９は最適検証方法定義情報１１６の例を示すデータテーブルの例を示す図である。図９に示す最適検証方法定義情報１１６の例において、テーブルフィールド９０２は、検証対象モデルを示し、テーブルフィールド９０４は、クライアント装置１００とサーバ装置１２０との間の想定される通信時間（単位：秒）を示す。また、テーブルフィールド９０６〜９１０は、最適検証方法を決定するためのパラメータ条件となる。例えば、検証データサイズ９０６は、検証対象となる電子データのサイズ（単位：バイト）の条件を示し、クライアントＣＰＵ負荷９０８とサーバＣＰＵ負荷９１０とは、それぞれ、クライアント装置１００のＣＰＵ負荷（単位：％）及びサーバ装置１２０のＣＰＵ負荷（単位：％）の条件を示す。テーブルフィールド９１２は、これらの条件に合致した場合の最適な検証タイプを示し、また、テーブルフィールド９１４は、実測値に基づく検証時間（単位：秒）の見積もりを示している。この図９の例では、通信時間条件、検証データサイズ条件、クライアントＣＰＵ条件、サーバＣＰＵ条件は、範囲条件として示されている。例えば、図３のステップ３２０、３２２の処理では、検証性能実績情報１１８から得られたこれらの値が、範囲条件の上限として見なすことができる。
【００５９】
図１０は本発明の第２の実施形態による電子文書検証システムの構成を示すブロック図である。図１０において、１０２０はデータ管理サーバ、１０２２は最適検証方法定義情報であり、他の符号は図１の場合と同一である。
【００６０】
図１０に示す本発明の第２の実施形態による電子文書検証システムは、図１に示して説明した本発明の第１の実施形態に対して、新たにデータ管理サーバ装置１０２０をネットワーク１５０に接続して構成されている。そして、このデータ管理サーバ１０２０には、最適検証方法定義情報１０２２が格納される。また、クライアント装置１００は、検証シミュレーション部を備えてない。図１０に示すある１つのクライアント装置１００は、定期的に最適検証方法定義情報１１６をデータ管理サーバ装置１０２０に送信する。データ管理サーバ装置１０２０は、受信した最適検証方法定義情報１１６を最適検証方法定義情報１０２２として格納し、ネットワーク１５０に接続される任意のクライアント装置１００に閲覧させる。このようにすることにより、クライアント装置１００は、検証シミュレーション部と最適検証方法定義情報とを備える必要がなくなる。
【図面の簡単な説明】
【００６１】
【図１】本発明の第１の実施形態による電子文書検証システムの構成を示すブロック図である。
【図２】クライアント装置及びサーバ装置のハードウエア構成の例を示すブロック図である。
【図３】クライアント装置における電子文書の検証処理の処理動作を説明するフローチャートである。
【図４】図３のステップ３０２の処理での電子文書検証の要求を受け付ける処理でユーザに提供するＧＵＩの画面例を示す図である。
【図５】検証データモデル情報を示すデータテーブルの例を示す図である。
【図６】検証タイプ情報を示すデータテーブルの例を示す図である。
【図７】クライアント装置とサーバ装置との間で授受される送受信メッセージの構成例を示す図である。
【図８】検証性能実測情報の例を示すデータテーブルの例を示す図である。
【図９】最適検証方法定義情報の例を示すデータテーブルの例を示す図である。
【図１０】本発明の第２の実施形態による電子文書検証システムの構成を示すブロック図である。
【符号の説明】
【００６２】
１００（１００ａ〜１００ｄ）  クライアント装置
１０２、１２２  要求受付部
１０４  検証シミュレート部
１０６  検証方法決定処理部
１０８  リソース監視部
１１０  署名・タイムスタンプ検証処理部
１１２  検証データモデル情報
１１４  検証タイプ情報
１１６、１０２２  最適検証方法定義情報
１１８  検証性能実測情報
１２０  サーバ装置
１２４  リソース監視部
１２６  署名・タイムスタンプ検証処理部
１３０  認証局装置（ＣＡ）
１３２  タイムスタンプ局装置（ＴＳＡ）
１５０  通信ネットワーク
２００  内部通信線
２０２  ＣＰＵ
２０４  ＲＡＭ
２０６  外部記憶装置
２０８  ＨＳＭ
２１０  通信インタフェース
２１２  入力装置
２１４  出力装置
２１６  外部メディアインタフェース
２１８  記憶媒体
１０２０  データ管理サーバ
【図１】
2007281770.tif 000003
【図２】
2007281770.tif 000004
【図３】
2007281770.tif 000005
【図４】
2007281770.tif 000006
【図５】
2007281770.tif 000007
【図６】
2007281770.tif 000008
【図７】
2007281770.tif 000009
【図８】
2007281770.tif 000010
【図９】
2007281770.tif 000011
【図１０】
2007281770.tif 000012