(57)【特許請求の範囲】
【請求項１】
送信されてきた情報に基づいて該情報が正当な発信元から送信されてきた情報であることの認証を行なうセンタ装置と、該センタ装置に向けて情報を送信し該情報が正当な発信元から発信された情報であることの認証を受けるユーザ装置との間での前記認証を実行する認証方法において、
前記ユーザ装置と前記センタ装置との双方で、順序が定められた符号の集合を構成する該符号の順序を表わす情報と、符号に署名する鍵との双方を共有しておき、
前記ユーザ装置は、前記認証を受けるにあたり、前記集合を構成する、認証を受けようとするたびに前記順序に従って更新してなる符号と、該符号に前記鍵で署名してなる認証子との双方からなる認証情報を前記センタ装置に向けて送信し、
前記センタ装置は、今回送信されてきた第１の認証情報に含まれる第１の符号が前記ユーザ装置から前回送信されてきた第２の認証情報に含まれていた第２の符号よりも前記順序に従い後に位置する符号であるという第１のサブルールと、第１の認証情報に含まれる第１の認証子が、該第１の認証情報に含まれる第１の符号に前記鍵で署名してなる認証子と比べ同一の認証子であるという第２のサブルールとの双方のサブルールからなる第１のルールに従うか否かを調べ、該第１のルールに従っていた場合に、該第１の認証情報の発信元が正しく前記ユーザ装置であることを認証するものであって、前記センタ装置は、今回送信されてきた第１の認証情報が前記第２のサブルールには従っているものの前記第１のサブルールに従っていなかった場合に、該センタ装置で発生させた乱数を前記ユーザに送信し、前記ユーザは、前記センタ装置から送信されてきた乱数に前記鍵で署名してなる第２の認証子を含む第３の認証情報を前記センタ装置に向けて送信し、前記センタ装置は、今回送信されてきた第３の認証情報に含まれる第２の認証子が該センタ装置で発生させた前記乱数に前記鍵で署名してなる認証子と比べ同一の認証子であるという第２のルールに従うか否かを調べ、該第２のルールに従っていた場合に、前回送信されてきた第１の認証情報及び今回送信されてきた第３の認証情報との双方の発信元が正しく前記ユーザであることを認証することを特徴とする認証方法。
【請求項２】
送信されてきた情報に基づいて該情報が正当な発信元から送信されてきた情報であることの認証を行なうセンタ装置と、該センタ装置に向けて情報を送信し該情報が正当な発信元から発信された情報であることの認証を受けるユーザ装置との間での前記認証を実行する認証方法において、
前記ユーザ装置と前記センタ装置との双方で、順序が定められた符号の集合を構成する該符号の順序を表わす情報と、符号に署名する鍵との双方を共有しておき、
前記ユーザ装置は、前記認証を受けるにあたり、前記集合を構成する、認証を受けようとするたびに前記順序に従って更新してなる符号と、該符号と送信先のセンタ装置を特定するセンタ装置ＩＤ符号とを結合してなる結合符号に前記鍵で署名してなる認証子との双方からなる認証情報を前記センタ装置に向けて送信し、
前記センタ装置は、今回送信されてきた第１の認証情報に含まれる第１の符号が前記ユーザ装置から前回送信されてきた第２の認証情報に含まれていた第２の符号よりも前記順序に従い後に位置する符号であるという第１のサブルールと、第１の認証情報に含まれる第１の認証子が、該第１の認証情報に含まれる第１の符号と自分自身のセンタ装置ＩＤ符号とを結合してなる結合符号に前記鍵で署名してなる認証子と比べ同一の認証子であるという第２のサブルールとの双方のサブルールからなる第１のルールに従うか否かを調べ、該第１のルールに従っていた場合に、該第１の認証情報の発信元が正しく前記ユーザ装置であることを認証するものであって、前記センタ装置は、今回送信されてきた第１の認証情報が前記第２のサブルールには従っているものの前記第１のサブルールに従っていなかった場合に、該センタ装置で発生させた乱数を前記ユーザに送信し、前記ユーザは、前記センタ装置から送信されてきた乱数に前記鍵で署名してなる第２の認証子を含む第３の認証情報を前記センタ装置に向けて送信し、前記センタ装置は、今回送信されてきた第３の認証情報に含まれる第２の認証子が該センタ装置で発生させた前記乱数に前記鍵で署名してなる認証子と比べ同一の認証子であるという第２のルールに従うか否かを調べ、該第２のルールに従っていた場合に、前回送信されてきた第１の認証情報及び今回送信されてきた第３の認証情報との双方の発信元が正しく前記ユーザであることを認証することを特徴とする認証方法。
【請求項３】
前記第３の認証情報が、前記集合を構成する符号のうちのいずれかの符号である第３の符号を含むものであることを特徴とする請求項１又は２記載の認証方法。
【請求項４】
前記ユーザ装置は、前記第２の認証子として、前記乱数と前記第３の符号とが結合されてなる結合符号に前記鍵で署名してなる認証子を前記センタ装置に送信するものであり、
前記センタ装置は、前記第２のルールとして、今回送信されてきた第３の認証情報に含まれる第２の認証子が、該センタ装置で発生させた前記乱数と今回送信されてきた認証情報に含まれる第３の符号とが結合されてなる結合符号に前記鍵で署名してなる認証子と比べ同一の認証子であるというルールを採用するものであることを特徴とする請求項３記載の認証方法。
【請求項５】
前記センタ装置は、前記第１のサブルールとして、前記第１の符号が前記第２の符号を起点とし前記順序に従い所定の範囲内に位置する符号であるという規則が付加されたサブルールを採用することを特徴とする請求項１又は２記載の認証方法。
【請求項６】
前記センタ装置は、今回送信されてきた第１の認証情報が前記第２のサブルールに従っていなかった場合に不正な認証要求であると判定することを特徴とする請求項１又は２記載の認証方法。
【請求項７】
送信されてきた情報に基づいて該情報が正当な発信元から送信されてきた情報であることの認証を行なうセンタ装置と、該センタ装置に向けて情報を送信し該情報が正当な発信元から発信された情報であることの認証を受けるユーザ装置との間での前記認証を実行する認証方法において、
前記ユーザ装置と前記センタ装置との双方で、順序が定められた符号の集合を構成する該符号の順序を表わす情報と、符号に署名する鍵との双方を共有しておき、
前記ユーザ装置は、前記認証を受けるにあたり、前記集合を構成する、認証を受けようとするたびに前記順序に従って更新してなる符号に前記鍵で署名してなる認証子を含む認証情報を前記センタ装置に向けて送信し、
前記センタ装置は、今回送信されてきた第１の認証情報に含まれる第１の認証子が、前記ユーザ装置から前回送信されてきた第２の認証情報に含まれていた第２の符号よりも前記順序に従い後に位置する符号であって、かつ、該第２の符号を起点とし前記順序に従い所定の範囲内に位置する符号それぞれに前記鍵で署名してなる各認証子のうちのいずれかの認証子と同一の認証子であるという第１のルールに従っていた場合に、該第１の認証情報の発信元が正しく前記ユーザ装置であることを認証するものであって、前記センタ装置は、今回送信されてきた第１の認証情報に含まれる第１の認証子が前記第２の符号を起点とし前記順序に従い所定の範囲内に位置する符号それぞれに前記鍵で署名してある各認証子と同一の認証子であるものの、前記第２の符号よりも後に位置する符号でなかった場合に、該センタ装置で発生させた乱数を前記ユーザに送信し、前記ユーザは、前記センタ装置から送信されてきた乱数に前記鍵で署名してなる第２の認証子を含む第３の認証情報を前記センタ装置に向けて送信し、前記センタ装置は、今回送信されてきた第３の認証情報に含まれる第２の認証子が該センタ装置で発生させた前記乱数に前記鍵で署名してなる認証子と比べ同一の認証子であるという第２のルールに従うか否かを調べ、該第２のルールに従っていた場合に、前回送信されてきた第１の認証情報及び今回送信されてきた第３の認証情報との双方の発信元が正しく前記ユーザであることを認証することを特徴とする認証方法。
【請求項８】
送信されてきた情報に基づいて該情報が正当な発信元から送信されてきた情報であることの認証を行なうセンタ装置と、該センタ装置に向けて情報を送信し該情報が正当な発信元から発信された情報であることの認証を受けるユーザ装置との間での前記認証を実行する認証方法において、
前記ユーザ装置と前記センタ装置との双方で、順序が定められた符号の集合を構成する該符号の順序を表わす情報と、符号に署名する鍵との双方を共有しておき、
前記ユーザ装置は、前記認証を受けるにあたり、前記集合を構成する、認証を受けようとするたびに前記順序に従って更新してなる符号と送信先のセンタ装置を特定するセンタ装置ＩＤ符号とを結合してなる結合符号に前記鍵で署名してなる認証子を含む認証情報を前記センタ装置に向けて送信し、
前記センタ装置は、今回送信されてきた第１の認証情報に含まれる第１の認証子が、前記ユーザ装置から前回送信されてきた第２の認証情報に含まれていた第２の符号よりも前記順序に従い後に位置する符号であって、かつ、該第２の符号を起点とし前記順序に従い所定の範囲内に位置する符号それぞれと自分自身のセンタ装置ＩＤ符号とを結合してなる結合符号それぞれに前記鍵で署名してなる各認証子のうちのいずれかの認証子と同一の認証子であるという第１のルールに従っていた場合に、該第１の認証情報の発信元が正しく前記ユーザ装置であることを認証するものであって、前記センタ装置は、今回送信されてきた第１の認証情報が前記第２の符号を起点とし前記順序に従い所定の範囲内に位置する符号それぞれと自分自身のセンタ装置ＩＤ符号とを結合してなる結合符号それぞれに前記鍵で署名してなる各認証子のうちのいずれかの認証子と同一の認証子であるものの前記第２の符号よりも前記順序に従い後に位置する符号でない場合に、該センタ装置で発生させた乱数を前記ユーザに送信し、前記ユーザは、前記センタ装置から送信されてきた乱数に前記鍵で署名してなる第２の認証子を含む第３の認証情報を前記センタ装置に向けて送信し、前記センタ装置は、今回送信されてきた第３の認証情報に含まれる第２の認証子が該センタ装置で発生させた前記乱数に前記鍵で署名してなる認証子と比べ同一の認証子であるという第２のルールに従うか否かを調べ、該第２のルールに従っていた場合に、前回送信されてきた第１の認証情報及び今回送信されてきた第３の認証情報との双方の発信元が正しく前記ユーザであることを認証することを特徴とする認証方法。
【請求項９】
前記第３の認証情報が、前記集合を構成する符号のうちのいずれかの符号である第３の符号を含むものであることを特徴とする請求項７又は８記載の認証方法。
【請求項１０】
前記ユーザ装置は、前記第２の認証子として、前記乱数と前記第３の符号とが結合されてなる結合符号に前記鍵で署名してなる認証子を前記センタ装置に送信するものであり、前記センタ装置は、前記第２のルールとして、今回送信されてきた第３の認証情報に含まれる第２の認証子が、該センタ装置で発生させた前記乱数と今回送信されてきた認証情報に含まれる第３の符号とが結合されてなる結合符号に前記鍵で署名してなる認証子と比べ同一の認証子であるというルールを採用するものであることを特徴とする請求項９記載の認証方法。
【請求項１１】
前記センタ装置は、現在時刻を知る第２の時計を有し、該センタ装置は、今回送信されてきた第１の認証情報が前記第１のルールに従うとともに、さらに、該第１の認証情報に含まれる第１の符号が表わす現在時刻の、前回送信されてきた第２の認証情報に含まれる第２の符号が表わす現在時刻からの第１の経過時間が、前記第２の時計から得られた、今回送信されてきた第１の認証情報の受信時刻の、前回送信されてきた第２の認証情報の受信時刻からの第２の経過時間と比べ、所定の許容誤差以内にある場合に、該第１の認証情報の発信元が正しく前記ユーザ装置であることを認証することを特徴とする請求項１又は１０記載の認証方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、送信されてきた情報に基づいてその情報が正当な発信元から送信されてきた情報であることの認証を行なうセンタと、そのセンタに向けて情報を送信しその情報が正当な発信元から発信された情報であることの認証を受けるユーザとの間での認証を実行する認証方式に関する。
【０００２】
【従来の技術】
従来より、上述のような認証方式として、以下のタイプ（型）の認証方式が知られている。
１）パスワード型の認証方式
ユーザは、センタにパスワードを予め登録しておき、認証を受けるにあたり、そのパスワードをセンタに向けて送信する。センタでは、送信されてきたパスワードが予め登録されているパスワードと一致した場合にそのパスワードの発信元が正しいユーザであることを認証する。この方式は、そのパスワードが悪意の第三者に盗聴された場合、その悪意の第三者による、センタへの不正なアクセスを許す結果となる。
２）連番型の認証方式
ユーザとセンタとの双方で、カウンタ（このカウンタは単調増加数列のものであればよく、例えば時刻を用いてもよい）を有し、ユーザは認証を受けるにあたり、ユーザ側のカウンタの値をセンタに向けて送信する。センタでは、送信されてきたカウンタの値とセンタ側のカウンタの値とが一致した場合にそのカウンタの値の発信元が正しいユーザであることを認証する。この方式では、カウンタの値ないし時刻が、ユーザとセンタとで完全に一致している必要があり、ユーザがセンタをアクセスしようとして失敗した場合や、複数のセンタをアクセスした場合等にカウンタの値が異なってしまう恐れがあり、また時刻を採用したときは、ユーザの時計とセンタの時計が完全に一致している必要がある。また、送信したカウンタの値が盗聴され、直ちに次のカウンタの値を生成して送信する等により、不正なアクセスを許す結果となる。
３）連番署名型の認証方式
ユーザとセンタとの双方にカウンタを有する。またユーザは、カウンタの値を暗号化する鍵を有するとともに、センタにその鍵を予め登録しておく。ユーザは認証を受けるにあたり、ユーザ側のカウンタの値をその鍵で署名（認証子）を作成し、その署名をセンタに向けて送信する。一方、センタではセンタ側のカウンタの値に、登録されている鍵で署名し、作成した署名（認証子）とユーザから送信されてきた署名とが一致した場合にその署名の発信元が正しいユーザであることを認証する。ここで、ユーザ側のカウンタの値とセンタ側のカウンタの値は認証を行なう度にインクリメントされる。この方式の場合、盗聴されてもカウンタの値は知られないためその点ではかなり安全性は高まるが、カウンタの値を常に一致させておく必要があること等の問題が残っている。
４）チャレンジ・レスポンス型の認証方式
図５は、従来のチャレンジ・レスポンス型の認証方式の流れを示す図である。
【０００３】
図５に示すユーザ４０は、乱数Ｒに署名する鍵を有するとともにセンタ４１にその鍵を登録しておく。先ず、ユーザ４０がサービス要求をセンタ４１に向けて送信する。すると、センタ４１はこのサービス要求を受けて、認証するにあたり、ユーザ４０に向けて乱数Ｒを送信する。ユーザ４０は、送信されてきた乱数Ｒにそのユーザ４０が有する鍵で署名して認証子Ｅ（Ｒ）（乱数Ｒの署名）を作成し、その認証子Ｅ（Ｒ）をセンタ４１に向けて送信する。一方、センタ４１でもその乱数Ｒに、登録されている鍵で署名して認証子を作成し、作成した認証子とユーザ４０から送信されてきた認証子Ｅ（Ｒ）とが一致した場合にその認証子Ｅ（Ｒ）の発信元が正しいユーザ４０であることを認証し、そのユーザ４０にサービスを提供する。この方式の場合、予測不能な乱数に鍵で署名することから悪意の第三者に対する安全性は一層高められている。
【０００４】
上述した４種類の認証方式では、認証のために送信されるメッセージの予測は、パスワード型，連番型，連番署名型，チャレンジ・レスポンス型の順に困難になる。このため、不正なユーザによるセンタへの不正なアクセスに対する安全性は、パスワード型，連番型，連番署名型，チャレンジ・レスポンス型の順に高まる。このため、従来、チャレンジ・レスポンス型の認証方式が多く用いられている。
【０００５】
一方、認証処理は、パスワード型，連番型，連番署名型，チャレンジ・レスポンス型の順にだんだんと複雑になる。このため、何回もの認証処理が連続的に必要となる場合、チャレンジ・レスポンス型の認証方式と同程度の安全性を確保しつつ認証処理を簡略化する要求がでてきた。この要求を満たすために、特開平５−２１９０５３号公報に１つの提案がある。
【０００６】
図６は、特開平５−２１９０５３号公報に提案されたチャレンジ・レスポンス型の認証方式の流れを示す図である。
この認証方式では、認証処理を繰り返し行なうにあたり、ユーザ５０，センタ５１の双方で、ユーザ５０がＩ回目に作成した認証子（Ｅ（Ｒ））をＩ＋１回目の乱数Ｅ（Ｒ）として用いている。このため、センタ５１はＩ＋１回目に乱数を送る必要がなくその分全体の処理が速く済み、前述した図４に示すチャレンジ・レスポンス型の認証方式の、単純な認証処理を繰り返す場合に比べても安全性が低下することはない。
【０００７】
【発明が解決しようとする課題】
しかし、上述した、Ｉ回目に作成した認証子をＩ＋１回目の乱数として用いるチャレンジ・レスポンス型の認証方式を用い、インターネットのような、認証子がセンタに必ずしも届く保証がない通信回線を使用して認証処理を繰り返し行なうと、認証子が乱れ、認証に失敗することがある。
【０００８】
また、ＷＷＷ（Ｗｏｒｌｄ  Ｗｉｄｅ  Ｗｅｂ）などのように複数のセンタにランダムにアクセスするサービスにこの認証方式を用いると、ユーザは、送信した認証子をセンタ毎に記録しておく必要があり、このためユーザ側の機構が複雑になる。
本発明は、上記事情に鑑み、十分な安全性を確保した上で簡単に認証処理を行なうことのできる認証方式を提供することを目的とする。
【０００９】
【課題を解決するための手段】
上記目的を達成する本発明の認証方式のうちの第１の認証方式は、送信されてきた情報に基づいてその情報が正当な発信元から送信されてきた情報であることの認証を行なうセンタと、そのセンタに向けて情報を送信しその情報が正当な発信元から発信された情報であることの認証を受けるユーザとの間での上記認証を実行する認証方式において、
上記ユーザと上記センタとの双方で、順序が定められた符号の集合を構成するそれらの符号の順序を表わす情報と、符号に署名する鍵との双方を共有しておき、
上記ユーザは、上記認証を受けるにあたり、上記集合を構成する、認証を受けようとするたびに上記順序に従って更新してなる符号と、その符号に上記鍵で署名してなる認証子との双方からなる認証情報を上記センタに向けて送信し、
上記センタは、今回送信されてきた第１の認証情報に含まれる第１の符号がそのユーザから前回送信されてきた第２の認証情報に含まれていた第２の符号よりも上記順序に従い後に位置する符号であるという第１のサブルールと、第１の認証情報に含まれる第１の認証子が、その第１の認証情報に含まれる第１の符号に上記鍵で署名してなる認証子と比べ同一の認証子であるという第２のサブルールとの双方のサブルールからなる第１のルールに従うか否かを調べ、その第１のルールに従っていた場合に、その第１の認証情報の発信元が正しく上記ユーザであることを認証することを特徴とする。
【００１０】
また、上記目的を達成する本発明の第２の認証方式は、送信されてきた情報に基づいてその情報が正当な発信元から送信されてきた情報であることの認証を行なうセンタと、そのセンタに向けて情報を送信しその情報が正当な発信元から発信された情報であることの認証を受けるユーザとの間での上記認証を実行する認証方式において、
上記ユーザと上記センタとの双方で、順序が定められた符号の集合を構成するそれらの符号の順序を表わす情報と、符号に署名する鍵との双方を共有しておき、
上記ユーザは、上記認証を受けるにあたり、上記集合を構成する、認証を受けようとするたびに上記順序に従って更新してなる符号と、その符号と送信先のセンタを特定するセンタＩＤ符号とを結合してなる結合符号に上記鍵で署名してなる認証子との双方からなる認証情報を上記センタに向けて送信し、
上記センタは、今回送信されてきた第１の認証情報に含まれる第１の符号がそのユーザから前回送信されてきた第２の認証情報に含まれていた第２の符号よりも上記順序に従い後に位置する符号であるという第１のサブルールと、第１の認証情報に含まれる第１の認証子が、その第１の認証情報に含まれる第１の符号と自分自身のセンタＩＤ符号とを結合してなる結合符号に上記鍵で署名してなる認証子と比べ同一の認証子であるという第２のサブルールとの双方のサブルールからなる第１のルールに従うか否かを調べ、その第１のルールに従っていた場合に、その第１の認証情報の発信元が正しく上記ユーザであることを認証することを特徴とする。
【００１１】
ここで、上記本発明の第１の認証方式ないし第２の認証方式において、上記センタは、上記第１のサブルールとして、上記第１の符号が上記第２の符号を起点とし上記順序に従い所定の範囲内に位置する符号であるという規則が付加されたサブルールを採用することが好ましい。
また、上記センタでは、今回送信されてきた第１の認証情報が上記第２のサブルールに従っていなかった場合に不正な認証要求であると判定される。
【００１２】
また、上記本発明の第１の認証方式および第２の認証方式において、
上記センタは、今回送信されてきた第１の認証情報が上記第２のサブルールには従っているものの上記第１のサブルールに従っていなかった場合に、センタで発生させた乱数を上記ユーザに送信し、
上記ユーザは、上記センタから送信されてきた乱数に上記鍵で署名してなる第２の認証子を含む第３の認証情報を上記センタに向けて送信し、
上記センタは、今回送信されてきた第３の認証情報に含まれる第２の認証子がそのセンタで発生させた上記乱数に上記鍵で署名してなる認証子と比べ同一の認証子であるという第２のルールに従うか否かを調べ、この第２のルールに従っていた場合に、前回送信されてきた第１の認証情報及び今回送信されてきた第３の認証情報との双方の発信元が正しく上記ユーザであることを認証することが効果的である。
【００１３】
この場合に、上記第３の認証情報が、上記集合を構成する符号のうちのいずれかの符号である第３の符号を含むものであることが好ましく、その場合にさらに、
上記ユーザは、上記第２の認証子として、上記乱数と上記第３の符号とが結合されてなる結合符号に上記鍵で署名してなる認証子を上記センタに送信するものであり、
上記センタは、上記第２のルールとして、今回送信されてきた第３の認証情報に含まれる第２の認証子が、そのセンタで発生させた上記乱数と今回送信されてきた認証情報に含まれる第３の符号とが結合されてなる結合符号に上記鍵で署名してなる認証子と比べ同一の認証子であるというルールを採用するものであることが好ましい。
【００１４】
また、上記目的を達成する本発明の認証方式のうちの第３の認証方式は、送信されてきた情報に基づいてその情報が正当な発信元から送信されてきた情報であることの認証を行なうセンタと、そのセンタに向けて情報を送信しその情報が正当な発信元から発信された情報であることの認証を受けるユーザとの間での上記認証を実行する認証方式において、
上記ユーザと上記センタとの双方で、順序が定められた符号の集合を構成するそれらの符号の順序を表わす情報と、符号に署名する鍵との双方を共有しておき、
上記ユーザは、上記認証を受けるにあたり、上記集合を構成する、認証を受けようとするたびに上記順序に従って更新してなる符号に上記鍵で署名してなる認証子を含む認証情報を上記センタに向けて送信し、
上記センタは、今回送信されてきた第１の認証情報に含まれる第１の認証子が、そのユーザから前回送信されてきた第２の認証情報に含まれていた第２の符号よりも上記順序に従い後に位置する符号であって、かつ、その第２の符号を起点とし上記順序に従い所定の範囲内に位置する符号それぞれに上記鍵で署名してなる各認証子のうちのいずれかの認証子と同一の認証子であるという第１のルールに従っていた場合に、その第１の認証情報の発信元が正しく上記ユーザであることを認証することを特徴とする。
【００１５】
さらに、本発明の認証方式のうちの第４の認証方式は、送信されてきた情報に基づいてその情報が正当な発信元から送信されてきた情報であることの認証を行なうセンタと、そのセンタに向けて情報を送信しその情報が正当な発信元から発信された情報であることの認証を受けるユーザとの間での上記認証を実行する認証方式において、
上記ユーザと上記センタとの双方で、順序が定められた符号の集合を構成するそれらの符号の順序を表わす情報と、符号に署名する鍵との双方を共有しておき、
上記ユーザは、上記認証を受けるにあたり、上記集合を構成する、認証を受けようとするたびに上記順序に従って更新してなる符号と送信先のセンタを特定するセンタＩＤ符号とを結合してなる結合符号に前記鍵で署名してなる認証子を含む認証情報を上記センタに向けて送信し、
上記センタは、今回送信されてきた第１の認証情報に含まれる第１の認証子が、そのユーザから前回送信されてきた第２の認証情報に含まれていた第２の符号よりも上記順序に従い後に位置する符号であって、かつ、その第２の符号を起点とし上記順序に従い所定の範囲内に位置する符号それぞれと自分自身のセンタＩＤ符号とを結合してなる結合符号それぞれに上記鍵で署名してなる各認証子のうちのいずれかの認証子と同一の認証子であるという第１のルールに従っていた場合に、その第１の認証情報の発信元が正しく上記ユーザであることを認証することを特徴とする。
【００１６】
ここで、上記本発明の第１〜第４の認証方式において、上記ユーザは、現在時刻を知る第１の時計を有し、そのユーザは、上記集合を構成する符号としてその時計から得られる現在時刻を表わす符号を用いるものであってもよい。
その場合に、さらに、上記センタは、現在時刻を知る第２の時計を有し、そのセンタは、今回送信されてきた第１の認証情報が上記第１のルールに従うとともに、さらに、その第１の認証情報に含まれる第１の符号が表わす現在時刻の、前回送信されてきた第２の認証情報に含まれる第２の符号が表わす現在時刻からの第１の経過時間が、上記第２の時計から得られた、今回送信されてきた第１の認証情報の受信時刻の、前回送信されてきた第２の認証情報の受信時刻からの第２の経過時間と比べ、所定の許容誤差以内にある場合に、その第１の認証情報の発信元が正しく上記ユーザであることを認証することが好ましい。
【００１７】
【発明の実施の形態】
以下、本発明の実施形態について説明する。
図１は、本発明の第１実施形態の認証方式におけるデータの流れを示す図である。
尚、ここでは説明を容易にするために以下に記載する項目番号２〜１０と同一の番号を、図１の、データの流れを示す矢印に付して説明する。
１．前提（この番号１は、図１には記入されていない）
図１に示すユーザ１０は、カウンタと、そのカウンタのカウント値に署名する鍵との双方を有する。このカウンタのカウント値は、本発明にいう符号に相当し、そのカウンタの一連のカウント値が、本発明にいう符号の集合に相当する。ここではこのカウンタの現在のカウント値がカウント値（ｉ）であるとする。またユーザ１０は、２つのセンタ１１，１２に、カウント値に署名する鍵を登録しておく。一方、センタ１１，１２は、ユーザ１０の、以前の認証処理によって得られたカウント値を保持している（ここでは、センタ１１のカウント値は（ｉ−１），センタ１２のカウント値（ｉ−２）であり、これらのカウント値は互いに異なっている）。このように、ここでは、ユーザ１０とセンタ１１，１２との双方で、ここで用いるカウンタがアップカウンタであるという情報（本発明にいう符号の順序を表す情報）、すなわちカウント値が順次インクリメントされるという情報と、カウント値に署名するための鍵との双方を共有している。
２．センタ１１への認証依頼（その１）
ユーザ１０は、認証を受けるにあたり、そのときのカウント値（ｉ）と、そのカウント値（ｉ）に鍵で署名してなる認証子Ｅ（ｉ）との双方からなる認証情報（ｉ，Ｅ（ｉ））をセンタ１１に向けて送信する。ユーザ１０は、その後、カウント値（ｉ）をインクリメントしてカウント値（ｉ＋１）とする。
３．センタ１１での認証処理
センタ１１は、今回送信されてきた認証情報（ｉ，Ｅ（ｉ））（本発明にいう第１の認証情報）に含まれるカウント値（ｉ）（本発明にいう第１の符号）が前回送信されてきた認証情報（ｉ−１，Ｅ（ｉ−１））（本発明にいう第２の認証情報）に含まれていたカウント値（ｉ−１）（本発明にいう第２の符号）よりも値の大きなカウント値であるという第１のサブルールと、認証情報（ｉ，Ｅ（ｉ））に含まれる認証子Ｅ（ｉ）が、その認証情報（ｉ，Ｅ（ｉ））に含まれるカウント値（ｉ）に鍵で署名してなる認証子Ｅ（ｉ）と比べ同一の認証子であるという第２のサブルールとの双方のサブルールからなるルール（本発明にいう第１のルール）に従うか否かを調べ、そのルールに従っていた場合に、その認証情報（ｉ，Ｅ（ｉ））の発信元が正しくユーザ１０であることを認証する。またセンタ１１は、ユーザ１０から受け取ったカウント値（ｉ）を記録する。さらにセンタ１１は、その認証情報の発信元が正当なユーザ１０であるので、そのユーザ１０にサービスを提供する。
４．センタ１１への認証依頼（その２）
ユーザ１０は、次の認証を受けるにあたり、カウント値（ｉ＋１）と、そのカウント値（ｉ＋１）に鍵で署名してなる認証子Ｅ（ｉ＋１）との双方からなる認証情報（ｉ＋１，Ｅ（ｉ＋１））をセンタ１１に向けて送信する。本発明と対比したとき、この認証情報（ｉ＋１，Ｅ（ｉ＋１））も本発明にいう第１の認証情報に相当する。ユーザ１０はその後カウント値（ｉ＋１）をインクリメントしてカウント値（ｉ＋２）とする。
５．センタ１１での認証処理
センタ１１は、今回送信されてきた認証情報（ｉ＋１，Ｅ（ｉ＋１））に含まれるカウント値（ｉ＋１）が前回送信されてきた認証情報（ｉ，Ｅ（ｉ））に含まれていたカウント値（ｉ）よりも値の大きなカウント値であるという第１のサブルールと、認証情報（ｉ＋１，Ｅ（ｉ＋１））に含まれる認証子Ｅ（ｉ＋１）が、その認証情報（ｉ＋１，Ｅ（ｉ＋１））に含まれるカウント値（ｉ＋１）に鍵で署名してなる認証子Ｅ（ｉ＋１）と比べ同一の認証子であるという第２のサブルールとの双方のサブルールからなるルール（本発明にいう第１のルール）に従うか否かを調べ、そのルールに従っていた場合に、その認証情報（ｉ＋１，Ｅ（ｉ＋１））の発信元が正しくユーザ１０であることを認証する。またセンタ１１は、ユーザ１０からのカウント値（ｉ＋１）を記録する。さらにセンタ１１は、その認証情報の発信元が正当なユーザ１０であるので、そのユーザ１０にサービスを提供する。
【００１８】
ここまでで２回の認証処理を行ったが、単純にチャレンジ・レスポンス認証を２回繰り返すと、センタ１１からユーザ１０に乱数を送る必要上通信が８回必要となるところ、本実施形態の認証方式では４回の通信で済んでいる。
次に、上述した処理に引き続き認証要求を行った結果、通信に失敗した場合について説明する。
６．センタ１１への認証依頼（その３）
ユーザ１０は、認証を受けるにあたり、カウント値（ｉ＋２）と、そのカウント値（ｉ＋２）に鍵で署名してなる認証子Ｅ（ｉ＋２）との双方からなる認証情報（ｉ＋２，Ｅ（ｉ＋２））をセンタ１１に向けて送信する。ユーザ１０はその後カウント値（ｉ＋２）をインクリメントしてカウント値（ｉ＋３）とする。しかし、この通信は失敗しセンタ１１からの応答がないので、ユーザの通信処理はタイムアウトとなり、あらためて認証を依頼する。
７．センタ１１への認証依頼（その４）
ユーザ１０は、認証を受けるにあたり、カウント値（ｉ＋３）と、そのカウント値（ｉ＋３）に鍵で署名してなる認証子Ｅ（ｉ＋３）との双方からなる認証情報（ｉ＋３，Ｅ（ｉ＋３））をセンタ１１に向けて送信する。尚、この認証情報（ｉ＋３，Ｅ（ｉ＋３））も本発明にいう第１の認証情報に相当する。ユーザ１０はその後カウント値（ｉ＋３）をインクリメントしてカウント値（ｉ＋４）とする。
８．センタ１１での認証処理
センタ１１は、今回送信されてきた認証情報（ｉ＋３，Ｅ（ｉ＋３））に含まれるカウント値（ｉ＋３）が前回送信されてきた認証情報（ｉ＋１，Ｅ（ｉ＋１））に含まれていたカウント値（ｉ＋１）よりも値の大きなカウント値であるという第１のサブルールと、認証情報（ｉ＋３，Ｅ（ｉ＋３））に含まれる認証子Ｅ（ｉ＋３）が、その認証情報（ｉ＋３，Ｅ（ｉ＋３））に含まれるカウント値（ｉ＋３）に鍵で署名してなる認証子Ｅ（ｉ＋３）と比べ同一の認証子であるという第２のサブルールとの双方のサブルールからなるルールに従うか否かを調べ、そのルールに従っていた場合に、その認証情報（ｉ＋３，Ｅ（ｉ＋３））の発信元が正しくユーザ１０であることを認証する。またセンタ１１は、その認証情報の発信元がユーザ１０からのカウント値（ｉ＋３）を記録する。さらにセンタ１１は、その認証情報の発信元が正当なユーザ１０であるので、そのユーザ１０にサービスを提供する。
【００１９】
このように、認証情報（ｉ＋２，Ｅ（ｉ＋２））がセンタ１１に到着しなかった場合であっても、センタ１１において、次の認証情報（ｉ＋３，Ｅ（ｉ＋３））に含まれるカウント値（ｉ＋３）がセンタ１１に記録されているカウント値（ｉ＋１）より大きく、かつ、認証情報（ｉ＋３，Ｅ（ｉ＋３）））に含まれる認証子（Ｅ（ｉ＋３））も、カウント値（ｉ＋３）に鍵で署名してなる認証子と同一の認証子であるため、認証に成功している。
【００２０】
次に、上述した処理に引き続きセンタ１１とは異なるセンタであるセンタ１２に認証要求を行う場合について説明する。
９．センタ１２への認証依頼
ユーザ１０は、認証を受けるにあたり、カウント値（ｉ＋４）と、そのカウント値に鍵で署名してなる認証子Ｅ（ｉ＋４）との双方からなる認証情報（ｉ＋４，Ｅ（ｉ＋４））（この認証情報も本発明にいう第１の認証情報である）をセンタ１２に向けて送信する。ユーザ１０はその後カウント値（ｉ＋４）をインクリメントしてカウント値（ｉ＋５）とする。
１０．センタ１２での認証処理
センタ１２は、今回送信されてきた認証情報（ｉ＋４，Ｅ（ｉ＋４））に含まれるカウント値（ｉ＋４）が前回送信されてきた認証情報（ｉ−２，Ｅ（ｉ−２））に含まれていたカウント値（ｉ−２）よりも値の大きなカウント値であるという第１のサブルールと、認証情報（ｉ＋４，Ｅ（ｉ＋４）））に含まれる認証子Ｅ（ｉ＋４）が、その認証情報（ｉ＋４，Ｅ（ｉ＋４））に含まれるカウント値（ｉ＋４）に鍵で署名してなる認証子（Ｅ（ｉ＋４））と比べ同一の認証子であるという第２のサブルールとの双方のサブルールからなるルール（本発明にいう第１のルール）に従うか否かを調べ、そのルールに従っていた場合に、その認証情報（ｉ＋４，Ｅ（ｉ＋４））の発信元が正しくユーザ１０であることを認証する。またセンタ１２は、ユーザ１０からのカウント値（ｉ＋４）を記録する。さらにセンタ１２は、その認証情報の発信元が正当なユーザ１０であるので、そのユーザ１０にサービスを提供する。
【００２１】
このように、ユーザはセンタごとに認証子を変更する必要がなくどのセンタにアクセスする場合であっても同一の処理でよく、このため、ユーザ側の機構が簡単になる。
図２は、図１に示す認証方式において、センタが認証依頼を受けた場合において、ユーザからのカウント値がセンタに記録されたカウント値よりも小さい場合の処理について示した図である。
【００２２】
センタ１１は、認証子が正しくない場合（本発明にいう第２のサブルールを満足しない場合）は不正なアクセスと判断する。一方、認証子は正しいが、ユーザからのカウント値がセンタに記録されたカウント値よりも小さい（本発明にいう第１のサブルールを満足しない）場合は、ユーザ１０がカウンタを何らかの理由でリセットしたこともあり得るので、現在のカウント値をユーザ１０に問い合わせる。その問い合わせ手順について、図２を参照して説明する。以下に記載する項目番号１〜４と同一の番号を図２に付して示す。
【００２３】
１．センタ１１への認証依頼
ユーザ１０は、認証を受けるにあたり、カウンタの値（ｉ）と、そのカウンタの値（ｉ）に鍵で署名してなる認証子Ｅ（ｉ）との双方からなる認証情報（ｉ，Ｅｉ）（本発明にいう第１の認証情報）をセンタ１１に向けて送信する。ユーザ１０はその後カウントの（ｉ）をインクリメントしてカウント値（ｉ＋１）にする。
【００２４】
２．センタ１１での認証処理
センタ１１では、今回送信されてきた認証情報（ｉ，Ｅ（ｉ））に含まれるカウント値（ｉ）がそのセンタ１１に記録されたカウント値（ここではそのセンタ１１に記録されたカウント値はカウント値（ｉ）よりも大きい値のカウント値であったとする）より小さいので、次に認証情報（ｉ，Ｅ（ｉ））に含まれるカウント値（ｉ）に鍵で署名して認証子を作成し、作成された認証子がユーザ１０からの認証子Ｅ（ｉ）と一致しない場合、不正なアクセスであると判断し通信を終了する。一方、作成された認証子がユーザ１０からの認証子Ｅ（ｉ）と一致した場合、センタ１１はそのセンタ１１に備えられた乱数発生器（図示せず）によって任意に発生させた乱数Ｒをユーザ１０に送信する。またこのときは、センタ１１に記録されたカウント値（ｉ−１）を保持したまま、今回のカウント値（ｉ）を仮に記録する。
【００２５】
３．ユーザ１０の応答
ユーザ１０は、センタ１１から送信されてきた乱数Ｒと、そのユーザ１０が前回送信した認証情報（ｉ，Ｅ（ｉ））に含まれていたカウント値（ｉ）よりも更新してなるカウント値（ｉ＋１）（本発明にいう第３の符号）とが結合されてなる結合符号に鍵で署名してなる認証子Ｅ（Ｒ，ｉ＋１）（本発明にいう第２の認証子の一例）と、そのカウント値（ｉ＋１）との双方からなる認証情報（ｉ＋１，Ｅ（Ｒ，ｉ＋１））（本発明にいう第３の認証情報）をセンタ１１に向けて送信する。
【００２６】
４．センタ１１での認証処理
センタ１１は、今回送信されてきた認証情報（ｉ＋１，Ｅ（Ｒ，ｉ＋１））に含まれるカウント値（ｉ＋１）が前回送信されてきた認証情報（ｉ，Ｅ（ｉ））に含まれていたカウント値（ｉ）よりも値の大きなカウント値であって、かつ今回送信されてきた認証情報（ｉ＋１，Ｅ（Ｒ，ｉ＋１））に含まれる認証子Ｅ（Ｒ，ｉ＋１）が、そのセンタ１１で発生させた乱数Ｒと、今回送信されてきた認証情報（ｉ＋１，Ｅ（Ｒ，ｉ＋１））に含まれるカウント値（ｉ＋１）とが結合されてなる結合符号に鍵で署名してなる認証子と比べ同一の認証子であるというルール（本発明にいう第２のルールの一例）に従うか否かを調べ、そのルールに従っていた場合に、前回送信されてきた認証情報（ｉ，Ｅ（ｉ））及び今回送信されてきた認証情報（ｉ＋１，Ｅ（Ｒ，ｉ＋１））との双方の発信元が正しくユーザ１０であることを認証し、サービスを提供する。また、このときユーザ１０から送られたカウント値（ｉ＋１）を記録する。尚、そのルールに従っていない場合は不正なアクセスと判断し、仮に記録しておいたカウント値（ｉ）を破棄し、その前に記録されていたカウント値（ｉ−１）に戻す。
【００２７】
さらに引き続き、ユーザ１０によるセンタ１１への認証依頼（図２に示す番号５）が行われると、センタ１１による、その認証依頼に対する認証処理（図２に示す番号６）が行われる。
このように上述の第１実施形態の認証方式によれば、センタにおける認証は、直前の成功した認証の結果得られたユーザのカウント値より大きいカウント値に基づいてなされる。いいかえれば、本実施形態によれば必ずしも連続したカウント値から生成される認証子で認証する必要はなく、本実施形態はカウント値が進んでいることを認証する（もちろん、ユーザが鍵を持っていることも同時に認証する）認証方式であるため、認証子がセンタに必ず届く保証がなくても、余分な処理なしで、引き続き認証処理を行うことができる。
【００２８】
また、カウント値が進んでさえいればよいので、ユーザは送信した認証子をセンタごとに記録しておく必要がなく、異なるセンタにアクセスする場合でも同じ機構で認証依頼を行うことができる。
さらに、上記の実施形態では、図２を参照して説明したようにカウンタの同期をとる機構を備えているため、安全性を高めるためにユーザのカウント値が変更された場合や、ユーザ側システムの再インストールなどによってユーザのカウンタの値が変更された場合にも容易に対処できる。
【００２９】
尚、上記第１の実施形態では、第１のサブルールとして、今回送信されてきた認証情報（例えば、認証情報（ｊ，Ｅ（ｊ））に含まれるカウント値（ｊ）が前回送信されてきた認証情報（例えば認証情報（ｉ，Ｅ（ｉ））に含まれていたカウント値（ｉ）よりも値の大きなカウント値（ｊ＞ｉ）であるというサブルールを採用したが、この第１のサブルールに、｜ｊ−ｉ｜が所定の範囲にある（｜ｊ−ｉ｜≦ｎ）という規則を付加してもよい。こうすることにより、通信の安全性が一層高められる。
また、上記の第１の実施形態では、ユーザからセンタに送信する認証情報には、カウント値（例えばカウント値（ｊ））と、そのカウント値（ｊ）に鍵で署名してなる認証子（例えばＥ（ｊ））との双方が含まれているが、この第１の実施形態の変形例として、ユーザからセンタに向けて、カウント値（例えばカウント値（ｊ））自身は送信せずに、その認証子（例えばＥ（ｊ））のみを送信し、センタでは、そのユーザから前回送信されてきた認証子（例えばＥ（ｉ））に対応して記憶しておいたカウント値ｉを起点として所定の範囲内に位置するカウント値（例えばカウント値（ｉ＋１），（ｉ＋２），……，（ｉ＋Ｎ））それぞれに鍵で署名して各認証子Ｅ（ｉ＋１），Ｅ（ｉ＋２），……，Ｅ（ｉ＋Ｎ）を作成し、今回ユーザから送信されてきた認証子Ｅ（ｊ）が、それらの認証子Ｅ（ｉ＋１），Ｅ（ｉ＋２），……，Ｅ（ｉ＋Ｎ）のうちのいずれかの認証子と一致する場合に、その認証子Ｅ（ｊ）の発信元が正しいユーザであると認証し、かつその一致した認証子に対応するカウント値（ｊ）を、次回に認証のために記録するように構成してもよい。この場合、センタは、カウント値自身（本発明にいう第１の符号）を必要としない代わりに、そのカウント値（第１の符号）があらかじめ決めておいた所定の範囲内にあることを期待している。
【００３０】
さらに、上記の第１実施形態では、図２を参照して説明したように、センタにおいて、認証子は正しい（本発明にいう第２のルールは満足する）ものの、ユーザからのカウント値がセンタに記録されたカウント値よりも小さい（本発明にいう第１のサブルールを満足しない）旨判定された場合に、センタからユーザに向けて乱数を送信し、ユーザからは、その乱数とカウント値（本発明にいう第３の符号）とが結合されてなる結合符号に鍵で署名してなる認証子と、そのカウント値自身（第３の符号）との双方をセンタに送信したが、ユーザからセンタに送信する認証子は乱数のみを鍵で署名してなる認証子であってもよい。その場合であっても、ユーザからセンタにかかるカウント値（第３の符号）を送信する必要がある。乱数のみに鍵で署名してなる認証子をセンタに送信する場合であってもカウント値（第３の符号）も送信するのは、今回の認証のためではなく、次回の認証のためである。
【００３１】
図３は、本発明の第２実施形態の認証方式におけるデータの流れを示す図である。ここでは、図１を参照して説明した第１実施形態との相違点について説明する。
この図３に示す第２実施形態では、図２に示す項目番号２，４，６，７、すなわち、ユーザがセンタ１１に向けて認証情報を送信する場合、カウント値に関し項目番号２を例に説明すると、そのときのカウント値（ｉ）と、そのカウント値（ｉ）と送信先のセンタ１１を特定するセンタＩＤ符号（Ｃ１）とを結合してなる結合符号（ｉ，Ｃ１）に鍵で署名してなる認証子Ｅ（ｉ，Ｃ１）との双方からなる認証情報（ｉ，Ｅ（ｉ，Ｃ１））をセンタ１１に向けて送信し、ユーザ１０は、その後、カウント値（ｉ）をインクリメントしてカウント値（ｉ＋１）とする。
【００３２】
また、図３に示す項目番号３，５，８では、センタ１１は、カウント値に関し項目番号３を例に説明すると、今回送信されてきた認証情報（ｉ，Ｅ（ｉ，Ｃ１））に含まれるカウント値（ｉ）が前回送信されてきた認証情報（ｉ−１，Ｅ（ｉ−１，Ｃ１））に含まれていたカウント値（ｉ−１）よりも値の大きなカウント値であるという第１のサブルールと、認証情報（ｉ，Ｅ（ｉ，Ｃ１））に含まれる認証子Ｅ（ｉ，Ｃ１）が、その認証情報（ｉ，Ｅ（ｉ，Ｃ１））に含まれるカウント値（ｉ）と、自分自身のセンタＩＤ符号（Ｃ１）とを結合してなる結合符号（ｉ，Ｃ１）に鍵で著名してなる認証子Ｅ（ｉ，Ｃ１）と比べ同一の認証子であるという第２のサブルールとの双方のサブルールからなるルールに従うか否かを調べ、そのルールに従っていた場合に、その認証情報（ｉ，Ｅ（ｉ，Ｃ１））の発信元が正しくユーザ１０であることを認証する。またセンタ１１は、その認証情報の発信元が正当なユーザ１０であるので、そのユーザにサービスを提供する。
【００３３】
図３に示す項目番号９，１０における各処理は、それぞれ、上述した項目番号２，４，６，７における処理、および項目番号３，５，８における処理と比べ、センタＩＤ符号がセンタ１２を特定するセンタＩＤ符号（Ｃ２）に変更されるだけであり、重複説明は省略する。
この図３に示す第２実施形態では、ユーザ１０からセンタ１１，１２に向けて認証情報を送る場合に、どのセンタ宛に送る認証情報であるかを明記し、その宛先を改ざんされないように、カウント値とその宛先（センタＩＤ符号）との双方からなる結合符号に署名する。こうすることにより、ユーザ１０がセンタ１１に送ろうとしていた認証情報が例えば悪意の第３者によってセンタ１２に送られてしまった場合の、誤った認証を防止することができる。
【００３４】
尚、図３を参照して説明した第２実施形態は、第１実施形態における、カウント値に鍵で署名して認証子を作成することに代え、カウント値とセンタＩＤ符号とが結合されてなる結合符号に鍵で署名して認証子を作成するものであり、この点のみ変更すれば、上述した第１実施形態の変形例等がそのまま適用される。したがってここでは第２実施形態についてのこれ以上の説明は省略する。
【００３５】
図４は、本発明の第３実施形態の認証方式の流れを示す図である。
尚、以下に示す項目番号１〜８のうち項目番号２〜８と同一の番号を図４に付して説明する。
１．前提
図４に示すユーザ３０，センタ３１，３２は、それぞれ、現在時刻を知る時計を有する。またユーザ３０は、そのユーザ３０の時計による時刻に署名する鍵をセンタ３１，３２に予め登録しておく。一方、センタ３１，３２は、ユーザ３０の時計による、以前の認証処理によって得られたアクセス時刻を保持する。またセンタ３１，３２は、センタ３１，３２それぞれの時計による、そのセンタ３１，３２へのアクセス時刻を保持する。尚、ユーザ３０の時計による、センタ３１へのアクセス時刻（ｔｕ０１）とセンタ３２へのアクセス時刻（ｔｕ０２）は互いに異なる。また、センタ３１の時計によるそのセンタ３１へのアクセス時刻（ｔｃ０１）と、センタ３２の時計によるそのセンタ３２へのアクセス時刻（ｔｃ０２）も互いに異なる。アクセス時刻ｔｕ０１とｔｃ０１も通常異なる。同様に、アクセス時刻ｔｕ０２とアクセス時刻ｔｃ０２も通常異なる。
２．センタ３１への認証依頼（その１）
ユーザ３０は、認証を受けるにあたり、そのユーザ３０の時計（本発明にいう第１の時計）による時刻ｔｕ１と、その時刻ｔｕ１に鍵で署名してなる認証子Ｅ（ｔｕ１）との双方からなる認証情報（ｔｕ１，Ｅ（ｔｕ１））をセンタ３１に向けて送信する。
３．センタ３１での認証処理
センタ３１は、今回送信されてきた認証情報（ｔｕ１，Ｅ（ｔｕ１））に含まれる時刻ｔｕ１が前回送信されてきた認証情報（ｔｕ０１，Ｅ（ｔｕ０１））に含まれていた時刻ｔｕ０１よりも先に進んだ時刻であって、かつ今回送信されてきた認証情報（ｔｕ１，Ｅ（ｔｕ１））に含まれる認証子Ｅ（ｔｕ１）が、今回送信されてきた認証情報（ｔｕ１，Ｅ（ｔｕ１））に含まれる時刻ｔｕ１に鍵で署名してなる認証子と比べ同一の認証子であるというルールに従うか否かを調べ、そのルールに従っていた場合に、さらに、その認証情報（ｔｕ１，Ｅ（ｔｕ１））に含まれる時刻ｔｕ１が表わす現在時刻の、前回送信されてきた認証情報（ｔｕ０１，Ｅ（ｔｕ０１））に含まれる時刻ｔｕ０１が表わす現在時刻からの第１の経過時間（ｔｕ１−ｔｕ０１）と、センタ３１の時計（本発明にいう第２の時計）から得られた、今回送信されてきた認証情報（ｔｕ１，Ｅ（ｔｕ１））の受信時刻ｔｃ１の、前回送信されてきた認証情報（ｔｕ０１，Ｅ（ｔｕ０１））の受信時刻ｔｃ０１からの第２の経過時間（ｔｃ１−ｔｃ０１）とを比べる。即ち、｜（ｔｕ１−ｔｕ０１）−（ｔｃ１−ｔｃ０１）｜（ただし、｜｜は絶対値を示す）を計算し、その計算結果が所定の許容誤差（例えば、３０秒）以内にある場合に、その認証情報（ｔｕ１，Ｅ（ｔｕ１））の発信元が正しくユーザ３０であることを認証する。また、センタ３１では、時刻ｔｕ１，ｔｃ１を記録する。さらに、今回の認証情報の発信元が正当なユーザ３０であるので、そのユーザ３０にサービスを提供する。
【００３６】
次に、上述した処理に引き続き認証要求を行った結果、通信に失敗した場合について説明する。
４．センタ３１への認証依頼（その２）
ユーザ３０は、認証を受けるにあたり、そのユーザ３０の時計による時刻ｔｕ２と、その時刻ｔｕ２に鍵で署名してなる認証子Ｅ（ｔｕ２）との双方からなる認証情報（ｔｕ２，Ｅ（ｔｕ２））をセンタ３１に向けて送信する。しかし、この通信は失敗しセンタ３１からの応答がないので、ユーザ３０では、その通信処理はタイムアウトと判断し、あらためて認証を依頼する。
５．センタ３１への認証依頼（その３）
ユーザ３０は、認証を受けるにあたり、そのユーザ３０の時計による時刻ｔｕ３と、その時刻ｔｕ３に鍵で署名してなる認証子Ｅ（ｔｕ３）との双方からなる認証情報（ｔｕ３，Ｅ（ｔｕ３））をセンタ３１に向けて送信する。
６．センタ３１での認証処理
センタ３１は、今回送信されてきた認証情報（ｔｕ３，Ｅ（ｔｕ３））が前述したルールに従うか否かを調べ、そのルールに従っていた場合に、さらに、その認証情報（ｔｕ３，Ｅ（ｔｕ３））に含まれる時刻ｔｕ３が表わす現在時刻の、前回送信されてきた認証情報（ｔｕ１，Ｅ（ｔｕ１））に含まれる時刻ｔｕ１が表わす現在時刻からの第１の経過時間（ｔｕ３−ｔｕ１）と、センタ３１の時計から得られた、今回送信されてきた認証情報（ｔｕ３，Ｅ（ｔｕ３））の受信時刻ｔｃ３の、前回送信されてきた認証情報（ｔｕ１，Ｅ（ｔｕ１））の受信時刻ｔｃ１からの第２の経過時間（ｔｃ３−ｔｃ１）とを比べる。即ち、｜（ｔｕ３−ｔｕ１）−（ｔｃ３−ｔｃ１）｜（ただし、｜｜は絶対値を示す）を計算し、その計算結果が所定の許容誤差（例えば、３０秒）以内にある場合に、その認証情報（ｔｕ３，Ｅ（ｔｕ３））の発信元が正しくユーザ３０であることを認証する。また、センタ３１では、時刻ｔｕ３，ｔｃ３を記録する。さらに、その認証情報の発信元が正当なユーザ３０であるので、そのユーザ３０にサービスを提供する。
【００３７】
次に、上述した処理に引き続き、センタ３１以外のセンタ３２に認証要求を行う場合について説明する。
７．センタ３２への認証依頼（その１）
ユーザ３０は、認証を受けるにあたり、そのユーザ３０の時計による時刻ｔｕ４と、その時刻ｔｕ４に鍵で署名してなる認証子Ｅ（ｔｕ４）との双方からなる認証情報（ｔｕ４，Ｅ（ｔｕ４））をセンタ３２に向けて送信する。
８．センタ３２の認証処理
センタ３２は、今回送信されてきた認証情報（ｔｕ４，Ｅ（ｔｕ４））が前述したルールに従うか否かを調べ、そのルールに従っていた場合に、さらに、その認証情報（ｔｕ４，Ｅ（ｔｕ４））に含まれる時刻ｔｕ４が表わす現在時刻の、前回送信されてきた認証情報（ｔｕ０２，Ｅ（ｔｕ０２））に含まれる時刻ｔｕ０２が表わす現在時刻からの第１の経過時間（ｔｕ４−ｔｕ０２）と、センタ３２の時計から得られた、今回送信されてきた認証情報（ｔｕ４，Ｅ（ｔｕ４））の受信時刻ｔｃ０４の、前回送信されてきた認証情報（ｔｕ０２，Ｅ（ｔｕ０２））の受信時刻ｔｃ０２からの第２の経過時間（ｔｃ４−ｔｃ０２）とを比べる。即ち｜（ｔｕ４−ｔｕ０２）−（ｔｃ４−ｔｃ０２）｜（ただし、｜｜は絶対値を示す）を計算し、その計算結果が所定の許容誤差（例えば、３０秒）以内にある場合に、その認証情報（ｔｕ４，Ｅ（ｔｕ４））の発信元が正しくユーザ３０であることを認証する。また、センタ３２では、時刻ｔｕ４，ｔｃ４を記録する。さらに、その認証情報の発信元が正当なユーザ３０であるので、そのユーザ３０にサービスを提供する。
【００３８】
このように本発明の第３実施形態の認証方式では、ユーザとセンタとの双方に時計を備えているため、ユーザはセンタごとに送った認証子を記録しておく必要がなく、異なるセンタにアクセスする場合でも同じ機構で認証依頼を行なうことができる。
また、センタにおける認証は、ユーザの時計がセンタの時計と同じ時間だけ進んでいればよく、ユーザの時計とセンタの時計との間に誤差があってもよい。また、図２に示す、センタがユーザに向けて乱数を送信する手法と組み合わせることにより、安全性をさらに高めることができ、またユーザ側システムの再インストールなどによってユーザの時計がリセットされた場合でも対処できる。
【００３９】
尚、図４を参照して説明した第３実施形態において、時刻のみを鍵で署名して認証子を作成することに代え、前述した第２実施形態のように、時刻とセンタＩＤ符号とが結合されてなる結合符号を鍵で署名して認証子を作成してもよい。こうすれば、センタ３１に送信されるべき認証情報がセンタ３２に届いたときの誤った認証を防止することができる。
【００４０】
【発明の効果】
以上説明したように、本発明の認証方式によれば、センタにおける認証は、今回送信されてきた第１の認証情報に含まれる第１の符号が前回送信されてきた第２の認証情報に含まれていた符号よりも後に位置する符号であって、かつ、第１の認証情報に含まれる第１の認証子が、その第１の認証情報に含まれる第１の符号（もしくは第１の符号とセンタＩＤ符号とが結合されてなる結合符号）に鍵で署名してなる認証子と比べ同一の認証子であるというルールに基づいてなされるため、認証子がセンタに届かない場合であっても、引き続き認証処理を簡単に行うことができる。また、ユーザは送った認証子をセンタごとに記録しておく必要がなく、異なるセンタにアクセスする場合でも同じ機構で認証処理を行うことができる。
【図面の簡単な説明】
【図１】本発明の第１の実施形態の認証方式の流れを示す図である。
【図２】図１に示す認証方式において、センタが認証依頼を受けた場合、ユーザからのカウント値がセンタに記録されたカウント値よりも小さい場合の処理について示した図である。
【図３】本発明の第２実施形態の認証方式の流れを示す図である。
【図４】本発明の第３実施形態の認証方式の流れを示す図である。
【図５】従来のチャレンジ・レスポンス型の認証方式の流れを示す図である。
【図６】特開平５−２１９０５３号公報に提案されたチャレンジ・レスポンス型の認証方式の流れを示す図である。
【符号の説明】
１０，３０  ユーザ
１１，１２，３１，３２  センタ
【図１】
0003729940.tif 000002
【図２】
0003729940.tif 000003
【図３】
0003729940.tif 000004
【図４】
0003729940.tif 000005
【図５】
0003729940.tif 000006
【図６】
0003729940.tif 000007