署名延長装置、システム、方法およびプログラム
【課題】 多重署名の有効期限を延長する署名延長装置において、子署名を含む総ての署名に対して、真正性を、低コスト、かつ容易に、長期に亘って延長できるようにする。
【解決手段】 親署名Sig(0)に対する署名タイムスタンプT2、各署名Sig(0),Sig(1,1),Sig(1,2),Sig(2)に使用された公開鍵証明書K2、前記公開鍵証明書K2の信頼点までの公開鍵証明書L2および前記公開鍵証明書K2,L2に対する失効情報R2をそれぞれ取得するとともに、親署名Sig(0)が有する総ての参照先、署名値、公開鍵証明書および失効情報に対するタイムスタンプAT2を取得する。したがって、前記有効期限の延長時には、新たなタイムスタンプ(アーカイブタイムスタンプ)AT2’を追加して更新してゆくことで、子署名を含む総ての署名に対して、真正性を、低コスト、かつ容易に、長期に亘って延長することができる。
【解決手段】 親署名Sig(0)に対する署名タイムスタンプT2、各署名Sig(0),Sig(1,1),Sig(1,2),Sig(2)に使用された公開鍵証明書K2、前記公開鍵証明書K2の信頼点までの公開鍵証明書L2および前記公開鍵証明書K2,L2に対する失効情報R2をそれぞれ取得するとともに、親署名Sig(0)が有する総ての参照先、署名値、公開鍵証明書および失効情報に対するタイムスタンプAT2を取得する。したがって、前記有効期限の延長時には、新たなタイムスタンプ(アーカイブタイムスタンプ)AT2’を追加して更新してゆくことで、子署名を含む総ての署名に対して、真正性を、低コスト、かつ容易に、長期に亘って延長することができる。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、電子署名を延長するための装置、システム、方法およびプログラムに関する。
【背景技術】
【0002】
近年、元々電子データから成る電子文書に加えて、紙文書を電子化した電子化文書も、電子署名とタイムスタンプとによって法的に保護されるようになってきている。2005年の4月には、e−文書法が施行され、これまで文書のままで残すことが義務付けられていた領収書等の文書を、スキャナで読取って電子化データで保存することが可能になった。
【0003】
しかしながら、それらの文書には保管期限が定められているものがあり、電子化時に添付する電子署名に用いた公開鍵証明書の有効期限が、その保管期限を満たさないケースがある。そのような場合には、電子署名の有効期限を延長する手続きが必要となる。一方、前記電子署名は、文書の入力単位毎に行う必要があり、それぞれに延長手続きを行う必要が生じ、延長手続きは極めて煩雑なものとなるとともに、電子署名の度に公的な機関からタイムスタンプを得る必要があり、そのタイムスタンプの取得の費用が嵩むという問題がある。また、初期のデータに、新たな署名データおよびその有効期限情報を保管する必要があり、保管データ量が増大するという問題もある。
【0004】
そこで、このような不具合を解決するための従来技術が特許文献1に示されている。この特許文献1は、電子署名の付された文書や画像などのデジタルデータが前記電子署名の有効期限切れで失効する前に有効期限を延長するにあたって、署名延長サーバは、図17で示すように、署名延長クライアントから得られたそれぞれ有効期限を有する複数の署名付きデータd1,d2,・・・,dnのハッシュを纏めたハッシュ群、前記署名付きデータd1〜dnを纏めたデータのハッシュ、または署名付きデータd1,d2,・・・,dnにそれぞれ格納されている署名データのハッシュなどのデータa1を作成し、そのデータa1に新たな署名b1を付し、署名アルゴリズムなどのその他のパラメータc1を合わせて、署名延長証書e1を作成している。こうして、入力された各署名付きデータd1〜dnのいずれの有効期限よりも後の有効期限を有する1つの署名延長証書e1を生成し、前記署名延長クライアントは、各署名付きデータd1〜dnとともに、その署名延長証書e1を保管する。
【0005】
2回目は、図18で示すように、署名延長クライアントは、前記署名延長証書e1を署名延長サーバに渡し、署名延長サーバは、その署名延長証書e1のハッシュなどのデータa2を作成し、そのデータa2に新たな署名b2を付し、その他のパラメータc2を合わせて、署名延長証書e2を作成する。このとき、前記の署名付きデータd1〜dnは、そのままである。
【0006】
3回目の延長も同様であり、図19で示すように、署名延長サーバは、署名延長証書e2のハッシュなどのデータa3を作成し、そのデータa3に新たな署名b3を付し、その他のパラメータc3を合わせて、署名延長証書e3を作成する。したがって、上述のような3回の延長で署名延長クライアントに保管されるデータは、図20で示すように、前記署名付きデータd1〜dnに、各署名延長証書e1〜e3となり、保管データ量が削減されている。
【特許文献1】特開2002−207428号公報
【発明の開示】
【発明が解決しようとする課題】
【0007】
上述の従来技術は、1つの署名延長証書で、複数の署名付きデータのハッシュなどを保持することで、複数の電子化データを一括して、その有効期限を延長することが可能である。しかしながら、この従来技術では、データを順次集約して、都度署名を行う多重署名のデータには対応できないという問題がある。具体的には、たとえば、前記署名付きデータd1を見積もり書をスキャナ読込みしたデータとし、署名付きデータd2を納品書をスキャナ読込みしたデータとし、署名付きデータd3を請求書をスキャナ読込みしたデータとし、署名付きデータd4を領収書をスキャナ読込みしたデータの署名付きデータとした場合、新たな文書をスキャナ読込みした時点で、それ以前のデータと集約されて新たな署名が行われる。
【0008】
しかしながら、たとえば図21で示すように(図21は3つの署名Sig(2),Sig(1),Sig(0)を集約している。)、それぞれの署名の段階で、付された公開鍵証明書(署名に使用した証明書)をUC2,UC1,UC0とし、その信頼点までの証明書をRC2,MC2;RC1,MC1;RC0,MC0(RCはルート証明書、MCは中間の証明書)とし、失効情報をARL2,CRL2;ARL1,CRL1;ARL0,CRL0(ARLは認証局の証明書に対する失効情報、CRLはユーザ証明書に対する失効情報)とすると、それらの内、親署名Sig(0)で安全に保管されるのは、その親署名Sig(0)での信頼点までの証明書UC0,RC0,MC0および失効情報ARL0,CRL0であり、それ以前の子署名Sig(1),Sig(2)での証明書UC1,RC1,MC1;UC2,RC2,MC2および失効情報ARL1,CRL1;ARL2,CRL2は安全に保管されず、それぞれに署名延長処理を行わなければ、データの真正性を確保できないという問題がある。したがって、個別の子署名毎に延長処理を行わなければならず、タイムスタンプを取得するコストが嵩むとともに、手間がかかる。
【0009】
本発明の目的は、多重署名のデータの真正性を、低コスト、かつ容易に、長期に亘って延長することができる署名延長装置、システム、方法およびプログラムを提供することである。
【課題を解決するための手段】
【0010】
本発明の署名延長装置は、それぞれ有効期限を有する複数の署名対象データに付された子署名を親署名に多重化して、その有効期限を延長する署名延長装置において、各署名に使用された公開鍵証明書を取得する機能と、各署名に使用された公開鍵証明書の信頼点までの公開鍵証明書を取得する機能と、各署名に使用された公開鍵証明書および信頼点までの公開鍵証明書それぞれに対する失効情報を取得する機能と、親署名が有する総ての参照先、署名値、公開鍵証明書および失効情報に対するタイムスタンプを取得する機能とを含むことを特徴とする。
【0011】
上記の構成によれば、多重署名のデータの有効期限を延長するにあたって、多重化された最終の親署名に用いた公開鍵証明書やその信頼点までのルート証明書および失効情報などをタイムスタンプによって有効期限の延長情報として記録するとともに、各子署名における公開鍵証明書やその信頼点までのルート証明書および失効情報などを前記タイムスタンプによって有効期限の延長情報として合わせて記憶しておく。
【0012】
したがって、以降は、前記有効期限の延長情報に対して、新たなタイムスタンプ(アーカイブタイムスタンプ)を追加して更新してゆくことで、子署名を含む総ての署名に対して、真正性を、低コスト、かつ容易に、長期に亘って延長することができる。
【0013】
また、本発明の署名延長装置では、前記多重化は、1つ前の階層の子署名の署名値および1つ前の階層の子署名の署名対象データへの参照情報を作成する機能と、総ての署名対象データによるハッシュ値から署名値を作成する機能と、1つ前の階層の子署名の内容を取込む機能とを含むことを特徴とする。
【0014】
上記の構成によれば、上記の延長手法に適した親署名を作成することができる。
【0015】
さらにまた、本発明の署名延長システムは、前記の署名延長装置における各機能が分割された署名延長クライアントおよび署名延長サーバと、前記署名に使用される公開鍵証明書およびその信頼点までの証明書を発行するルート認証局と、前記公開鍵証明書の失効情報を発行するCRL配布ポイントと、前記署名に使用されるタイムスタンプを発行するタイムスタンプ局とを備えて構成されることを特徴とする。
【0016】
上記の構成によれば、標準的な署名延長システムを構築することができる。
【0017】
また、本発明の署名延長方法は、それぞれ有効期限を有する複数の署名対象データに付された子署名を親署名に多重化して、その有効期限を延長する署名延長方法において、各署名に使用された公開鍵証明書を取得し、各署名に使用された公開鍵証明書の信頼点までの公開鍵証明書を取得し、各署名に使用された公開鍵証明書および信頼点までの公開鍵証明書それぞれに対する失効情報を取得し、親署名が有する総ての参照先、署名値、公開鍵証明書および失効情報に対するタイムスタンプを取得することを特徴とする。
【0018】
上記の構成によれば、多重署名のデータの有効期限を延長するにあたって、多重化された最終の親署名に用いた公開鍵証明書やその信頼点までのルート証明書および失効情報などをタイムスタンプによって有効期限の延長情報として記録するとともに、各子署名における公開鍵証明書やその信頼点までのルート証明書および失効情報などを前記タイムスタンプによって有効期限の延長情報として合わせて記憶しておく。
【0019】
したがって、以降は、前記有効期限の延長情報に対して、新たなタイムスタンプ(アーカイブタイムスタンプ)を追加して更新してゆくことで、子署名を含む総ての署名に対して、真正性を、低コスト、かつ容易に、長期に亘って延長することができる。
【0020】
さらにまた、本発明の署名延長プログラムは、それぞれ有効期限を有する複数の署名対象データに付された子署名を親署名に多重化して、その有効期限を延長するための署名延長プログラムにおいて、各署名に使用された公開鍵証明書を取得するステップと、各署名に使用された公開鍵証明書の信頼点までの公開鍵証明書を取得するステップと、各署名に使用された公開鍵証明書および信頼点までの公開鍵証明書それぞれに対する失効情報を取得するステップと、親署名が有する総ての参照先、署名値、公開鍵証明書および失効情報に対するタイムスタンプを取得するステップとを含むことを特徴とする。
【0021】
上記の構成によれば、多重署名のデータの有効期限を延長するにあたって、多重化された最終の親署名に用いた公開鍵証明書やその信頼点までのルート証明書および失効情報などをタイムスタンプによって有効期限の延長情報として記録するとともに、各子署名における公開鍵証明書やその信頼点までのルート証明書および失効情報などを前記タイムスタンプによって有効期限の延長情報として合わせて記憶しておく。
【0022】
したがって、以降は、有効期限の経過の前に、再度前記タイムスタンプの取得ステップを行い、親署名が有する総ての参照先、署名値、公開鍵証明書、失効情報および前回のタイムスタンプに対する新たなタイムスタンプ(アーカイブタイムスタンプ)を取得するだけで、子署名を含む総ての署名に対して、真正性を、低コスト、かつ容易に、長期に亘って延長することができる。
【0023】
また、本発明の署名延長プログラムでは、前記親署名の作成は、入力された1または複数の署名対象データの内の1つと、過去の署名とを、いずれか一方を親署名とし、他方を子署名として、子署名に対する参照情報を設定するステップと、総ての署名対象データによるハッシュ値を計算するステップと、前記ハッシュ値から、前記署名値を演算するステップとを含み、前記の各ステップを親署名に包含する子署名がなくなるまで再帰的に繰返すことを特徴とする。
【0024】
上記の構成によれば、親署名に、該親署名および総ての子署名の参照先、署名値、公開鍵証明書および失効情報を含めることができ、上記のようにアーカイブタイムスタンプを取得するだけで、子署名を含む総ての署名に対して、真正性を延長することができる親署名を作成することができる。
【発明の効果】
【0025】
本発明の署名延長装置、システム、方法およびプログラムは、以上のように、それぞれ有効期限を有する複数の署名対象データに付された子署名を親署名に多重化して、その有効期限を延長するにあたって、多重化された最終の親署名に用いた公開鍵証明書やその信頼点までのルート証明書および失効情報などをタイムスタンプによって有効期限の延長情報として記録するとともに、各子署名における公開鍵証明書やその信頼点までのルート証明書および失効情報などを前記タイムスタンプによって有効期限の延長情報として合わせて記憶しておく。
【0026】
したがって、以降は、前記有効期限の延長情報に対して、新たなタイムスタンプ(アーカイブタイムスタンプ)を追加して更新してゆくことで、子署名を含む総ての署名に対して、真正性を、低コスト、かつ容易に、長期に亘って延長することができる。
【発明を実施するための最良の形態】
【0027】
[実施の形態1]
図1は、本発明の実施の一形態に係る署名延長システムの全体構成を示すブロック図である。このシステムでは、署名延長クライアント1と、署名延長サーバ2とがネットワーク3を介して接続されているけれども、必ずしもクライアント−サーバ構成である必要はなく、1台の署名延長装置でも実現することができ、また後述する署名延長処理の各機能を、クライアントとサーバとに、どのように分割するかも任意である。
【0028】
署名延長クライアント1は、必要に応じて文書をスキャナ読込みし、その電子化データDを得るとともに、予め信頼できる方法で取得しておいた認証局P3のルート証明書、認証局P1の証明書および署名者の証明書と、CRL配布ポイントP2,P4からそれぞれの失効情報CRL,ARLを取得し、署名Sigおよび前記データDとともに前記署名延長サーバ2へ送信する。
【0029】
これに応答して、署名延長サーバ2は、予め信頼できる方法で取得しておいたタイムスタンプ局P5の証明書およびその信頼点であるルート認証局P6のルート証明書を取得するとともに、前記CRL配布ポイントP2,P4からの失効情報、および署名に係る証明書とその信頼点までの証明書に対して、後述するアーカイブタイムスタンプを添付し署名ファイルFとして前記データDとともに記憶する。
【0030】
多重署名を行うときは、署名延長クライアント1は、対象となるデータDおよび署名Sigを集約したものに対して上述の処理を行い、署名延長サーバ2は、それに後述するアーカイブタイムスタンプを添付して前記署名ファイルFを長期署名ファイルとして記憶する。
【0031】
図2は、本発明の署名の多重化法を説明するための図である。この図2は、前述の図21の形態に対応しており、順に電子化された3つの文書データに対する署名Sig(2),Sig(1),Sig(0)を集約してゆく様子を示している。前記図21と同様に、それぞれの署名ファイル作成の段階で、署名に使用した公開鍵証明書(署名に使用した証明書)UC2,UC1,UC0やその信頼点までの証明書RC2,MC2;RC1,MC1;RC0,MC0(RCはルート証明書、MCは中間の証明書)およびそれらの失効情報ARL2,CRL2;ARL1,CRL1;ARL0,CRL0(ARLは認証局の証明書に対する失効情報、CRLはユーザ証明書に対する失効情報)を取得する。
【0032】
注目すべきは、本発明では、親署名Sig(0)を延長するにあたって、その親署名Sig(0)での証明書UC0,RC0,MC0および失効情報ARL0,CRL0だけでなく、それ以前の子署名Sig(1),Sig(2)での証明書UC1,RC1,MC1;UC2,RC2,MC2および失効情報ARL1,CRL1;ARL2,CRL2も、前記長期署名ファイルに含まれ、合わせて延長処理されることである。
【0033】
親署名Sig(0)が行われる前に、子署名Sig(2)に対して親署名となるSig(1)に対しても同様に、その段階での署名Sig(1)での証明書UC1,RC1,MC1および失効情報ARL1,CRL1だけでなく、子署名Sig(2)での証明書UC2,RC2,MC2および失効情報ARL2,CRL2も、延長処理されている。ここで、署名Sig(2),Sig(1),Sig(0)という表現は、署名延長の世代を表現するのではなく、多重署名における階層を示す。
【0034】
これによって、個別の子署名Sig(2),Sig(1)毎に延長処理を行わなくても、該子署名Sig(2),Sig(1)の真正性の延長に必要な情報は親署名Sig(0)に格納されているので、該親署名Sig(0)の署名延長処理を行うだけで、子署名Sig(2),Sig(1)の真正性を確保することができ、タイムスタンプを取得するコストおよび延長処理の手間を省くことができる。
【0035】
以下に、本発明による署名の多重化処理および延長処理について詳述する。図3の例は、前記見積もり書、納品書、請求書のように、署名対象データが順に発生した例を示しており、それらの署名対象データをそれぞれ参照符号Rd(2),Rd(1),Rd(0)で示し、それらの署名対象データRd(2),Rd(1),Rd(0)を逐次纏めて、署名Sig(2),Sig(1),Sig(0)をそれぞれ付して、基礎署名部B1が作成されている。
【0036】
こうして集約化された親署名Sig(0)を延長するにあたって作成される署名延長部E1は、親署名Sig(0)の署名に対する署名タイムスタンプT1と、各署名Sig(0),Sig(1),Sig(2)に使用された公開鍵証明書K1と、各署名Sig(0),Sig(1),Sig(2)に使用された公開鍵証明書の信頼点までの公開鍵証明書L1と、各署名Sig(0),Sig(1),Sig(2)に使用された公開鍵証明書および信頼点までの公開鍵証明書それぞれに対する失効情報R1と、その他パラメータ、署名タイムスタンプ、Sig(0)の署名値、Sig(0)の参照先データ(Sig(1),Sig(2)の署名値、Rd(0),Rd(1),Rd(2)を含む)に対するタイムスタンプ(アーカイブタイムスタンプ)AT1とを備えて構成される。この図および以降の図において、[S○○○]は、後述のフローチャートにおける該当処理のステップ番号を示す。前記公開鍵証明書K1,L1が前述の信頼点までの証明書UC,MC,RCに対応し、前記失効情報R1が前述の失効情報CRL,ARLに対応する。
【0037】
そして、この図3で示す署名ファイルF1を1回延長して得られる長期署名ファイルF1’は、図4で示すようになる。署名延長部E1’には、1回の延長に伴い、前記署名延長部E1の内容に、前記タイムスタンプAT1、その他パラメータ、署名タイムスタンプ、Sig0の署名値、Sig(0)の参照先データ(Sig(1),Sig(2)の署名値、Rd(0),Rd(1),Rd(2)を含む)に対するタイムスタンプ(アーカイブタイムスタンプ)AT1’が追加される。
【0038】
一方、図5は、見積もり書、納品書および配送伝票、請求書のように、署名対象データの一部が同時期に発生した例を示しており、それらの署名対象データをそれぞれRd(2);Rd(1,1),Rd(1,2);Rd(0)で示し、それらの署名対象データRd(2);Rd(1,1),Rd(1,2);Rd(0)を逐次纏めて、署名Sig(2);Sig(1,1),Sig(1,2);Sig(0)をそれぞれ付して、基礎署名部B2が作成されている。
【0039】
こうして集約化された親署名Sig(0)を延長するにあたって作成される署名延長部E2は、親署名Sig(0)の署名に対する署名タイムスタンプT2と、各署名Sig(0),Sig(1,1),Sig(1,2),Sig(2)に使用された公開鍵証明書K2と、各署名Sig(0),Sig(1,1),Sig(1,2),Sig(2)に使用された公開鍵証明書の信頼点までの公開鍵証明書L2と、各署名Sig(0),Sig(1,1),Sig(1,2),Sig(2)に使用された公開鍵証明書および信頼点までの公開鍵証明書それぞれに対する失効情報R2と、その他パラメータ、署名タイムスタンプ、Sig(0)の署名値、Sig(0)の参照先データ(Sig(1,1),Sig(1,2),Sig(2)の署名値、Rd(0),Rd(1,1),Rd(1,2),Rd(2)を含む)に対するタイムスタンプ(アーカイブタイムスタンプ)AT2とを備えて構成される。
【0040】
そして、この図5で示す署名ファイルF2を1回延長して得られる長期署名ファイルF2’は、図6で示すようになる。前記署名延長部E1’と同様に、署名延長部E2’には、1回の延長に伴い、前記署名延長部E2の内容に、前記タイムスタンプAT2、その他パラメータ、署名タイムスタンプ、Sig(0)の署名値、Sig(0)の参照先データ(Sig(1,1),Sig(1,2),Sig(2)の署名値、Rd(0),Rd(1,1),Rd(1,2),Rd(2)を含む)に対するタイムスタンプ(アーカイブタイムスタンプ)AT2’が追加される。
【0041】
さらにもう1回延長して得られる長期署名ファイルF2’’は、図7で示すようになり、署名延長部E2’’には、2回目の延長に伴い、前記署名延長部E2’の内容に、前記タイムスタンプAT2,AT2’、その他パラメータ、署名タイムスタンプ、Sig(0)の署名値、Sig(0)の参照先データ(Sig(1,1),Sig(1,2),Sig(2)の署名値、Rd(0),Rd(1,1),Rd(1,2),Rd(2)を含む)に対するタイムスタンプ(アーカイブタイムスタンプ)AT2’’が追加される。
【0042】
図8には、前記図5で示す多重化された署名ファイルF2における親署名Sig(0)の具体的構成を示す。この状態での親署名Sig(0)は、参照情報RV(Sig(0))と、この親署名Sig(0)でのハッシュ値H(0)と、署名値SV(Sig(0))と、1つ前の階層である子署名Sig(1,1),Sig(1,2)の内容とを備えて構成される。
【0043】
前記参照情報RV(Sig(0))は、具体的には、以前の総ての子署名Sig(1,1),Sig(1,2),Sig(2)の署名値SV(Sig(1,1)),SV(Sig(1,2)),SV(Sig(2))へのURIおよび署名対象データRd(1,1),Rd(1,2),Rd(2)へのURIと、今回の親署名Sig(0)の署名対象データRd(0)へのURIとを備えて構成される。
【0044】
前記ハッシュ値H(0)は、総ての署名Sig(0),Sig(1,1),Sig(1,2),Sig(2)の署名対象データRd(0),Rd(1,1),Rd(1,2),Rd(2)による一方向へのハッシュ演算で求められ、たとえばSHA1演算で求められる。
【0045】
前記署名値SV(Sig(0))は、前記ハッシュ値H(0)からのハッシュ演算で求められる。なお、前記ハッシュ値H(0)は、本発明を実現する上では必ずしも署名フォーマット上にある必要はないが、互換性維持のために、実装上フォーマット上に記載している。このハッシュ値H(0)を記載しない場合は、前記署名値SV(Sig(0))は、総ての署名Sig(0),Sig(1,1),Sig(1,2),Sig(2)の署名対象データRd(0),Rd(1,1),Rd(1,2),Rd(2)によるハッシュ値のハッシュ値となる。
【0046】
前記子署名Sig(1,1),Sig(1,2)の内容には、上記の親署名Sig(0)と同様の内容が格納されており、子署名Sig(1,1)の内容には、さらに子署名Sig(2)の内容が格納されている。
【0047】
また、図9には、前記図5で示す署名ファイルF2における前記親署名Sig(0)に署名延長部E2を加えた長期署名Sig(0)’の具体的構成を示す。さらにまた、図10には、x回延長した長期署名Sig(0)’’の具体的構成を示す。
【0048】
ここで、前記参照情報RV(Sig(0))の設定方法について、図11を用いて説明する。図11は、子署名Sig(1,1)の署名値SV(Sig(1,1))および署名対象データRd(1,1)への参照情報を例にしている。この場合、子署名Sig(1,1)には、参照情報RV(Sig(1,1))として、参照先http://xxxxxxxx/rd1,1.pdfとあり、その署名対象データRd(1,1)に対して署名値SV(Sig(1,1))で署名が実施されているので、親署名Sig(0)は、その子署名Sig(1,1)が持つ参照情報RV(Sig(1,1))、すなわちhttp://xxxxxxxx/rd1,1.pdfおよび子署名Sig(1,1)が持つ署名値SV(Sig(1,1))へのURI、すなわちhttp://xxxxxxxx/sig1,1#SV(Sig(1,1)の取込みを行う。そして、実際に親署名Sig(0)の署名値SV(Sig(0))を計算する際は、署名対象データRd(1,1)と署名値SV(Sig(1,1))とが署名を行うデータの対象となる。
【0049】
図12は、上述のように構成される署名延長システムの概略動作を説明するためのフローチャートである。前述のようにこのシステムでは、署名延長クライアント1と署名延長サーバ2との機能分割は任意であり、単体の署名延長装置の動作として記載している。先ずステップS1では、前記の基礎署名部B1,B2が生成される。続いて、ステップS2で、延長にあたって必要になる署名延長部E1,E2が生成される。その後、時間が経過して有効期間の延長処理が必要になると、その都度、ステップS3を行い、前記署名延長部E2’,E2’’,・・・が生成される。その際、子署名の包含処理が必要になると前記ステップS1に戻る。
【0050】
図13は、上述のステップS1における基礎署名部B1,B2の生成処理を詳しく説明するためのフローチャートである。1または複数の署名対象データD(前記Rd(0)等)が入力されると、ステップS101で、それらは新規署名の対象に設定される。ステップS102では、入力された署名対象データDの内の1つと、過去の署名とが、いずれか一方を親署名Sig(0)とし、他方を子署名(たとえば、前記Sig(1,1))として、親署名Sig(0)への包含処理が行われる。具体的には、ステップS103で、子署名(前記Sig(1,1))等)に対する参照情報RV(Sig(0))の設定処理が行われ、ステップS104では、総ての署名対象データによるハッシュ値H0の計算処理が行われ、ステップS105では、そのハッシュ値H0から、前記署名値SV(Sig(0))の演算処理が行われる。このようなステップS102〜S105の処理を入力された署名対象データDの総てについて行い、子署名を順次包含してゆくことで、前記親署名Sig(0)の基礎署名部B1,B2が作成される。
【0051】
図14は、上述のステップS2における署名延長部E1,E2の生成処理を詳しく説明するためのフローチャートである。図13で示すようにして新たな親署名Sig(0)の基礎署名部B1,B2が作成されると、ステップS201で、その親署名Sig(0)に対する署名タイムスタンプT1,T2の取得処理が行われる。ステップS202では、親署名Sig(0)を含む総ての署名中の公開鍵証明書K1,K2の取得処理が行われる。ステップS203では、前記ステップS202で求められた公開鍵証明書K1,K2に対する信頼点までの公開鍵証明書L1,L2の取得処理が行われる。ステップS204では、前記ステップS202およびステップS203に対する失効情報R1,R2の取得処理が行われる。ステップS205では、最新世代である親署名Sig(0)がもつ総ての参照先、署名値、および前記ステップS201,S202,S203,S204に対するタイムスタンプAT1,AT2の取得処理(署名延長処理)を行う。こうして、前記長期署名Sig(0)’が作成される。
【0052】
その後、有効期限の経過の前に、前記ステップS205を繰返すことで、長期署名Sig(0)’’,Sig(0)’’’,・・・が作成される。ただし、その際には、ステップS205において、過去のタイムスタンプ(たとえばAT1,AT2)のタイムスタンプも取得されて、新たなタイムスタンプ(たとえばAT1’,AT2’)となる。その様子を図15に示す。図15では、タイムスタンプの取得処理を、回数に応じて、ステップS205−1,S205−2,S205−3というように、添数字を付して示している。この場合、ステップS205−2,S205−3で示すような有効期限の延長手法は、たとえばETSI TS 101 903に記載されている。
【0053】
このようにして有効期限を延長する構成とすることで、署名対象データが、たとえば図5で示すようにRd(2);Rd(1,1),Rd(1,2);Rd(0)である場合、記憶すべきデータは、図16で示すようになる。この図16を前述の図20と比較すると、長期署名Sig(0)’(延長を繰返すことでSig(0)’’,Sig(0)’’’・・・)のファイル容量は、延長回数に拘わらず、署名延長証書e1,e2,e3,・・・の合成データ量より多くなる。
【0054】
しかしながら、子署名Sig(1,1),Sig(1,2),Sig(2)の真正性の延長に必要な情報(前記公開鍵証明書K1,K2、公開鍵証明書L1,L2および失効情報R1,R2)は、親署名Sig(0)に格納されているので、該親署名Sig(0)を前記ETSI TS 101 903などのアーカイブタイムスタンプを追加して署名の有効期限を延長する公知の手法で延長しても、子署名Sig(1,1),Sig(1,2),Sig(2)の真正性も合わせて延長することができる。これによって、子署名Sig(1,1),Sig(1,2),Sig(2)の真正性の確保にあたって、個別に延長処理を行う必要をなくすことができ、タイムスタンプを取得するコストおよび延長処理の手間を省くことができる。
【0055】
より詳しくは、前記特許文献1において、署名延長証書e2に用いた暗号化アルゴリズムが危殆化しているときに、署名延長証書e1において算出したハッシュ値と同じ値を持つ署名延長証書e2が偽造できた場合に、署名付きデータd1〜dnの真正性を保証することはできなくなる。
【0056】
これに対して本発明では、署名延長のためのタイムスタンプAT1’,AT2’;AT1’’,AT2’’,・・・を定期的に付与する度に、その時危殆化していない暗号化アルゴリズムを用いて、親署名Sig(0)だけでなく、子署名Sig(1,1),Sig(1,2),Sig(2)およびその参照先データのハッシュ値を求めることができるように、親署名Sig(0)に情報を集約しているので、その完全性を保証でき、過去に使用した暗号化アルゴリズムが危殆化しても、子署名Sig(1,1),Sig(1,2),Sig(2)においても高い真正性を保証することができる。
【0057】
本発明は、前述のように署名延長クライアント1と署名延長サーバ2とを備えた署名延長システムとして構成されるだけでなく、単体の署名延長装置として構成されてもよく、また、たとえば署名延長クライアント1で、署名タイムスタンプT1,T2の取得処理(S201)、公開鍵証明書K1,K2およびその信頼点までの公開鍵証明書L1,L2の取得処理(S202,S203)および失効情報R1,R2の取得処理(S204)を行い、署名延長サーバ2で、タイムスタンプAT1,AT2の取得処理(S205)のみを行うなど、任意に機能分割することができる。
【図面の簡単な説明】
【0058】
【図1】本発明の実施の一形態に係る署名延長装置システムの全体構成を示すブロック図である。
【図2】本発明の署名の多重化法を説明するための図である。
【図3】本発明の署名の多重化および延長処理の一例を示す署名ファイルのデータ構成を示す図である。
【図4】前記図3で示す署名ファイルを1回延長して得られる長期署名ファイルのデータ構成を示す図である。
【図5】本発明の署名の多重化および延長処理の他の例を示す署名ファイルのデータ構成を示す図である。
【図6】前記図4で示す署名ファイルを1回延長して得られる長期署名ファイルのデータ構成を示す図である。
【図7】前記図4で示す署名ファイルを2回延長して得られる長期署名ファイルのデータ構成を示す図である。
【図8】前記図5で示す多重化された署名ファイルにおける親署名の具体的構成を示す図である。
【図9】前記図5で示す署名ファイルにおける長期署名の具体的構成を示す図である。
【図10】前記図5で示す署名ファイルをx回延長した長期署名の具体的構成を示す図である。
【図11】署名を延長するにあたって、参照情報の設定方法を説明するための図である。
【図12】本発明の署名延長システムの概略動作を説明するためのフローチャートである。
【図13】図12で示す延長処理における基礎署名部の生成処理を詳しく説明するためのフローチャートである。
【図14】図12で示す延長処理における署名延長部の生成処理を詳しく説明するためのフローチャートである。
【図15】図12で示す延長処理において、延長を繰返す際の署名延長部の生成処理を詳しく説明するためのフローチャートである。
【図16】本発明の署名延長処理で記憶されるべきデータの構成を説明するための図である。
【図17】従来の署名延長処理の例を示す署名延長証書のデータ構成を示す図である。
【図18】前記図17で示す署名延長証書を1回延長して得られる署名延長証書のデータ構成を示す図である。
【図19】前記図17で示す署名延長証書を2回延長して得られる署名延長証書のデータ構成を示す図である。
【図20】従来の署名延長処理で記憶されるべきデータの構成を説明するための図である。
【図21】従来の署名の多重化法を説明するための図である。
【符号の説明】
【0059】
1 署名延長クライアント
2 署名延長サーバ
3 ネットワーク
P1 認証局
P2,P4 CRL配布ポイント
P3,P6 ルート認証局
P5 タイムスタンプ局
【技術分野】
【0001】
本発明は、電子署名を延長するための装置、システム、方法およびプログラムに関する。
【背景技術】
【0002】
近年、元々電子データから成る電子文書に加えて、紙文書を電子化した電子化文書も、電子署名とタイムスタンプとによって法的に保護されるようになってきている。2005年の4月には、e−文書法が施行され、これまで文書のままで残すことが義務付けられていた領収書等の文書を、スキャナで読取って電子化データで保存することが可能になった。
【0003】
しかしながら、それらの文書には保管期限が定められているものがあり、電子化時に添付する電子署名に用いた公開鍵証明書の有効期限が、その保管期限を満たさないケースがある。そのような場合には、電子署名の有効期限を延長する手続きが必要となる。一方、前記電子署名は、文書の入力単位毎に行う必要があり、それぞれに延長手続きを行う必要が生じ、延長手続きは極めて煩雑なものとなるとともに、電子署名の度に公的な機関からタイムスタンプを得る必要があり、そのタイムスタンプの取得の費用が嵩むという問題がある。また、初期のデータに、新たな署名データおよびその有効期限情報を保管する必要があり、保管データ量が増大するという問題もある。
【0004】
そこで、このような不具合を解決するための従来技術が特許文献1に示されている。この特許文献1は、電子署名の付された文書や画像などのデジタルデータが前記電子署名の有効期限切れで失効する前に有効期限を延長するにあたって、署名延長サーバは、図17で示すように、署名延長クライアントから得られたそれぞれ有効期限を有する複数の署名付きデータd1,d2,・・・,dnのハッシュを纏めたハッシュ群、前記署名付きデータd1〜dnを纏めたデータのハッシュ、または署名付きデータd1,d2,・・・,dnにそれぞれ格納されている署名データのハッシュなどのデータa1を作成し、そのデータa1に新たな署名b1を付し、署名アルゴリズムなどのその他のパラメータc1を合わせて、署名延長証書e1を作成している。こうして、入力された各署名付きデータd1〜dnのいずれの有効期限よりも後の有効期限を有する1つの署名延長証書e1を生成し、前記署名延長クライアントは、各署名付きデータd1〜dnとともに、その署名延長証書e1を保管する。
【0005】
2回目は、図18で示すように、署名延長クライアントは、前記署名延長証書e1を署名延長サーバに渡し、署名延長サーバは、その署名延長証書e1のハッシュなどのデータa2を作成し、そのデータa2に新たな署名b2を付し、その他のパラメータc2を合わせて、署名延長証書e2を作成する。このとき、前記の署名付きデータd1〜dnは、そのままである。
【0006】
3回目の延長も同様であり、図19で示すように、署名延長サーバは、署名延長証書e2のハッシュなどのデータa3を作成し、そのデータa3に新たな署名b3を付し、その他のパラメータc3を合わせて、署名延長証書e3を作成する。したがって、上述のような3回の延長で署名延長クライアントに保管されるデータは、図20で示すように、前記署名付きデータd1〜dnに、各署名延長証書e1〜e3となり、保管データ量が削減されている。
【特許文献1】特開2002−207428号公報
【発明の開示】
【発明が解決しようとする課題】
【0007】
上述の従来技術は、1つの署名延長証書で、複数の署名付きデータのハッシュなどを保持することで、複数の電子化データを一括して、その有効期限を延長することが可能である。しかしながら、この従来技術では、データを順次集約して、都度署名を行う多重署名のデータには対応できないという問題がある。具体的には、たとえば、前記署名付きデータd1を見積もり書をスキャナ読込みしたデータとし、署名付きデータd2を納品書をスキャナ読込みしたデータとし、署名付きデータd3を請求書をスキャナ読込みしたデータとし、署名付きデータd4を領収書をスキャナ読込みしたデータの署名付きデータとした場合、新たな文書をスキャナ読込みした時点で、それ以前のデータと集約されて新たな署名が行われる。
【0008】
しかしながら、たとえば図21で示すように(図21は3つの署名Sig(2),Sig(1),Sig(0)を集約している。)、それぞれの署名の段階で、付された公開鍵証明書(署名に使用した証明書)をUC2,UC1,UC0とし、その信頼点までの証明書をRC2,MC2;RC1,MC1;RC0,MC0(RCはルート証明書、MCは中間の証明書)とし、失効情報をARL2,CRL2;ARL1,CRL1;ARL0,CRL0(ARLは認証局の証明書に対する失効情報、CRLはユーザ証明書に対する失効情報)とすると、それらの内、親署名Sig(0)で安全に保管されるのは、その親署名Sig(0)での信頼点までの証明書UC0,RC0,MC0および失効情報ARL0,CRL0であり、それ以前の子署名Sig(1),Sig(2)での証明書UC1,RC1,MC1;UC2,RC2,MC2および失効情報ARL1,CRL1;ARL2,CRL2は安全に保管されず、それぞれに署名延長処理を行わなければ、データの真正性を確保できないという問題がある。したがって、個別の子署名毎に延長処理を行わなければならず、タイムスタンプを取得するコストが嵩むとともに、手間がかかる。
【0009】
本発明の目的は、多重署名のデータの真正性を、低コスト、かつ容易に、長期に亘って延長することができる署名延長装置、システム、方法およびプログラムを提供することである。
【課題を解決するための手段】
【0010】
本発明の署名延長装置は、それぞれ有効期限を有する複数の署名対象データに付された子署名を親署名に多重化して、その有効期限を延長する署名延長装置において、各署名に使用された公開鍵証明書を取得する機能と、各署名に使用された公開鍵証明書の信頼点までの公開鍵証明書を取得する機能と、各署名に使用された公開鍵証明書および信頼点までの公開鍵証明書それぞれに対する失効情報を取得する機能と、親署名が有する総ての参照先、署名値、公開鍵証明書および失効情報に対するタイムスタンプを取得する機能とを含むことを特徴とする。
【0011】
上記の構成によれば、多重署名のデータの有効期限を延長するにあたって、多重化された最終の親署名に用いた公開鍵証明書やその信頼点までのルート証明書および失効情報などをタイムスタンプによって有効期限の延長情報として記録するとともに、各子署名における公開鍵証明書やその信頼点までのルート証明書および失効情報などを前記タイムスタンプによって有効期限の延長情報として合わせて記憶しておく。
【0012】
したがって、以降は、前記有効期限の延長情報に対して、新たなタイムスタンプ(アーカイブタイムスタンプ)を追加して更新してゆくことで、子署名を含む総ての署名に対して、真正性を、低コスト、かつ容易に、長期に亘って延長することができる。
【0013】
また、本発明の署名延長装置では、前記多重化は、1つ前の階層の子署名の署名値および1つ前の階層の子署名の署名対象データへの参照情報を作成する機能と、総ての署名対象データによるハッシュ値から署名値を作成する機能と、1つ前の階層の子署名の内容を取込む機能とを含むことを特徴とする。
【0014】
上記の構成によれば、上記の延長手法に適した親署名を作成することができる。
【0015】
さらにまた、本発明の署名延長システムは、前記の署名延長装置における各機能が分割された署名延長クライアントおよび署名延長サーバと、前記署名に使用される公開鍵証明書およびその信頼点までの証明書を発行するルート認証局と、前記公開鍵証明書の失効情報を発行するCRL配布ポイントと、前記署名に使用されるタイムスタンプを発行するタイムスタンプ局とを備えて構成されることを特徴とする。
【0016】
上記の構成によれば、標準的な署名延長システムを構築することができる。
【0017】
また、本発明の署名延長方法は、それぞれ有効期限を有する複数の署名対象データに付された子署名を親署名に多重化して、その有効期限を延長する署名延長方法において、各署名に使用された公開鍵証明書を取得し、各署名に使用された公開鍵証明書の信頼点までの公開鍵証明書を取得し、各署名に使用された公開鍵証明書および信頼点までの公開鍵証明書それぞれに対する失効情報を取得し、親署名が有する総ての参照先、署名値、公開鍵証明書および失効情報に対するタイムスタンプを取得することを特徴とする。
【0018】
上記の構成によれば、多重署名のデータの有効期限を延長するにあたって、多重化された最終の親署名に用いた公開鍵証明書やその信頼点までのルート証明書および失効情報などをタイムスタンプによって有効期限の延長情報として記録するとともに、各子署名における公開鍵証明書やその信頼点までのルート証明書および失効情報などを前記タイムスタンプによって有効期限の延長情報として合わせて記憶しておく。
【0019】
したがって、以降は、前記有効期限の延長情報に対して、新たなタイムスタンプ(アーカイブタイムスタンプ)を追加して更新してゆくことで、子署名を含む総ての署名に対して、真正性を、低コスト、かつ容易に、長期に亘って延長することができる。
【0020】
さらにまた、本発明の署名延長プログラムは、それぞれ有効期限を有する複数の署名対象データに付された子署名を親署名に多重化して、その有効期限を延長するための署名延長プログラムにおいて、各署名に使用された公開鍵証明書を取得するステップと、各署名に使用された公開鍵証明書の信頼点までの公開鍵証明書を取得するステップと、各署名に使用された公開鍵証明書および信頼点までの公開鍵証明書それぞれに対する失効情報を取得するステップと、親署名が有する総ての参照先、署名値、公開鍵証明書および失効情報に対するタイムスタンプを取得するステップとを含むことを特徴とする。
【0021】
上記の構成によれば、多重署名のデータの有効期限を延長するにあたって、多重化された最終の親署名に用いた公開鍵証明書やその信頼点までのルート証明書および失効情報などをタイムスタンプによって有効期限の延長情報として記録するとともに、各子署名における公開鍵証明書やその信頼点までのルート証明書および失効情報などを前記タイムスタンプによって有効期限の延長情報として合わせて記憶しておく。
【0022】
したがって、以降は、有効期限の経過の前に、再度前記タイムスタンプの取得ステップを行い、親署名が有する総ての参照先、署名値、公開鍵証明書、失効情報および前回のタイムスタンプに対する新たなタイムスタンプ(アーカイブタイムスタンプ)を取得するだけで、子署名を含む総ての署名に対して、真正性を、低コスト、かつ容易に、長期に亘って延長することができる。
【0023】
また、本発明の署名延長プログラムでは、前記親署名の作成は、入力された1または複数の署名対象データの内の1つと、過去の署名とを、いずれか一方を親署名とし、他方を子署名として、子署名に対する参照情報を設定するステップと、総ての署名対象データによるハッシュ値を計算するステップと、前記ハッシュ値から、前記署名値を演算するステップとを含み、前記の各ステップを親署名に包含する子署名がなくなるまで再帰的に繰返すことを特徴とする。
【0024】
上記の構成によれば、親署名に、該親署名および総ての子署名の参照先、署名値、公開鍵証明書および失効情報を含めることができ、上記のようにアーカイブタイムスタンプを取得するだけで、子署名を含む総ての署名に対して、真正性を延長することができる親署名を作成することができる。
【発明の効果】
【0025】
本発明の署名延長装置、システム、方法およびプログラムは、以上のように、それぞれ有効期限を有する複数の署名対象データに付された子署名を親署名に多重化して、その有効期限を延長するにあたって、多重化された最終の親署名に用いた公開鍵証明書やその信頼点までのルート証明書および失効情報などをタイムスタンプによって有効期限の延長情報として記録するとともに、各子署名における公開鍵証明書やその信頼点までのルート証明書および失効情報などを前記タイムスタンプによって有効期限の延長情報として合わせて記憶しておく。
【0026】
したがって、以降は、前記有効期限の延長情報に対して、新たなタイムスタンプ(アーカイブタイムスタンプ)を追加して更新してゆくことで、子署名を含む総ての署名に対して、真正性を、低コスト、かつ容易に、長期に亘って延長することができる。
【発明を実施するための最良の形態】
【0027】
[実施の形態1]
図1は、本発明の実施の一形態に係る署名延長システムの全体構成を示すブロック図である。このシステムでは、署名延長クライアント1と、署名延長サーバ2とがネットワーク3を介して接続されているけれども、必ずしもクライアント−サーバ構成である必要はなく、1台の署名延長装置でも実現することができ、また後述する署名延長処理の各機能を、クライアントとサーバとに、どのように分割するかも任意である。
【0028】
署名延長クライアント1は、必要に応じて文書をスキャナ読込みし、その電子化データDを得るとともに、予め信頼できる方法で取得しておいた認証局P3のルート証明書、認証局P1の証明書および署名者の証明書と、CRL配布ポイントP2,P4からそれぞれの失効情報CRL,ARLを取得し、署名Sigおよび前記データDとともに前記署名延長サーバ2へ送信する。
【0029】
これに応答して、署名延長サーバ2は、予め信頼できる方法で取得しておいたタイムスタンプ局P5の証明書およびその信頼点であるルート認証局P6のルート証明書を取得するとともに、前記CRL配布ポイントP2,P4からの失効情報、および署名に係る証明書とその信頼点までの証明書に対して、後述するアーカイブタイムスタンプを添付し署名ファイルFとして前記データDとともに記憶する。
【0030】
多重署名を行うときは、署名延長クライアント1は、対象となるデータDおよび署名Sigを集約したものに対して上述の処理を行い、署名延長サーバ2は、それに後述するアーカイブタイムスタンプを添付して前記署名ファイルFを長期署名ファイルとして記憶する。
【0031】
図2は、本発明の署名の多重化法を説明するための図である。この図2は、前述の図21の形態に対応しており、順に電子化された3つの文書データに対する署名Sig(2),Sig(1),Sig(0)を集約してゆく様子を示している。前記図21と同様に、それぞれの署名ファイル作成の段階で、署名に使用した公開鍵証明書(署名に使用した証明書)UC2,UC1,UC0やその信頼点までの証明書RC2,MC2;RC1,MC1;RC0,MC0(RCはルート証明書、MCは中間の証明書)およびそれらの失効情報ARL2,CRL2;ARL1,CRL1;ARL0,CRL0(ARLは認証局の証明書に対する失効情報、CRLはユーザ証明書に対する失効情報)を取得する。
【0032】
注目すべきは、本発明では、親署名Sig(0)を延長するにあたって、その親署名Sig(0)での証明書UC0,RC0,MC0および失効情報ARL0,CRL0だけでなく、それ以前の子署名Sig(1),Sig(2)での証明書UC1,RC1,MC1;UC2,RC2,MC2および失効情報ARL1,CRL1;ARL2,CRL2も、前記長期署名ファイルに含まれ、合わせて延長処理されることである。
【0033】
親署名Sig(0)が行われる前に、子署名Sig(2)に対して親署名となるSig(1)に対しても同様に、その段階での署名Sig(1)での証明書UC1,RC1,MC1および失効情報ARL1,CRL1だけでなく、子署名Sig(2)での証明書UC2,RC2,MC2および失効情報ARL2,CRL2も、延長処理されている。ここで、署名Sig(2),Sig(1),Sig(0)という表現は、署名延長の世代を表現するのではなく、多重署名における階層を示す。
【0034】
これによって、個別の子署名Sig(2),Sig(1)毎に延長処理を行わなくても、該子署名Sig(2),Sig(1)の真正性の延長に必要な情報は親署名Sig(0)に格納されているので、該親署名Sig(0)の署名延長処理を行うだけで、子署名Sig(2),Sig(1)の真正性を確保することができ、タイムスタンプを取得するコストおよび延長処理の手間を省くことができる。
【0035】
以下に、本発明による署名の多重化処理および延長処理について詳述する。図3の例は、前記見積もり書、納品書、請求書のように、署名対象データが順に発生した例を示しており、それらの署名対象データをそれぞれ参照符号Rd(2),Rd(1),Rd(0)で示し、それらの署名対象データRd(2),Rd(1),Rd(0)を逐次纏めて、署名Sig(2),Sig(1),Sig(0)をそれぞれ付して、基礎署名部B1が作成されている。
【0036】
こうして集約化された親署名Sig(0)を延長するにあたって作成される署名延長部E1は、親署名Sig(0)の署名に対する署名タイムスタンプT1と、各署名Sig(0),Sig(1),Sig(2)に使用された公開鍵証明書K1と、各署名Sig(0),Sig(1),Sig(2)に使用された公開鍵証明書の信頼点までの公開鍵証明書L1と、各署名Sig(0),Sig(1),Sig(2)に使用された公開鍵証明書および信頼点までの公開鍵証明書それぞれに対する失効情報R1と、その他パラメータ、署名タイムスタンプ、Sig(0)の署名値、Sig(0)の参照先データ(Sig(1),Sig(2)の署名値、Rd(0),Rd(1),Rd(2)を含む)に対するタイムスタンプ(アーカイブタイムスタンプ)AT1とを備えて構成される。この図および以降の図において、[S○○○]は、後述のフローチャートにおける該当処理のステップ番号を示す。前記公開鍵証明書K1,L1が前述の信頼点までの証明書UC,MC,RCに対応し、前記失効情報R1が前述の失効情報CRL,ARLに対応する。
【0037】
そして、この図3で示す署名ファイルF1を1回延長して得られる長期署名ファイルF1’は、図4で示すようになる。署名延長部E1’には、1回の延長に伴い、前記署名延長部E1の内容に、前記タイムスタンプAT1、その他パラメータ、署名タイムスタンプ、Sig0の署名値、Sig(0)の参照先データ(Sig(1),Sig(2)の署名値、Rd(0),Rd(1),Rd(2)を含む)に対するタイムスタンプ(アーカイブタイムスタンプ)AT1’が追加される。
【0038】
一方、図5は、見積もり書、納品書および配送伝票、請求書のように、署名対象データの一部が同時期に発生した例を示しており、それらの署名対象データをそれぞれRd(2);Rd(1,1),Rd(1,2);Rd(0)で示し、それらの署名対象データRd(2);Rd(1,1),Rd(1,2);Rd(0)を逐次纏めて、署名Sig(2);Sig(1,1),Sig(1,2);Sig(0)をそれぞれ付して、基礎署名部B2が作成されている。
【0039】
こうして集約化された親署名Sig(0)を延長するにあたって作成される署名延長部E2は、親署名Sig(0)の署名に対する署名タイムスタンプT2と、各署名Sig(0),Sig(1,1),Sig(1,2),Sig(2)に使用された公開鍵証明書K2と、各署名Sig(0),Sig(1,1),Sig(1,2),Sig(2)に使用された公開鍵証明書の信頼点までの公開鍵証明書L2と、各署名Sig(0),Sig(1,1),Sig(1,2),Sig(2)に使用された公開鍵証明書および信頼点までの公開鍵証明書それぞれに対する失効情報R2と、その他パラメータ、署名タイムスタンプ、Sig(0)の署名値、Sig(0)の参照先データ(Sig(1,1),Sig(1,2),Sig(2)の署名値、Rd(0),Rd(1,1),Rd(1,2),Rd(2)を含む)に対するタイムスタンプ(アーカイブタイムスタンプ)AT2とを備えて構成される。
【0040】
そして、この図5で示す署名ファイルF2を1回延長して得られる長期署名ファイルF2’は、図6で示すようになる。前記署名延長部E1’と同様に、署名延長部E2’には、1回の延長に伴い、前記署名延長部E2の内容に、前記タイムスタンプAT2、その他パラメータ、署名タイムスタンプ、Sig(0)の署名値、Sig(0)の参照先データ(Sig(1,1),Sig(1,2),Sig(2)の署名値、Rd(0),Rd(1,1),Rd(1,2),Rd(2)を含む)に対するタイムスタンプ(アーカイブタイムスタンプ)AT2’が追加される。
【0041】
さらにもう1回延長して得られる長期署名ファイルF2’’は、図7で示すようになり、署名延長部E2’’には、2回目の延長に伴い、前記署名延長部E2’の内容に、前記タイムスタンプAT2,AT2’、その他パラメータ、署名タイムスタンプ、Sig(0)の署名値、Sig(0)の参照先データ(Sig(1,1),Sig(1,2),Sig(2)の署名値、Rd(0),Rd(1,1),Rd(1,2),Rd(2)を含む)に対するタイムスタンプ(アーカイブタイムスタンプ)AT2’’が追加される。
【0042】
図8には、前記図5で示す多重化された署名ファイルF2における親署名Sig(0)の具体的構成を示す。この状態での親署名Sig(0)は、参照情報RV(Sig(0))と、この親署名Sig(0)でのハッシュ値H(0)と、署名値SV(Sig(0))と、1つ前の階層である子署名Sig(1,1),Sig(1,2)の内容とを備えて構成される。
【0043】
前記参照情報RV(Sig(0))は、具体的には、以前の総ての子署名Sig(1,1),Sig(1,2),Sig(2)の署名値SV(Sig(1,1)),SV(Sig(1,2)),SV(Sig(2))へのURIおよび署名対象データRd(1,1),Rd(1,2),Rd(2)へのURIと、今回の親署名Sig(0)の署名対象データRd(0)へのURIとを備えて構成される。
【0044】
前記ハッシュ値H(0)は、総ての署名Sig(0),Sig(1,1),Sig(1,2),Sig(2)の署名対象データRd(0),Rd(1,1),Rd(1,2),Rd(2)による一方向へのハッシュ演算で求められ、たとえばSHA1演算で求められる。
【0045】
前記署名値SV(Sig(0))は、前記ハッシュ値H(0)からのハッシュ演算で求められる。なお、前記ハッシュ値H(0)は、本発明を実現する上では必ずしも署名フォーマット上にある必要はないが、互換性維持のために、実装上フォーマット上に記載している。このハッシュ値H(0)を記載しない場合は、前記署名値SV(Sig(0))は、総ての署名Sig(0),Sig(1,1),Sig(1,2),Sig(2)の署名対象データRd(0),Rd(1,1),Rd(1,2),Rd(2)によるハッシュ値のハッシュ値となる。
【0046】
前記子署名Sig(1,1),Sig(1,2)の内容には、上記の親署名Sig(0)と同様の内容が格納されており、子署名Sig(1,1)の内容には、さらに子署名Sig(2)の内容が格納されている。
【0047】
また、図9には、前記図5で示す署名ファイルF2における前記親署名Sig(0)に署名延長部E2を加えた長期署名Sig(0)’の具体的構成を示す。さらにまた、図10には、x回延長した長期署名Sig(0)’’の具体的構成を示す。
【0048】
ここで、前記参照情報RV(Sig(0))の設定方法について、図11を用いて説明する。図11は、子署名Sig(1,1)の署名値SV(Sig(1,1))および署名対象データRd(1,1)への参照情報を例にしている。この場合、子署名Sig(1,1)には、参照情報RV(Sig(1,1))として、参照先http://xxxxxxxx/rd1,1.pdfとあり、その署名対象データRd(1,1)に対して署名値SV(Sig(1,1))で署名が実施されているので、親署名Sig(0)は、その子署名Sig(1,1)が持つ参照情報RV(Sig(1,1))、すなわちhttp://xxxxxxxx/rd1,1.pdfおよび子署名Sig(1,1)が持つ署名値SV(Sig(1,1))へのURI、すなわちhttp://xxxxxxxx/sig1,1#SV(Sig(1,1)の取込みを行う。そして、実際に親署名Sig(0)の署名値SV(Sig(0))を計算する際は、署名対象データRd(1,1)と署名値SV(Sig(1,1))とが署名を行うデータの対象となる。
【0049】
図12は、上述のように構成される署名延長システムの概略動作を説明するためのフローチャートである。前述のようにこのシステムでは、署名延長クライアント1と署名延長サーバ2との機能分割は任意であり、単体の署名延長装置の動作として記載している。先ずステップS1では、前記の基礎署名部B1,B2が生成される。続いて、ステップS2で、延長にあたって必要になる署名延長部E1,E2が生成される。その後、時間が経過して有効期間の延長処理が必要になると、その都度、ステップS3を行い、前記署名延長部E2’,E2’’,・・・が生成される。その際、子署名の包含処理が必要になると前記ステップS1に戻る。
【0050】
図13は、上述のステップS1における基礎署名部B1,B2の生成処理を詳しく説明するためのフローチャートである。1または複数の署名対象データD(前記Rd(0)等)が入力されると、ステップS101で、それらは新規署名の対象に設定される。ステップS102では、入力された署名対象データDの内の1つと、過去の署名とが、いずれか一方を親署名Sig(0)とし、他方を子署名(たとえば、前記Sig(1,1))として、親署名Sig(0)への包含処理が行われる。具体的には、ステップS103で、子署名(前記Sig(1,1))等)に対する参照情報RV(Sig(0))の設定処理が行われ、ステップS104では、総ての署名対象データによるハッシュ値H0の計算処理が行われ、ステップS105では、そのハッシュ値H0から、前記署名値SV(Sig(0))の演算処理が行われる。このようなステップS102〜S105の処理を入力された署名対象データDの総てについて行い、子署名を順次包含してゆくことで、前記親署名Sig(0)の基礎署名部B1,B2が作成される。
【0051】
図14は、上述のステップS2における署名延長部E1,E2の生成処理を詳しく説明するためのフローチャートである。図13で示すようにして新たな親署名Sig(0)の基礎署名部B1,B2が作成されると、ステップS201で、その親署名Sig(0)に対する署名タイムスタンプT1,T2の取得処理が行われる。ステップS202では、親署名Sig(0)を含む総ての署名中の公開鍵証明書K1,K2の取得処理が行われる。ステップS203では、前記ステップS202で求められた公開鍵証明書K1,K2に対する信頼点までの公開鍵証明書L1,L2の取得処理が行われる。ステップS204では、前記ステップS202およびステップS203に対する失効情報R1,R2の取得処理が行われる。ステップS205では、最新世代である親署名Sig(0)がもつ総ての参照先、署名値、および前記ステップS201,S202,S203,S204に対するタイムスタンプAT1,AT2の取得処理(署名延長処理)を行う。こうして、前記長期署名Sig(0)’が作成される。
【0052】
その後、有効期限の経過の前に、前記ステップS205を繰返すことで、長期署名Sig(0)’’,Sig(0)’’’,・・・が作成される。ただし、その際には、ステップS205において、過去のタイムスタンプ(たとえばAT1,AT2)のタイムスタンプも取得されて、新たなタイムスタンプ(たとえばAT1’,AT2’)となる。その様子を図15に示す。図15では、タイムスタンプの取得処理を、回数に応じて、ステップS205−1,S205−2,S205−3というように、添数字を付して示している。この場合、ステップS205−2,S205−3で示すような有効期限の延長手法は、たとえばETSI TS 101 903に記載されている。
【0053】
このようにして有効期限を延長する構成とすることで、署名対象データが、たとえば図5で示すようにRd(2);Rd(1,1),Rd(1,2);Rd(0)である場合、記憶すべきデータは、図16で示すようになる。この図16を前述の図20と比較すると、長期署名Sig(0)’(延長を繰返すことでSig(0)’’,Sig(0)’’’・・・)のファイル容量は、延長回数に拘わらず、署名延長証書e1,e2,e3,・・・の合成データ量より多くなる。
【0054】
しかしながら、子署名Sig(1,1),Sig(1,2),Sig(2)の真正性の延長に必要な情報(前記公開鍵証明書K1,K2、公開鍵証明書L1,L2および失効情報R1,R2)は、親署名Sig(0)に格納されているので、該親署名Sig(0)を前記ETSI TS 101 903などのアーカイブタイムスタンプを追加して署名の有効期限を延長する公知の手法で延長しても、子署名Sig(1,1),Sig(1,2),Sig(2)の真正性も合わせて延長することができる。これによって、子署名Sig(1,1),Sig(1,2),Sig(2)の真正性の確保にあたって、個別に延長処理を行う必要をなくすことができ、タイムスタンプを取得するコストおよび延長処理の手間を省くことができる。
【0055】
より詳しくは、前記特許文献1において、署名延長証書e2に用いた暗号化アルゴリズムが危殆化しているときに、署名延長証書e1において算出したハッシュ値と同じ値を持つ署名延長証書e2が偽造できた場合に、署名付きデータd1〜dnの真正性を保証することはできなくなる。
【0056】
これに対して本発明では、署名延長のためのタイムスタンプAT1’,AT2’;AT1’’,AT2’’,・・・を定期的に付与する度に、その時危殆化していない暗号化アルゴリズムを用いて、親署名Sig(0)だけでなく、子署名Sig(1,1),Sig(1,2),Sig(2)およびその参照先データのハッシュ値を求めることができるように、親署名Sig(0)に情報を集約しているので、その完全性を保証でき、過去に使用した暗号化アルゴリズムが危殆化しても、子署名Sig(1,1),Sig(1,2),Sig(2)においても高い真正性を保証することができる。
【0057】
本発明は、前述のように署名延長クライアント1と署名延長サーバ2とを備えた署名延長システムとして構成されるだけでなく、単体の署名延長装置として構成されてもよく、また、たとえば署名延長クライアント1で、署名タイムスタンプT1,T2の取得処理(S201)、公開鍵証明書K1,K2およびその信頼点までの公開鍵証明書L1,L2の取得処理(S202,S203)および失効情報R1,R2の取得処理(S204)を行い、署名延長サーバ2で、タイムスタンプAT1,AT2の取得処理(S205)のみを行うなど、任意に機能分割することができる。
【図面の簡単な説明】
【0058】
【図1】本発明の実施の一形態に係る署名延長装置システムの全体構成を示すブロック図である。
【図2】本発明の署名の多重化法を説明するための図である。
【図3】本発明の署名の多重化および延長処理の一例を示す署名ファイルのデータ構成を示す図である。
【図4】前記図3で示す署名ファイルを1回延長して得られる長期署名ファイルのデータ構成を示す図である。
【図5】本発明の署名の多重化および延長処理の他の例を示す署名ファイルのデータ構成を示す図である。
【図6】前記図4で示す署名ファイルを1回延長して得られる長期署名ファイルのデータ構成を示す図である。
【図7】前記図4で示す署名ファイルを2回延長して得られる長期署名ファイルのデータ構成を示す図である。
【図8】前記図5で示す多重化された署名ファイルにおける親署名の具体的構成を示す図である。
【図9】前記図5で示す署名ファイルにおける長期署名の具体的構成を示す図である。
【図10】前記図5で示す署名ファイルをx回延長した長期署名の具体的構成を示す図である。
【図11】署名を延長するにあたって、参照情報の設定方法を説明するための図である。
【図12】本発明の署名延長システムの概略動作を説明するためのフローチャートである。
【図13】図12で示す延長処理における基礎署名部の生成処理を詳しく説明するためのフローチャートである。
【図14】図12で示す延長処理における署名延長部の生成処理を詳しく説明するためのフローチャートである。
【図15】図12で示す延長処理において、延長を繰返す際の署名延長部の生成処理を詳しく説明するためのフローチャートである。
【図16】本発明の署名延長処理で記憶されるべきデータの構成を説明するための図である。
【図17】従来の署名延長処理の例を示す署名延長証書のデータ構成を示す図である。
【図18】前記図17で示す署名延長証書を1回延長して得られる署名延長証書のデータ構成を示す図である。
【図19】前記図17で示す署名延長証書を2回延長して得られる署名延長証書のデータ構成を示す図である。
【図20】従来の署名延長処理で記憶されるべきデータの構成を説明するための図である。
【図21】従来の署名の多重化法を説明するための図である。
【符号の説明】
【0059】
1 署名延長クライアント
2 署名延長サーバ
3 ネットワーク
P1 認証局
P2,P4 CRL配布ポイント
P3,P6 ルート認証局
P5 タイムスタンプ局
【特許請求の範囲】
【請求項1】
それぞれ有効期限を有する複数の署名対象データに付された子署名を親署名に多重化して、その有効期限を延長する署名延長装置において、
各署名に使用された公開鍵証明書を取得する機能と、
各署名に使用された公開鍵証明書の信頼点までの公開鍵証明書を取得する機能と、
各署名に使用された公開鍵証明書および信頼点までの公開鍵証明書それぞれに対する失効情報を取得する機能と、
親署名が有する総ての参照先、署名値、公開鍵証明書および失効情報に対するタイムスタンプを取得する機能とを含むことを特徴とする署名延長装置。
【請求項2】
前記多重化は、
1つ前の階層の子署名の署名値および1つ前の階層の子署名の署名対象データへの参照情報を作成する機能と、
総ての署名対象データによるハッシュ値から署名値を作成する機能と、
1つ前の階層の子署名の内容を取込む機能とを含むことを特徴とする請求項1記載の署名延長装置。
【請求項3】
前記請求項1または2記載の署名延長装置における各機能が分割された署名延長クライアントおよび署名延長サーバと、前記署名に使用される公開鍵証明書およびその信頼点までの証明書を発行するルート認証局と、前記公開鍵証明書の失効情報を発行するCRL配布ポイントと、前記署名に使用されるタイムスタンプを発行するタイムスタンプ局とを備えて構成されることを特徴とする署名延長システム。
【請求項4】
それぞれ有効期限を有する複数の署名対象データに付された子署名を親署名に多重化して、その有効期限を延長する署名延長方法において、
各署名に使用された公開鍵証明書を取得し、
各署名に使用された公開鍵証明書の信頼点までの公開鍵証明書を取得し、
各署名に使用された公開鍵証明書および信頼点までの公開鍵証明書それぞれに対する失効情報を取得し、
親署名が有する総ての参照先、署名値、公開鍵証明書および失効情報に対するタイムスタンプを取得することを特徴とする署名延長方法。
【請求項5】
それぞれ有効期限を有する複数の署名対象データに付された子署名を親署名に多重化して、その有効期限を延長するための署名延長プログラムにおいて、
各署名に使用された公開鍵証明書を取得するステップと、
各署名に使用された公開鍵証明書の信頼点までの公開鍵証明書を取得するステップと、
各署名に使用された公開鍵証明書および信頼点までの公開鍵証明書それぞれに対する失効情報を取得するステップと、
親署名が有する総ての参照先、署名値、公開鍵証明書および失効情報に対するタイムスタンプを取得するステップとを含むことを特徴とする署名延長プログラム。
【請求項6】
前記親署名の作成は、
入力された1または複数の署名対象データの内の1つと、過去の署名とを、いずれか一方を親署名とし、他方を子署名として、子署名に対する参照情報を設定するステップと、
総ての署名対象データによるハッシュ値を計算するステップと、
前記ハッシュ値から、前記署名値を演算するステップとを含み、
前記の各ステップを親署名に包含する子署名がなくなるまで再帰的に繰返すことを特徴とする請求項5記載の署名延長プログラム。
【請求項1】
それぞれ有効期限を有する複数の署名対象データに付された子署名を親署名に多重化して、その有効期限を延長する署名延長装置において、
各署名に使用された公開鍵証明書を取得する機能と、
各署名に使用された公開鍵証明書の信頼点までの公開鍵証明書を取得する機能と、
各署名に使用された公開鍵証明書および信頼点までの公開鍵証明書それぞれに対する失効情報を取得する機能と、
親署名が有する総ての参照先、署名値、公開鍵証明書および失効情報に対するタイムスタンプを取得する機能とを含むことを特徴とする署名延長装置。
【請求項2】
前記多重化は、
1つ前の階層の子署名の署名値および1つ前の階層の子署名の署名対象データへの参照情報を作成する機能と、
総ての署名対象データによるハッシュ値から署名値を作成する機能と、
1つ前の階層の子署名の内容を取込む機能とを含むことを特徴とする請求項1記載の署名延長装置。
【請求項3】
前記請求項1または2記載の署名延長装置における各機能が分割された署名延長クライアントおよび署名延長サーバと、前記署名に使用される公開鍵証明書およびその信頼点までの証明書を発行するルート認証局と、前記公開鍵証明書の失効情報を発行するCRL配布ポイントと、前記署名に使用されるタイムスタンプを発行するタイムスタンプ局とを備えて構成されることを特徴とする署名延長システム。
【請求項4】
それぞれ有効期限を有する複数の署名対象データに付された子署名を親署名に多重化して、その有効期限を延長する署名延長方法において、
各署名に使用された公開鍵証明書を取得し、
各署名に使用された公開鍵証明書の信頼点までの公開鍵証明書を取得し、
各署名に使用された公開鍵証明書および信頼点までの公開鍵証明書それぞれに対する失効情報を取得し、
親署名が有する総ての参照先、署名値、公開鍵証明書および失効情報に対するタイムスタンプを取得することを特徴とする署名延長方法。
【請求項5】
それぞれ有効期限を有する複数の署名対象データに付された子署名を親署名に多重化して、その有効期限を延長するための署名延長プログラムにおいて、
各署名に使用された公開鍵証明書を取得するステップと、
各署名に使用された公開鍵証明書の信頼点までの公開鍵証明書を取得するステップと、
各署名に使用された公開鍵証明書および信頼点までの公開鍵証明書それぞれに対する失効情報を取得するステップと、
親署名が有する総ての参照先、署名値、公開鍵証明書および失効情報に対するタイムスタンプを取得するステップとを含むことを特徴とする署名延長プログラム。
【請求項6】
前記親署名の作成は、
入力された1または複数の署名対象データの内の1つと、過去の署名とを、いずれか一方を親署名とし、他方を子署名として、子署名に対する参照情報を設定するステップと、
総ての署名対象データによるハッシュ値を計算するステップと、
前記ハッシュ値から、前記署名値を演算するステップとを含み、
前記の各ステップを親署名に包含する子署名がなくなるまで再帰的に繰返すことを特徴とする請求項5記載の署名延長プログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【公開番号】特開2007−27938(P2007−27938A)
【公開日】平成19年2月1日(2007.2.1)
【国際特許分類】
【出願番号】特願2005−204077(P2005−204077)
【出願日】平成17年7月13日(2005.7.13)
【出願人】(000156938)関西電力株式会社 (1,442)
【出願人】(397042126)関電システムソリューションズ株式会社 (2)
【Fターム(参考)】
【公開日】平成19年2月1日(2007.2.1)
【国際特許分類】
【出願日】平成17年7月13日(2005.7.13)
【出願人】(000156938)関西電力株式会社 (1,442)
【出願人】(397042126)関電システムソリューションズ株式会社 (2)
【Fターム(参考)】
[ Back to top ]