JP2009194443A - 署名システム及び方法、ならびに、コンピュータプログラム - Google Patents
署名システム及び方法、ならびに、コンピュータプログラム Download PDFInfo
- Publication number
- JP2009194443A JP2009194443A JP2008030475A JP2008030475A JP2009194443A JP 2009194443 A JP2009194443 A JP 2009194443A JP 2008030475 A JP2008030475 A JP 2008030475A JP 2008030475 A JP2008030475 A JP 2008030475A JP 2009194443 A JP2009194443 A JP 2009194443A
- Authority
- JP
- Japan
- Prior art keywords
- data
- signature
- signer
- certificate
- time
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Abstract
【課題】公開鍵暗号方式の秘密鍵またはアルゴリズム、あるいは、ハッシュ関数の危殆化が生じた場合に、署名者以外であってもディジタル署名の延長を行う。
【解決手段】検証者端末3は、電子データと、危殆化が発見されたディジタル署名技術により生成された当該電子データの署名データと、署名者の検証鍵の公開鍵証明書とを用いてタイムスタンプ対象データを生成し、TSA装置4へ送信する。そして、返送されたタイムスタンプデータ及びタイムスタンプ時刻データと、前記電子データ、前記署名データ、及び、前記署名者証明書とからなる再署名データを生成する。その後、CA装置2は、危殆化による署名者証明書の失効リストを発行する。検証者端末3は、再署名データ内のタイムスタンプデータが、当該再署名データ内のタイムスタンプ時刻データ、電子データ、署名データ、及び、失効した署名者証明書から生成されたことを確認することにより、検証を行う。
【選択図】図1
【解決手段】検証者端末3は、電子データと、危殆化が発見されたディジタル署名技術により生成された当該電子データの署名データと、署名者の検証鍵の公開鍵証明書とを用いてタイムスタンプ対象データを生成し、TSA装置4へ送信する。そして、返送されたタイムスタンプデータ及びタイムスタンプ時刻データと、前記電子データ、前記署名データ、及び、前記署名者証明書とからなる再署名データを生成する。その後、CA装置2は、危殆化による署名者証明書の失効リストを発行する。検証者端末3は、再署名データ内のタイムスタンプデータが、当該再署名データ内のタイムスタンプ時刻データ、電子データ、署名データ、及び、失効した署名者証明書から生成されたことを確認することにより、検証を行う。
【選択図】図1
Description
本発明は、電子データの正当性を保証するディジタル署名の発行及び検証を行う署名システム及び方法、ならびに、コンピュータプログラムに関する。
近年、契約書等の様々な書類や情報が電子化されている。これらの書類には、本人が認め、改ざんされていないことを保証するための捺印行為を伴うものが多数あり、電子データでは、この捺印行為を実現する技術としてディジタル署名がある。このディジタル署名により、電子的な契約書等の書類である電子データに対する「文書の改ざん検知」機能、「本人が同意していることの検証」機能を実現する。
このようなディジタル署名は、一般的に、公開鍵暗号方式、ハッシュ関数といった2種類の暗号技術により実現されている。また、ディジタル署名の際に用いる署名鍵の正当性は公開鍵証明書によって保証されており、ディジタル署名の安全性は、これらの暗号技術の安全性、及び、公開鍵証明書が有効であるかどうかに依存している。
このようなディジタル署名は、一般的に、公開鍵暗号方式、ハッシュ関数といった2種類の暗号技術により実現されている。また、ディジタル署名の際に用いる署名鍵の正当性は公開鍵証明書によって保証されており、ディジタル署名の安全性は、これらの暗号技術の安全性、及び、公開鍵証明書が有効であるかどうかに依存している。
しかしながら、暗号技術は、時間の経過に伴う計算機能力の向上や新たな攻撃の発見により安全性が低下すること、すなわち、危殆化することが考えられる。ディジタル署名の安全性の低下の大きな要因としては、(1)公開鍵暗号方式が保証する秘密鍵(ディジタル署名用の署名鍵)の危殆化、(2)公開鍵暗号方式のアルゴリズムの危殆化、(3)ハッシュ関数の危殆化、の3つがあげられる。
(1)及び(2)の要因によれば、悪意のある第三者が署名者の署名鍵を類推可能となり、任意のディジタルデータに他人のディジタル署名を行うことが可能となってしまう。また、危殆化を理由に、署名者がディジタル署名を行った事実を否認してしまうおそれがある。また、(3)の要因によれば、第三者により、生成されたディジタル署名が、どの電子データのものであるかを特定することが可能となってしまう。
(1)及び(2)の要因によれば、悪意のある第三者が署名者の署名鍵を類推可能となり、任意のディジタルデータに他人のディジタル署名を行うことが可能となってしまう。また、危殆化を理由に、署名者がディジタル署名を行った事実を否認してしまうおそれがある。また、(3)の要因によれば、第三者により、生成されたディジタル署名が、どの電子データのものであるかを特定することが可能となってしまう。
上記のような危殆化の要因によって、本来ディジタル署名によって保証されるべき期間よりも短い期間しか、その正当性を保証できないという問題が生じてしまうため、長期の保証が求められるディジタル署名については、このような危殆化に対して何らかの対策が必要となる。また、アルゴリズムに対する新たな攻撃手法の発見等の予期せぬ要因により危殆化した場合に、既に生成したディジタル署名文書の有効性を効率よく保証する技術も必要とされている。
このような危殆化への対策技術は、例えば、特許文献1〜3に記載されている。これらは主に、タイムスタンプ長期保証ガイドラインに示されているような、タイムスタンプにおける危殆化対策等を実現し、タイムスタンプを長期に保証する技術である。
特開2007−27938号公報
特開2007−104024号公報
特開2007−232754号公報
上述した特許文献1には、公開鍵証明書の有効性に関する対策技術が示されており、既存の署名文書と同一のメッセージを再度用いて、新たなアルゴリズムまたは鍵により再署名を行うものでる。この特許文献1の技術は、上述した(1)〜(3)の要因に対する対策技術となっている。しかしながら、特許文献1の技術は、署名者の署名鍵が必要となるため、署名者が、ディジタル署名のうち直しを行うことになる。そのため、署名者は、検証者が保有する文書に対してそれぞれ再署名処理を実施しなければならならず、署名者の処理量は膨大なものとなる。つまり、(a)大量の署名文書に署名している署名者が、再署名処理を行うことは困難である、(b)署名者が危殆化を理由に署名の事実を否認できる、(c)署名者から、検証者への再度のディジタル署名の配布が必要である、などの問題が生じる。
また、特許文献2には、過去の複数のタイムスタンプのデータから新たなタイムスタンプを生成することにより、タイムスタンプ提供装置の署名鍵の更新に対応している。この特許文献2の技術は、上述した(1)及び(2)の要因に対する対策技術となっているが、(3)を解決するものではない。また、ディジタル署名の検証時に、検証対象の署名文書以外の署名文書も必要となってしまう。
また、特許文献3には、ハッシュ関数が危殆化するような自体に際しても、安全なハッシュ値を生成する技術が示されており、上述した(3)の要因に対する対策技術となっている。しかし、特許文献3の技術は、(1)及び(2)を解決するものではなく、また、今後新規に作成するディジタル署名処理に対して利用することが可能であるが、既に作成された署名文書に対しては適用できない。
また、特許文献2には、過去の複数のタイムスタンプのデータから新たなタイムスタンプを生成することにより、タイムスタンプ提供装置の署名鍵の更新に対応している。この特許文献2の技術は、上述した(1)及び(2)の要因に対する対策技術となっているが、(3)を解決するものではない。また、ディジタル署名の検証時に、検証対象の署名文書以外の署名文書も必要となってしまう。
また、特許文献3には、ハッシュ関数が危殆化するような自体に際しても、安全なハッシュ値を生成する技術が示されており、上述した(3)の要因に対する対策技術となっている。しかし、特許文献3の技術は、(1)及び(2)を解決するものではなく、また、今後新規に作成するディジタル署名処理に対して利用することが可能であるが、既に作成された署名文書に対しては適用できない。
本発明は、上記の事情に鑑みてなされたものであり、公開鍵暗号方式の秘密鍵またはアルゴリズムの危殆化、あるいは、ハッシュ関数の危殆化が生じた場合に、ディジタル署名が付与された文書データを保持するエンティティであれば、署名者以外であってもディジタル署名の延長を行うことができる署名システム及び方法、ならびに、コンピュータプログラムを提供することを目的とする。
上記課題を解決するため、本発明は、認証局装置と、時刻認証局装置と、端末とからなる署名システムであって、前記認証局装置は、署名者の署名鍵に対応した検証鍵の公開鍵証明書である署名者証明書を生成する証明書発行部を備え、前記時刻認証局装置は、前記端末からタイムスタンプ対象データを受信し、当該タイムスタンプ対象データと、当該タイムスタンプ対象データの受信時刻を示すタイムスタンプ時刻データとを基にタイムスタンプデータを生成し、生成したタイムスタンプデータと、前記タイムスタンプ時刻データとを返送するタイムスタンプ生成部を備え、再署名処理を行う前記端末は、署名者がディジタル署名を行った電子データと、当該電子データ、及び、前記署名者の署名鍵を用いて生成した前記電子データの署名データと、前記認証局装置により生成された、前記署名者の署名者証明書とを記憶する記憶部と、前記記憶部から読み出した電子データと、当該電子データの署名データと、当該電子データにディジタル署名を行った署名者の署名者証明書とを用いてタイムスタンプ対象データを生成し、前記時刻認証局装置へ送信するとともに、当該タイムスタンプ対象データに対応して返送されたタイムスタンプデータ及びタイムスタンプ時刻データと、前記電子データ、前記署名データ、及び、前記署名者証明書とからなる再署名データを生成する再署名処理部とを備え、署名検証を行う前記端末は、検証対象の再署名データに含まれるタイムスタンプデータが、当該再署名データに含まれるタイムスタンプ時刻データ、電子データ、署名データ、及び、署名者証明書に基づいて生成されたかを検証し、さらに、前記署名者証明書から取得した検証鍵を用いて、前記署名データが前記電子データに基づいて生成されたかを検証する検証部を備える、ことを特徴とする署名システムである。
また、本発明は、上述する署名システムであって、前記認証局装置は、失効した署名者証明書と、失効理由とを示す失効リストを発行する失効リスト発行部をさらに備え、前記検証部は、前記認証局装置により発行された失効リストにより、取得した前記署名者証明書が失効しており、かつ、失効理由が危殆化であるかをさらに検証する、ことを特徴とする。
また、本発明は、上述する署名システムであって、前記再署名処理部は、前記署名者証明書が失効していないと判断した場合に、前記再署名データを生成することを特徴とする。
また、本発明は、上述する署名システムであって、前記再署名データの生成は、署名データの生成に使用する前記署名鍵、あるいは、ハッシュアルゴリズムが、危殆化により署名データの生成に使用できなくなる時刻までに行われることを特徴とする。
また、本発明は、認証局装置と、時刻認証局装置と、端末とからなる署名システムにおける署名方法であって、前記認証局装置が、署名者の署名鍵に対応した検証鍵の公開鍵証明書である署名者証明書を生成する証明書発行過程と、再署名処理を行う前記端末が、署名者がディジタル署名を行った電子データと、当該電子データ、及び、前記署名者の署名鍵を用いて生成された当該電子データの署名データと、前記認証局装置により生成された、前記署名者の署名者証明書とを記憶部から読み出し、読み出した電子データ、署名データ、及び、署名者証明書を用いてタイムスタンプ対象データを生成して前記時刻認証局装置へ送信するタイムスタンプ要求過程と、前記時刻認証局装置が、前記端末からタイムスタンプ対象データを受信し、当該タイムスタンプ対象データと、当該タイムスタンプ対象データの受信時刻を示すタイムスタンプ時刻データとを基にタイムスタンプデータを生成し、生成したタイムスタンプデータと、前記タイムスタンプ時刻データとを返送するタイムスタンプ生成過程と、再署名処理を行う前記端末が、前記時刻認証局装置から返送されたタイムスタンプデータ及びタイムスタンプ時刻データと、前記電子データ、前記署名データ、及び、前記署名者証明書とからなる再署名データを生成する再署名処理過程と、署名検証を行う前記端末が、検証対象の再署名データに含まれるタイムスタンプデータが、当該再署名データに含まれるタイムスタンプ時刻データ、電子データ、署名データ、及び、署名者証明書に基づいて生成されたかを検証し、さらに、前記署名者証明書から取得した検証鍵を用いて、前記署名データが前記電子データに基づいて生成されたかを検証する検証過程、を有することを特徴とする署名方法である。
また、本発明は、署名者の署名鍵に対応した検証鍵の公開鍵証明書である署名者証明書を生成する認証局装置と、受信したタイムスタンプ対象データと、当該タイムスタンプ対象データの受信時刻を示すタイムスタンプ時刻データとを基にタイムスタンプデータを生成する時刻認証局装置と、端末とからなる署名システムにおける前記端末に用いられるコンピュータプログラムであって、署名者がディジタル署名を行った電子データと、当該電子データ、及び、前記署名者の署名鍵を用いて生成された前記電子データの署名データと、当該署名データの生成に用いられた署名鍵に対応する検証鍵の署名者証明書とを記憶部から読み出し、読み出した電子データ、署名データ、及び、署名者証明書を用いてタイムスタンプ対象データを生成して前記時刻認証局装置へ送信するタイムスタンプ要求ステップと、前記時刻認証局装置から返送されたタイムスタンプデータ及びタイムスタンプ時刻データと、前記電子データ、前記署名データ、及び、前記署名者証明書とからなる再署名データを生成する再署名処理ステップと、をコンピュータに実行させることを特徴とするコンピュータプログラムである。
また、本発明は、署名者の署名鍵に対応した検証鍵の公開鍵証明書である署名者証明書を生成する認証局装置と、受信したタイムスタンプ対象データと、当該タイムスタンプ対象データの受信時刻を示すタイムスタンプ時刻データとを基にタイムスタンプデータを生成する時刻認証局装置と、端末とからなる署名システムにおける前記端末に用いられるコンピュータプログラムであって、署名者がディジタル署名を行った電子データと、当該電子データ、及び、前記署名者の署名鍵を用いて生成された前記電子データの署名データと、前記認証局装置により生成された、前記署名者の署名者証明書と、タイムスタンプデータと、タイムスタンプ時刻データとからなる再署名データを記憶部から読み出し、当該再署名データに含まれるタイムスタンプデータが、当該再署名データに含まれるタイムスタンプ時刻データ、電子データ、署名データ、及び、署名者証明書に基づいて生成されたかを検証し、さらに、前記署名者証明書から取得した検証鍵を用いて、前記署名データが前記電子データに基づいて生成されたかを検証する検証ステップ、をコンピュータに実行させることを特徴とするコンピュータプログラムである。
本発明によれば、当初ディジタル署名によって正当性が保証されるとしていた期間までに、公開鍵暗号方式が保証する秘密鍵(署名鍵)の危殆化、公開鍵暗号方式の危殆化、あるいは、ハッシュ関数の危殆化が生じた場合であっても、ディジタル署名文書に対して再署名処理を施すことにより、ディジタル署名時に正当性が保証されるとしていた期間までその正当性を保証することができる。そして、この再署名処理には、署名者の秘密鍵を使用する必要がなく、元の電子データ及びそのディジタル署名データを保持するエンティティであれば、誰でも再署名処理を実施することが可能となるため、再署名処理の実行者を署名者に限定する必要がない。従って、署名者が大量のディジタル署名データを複数の相手先に配布していたとしても、効率よく再署名処理を実行することができる。
以下、図面を参照して本発明の一実施の形態の例について説明する。
図1は、本発明の一実施の形態による署名システムの構成を示すブロック図であり、本発明と関係する機能ブロックのみ抽出して示してある。
同図において署名システムは、電子データにディジタル署名を施す署名者(Signer)の署名者端末1と、ディジタル署名された電子データを検証し、保管する検証者(V)の検証者端末3と、認証局(CA:Certificate Authority)のCA装置2と、時刻認証局(TSA:Time Stamp Authority)のTSA装置4とをネットワークNを介して接続してなる。CAは、PKI(Public Key Infrastructure:公開鍵暗号基盤)における認証局業務を行うTTP(Trusted Third Party:信頼できる第三者機関)であり、署名者、CA、TSAの公開鍵証明書や、失効した証明書を示す失効リストを発行する。TSAは、PKIにおける時刻認証業務を行うTTPであり、利用者から送付されたデータに対して、受信時刻が付与されたタイムスタンプを発行する。検証者は、ディジタル署名技術の危殆化後も、すでに発行されているディジタル署名が有効となるよう、検証者端末3により再署名処理を行う。
図1は、本発明の一実施の形態による署名システムの構成を示すブロック図であり、本発明と関係する機能ブロックのみ抽出して示してある。
同図において署名システムは、電子データにディジタル署名を施す署名者(Signer)の署名者端末1と、ディジタル署名された電子データを検証し、保管する検証者(V)の検証者端末3と、認証局(CA:Certificate Authority)のCA装置2と、時刻認証局(TSA:Time Stamp Authority)のTSA装置4とをネットワークNを介して接続してなる。CAは、PKI(Public Key Infrastructure:公開鍵暗号基盤)における認証局業務を行うTTP(Trusted Third Party:信頼できる第三者機関)であり、署名者、CA、TSAの公開鍵証明書や、失効した証明書を示す失効リストを発行する。TSAは、PKIにおける時刻認証業務を行うTTPであり、利用者から送付されたデータに対して、受信時刻が付与されたタイムスタンプを発行する。検証者は、ディジタル署名技術の危殆化後も、すでに発行されているディジタル署名が有効となるよう、検証者端末3により再署名処理を行う。
同図において、署名者端末1は、通信部11、記憶部12、証明書要求部13、署名生成部14、送信部15、及び、失効要求部16を備える。通信部11は、ネットワークNを介して他の装置とデータの送受信を行う。
記憶部12は、署名者の検証鍵(公開鍵)である署名者検証鍵、署名者の署名鍵(秘密鍵)であり、署名者検証鍵と対になる署名者署名鍵、署名者検証鍵の公開鍵証明書である署名者証明書、CAが発行する証明書等に含まれるCAの署名データを検証するためのCA検証鍵、CA検証鍵の公開鍵証明書であるCA証明書などの各種データを記憶する。証明書要求部13は、CA装置2に対して、署名者検証鍵の公開鍵証明書の発行を要求する。署名生成部14は、電子データに対してディジタル署名処理を行い、署名データを生成する。送信部15は、電子データ、当該電子データの署名データ及び署名者証明書を検証者端末3へ送信する。失効要求部16は、CA装置2へ署名者証明書の失効を要求する。
記憶部12は、署名者の検証鍵(公開鍵)である署名者検証鍵、署名者の署名鍵(秘密鍵)であり、署名者検証鍵と対になる署名者署名鍵、署名者検証鍵の公開鍵証明書である署名者証明書、CAが発行する証明書等に含まれるCAの署名データを検証するためのCA検証鍵、CA検証鍵の公開鍵証明書であるCA証明書などの各種データを記憶する。証明書要求部13は、CA装置2に対して、署名者検証鍵の公開鍵証明書の発行を要求する。署名生成部14は、電子データに対してディジタル署名処理を行い、署名データを生成する。送信部15は、電子データ、当該電子データの署名データ及び署名者証明書を検証者端末3へ送信する。失効要求部16は、CA装置2へ署名者証明書の失効を要求する。
CA装置2は、通信部21、記憶部22、証明書発行部23、及び、失効リスト発行部24を備える。通信部21は、ネットワークNを介して他の装置とデータの送受信を行う。記憶部22は、当該CA装置2において発行する証明書や、署名者検証鍵の失効リストに署名を行うときに用いる署名鍵であるCA署名鍵、CA署名鍵と対になるCA検証鍵の公開鍵証明書であるCA証明書などの各種データを記憶する。証明書発行部23は、署名者検証鍵から署名者証明書を生成する。失効リスト発行部24は、失効した証明書とその失効理由を示す失効リストを発行する。
検証者端末3は、通信部31、記憶部32、受信部33、検証部34、及び、再署名処理部35を備える。通信部31は、ネットワークNを介して他の装置とデータの送受信を行う。記憶部32は、CA検証鍵、CA証明書、TSAの検証鍵であるTSA検証鍵、当該TSA検証鍵の公開鍵証明書であるTSA証明書、失効リスト、ディジタル署名を行った電子データ、当該電子データの署名データ、当該電子データの再署名データ、署名者証明書などの各種データを記憶する。受信部33は、署名者端末1から電子データ、当該電子データの署名データ、署名者証明書等のデータを、CA装置2からCA証明書、失効リストなどのデータを受信して記憶部32に書き込む。検証部34は、署名データや再署名データを検証する。再署名処理部35は、ディジタル署名を行った電子データの再署名処理を行い、再署名データを生成する。
TSA装置4は、通信部41、記憶部42、及び、タイムスタンプ発行部43を備える。通信部41は、ネットワークNを介して他の装置とデータの送受信を行う。記憶部42は、TSAの署名鍵であるTSA署名鍵、当該TSA署名鍵と対になるTSA検証鍵のTSA証明書などの各種データを記憶する。タイムスタンプ発行部43は、タイムスタンプが要求されたデータに対して、時刻を証明するタイムスタンプデータを生成する。
図2は、図1に示す署名システムのシーケンス図である。なお、以下では、CA/TSAの信頼性、有効期間、失効状況、証明書パス、CA/TSA/署名者証明書の署名等、一般的なPKI基盤を利用する際に実施すべき検証は全て含まれるものとする。
CAが発行する証明書の有効期間の開始時刻T_Cert1〜ディジタル署名技術の危殆化が発見される危殆化タイミングT1までは、従来の一般的な署名処理が行われる。署名者端末1は、CA装置2に対して、自身の署名者証明書の発行要求を送信する(ステップS11)。これにより、CA装置2から、署名者証明書が返送される(ステップS12)。署名者端末1は、署名対象の文書データに対する署名データを生成すると(ステップS13)、このディジタル署名を行った文書データとともに検証者端末3へ送信する(ステップS14)。検証者端末3は、署名文書データ及び署名データを検証して(ステップS15)、記憶部32に保管する(ステップS16)。
危殆化タイミングT1〜危殆化対策後のディジタル署名技術の運用期間が開始される対策実施期間終了タイミングT2までの期間において、署名文書データの再署名処理が行われる。CA装置2は、危殆化による発行済みの証明書の失効時期として、対策実施期間終了タイミングT2の情報を、署名者端末1及び検証者端末3に通知する(ステップS21)。検証者端末3は、署名者証明書の有効性を確認すると(ステップS22)、署名文書データの再署名処理を実行する(ステップS23)。検証者端末3は、署名文書データ、署名データ、及び、署名者証明書から再署名のためのタイムスタンプ対象データを生成し、生成したタイムスタンプ対象データを設定したタイムスタンプ発行要求をTSA装置4に送信する(ステップS24)。TSA装置4は、タイムスタンプ発行処理を行い(ステップS25)、生成したタイムスタンプデータを検証者端末3へ返送する(ステップS26)。検証者端末3は、受信したタイムスタンプデータを検証し(ステップS27)、検証されたタイムスタンプデータと、再署名を行った文書データ(以下、「再署名文書データ」と記載)とから再署名データを生成して記憶部32に保管する(ステップS28)。
CA装置2は、署名者端末1から、署名者証明書の失効要求を受信する(ステップS31)、あるいは、T2の対策実施期間終了タイミングで、当該署名者の署名者証明書が失効したことを示す失効リストを生成する(ステップS32)。そして、検証者端末3は、署名者証明書の検証を行うときに、CA装置2により生成された失効リストにより失効を確認する(ステップS33)。
対策実施期間終了タイミングT2〜署名データの有効期間の終了時刻T_S2までは、再署名の検証処理が行われる。検証者端末3は、ステップS28において記憶部32に保管していた再署名文書データ及び再署名データにより検証を実行すると(ステップS41)、検証した再署名文書データやその検証結果を署名者端末1に通知し、提示する(ステップS42)。
図3は、証明書及びディジタル署名の有効期間と、危殆化のタイミングとの関係を示す図である。
危殆化が発見される前の通常運用期間において、署名者端末1は、自身の署名者署名鍵SK_S1を用いて、署名対象の文書データであるメッセージMに対する署名データS1を生成する。署名データS1は、ハッシュ関数H_old()を用いて計算したメッセージMのハッシュ値に、署名者署名鍵SK_S1により署名を施したものである。署名データS1またはメッセージMには、署名データS1の有効期間に相当する時刻T_S1〜時刻T_S2の情報が含まれている。検証者端末3は、署名者署名鍵SK_S1に対応する署名者検証鍵PK_S1により、メッセージMの署名データS1を検証する。署名者検証鍵PK_S1は、CAにより発行される署名者証明書Cert_S1から得られる。
危殆化が発見される前の通常運用期間において、署名者端末1は、自身の署名者署名鍵SK_S1を用いて、署名対象の文書データであるメッセージMに対する署名データS1を生成する。署名データS1は、ハッシュ関数H_old()を用いて計算したメッセージMのハッシュ値に、署名者署名鍵SK_S1により署名を施したものである。署名データS1またはメッセージMには、署名データS1の有効期間に相当する時刻T_S1〜時刻T_S2の情報が含まれている。検証者端末3は、署名者署名鍵SK_S1に対応する署名者検証鍵PK_S1により、メッセージMの署名データS1を検証する。署名者検証鍵PK_S1は、CAにより発行される署名者証明書Cert_S1から得られる。
なお、CAが発行する証明書及び失効リストに署名を施すための署名鍵であるCA署名鍵SK_CA、及び、当該CA署名鍵SK_CAに対応し、CAが発行した証明書及び失効リストの署名を検証するためのCA検証鍵PK_CAは、証明書の有効期間である時刻T_Cert1〜時刻T_Cert2の間は危殆化しないものとする。証明書の有効期間である時刻T_Cert1〜時刻T_Cert2は、署名データS1の保証期間である時刻T_S1〜時刻T_S2を含んでおり、T_Cert1≦T_S1<T_S2≦T_Cert2の関係がある。CA検証鍵PK_CAは、CAにより発行されるCA証明書Cert_CAから得られる。
また、TSAが発行するタイムスタンプデータであるTimeStampに署名を施すためのTSA署名鍵SK_TSA、及び、当該TSA署名鍵SK_TSAに対応し、TSAが発行したタイムスタンプデータTimeStampの署名を検証するためのTSA検証鍵PK_TSA、ならびに、タイムスタンプデータTimeStampは、証明書の有効期間である時刻T_Cert1〜時刻T_Cert2の間は、危殆化しないものとする。TSA検証鍵PK_TSAは、CAにより発行されるTSA証明書Cert_TSAから得られる。
危殆化タイミングT1は、通常運用期間において用いられていた公開鍵暗号方式の秘密鍵またはアルゴリズム、あるいは、ハッシュ関数について脆弱性が発見されたタイミングである。
危殆化タイミングT1〜対策実施期間終了タイミングT2までの期間は、署名者署名鍵SK_S1、署名者検証鍵PK_S1、ハッシュ関数H_old()の危殆化が起こっているが、攻撃者による署名データS1の偽造は成功しないと想定されるものとする。つまり、対策実施期間終了タイミングT2までの期間では、署名者署名鍵SK_S1は第三者には入手困難であり、ハッシュ関数H_old()は、一方向性(OW:One-Wayness)、衝突計算困難性(Collision resistance)、第二原像計算困難性(second pre-image resistance)が担保され、具体的な攻撃は成功しない。これは、通常、危殆化が発見されてもすぐには署名データの偽造などの不正行為はできるようにならず、安全性は徐々に低下していくからである。脆弱性の発見により危殆化対策が実施され、安全な公開鍵暗号方式の秘密鍵やアルゴリズム、ハッシュ関数を用いた新たなディジタル署名の運用が開始される対策実施期間終了タイミングT2までに、有効期間終了時刻T_S2が対策実施期間終了タイミングT2以降の発行済みの署名データS1に対する再署名が行われる。
対策実施期間終了タイミングT2以降には、攻撃者によって署名者署名鍵SK_S1が入手可能となり、ハッシュ関数H_old()は、攻撃者が任意のメッセージに対するcollisionを発見可能であり、実害が出るレベルまで危殆化するため、使用禁止となる。
危殆化タイミングT1〜対策実施期間終了タイミングT2までの期間は、署名者署名鍵SK_S1、署名者検証鍵PK_S1、ハッシュ関数H_old()の危殆化が起こっているが、攻撃者による署名データS1の偽造は成功しないと想定されるものとする。つまり、対策実施期間終了タイミングT2までの期間では、署名者署名鍵SK_S1は第三者には入手困難であり、ハッシュ関数H_old()は、一方向性(OW:One-Wayness)、衝突計算困難性(Collision resistance)、第二原像計算困難性(second pre-image resistance)が担保され、具体的な攻撃は成功しない。これは、通常、危殆化が発見されてもすぐには署名データの偽造などの不正行為はできるようにならず、安全性は徐々に低下していくからである。脆弱性の発見により危殆化対策が実施され、安全な公開鍵暗号方式の秘密鍵やアルゴリズム、ハッシュ関数を用いた新たなディジタル署名の運用が開始される対策実施期間終了タイミングT2までに、有効期間終了時刻T_S2が対策実施期間終了タイミングT2以降の発行済みの署名データS1に対する再署名が行われる。
対策実施期間終了タイミングT2以降には、攻撃者によって署名者署名鍵SK_S1が入手可能となり、ハッシュ関数H_old()は、攻撃者が任意のメッセージに対するcollisionを発見可能であり、実害が出るレベルまで危殆化するため、使用禁止となる。
そこで、検証者端末3は、対策実施期間終了タイミングT2までに、すでに生成された署名データS1に対して再署名処理を行い、再署名データS2を生成する。さらに、CA装置2は、対策実施期間終了タイミングT2に、署名者署名鍵SK_S1を失効させるため、署名者署名鍵SK_S1の失効リストCRL_S1を発行する。この失効リストCRL_S1には、失効理由が設定され、「ハッシュ関数の危殆化」、「公開鍵の危殆化(鍵長)」が選択可能である。失効リストCRL_S1が発行された時刻をT_CRL_S1とする。
対策実施期間終了タイミングT2以降、署名データの生成及びその検証には、対策実施期間終了タイミングT2〜証明書有効期間の終了時刻T_Cert2において危殆化しない署名者署名鍵SK_S2、及び、署名者検証鍵PK_S2、ハッシュ関数H_newが使用される。すなわち、署名者は、自身の署名者署名鍵SK_S2と、対策実施期間終了タイミングT2以降も一方向性、衝突計算困難性、第二原像計算困難性が担保されたハッシュ関数H_new()を用いて、署名データを生成する。検証者は、署名者署名鍵SK_S2に対応する署名者検証鍵PK_S2により署名データを検証する。署名者検証鍵PK_S2は、CAにより発行される署名者証明書Cert_S2から得られる。
一方、対策実施期間終了タイミングT2までに再署名が行われたメッセージMについては、再署名後、対策実施期間終了タイミングT2以降においても再署名データS2により検証が行われる。
一方、対策実施期間終了タイミングT2までに再署名が行われたメッセージMについては、再署名後、対策実施期間終了タイミングT2以降においても再署名データS2により検証が行われる。
メッセージMの署名データの生成、証明書、タイムスタンプの生成には、署名演算アルゴリズムSignが使用され、例えば、RSA(Rivest-Shamir-Adleman)、DSA(Digital Signature Algorithm)、ECDSA(Elliptic Curve Digital Signature Algorithm)などの一般的な署名アルゴリズムを用いることができる。メッセージMの署名演算データに対して用いる署名アルゴリズムSignは、危殆化タイミングT1の時点で危殆化するが、証明書、タイムスタンプの生成に用いられる署名アルゴリズムSignは、証明書の有効期間である時刻T_Cert1〜時刻T_Cert2の間は、安全性が担保され、危殆化しないものとする。
図4は、CAが発行する証明書の有効期間の開始時刻T_Cert1〜危殆化タイミングT1の期間において実行される、既存の一般的な署名データの発行及び検証処理手順を示す図である。
まず、署名者端末1において、署名者署名鍵SK_S1及び署名者検証鍵PK_S1のペアを生成して記憶部12に保持すると、証明書要求部13は、署名者検証鍵PK_S1を設定した証明書発行要求をCA装置2へ送信する(ステップS101)。CA装置2は、証明書発行要求を受信すると、以下のように、ハッシュ関数H_newCAを用いて算出した署名者検証鍵PK_S1、及び発行元のCAを特定する情報や有効期限(時刻T_Cert1〜時刻T_Cert2)等の情報である証明書情報Info_S1のハッシュ値に、CA署名鍵SK_CAを用いて署名を行い、署名者証明書Cert_S1を生成する(ステップS102)。署名者証明書Cert_S1には、さらに、署名者検証鍵PK_S1、及び、証明書情報Info_S1が設定される。なお、ハッシュ関数H_newCAは、CA装置2において用いられるハッシュ関数H_newである。
まず、署名者端末1において、署名者署名鍵SK_S1及び署名者検証鍵PK_S1のペアを生成して記憶部12に保持すると、証明書要求部13は、署名者検証鍵PK_S1を設定した証明書発行要求をCA装置2へ送信する(ステップS101)。CA装置2は、証明書発行要求を受信すると、以下のように、ハッシュ関数H_newCAを用いて算出した署名者検証鍵PK_S1、及び発行元のCAを特定する情報や有効期限(時刻T_Cert1〜時刻T_Cert2)等の情報である証明書情報Info_S1のハッシュ値に、CA署名鍵SK_CAを用いて署名を行い、署名者証明書Cert_S1を生成する(ステップS102)。署名者証明書Cert_S1には、さらに、署名者検証鍵PK_S1、及び、証明書情報Info_S1が設定される。なお、ハッシュ関数H_newCAは、CA装置2において用いられるハッシュ関数H_newである。
Cert_S1=(PK_S1,Info_S1,Sign<SK_CA>(H_newCA(PK_S1,Info_S1))) …(式1)
CA装置2の証明書発行部23は、生成した署名者証明書Cert_S1を署名者端末1へ返送する(ステップS103)。なお、CA装置2において署名者署名鍵SK_S1及び署名者検証鍵PK_S1のペアを生成するとともに、署名者証明書Cert_S1を生成して、これらを署名者端末1に送信することでもよい。署名者端末1の証明書要求部13は、予め記憶部12に記憶しているか、署名者証明書Cert_S1と同時に受信したCA証明書Cert_CAからCA検証鍵PK_CAを取得し、取得したCA検証鍵PK_CAを用いて署名者証明書Cert_S1の署名データを検証し、記憶部12に保持する。
署名者端末1の署名生成部14は、メッセージMの署名データの生成指示が入力されると、記憶部12からメッセージM及び署名者署名鍵SK_S1を読み出し、以下のように、ハッシュ関数H_old()を用いて算出したメッセージMのハッシュ値に、署名者署名鍵SK_S1を用いて署名を行い、署名データS1を生成する(ステップS104)。
S1=Sign<SK_S1>(H_old(M)) …(式2)
署名者端末1の送信部15は、記憶部12から読み出したメッセージM、及び、署名者証明書Cert_S1と、生成した署名データS1とを検証者端末3へ送信する(ステップS105)。署名データS1の有効期間は、署名者証明書Cert_S1の有効期間内である。検証者端末3の受信部33は、受信したメッセージM、署名データS1、及び、署名者証明書Cert_S1を記憶部32に保持する。検証者端末3は、CA証明書Cert_CAを、予めCA装置2から受信するか、ステップS105において署名者端末1から受信して記憶部32に保持しているものとする。
検証者端末3にメッセージMの検証指示が入力されると、検証部34は、以下の手順により検証処理を行う(ステップS106)。(1−1)から(1−3)は、各種証明書等による事前検証、(2−1)は、メッセージM及び署名データS1の実際の検証となる。
(1−1)検証部34は、現在の時刻である検証時刻T_Vが、証明書の有効期間の終了時刻T_Cert2より前であるか、つまり、T_V<T_Cert2であるかを判断する。証明書の有効期間の終了時刻T_Cert2は、予め記憶部32に保持しているか、CA証明書Cert_CA内の有効期間の情報から読み出すものとする。
(1−2)検証部34は、検証時刻T_Vが、署名データS1の有効期間である時刻T_S1〜時刻T_S2の間であり、かつ、署名データS1の有効期間の時刻T_S1〜時刻T_S2が、証明書の有効期間の時刻T_Cert1〜終了時刻T_Cert2に含まれている、つまり、T_Cert1<T_S1<T_V<T_S2<T_Cert2であるかを判断する。署名データS1の有効期間である時刻T_S1〜時刻T_S2は、例えば、署名データS1の生成時刻(時刻T_S1)や、メッセージMが契約書のデータであれば、そのメッセージM中に契約期間(時刻T_S1、時刻T_S2)として含まれる情報等を使用することができる。また、証明書の有効期間の開始時刻T_Cert1は、予め記憶部32に保持しているか、CA証明書Cert_CAから読み出すものとする。あるいは、検証者が、メッセージMに設定されている有効期間の時刻T_S1〜時刻T_S2を参照して検証時刻T_Vがその有効期間であることを確認し、その確認結果を検証者端末3に入力することでもよい。
(1−3)検証部34は、CA証明書Cert_CA及び署名者証明書Cert_S1の正当性を検証する。具体的には、まず、検証部34は、CA証明書Cert_CA及び署名者証明書Cert_S1に設定されている発行元の情報から正しいCAであるかを確認するとともに、検証時刻T_Vが、CA証明書Cert_CA、署名者証明書Cert_S1に設定されている有効期間内であることを確認する。次に、CA装置2に問い合わせるか、CA装置2から予め受信して記憶部32に記憶していた失効リストに基づいて、CA証明書Cert_CA、署名者証明書Cert_S1の両者とも失効リストが発行されていないことを確認する。さらに、CA証明書Cert_CAからCA検証鍵PK_CAを読み出し、この読み出したCA検証鍵PK_CAを用いて、CA証明書Cert_CAの署名データを検証する。続いて、検証部34は、署名者証明書Cert_S1について、CA検証鍵PK_CAを用い、以下のように検証する。なお、Verifyは検証アルゴリズムである。
Verify<PK_CA>(Cert_S1)=OK/NG …(式3)
(2−1)署名者証明書Cert_S1及びCA証明書Cert_CAの正当性が検証されると、検証部34は、署名者証明書Cert_S1から署名者検証鍵PK_S1を取得する。さらに、検証部34は、記憶部32から読み出したメッセージMを読み出し、ハッシュ関数H_old()によりハッシュ値を算出する。そして、以下により、メッセージMのハッシュ値と、署名者検証鍵PK_S1とを用いて署名データS1を検証する。
Verify<PK_S1>(H_old(M),S1)=OK/NG …(式4)
メッセージMの内容を秘匿する必要がない場合、署名データS1を生成する(式2)において、H_old(M)の代わりに、メッセージMを使用してもよい。この場合、検証を行う(式4)においても、H_old(M)の代わりに、メッセージMを使用することになる。
図5は、危殆化タイミングT1〜対策実施期間終了タイミングT2の危殆化対策実施期間において実行される、再署名処理手順を示す図である。
検証者端末3に、再署名処理の実行指示、または、対策実施期間終了タイミングT2の情報が検証者によって入力されるか、あるいは、CA装置2から受信した場合、再署名処理部35は、既に署名者端末1から受信して記憶部32に記憶している署名者証明書Cert_S1が失効していないかを判断する。すなわち、再署名処理部35は、CA装置2に問い合わせるか、CA装置2から予め受信して記憶部32に記憶していた失効リストに基づいて署名者証明書Cert_S1の失効リストが発行されていないことを確認し、さらに、署名者証明書Cert_S1内の有効期間の情報から現在が有効期間内であることを確認する(ステップS201)。
検証者端末3に、再署名処理の実行指示、または、対策実施期間終了タイミングT2の情報が検証者によって入力されるか、あるいは、CA装置2から受信した場合、再署名処理部35は、既に署名者端末1から受信して記憶部32に記憶している署名者証明書Cert_S1が失効していないかを判断する。すなわち、再署名処理部35は、CA装置2に問い合わせるか、CA装置2から予め受信して記憶部32に記憶していた失効リストに基づいて署名者証明書Cert_S1の失効リストが発行されていないことを確認し、さらに、署名者証明書Cert_S1内の有効期間の情報から現在が有効期間内であることを確認する(ステップS201)。
署名者証明書Cert_S1が失効していないことが確認されると、再署名処理部35は、再署名処理を実行する(ステップS202)。まず、再署名処理部35は、ハッシュ関数H_newV1によりメッセージMのハッシュ値H_newV1(M)を算出するとともに、ハッシュ関数H_newV2により署名者証明書Cert_S1のハッシュ値H_newV2(Cert_S1)を算出する。なお、ハッシュ関数H_newV1、ハッシュ関数H_newV2は、検証者端末3において使用されるハッシュ関数H_newであり、同じハッシュアルゴリズムであってもよく、異なるハッシュアルゴリズムであってもよい。再署名処理部35は、ハッシュ値H_newV1(M)、署名データS1、及び、ハッシュ値H_newV2(Cert_S1)を結合したタイムスタンプ対象データH_newV1(M)‖S1‖H_newV2(Cert_S1)を生成する(「‖」は、データの結合を示す)。再署名処理部35は、生成したタイムスタンプ対象データを設定したタイムスタンプ要求データをTSA装置4へ送信する(ステップS203)。
TSA装置4のタイムスタンプ発行部43は、以下のように、ハッシュ関数H_newTSAによって、タイムスタンプ対象データの受信時刻を示すデータであるタイムスタンプ時刻データTime、及び、タイムスタンプ対象データからハッシュ値を算出し、算出したハッシュ値に、記憶部42から読み出したTSA署名鍵SK_TSAにより署名を行い、タイムスタンプデータTimeStampを生成する(ステップS204)。ただし、ハッシュ関数H_newTSAは、TSA装置4において使用されるハッシュ関数H_newであり、ハッシュ関数H_newV1、ハッシュ関数H_newV2と同じあってもよく、異なっていてもよい。
TimeStamp=Sign<SK_TSA>(H_newTSA(Time,H_newV1(M)‖S1‖H_newV2(Cert_S1))) …(式5)
タイムスタンプ発行部43は、生成したタイムスタンプデータTimeStampと、タイムスタンプ時刻データTimeと、TSA証明書Cert_TSAとを検証者端末3に返送する(ステップS205)。検証者端末3は、タイムスタンプ時刻データTime、メッセージM、署名データS1、署名者証明書Cert_S1、タイムスタンプデータTimeStampの組みである再署名データS2を生成し、TSA証明書Cert_TSAと関連づけて記憶部32に保持する(ステップS206)。このとき、TSA証明書Cert_TSAの検証をおこなってから再署名データS2を生成し、保持するようにしてもよい。
図6は、対策実施期間終了タイミングT2において実行される、署名者証明書の失効及び再発行処理手順を示す図である。
署名者端末1において、署名者署名鍵SK_S2及び署名者検証鍵PK_S2のペアを生成して記憶部12に保持すると、証明書要求部13は、署名者証明書Cert_S1または署名者証明書Cert_S1を特定する情報を設定した失効要求と、署名者検証鍵PK_S2を設定した証明書発行要求とをCA装置2へ送信する(ステップS301)。CA装置2の失効リスト発行部24は、「ハッシュ関数の危殆化」、または、「公開鍵の危殆化(鍵長)」の失効理由と、失効対象の署名者証明書Cert_S1を特定する情報と、失効時刻が設定された失効リストCRL_S1を生成する。また、証明書発行部23は、ハッシュ関数H_newCAを用いて算出した署名者検証鍵PK_S2、および発行元のCAを特定する情報や有効期限(時刻T_Cert1〜時刻T_Cert2)等の情報である証明書情報Info_S2のハッシュ値に、CA署名鍵SK_CAを用いて署名を行い、署名者証明書Cert_S2を生成する(ステップS302)。署名者証明書Cert_S2には、さらに、署名者検証鍵PK_S2、及び、証明書情報Info_S2が設定される。
署名者端末1において、署名者署名鍵SK_S2及び署名者検証鍵PK_S2のペアを生成して記憶部12に保持すると、証明書要求部13は、署名者証明書Cert_S1または署名者証明書Cert_S1を特定する情報を設定した失効要求と、署名者検証鍵PK_S2を設定した証明書発行要求とをCA装置2へ送信する(ステップS301)。CA装置2の失効リスト発行部24は、「ハッシュ関数の危殆化」、または、「公開鍵の危殆化(鍵長)」の失効理由と、失効対象の署名者証明書Cert_S1を特定する情報と、失効時刻が設定された失効リストCRL_S1を生成する。また、証明書発行部23は、ハッシュ関数H_newCAを用いて算出した署名者検証鍵PK_S2、および発行元のCAを特定する情報や有効期限(時刻T_Cert1〜時刻T_Cert2)等の情報である証明書情報Info_S2のハッシュ値に、CA署名鍵SK_CAを用いて署名を行い、署名者証明書Cert_S2を生成する(ステップS302)。署名者証明書Cert_S2には、さらに、署名者検証鍵PK_S2、及び、証明書情報Info_S2が設定される。
Cert_S2=(PK_S2,Info_S2,Sign<SK_CA>(H_newCA(PK_S2,Info_S2))) …(式6)
CA装置2の証明書発行部23は、生成した署名者証明書Cert_S2を署名者端末1へ返送する(ステップS303)。なお、CA装置2において署名者署名鍵SK_S2及び署名者検証鍵PK_S2のペアを生成するとともに、署名者証明書Cert_S2を生成して、これらを署名者端末1に送信することでもよい。署名者端末1の証明書要求部13は、予め記憶部12に記憶しているか、署名者証明書Cert_S2と同時に受信したCA証明書Cert_CAからCA検証鍵PK_CAを取得し、取得したCA検証鍵PK_CAにより署名者証明書Cert_S2を検証して記憶部12に保持する(ステップS304)。また、署名者端末1の送信部15は、検証者端末3へ署名者証明書Cert_S2を送信する(ステップS305)。
検証者端末3は、予めCA装置2から受信して記憶部32に記憶している、あるいは、署名者証明書Cert_S2受信時に、署名者証明書Cert_S2の失効リストが発行されていないかを確認し、さらに、CA装置2から取得したCA証明書Cert_CAを使用して、署名者証明書Cert_S2の検証を行う(ステップS306)。まず、検証部34は、CA証明書Cert_CAに設定されている発行元の情報から正しいCAであることを確認するとともに、CA証明書Cert_CAに設定されている有効期間の情報から、現在が当該CA証明書Cert_CAの有効期間内であることを確認し、さらに、CA証明書Cert_CAの失効リストが発行されていないことを確認する。
検証部34は、CA検証鍵PK_CAによりCA証明書Cert_CA内の署名データの正当性を確認し、さらに、このCA検証鍵PK_CAにより、署名者端末1から受信した署名者証明書Cert_S2を以下のように検証する。
Verify<PK_CA>(Cert_S2)=OK/NG …(式7)
また、検証部34は、CA証明書Cert_CAからCA検証鍵PK_CAを読み出し、失効リストCRL_S1を以下のように検証する。
Verify<PK_CA>(CRL_S1)=OK/NG …(式8)
図7は、対策実施期間終了タイミングT2以降の期間において実行される、再署名データの検証処理手順を示す図である。
検証者端末3にメッセージMの検証指示が入力されると、まず、検証者端末3の検証部34は、以下のように対策時刻の検証を行う(ステップS401)。
検証者端末3にメッセージMの検証指示が入力されると、まず、検証者端末3の検証部34は、以下のように対策時刻の検証を行う(ステップS401)。
(1)検証部34は、CA装置2に問い合わせて受信するか、CA装置2から予め受信して記憶部32に記憶していた失効リストCRL_S1により、対策実施期間終了タイミングT2において署名者証明書Cert_S1が失効されていることを確認する。対策実施期間終了タイミングT2の情報は、検証者によって入力されるか、あるいは、CA装置2から受信して予め記憶部32に記憶されているものとする。
(2)検証部34は、記憶部32を参照して、メッセージMが含まれている再署名データS2からタイムスタンプ時刻データTimeを読み出し、読み出したタイムスタンプ時刻データTimeが対策実施期間終了タイミングT2より前の時刻であることを確認する。さらに、タイムスタンプ時刻データTimeが、危殆化タイミングT1より後の時刻であることを検証するようにしてもよい。つまり、検証部34は、(T1<)Time<T2を満たすかにより、再署名処理が可能な期間に再署名データS2が生成されたものかを判断する。危殆化タイミングT1の情報は、検証者によって入力されるか、あるいは、CA装置2から受信して予め記憶部32に記憶されているものとする。
(3)次に、検証部34は、現在の時刻である検証時刻T_Vが、証明書の有効期間の終了時刻T_Cert2より前であるかを確認する。さらに、検証時刻T_Vが、証明書の有効期間の開始時刻T_Cert1より後であるかを確認するようにしてよい。つまり、検証部34は、(T_Cert1<)T_V<T_Cert2を満たすかにより、検証時刻T_Vが証明書の有効期間内であるかを判断する。
続いて、検証部34は、各証明書の検証を行う(ステップS402)。まず、TSA証明書Cert_TSA、CA証明書Cert_CA、及び、失効リストCRL_S1については、一般的な通常の正当性検証処理と同様に、CA検証鍵PK_CAによる署名データの検証、有効期限の検証、失効リストが発行されていないことの確認を行う。続いて、検証部34は、CA検証鍵PK_CAを用いて、再署名データS2から取得した署名者証明書Cert_S1内の署名データが正しいことを検証するとともに、当該署名者証明書Cert_S1の有効期限の情報から現在が有効期間内であることを判断すると、さらに、当該署名者証明書Cert_S1の失効リストCRL_S1内の失効理由が、「ハッシュ関数の危殆化」、「公開鍵の危殆化(鍵長)」であることを確認する。
検証部34は、次に、ステップS402において検証した署名者証明書Cert_S1から署名者検証鍵PK_S1を取得し、取得した署名者検証鍵PK_S1と、再署名データS2から読み出したメッセージM及び署名データS1とを用いて、署名データS1が正しいかを以下のように検証する(ステップS403)。ただし、(式2)において、H_old(M)の代わりに、メッセージMを使用した場合、検証を行う(式9)においても、H_old(M)の代わりに、メッセージMを使用することになる。
Verify<PK_S1>(H_old(M),S1)=OK/NG …(式9)
検証部34は、検証されたTSA証明書Cert_TSAから取得したTSA検証鍵PK_TSAと、ステップS403において用いた同一のメッセージM、署名データS1、署名者証明書Cert_S1と、再署名データS2から読み出したタイムスタンプ時刻データTimeと、ハッシュ関数H_newTSA()、H_newV1()、H_newV2()とを用いて、以下のように、再署名データS2内のタイムスタンプデータTimeStampの正当性を検証する(ステップS404)。
Verify<PK_TSA>(H_newTSA(Time,H_newV1(M)‖S1‖H_newV2(Cert_S1)),TimeStamp)=OK/NG …(式10)
なお、タイムスタンプデータTimeStampの生成には、ハッシュ関数H_newTSA()により生成したハッシュ値を使用しているが、ハッシュ関数を用いずにタイムスタンプ対象データ、及び、タイムスタンプ時刻データTimeを用いて生成することでもよい。また、タイムスタンプ対象データについても、ハッシュ関数H_newV1()、H_newV2()値を用いず、メッセージM、あるいは、署名者証明書Cert_S1をそのまま使用してもよい。
なお、検証者端末3は、メッセージMの署名検証指示が入力されたときに、メッセージMと対応づけられて記憶部32に記憶されている署名データが署名データS1であれば、図4に示す検証処理により検証を行い、再署名データS2であれば図7に示す検証処理を実行する。対策実施期間終了タイミングT2以降に生成された署名データの場合は、署名データS1と同様に検証することができる。
あるいは、まず、メッセージMに対応付けて記憶部32に記憶されている署名者証明書Cert_S1あるいはCert_S2に対応した失効リストが発行されているかを判断し、失効リストが発行されていない場合は、図4に示す検証処理により検証を行い、一方、失効リストが発行されており、かつ、失効理由が「ハッシュ関数の危殆化」、または、「公開鍵の危殆化(鍵長)」であり、かつ、メッセージMと対応づけて記憶部32に記憶されている署名データが再署名データS2であれば、図7に示す検証処理を実行するようにしてもよい。
なお、再署名データS2であるかは、例えば、署名データS1に加えて、タイムスタンプデータTimeStampが保持されているかや、データフィールドが再署名データS2用のデータ形式であるか、などにより判断することができる。
なお、再署名データS2であるかは、例えば、署名データS1に加えて、タイムスタンプデータTimeStampが保持されているかや、データフィールドが再署名データS2用のデータ形式であるか、などにより判断することができる。
また、上記においては、図5に示す再署名処理手順を検証者端末3にて行っているが、署名者端末1、あるいは、他のユーザの端末が行うようにしてもよい。
なお、上述の署名者端末1、CA装置2、検証者端末3、ならびに、TSA装置4は、内部にコンピュータシステムを有している。そして、署名者端末1の証明書要求部13、署名生成部14、送信部15及び失効要求部16、CA装置2の証明書発行部23及び失効リスト発行部24、検証者端末3の受信部33、検証部34及び再署名処理部35、ならびに、TSA装置4のタイムスタンプ発行部43の動作の過程は、プログラムの形式でコンピュータ読み取り可能な記録媒体に記憶されており、このプログラムをコンピュータシステムが読み出して実行することによって、上記処理が行われる。ここでいうコンピュータシステムとは、CPU及び各種メモリやOS、周辺機器等のハードウェアを含むものである。
また、「コンピュータシステム」は、WWWシステムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含むものとする。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含むものとする。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
なお、本発明は、上記において説明した実施形態に限定されるものではなく、その主旨を逸脱しない範囲において種々変更可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。
1…署名者端末
2…認証局(CA)装置
3…検証者端末
4…時刻認証局(TSA)装置
11、21、31、41…通信部
12、22、32、42…記憶部
13…証明書要求部
14…署名生成部
15…送信部
16…失効要求部
23…証明書発行部
24…失効リスト発行部
33…受信部
34…検証部
35…再署名処理部
43…タイムスタンプ発行部
2…認証局(CA)装置
3…検証者端末
4…時刻認証局(TSA)装置
11、21、31、41…通信部
12、22、32、42…記憶部
13…証明書要求部
14…署名生成部
15…送信部
16…失効要求部
23…証明書発行部
24…失効リスト発行部
33…受信部
34…検証部
35…再署名処理部
43…タイムスタンプ発行部
Claims (7)
- 認証局装置と、時刻認証局装置と、端末とからなる署名システムであって、
前記認証局装置は、
署名者の署名鍵に対応した検証鍵の公開鍵証明書である署名者証明書を生成する証明書発行部を備え、
前記時刻認証局装置は、
前記端末からタイムスタンプ対象データを受信し、当該タイムスタンプ対象データと、当該タイムスタンプ対象データの受信時刻を示すタイムスタンプ時刻データとを基にタイムスタンプデータを生成し、生成したタイムスタンプデータと、前記タイムスタンプ時刻データとを返送するタイムスタンプ生成部を備え、
再署名処理を行う前記端末は、
署名者がディジタル署名を行った電子データと、当該電子データ、及び、前記署名者の署名鍵を用いて生成した前記電子データの署名データと、前記認証局装置により生成された、前記署名者の署名者証明書とを記憶する記憶部と、
前記記憶部から読み出した電子データと、当該電子データの署名データと、当該電子データにディジタル署名を行った署名者の署名者証明書とを用いてタイムスタンプ対象データを生成し、前記時刻認証局装置へ送信するとともに、当該タイムスタンプ対象データに対応して返送されたタイムスタンプデータ及びタイムスタンプ時刻データと、前記電子データ、前記署名データ、及び、前記署名者証明書とからなる再署名データを生成する再署名処理部とを備え、
署名検証を行う前記端末は、
検証対象の再署名データに含まれるタイムスタンプデータが、当該再署名データに含まれるタイムスタンプ時刻データ、電子データ、署名データ、及び、署名者証明書に基づいて生成されたかを検証し、さらに、前記署名者証明書から取得した検証鍵を用いて、前記署名データが前記電子データに基づいて生成されたかを検証する検証部を備える、
ことを特徴とする署名システム。 - 前記認証局装置は、失効した署名者証明書と、失効理由とを示す失効リストを発行する失効リスト発行部をさらに備え、
前記検証部は、前記認証局装置により発行された失効リストにより、取得した前記署名者証明書が失効しており、かつ、失効理由が危殆化であるかをさらに検証する、
ことを特徴とする請求項1に記載の署名システム。 - 前記再署名処理部は、前記署名者証明書が失効していないと判断した場合に、前記再署名データを生成することを特徴とする請求項1または請求項2に記載の署名システム。
- 前記再署名データの生成は、署名データの生成に使用する前記署名鍵、あるいは、ハッシュアルゴリズムが、危殆化により署名データの生成に使用できなくなる時刻までに行われることを特徴とする請求項1から請求項3のいずれかの項に記載の署名システム。
- 認証局装置と、時刻認証局装置と、端末とからなる署名システムにおける署名方法であって、
前記認証局装置が、
署名者の署名鍵に対応した検証鍵の公開鍵証明書である署名者証明書を生成する証明書発行過程と、
再署名処理を行う前記端末が、
署名者がディジタル署名を行った電子データと、当該電子データ、及び、前記署名者の署名鍵を用いて生成された当該電子データの署名データと、前記認証局装置により生成された、前記署名者の署名者証明書とを記憶部から読み出し、読み出した電子データ、署名データ、及び、署名者証明書を用いてタイムスタンプ対象データを生成して前記時刻認証局装置へ送信するタイムスタンプ要求過程と、
前記時刻認証局装置が、
前記端末からタイムスタンプ対象データを受信し、当該タイムスタンプ対象データと、当該タイムスタンプ対象データの受信時刻を示すタイムスタンプ時刻データとを基にタイムスタンプデータを生成し、生成したタイムスタンプデータと、前記タイムスタンプ時刻データとを返送するタイムスタンプ生成過程と、
再署名処理を行う前記端末が、
前記時刻認証局装置から返送されたタイムスタンプデータ及びタイムスタンプ時刻データと、前記電子データ、前記署名データ、及び、前記署名者証明書とからなる再署名データを生成する再署名処理過程と、
署名検証を行う前記端末が、
検証対象の再署名データに含まれるタイムスタンプデータが、当該再署名データに含まれるタイムスタンプ時刻データ、電子データ、署名データ、及び、署名者証明書に基づいて生成されたかを検証し、さらに、前記署名者証明書から取得した検証鍵を用いて、前記署名データが前記電子データに基づいて生成されたかを検証する検証過程、
を有することを特徴とする署名方法。 - 署名者の署名鍵に対応した検証鍵の公開鍵証明書である署名者証明書を生成する認証局装置と、受信したタイムスタンプ対象データと、当該タイムスタンプ対象データの受信時刻を示すタイムスタンプ時刻データとを基にタイムスタンプデータを生成する時刻認証局装置と、端末とからなる署名システムにおける前記端末に用いられるコンピュータプログラムであって、
署名者がディジタル署名を行った電子データと、当該電子データ、及び、前記署名者の署名鍵を用いて生成された前記電子データの署名データと、当該署名データの生成に用いられた署名鍵に対応する検証鍵の署名者証明書とを記憶部から読み出し、読み出した電子データ、署名データ、及び、署名者証明書を用いてタイムスタンプ対象データを生成して前記時刻認証局装置へ送信するタイムスタンプ要求ステップと、
前記時刻認証局装置から返送されたタイムスタンプデータ及びタイムスタンプ時刻データと、前記電子データ、前記署名データ、及び、前記署名者証明書とからなる再署名データを生成する再署名処理ステップと、
をコンピュータに実行させることを特徴とするコンピュータプログラム。 - 署名者の署名鍵に対応した検証鍵の公開鍵証明書である署名者証明書を生成する認証局装置と、受信したタイムスタンプ対象データと、当該タイムスタンプ対象データの受信時刻を示すタイムスタンプ時刻データとを基にタイムスタンプデータを生成する時刻認証局装置と、端末とからなる署名システムにおける前記端末に用いられるコンピュータプログラムであって、
署名者がディジタル署名を行った電子データと、当該電子データ、及び、前記署名者の署名鍵を用いて生成された前記電子データの署名データと、前記認証局装置により生成された、前記署名者の署名者証明書と、タイムスタンプデータと、タイムスタンプ時刻データとからなる再署名データを記憶部から読み出し、当該再署名データに含まれるタイムスタンプデータが、当該再署名データに含まれるタイムスタンプ時刻データ、電子データ、署名データ、及び、署名者証明書に基づいて生成されたかを検証し、さらに、前記署名者証明書から取得した検証鍵を用いて、前記署名データが前記電子データに基づいて生成されたかを検証する検証ステップ、
をコンピュータに実行させることを特徴とするコンピュータプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008030475A JP2009194443A (ja) | 2008-02-12 | 2008-02-12 | 署名システム及び方法、ならびに、コンピュータプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008030475A JP2009194443A (ja) | 2008-02-12 | 2008-02-12 | 署名システム及び方法、ならびに、コンピュータプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2009194443A true JP2009194443A (ja) | 2009-08-27 |
Family
ID=41076111
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008030475A Pending JP2009194443A (ja) | 2008-02-12 | 2008-02-12 | 署名システム及び方法、ならびに、コンピュータプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2009194443A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104320251A (zh) * | 2014-09-26 | 2015-01-28 | 大连声鹭科技有限公司 | 一种离线使用在线认证的印章信息化装置、电子印鉴管理系统及认证方法 |
CN109034805A (zh) * | 2018-08-09 | 2018-12-18 | 江苏先安科技有限公司 | 一种适用于区块链和嵌入式领域的新型时间戳签名验证方法 |
JP2020092336A (ja) * | 2018-12-06 | 2020-06-11 | 三菱電機インフォメーションシステムズ株式会社 | 長期署名データ生成装置および長期署名データ生成方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08504965A (ja) * | 1992-12-21 | 1996-05-28 | ベル コミュニケーションズ リサーチ インコーポレーテッド | 暗号証書の有効性延長法 |
JP2001255953A (ja) * | 2000-02-25 | 2001-09-21 | Bayerische Motoren Werke Ag | 認可証を用いて権限を与える方法 |
JP2001350405A (ja) * | 2000-06-05 | 2001-12-21 | Mitsubishi Electric Corp | デジタル署名の有効期限延長システム、デジタル署名の有効期限延長装置、デジタル署名の検証方法およびデジタル署名の有効期限延長方法 |
JP2008027425A (ja) * | 2006-06-21 | 2008-02-07 | Mobi Techno:Kk | 電子決済システム、電子決済サーバ、有価価値提供装置、移動体通信端末、並びに電子決済方法 |
-
2008
- 2008-02-12 JP JP2008030475A patent/JP2009194443A/ja active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08504965A (ja) * | 1992-12-21 | 1996-05-28 | ベル コミュニケーションズ リサーチ インコーポレーテッド | 暗号証書の有効性延長法 |
JP2001255953A (ja) * | 2000-02-25 | 2001-09-21 | Bayerische Motoren Werke Ag | 認可証を用いて権限を与える方法 |
JP2001350405A (ja) * | 2000-06-05 | 2001-12-21 | Mitsubishi Electric Corp | デジタル署名の有効期限延長システム、デジタル署名の有効期限延長装置、デジタル署名の検証方法およびデジタル署名の有効期限延長方法 |
JP2008027425A (ja) * | 2006-06-21 | 2008-02-07 | Mobi Techno:Kk | 電子決済システム、電子決済サーバ、有価価値提供装置、移動体通信端末、並びに電子決済方法 |
Non-Patent Citations (2)
Title |
---|
JPN6012032078; 電子商取引推進協議会 認証・公証WG: 電子署名文書長期保存に関するガイドライン , 200203, p.17-24, 47-53, 61-70, 電子商取引推進協議会 * |
JPN6012032081; 小松文子他: PKIハンドブック , 20001125, p.69-82, 株式会社ソフト・リサーチ・センター * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104320251A (zh) * | 2014-09-26 | 2015-01-28 | 大连声鹭科技有限公司 | 一种离线使用在线认证的印章信息化装置、电子印鉴管理系统及认证方法 |
CN104320251B (zh) * | 2014-09-26 | 2017-12-29 | 大连声鹭科技有限公司 | 一种离线使用在线认证的印章信息化装置、电子印鉴管理系统及认证方法 |
CN109034805A (zh) * | 2018-08-09 | 2018-12-18 | 江苏先安科技有限公司 | 一种适用于区块链和嵌入式领域的新型时间戳签名验证方法 |
CN109034805B (zh) * | 2018-08-09 | 2022-09-02 | 江苏先安科技有限公司 | 一种适用于区块链和嵌入式领域的时间戳签名验证方法 |
JP2020092336A (ja) * | 2018-12-06 | 2020-06-11 | 三菱電機インフォメーションシステムズ株式会社 | 長期署名データ生成装置および長期署名データ生成方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4879176B2 (ja) | ワンタイム秘密鍵を用いたデジタル署名を実装するためのシステムおよび方法 | |
US7353383B2 (en) | System and method for single session sign-on with cryptography | |
CN102577229B (zh) | 在一个往返行程中的密钥认证 | |
US20220094542A1 (en) | Methods and devices for public key management using a blockchain | |
US20150172064A1 (en) | Method and relay device for cryptographic communication | |
US7779262B2 (en) | Security method using electronic signature | |
JP2008250931A (ja) | 分散情報復元システム、情報利用装置、および、検証装置 | |
JP2006340178A (ja) | 属性証明書検証方法及び装置 | |
JP2009194443A (ja) | 署名システム及び方法、ならびに、コンピュータプログラム | |
JP4571117B2 (ja) | 認証方法及び装置 | |
WO2020101471A1 (en) | Secure framework for transaction signing | |
KR100760028B1 (ko) | 전자서명 인증서의 장기검증방법 및 시스템 | |
KR101749449B1 (ko) | 차량형 애드혹 네트워크를 위한 프라이버시를 보존하는 두 단계 익명성 인증 방법 및 시스템 | |
EP3299984A1 (en) | Authentication of a software entity by another software entity | |
CN114128213B (zh) | 用于验证公钥的可靠性的装置、方法以及其程序 | |
JP2013236185A (ja) | 電子署名代行サーバ、電子署名代行システム及び電子署名代行方法 | |
JP5768543B2 (ja) | 電子署名システム、署名サーバ、署名者クライアント、電子署名方法、およびプログラム | |
JP4071474B2 (ja) | 失効確認装置及び方法 | |
JP2005210479A (ja) | タイムスタンプシステム、タイムスタンプ要求装置、タイムスタンプ検証装置、及び、コンピュータプログラム | |
JP2024010700A (ja) | 証明書発行サーバを備えるネットワークシステムおよび証明書発行方法 | |
KR100546761B1 (ko) | 재사용 공격에 안전한 모바일 아이피 인증 방법 | |
KR20040107234A (ko) | 서로 다른 인증 도메인에서 공개키를 검증하기 위한 방법 | |
JP2002132144A (ja) | 認証方式 | |
Serb et al. | A Certificate–Based Signature Scheme for Secure Mobile Communications | |
JP2004289247A (ja) | サービス利用方法、ユーザ装置、サービス利用処理プログラム、サービス提供者装置、サービス提供処理プログラム、証明書管理装置、証明書管理プログラム及び記録媒体 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20101029 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20120615 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120626 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20121023 |