(57)【要約】【課題】安全かつ簡便に相互認証することができる相互認証方法を得る。【解決手段】相互認証プロセスにおいて、クライアント１０及びサーバ４０に初期値の隠蔽鍵Ｋ０を格納する（Ｐｃ０、Ｐｓ０）。クライアント１０は乱数Ｒを生成し暗証データＣ及び認証データＡを計算し、サーバ４０に送信する（Ｐｃ１）。サーバ４０はクライアント１０から認証データＡ及び暗証データＣを受信しかつ乱数Ｑを生成し暗証データＳ、認証データＱを計算し返信し、隠蔽鍵Ｋ０を新規の隠蔽鍵Ｋ１に更新する（Ｐｓ１）。クライアント１０はサーバ４０から認証データＢ及び暗証データＳを受信しかつ乱数Ｒを生成し暗証データＣ２、認証データＡ２を計算しサーバ４０に返信し、隠蔽鍵Ｋ０を新規の隠蔽鍵Ｋ１に更新する（Ｐｃ２）。クライアント１０及びサーバ４０は正当性が成立するか否かを検査する（Ｐｓｍ＋１、Ｐｃｍ＋１）。【選択図】　　　図１
2004023662.tif 000002
【特許請求の範囲】
【請求項１】
通信回線を介して接続された第１認証装置と第２認証装置の相互関係を認証する相互認証方法であって、
前記第１認証装置を特定するための記憶データと、第２認証装置を特定するための記憶データとを、前記第１認証装置及び第２認証装置の間で予め相互になされた認証による認証毎に前回の認証による記憶データを用いて更新した更新結果を履歴データとして、前記第１認証装置及び第２認証装置の各々に共通に記憶する記憶工程と、
前記第１認証装置は、記憶されている履歴データを用いて記憶データを新規に生成しかつ生成した新規の記憶データを前記履歴データを用いて暗号化して第２認証装置に送信する第１送信工程と、前記第２認証装置からの記憶データ及び前記送信した新規の記憶データによって前記履歴データを更新する第１更新工程と、を含み、
前記第２認証装置は、前記第１認証装置からの記憶データ及び記憶されている履歴データを用いて新規に記憶データを生成しかつ生成した新規の記憶データを前記履歴データを用いて暗号化して第１認証装置に送信する第２送信工程と、前記第１認証装置からの記憶データ及び前記送信した新規の記憶データによって前記履歴データを更新する第２更新工程とを含み、
前記第１認証装置及び第２認証装置の少なくとも一方の装置において、履歴データに基づいて記憶データの正当性が成立したときに、第１認証装置と第２認証装置の相互関係が正当であると検証する
ことを特徴とする相互認証方法。
【請求項２】
前記履歴データを履歴データＫとして、該履歴データＫとして記憶する、前記第１認証装置を特定するための記憶データは、暗証データＣ及び認証データＲであり、前記第２認証装置を特定するための記憶データは、暗証データＳ及び認証データＱであることを特徴とする請求項１に記載の相互認証方法。
【請求項３】
前記第１送信工程は、記憶されている履歴データＫの暗証データＳ及び認証データＲを用いて暗証データＣを新規に生成しかつ、記憶されている履歴データＫの認証データＲについて新規に生成し、生成した新規の認証データＲを前記履歴データＫを用いて暗号化して認証データＡを求め、前記認証データＡ及び新規の暗証データＣを第２認証装置に送信し、
前記第１更新工程は、前記第２認証装置からのデータを受信し、前記送信した新規の暗証データＣ、受信した新規に生成された暗証データＳ、受信した新規に生成された認証データＱ、及び前記送信した新規の認証データＲにより、前記履歴データＫを更新し、
前記第２送信工程は、前記第１認証装置からのデータを受信し、受信した新規の暗証データＣ及び記憶されている履歴データＫの認証データＱを用いて暗証データＳを新規に生成しかつ記憶されている履歴データＫの認証データＱについて新規に生成し、生成した新規の認証データＱを記憶した履歴データＫを用いて暗号化して認証データＢを求め、前記認証データＢ及び新規の暗証データＳを第１認証装置に送信し、
前記第２更新工程は、受信した新規の暗証データＣ、新規に生成した暗証データＳ、新規に生成した認証データＱ、及び受信した新規の認証データＲにより、前記履歴データＫを更新し、
前記第１認証装置及び第２認証装置の少なくとも一方の装置において、履歴データＫに基づいて暗証データの正当性が成立したときに、第１認証装置と第２認証装置の相互関係が正当であると検証する
ことを特徴とする請求項２に記載の相互認証方法。
【請求項４】
前記記憶工程は、前記第１送信工程、第１更新工程、第２送信工程、及び第２更新工程における認証による更新結果を履歴データとして記憶することを特徴とする請求項１乃至請求項３の何れか１項に記載の相互認証方法。
【請求項５】
前記認証データＲ及び認証データＱの少なくとも一方は、乱数発生手段により発生された乱数、データ容量、時間データの少なくとも１つであることを特徴とすることを特徴とする請求項２に記載の相互認証方法。
【請求項６】
前記第１認証装置の第１送信工程では、前記暗証データＳ及び認証データＲによる予め定めた関数の演算結果の値を暗証データＣとして生成し、前記第２認証装置の第２送信工程では、前記暗証データＣ及び前記認証データＱによる予め定めた関数の演算結果の値を暗証データＳとして生成することを特徴とする請求項２に記載の相互認証方法。
【請求項７】
前記第１認証装置の第１送信工程では、前記生成した新規の認証データＲ及び前記履歴データＫによる予め定めた関数の演算結果の値を認証データＡとして求め、前記第２認証装置の第２送信工程では、前記生成した新規の認証データＱ及び前記履歴データＫによる予め定めた関数の演算結果の値を認証データＢとして求めることを特徴とする請求項２に記載の相互認証方法。
【請求項８】
前記第１認証装置の検証工程は、前記履歴データＫのうち記憶されている認証データＱ及び前回送信する前に生成した暗証データＣによる予め定めた関数の演算結果の値が受信した暗証データＳと一致するときに前記相互関係が正当であると検証することを特徴とする請求項２に記載の相互認証方法。
【請求項９】
前記第２認証装置の検証工程は、前記履歴データＫのうち記憶されている暗証データＳ及び認証データＲによる予め定めた関数の演算結果の値が受信した暗証データＣと一致するときに前記相互関係が正当であると検証することを特徴とする請求項２に記載の相互認証方法。
【請求項１０】
前記記憶工程は、前記第１送信工程、第２送信工程、第１更新工程及び第２更新工程を複数実施した結果、得られるデータを履歴データＫとして記憶することを特徴とする請求項２に記載の相互認証方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ネットワークに接続されたコンピュータシステム等の装置における相互認証方法にかかり、特に、少なくとも第１認証装置と第２認証装置との間の関係についての正当性を検証する相互認証方法に関する。
【０００２】
【従来の技術】
ネットワーク上において、あるユーザが自分の身元を証明するためには、認証が必要である。認証とは、何らかのプロトコルにより、証明者が自分の身元を検証者に対して証明することであり、電子商取引などの分野において、必須の技術である。例えば、ユーザがサーバに対して、身元を証明したいときは、ユーザが証明者に、サーバが検証者に対応する。また、逆に、サーバがユーザに対して身元を証明したい場合は、サーバが証明者に、ユーザが検証者に対応する。１対１の装置の間では、その立場が反転する場合があるので、相互に認証する相互認証が必要である。
【０００３】
相互認証は、ユーザとサーバの間に限定されず、任意のコンピュータ間での身元を証明する方法として、幅広く利用されている。最近では、公開鍵暗号を用いたものが知られており、証明者は公開鍵と秘密鍵を所持しており、証明者が公開鍵に対応する秘密鍵を所持することを、なんらかのプロトコルにより、検証者に示すことにより、身元を証明している。
【０００４】
【発明が解決しようとする課題】
しかしながら、従来の相互認証方法では、認証に用いる鍵が単一であるため、ひとたび鍵が知られてしまうと、第三者がユーザになりすまして認証される場合がある。また、ユーザは、鍵の保管に注意を払わなければならず、簡便に利用することができなかった。
【０００５】
例えば、インターネットのような非同期型ネットワークでは、複数のコンピュータが同時に通信しており、証明者が複数の検証者と同時にプロトコルを実行する場合がある。ＷＷＷ（Ｗｏｒｌｄ　Ｗｉｄｅ　Ｗｅｂ：ワールド・ワイド・ウェブ）では、ＨＴＴＰ（Ｈｙｐｅｒｔｅｘｔ　Ｔｒａｎｓｆｅｒ　Ｐｒｏｔｏｃｏｌ　：ＷＷＷサーバとＷＷＷブラウザやＷｅｂブラウザ等が、ファイル等の情報授受に使うプロトコル）のサーバと、接続先であるクライアントとの間では、多数の認証が要求される。
【０００６】
本発明は、上記事実を考慮して、安全かつ簡便に相互認証することができる相互認証方法を得ることが目的である。
【０００７】
【課題を解決するための手段】
上記目的を達成するために本発明は、通信回線を介して接続された第１認証装置と第２認証装置の相互関係を認証する相互認証方法であって、前記第１認証装置を特定するための記憶データと、第２認証装置を特定するための記憶データとを、前記第１認証装置及び第２認証装置の間で予め相互になされた認証による認証毎に前回の認証による記憶データを用いて更新した更新結果を履歴データとして、前記第１認証装置及び第２認証装置の各々に共通に記憶する記憶工程と、前記第１認証装置は、記憶されている履歴データを用いて記憶データを新規に生成しかつ生成した新規の記憶データを前記履歴データを用いて暗号化して第２認証装置に送信する第１送信工程と、前記第２認証装置からの記憶データ及び前記送信した新規の記憶データによって前記履歴データを更新する第１更新工程と、を含み、前記第２認証装置は、前記第１認証装置からの記憶データ及び記憶されている履歴データを用いて新規に記憶データを生成しかつ生成した新規の記憶データを前記履歴データを用いて暗号化して第１認証装置に送信する第２送信工程と、前記第１認証装置からの記憶データ及び前記送信した新規の記憶データによって前記履歴データを更新する第２更新工程とを含み、前記第１認証装置及び第２認証装置の少なくとも一方の装置において、履歴データに基づいて記憶データの正当性が成立したときに、第１認証装置と第２認証装置の相互関係が正当であると検証する。
【０００８】
本発明では、第１認証装置を特定するための記憶データと、第２認証装置を特定するための記憶データとを、履歴データとして、前記第１認証装置及び第２認証装置の各々に共通に記憶する。この履歴データは、第１認証装置及び第２認証装置の間で予め相互になされた認証による認証毎に前回の認証による記憶データを用いて更新した更新結果である。第１認証装置は、記憶されている履歴データを用いて新規の記憶データを生成しかつ新規の記憶データを記憶されている履歴データを用いて暗号化して第２認証装置に送信する。これを第２認証装置が受け取り、第２認証装置は第１認証装置からの記憶データ及び記憶されている履歴データを用いて新規の記憶データを生成しかつ新規の記憶データを記憶されている履歴データを用いて暗号化して第１認証装置に送信する。このとき、第１認証装置は、第２認証装置からの記憶データ及び送信した新規の記憶データによって履歴データを更新する。また、第２認証装置は、第１認証装置からの記憶データ及び送信した新規の記憶データによって履歴データを更新する。この送信工程の後は、第１認証装置及び第２認証装置の少なくとも一方の装置において、履歴データに基づいて記憶データの正当性が成立したときに、第１認証装置と第２認証装置の相互関係が正当であると検証する。すなわち、第１認証装置及び第２認証装置の一方の認証装置では、他方の認証装置からの履歴を含むデータを受け取り、記憶されている履歴データと照合することが可能となる。そして送信するときには、記憶されている履歴データから新規で異なる履歴データに基づくデータを送信するので、同一データによる授受はない。このため、秘匿性を向上させることもできる。
【０００９】
より詳細には、前記履歴データを履歴データＫとして、該履歴データＫとして記憶する、前記第１認証装置を特定するための記憶データは、暗証データＣ及び認証データＲであり、前記第２認証装置を特定するための記憶データは、暗証データＳ及び認証データＱであることを特徴とする。
【００１０】
前記第１送信工程は、記憶されている履歴データＫの暗証データＳ及び認証データＲを用いて暗証データＣを新規に生成しかつ、記憶されている履歴データＫの認証データＲについて新規に生成し、生成した新規の認証データＲを前記履歴データＫを用いて暗号化して認証データＡを求め、前記認証データＡ及び新規の暗証データＣを第２認証装置に送信し、前記第１更新工程は、前記第２認証装置からのデータを受信し、前記送信した新規の暗証データＣ、受信した新規に生成された暗証データＳ、受信した新規に生成された認証データＱ、及び前記送信した新規の認証データＲにより、前記履歴データＫを更新し、前記第２送信工程は、前記第１認証装置からのデータを受信し、受信した新規の暗証データＣ及び記憶されている履歴データＫの認証データＱを用いて暗証データＳを新規に生成しかつ記憶されている履歴データＫの認証データＱについて新規に生成し、生成した新規の認証データＱを記憶した履歴データＫを用いて暗号化して認証データＢを求め、前記認証データＢ及び新規の暗証データＳを第１認証装置に送信し、前記第２更新工程は、受信した新規の暗証データＣ、新規に生成した暗証データＳ、新規に生成した認証データＱ、及び受信した新規の認証データＲにより、前記履歴データＫを更新し、前記第１認証装置及び第２認証装置の少なくとも一方の装置において、履歴データＫに基づいて暗証データの正当性が成立したときに、第１認証装置と第２認証装置の相互関係が正当であると検証することを特徴とする。
【００１１】
前記記憶工程は、前記第１送信工程、第１更新工程、第２送信工程、及び第２更新工程における認証による更新結果を履歴データとして記憶することを特徴とする。
【００１２】
前記認証データＲ及び認証データＱの少なくとも一方は、乱数発生手段により発生された乱数、データ容量、時間データの少なくとも１つであることを特徴とする。
【００１３】
前記第１認証装置の第１送信工程では、前記暗証データＳ及び認証データＲによる予め定めた関数の演算結果の値を暗証データＣとして生成し、前記第２認証装置の第２送信工程では、前記暗証データＣ及び前記認証データＱによる予め定めた関数の演算結果の値を暗証データＳとして生成することを特徴とする。
【００１４】
前記第１認証装置の第１送信工程では、前記生成した新規の認証データＲ及び前記履歴データＫによる予め定めた関数の演算結果の値を認証データＡとして求め、前記第２認証装置の第２送信工程では、前記生成した新規の認証データＱ及び前記履歴データＫによる予め定めた関数の演算結果の値を認証データＢとして求めることを特徴とする。
【００１５】
前記第１認証装置の検証工程は、前記履歴データＫのうち記憶されている認証データＱ及び前回送信する前に生成した暗証データＣによる予め定めた関数の演算結果の値が受信した暗証データＳと一致するときに前記相互関係が正当であると検証することを特徴とする。
【００１６】
前記第２認証装置の検証工程は、前記履歴データＫのうち記憶されている暗証データＳ及び認証データＲによる予め定めた関数の演算結果の値が受信した暗証データＣと一致するときに前記相互関係が正当であると検証することを特徴とする。
【００１７】
前記記憶工程は、前記第１送信工程、第２送信工程、第１更新工程及び第２更新工程を複数実施した結果、得られるデータを履歴データＫとして記憶することを特徴とする。
【００１８】
【発明の実施の形態】
以下、図面を参照して本発明の実施の形態の一例を詳細に説明する。本実施の形態は、ネットワークにおいてサーバ・コンピュータとクライアント・コンピュータとの間で相互認証する場合に本発明を適用したものである。
【００１９】
図２には、本発明が適用可能なネットワーク・システムの概略構成が示されている。ネットワークシステムは、ＣＰＵを少なくとも含む一または複数のクライアント・コンピュータ１０、及びＣＰＵを少なくとも含む一または複数のサーバ・コンピュータ４０が、それぞれモデム、ルータ、ＴＡ（ターミナル・アダプタ：Ｔｅｒｍｉｎａｌ　Ａｄａｐｔｅｒ）等を介して、ネットワーク（例えば、インターネット）３２に接続されて構成されている。これらのコンピュータは、ネットワーク３２を介して、相互通信により情報授受が可能である。
【００２０】
なお、図２に示すように、クライアント・コンピュータ１０及びサーバ・コンピュータ４０の各々は１つのコンピュータとして説明するが、これらのクライアント・コンピュータ１０、サーバ・コンピュータ４０は複数台でもよい。
【００２１】
なお、クライアント・コンピュータ１０が本発明の第１認証装置に相当するとき、サーバ・コンピュータ４０が第２認証装置に相当し、サーバ・コンピュータ４０が本発明の第１認証装置に相当するとき、クライアント・コンピュータ１０が第２認証装置に相当する。また、ネットワーク３２は本発明の通信回線に相当する。
【００２２】
本実施の形態では、ネットワークとしてインターネットを適用した場合を説明する。この場合、少なくとも１つのコンピュータは、ＷＷＷ（Ｗｏｒｌｄ　Ｗｉｄｅ　Ｗｅｂ）サーバとして機能させることができ、また他のマシンはＷＷＷクライアントとして機能させることもできる。
【００２３】
詳細には、各クライアント・コンピュータ１０には、ＷＷＷブラウザがインストールされており、このＷＷＷブラウザを起動することにより、ネットワーク３２を介してサーバ・コンピュータ４０に任意にアクセス可能となる。このとき、アクセス位置（アクセス先のサーバ・コンピュータ４０の位置、及びサーバ・コンピュータ４０内の情報の位置で構成されるデータ）は、ＵＲＬ（Ｕｎｉｆｏｒｍ　Ｒｅｓｏｕｒｃｅ　Ｌｏｃａｔｏｒ）で指定される。
【００２４】
サーバ・コンピュータ４０は、クライアント・コンピュータ１０からアクセス要求があった場合、ＵＲＬで指定された位置にあるデータを、ネットワーク３２を介して、アクセス元のクライアント・コンピュータ１０へ送信する。このとき、データは、一般に、ＨＴＴＰ（Ｈｙｐｅｒ　Ｔｅｘｔ　Ｔｒａｎｓｆｅｒ　Ｐｒｏｔｏｃｏｌ）に従って転送される。
【００２５】
なお、クライアント・コンピュータ１０の識別には、ＩＰ（Ｉｎｔｅｒｎｅｔ　Ｐｒｏｔｏｃｏｌ）アドレスが用いられる。また、クライアント・コンピュータ１０を操作するユーザの識別には、ユーザ自身の入力や、予め定められているコード等のユーザＩＤを用いることができる。
【００２６】
上記コンピュータには、当該コンピュータで指示入力をするために、各々キーボード、マウス等の入力装置が設けられており、コンピュータによる処理結果等を表示するためにディスプレイが設けられている。なお、コンピュータは、汎用的かつ一般的なハードウェア構成であるため、詳細な説明を省略する。
【００２７】
クライアント・コンピュータ１０は、システムパラメータ等を入力するための入力装置１２を備えており、入力装置１２は入力に応じた乱数Ｒを発生する乱数発生器１４及びメモリ１６に接続されている。乱数発生器１４は、メモリ１６及び乱数Ｒに基づく認証用データＡを求める認証用データ演算器１８に接続されている。認証用データ演算器１８は、ネットワーク３２を介してサーバ・コンピュータ４０と通信するためにネットワーク３２に接続された通信インタフェース（以下、通信Ｉ／Ｆという）３０に接続されている。
【００２８】
通信Ｉ／Ｆ３０には、検証器２０が接続されている。この検証器２０はメモリ１６及び認証用データ演算器１８にも接続されている。また、検証器２０は、サーバ・コンピュータ４０との間で認証したときに、認証により相互関係が正当であると判定されたことを表示するＯＫ装置２２及び認証により相互関係が不当であると判定されたことを表示するＮＧ装置２４にも接続されている。
【００２９】
サーバ・コンピュータ４０は、システムパラメータ等を入力するための入力装置４２を備えており、入力装置４２は入力に応じた乱数Ｑを発生する乱数発生器４４及びメモリ４６に接続されている。乱数発生器４４は、メモリ４６及び乱数Ｒに基づく認証用データＢを求める認証用データ演算器４８に接続されている。認証用データ演算器４８は、ネットワーク３２を介してクライアント・コンピュータ１０と通信するために通信Ｉ／Ｆ６０に接続されている。
【００３０】
通信Ｉ／Ｆ６０には、検証器５０が接続されている。この検証器５０はメモリ４６及び認証用データ演算器４８にも接続されている。また、検証器５０は、クライアント・コンピュータ１０との間で認証したときに、認証により相互関係が正当であると判定されたことを表示するＯＫ装置５２及び認証により相互関係が不当であると判定されたことを表示するＮＧ装置５４にも接続されている。
【００３１】
〔概念プロセス〕
次に、本実施の形態のネットワーク・システムにおける相互認証の概念プロセスを説明する。本実施の形態では、コンピュータ間の相互認証をデジタルデータの授受で実行する。図３には、相互認証の概念プロセスをフローチャートとして示した。
【００３２】
ステップ１００では、クライアント・コンピュータ１０及びサーバ・コンピュータ４０は、予め定めた手順により、双方に共通な初期値（隠蔽鍵Ｋ０）を記憶する。
【００３３】
予め定めた手順とは、クライアント・コンピュータ１０及びサーバ・コンピュータ４０の間の相互認証を実行するときの初期値を設定するものである。例えば、クライアント・コンピュータ１０及びサーバ・コンピュータ４０に共通なデータを初期値として保持させるため、クライアント・コンピュータ１０及びサーバ・コンピュータ４０の何れか一方、または第三者のコンピュータによって定められる初期値を、クライアント・コンピュータ１０及びサーバ・コンピュータ４０の双方へ提供する。この提供は、初期値を電子メールなどの電子的にデータ送信することや、初期値を印刷した印刷物をクライアント・コンピュータ１０及びサーバ・コンピュータ４０の双方に送付してクライアント・コンピュータ１０及びサーバ・コンピュータ４０の各々で入力することによって達成される。
【００３４】
本実施の形態では、この初期値として、クライアント・コンピュータ１０及びサーバ・コンピュータ４０の双方で共通な状態を維持するため、クライアント・コンピュータ１０とサーバ・コンピュータ４０との間でなされるデータ授受の履歴を初期値とし、後のクライアント・コンピュータ１０とサーバ・コンピュータ４０との間でなされるデータ授受毎に初期値を更新する。
【００３５】
すなわち、上記初期値は、クライアント・コンピュータ１０及びサーバ・コンピュータ４０の双方に共通な値であればよく、上記のように任意の値を提供することで双方で保持してもよいが、クライアント・コンピュータ１０及びサーバ・コンピュータ４０の双方で共通な状態を維持するため、任意のアルゴリズムによるクライアント・コンピュータ１０及びサーバ・コンピュータ４０の間のデータ授受の結果が好ましい。本実施の形態では、任意のアルゴリズムには、送信側と受信側との双方のデータを送信側及び受信側の双方で共通に保持する手順で可能であり、詳細を後述する相互認証の結果のデータを用いている。
【００３６】
なお、クライアント・コンピュータ１０及びサーバ・コンピュータ４０の双方に記憶するデータの形式（例えばフォーマット）は、同一に限定するものではない。すなわち、クライアント・コンピュータ１０及びサーバ・コンピュータ４０の双方に記憶するデータは、そのデータの最終的な値が同一であればよく、データそのものの同一性に限定されない。例えば、異なる形式で格納するようにしてもよい。このようにすれば、一方のデータが漏洩した場合であっても、他方のデータは維持可能となる。
【００３７】
まず、ステップ１１０では、クライアント・コンピュータ１０が、認証データを送付する。この認証データは、クライアント・コンピュータ１０からサーバ・コンピュータ４０に対して相互認証を要求する最初のデータであり、記憶されている初期値を隠蔽鍵として用い、クライアント・コンピュータ１０内で生成されるデータを記憶すると共に隠蔽鍵による暗号化を行って、送付する。
【００３８】
次に、ステップ１２０では、サーバ・コンピュータ４０において、クライアント・コンピュータ１０から送付された認証データを受け取って、記憶されている初期値を隠蔽鍵として用い、この時点でサーバ・コンピュータ４０内で生成されるデータを記憶すると共に隠蔽鍵による暗号化を行った認証データを送付する。なお、認証データには、クライアント・コンピュータ１０から受け取った認証データに含まれる一部のデータを含ませる。
【００３９】
これにより、サーバ・コンピュータ４０から送付する認証データがクライアント・コンピュータ１０からの要求に対する応答であることを表すデータとして送付することができる。この認証データを送付した後には、受け取った認証データを解析すると共に、サーバ・コンピュータ４０内で生成したデータの各々を用いて新規の隠蔽鍵を生成すると共に、新規の隠蔽鍵で、記憶されている隠蔽鍵を更新する。
【００４０】
次に、ステップ１３０では、クライアント・コンピュータ１０において、サーバ・コンピュータ４０から送付された認証データを受け取って、記憶されている初期値を隠蔽鍵として用い、この時点でクライアント・コンピュータ１０内で生成されるデータを記憶すると共に隠蔽鍵による暗号化を行った認証データを送付する。なお、認証データには、サーバ・コンピュータ４０から受け取った認証データに含まれる一部のデータを含ませる。
【００４１】
これにより、クライアント・コンピュータ１０から送付する認証データがサーバ・コンピュータ４０から送付されたものに対する応答であることを表すデータとして送付することができる。この認証データを送付した後には、受け取った認証データを解析すると共に、クライアント・コンピュータ１０内で生成したデータの各々を用いて新規の隠蔽鍵を生成すると共に、新規の隠蔽鍵で、記憶されている隠蔽鍵を更新する。
【００４２】
従って、ステップ１３０のプロセスが終了した時点で、クライアント・コンピュータ１０及びサーバ・コンピュータ４０の双方において、初期値（隠蔽鍵）が更新されて、共通の値（隠蔽鍵）として維持することができる。
【００４３】
次のステップ１４０では、クライアント・コンピュータ１０及びサーバ・コンピュータ４０の双方のプロセスが予め定めた所定回数を完了したか否かを判断する。この判断基準回数は、少なくとも１回の回数が予め設定されており、本実施の形態では、クライアント・コンピュータ１０及びサーバ・コンピュータ４０の双方に共通の回数の値が保持される。なお、判断基準回数は、クライアント・コンピュータ１０及びサーバ・コンピュータ４０の各々で異なる回数の値を保持してもよい。この場合には、クライアント・コンピュータ１０及びサーバ・コンピュータ４０の各々で認証の基準が異なることになるが、認証が正当であれば判断基準回数が少ないコンピュータ側で複数回のデータ授受が要求されることのみで達成できる。この回数を参照することで、クライアント・コンピュータ１０では、ステップ１４０の更新処理、サーバ・コンピュータ４０ではステップ１２０の更新処理が保持されている回数を終了するまで否定される。判断基準回数が１回に設定されている場合には、ステップ１４０で否定されることなく、そのままステップ１５０へ進む。
【００４４】
従って、ステップ１４０で肯定判断された時点で、クライアント・コンピュータ１０及びサーバ・コンピュータ４０の双方において、共に値（隠蔽鍵）が更新されて、双方で共通の値（隠蔽鍵）が維持されることになる。すなわち、クライアント・コンピュータ１０及びサーバ・コンピュータ４０の双方で保持する隠蔽鍵が情報授受毎に新規なものに更新され、常時最新の隠蔽鍵として維持することができる。
【００４５】
ステップ１５０では、クライアント・コンピュータ１０及びサーバ・コンピュータ４０の双方において、認証処理が実行されて本プロセスを終了する。
【００４６】
上記認証処理は、記憶されている最新の隠蔽鍵を用いて、送付された認証データが正当かデータであるか否かを判別することによってなされる。この認証処理は、クライアント・コンピュータ１０及びサーバ・コンピュータ４０の双方において共通に実行できる。この認証処理が完了すると、クライアント・コンピュータ１０及びサーバ・コンピュータ４０の双方において相互認証が完了したことになる。
【００４７】
〔詳細プロセス〕
次に、上記概念プロセスで述べた相互認証を詳細に説明する。
【００４８】
（隠蔽鍵を含むデータの構成）
本実施の形態では、隠蔽鍵は、情報授受毎に最新データに更新されるため、履歴データＫとして機能する。以下の説明では、この履歴データＫとして機能するものとして隠蔽鍵Ｋを同一表記とする。
【００４９】
上記概念プロセスで認証データとして用いる初期値を含む隠蔽鍵Ｋは、クライアント・コンピュータ１０を特定するための暗証データＣ及び認証データＲと、サーバ・コンピュータ４０を特定するための暗証データＳ及び認証データＱと、から構成される。なお、以下の説明では、隠蔽鍵Ｋ、暗証データＣ、認証データＲ、暗証データＳ及び認証データＱに初期値「０」から増加する添え字を付し、更新状態を表すものとするが、これらを一般的に説明する場合には添え字を削除した記号のみを用いて説明する。
【００５０】
本実施の形態では、初期値として、詳細を後述するクライアント・コンピュータ１０及びサーバ・コンピュータ４０の双方でなされたデータ授受の結果を記憶するものとし、既に履歴データが内在するものとする。
【００５１】
隠蔽鍵Ｋは、暗証データＣ、認証データＲ、暗証データＳ及び認証データＱの各々を用いた関数ｇ（Ｃ，Ｓ，Ｑ，Ｒ）の計算結果を用いる。関数ｇは、単純和や係数付加の多項式、乗算、積和そしてハッシュ関数が一例としてある。
【００５２】
また、クライアント・コンピュータ１０側の初期値Ｃ０，Ｒ０を生成するための最初の値は、暗証データＣ及び認証データＲについてユーザが設定した値を用いてもよく、自動的に生成してもよい。認証データＲは情報授受毎に内容が無規則で変動することが好ましいので、本実施の形態では、認証データＲとして乱数発生器１４で発生された乱数を用いている。しかし、本発明は、認証データＲに乱数を用いることに限定されるものではない。例えば、現在年月日、日時、時刻などの時間データ、コンピュータ内に格納された任意ファイル容量やタイムスタンプ、及び情報授受のときの容量などを用いることができる。
【００５３】
同様に、サーバ・コンピュータ４０側の初期値Ｓ０，Ｑ０を生成するための最初の値は、暗証データＳ及び認証データＱについてサーバ・コンピュータ４０を管理するオペレータが設定した値を用いてもよく、自動的に生成してもよい。上記と同様に認証データＱは情報授受毎に内容が無規則で変動することが好ましいので、本実施の形態では、認証データＱとして乱数発生器４４で発生された乱数を用いている。しかし、本発明は、認証データＱに乱数を用いることに限定されるものではない。例えば、現在年月日、日時、時刻などの時間データ、コンピュータ内に格納された任意ファイル容量やタイムスタンプ、及び情報授受のときの容量などを用いることができる。
【００５４】
また、クライアント・コンピュータ１０側の認証データＲ、及びサーバ・コンピュータ４０側の認証データＱを他方へ送信するが、その送信データについて第三者による特定を困難にするため、秘匿する必要がある。そこで、本実施の形態では、クライアント・コンピュータ１０からサーバ・コンピュータ４０へ送信する認証データＲ、及びサーバ・コンピュータ４０からクライアント・コンピュータ１０へ送信する認証データＱを隠蔽鍵Ｋで隠蔽する。
【００５５】
すなわち、クライアント・コンピュータ１０からサーバ・コンピュータ４０へ送信する場合、予め定めた関数ｖ（Ｒ，Ｋ）により認証データＡを生成して送信する。関数ｖは、単純和や係数付加の多項式、乗算、積和そしてハッシュ関数が一例としてある。同様に、サーバ・コンピュータ４０からクライアント・コンピュータ１０へ送信する場合も、予め定めた関数ｗ（Ｑ，Ｋ）により認証データＢを生成して送信する。関数ｗは、単純和や係数付加の多項式、乗算、積和そしてハッシュ関数が一例としてある。次に、関数ｖ、ｗの一例を示す。
【００５６】
Ａｍ＝ｖ（Ｒ，Ｋ）＝Ｒｍ＋Ｋｍ−１
Ｂｍ＝ｗ（Ｑ、Ｋ）＝Ｑｍ＋Ｋｍ−１
ただし、ｍ≧１の自然数である。
【００５７】
また、クライアント・コンピュータ１０側の暗証データＣ、及びサーバ・コンピュータ４０側の暗証データＳを他方へ送信するが、以下に説明するように、暗証データは情報授受の度に変更している。すなわち、クライアント・コンピュータ１０からサーバ・コンピュータ４０へ送信する暗証データＣは、その送信するときに予め定めた関数ｙ（Ｓ，Ｒ）により新規の暗証データＣを生成して送信する。関数ｙは、単純和や係数付加の多項式、乗算、積和そしてハッシュ関数が一例としてある。同様に、サーバ・コンピュータ４０からクライアント・コンピュータ１０へ送信する場合も、予め定めた関数ｚ（Ｃ，Ｑ）により暗証データＳを生成して送信する。関数ｚは、単純和や係数付加の多項式、乗算、積和そしてハッシュ関数が一例としてある。次に、関数ｙ、ｚの一例を示す。
【００５８】
Ｃｍ＝ｙ（Ｓ，Ｒ）＝Ｓｍ−１＋Ｒｍ−１
Ｂｍ＝ｗ（Ｃ、Ｑ）＝Ｃｍ−１＋Ｑｍ−１
ただし、ｍ≧１の自然数である。
【００５９】
なお、暗証データの送信では、第三者による特定を困難にするため、秘匿してもよい。例えば、クライアント・コンピュータ１０からサーバ・コンピュータ４０へ送信する暗証データＣ、及びサーバ・コンピュータ４０からクライアント・コンピュータ１０へ送信する暗証データＳを隠蔽鍵Ｋで隠蔽するようにしてもよい。すなわち、隠蔽鍵Ｋをパラメータとして追加した関数にしてもよい。
【００６０】
（詳細プロセス）
次に、図１を参照して本実施の形態の詳細プロセスを説明する。
ステップＰ０：クライアント・コンピュータ１０及びサーバ・コンピュータ４０の各々に、初期値の隠蔽鍵Ｋ０を格納する。このプロセスは、図３のステップ１００と、図１のプロセスＰｃ０及びＰｓ０に相当する。
【００６１】
ステップＰ１：クライアント・コンピュータ１０では、乱数Ｒを生成し、暗証データＣ及び認証データＡを計算し、サーバ・コンピュータ４０に送信する。このプロセスは、図３のステップ１１０と、図１のプロセスＰｃ１に相当する。
【００６２】
すなわち、クライアント・コンピュータ１０では、乱数発生器１４において乱数Ｒ１を生成する。生成された乱数Ｒ１、メモリ１６に記憶されている隠蔽鍵Ｋ０及び隠蔽鍵Ｋ０を構成するＣ０，Ｓ０，Ｑ０，Ｒ０は認証用データ演算器１８へ入力される。そして、認証用データ演算器１８は、その乱数Ｒ１及びメモリ１６に記憶されている隠蔽鍵Ｋ０及び隠蔽鍵Ｋ０を構成する暗証データＳ０、認証データＲ０を用いて上記関数ｙ、ｖにより新規の暗証データＣ１、及び新規の認証データＡ１を求める。この求めた新規の暗証データＣ１、及び認証データＡ１はメモリ１６に記憶すると共に、通信Ｉ／Ｆ３０に出力され、ネットワーク３２を介してサーバ・コンピュータ４０へ送信される。この送信データは、図１のデータＤｃ１に相当する。
【００６３】
ステップＰ２：サーバ・コンピュータ４０は、クライアント・コンピュータ１０から認証データＡ及び暗証データＣを受信すると共に、乱数Ｑを生成し暗証データＳ、認証データＱを計算しクライアント・コンピュータ１０に送信する。これと共に、記憶されている隠蔽鍵Ｋ０を新規の隠蔽鍵Ｋ１に更新する。このプロセスは、図３のステップ１２０と、図１のプロセスＰｓ１に相当する。
【００６４】
すなわち、サーバ・コンピュータ４０では、通信Ｉ／Ｆ６０を介して検証器５０にクライアント・コンピュータ１０からの暗証データＣ１及び認証データＡ１が入力される。このとき、サーバ・コンピュータ４０では、乱数発生器４４において乱数Ｑ１を生成する。生成された乱数Ｑ１、メモリ４６に記憶されている隠蔽鍵Ｋ０及び隠蔽鍵Ｋ０を構成するＣ０，Ｓ０，Ｑ０，Ｒ０は認証用データ演算器４８へ入力される。また、検証器５０は、クライアント・コンピュータ１０からの暗証データＣ１及び認証データＡ１を認証用データ演算器４８へ出力する。
【００６５】
認証用データ演算器４８は、その乱数Ｑ１、受信した暗証データＣ１及び記憶されている隠蔽鍵Ｋ０及び隠蔽鍵Ｋ０を構成する認証データＱ０を用いて上記関数ｚ、ｗにより新規の暗証データＳ１、及び新規の認証データＢ１を求める。この求めた新規の暗証データＳ１、及び認証データＢ１は通信Ｉ／Ｆ６０に出力され、ネットワーク３２を介してクライアント・コンピュータ１０へ送信される。この送信データは、図１のデータＤｓ１に相当する。
【００６６】
このとき、サーバ・コンピュータ４０では、初期値としての隠蔽鍵Ｋ０を構成する各データについて新規のデータが入手できている。すなわち、暗証データＣについてはクライアント・コンピュータ１０から受信した暗証データＣ１、暗証データＳについては認証用データ演算器４８で計算した暗証データＳ１、認証データＱについては乱数発生器４４で発生した乱数Ｑ１、認証データＲについてはクライアント・コンピュータ１０から受信した認証データＡから逆算すなわち隠蔽鍵Ｋ０を減算することで得られる乱数Ｒ１である。
【００６７】
そこで、これらの暗証データＣ１、暗証データＳ１、認証データＱ１、認証データＲ１を、新規のデータとして更新すると共に、新規の隠蔽鍵Ｋ１として更新する。これによって、サーバ・コンピュータ４０では、隠蔽鍵Ｋの履歴として最新のデータに自動的に更新することができる。
【００６８】
ステップＰ３：クライアント・コンピュータ１０は、サーバ・コンピュータ４０から認証データＢ及び暗証データＳを受信すると共に、乱数Ｒを生成し暗証データＣ２、認証データＡ２を計算しサーバ・コンピュータ４０に送信する。これと共に、記憶されている隠蔽鍵Ｋ０を新規の隠蔽鍵Ｋ１に更新する。このプロセスは、図３のステップ１３０と、図１のプロセスＰｃ２に相当する。
【００６９】
すなわち、クライアント・コンピュータ１０では、通信Ｉ／Ｆ３０を介して検証器２０にサーバ・コンピュータ４０からの暗証データＳ１及び認証データＢ１が入力される。このとき、クライアント・コンピュータ１０では、乱数発生器１４において乱数Ｒ２を生成する。生成された乱数Ｑ２、メモリ４６に記憶されている隠蔽鍵Ｋ０及び隠蔽鍵Ｋ０を構成するＣ０，Ｓ０，Ｑ０，Ｒ０は認証用データ演算器１８へ入力される。また、検証器２０は、サーバ・コンピュータ４０からの暗証データＳ１及び認証データＢ１を認証用データ演算器１８へ出力する。
【００７０】
このとき、クライアント・コンピュータ１０では、初期値としてメモリ１６に記憶されている隠蔽鍵Ｋ０を構成する各データについて新規のデータ（新規の隠蔽鍵Ｋ１を構成するデータ）が入手できている。すなわち、暗証データＣについてはサーバ・コンピュータ４０から受信した暗証データＳ１から逆算すなわち隠蔽鍵Ｋ０を構成したメモリ１６に記憶されている認証データＱ０を減算することで得られる暗証データＣ１、またはメモリ１６に記憶されている前回送信した暗証データＣ１が対応する。暗証データＳについてはサーバ・コンピュータ４０から受信した暗証データＳ１、認証データＱについてはサーバ・コンピュータ４０から受信した認証データＢ１から逆算すなわち隠蔽鍵Ｋ０を減算することで得られる認証データＱ１、認証データＲについては前回生成した乱数Ｒ１である。
【００７１】
そこで、これらの暗証データＣ１、暗証データＳ１、認証データＱ１、認証データＲ１を、新規のデータとして更新すると共に、新規の隠蔽鍵Ｋ１として更新する。これによって、クライアント・コンピュータ１０では、サーバ・コンピュータ４０と同一の隠蔽鍵Ｋを、最新のデータに自動的に更新することができる。
【００７２】
また、認証用データ演算器１８は、生成した乱数Ｒ２、更新した履歴データＫ１の認証データＲ１、受信した暗証データＳ１及び新規の隠蔽鍵Ｋ１を用いて上記関数ｙ、ｖにより新規の暗証データＣ２、及び新規の認証データＡ２を求める。この求めた新規の暗証データＣ２、及び認証データＡ２はメモリ１６に記憶すると共に、通信Ｉ／Ｆ３０に出力され、ネットワーク３２を介してサーバ・コンピュータ４０へ送信される。この送信データは、図１のデータＤｃ２に相当する。
【００７３】
ステップＰ４：上記ステップＰ２及びＰ３のプロセスを所定回数ｍだけ実行する。なお、本実施の形態では、所定回数ｍは、少なくとも１回のデータ授受を含む。このため、繰り返しを行わない回数（ｍ＝１）を含むものである。すなわち、クライアント・コンピュータ１０とサーバ・コンピュータ４０との間でなされるデータ授受のときには、既に双方でなされたデータ授受の履歴データが利用されるため、１回のデータ授受であっても、その授受のときにはクライアント・コンピュータ１０とサーバ・コンピュータ４０との間の履歴を含んでデータ授受がなされるため、単なるデータ授受ではなく、履歴データの授受となるので有効である。上記ステップＰ２及びＰ３のプロセスを複数回数だけ繰り返すことは、データの正当性の判断精度向上に有効である。
【００７４】
すなわち、上記処理を繰り返すプロセスは、繰り返す回数すなわち実行回数を複数回予め定めておくことで、隠蔽鍵Ｋの値が更新されることで変動し、その変動を第三者が把握することを抑制することが可能になる。このように複数回とすることで、クライアント・コンピュータ１０及びサーバ・コンピュータ４０で共通に保持する隠蔽鍵Ｋは複数回数だけ今までの履歴に従って最新の状態に更新されるので、隠蔽鍵Ｋを導出することが困難になる。
【００７５】
ステップＰ２及びＰ３のプロセスを所定回数ｍだけ実行した結果、クライアント・コンピュータ１０及びサーバ・コンピュータ４０の各々には、隠蔽鍵Ｋｍ及び隠蔽鍵Ｋｍを構成するＣｍ，Ｓｍ，Ｑｍ，Ｒｍの値が保持される。なお、ｍ＝１のときは、１回のデータ授受の値が保持される。
【００７６】
なお、処理を繰り返す実行プロセスは、図３のステップ１４０の判断によるプロセス実行と、図１のプロセスＰｃ２からＰｓｍ及びＰｃｍのプロセスについて、プロセスＰｃ１からＰｓ１及びＰｃ２のプロセスを繰り返したことに相当する。
【００７７】
ステップＰ５：上記プロセスが終了した後に、クライアント・コンピュータ１０及びサーバ・コンピュータ４０の各々では、受信したデータの正当性が成立するか否かを検査し、成立すれば相互認証が成功したものとして両者の関係を許諾し、非成立のときは相互認証が不成功であるとして両者の関係を拒否する。このプロセスは、図３のステップ１５０と、図１のプロセスＰｓｍ＋１及びＰｃｍ＋１に相当する。
【００７８】
１回の実行の後に認証する場合には、クライアント・コンピュータ１０から１回目のデータ送信がなされるが、そのときクライアント・コンピュータ１０は、クライアント・コンピュータ１０とサーバ・コンピュータ４０との履歴を含む初期値として記憶された隠蔽鍵Ｋ０、により生成される、認証データＡ１、及び暗証データＣ１をサーバ・コンピュータ４０へ送信する。このプロセスは、図１のプロセスＰｃ１の後にデータＤｃ１を送信することに相当する。
【００７９】
サーバ・コンピュータ４０では、通信Ｉ／Ｆ６０を介して検証器５０にクライアント・コンピュータ１０からの暗証データＣ１及び認証データＡ１が入力され、暗証データＣ１について検証器５０において正当性を検証する。受信した暗証データＣ１は、前回の履歴のデータに基づいて生成されているため、サーバ・コンピュータ４０では、最新の状態に更新記憶されている隠蔽鍵Ｋ０（ここでは初期値）を構成する暗証データＳ０及び認証データＲ０を用いて上述の関数ｙの計算結果と、受信したデータが一致するか否かを判別し、一致する場合は正当性を認め不一致の場合は正当性を否定する。正当性が認められたときには、ＯＫ装置５２で正当性があることを報知した後に処理を継続し、否認されたときにはＮＧ装置５４で不当であることを報知した後に処理を終了する。
【００８０】
正当性が認められて処理が継続されたときには、上記ステップＰ２と同様にして、乱数発生器４４において乱数Ｑ１を生成し、認証用データ演算器４８において暗証データＳ１、認証データＢ１を生成して、クライアント・コンピュータ１０へ送信すると共に、隠蔽鍵を最新の隠蔽鍵Ｋ１に更新する。
【００８１】
この認証プロセスは、図１のプロセスＰｓｍ＋１の処理に相当する。この場合、繰り返して実行していないので、ｍ＝０で処理したことに相当する。すなわち、クライアント・コンピュータ１０からサーバ・コンピュータ４０へデータを送信する毎に、サーバ・コンピュータ４０側でクライアント・コンピュータ１０から受け取った履歴を含むデータを用いて認証を行うことができる。
【００８２】
一方、クライアント・コンピュータ１０では、通信Ｉ／Ｆ３０を介して検証器２０にサーバ・コンピュータ４０からの暗証データＳ１及び認証データＢ１が入力される。クライアント・コンピュータ１０では、暗証データＳ１について検証器２０において正当性を検証する。受信した暗証データＳ１は、暗証データＣと同様に前回の履歴のデータに基づいてサーバ・コンピュータ４０において生成されているため、クライアント・コンピュータ１０では、最新の状態に更新記憶されている隠蔽鍵Ｋ０（ここでは初期値）を構成する暗証データＣ０及び認証データＱ０を用いて上述の関数ｚの計算結果と、受信したデータが一致するか否かを判別し、一致する場合は正当性を認め不一致の場合は正当性を否定する。正当性が認められたときには、ＯＫ装置２２で正当性があることを報知した後に処理を継続し、否認されたときにはＮＧ装置２４で不当であることを報知した後に処理を終了する。
【００８３】
正当性が認められて処理が継続されたときには、クライアント・コンピュータ１０とサーバ・コンピュータ４０との間で実行すべき処理へと移行する。なお、クライアント・コンピュータ１０では、サーバ・コンピュータ４０との履歴データＫの同一性を維持するため、上記ステップＰ３と同様にして、隠蔽鍵を最新の隠蔽鍵Ｋ１に更新する。
【００８４】
この認証プロセスは、図１のプロセスＰｃｍ＋１の処理に相当する。この場合、繰り返して実行していないので、ｍ＝０で処理したことに相当する。すなわち、サーバ・コンピュータ４０からクライアント・コンピュータ１０へデータを送信する毎に、クライアント・コンピュータ１０側でサーバ・コンピュータ４０から受け取った履歴を含むデータを用いて認証を行うことができる。
【００８５】
なお、クライアント・コンピュータ１０からサーバ・コンピュータ４０へデータを送信する毎に、またはサーバ・コンピュータ４０からクライアント・コンピュータ１０へデータを送信する毎に、受け取り側で認証を行うことを含めた処理をセッションとして、この認証を含めたセッションを複数回実行してもよい。
【００８６】
次に、複数回の実行を繰り返した後に認証する場合を説明する。この場合には、クライアント・コンピュータ１０からｍ回目のデータ送信がなされ、クライアント・コンピュータ１０は、ｍ回の繰り返しによって更新された隠蔽鍵Ｋｍ、により、サーバ・コンピュータ４０へ認証データＡｍ＋１、及び暗証データＣｍ＋１を送信する。このプロセスは、図１のプロセスＰｃｍの後にデータＤｃｍ＋１を送信することに相当する。
【００８７】
まず、サーバ・コンピュータ４０では、通信Ｉ／Ｆ６０を介して検証器５０にクライアント・コンピュータ１０からの暗証データＣｍ＋１及び認証データＡｍ＋１が入力される。サーバ・コンピュータ４０では、暗証データＣｍ＋１について検証器５０において正当性を検証する。受信した暗証データＣｍ＋１は、前回の履歴のデータに基づいて生成されているため、サーバ・コンピュータ４０では、最新の状態に更新記憶されている隠蔽鍵Ｋｍを構成する暗証データＳｍ及び認証データＲｍを用いて上述の関数ｙの計算結果と、受信したデータが一致するか否かを判別し、一致する場合は正当性を認め不一致の場合は正当性を否定する。正当性が認められたときには、ＯＫ装置５２で正当性があることを報知した後に処理を継続し、否認されたときにはＮＧ装置５４で不当であることを報知した後に処理を終了する。
【００８８】
正当性が認められて処理が継続されたときには、上記ステップＰ２と同様にして、乱数発生器４４において乱数Ｑｍ＋１を生成し、認証用データ演算器４８において暗証データＳｍ＋１、認証データＢｍ＋１を生成して、クライアント・コンピュータ１０へ送信すると共に、隠蔽鍵を最新の隠蔽鍵Ｋｍ＋１に更新する。この認証プロセスは、図１のプロセスＰｓｍ＋１の処理に相当する。
【００８９】
一方、クライアント・コンピュータ１０では、通信Ｉ／Ｆ３０を介して検証器２０にサーバ・コンピュータ４０からの暗証データＳｍ＋１及び認証データＢｍ＋１が入力される。クライアント・コンピュータ１０では、暗証データＳｍ＋１について検証器２０において正当性を検証する。受信した暗証データＳｍ＋１は、暗証データＣと同様に前回の履歴のデータに基づいてサーバ・コンピュータ４０において生成されているため、クライアント・コンピュータ１０では、最新の状態に更新記憶されている隠蔽鍵Ｋｍを構成する暗証データＣｍ及び認証データＱｍを用いて上述の関数ｚの計算結果と、受信したデータが一致するか否かを判別し、一致する場合は正当性を認め不一致の場合は正当性を否定する。正当性が認められたときには、ＯＫ装置２２で正当性があることを報知した後に処理を継続し、否認されたときにはＮＧ装置２４で不当であることを報知した後に処理を終了する。
【００９０】
正当性が認められて処理が継続されたときには、クライアント・コンピュータ１０とサーバ・コンピュータ４０との間で実行すべき処理へと移行する。なお、クライアント・コンピュータ１０では、サーバ・コンピュータ４０との履歴データＫの同一性を維持するため、上記ステップＰ３と同様にして、隠蔽鍵を最新の隠蔽鍵Ｋｍ＋１に更新する。この認証プロセスは、図１のプロセスＰｃｍ＋１の処理に相当する。
【００９１】
このように、本実施の形態では、クライアント・コンピュータ１０とサーバ・コンピュータ４０との間の相互認証をするときに、双方で共通の隠蔽鍵Ｋを有し、その隠蔽鍵Ｋを情報授受毎に更新している。このため、情報授受のときのデータを解析しても、認証用のデータを特定することが困難であり、秘匿性を向上することができ、確実に相互認証が可能となる。
【００９２】
上記では、クライアント・コンピュータ１０とサーバ・コンピュータ４０との間を例にして説明したが、インターネット等の非同期ネットワークにおいては、クライアント・コンピュータ１０に対してサーバ・コンピュータ４０では認証が必要である。この場合には、クライアント・コンピュータ１０のユーザＩＤ毎に処理を分離するようにしてもよい。
【００９３】
上記プロセスは、クライアント・コンピュータ１０及びサーバ・コンピュータ４０の処理プログラムとして記録媒体としてのフレキシブルディスクに実行可能な形式で格納することができる。この場合、各装置に挿抜可能なフレキシブルディスクユニット（ＦＤＵ）を接続して、フレキシブルディスクからＦＤＵを介して記録された処理プログラムを実行すればよい。また、処理プログラムをコンピュータ内のＲＡＭや他の記憶領域（例えばハードディスク装置）にアクセス可能に格納にして（インストール）して実行するようにしてもよい。また、予めＲＯＭに記憶してもよい。また、記録媒体としては、ＣＤ−ＲＯＭ，ＭＤ，ＭＯ，ＤＶＤ等のディスクやＤＡＴ等の磁気テープがあり、これらを用いるときには、対応する装置としてＣＤ−ＲＯＭ装置、ＭＤ装置、ＭＯ装置、ＤＶＤ装置、ＤＡＴ装置等を用いればよい。
【００９４】
【発明の効果】
以上説明したように本発明によれば、第１認証装置及び第２認証装置の間で相互認証するときに、第１認証装置及び第２認証装置の各々に共通に履歴データを記憶すると共に、履歴データを更新するので、安全かつ簡便に相互認証することができ、例えば、クライアント・コンピュータとサーバ・コンピュータとの間で授受される情報から、クライアント・コンピュータの鍵が漏洩することがなく、確実に認証が行える、という効果がある。
【図面の簡単な説明】
【図１】本発明の実施の形態に係る相互認証における詳細プロセスを示すイメージ図である。
【図２】本発明の実施の形態に係るクライアント・コンピュータとサーバ・コンピュータとの概略構成を示すブロック図である。
【図３】本発明の実施の形態に係る相互認証における概念プロセスを示すフローチャートである。
【符号の説明】
Ａ、Ｂ…認証データ
Ｃ、Ｓ…暗証データ
Ｋ…隠蔽鍵（履歴データ）
Ｑ、Ｒ…認証データ
１０…クライアント・コンピュータ
１４…乱数発生器
１６…メモリ
１８…認証用データ演算器
２０…検証器
２２…ＯＫ装置
２４…ＮＧ装置
３０…通信Ｉ／Ｆ
３２…ネットワーク
４０…サーバ・コンピュータ
４４…乱数発生器
４６…メモリ
４８…認証用データ演算器
５０…検証器
５２…ＯＫ装置
５４…ＮＧ装置
６０…通信Ｉ／Ｆ
【図１】
2004023662.tif 000003
【図２】
2004023662.tif 000004
【図３】
2004023662.tif 000005