(57)【特許請求の範囲】
【請求項１】
署名対象データ、前記署名対象データを検証する検証情報、及び、前記署名対象データと前記検証情報を所定期間検証する長期検証情報、を用いて構成され、原本データの正当性を検証するための長期署名データを検証者端末から受信する長期署名データ受信手段と、
前記長期署名データに含まれる所定の情報を抽出して長期検証情報作成用情報を作成し、当該作成した長期検証情報作成用情報を前記検証者端末に送信する長期検証情報作成用情報送信手段と、
前記検証者端末から、前記送信した長期検証情報作成用情報に前記原本データを加えて所定の関数で計算した長期検証情報作成用関数値を受信する長期検証情報作成用関数値受信手段と、
前記受信した長期検証情報作成用関数値を用いて前記長期検証情報を検証する長期検証情報検証手段と、を具備したことを特徴とする長期署名検証用サーバ。
【請求項２】
前記検証情報を用いて前記署名対象データを検証する署名対象データ検証手段を具備し、
前記長期検証情報検証手段は、前記署名対象データ検証手段が検証した後に前記長期検証情報を検証することを特徴とする請求項１に記載の長期署名検証用サーバ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、長期署名検証用サーバに関し、例えば、長期署名の検証を行うものに関する。
【背景技術】
【０００２】
電子データの真正を証明するために、電子データを秘密鍵で暗号化することにより電子署名を行い、当該秘密鍵に対応する公開鍵で電子データを復号化することにより検証する電子署名が広く利用されている。
電子データを公開鍵で復号化することにより、当該電子データは当該公開鍵に対応する秘密鍵で暗号化されたことを確認できるが、当該秘密鍵を有しているのは署名者であるので、当該電子データが当該署名者によるものであると認定することができる。例えるなら、秘密鍵は印鑑として機能し、公開鍵は印鑑証明書として機能している。
公開鍵は、認証局が発行する公開鍵証明書により配布され、配布を受けたものは当該証明書により公開鍵の真正を確認できるようになっている。
【０００３】
ところで、電子署名は、署名などに用いた暗号アルゴリズムの危殆化などに対処するため有効期限が設定されている。
また、有効期限前であっても、署名者の都合で失効したり、秘密鍵の遺漏などによりルート証明書以下の全ての証明書が失効する場合もある。
そこで、この問題に対処するため、特許文献１に示されているように、電子署名の有効性を永続させるための電子署名フォーマット（以下、長期署名フォーマット）が規定されている。
この規定は、海外においては、ＲＦＣ５１２６やＥＴＳＩ  ＴＳ  １０１  ７３３で定義され、日本では、ＪＩＳ規格（ＪＩＳ  Ｘ  ５０９２／５０９３）で定義されている。
【０００４】
長期署名フォーマットは、図１に示したように、ＥＳ、ＳＴＳ、ＥＳ−Ｔ、検証情報、ＥＳ−ＸＬ、ＡＴＳ（１ｓｔ、２ｎｄ、・・・）から構成されている。これらの内容については、後ほど実施の形態で説明する。
図１１は、従来の長期署名システム１００の構成例を説明するための図である。
長期署名システム１００は、クライアント側に設置された長期署名サーバ１０１と、外部ネットワーク１０２に存在するＣＡリポジトリ１０３、ＴＳＡ１０４などから構成されている。
【０００５】
まず、長期署名サーバ１０１は、署名対象となる電子データ（原本データのハッシュ値）を受け付け（ステップ５）、秘密鍵で電子署名してＥＳを生成し（ステップ１０）、これをＴＳＡ１０４に送信して署名タイムスタンプを付与してもらって（ステップ１５）、ＥＳ−Ｔを出力する（ステップ２０）。
次いで、長期署名サーバ１０１は、出力したＥＳ−Ｔを受け付けて（ステップ２５）、ＣＡリポジトリ１０３から失効情報を取得し（ステップ３０）、当該失効情報が一定時間経過後に発行されたものか判断する（ステップ３５）。これは、最新の失効情報を得るためである。
【０００６】
次に、長期署名サーバ１０１は、証明書の認証パスを取得して（ステップ４０）、失効情報と認証パスによる検証情報を付与する（ステップ４５）。
そして、長期署名サーバ１０１は、ＡＴＳの元となる情報を生成して、これを電子署名すると共にＴＳＡ１０４でタイムスタンプを付与してＡＴＳを生成し（ステップ５０）、ＥＳ−Ａを出力する（ステップ５５）。
【０００７】
以上のようにして長期署名データを取得することができるが、この場合、ユーザ側に長期署名サーバ１０１を設置し、ユーザ側で運用管理を行わなくてはならないという問題があった。
また、長期署名データの利用率の見積が容易でないことや即時的な効果がユーザにとって実感しづらいため、初期導入コストがユーザの想定コストと合わず、長期署名システムを導入しづらいという問題があった。
【０００８】
この問題に関しては、例えば、図１２のように、第三者が長期署名サーバ１０１を運営し、ユーザはクライアント端末１０６から長期署名サーバ１０１にアクセスして長期署名データを作成してもらうという方法で対処することができる。
【０００９】
しかし、この場合、ユーザは、電子署名に用いる秘密鍵を長期署名サーバ１０１に預ける他、長期署名データの署名対象となっている原本データ（社内文書データなど）を長期署名サーバ１０１に送信する必要があり、機密情報（秘密鍵、原本データ）を外部に出さなくてはならないという問題があった。
また、長期署名データの検証する場合も同様に検証用のサーバに機密情報を提供するか、又は、検証用のサーバを自社で備えるかする必要があった。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特表２００３−５３３９４０号公報
【発明の概要】
【発明が解決しようとする課題】
【００１１】
本発明は、秘密鍵や原本データをサーバ側に渡さずに、サーバ側で長期署名の検証をすることを目的とする。
【課題を解決するための手段】
【００１２】
（１）請求項１に記載の発明では、
署名対象データ、前記署名対象データを検証する検証情報、及び、前記署名対象データと前記検証情報を所定期間検証する長期検証情報、を用いて構成され、原本データの正当性を検証するための長期署名データを検証者端末から受信する長期署名データ受信手段と、前記長期署名データに含まれる所定の情報を抽出して長期検証情報作成用情報を作成し、当該作成した長期検証情報作成用情報を前記検証者端末に送信する長期検証情報作成用情報送信手段と、前記検証者端末から、前記送信した長期検証情報作成用情報に前記原本データを加えて所定の関数で計算した長期検証情報作成用関数値を受信する長期検証情報作成用関数値受信手段と、前記受信した長期検証情報作成用関数値を用いて前記長期検証情報を検証する長期検証情報検証手段と、を具備したことを特徴とする長期署名検証用サーバを提供する。
（２）請求項２に記載の発明では、前記検証情報を用いて前記署名対象データを検証する署名対象データ検証手段を具備し、前記長期検証情報検証手段は、前記署名対象データ検証手段が検証した後に前記長期検証情報を検証することを特徴とする請求項１に記載の長期署名検証用サーバを提供する。
【発明の効果】
【００１３】
本発明によれば、秘密鍵などを用いる処理をクライアント端末に分担させることにより、社外に持ち出すことが困難な秘密鍵や原本データをサーバ側に渡さずに、サーバ側で長期署名を検証できる。
【図面の簡単な説明】
【００１４】
【図１】本実施の形態の概要を説明するための図である。
【図２】長期署名システムの構成を説明するための図である。
【図３】長期署名フォーマットを説明するための図である。
【図４】クライアント端末と長期署名サーバが長期署名データを作成する手順を説明するためのフローチャートである。
【図５】ＥＳ作成処理を説明するためのフローチャートである。
【図６】ＥＳ−Ｔ作成処理を説明するためのフローチャートである。
【図７】ＥＳ−ＸＬ作成処理を説明するためのフローチャートである。
【図８】ＥＳ−Ａ（１ｓｔ）作成処理を説明するためのフローチャートである。
【図９】ＥＳ−Ａ（２ｎｄ）を作成する手順を説明するためのフローチャートである。
【図１０】長期署名データの検証処理を説明するためのフローチャートである。
【図１１】従来の長期署名システムの構成例を説明するための図である。
【図１２】従来例で、第三者が長期署名サーバを運営する場合を説明するための図である。
【発明を実施するための形態】
【００１５】
（１）実施形態の概要
図１は、本実施の形態の概要を説明するための図である。
長期署名データは、ＥＳ、ＳＴＳ、検証情報、ＡＴＳ（１ｓｔ）、ＡＴＳ（２ｎｄ）、・・・を所定の長期署名フォーマットに配置することにより構成されている。
これら長期署名データの要素のうち、秘密鍵と原本データを用いた処理が必要なのは、ＥＳとＡＴＳである。
【００１６】
長期署名システム１は、これら原本データと秘密鍵を必要とする処理は、クライアント端末３で行い、長期署名データを解析・生成する処理は、長期署名サーバ２で行うことにより、原本データと秘密鍵がクライアント端末３の内部に保持したまま長期署名データを長期署名サーバ２で生成することができる。
【００１７】
より詳細には、クライアント端末３は、原本データに関してはハッシュ値を計算して長期署名サーバ２に送信することにより原本データをクライアント端末３に保持し、秘密鍵に関しては、長期署名サーバ２からＥＳを作成するためのデータを送信してもらってこれに秘密鍵で電子署名することにより秘密鍵をクライアント端末３に保持する。
一方、長期署名サーバ２は、長期フォーマットの記述形式であるＸＭＬの解析と生成を行う。
【００１８】
このように、長期署名システム１では、長期署名データを作成する処理を、秘密鍵と原本データを用いる処理と、ＸＭＬの解析・生成を行う処理に分離し、前者をクライアント端末３に分担させ、後者を長期署名サーバ２に分担させることにより、秘密鍵と原本データをクライアント端末３に保持したまま、長期署名データの生成を長期署名サーバ２にアウトソースすることができる。
【００１９】
（２）実施の形態の詳細
図２は、長期署名システム１の構成を説明するための図である。
長期署名システム１は、長期署名サーバ２、クライアント端末３、タイムスタンプサーバ５、リポジトリサーバ６、７などがインターネット４で通信可能に接続されて構成されている。
【００２０】
長期署名サーバ２は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２１、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）２２、記憶部２３、入出力Ｉ／Ｆ２４、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）２５、表示部２６、通信制御部２７などから構成されている。
【００２１】
ＣＰＵ２１は、記憶部２３などに記憶されたプログラムに従って情報処理や長期署名サーバ２の各部の制御を行う中央処理装置である。
本実施の形態では、クライアント端末３やタイムスタンプサーバ５、リポジトリサーバ６、７と通信しながら長期署名データを作成する。
【００２２】
ＲＯＭ２２は、リードオンリメモリであって、長期署名サーバ２が動作するための基本的なプログラムやパラメータなどが記憶されている。
ＲＡＭ２５は、ランダムアクセスメモリであって、長期署名サーバ２がクライアント端末３などと通信して長期署名データを作成するためのワーキングメモリなどを提供する。
【００２３】
記憶部２３は、例えば、ハードディスクなどの大容量の記憶装置を用いて構成されており、長期署名サーバ２を動作させるためのＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）や長期署名データを生成するためのプログラムなどが記憶されている。
表示部２６は、例えば、液晶やＣＲＴ（Ｃａｔｈｏｄｅ  Ｒａｙ  Ｔｕｂｅ）などを用いた表示装置を備えており、長期署名サーバ２の運用担当者などが長期署名サーバ２を操作するための各種画面を表示する。
【００２４】
入出力Ｉ／Ｆ２４は、例えば、各種操作スイッチ、キーボード、マウスなどの入出力装置を備えており、運用担当者などは入出力Ｉ／Ｆ２４から長期署名サーバ２を操作することができる。
通信制御部２７は、インターネット４を介してクライアント端末３、タイムスタンプサーバ５、リポジトリサーバ６、７などと通信する。なお、インターネット４は、他の形態の通信網であってもよい。
長期署名サーバ２は、通信制御部２７により、クライアント端末３から電子署名値や原本データのハッシュ値（以下、原本ハッシュ値）や公開鍵証明書などを受信することができる。
【００２５】
クライアント端末３は、ＣＰＵ３１、ＲＯＭ３２、記憶部３３、通信制御部３４、ＲＡＭ３５、表示部３６、入出力Ｉ／Ｆ３７などから構成されている。
【００２６】
ＣＰＵ３１は、記憶部３３などに記憶されたプログラムに従って情報処理やクライアント端末３の各部の制御を行う中央処理装置である。
本実施の形態では、長期署名サーバ２との各種情報の送受信、秘密鍵による電子署名などを行う。
【００２７】
ＲＯＭ３２は、リードオンリメモリであって、クライアント端末３が動作するための基本的なプログラムやパラメータなどが記憶されている。
ＲＡＭ３５は、ランダムアクセスメモリであって、例えば、クライアント端末３が長期署名サーバ２と通信しながら電子署名や原本ハッシュ値の作成を行う際にワーキングメモリを提供する。
【００２８】
記憶部３３は、例えば、ハードディスクなどの大容量の記憶装置を用いて構成されており、クライアント端末３を動作させるためのＯＳや電子署名を行うための秘密鍵、当該秘密鍵に対応する公開鍵の公開鍵証明書、長期署名対象となっている原本データなどが記憶されている。
原本データとしては、例えば、ワープロやテキストエディタなどで作成された電子文書のほか、画像データ、音声データなどの各種のデータファイルが可能である。
【００２９】
また、クライアント端末３が長期署名データを作成するためのプログラム（ＪＡＶＡ（登録商標）などで作成されている）は、作成の度に長期署名サーバ２からダウンロードするように構成してもよいし、あるいは、予め記憶部３３に記憶しておき、これを使用するように構成することもできる。
【００３０】
表示部３６は、例えば、液晶やＣＲＴなどを用いた表示装置を備えており、クライアント端末３のユーザがクライアント端末３を操作するための各種画面を表示する。
【００３１】
入出力Ｉ／Ｆ３７は、例えば、キーボード、マウス、ＩＣカードリーダライタなどの入出力装置を備えている。
ＩＣカードリーダライタは、ＩＣカードを接続してクライアント端末３とＩＣカードの通信を仲介する。
ＩＣカードは、ＣＰＵ、ＲＯＭ、ＲＡＭ、ＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  ａｎｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ）などを備えた情報処理装置であり、例えば、クライアント端末３を使用するユーザを認証するためのユーザ認証情報などが記憶されている。
また、秘密鍵や公開鍵証明書などをＩＣカードに記憶させ、ＩＣカードの秘密鍵を使って電子署名するようにクライアント端末３を構成することもできる。
【００３２】
通信制御部３４は、インターネット４を介して長期署名サーバ２との通信を行う。長期署名サーバ２へのハッシュ値の送信、電子署名値の送信などは、通信制御部３４を用いて行われる。
【００３３】
タイムスタンプサーバ５は、タイムスタンプを発行するサーバであり、ＴＳＡ（Ｔｉｍｅ  Ｓｔａｍｐ  Ａｕｔｈｏｒｉｔｙ：タイムスタンプ局）に設置されている。
タイムスタンプサーバ５は、時刻配信局の配信する時刻によって補正される正確な時計を有しており、タイムスタンプ発行対象となる電子データを受信すると、これに当該時計による現在日時刻を付してタイムスタンプ用の秘密鍵で電子署名（暗号化）することによりタイムスタンプを発行する。
【００３４】
リポジトリサーバ６は、ＴＳＡ−ＣＡ（Ｔｉｍｅ  Ｓｔａｍｐ  Ａｕｔｈｏｒｉｔｙ  Ｃｅｒｔｉｆｉｃａｔｅ  Ａｕｔｈｏｒｉｔｙ：タイムスタンプ認証局）に設置されたサーバであって、タイムスタンプの検証に用いる公開鍵証明書（タイムスタンプに用いた秘密鍵に対応する公開鍵の公開鍵証明書）の失効情報を提供する。
失効情報にリストアップされていない公開鍵証明書は失効していないため、これによって公開鍵証明書の有効性を確認し、当該有効な公開鍵証明書によってタイムスタンプの有効性を確認することができる。
【００３５】
リポジトリサーバ７は、ＣＡ（Ｃｅｒｔｉｆｉｃａｔｅ  Ａｕｔｈｏｒｉｔｙ）に設置されたサーバであって、クライアント端末３の行った電子署名の検証に用いる公開鍵証明書（クライアント端末３の秘密鍵に対応する公開鍵の公開鍵証明書）の失効情報を提供する。
失効情報にリストアップされていない公開鍵証明書は失効していないため、これによって公開鍵証明書の有効性を確認し、当該有効な公開鍵証明書によってクライアント端末３の行った電子署名の有効性を確認することができる。
リポジトリサーバ６とリポジトリサーバ７が提供する失効情報は、定期・不定期（例えば、２４時間ごと）に更新される。
【００３６】
図３は、本実施の形態で使用する長期署名データのフォーマット（長期署名フォーマット）を説明するための図である。
本実施の形態の長期署名データは、ＸＡｄＥＳ（ＸＭＬ  Ａｄｖａｎｃｅｄ  Ｅｌｅｃｔｒｏｎｉｃ  Ｓｉｇｎａｔｕｒｅｓ）の規定に従い、ＸＭＬ（Ｅｘｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）言語を用いて記述されている。
【００３７】
署名前ＸＡｄＥＳデータは、クライアント端末３が電子署名を行う対象となる署名対象データを格納したＸＭＬ要素であって、ＫｅｙＩｎｆｏ、署名対象プロパティ、ＳｉｇｎｅｄＩｎｆｏの各要素から構成されている。署名前ＸＡｄＥＳデータをクライアント端末３が電子署名することによりＥＳが生成される。
【００３８】
ＫｅｙＩｎｆｏには、クライアント端末３が電子署名に用いた秘密鍵に対応する公開鍵の公開鍵証明書が設定されている。公開鍵証明書には、例えば、公開鍵、公開鍵の所有者、認証局、認証局の署名などが含まれている。
署名対象プロパティには、公開鍵証明書のハッシュ値が設定されている。
ＳｉｇｎｅｄＩｎｆｏには、原本ハッシュ値、及び署名対象プロパティのハッシュ値（以下、署名対象プロパティハッシュ値）が設定されている。
【００３９】
ＥＳは、上記の署名前ＸＡｄＥＳデータとＳｉｇｎａｔｕｒｅＶａｌｕｅを要素として構成されている。
ＳｉｇｎａｔｕｒｅＶａｌｕｅには、ＳｉｇｎｅｄＩｎｆｏをクライアント端末３が秘密鍵で署名した署名値が設定されている。
このように、クライアント端末３がＳｉｇｎｅｄＩｎｆｏに対して電子署名することにより、署名前ＸＡｄＥＳデータに対する署名が行われる。
【００４０】
ＥＳ−Ｔは、上記のＥＳと署名タイムスタンプを要素として構成されている。
署名タイムスタンプには、ＥＳに対して発行されたＳＴＳ（署名タイムスタンプ）が設定されている。ＳＴＳは、タイムスタンプサーバ５において、ＳｉｇｎａｔｕｒｅＶａｌｕｅのハッシュ値に現在日時刻を付与して、これをタイムスタンプサーバ５の秘密鍵で電子署名したものである。
【００４１】
ＥＳ−ＸＬ（ＥＳ−ＸＬｏｎｇ）は、上記のＥＳ−Ｔと検証情報を要素として構成されている。
検証情報は、証明書群と失効情報群を用いて構成されている。
証明書群は、クライアント端末３が署名に用いた秘密鍵の公開鍵証明書と、タイムスタンプサーバ５がタイムスタンプに用いた秘密鍵の公開鍵証明書の認証パス上の公開鍵証明書で構成されている。
この認証パスは、ルート認証局は自己署名証明書を発行し、そのルート認証局は子認証局に証明書を発行し、その子認証局は孫認証局に証明書を発行し、・・・、末端の認証局は、個人、証明書所有者に証明書を発行するという証明書信頼チェーンにおいて、公開鍵証明書の検証をルート認証局まで遡って確認するものである。
失効情報群は、公開鍵証明書の失効情報で構成されている。
【００４２】
ＥＳ−Ａ（１ｓｔ）は、上記のＥＳ−ＸＬとＡＴＳ（１ｓｔ）を要素として構成されている。
ＡＴＳ（１ｓｔ）（Ａｒｃｈｉｖｅ  Ｔｉｍｅ  Ｓｔａｍｐ：アーカイブタイムスタンプ）、第１世代のＡＴＳであって、ＥＳ−Ｔを検証する情報、原本ハッシュ値、クライアント端末３による電子署名、タイムスタンプサーバ５によるタイムスタンプ（ＳＴＳ）などから所定の方法で作成されたハッシュ値が含まれており、ＡＴＳ（１ｓｔ）によってＥＳ−ＸＬの正当性を検証することができる。
【００４３】
ＥＳ−Ａ（２ｎｄ）は、ＥＳ−Ａ（１ｓｔ）とＡＴＳ（２ｎｄ）を要素として構成されている。
ＡＴＳ（２ｎｄ）は、第２世代のＡＴＳであって、ＥＳ−Ａ（１ｓｔ）を検証する情報、原本ハッシュ値、クライアント端末３による電子署名、タイムスタンプサーバ５によるタイムスタンプ（ＳＴＳ、ＡＴＳ（１ｓｔ））などから所定の方法で生成されたハッシュ値が含まれており、ＡＴＳ（２ｎｄ）によってＡＴＳ（１ｓｔ）の正当性を検証することができる。
図示しないが、更に、ＥＳ−Ａ（２ｎｄ）とＡＴＳ（３ｒｄ）を要素とするＥＳ−Ａ（３ｒｄ）、ＥＳ−Ａ（３ｒｄ）とＡＴＳ（４ｔｈ）を要素とするＥＳ−Ａ（４ｔｈ）、・・・と更に世代を続けることができる。
【００４４】
以上のように構成された長期署名データは、次のようにして作成される。
まず、ＥＳ−ＸＬまで作成し、署名タイムスタンプと検証情報が有効なうちにＡＴＳ（１ｓｔ）を取得し、ＥＳ−Ａ（１ｓｔ）を構築する。
そして、ＡＴＳ（１ｓｔ）が有効性を失う前（タイムスタンプトークンの公開鍵証明書の有効期限切れや失効前、あるいは、関連する暗号アルゴリズムの危殆化前）に、ＡＴＳ（２ｎｄ）を取得する。
以下、同様にして現在のＡＴＳが有効性を失う前に次世代のＡＴＳを取得していくことを繰り返す。
このようにして、ＥＳ−ＸＬに対してＡＴＳが時系列的に付与され、最新の世代のＡＴＳが有効期限内である長期署名データが得られる。
このようにして作成された長期署名データの検証については、後ほど詳細に説明する。
【００４５】
図４は、クライアント端末３と長期署名サーバ２が長期署名データを作成する手順を説明するためのフローチャートである。
なお、以下の処理は、ＣＰＵ２１とＣＰＵ３１が所定のプログラムに従って行うものである。
まず、クライアント端末３と長期署名サーバ２は、協働してＥＳ作成処理を行う（ステップ１００）。
【００４６】
次に、長期署名サーバ２が、ＥＳ−Ｔ作成処理と（ステップ２００）、ＥＳ−ＸＬ作成処理を行う（ステップ３００）。
そして、クライアント端末３と長期署名サーバ２が協働してＥＳ−Ａ（１ｓｔ）作成処理を行う（ステップ４００）。
このようにして長期署名データ（ＥＳ−Ａ）が作成される。
そして、図示しないが、作成されたＥＳ−Ａ（１ｓｔ）は、有効なうちに、ＡＴＳ（２ｎｄ）を付与してＥＳ−Ａ（２ｎｄ）に更新され、以下、長期署名データの有効性が失われないように世代を重ねていく。
【００４７】
長期署名データの作成手順は、大きく分けて、以上のようなフェーズから構成されているが、以下に、これら各フェーズの詳細な手順を説明する。
図５は、ステップ１００のＥＳ作成処理を説明するためのフローチャートである。
まず、クライアント端末３が長期署名データを作成する度に必要なプログラム（以下の処理を行うツール）をダウンロードする場合は、処理に先立って長期署名サーバ２からプログラムをダウンロードして実行する。
クライアント端末３が、既に必要なプログラムを記憶している場合には、これを実行する。
【００４８】
次に、クライアント端末３は、長期署名対象となる原本データの入力を受け付ける（ステップ１０５）。
これは、ユーザがクライアント端末３において、対象となる原本データのファイルを指定するなどして行われる。
次に、クライアント端末３は、署名に使用する秘密鍵に対応する公開鍵の公開鍵証明書の入力を受け付け、長期署名サーバ２に送信する（ステップ１１０）。
公開鍵証明書の入力は、ユーザがクライアント端末３において、使用する公開鍵証明書を指定するなどして行われる。
【００４９】
長期署名サーバ２は、クライアント端末３から公開鍵証明書を受信すると（ステップ１１５）、署名前ＸＡｄＥＳデータをＸＭＬによって作成する（ステップ１２０）。
このようにして、長期署名サーバ２は、クライアント端末３から長期署名データの作成要求を受けると、ＸＭＬによる長期署名フォーマットをＲＡＭ２５に作成し、以下、このフォーマットに必要なデータを設定していって長期署名データを完成させる。
【００５０】
次に、クライアント端末３は、原本ハッシュ値を計算し、長期署名サーバ２に送信する（ステップ１２５）。
このように、クライアント端末３は、長期署名サーバ２に原本ハッシュ値を送信するため、原本データをクライアント端末３から外部に出す必要がない。
そして、長期署名サーバ２は、クライアント端末３から原本ハッシュ値を受信する（ステップ１３０）。
【００５１】
長期署名サーバ２は、以上のようにして、クライアント端末３から、公開鍵証明書と原本ハッシュ値を受信すると、まず、署名前ＸＡｄＥＳデータにＫｅｙＩｎｆｏのエリアを作成し、これにクライアント端末３から受信した公開鍵証明書を設定する（ステップ１３５）。
次に、長期署名サーバ２は、公開鍵証明書のハッシュ値を計算すると共に（以下、公開鍵証明書ハッシュ値）、署名前ＸＡｄＥＳデータに署名対象プロパティのエリアを作成し、ここに公開鍵証明書ハッシュ値を設定する（ステップ１４０）。
【００５２】
次に、長期署名サーバ２は、署名対象プロパティハッシュ値を計算し（ステップ１４５）、署名前ＸＡｄＥＳデータにＳｉｇｎｅｄＩｎｆｏのエリアを作成して、ここに原本ハッシュ値と署名対象プロパティハッシュ値を設定する。
長期署名サーバ２は、このようにしてＳｉｇｎｅｄＩｎｆｏを作成すると、署名前ＸＡｄＥＳデータからＳｉｇｎｅｄＩｎｆｏエリアを抽出してクライアント端末３に送信する（ステップ１５０）。
【００５３】
なお、本実施の形態では、長期署名サーバ２は、ＳｉｇｎｅｄＩｎｆｏエリアをクライアント端末３に送信しているが、変形例として、長期署名サーバ２は、ＳｉｇｎｅｄＩｎｆｏエリアのハッシュ値を計算して当該ハッシュ値をクライアント端末３に送信するように構成することもできる。
この場合、クライアント端末３は、当該ハッシュ値を秘密鍵で暗号化するだけでよい。
このように、ハッシュ値の計算は、長期署名サーバ２とクライアント端末３の何れで行ってもよい。
【００５４】
クライアント端末３は、長期署名サーバ２からＳｉｇｎｅｄＩｎｆｏを受信すると、ＳｉｇｎｅｄＩｎｆｏのハッシュ値を計算する。そしてこのハッシュ値に秘密鍵で電子署名して署名値を作成し（即ち、ＳｉｇｎｅｄＩｎｆｏのハッシュ値を秘密鍵で暗号化して暗号値を生成し）、当該電子署名値を長期署名サーバ２に送信する（ステップ１５５）。これによって、署名前ＸＡｄＥＳデータがクライアント端末３の秘密鍵により電子署名される。
長期署名サーバ２は、クライアント端末３から署名値を受信すると、これを署名前ＸＡｄＥＳデータに追加してＥＳを完成させる（ステップ１６０）。
このように、長期署名サーバ２は、原本データと秘密鍵とクライアント端末３に保持したままＥＳを作成することができる。
【００５５】
図６は、ステップ２００のＥＳ−Ｔ作成処理を説明するためのフローチャートである。
まず、長期署名サーバ２は、ステップ１００で作成したＥＳを処理対象として入力する（ステップ２０５）。この際に、ＥＳを検証するように構成することもできる。
次に、長期署名サーバ２は、ＥＳからＳｉｇｎａｔｕｒｅＶａｌｕｅエリアを抽出し（ステップ２１０）、ＳｉｇｎａｔｕｒｅＶａｌｕｅのハッシュ値を計算する（ステップ２１５）。
【００５６】
次いで、長期署名サーバ２は、ＳｉｇｎａｔｕｒｅＶａｌｕｅのハッシュ値に対するタイムスタンプを要求するためのＴＳＱ（Ｔｉｍｅ−ｓｔａｍｐ  Ｒｅｑｕｅｓｔ）を生成し、タイムスタンプサーバ５に送信する（ステップ２２０）。
タイムスタンプサーバ５は、ＴＳＱを受信すると、現在日時刻の付与後、秘密鍵で署名してＴＳＴ（Ｔｉｍｅ  Ｓｔａｍｐ  Ｔｏｋｅｎ）を生成する。
そして、タイムスタンプサーバ５は、発行したＴＳＴを用いてＴＳＲ（Ｔｉｍｅ−ｓｔａｍｐ  Ｒｅｓｐｏｎｓｅ）を生成し、長期署名サーバ２に送信する（ステップ２２５）。
より詳細に説明すると、ＴＳＲの中にはＴＳＴが存在し、ＴＳＲから取り出したＴＳＴが、ＳＴＳ（署名タイムスタンプ）やＡＴＳ（アーカイブタイムスタンプ）などと呼ばれる。
【００５７】
長期署名サーバ２は、タイムスタンプサーバ５からＴＳＲを受信し、ＴＳＲからＴＳＴを抽出する（ステップ２３０）。
そして、長期署名サーバ２は、ＥＳ−Ｔに署名タイムスタンプエリアを作成してＴＳＴをＳＴＳ（署名タイムスタンプ）として設定し、ＥＳ−Ｔの作成を完了する（ステップ２３５）。
【００５８】
図７は、ステップ３００のＥＳ−ＸＬ作成処理を説明するためのフローチャートである。
まず、長期署名サーバ２は、ステップ２００で作成したＥＳ−Ｔを処理対象として入力する（ステップ３０５）。
【００５９】
次に、長期署名サーバ２は、ＥＳ−Ｔから必要な証明書情報を割り出して、次のように収集する。
まず、長期署名サーバ２は、クライアント端末３の公開鍵証明書、即ち、署名証明書を取得し（ステップ３１０）、更に、当該署名証明書のルート証明書を取得する（ステップ３１５）。
次いで、長期署名サーバ２は、署名タイムスタンプを証明するためのＴＳＡ証明書を取得し（ステップ３２０）、次いで、当該ＴＳＡ証明書のルート証明書を取得する（ステップ３２５）。これら取得対象の証明書群は長期署名サーバ２に記憶されている。
【００６０】
次に、長期署名サーバ２は、証明書群の各証明書から、クライアント端末３の公開鍵証明書やＳＴＳの公開鍵証明書、これらを検証するための認証局の証明書などが失効リストにリストアップされていないことを確認するために必要な失効情報を割り出し、これらを次のように収集する。
【００６１】
なお、署名証明書は、例えば、正当な署名鍵所有者が鍵を紛失したなどの理由で、認証局に対して失効申請が行われているのにもかかわらず、失効手続きの事務処理や失効情報公開タイミングの関係で、失効情報にその失効状態が登録されていない可能性がある。
このような場合、失効してから失効情報に登録されるまで時間を要するので、長期署名サーバ２は、署名タイムスタンプを取得した後、または、証明書群を作成した後、一定期間経過後（署名証明書を発行した認証局の運用ポリシーに基づく、例えば、２４時間、あるいは数日）に失効情報を収集する。
【００６２】
まず、長期署名サーバ２は、ＣＡのリポジトリサーバ７にアクセスし、収集した署名証明書のＣＲＬ（Ｃｅｒｔｉｆｉｃａｔｅ  Ｒｅｖｏｃａｔｉｏｎ  Ｌｉｓｔ）を要求する（ステップ３３０）。
これに対し、リポジトリサーバ７は、長期署名サーバ２に署名証明書のＣＲＬを送信する（ステップ３３５）。
ここで、ＣＲＬは、失効した証明書を一覧したリストであって、証明書とＣＲＬを照合することにより証明書が有効であるか否かを判断するためのものである。
【００６３】
次に、長期署名サーバ２は、リポジトリサーバ７に署名証明書のルート証明書のＡＲＬ（Ａｕｔｈｏｒｉｔｙ  Ｒｅｖｏｃａｔｉｏｎ  Ｌｉｓｔ）を要求する（ステップ３４０）。
これに対し、リポジトリサーバ７は、長期署名サーバ２に署名証明書のルート証明書のＡＲＬを送信する（ステップ３４５）。
ここで、ＡＲＬは、失効した自己署名証明書などのリストである。ルートのＣＡは、証明書信頼チェーンにおいて最上位に位置するため、ルートのＣＡは、自己を自己署名証明書にて証明する。そして、ルート証明書とＡＲＬを照合することによりルート証明書が有効であるか否かを判断することができる。
【００６４】
署名証明書のＣＲＬによって署名証明書の有効性が検証でき、署名証明書のルート証明書のＡＲＬによって署名証明書のルート証明書の有効性が検証でき、署名証明書、及び署名証明書のルート証明書の検証によりクライアント端末３による署名の真正性を検証することができる。
【００６５】
次に、長期署名サーバ２は、ＴＳＡ−ＣＡのリポジトリサーバ６にアクセスし、ＴＳＡ証明書のＣＲＬを要求する（ステップ３５０）。
これに対し、リポジトリサーバ６は、長期署名サーバ２にＴＳＡ証明書のＣＲＬを送信する（ステップ３５５）。
次に、長期署名サーバ２は、リポジトリサーバ６にＴＳＡ証明書のルート証明書のＡＲＬを要求する（ステップ３６０）。
これに対し、リポジトリサーバ６は、長期署名サーバ２にＴＳＡ証明書のルート証明書のＡＲＬを送信する（ステップ３６５）。
【００６６】
ＴＳＡ証明書のＣＲＬによってＴＳＡ証明書の有効性が検証でき、ＴＳＡ証明書のルート証明書のＡＲＬによってＴＳＡ証明書のルート証明書の有効性が検証でき、ＴＳＡ証明書、及びＴＳＡ証明書のルート証明書の検証によりＳＴＳの正当性を検証することができる。
【００６７】
クライアント端末３は、以上のようにして、証明書群と失効情報群を収集すると、これらを用いて証明書信頼チェーンの階層による認証パスを構築し、これをＥＳ−Ｔに追加して、ＥＳ−ＸＬを作成する（ステップ３７０）。
【００６８】
図８は、ステップ４００のＥＳ−Ａ（１ｓｔ）作成処理を説明するためのフローチャートである。
まず、長期署名サーバ２は、ステップ３００で作成したＥＳ−ＸＬを処理対象として入力する（ステップ４０５）。この際に、長期署名サーバ２が、ＥＳ−ＸＬを検証するように構成することもできる。
次に、長期署名サーバ２は、長期署名データにＡＴＳエリアを作成する（ステップ４１０）。
【００６９】
長期署名サーバ２は、ＡＴＳエリアを作成し、ＥＳ−Ａ（１ｓｔ）を作成する準備が整うと、準備完了通知をクライアント端末３に送信する（ステップ４１５）。
クライアント端末３は、当該通知を受信すると、原本データを読み込んで取得する（ステップ４２０）。
長期署名サーバ２は、クライアント端末３に準備完了通知を送信すると、ＥＳ−Ａ（１ｓｔ）用のハッシュ値対象データ作成用データを作成する（ステップ４２５）。
【００７０】
具体的には、長期署名サーバ２は、ＥＳ−ＸＬから、署名対象プロパティ、ＳｉｇｎｅｄＩｎｆｏ、ＳｉｇｎａｔｕｒｅＶａｌｕｅ、ＫｅｙＩｎｆｏ、ＳＴＳ、証明書群、失効情報群を抽出して、これらを所定のフォームに従って設定することにより結合し、ハッシュ値対象データ作成用データを生成する。
なお、このハッシュ値対象データ作成用データは、ハッシュ値対象データから原本データを除いたものである。
長期署名サーバ２は、署名値対象データ作成用データを作成すると、これをクライアント端末３に送信する（ステップ４２５）。
【００７１】
クライアント端末３は、長期署名サーバ２からハッシュ値対象データ作成用データを受信すると、これにステップ４２０で読み込んだ原本データを追加し（ステップ４３０）、ハッシュ値対象データを作成する。
次に、クライアント端末３は、ハッシュ値対象データのハッシュ値を計算し、このハッシュ値を長期署名サーバ２に送信する（ステップ４３５）。
【００７２】
長期署名サーバ２は、ハッシュ値対象データのハッシュ値を受信すると、これにタイムスタンプを要求するためのＴＳＱを生成してタイムスタンプサーバ５に送信する（ステップ４４０）。
タイムスタンプサーバ５は、ＴＳＱを受信すると、ＴＳＱからハッシュ値対象データのハッシュ値を取り出し、これに現在日時刻を付与して秘密鍵で署名することによりＴＳＴを生成する。
そして、タイムスタンプサーバ５は、ＴＳＴを用いてＴＳＲを生成し、長期署名サーバ２に送信する（ステップ４４５）。
【００７３】
長期署名サーバ２は、タイムスタンプサーバ５からＴＳＲを受信すると（ステップ４５０）、これからＴＳＴを抽出する（ステップ４６０）。
そして、長期署名サーバ２は、抽出したＴＳＴをＡＴＳ（１ｓｔ）としてＥＳ−ＸＬに追加し、ＥＳ−Ａ（１ｓｔ）を生成してクライアント端末３に送信する（ステップ４６５）。
クライアント端末３は、長期署名サーバ２からＥＳ−Ａ（１ｓｔ）を受信して記憶する（ステップ４７０）。
以上のようにして、原本データと秘密鍵（署名鍵）をクライアント端末３の内部に保持したまま、長期署名サーバ２で長期署名データ（ＥＳ−Ａ（１ｓｔ））を作成することができる。
【００７４】
以上のようにして作成されたＥＳ−Ａ（１ｓｔ）は、クライアント側で保存されるが、ＡＴＳ（１ｓｔ）の有効性が失われる前に、ＥＳ−Ａ（１ｓｔ）にＡＴＳ（２ｎｄ）を付与してＥＳ−Ａ（２ｎｄ）に更新する必要がある。そこで、次にＥＳ−Ａ（２ｎｄ）に更新する手順について説明する。
【００７５】
図９は、ＥＳ−Ａ（２ｎｄ）を作成する手順を説明するためのフローチャートである。
まず、クライアント端末３は、ＥＳ−Ａ（１ｓｔ）を長期署名サーバ２に送信する（ステップ５０５）。クライアント端末３でＥＳ−Ａ（１ｓｔ）が入力された際に、これを検証するように構成することもできる。
長期署名サーバ２は、クライアント端末３からＥＳ−Ａ（１ｓｔ）を受信する（ステップ５１０）。
そして、長期署名サーバ２は、ＥＳ−Ａ（１ｓｔ）からＡＴＳ（１ｓｔ）に必要な証明書情報を割り出して、これらを以下のように収集する。
【００７６】
まず、長期署名サーバ２は、ＡＴＳ（１ｓｔ）のＴＳＡ証明書を取得し（ステップ５１５）、更に、ＴＳＡ証明書のルート証明書を取得する（ステップ５２０）。これらの証明書は、長期署名サーバ２に記憶されている。
次に、長期署名サーバ２は、ＴＳＡ−ＣＡのリポジトリサーバ６にアクセスし、ＡＴＳ（１ｓｔ）のＴＳＡ証明書のＣＲＬを要求し（ステップ５２５）、リポジトリサーバ６は、長期署名サーバ２にＣＲＬを送信する（ステップ５３０）。
そして、長期署名サーバ２は、ＣＲＬを受信する。
【００７７】
次に、長期署名サーバ２は、リポジトリサーバ６にＡＴＳ（１ｓｔ）のＴＳＡ証明書のルート証明書のＡＲＬを要求し（ステップ５３５）、リポジトリサーバ６は、長期署名サーバ２に当該ルート証明書のＡＲＬを送信する（ステップ５４０）。
そして、長期署名サーバ２は、ＡＲＬを受信する。
【００７８】
次に、長期署名サーバ２は、これら証明書群（ＴＳＡ証明書、ＴＳＡ証明書のルート証明書）と失効情報群（ＣＲＬ、ＡＲＬ）から認証パスを構築する（ステップ５４５）。
次に、長期署名サーバ２は、収集した証明書群と失効情報群を、それぞれＡＴＳ（１ｓｔ）のｃｅｒｔｉｆｉｃａｔｅｓエリア及びｃｒｌｓエリアに追加してＡＴＳ（１ｓｔ）を更新する（ステップ５５０）。
次に、長期署名サーバ２は、ＡＴＳ（１ｓｔ）を更新したＥＳ−Ａ（１ｓｔ）にＡＴＳ（２ｎｄ）用のエリアを作成し、ＥＳ−Ａ（２ｎｄ）を作成する準備が整った旨の準備完了通知をクライアント端末３に送信する（ステップ５５５）。
【００７９】
それ以降の処理は、図８のステップ４２０以下と同じであり、原本データと秘密鍵をクライアント端末３の内部に保持したまま長期署名サーバ２でＥＳ−Ａ（２ｎｄ）を作成することができる。
即ち、長期署名サーバ２は、ハッシュ値対象データ作成用データを作成してクライアント端末３に送信する。
【００８０】
そして、クライアント端末３は、ハッシュ値対象データ作成用データに原本データを加えてハッシュ値を計算し、当該ハッシュ値を長期署名サーバ２に送信する。
長期署名サーバ２は、当該ハッシュ値をタイムスタンプサーバ５に送信してタイムスタンプを発行してもらい、これをＥＳ−Ａ（１ｓｔ）に追加してＥＳ−Ａ（２ｎｄ）を作成する。
ＥＳ−Ａ（３ｒｄ）、ＥＳ−Ａ（４ｔｈ）など後の世代も同様にして作成される。
【００８１】
以上に説明した本実施の形態により、次のような効果を得ることができる。
（１）長期署名データの作成手順を長期署名サーバ２の手順とクライアント端末３の手順に分離して行うプロトコルを実現することができる。
（２）署名はクライアント端末３で行うため、秘密鍵をクライアント端末３の外部に出す必要がない。
（３）原本データは、ハッシュ値を計算して長期署名サーバ２に送信するため、原本データをクライアント端末３の外部に出す必要がない。
（４）秘密鍵と原本データを用いる処理だけクライアント端末３で行い、ＸＭＬの解析やタイムスタンプ、検証情報の取得など、コンピュータの負荷が高い処理は長期署名サーバ２で行うため、クライアント端末３の負荷を小さくすることができる。
（５）例えば、大型設計図面や、音声・動画データのような数メガバイトを超えるような原本データであっても、長期署名サーバ２に送信するのは原本ハッシュ値などであるため、通信負荷が少なくて済む。
（６）秘密鍵と原本データをユーザ側に保持したまま、長期署名データの作成をアウトソースすることができ、ユーザ環境に長期署名システムを構築する必要がないため、ユーザが運用管理（ログ監視、失敗監視、リカバリ処理等）を行う必要がない。
（７）ユーザ環境に長期署名システムを構築しないため、ユーザ環境からタイムスタンプ及び失効情報を取得するためのネットワーク設定（ＩＰ、ポートを開く等）が必要ない。
（８）認証パスの取得のための署名証明書のルート証明書及びＴＳＡ証明書のルート証明書などは、長期署名サーバ２が有しているため、これらの情報をユーザ環境で保持する必要がない。そのため、例えば、ＴＳＡが認証局を変更する場合であっても、ユーザ環境で新しい認証局証明書（ルート証明書や中間証明書）を登録しなおす必要がない。
（９）タイムスタンプは、長期署名サーバ２が取得するため、クライアント端末３のユーザ側は、ＴＳＡと契約する必要がない。
（１０）長期署名フォーマットのバージョンアップや暗号アルゴリズムの危殆化発生時には、長期署名サーバ２が対応し、ユーザ側が対応する必要がない。
（１１）長期署名データの生成を長期署名サーバ２にアウトソースすることにより、例えば、長期署名システムは必要だが処理文書数が見積もれないため、初期コストをかけられない、長期署名システムを運用するための要員を確保できないため自社内にサーバシステムを持てない、秘密鍵、原本データは、社内から持ち出したくない、といった顧客の要望を満たすソリューションを提供することができる。
（１２）長期署名フォーマットを利用することにより、電子署名の有効性を延長したり、暗号アルゴリズムの危殆化に対応することが可能となる。
（１３）署名対象文書に対して、署名鍵で署名を行い、署名タイムスタンプを付与してＥＳ−Ｔを作成し、ＥＳ−Ｔに対して必要な検証情報（認証パス、及び失効情報）を収集・付与し、アーカイブタイムスタンプを付与してＥＳ−Ａを作成する処理を機密を確保してクラウドで行うシステムを提供することができる。
（１４）クライアント端末３の接続を長期署名サーバ２とし、タイムスタンプサーバ５、リポジトリサーバ６、リポジトリサーバ７と接続しないため、クライアント端末３の接続先を可能な限り少なくすることができ、接続先が多いことによるセキュリティホールの増大を防ぐことができる。
【００８２】
ところで、以上に説明したクライアント端末３と長期署名サーバ２の処理は、（１）負荷の高い処理は長期署名サーバ２で行い、なるべくクライアント端末３の負荷を低減する、（２）クライアント端末３の通信先を少なくするため、クライアント端末３の通信先を長期署名サーバ２にする、という２つの要請を満たす一例であって、変形例として長期署名サーバ２の処理の一部をクライアント端末３で行うように構成することもできる。
【００８３】
例えば、ステップ１００のＥＳ作成処理（図４）では、全ての処理をクライアント端末３で行うことができる。
また、ステップ２００のＥＳ−Ｔ作成処理では、タイムスタンプを取得する処理（ステップ２２０、２２５）以外の処理は、クライアント端末３で行うことができる。
この場合、クライアント端末３は、タイムスタンプ処理に必要なデータのみ長期署名サーバ２に送信し、長期署名サーバ２は、タイムスタンプサーバ５でこれに対するタイムスタンプを取得してクライアント端末３に送信する。
ここで、クライアント端末３の通信先を長期署名サーバ２とするのは、クライアント端末３の通信先をなるべく少なくしたいためである。
【００８４】
更に、ステップ３００のＥＳ−ＸＬ作成処理では、失効情報をリポジトリサーバ６、リポジトリサーバ７から収集する処理（ステップ３３０〜３６５）以外の処理は、クライアント端末３で行うことができる（失効情報は外部から取得する必要があるため）。
この場合、クライアント端末３が証明書の管理を行う必要があり、また、ＥＳ−ＸＬ作成処理の開始にあたって、必要な失効情報が取得できるか否かの確認もクライアント端末３で行う必要があり、その際は、失効情報取得のチェックを長期署名サーバ２に依頼する必要がある。
そして、その場合、クライアント端末３は、必要となる失効情報の取得先のＵＲＬ（Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｌｏｃａｔｏｒｓ）などを長期署名サーバ２に送信し、長期署名サーバ２は、これを用いて失効情報を収集してクライアント端末３に送信する。
【００８５】
また、ステップ４００のＥＳ−Ａ（１ｓｔ）作成処理では、タイムスタンプを取得する処理（ステップ４４０、４４５）以外の処理は、クライアント端末３で行うことができる。
この場合、クライアント端末３は、タイムスタンプ処理に必要なデータのみ長期署名サーバ２に送信し、長期署名サーバ２は、タイムスタンプサーバ５でこれに対するタイムスタンプを取得してクライアント端末３に送信する。
ここで、クライアント端末３の通信先を長期署名サーバ２とするのは、クライアント端末３の通信先をなるべく少なくしたいためである。
【００８６】
更に、図９のＥＳ−Ａ更新処理では、リポジトリサーバ６から失効情報を収集する処理（ステップ５２５〜５４０）と、図で省略されているタイムスタンプを取得する処理（ステップ４４０、４４５）以外の処理は、クライアント端末３で行うことができる。
この場合、クライアント端末３が証明書の管理を行う必要があり、また、ＥＳ−Ａ更新処理の開始にあたって、必要な失効情報が取得できるか否かの確認もクライアント端末３で行う必要があり、その際は、失効情報取得のチェックを長期署名サーバ２に依頼する必要がある。
そして、その場合、クライアント端末３は、必要となる失効情報の取得先のＵＲＬ（Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｌｏｃａｔｏｒｓ）などを長期署名サーバ２に送信し、長期署名サーバ２は、これを用いて失効情報を収集してクライアント端末３に送信する。
【００８７】
以上説明した本実施の形態により、次の構成を得ることができる。
長期署名システム１において、長期署名サーバ２は、長期署名用サーバとして機能し、クライアント端末３は、長期署名用端末といて機能している。
クライアント端末３が秘密鍵でＳｉｇｎｅｄＩｎｆｏに署名することにより署名前ＸＡｄＥＳデータに署名を付すため、署名前ＸＡｄＥＳデータ、あるいはＳｉｇｎｅｄＩｎｆｏは、署名対象データとして機能している。
また、ＳｉｇｎｅｄＩｎｆｏに対する署名に関しては、ＳｉｇｎｅｄＩｎｆｏをクライアント端末３に送信し、クライアント端末３でＳｉｇｎｅｄＩｎｆｏのハッシュ値を計算して当該ハッシュ値に署名してもよいし、あるいは、長期署名サーバ２がＳｉｇｎｅｄＩｎｆｏのハッシュ値を計算してクライアント端末３に送信し、クライアント端末３が当該ハッシュ値に署名してもよい。
前者の場合は、ＳｉｇｎｅｄＩｎｆｏが署名用データとして機能しており、後者の場合は、ＳｉｇｎｅｄＩｎｆｏのハッシュ値が署名用データとして機能している。
長期署名サーバ２は、署名前ＸＡｄＥＳデータを生成してＳｉｇｎｅｄＩｎｆｏに署名するための署名用データ（ＳｉｇｎｅｄＩｎｆｏ、又はＳｉｇｎｅｄＩｎｆｏのハッシュ値）をクライアント端末３に送信するため、署名対象データを取得する署名対象データ取得手段と、前記取得した署名対象データに電子署名するための署名用データを長期署名用端末に送信する署名用データ送信手段を備えている。
そして、長期署名サーバ２は、クライアント端末３から、ＳｉｇｎｅｄＩｎｆｏの署名値を受信するため、前記長期署名用端末から、前記送信した署名用データを用いて生成された前記署名対象データの電子署名値を受信する署名値受信手段を備えており、署名前ＸＡｄＥＳデータと署名値に対してタイムスタンプサーバ５にＴＳＴを用いてＳＴＳを発行してもらうため、前記受信した電子署名値に対してタイムスタンプを取得するタイムスタンプ取得手段を備えている。
ＥＳ−Ｔは、基本署名データとして機能しており、長期署名サーバ２は、署名前ＸＡｄＥＳデータ、署名値、及びＳＴＳからＥＳ−Ｔを生成するため、長期署名サーバ２は、少なくとも、前記取得した署名対象データ（署名前ＸＡｄＥＳデータ）、前記受信した電子署名値（署名値）、及び前記取得したタイムスタンプ（ＳＴＳ）を用いて基本署名データ（ＥＳ−Ｔ）を生成する署名データ生成手段を備えている。
【００８８】
また、長期署名サーバ２は、クライアント端末３から原本データハッシュ値と署名に用いる秘密鍵に対応する公開鍵の公開鍵証明書を受信し、これらを用いてＸＡｄＥＳデータを生成するため、前記長期署名用端末から、原本データを所定の関数（ハッシュ関数）で計算した関数値（原本ハッシュ値）、及び前記電子署名の生成に用いる秘密鍵に対応する公開鍵を含む公開鍵証明書を受信する関数値証明書受信手段を具備し、前記署名対象データ取得手段は、少なくとも、前記受信した関数値（原本ハッシュ値）、及び前記公開鍵証明書を用いて署名対象データ（ＸＡｄＥＳデータ）を生成している。
【００８９】
更に、長期署名サーバ２は、クライアント端末３から受信した公開鍵証明書やＳＴＳの公開鍵証明書の検証情報として証明書群と失効情報群を収集してＥＳ−Ｔに加えてＥＳ−ＸＬを生成するため、前記受信した公開鍵証明書、及び前記タイムスタンプを検証する検証情報を取得する検証情報取得手段を具備し、前記署名データ生成手段は、前記取得した検証情報を前記基本署名データ（ＥＳ−Ｔ）に加えている。
【００９０】
長期署名サーバ２は、ＥＳ−ＸＬにＡＴＳ（１ｓｔ）を追加してＥＳ−Ａ（１ｓｔ）を生成し、ＡＴＳは、有効期間の間、ＥＳ−ＸＬを検証する情報であるため、前記基本署名データ（ＥＳ−ＸＬ）を所定期間検証するための長期検証情報（ＡＴＳ（１ｓｔ））を取得する長期検証情報取得手段を具備し、前記署名データ生成手段は、前記取得した長期検証情報を前記生成した基本署名データに加えて長期署名データ（ＥＳ−Ａ（１ｓｔ））を生成している。
【００９１】
長期署名サーバ２は、ＡＴＳ（１ｓｔ）を作成するに際して、ハッシュ値対象データ作成データを作成してクライアント端末３に送信し、クライアント端末３がこれに原本データを加えてハッシュ値を計算し、長期署名サーバ２がこれにタイムスタンプを付与してＡＴＳ（１ｓｔ）を取得するため、長期検証情報を作成するための長期検証情報作成用情報（ハッシュ値対象データ作成データ）を前記長期署名用端末に送信する長期検証情報作成用情報送信手段と、前記長期署名用端末から、前記長期検証情報作成用情報に前記原本データを加えて所定関数で計算した長期検証情報作成用関数値（ハッシュ値）を受信する長期検証情報作成用関数値受信手段と、を具備し、前記長期検証情報取得手段は、前記受信した長期検証情報作成用関数値にタイムスタンプを付与して前記長期検証情報（ＡＴＳ（１ｓｔ））を取得している。
【００９２】
また、長期署名サーバ２は、有効期間を延長するべき長期署名データをクライアント端末３から受信して、長期署名データの最新のＡＴＳを抽出して解析することから、長期署名用端末から長期署名データを受信する長期署名データ受信手段と、前記受信した長期署名データから（最新の）長期検証情報を抽出する長期検証情報抽出手段を備えている。
そして、長期署名サーバ２は、最新のＡＴＳを所定期間検証するための次世代のＡＴＳを取得して長期署名データに追加し、これによって長期署名データの有効期間を延長するため、前記抽出した長期検証情報（最新のＡＴＳ）を所定期間検証するための再度の長期検証情報（次世代のＡＴＳ）を取得する再度の長期検証情報取得手段を備え、前記署名データ生成手段は、前記受信した長期署名データ（最新のＡＴＳが付された長期署名データ）に前記取得した再度の長期検証情報（次世代のＡＴＳ）を加えて当該長期署名データを更新している。
【００９３】
より詳細には、長期署名サーバ２は、次世代のＡＴＳを作成するための情報を生成してクライアント端末３に送信し（ステップ５１０〜ステップ５５５）、クライアント端末３は、これに原本データを加えてハッシュ値を計算し、その関数値を長期署名サーバ２に送信するため、長期署名サーバ２は、再度の長期検証情報を作成するための再度の長期検証情報作成用情報を前記長期署名用端末に送信する再度の長期検証情報作成用情報送信手段と、前記送信した再度の長期検証情報作成用情報に前記原本データを加えて所定関数で計算した再度の長期検証情報作成用関数値を前記長期署名用端末から受信する再度の長期検証情報作成用関数値受信手段を備えている。
そして、長期署名サーバ２は、クライアント端末３から受信したハッシュ値（関数値）にタイムスタンプを付与して次世代のＡＴＳを取得するため、前記再度の長期検証情報取得手段は、前記受信した再度の長期検証情報作成用関数値にタイムスタンプを付与して前記再度の長期検証情報を取得している。
【００９４】
また、署名前ＸＡｄＥＳデータの署名対象プロパティには公開鍵証明書ハッシュ値が含まれているメタデータ、前記署名対象データは、前記受信した公開鍵証明書を所定の関数で計算した関数値（公開鍵証明書ハッシュ値）を含んでいる。
【００９５】
また、クライアント端末３が長期署名データ作成の度に必要なプログラムを長期署名サーバ２からダウンロードする形態では、長期署名サーバ２は、前記長期署名用端末に、秘密鍵を用いて電子署名する電子署名機能と、前記秘密鍵に対応する公開鍵の公開鍵証明書を長期署名用サーバに送信する公開鍵証明書送信機能と、原本データを所定の関数で計算した関数値を長期署名用サーバに送信する関数値送信機能と、前記送信した公開鍵証明書と前記関数値を用いて生成された署名対象データに電子署名するための署名用データ（ＳｉｇｎｅｄＩｎｆｏ、又はＳｉｇｎｅｄＩｎｆｏのハッシュ値）を前記長期署名用サーバから受信する署名用データ受信機能と、前記受信した署名用データを用いて前記署名対象データに前記電子署名機能で電子署名し、当該電子署名による電子署名値を前記長期署名用サーバに送信する署名値送信機能と、をコンピュータで実現する長期署名用端末プログラムを送信するプログラム送信手段を備えている。
【００９６】
一方、クライアント端末３は、秘密鍵を用いて電子データを暗号化することにより電子署名し、当該秘密鍵に対応する公開鍵の公開鍵証明書を長期署名サーバ２に送信し、また、原本ハッシュ値を計算して長期署名サーバ２に送信するため、秘密鍵を用いて電子署名する電子署名手段と、前記秘密鍵に対応する公開鍵の公開鍵証明書を長期署名用サーバに送信する公開鍵証明書送信手段と、原本データを所定の関数（ハッシュ関数）で計算した関数値（原本ハッシュ値）を長期署名用サーバに送信する関数値送信手段を備えている。
そして、クライアント端末３は、ＳｉｇｎｅｄＩｎｆｏ、又はＳｉｇｎｅｄＩｎｆｏのハッシュ値を長期署名サーバ２から受信してＳｉｇｎｅｄＩｎｆｏのハッシュ値に秘密鍵で電子署名し、当該電子署名による署名値を長期署名サーバ２に送信するため、前記送信した公開鍵証明書と前記関数値を用いて生成された署名対象データ（署名前ＸＡｄＥＳデータ）に電子署名するための署名用データ（ＳｉｇｎｅｄＩｎｆｏ、又はＳｉｇｎｅｄＩｎｆｏのハッシュ値）を前記長期署名用サーバから受信する署名用データ受信手段と、前記受信した署名用データを用いて前記署名対象データに前記電子署名手段で電子署名し、当該電子署名による電子署名値を前記長期署名用サーバに送信する署名値送信手段を備えている。
【００９７】
また、ハッシュ値対象データ作成用データは、長期検証情報（ＡＴＳ）を作成するための長期検証情報作成用情報として機能しており、クライアント端末３は、長期署名サーバ２がＡＴＳ（１ｓｔ）を作成するに際して、長期署名サーバ２からハッシュ値対象データ作成用データを受信するため、前記長期署名用サーバから、前記送信した関数値、公開鍵証明書、電子署名値を含む基本署名データを所定期間検証する長期検証情報を作成するための長期検証情報作成用情報（ハッシュ値対象データ作成用データ）を受信する長期検証情報作成用情報受信手段を備えている。
そして、クライアント端末３は、ハッシュ値対象データ作成用データに原本データを追加してハッシュ値を計算し、そのハッシュ値を長期署名サーバ２に送信するため、前記受信した長期検証情報作成用情報に、前記原本データを加え、当該原本データを加えた長期検証情報作成用情報を所定関数（ハッシュ関数）によって計算して長期検証情報作成用関数値（ハッシュ値）を生成する長期検証情報作成用関数値生成手段と、前記生成した長期検証情報作成用関数値を前記長期署名用サーバに送信する長期検証情報作成用関数値送信手段を備えている。
【００９８】
また、クライアント端末３は、有効期間を延長する長期署名データを長期署名サーバ２に送信し、最新の世代のＡＴＳを検証する次世代のＡＴＳを作成するための情報（ハッシュ値対象データ作成用データ）を長期署名サーバ２から受信する。
そのため、クライアント端末３は、前記送信した関数値、公開鍵証明書、電子署名値を含む基本署名データ、及びこれらを所定期間検証する長期検証情報を含む長期署名データ（有効期間延長対象の長期署名データ）を前記長期署名用サーバに送信する長期署名データ送信手段と、前記長期署名用サーバから、前記送信した長期署名データの長期検証情報を所定期間検証する再度の長期検証情報（次世代のＡＴＳ）を作成するための再度の長期検証情報作成用情報（次世代のＡＴＳ用のハッシュ値対象データ作成用データ）を受信する再度の長期検証情報作成用情報受信手段を備えている。
そして、クライアント端末３は、このハッシュ値対象データ作成用データに原本データを加えてハッシュ値を計算し、当該ハッシュ値を長期署名サーバ２に送信するため、前記受信した再度の長期検証情報作成用情報に、前記原本データを加え、当該原本データを加えた再度の長期検証情報作成用情報を所定関数（ハッシュ関数）によって計算して再度の長期検証情報作成用関数値（次世代ＡＴＳ用のハッシュ値）を生成する再度の長期検証情報作成用関数値生成手段と、前記生成した再度の長期検証情報作成用関数値を前記長期署名用サーバに送信する再度の長期検証情報作成用関数値送信手段を備えている。
【００９９】
次に、図１０のフローチャートを用いて長期署名データの検証方法について説明する。
以下の検証者端末は、長期署名データと原本データを取得して、長期署名データを用いて原本データを検証するユーザの端末であって、ハードウェア的な構成はクライアント端末３と同じである。
例えば、甲が作成した長期署名データと原本データを乙が受け取り、乙が検証者端末でこれを検証する場合が想定される。
【０１００】
検証者端末は、長期署名データと原本データを記憶している。
まず、検証者端末は、長期署名データを長期署名サーバ２に送信し（ステップ６０５）、長期署名サーバ２は、これを受信する（ステップ６１０）。
次に、検証者端末は、原本データのハッシュ値を計算して長期署名サーバ２に送信し（ステップ６１５）、長期署名サーバ２は、これを受信する（ステップ６２０）。
【０１０１】
次に、長期署名サーバ２は、原本ハッシュ値を検証する（ステップ６２５）。
この処理は、検証者端末から送信された原本ハッシュ値と、長期署名データのＸＡｄＥＳ内の原本ハッシュ値を比較し、両者が一致することを確認することにより行われる。
次に、長期署名サーバ２は、公開鍵証明書（署名証明書）の検証を行う（ステップ６３０）。
この検証は、検証情報に含まれる証明書群、及び失効情報群を用いて、認証パスがつながること、及び認証パス上の証明書が失効していなかったことを確認することにより行われる。
【０１０２】
次に、長期署名サーバ２は、署名値を検証する（ステップ６３５）。
この検証は、ＳｉｇｎａｔｕｒｅＶａｌｕｅの署名値を公開鍵証明書から取り出した公開鍵で復号化すると共に、ＳｉｇｎｅｄＩｎｆｏのハッシュ値を計算し、当該復号化した値とハッシュ値が一致することを確認することにより行われる。
次に、長期署名サーバ２は、ＳＴＳを検証する（ステップ６４０）。
この検証は、ＳｉｇｎａｔｕｒｅＶａｌｕｅのハッシュ値を計算し、これと、ＳＴＳに記載されているハッシュ値が一致することを確認することにより行われる。
【０１０３】
次に、長期署名サーバ２は、ＳＴＳ証明書（署名タイムスタンプ証明書）を検証する（ステップ６４５）。
この検証は、ＴＳＡ証明書でＴＳＡ署名値を復号して確認するほか、検証情報に含まれる証明書群、及び失効情報群を用いて、ＳＴＳ証明書の認証パスがつながること、及び認証パス上の証明書が失効していなかったことを確認することにより行われる。
【０１０４】
次に、長期署名サーバ２は、ＥＳ−ＸＬに含まれるデータからＡＴＳの対象データに原本データが結合される前のデータを作成してハッシュ値対象データ作成用データを作成し、これを検証者端末に送信する（ステップ６５０）。
【０１０５】
検証者端末は、ハッシュ値対象データ作成用データを受信すると、これに原本データを結合して追加し、ハッシュ値対象データを作成する（ステップ６５５）。
次に、検証者端末は、ハッシュ値対象データのハッシュ値を計算して長期署名サーバ２に送信する（ステップ６６０）。
【０１０６】
長期署名サーバ２は、検証者端末から当該ハッシュ値を受信すると、これとＡＴＳ（１ｓｔ）に記載されているハッシュ値が一致することを確認することによりＡＴＳ（１ｓｔ）のハッシュ値を検証する（ステップ６６５）。
次に、長期署名サーバ２は、ＡＴＳ（１ｓｔ）の証明書の認証パスを作成するための証明書（ルート証明書）を自サーバ内から取得する（ステップ６７０）。
【０１０７】
次に、長期署名サーバ２は、当該認証パス上の証明書の失効情報をリポジトリサーバ６から取得する（ステップ６７５、６８０）。
そして、長期署名サーバ２は、認証パスがつながること、認証パス上の証明書が失効していないことを確認することによりＡＴＳ（１ｓｔ）の証明書の検証を行う（ステップ６８５）。
【０１０８】
次に、長期署名サーバ２は、その他、ＸＡｄＥＳの検証を行う（ステップ６９０）。
この検証は、各証明書、各失効情報、各タイムスタンプ間の時刻の整合性が取れることの確認、フォーマットの整合性の確認などにより行われる。
長期署名サーバ２は、以上の検証による検証結果を生成して検証者端末に送信する（ステップ６９５）。
そして、検証者端末は、長期署名サーバ２から検証結果を受信して検証者に提示する（ステップ７００）。
なお、ＡＴＳがＡＴＳ（２ｎｄ）、ＡＴＳ（３ｒｄ）と更に下の世代が存在する場合も同様にして検証する。
【０１０９】
以上のように、上の検証方法によると、検証者は原本データを検証者端末に保持したまま長期署名サーバ２で長期署名データの検証を行うことができる。
そのため、例えば、甲が原本データと長期署名データを乙に提供し、原本データを甲乙以外の者に渡したくない場合に、乙は原本データを長期署名サーバ２に提供せずに長期署名データによる原本データの正当性を確認することができる。
【０１１０】
また、例え、ＥＳ−Ｔの生成で用いたアルゴリズムが危殆化したとしてもＡＴＳ（１ｓｔ）の生成に用いたアルゴリズムが危殆化するまではＥＳ−Ａ（１ｓｔ）の証拠性は失われない。
そして、ＡＴＳ（１ｓｔ）の生成に用いたアルゴリズムが危殆化する可能性がある場合は、更に最新のアルゴリズムでＡＴＳ（２ｎｄ）を付与すれば証拠性は失われない。
以降、最新のアルゴリズムで世代を重ねていくことにより証拠性を未来に渡って維持することができる。
【０１１１】
以上に説明した検証方法により、次の構成を得ることができる。
署名対象データと前記署名対象データを検証する検証情報、及び前記署名対象データと検証情報を所定期間検証する長期検証情報を含む長期検証情報を用いて構成され、原本データの正当性を検証するための長期署名データを検証者端末から受信する長期署名データ受信手段と、前記署名対象データに含まれる所定の情報を抽出して長期検証情報作成用情報を作成し、当該作成した長期検証情報作成用情報を前記検証者端末に送信する長期検証情報作成用情報送信手段と、前記検証者端末から、前記送信した長期検証情報作成用情報に前記原本データを加えて所定の関数で計算した長期検証情報作成用関数値を受信する長期検証情報作成用関数値受信手段と、前記受信した長期検証情報作成用関数値を用いて前記長期検証情報を検証する長期検証情報検証手段と、を具備したことを特徴とする長期署名検証用サーバ（第１の構成）。
前記検証情報を用いて前記署名対象データを検証する署名対象データ検証手段を具備し、前記長期検証情報検証手段は、前記署名対象データ検証手段が検証した後に前記長期検証情報を検証することを特徴とする第１の構成の長期署名検証用サーバ（第２の構成）。
【０１１２】
このように、本実施の形態は、原本データをサーバ側に渡さずにサーバ側で原本データに対する署名を検証することができる。
この場合、端末は、原本データの所定関数による関数値と、当該原本データの署名データ（原本データの関数値を秘密鍵で暗号化した署名値、当該秘密鍵に対応する公開鍵の公開鍵証明書）を送信し、サーバは、署名値を公開鍵で復号化して関数値を取り出し、当該取り出した関数値と端末が送信してきた関数値を比べることにより原本データ（関数値が正当なら原本データも正当）の正当性を判断すると共に、認証パスに係る証明書を用いて公開鍵証明書の正当性を確認する。
更に、署名データが長期署名である場合には、サーバは、署名データを構成する情報を用いて長期署名を確認するための関数値を作成するための情報から原本データを除いた情報を作成して端末に送信する。
これに対し、端末は、当該情報に原本データを加えて所定関数による関数値を計算してサーバに送信し、サーバは当該関数値を用いて長期署名の正当性を検証する。
なお、本実施形態として次の要に構成することも可能である。
（構成１）
署名対象データを取得する署名対象データ取得手段と、
前記取得した署名対象データに電子署名するための署名用データを長期署名用端末に送信する署名用データ送信手段と、
前記長期署名用端末から、前記送信した署名用データを用いて生成された前記署名対象データの電子署名値を受信する署名値受信手段と、
前記受信した電子署名値に対してタイムスタンプを取得するタイムスタンプ取得手段と、
少なくとも、前記取得した署名対象データ、前記受信した電子署名値、及び前記取得したタイムスタンプを用いて基本署名データを生成する署名データ生成手段と、
を具備したことを特徴とする長期署名用サーバ。
（構成２）
前記長期署名用端末から、原本データを所定の関数で計算した関数値、及び前記電子署名値の生成に用いる秘密鍵に対応する公開鍵を含む公開鍵証明書を受信する関数値証明書受信手段を具備し、
前記署名対象データ取得手段は、少なくとも、前記受信した関数値、及び前記公開鍵証明書を用いて署名対象データを生成することにより前記署名対象データを取得することを特徴とする構成１に記載の長期署名用サーバ。
（構成３）
前記受信した公開鍵証明書、及び前記タイムスタンプを検証する検証情報を取得する検証情報取得手段を具備し、
前記署名データ生成手段は、前記取得した検証情報を前記基本署名データに加えることを特徴とする構成２に記載の長期署名用サーバ。
（構成４）
前記基本署名データを所定期間検証するための長期検証情報を取得する長期検証情報取得手段を具備し、
前記署名データ生成手段は、前記取得した長期検証情報を前記生成した基本署名データに加えて長期署名データを生成することを特徴とする構成３に記載の長期署名用サーバ。
（構成５）
長期検証情報を作成するための長期検証情報作成用情報を前記長期署名用端末に送信する長期検証情報作成用情報送信手段と、
前記送信した長期検証情報作成用情報に前記原本データを加えて所定関数で計算した長期検証情報作成用関数値を前記長期署名用端末から受信する長期検証情報作成用関数値受信手段と、
を具備し、
前記長期検証情報取得手段は、前記受信した長期検証情報作成用関数値にタイムスタンプを付与して前記長期検証情報を取得することを特徴とする構成４に記載の長期署名用サーバ。
（構成６）
長期署名用端末から長期署名データを受信する長期署名データ受信手段と、
前記受信した長期署名データから長期検証情報を抽出する長期検証情報抽出手段と、
前記抽出した長期検証情報を所定期間検証するための再度の長期検証情報を取得する再度の長期検証情報取得手段と、
を具備し、
前記署名データ生成手段は、前記受信した長期署名データに前記取得した再度の長期検証情報を加えて当該長期署名データを更新することを特徴とする構成４、又は構成５に記載の長期署名用サーバ。
（構成７）
再度の長期検証情報を作成するための再度の長期検証情報作成用情報を前記長期署名用端末に送信する再度の長期検証情報作成用情報送信手段と、
前記送信した再度の長期検証情報作成用情報に前記原本データを加えて所定関数で計算した再度の長期検証情報作成用関数値を前記長期署名用端末から受信する再度の長期検証情報作成用関数値受信手段と、
を具備し、
前記再度の長期検証情報取得手段は、前記受信した再度の長期検証情報作成用関数値にタイムスタンプを付与して前記再度の長期検証情報を取得することを特徴とする構成６に記載の長期署名用サーバ。
（構成８）
前記署名対象データは、前記受信した公開鍵証明書を所定の関数で計算した関数値を含んでいることを特徴とする構成１から構成７までのうちの何れか１の構成に記載の長期署名用サーバ。
（構成９）
前記長期署名用端末に、
秘密鍵を用いて電子署名する電子署名機能と、
前記秘密鍵に対応する公開鍵の公開鍵証明書を長期署名用サーバに送信する公開鍵証明書送信機能と、
原本データを所定の関数で計算した関数値を長期署名用サーバに送信する関数値送信機能と、
前記送信した公開鍵証明書と前記関数値を用いて生成された署名対象データに電子署名するための署名用データを前記長期署名用サーバから受信する署名用データ受信機能と、
前記受信した署名用データを用いて前記署名対象データに前記電子署名機能で電子署名し、当該電子署名による電子署名値を前記長期署名用サーバに送信する署名値送信機能と、
をコンピュータで実現する長期署名用端末プログラムを送信するプログラム送信手段を具備したことを特徴とする構成１から構成８に記載の長期署名用サーバ。
（構成１０）
秘密鍵を用いて電子署名する電子署名手段と、
前記秘密鍵に対応する公開鍵の公開鍵証明書を長期署名用サーバに送信する公開鍵証明書送信手段と、
原本データを所定の関数で計算した関数値を長期署名用サーバに送信する関数値送信手段と、
前記送信した公開鍵証明書と前記関数値を用いて生成された署名対象データに電子署名するための署名用データを前記長期署名用サーバから受信する署名用データ受信手段と、
前記受信した署名用データを用いて前記署名対象データに前記電子署名手段で電子署名し、当該電子署名による電子署名値を前記長期署名用サーバに送信する署名値送信手段と、
を具備したことを特徴とする長期署名用端末。
（構成１１）
前記長期署名用サーバから、前記送信した関数値、公開鍵証明書、電子署名値を含む基本署名データを所定期間検証する長期検証情報を作成するための長期検証情報作成用情報を受信する長期検証情報作成用情報受信手段と、
前記受信した長期検証情報作成用情報に、前記原本データを加え、当該原本データを加えた長期検証情報作成用情報を所定関数によって計算して長期検証情報作成用関数値を生成する長期検証情報作成用関数値生成手段と、
前記生成した長期検証情報作成用関数値を前記長期署名用サーバに送信する長期検証情報作成用関数値送信手段と、
を具備したことを特徴とする構成１０に記載の長期署名用端末。
（構成１２）
前記送信した関数値、公開鍵証明書、電子署名値を含む基本署名データ、及びこれらを所定期間検証する長期検証情報を含む長期署名データを前記長期署名用サーバに送信する長期署名データ送信手段と、
前記長期署名用サーバから、前記送信した長期署名データの長期検証情報を所定期間検証する再度の長期検証情報を作成するための再度の長期検証情報作成用情報を受信する再度の長期検証情報作成用情報受信手段と、
前記受信した再度の長期検証情報作成用情報に、前記原本データを加え、当該原本データを加えた再度の長期検証情報作成用情報を所定関数によって計算して再度の長期検証情報作成用関数値を生成する再度の長期検証情報作成用関数値生成手段と、
前記生成した再度の長期検証情報作成用関数値を前記長期署名用サーバに送信する再度の長期検証情報作成用関数値送信手段と、
を具備したことを特徴とする構成１１に記載の長期署名用端末。
（構成１３）
秘密鍵を用いて電子署名する電子署名機能と、
前記秘密鍵に対応する公開鍵の公開鍵証明書を長期署名用サーバに送信する公開鍵証明書送信機能と、
原本データを所定の関数で計算した関数値を長期署名用サーバに送信する関数値送信機能と、
前記送信した公開鍵証明書と前記関数値を用いて生成された署名対象データに電子署名するための署名用データを前記長期署名用サーバから受信する署名用データ受信機能と、
前記受信した署名用データを用いて前記署名対象データに前記電子署名機能で電子署名し、当該電子署名による電子署名値を前記長期署名用サーバに送信する署名値送信機能と、
をコンピュータで実現する長期署名用端末プログラム。
（構成１４）
署名対象データと前記署名対象データを検証する検証情報、及び前記署名対象データと検証情報を所定期間検証する長期検証情報を含む長期検証情報を用いて構成され、原本データの正当性を検証するための長期署名データを検証者端末から受信する長期署名データ受信手段と、
前記長期署名データに含まれる所定の情報を抽出して長期検証情報作成用情報を作成し、当該作成した長期検証情報作成用情報を前記検証者端末に送信する長期検証情報作成用情報送信手段と、
前記検証者端末から、前記送信した長期検証情報作成用情報に前記原本データを加えて所定の関数で計算した長期検証情報作成用関数値を受信する長期検証情報作成用関数値受信手段と、
前記受信した長期検証情報作成用関数値を用いて前記長期検証情報を検証する長期検証情報検証手段と、を具備したことを特徴とする長期署名検証用サーバ。
（構成１５）
前記検証情報を用いて前記署名対象データを検証する署名対象データ検証手段を具備し、
前記長期検証情報検証手段は、前記署名対象データ検証手段が検証した後に前記長期検証情報を検証することを特徴とする構成１４に記載の長期署名検証用サーバ。
（構成１６）
電子署名値と、当該署名値の生成に用いた秘密鍵に対応する公開鍵の公開鍵証明書を含む署名データを受信する署名データ受信手段と、
原本データの所定関数による関数値を受信する関数値受信手段と、
前記公開鍵証明書を用いて前記電子署名値を復号化し、当該復号化した値と前記受信した関数値を比べることにより前記受信した関数値の正当性を確認する関数値確認手段と、
前記公開鍵証明書の正当性を検証する認証パスに係る証明書を用いて前記公開鍵証明書の正当性を確認する証明書確認手段と、
を具備したことを特徴とする長期署名検証用サーバ。
（各構成による効果）
以上の各構成によれば、秘密鍵などを用いる処理をクライアント端末に分担させることにより、社外に持ち出すことが困難な秘密鍵や原本データをクライアント側に保持したままサーバ側で長期署名データを作成したり検証できる。
【符号の説明】
【０１１３】
１  長期署名システム
２  長期署名サーバ
３  クライアント端末
４  インターネット
５  タイムスタンプサーバ
６  リポジトリサーバ
７  リポジトリサーバ
【図１】
0005477922.tif 000002
【図２】
0005477922.tif 000003
【図３】
0005477922.tif 000004
【図４】
0005477922.tif 000005
【図５】
0005477922.tif 000006
【図６】
0005477922.tif 000007
【図７】
0005477922.tif 000008
【図８】
0005477922.tif 000009
【図９】
0005477922.tif 000010
【図１０】
0005477922.tif 000011
【図１１】
0005477922.tif 000012
【図１２】
0005477922.tif 000013