(57)【要約】【課題】公開鍵暗号方式の秘密鍵またはアルゴリズム、あるいは、ハッシュ関数の危殆化が生じた場合に、署名者以外であってもディジタル署名の延長を行う。【解決手段】検証者端末３は、電子データと、危殆化が発見されたディジタル署名技術により生成された当該電子データの署名データと、署名者の検証鍵の公開鍵証明書とを用いてタイムスタンプ対象データを生成し、ＴＳＡ装置４へ送信する。そして、返送されたタイムスタンプデータ及びタイムスタンプ時刻データと、前記電子データ、前記署名データ、及び、前記署名者証明書とからなる再署名データを生成する。その後、ＣＡ装置２は、危殆化による署名者証明書の失効リストを発行する。検証者端末３は、再署名データ内のタイムスタンプデータが、当該再署名データ内のタイムスタンプ時刻データ、電子データ、署名データ、及び、失効した署名者証明書から生成されたことを確認することにより、検証を行う。【選択図】図１
2009194443.tif 000002
【特許請求の範囲】
【請求項１】
認証局装置と、時刻認証局装置と、端末とからなる署名システムであって、
前記認証局装置は、
署名者の署名鍵に対応した検証鍵の公開鍵証明書である署名者証明書を生成する証明書発行部を備え、
前記時刻認証局装置は、
前記端末からタイムスタンプ対象データを受信し、当該タイムスタンプ対象データと、当該タイムスタンプ対象データの受信時刻を示すタイムスタンプ時刻データとを基にタイムスタンプデータを生成し、生成したタイムスタンプデータと、前記タイムスタンプ時刻データとを返送するタイムスタンプ生成部を備え、
再署名処理を行う前記端末は、
署名者がディジタル署名を行った電子データと、当該電子データ、及び、前記署名者の署名鍵を用いて生成した前記電子データの署名データと、前記認証局装置により生成された、前記署名者の署名者証明書とを記憶する記憶部と、
前記記憶部から読み出した電子データと、当該電子データの署名データと、当該電子データにディジタル署名を行った署名者の署名者証明書とを用いてタイムスタンプ対象データを生成し、前記時刻認証局装置へ送信するとともに、当該タイムスタンプ対象データに対応して返送されたタイムスタンプデータ及びタイムスタンプ時刻データと、前記電子データ、前記署名データ、及び、前記署名者証明書とからなる再署名データを生成する再署名処理部とを備え、
署名検証を行う前記端末は、
検証対象の再署名データに含まれるタイムスタンプデータが、当該再署名データに含まれるタイムスタンプ時刻データ、電子データ、署名データ、及び、署名者証明書に基づいて生成されたかを検証し、さらに、前記署名者証明書から取得した検証鍵を用いて、前記署名データが前記電子データに基づいて生成されたかを検証する検証部を備える、
ことを特徴とする署名システム。
【請求項２】
前記認証局装置は、失効した署名者証明書と、失効理由とを示す失効リストを発行する失効リスト発行部をさらに備え、
前記検証部は、前記認証局装置により発行された失効リストにより、取得した前記署名者証明書が失効しており、かつ、失効理由が危殆化であるかをさらに検証する、
ことを特徴とする請求項１に記載の署名システム。
【請求項３】
前記再署名処理部は、前記署名者証明書が失効していないと判断した場合に、前記再署名データを生成することを特徴とする請求項１または請求項２に記載の署名システム。
【請求項４】
前記再署名データの生成は、署名データの生成に使用する前記署名鍵、あるいは、ハッシュアルゴリズムが、危殆化により署名データの生成に使用できなくなる時刻までに行われることを特徴とする請求項１から請求項３のいずれかの項に記載の署名システム。
【請求項５】
認証局装置と、時刻認証局装置と、端末とからなる署名システムにおける署名方法であって、
前記認証局装置が、
署名者の署名鍵に対応した検証鍵の公開鍵証明書である署名者証明書を生成する証明書発行過程と、
再署名処理を行う前記端末が、
署名者がディジタル署名を行った電子データと、当該電子データ、及び、前記署名者の署名鍵を用いて生成された当該電子データの署名データと、前記認証局装置により生成された、前記署名者の署名者証明書とを記憶部から読み出し、読み出した電子データ、署名データ、及び、署名者証明書を用いてタイムスタンプ対象データを生成して前記時刻認証局装置へ送信するタイムスタンプ要求過程と、
前記時刻認証局装置が、
前記端末からタイムスタンプ対象データを受信し、当該タイムスタンプ対象データと、当該タイムスタンプ対象データの受信時刻を示すタイムスタンプ時刻データとを基にタイムスタンプデータを生成し、生成したタイムスタンプデータと、前記タイムスタンプ時刻データとを返送するタイムスタンプ生成過程と、
再署名処理を行う前記端末が、
前記時刻認証局装置から返送されたタイムスタンプデータ及びタイムスタンプ時刻データと、前記電子データ、前記署名データ、及び、前記署名者証明書とからなる再署名データを生成する再署名処理過程と、
署名検証を行う前記端末が、
検証対象の再署名データに含まれるタイムスタンプデータが、当該再署名データに含まれるタイムスタンプ時刻データ、電子データ、署名データ、及び、署名者証明書に基づいて生成されたかを検証し、さらに、前記署名者証明書から取得した検証鍵を用いて、前記署名データが前記電子データに基づいて生成されたかを検証する検証過程、
を有することを特徴とする署名方法。
【請求項６】
署名者の署名鍵に対応した検証鍵の公開鍵証明書である署名者証明書を生成する認証局装置と、受信したタイムスタンプ対象データと、当該タイムスタンプ対象データの受信時刻を示すタイムスタンプ時刻データとを基にタイムスタンプデータを生成する時刻認証局装置と、端末とからなる署名システムにおける前記端末に用いられるコンピュータプログラムであって、
署名者がディジタル署名を行った電子データと、当該電子データ、及び、前記署名者の署名鍵を用いて生成された前記電子データの署名データと、当該署名データの生成に用いられた署名鍵に対応する検証鍵の署名者証明書とを記憶部から読み出し、読み出した電子データ、署名データ、及び、署名者証明書を用いてタイムスタンプ対象データを生成して前記時刻認証局装置へ送信するタイムスタンプ要求ステップと、
前記時刻認証局装置から返送されたタイムスタンプデータ及びタイムスタンプ時刻データと、前記電子データ、前記署名データ、及び、前記署名者証明書とからなる再署名データを生成する再署名処理ステップと、
をコンピュータに実行させることを特徴とするコンピュータプログラム。
【請求項７】
署名者の署名鍵に対応した検証鍵の公開鍵証明書である署名者証明書を生成する認証局装置と、受信したタイムスタンプ対象データと、当該タイムスタンプ対象データの受信時刻を示すタイムスタンプ時刻データとを基にタイムスタンプデータを生成する時刻認証局装置と、端末とからなる署名システムにおける前記端末に用いられるコンピュータプログラムであって、
署名者がディジタル署名を行った電子データと、当該電子データ、及び、前記署名者の署名鍵を用いて生成された前記電子データの署名データと、前記認証局装置により生成された、前記署名者の署名者証明書と、タイムスタンプデータと、タイムスタンプ時刻データとからなる再署名データを記憶部から読み出し、当該再署名データに含まれるタイムスタンプデータが、当該再署名データに含まれるタイムスタンプ時刻データ、電子データ、署名データ、及び、署名者証明書に基づいて生成されたかを検証し、さらに、前記署名者証明書から取得した検証鍵を用いて、前記署名データが前記電子データに基づいて生成されたかを検証する検証ステップ、
をコンピュータに実行させることを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子データの正当性を保証するディジタル署名の発行及び検証を行う署名システム及び方法、ならびに、コンピュータプログラムに関する。
【背景技術】
【０００２】
近年、契約書等の様々な書類や情報が電子化されている。これらの書類には、本人が認め、改ざんされていないことを保証するための捺印行為を伴うものが多数あり、電子データでは、この捺印行為を実現する技術としてディジタル署名がある。このディジタル署名により、電子的な契約書等の書類である電子データに対する「文書の改ざん検知」機能、「本人が同意していることの検証」機能を実現する。
このようなディジタル署名は、一般的に、公開鍵暗号方式、ハッシュ関数といった２種類の暗号技術により実現されている。また、ディジタル署名の際に用いる署名鍵の正当性は公開鍵証明書によって保証されており、ディジタル署名の安全性は、これらの暗号技術の安全性、及び、公開鍵証明書が有効であるかどうかに依存している。
【０００３】
しかしながら、暗号技術は、時間の経過に伴う計算機能力の向上や新たな攻撃の発見により安全性が低下すること、すなわち、危殆化することが考えられる。ディジタル署名の安全性の低下の大きな要因としては、（１）公開鍵暗号方式が保証する秘密鍵（ディジタル署名用の署名鍵）の危殆化、（２）公開鍵暗号方式のアルゴリズムの危殆化、（３）ハッシュ関数の危殆化、の３つがあげられる。
（１）及び（２）の要因によれば、悪意のある第三者が署名者の署名鍵を類推可能となり、任意のディジタルデータに他人のディジタル署名を行うことが可能となってしまう。また、危殆化を理由に、署名者がディジタル署名を行った事実を否認してしまうおそれがある。また、（３）の要因によれば、第三者により、生成されたディジタル署名が、どの電子データのものであるかを特定することが可能となってしまう。
【０００４】
上記のような危殆化の要因によって、本来ディジタル署名によって保証されるべき期間よりも短い期間しか、その正当性を保証できないという問題が生じてしまうため、長期の保証が求められるディジタル署名については、このような危殆化に対して何らかの対策が必要となる。また、アルゴリズムに対する新たな攻撃手法の発見等の予期せぬ要因により危殆化した場合に、既に生成したディジタル署名文書の有効性を効率よく保証する技術も必要とされている。
【０００５】
このような危殆化への対策技術は、例えば、特許文献１〜３に記載されている。これらは主に、タイムスタンプ長期保証ガイドラインに示されているような、タイムスタンプにおける危殆化対策等を実現し、タイムスタンプを長期に保証する技術である。
【特許文献１】特開２００７−２７９３８号公報
【特許文献２】特開２００７−１０４０２４号公報
【特許文献３】特開２００７−２３２７５４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
上述した特許文献１には、公開鍵証明書の有効性に関する対策技術が示されており、既存の署名文書と同一のメッセージを再度用いて、新たなアルゴリズムまたは鍵により再署名を行うものでる。この特許文献１の技術は、上述した（１）〜（３）の要因に対する対策技術となっている。しかしながら、特許文献１の技術は、署名者の署名鍵が必要となるため、署名者が、ディジタル署名のうち直しを行うことになる。そのため、署名者は、検証者が保有する文書に対してそれぞれ再署名処理を実施しなければならならず、署名者の処理量は膨大なものとなる。つまり、（ａ）大量の署名文書に署名している署名者が、再署名処理を行うことは困難である、（ｂ）署名者が危殆化を理由に署名の事実を否認できる、（ｃ）署名者から、検証者への再度のディジタル署名の配布が必要である、などの問題が生じる。
また、特許文献２には、過去の複数のタイムスタンプのデータから新たなタイムスタンプを生成することにより、タイムスタンプ提供装置の署名鍵の更新に対応している。この特許文献２の技術は、上述した（１）及び（２）の要因に対する対策技術となっているが、（３）を解決するものではない。また、ディジタル署名の検証時に、検証対象の署名文書以外の署名文書も必要となってしまう。
また、特許文献３には、ハッシュ関数が危殆化するような自体に際しても、安全なハッシュ値を生成する技術が示されており、上述した（３）の要因に対する対策技術となっている。しかし、特許文献３の技術は、（１）及び（２）を解決するものではなく、また、今後新規に作成するディジタル署名処理に対して利用することが可能であるが、既に作成された署名文書に対しては適用できない。
【０００７】
本発明は、上記の事情に鑑みてなされたものであり、公開鍵暗号方式の秘密鍵またはアルゴリズムの危殆化、あるいは、ハッシュ関数の危殆化が生じた場合に、ディジタル署名が付与された文書データを保持するエンティティであれば、署名者以外であってもディジタル署名の延長を行うことができる署名システム及び方法、ならびに、コンピュータプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記課題を解決するため、本発明は、認証局装置と、時刻認証局装置と、端末とからなる署名システムであって、前記認証局装置は、署名者の署名鍵に対応した検証鍵の公開鍵証明書である署名者証明書を生成する証明書発行部を備え、前記時刻認証局装置は、前記端末からタイムスタンプ対象データを受信し、当該タイムスタンプ対象データと、当該タイムスタンプ対象データの受信時刻を示すタイムスタンプ時刻データとを基にタイムスタンプデータを生成し、生成したタイムスタンプデータと、前記タイムスタンプ時刻データとを返送するタイムスタンプ生成部を備え、再署名処理を行う前記端末は、署名者がディジタル署名を行った電子データと、当該電子データ、及び、前記署名者の署名鍵を用いて生成した前記電子データの署名データと、前記認証局装置により生成された、前記署名者の署名者証明書とを記憶する記憶部と、前記記憶部から読み出した電子データと、当該電子データの署名データと、当該電子データにディジタル署名を行った署名者の署名者証明書とを用いてタイムスタンプ対象データを生成し、前記時刻認証局装置へ送信するとともに、当該タイムスタンプ対象データに対応して返送されたタイムスタンプデータ及びタイムスタンプ時刻データと、前記電子データ、前記署名データ、及び、前記署名者証明書とからなる再署名データを生成する再署名処理部とを備え、署名検証を行う前記端末は、検証対象の再署名データに含まれるタイムスタンプデータが、当該再署名データに含まれるタイムスタンプ時刻データ、電子データ、署名データ、及び、署名者証明書に基づいて生成されたかを検証し、さらに、前記署名者証明書から取得した検証鍵を用いて、前記署名データが前記電子データに基づいて生成されたかを検証する検証部を備える、ことを特徴とする署名システムである。
【０００９】
また、本発明は、上述する署名システムであって、前記認証局装置は、失効した署名者証明書と、失効理由とを示す失効リストを発行する失効リスト発行部をさらに備え、前記検証部は、前記認証局装置により発行された失効リストにより、取得した前記署名者証明書が失効しており、かつ、失効理由が危殆化であるかをさらに検証する、ことを特徴とする。
【００１０】
また、本発明は、上述する署名システムであって、前記再署名処理部は、前記署名者証明書が失効していないと判断した場合に、前記再署名データを生成することを特徴とする。
【００１１】
また、本発明は、上述する署名システムであって、前記再署名データの生成は、署名データの生成に使用する前記署名鍵、あるいは、ハッシュアルゴリズムが、危殆化により署名データの生成に使用できなくなる時刻までに行われることを特徴とする。
【００１２】
また、本発明は、認証局装置と、時刻認証局装置と、端末とからなる署名システムにおける署名方法であって、前記認証局装置が、署名者の署名鍵に対応した検証鍵の公開鍵証明書である署名者証明書を生成する証明書発行過程と、再署名処理を行う前記端末が、署名者がディジタル署名を行った電子データと、当該電子データ、及び、前記署名者の署名鍵を用いて生成された当該電子データの署名データと、前記認証局装置により生成された、前記署名者の署名者証明書とを記憶部から読み出し、読み出した電子データ、署名データ、及び、署名者証明書を用いてタイムスタンプ対象データを生成して前記時刻認証局装置へ送信するタイムスタンプ要求過程と、前記時刻認証局装置が、前記端末からタイムスタンプ対象データを受信し、当該タイムスタンプ対象データと、当該タイムスタンプ対象データの受信時刻を示すタイムスタンプ時刻データとを基にタイムスタンプデータを生成し、生成したタイムスタンプデータと、前記タイムスタンプ時刻データとを返送するタイムスタンプ生成過程と、再署名処理を行う前記端末が、前記時刻認証局装置から返送されたタイムスタンプデータ及びタイムスタンプ時刻データと、前記電子データ、前記署名データ、及び、前記署名者証明書とからなる再署名データを生成する再署名処理過程と、署名検証を行う前記端末が、検証対象の再署名データに含まれるタイムスタンプデータが、当該再署名データに含まれるタイムスタンプ時刻データ、電子データ、署名データ、及び、署名者証明書に基づいて生成されたかを検証し、さらに、前記署名者証明書から取得した検証鍵を用いて、前記署名データが前記電子データに基づいて生成されたかを検証する検証過程、を有することを特徴とする署名方法である。
【００１３】
また、本発明は、署名者の署名鍵に対応した検証鍵の公開鍵証明書である署名者証明書を生成する認証局装置と、受信したタイムスタンプ対象データと、当該タイムスタンプ対象データの受信時刻を示すタイムスタンプ時刻データとを基にタイムスタンプデータを生成する時刻認証局装置と、端末とからなる署名システムにおける前記端末に用いられるコンピュータプログラムであって、署名者がディジタル署名を行った電子データと、当該電子データ、及び、前記署名者の署名鍵を用いて生成された前記電子データの署名データと、当該署名データの生成に用いられた署名鍵に対応する検証鍵の署名者証明書とを記憶部から読み出し、読み出した電子データ、署名データ、及び、署名者証明書を用いてタイムスタンプ対象データを生成して前記時刻認証局装置へ送信するタイムスタンプ要求ステップと、前記時刻認証局装置から返送されたタイムスタンプデータ及びタイムスタンプ時刻データと、前記電子データ、前記署名データ、及び、前記署名者証明書とからなる再署名データを生成する再署名処理ステップと、をコンピュータに実行させることを特徴とするコンピュータプログラムである。
【００１４】
また、本発明は、署名者の署名鍵に対応した検証鍵の公開鍵証明書である署名者証明書を生成する認証局装置と、受信したタイムスタンプ対象データと、当該タイムスタンプ対象データの受信時刻を示すタイムスタンプ時刻データとを基にタイムスタンプデータを生成する時刻認証局装置と、端末とからなる署名システムにおける前記端末に用いられるコンピュータプログラムであって、署名者がディジタル署名を行った電子データと、当該電子データ、及び、前記署名者の署名鍵を用いて生成された前記電子データの署名データと、前記認証局装置により生成された、前記署名者の署名者証明書と、タイムスタンプデータと、タイムスタンプ時刻データとからなる再署名データを記憶部から読み出し、当該再署名データに含まれるタイムスタンプデータが、当該再署名データに含まれるタイムスタンプ時刻データ、電子データ、署名データ、及び、署名者証明書に基づいて生成されたかを検証し、さらに、前記署名者証明書から取得した検証鍵を用いて、前記署名データが前記電子データに基づいて生成されたかを検証する検証ステップ、をコンピュータに実行させることを特徴とするコンピュータプログラムである。
【発明の効果】
【００１５】
本発明によれば、当初ディジタル署名によって正当性が保証されるとしていた期間までに、公開鍵暗号方式が保証する秘密鍵（署名鍵）の危殆化、公開鍵暗号方式の危殆化、あるいは、ハッシュ関数の危殆化が生じた場合であっても、ディジタル署名文書に対して再署名処理を施すことにより、ディジタル署名時に正当性が保証されるとしていた期間までその正当性を保証することができる。そして、この再署名処理には、署名者の秘密鍵を使用する必要がなく、元の電子データ及びそのディジタル署名データを保持するエンティティであれば、誰でも再署名処理を実施することが可能となるため、再署名処理の実行者を署名者に限定する必要がない。従って、署名者が大量のディジタル署名データを複数の相手先に配布していたとしても、効率よく再署名処理を実行することができる。
【発明を実施するための最良の形態】
【００１６】
以下、図面を参照して本発明の一実施の形態の例について説明する。
図１は、本発明の一実施の形態による署名システムの構成を示すブロック図であり、本発明と関係する機能ブロックのみ抽出して示してある。
同図において署名システムは、電子データにディジタル署名を施す署名者（Ｓｉｇｎｅｒ）の署名者端末１と、ディジタル署名された電子データを検証し、保管する検証者（Ｖ）の検証者端末３と、認証局（ＣＡ：Certificate Authority）のＣＡ装置２と、時刻認証局（ＴＳＡ：Time Stamp Authority）のＴＳＡ装置４とをネットワークＮを介して接続してなる。ＣＡは、ＰＫＩ（Public Key Infrastructure：公開鍵暗号基盤）における認証局業務を行うＴＴＰ（Trusted Third Party：信頼できる第三者機関）であり、署名者、ＣＡ、ＴＳＡの公開鍵証明書や、失効した証明書を示す失効リストを発行する。ＴＳＡは、ＰＫＩにおける時刻認証業務を行うＴＴＰであり、利用者から送付されたデータに対して、受信時刻が付与されたタイムスタンプを発行する。検証者は、ディジタル署名技術の危殆化後も、すでに発行されているディジタル署名が有効となるよう、検証者端末３により再署名処理を行う。
【００１７】
同図において、署名者端末１は、通信部１１、記憶部１２、証明書要求部１３、署名生成部１４、送信部１５、及び、失効要求部１６を備える。通信部１１は、ネットワークＮを介して他の装置とデータの送受信を行う。
記憶部１２は、署名者の検証鍵（公開鍵）である署名者検証鍵、署名者の署名鍵（秘密鍵）であり、署名者検証鍵と対になる署名者署名鍵、署名者検証鍵の公開鍵証明書である署名者証明書、ＣＡが発行する証明書等に含まれるＣＡの署名データを検証するためのＣＡ検証鍵、ＣＡ検証鍵の公開鍵証明書であるＣＡ証明書などの各種データを記憶する。証明書要求部１３は、ＣＡ装置２に対して、署名者検証鍵の公開鍵証明書の発行を要求する。署名生成部１４は、電子データに対してディジタル署名処理を行い、署名データを生成する。送信部１５は、電子データ、当該電子データの署名データ及び署名者証明書を検証者端末３へ送信する。失効要求部１６は、ＣＡ装置２へ署名者証明書の失効を要求する。
【００１８】
ＣＡ装置２は、通信部２１、記憶部２２、証明書発行部２３、及び、失効リスト発行部２４を備える。通信部２１は、ネットワークＮを介して他の装置とデータの送受信を行う。記憶部２２は、当該ＣＡ装置２において発行する証明書や、署名者検証鍵の失効リストに署名を行うときに用いる署名鍵であるＣＡ署名鍵、ＣＡ署名鍵と対になるＣＡ検証鍵の公開鍵証明書であるＣＡ証明書などの各種データを記憶する。証明書発行部２３は、署名者検証鍵から署名者証明書を生成する。失効リスト発行部２４は、失効した証明書とその失効理由を示す失効リストを発行する。
【００１９】
検証者端末３は、通信部３１、記憶部３２、受信部３３、検証部３４、及び、再署名処理部３５を備える。通信部３１は、ネットワークＮを介して他の装置とデータの送受信を行う。記憶部３２は、ＣＡ検証鍵、ＣＡ証明書、ＴＳＡの検証鍵であるＴＳＡ検証鍵、当該ＴＳＡ検証鍵の公開鍵証明書であるＴＳＡ証明書、失効リスト、ディジタル署名を行った電子データ、当該電子データの署名データ、当該電子データの再署名データ、署名者証明書などの各種データを記憶する。受信部３３は、署名者端末１から電子データ、当該電子データの署名データ、署名者証明書等のデータを、ＣＡ装置２からＣＡ証明書、失効リストなどのデータを受信して記憶部３２に書き込む。検証部３４は、署名データや再署名データを検証する。再署名処理部３５は、ディジタル署名を行った電子データの再署名処理を行い、再署名データを生成する。
【００２０】
ＴＳＡ装置４は、通信部４１、記憶部４２、及び、タイムスタンプ発行部４３を備える。通信部４１は、ネットワークＮを介して他の装置とデータの送受信を行う。記憶部４２は、ＴＳＡの署名鍵であるＴＳＡ署名鍵、当該ＴＳＡ署名鍵と対になるＴＳＡ検証鍵のＴＳＡ証明書などの各種データを記憶する。タイムスタンプ発行部４３は、タイムスタンプが要求されたデータに対して、時刻を証明するタイムスタンプデータを生成する。
【００２１】
図２は、図１に示す署名システムのシーケンス図である。なお、以下では、ＣＡ／ＴＳＡの信頼性、有効期間、失効状況、証明書パス、ＣＡ／ＴＳＡ／署名者証明書の署名等、一般的なＰＫＩ基盤を利用する際に実施すべき検証は全て含まれるものとする。
【００２２】
ＣＡが発行する証明書の有効期間の開始時刻Ｔ＿Ｃｅｒｔ１〜ディジタル署名技術の危殆化が発見される危殆化タイミングＴ１までは、従来の一般的な署名処理が行われる。署名者端末１は、ＣＡ装置２に対して、自身の署名者証明書の発行要求を送信する（ステップＳ１１）。これにより、ＣＡ装置２から、署名者証明書が返送される（ステップＳ１２）。署名者端末１は、署名対象の文書データに対する署名データを生成すると（ステップＳ１３）、このディジタル署名を行った文書データとともに検証者端末３へ送信する（ステップＳ１４）。検証者端末３は、署名文書データ及び署名データを検証して（ステップＳ１５）、記憶部３２に保管する（ステップＳ１６）。
【００２３】
危殆化タイミングＴ１〜危殆化対策後のディジタル署名技術の運用期間が開始される対策実施期間終了タイミングＴ２までの期間において、署名文書データの再署名処理が行われる。ＣＡ装置２は、危殆化による発行済みの証明書の失効時期として、対策実施期間終了タイミングＴ２の情報を、署名者端末１及び検証者端末３に通知する（ステップＳ２１）。検証者端末３は、署名者証明書の有効性を確認すると（ステップＳ２２）、署名文書データの再署名処理を実行する（ステップＳ２３）。検証者端末３は、署名文書データ、署名データ、及び、署名者証明書から再署名のためのタイムスタンプ対象データを生成し、生成したタイムスタンプ対象データを設定したタイムスタンプ発行要求をＴＳＡ装置４に送信する（ステップＳ２４）。ＴＳＡ装置４は、タイムスタンプ発行処理を行い（ステップＳ２５）、生成したタイムスタンプデータを検証者端末３へ返送する（ステップＳ２６）。検証者端末３は、受信したタイムスタンプデータを検証し（ステップＳ２７）、検証されたタイムスタンプデータと、再署名を行った文書データ（以下、「再署名文書データ」と記載）とから再署名データを生成して記憶部３２に保管する（ステップＳ２８）。
【００２４】
ＣＡ装置２は、署名者端末１から、署名者証明書の失効要求を受信する（ステップＳ３１）、あるいは、Ｔ２の対策実施期間終了タイミングで、当該署名者の署名者証明書が失効したことを示す失効リストを生成する（ステップＳ３２）。そして、検証者端末３は、署名者証明書の検証を行うときに、ＣＡ装置２により生成された失効リストにより失効を確認する（ステップＳ３３）。
【００２５】
対策実施期間終了タイミングＴ２〜署名データの有効期間の終了時刻Ｔ＿Ｓ２までは、再署名の検証処理が行われる。検証者端末３は、ステップＳ２８において記憶部３２に保管していた再署名文書データ及び再署名データにより検証を実行すると（ステップＳ４１）、検証した再署名文書データやその検証結果を署名者端末１に通知し、提示する（ステップＳ４２）。
【００２６】
図３は、証明書及びディジタル署名の有効期間と、危殆化のタイミングとの関係を示す図である。
危殆化が発見される前の通常運用期間において、署名者端末１は、自身の署名者署名鍵ＳＫ＿Ｓ１を用いて、署名対象の文書データであるメッセージＭに対する署名データＳ１を生成する。署名データＳ１は、ハッシュ関数Ｈ＿ｏｌｄ（）を用いて計算したメッセージＭのハッシュ値に、署名者署名鍵ＳＫ＿Ｓ１により署名を施したものである。署名データＳ１またはメッセージＭには、署名データＳ１の有効期間に相当する時刻Ｔ＿Ｓ１〜時刻Ｔ＿Ｓ２の情報が含まれている。検証者端末３は、署名者署名鍵ＳＫ＿Ｓ１に対応する署名者検証鍵ＰＫ＿Ｓ１により、メッセージＭの署名データＳ１を検証する。署名者検証鍵ＰＫ＿Ｓ１は、ＣＡにより発行される署名者証明書Ｃｅｒｔ＿Ｓ１から得られる。
【００２７】
なお、ＣＡが発行する証明書及び失効リストに署名を施すための署名鍵であるＣＡ署名鍵ＳＫ＿ＣＡ、及び、当該ＣＡ署名鍵ＳＫ＿ＣＡに対応し、ＣＡが発行した証明書及び失効リストの署名を検証するためのＣＡ検証鍵ＰＫ＿ＣＡは、証明書の有効期間である時刻Ｔ＿Ｃｅｒｔ１〜時刻Ｔ＿Ｃｅｒｔ２の間は危殆化しないものとする。証明書の有効期間である時刻Ｔ＿Ｃｅｒｔ１〜時刻Ｔ＿Ｃｅｒｔ２は、署名データＳ１の保証期間である時刻Ｔ＿Ｓ１〜時刻Ｔ＿Ｓ２を含んでおり、Ｔ＿Ｃｅｒｔ１≦Ｔ＿Ｓ１＜Ｔ＿Ｓ２≦Ｔ＿Ｃｅｒｔ２の関係がある。ＣＡ検証鍵ＰＫ＿ＣＡは、ＣＡにより発行されるＣＡ証明書Ｃｅｒｔ＿ＣＡから得られる。
【００２８】
また、ＴＳＡが発行するタイムスタンプデータであるＴｉｍｅＳｔａｍｐに署名を施すためのＴＳＡ署名鍵ＳＫ＿ＴＳＡ、及び、当該ＴＳＡ署名鍵ＳＫ＿ＴＳＡに対応し、ＴＳＡが発行したタイムスタンプデータＴｉｍｅＳｔａｍｐの署名を検証するためのＴＳＡ検証鍵ＰＫ＿ＴＳＡ、ならびに、タイムスタンプデータＴｉｍｅＳｔａｍｐは、証明書の有効期間である時刻Ｔ＿Ｃｅｒｔ１〜時刻Ｔ＿Ｃｅｒｔ２の間は、危殆化しないものとする。ＴＳＡ検証鍵ＰＫ＿ＴＳＡは、ＣＡにより発行されるＴＳＡ証明書Ｃｅｒｔ＿ＴＳＡから得られる。
【００２９】
危殆化タイミングＴ１は、通常運用期間において用いられていた公開鍵暗号方式の秘密鍵またはアルゴリズム、あるいは、ハッシュ関数について脆弱性が発見されたタイミングである。
危殆化タイミングＴ１〜対策実施期間終了タイミングＴ２までの期間は、署名者署名鍵ＳＫ＿Ｓ１、署名者検証鍵ＰＫ＿Ｓ１、ハッシュ関数Ｈ＿ｏｌｄ（）の危殆化が起こっているが、攻撃者による署名データＳ１の偽造は成功しないと想定されるものとする。つまり、対策実施期間終了タイミングＴ２までの期間では、署名者署名鍵ＳＫ＿Ｓ１は第三者には入手困難であり、ハッシュ関数Ｈ＿ｏｌｄ（）は、一方向性（OW：One-Wayness）、衝突計算困難性（Collision resistance）、第二原像計算困難性（second pre-image resistance）が担保され、具体的な攻撃は成功しない。これは、通常、危殆化が発見されてもすぐには署名データの偽造などの不正行為はできるようにならず、安全性は徐々に低下していくからである。脆弱性の発見により危殆化対策が実施され、安全な公開鍵暗号方式の秘密鍵やアルゴリズム、ハッシュ関数を用いた新たなディジタル署名の運用が開始される対策実施期間終了タイミングＴ２までに、有効期間終了時刻Ｔ＿Ｓ２が対策実施期間終了タイミングＴ２以降の発行済みの署名データＳ１に対する再署名が行われる。
対策実施期間終了タイミングＴ２以降には、攻撃者によって署名者署名鍵ＳＫ＿Ｓ１が入手可能となり、ハッシュ関数Ｈ＿ｏｌｄ（）は、攻撃者が任意のメッセージに対するcollisionを発見可能であり、実害が出るレベルまで危殆化するため、使用禁止となる。
【００３０】
そこで、検証者端末３は、対策実施期間終了タイミングＴ２までに、すでに生成された署名データＳ１に対して再署名処理を行い、再署名データＳ２を生成する。さらに、ＣＡ装置２は、対策実施期間終了タイミングＴ２に、署名者署名鍵ＳＫ＿Ｓ１を失効させるため、署名者署名鍵ＳＫ＿Ｓ１の失効リストＣＲＬ＿Ｓ１を発行する。この失効リストＣＲＬ＿Ｓ１には、失効理由が設定され、「ハッシュ関数の危殆化」、「公開鍵の危殆化（鍵長）」が選択可能である。失効リストＣＲＬ＿Ｓ１が発行された時刻をＴ＿ＣＲＬ＿Ｓ１とする。
【００３１】
対策実施期間終了タイミングＴ２以降、署名データの生成及びその検証には、対策実施期間終了タイミングＴ２〜証明書有効期間の終了時刻Ｔ＿Ｃｅｒｔ２において危殆化しない署名者署名鍵ＳＫ＿Ｓ２、及び、署名者検証鍵ＰＫ＿Ｓ２、ハッシュ関数Ｈ＿ｎｅｗが使用される。すなわち、署名者は、自身の署名者署名鍵ＳＫ＿Ｓ２と、対策実施期間終了タイミングＴ２以降も一方向性、衝突計算困難性、第二原像計算困難性が担保されたハッシュ関数Ｈ＿ｎｅｗ（）を用いて、署名データを生成する。検証者は、署名者署名鍵ＳＫ＿Ｓ２に対応する署名者検証鍵ＰＫ＿Ｓ２により署名データを検証する。署名者検証鍵ＰＫ＿Ｓ２は、ＣＡにより発行される署名者証明書Ｃｅｒｔ＿Ｓ２から得られる。
一方、対策実施期間終了タイミングＴ２までに再署名が行われたメッセージＭについては、再署名後、対策実施期間終了タイミングＴ２以降においても再署名データＳ２により検証が行われる。
【００３２】
メッセージＭの署名データの生成、証明書、タイムスタンプの生成には、署名演算アルゴリズムＳｉｇｎが使用され、例えば、ＲＳＡ（Rivest-Shamir-Adleman）、ＤＳＡ（Digital Signature Algorithm）、ＥＣＤＳＡ（Elliptic Curve Digital Signature Algorithm）などの一般的な署名アルゴリズムを用いることができる。メッセージＭの署名演算データに対して用いる署名アルゴリズムＳｉｇｎは、危殆化タイミングＴ１の時点で危殆化するが、証明書、タイムスタンプの生成に用いられる署名アルゴリズムＳｉｇｎは、証明書の有効期間である時刻Ｔ＿Ｃｅｒｔ１〜時刻Ｔ＿Ｃｅｒｔ２の間は、安全性が担保され、危殆化しないものとする。
【００３３】
図４は、ＣＡが発行する証明書の有効期間の開始時刻Ｔ＿Ｃｅｒｔ１〜危殆化タイミングＴ１の期間において実行される、既存の一般的な署名データの発行及び検証処理手順を示す図である。
まず、署名者端末１において、署名者署名鍵ＳＫ＿Ｓ１及び署名者検証鍵ＰＫ＿Ｓ１のペアを生成して記憶部１２に保持すると、証明書要求部１３は、署名者検証鍵ＰＫ＿Ｓ１を設定した証明書発行要求をＣＡ装置２へ送信する（ステップＳ１０１）。ＣＡ装置２は、証明書発行要求を受信すると、以下のように、ハッシュ関数Ｈ＿ｎｅｗＣＡを用いて算出した署名者検証鍵ＰＫ＿Ｓ１、及び発行元のＣＡを特定する情報や有効期限（時刻Ｔ＿Ｃｅｒｔ１〜時刻Ｔ＿Ｃｅｒｔ２）等の情報である証明書情報Ｉｎｆｏ＿Ｓ１のハッシュ値に、ＣＡ署名鍵ＳＫ＿ＣＡを用いて署名を行い、署名者証明書Ｃｅｒｔ＿Ｓ１を生成する（ステップＳ１０２）。署名者証明書Ｃｅｒｔ＿Ｓ１には、さらに、署名者検証鍵ＰＫ＿Ｓ１、及び、証明書情報Ｉｎｆｏ＿Ｓ１が設定される。なお、ハッシュ関数Ｈ＿ｎｅｗＣＡは、ＣＡ装置２において用いられるハッシュ関数Ｈ＿ｎｅｗである。
【００３４】
Ｃｅｒｔ＿Ｓ１＝（ＰＫ＿Ｓ１，Ｉｎｆｏ＿Ｓ１，Ｓｉｇｎ＜ＳＫ＿ＣＡ＞（Ｈ＿ｎｅｗＣＡ（ＰＫ＿Ｓ１，Ｉｎｆｏ＿Ｓ１）））  …（式１）
【００３５】
ＣＡ装置２の証明書発行部２３は、生成した署名者証明書Ｃｅｒｔ＿Ｓ１を署名者端末１へ返送する（ステップＳ１０３）。なお、ＣＡ装置２において署名者署名鍵ＳＫ＿Ｓ１及び署名者検証鍵ＰＫ＿Ｓ１のペアを生成するとともに、署名者証明書Ｃｅｒｔ＿Ｓ１を生成して、これらを署名者端末１に送信することでもよい。署名者端末１の証明書要求部１３は、予め記憶部１２に記憶しているか、署名者証明書Ｃｅｒｔ＿Ｓ１と同時に受信したＣＡ証明書Ｃｅｒｔ＿ＣＡからＣＡ検証鍵ＰＫ＿ＣＡを取得し、取得したＣＡ検証鍵ＰＫ＿ＣＡを用いて署名者証明書Ｃｅｒｔ＿Ｓ１の署名データを検証し、記憶部１２に保持する。
【００３６】
署名者端末１の署名生成部１４は、メッセージＭの署名データの生成指示が入力されると、記憶部１２からメッセージＭ及び署名者署名鍵ＳＫ＿Ｓ１を読み出し、以下のように、ハッシュ関数Ｈ＿ｏｌｄ（）を用いて算出したメッセージＭのハッシュ値に、署名者署名鍵ＳＫ＿Ｓ１を用いて署名を行い、署名データＳ１を生成する（ステップＳ１０４）。
【００３７】
Ｓ１＝Ｓｉｇｎ＜ＳＫ＿Ｓ１＞（Ｈ＿ｏｌｄ（Ｍ））    …（式２）
【００３８】
署名者端末１の送信部１５は、記憶部１２から読み出したメッセージＭ、及び、署名者証明書Ｃｅｒｔ＿Ｓ１と、生成した署名データＳ１とを検証者端末３へ送信する（ステップＳ１０５）。署名データＳ１の有効期間は、署名者証明書Ｃｅｒｔ＿Ｓ１の有効期間内である。検証者端末３の受信部３３は、受信したメッセージＭ、署名データＳ１、及び、署名者証明書Ｃｅｒｔ＿Ｓ１を記憶部３２に保持する。検証者端末３は、ＣＡ証明書Ｃｅｒｔ＿ＣＡを、予めＣＡ装置２から受信するか、ステップＳ１０５において署名者端末１から受信して記憶部３２に保持しているものとする。
【００３９】
検証者端末３にメッセージＭの検証指示が入力されると、検証部３４は、以下の手順により検証処理を行う（ステップＳ１０６）。（１−１）から（１−３）は、各種証明書等による事前検証、（２−１）は、メッセージＭ及び署名データＳ１の実際の検証となる。
【００４０】
（１−１）検証部３４は、現在の時刻である検証時刻Ｔ＿Ｖが、証明書の有効期間の終了時刻Ｔ＿Ｃｅｒｔ２より前であるか、つまり、Ｔ＿Ｖ＜Ｔ＿Ｃｅｒｔ２であるかを判断する。証明書の有効期間の終了時刻Ｔ＿Ｃｅｒｔ２は、予め記憶部３２に保持しているか、ＣＡ証明書Ｃｅｒｔ＿ＣＡ内の有効期間の情報から読み出すものとする。
【００４１】
（１−２）検証部３４は、検証時刻Ｔ＿Ｖが、署名データＳ１の有効期間である時刻Ｔ＿Ｓ１〜時刻Ｔ＿Ｓ２の間であり、かつ、署名データＳ１の有効期間の時刻Ｔ＿Ｓ１〜時刻Ｔ＿Ｓ２が、証明書の有効期間の時刻Ｔ＿Ｃｅｒｔ１〜終了時刻Ｔ＿Ｃｅｒｔ２に含まれている、つまり、Ｔ＿Ｃｅｒｔ１＜Ｔ＿Ｓ１＜Ｔ＿Ｖ＜Ｔ＿Ｓ２＜Ｔ＿Ｃｅｒｔ２であるかを判断する。署名データＳ１の有効期間である時刻Ｔ＿Ｓ１〜時刻Ｔ＿Ｓ２は、例えば、署名データＳ１の生成時刻（時刻Ｔ＿Ｓ１）や、メッセージＭが契約書のデータであれば、そのメッセージＭ中に契約期間（時刻Ｔ＿Ｓ１、時刻Ｔ＿Ｓ２）として含まれる情報等を使用することができる。また、証明書の有効期間の開始時刻Ｔ＿Ｃｅｒｔ１は、予め記憶部３２に保持しているか、ＣＡ証明書Ｃｅｒｔ＿ＣＡから読み出すものとする。あるいは、検証者が、メッセージＭに設定されている有効期間の時刻Ｔ＿Ｓ１〜時刻Ｔ＿Ｓ２を参照して検証時刻Ｔ＿Ｖがその有効期間であることを確認し、その確認結果を検証者端末３に入力することでもよい。
【００４２】
（１−３）検証部３４は、ＣＡ証明書Ｃｅｒｔ＿ＣＡ及び署名者証明書Ｃｅｒｔ＿Ｓ１の正当性を検証する。具体的には、まず、検証部３４は、ＣＡ証明書Ｃｅｒｔ＿ＣＡ及び署名者証明書Ｃｅｒｔ＿Ｓ１に設定されている発行元の情報から正しいＣＡであるかを確認するとともに、検証時刻Ｔ＿Ｖが、ＣＡ証明書Ｃｅｒｔ＿ＣＡ、署名者証明書Ｃｅｒｔ＿Ｓ１に設定されている有効期間内であることを確認する。次に、ＣＡ装置２に問い合わせるか、ＣＡ装置２から予め受信して記憶部３２に記憶していた失効リストに基づいて、ＣＡ証明書Ｃｅｒｔ＿ＣＡ、署名者証明書Ｃｅｒｔ＿Ｓ１の両者とも失効リストが発行されていないことを確認する。さらに、ＣＡ証明書Ｃｅｒｔ＿ＣＡからＣＡ検証鍵ＰＫ＿ＣＡを読み出し、この読み出したＣＡ検証鍵ＰＫ＿ＣＡを用いて、ＣＡ証明書Ｃｅｒｔ＿ＣＡの署名データを検証する。続いて、検証部３４は、署名者証明書Ｃｅｒｔ＿Ｓ１について、ＣＡ検証鍵ＰＫ＿ＣＡを用い、以下のように検証する。なお、Ｖｅｒｉｆｙは検証アルゴリズムである。
【００４３】
Ｖｅｒｉｆｙ＜ＰＫ＿ＣＡ＞（Ｃｅｒｔ＿Ｓ１）＝ＯＫ／ＮＧ    …（式３）
【００４４】
（２−１）署名者証明書Ｃｅｒｔ＿Ｓ１及びＣＡ証明書Ｃｅｒｔ＿ＣＡの正当性が検証されると、検証部３４は、署名者証明書Ｃｅｒｔ＿Ｓ１から署名者検証鍵ＰＫ＿Ｓ１を取得する。さらに、検証部３４は、記憶部３２から読み出したメッセージＭを読み出し、ハッシュ関数Ｈ＿ｏｌｄ（）によりハッシュ値を算出する。そして、以下により、メッセージＭのハッシュ値と、署名者検証鍵ＰＫ＿Ｓ１とを用いて署名データＳ１を検証する。
【００４５】
Ｖｅｒｉｆｙ＜ＰＫ＿Ｓ１＞（Ｈ＿ｏｌｄ（Ｍ），Ｓ１）＝ＯＫ／ＮＧ    …（式４）
【００４６】
メッセージＭの内容を秘匿する必要がない場合、署名データＳ１を生成する（式２）において、Ｈ＿ｏｌｄ（Ｍ）の代わりに、メッセージＭを使用してもよい。この場合、検証を行う（式４）においても、Ｈ＿ｏｌｄ（Ｍ）の代わりに、メッセージＭを使用することになる。
【００４７】
図５は、危殆化タイミングＴ１〜対策実施期間終了タイミングＴ２の危殆化対策実施期間において実行される、再署名処理手順を示す図である。
検証者端末３に、再署名処理の実行指示、または、対策実施期間終了タイミングＴ２の情報が検証者によって入力されるか、あるいは、ＣＡ装置２から受信した場合、再署名処理部３５は、既に署名者端末１から受信して記憶部３２に記憶している署名者証明書Ｃｅｒｔ＿Ｓ１が失効していないかを判断する。すなわち、再署名処理部３５は、ＣＡ装置２に問い合わせるか、ＣＡ装置２から予め受信して記憶部３２に記憶していた失効リストに基づいて署名者証明書Ｃｅｒｔ＿Ｓ１の失効リストが発行されていないことを確認し、さらに、署名者証明書Ｃｅｒｔ＿Ｓ１内の有効期間の情報から現在が有効期間内であることを確認する（ステップＳ２０１）。
【００４８】
署名者証明書Ｃｅｒｔ＿Ｓ１が失効していないことが確認されると、再署名処理部３５は、再署名処理を実行する（ステップＳ２０２）。まず、再署名処理部３５は、ハッシュ関数Ｈ＿ｎｅｗＶ１によりメッセージＭのハッシュ値Ｈ＿ｎｅｗＶ１（Ｍ）を算出するとともに、ハッシュ関数Ｈ＿ｎｅｗＶ２により署名者証明書Ｃｅｒｔ＿Ｓ１のハッシュ値Ｈ＿ｎｅｗＶ２（Ｃｅｒｔ＿Ｓ１）を算出する。なお、ハッシュ関数Ｈ＿ｎｅｗＶ１、ハッシュ関数Ｈ＿ｎｅｗＶ２は、検証者端末３において使用されるハッシュ関数Ｈ＿ｎｅｗであり、同じハッシュアルゴリズムであってもよく、異なるハッシュアルゴリズムであってもよい。再署名処理部３５は、ハッシュ値Ｈ＿ｎｅｗＶ１（Ｍ）、署名データＳ１、及び、ハッシュ値Ｈ＿ｎｅｗＶ２（Ｃｅｒｔ＿Ｓ１）を結合したタイムスタンプ対象データＨ＿ｎｅｗＶ１（Ｍ）‖Ｓ１‖Ｈ＿ｎｅｗＶ２（Ｃｅｒｔ＿Ｓ１）を生成する（「‖」は、データの結合を示す）。再署名処理部３５は、生成したタイムスタンプ対象データを設定したタイムスタンプ要求データをＴＳＡ装置４へ送信する（ステップＳ２０３）。
【００４９】
ＴＳＡ装置４のタイムスタンプ発行部４３は、以下のように、ハッシュ関数Ｈ＿ｎｅｗＴＳＡによって、タイムスタンプ対象データの受信時刻を示すデータであるタイムスタンプ時刻データＴｉｍｅ、及び、タイムスタンプ対象データからハッシュ値を算出し、算出したハッシュ値に、記憶部４２から読み出したＴＳＡ署名鍵ＳＫ＿ＴＳＡにより署名を行い、タイムスタンプデータＴｉｍｅＳｔａｍｐを生成する（ステップＳ２０４）。ただし、ハッシュ関数Ｈ＿ｎｅｗＴＳＡは、ＴＳＡ装置４において使用されるハッシュ関数Ｈ＿ｎｅｗであり、ハッシュ関数Ｈ＿ｎｅｗＶ１、ハッシュ関数Ｈ＿ｎｅｗＶ２と同じあってもよく、異なっていてもよい。
【００５０】
ＴｉｍｅＳｔａｍｐ＝Ｓｉｇｎ＜ＳＫ＿ＴＳＡ＞（Ｈ＿ｎｅｗＴＳＡ（Ｔｉｍｅ，Ｈ＿ｎｅｗＶ１（Ｍ）‖Ｓ１‖Ｈ＿ｎｅｗＶ２（Ｃｅｒｔ＿Ｓ１）））    …（式５）
【００５１】
タイムスタンプ発行部４３は、生成したタイムスタンプデータＴｉｍｅＳｔａｍｐと、タイムスタンプ時刻データＴｉｍｅと、ＴＳＡ証明書Ｃｅｒｔ＿ＴＳＡとを検証者端末３に返送する（ステップＳ２０５）。検証者端末３は、タイムスタンプ時刻データＴｉｍｅ、メッセージＭ、署名データＳ１、署名者証明書Ｃｅｒｔ＿Ｓ１、タイムスタンプデータＴｉｍｅＳｔａｍｐの組みである再署名データＳ２を生成し、ＴＳＡ証明書Ｃｅｒｔ＿ＴＳＡと関連づけて記憶部３２に保持する（ステップＳ２０６）。このとき、ＴＳＡ証明書Ｃｅｒｔ＿ＴＳＡの検証をおこなってから再署名データＳ２を生成し、保持するようにしてもよい。
【００５２】
図６は、対策実施期間終了タイミングＴ２において実行される、署名者証明書の失効及び再発行処理手順を示す図である。
署名者端末１において、署名者署名鍵ＳＫ＿Ｓ２及び署名者検証鍵ＰＫ＿Ｓ２のペアを生成して記憶部１２に保持すると、証明書要求部１３は、署名者証明書Ｃｅｒｔ＿Ｓ１または署名者証明書Ｃｅｒｔ＿Ｓ１を特定する情報を設定した失効要求と、署名者検証鍵ＰＫ＿Ｓ２を設定した証明書発行要求とをＣＡ装置２へ送信する（ステップＳ３０１）。ＣＡ装置２の失効リスト発行部２４は、「ハッシュ関数の危殆化」、または、「公開鍵の危殆化（鍵長）」の失効理由と、失効対象の署名者証明書Ｃｅｒｔ＿Ｓ１を特定する情報と、失効時刻が設定された失効リストＣＲＬ＿Ｓ１を生成する。また、証明書発行部２３は、ハッシュ関数Ｈ＿ｎｅｗＣＡを用いて算出した署名者検証鍵ＰＫ＿Ｓ２、および発行元のＣＡを特定する情報や有効期限（時刻Ｔ＿Ｃｅｒｔ１〜時刻Ｔ＿Ｃｅｒｔ２）等の情報である証明書情報Ｉｎｆｏ＿Ｓ２のハッシュ値に、ＣＡ署名鍵ＳＫ＿ＣＡを用いて署名を行い、署名者証明書Ｃｅｒｔ＿Ｓ２を生成する（ステップＳ３０２）。署名者証明書Ｃｅｒｔ＿Ｓ２には、さらに、署名者検証鍵ＰＫ＿Ｓ２、及び、証明書情報Ｉｎｆｏ＿Ｓ２が設定される。
【００５３】
Ｃｅｒｔ＿Ｓ２＝（ＰＫ＿Ｓ２，Ｉｎｆｏ＿Ｓ２，Ｓｉｇｎ＜ＳＫ＿ＣＡ＞（Ｈ＿ｎｅｗＣＡ（ＰＫ＿Ｓ２，Ｉｎｆｏ＿Ｓ２）））  …（式６）
【００５４】
ＣＡ装置２の証明書発行部２３は、生成した署名者証明書Ｃｅｒｔ＿Ｓ２を署名者端末１へ返送する（ステップＳ３０３）。なお、ＣＡ装置２において署名者署名鍵ＳＫ＿Ｓ２及び署名者検証鍵ＰＫ＿Ｓ２のペアを生成するとともに、署名者証明書Ｃｅｒｔ＿Ｓ２を生成して、これらを署名者端末１に送信することでもよい。署名者端末１の証明書要求部１３は、予め記憶部１２に記憶しているか、署名者証明書Ｃｅｒｔ＿Ｓ２と同時に受信したＣＡ証明書Ｃｅｒｔ＿ＣＡからＣＡ検証鍵ＰＫ＿ＣＡを取得し、取得したＣＡ検証鍵ＰＫ＿ＣＡにより署名者証明書Ｃｅｒｔ＿Ｓ２を検証して記憶部１２に保持する（ステップＳ３０４）。また、署名者端末１の送信部１５は、検証者端末３へ署名者証明書Ｃｅｒｔ＿Ｓ２を送信する（ステップＳ３０５）。
【００５５】
検証者端末３は、予めＣＡ装置２から受信して記憶部３２に記憶している、あるいは、署名者証明書Ｃｅｒｔ＿Ｓ２受信時に、署名者証明書Ｃｅｒｔ＿Ｓ２の失効リストが発行されていないかを確認し、さらに、ＣＡ装置２から取得したＣＡ証明書Ｃｅｒｔ＿ＣＡを使用して、署名者証明書Ｃｅｒｔ＿Ｓ２の検証を行う（ステップＳ３０６）。まず、検証部３４は、ＣＡ証明書Ｃｅｒｔ＿ＣＡに設定されている発行元の情報から正しいＣＡであることを確認するとともに、ＣＡ証明書Ｃｅｒｔ＿ＣＡに設定されている有効期間の情報から、現在が当該ＣＡ証明書Ｃｅｒｔ＿ＣＡの有効期間内であることを確認し、さらに、ＣＡ証明書Ｃｅｒｔ＿ＣＡの失効リストが発行されていないことを確認する。
【００５６】
検証部３４は、ＣＡ検証鍵ＰＫ＿ＣＡによりＣＡ証明書Ｃｅｒｔ＿ＣＡ内の署名データの正当性を確認し、さらに、このＣＡ検証鍵ＰＫ＿ＣＡにより、署名者端末１から受信した署名者証明書Ｃｅｒｔ＿Ｓ２を以下のように検証する。
【００５７】
Ｖｅｒｉｆｙ＜ＰＫ＿ＣＡ＞（Ｃｅｒｔ＿Ｓ２）＝ＯＫ／ＮＧ    …（式７）
【００５８】
また、検証部３４は、ＣＡ証明書Ｃｅｒｔ＿ＣＡからＣＡ検証鍵ＰＫ＿ＣＡを読み出し、失効リストＣＲＬ＿Ｓ１を以下のように検証する。
【００５９】
Ｖｅｒｉｆｙ＜ＰＫ＿ＣＡ＞（ＣＲＬ＿Ｓ１）＝ＯＫ／ＮＧ    …（式８）
【００６０】
図７は、対策実施期間終了タイミングＴ２以降の期間において実行される、再署名データの検証処理手順を示す図である。
検証者端末３にメッセージＭの検証指示が入力されると、まず、検証者端末３の検証部３４は、以下のように対策時刻の検証を行う（ステップＳ４０１）。
【００６１】
（１）検証部３４は、ＣＡ装置２に問い合わせて受信するか、ＣＡ装置２から予め受信して記憶部３２に記憶していた失効リストＣＲＬ＿Ｓ１により、対策実施期間終了タイミングＴ２において署名者証明書Ｃｅｒｔ＿Ｓ１が失効されていることを確認する。対策実施期間終了タイミングＴ２の情報は、検証者によって入力されるか、あるいは、ＣＡ装置２から受信して予め記憶部３２に記憶されているものとする。
【００６２】
（２）検証部３４は、記憶部３２を参照して、メッセージＭが含まれている再署名データＳ２からタイムスタンプ時刻データＴｉｍｅを読み出し、読み出したタイムスタンプ時刻データＴｉｍｅが対策実施期間終了タイミングＴ２より前の時刻であることを確認する。さらに、タイムスタンプ時刻データＴｉｍｅが、危殆化タイミングＴ１より後の時刻であることを検証するようにしてもよい。つまり、検証部３４は、（Ｔ１＜）Ｔｉｍｅ＜Ｔ２を満たすかにより、再署名処理が可能な期間に再署名データＳ２が生成されたものかを判断する。危殆化タイミングＴ１の情報は、検証者によって入力されるか、あるいは、ＣＡ装置２から受信して予め記憶部３２に記憶されているものとする。
【００６３】
（３）次に、検証部３４は、現在の時刻である検証時刻Ｔ＿Ｖが、証明書の有効期間の終了時刻Ｔ＿Ｃｅｒｔ２より前であるかを確認する。さらに、検証時刻Ｔ＿Ｖが、証明書の有効期間の開始時刻Ｔ＿Ｃｅｒｔ１より後であるかを確認するようにしてよい。つまり、検証部３４は、（Ｔ＿Ｃｅｒｔ１＜）Ｔ＿Ｖ＜Ｔ＿Ｃｅｒｔ２を満たすかにより、検証時刻Ｔ＿Ｖが証明書の有効期間内であるかを判断する。
【００６４】
続いて、検証部３４は、各証明書の検証を行う（ステップＳ４０２）。まず、ＴＳＡ証明書Ｃｅｒｔ＿ＴＳＡ、ＣＡ証明書Ｃｅｒｔ＿ＣＡ、及び、失効リストＣＲＬ＿Ｓ１については、一般的な通常の正当性検証処理と同様に、ＣＡ検証鍵ＰＫ＿ＣＡによる署名データの検証、有効期限の検証、失効リストが発行されていないことの確認を行う。続いて、検証部３４は、ＣＡ検証鍵ＰＫ＿ＣＡを用いて、再署名データＳ２から取得した署名者証明書Ｃｅｒｔ＿Ｓ１内の署名データが正しいことを検証するとともに、当該署名者証明書Ｃｅｒｔ＿Ｓ１の有効期限の情報から現在が有効期間内であることを判断すると、さらに、当該署名者証明書Ｃｅｒｔ＿Ｓ１の失効リストＣＲＬ＿Ｓ１内の失効理由が、「ハッシュ関数の危殆化」、「公開鍵の危殆化（鍵長）」であることを確認する。
【００６５】
検証部３４は、次に、ステップＳ４０２において検証した署名者証明書Ｃｅｒｔ＿Ｓ１から署名者検証鍵ＰＫ＿Ｓ１を取得し、取得した署名者検証鍵ＰＫ＿Ｓ１と、再署名データＳ２から読み出したメッセージＭ及び署名データＳ１とを用いて、署名データＳ１が正しいかを以下のように検証する（ステップＳ４０３）。ただし、（式２）において、Ｈ＿ｏｌｄ（Ｍ）の代わりに、メッセージＭを使用した場合、検証を行う（式９）においても、Ｈ＿ｏｌｄ（Ｍ）の代わりに、メッセージＭを使用することになる。
【００６６】
Ｖｅｒｉｆｙ＜ＰＫ＿Ｓ１＞（Ｈ＿ｏｌｄ（Ｍ），Ｓ１）＝ＯＫ／ＮＧ    …（式９）
【００６７】
検証部３４は、検証されたＴＳＡ証明書Ｃｅｒｔ＿ＴＳＡから取得したＴＳＡ検証鍵ＰＫ＿ＴＳＡと、ステップＳ４０３において用いた同一のメッセージＭ、署名データＳ１、署名者証明書Ｃｅｒｔ＿Ｓ１と、再署名データＳ２から読み出したタイムスタンプ時刻データＴｉｍｅと、ハッシュ関数Ｈ＿ｎｅｗＴＳＡ（）、Ｈ＿ｎｅｗＶ１（）、Ｈ＿ｎｅｗＶ２（）とを用いて、以下のように、再署名データＳ２内のタイムスタンプデータＴｉｍｅＳｔａｍｐの正当性を検証する（ステップＳ４０４）。
【００６８】
Ｖｅｒｉｆｙ＜ＰＫ＿ＴＳＡ＞（Ｈ＿ｎｅｗＴＳＡ（Ｔｉｍｅ，Ｈ＿ｎｅｗＶ１（Ｍ）‖Ｓ１‖Ｈ＿ｎｅｗＶ２（Ｃｅｒｔ＿Ｓ１）），ＴｉｍｅＳｔａｍｐ）＝ＯＫ／ＮＧ    …（式１０）
【００６９】
なお、タイムスタンプデータＴｉｍｅＳｔａｍｐの生成には、ハッシュ関数Ｈ＿ｎｅｗＴＳＡ（）により生成したハッシュ値を使用しているが、ハッシュ関数を用いずにタイムスタンプ対象データ、及び、タイムスタンプ時刻データＴｉｍｅを用いて生成することでもよい。また、タイムスタンプ対象データについても、ハッシュ関数Ｈ＿ｎｅｗＶ１（）、Ｈ＿ｎｅｗＶ２（）値を用いず、メッセージＭ、あるいは、署名者証明書Ｃｅｒｔ＿Ｓ１をそのまま使用してもよい。
【００７０】
なお、検証者端末３は、メッセージＭの署名検証指示が入力されたときに、メッセージＭと対応づけられて記憶部３２に記憶されている署名データが署名データＳ１であれば、図４に示す検証処理により検証を行い、再署名データＳ２であれば図７に示す検証処理を実行する。対策実施期間終了タイミングＴ２以降に生成された署名データの場合は、署名データＳ１と同様に検証することができる。
【００７１】
あるいは、まず、メッセージＭに対応付けて記憶部３２に記憶されている署名者証明書Ｃｅｒｔ＿Ｓ１あるいはＣｅｒｔ＿Ｓ２に対応した失効リストが発行されているかを判断し、失効リストが発行されていない場合は、図４に示す検証処理により検証を行い、一方、失効リストが発行されており、かつ、失効理由が「ハッシュ関数の危殆化」、または、「公開鍵の危殆化（鍵長）」であり、かつ、メッセージＭと対応づけて記憶部３２に記憶されている署名データが再署名データＳ２であれば、図７に示す検証処理を実行するようにしてもよい。
なお、再署名データＳ２であるかは、例えば、署名データＳ１に加えて、タイムスタンプデータＴｉｍｅＳｔａｍｐが保持されているかや、データフィールドが再署名データＳ２用のデータ形式であるか、などにより判断することができる。
【００７２】
また、上記においては、図５に示す再署名処理手順を検証者端末３にて行っているが、署名者端末１、あるいは、他のユーザの端末が行うようにしてもよい。
【００７３】
なお、上述の署名者端末１、ＣＡ装置２、検証者端末３、ならびに、ＴＳＡ装置４は、内部にコンピュータシステムを有している。そして、署名者端末１の証明書要求部１３、署名生成部１４、送信部１５及び失効要求部１６、ＣＡ装置２の証明書発行部２３及び失効リスト発行部２４、検証者端末３の受信部３３、検証部３４及び再署名処理部３５、ならびに、ＴＳＡ装置４のタイムスタンプ発行部４３の動作の過程は、プログラムの形式でコンピュータ読み取り可能な記録媒体に記憶されており、このプログラムをコンピュータシステムが読み出して実行することによって、上記処理が行われる。ここでいうコンピュータシステムとは、ＣＰＵ及び各種メモリやＯＳ、周辺機器等のハードウェアを含むものである。
【００７４】
また、「コンピュータシステム」は、ＷＷＷシステムを利用している場合であれば、ホームページ提供環境（あるいは表示環境）も含むものとする。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含むものとする。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
【００７５】
なお、本発明は、上記において説明した実施形態に限定されるものではなく、その主旨を逸脱しない範囲において種々変更可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。
【図面の簡単な説明】
【００７６】
【図１】本発明の一実施の形態による署名システムのブロック図である。
【図２】同実施の形態による署名システムのシーケンス図である。
【図３】同実施の形態による証明書及びディジタル署名の有効期間と、危殆化のタイミングとの関係を示す図である。
【図４】同実施の形態による署名システムにおける署名データの発行及び検証処理手順を示す図である。
【図５】同実施の形態による署名システムにおける再署名処理手順を示す図である。
【図６】同実施の形態による署名システムにおける証明書の失効及び再発行処理手順を示す図である。
【図７】同実施の形態による署名システムにおける再署名データの検証処理手順を示す図である。
【符号の説明】
【００７７】
１…署名者端末
２…認証局（ＣＡ）装置
３…検証者端末
４…時刻認証局（ＴＳＡ）装置
１１、２１、３１、４１…通信部
１２、２２、３２、４２…記憶部
１３…証明書要求部
１４…署名生成部
１５…送信部
１６…失効要求部
２３…証明書発行部
２４…失効リスト発行部
３３…受信部
３４…検証部
３５…再署名処理部
４３…タイムスタンプ発行部
【図１】
2009194443.tif 000003
【図２】
2009194443.tif 000004
【図３】
2009194443.tif 000005
【図４】
2009194443.tif 000006
【図５】
2009194443.tif 000007
【図６】
2009194443.tif 000008
【図７】
2009194443.tif 000009