(57)【要約】【課題】一連のタイムスタンプ証明書のＩＤ番号、発行時刻等の順序性と単一性の保証を簡素な構成かつ効率的な処理にて実現可能なタイムスタンプシステム及びそのプログラムを提供する。【構成】多数（例えば、Ｎ台（Ｎは２以上の整数））のクライアント端末１（証明書要求ＡＰ）からの証明書要求４を、一旦、要求キュー２１にバッファリングした後、生成処理部２２が順次命令を取り出すことによってＮ：１の処理を１：１の処理とする。ＩＤカウンタ２２ａ、時刻カウンタ２２ｂにてタイムスタンプ証明書３のＩＤ番号、発行時刻の順序性の保証をしつつ、当該証明書を生成する。当該生成処理は１：１の処理となっており、要求命令重複の危険性がなく、ＩＤ番号、発行時刻の順序性と単一性の保証が確実なものとなる。しかも、上記重複危険性がない分だけ処理を簡素化できる。【選択図】  図１
2004265090.tif 000002
【特許請求の範囲】
【請求項１】
受け付けたタイムスタンプ証明書の発行を要求する証明書要求及び当該証明書要求の送信元情報を順次格納する要求キュー記憶領域と、
生成した上記タイムスタンプ証明書のＩＤ番号、発行時刻等のタイムスタンプ情報を保持するタイムスタンプ情報記憶領域と、
上記要求キュー記憶領域の先頭から上記証明書要求及び上記送信元情報を順次取り出す毎に、上記タイムスタンプ情報記憶領域から取得した直前に生成した上記タイムスタンプ証明書の上記タイムスタンプ情報に基づいて上記要求キュー記憶領域から取り出した上記証明書要求に対する新たな上記タイムスタンプ情報を生成して新たなタイムスタンプ証明書を生成する生成処理部と、
上記新たなタイムスタンプ証明書を順次格納する応答キュー記憶領域と
を備え、上記応答キュー記憶領域から上記タイムスタンプ証明書を順次上記送信元に送信して発行することを特徴とするタイムスタンプシステム。
【請求項２】
上記タイムスタンプ情報記憶領域は、上記ＩＤ番号を保持するＩＤ記憶領域と、上記発行時刻を保持する時刻記憶領域とからなり、さらに、上記ＩＤ番号及び上記発行時刻を含む発行したタイムスタンプ証明書の履歴を保持する履歴記憶領域を備え、タイムスタンプシステムの再起動時に上記タイムスタンプ履歴記憶領域から最後に発行された上記タイムスタンプの上記ＩＤ番号、上記発行時刻を取得してそれぞれ上記ＩＤ記憶領域、上記時刻記憶領域に保持することを特徴とする請求項１に記載のタイムスタンプシステム。
【請求項３】
受け付けたタイムスタンプ証明書の発行を要求する証明書要求及び当該証明書要求の送信元情報を順次要求キュー記憶領域に格納する処理と、
上記要求キュー記憶領域の先頭から上記証明書要求及び上記送信元情報を取り出して順次上記タイムスタンプ証明書の生成処理に渡す処理と、
生成された上記タイムスタンプ証明書のＩＤ番号をＩＤ記憶領域に保持する処理と、
生成された上記タイムスタンプ証明書の発行時刻を時刻記憶領域に保持する処理と、
上記ＩＤ記憶領域から直前に生成した上記タイムスタンプ証明書のＩＤ番号を所得して当該ＩＤ番号を更新して新たなタイムスタンプ証明書のＩＤ番号とし、上記時刻記憶領域から直前に生成した上記タイムスタンプ証明書の発行時刻を取得し、時刻発生器から現在時刻を取得し、当該現在時刻が上記直前の発行時刻より後の時刻であったときに当該現在時刻を新たなタイムスタンプ証明書の発行時刻としてタイムスタンプ証明書を生成する上記生成処理と、
上記生成処理により生成されたタイムスタンプ証明書を上記送信元情報に基づいてタイムスタンプ証明書の発行する発行処理と
をコンピュータ上で実現せしめるタイムスタンプシステムプログラム。
【請求項４】
上記ＩＤ番号及び上記発行時刻を含む発行したタイムスタンプ証明書の履歴を履歴記憶領域に保持する処理と、タイムスタンプシステムの再起動時に上記履歴記憶領域から最後に発行された上記タイムスタンプ証明書の上記ＩＤ番号、上記発行時刻を取得してそれぞれ上記ＩＤ記憶領域、上記時刻記憶領域に保持する処理とを備える請求項１に記載のタイムスタンプシステムプログラム。
【請求項５】
上記発行処理は、生成された上記タイムスタンプ証明書を上記送信元情報と対応付けて応答キュー記憶領域に順次保持し、当該応答キュー記憶領域から順次上記タイムスタンプ証明書を取得して上記送信元に送信する処理を備える請求項３又は４に記載のタイムスタンプシステムプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、タイムスタンプシステム及びそのプログラムに関し、特に順序性と単一性が保証された一連のタイムスタンプ証明書を発行するタイムスタンプシステム及びそのプログラムに関するものである。
【０００２】
【従来の技術】
現在、ある時刻における、テキスト文書、画像情報、コンピュータプログラム等の電子文書の存在、その非改竄性を保証するために、電子文書あるいはそのメッセージダイジェスト（例えば、電子文書のハッシュ値）に時刻情報、認証者の署名情報等を与えるとともに暗号化することにより生成したタイムスタンプ証明書を発行するタイムスタンプシステムが利用されている。このようなタイムスタンプシステムにおいては、それに使用される時刻を時刻発生器から取得し、電子文書に押印する。押印と同時に、ユニークな認識番号（所謂、シリアル番号、処理番号等で、以下、ＩＤ番号と言う。）を記載する（例えば、特許文献１参照）。
【０００３】
【特許文献１】
特許第３２７８７２１号公報
【０００４】
【発明が解決しようとする課題】
しかしながら、タイムスタンプシステムが再起動した場合や多数のクライアントから同時にタイムスタンプ要求が行われた場合には、重複した時刻、ＩＤ番号が記載される可能性が生じる。クライアントからの要求を逐次的に処理した場合、単位時間当たりのタイムスタンプ要求数が一様でない場合、タイムスタンプ処理効率が悪くなる。
【０００５】
本発明は、一連のタイムスタンプ証明書の順序性と単一性の保証を簡素な構成かつ効率的な処理にて実現可能なタイムスタンプシステム及びそのプログラムを提供することを目的とする。
【０００６】
【課題を解決するための手段】
本発明のタイムスタンプシステムは、受け付けたタイムスタンプ証明書の発行を要求する証明書要求及び当該証明書要求の送信元情報を順次格納する要求キュー記憶領域と、生成した上記タイムスタンプ証明書のＩＤ番、発行時刻等のタイムスタンプ情報を保持するタイムスタンプ情報記憶領域と、上記要求キュー記憶領域の先頭から上記証明書要求及び上記送信元情報を順次取り出す毎に、上記タイムスタンプ情報記憶領域から取得した直前に発行した上記タイムスタンプ証明書の上記タイムスタンプ情報に基づいて上記要求キュー記憶領域から取り出した上記証明書要求に対する新たな上記タイムスタンプ情報を生成して新たなタイムスタンプ証明書を生成する生成処理部と、上記新たなタイムスタンプ証明書順次に格納する応答キュー記憶領域とを備え、上記応答キュー記憶領域から上記タイムスタンプ証明書を順次上記送信元に送信して発行することを特徴とする。
【０００７】
また、上記タイムスタンプ情報記憶領域は、上記ＩＤ番号を保持するＩＤ記憶領域と、上記発行時刻を保持する時刻記憶領域とからなり、さらに、上記ＩＤ番号及び上記発行時刻を含む発行したタイムスタンプ証明書の履歴を保持する履歴記憶領域を備え、タイムスタンプシステムの再起動時に上記タイムスタンプ履歴記憶領域から最後に発行された上記タイムスタンプの上記ＩＤ番号、上記発行時刻を取得してそれぞれ上記ＩＤ記憶領域、上記時刻記憶領域に保持することが好ましい。
【０００８】
また、本発明のタイムスタンプシステムプログラムは、受け付けたタイムスタンプ証明書の発行を要求する証明書要求及び当該証明書要求の送信元情報を順次要求キュー記憶領域に格納する処理と、上記要求キューの先頭から上記証明書要求及び上記送信元情報を取り出して順次上記タイムスタンプ証明書の生成処理に渡す処理と、生成した上記タイムスタンプ証明書のＩＤ番号をＩＤ記憶領域に保持する処理と、生成した上記タイムスタンプ証明書の発行時刻を時刻記憶領域に保持する処理と、上記ＩＤ記憶領域から直前に発行した上記タイムスタンプ証明書のＩＤ番号を所得して当該ＩＤ番号を更新して新たなタイムスタンプ証明書のＩＤ番号とし、上記時刻記憶領域から直前に発行した上記タイムスタンプ証明書の発行時刻を取得し、時刻発生器から現在時刻を取得し、当該現在時刻が上記直前の発行時刻より後の時刻であったときに当該現在時刻を新たなタイムスタンプ証明書の発行時刻としてタイムスタンプ証明書を生成する上記生成処理と、上記生成処理により生成されたタイムスタンプ証明書を上記送信元情報に基づいてタイムスタンプ証明書の発行する発行処理とをコンピュータ上で実現せしめることを特徴とする。
【０００９】
また、本発明のタイムスタンプシステムプログラムは、上記ＩＤ番号及び上記発行時刻を含む発行したタイムスタンプ証明書の履歴を履歴記憶領域に保持する処理と、タイムスタンプシステムの再起動時に上記履歴記憶領域から最後に発行された上記タイムスタンプ証明書の上記ＩＤ番号、上記発行時刻を取得してそれぞれ上記ＩＤ記憶領域、上記時刻記憶領域に保持する処理とを備えることが好ましい。
【００１０】
また、上記発行処理は、生成された上記タイムスタンプ証明書を上記送信元情報と対応付けて順次応答キュー記憶領域に保持し、当該応答キュー記憶領域から順次上記タイムスタンプ証明書を取得して上記送信元に送信する処理を備えることも好ましい。
【００１１】
【発明の実施の形態】
以下、図面を参照して本発明の実施の形態について説明する。図１は、本発明の実施の形態において用いられるクライアント端末１とクライアント端末１にＬＡＮ接続されるタイムスタンプサーバ２とを示している。クライアント端末１は、タイムスタンプサーバ２にＬＡＮ接続されるとともにタイムスタンプ証明書３を要求する証明書要求アプリケーション（以下、ＡＰ）を備えており、このような証明書要求ＡＰはネットワーク上に多数存在し、ＬＡＮ、ＷＡＮまたはインターネット等のネットワークを介してタイムスタンプサーバ２に接続される。タイムスタンプサーバ２は、クライアント端末１からのタイムスタンプ証明書の発行を要求する証明書要求４を受け付けて順次格納する要求キュー記憶領域（以下、単に要求キューと言う。）２１と、要求キュー２１から順次取得した証明書要求４に対してタイムスタンプ証明書を生成する生成処理部２２と、タイムスタンプ証明書３に添付する電子署名のための秘密鍵を保持した秘密鍵記憶領域２３と、タイムスタンプ証明書に添付する発行時刻（所謂タイムスタンプ）を生成する時刻発生器２４と、生成処理部２２の生成するタイムスタンプ証明書のデータを格納し、これより要求送信元のクライアント端末１に順次送信してタイムスタンプ証明書を発行する応答キュー記憶領域（以下、単に応答キューと言う。）２５と、生成処理部２２の発行したタイムスタンプ証明書３の履歴を格納するデータベース２６とを備える。
【００１２】
生成処理部２２は、直前に発行したタイムスタンプ証明書のＩＤ番号を保持し、カウントする処理のためのＩＤカウンタ２２ａと、直前に発行した上記タイムスタンプ証明書の発行時刻を時刻記憶領域に保持し、カウントする処理のための時刻カウンタ２２ｂとを備える。
【００１３】
次にタイムスタンプサーバ２の動作について説明する。クライアント端末１上の証明書要求ＡＰは、任意のタイミングでタイムスタンプサーバ２に対して証明書要求を行う。ここで、証明書要求ＡＰは、タイムスタンプ証明書を要する電子文書のハッシュ値を算出し、証明書要求４を生成し、タイムスタンプサーバ２に送信する。
【００１４】
タイムスタンプサーバ２は、証明書要求ＡＰよりネットワークを介して受け付けた証明書要求を、図示しないメモリ上の要求キュー２１に、送信元情報（例えばＩＰアドレス）、要求受信時刻等と共に格納する。要求キュー２１は、証明書要求を要求受付順にリストとして保持する（ステップａ）。この時点で、複数の証明書要求ＡＰからの証明書要求がほぼ同時に送信されたとしても、単一のメモリリソースである要求キュー２１のリストに配列されるため、以降のステップで生成処理部２２がアクセスする必要があるのは要求キュー２１だけであり、生成処理部２２は要求命令の重複等と無関係に動作できる。
【００１５】
次に生成処理部２２は要求キュー２１のリストをポーリングし、要求キュー２１への証明書要求の入力を監視する（ステップｂ１）。要求キュー２１のリストに証明書要求が入力されていることを確認した場合、応答キュー２５への入力を確認し（ステップｂ２）、入力があれば後述の処理によって応答キューの内容を出力した後、生成処理部２２はリストの先頭から証明書要求と送信元情報とを取り出し、タイムスタンプ証明書の生成処理に移行する（ステップｃ）。
【００１６】
タイムスタンプ証明書生成処理（ステップｄ）では、ＩＤカウンタ２２ａに保持されている直前に生成されたタイムスタンプ証明書のＩＤ番号を取得し、取得されたＩＤ番号を１増加させた値を新たなタイムスタンプ証明書のＩＤ番号として、タイムスタンプ証明書にセットする（ステップｄ１）。さらに、時刻発生器２４より信頼度、精度に優れた現在時刻を取得し、時刻カウンタ２２ｂに保持されている直前に生成されたタイムスタンプ証明書の発行時刻を所得する（ステップｄ２）。これらを比較し、現在時刻が直前に発行したタイムスタンプ証明書の発行時刻より新しい時刻であることを確認して（ステップｄ３）、タイムスタンプ証明書に発行時刻としてセットする（ステップｄ４）。時刻発生器２４から取得された時刻が時刻カウンタ２２ｂに保持されている時刻以前の時刻であった場合、一定時間の待機を行った後（ステップｄ５）、再度時刻発生器２４からの時刻取得を行う。この処理を繰り返すことで必ず、時刻カウンタ２２ｂに保持された時刻より新しい時刻を生成処理部２２は取得することができる。生成処理部２２は、新たなタイムスタンプ証明書のＩＤ番号、発行時刻をそれぞれＩＤカウンタ２２ａ、時刻カウンタ２２ｂの仮のＩＤ番号、発行時刻の記憶領域にセットする。
【００１７】
次に生成処理部２２は、システム内の秘密鍵記憶領域２３に秘匿されている秘密鍵を用いてタイムスタンプ証明書生成処理（ステップｄ）で生成されたタイムスタンプ証明書に電子署名処理を行う（ステップｅ）。すなわち、証明書要求４に含まれた目的の電子文書のハッシュ値に上述のＩＤ番号、発行時刻を加えたものを秘密鍵を使用して暗号化し、タイムスタンプ証明書に添付する。電子署名が完全に行われた場合は（ステップｆ）、データベース２６に証明書の内容を保存する（ステップｇ）。電子署名処理、データベース２６への保存処理が正常に終了しなかった場合は（ステップｈ）、ＩＤカウンタ２２ａ、時刻カウンタ２２ｂをタイムスタンプ証明書生成処理（ステップｄ）以前の状態に書き戻し（ステップｉ）、エラー応答データを応答キュー２５に送信元情報と共にセットする（ステップｊ）。データベース２６への内容保存処理（ステップｇ）が正常実行された場合は（ステップｈ）、生成処理部２２は、ＩＤカウンタ２２ａ、時刻カウンタ２２ｂの仮領域のＩＤ番号、発行時刻を確定領域に移して、直前のタイムスタンプ証明書のＩＤ番号、発行時刻として確定し（ステップｋ）、電子署名されたタイムスタンプ証明書データと送信元情報を応答キュー２５にセットし（ステップｌ）、要求キュー２１のポーリング処理（ステップｂ１）に移行する。
【００１８】
タイムスタンプサーバ２は、要求キュー２１の総ての証明書要求４に対する処理が終了していれば（なお、前回のタイムスタンプ証明書の送信元への発行処理から所定間隔経過している場合であっても良い。）、応答キュー２５に格納されたタイムスタンプ証明書データまたはエラー応答データを送信元情報に基づいて順次証明書要求ＡＰに返却し、タイムスタンプ証明書を発行する（ステップｍ）。
【００１９】
また、タイムスタンプサーバ２が何等かの理由で再起動動作された場合（ステップｎ）、タイムスタンプサーバ２は、データベース２６から過去に発行したタイムスタンプ証明書レコードを所得し、そのＩＤ番号、発行時刻が最も大きいレコードを選択する。当該レコードからＩＤ番号、発行時刻を所得し、すなわち、最後のタイムスタンプ証明書のＩＤ番号、発行時刻値を所得し、ＩＤカウンタ２２ａ、時刻カウンタ２２ｂにセットすることで初期化処理を行う（ステップｏ）。初期化処理終了後、生成処理部２２は、ポーリング処理（ステップｂ１）を行い、証明書要求ＡＰからの証明書要求の監視を開始する。これにより、タイムスタンプサーバ２は、システム再起動時でも前回起動された状態を引き継いで実行されるため、発行時刻、ＩＤ番号の単一性と順序性が確保される。
【００２０】
以上のように本例では、多数のクライアントからの証明書要求４を一旦命令キューにバッファリングした後で生成処理部２２が順次命令を取り出すことによって、図１に示すようにＮ（Ｎは２以上の整数）：１の処理を１：１の処理とする。また、生成されたタイムスタンプ証明書は、応答キュー２５にバッファリングされ、応答キュー２５から順次タイムスタンプ証明書、すなわち、タイムスタンプされた電子データを取り出し、要求元に返却する。このように発行処理では１：１の処理から１：Ｎの処理とする。ＩＤカウンタ２２ａ、時刻カウンタ２２ｂによるＩＤ番号、発行時刻の順序性の保証処理については１：１の処理となっており、各クライアントからの要求命令を逐次的に処理する場合に比べて命令重複の危険性がなく、これによりＩＤ番号、発行時刻の重複なく、常にユニークなＩＤ番号と発行時刻を高い信頼性にて提供可能となっており、各タイムスタンプ証明書の時刻の順序性と単一性の保証が確かなものとなる。さらに、特に詳述しないが、データベース２６に格納されたタイムスタンプ証明書の履歴について定期的にタイムスタンプ証明書を発行することによっては、各タイムスタンプ証明書の時刻の順序性と単一性を公のものとしてタイムスタンプ証明書の改ざんを困難なものとできる。
【００２１】
また、ＩＤ番号、発行時刻の順序性の保証処理が１：１の処理となっており、命令重複を意識しない簡素なもので良く、同時に複数のクライアントからの要求に対応する効率的な処理が実現可能となっている。
【００２２】
また、発行したタイムスタンプ証明書の履歴をデータベース２６に保持することにより、システム再起動時に前回最後に発行したタイムスタンプ証明書のＩＤ番号と発行時刻とをメモリ上に再現し、ＩＤカウンタ２２ａ、時刻カウンタ２２ｂにてカウントする。これによりシステム再起動時でも継続してＩＤ番号と発行時刻にてタイムスタンプ証明書を発行することを可能とする。
【００２３】
【発明の効果】
多数のクライアントから同時にタイムスタンプ証明書の要求が行われた場合や、タイムスタンプシステムが再起動した場合でも完全にユニークな発行時刻やＩＤ番号でタイムスタンプ証明書の生成処理をすることができる。タイムスタンプ証明書の順序性と単一性を保証することが可能となる。
【００２４】
特に、多数のクライアントからの証明書要求を一旦要求キュー記憶領域にバッファリングした後でタイムスタンプ証明書の生成処理が順次命令を取り出すことによって、Ｎ：１の処理を１：１の処理とし、生成されたタイムスタンプ証明書は、応答キュー記憶領域にバッファリングして応答キュー記憶領域より順次タイムスタンプ証明書を取り出し、要求元に返却するようにして、１：１の処理から１：Ｎの処理としてある。このように、ＩＤ番号、発行時刻等による順序性の保証処理が１：１の処理となっており、命令重複がなく上記順序性の保証処理をより確実なものとでき、しかも、命令重複を意識しない簡素な処理で実現できるため、同時に複数のクライアントからの要求に対応する効率的な処理が実現可能である。
【図面の簡単な説明】
【図１】本発明の一実施例のタイムスタンプシステムの構成を示すブロック図。
【図２】本発明の一実施例のタイムスタンプシステムの動作説明のためのフローチャート。
【符号の説明】
１      送信元（クライアント端末）
２      タイムスタンプシステム（タイムスタンプサーバ）
３      タイムスタンプ証明書
４      証明書要求
２１    要求キュー記憶領域
２２    生成処理部
２２ａ  ＩＤ記憶領域（ＩＤカウンタ）、タイムスタンプ情報記憶領域
２２ｂ  時刻記憶領域（時刻カウンタ）、タイムスタンプ情報記憶領域
２４    時刻発生器
２５    応答キュー記憶領域
２６    履歴記憶領域（データベース）
【図１】
2004265090.tif 000003
【図２】
2004265090.tif 000004