(57)【要約】【課題】時刻の改ざんが困難な時刻証明を行うことのできる時刻証拠生成装置を提供する。【解決手段】時刻証拠生成装置は、乱数を生成する乱数生成部１４と、時刻情報を配信する時刻生成部１３と、乱数生成部１４から乱数を取得してこれを与えられたリンク値とともに保持し、時刻生成部１３から時刻情報が配信されると、該配信された時刻情報とともに上記保持したリンク値および乱数を出力する初期時刻証拠情報格納部１２と、この出力された時刻情報、リンク値および乱数から時刻証拠値を生成するハッシュ値生成部１５と、この生成された時刻証拠値を上記リンク値として供給するとともに、外部装置２からの配信要求に応じて、生成された最新の時刻証拠値を外部装置２に送信する時刻証拠値入出力部１７と、生成された時刻証拠値をその生成に使用した乱数および時刻情報とともに格納する時刻証拠格納部１８とを有する。【選択図】  図１
2004229067.tif 000002
【特許請求の範囲】
【請求項１】
乱数を生成する乱数生成手段と、
一定または不定の間隔で現在の時刻情報を配信する時刻生成手段と、
前記乱数生成手段から乱数を取得してこれを与えられたリンク値とともに保持し、前記時刻生成手段から時刻情報が配信されると、該配信された時刻情報とともに前記保持したリンク値および乱数を出力する初期時刻証拠情報格納手段と、
前記初期時刻証拠情報格納手段から出力された時刻情報、リンク値および乱数から時刻証拠値であるハッシュ値を生成するハッシュ値生成手段と、
前記ハッシュ値生成手段で生成された時刻証拠値を前記リンク値として前記初期時刻証拠情報格納手段に供給するとともに、外部装置からの配信要求に応じて、前記ハッシュ値生成手段で生成された最新の時刻証拠値を前記外部装置に送信する時刻証拠値入出力手段と、
前記ハッシュ値生成手段で生成された時刻証拠値をその生成に使用した乱数および時刻情報とともに格納する時刻証拠格納手段とを有することを特徴とする時刻証拠生成装置。
【請求項２】
電子署名を行う電子署名生成手段をさらに有し、
前記時刻証拠値入出力手段は、前記外部装置から時刻保証をしたいデータを含む時刻保証要求情報を受信すると、該受信した時刻保証要求情報を前記初期時刻証拠情報格納手段に供給し、
前記初期時刻証拠情報格納手段は、前記時刻保証要求情報が供給されると、前記乱数生成手段から乱数を取得してこれを与えられた前記リンク値および前記供給された時刻保証要求情報とともに出力し、
前記ハッシュ値生成手段は、前記初期時刻証拠情報格納手段から出力されたリンク値、乱数および時刻保証要求情報から時刻証拠値を生成し、該生成した時刻証拠値をその生成に使用した乱数とともに前記時刻証拠値入出力手段に供給し、
前記時刻証拠値入出力手段は、前記ハッシュ値生成手段から供給された時刻証拠値および乱数を前記時刻保証要求情報とともに前記電子署名生成手段に供給し、
前記電子署名生成手段は、前記時刻証拠値、乱数および時刻保証要求情報が供給されると、前記時刻生成手段から時刻情報を取得するとともに、該取得した時刻情報、前記供給された時刻証拠値、乱数および時刻保証要求情報のそれぞれに電子署名を付与して時刻保証情報を生成し、
前記時刻証拠値入出力手段は、前記電子署名生成手段で生成された時刻保証情報を前記外部装置に送信するとともに、前記ハッシュ値生成手段から供給された時刻証拠値および乱数を前記電子署名生成手段が取得した時刻情報とともに前記時刻証拠格納手段に供給して格納させることを特徴とする請求項１に記載の時刻証拠生成装置。
【請求項３】
前記電子署名生成手段は、所定の外部情報を管理しており、該所定の外部情報が更新されると、該更新された外部情報を前記時刻証拠値入出力手段に供給し、
前記時刻証拠値入出力手段は、前記更新された外部情報を前記初期時刻証拠情報格納手段に供給し、
前記初期時刻証拠情報格納手段は、前記更新された外部情報が供給されると、前記乱数生成手段から乱数を取得してこれを前記リンク値および更新された外部情報とともに出力し、
前記ハッシュ値生成手段は、前記初期時刻証拠情報格納手段から出力されたリンク値、乱数および更新された外部情報から時刻証拠値を生成し、該生成した時刻証拠値をその生成に使用した乱数とともに前記時刻証拠値入出力手段に供給し、
前記時刻証拠値入出力手段は、前記ハッシュ値生成手段から供給された時刻証拠値および乱数を前記更新された外部情報とともに前記時刻証拠格納手段に供給して格納させることを特徴とする請求項２に記載の時刻証拠生成装置。
【請求項４】
電子署名を行うとともに所定の外部情報を管理する電子署名生成手段をさらに有し、
前記時刻証拠値入出力手段は、前記外部装置から時刻保証をしたいデータを含む時刻保証要求情報を受け取ると、該受け取った時刻保証要求情報を前記電子署名生成手段に供給し、
前記電子署名生成手段は、前記時刻証拠値入出力手段から供給された時刻保証要求情報を前記所定の外部情報とともに前記初期時刻証拠情報格納手段に供給し、
前記初期時刻証拠情報格納手段は、前記時刻保証要求情報および所定の外部情報が供給されると、前記乱数生成手段から乱数を取得してこれを与えられた前記リンク値、前記供給された時刻保証要求情報および所定の外部情報とともに出力し、
前記ハッシュ値生成手段は、前記初期時刻証拠情報格納手段から出力されたリンク値、乱数、時刻保証要求情報および所定の外部情報から時刻証拠値を生成し、該生成した時刻証拠値をその生成に使用した乱数とともに前記電子署名生成手段に供給し、
前記電子署名生成手段は、前記時刻証拠値および乱数が供給されると、前記時刻生成手段から時刻情報を取得するとともに、該取得した時刻情報、前記供給された時刻証拠値および乱数、前記時刻証拠値入出力手段から供給された時刻保証要求情報のそれぞれに電子署名を付与して時刻保証情報を生成し、
前記時刻証拠値入出力手段は、前記電子署名生成手段で生成された時刻保証情報を前記外部装置に送信するとともに、前記ハッシュ値生成手段で生成された時刻証拠値およびその生成に使用した乱数を前記電子署名生成手段が取得した時刻情報とともに前記時刻証拠格納手段に供給して格納させることを特徴とする請求項１に記載の時刻証拠生成装置。
【請求項５】
前記時刻証拠値入出力手段は、前記外部装置から前記送信した時刻保証情報を受信すると、該受信した時刻保証情報を前記時刻証拠格納手段に供給してその生成時刻検証を要求し、
前記時刻証拠格納手段は、前記時刻証拠値入出力手段から受け取った時刻保証情報からそこに含まれている時刻証拠値および時刻情報を取得し、該取得した時刻証拠値を検索キーとして用いてこれまでに格納した情報から該当情報を検索するとともに、該検索した該当情報に基づいて前記取得した時刻情報の整合性を確認し、該確認結果を前記時刻証拠値入出力手段に供給し、
前記時刻証拠値入出力手段は、前記時刻証拠格納手段から供給された確認結果を前記生成時刻検証の結果として前記外部装置に送信することを特徴とする請求項２から４のいずれか１項に記載の時刻証拠生成装置。
【請求項６】
乱数を取得してこれを与えられたリンク値とともに保持する第１のステップと、
現在の時刻を表す時刻情報を配信する第２のステップと、
前記第１のステップで保持したリンク値および乱数と前記第２のステップで配信された時刻情報とから時刻証拠値を生成する第３のステップと、
前記第３のステップで生成した時刻証拠値を前記リンク値として与えて前記第１から第３のステップを繰り返す第４のステップと、
前記第１から第４のステップで生成された時刻証拠値をその生成に使用した乱数および時刻情報とともに格納する第５のステップと、
外部装置からの配信要求に応じて、前記第１から第４のステップで生成された最新の時刻証拠値を前記外部装置に送信する第６のステップとを含むことを特徴とする時刻証拠生成方法。
【請求項７】
前記外部装置から時刻保証をしたいデータを含む時刻保証要求情報を受信すると、乱数を取得してこれを与えられた前記リンク値および前記受信した時刻保証要求情報とともに保持するステップと、
前記保持したリンク値、乱数および時刻保証要求情報から時刻証拠値を生成するステップと、
現在の時刻情報を取得するステップと、
前記生成した時刻証拠値とその生成に使用した乱数および時刻保証要求情報と前記取得した現在の時刻情報のそれぞれに電子署名を付与して時刻保証情報を生成するステップと、
前記生成した時刻保証情報を前記外部装置に送信するステップと、
前記生成した時刻証拠値をその生成に使用した乱数および前記取得した現在の時刻情報とともに格納するステップとをさらに含むことを特徴とする請求項６に記載の時刻証拠生成方法。
【請求項８】
所定の外部情報を管理するステップと、
前記所定の外部情報が更新されると、乱数を取得してこれを与えられた前記リンク値および前記更新された外部情報とともに保持するステップと、
前記保持したリンク値、乱数および外部情報から時刻証拠値を生成するステップと、
前記生成した時刻証拠値をその生成に使用した乱数および外部情報とともに格納するステップとをさらに含むことを特徴とする請求項６または７に記載の時刻証拠生成方法。
【請求項９】
所定の外部情報を管理するステップと、
前記外部装置から時刻保証をしたいデータを含む時刻保証要求情報を受信すると、乱数を取得してこれを与えられた前記リンク値、前記受信した時刻保証要求情報および所定の外部情報とともに保持するステップと、
前記保持したリンク値、乱数、時刻保証要求情報および外部情報から時刻証拠値を生成するステップと、
現在の時刻情報を取得するステップと、
前記生成した時刻証拠値とその生成に使用した乱数および時刻保証要求情報と前記取得した現在の時刻情報のそれぞれに電子署名を付与して時刻保証情報を生成するステップと、
前記生成した時刻保証情報を前記外部装置に送信するステップと、
前記生成した時刻証拠値をその生成に使用した乱数および時刻保証要求情報ならびに前記取得した現在の時刻情報とともに格納するステップとをさらに含むことを特徴とする請求項６に記載の時刻証拠生成方法。
【請求項１０】
前記外部装置から前記送信した時刻保証情報を受信すると、該受信した時刻保証情報からそこに含まれている時刻証拠値および時刻情報を取得するステップと、
前記時刻保証情報から取得した時刻証拠値を検索キーとして用いてこれまでに格納した情報から該当情報を検索するステップと、
前記検索した該当情報に基づいて前記時刻保証情報から取得した時刻情報の整合性を確認し、該確認結果を前記外部装置に送信するステップとをさらに含むことを特徴とする請求項７から９のいずれか１項に記載の時刻証拠生成方法。
【請求項１１】
乱数を取得してこれを与えられたリンク値とともに保持する第１の処理と、
現在の時刻を表す時刻情報を配信する第２の処理と、
前記第１の処理で保持したリンク値および乱数と前記第２の処理で配信された時刻情報とから時刻証拠値を生成する第３の処理と、
前記第３の処理で生成した時刻証拠値を前記リンク値として与えて前記第１から第３の処理を繰り返す第４の処理と、
前記第１から第４の処理で生成された時刻証拠値をその生成に使用した乱数および時刻情報とともに格納する第５の処理と、
外部装置からの配信要求に応じて、前記第１から第４の処理で生成された最新の時刻証拠値を前記外部装置に送信する第６の処理とをコンピュータに実行させるプログラム。
【請求項１２】
前記外部装置から時刻保証をしたいデータを含む時刻保証要求情報を受信すると、乱数を取得してこれを与えられた前記リンク値および前記受信した時刻保証要求情報とともに保持する処理と、
前記保持したリンク値、乱数および時刻保証要求情報から時刻証拠値を生成する処理と、
現在の時刻情報を取得する処理と、
前記生成した時刻証拠値とその生成に使用した乱数および時刻保証要求情報と前記取得した現在の時刻情報のそれぞれに電子署名を付与して時刻保証情報を生成する処理と、
前記生成した時刻保証情報を前記外部装置に送信する処理と、
前記生成した時刻証拠値をその生成に使用した乱数および前記取得した現在の時刻情報とともに格納する処理とをさらに前記コンピュータに実行させることを特徴とする請求項１１に記載のプログラム。
【請求項１３】
所定の外部情報を管理する処理と、
前記所定の外部情報が更新されると、乱数を取得してこれを与えられた前記リンク値および前記更新された外部情報とともに保持する処理と、
前記保持したリンク値、乱数および外部情報から時刻証拠値を生成する処理と、
前記生成した時刻証拠値をその生成に使用した乱数および外部情報とともに格納する処理とをさらに前記コンピュータに実行させることを特徴とする請求項１１または１２に記載のプログラム。
【請求項１４】
所定の外部情報を管理する処理と、
前記外部装置から時刻保証をしたいデータを含む時刻保証要求情報を受信すると、乱数を取得してこれを与えられた前記リンク値、前記受信した時刻保証要求情報および所定の外部情報とともに保持する処理と、
前記保持したリンク値、乱数、時刻保証要求情報および外部情報から時刻証拠値を生成する処理と、
現在の時刻情報を取得する処理と、
前記生成した時刻証拠値とその生成に使用した乱数および時刻保証要求情報と前記取得した現在の時刻情報のそれぞれに電子署名を付与して時刻保証情報を生成する処理と、
前記生成した時刻保証情報を前記外部装置に送信する処理と、
前記生成した時刻証拠値をその生成に使用した乱数および時刻保証要求情報ならびに前記取得した現在の時刻情報とともに格納する処理とをさらに前記コンピュータに実行させることを特徴とする請求項１０に記載のプログラム。
【請求項１５】
前記外部装置から前記送信した時刻保証情報を受信すると、該受信した時刻保証情報からそこに含まれている時刻証拠値および時刻情報を取得する処理と、
前記時刻保証情報から取得した時刻証拠値を検索キーとして用いてこれまでに格納した情報から該当情報を検索する処理と、
前記検索した該当情報に基づいて前記時刻保証情報から取得した時刻情報の整合性を確認し、該確認結果を前記外部装置に送信する処理とをさらに前記コンピュータに実行させることを特徴とする請求項１２から１４のいずれか１項に記載のプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、時刻の正確さを証明する時刻証明を行う装置および方法に関する。
【０００２】
【従来の技術】
電子的な商取引、申請、ドキュメント管理などを行うシステムでは、誰が、いつ、どのような電子文書（デジタルデータ）を取り扱ったかを証明することが重要である。「誰が」および「どのような電子文書を」については、既に、公開鍵認証基板（ＰＫＩ）を利用した電子署名による証明が実用化されつつある。一方、「いつ」については、タイムスタンプ局を利用した時刻証明があるが、時刻の改ざんなどの問題がある。このため、時刻の改ざんを防止する種々の提案がなされている。
【０００３】
時刻の改ざんを防止することのできる装置として、例えば特許文献１に記載されたような装置がある。この装置は、事前に予期できない事象（例えば株価情報や気象情報のような時々刻々と変化する情報）についての公開情報を提供する情報公開機関に接続されるものであって、時刻証明の対象となる対象情報を受信する情報受信手段と、情報公開機関から公開情報を受信する公開情報受信手段と、受信した対象情報および公開情報を連結して連結データを生成するデータ連結手段と、連結データに電子署名を付加する電子署名手段と、連結データおよび電子署名を含む時刻証明情報を出力する時刻証明情報出力手段とを有する。この構成によれば、事前に予期できない事象を利用しているため、時刻証明情報の生成時（時刻ｔ）に、偽って時刻ｔより後の時刻ｔ１を用いる、といった時刻の改ざんを行うことはできない。
【０００４】
【特許文献１】
特開２００２−２１５８２５号公報
【０００５】
【発明が解決しようとする課題】
しかしながら、特許文献１に記載の装置では、装置側で時刻証明情報の生成時（時刻ｔ）に、偽って時刻ｔより前の時刻ｔ２を用いる、といった時刻の改ざんが行われる可能性がある。
【０００６】
また、生成される時刻証明情報は、対象情報と公開情報を連結した連結データに単に電子署名を付与しただけであるため、時刻証明情報を取得した者が、その取得した時刻証明情報の時刻の改ざんを容易に行うことができる。
【０００７】
本発明の目的は、上記問題を解決し、時刻の改ざんが困難な時刻証明を行うことのできる、時刻証拠生成装置、時刻証拠生成方法およびプログラムを提供することにある。
【０００８】
【課題を解決するための手段】
上記目的を達成するため、本発明の時刻証拠生成装置は、乱数を生成する乱数生成手段と、一定または不定の間隔で現在の時刻情報を配信する時刻生成手段と、前記乱数生成手段から乱数を取得してこれを与えられたリンク値とともに保持し、前記時刻生成手段から時刻情報が配信されると、該配信された時刻情報とともに前記保持したリンク値および乱数を出力する初期時刻証拠情報格納手段と、前記初期時刻証拠情報格納手段から出力された時刻情報、リンク値および乱数から時刻証拠値であるハッシュ値を生成するハッシュ値生成手段と、前記ハッシュ値生成手段で生成された時刻証拠値を前記リンク値として前記初期時刻証拠情報格納手段に供給するとともに、外部装置からの配信要求に応じて、前記ハッシュ値生成手段で生成された最新の時刻証拠値を前記外部装置に送信する時刻証拠値入出力手段と、前記ハッシュ値生成手段で生成された時刻証拠値をその生成に使用した乱数および時刻情報とともに格納する時刻証拠格納手段とを有することを特徴とする。
【０００９】
本発明の時刻証拠生成方法は、乱数を取得してこれを与えられたリンク値とともに保持する第１のステップと、現在の時刻を表す情報を配信する第２のステップと、前記第１のステップで保持したリンク値および乱数と前記第２のステップで配信された時刻情報とから時刻証拠値を生成する第３のステップと、前記３のステップで生成した時刻証拠値を前記リンク値として与えて前記第１から第３のステップを繰り返す第４のステップと、前記第１から第４のステップで生成された時刻証拠値をその生成に使用した乱数および時刻情報とともに格納する第５のステップと、外部装置からの配信要求に応じて、前記第１から第４のステップで生成された最新の時刻証拠値を前記外部装置に送信する第６のステップとを含むことを特徴とする。
【００１０】
本発明のプログラムは、乱数を取得してこれを与えられたリンク値とともに保持する第１の処理と、現在の時刻を表す情報を配信する第２の処理と、前記第１の処理で保持したリンク値および乱数と前記第２の処理で配信された時刻情報とから時刻証拠値を生成する第３の処理と、前記３の処理で生成した時刻証拠値を前記リンク値として与えて前記第１から第３の処理を繰り返す第４の処理と、前記第１から第４の処理で生成された時刻証拠値をその生成に使用した乱数および時刻情報とともに格納する第５の処理と、外部装置からの配信要求に応じて、前記第１から第４の処理で生成された最新の時刻証拠値を前記外部装置に送信する第６の処理とをコンピュータに実行させることを特徴とする。
【００１１】
上述したとおりの本発明の時刻証拠生成装置、時刻証拠生成およびプログラムによれば、時間の流れを時刻証拠値で表現しており、時間の流れにおけるある時刻を時刻証拠値により証明することができる。時刻証拠値はその生成時刻（時刻情報）とともに格納されるようになっており、これにより、時刻証拠値がいつ生成されたものであるかを外部に示すことができる。時刻証拠値の生成には乱数を用いるため、第三者は、時刻証拠値が生成される前にその時刻証拠値を予測して使用することは困難である。さらに、時刻証拠値の生成には、乱数の他に、前回の処理で生成された時刻証拠値がリンク値として使用されるため、生成された時刻証拠値を後から改ざんすることは困難である。
【００１２】
【発明の実施の形態】
次に、本発明の実施形態について図面を参照して説明する。
【００１３】
（実施形態１）
図１は、本発明の第１の実施形態である時刻証拠生成装置の概略構成を示すブロック図である。
【００１４】
図１に示す時刻証拠生成装置１は、サーバに代表されるコンピュータ装置であって、利用者によって使用される外部装置２に対して利用時刻を証明する。外部装置２はパーソナルコンピュータや携帯端末またはサーバなどのコンピュータ装置であって、時刻証拠生成装置１と相互通信可能に接続される。
【００１５】
時刻証拠生成装置１の主要部は、操作部１１、初期時刻証拠情報格納部１２、時刻生成部１３、乱数生成部１４、ハッシュ値生成部１５、電子署名生成部１６、時刻証拠値入出力部１７、および時刻証拠格納部１８からなる。
【００１６】
操作部１１は、管理者（例えば時刻認証事業者）が時刻証拠生成装置１のパラメータ設定や動作制御を行うためのものである。この操作部１１にて管理者が所定の入力操作を行うことによって、時刻証拠生成装置１における時刻証拠値の生成が開始される。
【００１７】
初期時刻証拠情報格納部１２は、リンク値や乱数など、時刻証明を行うための時刻証拠値の生成に必要な初期情報を格納するものである。ここで、リンク値とは初期値または最新の時刻証拠値である。初期値は、１回目の時刻証拠値の生成処理にのみに使用するものであって、任意に設定可能である。この初期値は、デフォルト値としてもよく、また、設定しないようにすることもできる。最新の時刻証拠値は、２回目以降の時刻証拠値の生成処理において使用されるものであって、前回の時刻証拠値の生成処理において生成された時刻証拠値である。例えば、２回目の時刻証拠値の生成処理では、１回目の時刻証拠値の生成処理において生成された時刻証拠値が最新の時刻証拠値として用いられる。
【００１８】
時刻生成部１３は、現在の時刻を生成するものであって、管理者が操作部１１で設定した値に応じた一定の間隔で時刻情報を初期時刻証拠情報格納部１２に供給する。また、時刻生成部１３は、電子署名生成部１６からの要求に応じて時刻情報を電子署名生成部１６に返す。
【００１９】
乱数生成部１４は、所定のビット長の乱数を生成する。所定のビット長とは、第三者が事前に予測できない程度の長いビット長である。管理者は、操作部１１にてそのビット長を任意に設定することができる。乱数生成部１４にて生成された乱数は、初期時刻証拠情報格納部１２に供給される。
【００２０】
ハッシュ値生成部１５は、１種類以上の既知のハッシュ関数を持っており、受信したデータ（リンク値、乱数、時刻情報など）からハッシュ値を生成する。管理者は、操作部１１にて、ハッシュ値生成部１５で使用されるハッシュ関数を任意に設定することができる。ハッシュ関数の設定では、複数のハッシュ関数を組み合わせることもできる。ハッシュ値生成部１５で生成されたハッシュ値は時刻証拠値として時刻証拠値入出力部１７に供給される。
【００２１】
電子署名生成部１６は、受信したデータ（時刻証拠値、乱数、時刻情報など）に電子署名を付与する他、電子署名を付与するために使用する鍵の証明書や証明書廃棄リストの管理も行う。管理者は、操作部１１にて、電子署名生成部１６で使用される署名アルゴリズムや鍵を指定することができる。証明書や証明書廃棄リストは外部情報であって、既存の認証局（ＣＡ）から発行されたものである。
【００２２】
時刻証拠値入出力部１７は、ハッシュ値生成部１５から供給された時刻証拠値を初期時刻証拠情報格納部１２、時刻証拠格納部１８および外部装置２にそれぞれ供給する。また、時刻証拠値出力部１７は、外部装置２から時刻保証要求情報を受け付け、時刻保証情報を外部装置２に返す。さらに、時刻証拠値入出力部１７は、外部装置２から時刻保証情報の正当性検証の要求を受けると、検証要求のあった時刻保証情報を時刻証拠格納部１８へ供給するとともに、時刻証拠格納部１８で検証した結果を外部装置２に返す。時刻保証要求情報は、外部装置２にて取り扱われる、時刻保証を必要とするデータであって、時刻証拠生成装置１内の時間の流れのある時点に存在することを保証したいデータである。時刻保証情報は、時刻証拠生成装置１内の時間の流れのある時点に情報保証要求情報が存在したことを保証するデータである。
【００２３】
時刻証拠格納部１８は、時刻証拠入出力部１７から受け取った時刻証拠値やその関連情報を格納する。また、時刻証拠格納部１８は、時刻証拠入出力部１７から時刻保証情報を受け取ると、その時刻保証情報の正当性を検証し、その結果を時刻証拠入出力部１７に返す。
【００２４】
外部装置２は、時刻証拠生成装置１に時刻証拠値の配信要求を行って時刻証拠値入出力部１７から最新の時刻証拠値を取得することができる。また、外部装置２は、時刻保証要求情報を時刻証拠値入出力部１７に送信して時刻保証情報を時刻証拠値入出力部１７から受け取ることができる。さらに、外部装置２は、時刻証拠値入出力部１７に対して、受け取った時刻保証情報の正当性検証を要求し、その検証結果を時刻証拠値入出力部１７から受け取ることができる。
【００２５】
次に、本実施形態の時刻証拠生成装置の動作について説明する。
【００２６】
（ａ）まず、一定時間間隔に時刻証拠値を生成する場合の動作（基本動作）について説明する。
【００２７】
（ａ−１）管理者が操作部１１にて時刻証拠値の生成を開始するための入力操作を行うと、操作部１１から時刻証拠値の生成を開始する旨の要求が初期時刻証拠情報格納部１２に入力される。リンク値として初期値の設定およびハッシュ関数の指定を行う場合は、この入力操作時に一緒に行う。
【００２８】
（ａ−２）初期時刻証拠情報格納部１２は、操作部１１から時刻証拠値の生成要求を受けると、乱数生成部１４に対して乱数の生成を要求する。
【００２９】
（ａ−３）乱数生成部１４は、初期時刻証拠情報格納部１２からの要求に応じて、乱数を生成して初期時刻証拠情報格納部１２に供給する。
【００３０】
（ａ−４）初期時刻証拠情報格納部１２は、乱数生成部１４から乱数を取得すると、時刻生成部１３からの時刻の配信を待つ。時刻生成部１３からの時刻の配信は一定間隔で行われている。時刻の配信を受けると、初期時刻証拠情報格納部１２は、リンク値、乱数、配信された時刻（時刻情報）をハッシュ値生成部１５に送信する。
【００３１】
（ａ−５）ハッシュ値生成部１５は、初期時刻証拠情報格納部１２から供給されたリンク値、乱数、時刻情報からハッシュ値を生成する。このハッシュ値が時刻証拠値である。
【００３２】
（ａ−６）ハッシュ値生成部１５は、生成した時刻証拠値をその生成に使用した乱数および時刻情報とともに時刻証拠値入出力部１７に供給する。
【００３３】
（ａ−７）時刻証拠値入出力部１７は、ハッシュ値生成部１５から供給された時刻証拠値、乱数および時刻情報を時刻証拠格納部１８に供給するとともに、時刻証拠値をリンク値として初期時刻証拠情報格納部１２に供給する。
【００３４】
（ａ−８）  時刻証拠格納部１８は、時刻証拠値入出力部１７から供給された時刻証拠値、乱数、時刻情報を格納する。
【００３５】
時刻証拠生成装置１では、上述した（ａ−２）〜（ａ−８）の時刻証拠生成処理が繰り返されることで、時刻証拠値が一定間隔で生成されて時刻証拠格納部１８に格納される。２回目以降の時刻証拠生成処理の（ａ−４）の処理では、初期時刻証拠情報格納部１２は、前回の時刻証拠生成処理の（ａ−７）の処理で時刻証拠値入出力部１７から供給された時刻証拠値をリンク値として使用する。時刻証拠値入出力部１７は、外部装置２から時刻配信の要求を受けた場合は、一定間隔で生成される時刻証拠値のうちの最新の時刻証拠値を外部装置２に送信する。
【００３６】
（ｂ）次に、外部装置２から送られてきたデータ（時刻保証要求情報）を含めた時刻証拠値の生成、および時刻保証情報の生成の動作を説明する。以下の動作は、上述した基本動作（（ａ−２）〜（ａ−８）の処理の繰り返し）の実行中に行われる。
【００３７】
（ｂ−１）外部装置２が時刻保証要求情報を時刻証拠値入出力部１７に送信する。
【００３８】
（ｂ−２）時刻証拠値入出力部１７は、外部装置２から受信した時刻保証要求情報を初期時刻証拠情報格納部１２に供給する。
【００３９】
（ｂ−３）初期時刻証拠情報格納部１２は、時刻証拠値入出力部１７から時刻保証要求情報が供給されると、乱数生成部１４から乱数を取得する。なお、すでに乱数生成部１４から乱数を取得している状態にある場合はその乱数を使用し、改めて乱数を取得することはしない。
【００４０】
（ｂ−４）初期時刻証拠情報格納部１２は、乱数生成部１４から取得した乱数、時刻証拠値入出力部１７から供給された時刻保証要求情報、およびリンク値をハッシュ値生成部１５に供給する。
【００４１】
（ｂ−５）ハッシュ値生成部１５は、初期時刻証拠情報格納部１２から供給されたリンク値、乱数、時刻保証要求情報からハッシュ値を生成する。このハッシュ値が時刻証拠値である。
【００４２】
（ｂ−６）ハッシュ値生成部１５は、生成した時刻証拠値を乱数および時刻保証要求情報と一緒に時刻証拠値入出力部１７に供給する。
【００４３】
（ｂ−７）時刻証拠値入出力部１７は、ハッシュ値生成部１５から供給された時刻証拠値、乱数、時刻保証要求情報を電子署名生成部１６に供給するとともに、時刻証拠値をリンク値として初期時刻証拠情報格納部１２に供給する。
【００４４】
（ｂ−８）電子署名生成部１６は、時刻証拠値入出力部１７から時刻証拠値、乱数、時刻保証要求情報を受け取ると、時刻生成部１３に対して時刻情報を要求する。
【００４５】
（ｂ−９）時刻生成部１３は、電子署名生成部１６からの要求に応じて、現在の時刻情報を電子署名生成部１６に供給する。
【００４６】
（ｂ−１０）電子署名生成部１６は、時刻生成部１３から供給された現在の時刻情報と時刻証拠値入出力部１７から供給された時刻証拠値、乱数および時刻保証要求情報のそれぞれに電子書名を付与して時刻保証情報を生成するとともに、この生成した時刻保証情報を時刻情報と一緒に時刻証拠値入出力部１７に供給する。
【００４７】
（ｂ−１１）時刻証拠値入出力部１７は、電子署名生成部１６から供給された時刻保証情報を外部装置２に送信するとともに、ハッシュ値生成部１５から供給された時刻証拠値および乱数を電子署名生成部１６から供給された時刻情報と一緒に時刻証拠格納部１８に供給する。
【００４８】
（ｂ−１２）時刻証拠格納部１８は、時刻証拠値入出力部１７から供給された時刻証拠値、乱数および時刻情報を格納する。
【００４９】
（ｃ）次に、電子署名生成部１６が外部情報として管理している証明書および証明書廃棄リストを含んだ時刻証拠値の生成の動作を説明する。以下の動作も、上述した基本動作（（ａ−２）〜（ａ−８）の処理の繰り返し）の実行中に行われる。
【００５０】
（ｃ−１）電子署名生成部１６は、管理している証明書および証明書廃棄リストが更新されると、その更新された証明書と証明書廃棄リストを時刻証拠値入出力部１７に供給する。ここで、証明書および証明書廃棄リストの更新は、例えば管理者が入力操作部１１で証明書および証明書廃棄リストを変更することによって行われる。
【００５１】
（ｃ−２）時刻証拠入出力部１７は、電子署名生成部１６から供給された証明書および証明書廃棄リストを初期時刻証拠情報格納部１２に供給する。
【００５２】
（ｃ−３）初期時刻証拠情報格納部１２は、時刻証拠値入出力部１７から証明書および証明書廃棄リストが供給されると、乱数生成部１４から乱数を取得する。なお、すでに乱数生成部１４から乱数を取得している状態にある場合は、その乱数を使用し、改めて乱数を取得することはしない。
【００５３】
（ｃ−４）初期時刻証拠情報格納部１２は、リンク値、乱数生成部１４から取得した乱数、時刻証拠値入出力部１７から供給された証明書および証明書廃棄リストをハッシュ値生成部１５に供給する。
【００５４】
（ｃ−５）ハッシュ値生成部１５は、初期時刻証拠情報格納部１２から供給されたリンク値、乱数、証明書および証明書廃棄リストからハッシュ値を生成する。このハッシュ値が時刻証拠値である。
【００５５】
（ｃ−６）ハッシュ値生成部１５は、生成した時刻証拠値を乱数、証明書および証明書廃棄リストと一緒に時刻証拠値入出力部１７に供給する。
【００５６】
（ｃ−７）時刻証拠値入出力部１７は、ハッシュ値生成部１５から供給された時刻証拠値、乱数、証明書および証明書廃棄リストを時刻証拠格納部１８に供給するとともに、時刻証拠値をリンク値として初期時刻証拠情報格納部１２に供給する。
【００５７】
（ｃ−８）時刻証拠格納部１８は、時刻証拠値入出力部１７から供給された時刻証拠値、乱数、証明書および証明書廃棄リストを格納する。
【００５８】
（ｄ）次に、外部装置２に送信した時刻保証情報の正当性を検証する動作を説明する。
【００５９】
（ｄ−１）外部装置２は、時刻証拠値入出力部１７から受信した時刻保証情報の生成時刻の検証を行うために、その時刻保証情報を時刻証拠値入出力部１７に送信する。
【００６０】
（ｄ−２）時刻証拠値入出力部１７は、外部装置２から受信した時刻保証情報を時刻証拠格納部１８に供給してその検証を要求する。
【００６１】
（ｄ−３）時刻証拠格納部１８は、時刻証拠値入出力部１７から受け取った時刻保証情報からそこに含まれている時刻証拠値を取得するとともに、その取得した時刻証拠値を検索キーとして用いてこれまでに格納した情報から該当情報を検索する。検索対象があれば、時刻証拠値検証情報として、検索対象の時刻証拠値とその前後の時刻証拠値についてそれぞれ関連情報を取得する。時刻証拠値の関連情報とは、時刻証拠値と共に格納した乱数や時刻情報などである。検索対象がなければ、時刻証拠格納部１８は、検証が失敗した旨の結果を時刻証拠値入出力部１７に送出する。
【００６２】
（ｄ−４）時刻証拠格納部１８は、時刻証拠値検証情報を取得すると、続いて、時刻証拠値入出力部１７から受け取った時刻保証情報に含まれている時刻情報（検証対象の時刻証拠値の生成時刻）と、時刻証拠値検証情報に含まれている時刻情報とを比較して整合性を確認する。この整合性の確認では、例えば検証対象の時刻証拠値の生成時刻がその前後に生成された時刻証拠値の生成時刻の間であるかどうかを確認する。時刻証拠格納部１８は、整合性がとれた場合は、検証に成功した旨の検証結果と時刻証拠値検証情報を時刻証拠値入出力部１７に送出し、整合性がとれなかった場合は、検証に失敗した旨の結果を時刻証拠値入出力部１７に送出する。
【００６３】
（ｄ−５）時刻証拠値入出力部１８は、時刻証拠格納部１８から受け取った検証結果と時刻証拠値検証情報を外部装置２に送信する。また、時刻証拠値入出力部１８は、検証が失敗した旨の結果を受け取った場合は、その結果のみを外部装置２に送信する。時刻証拠値検証情報は、外部装置２にて検証結果取得後に再検証するために利用される。
【００６４】
上述した（ａ）時刻証拠値の生成の基本動作、（ｂ）時刻保証要求情報を含めた時刻証拠値の生成および時刻保証情報の生成の動作、（ｃ）証明書および証明書廃棄リストを含んだ時刻証拠値の生成の動作、（ｄ）時刻保証情報の正当性検証の動作は、一連の動作である。図２に、これら動作を含む全体の動作の一手順を示す。
【００６５】
図２を参照すると、まず、ステップＳ１０で、「（ａ）時刻証拠値の生成の基本動作」を実行する。この基本動作の実行中は、一定間隔で時刻証拠値が生成される。次いで、ステップＳ１１で、外部装置２から時刻証拠値配信の要求を受けたか否かが判断される。この判断で「Ｙｅｓ」となった場合は、ステップＳ１２で、最新の時刻証拠値を外部装置２に送信した後、ステップＳ１１に戻る。「Ｎｏ」となった場合はステップＳ１３に移行する。
【００６６】
ステップＳ１３では、外部装置２から時刻保証要求情報を受信したか否かが判断される。この判断で「Ｙｅｓ」となった場合は、ステップＳ１４で、「（ｂ）時刻保証要求情報を含めた時刻証拠値の生成および時刻保証情報の生成の動作」を実行した後、ステップＳ１３に戻る。「Ｎｏ」となった場合はステップＳ１５に移行する。
【００６７】
ステップＳ１５では、外部情報である証明書および証明書廃棄リストが更新されたか否かが判断される。この判断で「Ｙｅｓ」となった場合は、ステップＳ１６で、「（ｃ）証明書および証明書廃棄リストを含んだ時刻証拠値の生成の動作」を実行した後、ステップＳ１５に戻る。「Ｎｏ」となった場合はステップＳ１７に移行する。
【００６８】
ステップＳ１７では、外部装置２から時刻保証情報を受信したか否かが判断される。この判断で「Ｙｅｓ」となった場合は、ステップＳ１８で、「（ｄ）時刻保証情報の正当性検証の動作」を実行した後、ステップＳ１７に戻る。「Ｎｏ」となった場合は上記ステップＳ１１に戻る。
【００６９】
（実施形態２）
図３は、本発明の第２の実施形態である時刻証拠生成装置の概略構成を示すブロック図である。
【００７０】
図３に示す時刻証拠生成装置３は、サーバなどのコンピュータ装置であって、上述した第１の実施形態の時刻証拠生成装置１と同様、利用者によって使用される外部装置２に対して利用時刻を証明するものである。
【００７１】
時刻証拠生成装置３の主要部は、操作部３１、初期時刻証拠情報格納部３２、時刻生成部３３、乱数生成部３４、ハッシュ値生成部３５、電子署名生成部３６、時刻証拠値入出力部３７、および時刻証拠格納部３８からなり、これら各部は一部の動作がことなる以外は基本的には図１に示したものと同様な動作を行うように構成されている。ここでは、動作の異なる部分についてのみ説明する。
【００７２】
前述した「（ａ）時刻証拠値の生成の基本動作」および「（ｄ）時刻保証情報の正当性検証の動作」については同様な動作が行われるため、ここではその説明は省略する。本実施形態では、「（ｂ）時刻保証要求情報を含めた時刻証拠値の生成および時刻保証情報の生成の動作」および「（ｃ）証明書および証明書廃棄リストを含んだ時刻証拠値の生成の動作」に代えて、以下のような動作が行われる。
【００７３】
（ｅ）外部装置２から送られてきたデータを含めた時刻証拠値の生成および時刻保証情報の生成について説明する。
【００７４】
（ｅ−１）外部装置２は、時刻保証要求情報を時刻証拠入出力部３７に送信する。
【００７５】
（ｅ−２）時刻証拠入出力部３７は、外部装置２から受信した時刻保証要求情報を電子署名生成部３６に供給する。
【００７６】
（ｅ−３）電子署名生成部３６は、時刻証拠入出力部３７から時刻保証要求情報を受け取ると、その時刻保証要求情報を証明書および証明書廃棄リストと一緒に初期時刻証拠情報格納部３２に供給する。
【００７７】
（ｅ−４）初期時刻証拠情報格納部３２は、電子署名生成部３６から時刻保証要求情報、証明書および証明書廃棄リストが供給されると、乱数生成部３４から乱数を取得する。なお、すでに乱数生成部３４から乱数を取得している状態にある場合はその乱数を使用し、改めて乱数を取得することはしない。
【００７８】
（ｅ−５）初期時刻証拠情報格納部３２は、リンク値、取得した乱数、電子署名生成部３６から供給された時刻保証要求情報、証明書および証明書廃棄リストをハッシュ値生成部３５に供給する。
【００７９】
（ｅ−６）ハッシュ値生成部３５は、初期時刻証拠情報格納部３２から供給されたリンク値、乱数、時刻保証要求情報、証明書および証明書廃棄リストからハッシュ値を生成する。このハッシュ値が時刻証拠値である。
【００８０】
（ｅ−７）ハッシュ生成値生成部３５は、生成した時刻証拠値を乱数と一緒に電子署名生成部３６に供給するとともに、その時刻証拠値、証明書および証明書廃棄リストを時刻証拠値入出力部３７に供給する。
【００８１】
（ｅ−８）電子署名生成部３６は、ハッシュ生成値生成部３５から時刻証拠値および乱数を受け取ると、時刻生成部３３に対して時刻情報を要求する。
【００８２】
（ｅ−９）時刻生成部３３は、電子署名生成部３６からの要求に応じて、時刻情報を電子署名生成部３６に供給する。
【００８３】
（ｅ−１０）電子署名生成部３６は、証明書、証明書廃棄リスト、時刻証拠入出力部３７から供給された時刻保証要求情報、時刻生成部３３から供給された時刻情報、ハッシュ生成値生成部３５から供給された時刻証拠値および乱数にそれぞれ電子署名を付与して時刻保証情報を生成するとともに、この生成した時刻保証情報を時刻情報と一緒に時刻証拠値入出力部３７に供給する。
【００８４】
（ｅ−１１）時刻証拠入出力部３７は、ハッシュ値生成部３５から供給された時刻証拠値をリンク値として初期時刻証拠情報格納部３２に供給するとともに、電子署名生成部３６から供給された時刻保証情報を外部装置２に送信する。同時に、時刻証拠入出力部３７は、ハッシュ値生成部３５から供給された時刻証拠値、乱数、証明書および証明書廃棄リストと、電子署名生成部３６から供給された時刻情報とを時刻証拠格納部３８に供給する。
【００８５】
（ｅ−１２）時刻証拠格納部３８は、時刻証拠入出力部３７から供給された時刻証拠値、乱数、時刻情報、証明および証明書廃棄リストを格納する。
【００８６】
本実施形態においても、前述の「（ａ）時刻証拠値の生成の基本動作」および「（ｄ）時刻保証情報の正当性検証の動作」と上述した「（ｅ）外部データを含めた時刻証拠値の生成および時刻保証情報の生成の動作」は一連の動作として処理される。図４に、これら動作を含む全体の動作の一手順を示す。
【００８７】
図４を参照すると、まず、ステップＳ２０で、「（ａ）時刻証拠値の生成の基本動作」を実行する。この基本動作の実行中は、一定間隔で時刻証拠値が生成される。次いで、ステップＳ２１で、外部装置２から時刻証拠値配信の要求を受けたか否かが判断される。この判断で「Ｙｅｓ」となった場合は、ステップＳ２２で、最新の時刻証拠値を外部装置２に送信した後、ステップＳ２１に戻る。「Ｎｏ」となった場合はステップＳ２３に移行する。
【００８８】
ステップＳ２３では、外部装置２から時刻保証要求情報を受信したか否かが判断される。この判断で「Ｙｅｓ」となった場合は、ステップＳ２４で、「（ｅ）外部データを含めた時刻証拠値の生成および時刻保証情報の生成の動作」を実行した後、ステップＳ２３に戻る。「Ｎｏ」となった場合はステップＳ２５に移行する。
【００８９】
ステップＳ２５では、外部装置２から時刻保証情報を受信したか否かが判断される。この判断で「Ｙｅｓ」となった場合は、ステップＳ２６で、「（ｄ）時刻保証情報の正当性検証の動作」を実行した後、ステップＳ２５に戻る。「Ｎｏ」となった場合は上記ステップＳ２１に戻る。
【００９０】
上述した各実施形態の時刻証拠生成装置によれば、時間の流れを時刻証拠値で表現しており、時間の流れにおけるある時刻を時刻証拠値により証明することができる。時刻証拠値はその生成時刻（時刻情報）とともに格納されるようになっており、これにより、時刻証拠値がいつ生成されたものであるかを外部に示すことができる。
【００９１】
また、外部データ（外部装置２から供給されるデータや証明書および証明書廃棄リストなど）を時刻証拠値の生成時に含めることができるので、時刻証拠生成装置内の時間の流れの中のある時点において外部データが存在したことを保証することができる。
【００９２】
さらに、外部データ、時刻証拠値、時刻情報などに電子署名を付与することで、外部データの生成時刻を保証することができる。
【００９３】
また、時刻証拠値の生成には乱数を用いるため、第三者は、時刻証拠値が生成される前にその時刻証拠値を予測して使用することはできない。これにより、予測による時刻の改ざんを防止することができる。
【００９４】
さらに、時刻証拠値の生成には、乱数の他に、前回の処理で生成された時刻証拠値がリンク値として使用されるため、時刻証拠生成装置内の時間の流れにおいて生成された時刻証拠値を後から改ざんすることは困難である。
【００９５】
以上、各実施形態で説明した時刻証拠生成装置は、本発明の一例であり、その構成は要旨を逸脱しない範囲で適宜変更可能である。例えば、各実施形態では、一定間隔で時刻証拠値を生成するようになっているが、本発明は、これに限定されるものではなく、時刻証拠値を生成する間隔は一定でなくてもよい。
【００９６】
また、各実施形態で説明した時刻証拠生成装置は、基本的にはコンピュータ（ＣＰＵ）と記憶装置を備えたコンピュータ装置より構成されており、記憶装置に予めインストールされたプログラムをコンピュータが実行することで、前述の「（ａ）時刻証拠値の生成の基本動作」、「（ｂ）時刻保証要求情報を含めた時刻証拠値の生成および時刻保証情報の生成の動作」、「（ｃ）証明書および証明書廃棄リストを含んだ時刻証拠値の生成の動作」、「（ｄ）時刻保証情報の正当性検証の動作」および「（ｅ）外部データを含めた時刻証拠値の生成および時刻保証情報の生成の動作」が行われる。プログラムを格納する記憶装置としては、ＣＤ−ＲＯＭに代表される記録媒体や半導体記憶装置を使用することができる。
【００９７】
【発明の効果】
以上説明したように、本発明によれば、時刻の改ざんが困難なため、従来にない信頼性の高い時刻証明を利用者に提供することができる、という効果がある。
【図面の簡単な説明】
【図１】本発明の第１の実施形態である時刻証拠生成装置の概略構成を示すブロック図である。
【図２】図１に示す時刻証拠生成装置の全体の動作の一手順を示すフローチャート図である。
【図３】本発明の第２の実施形態である時刻証拠生成装置の概略構成を示すブロック図である。
【図４】図３に示す時刻証拠生成装置の全体の動作の一手順を示すフローチャート図である。
【符号の説明】
１  時刻証拠生成装置
２  外部装置
１１、３１  操作部
１２、３２  初期時刻証拠情報格納部
１３、３３  時刻生成部
１４、３４  乱数生成部
１５、３５  ハッシュ値生成部
１６、３６  電子署名生成部
１７、３７  時刻証拠値入出力部
１８、３８  時刻証拠格納部
【図１】
2004229067.tif 000003
【図２】
2004229067.tif 000004
【図３】
2004229067.tif 000005
【図４】
2004229067.tif 000006