(57)【特許請求の範囲】
【請求項１】
被証明データを生成或いは利用可能な複数のクライアント装置と、前記複数のクライアント装置のそれぞれに対してネットワークを介して秘密鍵データを提供すると共に当該秘密鍵データに対応する公開鍵データを発行する認証機関と、無効化対象の被証明データの公開鍵データを示す無効リストデータを前記ネットワークを介して配信する無効リスト配信サーバと、を有する情報処理システムの情報処理方法であって、
前記複数のクライアント装置の内の第１のクライアント装置が、被証明データに関する署名データを生成する度に、カウントデータを増加あるいは減少の何れか一方向に前記第１のクライアント装置内でセキュアな状態で更新する第１の工程と、
前記第１のクライアント装置が、前記被証明データと前記第１の工程で更新した前記カウントデータとに対して、前記認証機関の提供する秘密鍵データを基に前記署名データを生成する第２の工程と、
前記第１のクライアント装置が、前記第１の工程で更新したカウントデータと、前記第２の工程で生成した前記署名データと、前記第２の工程において使用した前記秘密鍵データに対応する前記公開鍵データと、を前記被証明データに付加する第３の工程と、
前記複数のクライアント装置の内の第２のクライアント装置が、前記第１のクライアント装置から前記被証明データを取得すると共に、前記無効リスト配信サーバから、無効化対象の被証明データの公開鍵データと対応するカウントデータとを予め対応付けた前記無効リストデータを取得する第４の工程と、
前記第２のクライアント装置が、前記第４の工程において取得した前記被証明データに付加された前記公開鍵データが前記無効リストデータ内にあるか否かを基に、前記公開鍵データの正当性を検証する第５の工程と、
前記第２のクライアント装置が、前記第４の工程において取得した前記被証明データに付加された前記署名データが、前記付加された公開鍵データに対応する秘密鍵データを基に生成されたか否かを検証する第６の工程と、
前記第２のクライアント装置が、前記第６の工程で前記署名データが前記秘密鍵データを基に生成されたと判断したことを条件に、前記第４の工程において取得した前記被証明データに付加されたカウントデータと、無効リストデータに記載された、当該被証明データの公開鍵データに対応付けられたカウントデータとを基に、前記署名データの有効性を判断する第７の工程と、
を有する情報処理方法。
【請求項２】
前記第１のクライアント装置が、前記第１の工程で更新した前記カウントデータの履歴を示すログデータを記憶し、バックアップ指示に応じて前記ログデータを当該第１のクライアント装置の外部の記憶装置に記憶させる第８の工程
をさらに有する請求項１に記載の情報処理方法。
【請求項３】
前記第１のクライアント装置が、当該第１のクライアント装置の起動時に、当該第１のクライアント装置上で起動されたＢＩＯＳ、ローダ、オペレーティングシステムおよびアプリケーションプログラムの各々のハッシュデータを含む動作環境データを生成する第９の工程をさらに有し、
前記第３の工程において、前記第９の工程で生成した前記動作環境データを前記被証明データにさらに付加する
請求項１に記載の情報処理方法。
【請求項４】
前記第２のクライアント装置が、前記被証明データに付加され、前記署名データを生成するコンピュータの起動時に当該コンピュータ上で起動されたＢＩＯＳ、ローダ、オペレーティングシステムおよびアプリケーションプログラムの各々のハッシュデータの正当性を検証する第１０の工程
をさらに有し、
前記第７の工程は、前記第１０の工程で正当性が検証されたことを条件に実行される
請求項１に記載の情報処理方法。
【請求項５】
被証明データを生成或いは利用可能な複数のクライアント装置と、前記複数のクライアント装置のそれぞれに対してネットワークを介して秘密鍵データを提供すると共に当該秘密鍵データに対応する公開鍵データを発行する認証機関と、無効化対象の被証明データの公開鍵データを示す無効リストデータを前記ネットワークを介して配信する無効リスト配信サーバと、を有する情報処理システムであって、
前記複数のクライアント装置の内の第１のクライアント装置は、
被証明データに関する署名データを生成する度に、カウントデータを増加あるいは減少の何れか一方向に前記第１のクライアント装置内でセキュアな状態で更新し、
前記被証明データと前記更新した前記カウントデータとに対して、前記認証機関の提供する秘密鍵データを基に前記署名データを生成し、
前記更新したカウントデータと、前記生成した前記署名データと、前記署名データを生成する際に使用した前記秘密鍵データに対応する前記公開鍵データと、を前記被証明データに付加し、
前記複数のクライアント装置の内の第２のクライアント装置は、
前記第１のクライアント装置から前記被証明データを取得すると共に、前記無効リスト配信サーバから、無効化対象の被証明データの公開鍵データと対応するカウントデータとを予め対応付けた前記無効リストデータを取得し、
前記取得した前記被証明データに付加された前記公開鍵データが前記無効リストデータ内にあるか否かを基に、前記公開鍵データの正当性を検証し、
前記取得した被証明データに付加された前記署名データが、前記付加された公開鍵データに対応する秘密鍵データを基に生成されたか否かを検証し、
前記署名データが前記秘密鍵データを基に生成されたと判断したことを条件に、前記取得した被証明データに付加されたカウントデータと、無効リストデータに記載された、当該被証明データの公開鍵データに対応付けられたカウントデータとを基に、前記署名データの有効性を判断する
情報処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、署名された被証明データの有効性を検証する情報処理方法及び情報処理システムに関する。
【背景技術】
【０００２】
例えば、クライアント装置は、ユーザの操作に応じて文書データなどを生成し、その正当性を示す署名データを当該文書データに付加して他のクライアント装置に送信する場合がある。
このようなクライアント装置では、署名データは、当該クライアント装置内に記憶された秘密鍵データを基に生成される。
ところで、上記クライアント装置が盗難等された場合に、盗難を行った不正なユーザは、クライアント装置内に記憶された秘密鍵データを基に署名データを生成することで、クライアント装置の正当なユーザになりすますことができる。
このような事態を防止するために、例えば、クライアント装置が盗難された場合に、盗難にあった時刻を指定して、公開鍵の発行元のサーバ装置に通知を行い、当該サーバ装置が、上記指定された時刻以降は公開鍵証明書データが無効であることを示す有効期間データを公開鍵証明書データと対応付けて発行する。
【０００３】
署名データの検証側は、検証対象の署名データ内に含まれる当該署名データの生成時刻を示す生成時刻データと、上記サーバ装置から受信した有効時間データとを基に、署名データの有効性を検証する。
【０００４】
【特許文献１】特開２００１−５７５５２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ところで、上述した従来のシステムでは、生成時刻データの基準となるクライアント装置内のタイマが示すタイマ値が不正に設定されてしまうと、署名データの有効性を正しく検証できないという問題がある。
【０００６】
本発明は上述した従来技術の問題点を解決し、上述した目的を達成するために、被証明データに付された署名データの有効性を高い信頼性で検証することを可能にする情報処理方法及び情報処理システムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
上述した従来技術の問題点を解決し、上述した目的を達成するため、第１の発明の情報処理方法は、被証明データを生成或いは利用可能な複数のクライアント装置と、前記複数のクライアント装置のそれぞれに対してネットワークを介して秘密鍵データを提供すると共に当該秘密鍵データに対応する公開鍵データを発行する認証機関と、無効化対象の被証明データの公開鍵データを示す無効リストデータを前記ネットワークを介して配信する無効リスト配信サーバと、を有する情報処理システムの情報処理方法であって、前記複数のクライアント装置の内の第１のクライアント装置が、被証明データに関する署名データを生成する度に、カウントデータを増加あるいは減少の何れか一方向に前記第１のクライアント装置内でセキュアな状態で更新する第１の工程と、前記第１のクライアント装置が、前記被証明データと前記第１の工程で更新した前記カウントデータとに対して、前記認証機関の提供する秘密鍵データを基に前記署名データを生成する第２の工程と、前記第１のクライアント装置が、前記第１の工程で更新したカウントデータと、前記第２の工程で生成した前記署名データと、前記第２の工程において使用した前記秘密鍵データに対応する前記公開鍵データと、を前記被証明データに付加する第３の工程と、前記複数のクライアント装置の内の第２のクライアント装置が、前記第１のクライアント装置から前記被証明データを取得すると共に、前記無効リスト配信サーバから、無効化対象の被証明データの公開鍵データと対応するカウントデータとを予め対応付けた前記無効リストデータを取得する第４の工程と、前記第２のクライアント装置が、前記第４の工程において取得した前記被証明データに付加された前記公開鍵データが前記無効リストデータ内にあるか否かを基に、前記公開鍵データの正当性を検証する第５の工程と、前記第２のクライアント装置が、前記第４の工程において取得した前記被証明データに付加された前記署名データが、前記付加された公開鍵データに対応する秘密鍵データを基に生成されたか否かを検証する第６の工程と、前記第２のクライアント装置が、前記第６の工程で前記署名データが前記秘密鍵データを基に生成されたと判断したことを条件に、前記第４の工程において取得した前記被証明データに付加されたカウントデータと、無効リストデータに記載された、当該被証明データの公開鍵データに対応付けられたカウントデータとを基に、前記署名データの有効性を判断する第７の工程と、を有する。
【０００８】
第２の発明の情報処理システムは、被証明データを生成或いは利用可能な複数のクライアント装置と、前記複数のクライアント装置のそれぞれに対してネットワークを介して秘密鍵データを提供すると共に当該秘密鍵データに対応する公開鍵データを発行する認証機関と、無効化対象の被証明データの公開鍵データを示す無効リストデータを前記ネットワークを介して配信する無効リスト配信サーバと、を有する情報処理システムであって、前記複数のクライアント装置の内の第１のクライアント装置は、被証明データに関する署名データを生成する度に、カウントデータを増加あるいは減少の何れか一方向に前記第１のクライアント装置内でセキュアな状態で更新し、前記被証明データと前記更新した前記カウントデータとに対して、前記認証機関の提供する秘密鍵データを基に前記署名データを生成し、前記更新したカウントデータと、前記生成した前記署名データと、前記署名データを生成する際に使用した前記秘密鍵データに対応する前記公開鍵データと、を前記被証明データに付加し、前記複数のクライアント装置の内の第２のクライアント装置は、前記第１のクライアント装置から前記被証明データを取得すると共に、前記無効リスト配信サーバから、無効化対象の被証明データの公開鍵データと対応するカウントデータとを予め対応付けた前記無効リストデータを取得し、前記取得した前記被証明データに付加された前記公開鍵データが前記無効リストデータ内にあるか否かを基に、前記公開鍵データの正当性を検証し、前記取得した被証明データに付加された前記署名データが、前記付加された公開鍵データに対応する秘密鍵データを基に生成されたか否かを検証し、前記署名データが前記秘密鍵データを基に生成されたと判断したことを条件に、前記取得した被証明データに付加されたカウントデータと、無効リストデータに記載された、当該被証明データの公開鍵データに対応付けられたカウントデータとを基に、前記署名データの有効性を判断する。
【発明の効果】
【００２２】
本発明によれば、被証明データに付された署名データの有効性を適切に検証することを可能にする情報処理方法及び情報処理装置を提供することができる。
【発明を実施するための最良の形態】
【００２３】
以下、本発明の実施形態に係わる通信システムについて説明する。
＜第１実施形態＞
以下、本発明の第１実施形態を説明する。
〔本発明の構成との対応関係〕
先ず、本実施形態の構成要素と、本発明の構成要素との対応関係を説明する。
本実施形態において、アプリケーションプログラムＡＰが、第１および第２の発明のプログラムに対応している。
ここで、図６に示すステップＳＴ１５が第１の発明の第１の手順および第２の手順、並びに第３の発明の第１の工程および第２の工程に対応している。
また、図６に示すステップＳＴ１８が第１の発明の第３の手順、並びに第３の発明の第３の工程に対応している。
また、図２に示すメモリ４３が第２の発明のメモリに対応し、ＣＰＵ４５が第２の発明の実行回路に対応し、図４に示すカウンタ５８が第２の発明のカウンタに対応している。
また、本発明において、文書データＤＤが本発明の被証明データに対応している。
【００２４】
また、本実施形態において、オペレーティングシステムＯＳが、第４および第５の発明のプログラムに対応している。
ここで、図８に示すステップＳＴ３５が第４の発明の第１の手順、並びに第６の発明の第１の工程に対応している。
また、図８に示すステップＳＴ３９〜ＳＴ４３が第４の発明の第２の手順、並びに第６の発明の第２の工程に対応している。
また、図２に示すメモリ４３が第５の発明のメモリに対応し、ＣＰＵ４５が第５の発明の実行回路に対応している。
また、ＣＰＵ４５が、本発明のコンピュータに対応している。
【００２５】
図１は、本発明の第１実施形態の通信システム１の全体構成図である。
図１に示すように、通信システム１は、例えば、クライアント装置Ｃ１，Ｃ２、文書配信サーバ１０、認証機関（ＣＡ）１２および無効リスト配信サーバ１４を有する。
本実施形態では、クライアント装置Ｃ１，Ｃ２、文書配信サーバ１０、認証機関１２および無効リスト配信サーバ１４の間の通信はネットワーク９を介して行われる。
なお、本実施形態では２つのクライアント装置を例示するが、クライアント装置の数は任意である。
【００２６】
〔認証機関１２〕
認証機関１２は、クライアント装置Ｃ１，Ｃ２の各々のセキュリティチップＳＣに対して秘密鍵データＫｐｒｉ１，Ｋｐｒｉ２（Ｋｐｒｉ）を発行し、これらをセキュアな状態で提供する。
また、認証機関１２は、秘密鍵データＫｐｒｉ１，Ｋｐｒｉ２の各々に対応した公開鍵証明データＣｅｒｔ１，Ｃｅｒｔ２（Ｃｅｒｔ）を発行する。
【００２７】
〔無効リスト配信サーバ１４〕
無効リスト配信サーバ１４は、クライアント装置Ｃ１，Ｃ２から、無効対象の署名データＳＤの生成に用いられた秘密鍵データＫｐｒｉに対応した公開鍵データＫｐｕｂの識別データＫｐｕｂＩＤと、無効にする直前に署名データＳＤを生成したときのカウントデータＣＤとを含む無効通知データＲＮを受信する。
そして、無効リスト配信サーバ１４は、無効通知データＲＮを基に、無効リストデータＲＬＩＳＴを更新する。
無効リストデータＲＬＩＳＴは、無効対象の識別データＫｐｕｂＩＤと、カウントデータＣＤとを対応付けて示している。
【００２８】
以下、クライアント装置Ｃ１について説明する。
なお、クライアント装置Ｃ２は、クライアント装置Ｃ１と同じ構成を有している。
クライアント装置Ｃ１，Ｃ２は、例えば、パーソナルコンピュータ、ＰＤＡ(Personal Digital Assistants)および携帯電話などの通信機器である。
〔クライアント装置Ｃ１〕
図２は、図１に示すクライアント装置Ｃ１の構成図である。
図２に示すように、クライアント装置Ｃ１は、例えば、インタフェース４２、メモリ４３、セキュリティチップＳＣ、ＣＰＵ４５、ディスプレイ４６および操作部４７を有し、これらがデータ線４０を介して接続されている。
【００２９】
インタフェース４２は、ネットワーク９を介してクライアント装置Ｃ２との間でデータおよび要求の送受信を行う。
メモリ４３は、プログラムＢＩＯＳ(Basic Input/Output System) 、ローダプログラムＬｏａｄｅｒ、オペレーティングシステムＯＳ( Operating System) およびアプリケーションプログラムＡＰを記憶する。
アプリケーションプログラムＡＰとしては、クライアント装置Ｃ１の動作を統括的に制御するプログラムＰＲＧ＿Ｃ、文書作成プログラムＷ＿ＡＰおよび文書閲覧プログラムＲ＿ＡＰが備えられている。
【００３０】
ＣＰＵ４５は、メモリ４３に記憶された種々のプログラムを読み出し、所定のソフトウェア環境を実現する。
ＣＰＵ４５は、例えば、図３に示すように、ＣＰＵ４５およびセキュリティチップＳＣなどのハードウェア上でプログラムＢＩＯＳを動作させる。
また、ＣＰＵ４５は、プログラムＢＩＯＳ上でローダプログラムＬｏａｄｅｒを動作させ、このローダプログラムＬｏａｄｅｒを基にオペレーティングシステムＯＳを起動する。
また、ＣＰＵ４５は、オペレーティングシステムＯＳ上でアプリケーションプログラムＡＰを動作させる。
ＣＰＵ４５は、クライアント装置Ｃ１の後述する動作例で示す処理を統括的に制御する。
ＣＰＵ４５による制御は、後述する動作例と関連付けて説明する。
本実施形態では、ＣＰＵ４５は、後述するより、図５に示すように、文書データＤＤのハッシュデータＨＤと、署名データＳＤ生成時のカウントデータＣＤと、署名データＳＤと、公開鍵証明書データＣｅｒｔとを文書データＤＤに付加して文書配信サーバ１０に送信する。
【００３１】
セキュリティチップＳＣは、耐タンパ性の回路であり、外部から当該回路に対する攻撃（内部データの不正読み出し、入力周波数や入力電圧を所定外に設定する攻撃）を加えたときに、誤動作や内部データの洩漏を生じないように構成された回路である。
【００３２】
ディスプレイ４６は、ＣＰＵ４５からの表示信号に応じた画面を表示する。
操作部４７は、キーボードやマウスなどの操作手段であり、ユーザの操作に応じた操作信号をＣＰＵ４５に出力する。
【００３３】
図４は、図３に示すセキュリティチップＳＣの構成図である。
図４に示すように、セキュリティチップＳＣは、例えば、入出力回路（Ｉ／Ｏ）５１、鍵生成回路５２、ハッシュ回路５３、乱数発生回路５４、署名・暗号回路５５、メモリ５６、プロセッサ５７およびカウンタ５８を有し、これらがデータ線５０を介して接続されている。
【００３４】
入出力回路５１は、図２に示すデータ線４０に接続され、セキュリティチップＳＣの内部と外部との間でデータ入出力を行う。
鍵生成回路５２は、例えば、乱数発生回路５４が発生した乱数を基に、セキュリティに係わる種々の鍵データを生成する。
ハッシュ回路５３は、ハッシュデータを生成する。
乱数発生回路５４は、乱数を発生（生成）する。
署名・暗号回路５５は、鍵データを用いた暗号化および復号を行い、暗号データの生成、暗号データの復号、署名データの生成、並びに署名データの検証を行う。
メモリ５６は、セキュリティチップＳＣの秘密鍵データＫｐｒｉ１を記憶する。
また、メモリ５６は、サーバ装置Ｓ１の起動時に生成された起動プログラム検証データＰＨＤを記憶する。
また、メモリ５６は、署名データＳＤの公開鍵データの識別データＫｐｕｂＩＤと、署名鍵データＳＤの生成時のカウントデータＣＤとの履歴を対応付けて示すログデータＬＯＧを記憶する。
また、メモリ５６は、公開鍵証明書データＣｅｒｔ１を記憶する。
【００３５】
プロセッサ５７は、図２に示すＣＰＵ４５からの制御に従って、セキュリティチップＳＣの動作を統括して制御する。
カウンタ５８は、署名・暗号回路５５が署名データを作成する度に、そのカウント値を「１」だけ増加（インクリメント）する。
なお、カウンタ５８は、署名・暗号回路５５が署名データを作成する度に、そのカウント値を「１」だけ減少（デクリメント）してもよい。
カウンタ５８は、セキュリティチップＳＣに内蔵されているため、カウント値はセキュアな状態で更新され、ユーザはそのカウント値を調整できない。
【００３６】
以下、クライアント装置Ｃ１の動作例を説明する。
〔第１の動作例〕
以下、クライアント装置Ｃが文書データＤＤを生成する場合の動作例を説明する。
図６は、当該動作例を説明するためのフローチャートである。
ステップＳＴ１１：
図２に示すクライアント装置Ｃ１のＣＰＵ４５が、文書作成プログラムＷ＿ＡＰに従って、操作部４７から入力した操作信号を基に、文書データＤＤを生成する。
ステップＳＴ１２：
ＣＰＵ４５が、文書作成プログラムＷ＿ＡＰに従って、ステップＳＴ１１で生成した文書データＤＤのハッシュデータＨＤを生成し、これをセキュリティチップＳＣに出力する。
具体的には、ハッシュデータＨＤは、文書作成プログラムＷ＿ＡＰからオペレーティングシステムＯＳを経由してセキュリティチップＳＣに出力される。
文書作成プログラムＷ＿ＡＰは、オペレーティングシステムＯＳにハッシュデータＨＤを提供（出力）し、署名データＳＤの生成を指示する。
【００３７】
ステップＳＴ１３  
セキュリティチップＳＣのプロセッサ５７は、ＣＰＵ４５からの指示（プログラムＰＲＧ＿Ｃ）に従って、カウンタ５８のカウンタ値を示すカウントデータＣＤを読み出す。
ステップＳＴ１４：
プロセッサ５７は、ステップＳＴ１２で入力したハッシュデータＨＤと、ステップＳＴ１３で読み出したカウントデータＣＤとを連結してデータＨＤ＋ＣＤを生成する。
ステップＳＴ１５：
セキュリティチップＳＣの署名・暗号回路５５が、メモリ５６から読み出した秘密鍵データＫｐｒｉ１を基に、ステップＳＴ１４で生成されたデータＨＤ＋ＣＤの署名データＳＤを生成する。
そして、カウンタ５８は、カウントデータＣＤのカウント値を「１」だけ増加させる。
ステップＳＴ１６：
セキュリティチップＳＣのプロセッサ５７は、署名データＳＤ、並びにその生成時のカウントデータＣＤを基に、メモリ５６に記憶されているログデータＬＯＧを更新する。
ユーザは、メモリ５６に記憶されているログデータを定期的にバックアップしてクライアント装置Ｃ１の外部の記録媒体に記録する。
【００３８】
ステップＳＴ１７：
プロセッサ５７は、ステップＳＴ１４で生成したデータＣＤ＋ＨＤ、ステップＳＴ１５で生成した署名データＳＤ、並びにメモリ５６から読み出した公開鍵証明書データＣｅｒｔ１を、入出力回路５１を介してＣＰＵ４５に出力する。
ステップＳＴ１８：
ＣＰＵ４５は、文書作成プログラムＷ＿ＡＰに従って、ステップＳＴ１７で入力したデータＣＤ＋ＨＤ、署名データＳＤ、並びに公開鍵証明書データＣｅｒｔ１を、ステップＳＴ１１で生成した文書データＤＤに付加する。
ステップＳＴ１９：
ＣＰＵ４５は、ステップＳＴ１８でデータＣＤ＋ＨＤ等が付加された文書データＤＤを、インタフェース４２を介して図１に示す文書配信サーバ１０に送信する。
文書配信サーバ１０は、例えば、クライアント装置Ｃ２からの要求に応じて、ステップＳＴ１８でデータＣＤ＋ＨＤ等が付加された文書データＤＤをクライアント装置Ｃ２に送信する。
【００３９】
〔第２の動作例〕
以下、クライアント装置Ｃ１が盗難等され、正当なユーザが署名データの無効化を無効リスト配信サーバ１４に指示する場合の動作例を説明する。
図７は、当該動作例を説明するためのフローチャートである。
ステップＳＴ２１：
クライアント装置Ｃ１が盗難等されると、正当なユーザが所定のコンピュータを操作し、過去にクライアント装置Ｃ１から外部の記録媒体に記憶したログデータＬＯＧを基に、上記コンピュータが、図１に示すように、公開鍵データＫｐｕｂの識別データＫｐｕｂＩＤと、ログデータＬＯＧが示す最新の署名データＳＤのカウントデータＣＤとを含む無効通知データＲＮを生成する。
ステップＳＴ２２：
上記コンピュータは、ステップＳＴ２１で生成した無効通知データＲＮを図１に示す無効リスト配信サーバ１４に送信する。
【００４０】
ステップＳＴ２３：
無効リスト配信サーバ１４は、ステップＳＴ２２で受信した無効通知データＲＮを基に、無効リストデータＲＬＩＳＴを更新する。
ステップＳＴ２４：
無効リスト配信サーバ１４は、無効リストデータＲＬＩＳＴを公開する。
クライアント装置Ｃ１，Ｃ２を含むクライアント装置は、無効リスト配信サーバ１４から無効リストＲＬＩＳＴを受信する。
【００４１】
〔第３の動作例〕
以下、文書データＤＤを受信した場合の動作例を説明する。
以下の説明では、クライアント装置Ｃ２が、クライアント装置Ｃ１が第１の動作例で説明した手順で生成した文書データＤＤを受信する場合を説明する。
図８は、当該動作例を説明するためのフローチャートである。
ステップＳＴ３１：
ＣＰＵ４５は、オペレーティングシステムＯＳに従って、無効リスト配信サーバ１４にアクセスを行って無効リストデータＲＬＩＳＴを受信し、これをメモリ４３に書き込む。
ＣＰＵ４５は、例えば、署名データＳＤの正当性を検証する度、あるいは定期的に無効リスト配信サーバ１４から無効リストデータＲＬＩＳＴを受信する。
ステップＳＴ３２：
ＣＰＵ４５は、文書閲覧プログラムＲ＿ＡＰに従って、文書配信サーバ１０から文書データＤＤを受信する。
当該文書データＤＤには、第１の動作例で図５を参照して説明したように、カウントデータＣＤとハッシュデータＨＤとを連結したデータＣＤ＋ＨＤ、データＣＤ＋ＨＤの署名データＳＤ、並びに公開鍵証明書データＣｅｒｔ１が付加されている。
【００４２】
ステップＳＴ３３：
ＣＰＵ４５は、オペレーティングシステムＯＳに従って、ステップＳＴ３２で受信した文書データＤＤに付加された公開鍵証明書データＣｅｒｔ１の正当性を、例えば、認証機関１２にアクセスして検証する。
ステップＳＴ３４：
ＣＰＵ４５は、公開鍵証明書データＣｅｒｔ１が正当であると判断するとステップＳＴ３５に進み、そうでない場合にはステップＳＴ４３に進む。
【００４３】
ステップＳＴ３５：
ＣＰＵ４５は、オペレーティングシステムＯＳに従って、ステップＳＴ３２で受信した文書データＤＤに付加された署名データＳＤが、公開鍵証明書データＣｅｒｔ１に含まれる公開鍵データＫｐｕｂ１に対応した秘密鍵データＫｐｒｉ１を基に生成されたか否かを、図４に示すセキュリティチップＳＣの署名・暗号回路５５に検証させる。
ステップＳＴ３６：
ＣＰＵ４５は、オペレーティングシステムＯＳに従って、署名データＳＤが秘密鍵データＫｐｒｉ１を基に生成されたと判断すると判断するとステップＳＴ３７に進み、そうでない場合にステップＳＴ４３に進む。
【００４４】
ステップＳＴ３７：
ＣＰＵ４５は、公開鍵証明書データＣｅｒｔ１に含まれる公開鍵データＫｐｕｂ１の識別データＫｐｕｂＩＤに対応する項目が、ステップＳＴ３１で受信した無効リストデータＲＬＩＳＴ内に存在するか否かを判断する。
ステップＳＴ３８：
ＣＰＵ４５は、ステップＳＴ３７において存在すると判断するとステップＳＴ３９に進み、存在しないと判断するとステップＳＴ４３に進む。
【００４５】
ステップＳＴ３９：
ＣＰＵ４５は、オペレーティングシステムＯＳに従って、ステップＳＴ３２で受信した文書データＤＤに付加されたカウントデータＣＤを署名時カウント値として取得する。
ステップＳＴ４０：
ＣＰＵ４５は、オペレーティングシステムＯＳに従って、無効リストデータＲＬＩＳＴ内の識別データＫｐｕｂＩＤに対応付けられたカウントデータＣＤを無効時カウント値として取得する。
【００４６】
ステップＳＴ４１：
ＣＰＵ４５は、オペレーティングシステムＯＳに従って、ステップＳＴ３９で取得した署名時カウント値が、ステップＳＴ４０で取得した無効時カウント値より大きいか否かを判断し、大きいと判断するとステップＳＴ４３にすすみ、大きくないと判断するとステップＳＴ４２に進む。
ステップＳＴ４２：
ＣＰＵ４５は、文書データＤＤがクライアント装置Ｃ１の盗難等の前に生成された正当なものであると判断し、文書閲覧プログラムＲ＿ＡＰに従って、それを利用する。
ステップＳＴ４３：
ＣＰＵ４５は、文書データＤＤがクライアント装置Ｃ１の盗難等の後に生成された不正なものであると判断し、文書閲覧プログラムＲ＿ＡＰによるその利用を禁止する。
【００４７】
〔第４の動作例〕
以下、通信システム１の全体動作例を説明する。
図９は、当該動作例を説明するためのフローチャートである。
クライアント装置Ｃ１は、例えば、データＣＤ（１）＋ＨＤ、署名データＳＤ、並びに公開鍵証明書データＣｅｒｔ１が付加された文書データＤＤを文書配信サーバ１０に送信する（ステップＳＴ５１）。
また、クライアント装置Ｃ２は、無効リスト配信サーバ１４から無効リストデータＲＬＩＳＴを受信する（ステップＳＴ５２）。このとき、無効リストデータＲＬＩＳＴには、署名データＳＤの検証に用いられる公開鍵データＫｐｕｂ１の識別データＫｐｕｂＩＤは含まれていない。
また、クライアント装置Ｃ２は、文書配信サーバ１０から、データＣＤ（１）＋ＨＤ、署名データＳＤ、並びに公開鍵証明書データＣｅｒｔ１が付加された文書データＤＤを受信する（ステップＳＴ５３）。
次に、クライアント装置Ｃ２は、ステップＳＴ５２で受信した無効リストデータＲＬＩＳＴ内に上記識別データＫｐｕｂＩＤが含まれていないため、ステップＳＴ５３で受信した文書データＤＤは正当であると判断する（ステップＳＴ５４）。
【００４８】
その後、クライアント装置Ｃ１が盗難された場合に（ステップＳＴ５５）、クライアント装置Ｃ１の正当なユーザが、バックアップしたログデータＬＯＧを基に、公開鍵データＫｐｕｂ１の識別データＫｐｕｂＩＤと、ログデータＬＯＧが示す最新の署名データＳＤのカウントデータＣＤ（１）とを含む無効通知データＲＮを無効リスト配信サーバ１４に送信する（ステップＳＴ５６）。
無効リスト配信サーバ１４は、受信した無効通知データＲＮを基に、無効リストデータＲＬＩＳＴを更新して無効リストデータＲＬＩＳＴ（ＣＤ（１））にする。  
そして、クライアント装置Ｃ２は、無効リスト配信サーバ１４から無効リストデータＲＬＩＳＴ（ＣＤ（１））を受信する（ステップＳＴ５７）。このとき、無効リストデータＲＬＩＳＴ（ＣＤ（１））には、署名データＳＤの検証に用いられる公開鍵データＫｐｕｂ１の識別データＫｐｕｂＩＤが含まれている。
また、クライアント装置Ｃ１は、盗難を行った不正なユーザの指示に応じて、例えば、データＣＤ（２）＋ＨＤ、署名データＳＤ、並びに公開鍵証明書データＣｅｒｔ１が付加された文書データＤＤを文書配信サーバ１０に送信する（ステップＳＴ５８）。
ここで、カウントデータＣＤ（２）は、署名データＳＤのカウントデータＣＤ（１）より値が大きい。
そして、クライアント装置Ｃ２は、文書配信サーバ１０から、データＣＤ（２）＋ＨＤ、署名データＳＤ、並びに公開鍵証明書データＣｅｒｔ１が付加された文書データＤＤを受信する（ステップＳＴ５９）。
次に、クライアント装置Ｃ２は、ステップＳＴ５７で受信した無効リストデータＲＬＩＳＴ（ＣＤ（１））内に上記識別データＫｐｕｂＩＤが含まれているため、無効リストデータＲＬＩＳＴ内のカウントデータＣＤ（１）と、文書データＤＤに付加されたカウントデータＣＤ（２）とを比較し、カウントデータＣＤ（２）の方が大きいため、ステップＳＴ５９で受信した文書データＤＤは不当であると判断する（ステップＳＴ６０）。
【００４９】
以上説明したように、通信システム１では、図２および図４に示すように、クライアント装置Ｃ１において、セキュリティチップＳＣ内に設けられたカウンタ５８において署名データＳＤが生成される度にそのカウントデータＣＤを更新する（「１」だけ増加させる）。また、このカウントデータＣＤを文書データＤＤに署名データＳＤと共に付加する。
そのため、通信システム１によれば、クライアント装置Ｃ１が盗難された場合でも、不正なユーザはカウンタ５８を調整できず、当該不正なユーザが作成した文書データに付加されたカウントデータＣＤは署名データＳＤの生成に応じて適切に更新されたものになる。
従って、前述したように、検証側のクライアント装置Ｃ２において、カウントデータＣＤを基に、文書データＤＤの正当性を高い信頼性で判断できる。
【００５０】
＜第２実施形態＞
図１０は、本発明の第２実施形態の通信システム１０１の全体構成図である。
図１０に示すように、通信システム１０１は、例えば、クライアント装置Ｃ１ａ，Ｃ２ａ、文書配信サーバ１０、認証機関（ＣＡ）１２、無効リスト配信サーバ１４ａおよび時刻証明サーバ１６を有する。
図１０において、文書配信サーバ１０および認証機関１２は、第１実施形態で説明したものと同じである。
【００５１】
本実施形態において、アプリケーションプログラムＡＰａが、第８の発明のプログラムに対応している。
ここで、図１５に示すステップＳＴ７０が第８の発明の第１の手順に対応し、ＳＴ７３が第８の発明の第２の手順に対応し、ＳＴ７５が第８の発明の第３の手順に対応し、ＳＴ７７が第８の発明の第４の手順に対応している。
【００５２】
また、本実施形態において、オペレーティングシステムＯＳａが、第９の発明のプログラムに対応している。
ここで、図１７に示すステップＳＴ９５が第９の発明の第１の手順に対応している。
また、図１７に示すステップＳＴ９９が第９の発明の第２の手順に対応し、ＳＴ１００〜ＳＴ１０３が第９の発明の第３の手順に対応している。
【００５３】
〔無効リスト配信サーバ１４ａ〕
無効リスト配信サーバ１４は、クライアント装置Ｃ１ａ，Ｃ２ａから、無効対象の署名データＳＤａの生成に用いられた秘密鍵データＫｐｒｉに対応した公開鍵データＫｐｕｂの識別データＫｐｕｂＩＤと、署名データＳＤａを無効する時刻を示す無効時データＲＴＩＭＥとを含む無効通知データＲＮａを受信する。
そして、無効リスト配信サーバ１４ａは、無効通知データＲＮａを基に、無効リストデータＲＬＩＳＴａを更新する。
無効リストデータＲＬＩＳＴａは、無効対象の識別データＫｐｕｂＩＤと、無効時データＲＴＩＭＥとを対応付けて示している。
【００５４】
〔時刻証明サーバ１６〕
時刻証明サーバ１６は、クライアント装置Ｃ１ａ，Ｃ２ａから、これらのセキュリティチップが内蔵するタイマが示す時データＴＩＭＥを含む時刻証明要求を受信し、その時データＴＩＭＥを証明したことを示す時刻証明データＴ＿Ｃｅｒｔを生成し、これをクライアント装置Ｃ１ａ，Ｃ２ａに送信する。
時刻証明データＴ＿Ｃｅｒｔには、時刻証明サーバ１６内の内部時刻と、上記時データＴＩＭＥとの差分時間を示す差分時間データが含まれる。
【００５５】
以下、クライアント装置Ｃ１ａについて説明する。
なお、クライアント装置Ｃ２ａは、クライアント装置Ｃ１と同じ構成を有している。
〔クライアント装置Ｃ１ａ〕
図１１は、図１０に示すクライアント装置Ｃ１ａの構成図である。
図１１に示すように、クライアント装置Ｃ１ａは、例えば、インタフェース４２、メモリ４３、セキュリティチップＳＣａ、ＣＰＵ４５ａ、ディスプレイ４６および操作部４７を有し、これらがデータ線４０を介して接続されている。
図１１において、図２と同じ符号を付した構成要素は第１実施形態で説明したものと同じである。
メモリ４３は、アプリケーションプログラムＡＰａを記憶する。
アプリケーションプログラムＡＰａとしては、クライアント装置Ｃ１ａの動作を統括的に制御するプログラムＰＲＧ＿Ｃａ、文書作成プログラムＷ＿ＡＰａおよび文書閲覧プログラムＲ＿ＡＰａが備えられている。
【００５６】
ＣＰＵ４５ａは、メモリ４３に記憶された種々のプログラムを読み出し、所定のソフトウェア環境を実現する。
ＣＰＵ４５ａは、例えば、図１２に示すように、ＣＰＵ４５ａおよびセキュリティチップＳＣａなどのハードウェア上でプログラムＢＩＯＳを動作させる。
また、ＣＰＵ４５ａは、プログラムＢＩＯＳ上でローダプログラムＬｏａｄｅｒを動作させ、このローダプログラムＬｏａｄｅｒを基にオペレーティングシステムＯＳａを起動する。
また、ＣＰＵ４５ａは、オペレーティングシステムＯＳａ上でアプリケーションプログラムＡＰａを動作させる。
ＣＰＵ４５は、クライアント装置Ｃ１ａの後述する動作例で示す処理を統括的に制御する。
ＣＰＵ４５ａによる制御は、後述する動作例と関連付けて説明する。
本実施形態では、ＣＰＵ４５ａは、後述するより、図１４に示すように、文書データＤＤのハッシュデータＨＤと、署名データＳＤａ生成時の時データＴＩＭＥと、署名データＳＤａと、公開鍵証明書データＣｅｒｔと、時刻証明データＴ＿Ｃｅｒｔを文書データＤＤに付加して文書配信サーバ１０に送信する。
【００５７】
セキュリティチップＳＣａは、耐タンパ性の回路であり、外部から当該回路に対する攻撃（内部データの不正読み出し、入力周波数や入力電圧を所定外に設定する攻撃）を加えたときに、誤動作や内部データの洩漏を生じないように構成された回路である。
【００５８】
図１３は、図１１に示すセキュリティチップＳＣａの構成図である。
図１３において、図４と同じ符号を付した構成要素は第１実施形態で説明したものと同じである。
図１３に示すように、セキュリティチップＳＣａは、例えば、入出力回路５１、鍵生成回路５２、ハッシュ回路５３、乱数発生回路５４、署名・暗号回路５５、メモリ５６、プロセッサ５７ａおよびタイマ５９を有し、これらがデータ線５０を介して接続されている。
【００５９】
プロセッサ５７ａは、図１１に示すＣＰＵ４５ａからの制御に従って、セキュリティチップＳＣａの動作を統括して制御する。
タイマ５９は、計時を行う。タイマ５９は、セキュリティチップＳＣａに内蔵されているため、計時をセキュアな状態で行い、クライアント装置Ｃ１ａのユーザが設定を行うことはできない。
【００６０】
以下、クライアント装置Ｃ１ａの動作例を説明する。
〔第１の動作例〕
以下、クライアント装置Ｃ１ａが文書データＤＤを生成する場合の動作例を説明する。
図１５は、当該動作例を説明するためのフローチャートである。
ステップＳＴ７０：
図１１に示すクライアント装置Ｃ１ａのＣＰＵ４５ａが、例えば、クライアント装置Ｃ１ａの起動時に、図１３に示すセキュリティチップＳＣａ内のタイマ５９が示す時データＴＩＭＥを含む時刻証明要求を、インタフェース４２を介して時刻証明サーバ１６に送信する。
そして、ＣＰＵ４５ａは、上記時刻証明要求に応じて、時刻証明サーバ１６から受信した時刻証明データＴ＿Ｃｅｒｔをメモリ４３に書き込む。
時刻証明データＴ＿Ｃｅｒｔには、前述したように、時刻証明サーバ１６内の内部時刻と、上記時データＴＩＭＥとの差分時間を示す差分時間データが含まれる。
ステップＳＴ７１：
図１１に示すクライアント装置Ｃ１ａのＣＰＵ４５ａが、文書作成プログラムＷ＿ＡＰａに従って、操作部４７から入力した操作信号を基に、文書データＤＤを生成する。
ステップＳＴ７２：
ＣＰＵ４５ａが、文書作成プログラムＷ＿ＡＰａに従って、ステップＳＴ７１で生成した文書データＤＤのハッシュデータＨＤを生成し、これをセキュリティチップＳＣａに出力する。
文書作成プログラムＷ＿ＡＰａは、オペレーティングシステムＯＳａにハッシュデータＨＤを提供（出力）し、署名データＳＤの生成を指示する。
【００６１】
ステップＳＴ７３  
セキュリティチップＳＣａのプロセッサ５７ａは、ＣＰＵ４５ａからの指示（プログラムＰＲＧ＿Ｃａ）に従って、ステップＳＴ７で署名データＳＤを生成した時にタイマ５９が示す時データＴＩＭＥを取得する。
ステップＳＴ７４：
プロセッサ５７は、ステップＳＴ７２で入力したハッシュデータＨＤと、ステップＳＴ７３で取得した時データＴＩＭＥとを連結してデータＨＤ＋ＴＩＭＥを生成する。
ステップＳＴ７５：
セキュリティチップＳＣａの署名・暗号回路５５が、メモリ５６から読み出した秘密鍵データＫｐｒｉ１を基に、ステップＳＴ７４で生成されたデータＨＤ＋ＴＩＭＥの署名データＳＤａを生成する。
ステップＳＴ７６：
プロセッサ５７は、ステップＳＴ７４で生成したデータＴＩＭＥ＋ＨＤ、ステップＳＴ７５で生成した署名データＳＤａ、並びにメモリ５６から読み出した公開鍵証明書データＣｅｒｔ１を、入出力回路５１を介してＣＰＵ４５ａに出力する。
ステップＳＴ７７：
ＣＰＵ４５ａは、文書作成プログラムＷ＿ＡＰに従って、ステップＳＴ７６で入力したデータＴＩＭＥ＋ＨＤ、署名データＳＤａ、並びに公開鍵証明書データＣｅｒｔ１と、ステップＳＴ７０で取得した時刻証明データＴ＿Ｃｅｒｔとを、ステップＳＴ７１で生成した文書データＤＤに付加する。
ステップＳＴ７８：
ＣＰＵ４５ａは、ステップＳＴ７７でデータＴＩＭＥ＋ＨＤ等が付加された文書データＤＤを、インタフェース４２を介して図１に示す文書配信サーバ１０に送信する。
文書配信サーバ１０は、例えば、クライアント装置Ｃ２からの要求に応じて、ステップＳＴ７８でデータＴＩＭＥ＋ＨＤ等が付加された文書データＤＤをクライアント装置Ｃ２ａに送信する。
【００６２】
〔第２の動作例〕
以下、クライアント装置Ｃ１ａが盗難等され、正当なユーザが署名データの無効化を無効リスト配信サーバ１４ａに指示する場合の動作例を説明する。
図１６は、当該動作例を説明するためのフローチャートである。
ステップＳＴ８１：
クライアント装置Ｃ１ａが盗難等されると、正当なユーザがクライアント装置Ｃ１ａ以外の所定のコンピュータを操作し、無効対象の署名データＳＤａの生成に用いられた秘密鍵データＫｐｒｉに対応した公開鍵データＫｐｕｂの識別データＫｐｕｂＩＤと、盗難された時刻を示す無効時データＲＴＩＭＥとを含む無効通知データＲＮａを生成する。
ステップＳＴ８２：
上記コンピュータは、ステップＳＴ８１で生成した無効通知データＲＮａを図１に示す無効リスト配信サーバ１４ａに送信する。
【００６３】
ステップＳＴ８３：
無効リスト配信サーバ１４ａは、ステップＳＴ８２で受信した無効通知データＲＮａを基に、無効リストデータＲＬＩＳＴａを更新する。
ステップＳＴ８４：
無効リスト配信サーバ１４ａは、無効リストデータＲＬＩＳＴａを公開する。
クライアント装置Ｃ１ａ，Ｃ２ａを含むクライアント装置は、無効リスト配信サーバ１４ａから無効リストＲＬＩＳＴａを受信する。
【００６４】
〔第３の動作例〕
以下、文書データＤＤを受信した場合の動作例を説明する。
以下の説明では、クライアント装置Ｃ２ａが、クライアント装置Ｃ１ａが第１の動作例で説明した手順で生成した文書データＤＤを受信する場合を説明する。
図１７は、当該動作例を説明するためのフローチャートである。
ステップＳＴ９１：
ＣＰＵ４５ａは、オペレーティングシステムＯＳａに従って、無効リスト配信サーバ１４ａにアクセスを行って上述した無効リストデータＲＬＩＳＴａを受信し、これをメモリ４３に書き込む。
ＣＰＵ４５ａは、例えば、署名データＳＤａの正当性を検証する度、あるいは定期的に無効リスト配信サーバ１４ａから無効リストデータＲＬＩＳＴａを受信する。
ステップＳＴ９２：
ＣＰＵ４５ａは、文書閲覧プログラムＲ＿ＡＰａに従って、文書配信サーバ１０から文書データＤＤを受信する。
当該文書データＤＤには、第１の動作例で図１４を参照して説明したように、時データＴＩＭＥとハッシュデータＨＤとを連結したデータＴＩＭＥ＋ＨＤ、データＴＩＭＥ＋ＨＤの署名データＳＤａ、公開鍵証明書データＣｅｒｔ１、並びに時刻証明データＴ＿ＣｅｒＴが付加されている。
【００６５】
ステップＳＴ９３：
ＣＰＵ４５ａは、オペレーティングシステムＯＳａに従って、ステップＳＴ９２で受信した文書データＤＤに付加された公開鍵証明書データＣｅｒｔ１の正当性を、例えば、認証機関１２にアクセスして検証する。
ステップＳＴ９４：
ＣＰＵ４５ａは、公開鍵証明書データＣｅｒｔ１が正当であると判断するとステップＳＴ９５に進み、そうでない場合にはステップＳＴ１０３に進む。
【００６６】
ステップＳＴ９５：
ＣＰＵ４５ａは、オペレーティングシステムＯＳａに従って、ステップＳＴ９２で受信した文書データＤＤに付加された署名データＳＤａが、公開鍵証明書データＣｅｒｔ１に含まれる公開鍵データＫｐｕｂ１に対応した秘密鍵データＫｐｒｉ１を基に生成されたか否かを、図１３に示すセキュリティチップＳＣａの署名・暗号回路５５に検証させる。
ステップＳＴ９６：
ＣＰＵ４５ａは、オペレーティングシステムＯＳａに従って、署名データＳＤａが秘密鍵データＫｐｒｉ１を基に生成されたと判断すると判断するとステップＳＴ９７に進み、そうでない場合にステップＳＴ１０３に進む。
【００６７】
ステップＳＴ９７：
ＣＰＵ４５ａは、公開鍵証明書データＣｅｒｔ１に含まれる公開鍵データＫｐｕｂ１の識別データＫｐｕｂＩＤに対応する項目が、ステップＳＴ９１で受信した無効リストデータＲＬＩＳＴａ内に存在するか否かを判断する。
ステップＳＴ９８：
ＣＰＵ４５ａは、ステップＳＴ９７において存在すると判断するとステップＳＴ９９に進み、存在しないと判断するとステップＳＴ１０３に進む。
【００６８】
ステップＳＴ９９：
ＣＰＵ４５ａは、オペレーティングシステムＯＳａに従って、ステップＳＴ９２で受信した文書データＤＤに付加された時刻証明データＴ＿Ｃｅｒｔの正当性を検証し、正当であると判断すると、文書データＤＤに付加された時データＴＩＭＥと、時刻証明データＴ＿Ｃｅｒｔに含まれる差分時刻データとを基に、署名時刻を示す署名時刻データを生成する。
ステップＳＴ１００：
ＣＰＵ４５ａは、オペレーティングシステムＯＳａに従って、無効リストデータＲＬＩＳＴａ内の識別データＫｐｕｂＩＤに対応付けられた無効時刻データＲＴＩＭＥを取得する。
【００６９】
ステップＳＴ１０１：
ＣＰＵ４５ａは、オペレーティングシステムＯＳａに従って、ステップＳＴ９９で取得した署名時刻データが示す時刻が、ステップＳＴ１００で取得した無効時刻データＲＴＩＭＥ示す時刻より遅いか否かを判断し、遅いと判断するとステップＳＴ１０３にすすみ、大きくないと判断するとステップＳＴ１０２ｓに進む。
ステップＳＴ１０２：
ＣＰＵ４５ａは、文書データＤＤがクライアント装置Ｃ１ａの盗難等の前に生成された正当なものであると判断し、文書閲覧プログラムＲ＿ＡＰａに従って、それを利用する。
ステップＳＴ１０３：
ＣＰＵ４５ａは、文書データＤＤがクライアント装置Ｃ１ａの盗難等の後に生成された不正なものであると判断し、文書閲覧プログラムＲ＿ＡＰａによるその利用を禁止する。
【００７０】
〔第４の動作例〕
以下、通信システム１０１の全体動作例を説明する。
図１８は、当該動作例を説明するためのフローチャートである。
クライアント装置Ｃ１ａは、例えば、データＴＩＭＥ（１）＋ＨＤ、署名データＳＤａ、公開鍵証明書データＣｅｒｔ１、並びに時刻証明データＴ＿Ｃｅｒｔが付加された文書データＤＤを文書配信サーバ１０に送信する（ステップＳＴ２０１）。
また、クライアント装置Ｃ２ａは、無効リスト配信サーバ１４ａから無効リストデータＲＬＩＳＴａを受信する（ステップＳＴ２０２）。このとき、無効リストデータＲＬＩＳＴには、署名データＳＤａの検証に用いられる公開鍵データＫｐｕｂ１の識別データＫｐｕｂＩＤは含まれていない。
また、クライアント装置Ｃ２ａは、文書配信サーバ１０から、データＴＩＭＥ（１）＋ＨＤ、署名データＳＤａ、公開鍵証明書データＣｅｒｔ１、並びに時刻証明データＴ＿Ｃｅｒｔが付加された文書データＤＤを受信する（ステップＳＴ２０３）。
次に、クライアント装置Ｃ２ａは、ステップＳＴ２０２で受信した無効リストデータＲＬＩＳＴａ内に上記識別データＫｐｕｂＩＤが含まれていないため、ステップＳＴ２０３で受信した文書データＤＤは正当であると判断する（ステップＳＴ２０４）。
【００７１】
その後、クライアント装置Ｃ１ａが盗難された場合に（ステップＳＴ２０５）、クライアント装置Ｃ１ａの正当なユーザが、盗難された時刻を示す無効時刻データＲＴＩＭＥと、公開鍵データＫｐｕｂ１の識別データＫｐｕｂＩＤと含む無効通知データＲＮａを無効リスト配信サーバ１４ａに送信する（ステップＳＴ２０６）。
無効リスト配信サーバ１４ａは、受信した無効通知データＲＮａを基に、無効リストデータＲＬＩＳＴａを更新して無効リストデータＲＬＩＳＴａ（ＲＴＩＭＥ（２））を生成する。
そして、クライアント装置Ｃ２ａは、無効リスト配信サーバ１４ａから無効リストデータＲＬＩＳＴａ（ＲＴＩＭＥ（２））を受信する（ステップＳＴ２０７）。このとき、無効リストデータＲＬＩＳＴａ（ｒＴＩＭＥ（２））には、署名データＳＤａの検証に用いられる公開鍵データＫｐｕｂ１の識別データＫｐｕｂＩＤが含まれている。
また、クライアント装置Ｃ１ａは、盗難を行った不正なユーザの指示に応じて、例えば、データＴＩＭＥ（３）＋ＨＤ、署名データＳＤａ、公開鍵証明書データＣｅｒｔ１、並びに時刻証明データＴ＿Ｃｅｒｔが付加された文書データＤＤを文書配信サーバ１０に送信する（ステップＳＴ２０８）。
ここで、時データＴＩＭＥ（３）は、無効時刻データＲＴＩＭＥ（２）よりも遅い。
そして、クライアント装置Ｃ２ａは、文書配信サーバ１０から、データＴＩＭＥ（３）＋ＨＤ、署名データＳＤａ、公開鍵証明書データＣｅｒｔ１、並びに時刻証明データＴ＿Ｃｅｒｔが付加された文書データＤＤを受信する（ステップＳＴ２０９）。
次に、クライアント装置Ｃ２ａは、ステップＳＴ２０５で受信した無効リストデータＲＬＩＳＴａ（ＲＴＩＭＥ（２））内に上記識別データＫｐｕｂＩＤが含まれているため、無効リストデータＲＬＩＳＴａ内の無効時刻データＲＴＩＭＥ（２）と、文書データＤＤに付加された時データＴＩＭＥ（３）とを比較し、時データＴＩＭＥ（３）の方が遅いため、ステップＳＴ２０９で受信した文書データＤＤは不当であると判断する（ステップＳＴ２１０）。
【００７２】
以上説明したように、通信システム１０１では、図１３に示すように、クライアント装置Ｃ１ａにおいて、署名データＳＤａが生成された時刻を示す時データＴＩＭＥをセキュリティチップＳＣａ内に設けられたタイマ５９から取得し、それを文書データＤＤに署名データＳＤａと共に付加する。
そのため、通信システム１０１によれば、クライアント装置Ｃ１ａが盗難された場合でも、不正なユーザはタイマ５９を調整できず、当該不正なユーザが作成した文書データに付加された時データＴＩＭＥは、タイマ５９を基準とした署名データＳＤａの生成時刻を正確に示したものになる。
また、署名側のクライアント装置Ｃ２ａにおいて、時刻証明データＴ＿Ｃｅｒｔを基に、時データＴＩＭＥを調整するため、時刻証明サーバ１６内のタイマを基準とした署名データＳＤａの生成時刻を特定でき、無効時刻より遅い生成時刻を持つ署名データＳＤａを適切に無効化できる。
従って、通信システム１０１によれば、検証側のクライアント装置Ｃ２ａにおいて、文書データＤＤの正当性を高い信頼性で判断できる。
【００７３】
＜第３実施形態＞
本実施形態では、クライアント装置Ｃ１，Ｃ１ａのＣＰＵ４５，４５ａが、クライアント装置Ｃ１，Ｃ１ａが電源投入などにより起動されたときに、クライアント装置Ｃ１，Ｃ１ａ上で起動されたＢＩＯＳ、ローダＬｏａｄｅｒ、オペレーティングシステムＯＳ，ＯＳａおよびアプリケーションプログラムＡＰ，ＡＰａの各々のハッシュデータを含む動作環境データＰＨＤを生成する。
そして、ＣＰＵ４５，４５ａは、文書データＤＤに、さらに動作環境データＰＨＤを付加して送信する。
検証側のクライアント装置Ｃ２，Ｃ２ａは、図８および図１７の検証において、予めベンダから取得したＢＩＯＳ、ローダＬｏａｄｅｒ、オペレーティングシステムＯＳ，ＯＳａおよびアプリケーションプログラムＡＰ，ＡＰａのハッシュデータを基に、文書データＤＤに付加されている動作環境データＰＨＤを検証する。そして、クライアント装置Ｃ２，Ｃ２ａは、当該検証で一致していると判断したことを条件に、文書データＤＤを正当であると判断する。
これにより、クライアント装置Ｃ２，Ｃ２ａは、クライアント装置Ｃ１，Ｃ１ａが、図６および図１５の処理を適切に行う動作環境を備えていること、すなわちカウントデータＣＤおよび時データＴＩＭＥを正当に生成する動作環境を備えていることを検証できる。
これにより、通信システム１，１０１の信頼性をさらに高めることができる。
【００７４】
本発明は上述した実施形態には限定されない。
上述した実施形態では、本発明の被証明データとして文書データＤＤを例示したが、本発明の被証明データは、電子メールなどのその他のコンテンツデータなどであってもよい。
【産業上の利用可能性】
【００７５】
本発明は、署名された被証明データの有効性を検証するシステムに適用可能である。
【図面の簡単な説明】
【００７６】
【図１】図１は、本発明の第１実施形態の通信システムの全体構成図である。
【図２】図２は、図１に示すクライアント装置の構成図である。
【図３】図３は、図２に示すＣＰＵが実現するソフトウェア（動作）環境を説明するための図である。
【図４】図４は、図２に示すセキュリティチップの構成図である。
【図５】図５は、図２に示すクライアント装置が文書配信サーバに文書データと共に送信するデータを説明するための図である。
【図６】図６は、図２に示すクライアント装置が文書データを生成するときの動作例を説明するためのフローチャートである。
【図７】図７は、図２に示すクライアント装置が、署名データの無効化を無効リスト配信サーバに要求するときの動作例を説明するためのフローチャートである。
【図８】図８は、図２に示すクライアント装置が、文書データを検証するときの動作例を説明するためのフローチャートである。
【図９】図９は、図２に示すクライアント装置の全体動作例を説明するためのフローチャートである。
【図１０】図１０は、本発明の第２実施形態の通信システムの全体構成図である。
【図１１】図１１は、図１０に示すクライアント装置の構成図である。
【図１２】図１２は、図１１に示すＣＰＵが実現するソフトウェア（動作）環境を説明するための図である。
【図１３】図１３は、図１１に示すセキュリティチップの構成図である。
【図１４】図１４は、図１１に示すクライアント装置が文書配信サーバに文書データと共に送信するデータを説明するための図である。
【図１５】図１５は、図１１に示すクライアント装置が文書データを生成するときの動作例を説明するためのフローチャートである。
【図１６】図１６は、図１１に示すクライアント装置が、署名データの無効化を無効リスト配信サーバに要求するときの動作例を説明するためのフローチャートである。
【図１７】図１７は、図１１に示すクライアント装置が、文書データを検証するときの動作例を説明するためのフローチャートである。
【図１８】図１８は、図１１に示すクライアント装置の全体動作例を説明するためのフローチャートである。
【符号の説明】
【００７７】
１，１０１…通信システム、１０…文書配信サーバ、１２…認証機関、１４，１４ａ…無効リスト配信サーバ、１６…時刻証明サーバ、Ｃ１，Ｃ２，Ｃ１ａ，Ｃ２ａ…クライアント装置、４２…インタフェース、４３…メモリ、４５，４５ａ…ＣＰＵ、４６…ディスプレイ、４７…操作部、ＳＣ．ＳＣａ…セキュリティチップ、５１…入出力回路、５２…鍵生成回路、５３…ハッシュ回路、５４…乱数発生回路、５５…署名・暗号回路、５６…メモリ、５７，５７ａ…プロセッサ、５８…カウンタ
【図１】
0004626181.tif 000002
【図２】
0004626181.tif 000003
【図３】
0004626181.tif 000004
【図４】
0004626181.tif 000005
【図５】
0004626181.tif 000006
【図６】
0004626181.tif 000007
【図７】
0004626181.tif 000008
【図８】
0004626181.tif 000009
【図９】
0004626181.tif 000010
【図１０】
0004626181.tif 000011
【図１１】
0004626181.tif 000012
【図１２】
0004626181.tif 000013
【図１３】
0004626181.tif 000014
【図１４】
0004626181.tif 000015
【図１５】
0004626181.tif 000016
【図１６】
0004626181.tif 000017
【図１７】
0004626181.tif 000018
【図１８】
0004626181.tif 000019