(57)【特許請求の範囲】
【請求項１】
電子署名が施された電子署名文書とその検証結果データを記憶する記憶部と、
検証要求を受けると、前記電子署名文書に施された全ての署名データについて検証して検証結果データを生成し、前記検証結果データから検証結果を生成して出力する制御部を有する電子署名検証装置であって、
前記電子署名文書は、電子ファイル、署名が施される度に生成される署名時刻を含む署名データ、及び当該署名に用いた電子証明書の有効性の判断が可能な情報を含む検証情報から少なくとも構成され、
前記制御部は、
前記署名データの各々に含まれる電子証明書の有効性及び前記電子署名文書の改ざんの有無を検証して検証結果データを生成する検証手段と、
前記記憶部に記憶されている過去の検証結果データを用いて前記署名データを検証する簡易検証手段と、
検証対象の署名データが同一の電子署名文書において最新のものであり又は当該検証対象の署名データに対応する検証情報が存在しないものであれば前記検証手段による検証を選択し、その他の署名データは簡易検証手段による検証を選択可能にする検証選択手段と、
を有することを特徴とする電子署名検証装置。
【請求項２】
前記簡易検証手段は、前記過去の検証結果データに改ざんがある場合、前記検証情報を用いて、当該過去の検証結果データに対応する署名データに含まれる電子証明書の有効性及び前記電子署名文書の改ざんの有無を検証して検証結果データを生成する請求項１に記載の電子署名検証装置。
【請求項３】
前記制御部は、
電子署名文書を指定した署名要求を受け取ると、
当該電子署名文書に署名データがなければ当該署名者の電子証明書を用いて前記電子ファイルに対する署名データを生成して当該電子署名文書に追加し、
当該電子署名文書に既に署名データがあり、かつ、当該署名データに対応する検証情報がなければ、前記検証手段にて検証して検証結果データを前記記憶部に記憶し、前記電子署名文書に検証情報を追加した後に、署名者の電子証明書を用いて所定の署名対象に対する署名データを生成して当該電子署名文書に追加し、
当該電子署名文書に既に署名データがあり、かつ、当該署名データに対応する検証情報があれば、前記簡易検証手段にて検証して検証結果データを更新する電子署名手段を更に有する請求項１又は２に記載の電子署名検証装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子署名が施された電子署名文書とその検証結果データを記憶し、検証要求を受けると、電子署名文書に施された全ての署名データについて検証して検証結果データを生成し、検証結果データから検証結果を生成して出力する電子署名検証装置に関する。
【背景技術】
【０００２】
従来、電子署名サーバ、認証局及びユーザ端末を有する電子署名システムにおいて、電子署名サーバは、ユーザ端末から電子署名が要求されると、認証局によりユーザに対して発行された電子証明書を用いて、電子データに対して署名を施し、保存していた。
【０００３】
この保存された電子データにユーザ端末からアクセスする場合、ユーザ端末から電子署名サーバに対して電子署名検証要求信号を送信し、電子署名サーバは、電子署名検証要求信号を受信すると、当該電子データの電子署名の検証処理を実行する。電子署名の検証において、電子署名検証装置は、電子データの改ざんの有無や、署名に使用された電子証明書の発行者、所有者、有効期限、失効の有無等を、この電子証明書を発行した認証局から取得するデータを用いて判定し、電子データの正当性を確認している。
【０００４】
電子データを長期間に亘って保存する場合、世代順に１番内側から１番外側まで多重に電子署名が施される多重電子署名が用いられる。この場合、１番内側に施される最初の電子署名は、電子データに対して施され、その次に施される電子署名から１番外側に施される最新の電子署名は、これまでの署名が施された電子データに対して施されるだけでなく、これ以前に施された電子署名に使用された電子証明書及びその有効性を判定する失効情報に対しても施される。多重電子署名が施された電子データの検証は、電子証明書の有効性の確認及び署名対象に改ざんがないかの確認を電子署名の１番外側から１番内側まで世代を遡って実行することによって行われる（例えば、特許文献１）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００８−３００９５５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、多重電子署名の検証は、電子署名の１番外側から１番内側まで世代を遡って一つ一つの電子署名について一連の処理を実行するために一定の処理時間を要し、多重になるに従って電子署名検証装置の処理の負荷が増大するとともに、電子署名検証装置が検証結果を出力するまでの時間が長くなるという課題があった。
【０００７】
本発明の目的は、多重電子署名検証を高速かつ高い信頼性で行うことができる電子署名検証装置を提供することである。
【課題を解決するための手段】
【０００８】
かかる課題を解決するために、本発明は、電子署名が施された電子署名文書とその検証結果データを記憶する記憶部と、検証要求を受けると、電子署名文書に施された全ての署名データについて検証して検証結果データを生成し、検証結果データから検証結果を生成して出力する制御部を有する電子署名検証装置であって、電子署名文書は、電子ファイル、署名が施される度に生成される署名時刻を含む署名データ、及び当該署名に用いた電子証明書の有効性の判断が可能な情報を含む検証情報から少なくとも構成され、制御部は、署名データの各々に含まれる電子証明書の有効性及び電子署名文書の改ざんの有無を検証して検証結果データを生成する検証手段と、記憶部に記憶されている過去の検証結果データを用いて検証する簡易検証手段と、検証対象の署名データが同一の電子署名文書において最新のものであり又は対応する検証情報が存在しないものであれば検証手段による検証を選択し、その他の署名データは簡易検証手段による検証を選択可能にする検証選択手段と、を有することを特徴とする電子署名検証装置を提供する。
【０００９】
かかる電子署名検証装置では、簡易検証手段は、過去の検証結果データに改ざんがある場合、検証情報を用いて、対応する署名データに含まれる電子証明書の有効性及び電子署名文書の改ざんの有無を検証して検証結果データを生成するのが好ましい。
【００１０】
かかる電子署名検証装置は、制御部は、電子署名文書を指定した署名要求を受け取ると、当該電子署名文書に署名データがなければ当該署名者の電子証明書を用いて電子ファイルに対する署名データを生成して当該電子署名文書に追加し、当該電子署名文書に既に署名データがあり、かつ、当該署名データに対応する検証情報がなければ、検証手段にて検証して検証結果データを記憶部に記憶し、電子署名文書に検証情報を追加した後に、署名者の電子証明書を用いて所定の署名対象に対する署名データを生成して当該電子署名文書に追加し、当該電子署名文書に既に署名データがあり、かつ、当該署名データに対応する検証情報があれば、簡易検証手段にて検証して検証結果データを更新する電子署名手段を更に有するのが好ましい。
【発明の効果】
【００１１】
本発明によれば、多重電子署名検証を高速かつ高い信頼性で行うことができる電子署名検証装置を提供することができる。
【図面の簡単な説明】
【００１２】
【図１】本発明による電子署名検証装置が用いられる電子署名システムの構成図である。
【図２】電子署名サーバの記憶部における電子署名文書領域のデータ構造を示す図である。
【図３】電子署名サーバの記憶部における検証結果領域のデータ構造を示す図である。
【図４】電子署名サーバの記憶部におけるユーザ情報領域のデータ構造を示す図である。
【図５】署名要求に応じて行う図１の電子署名サーバの処理のフローチャートである。
【図６】検証要求に応じて行う図１の電子署名サーバの処理のフローチャートである。
【発明を実施するための形態】
【００１３】
本発明による電子署名検証装置の実施の形態を、図面を参照しながら説明する。
本発明による電子署名検証装置は、検証対象の署名データが同一の電子署名文書において最新のもの又は対応する検証情報が存在しないものであれば、署名データの各々に含まれる電子証明書の有効性及び電子署名文書の改ざんの有無を検証して検証結果データとすることを選択し、その他の署名データは過去の検証結果データを用いた検証を選択可能にする装置である。
【００１４】
図１は、本発明による電子署名検証装置が用いられる電子署名システムの構成図である。図１に示す電子署名システムは、例えば、社内システムに適用され、電子署名検証装置としての電子署名サーバ１と、ユーザ端末２と、認証局３と、通信ネットワーク４と、を有する。以下の説明では、「電子署名」を単に「署名」ともいい、「電子証明書」を単に「証明書」ともいう。
【００１５】
電子署名サーバ１は、電子署名文書に施された全ての署名データについての検証等の機能を実現する。このために、電子署名サーバ１は、記憶部１１と、電子署名サーバ１の各種制御を行う制御部１２と、計時部１３と、通信ネットワーク４を通じてユーザ端末２及び認証局３との通信を行う通信インタフェース（Ｉ／Ｆ）部１４と、を有する。
【００１６】
記憶部１１は、フラッシュメモリ、ＥＥＰＲＯＭ等の書換え自在の不揮発性メモリ、磁気ハードディスク、書換え自在の光ディスク及びそのドライブ等の少なくともいずれかによって構成される。記憶部１１は、電子署名文書領域と、検証結果領域と、ユーザ情報領域と、を有する。また、記憶部１１は、制御部１２で使用する各種制御情報等を記憶する。
【００１７】
図２は、電子署名サーバの記憶部における電子署名文書領域のデータ構造を示す図である。電子署名文書は、保管対象である電子ファイルと、署名を施した結果である署名データと、署名の際に使用した電子証明書等の有効性を確認する検証情報とによって構成される。特に、保管対象に電子署名を多重に施す場合、電子ファイルに電子署名が施される度に署名データ及び検証情報が生成され、これらの署名データ及び検証情報が記憶部１１に記憶される。
【００１８】
後に説明する電子署名文書コードに関連付けられた一群のデータを電子署名文書と称する。また、電子ファイルは、ユーザが生成して保管対象にするオリジナルの電子文書そのものである。
【００１９】
電子署名文書コードは、電子署名サーバ１が保管対象として電子ファイルを通信Ｉ／Ｆ部１４にて外部から受信して記憶部１１に最初に記憶するときに付与される独自のコードである。その後に重畳して電子署名文書に署名が施されるときには、電子署名文書コードは、対応付けの基準として用いられる。このような電子署名文書コードは、電子ファイルが記憶部１１に記憶されたときに電子署名システムによって付与される。
【００２０】
署名データは、電子署名を施した際に使用した署名者の電子証明書、デジタル署名値、署名時刻、署名者名等を含む。署名データは、保管対象に対して電子署名が施される度に生成される。
【００２１】
検証情報は、署名データと対を成す情報であって、署名データを検証した際の電子証明書の有効性確認の根拠情報である。すなわち、検証情報を用いて署名データを再検証することができる。具体的には、検証情報は、検証時の電子証明書失効リスト（ＣＲＬ(Certificate Revocation List)）と、当該ＣＲＬを発行した認証局３の電子証明書と、を含んでいる。
【００２２】
図２では、第４世代までの署名が施された電子署名文書を示している。この場合、先ず、電子ファイルを署名対象にして、第１世代の署名になる署名データａが生成され、電子署名文書が生成される。次に、新たな署名を重ねて施すときに、署名データａを再検証する際に使用する検証情報ａを生成し、電子ファイル、署名データａ及び検証情報ａを新たな署名対象とし、第２世代の署名になる署名データｂが生成される。同様にして、電子ファイル、署名データａ及び検証情報ａの他に第２世代の署名の署名データｂ及び検証情報ｂを署名対象にし、第３世代の署名の署名データｃが生成され、その後、電子ファイル、署名データａ、検証情報ａ、署名データｂ及び検証情報ｂの他に第３世代の署名の署名データｃ及び検証情報ｃを署名対象にし、第４世代の署名の署名データｄが生成される。
【００２３】
ここでは、第４世代の署名が最も新しい署名となり、これを最新の署名データという。この電子署名文書に更に署名が施されるとき、最新の署名データの検証情報を生成し、最新の署名データ及び生成した検証情報が署名対象に追加され、新たな署名データが生成され、新たな署名データが電子署名文書に追加して、電子署名文書が更新される。なお、上述した第１世代、第２世代等々の署名世代は、電子ファイルに順次重ねて署名を施すので、最も古い署名を第１世代の署名データと称し、次の署名を第２世代の署名データと称し、ｎ番目の署名を第ｎ世代の署名データと称している。
【００２４】
図３は、電子署名サーバの記憶部における検証結果領域のデータ構造を示す図である。検証結果領域は、電子署名文書の各署名データを検証した結果である検証結果データを検証結果改ざん検知用データと対応付けて記憶する領域である。なお、検証結果領域は、電子署名文書の検証が行われた際に当該電子署名文書に含まれる署名データごとにレコードが作成される。検証結果領域の各レコードは、電子署名文書コード、署名世代、検証結果データ及び検証結果改ざん検知用データが対応付けられている。
【００２５】
署名世代は、電子署名文書における複数の署名データにおいて古い順に第１世代、第２世代、第３世代等々と付すためのコードである。この署名世代は、各署名データが電子署名文書コードで対応付けられている複数の署名データにおける署名時刻から古い順に第１世代、第２世代、第３世代等々と判断される。
【００２６】
検証結果データは、各署名データについて検証処理を施した際の結果データであって、署名者名、署名時刻、署名に使用した電子証明書、署名対象への改ざんの有無、電子証明書の失効の有無等を含む。
【００２７】
検証結果改ざん検知用データは、検証結果データの信頼性を担保するために検証結果領域の各レコードの改ざんの有無を検知するためのデータである。具体的には、検証結果改ざん検知用データは、検証結果改ざん検知用データ以外のデータである電子署名文書コード、署名世代及び検証結果データのハッシュ値である。
【００２８】
図３に示す例では、電子署名文書コード「０００００００１」の電子署名文書には第１世代から第３世代までの署名データがあり、これらの署名世代ごとに検証結果データ及び検証結果改ざん検知用データが対応付けられて記憶部１１に記憶されている。電子署名文書コード「０００００００２」及び「０００００００４」の電子署名文書には第１世代の署名データがあり、第１世代の検証結果データ及び検証結果改ざん検知用データが対応付けられて記憶部１１に記憶されている。同様に、電子署名文書コード「０００００００３」の電子署名文書には第１世代から第２世代までの署名データがあり、これらの署名世代ごとに検証結果データ及び検証結果改ざん検知用データが対応付けられて記憶部１１に記憶されている。
【００２９】
図４は、電子署名サーバの記憶部におけるユーザ情報領域のデータ構造を示す図である。ユーザ情報領域は、ユーザＩＤをユーザの電子証明書に対応付けて記憶する領域であって、署名要求があるとユーザＩＤに対応する電子証明書を読み出す際に参照される。ユーザ情報領域の各レコードには、ユーザＩＤ、電子証明書、氏名及び所属が保存されている。なお、電子証明書は、電子証明書そのものを保存しても保存場所へのパスであってもよい。
【００３０】
制御部１２は、ＣＰＵ，ＲＯＭ，ＲＡＭ等から構成され、電子署名サーバ１の制御全般についてプログラムに従って処理を行う。このために、制御部１２は、電子署名手段１１１と、検証手段１１２と、簡易検証手段１１３と、検証結果改ざん検出手段１１４と、検証選択手段１１５と、結果送信手段１１６と、を有する。
【００３１】
電子署名手段１１１は、ユーザ端末２からの署名要求を受けると、署名要求に含まれるユーザＩＤで特定されるユーザの電子証明書を記憶部１１のユーザ情報領域から読み出し、署名対象に署名を施す。ここで、署名対象とは、署名を施す対象であるデータの総称であって、第１世代の署名対象は電子ファイルとなる。第２世代の署名対象は、電子ファイルと第１世代の署名データ及び対応する検証情報となる。第３世代の署名対象は、第２世代の署名対象と第２世代の署名データ及び対応する検証情報となる。具体的には、電子署名手段１１１は、署名者の電子証明書を記憶部１１のユーザ情報領域から読み出し、電子証明書に基づいて署名対象のデジタル署名値を算出する。このとき、電子署名手段１１１は、計時部１３から取得した現在時刻を署名時刻とする。そして、電子署名手段１１１は、これらのデジタル署名値、署名時刻及び使用した電子証明書を署名データとして記憶部１１の電子署名文書領域に記憶させる。
【００３２】
検証手段１１２は、検証対象の署名データを用いて、署名対象の改ざんがされていないこと及び署名に使用された電子証明書が有効であることを検証する。具体的には、検証手段１１２は、署名対象の改ざんの有無を判定するために、署名データの電子証明書を用いて署名対象のデジタル署名値を復号してハッシュ値を算出し、算出したハッシュ値と、記憶部１１の電子署名文書領域に記憶されている署名対象から算出されるハッシュ値との一致を確認する。これらの値が一致しない場合、検証手段１１２は、「改ざん有り」と判定し、そうでない場合、検証手段１１２は、「改ざん無し」と判定する。また、検証手段１１２は、電子証明書の有効性を判定するために、認証局３からＣＲＬを取得し、署名データの電子証明書がＣＲＬに記載されているか否かを確認する。署名データの電子証明書がＣＲＬに記載されている場合、検証手段１１２は、「有効性に問題有り」と判定し、そうでない場合、検証手段１１２は、「有効性に問題無し」と判定する。そして、検証手段１１２は、これらの検証の結果を検証結果データとして、電子署名文書コード及び署名世代と対応させて記憶部１１の検証結果領域に記憶させる。さらに、検証手段１１２は、電子証明書の有効性の判定に使用したＣＲＬ及び認証局３の電子証明書を、検証情報として記憶部１１の電子署名文書領域に署名データと対応付けて記憶させる。
【００３３】
簡易検証手段１１３は、検証対象の署名データについて、過去の検証結果である検証結果データを検証結果として用いることによって、検証の効率を上げる処理を行う。具体的には、簡易検証手段１１３は、記憶部１１の検証結果領域を参照し、検証対象の署名データに対応する検証結果データを読み出す。そして、後述する検証結果改ざん検出手段１１４により検証結果データの改ざんの有無を確認し、検証結果データの改ざんが無い場合、簡易検証手段１１３は、検証結果データをそのまま検証結果として用いる。一方、検証結果データの改ざんが有る場合、簡易検証手段１１３は、図示しないシステム管理者やシステムログに警告を通知する。その後、簡易検証手段１１３は、検証手段１１２と同様に、署名対象の改ざんの有無を判定する。また、簡易検証手段１１３は、電子証明書の有効性を判定するために、記憶部１１の電子署名文書領域に記憶されている署名データに対応している検証情報からＣＲＬを取得し、署名データの電子証明書がＣＲＬに記載されているか否かを確認する。署名データの電子証明書がＣＲＬに記載されている場合、簡易検証手段１１３は、「有効性に問題有り」と判定し、そうでない場合、簡易検証手段１１３は、「有効性に問題無し」と判定する。そして、簡易検証手段１１３は、これらの検証の結果を検証結果データとして、電子署名文書コード及び署名世代と対応させて記憶部１１の検証結果領域に上書き記憶させ、検証結果データとして用いる。
【００３４】
検証結果改ざん検出手段１１４は、検証結果改ざん検知用データを用いて、記憶部１１の検証結果領域に記憶してある検証結果データの改ざんが有るか否かを検出する。具体的には、検証結果改ざん検出手段１１４は、検証結果データをハッシュ関数に通すことによって検証結果改ざん検知用データを生成し、このように生成された検証結果改ざん検知用データと、記憶部１１の検証結果領域に記憶されている検証結果データを読み出して生成するハッシュとを比較し、これらが一致しなければ検証結果データに改ざんがあることを検出する。
【００３５】
検証選択手段１１５は、電子署名文書の各署名データを検証するに当たり、各々の署名データについて、検証手段１１２と簡易検証手段１１３のいずれかで検証を行うかを選択する。具体的には、検証選択手段１１５は、検証対象の署名データが最新の署名データの場合には、検証手段による検証を選択する。また、検証選択手段１１５は、検証対象の署名データが未検証、すなわち、当該署名データに対する検証結果データが記憶部１１の検証結果領域に存在しない場合にも、検証手段１１２による検証を選択する。一方、検証対象の署名データに対する検証結果データが記憶部１１の検証結果領域に存在する場合には、簡易検証手段１１３による検証を選択する。
【００３６】
結果送信手段１１６は、後述するユーザ端末２からの署名要求に応じて行う電子署名サーバ１の処理により得られる署名結果の送信、後述するユーザ端末２からの検証要求に応じて行う電子署名サーバ１の処理により得られる検証結果の抽出及び送信等を通信Ｉ／Ｆ部１４を通じて行う。検証結果の抽出は、検証結果領域からの同一の電子署名文書コードの検証結果データを署名世代順に読み出して行う。
【００３７】
計時部１３は、署名が施された時刻である署名時刻、検証が行われた時刻である検証時刻等を取得するために、現在時刻を制御部１２に提供する。このために、計時部１３は、クロック等によって構成される。
【００３８】
通信Ｉ／Ｆ部１４は、所定の通信プロトコルで通信を行う通信インタフェース及びドライバから構成される。
【００３９】
ユーザ端末２は、記憶部１１に保管されている電子ファイルや電子署名文書に対し、閲覧、署名要求、検証要求、検証結果の表示等を行う。このために、ユーザ端末２は、例えば、パーソナルコンピュータ（ＰＣ）によって構成される。また、ユーザ端末２は、通信ネットワーク４を通じて電子署名サーバ１との通信を行う通信Ｉ／Ｆ部２１と、ユーザ端末２の各種制御を行う制御部２２と、ＰＩＮ(Personal Identification Number)のようなパスワード等を入力する入力部２３と、電子ファイルや電子署名文書の一覧等を表示する表示部２４と、制御部２２で使用する各種制御情報等を記憶する記憶部２５と、を有する。
【００４０】
通信Ｉ／Ｆ部２１は、所定の通信プロトコルで通信を行う通信インタフェース及びドライバから構成される。制御部２２は、ＣＰＵ，ＲＯＭ，ＲＡＭ等の少なくともいずれかから構成され、ユーザ端末２の制御全般についてプログラムに従って処理を行う。入力部２３は、マウス、キーボード等によって構成される。表示部２４は、ＬＣＤ等によって構成される。記憶部２５は、フラッシュメモリ、ＥＥＰＲＯＭ等の書換え自在の不揮発性メモリ、磁気ハードディスク、書換え自在の光ディスク及びそのドライブ等の少なくともいずれかによって構成される。
【００４１】
表示部２４に表示された電子ファイルや電子署名文書の一覧から検証対象が入力部２３によって指定されると、制御部２２は、電子署名文書コードを署名要求や検証要求とともに電子署名文書コードを電子署名サーバ１に送信する。なお、制御部２２は、署名要求時には、ユーザ端末２を使用しているユーザのユーザＩＤも電子署名サーバ１に送信し、電子署名手段１１１は、ユーザＩＤから特定される電子証明書を記憶部１１から読み出し、署名を行う。
【００４２】
認証局３は、電子署名サーバ１からの要求に基づいて、公開鍵及びユーザ情報を含む電子証明書、秘密鍵及びＰＩＮによって構成されたＰ１２（ＰＫＣＳ(Public Key Cryptography Standards) ＃１２）ファイルのようなパスワード付電子証明書を生成する。ここで、ＰＫＣＳとは、ＰＫＩ(Public Key Infrastructure：公開鍵基盤)で利用する電子証明書や秘密鍵などのフォーマットを定めた標準であり、ＰＫＣＳ＃１２とは１２番目にあたり、秘密鍵と電子証明書を交換するためのフォーマットが定義される。また、認証局３は、自局で発行した各証明書が有効期限内に失効させられたかの情報を管理する。この情報は定期的に更新され、リスト形式のデータとしてひとまとめにしたものをＣＲＬと呼び、認証局３は、このＣＲＬを外部へ供給する。このために、認証局３は、通信ネットワーク４を通じて電子署名サーバ１との通信を行う通信Ｉ／Ｆ部３１と、認証局３の各種制御を行う制御部３２と、ＣＲＬ及び認証局３の電子証明書の他に制御部３２で使用する各種制御情報等を記憶する記憶部３３と、を有する。
【００４３】
通信Ｉ／Ｆ部３１は、所定の通信プロトコルで通信を行う通信インタフェース及びドライバから構成される。制御部３２は、ＣＰＵ，ＲＯＭ，ＲＡＭ等から構成され、認証局３の制御全般についてプログラムに従って処理を行う。記憶部３３は、フラッシュメモリ、ＥＥＰＲＯＭ等の書換え自在の不揮発性メモリ、磁気ハードディスク、書換え自在の光ディスク及びそのドライブ等の少なくともいずれかによって構成される。
【００４４】
通信ネットワーク４は、電子署名サーバ１、ユーザ端末２及び認証局３に接続される。このために、通信ネットワーク４は、専用回線、インターネット、携帯電話回線、一般公衆回線等の遠隔地間又は屋内の離れた場所間でデータの送受信が可能となる通信回線によって構成される。
【００４５】
次に、図１の電子署名サーバの処理フローについて説明する。なお、以下に説明する処理フローは、制御部１２で実行されるプログラムによって制御される。
【００４６】
図５は、署名要求に応じて行う図１の電子署名サーバの処理のフローチャートである。図５に示す処理フローは、電子署名サーバ１が電子署名文書を指定した署名要求をユーザ端末２から受け取る度に実行される。先ず、電子署名手段１１１は、記憶部１１のユーザ情報領域に署名要求に含まれるユーザＩＤに対応する署名者の電子証明書が有るか否か判断する（ステップＳ１）。電子証明書が無い場合、結果送信手段１１６は、署名結果をユーザ端末２に送信し（ステップＳ２）、処理フローを終了する。
【００４７】
それに対し、電子証明書が有る場合、電子署名手段１１１は、記憶部１１の電子署名文書領域に過去に署名が有るか否か判断する（ステップＳ３）。過去に署名が無い場合、電子署名手段１１１は、当該署名者の電子証明書を用いて電子署名文書中の署名対象に対する署名データを生成して電子署名文書に追加し（ステップＳ４）、ステップＳ２に進む。
【００４８】
それに対し、過去に署名が有る場合、検証選択手段１１５は、電子署名文書の全署名データを抽出し（ステップＳ５）、全署名データの中からこれから検証を行う署名データを設定する（ステップＳ６）。次に、検証選択手段１１５は、記憶部１１の電子署名文書領域に検証情報が有るか否か判断する（ステップＳ７）。検証情報が無い場合、検証選択手段１１５は、検証手段１１２による検証を選択し、検証手段１１２は、署名データに含まれる電子証明書の有効性及び電子署名文書の改ざんの有無を検証して検証結果データを生成する（ステップＳ８）。次に、検証手段１１２は、検証結果データを記憶部１１の検証結果領域に記憶させ（ステップＳ９）、検証情報を記憶部１１の電子署名文書領域に記憶させる（ステップＳ１０）。次に、検証選択手段１１５は、電子署名文書の全署名データの検証が終了したか否か判断する（ステップＳ１１）。電子署名文書の全署名データの検証が終了した場合、ステップＳ４に進み、そうでない場合、ステップＳ６に戻る。
【００４９】
それに対し、検証情報が有る場合、検証選択手段１１５は、簡易検証手段１１３による検証を選択し、検証結果改ざん検出部１１４は、検証結果データの改ざん検出処理を行い（ステップＳ１２）、検証結果データに改ざんが有るか否か判断する（ステップＳ１３）。改ざんが無い場合、ステップＳ１１に進む。
【００５０】
それに対し、改ざんが有る場合、簡易検証手段１１３は、図示しないシステム管理者やシステムログに警告を通知し（ステップＳ１４）、記憶部１１の電子署名文書領域から検証情報を取得する（ステップＳ１５）。次に、簡易検証手段１１３は、署名データに含まれる電子証明書の有効性及び電子署名文書の改ざんの有無を検証して検証結果データを生成し（ステップＳ１６）。記憶部１１の検証結果領域に記憶されている検証結果データを更新し（ステップＳ１７）、ステップＳ１１に進む。
【００５１】
図５に示す処理フローによれば、電子署名手段１１１は、ステップＳ３において電子署名文書に署名データがないと判断すれば、ステップＳ２において当該署名者の電子証明書を用いて前記電子ファイルに対する署名データを生成して当該電子署名文書に追加する。また、電子署名手段１１１は、ステップＳ３において電子署名文書に既に署名データがあると判断し、かつ、ステップＳ７において検証選択手段１１５が署名データに対応する検証情報がないと判断した場合、検証手段１１２にて検証して検証結果データを記憶部１１の検証結果領域に記憶し、電子署名文書に検証情報を追加した後に、署名者の電子証明書を用いて署名対象に対する署名データを生成して当該電子署名文書に追加する。さらに、電子署名手段１１１は、ステップＳ３において電子署名文書に既に署名データがあると判断し、かつ、ステップＳ７において検証選択手段１１５が署名データに対応する検証情報があると判断した場合、簡易検証手段１１３にて検証して検証結果データを再利用する。このように簡易検証手段１１３による簡易検証を選択可能にすることによって、電子署名検証を更に高速で行うことができる。また、署名の際に予め検証結果データを生成することで簡易検証手段１１３による簡易検証を選択可能にする署名データの数すなわち署名世代数を多くすることができる。
【００５２】
図６は、検証要求に応じて行う図１の電子署名サーバの処理のフローチャートである。図６に示す処理フローは、電子署名サーバ１が電子署名文書を指定した検証要求をユーザ端末２から受け取る度に実行される。先ず、検証選択手段１１５は、ユーザ端末２によって指定された電子署名文書を読み込む（ステップＳ２１）。次に、検証選択手段１１５は、ユーザ端末２によって指定された電子署名文書が記憶部１１の電子署名文書領域に記憶されているか否か判断する（ステップＳ２２）。指定された電子署名文書が無い場合、結果送信手段１１６は、検証結果をユーザ端末２に送信し（ステップＳ２３）、処理フローを終了する。
【００５３】
それに対し、指定された電子署名文書が有る場合、検証選択手段１１５は、ステップＳ５及びＳ６の処理を行う。ステップＳ６において署名データが設定された後、検証選択手段１１５は、検証対象の署名データが同一の電子署名文書において最新のものであり又は対応する検証情報すなわち検証結果データが無いか否か判断する（ステップＳ２４）。検証対象の署名データが同一の電子署名文書において最新のものであり又は対応する検証情報が無い場合、検証選択手段１１５は、検証手段１１２による検証を行うことを選択し、ステップＳ８，Ｓ９及びＳ１１の処理を行う。そうでない場合、検証選択手段１１５は、簡易検証手段１１３による検証を行うことを選択し、ステップＳ１２〜Ｓ１７及びステップＳ１１の処理を行う。なお、ステップＳ１１において電子署名文書の全署名データの検証が終了したと判断された場合、結果送信手段１１６は、検証結果を抽出し（ステップＳ２５）、ステップＳ２３に進む。
【００５４】
図６に示す処理フローによれば、検証選択手段１１５は、ステップＳ２４において検証対象の署名データが同一の電子署名文書において最新のものであり又は対応する検証情報が存在しないものであると判断した場合、検証手段１１２による検証を選択し、その他の署名データは簡易検証手段１１３による検証を選択可能にしている。したがって、最新の署名は必ず検証され、他の署名も少なくとも１度検証され、電子署名の検証の信頼性が確保されている場合には、検証結果データをそのまま検証結果として抽出することによって、電子署名検証を高速で行うことができる。また、簡易検証手段１１３は、ステップＳ１３において過去の検証結果データに改ざんがあると判断した場合、検証情報を用いて、対応する署名データに含まれる電子証明書の有効性及び電子署名文書の改ざんの有無を検証して検証結果データを再度生成し、更新する。
【００５５】
したがって、電子署名の検証の信頼性が確保されている場合には、検証結果データをそのまま検証結果として抽出することによって、電子署名検証を高速で行うことができる。また、電子署名の検証の信頼性を確保する必要がある場合には、検証結果データを更新することによって、電子署名検証を高い信頼性で行うことができる。
【００５６】
本発明は、上記実施の形態に限定されるものではなく、幾多の変更及び変形が可能である。例えば、本発明による電子署名検証装置を有する電子署名システムを社内システムに適用する場合について説明したが、社内システム以外のシステムに対しても、本発明による電子署名検証装置を有する電子署名システムを適用することができる。
【００５７】
電子署名サーバ１が保管対象として電子ファイルを外部から受信し、電子ファイルを最初に記憶するときに電子署名文書コードを付与する場合について説明したが、電子署名サーバ１が保管対象として電子ファイルだけでなく電子署名文書も外部から受信し、これらを最初に記憶するときに電子署名文書コードを付すこともできる。
【００５８】
検証結果改ざん検出手段１１４により検証結果データの改ざんを検出する場合について説明したが、検証結果データの改ざんのおそれがないことを他の方法によって保証することができる場合には、検証結果改ざん検出手段１１４による検証結果データの改ざんの検出を省略することができる。
【００５９】
検証対象の署名データに対する検証結果データが存在する場合には簡易検証手段１１３による検証を選択する場合について説明したが、検証対象の署名データに対する検証結果データが存在する場合でも、署名の重要度、署名世代等に基づいて、信頼性のレベル及び処理時間に応じて簡易検証手段１１３の代わりに検証手段１１２による検証を選択することもできる。例えば、検証要求時に指定された特定の署名者（例えば、権限のある者）又は特定の署名世代（例えば、第１世代）のデータであるか否かを、検証選択手段１１５が署名データ中の署名者名、検証結果データの署名世代等を参照して判断し、簡易検証手段１１３の代わりに検証手段１１２による検証を選択する。また、信頼性を高くする必要がある場合は、検証手段１１２による検証を選択し、処理時間を短縮する必要がある場合は、簡易検証手段１１３による検証を選択することもできる。
【００６０】
失効情報としてＣＲＬを用いた場合について説明したが、失効情報として、認証局３にある証明書が失効させられているか否かを問い合わせる方式ＯＣＳＰ(Online Certificate Status Protocol)を用いて得られた結果を、ＣＲＬの代わりに又はＣＲＬと組み合わせて用いることもできる。
【００６１】
図５及び６の処理フローチャートにおいて、検証手段１１２又は簡易検証手段１１３による検証結果データの内容が「改ざん有り」又は「有効性に問題有り」にてＮＧであるか否かに関係なく全ての署名データについて検証を行う場合について説明したが、検証結果データの内容がＮＧである場合には処理を中止するようにすることもできる。
【００６２】
図５のフローチャートにおいて、検証手段１１２による検証結果データの内容がＮＧであるか否かに関係なく署名を施す場合について説明したが、検証結果データの内容がＮＧである場合には処理を中止するようにすることもできる。
【００６３】
電子署名文書領域、検証結果領域及びユーザ情報領域を記憶部１１に保存する場合について説明したが、電子署名文書を保存するファイル保存装置と、検証結果データを保存する検証結果保存装置と、ユーザ情報を保存するユーザ情報管理データベースとを、電子署名サーバ１とは別に設けることもできる。この場合、電子署名サーバ１は、ファイル保存装置に保存された電子署名文書と、検証結果保存装置に保存された検証結果データと、ユーザ情報管理データベースに保存されたユーザ情報とを、通信ネットワーク４を介して読み取ることができるようにする。
【００６４】
署名時に証明書のＣＲＬとともに電子署名文書に署名を施す方法について説明したが、電子署名文書に署名のみを施すことを繰り返しても良い。この場合、対応する検証情報がない署名データが複数ある電子署名文書が生成されるため、あるタイミングで一括して検証情報を記憶して署名を施すこともできる。
【００６５】
電子署名文書に電子署名のみを施す場合について説明したが、電子署名文書に電子署名を施すとともに、又は、電子署名文書に電子署名を施す代わりに、通信ネットワーク４に接続されたタイムスタンプ局（図示せず）によって電子署名文書にタイムスタンプを施すこともできる。
【００６６】
検証結果データをハッシュ関数に通すことによって検証結果改ざん検知用データを生成する場合について説明したが、検証結果データをハッシュ関数以外の関数に通すことによって検証結果改ざん検知用データを生成することもできる。
【００６７】
署名対象の選択方法は、第１世代が電子ファイルであり、第２世代が第１世代の署名データ及び対応する検証情報であり、第３世代が第２世代の署名データ及び対応する検証情報であり、第４世代が第３世代の署名データ及び対応する検証情報である等々とするなど、種々の選択方法を適用してもよい。
【符号の説明】
【００６８】
１    電子署名サーバ
２    ユーザ端末
３    認証局
４    通信ネットワーク
１１，２５，３３    記憶部
１２，２２，３２    制御部
１３    計時部
１４，２１，３１    通信Ｉ／Ｆ部
２３    入力部
２４    表示部
１１１    電子署名手段
１１２    検証手段
１１３    簡易検証手段
１１４    検証結果改ざん検出手段
１１５    検証選択手段
１１６    結果送信手段
【図１】
0005473518.tif 000002
【図２】
0005473518.tif 000003
【図３】
0005473518.tif 000004
【図４】
0005473518.tif 000005
【図５】
0005473518.tif 000006
【図６】
0005473518.tif 000007