(57)【特許請求の範囲】
【請求項１】
２台以上のクライアント端末と、通信ネットワークを介して前記クライアント端末と接続されるサーバとを備え、
前記サーバは、
各クライアント端末にユニークに割り当てられたリスト番号が掲載されたリストを、クライアント端末に公開するリスト公開手段と、
前記リスト番号とクライアント端末の通信アドレスとを対応付ける対応関係情報と、
送信元のクライアント端末を示すリスト番号、宛先のクライアント端末を示すリスト番号、時刻情報及び時刻認証対象の電子情報が、時刻認証に係る申請情報とタイムスタンプとで共通の所定書式で格納された通信データをクライアント端末から受信し、前記対応関係情報に基づいて、該受信通信データ中の宛先のクライアント端末を示すリスト番号、に対応する通信アドレスを取得し、該通信アドレスを用いて該受信通信データを該宛先のクライアント端末に送信する通信制御手段と、を備え、
前記クライアント端末は、
申請者から電子情報についての時刻認証の申請要求を受けて、時刻認証を申請する相手となるクライアント端末のリスト番号として、前記サーバにより公開された前記リストの中から、自己のリスト番号以外の他のリスト番号を任意に選択するリスト番号選択手段と、
該時刻認証の申請情報として、送信元のクライアント端末を示すリスト番号として自己のリスト番号、宛先のクライアント端末を示すリスト番号として前記選択されたリスト番号、当該申請情報の作成時点の時刻を表す時刻情報及び時刻認証対象の電子情報として前記申請者が時刻認証を申請する対象の電子情報、を前記所定書式で格納した第１の通信データを前記サーバに送信する時刻認証申請情報送信手段と、
前記サーバから第１の通信データを受信すると、該受信通信データ中の時刻認証対象の電子情報に対して時刻を認証するタイムスタンプとして、送信元のクライアント端末を示すリスト番号として自己のリスト番号、宛先のクライアント端末を示すリスト番号として該受信通信データ中の送信元のクライアント端末を示すリスト番号、当該タイムスタンプの作成時点の時刻を表す時刻情報及び該受信通信データ中の時刻認証対象の電子情報、を前記所定書式で格納した第２の通信データを前記サーバに送信するタイムスタンプ送信手段と、を備える、
ことを特徴とする電子情報の時刻認証システム。
【請求項２】
前記サーバの時刻と各クライアント端末の時刻とは、同期しており、
前記サーバは、クライアント端末から受信した通信データから時刻情報を抽出し、該抽出した時刻情報が示す時刻と当該受信通信データの受信時刻との差を算出し、該算出した差が所定の時間内である場合に当該受信通信データをリスト番号で示される宛先のクライアント端末に送信することを特徴とする請求項１に記載の電子情報の時刻認証システム。
【請求項３】
各クライアント端末は、前記サーバに送信する第１及び第２の通信データが時刻認証の申請かタイムスタンプであるかを識別する情報を、当該通信データの送信先のクライアント端末が所有する秘密鍵と対になる公開鍵によって暗号化して送信することを特徴とする請求項１に記載の電子情報の時刻認証システム。
【請求項４】
各クライアント端末が、所定のタイミングにおいて、前記第１の通信データと同一の前記所定書式で構成された贋の通信データを作成し、前記サーバに送信することを特徴とする請求項１に記載の電子情報の時刻認証システム。
【請求項５】
電子情報の時刻認証を行うためのプログラムであって、
サーバのリスト公開手段が、
各クライアント端末にユニークに割り当てられたリスト番号が掲載されたリストを、クライアント端末に公開するステップと、
前記サーバの通信制御手段が、
送信元のクライアント端末を示すリスト番号、宛先のクライアント端末を示すリスト番号、時刻情報及び時刻認証対象の電子情報が、時刻認証に係る申請情報とタイムスタンプとで共通の所定書式で格納された通信データをクライアント端末から受信し、リスト番号とクライアント端末の通信アドレスとを対応付ける対応関係情報に基づいて、該受信通信データ中の宛先のクライアント端末を示すリスト番号、に対応する通信アドレスを取得し、該通信アドレスを用いて該受信通信データを該宛先のクライアント端末に送信するステップと、
をコンピュータに実行させるプログラム。
【請求項６】
サーバを介した電子情報の時刻認証に用いられるプログラムであって、
クライアント端末のリスト番号選択手段が、
申請者から電子情報についての時刻認証の申請要求を受けて、時刻認証を申請する相手となるクライアント端末のリスト番号として、前記サーバにより公開された前記リストの中から、自己のリスト番号以外の他のリスト番号を任意に選択するステップと、
前記クライアント端末の時刻認証申請情報送信手段が、
該時刻認証の申請情報として、送信元のクライアント端末を示すリスト番号として自己のリスト番号、宛先のクライアント端末を示すリスト番号として前記選択されたリスト番号、当該申請情報の作成時点の時刻を表す時刻情報及び時刻認証対象の電子情報として前記申請者が時刻認証を申請する対象の電子情報、を前記所定書式で格納した第１の通信データを前記サーバに送信するステップと、
前記クライアント端末のタイムスタンプ送信手段が、
前記サーバから第１の通信データを受信すると、該受信通信データ中の時刻認証対象の電子情報に対して時刻を認証するタイムスタンプとして、送信元のクライアント端末を示すリスト番号として自己のリスト番号、宛先のクライアント端末を示すリスト番号として該受信通信データ中の送信元のクライアント端末を示すリスト番号、当該タイムスタンプの作成時点の時刻を表す時刻情報及び該受信通信データ中の時刻認証対象の電子情報、を前記所定書式で格納した第２の通信データを前記サーバに送信するステップと、
をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、パーソナルコンピュータなどによって作成した電子情報が存在していた日時を認証する電子情報の時刻認証に係り、特に、時刻を認証する側における不正を困難とした電子情報の時刻認証システム及びプログラムに関する。
【０００２】
【従来の技術】
近年、議事録、特許等の証明書類のディジタルデータ化に伴い、これらのディジタルデータが特定の時刻に存在し、且つその後に改竄等が行われていないことを証明する技術が提案されている。
このような技術の一つとして、ディジタルタイムスタンプ方式が挙げられる。
上記ディジタルタイムスタンプ方式は、ネットワーク上に時刻認証サーバを設け、端末からネットワークを介して電子情報の作成時刻に関する認証を上記サーバに対して申請し、また、時刻を認証したことを示す情報としてディジタルタイムスタンプをネットワークを介して上記サーバから取得するというものである。
【０００３】
【発明が解決しようとする課題】
しかしながら、上述したような従来のディジタルタイムスタンプ方式では以下のような問題点があった。
まず、一般的に、それぞれの端末の時刻情報は自由に変更できるため、端末における時刻情報の偽造、改竄は容易であり、正確な時刻を認証することが困難であるとの問題があった。
また、電子情報に正確な時刻情報を付加しても、ネットワーク上で他の者による電子化情報や時刻情報の偽造、改竄が生じないとの保証が得られないという問題があった。
更に、公正な取引を行わなければならない第三機関である認証局が利害関係等により正当な時刻を認証しないという虞があった。
【０００４】
本発明はこのような事情に鑑みてなされたもので、電子情報の時刻の認証を正確な時刻に基づいて行うとともに、認証された時刻が改竄、偽造される等の不正を防止し、正当性を高めた電子情報の時刻認証システム及びプログラムを提供することを目的とする。
【０００５】
【課題を解決するための手段】
上記目的を達成するために、本発明は、サーバと、前記サーバを介して電子情報の時刻認証の申請を行う機能と、前記サーバを介して受信した他のクライアント端末からの電子情報の時刻認証の申請に対して、時刻を認証するタイムスタンプの発行を行う機能とを有する２以上のクライアント端末とを備え、前記サーバが、前記認証する時刻の正当性を判定し、その判定結果に基づいてクライアント端末間の通信を制御することを特徴とする電子情報の時刻認証システムを提供する。
【０００６】
上記発明によれば、電子情報の時刻を認証するタイムスタンプの発行はクライアント端末が行うため、タイムスタンプ発行の権限がサーバに集中することを防ぐことができる。このように、特定の機関が集中して時刻認証を行うのではなく、互いに公平な立場であるクライアント端末が時刻認証を行うため、不当な時刻認証を回避することができる。
更に、認証された時刻はサーバによってその正当性が判定されるため、認証時刻の正当性を更に高めることができる。
【０００７】
また、上記電子情報の時刻認証システムにおいて、前記申請と前記タイムスタンプの発行とは、同一の書式で構成された所定の情報をサーバへ送信することにより行うことを特徴とする。
【０００８】
上記発明によれば、サーバは同一の書式によって構成された情報を各クライアント端末から受信することとなるため、受信した情報が、時刻認証の申請であるのか、或いは時刻を認証するタイムスタンプであるかを認識することができない。このように、サーバが情報の種類を見分けることができないことにより、サーバによる不正な行為、例えば認証時刻の改竄等を防ぐことができ、時刻認証に対する正当性の判定を極めて公平なものとすることができる。
【０００９】
また、上記電子情報の時刻認証システムにおいて、各クライアント端末は、前記所定の情報が申請かタイムスタンプであるかを識別する情報を、当該情報の送信先のクライアント端末が所有する秘密鍵と対になる公開鍵によって暗号化して送信することを特徴とする。
【００１０】
本発明によれば、申請もタイムスタンプも同一の書式によって構成され、また、申請かタイムスタンプかの識別をサーバができないようにされている。従って、クライアント端末も受信した情報が申請かタイムスタンプかを一別では識別できない。従って、その判断基準となる情報を送信先のクライアント端末が所有する秘密鍵によって解読できる情報、即ち、秘密鍵と対になる公開鍵によって暗号化した情報として、そのクライアント端末に送信する情報に含ませることにより、受信側のクライアント端末は、その暗号化情報を自己が有する秘密鍵によって解読することにより簡単に上記情報の識別を行うことができる。
【００１１】
また、上記電子情報の時刻認証システムにおいて、サーバの時刻と各クライアント端末の時刻とは同期しており、前記サーバは、クライアント端末から受信した前記所定の情報に含まれている時刻情報と、該所定の情報の受信時刻との差が所定の時間内である場合に、該時刻情報が正当であると判断し、前記所定の情報を所定のクライアント端末へ送信することを特徴とする。
【００１２】
上記発明によれば、サーバは、全てのクライアントと共有している時刻に基づいて認証する時刻の正当性を判定するため、相対的な時刻に基づいてその情報の正当性を判定することが可能となる。これにより、時刻認証の正当性、公平性を高めることができる。
【００１３】
また、上記目的を達成するために、本発明は、複数のクライアント端末がサーバを介して電子情報の時刻認証の申請又は該申請に対する時刻認証を行う電子情報の時間認証システムであって、一のクライアント端末が電子情報の時刻認証の申請を所定の書式により作成し、この所定の書式による情報をサーバへ送信し、前記サーバから前記申請を受信した他のクライアント端末が、前記申請に対して時刻を認証するタイムスタンプを前記申請と同一の書式により作成し、この所定の書式の情報をサーバへ送信し、前記サーバが、クライアント端末から受信した所定の書式により作成された情報に含まれている時刻情報に基づいて、認証する時刻の正当性を判定するとともに、前記判定結果に基づいて前記クライアント端末間での通信を制御することを特徴とする電子情報の時刻認証システムを提供する。
【００１４】
上記発明によれば、各クライアント端末がサーバを介して互いに時刻認証の申請と、認証の発行とを行い、また、サーバが認証された時刻の正当性を判定するため、特定の機関が時刻認証を集中して行うことを回避することができる。
このように、特定の機関が集中して時刻認証を行うのではなく、互いに公平な立場であるクライアント端末が時刻認証を行うため、不当な時刻認証が行われることを防止することができる。
これにより、認証された時刻は正当性が極めて高いものとなり、時刻認証の公平性が極めて高いシステムを提供することができる。
【００１５】
また、上記電子情報の時刻認証システムにおいて、前記所定の書式により作成された情報のうち、電子情報の時刻認証の申請であるか、又は、タイムスタンプであるかを識別する情報は、前記サーバが復号できない暗号方法によって暗号化されていることを特徴とする。
【００１６】
上記発明によれば、サーバが、受信した情報が時刻認証の申請であるのか、時刻認証に対するタイムスタンプであるのかを認識できないので、サーバによる認証時刻の改竄を防止することができ、信頼性の高い時刻認証のシステムを構築することが可能となる。
【００１７】
また、上記目的を達成するために、本発明は、電子情報の時刻認証を行うためのプログラムであって、クライアント端末から所定の書式による情報を受信した場合に、該情報に含まれている時刻の正当性を判断するステップと、前記時刻が正当であると判断した場合に、前記情報を所定のクライアント端末へ送信するステップとをコンピュータに実行させるプログラムを提供する。
【００１８】
このようなプログラムを電子情報の時刻認証システムにおけるサーバのコンピュータが実行することにより、時刻認定の正当性が極めて高い電子情報の時刻認証システムを構築することができる。
【００１９】
また、上記目的を達成するために、本発明は、サーバを介した電子情報の時刻認証に用いられるプログラムであって、電子情報の時刻認証の申請を前記サーバに対して送信するステップと、前記サーバを介して受信した他のクライアント端末が発行した電子情報の時刻認証の申請に対して、時刻を認証するタイムスタンプを前記サーバに送信するステップとをコンピュータに実行させるプログラムを提供する。
【００２０】
このようなプログラムを電子情報の時刻認証システムにおける各クライアント端末のコンピュータが実行することにより、各クライアント端末が時刻認証の申請と、申請に対する時刻認証を相互に行うことが可能となり、特定の第三機関が集中して時刻認証を行うのではなく、公平な立場である各クライアント端末が時刻認証を行うため、認証時刻の改竄等を防止することができる。
【００２１】
【発明の実施の形態】
以下、図面を参照し、本発明の一実施形態について説明する。
図１は本発明の一実施形態における電子情報の時刻認証システムの構成を示す図である。
図１に示すように、本実施形態における電子情報の時刻認証システムは、サーバＳと、複数のクライアント端末Ｃ１,Ｃ２…Ｃｎとから構成される。各クライアント端末Ｃ１,Ｃ２…Ｃｎは、通信ネットワークを介してサーバＳに接続されており、クライアント端末間の通信はサーバＳにより制御される。
タイムサーバＱは、各クライアント端末Ｃ１,Ｃ２…Ｃｎ及びサーバＳに対して標準となる時刻情報を通知し、電子情報の時刻認証システムを構成する各構成要素の時刻を同期させる。
【００２２】
次に、図２にクライアント端末の電気構成図を示す。
同図において、符号１は動作全体を制御するＣＰＵ（中央処理装置）であり、図示のように他の構成要素それぞれとバス２０により接続されている。符号２は、ＣＰＵ１が実行するプログラムが記憶されているＲＯＭ（Read Only Memory）であり、後述の動作説明におけるＣＰＵ１の処理を規定したプログラム等が格納されている。
符号３は、ＣＰＵ１の演算処理で使用されるＲＡＭであり、上記プログラムの処理過程において発生したデータ等を一時的に保持するとともに、電子情報や認証を得たタイムスタンプ、電子情報のハッシュ値等の当該処理に必要となる情報を記憶している。
【００２３】
符号４は、ユーザインターフェースである入力部であり、ユーザが当該入力部を操作することにより、電子文書の時刻認証申請の要求等を行うことができる。
また、符号５は時計部であり、符号６は通信回線を介してサーバＳと接続し、サーバＳを介して他のクライアント端末と情報の送受を行う通信部である。
なお、上記構成に加えてＣＲＴ（Cathode Ray Tube）ディスプレイ装置や液晶表示装置等の表示装置を備えていても良い。
【００２４】
次に、図３にサーバＳの電気構成図を示す。
同図において、符号１１は動作全体を制御するＣＰＵ（中央処理装置）であり、図示のように他の構成要素それぞれとバス３０により接続されている。符号１２は、ＣＰＵ１１が実行するプログラムが記憶されているＲＯＭ（Read Only Memory）であり、後述の動作説明におけるＣＰＵ１１の処理を規定したプログラム等が格納されている。
符号１３は、ＣＰＵ１１の演算処理で使用されるＲＡＭであり、上記プログラムの処理過程において発生したデータ等を一時的に保持するとともに、各クライアント端末の情報が記載され、クライアント端末間の通信を制御するために必要となる情報（例えば、後述するリストＬ）や、時刻認証に必要となる各種情報を記憶している。
【００２５】
符号１４は時計部である。符号１５は制御部であり、通信回線を介して各クライアント端末と接続し、上記リストＬに基づいてクライアント端末間での通信を制御する。
なお、上記構成に加えてキーボードやマウス等の入力デバイスや、ＣＲＴ（Cathode Ray Tube）ディスプレイ装置や液晶表示装置等の表示装置を備えていても良い。
【００２６】
次に、本実施形態における電子情報の時刻認証システムの動作について説明する。
（１）事前処理
まず、電子情報の時刻認証を行う前において、各クライアント端末Ｃ１,Ｃ２…Ｃｎ及びサーバＳが行う事前処理について説明する。なお、以下の処理は、各クライアント端末が備えるＣＰＵ１、サーバＳが備えるＣＰＵ１１がＲＯＭ２又は１２に格納されている所定のプログラムを実行することにより行われるものである。
【００２７】
まず、各クライアント端末Ｃ１,Ｃ２…Ｃｎは、サーバＳとの間にＳＳＬなどの安全な通信路を確立する。続いて、各クライアント端末Ｃ１,Ｃ２…Ｃｎ及びサーバＳは、タイムサーバＱから時刻情報を受け取ることにより、時刻の同期を行う。これにより、クライアント端末の時計部４及びサーバＳの時計部１４が示す時刻は同期した同一時刻を示すこととなる。これにより、今後全ての通信に取り扱われる時刻情報は共通した時刻となる。
【００２８】
続いて、各クライアント端末Ｃ１,Ｃ２…ＣｎのＣＰＵ１は、公開鍵Ｋpと秘密鍵Ｋsとのペアをそれぞれ作成し、この内の公開鍵Ｋpと、自己のＩＤとを通信部６を介してサーバＳへ送信する。
【００２９】
サーバＳは、各クライアント端末Ｃ１，Ｃ２…Ｃｎから受信した各公開鍵Ｋp及びＩＤに、更にリスト番号ｌをそれぞれ付加し、図４に示すようなリストＬを作成する。ここで、リスト番号ｌは、各クライアント端末に個別に割り当てられるユニークな番号であり、サーバＳが各情報に任意に決定する番号である。
【００３０】
サーバＳは、図４に示すリストＬを作成すると、このリストＬのうち、リスト番号lと公開鍵Ｋpのみをクライアント端末へ公開する。
ここで、公開鍵Ｋpは、クライアント端末を特定できる情報を含んでいないため、クライアント端末は、公開されている公開鍵Ｋpからはどのクライアント端末に対応する公開鍵Ｋpであるかを認識することができない。従って、リスト番号ｌ及び公開鍵Ｋpからは、クライアント端末は、どのクライアント端末かを互いに特定することができない。
一方、ＩＤはＩＰアドレスなどを含み、これにより各クライアント端末を特定することができるため、この情報を所有しているサーバＳのみが、各クライアント端末の特定を行うことができる。このため、クライアント端末間の通信は、全て、サーバＳによって制御されることとなる。
【００３１】
（２）申請処理及び発行処理
次に、電子情報の時刻認証の申請及び該申請に対する時刻認証の発行処理について図５〜図８を参照して説明する。
【００３２】
今、図５に示すように、申請者がクライアント端末Ｃaを使用して自己が作成した電子情報Ｆについての時刻認証の申請を行う場合について説明する。
【００３３】
まず、申請を行う場合に、クライアント端末のＣＰＵ１が実行する処理について図６を参照して説明する。
【００３４】
まず、申請者がクライアント端末Ｃaの入力部４を操作し、電子情報Ｆの時刻認証の申請要求を行うと、クライアント端末ＣaのＣＰＵ１は、ＲＡＭ３に記憶されている所定のハッシュ関数Ｈを用いて、電子情報Ｆのハッシュ値Ｈ（Ｆ）を算出する（図６のステップＳＰ１）。
【００３５】
ここで、ハッシュ関数とは、与えられたビット列から固定長のビット列を生成する関数である。生成した値はハッシュ値（又は要約関数、又はメッセージダイジェスト）と呼ばれる。このハッシュ関数は、不可逆な一方向関数を含むため、ハッシュ値から原文を再現することは不可能であり、また、同じハッシュ値を持つ、異なるデータを作成することも極めて困難とされている。
特に、情報の改竄等を調べる際には、有効に活用することができる。また、通信の暗号化の補助やユーザ認証やディジタル署名等にも応用されている。
【００３６】
続いて、サーバＳにより公開されているリストＬの中から他のクライアント端末のリスト番号l、公開鍵Ｋpを任意に選択し（ステップＳＰ２）、選択したリスト番号lを所有するクライアント端末に対して電子情報の時刻認証を申請すべく、申請情報を作成する。なお、本実施形態では、ステップＳＰ２において、リスト番号li，公開鍵Ｋpiを選択したこととする。
【００３７】
続いて、クライアント端末Ｃaは、任意に選択した上記公開鍵Ｋpiを用いて、電子情報Ｆのハッシュ値Ｈ（Ｆ）を暗号化し、暗号化ハッシュ値Ｋpi（Ｈ（Ｆ））を得る（ステップＳＰ３）。
続いて、自己のリスト番号la、選択した公開鍵Ｋpiに対応するリスト番号li、自己の署名Ｋsa、及び上述の暗号化ハッシュ値Ｋpi（Ｈ（Ｆ））、現在時刻ｔcaに基づいて申請情報ＴＳ（a,i）を作成し（ステップＳＰ４）、作成した申請情報ＴＳ（a,i）をサーバＳへ送信する（ステップＳＰ５）。
【００３８】
ここで、ＴＳ（a,i）＝｛la,li,Ｋsa（ｔca,Ｋpi（Ｈ（Ｆ）））｝である。
上記ｔcaは、申請情報ＴＳ（a,i）の現在時刻であるが、現在時刻に代わって申請情報の送信時刻としてもよい。
【００３９】
このように、時刻の認証を希望する電子情報（本実施形態では、電子情報Ｆのハッシュ値Ｈ（Ｆ）を更に所定の方法により暗号化した情報）と、時刻情報とを含む申請情報をサーバＳへ送信することにより、クライアント端末Ｃaは電子情報Ｆの時刻認証の申請をクライアント端末Ｃi、即ちリストＬから任意に選択した相手先に対して行う。
なお、上述したように、リストＬにおいて各クライアント端末に公開されている情報には、クライアント端末を特定するための情報は含まれていないため、クライアントＣaは、相手のクライアントＣiを特定することはできない。
また、電子情報Ｆをハッシュ関数によってハッシュ値にし、更に暗号化して送信することにより、時刻認証を受けた後の電子文書の改竄を防止することができる。
【００４０】
次に、クライアント端末から情報を受信した場合（この場合は、一例として上記申請情報ＴＳ（a,i）を受信した場合）にサーバＳのＣＰＵ１１が実行する処理について図７を参照して説明する。
【００４１】
まず、クライアント端末から申請情報ＴＳ（a,i）を受信すると、申請情報ＴＳ（a,i）から時刻情報ｔcaを抽出し（図７のステップＳＰ１１）、この時刻情報ｔcaとサーバＳが当該申請情報ＴＳ（a,i）を受信した時刻ｔreとの差を算出する（ステップＳＰ１２）。
即ち、当該申請情報ＴＳ（a,i）がクライアント端末Ｃaによって送信されてからサーバＳが当該申請情報ＴＳ（a,i）を受信するまでの時間を算出する。
そして、算出した時間が予め設定されている所定の値以内であるかを判断する（ステップＳＰ１３）。この結果、算出した時間が所定の値以内であった場合には（ステップＳＰ１３において「YES」）、申請情報ＴＳ（a,i）に含まれている時刻情報ｔcaが正当なものであると判断し、当該申請情報ＴＳ（a,i）の構成要素であり、相手先を指定する情報であるリスト番号liに該当するＩＤiをリストＬから取得し（ステップＳＰ１４）、取得したＩＤiを所有するクライアント端末Ｃiへ当該申請情報ＴＳ（a,i）を送信する（ステップＳＰ１５）。
【００４２】
一方、ステップＳＰ１３において、算出した時間が所定の期間以内でなかった場合には（ステップＳＰ１３において「NO」）、申請情報が送信されてからの期間があまりにも長いため、送信時刻の改竄の可能性が高いと判断し、この申請情報の送信元であるクライアント端末Ｃaに対してエラー通知を行う（ステップＳＰ１６）。
【００４３】
次に、サーバＳから情報を受信した場合に、クライアント端末のＣＰＵ１が実行する処理について図８を参照して説明する。
【００４４】
サーバＳから上記申請情報ＴＳ（a,i）を受信したクライアント端末Ｃiは、まず、自己の公開鍵Ｋpiによって暗号化された情報を復号化する（ステップＳＰ２１）。そして、復号化した電子情報情報Ｈ（Ｆ）が自己が保有しているハッシュ値と一致するか否かを判断する（ステップＳＰ２２）。
このとき、クライアント端末Ｃiが申請を行っていない場合には、自己のＲＡＭ３にはハッシュ値が格納されておらず、また、クライアント端末Ｃaと同じようにして時刻認証の申請を行っている場合には、自己が作成した電子文書のハッシュ値が自己のＲＡＭ３に格納されていることとなる。そして、このステップにおいて、受信した情報に含まれているハッシュ値を自己が所有しているハッシュ値と一致するか否かを判断することにより、受信した情報が、自己が申請している時刻認証に対するタイムスタンプであるのか、又は、他のクライアントからの時刻認証の申請情報であるかを識別する。
【００４５】
この結果、受信した情報に含まれているハッシュ値は、クライアントＣaが時刻認証を申請している電子文書のハッシュ値であるので、クライアント端末Ｃiは、当該ハッシュ値を保有していない。従って、受信した情報は、他のクライアントからの時刻認証の申請であると判断でき、ステップＳＰ２２において「NO」となり、続くステップＳＰ２３において、クライアント端末Ｃiは当該申請に対してタイムスタンプを発行する処理を行う。なお、このタイムスタンプは、他のクライアント端末からの時刻認証の申請に対する時刻認証を行う際に発行する証明情報のようなものである。
【００４６】
まず、ステップＳＰ２３では、ＣＰＵ１は、受信した申請情報ＴＳ（a,i）の内、相手のリスト番号laを取得し、この情報に対応する公開鍵ＫpaをサーバＳが公開しているリストＬから取得する。
【００４７】
続いて、リストＬから取得したこの公開鍵Ｋpaを用いて、申請情報ＴＳ（a,i）に含まれていた電子情報のハッシュ値Ｈ（Ｆ）を暗号化して、暗号化ハッシュ値Ｋpa（Ｈ（Ｆ））を得る。
続いて、申請者のリスト番号la、署名Ｋsi、現在時刻ｔci、上記暗号化ハッシュ値Ｋpa（Ｈ（Ｆ））から、タイムスタンプＴＳ（i,a）を作成する。
ここで、タイムスタンプＴＳ（i,a）＝｛li,la,Ｋsi（ｔci,Ｋpa（Ｈ（Ｆ）））｝
である。
そして、タイムスタンプを作成すると、この作成したタイムスタンプをサーバＳに対して送信する（ステップＳＰ２４）。
【００４８】
なお、上述したように、タイムスタンプＴＳ（i,a）は、申請情報ＴＳ（a,i）と同様の書式により構成されている。即ち、自己のリスト番号、送信相手となるクライアント端末のリスト番号、自己の署名、（現在又は送信）時刻、相手の公開鍵によって暗号化されたハッシュ値から構成されている。
【００４９】
続いて、クライアント端末Ｃiから上記タイムスタンプＴＳ（i,a）を受信したサーバＳは、上述と同様、図７に示した処理を実行する。
具体的には、サーバＳのＣＰＵ１１が、タイムスタンプＴＳ（i,a）に含まれている時刻情報ｔciを抽出し（図７のステップＳＰ１１）、この時刻情報ｔciとサーバＳが当該タイムスタンプＴＳ（i,a）を受信した時刻ｔreとの差を算出する（ステップＳＰ１２）。そして、算出した時間が予め設定されている所定の値以内であるかを判断する（ステップＳＰ１３）。この結果、算出した時間が所定の値以内であった場合には（ステップＳＰ１３において「YES」）、タイムスタンプＴＳ（i,a）に含まれている時刻情報が正当なものであると判断し、当該タイムスタンプＴＳ（i,a）の送信先として指定されているリスト番号laに該当するＩＤaをリストＬから取得し（ステップＳＰ１４）、取得したＩＤaを所有するクライアント端末Ｃaへ当該タイムスタンプＴＳ（i,a）を送信する（ステップＳＰ１５）。
なお、ステップＳＰ１３において、算出した時間が予め設定されている所定の値以内でなかった場合には、タイムスタンプＴＳ（i,a）の発行先であるクライアント端末Ｃiに対してエラー通知を行う（ステップＳＰ１６）。
【００５０】
続いて、サーバＳからタイムスタンプＴＳ（i,a）を受信したクライアント端末Ｃaは、まず、自己の秘密鍵によって暗号化された情報を復号化する（図８のステップＳＰ２１）。そして、復号化した電子情報Ｈ（Ｆ）が自己が保有しているハッシュ値と一致するか否かを判断する（ステップＳＰ２２）。
この結果、クライアント端末Ｃaは、当該ハッシュ値Ｈ（Ｆ）を保有しているためハッシュ値は一致し、今、受信した情報ＴＳ（i,a）が、自己の時刻認証の申請に対するタイムスタンプであると判断し、この情報ＴＳ（i,a）を電子情報Ｆに対するタイムスタンプであると認識して、ＲＡＭ３に格納する（ステップＳＰ２５）。
【００５１】
上述したように、本実施形態によれば、各クライアント端末Ｃ１，Ｃ２…Ｃｎが、サーバＳを介して互いに時刻認証の申請と、認証の発行とを行い、また、サーバＳが認証された時刻の正当性を判定するため、特定の機関が時刻認証を集中して行うことを回避することができる。このように、特定の機関が集中して時刻認証を行うのではなく、互いに公平な立場であるクライアント端末が時刻認証を行うため、不当な時刻認証が行われることを防止することができる。これにより、認証された時刻は正当性が極めて高いものとなり、時刻認証の公平性が極めて高いシステムを提供することができる。
【００５２】
また、上記説明において、便宜上、サーバＳが受信した情報が申請情報であるか、タイムスタンプであるかを明記したが、実際は、申請情報もタイムスタンプも同一の書式で構成されているため、サーバＳは、受信した情報が申請情報であるかタイムスタンプであるかを判断できない。
即ち、サーバＳは、受信した情報がどちらの情報であれ、その情報に含まれている時刻を抽出し、その時刻と現在時刻との差が所定値以内であるか否かを判断し、その判断結果に基づいて、その情報を送信先に指定されているクライアント端末へ送信するか否かを判断する。このように、サーバＳが受信した情報を識別できないことにより、サーバＳによる認証時刻の改竄等を防止することが可能となる。
【００５３】
また、各クライアント端末は、サーバＳから受信した情報が、自己が申請した時刻認証に対するタイムスタンプであるのか、或いは、他のクライアント端末からの時刻認証の申請情報であるのかを、図８のステップＳＰ２２に示す処理によって行っている。
具体的には、受信した情報に含まれている暗号化情報を、自己の秘密鍵を用いて解読し、続いて、解読した情報、即ち電子情報のハッシュ値が自己が備えるＲＡＭ３に格納されているか否かにより、上記判断を行っている。
即ち、ハッシュ値がＲＡＭ３に格納されていた場合（ハッシュ値を保有していた場合）には、受信した情報は自己が発した時間認証の申請に対するタイムスタンプであると判断して、このタイムスタンプをＲＡＭ３に保存する。
一方、ハッシュ値がＲＡＭ３に格納されていなかった場合（ハッシュ値を保有していなかった場合）には、受信した情報は他のクライアント端末によって発せられた時刻認証の申請であると判断し、この申請に対するタイムスタンプを作成して発行する。
このように、本発明では、申請とタイムスタントとの双方が同一の書式で構成されているため、サーバＳだけでなく、クライアント端末も一見して受信した情報がどちらの情報であるかを判断することができない。
従って、この判断をハッシュ値の所有の有無によって判断することにより、容易に情報の識別ができるようにしている。
【００５４】
なお、上述した方法の他、送受信する情報（例えば、上述したＴＳ）に、タイムスタンプの申請であるのか、発行であるのか、その他のものであるのかを示すフラグflgを付加し、このflgによって申請、発行、その他を識別するようにしてもよい。
【００５５】
（３）検証処理
次に、上記タイムスタンプの検証処理について説明する。以下、クライアント端末Ｃaが有するタイムスタンプの検証を行う場合について具体的に説明する。
【００５６】
この場合、検証局（例えば、公正な立場の第三の機関や、他のクライアント端末）が、タイムスタンプＴＳ（i,a）の情報と、クライアント端末Ｃaが所有している電子情報Ｆとハッシュ関数Ｈとを取得する。
そして、まず、電子情報Ｆとハッシュ関数Ｈとから電子情報Ｆのハッシュ値Ｈ（Ｆ）を算出する。
続いて、クライアント端末Ｃaの公開鍵Ｋpaを用いて、上記ハッシュ値Ｈ（Ｆ）を暗号化し、暗号化ハッシュ値Ｋpa（Ｈ（Ｆ））を得る。そして、算出した暗号化ハッシュ値Ｋpa（Ｈ（Ｆ））と、タイムスタンプＴＳ（i,a）の暗号化ハッシュ値Ｋpa（Ｈ（Ｆ））とを比較し、これらが同一であった場合には、当該タイムスタンプは正当なものであるとして判断する。
なお、電子情報等が改竄されていた場合には、改竄された電子情報から得られるハッシュ値は異なる情報となるため、暗号化ハッシュ値Ｋpa（Ｈ（Ｆ））もタイムスタンプに含まれている暗号化ハッシュ値Ｋpa（Ｈ（Ｆ））とは異なる値となる。これにより、タイムスタンプの正当性を簡単に判定することができる。
【００５７】
（４）待機処理
なお、時刻認証における改竄等の不正をより防止するために、各クライアント端末が、以下に示す待機処理を所定のタイミングで行うようにしてもよい。
即ち、上述したように、申請とタイムスタンプとの書式を同一にし、サーバＳによる情報の識別を不可能としたとしても、サーバＳにクライアント端末が２台しか接続されていなかった場合、サーバＳがクライアント端末からの情報の流れを追跡することにより、どちらのクライアント端末が申請を行っているかを簡単に識別することができてしまう。
このようなことを防止するために、以下のような贋の申請情報を各クライアント端末が所定のタイミングにおいて送信し合うことにより、サーバＳを攪乱させ、情報の識別を困難にさせる。
【００５８】
具体的には、各クライアント端末が、上述した申請情報と同一の構成からなる贋の申請情報を作成し、サーバＳへ送信する。この贋の申請情報では、通常の申請情報に使用される電子情報のハッシュ値Ｈ（Ｆ）の代わりに、空のデータＤのハッシュ値Ｈ（Ｄ）を使用する。そして、この贋の申請情報を所定のタイミングでサーバＳへ送信することにより、サーバＳを攪乱する。
このように、空のデータを使用した贋の申請情報を送信することにより、クライアント端末の数が少ない場合においても、サーバＳが受信した情報が申請なのかタイムスタンプであるのかを判断できないようにする。
【００５９】
以上、この発明の実施形態を図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【００６０】
【発明の効果】
以上説明したように、本発明の電子情報の時刻認証システムによれば、電子情報の時刻を認証するタイムスタンプの発行はクライアント端末が行うため、タイムスタンプ発行の権限がサーバに集中することを防ぐことができる。このように、特定の機関が集中して時刻認証を行うのではなく、互いに公平な立場であるクライアント端末が時刻認証を行うため、不当な時刻認証を回避することができる。更に、認証された時刻はサーバによってその正当性が判定されるため、認証時刻の正当性を更に高めることができる。
【００６１】
また、本発明の電子情報の時刻認証システムによれば、申請とタイムスタンプの発行とは、同一の書式で構成された所定の情報をサーバへ送信することにより行うので、サーバは同一の書式によって構成された情報を各クライアント端末から受信することとなるため、受信した情報が、時刻認証の申請であるのか、或いは時刻を認証するタイムスタンプであるかを認識することができない。このように、サーバが情報の種類を見分けることができないことにより、サーバによる不正な行為、例えば認証時刻の改竄等を防ぐことができ、時刻認証に対する正当性の判定を極めて公平なものとすることができる。
【００６２】
また、本発明の電子情報の時刻認証システムによれば、申請かタイムスタンプかの識別の判断基準となる情報を送信先のクライアント端末が所有する秘密鍵によって解読できる情報、即ち、秘密鍵と対になる公開鍵によって暗号化した情報として、そのクライアント端末に送信する情報に含ませることにより、受信側のクライアント端末は、その暗号化情報を自己が有する秘密鍵によって解読することにより簡単に上記情報の識別を行うことができる。
【００６３】
また、本発明の電子情報の時刻認証システムによれば、サーバは、全てのクライアントと共有している時刻に基づいて認証する時刻の正当性を判定するため、相対的な時刻に基づいてその情報の正当性を判定することが可能となる。これにより、時刻認証の正当性、公平性を高めることができる。
【００６４】
また、本発明の電子情報の時刻認証システムによれば、各クライアント端末がサーバを介して互いに時刻認証の申請と、認証の発行とを行い、また、サーバが認証された時刻の正当性を判定するため、特定の機関が時刻認証を集中して行うことを回避することができる。このように、特定の機関が集中して時刻認証を行うのではなく、互いに公平な立場であるクライアント端末が時刻認証を行うため、不当な時刻認証が行われることを防止することができる。これにより、認証された時刻は正当性が極めて高いものとなり、時刻認証の公平性が極めて高いシステムを提供することができる。
【００６５】
また、本発明の電子情報の時刻認証システムによれば、所定の書式により作成された情報のうち、電子情報の時刻認証の申請であるか、又は、タイムスタンプであるかを識別する情報は、サーバが解読できない暗号方法によって暗号化されているので、サーバによる認証時刻の改竄を防止することができ、信頼性の高い時刻認証のシステムを構築することが可能となる。
【００６６】
また、本発明の電子情報の時刻認証用プログラムによれば、クライアント端末から所定の書式による情報を受信した場合に、該情報に含まれている時刻の正当性を判断するステップと、時刻が正当であると判断した場合に、情報を所定のクライアント端末へ送信するステップとをコンピュータに実行させるプログラムを電子情報の時刻認証システムにおけるサーバのコンピュータが実行することにより、時刻認定の正当性が極めて高い電子情報の時刻認証システムを構築することができる。
【００６７】
また、本発明の電子情報の時刻認証用プログラムによれば、電子情報の時刻認証の申請をサーバに対して送信するステップと、サーバを介して受信した他のクライアント端末が発行した電子情報の時刻認証の申請に対して、時刻を認証するタイムスタンプをサーバに送信するステップとをコンピュータに実行させるプログラムを電子情報の時刻認証システムにおける各クライアント端末のコンピュータが実行することにより、各クライアント端末が時刻認証の申請と、申請に対する時刻認証を相互に行うことが可能となり、特定の第三機関が集中して時刻認証を行うのではなく、公平な立場である各クライアント端末が時刻認証を行うため、認証時刻の改竄等を防止することができる。
【図面の簡単な説明】
【図１】  本発明の一実施形態による電子情報の時刻認証システムの構成図である。
【図２】  クライアント端末の電気構成を示す図である。
【図３】  サーバＳの電気構成を示す図である。
【図４】  リストＬの一構成例を示す図である。
【図５】  本実施形態における申請処理及び発行処理を具体的に説明するための図である。
【図６】  クライアント端末が電子情報の時刻認証を申請する場合に実行するプログラムを示したフローチャートである。
【図７】  サーバＳが実行するプログラムを示したフローチャートである。
【図８】  クライアント端末がサーバを介して情報を受信した場合に実行するプログラムを示したフローチャートである。
【符号の説明】
１，１１  ＣＰＵ
２，１２  ＲＯＭ
３，１３  ＲＡＭ
４  入力部
５，１４  時計部
６，１５  通信部
Ｃ１，Ｃ２，Ｃa，Ｃi，…Ｃｎ  クライアント端末
Ｓ  サーバ
Ｑ  タイムサーバ
Ｌ  リスト
【図１】
0004028257.tif 000002
【図２】
0004028257.tif 000003
【図３】
0004028257.tif 000004
【図４】
0004028257.tif 000005
【図５】
0004028257.tif 000006
【図６】
0004028257.tif 000007
【図７】
0004028257.tif 000008
【図８】
0004028257.tif 000009