(57)【要約】【課題】ディジタル署名をログデータとして登録する方式では、ログテーブルの一部に破損や改ざんなどの不測の事態では、該ログデータ以外の真正性が損なわれた場合でも、ログデータの連鎖を利用した該ログデータの検証をすることができない。【解決手段】ディジタル署名に複数のログデータの情報を取り込んで、生成し、ログテーブルに登録する。ログテーブルにおけるログデータの連鎖を検証する際には、複数のログデータに登録されているリンク情報をもとに、破損していない他のログデータの整合性から検証を行う。【効果】ログテーブルの一部に破損や改ざんなどがある場合でも、ログテーブルにおいて、ログデータの連鎖を利用した検証を行うことができる。【選択図】  図１
2005012490.tif 000002
【特許請求の範囲】
【請求項１】
メッセージに対するディジタル署名を生成、検証するディジタル署名方法であって、
ディジタル署名生成者側の装置において、
過去に生成された単数、または複数のディジタル署名を指定するために、
指定方法を設定することと、
かつその指定方法を変則的に変更できること、
を特徴とするディジタル署名の生成方法。
【請求項２】
請求項１記載のディジタル署名方法であって、
設定された指定方法に従って、
メッセージに対するディジタル署名を作成する際に、
過去に生成された単数、または複数のディジタル署名を指定した指定情報を生成し、
メッセージあるいはメッセージに限定される特徴値と指定されたディジタル署名あるいはディジタル署名に限定される特徴値に、ディジタル署名生成者が所有する秘密鍵を作用させ、
当該メッセージに対するディジタル署名を生成する署名生成ステップを有するディジタル署名の生成方法。
【請求項３】
請求項２記載のディジタル署名方法であって、
ディジタル署名検証者側の装置において、
配布されたディジタル署名付きメッセージを、
検証対象ディジタル署名付きメッセージとして受け付ける検証対象受付ステップと、
前記検証対象ディジタル署名付きメッセージを配布したディジタル署名者のログリストを取得する履歴取得ステップと、
前記検証対象ディジタル署名付きメッセージのログデータが、
前記ログリストに登録されているか否かを調べ、
登録されている場合は、当該検証対象ディジタル署名付きメッセージが前記ディジタル署名生成者により配布されたものであることを認証する第１の検証ステップと、
を有すること
を特徴とするディジタル署名方法。
【請求項４】
請求項３記載のディジタル署名方法であって、
前記ディジタル署名検証者側の装置において、
前記第１の検証ステップに先立ち、
前記検証対象ディジタル署名付きメッセージに含まれるメッセージおよびディジタル署名と、
前記秘密鍵と対の公開鍵とを用いて、
前記検証対象ディジタル署名付きメッセージに含まれるディジタル署名が当該検証対象ディジタル署名付きメッセージに含まれるメッセージに対してなされたものであるか否かを認証する第２の検証ステップを、
さらに有することを特徴とするディジタル署名方法。
【請求項５】
請求項４記載のディジタル署名方法であって、
前記ディジタル署名検証者側の装置において、
前記第１の検証ステップにより、
前記検証対象ディジタル署名付きメッセージが前記ディジタル署名生成者により配布されたものであると認証された場合に、
前記検証対象ディジタル署名付きメッセージに含まれるリンクデータの一つが、
前記ログリストにて前記検証対象ディジタル署名付きメッセージのログデータがリンク先に登録されているログデータに含まれているか否かを調べ、
含まれている場合は、前記ログリストが改ざんされていないことを認証する第３の検証ステップを、さらに有すること
を特徴とするディジタル署名方法。
【請求項６】
請求項５記載のディジタル署名方法であって、
前記ディジタル署名検証者側の装置において、
前記第１の検証ステップにより、
前記検証対象ディジタル署名付きメッセージが前記ディジタル署名生成者により配布されたものであると認証された場合に、
前記検証対象ディジタル署名付きメッセージに含まれるリンクデータの一つを選択し、
前記ログリストにて前記検証対象ディジタル署名付きメッセージのログデータがリンク先に登録されているログデータに含まれているか否かを調べ、
含まれていない場合は、前記指定情報からリンクデータの再選択を行い、
第３の検証ステップを繰り返し行うこと
を特徴とするディジタル署名方法。
【請求項７】
請求項４記載のディジタル署名方法であって、
前記ディジタル署名検証者側の装置において、
前記第１の検証ステップにより、
前記検証対象ディジタル署名付きメッセージが前記ディジタル署名生成者により配布されたものであると認証された場合に、
前記ログリストにて前記検証対象ディジタル署名付きメッセージのログデータをリンク先として登録しているログデータに含まれているリンクデータの一つが、
前記検証対象ディジタル署名付きメッセージから計算されるデータに一致するか否かを調べ、
一致する場合は、
前記ログリストが改ざんされていないことを認証する第３の検証ステップを、
さらに有すること
を特徴とするディジタル署名方法。
【請求項８】
請求項７記載のディジタル署名方法であって、
前記ディジタル署名検証者側の装置において、
前記第１の検証ステップにより、
前記検証対象ディジタル署名付きメッセージが前記ディジタル署名生成者により配布されたものであると認証された場合に、
前記ログリストにて前記検証対象ディジタル署名付きメッセージのログデータをリンク先として登録しているログデータに含まれているリンクデータの一つが、
前記検証対象ディジタル署名付きメッセージから計算されるデータに一致するか否かを調べ、
一致しない場合は、
前記ログリストにて前記検証対象ディジタル署名付きメッセージのログデータをリンク先として、
登録しているログデータに含まれているリンクデータの再選択を行うこと
を特徴とするディジタル署名方法。
【請求項９】
請求項６記載のディジタル署名方法であって、
前記登録ステップは、
ディジタル署名付きメッセージのログデータを、
配布先を付してログリストに登録し、
前記ディジタル署名検証者側の装置において、
前記第１の検証ステップにより、
検証対象ディジタル署名付きメッセージが前記ディジタル署名生成者により配布されたものであると認証された場合に、
前記ログリストにて前記検証対象ディジタル署名付きメッセージのログデータのリンク先に登録されているログデータに付された配布先から、
ディジタル署名付きメッセージを取得し、
これが前記リンク元に登録されているログデータに含まれているか否かを調べ、
含まれている場合は、
前記ログリストが改ざんされていないことを認証する第４の検証ステップを、
さらに有すること
を特徴とするディジタル署名方法。
【請求項１０】
請求項８記載のディジタル署名方法であって、
前記登録ステップは、
ディジタル署名付きメッセージのログデータを、
配布先を付してログリストに登録し、
前記ディジタル署名検証者側の装置において、
前記第１の検証ステップにより、
検証対象ディジタル署名付きメッセージが前記ディジタル署名生成者により配布されたものであると認証された場合に、
前記ログリストにて前記検証対象ディジタル署名付きメッセージのログデータのリンク元に登録されているログデータに付された配布先から、
ディジタル署名付きメッセージを取得し、
これが前記リンク先に登録されているログデータに含まれているか否かを調べ、
含まれている場合は、
前記ログリストが改ざんされていないことを認証する第４の検証ステップを、
さらに有すること
を特徴とするディジタル署名方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、マルチメディアデータの正当性を保証する技術に関する。
【０００２】
【従来の技術】
電子的な文書などのディジタル化されたデータ（マルチメディアデータともいう）に、従来のサイン、印鑑に相当する機能を付与する技術であるディジタル署名が、電子商取引などにおけるネットワークの高度利用を可能にする技術として、注目されつつある。
【０００３】
ディジタル署名技術に関する文献としては、たとえば非特許文献１，２がある。
【０００４】
非特許文献１，２に記載のディジタル署名技術では、ディジタル署名生成者は、署名対象となるディジタル化されたデータ（以下、メッセージという）Ｍあるいはその特徴値（圧縮値または、メッセージダイジェストともいう）であるハッシュ値に、自身が秘密裏に保持する秘密鍵を作用させることで、メッセージＭに対するディジタル署名Ａを生成する。そして、メッセージＭにディジタル署名Ａを付して公開する。ディジタル署名検証者は、メッセージＭに付されたディジタル署名Ａを上記秘密鍵と対の公開鍵を作用させることで得た結果と、メッセージＭあるいはそのハッシュ値とを比較する。両者が一致しない場合は、ディジタル署名Ａが生成された後にメッセージＭに何らかの改ざんが加えられた可能性がある。このため、両者が一致する場合に限り、ディジタル署名ＡがメッセージＭに対してなされたものであることを認証する。
【０００５】
なお、非特許文献２のＰ７５には、ディジタル署名生成者が、自身が生成したメッセージに特殊な情報を加えてディジタル署名を生成することにより、ディジタル署名の不正な生成を防止する技術が開示されている。該技術では、ディジタル署名生成者は、署名対象となるメッセージＭｎあるいはそのハッシュ値と１つ前に生成したディジタル署名Ａｎ−１の生成に関わるデータと時刻データを、自身が秘密裏に保持する秘密鍵を作用させることで、メッセージＭｎに対するディジタル署名Ａｎを生成する。このようにすると、ディジタル署名Ａｎの次に生成されるディジタル署名Ａｎ＋１には、１つ前に生成したディジタル署名Ａｎの生成に関わるデータが反映される。このため、ディジタル署名生成者が自身が生成したメッセージＭｎに何らかの改ざんを加えて新たにディジタル署名Ａｎを生成し、これらを元のメッセージＭｎおよびディジタル署名Ａｎと置き換えるような不正な行為を行うと、ディジタル署名Ａｎ＋１との間で整合がとれなくなる。
【０００６】
上述した、メッセージにディジタル署名生成者自身が何らかの改ざんを加えて新たにディジタル署名を生成して元のメッセージおよびディジタル署名と置き換える様な不正な行為、を防止する技術は、非特許文献２ではｌｉｎｋｉｎｇ  Ｐｒｏｔｏｃｏｌとして開示されている。
【０００７】
また、生成したディジタル署名とメッセージを含むディジタル署名付きメッセージの配布に先立ち、当該ディジタル署名付きメッセージのログデータをログリストに登録し、ディジタル署名検証者がディジタル署名生成者からログリストを入手し、検証すべきディジタル署名付きメッセージのログデータが前記ログリストに登録されているか否かを調べることで、当該検証すべきディジタル署名付きメッセージが前記ディジタル署名生成者により配布されたものであるか否かを検証することが可能となる方法が、特許文献１で開示されている。
【０００８】
特許文献１の実施例２では、Ｌｉｎｋｉｎｇ  Ｐｒｏｔｏｃｏｌを用いた実施形態も掲載されている。しかし、上記方式ではログデータを登録したログリストの完全な保存が必須とされ、ログデータに欠落した部分が有ると、ログリストにあるログデータの連鎖を利用した検証では他の正当なログデータの検証にも支障をきたすことが知られている。
【０００９】
そのため、ログリストを利用者の間で共有し、その欠落を補うような方法が考えられている。
【００１０】
該技術では、そのログリストの信頼性を高めるため、複数の利用者や利用者装置の間でログリストを交差させ、ログリストが一部欠落した場合でも、他の利用者や利用者装置のログテーブルを利用することにより、部分的に欠落したログリストを埋める手法が開示されている（特許文献２参照）。
【００１１】
また、上記の特許文献１に、特許文献２の手法を組み合わせることにより、ログリストにおけるログデータの欠落した部分を補う方法が以下の非特許文献３に掲載されている。
【００１２】
【特許文献１】
特開２００１−３３１１０４号公報
【特許文献２】
特開２００１−０３５６３１号公報
【非特許文献１】
Ａｌｆｒｅｄ  Ｊ．  Ｍｅｎｅｚｅｓ，  Ｐａｕｌ  Ｃ．  ｖａｎ  Ｏｏｒｓｃｈｏｔ，ａｎｄ  Ｓｃｏｔｔ  Ａ．  Ｖａｎｓｔｏｎｅ，  ”Ｈａｎｄｂｏｏｋ  ｏｆ  Ａｐｐｌｉｅｄ  Ｃｒｙｐｔｏｇｒａｐｈｙ”  ＣＲＣ  Ｐｒｅｓｓ，  Ｉｎｃ．  １９９７  ｐ．２２−２３、ｐ４２５−４８８
【非特許文献２】
Ｂｒｕｃｅ  Ｓｃｈｎｅｉｅｒ，  ”Ａｐｐｌｉｅｄ  Ｃｒｙｐｔｏｇｒａｐｈｙ  Ｓｅｃｏｎｄ  Ｅｄｉｔｉｏｎ”，  ＪｏｈｎＷｉｌｅｙ  ＆  Ｓｏｎｓ，  Ｉｎｃ．  １９９６  ｐ．４８３−５０２
【非特許文献３】
情報処理学会論文誌ｖｏｌ．４３  Ｎｏ．８、２００２年８月、「電子署名アリバイ実現機構―ヒステリシス署名と履歴交差」洲崎誠一、松本勉著
【００１３】
【発明が解決しようとする課題】
非特許文献３では、利用者が自身の所有するログリストと他者の所有するログリストを交差させることにより、自身が欠落したログデータを、他者が所有するログデータにより補う手法である。しかし、利用者の手間の問題、仲介の役割を果たすサービス提供機関の不在など課題があり、普及には至っていない。
【００１４】
また一方で、ログデータの真正性を確かめるために、ログリストを用いたログデータの連鎖の組を繰り返し検証すると、その繰り返しが多いほど検証の時間が増大する。
【００１５】
【課題を解決するための手段】
本発明は上記事情に鑑みてなされたものであり、本発明は、利用者は他の利用者のログリストによる補間やサービス提供機関を利用することなく、一部のログデータが欠落しても、ログリストの連鎖構造を用いたログデータの検証が可能となる技術を提供するものである。
【００１６】
本発明は、又、ログリストにあるログデータの連鎖の組を繰り返し検証する際に、その検証時間を短縮する技術を提供するものである。
【００１７】
本発明では、ディジタル署名生成者側は、まずリンクルールを設定し、ディジタル署名を生成する毎にリンクルールを参照してリンク情報を生成する。リンクルールとは、ログリスト内にあるログデータやそのハッシュ値の指定と、複数の条件毎にログデータに対する、優先順位を決める基準を示している。
【００１８】
また、本発明では、ディジタル署名生成者側において、リンクルールを参照し、ログリスト内にある単数、または複数のログデータやそのハッシュ値を利用してディジタル署名を生成し、利用したディジタル署名やそのハッシュ値、あるいはＩＤなどをリンク情報に記す。また、同時にリンク情報には、利用したディジタル署名に対する、条件毎の優先順位が書き込まれる。
【００１９】
生成したディジタル署名とメッセージを含むディジタル署名付きメッセージの配布に先立ち、当該ディジタル署名付きメッセージのログデータをログリストに登録する。ここで、ログデータとは、ディジタル署名付きメッセージそのものであってもよいし、あるいは、ディジタル署名付きメッセージに含まれるメッセージを当該メッセージのハッシュ値に置き換えたディジタル署名付きメッセージであってもよい。
【００２０】
本発明で用いられるハッシュ値とはハッシュ関数と呼ばれる、任意長の入力から固定長の値を出力するような関数によって計算される値を指す。安全性を確保する目的からは、同じ出力値を与えるような２つの異なる入力値を見出すことと出力がある与えられた値となる入力値を見出すこととが困難であるような関数を用いることが望ましい。ハッシュ関数のアルゴリズムはシステム全体に対して公開されているものとする。
【００２１】
ディジタル署名検証者は、ディジタル署名生成者、またはディジタル署名保管者からログリストを入手し、検証すべきディジタル署名付きメッセージのログデータが前記ログリストに登録されているか否かを調べることで、当該検証すべきディジタル署名付きメッセージが前記ディジタル署名生成者により配布されたものであるか否かを検証することが可能となる。
【００２２】
また、ディジタル署名検証者は、前記ログリストにある該ログデータ、あるいはそのハッシュ値が、該ログデータが利用したログデータに登録されている内容と一致するか否か調べることにより、該ログデータの検証が可能となる。
【００２３】
さらに、ディジタル署名検証者は、前記ログリストにある該ログデータ、あるいはそのハッシュ値が、該ログデータを利用しているログデータに登録されている内容と一致するか否か調べることにより、該ログデータの検証が可能となる。
【００２４】
さらに、ディジタル署名検証者は、参考資料として入手したディジタル署名付きメッセージに対し、該ディジタル署名付きメッセージ、あるいはそのハッシュ値が、該ディジタル署名付きメッセージを利用した前記ログリストにあるログデータに登録されている内容と一致するか否か調べることにより、該ログデータの検証を行うことができる。
【００２５】
さらに、ディジタル署名検証者は、入手した該ディジタル署名付きメッセージに対し、参考資料として入手したディジタル署名付きメッセージ、あるいはそのハッシュ値が、該ディジタル署名付きメッセージを利用した前記ログリストにあるログデータに登録されている内容と一致するか否か調べることにより、該ログデータの検証を行うことができる。
【００２６】
【発明の実施の形態】
図１は本発明の第１実施形態が適用されたシステムの概略図である。本システムは、ディジタル署名付きメッセージを作成するディジタル署名生成者側装置１１〜１ｎ（以下、単にディジタル署名生成者側装置１とする）と、ディジタル署名生成者側装置１に代わってディジタル署名生成者側装置１が作成したディジタル署名付きメッセージを保持するディジタル署名保管者側装置３１〜３ｎ（以下、単にディジタル署名保管者側装置３とする）と、ディジタル署名生成者側装置１が作成したディジタル署名付きメッセージの検証を行うディジタル署名検証者側装置５１〜５ｎ（以下、単にディジタル署名検証者側装置５とする）とを含んで構成される。
【００２７】
なお、本発明の実施の形態において、メッセージとは、電子的な文書などのディジタルデータの他、イメージデータや音声データなどのディジタル化されたマルチメディアデータや、有価証券と同じ価値を持つディジタルデータなども含むものとする。また、本発明の実施の形態の説明にて用いられる文言「購入」とは、有償無償を問わず、ディジタル署名者が作成したディジタル署名付きメッセージを何らかの方法により入手する行為を指すものとする。
【００２８】
図２は、ディジタル署名生成者側装置１、ディジタル署名保管者側装置３、ディジタル署名検証者側装置５の概略構成図である。
【００２９】
各装置では、中央処理装置（ＣＰＵ）１１と、メモリ１２と、記憶装置１３と、読み取り装置１４と、記憶媒体１５と、入力装置１６と、表示装置１７と、通信処理装置１８と、認証装置１９と、上述した各構成要素間のデータ送受を司るインターフェース２０を備えた、一般的な構成を有する電子計算機２１とする。利用者装置などでは、さらに署名処理装置２２が、接続されている場合もある。
【００３０】
ＣＰＵ１１は、各構成要素を統括的に制御し、様々な演算を行う。
【００３１】
メモリ１２は、ＣＰＵ１１の上記の処理を実行するために必要なプログラムや、データなどを一時的に記憶するために用いられるワークエリアである。
【００３２】
記憶装置１３は、ハードディスクやフロッピー（登録商標）ディスクなどで構成される装置である。
【００３３】
特に、ディジタル署名保管者側装置の場合は署名ログデータなどの重要な情報が入っているので、そのデータが失われないような手段を講じる。例えば、不揮発性の記憶媒体を用いることや、定期的にバックアップを作成することが有効である。
【００３４】
読み取り装置１４は、記憶媒体１５からからデータを読取る読取り装置である。
【００３５】
記憶媒体１５は、ＣＤ−ＲＯＭやＦＤなどの可搬性を有する記憶媒体である。
【００３６】
入力装置１６は、キーボードやマウスなどを用いて、使用者がデータやコマンドなどを入力するために用いられるものである。
【００３７】
表示装置１７は、上記利用者にメッセージなどを表示するために用いられるものであり、ＣＲＴや液晶ディスプレイなどで構成される。
【００３８】
通信装置１８は、ネットワーク１０を介して他の装置とデータのやりとりなどを行うものである。
【００３９】
認証装置１９は、パスワードや、ＩＣカードなどの記憶媒体からの情報の読み込み、あるいは生体認証技術等により本人を識別する装置である。
【００４０】
インターフェース２０は、上述した各構成要素間のデータ送受を司る。
【００４１】
図３は、図２に示す署名処理装置２２の概略構成図である。署名処理装置２２は、ＣＰＵ２２１と、ＣＰＵ２２１のワークエリアとして機能するメモリ２２２と、各種プログラムやデータを記憶する記憶装置２２３とを有する。
【００４２】
ここで、記憶装置２２３では、ディジタル署名者も含めて誰にも改ざんや削除などができないように保護されている方が好ましい。記憶装置２２３では、署名付きメッセージ作成処理部１１２からの指示に従い、メッセージに対するディジタル署名を生成するための署名生成ＰＧ（プログラム）２２３１と、ディジタル署名生成の際に用いるリンクルール２２３２と、秘密鍵２２３３と、秘密鍵２２３３と対の公開鍵を含んだ公開鍵証明書２２３４と、ディジタル署名生成の履歴を記録するための署名ログテーブル２２３５が格納されている。
【００４３】
秘密鍵２２３３は、ディジタル署名者にも知られないように、外部から読み出せないような手段を講じた上で記憶装置２２３に格納されているものがよい。秘密鍵をディジタル署名者が知ると、署名処理装置２２以外の装置を用いた署名の偽造が可能になるためである。また、署名ログテーブル２２３５は、初期の時点では何も記録されておらず、ディジタル署名を生成する毎に、生成されたディジタル署名と当該署名対象メッセージのハッシュ値でなる署名ログデータ２２３６が追加される。この署名ログテーブル２２３５は、外部から読み出す事は可能であるが、書き換えをすることはできないように設定されているものとする。
【００４４】
署名処理装置２２は、例えばＩＣカードのように、ディジタル署名生成者側装置１から切り離すことができるものが望ましい。この場合は、署名処理装置２２は、ＣＰＵ１１と、ＣＰＵ１１を動作させるプログラムや署名ログテーブル２２３５を格納する記憶装置２２３と、利用者装置との情報のやり取りを行なうインタフェース装置、例えば通信手段としてＩ／Ｏ２２４とを備える。また、署名を生成するための専用の演算装置（ハードウェア）を備えても良い。同じく、ディジタル署名生成者側装置１にもインタフェース装置を付加する。切り離し可能な構成にすると、複数の利用者が各ディジタル署名生成者側装置１を共有できるようになり、便利である。この場合、記憶装置１３中には、複数の利用者による署名処理の記録が残ることになる。
【００４５】
また、署名処理装置２２を持ち運び可能とすることで、署名行為を行なう場所を制限されることがない。
【００４６】
電子計算機２１では、以上の各構成要素を有したシステムから構成される。
【００４７】
また、本人識別用の手段として記憶媒体であるＩＣカード２３などの接続がシステムの構築に必要になる事もある。
【００４８】
ディジタル署名生成者側装置１の記憶装置１３に格納されるのは、リンクルールを参照してメッセージに対するディジタル署名の必要な情報の収集を依頼する収集依頼ＰＧ（プログラム）１３１と、その署名情報を取得する署名情報入手ＰＧ（プログラム）１３５、メッセージに生成されたディジタル署名を付して、ディジタル署名付きメッセージとして配布するための署名付きメッセージ作成ＰＧ（プログラム）１３２と、自ディジタル署名生成者側装置１が作成したディジタル署名付きメッセージの検証をディジタル署名検証者側装置５に依頼したり、ディジタル署名検証者側装置５からの指示にしたがい、当該ディジタル署名検証者側装置５がディジタル署名付きメッセージの検証を行うのに必要な情報を当該ディジタル署名検証者側装置５に提供するための検証依頼ＰＧ（プログラム）１３３である。これらは、メモリ１２上にロードされ、ＣＰＵ１１により、収集依頼処理部１１１、署名付きメッセージ作成処理部１１２や検証依頼処理部１１３というプロセスとして具現化される。
【００４９】
ディジタル署名保管者側装置３の記憶装置１３に格納されるのは、ディジタル署名生成者側装置１からのメッセージに対するディジタル署名の必要な情報を収集して、送付する署名情報収集ＰＧ（プログラム）３３１と、ディジタル署名生成者側装置１からディジタル署名付きメッセージを入手するための署名付きメッセージ入手ＰＧ（プログラム）３３２と、入手したディジタル署名付きメッセージの検証をディジタル署名検証者側装置５に依頼するための検証依頼ＰＧ（プログラム）３３３である。これらは、メモリ１２上にロードされ、ＣＰＵ１１により署名情報収集処理部３１１、署名付きメッセージ入手処理部３１２や検証依頼処理部３１３というプロセスとして具現化される。
【００５０】
ディジタル署名検証者側装置５の記憶装置１３に格納されるのは、ディジタル署名生成者側装置１あるいはディジタル署名保管者側装置３からの指示にしたがい、ディジタル署名付きメッセージの検証を行う署名検証ＰＧ（プログラム）５３１である。これは、メモリ１２上にロードされ、ＣＰＵ１１により、署名検証処理部５１１というプロセスとして具現化される。
【００５１】
以上の、全ての処理装置には、認証装置１９、及びＩＣカード２３はなくてもよい。その場合、各装置の使用者を認証するための別の手段を講ずることが好ましい。
【００５２】
これらのプログラムは、読取り装置１４によりＣＤ−ＲＯＭやＦＤなどの可搬性の記憶媒体１５から読取られ、記憶装置１３にインストールされるようにしてもよいし、あるいは、通信装置１８を介してネットワークから記憶装置１３にダウンロードされるようにしてもよい。
【００５３】
署名ログの改ざんを防止するため、署名ログデータの登録方法の第一実施形態について説明する。
【００５４】
リンクルールは例えば図５のように表される。ここで、ｎは生成するディジタル署名の署名ＩＤとする。リンク先としてディジタル署名を生成する際に利用した他のディジタル署名ＩＤ、リンク元として該ディジタル署名を利用する他のディジタル署名ＩＤを記し、条件毎に、各署名ＩＤに対して優先順位を定めている。
【００５５】
ディジタル署名者生成側装置１において、署名生成処理部１１４は、まず既定のリンクルールを参照し、生成するディジタル署名に付加するリンク情報を作成する。
【００５６】
リンク情報では、ディジタル署名者がディジタル署名を作成する際、他のどの署名ログデータを利用してディジタル署名を作成するかが記されている。ここで、リンク情報は、例えば図６のように表される。ただし、例ではリンク情報の署名ＩＤを１００とする。リンク情報は、それぞれリンク先、リンク元の署名ＩＤと、署名ＩＤに対応する優先順位を記している。
【００５７】
リンクルールでは、複数の署名ログデータを利用してディジタル署名を生成する場合、利用したディジタル署名に関する優先順位をリンク情報毎にランダムに設定したり、ディジタル署名を作成する毎に、その都度リンク先、あるいはリンク元の優先順位を作成するように設定してもかまわない。また、図５の様にテーブルにしなくてもよい。
【００５８】
リンク情報は署名データを作成した直後に作成される。また、リンク情報において、利用したディジタル署名に関する優先順位を定期、不定期に変更しても構わない。また、リンク情報において、リンクしている署名データに関する優先順位をランダムに生成、変更してもかまわない。また、図６の様にテーブルにしなくてもよい。
【００５９】
次に、図４を用いて、ディジタル署名保管者側装置３がディジタル署名生成者側装置１からディジタル署名付きメッセージを入手する際の動作について説明する。
【００６０】
ディジタル署名生成者側装置１において、署名付きメッセージ作成処理部１１２は、ディジタル署名保管者側装置３からメッセージの送信要求を受け取ると、その送信要求の対象であるメッセージを、例えば各種メッセージが格納された記憶装置１３から読み出し、これをハッシュ関数で評価することにより、ハッシュ値を求める。そして、メッセージのハッシュ値と送信要求を行ったディジタル署名保管者側装置３のアドレスを署名生成処理部２２１１に送って署名生成を依頼する（Ｓ６１０１）。署名生成処理部２２１１では、リンクルールを参照し、該当する（ｉ回目（０＜ｉ＜ｎ））の署名生成処理により生成された署名ログデータ２２３６に含まれるメッセージＭｉのハッシュ値ｈ（Ｍｉ）とディジタル署名Ｓｉｇｎｉとの組（ｈ（Ｍｉ），Ｓｉｇｎｉ）（これをリンクデータＰｉと称する）を作成し、これを繰り返すことにより、同様にリンクデータＰｊ、Ｐｋ……Ｐｍ（０＜ｊ≦ｋ≦ｍ＜ｎ）をそれぞれ生成し、それらの集合体をＱｎとおく。また、Ｐｊ、Ｐｋ……Ｐｍ （０＜ｊ≦ｋ≦ｍ＜ｎ）は別個に生成せずに、（ｈ（Ｍｉ），Ｓｉｇｎｉ）のデータを結合し、結合したデータをＱｎとおいても良い。署名生成処理部２２１１では、署名ログデータを一意に定めるための署名ＩＤとリンク情報を生成する。
【００６１】
署名生成処理部２２１１は、集合体Ｑｎと、署名付きメッセージ作成処理部１１２から送られてきたメッセージＭｎのハッシュ値ｈ（Ｍｎ）とに、秘密鍵２２３３を作用させ、ディジタル署名Ｓｉｇｎｎを生成する。初めて（１回目）署名を生成する時など、該当する署名データが存在しない場合は、異なる値を持つダミーデータＰ０を複数用意してもよいし、あらかじめシステム全体に共通な値あるいは個々の装置に固有な値として決めておいた初期値ＩＶを用いてもよいし、「なし」としてもよい。署名生成処理部２２１１は、集合体であるＱｎ、メッセージのハッシュ値ｈ（Ｍｎ）とディジタル署名Ｓｉｇｎｎと送信要求を行ったディジタル署名保管者側装置３のアドレスからなる署名ログデータ２２３６を、署名ログテーブル２２３５に登録する（Ｓ６１０３）。集合体Ｑｎとディジタル署名Ｓｉｇｎｎとメモリ２２３内に格納してある公開鍵証明書２２３４を、署名付きメッセージ作成処理部１１２に送る。署名付きメッセージ作成処理部１１２は、送信要求の対象であるメッセージＭｎに集合体Ｑｎとディジタル署名Ｓｉｇｎｎを付してディジタル署名付きメッセージを作成し、公開鍵証明書２２３４を添付して、ディジタル署名保管者側装置３に送信する（Ｓ６１０４）。
【００６２】
例として、Ｎ（Ｎ≧５）回目に対してディジタル署名を生成するものとし、前署名データ、前々署名データ、そして４回前の署名データに対してリンク情報が指定している場合を考える。ディジタル署名生成者側装置１において、署名付きメッセージ作成処理部１１２は、ディジタル署名保管者側装置３からメッセージの送信要求を受け取ると、その送信要求の対象であるメッセージを、例えば各種メッセージが格納された記憶装置１３から読み出し、これをハッシュ関数で評価することにより、ハッシュ値を求める。そして、メッセージのハッシュ値と送信要求を行ったディジタル署名保管者側装置３のアドレスを署名生成処理部２２１１に送って署名生成を依頼する（Ｓ６１０１）。署名生成処理部２２１１は、送られてきたメッセージのハッシュ値に、前回（Ｎ−１回目）の署名生成処理により生成された署名ログデータ２２３６に含まれるメッセージＭＮのハッシュ値ｈ（ＭＮ−１）とディジタル署名ＳｉｇｎＮ−１との組（ｈ（ＭＮ−１），ＳｉｇｎＮ−１）（これをＰＮ−１とする）と、同様の方法で前々回（Ｎ−２回目）の署名ログデータから生成されたＰＮ−２、４回前（Ｎ−４回目）の署名ログデータから生成されたＰＮ−４に署名付きメッセージ作成処理部１１２から送られてきたメッセージＭＮのハッシュ値ｈ（ＭＮ）とに、秘密鍵２２３３を作用させ、ディジタル署名ＳｉｇｎＮを生成する（Ｓ６１０２）。署名生成処理部２２１１は、リンクデータＰＮ−１、ＰＮ−２、ＰＮ−４、メッセージのハッシュ値ｈ（ＭＮ）とディジタル署名ＳｉｇｎＮを、署名ログテーブル２２３５に登録する（Ｓ６１０３）。リンクデータＰＮ−１、ＰＮ−２、ＰＮ−４とディジタル署名ＳｉｇｎＮとメモリ２２３内に格納してある公開鍵証明書２２３４を、署名付きメッセージ作成処理部１１２に送る。署名付きメッセージ作成処理部１１２は、送信要求の対象であるメッセージＭＮにリンクデータＰＮ−１、ＰＮ−２、ＰＮ−４とディジタル署名ＳｉｇｎＮを付してディジタル署名付きメッセージを作成し、公開鍵証明書２２３４を添付して、ディジタル署名保管者側装置３に送信する（Ｓ６１０４）。
【００６３】
上記の実施形態においては、ディジタル署名ＳｉｇｎＮを生成する時に、リンクデータＰｉ （０＜ｉ＜ｎ）を使用する際は、代わりにリンクデータのハッシュ値ｈ（Ｐｉ）を用いてもよい。この場合、署名ログテーブルに格納するデータもリンクデータＰｉのかわりにリンクデータのハッシュ値ｈ（Ｐｉ）でよい。また、Ｐｊ、Ｐｋ……Ｐｍ（０＜ｊ≦ｋ≦ｍ＜ｎ）を生成せずに、集合体ＱＮを（ｈ（Ｍｉ），Ｓｉｇｎｉ）のデータをそれぞれ結合して作成する場合、（ｈ（Ｍｉ），Ｓｉｇｎｉ）のハッシュ値ｈ（ｈ（Ｍｉ），Ｓｉｇｎｉ）を結合して集合体ＱＮを生成してもよい。
【００６４】
また、それぞれハッシュ値を求めるのに利用するハッシュ関数は、異なっていてもよい。なお、リンクデータＰｉとして（ｈ（Ｍｉ），Ｓｉｇｎｉ）を使う場合のように、Ｐｉを保存しておかなくてもそれ以外のデータから計算によりＰｉを求められる場合には、データ保存領域削減のためにリンクデータを保存せず、必要に応じて計算によって求めることにしてもよい。
【００６５】
上記の処理により、署名ログテーブル２２３５に格納される署名ログデータ２２３６は、図７に示すように、リンクデータとメッセージのハッシュ値とディジタル署名、及びリンク情報を含んで構成されるものとなる。
【００６６】
ディジタル署名保管者側装置３において、署名付きメッセージ入手処理部３１２は、入力装置３６を介して購入者よりメッセージ入手要求が指示されると、当該メッセージを保持する入手先のディジタル署名生成者側装置１へメッセージ送信要求を送信し（Ｓ６００１）、当該ディジタル署名生成者側装置１からディジタル署名付きメッセージが送られてくるのを待つ（Ｓ６００２）。署名付きメッセージ入手処理部３１２は、受け取ったディジタル署名付きメッセージに含まれるディジタル署名の検証を行う。具体的には、当該ディジタル署名に、当該ディジタル署名付きメッセージに添付された公開鍵証明書２２３４の公開鍵を作用させて、当該ディジタル署名付きメッセージに含まれるメッセージからハッシュ値を求め、二つの結果を比較し、かつ当該ディジタル署名付きメッセージに含まれるリンク情報を読み込み、リンク先の署名データとの組を比較する（Ｓ６００３）。二つの条件において両者が一致する場合（Ｓ６００４でＯＫの場合）は、当該ディジタル署名は、当該ディジタル署名付きメッセージに含まれるメッセージに対してなされたものであると認証し、当該ディジタル署名付きメッセージを受け入れ、入手先のディジタル署名生成者側装置１のアドレスを付して外部記憶装置３３などに格納する（Ｓ６００６）。二つの条件のうちどちらかでも両者が一致しない場合（Ｓ６００４でＮＧの場合）は、認証せずに当該ディジタル署名付きメッセージを破棄する（Ｓ６００５）。
【００６７】
ディジタル署名保管者側装置３は、Ｓ６００３の比較ステップでは、当該ディジタル署名付きメッセージに含まれるリンク先のデータとの比較だけでもかまわない。
【００６８】
ディジタル署名保管者側装置３は、Ｓ６００３の比較ステップでは、当該ディジタル署名に、当該ディジタル署名付きメッセージに添付された公開鍵証明書２２３４の公開鍵を作用させるとともに、当該ディジタル署名付きメッセージに含まれるメッセージからハッシュ値を求め、二つの結果を比較するだけでもよい。
【００６９】
ディジタル署名保管者側装置３は、実際に当該ディジタル署名付きメッセージを受け入れる前に、必要に応じて、例えば当該ディジタル署名付きメッセージの価値等に応じて、後述する署名検証依頼をディジタル署名検証者側装置５に依頼してディジタル署名を検証し、正当なディジタル署名であることを確認した後に受け入れるようにしてもよい。
【００７０】
ディジタル署名生成者側装置１は、ディジタル署名保管者側装置３からの依頼の有無にかかわらず、ディジタル署名者の意思に基づいてディジタル署名付きメッセージを作成してもかまわない。この場合、図４に示すディジタル署名保管者側装置３のフローは行われないことになる。しかし、ディジタル署名付きメッセージの購入者は、ディジタル署名保管者側装置３を用いて、後述する署名検証依頼をディジタル署名検証者側装置５に依頼することで、署名を検証することができる。
【００７１】
次に、図８を用いて、ディジタル署名保管者側装置３がディジタル署名検証者側装置５に対して、ディジタル署名生成者側装置１から入手したディジタル署名付きメッセージの検証を依頼する際の動作について説明する。なお、以下では「偽造である」と判定されることが署名者にとって不利な結果であるような状況における検証動作を例に挙げて説明している。
【００７２】
ディジタル署名保管者側装置３において、検証依頼処理部３１３は、入力装置１６を介して購入者より、自装置が保持しているディジタル署名付きメッセージの検証要求が指示されると、当該ディジタル署名付きメッセージに当該ディジタル署名付きメッセージの入手先であるディジタル署名生成者側装置１のアドレスを付して、ディジタル署名検証者側装置５に送信し、検証を依頼する（Ｓ１１００１）。ディジタル署名検証者側装置５から検証結果が送られてくるのを待ち（Ｓ１１００２）、検証結果をたとえば表示装置１７に表示する（Ｓ１１００３）。
【００７３】
ディジタル署名保管者側装置３において、検証依頼処理部３１３は、ディジタル署名検証者側装置５から、ディジタル署名付きメッセージを参考資料として送信する旨の要求が送られてくると（Ｓ１１１０１）、当該要求に付されたアドレスにより特定されるディジタル署名生成者側装置１から入手したディジタル署名付きメッセージを、たとえば外部記憶装置３３などから読み出して、ディジタル署名検証者側装置５に送信する（Ｓ１１１０２）。
【００７４】
ディジタル署名検証側装置５において、署名検証処理部５１１は、当該ディジタル署名付きメッセージに含まれるディジタル署名と、当該ディジタル署名付きメッセージに添付された公開鍵証明書２２３４の公開鍵とを用いて、Ｓ６００３、Ｓ６００４と同様に、第１段階の検証を行う（Ｓ１１２０１、Ｓ１１２０２）。
【００７５】
Ｓ１１２０２でＯＫの場合は、認証し、Ｓ１１２０３に進む。Ｓ１１２０２でＮＧの場合は、認証せず、検証結果を、検証要求を送信したディジタル署名保管者側装置３とディジタル署名付きメッセージに付されたアドレスにより特定されるディジタル署名生成者側装置１に送信する（Ｓ１１２１４）。
【００７６】
Ｓ１１２０３では、署名検証処理部５１１は、ディジタル署名付きメッセージに付されたアドレスにより特定されるディジタル署名生成者側装置１に、署名ログテーブル２２３５に記録された全ての、あるいは部分的な署名ログデータ２２３６（署名ログリストと称する）の送信を要求し（Ｓ１１２０３）、当該ディジタル署名生成者側装置１から署名ログリストが送られてくるのを待つ（Ｓ１１２０４）。
【００７７】
署名検証処理部５１１は、ディジタル署名付きメッセージに対し第２段階の検証を行う。具体的には、ディジタル署名付きメッセージに含まれるディジタル署名およびリンク先データとＳ１１２０１で求めたメッセージのハッシュ値とを含む署名ログデータが、入手した署名ログリストに登録されているか否かを調べる（Ｓ１１２０５）。
【００７８】
登録されている場合（Ｓ１１２０６でＯＫの場合）は、ディジタル署名付きメッセージに対し第３段階の検証を行う。具体的には、Ｓ１１２０４で入手した署名ログリストにおいて、検証対象のディジタル署名付きメッセージに対応する署名ログデータからリンク情報を読み取り、優先順位が高いリンク先を検証対象として以前に登録されている署名ログデータに含まれるメッセージのハッシュ値とディジタル署名を読み出す。たとえば、検証対象のディジタル署名付きメッセージに含まれるディジタル署名およびリンクデータとＳ１１２０１で求めたメッセージのハッシュ値とを含む署名ログデータがＮ番目であり、リンク先から検証先の対象としてＮ−１番目の署名ログデータが決定された場合、Ｎ−１番目の署名ログデータに含まれるメッセージのハッシュ値とディジタル署名を読み出す。署名検証処理部５１１は、１つ前に登録されている署名ログデータに含まれるメッセージのハッシュ値とディジタル署名を、検証対象のディジタル署名付きメッセージに含まれるリンクデータＰＮ−２と比較する。ここで、リンクデータＰＮ−２は、上述したように、２つ前に登録されている署名ログデータに含まれるメッセージのハッシュ値とディジタル署名で構成される（Ｓ１１２０７）。
【００７９】
また、以下のようにして第３段階の検証を行っても構わない。具体的には、Ｓ１１２０４で入手した署名ログリストにおいて、検証対象のディジタル署名付きメッセージに対応する署名ログデータからリンク情報を読み取り、優先順位が高いリンク元を検証対象として以前に登録されている署名ログデータと、該署名ログデータのハッシュ値を求める。例えば、リンク元から検証先の対象としてＮ＋１番目の署名ログデータが決定された場合、Ｎ＋１番目の署名ログデータと、にＮ番目の署名ログデータに含まれるメッセージのハッシュ値とディジタル署名を読み出す。署名検証処理部５１１は、Ｎ＋１番目の署名ログデータとして登録されているリンクデータＰＮと、検証対象のディジタル署名付きメッセージに含まれるメッセージのハッシュ値とディジタル署名を比較する（Ｓ１１２０７）。
【００８０】
リンク先の署名ログデータが破損などの理由で比較が行えない場合、検証対象のディジタル署名付きメッセージに対応する署名ログデータが読み込み不可能と認定し、リンク情報から優先順位が次に高いリンク先にある署名ログデータに含まれるメッセージのハッシュ値とディジタル署名を読み出して処理を続行する。
【００８１】
また、両者が一致しない場合は、検証対象のディジタル署名付きメッセージに対応する署名ログデータが改変したものと認定し、リンク情報から優先順位が次に高いリンク先にある署名ログデータに含まれるメッセージのハッシュ値とディジタル署名を読み出す。
【００８２】
これらの処理を繰り返し、リンク情報にあるリンク先を全て試して読み出すリンク先が無くなった場合は、結果をＮＧと判断し、その結果を検証要求を送信したディジタル署名保管者側装置３とディジタル署名付きメッセージに付されたアドレスにより特定されるディジタル署名生成者側装置１に送信する（Ｓ１１２１６）。両者が一致する場合（Ｓ１１２０６でＯＫの場合）は、Ｓ１１２０９に進む。
【００８３】
なお、上記の実施形態第１段階での検証において、当該ディジタル署名付きメッセージのハッシュ値が、当該ディジタル署名付きメッセージに対応する署名ログデータのリンク元で登録されている署名ログデータに登録されるリンクデータ、または集合体に反映されているか否かを調べることで、署名ログデータの改ざんを検出するようにしてもよい。
【００８４】
Ｓ１１２０９では、Ｓ１１２０４で入手した署名ログリストにおいて、検証対象のディジタル署名付きメッセージに対応する署名ログデータに対するリンク情報を遡ることにより、たどりつく事ができる以前に登録されている署名ログデータに含まれる購入者のアドレスにより特定されるディジタル署名保管者側装置３に対し、ディジタル署名付きメッセージを参考資料として送信すべき旨の要求を、検証要求を送信したディジタル署名生成者側装置１のアドレスを付して行い、当該メッセージが送られてくるのを待つ（Ｓ１１２１０）。
【００８５】
Ｓ１１２０９では、参考資料すべきディジタル署名付きメッセージをディジタル署名保管者側装置３だけでなく、ディジタル署名生成者側装置１や、第３者となるような別の信頼できる装置から購入してもかまわない（Ｓ１１２１０）。
【００８６】
また、該署名ログデータは、一つ前の署名ログデータを常にリンクデータとして登録する様にし、その優先順位を先頭にする方が、署名ログリストにおいて、検証対象のディジタル署名付きメッセージに対応する署名ログデータから、以前に登録されている署名ログデータにたどり着きやすいため、望ましい。
【００８７】
署名検証処理部５１１は、参考資料として入手したディジタル署名付きメッセージに対し第４段階の検証を行う。
【００８８】
具体的には、Ｓ１１２１０で入手したディジタル署名付きメッセージに含まれるメッセージのハッシュ値を求める。そして、Ｓ１１２１０で入手したディジタル署名付きメッセージに含まれるディジタル署名およびリンクデータと当該メッセージのハッシュ値が、Ｓ１１２０４で入手した署名ログリストにおいて、検証対象のディジタル署名付きメッセージに対応する署名ログデータよりも前に登録されている署名ログデータの内容と一致するか否かを調べる（Ｓ１１２１１）。
【００８９】
Ｓ１１２１０で入手したデータが、ディジタル署名付きメッセージに含まれるメッセージのハッシュ値で有る場合は、Ｓ１１２１１へと進む。
【００９０】
両者が一致しない場合（Ｓ１１２１２でＮＧの場合）は、検証対象のディジタル署名付きメッセージに対応する署名ログデータとこのリンク先に記録されている参考資料のディジタル署名付きメッセージに対応する署名ログデータの両方が改ざんされ、その結果、Ｓ１１２０８における第３段階の検証の結果がＯＫとされた可能性があると判断し、その結果を検証要求を送信したディジタル署名保管者側装置３とディジタル署名付きメッセージに付されたアドレスにより特定されるディジタル署名生成者側装置１に送信する（Ｓ１１２１７）。両者が一致する場合（Ｓ１１２１２でＯＫの場合）は、検証対象のディジタル署名付きメッセージは、署名ログリストを提出したディジタル署名生成者側装置１で生成された正当なものであると認証し、その結果を検証要求を送信したディジタル署名保管者側装置３とディジタル署名付きメッセージに付されたアドレスにより特定されるディジタル署名生成者側装置１に送信する（Ｓ１１２１３）。
【００９１】
両者が一致する場合（Ｓ１１２１２でＯＫの場合）において、Ｓ１１２０８の判定（ＮＧ回数など）や、推測される原因（ログ署名データの破損、ログ署名データの改ざんなど）を結果に付けて検証要求を送信したディジタル署名保管者側装置３とディジタル署名付きメッセージに付されたアドレスにより特定されるディジタル署名生成者側装置１に送信してもよい（Ｓ１１２１３）。
【００９２】
ディジタル署名生成者側装置１において、検証依頼処理部１１３は、ディジタル署名検証者側装置５から、署名ログリストの送信要求や検証結果が送られてくるのを待つ（Ｓ１１３０１）。署名ログリストの送信要求が送られてきた場合は、メモリ２２３の署名ログテーブル２２３５に登録されている全ての、あるいは部分的な署名ログデータ２２３６を読み出して、ディジタル署名検証者側装置５に送信する（Ｓ１１３０２）。検証結果が送られてきた場合（Ｓ１１３０３）は、その内容をたとえば表示装置１７に表示する（Ｓ１１３０４）。このように、ディジタル署名生成者側装置１にも検証結果を伝えることで、たとえば、検証結果が、何らかの方法により秘密鍵２２３３を取得した第３者がディジタル署名者になりすまして不当にディジタル署名を生成していることを示している場合に、署名生成のための秘密鍵２２３３を変えるなどの対策を講じることが可能となる。
【００９３】
次に、図９を用いて、ディジタル署名生成者側装置１がディジタル署名検証者側装置５に対して、自ディジタル署名生成者側装置１が生成したディジタル署名付きメッセージの検証を依頼する際の動作について説明する。
【００９４】
ディジタル署名生成者側装置１において、検証依頼処理部１１３は、入力装置１６を介してディジタル署名者より、ディジタル署名付きメッセージの購入者であるディジタル署名保管者側装置３のアドレスが入力され、当該ディジタル署名付きメッセージの検証要求が指示されると、入力されたディジタル署名保管者側装置３のアドレスをディジタル署名検証者側装置５に送信し、検証を依頼する（Ｓ１２００１）。
【００９５】
次に、Ｓ１２００２では、図８に示すフローのＳ１１３０１〜Ｓ１１３０４の処理を実行する。
【００９６】
ディジタル署名検証側装置５において、署名検証処理部５１１は、ディジタル署名生成者側装置１からディジタル署名付きメッセージの検証要求を受信すると、当該要求とともに送られてきたアドレスにより特定されるディジタル署名保管者側装置３に対し、検証対象のディジタル署名付きメッセージの送信要求を、検証要求を送信したディジタル署名生成者側装置１のアドレスを付して行い（Ｓ１２１０１）、当該メッセージが送られてくるのを待つ（Ｓ１２１０２）。Ｓ１２１０３では、図８に示すフローのＳ１１２０１〜Ｓ１１２１７の処理を実行する。
【００９７】
ディジタル署名保管者側装置３において、検証依頼処理部３１３は、ディジタル署名検証者側装置５から検証対象のディジタル署名付きメッセージの送信要求が送られてくるのを待つ（Ｓ１２２０１）。
【００９８】
そして、当該要求に付されたアドレスにより特定されるディジタル署名生成者側装置１から入手したディジタル署名付きメッセージを、たとえば外部記憶装置３３などから読み出して、ディジタル署名検証者側装置５に送信する（Ｓ１２２０３）。
【００９９】
Ｓ１２２０４では、図８に示すフローのＳ１１００２〜Ｓ１１００３の処理を実行する。
【０１００】
また、ディジタル署名検証者側装置５から、参考資料としてのディジタル署名付きメッセージの送信要求が送られてくる場合（Ｓ１２２０１でＮＯの場合のＳ１２２０２の処理）は、検証依頼処理部３１３は、当該要求に付されたアドレスにより特定されるディジタル署名生成者側装置１から入手した参考資料としてのディジタル署名付きメッセージを読み出して、ディジタル署名検証者側装置５に送信する（Ｓ１２２０５）。
【０１０１】
本実施形態によれば、ディジタル署名付きメッセージの正当性をより詳しく調べることが可能となる。
【０１０２】
上記の実施形態第３段階での署名検証において、リスト情報から検証対象のディジタル署名付きメッセージに対応する署名ログデータとリンク先の署名ログデータとの整合性を調べたが、同様のことを繰り返し調べるようにしてもよい。例えば、Ｎ番目の署名ログデータのリンク情報を参照し、そのリンク先のＮ−２番目の署名ログデータとの整合性（連鎖が正しく保たれているか否か）を調べたが、同様にしてＮ−２番目の署名ログデータのリンク情報を参照し、さらに次のリンクデータ（例えば、Ｎ−４番目の署名ログデータ、など）との整合性も調べるようにしてもよい。また、リンク元を繰り返したどり、リンクデータの整合性を調べるようにしても良い。これらを繰り返し、署名ログリストに含まれるより多くの署名ログデータについてリンク前後の連鎖が正しく保たれていることをチェックするように変更することにより、署名ログリストの信頼性の確認をより詳しく行うようにしてもよい。
【０１０３】
なお、上記の実施形態第３段階での署名検証において、署名ログテーブル２２３５に記録されている全ての署名ログデータのうち、検証対象のディジタル署名付きメッセージに対応する署名ログデータを含む任意数の組について、当該署名ログデータに含まれる以前のデータが、署名ログデータに含まれるディジタル署名およびメッセージのハッシュ値と一致するか否かを調べることで署名ログの改ざんを検出するようにしてもよい。
【０１０４】
さらに、上記の実施形態第３段階での署名検証において、署名ログテーブル２２３５に記録されている全ての署名ログデータのうち、検証対象のディジタル署名付きメッセージに対応する署名ログデータをリンク情報で指定している複数の署名ログデータに含まれるディジタル署名に反映されているか否かを調べることで、署名ログの改ざんを検出するようにしてもよい。また、リンク先、リンク元の両方を同時に調べるようにしてもよい。
【０１０５】
本実施形態では、第２段階での署名検証で、検証対象のディジタル署名付きメッセージに含まれる署名データが、署名者から提出された署名ログリストに含まれない場合には検証対象のディジタル署名は偽造されたものであると判定し、含まれた場合には第３段階、第４段階で署名ログリストの正当性を確認していた。これは「偽造である」と判定されることが署名ログリストを提出する署名者にとって不利な結果である場合、署名者が改ざんされた署名ログリストを提出することは考えにくいためである。
【０１０６】
反対に、「正当な署名である」と判定されることが署名ログリストを提出する署名者にとって不利な結果であるような場合には、第２段階での署名検証で、検証対象の署名データが、提出された署名ログリストに含まれていた場合に、正当なものであると判定し、含まれていなかった場合には、第３段階、第４段階で署名ログリストの正当性を確認するようにしてもよい。
【０１０７】
あるいは、Ｓ１１２０４で署名ログリストを受信した後に、まず署名ログリストの正当性を確認し、その後、検証対象の署名データが、正当性が確認された署名ログリストにあれば、正当な署名であると判定するようにしてもよい。
【０１０８】
署名者が、データの破壊等何らかの理由で、署名ログリストを部分的に検証者に提出した場合には、一般的には、署名ログリストとして提出されてきた情報の全てを信頼することはできないが、以下に示す方法に従えば、送られてきた情報のうち、信頼できる署名ログを抽出することができる。
【０１０９】
ディジタル署名検証側装置５においては、提出されてきた署名ログリストに含まれる署名ログデータのうち、署名者自身が制御できない領域に対応する署名が存在する証拠があるものは信頼できる署名ログデータと見なすことができる。
【０１１０】
例えば、メモリ２２３領域に署名ログデータ２２３６として保存された署名は、署名者が署名生成をした時に、自動的に書き込まれる。この領域が書き換えや消去ができないように設定されていた場合、署名者自身によっても制御できない（改ざんできない）。したがって、メモリ２２３領域に保存された署名に対応するログは信頼できると見なしてよい。
【０１１１】
同様に、署名保管者側装置９等の信頼できる第３者に保存されている署名も、署名者自身によっても制御できないため、この署名に対応する署名ログデータは信頼できると見なせる。
【０１１２】
また、署名検証者による署名検証が行われるより以前のある時点、例えば署名者により生成された直後に、新聞・放送等により公開され、不特定多数によって知られていた署名も、その時点以降に署名者により当該署名が存在しなかったことにすることは非常に困難であり、署名者自身によっても制御できないため、この署名に対応する署名ログデータは信頼できると見なせる。
【０１１３】
利害関係のない他の購入者などが署名を（例えば署名ログデータとして）所有している場合も同様に信頼できる署名ログと見なすことができる。
【０１１４】
ディジタル署名生成者側装置１が、ディジタル署名を生成する際に、必要となるリンクデータをディジタル署名保管者側装置３が持っている場合、ディジタル署名生成者側装置１はディジタル署名保管者側装置３に該ディジタル署名の生成に必要となるリンク先の署名ログデータ（あるいはそのハッシュ値）の送信を要求し、要求を受け付けたディジタル署名保管者側装置３は要求された署名ログデータ（あるいはそのハッシュ値）をディジタル署名生成者側装置１に返す。ディジタル署名生成者側装置１は受け付けた署名ログデータの検証を行い、ＯＫの場合、それを受け付ける。ＮＧの場合、再びリンク先の署名ログデータの要求を出す（ただし、署名ログデータのハッシュ値が送られてきた場合、検証は行なわない。）。
【０１１５】
さらに、複数の署名ログデータをまとめてディジタル署名保管者側装置３の管理する署名ログリストへ登録することにしてもよい。この場合、さらに、署名ログリストへの登録を行った旨、メッセージを作成し、このメッセージに対し署名生成を行うようにして、自らの署名ログリスト内に、署名ログリストへの登録を行った事実を反映するようにしてもよい。
【０１１６】
上記の各実施形態とは異なり、署名ログテーブル２２３５を格納する記憶装置の容量に余裕がある場合などに、メッセージそのものを署名ログデータ２２３６に含めるようにしてもよい。
【０１１７】
上記の各実施形態とは異なり、ディジタル署名生成者側装置１で行うべき全ての処理を電子計算機２１内で行うようにしてもよい。
【０１１８】
本発明には、上記の各実施形態とは異なり、ディジタル署名と、メッセージと、リンク情報と、ディジタル署名者が所有する秘密鍵と対の公開鍵を用いて、前記ディジタル署名が前記メッセージに対してなされたものであるか否かを認証することが可能な、様々な署名方法を適用できる。
【０１１９】
【発明の効果】
以上説明したように、本発明によれば、ログテーブルの一部が失われた場合、ログデータの検証時間を短縮したい場合、等の事態にもログデータをたどったディジタル署名の検証を行うことができるディジタル署名技術を提供することができる。
【図面の簡単な説明】
【図１】本発明の第１実施形態が適用されたシステムの概略図である。
【図２】図１に示すディジタル署名生成者側装置１、ディジタル署名保管者側装置３、ディジタル署名検証者側装置５の概略構成図である。
【図３】図２に示す署名処理装置２２の概略構成図である。
【図４】本発明の第１実施形態において、ディジタル署名保管者側装置３がディジタル署名生成者側装置１に対して、ディジタル署名付きメッセージの生成を要求する際の動作を説明するためのフロー図である。
【図５】本発明の第１実施形態において、リンクルール２２３２に格納されるデータの構成を説明するための図である。
【図６】本発明の第１実施形態において、署名ログデータ２２３６に格納されるリンク情報のデータの構成を説明するための図である。
【図７】本発明の第１実施形態において、署名ログテーブル２２３５に格納されるデータの構成を説明するための図である。
【図８】本発明の第１実施形態において、ディジタル署名保管者側装置３がディジタル署名検証者側装置５に対して、ディジタル署名生成者側装置１から入手したディジタル署名付きメッセージの検証を依頼する際の動作を説明するためのフロー図である。
【図９】本発明の第１実施形態において、ディジタル署名生成者側装置１がディジタル署名検証者側装置５に対して、自ディジタル署名生成者側装置１が生成したディジタル署名付きメッセージの検証を依頼する際の動作を説明するためのフロー図である。
【符号の説明】
１…ディジタル署名者側装置、３…ディジタル署名保管者側装置、５…ディジタル署名検証者側装置、１０…ネットワーク、１１，３１，５１…中央処理装置（ＣＰＵ）、１２，３２，５２…メモリ、１３，３３，５３…記憶装置、１４，３４，５４…読取り装置、１５，３５，５５…記憶媒体、１６，３６，５６…入力装置、１７，３７，５７…表示装置、１８，３８，５８…通信処理装置、１９…認証装置、２０，４０，６０…インターフェース、２１，４１，６１…電子計算機、２２…署名処理装置、２３…ＩＣカード、１１１…収集依頼処理部、１１２…署名付きメッセージ作成処理部、１１３…検証依頼処理部、１３１…収集依頼プログラム、１３２…署名付きメッセージ作成プログラム、１３３…検証依頼プログラム、１３４…署名生成プログラム、１３５…署名情報入手プログラム、２２１…中央処理装置（ＣＰＵ）、２２２…メモリ、２２３…記憶装置、２２４…Ｉ／Ｏ、３１１…署名情報収集処理部、３１２…署名付きメッセージ入手処理部、３１３…検証依頼処理部、３３１…署名情報収集プログラム、３３２…署名付きメッセージ入手プログラム、３３３…検証依頼プログラム、５１１…署名検証処理部、５３１…署名検証プログラム、２２１１…署名生成処理部、２２３１…署名生成プログラム、２２３２…リンクルール、２２３３…秘密鍵、２２３４…公開鍵証明書、２２３５…署名ログテーブル、２２３６…署名ログデータ。
【図１】
2005012490.tif 000003
【図２】
2005012490.tif 000004
【図３】
2005012490.tif 000005
【図４】
2005012490.tif 000006
【図５】
2005012490.tif 000007
【図６】
2005012490.tif 000008
【図７】
2005012490.tif 000009
【図８】
2005012490.tif 000010
【図９】
2005012490.tif 000011