(57)【要約】【課題】十分な匿名性で、しかも計算コストと通信コストが高くならない匿名認証システムおよびそれをもちいて構成する匿名通信路の匿名サービス利用ネットワークと秘匿性の高い匿名マッチングシステムを提供する。【解決手段】  匿名認証システム１００は、ユーザの端末装置２００とサーバの認証装置３００が、インターネットのような安全ではない通信路１１０により接続されて互いに通信を行い、個人を特定しないで利用者を認証する。パスワードを用いた匿名認証に対して過去に生成したデータを再利用したとしても安全性を損なわないようにして、２回目以降の処理を軽くする。また、匿名認証システムを用いて、匿名サービス利用ネットワークおよび匿名マッチングシステムが提供される。【選択図】  図１
2008176650.tif 000002
【特許請求の範囲】
【請求項１】
利用者端末装置に設けられて、利用者からのパスワード入力を受け付け、ユーザ側の認証用データを生成する第１の認証データ生成装置と、
利用者端末装置に設けられて、前記第１認証データ生成装置により生成されたユーザ側の認証用データを認証サーバに送信するとともに、前記認証サーバからサーバ側の認証用データを受信する第１の通信処理部と、
利用者端末装置に設けられて、前記第１認証データ生成装置から出力される認証用データおよび認証サーバから受信した認証用データに基づいて、認証結果を判断し、認証子を生成すると共に、セッション鍵を生成する第１のセッション鍵生成装置と、
認証サーバに設けられて、ユーザ側の認証用データを受け付けて、認証サーバ側の認証用データを生成する第２の認証データ生成装置と、
認証サーバに設けられて、前記利用者端末装置からユーザ側の認証用データを受信すると共に、前記第２認証データ生成装置により生成されたサーバ側の認証用データを利用者端末装置に送信する第２の通信処理部と、
認証サーバに設けられて、前記第２認証データ生成装置から出力される認証用データおよび利用者端末装置から受信した認証用データに基づいて、認証結果を判断し、セッション鍵を生成する第２のセッション鍵生成装置と、
を備えることを特徴とする匿名認証システムであって、
利用者端末装置からユーザＩＤ及びパスワード入力があった場合に、認証サーバに設けられた第２の認証データ生成装置の初期化処理を行い、初期化処理データをメモリに格納し、以降の処理では前記メモリに格納したデータを用いる、
ことを特徴とする匿名認証システム。
【請求項２】
請求項１に記載の匿名認証システムを用いて構成する匿名サービス利用ネットワークであって、
利用者端末装置からのセッション鍵に基づいて利用者に対してサービスを提供する匿名サービス提供サーバと、
利用者端末装置からユーザの匿名認証を行った際に共有したセッション鍵を認証サーバから受け取り、前記匿名サービス提供サーバがサービスを提供するための通信路のアドレスを割り付ける通信アドレス割り当て装置と、
利用者端末装置と前記匿名サービス提供サーバとの間のパケットの認証を行い、認証されていないパケットをネットワーク外に送信することを防止するネットワークフィルタリング装置と、
を備えることを特徴とする匿名サービス利用ネットワーク。
【請求項３】
請求項２に記載の匿名サービス利用ネットワークにおいて、
前記匿名サービス提供サーバは、認証サーバによりユーザを匿名認証した際に共有したセッション鍵と、ユーザを特定するＩＤの通知を予め受けて、前記ＩＤおよびセッション鍵に基づく通信のみを受け付ける
ことを特徴とする匿名サービス利用ネットワーク。
【請求項４】
請求項１に記載の匿名認証システムを用いて、サーバに置いてあるデータを検索者に秘匿し、かつ検索者の検索内容をサーバに秘匿し、かつ検索結果がヒットした場合にはそのことをサーバと検索者が知ることのできる匿名マッチングシステムであって、
自己の希望する検索語または条件式の入力を受け付ける検索語・条件式処理装置およびユーザ側認証用データ生成装置から構成される条件検索者の匿名マッチングシステムと、
自己の希望する検索語または条件式の入力を受け付ける検索語・条件式処理装置およびサーバ側認証用データ生成装置から構成される条件提供者の匿名マッチングシステムと、
を備え、
条件提供者の匿名マッチングシステムの検索語・条件式処理装置が、検索語および条件式を受け入れ、それを加工し、その加工データを秘密情報として各サーバ側認証用データ生成装置に設定し、
サーバ側認証用データ生成装置が、ユーザ側認証用データ生成装置からの接続に応答して、その出力を前記検索語・条件式処理装置に伝え、
条件提供者の匿名マッチングシステムの検索語・条件式処理装置が、各サーバ側認証用データ生成装置の出力を集め、条件検索者の匿名マッチングシステムの検索語・条件式処理装置と通信し、マッチング結果を出力すると共に、
条件検索者の匿名マッチングシステムの検索語・条件式処理装置が、検索語および条件式を受け入れ、それを加工し、その加工データを秘密情報として各ユーザ側認証用データ生成装置に設定し、
ユーザ側認証用データ生成装置はサーバ側認証用データ生成装置に接続し、その出力を検索語・条件式処理装置に伝え、
条件検索者の匿名マッチングシステムの検索語・条件式処理装置が、各ユーザ側認証用データ生成装置の出力を集め、条件提供者の匿名マッチングシステムの検索語・条件式処理装置と通信し、マッチング結果を出力する、
ことを特徴とする匿名マッチングシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、匿名認証システムに関するものである。また、匿名認証システムを用いて構成する匿名通信路の匿名サービス利用ネットワーク、および秘匿性の高い匿名マッチングシステムに関するものである。
【背景技術】
【０００２】
ＩＴ化や個人情報保護法の施行などに伴い、匿名性を要するアプリケーションが増えている。従来の技術で、その匿名性や秘匿性を高めようとすると計算量と通信量が多くなり非常に使い勝手の悪いものとなる。例えば、非特許文献１の技術においては、ＯＴ（Ｏｂｌｉｖｉｏｕｓ  Ｔｒａｎｓｆｅｒ）とＰＡＫＥ（Ｐａｓｓｗｏｒｄ−Ａｕｔｈｅｎｔｉｃａｔｅｄ  Ｋｅｙ  Ｅｘｃｈａｎｇｅ）の組み合わせで匿名認証を実現しているが、サーバ側の計算量と通信量が多いという欠点がある。
【０００３】
非特許文献２の技術においては、暗号文の状態でその平文中のキーワードを検索できるが、その暗号文の作成者は利用者が何を検索しているのかを知ることができる。このために、十分な秘匿性が保証されない。非特許文献３の技術における「Ｐｒｉｖａｔｅ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｒｅｔｒｉｅｖａｌ」は、利用者が何を検索したかをサーバに秘匿できるが、利用者はサーバに置いてある情報を知ることができる。このため、ここでも、十分な秘匿性を保証することはできない。
【０００４】
匿名認証の技術として、また、特許文献１〜特許文献３の技術が参照できる。特許文献１の技術では、管理装置であるグリッドシステムが、ＳＳＬでユーザのＩＤやパスワードに基づいてクライアント装置の認証を行う。その認証が成功したら管理装置はユーザの匿名プロキシ証明書を発行し、それに基いて計算機に対するユーザの認証を代わりに行う。特許文献２の技術は、ピアツーピア型匿名プロキシにおける安全性の高い匿名通信路の検証及び構築する方法であり、ユーザとサーバの間に匿名通信路を作るために、自分が立ち上げたピアツーピア型匿名プロキシと他人が立ち上げたピアツーピア型匿名プロキシを繋ぐことでルートができる。そのルートにある他人のピアツーピア型匿名プロキシが信頼できるかどうかを検証するためにパスワードを多重暗号化して送ってもらい、また、別のルートでそのピアツーピア型匿名プロキシとパスワードを送受信することで認証を行う。また、特許文献３の技術は、電子掲示板システム及びそれに用いる投稿管理方法の技術である。ここでは、クライアントが匿名を悪用して電子掲示板に投稿するのを防ぐために、クライアントのパスワード認証をホストコンピュータではなく、すべてのクライアントが協力することで認証ができる。
【非特許文献１】D. Q. Viet, A. Yamamura, and H. Tanaka, “AnonymousPassword-Based Authenticated Key Exchange” Proc. of INDOCRYPT 2005, LNCS 3797,pp. 244-257, 2005.
【非特許文献２】D. Boneh, G. D. Crescenzo, R. Ostrovsky, and G.Persiano, “Public Key Encryption with Keyword Search” Proc. of EUROCRYPT 2004,LNCS 3027, pp. 506-522, 2004.
【非特許文献３】W. Gasarch, “A Survey on Private InformationRetrieval” http://theorie.informatik.uni-ulm.de/Personen/toran/beatcs/column82.pdf
【特許文献１】特開２００６−３０１８３１号公報
【特許文献２】特開２００５−２３６９３９号公報
【特許文献３】特開２００１−３３１４１１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
上述したように、匿名性を要するアプリケーションが増えているが、これに対して、従来の技術で匿名性や秘匿性を高めようとすると、計算量と通信量が多くなり非常に使い勝手の悪いものとなる。
【０００６】
例えば、パスワードを用いた従来の匿名認証の処理では、それを実行する度にグループのメンバ数をｎとすると、ｎに比例した計算量や通信量が必要であり、匿名性や秘匿性を高めようとすると、計算量と通信量が膨大なものとなり、匿名性を要するアプリケーションおける計算コストが高くなるという問題がある。
【０００７】
また、従来技術による匿名通信路においては、
（１）経由するノード数に応じて処理が重くなる、
（２）ファイヤーウォールやＮＡＴ（Ｎｅｔｗｏｒｋ  Ａｄｄｒｅｓｓ  Ｔｒａｎｓｌａｔｉｏｎ）などで送信者を特定できる、
（３）コンテンツの不正配布、不法薬物の売買、テロ活動など公序良俗に反する目的で利用される恐れがある、
といった問題点があった。
【０００８】
本発明は、これらの問題点を解決するためになされたものであり、本発明の目的は、十分な匿名性で、しかも計算コストと通信コストが高くならない匿名認証システムを提供することにある。また、そのような匿名認証システムを用いて構成する匿名通信路の匿名サービス利用ネットワーク、および秘匿性の高い匿名マッチングシステムを提供することにある。
【課題を解決するための手段】
【０００９】
上記のような目的を達成するため、本発明による匿名認証システムにおいては、基本的な概念として、パスワードを用いた匿名認証に対して過去に生成したデータを再利用したとしても安全性を損なわないようにして、匿名認証システムを構成する。これにより、２回目以降の処理を軽くする。
【００１０】
また、本発明による匿名認証システムを用いて匿名サービス利用ネットワークを構成する場合には、認証された利用者のみに通信の際に必要となる特定のアドレスを割り振ると共にそのアドレスでは特定のサーバにしか接続させないようにする。これにより、乱用ができなく、かつ効率のよい匿名サービス利用ネットワークを構成する。
【００１１】
また、本発明による匿名認証システムを用いて、秘匿性の高い匿名マッチングシステムを構成する場合においては、パスワードを用いた匿名認証により提供される匿名性を応用することにより、「サーバに置いてあるデータを検索者に秘匿し、かつ検索者の検索内容をサーバに秘匿し、かつ検索結果がヒットした場合にはそのことをサーバと検索者が知ることのできる」匿名マッチングシステムが提供される。
【００１２】
具体的には、本発明は、第１の態様として、本発明による匿名認証システムは、利用者端末装置に設けられて、利用者からのパスワード入力を受け付け、ユーザ側の認証用データを生成する第１の認証データ生成装置と、利用者端末装置に設けられて、前記第１認証データ生成装置により生成されたユーザ側の認証用データを認証サーバに送信するとともに、前記認証サーバからサーバ側の認証用データを受信する第１の通信処理部と、利用者端末装置に設けられて、前記第１認証データ生成装置から出力される認証用データおよび認証サーバから受信した認証用データに基づいて、認証結果を判断し、認証子を生成すると共に、セッション鍵を生成する第１のセッション鍵生成装置と、認証サーバに設けられて、ユーザ側の認証用データを受け付けて、認証サーバ側の認証用データを生成する第２の認証データ生成装置と、認証サーバに設けられて、前記利用者端末装置からユーザ側の認証用データを受信すると共に、前記第２認証データ生成装置により生成されたサーバ側の認証用データを利用者端末装置に送信する第２の通信処理部と、認証サーバに設けられて、前記第２認証データ生成装置から出力される認証用データおよび利用者端末装置から受信した認証用データに基づいて、認証結果を判断し、セッション鍵を生成する第２のセッション鍵生成装置と、を備えることを特徴とする匿名認証システムであって、利用者端末装置からユーザＩＤ及びパスワード入力があった場合に、認証サーバに設けられた第２の認証データ生成装置の初期化処理を行い、初期化処理データをメモリに格納し、以降の処理では前記メモリに格納したデータを用いる、ことを特徴とするものである。
【００１３】
本発明は、第２の態様として、匿名認証システムを用いて構成する匿名サービス利用ネットワークであって、利用者端末装置からのセッション鍵に基づいて利用者に対してサービスを提供する匿名サービス提供サーバと、利用者端末装置からユーザの匿名認証を行った際に共有したセッション鍵を認証サーバから受け取り、前記匿名サービス提供サーバがサービスを提供するための通信路のアドレスを割り付ける通信アドレス割り当て装置と、利用者端末装置と前記匿名サービス提供サーバとの間のパケットの認証を行い、認証されていないパケットをネットワーク外に送信することを防止するネットワークフィルタリング装置と、を備えることを特徴とするものである。
【００１４】
この場合に、前記匿名サービス提供サーバは、認証サーバによりユーザを匿名認証した際に共有したセッション鍵と、ユーザを特定するＩＤの通知を予め受けて、前記ＩＤおよびセッション鍵に基づく通信のみを受け付けるように構成される。
【００１５】
また、本発明は、第３の態様として、匿名認証システムを用いて、サーバに置いてあるデータを検索者に秘匿し、かつ検索者の検索内容をサーバに秘匿し、かつ検索結果がヒットした場合にはそのことをサーバと検索者が知ることのできる匿名マッチングシステムであって、自己の希望する検索語または条件式の入力を受け付ける検索語・条件式処理装置およびユーザ側認証用データ生成装置から構成される条件検索者の匿名マッチングシステムと、自己の希望する検索語または条件式の入力を受け付ける検索語・条件式処理装置およびサーバ側認証用データ生成装置から構成される条件提供者の匿名マッチングシステムと、を備え、条件提供者の匿名マッチングシステムの検索語・条件式処理装置が、検索語および条件式を受け入れ、それを加工し、その加工データを秘密情報として各サーバ側認証用データ生成装置に設定し、サーバ側認証用データ生成装置が、ユーザ側認証用データ生成装置からの接続に応答して、その出力を前記検索語・条件式処理装置に伝え、条件提供者の匿名マッチングシステムの検索語・条件式処理装置が、各サーバ側認証用データ生成装置の出力を集め、条件検索者の匿名マッチングシステムの検索語・条件式処理装置と通信し、マッチング結果を出力すると共に、条件検索者の匿名マッチングシステムの検索語・条件式処理装置が、検索語および条件式を受け入れ、それを加工し、その加工データを秘密情報として各ユーザ側認証用データ生成装置に設定し、ユーザ側認証用データ生成装置はサーバ側認証用データ生成装置に接続し、その出力を検索語・条件式処理装置に伝え、条件検索者の匿名マッチングシステムの検索語・条件式処理装置が、各ユーザ側認証用データ生成装置の出力を集め、条件提供者の匿名マッチングシステムの検索語・条件式処理装置と通信し、マッチング結果を出力する、ことを特徴とするものである。
【発明の効果】
【００１６】
このような特徴を有する本発明の匿名認証システムによれば、従来のパスワードを用いた匿名認証では、それを実行する度にグループのメンバ数をｎとしてｎに比例した計算量や通信量が必要であったが、本発明の匿名認証システムでは、２回目以降の実行における計算量や通信量を一定にすることができ、非常に効率よく実行できる。
【００１７】
また、本発明による匿名認証システムを用いて、送信元ＩＰアドレスなどからデータの送信者を特定することを防止する匿名通信路である匿名サービス利用ネットワークが提供され、この匿名通信路では、別ノードを必要としないため、経由するノード数に応じて処理が重くなることはなく、また、ネットワークの管理者も利用者を特定できないため、従来の通信路のように、ファイヤーウォールやＮＡＴ（Ｎｅｔｗｏｒｋ  Ａｄｄｒｅｓｓ  Ｔｒａｎｓｌａｔｉｏｎ）などで送信者を特定できることはなく、利用目的を限定できるため、コンテンツの不正配布、不法薬物の売買、テロ活動など公序良俗に反する目的で利用される恐れがあるといった問題点が解決される。
【００１８】
さらに、また、本発明による匿名認証システムを用いることにより、サーバに置いてあるデータを検索者に秘匿し、かつ検索者の検索内容をサーバに秘匿し、かつ検索結果がヒットした場合にはそのことをサーバと検索者が知ることができるため、高い秘匿性を確保しながら検索やマッチングを行うことができる匿名マッチングシステムが提供される。
【発明を実施するための最良の形態】
【００１９】
以下に、図面を参照しつつ、本発明の好適な実施例について説明する。ただし、本発明は以下の各実施例に限定されるものではなく、例えば、これら実施例の構成要素同士を適宜に組み合わせてもよい。
【００２０】
図１は、本発明に係る匿名認証システムの概略のシステム構成を説明する図である。図１に示すように、匿名認証システム１００は、ユーザの端末装置（利用者端末装置）２００とサーバの認証装置（認証サーバ）３００が、インターネットのような安全ではない通信路１１０により接続されて互いに通信を行い、個人を特定しないで利用者を認証するシステムである。
【００２１】
すなわち、匿名認証システム１００は、ユーザの端末装置２００とサーバの認証装置３００がお互いに相互認証しながら同じセッション鍵を確保するためのシステムであり、ここで、例えば、利用者サービスを提供するサーバは、セッション鍵を共有したユーザが自分に登録しているユーザの中で一人であることは確認できるものの、そのユーザが誰かは特定できない。利用者は、パスワード入力を行うことでサーバからのサービスを利用することができるようになる。
【００２２】
まず、以下の説明において用いる整数論と記号について、概略を説明しておく。ｐ，ｑは素数であり、ｑ｜ｐ−１という関係がある。ｑ｜ｐ−１は、ｑはｐ−１を割りきることのできる値であることを意味する。また、ｇはｍｏｄ  ｐ上の位数ｑの有限体（群）Ｇ＝｛ｇｊ  ｍｏｄ  ｐ：  ０≦ｊ＜ｑ｝の生成元である（楕円曲線上の群でも同じように構成できる）。
【００２３】
ここで、“ｇｊ  ｍｏｄ  ｐ”は、法指数演算で、ｇをｊ乗した値をｐで割った残り（Ｒｅｍａｉｎｄｅｒ）という意味である。また、ここで、ｇは（１＜ｇ＜ｐ−１，ｇｑ＝１  ｍｏｄ  ｐ，ｇｊ≠１  ｍｏｄ  ｐ（０＜ｊ＜ｑ））である。
【００２４】
つまり、ｐ，ｑは演算体系（素体の標数）を示す。例えば、Ｘ＝ｇｘ  ｍｏｄ  ｐ(０＜ｘ＜ｑ)でｘは秘密情報であり、Ｘが与えられた時、ｘ＝ｌｏｇｇＸを求めるのは数学的に難しい問題（Ｘの生成元ｇに対する離散対数問題という）である。
【００２５】
また、乱数発生器から発生される乱数はＲ∈（Ｚ／ｑＺ）＊を無作為に生成する。ここで、（Ｚ／ｑＺ）＊は｛１，２，・・・，ｑ−１｝の集合を示す。マスタ鍵発生器から発生されるマスタ鍵はＭＳ∈｛０，１｝ｍを無作為に生成する。ここで、｛０，１｝ｍは長さがｍの二進数列の集合を示す。また、ＥＫｅｙ（Ｍ）は対称鍵Ｋｅｙを使ってメッセージＭを暗号化し、ＤＫｅｙ（Ｃ）は対称鍵Ｋｅｙを使って暗号文Ｃからメッセージを復号する。例えば、対象鍵暗号方式としてＡＥＳ−ｘｘｘなどが使われる。ここで、ｘｘｘはＣＢＣ、ＣＣＭなどのような対称鍵暗号方式の利用モードを意味する。
【００２６】
以下の説明では、複数の安全な一方向性ハッシュ関数Ｆ，Ｈ１，Ｈ２，Ｈ３，Ｈ４，Ｈ５を使う（例えば、ＳＨＡ２５６或いはＲＩＰＥＭＤ１６０など）。また、ｌはハッシュ関数のセキュリティパラメータを意味する。
【００２７】
ハッシュ関数Ｆは、｛０，１｝＊  →（Ｚ／ｑＺ）＊にマッピングするＦＤＨ（Ｆｕｌｌ  Ｄｏｍａｉｎ  Ｈａｓｈ）関数である。ここで、｛０，１｝＊は有限の二進数列の集合を示す。他のハッシュ関数Ｈｋ（１≦ｋ≦５）は｛０，１｝＊→｛０，１｝ｌｋのようにマッピングする。ここで、｛０，１｝ｌｋは長さがｌｋの二進数列の集合を示す。
【００２８】
また、‖は値を連結（ｃｏｎｃａｔｅｎａｔｉｏｎ）するという意味である。また、各ユーザはユーザＩＤ（Ｕｉ）を持ち、そのグループＩＤはＵ＝｛Ｕ１，・・・，Ｕｎ｝で表す。例えば、ユーザＩＤは一連番号（Ｓｅｒｉａｌ  ｎｕｍｂｅｒ）あるいはＰｕｂｌｉｃ  ａｃｃｏｕｎｔ  ｎａｍｅにしてもよい。また、ユーザＵｉは自分のパスワードｐｗｉを覚えていて、サーバはすべてのユーザのＩＤとパスワード対｛Ｕｊ，ｐｗｊ｝（１≦ｊ≦ｎ）をデータベースに保存している。また、ＳはサーバＩＤを表す。そして、ｐａｒａｍ＝（ｇ，ｐ，ｑ），Ｆ，Ｈ１，Ｈ２，Ｈ３，Ｈ４，Ｈ５，Ｕ＝｛Ｕ１，・・・，Ｕｎ｝，Ｓは公開情報であり、例えばサーバの掲示板などに公開する。
【００２９】
図２は、本発明に係る匿名認証システムにおけるユーザの端末装置の概略のシステム構成を説明するブロック図である。図２に示すように、ユーザの端末装置２００は、ユーザ側認証用データ生成装置２０１と，通信処理部２０２と、ユーザ側認証結果判定及びセッション鍵生成装置２０３とから構成される。
【００３０】
ユーザの端末装置２００において、ユーザ側認証用データ生成装置２０１は、利用者からのパスワード入力を受け付け、ユーザ側の認証用データを生成する。通信処理部２０２は、ユーザ側認証用データ生成装置２０１により生成されたユーザ側の認証用データを、サーバの認証装置３００に送信するとともに、サーバの認証装置３００からサーバ側の認証用データを受信する。ユーザ側認証結果判定及びセッション鍵生成装置２０３は、後述するように、ユーザ側認証用データ生成装置２０１から出力される認証用データおよびサーバの認証装置３００から受信した認証用データに基づいて、認証結果を判断し、認証子を生成すると共に、セッション鍵を生成する。
【００３１】
図３は、本発明に係る匿名認証システムにおけるサーバの認証装置の概略のシステム構成を説明するブロック図である。図３に示すように、サーバの認証装置３００は、サーバ側認証用データ生成装置３０１と，通信処理部３０２と、サーバ側認証結果判定及びセッション鍵生成装置３０３とから構成される。
【００３２】
サーバの認証装置３００において、サーバ側認証用データ生成装置３０１は、ユーザ側の認証用データを受け付けて、認証サーバ側の認証用データを生成する。通信処理部３０２は、ユーザの端末装置２００からユーザ側の認証用データを受信すると共に、サーバ側認証用データ生成装置３０１により生成された認証サーバ側の認証用データをユーザの端末装置２００に送信する。また、サーバ側認証結果判定及びセッション鍵生成装置３０３は、後述するように、サーバ側認証用データ生成装置３０１から出力される認証用データおよびユーザの端末装置２００から受信した認証用データに基づいて、認証結果を判断し、セッション鍵を生成する。
【００３３】
次に、図２および図３を参照して、ユーザの端末装置２００とサーバの認証装置３００との間で匿名を保ちながら相互認証及び鍵交換を行う動作を説明する。
【００３４】
＜ユーザの端末装置の動作＞
図２を参照すると、ユーザの端末装置２００は、ユーザ側認証用データ生成装置２０１と、通信処理部２０２と、ユーザ側認証結果判定及びセッション鍵生成装置２０３で構成されている。ユーザ側認証用データ生成装置２０１は、ＢＡＳＩＣ，ＥＸＴＥＮＤＥＤ１，ＥＸＴＥＮＤＥＤ２，ＣＥ１，ＣＥ２，ＣＥ３，ＣＥ４プロトコルなどで構成される。それぞれのプロトコルよる構成および動作については、後に詳述する。
【００３５】
＜サーバの認証装置の動作＞
また、図３を参照すると、サーバの認証装置３００は、サーバ側認証用データ生成装置３０１と、通信処理部３０２と、サーバ側認証結果判定及びセッション鍵生成装置３０３で構成される。サーバ側認証用データ生成装置３０１は、ＢＡＳＩＣ，ＥＸＴＥＮＤＥＤ１，ＥＸＴＥＮＤＥＤ２，ＣＥ１，ＣＥ２，ＣＥ３，ＣＥ４プロトコルなどで構成する。これらは、ユーザの端末装置２００の各プロトコルに対応したものであり、それぞれのプロトコルにおける構成および動作については、後に詳述する。
【００３６】
本発明による匿名認証システム１００は、サーバの認証装置３００において、まず、サーバ側認証用データ生成装置３０１が、匿名認証のサービスを行う場合の前処理として初期化処理を行う。図４を参照して説明する。
【００３７】
＜サーバ側認証用データ生成装置の初期化及び更新化＞
利用者に対してサービスを提供するための認証サーバは、ユーザのＩＤとパスワード対｛Ｕｊ，ｐｗｊ｝（１≦ｊ≦ｎ）に対して、まず、サーバの認証装置３００において、サーバ側認証用データ生成装置３０１の初期化（更新化）の処理を行う。この初期化の処理は、以下に説明するすべてのプロトコルの実行前に必ず行われる。ＢＡＳＩＣプロトコルの実行前では毎回初期化処理を行う。
【００３８】
また、初期化と同じ処理であるが、初期化以降の更新化（２回目からの初期化）はＥＸＴＥＮＤＥＤ１，ＥＸＴＥＮＤＥＤ２，ＣＥ１，ＣＥ２，ＣＥ３，ＣＥ４プロトコルの実行前に行われる。また、更新化は周期的な期間（例えば、一日あるいは一ヵ月）単位で行うように設定されても良い。
【００３９】
図４は、サーバ側認証用データ生成装置の初期化及び更新化の処理を説明するデータの流れを示すブロック図である。
【００４０】
初期化の処理は、乱数発生器により発生される乱数に基づいて処理を行う。図４を参照すると、まず、乱数発生器４０１により、ランダムに乱数ｘを発生する。また、マスタ鍵発生器４０２により、ランダムにマスタ鍵ＭＳを発生する。暗号処理演算器４０３は、乱数発生器４０１において発生させた乱数ｘから、公開値Ｘを、Ｘ＝ｇｘ  ｍｏｄ  ｐにより計算する。暗号鍵生成器４０５は、サーバ側認証用データ生成装置３０１に備えられたたメモリ４０４から記憶されたユーザＩＤとパスワード対｛Ｕｊ，ｐｗｊ｝（１≦ｊ≦ｎ）を読み出す。暗号鍵生成器４０５は、メモリ４０４から読み出した｛Ｕｊ，ｐｗｊ｝（１≦ｊ≦ｎ）と、乱数発生器４０１において発生させた乱数ｘにより、暗号鍵Ｋｊを、Ｋｊ＝Ｆ（Ｕｊ，ｐｗｊ）ｘ  ｍｏｄ  ｐ（１≦ｊ≦ｎ）により計算して出力する。
【００４１】
暗号器４０６では、暗号鍵生成器４０５から生成された暗号鍵Ｋｊとマスタ鍵発生器４０２において発生させたマスタ鍵ＭＳとから暗号文Ｃｊを、Ｃｊ＝ＥＨ１（Ｋｊ｜｜ｐａｒａｍ｜｜Ｓ）（ＭＳ）（１≦ｊ≦ｎ）により計算する。サーバ側認証用データ生成装置３０１の内部にあるメモリ４０４は乱数発生器４０１から発生された乱数ｘと、暗号処理演算器４０３から生成されたＸと、ｉｎｄｅｘ＝Ｈ５（Ｘ）と、暗号鍵生成器４０４から生成された暗号鍵Ｋｊ（１≦ｊ≦ｎ）と暗号器４０６から生成された暗号文Ｃｊ（１≦ｊ≦ｎ）を記憶して保存する。
【００４２】
前述したように、ユーザの端末装置２００におけるユーザ側認証用データ生成装置２０１は、各プロトコルによる認証データの生成を行うように構成される。次に、ユーザ側認証用データ生成装置２０１の動作を、ＢＡＳＩＣ，ＥＸＴＥＮＤＥＤ１，ＥＸＴＥＮＤＥＤ２，ＣＥ１，ＣＥ２，ＣＥ３，ＣＥ４プロトコルについて、それぞれ動作について説明する。
【００４３】
＜ユーザ側認証用データ生成装置の動作＞
（１）ＢＡＳＩＣプロトコルの場合、
図５は、ユーザ側認証用データ生成装置のＢＡＳＩＣプロトコルに基づく処理動作を説明するデータの流れを示すブロック図である。初めに、図５を参照してＢＡＳＩＣプロトコルを使ったユーザ側認証用データ生成装置２０１の動作を説明する。
【００４４】
まず、乱数発生器２１１により、ランダムに乱数ａを発生し、暗号処理演算器２１２に乱数ａを入力する。暗号処理演算器２１２は、乱数発生器２１１において発生させた乱数ａから、公開値ｇａ  ｍｏｄ  ｐを計算する。マスク演算器２１３は、ユーザＵｉが入力したパスワードｐｗｉと暗号処理演算器２１２から入力された公開値ｇａから、データＡを、Ａ＝ｇａ・Ｆ（Ｕｉ，ｐｗｉ）  ｍｏｄ  ｐにより計算して出力する。出力されたデータＡは、通信処理部２０２によって、サーバの認証装置３００に送信される。また、サーバの認証装置３００から、通信処理部２０２を介して、サーバの認証装置３００から、認証用データのＸ，Ａｘ，｛Ｃｊ｝１≦ｊ≦ｎ，ＶＳを受信する。
【００４５】
図５を参照すると、復号鍵生成器２１４は、乱数発生器２１１から出力される乱数ａと受信した認証用データの（Ｘ，Ａｘ）を入力として、復号鍵Ｋｉを、Ｋｉ＝Ａｘ／Ｘａ  ｍｏｄ  ｐにより計算して出力する。復号器２１５は、復号鍵生成器２１４から生成された復号鍵Ｋｉと、受信したｉ番目のＣｊ（つまり、ｉ＝ｊ）から、マスタ鍵ＭＳを、ＭＳ＝ＤＨ１（Ｋｉ｜｜ｐａｒａｍ｜｜Ｓ）（Ｃｊ）により計算する。セッション固有化器２１６は、マスク演算器から入力されたデータＡと受信した認証用データのＸ，Ａｘ，｛Ｃｊ｝１≦ｊ≦ｎからなるＳｅｓｓｉｏｎ  Ｉｄｅｎｔｉｆｉｅｒ＝（“ＢＡＳＩＣ”｜｜Ｕ｜｜Ｓ｜｜Ａ｜｜Ａｘ｜｜Ｘ｜｜｛Ｃｊ｝１≦ｊ≦ｎ）と、復号器２１５から生成されたマスタ鍵ＭＳを出力する。ここでの“ＢＡＳＩＣ”は、ＢＡＳＩＣプロトコルの名前を示している。ユーザ側認証用データ生成装置２０１の内部にあるメモリ２１７は、ＣＥ１とＣＥ２プロトコルのために、受信した認証用データのＸ，Ｃｉを記憶して保存する。
【００４６】
また、ユーザ側認証用データ生成装置２０１の内部にあるメモリ２１７は、ＣＥ３とＣＥ４プロトコルのために、受信したＸと復号器２１５から生成されたマスタ鍵ＭＳを記憶して保存する。それ以外には、ユーザ側認証用データ生成装置２０１の内部にあるメモリ２１７に何も保存しない。
【００４７】
（２）ＥＸＴＥＮＤＥＤ１プロトコルの場合、
図６は、ユーザ側認証用データ生成装置のＥＸＴＥＮＤＥＤ１プロトコルに基づく処理動作を説明するデータの流れを示すブロック図である。図６を参照して、次に、ＥＸＴＥＮＤＥＤ１プロトコルを使ったユーザ側認証用データ生成装置２０１の動作を説明する。
【００４８】
まず、乱数発生器２２１によりランダムに２つの乱数ａと乱数ｂを発生する。暗号処理演算器２２２は、乱数発生器２２１において発生させた乱数ａと乱数ｂから、公開値ｇａ  ｍｏｄ  ｐと公開値Ｂ＝ｇｂ  ｍｏｄ  ｐをそれぞれ計算する。マスク演算器２２３では、ユーザＵｉが入力したパスワードｐｗｉと、暗号処理演算器２２２から入力された公開値ｇａとから、データＡを、Ａ＝ｇａ・Ｆ（Ｕｉ，ｐｗｉ）  ｍｏｄ  ｐにより計算して出力する。通信処理部２０２は、データＡと公開値Ｂをサーバの認証装置３００へ送信する。
【００４９】
サーバの認証装置３００からは、通信処理部２０２を介して認証用データのＸ，Ａｘ，｛Ｃｊ｝１≦ｊ≦ｎ，ＶＳを受信する。復号鍵生成器２２５は、乱数発生器２２１から出力される乱数ａと受信した認証用データのＸ，Ａｘを入力として、復号鍵Ｋｉを、Ｋｉ＝Ａｘ／Ｘａ  ｍｏｄ  ｐにより計算して出力する。復号器２２６は、復号鍵生成器２２５から生成された復号鍵Ｋｉと受信したｉ番目のＣｊ（つまり、ｉ＝ｊ）から、マスタ鍵ＭＳを、ＭＳ＝ＤＨ１（Ｋｉ｜｜ｐａｒａｍ｜｜Ｓ）（Ｃｊ）により計算する。
【００５０】
また、暗号処理演算器２２４は、乱数発生器２２１から出力される乱数ｂと、受信した認証用データのＸを入力として、ＤＨ（Ｄｉｆｆｉｅ−Ｈｅｌｌｍａｎ）鍵（Ｘｂ  ｍｏｄ  ｐ）を計算して出力する。セッション固有化器２２７は、マスク演算器２２３から出力されたデータＡと、暗号処理演算器２２２から入力された公開値Ｂと、暗号処理演算器２２４から入力されたＸｂと、受信した認証用データのＸ，Ａｘ，｛Ｃｊ｝１≦ｊ≦ｎからなるＳｅｓｓｉｏｎ  Ｉｄｅｎｔｉｆｉｅｒ＝（“ＥＸＴＥＮＤＥＤ１”｜｜Ｕ｜｜Ｓ｜｜Ａ｜｜Ａｘ｜｜Ｂ｜｜Ｘｂ｜｜Ｘ｜｜｛Ｃｊ｝１≦ｊ≦ｎ）と、復号器２２６から生成されたマスタ鍵ＭＳを出力する。ここで、“ＥＸＴＥＮＤＥＤ１”はＥＸＴＥＮＤＥＤ１プロトコルの名前を示している。
【００５１】
（３）ＥＸＴＥＮＤＥＤ２プロトコルの場合、
図７は、ユーザ側認証用データ生成装置のＥＸＴＥＮＤＥＤ２プロトコルに基づく処理動作を説明するデータの流れを示すブロック図である。図７を参照して、ＥＸＴＥＮＤＥＤ２プロトコルを使ったユーザ側認証用データ生成装置２０１の動作を説明する。
【００５２】
まず、乱数発生器２３１によりランダムに２つの乱数ａと乱数ｂを発生する。暗号処理演算器２３２は、乱数発生器２３１において発生させた乱数ａと乱数ｂから、公開値ｇａ  ｍｏｄ  ｐと公開値Ｂ＝ｇｂ  ｍｏｄ  ｐをそれぞれ計算する。マスク演算器２３３では、ユーザＵｉが入力したパスワードｐｗｉと、暗号処理演算器２３２から入力された公開値ｇａから、データＡを、Ａ＝ｇａ・Ｆ（Ｕｉ，ｐｗｉ）  ｍｏｄ  ｐにより計算して出力する。通信処理部２０２は、データＡと公開値Ｂをサーバの認証装置３００へ送信する。
【００５３】
サーバの認証装置３００からは、通信処理部２０２を介して認証用データのＸ，Ａｘ，Ｙ，｛Ｃｊ｝１≦ｊ≦ｎ，ＶＳを受信する。復号鍵生成器２３５は、乱数発生器２３１から出力される乱数ａと受信した認証用データのＸ，Ａｘを入力として、復号鍵Ｋｉを、Ｋｉ＝Ａｘ／Ｘａ  ｍｏｄ  ｐにより計算して出力する。復号器２３６は、復号鍵生成器２３５から生成された復号鍵Ｋｉと、受信したｉ番目のＣｊ（つまり、ｉ＝ｊ）から、マスタ鍵ＭＳを、ＭＳ＝ＤＨ１（Ｋｉ｜｜ｐａｒａｍ｜｜Ｓ）（Ｃｊ）により計算する。
【００５４】
また、暗号処理演算器２３４は、乱数発生器２３１から出力される乱数ｂと、受信した認証用データのＸ，Ｙを入力として、ＤＨ（Ｄｉｆｆｉｅ−Ｈｅｌｌｍａｎ）鍵の（Ｘｂ  ｍｏｄ  ｐ）と（Ｙｂ  ｍｏｄ  ｐ）とをそれぞれに計算して出力する。セッション固有化器２３７は、マスク演算器２３３から入力されたデータＡと、暗号処理演算器２３２から入力された公開値Ｂ，暗号処理演算器２３４から入力された（Ｘｂ，Ｙｂ）と、受信した認証用データのＸ，Ａｘ，Ｙ，｛Ｃｊ｝１≦ｊ≦ｎからなるＳｅｓｓｉｏｎ  Ｉｄｅｎｔｉｆｉｅｒ＝（“ＥＸＴＥＮＤＥＤ２”｜｜Ｕ｜｜Ｓ｜｜Ａ｜｜Ａｘ｜｜Ｂ｜｜Ｘｂ｜｜Ｙｂ｜｜Ｘ｜｜Ｙ｜｜｛Ｃｊ｝１≦ｊ≦ｎ）と、復号器２３６から生成されたマスタ鍵ＭＳを出力する。ここでの“ＥＸＴＥＮＤＥＤ２”はＥＸＴＥＮＤＥＤ２プロトコルの名前を示している。
【００５５】
（４）ＣＥ１プロトコルの場合、
図８は、ユーザ側認証用データ生成装置のＣＥ（Ｃｏｍｍｕｎｉｃａｔｉｏｎ  Ｅｆｆｉｃｉｅｎｔ）１プロトコルに基づく処理動作を説明するデータの流れを示すブロック図である。図８を参照して、ＣＥ１プロトコルを使ったユーザ側認証用データ生成装置の動作を説明する。ここで、一回だけＣＥ１プロトコルの実行前は、前述したユーザ側認証用データ生成装置２０１のＢＡＳＩＣプロトコル（図５）を行う。その後、ユーザ側認証用データ生成装置２０１にあるメモリ２４８に保存されているデータ（つまり、ＸとＣｉ）は固定されて使われるが、システムのセキュリティポリシーに従って周期的に前述したユーザ側認証用データ生成装置２０１のＢＡＳＩＣプロトコル（図５）を行う。
【００５６】
まず、乱数発生器２４１によりランダムに２つの乱数ａと乱数ｂを発生する。暗号処理演算器２４２は、乱数発生器２４１において発生させた乱数ａと乱数ｂから、公開値ｇａ  ｍｏｄ  ｐと公開値Ｂ＝ｇｂ  ｍｏｄ  ｐをそれぞれ計算する。マスク演算器２４３では、ユーザＵｉが入力したパスワードｐｗｉと、暗号処理演算器２４２から入力された公開値ｇａから、データＡを、Ａ＝ｇａ・Ｆ（Ｕｉ，ｐｗｉ）  ｍｏｄ  ｐにより計算して出力する。通信処理部２０２は、データＡと公開値Ｂをサーバの認証装置３００へ送信する。
【００５７】
サーバの認証装置３００からは、通信処理部２０２を介して認証用データのＡｘ，ＶＳを受信する。復号鍵生成器２４５は、乱数発生器２４１から出力される乱数ａと、メモリ２４８から読み出したＸと、受信した認証用データのＡｘを入力として、復号鍵Ｋｉを、Ｋｉ＝Ａｘ／Ｘａ  ｍｏｄ  ｐにより計算して出力する。復号器２４６は、復号鍵生成器２４５から生成された復号鍵Ｋｉと、メモリ２４８から読み出したＣｉから、マスタ鍵ＭＳを、ＭＳ＝ＤＨ１（Ｋｉ｜｜ｐａｒａｍ｜｜Ｓ）（Ｃｉ）により計算する。
【００５８】
また、暗号処理演算器２４４は、乱数発生器２４１から出力される乱数ｂと、メモリ２４８から読み出したＸを入力として、ＤＨ（Ｄｉｆｆｉｅ−Ｈｅｌｌｍａｎ）鍵（Ｘｂ  ｍｏｄ  ｐ）を計算して出力する。セッション固有化器２４７は、マスタ演算器２４３から入力されたデータＡと、暗号処理演算器２４２から入力された公開値Ｂ，暗号処理演算器２４４から入力されたＸｂと、メモリ２４８から読み出したＸと、受信した認証用データのＡｘからなるＳｅｓｓｉｏｎ  Ｉｄｅｎｔｉｆｉｅｒ＝（“ＣＥ１”｜｜Ｕ｜｜Ｓ｜｜Ａ｜｜Ａｘ｜｜Ｂ｜｜Ｘｂ｜｜Ｘ）と、復号器２３６から生成されたマスタ鍵ＭＳを出力する。ここでの“ＣＥ１”はＣＥ１プロトコルの名前を示している。
【００５９】
（５）ＣＥ２プロトコルの場合、
図９は、ユーザ側認証用データ生成装置のＣＥ２プロトコルに基づく処理動作を説明するデータの流れを示すブロック図である。次に、図９を参照して、ＣＥ２プロトコルを使ったユーザ側認証用データ生成装置２０１の動作を説明する。ここで、一回だけＣＥ２プロトコルの実行前は、前述したユーザ側認証用データ生成装置２０１のＢＡＳＩＣプロトコル（図５）を行う。その後、ユーザ側認証用データ生成装置２０１にあるメモリ２５８に保存されたデータ（つまり、ＸとＣｉ）は固定されて使われるが、システムのセキュリティポリシーに従って周期的に前述したユーザ側認証用データ生成装置のＢＡＳＩＣプロトコル（図５）を行う。
【００６０】
まず、乱数発生器２５１によりランダムに２つの乱数ａと乱数ｂを発生する。暗号処理演算器２５２は、乱数発生器２５１において発生させた乱数ａと乱数ｂから、公開値ｇａ  ｍｏｄ  ｐと公開値Ｂ＝ｇｂ  ｍｏｄ  ｐを計算する。マスク演算器２５３は、ユーザＵｉが入力したパスワードｐｗｉと、暗号処理演算器２５２から入力された公開値ｇａとから、データＡを、Ａ＝ｇａ・Ｆ（Ｕｉ，ｐｗｉ）  ｍｏｄ  ｐにより計算して出力する。通信処理部２０２は、データＡと公開値Ｂをサーバの認証装置３００へ送信する。
【００６１】
サーバの認証装置３００からは、通信処理部２０２を介して認証用データのＡｘ，Ｙ，ＶＳを受信する。復号鍵生成器２５５は、乱数発生器２５１から出力される乱数ａと、メモリ２５８から読み出したＸと、受信した認証用データのＡｘを入力として、復号鍵Ｋｉを、Ｋｉ＝Ａｘ／Ｘａ  ｍｏｄ  ｐにより計算して出力する。復号器２５６は、復号鍵生成器２５５から生成された復号鍵Ｋｉと、メモリ２５８から読み出したＣｉから、マスタ鍵ＭＳを、ＭＳ＝ＤＨ１（Ｋｉ｜｜ｐａｒａｍ｜｜Ｓ）（Ｃｉ）により計算する。
【００６２】
また、暗号処理演算器２５４は、乱数発生器２５１から出力される乱数ｂと、メモリ２５８から読み出したＸと、受信した認証用データのＹを入力として、ＤＨ（Ｄｉｆｆｉｅ−Ｈｅｌｌｍａｎ）鍵の（Ｘｂ  ｍｏｄ  ｐ）と（Ｙｂ  ｍｏｄ  ｐ）を計算して出力する。セッション固有化器２５７は、マスタ演算器２５３から入力されたデータＡと、暗号処理演算器２５２から入力された公開値Ｂ，暗号処理演算器２５４から入力された（Ｘｂ，Ｙｂ）と、メモリ２５８から読み出したＸと、受信した認証用データのＡｘ，ＹからなるＳｅｓｓｉｏｎ  Ｉｄｅｎｔｉｆｉｅｒ＝（“ＣＥ２”｜｜Ｕ｜｜Ｓ｜｜Ａ｜｜Ａｘ｜｜Ｂ｜｜Ｘｂ｜｜Ｙｂ｜｜Ｘ｜｜Ｙ）と、復号器２５６から生成されたマスタ鍵ＭＳを出力する。ここでの“ＣＥ２”はＣＥ２プロトコルの名前を示している。
【００６３】
（６）ＣＥ３プロトコルの場合、
図１０は、ユーザ側認証用データ生成装置のＣＥ３プロトコルに基づく処理動作を説明するデータの流れを示すブロック図である。次に、図１０を参照して、ＣＥ３プロトコルを使ったユーザ側認証用データ生成装置２０１の動作を説明する。ここで、一回だけＣＥ３プロトコルの実行前は、前述したユーザ側認証用データ生成装置のＢＡＳＩＣプロトコル（図５）を行う。その後、ユーザ側認証用データ生成装置２０１にあるメモリ２６５に保存されたデータ（つまり、ＸとＭＳ）は固定されて使われるが、システムのセキュリティポリシーに従って周期的に前述したユーザ側認証用データ生成装置のＢＡＳＩＣプロトコルを行う。
【００６４】
乱数発生器２６１によりランダムに乱数ｂを発生する。暗号処理演算器２６２は、乱数発生器２６１において発生させた乱数ｂから、公開値Ｂ＝ｇｂ  ｍｏｄ  ｐを計算する。通信処理部２０２は暗号処理演算器２６２から生成された公開値Ｂと、メモリ２６５から読み出したｉｎｄｅｘ＝Ｈ５（Ｘ）を、通信処理部２０２を介してサーバの認証装置３００へ送信する。
【００６５】
サーバの認証装置３００からは、通信処理部２０２を介して認証子のＶＳを受信する。暗号処理演算器２６３は、乱数発生器２６１から出力される乱数ｂと、メモリ２６５から読み出したＸを入力として、ＤＨ（Ｄｉｆｆｉｅ−Ｈｅｌｌｍａｎ）鍵（Ｘｂ  ｍｏｄ  ｐ）を計算して出力する。セッション固有化器２６４は、暗号処理演算器２６２から入力されたＢ，暗号処理演算器２６３から入力されたＸｂと、メモリ２６５から読み出したＸからなるＳｅｓｓｉｏｎ  Ｉｄｅｎｔｉｆｉｅｒ＝（“ＣＥ３”｜｜Ｕ｜｜Ｓ｜｜Ｂ｜｜Ｘｂ｜｜Ｘ）と、メモリ２６５から読み出したマスタ鍵ＭＳを出力する。ここでの“ＣＥ３”はＣＥ３プロトコルの名前を示している。
【００６６】
（７）ＣＥ４プロトコルの場合、
図１１は、ユーザ側認証用データ生成装置のＣＥ４プロトコルに基づく処理動作を説明するデータの流れを示すブロック図である。次に、図１１を参照して、ＣＥ４プロトコルを使ったユーザ側認証用データ生成装置２０１の動作を説明する。ここで、一回だけＣＥ４プロトコルの実行前は、前述したユーザ側認証用データ生成装置のＢＡＳＩＣプロトコル（図５）を行う。その後、ユーザ側認証用データ生成装置２０１にあるメモリ２７５に保存されたデータ（つまり、ＸとＭＳ）は固定されて使われるが、システムのセキュリティポリシーに従って周期的に前述したユーザ側認証用データ生成装置のＢＡＳＩＣプロトコルを行う。
【００６７】
まず、乱数発生器２７１によりランダムに乱数ｂを発生する。暗号処理演算器２７２は、乱数発生器において発生させた乱数ｂから、公開値Ｂ＝ｇｂ  ｍｏｄ  ｐを計算する。通信処理部２０２は、暗号処理演算器２７２から生成された公開値Ｂと、メモリ２７５から読み出したｉｎｄｅｘ＝Ｈ５（Ｘ）をサーバの認証装置３００へ送信する。
【００６８】
サーバの認証装置３００からは、通信処理部２０２を介して認証用データのＹ，ＶＳを受信する。暗号処理演算器２７３は、乱数発生器２７１から出力される乱数ｂと、メモリ２７５から読み出したＸと、受信したＹを入力として、ＤＨ（Ｄｉｆｆｉｅ−Ｈｅｌｌｍａｎ）鍵の（Ｘｂ  ｍｏｄ  ｐ）と（Ｙｂ  ｍｏｄ  ｐ）を計算して出力する。セッション固有化器２７４は、暗号処理演算器２７２から入力された公開値Ｂ，暗号処理演算器２７３から入力された（Ｘｂ，Ｙｂ）と、メモリ２７５から読み出したＸと、受信したＹからなるＳｅｓｓｉｏｎ  Ｉｄｅｎｔｉｆｉｅｒ＝（“ＣＥ４”｜｜Ｕ｜｜Ｓ｜｜Ｂ｜｜Ｘｂ｜｜Ｙｂ｜｜Ｘ｜｜Ｙ）とメモリから読み出したマスタ鍵ＭＳを出力する。ここでの“ＣＥ４”はＣＥ４プロトコルの名前を示している。
【００６９】
＜ユーザ側認証結果判定及びセッション鍵生成装置の動作＞
図１２は、ユーザ側認証結果判定及びセッション鍵生成装置２０３の処理の動作を説明するデータの流れを示すブロック図である。図１２を参照して、ユーザ側認証結果判定及びセッション鍵生成装置２０３の動作を説明する。ユーザ側認証結果判定及びセッション鍵生成装置２０３は、前述したＢＡＳＩＣ，ＥＸＴＥＮＤＥＤ１，ＥＸＴＥＮＤＥＤ２，ＣＥ１，ＣＥ２，ＣＥ３，ＣＥ４プロトコルの場合に関わらず、次のように動作する。
【００７０】
認証結果判断部５１は、ユーザ側認証用データ生成装置２０１からのＳｅｓｓｉｏｎ  Ｉｄｅｎｔｉｆｉｅｒとマスタ鍵ＭＳを入力として、Ｈ２（Ｓｅｓｓｉｏｎ  Ｉｄｅｎｔｉｆｉｅｒ‖ＭＳ）を計算して、これを通信処理部２０２により、サーバの認証装置３００から受信したＶＳと比較する。ここで、Ｈ２の代わりにＭＡＣ（Ｍｅｓｓａｇｅ  Ａｕｔｈｅｎｔｉｃａｔｉｏｎ  Ｃｏｄｅ）を使ってもよい。認証結果判断部５１において、ＶＳとＨ２（Ｓｅｓｓｉｏｎ  Ｉｄｅｎｔｉｆｉｅｒ‖ＭＳ）が一致しない場合、認証結果判断部５１は、エラー発生器５２に対して、一致しないことを通知する。これを受けて、エラー発生器５２はエラーを発生して処理を中断する。
【００７１】
一方、認証結果判断部５１において、ＶＳとＨ２（Ｓｅｓｓｉｏｎ  Ｉｄｅｎｔｉｆｉｅｒ‖ＭＳ）が一致した場合は、サーバが正当な装置として認証する。認証子生成器５３は、ユーザ側認証用データ生成装置２０１からのＳｅｓｓｉｏｎ  Ｉｄｅｎｔｉｆｉｅｒとマスタ鍵ＭＳを入力として、ＶＵ＝Ｈ３（Ｓｅｓｓｉｏｎ  Ｉｄｅｎｔｉｆｉｅｒ‖ＭＳ）によりＶＵを計算して、このＶＵを通信処理部２０２によりサーバの認証装置３００へ送信する。ここで、Ｈ３の代わりにＭＡＣ（Ｍｅｓｓａｇｅ  Ａｕｔｈｅｎｔｉｃａｔｉｏｎ  Ｃｏｄｅ）を使ってもよい。
【００７２】
そして、セッション鍵生成器５４は、ＳＫ＝Ｈ４（Ｓｅｓｓｉｏｎ  Ｉｄｅｎｔｉｆｉｅｒ‖ＭＳ）によりセッション鍵ＳＫを生成して出力する。ここで、必要とするセッション鍵の長さに応じてＨ４の代わりにＲＲＦ（Ｐｓｅｕｄｏ−Ｒａｎｄｏｍ  Ｆｕｎｃｔｉｏｎ）を使ってもよい。
【００７３】
前述したように、サーバの認証装置３００は、サーバ側認証用データ生成装置３０１、通信処理部３０２，およびサーバ側認証結果判定及びセッション鍵生成装置３０３で構成されており、サーバ側認証用データ生成装置３０１は、ユーザ側認証用データ生成装置２０１に対応して、それぞれ、ＢＡＳＩＣ，ＥＸＴＥＮＤＥＤ１，ＥＸＴＥＮＤＥＤ２，ＣＥ１，ＣＥ２，ＣＥ３，ＣＥ４プロトコルなどで構成される。
【００７４】
＜サーバの認証装置の動作＞
次に、サーバ側認証用データ生成装置３０１の動作を、ＢＡＳＩＣ，ＥＸＴＥＮＤＥＤ１，ＥＸＴＥＮＤＥＤ２，ＣＥ１，ＣＥ２，ＣＥ３，ＣＥ４プロトコルについて、それぞれ動作について説明する。
【００７５】
＜サーバ側認証用データ生成装置の動作＞
（１）ＢＡＳＩＣプロトコルの場合、
図１３は、サーバ側認証用データ生成装置のＢＡＳＩＣプロトコルに基づく処理動作を説明するデータの流れを示すブロック図である。図１３を参照して、ＢＡＳＩＣプロトコルを使ったサーバ側認証用データ生成装置３０１の動作を説明する。ここで、毎回ＢＡＳＩＣプロトコルの実行前は、前述したサーバ側認証用データ生成装置３０１の初期化処理（図４）を行う。
【００７６】
まず、サーバ側認証用データ生成装置３０１に備えたメモリ３１１から記憶された乱数ｘを読み出す。ここでの乱数ｘは一回使い捨て用の乱数である。暗号処理演算器３１２では、メモリ３１１から読み出したｘと、通信処理部３０２により受信したデータＡを入力として、Ａｘ  ｍｏｄ  ｐを計算して出力する。セッション固有化器３１３は、暗号処理演算器３１２から入力されたＡｘと、受信したデータＡとメモリ３１１から読み出したＸ，｛Ｃｊ｝１≦ｊ≦ｎからなるＳｅｓｓｉｏｎ  Ｉｄｅｎｔｉｆｉｅｒ＝（“ＢＡＳＩＣ”｜｜Ｕ｜｜Ｓ｜｜Ａ｜｜Ａｘ｜｜Ｘ｜｜｛Ｃｊ｝１≦ｊ≦ｎ）を出力する。ここでの“ＢＡＳＩＣ”はＢＡＳＩＣプロトコルの名前を示している。復号器３１４は、メモリ３１１から読み出した復号鍵Ｋｊと、暗号文Ｃｊからマスタ鍵ＭＳを、ＭＳ＝ＤＨ１（Ｋｊ｜｜ｐａｒａｍ｜｜Ｓ）（Ｃｊ）により計算する。
【００７７】
そして、認証子生成器３１５が、セッション固有化器３１３からのＳｅｓｓｉｏｎ  Ｉｄｅｎｔｉｆｉｅｒと、復号器３１４から生成されたマスタ鍵ＭＳを入力として、ＶＳ＝Ｈ２（Ｓｅｓｓｉｏｎ  Ｉｄｅｎｔｉｆｉｅｒ‖ＭＳ）によりＶＳを計算して、このＶＳとＸ，Ａｘ，｛Ｃｊ｝１≦ｊ≦ｎを、認証用データとして、通信処理部３０２によりユーザの端末装置２００へ送信する。ここで、Ｈ２の代わりにＭＡＣ（Ｍｅｓｓａｇｅ  Ａｕｔｈｅｎｔｉｃａｔｉｏｎ  Ｃｏｄｅ）を使ってもよい。また、認証子生成器３１５は、セッション固有化器３１５からのＳｅｓｓｉｏｎ  Ｉｄｅｎｔｉｆｉｅｒと復号器３１４から生成されたマスタ鍵ＭＳを出力する。
【００７８】
（２）ＥＸＴＥＮＤＥＤ１プロトコルの場合、
図１４は、サーバ側認証用データ生成装置のＥＸＴＥＮＤＥＤ１プロトコルに基づく処理動作を説明するデータの流れを示すブロック図である。次に、図１４を参照して、ＥＸＴＥＮＤＥＤ１プロトコルを使ったサーバ側認証用データ生成装置３０１の動作を説明する。ここで、一回だけＥＸＴＥＮＤＥＤ１プロトコルの実行前は、前述したサーバ側認証用データ生成装置３０１の初期化処理（図４）を行う。その後、サーバ側認証用データ生成装置３０１にあるメモリ３２１に保存されたデータは固定されて使われるが、システムのセキュリティポリシーに従って周期的に前述したサーバ側認証用データ生成装置３０１の更新化処理（図４）を行う。
【００７９】
まず、サーバ側認証用データ生成装置３０１に備えたメモリ３２１から記憶された乱数ｘを読み出す。ここでの乱数ｘは固定された乱数であり、周期的に更新化される。暗号処理演算器３２２では、メモリ３２１から読み出したｘと、通信処理部３０２により受信したデータＡと公開値Ｂを入力として、Ａｘ  ｍｏｄ  ｐとＢｘ  ｍｏｄ  ｐを計算して出力する。セッション固有化器３２３は、暗号処理演算器３２２から入力された（Ａｘ，Ｂｘ）と受信したデータＡ，公開値Ｂと、メモリ３２１から読み出したＸ，｛Ｃｊ｝１≦ｊ≦ｎからなるＳｅｓｓｉｏｎ  Ｉｄｅｎｔｉｆｉｅｒ＝（“ＥＸＴＥＮＤＥＤ１”｜｜Ｕ｜｜Ｓ｜｜Ａ｜｜Ａｘ｜｜Ｂ｜｜Ｂｘ｜｜Ｘ｜｜｛Ｃｊ｝１≦ｊ≦ｎ）を出力する。ここでの“ＥＸＴＥＮＤＥＤ１”はＥＸＴＥＮＤＥＤ１プロトコルの名前を示している。復号器３２４は、メモリ３２１から読み出した復号鍵Ｋｊと暗号文Ｃｊから、マスタ鍵ＭＳを、ＭＳ＝ＤＨ１（Ｋｊ｜｜ｐａｒａｍ｜｜Ｓ）（Ｃｊ）により計算する。
【００８０】
そして、認証子生成器３２５が、セッション固有化器３２３からのＳｅｓｓｉｏｎ  Ｉｄｅｎｔｉｆｉｅｒと、復号器３２４から生成されたマスタ鍵ＭＳを入力として、ＶＳ＝Ｈ２（Ｓｅｓｓｉｏｎ  Ｉｄｅｎｔｉｆｉｅｒ‖ＭＳ）により、ＶＳを計算して、このＶＳと、Ｘ，Ａｘ，｛Ｃｊ｝１≦ｊ≦ｎを、認証用データとして、通信処理部３０２によりユーザの端末装置２００へ送信する。ここで、Ｈ２の代わりにＭＡＣ（Ｍｅｓｓａｇｅ  Ａｕｔｈｅｎｔｉｃａｔｉｏｎ  Ｃｏｄｅ）を使ってもよい。また、認証子生成器３２５は、セッション固有化器３２３からのＳｅｓｓｉｏｎ  Ｉｄｅｎｔｉｆｉｅｒと、復号器３２４から生成されたマスタ鍵ＭＳを出力する。
【００８１】
（３）ＥＸＴＥＮＤＥＤ２プロトコルの場合、
図１５は、サーバ側認証用データ生成装置のＥＸＴＥＮＤＥＤ２プロトコルに基づく処理動作を説明するデータの流れを示すブロック図である。次に、図１５を参照して、ＥＸＴＥＮＤＥＤ２プロトコルを使ったサーバ側認証用データ生成装置３０１の動作を説明する。ここで、一回だけＥＸＴＥＮＤＥＤ２プロトコルの実行前は、前述したサーバ側認証用データ生成装置３０１の初期化処理（図４）を行う。その後、サーバ側認証用データ生成装置３０１にあるメモリ３３３に保存されたデータは固定されて使われるが、システムのセキュリティポリシーに従って、周期的に前述したサーバ側認証用データ生成装置３０１の更新化処理（図４）を行う。
【００８２】
まず、乱数発生器３３１によりランダムに乱数ｙを発生する。サーバ側認証用データ生成装置３０１に備えたメモリ３３３から記憶された乱数ｘを読み出す。ここでの乱数ｘは固定された乱数であり、周期的に更新化される。暗号処理演算器３３２は、乱数発生器３３１において発生させた乱数ｙと、メモリ３３３から読み出した乱数ｘと、通信処理部３０２により受信したデータＡと、公開値Ｂを入力として、Ｙ＝ｇｙ  ｍｏｄ  ｐ，Ａｘ  ｍｏｄ  ｐ，Ｂｘ  ｍｏｄ  ｐ，Ｂｙ  ｍｏｄ  ｐを計算して出力する。セッション固有化器３３５は、暗号処理演算器３３２から入力された（Ｙ，Ａｘ，Ｂｘ，Ｂｙ）と、受信したデータＡ，公開値Ｂと、メモリ３３３から読み出した（Ｘ，｛Ｃｊ｝１≦ｊ≦ｎ）からなるＳｅｓｓｉｏｎ  Ｉｄｅｎｔｉｆｉｅｒ＝（“ＥＸＴＥＮＤＥＤ２”｜｜Ｕ｜｜Ｓ｜｜Ａ｜｜Ａｘ｜｜Ｂ｜｜Ｂｘ｜｜Ｂｙ｜｜Ｘ｜｜Ｙ｜｜｛Ｃｊ｝１≦ｊ≦ｎ）を出力する。ここでの“ＥＸＴＥＮＤＥＤ２”はＥＸＴＥＮＤＥＤ２プロトコルの名前を示している。復号器３３４は、メモリ３３３から読み出した復号鍵Ｋｊと暗号文Ｃｊから、マスタ鍵ＭＳを、ＭＳ＝ＤＨ１（Ｋｊ｜｜ｐａｒａｍ｜｜Ｓ）（Ｃｊ）により計算する。
【００８３】
そして、認証子生成器３３６が、セッション固有化器３３５からのＳｅｓｓｉｏｎ  Ｉｄｅｎｔｉｆｉｅｒと、復号器３３４から生成されたマスタ鍵ＭＳを入力として、ＶＳ＝Ｈ２（Ｓｅｓｓｉｏｎ  Ｉｄｅｎｔｉｆｉｅｒ‖ＭＳ）によりＶＳを計算して、このＶＳと、Ｘ，Ａｘ，Ｙ，｛Ｃｊ｝１≦ｊ≦ｎを、認証用データとして通信処理部３０２によりユーザの端末装置２００へ送信する。ここで、Ｈ２の代わりにＭＡＣ（Ｍｅｓｓａｇｅ  Ａｕｔｈｅｎｔｉｃａｔｉｏｎ  Ｃｏｄｅ）を使ってもよい。また、認証子生成器３３６は、セッション固有化器３３５からのＳｅｓｓｉｏｎ  Ｉｄｅｎｔｉｆｉｅｒと、復号器３３４から生成されたマスタ鍵ＭＳを出力する。
【００８４】
（４）ＣＥ１プロトコルの場合、
図１６は、サーバ側認証用データ生成装置のＣＥ（Ｃｏｍｍｕｎｉｃａｔｉｏｎ  Ｅｆｆｉｃｉｅｎｔ）１プロトコルに基づく処理動作を説明するデータの流れを示すブロック図である。次に、図１６を参照して、ＣＥ１プロトコルを使ったサーバ側認証用データ生成装置３０１の動作を説明する。ここで、一回だけＣＥ１プロトコルの実行前は、前述したサーバ側認証用データ生成装置３０１の初期化処理（図４）を行う。その後、サーバ側認証用データ生成装置３０１にあるメモリ３４１に保存されたデータは固定されて使われるが、システムのセキュリティポリシーに従って周期的に前述したサーバ側認証用データ生成装置３０１の更新化処理（図４）を行う。
【００８５】
まず、サーバ側認証用データ生成装置３０１に備えたメモリ３４１から記憶された乱数ｘを読み出す。ここでの乱数ｘは固定された乱数であり、周期的に更新化される。暗号処理演算器３４２は、メモリ３４１から読み出したｘと、通信処理部３０２により受信したデータＡと公開値Ｂを入力として、Ａｘ  ｍｏｄ  ｐとＢｘ  ｍｏｄ  ｐを計算して出力する。セッション固有化器３４３は、暗号処理演算器３４２から入力された（Ａｘ，Ｂｘ）と、受信した（Ａ，Ｂ）と、メモリ３４１から読み出したＸからなるＳｅｓｓｉｏｎ  Ｉｄｅｎｔｉｆｉｅｒ＝（“ＣＥ１”｜｜Ｕ｜｜Ｓ｜｜Ａ｜｜Ａｘ｜｜Ｂ｜｜Ｂｘ｜｜Ｘ）を出力する。ここでの“ＣＥ１”はＣＥ１プロトコルの名前を示している。復号器３４４は、メモリ３４１から読み出した復号鍵Ｋｊと、暗号文Ｃｊからマスタ鍵ＭＳを、ＭＳ＝ＤＨ１（Ｋｊ｜｜ｐａｒａｍ｜｜Ｓ）（Ｃｊ）により計算する。
【００８６】
そして、認証子生成器３４５は、セッション固有化器からのＳｅｓｓｉｏｎ  Ｉｄｅｎｔｉｆｉｅｒと、復号器３４４から生成されたマスタ鍵ＭＳを入力として、ＶＳ＝Ｈ２（Ｓｅｓｓｉｏｎ  Ｉｄｅｎｔｉｆｉｅｒ‖ＭＳ）によりＶＳを計算して、このＶＳとＡｘを、認証用データとして通信処理部３０２によりユーザの端末装置２００へ送信する。ここで、Ｈ２の代わりにＭＡＣ（Ｍｅｓｓａｇｅ  Ａｕｔｈｅｎｔｉｃａｔｉｏｎ  Ｃｏｄｅ）を使ってもよい。また、認証子生成器３４５は、セッション固有化器３４３からのＳｅｓｓｉｏｎ  Ｉｄｅｎｔｉｆｉｅｒと、復号器３４４から生成されたマスタ鍵ＭＳを出力する。
【００８７】
（５）ＣＥ２プロトコルの場合、
図１７は、サーバ側認証用データ生成装置のＣＥ２プロトコルに基づく処理動作を説明するデータの流れを示すブロック図である。図１７を参照して、ＣＥ２プロトコルを使ったサーバ側認証用データ生成装置の動作を説明する。ここで、一回だけＣＥ２プロトコルの実行前は、前述したサーバ側認証用データ生成装置３０１の初期化処理（図４）を行う。その後、サーバ側認証用データ生成装置３０１にあるメモリ３５３に保存されたデータは固定されて使われるが、システムのセキュリティポリシーに従って周期的に前述したサーバ側認証用データ生成装置３０１の更新化処理（図４）を行う。
【００８８】
まず、乱数発生器３５１によりランダムに乱数ｙを発生する。サーバ側認証用データ生成装置３０１に備えたメモリ３５３から記憶された乱数ｘを読み出す。ここでの乱数ｘは固定された乱数であり、周期的に更新化される。暗号処理演算器３５２は、乱数発生器３５１において発生させた乱数ｙと、メモリ３５３から読み出した乱数ｘと、通信処理部３０２により受信したデータＡと、公開値Ｂを入力として、Ｙ＝ｇｙ  ｍｏｄ  ｐ，Ａｘ  ｍｏｄ  ｐ，Ｂｘ  ｍｏｄ  ｐ，Ｂｙ  ｍｏｄ  ｐを計算して出力する。セッション固有化器３５５は、暗号処理演算器３５２から入力された（Ｙ，Ａｘ，Ｂｘ，Ｂｙ）と受信した（Ａ，Ｂ）と、メモリ３５３から読み出したＸからなるＳｅｓｓｉｏｎ  Ｉｄｅｎｔｉｆｉｅｒ＝（“ＣＥ２”｜｜Ｕ｜｜Ｓ｜｜Ａ｜｜Ａｘ｜｜Ｂ｜｜Ｂｘ｜｜Ｂｙ｜｜Ｘ｜｜Ｙ）を出力する。ここでの“ＣＥ２”はＣＥ２プロトコルの名前を示している。復号器３５４は、メモリ３５３から読み出した復号鍵Ｋｊと暗号文Ｃｊから、マスタ鍵ＭＳを、ＭＳ＝ＤＨ１（Ｋｊ｜｜ｐａｒａｍ｜｜Ｓ）（Ｃｊ）により計算する。
【００８９】
そして、認証子生成器３５６は、セッション固有化器３５５からのＳｅｓｓｉｏｎ  Ｉｄｅｎｔｉｆｉｅｒと、復号器３５４から生成されたマスタ鍵ＭＳを入力として、ＶＳ＝Ｈ２（Ｓｅｓｓｉｏｎ  Ｉｄｅｎｔｉｆｉｅｒ‖ＭＳ）によりＶＳを計算して、このＶＳとＡｘ，Ｙを、認証用データとして通信処理部３０２によりユーザの端末装置２００へ送信する。ここで、Ｈ２の代わりにＭＡＣ（Ｍｅｓｓａｇｅ  Ａｕｔｈｅｎｔｉｃａｔｉｏｎ  Ｃｏｄｅ）を使ってもよい。また、認証子生成器３５６は、セッション固有化器３５５からのＳｅｓｓｉｏｎ  Ｉｄｅｎｔｉｆｉｅｒと、復号器３５４から生成されたマスタ鍵ＭＳを出力する。
【００９０】
（６）ＣＥ３プロトコルの場合、
図１８は、サーバ側認証用データ生成装置のＣＥ３プロトコルに基づく処理動作を説明するデータの流れを示すブロック図である。図１８を参照して、ＣＥ３プロトコルを使ったサーバ側認証用データ生成装置３０１の動作を説明する。ここで、一回だけＣＥ３プロトコルの実行前は、前述したサーバ側認証用データ生成装置３０１の初期化処理（図４）を行う。その後、サーバ側認証用データ生成装置３０１にあるメモリ３６１に保存されたデータは固定されて使われるが、システムのセキュリティポリシーに従って周期的に前述したサーバ側認証用データ生成装置３０１の更新化処理（図４）を行う。
【００９１】
まず、サーバ側認証用データ生成装置３０１に備えたメモリ３６１から記憶された乱数ｘを読み出す。ここでの乱数ｘは固定された乱数であり、周期的に更新化される。暗号処理演算器３６２は、メモリ３６１から読み出した乱数ｘと、通信処理部３０２により受信した公開値Ｂを入力として、Ｂｘ  ｍｏｄ  ｐを計算して出力する。セッション固有化器３６３は、暗号処理演算器３６２から入力されたＢｘと、受信した公開値Ｂと、メモリ３６１から読み出したＸからなるＳｅｓｓｉｏｎ  Ｉｄｅｎｔｉｆｉｅｒ＝（“ＣＥ３”｜｜Ｕ｜｜Ｓ｜｜Ｂ｜｜Ｂｘ｜｜Ｘ）を出力する。ここでの“ＣＥ３”はＣＥ３プロトコルの名前を示している。復号器３６４は、メモリ３６１から読み出した復号鍵Ｋｊと、暗号文Ｃｊからマスタ鍵ＭＳを、ＭＳ＝ＤＨ１（Ｋｊ｜｜ｐａｒａｍ｜｜Ｓ）（Ｃｊ）により計算する。
【００９２】
そして、認証子生成器３６５が、セッション固有化器３６３からのＳｅｓｓｉｏｎ  Ｉｄｅｎｔｉｆｉｅｒと、復号器３６４から生成されたマスタ鍵ＭＳを入力として、ＶＳ＝Ｈ２（Ｓｅｓｓｉｏｎ  Ｉｄｅｎｔｉｆｉｅｒ‖ＭＳ）によりＶＳを計算して、このＶＳを通信処理部３０２によりユーザの端末装置２００へ送信する。ここで、Ｈ２の代わりにＭＡＣ（Ｍｅｓｓａｇｅ  Ａｕｔｈｅｎｔｉｃａｔｉｏｎ  Ｃｏｄｅ）を使ってもよい。また、認証子生成器３６５は、セッション固有化器３６３からのＳｅｓｓｉｏｎ  Ｉｄｅｎｔｉｆｉｅｒと、復号器３６４から生成されたマスタ鍵ＭＳを出力する。
【００９３】
（７）ＣＥ４プロトコルの場合、
図１９は、サーバ側認証用データ生成装置のＣＥ４プロトコルに基づく処理動作を説明するデータの流れを示すブロック図である。図１９を参照して、ＣＥ４プロトコルを使ったサーバ側認証用データ生成装置３０１の動作を説明する。ここで、一回だけＣＥ４プロトコルの実行前は、前述したサーバ側認証用データ生成装置３０１の初期化処理（図４）を行う。その後、サーバ側認証用データ生成装置３０１にあるメモリ３７３に保存されたデータは固定されて使われるが、システムのセキュリティポリシーに従って周期的に前述したサーバ側認証用データ生成装置３０１の更新化処理（図４）を行う。
【００９４】
まず、乱数発生器３７１によりランダムに乱数ｙを発生する。サーバ側認証用データ生成装置３０１に備えたメモリ３７３から記憶された乱数ｘを読み出す。ここでの乱数ｘは固定された乱数であり、周期的に更新化される。暗号処理演算器３７２は、乱数発生器３７１において発生させた乱数ｙと、メモリ３７３から読み出した乱数ｘと、通信処理部３０２により受信した公開値Ｂを入力として、Ｙ＝ｇｙ  ｍｏｄ  ｐ，Ｂｘ  ｍｏｄ  ｐ，Ｂｙ  ｍｏｄ  ｐを計算して出力する。セッション固有化器３７５は、暗号処理演算器３７２から入力された（Ｙ，Ｂｘ，Ｂｙ）と、受信した公開値Ｂと、メモリ３７３から読み出したＸからなるＳｅｓｓｉｏｎ  Ｉｄｅｎｔｉｆｉｅｒ＝（“ＣＥ４”｜｜Ｕ｜｜Ｓ｜｜Ｂ｜｜Ｂｘ｜｜Ｂｙ｜｜Ｘ｜｜Ｙ）を出力する。ここでの“ＣＥ４”はＣＥ４プロトコルの名前を示している。復号器３７４は、メモリ３７３から読み出した復号鍵Ｋｊと、暗号文Ｃｊからマスタ鍵ＭＳを、ＭＳ＝ＤＨ１（Ｋｊ｜｜ｐａｒａｍ｜｜Ｓ）（Ｃｊ）により計算する。
【００９５】
そして、認証子生成器３７６は、セッション固有化器３７５からのＳｅｓｓｉｏｎ  Ｉｄｅｎｔｉｆｉｅｒと、復号器３７４から生成されたマスタ鍵ＭＳを入力として、ＶＳ＝Ｈ２（Ｓｅｓｓｉｏｎ  Ｉｄｅｎｔｉｆｉｅｒ‖ＭＳ）によりＶＳを計算して、このＶＳとＹを、認証用データとして通信処理部３０２によりユーザの端末装置２００へ送信する。ここで、Ｈ２の代わりにＭＡＣ（Ｍｅｓｓａｇｅ  Ａｕｔｈｅｎｔｉｃａｔｉｏｎ  Ｃｏｄｅ）を使ってもよい。また、認証子生成器３７６は、セッション固有化器３７５からのＳｅｓｓｉｏｎ  Ｉｄｅｎｔｉｆｉｅｒと、復号器３７４から生成されたマスタ鍵ＭＳを出力する。
【００９６】
＜サーバ側認証結果判定及びセッション鍵生成装置の動作＞
図２０は、サーバ側認証結果判定及びセッション鍵生成装置３０３の処理の動作を説明するデータの流れを示すブロック図である。図２０を参照してサーバ側認証結果判定及びセッション鍵生成装置３０３の動作を説明する。サーバ側認証結果判定及びセッション鍵生成装置３０３は、前述したＢＡＳＩＣ，ＥＸＴＥＮＤＥＤ１，ＥＸＴＥＮＤＥＤ２，ＣＥ１，ＣＥ２，ＣＥ３，ＣＥ４プロトコルの場合に関わらず、次のように動作する。
【００９７】
認証結果判断部７１は、サーバ側認証用データ生成装置３０１からのＳｅｓｓｉｏｎ  Ｉｄｅｎｔｉｆｉｅｒとマスタ鍵ＭＳを入力として、Ｈ３（Ｓｅｓｓｉｏｎ  Ｉｄｅｎｔｉｆｉｅｒ‖ＭＳ）を計算して、これを通信処理部３０２によりユーザの端末装置２００から受信したＶＵと比較する。ここで、Ｈ３の代わりにＭＡＣ（Ｍｅｓｓａｇｅ  Ａｕｔｈｅｎｔｉｃａｔｉｏｎ  Ｃｏｄｅ）を使ってもよい。認証結果判断部７１において、ＶＵとＨ３（Ｓｅｓｓｉｏｎ  Ｉｄｅｎｔｉｆｉｅｒ‖ＭＳ）が一致しない場合、認証結果判断部７１は、エラー発生器７２に対して、一致しないことを通知する。これを受けて、エラー発生器７２はエラーを発生して処理を中断する。一方、認証結果判断部７１において、ＶＵとＨ３（Ｓｅｓｓｉｏｎ  Ｉｄｅｎｔｉｆｉｅｒ‖ＭＳ）が一致した場合には、ユーザが正当な利用者として認証する。そして、セッション鍵生成器７３は、ＳＫ＝Ｈ４（Ｓｅｓｓｉｏｎ  Ｉｄｅｎｔｉｆｉｅｒ‖ＭＳ）によりセッション鍵ＳＫを生成して出力する。ここで、必要とするセッション鍵の長さに応じて、Ｈ４の代わりにＲＲＦ（Ｐｓｅｕｄｏ−Ｒａｎｄｏｍ  Ｆｕｎｃｔｉｏｎ）を使ってもよい。
【００９８】
次に、本発明に係る匿名認証システムを応用して、匿名通信路を構成する場合の実施例について説明する。この実施例のネットワークシステムでは、具体的には、通信アドレス（ＩＰアドレスなど）の匿名割り当てを行うことで、そのアドレスの乱用防止ができる特徴がある。
【００９９】
図２１は、本発明の実施例に係る匿名認証システムを用いて構成する匿名サービス利用ネットワークのシステム構成を説明する図である。次に、図２１を参照して、前述した匿名認証システムを応用して、通信アドレス（ＩＰアドレスなど）の匿名割り当てを行い、そのアドレスの乱用を防止する構成について説明する。
【０１００】
このシステム構成は、サーバの認証装置３００と、匿名サービス利用ネットワーク５００と、匿名サービス提供サーバ４００から構成される。ここで、一つのサーバの認証装置３００は、複数の匿名サービス利用ネットワーク５００と、複数の匿名サービス提供サーバ４００とから構成されてもよく、また、匿名サービス提供サーバ４００が、匿名サービス利用ネットワーク５００の内に置かれてもよい。また、一つのサーバの認証装置３００は別のサーバの認証装置３００と匿名認証のローミングを行ってもよい。
【０１０１】
匿名サービス利用ネットワーク５００は、ユーザの端末装置２００、通信アドレス割り当て装置５０１、ネットワークフィルタリング装置５０２から構成される。ただし、ユーザの端末装置２００以外については、各装置が他の装置を含めてもよい。例えば、通信アドレス割り当て装置５０１が、ネットワークフィルタリング装置５０２を含む構成、サーバの認証装置３００が通信アドレス割り当て装置５０１を含む構成としてシステムが構成されていてもよい。
【０１０２】
匿名サービス利用ネットワーク５００における通信アドレス割り当て装置５０１は、サーバの認証装置３００と、ユーザの端末装置２００とが、匿名認証を行った際に共有した鍵をサーバの認証装置３００から受け取り、それとユーザの端末装置２００に割り当てたアドレスを、ネットワークフィルタリング装置５０２に通知する。なお、サーバの認証装置３００と通信アドレス割り当て装置５０１との間、通信アドレス割り当て装置５０１とネットワークフィルタリング装置５０２との間は安全な通信路で結ばれているとする。
【０１０３】
ネットワークフィルタリング装置５０２は、ユーザの端末装置２００との間でパケットの認証を行い、認証されていないパケットをＬＡＮ外へ送信することを防止する。また、匿名認証により割り当てられたアドレスからのパケットについては、匿名サービス提供サーバ４００宛のパケットのみを通過させそれ以外をブロックする。これにより、匿名アドレスが（ＤｏＳ攻撃やスパムメールの送信など）不適切な用途に利用されることを防止する。（なお、匿名サービス提供サーバのアドレスは予めネットワークフィルタリング装置に登録するかサーバの認証装置から通知されるとする。）
【０１０４】
匿名サービス提供サーバ４００は、サーバの認証装置３００がユーザを匿名認証した際に共有した鍵とそれを特定するためのＩＤをサーバの認証装置から通知してもらい、そのＩＤと鍵を知っているユーザからの通信のみを受け付ける。なお、匿名サービス提供サーバ４００とサーバの認証装置３００との間は安全な通信路で結ばれているとする。
【０１０５】
次に、本発明に係る匿名認証システムを応用して、サーバに置いてあるデータを検索者に秘匿し、かつ検索者の検索内容をサーバに秘匿し、かつ検索結果がヒットした場合にはそのことをサーバと検索者が知ることのできる匿名マッチングシステムを構成する場合の実施例について説明する。
【０１０６】
＜匿名マッチングシステム＞
図２２は、本発明の実施例に係る匿名認証システムを用いて構成する匿名マッチングシステムのシステム構成を示す図である。次に、図２２参照して、匿名認証システムを応用した匿名マッチングシステムについて説明する。
【０１０７】
匿名マッチングシステム６００は、条件検索者の匿名マッチングシステム６０１と条件提供者の匿名マッチングシステム６０２から構成され、条件検索者と条件提供者は自分の希望する検索語や条件式を各自の匿名マッチングシステムに入力する。条件検索者の匿名マッチングシステム６０１は条件提供者の匿名マッチングシステム６０２と互いに通信（匿名通信）を行い、お互いの条件が合意できるか否かを出力する。
【０１０８】
なお、このシステム構成の特徴は、お互いの条件が合意できなかった場合に、通信相手の指定した条件を、それぞれの匿名マッチングシステム（６０１，６０２）が知りえないことにある。これによりお互いの条件を相手に秘匿した状態で、条件に合う相手を見つけることが可能となる。
【０１０９】
図２３は、本発明の実施例に係る匿名認証システムを用いて構成する匿名マッチングシステムのシステム構成および動作を詳細に説明する図である。図２３に示すように、匿名マッチングシステム６００のシステム構成は、自己の希望する検索語または条件式の入力を受け付ける検索語・条件式処理装置６１１およびユーザ側認証用データ生成装置２０１から構成される条件検索者の匿名マッチングシステム６０１と、自己の希望する検索語または条件式の入力を受け付ける検索語・条件式処理装置６１２およびサーバ側認証用データ生成装置３０１から構成される条件提供者の匿名マッチングシステム６０２とが備えられたシステム構成とされる。
【０１１０】
条件検索者の匿名マッチングシステム６０１と条件提供者の匿名マッチングシステム６０２とは、条件検索者の匿名マッチングシステム６０１の検索語・条件式処理装置６１１からの条件を、ユーザ側認証用データ生成装置２０１が受け付けて、条件提供者の匿名マッチングシステム６０２の検索語・条件式処理装置６１２からの提示条件を、サーバ側認証用データ生成装置３０１が受け付けて、ユーザ側認証用データ生成装置２０１とサーバ側認証用データ生成装置３０１との間で匿名通信を行い、マッチングの処理を行う。
【０１１１】
つまり、条件提供者の匿名マッチングシステム６０２は、検索語・条件式入力６３２により、検索語および条件式を受け入れ、それを加工し、その加工データを秘密情報として各サーバ側認証用データ生成装置３０１に設定する。サーバ側認証用データ生成装置３０１は、ユーザ側認証用データ生成装置２０１からの接続に応答し、その出力を検索語・条件式処理装置６１２に伝える。検索語・条件式処理装置６１２は各サーバ側認証用データ生成装置３０１の出力を集め、条件検索者の匿名マッチングシステム６０１の検索語・条件式処理装置６１１と通信し、マッチング結果６２２を出力する。
【０１１２】
条件検索者の匿名マッチングシステム６０１は、検索語・条件式入力６３１により、検索語および条件式を受け入れ、それを加工し、その加工データを秘密情報として各ユーザ側認証用データ生成装置２０１に設定する。ユーザ側認証用データ生成装置２０１は、サーバ側認証用データ生成装置３０１に接続し、その出力を検索語・条件式処理装置６１１に伝える。検索語・条件式処理装置６１１は各ユーザ側認証用データ生成装置２０１の出力を集め、条件提供者の匿名マッチングシステム６０２の検索語・条件式処理装置６１２と通信し、マッチング結果６２１を出力する。
【０１１３】
このように、本発明に係る匿名認証システムを応用した匿名マッチングシステムによれば、サーバに置いてあるデータを検索者に秘匿し、かつ検索者の検索内容をサーバに秘匿し、かつ検索結果がヒットした場合にはそのことをサーバと検索者が知ることのできる匿名マッチングシステムを構成することができる。
【産業上の利用可能性】
【０１１４】
個人情報保護法の施行やＩＴ化および現実社会・ネット上での監視が強化されるなか、個人情報保護や匿名性を確保できるアプリケーションの重要性は今後増すことが予想される。本発明による匿名認証システムは、さまざまなアプリケーションにおいて匿名性を確保する際の基盤技術として利用できる。例えば、匿名でのカウンセリング（医療相談、なやみ相談、いじめ相談）、内部告発、内容を秘匿した状態での検索やマッチング（特許あるいはアイデアの検索、企業間のマッチング、結婚相手の検索）など。また、通常の匿名でない認証用の情報をサーバに登録しておけば特別な登録手続き不要で匿名サービスを利用できるため、例えば、ＩＳＰ（Ｉｎｔｅｒｎｅｔ  Ｓｅｒｖｉｃｅ  Ｐｒｏｖｉｄｅｒ）などにおいて顧客獲得のための付加的なサービスとしての活用も期待できる。
【図面の簡単な説明】
【０１１５】
【図１】本発明に係る匿名認証システムの概略のシステム構成を説明する図である。
【図２】本発明に係る匿名認証システムにおけるユーザの端末装置の概略のシステム構成を説明するブロック図である。
【図３】本発明に係る匿名認証システムにおけるサーバの認証装置の概略のシステム構成を説明するブロック図である。
【図４】サーバ側認証用データ生成装置の初期化及び更新化の処理を説明するデータの流れを示すブロック図である。
【図５】ユーザ側認証用データ生成装置のＢＡＳＩＣプロトコルに基づく処理動作を説明するデータの流れを示すブロック図である。
【図６】ユーザ側認証用データ生成装置のＥＸＴＥＮＤＥＤ１プロトコルに基づく処理動作を説明するデータの流れを示すブロック図である。
【図７】ユーザ側認証用データ生成装置のＥＸＴＥＮＤＥＤ２プロトコルに基づく処理動作を説明するデータの流れを示すブロック図である。
【図８】ユーザ側認証用データ生成装置のＣＥ１プロトコルに基づく処理動作を説明するデータの流れを示すブロック図である。
【図９】ユーザ側認証用データ生成装置のＣＥ２プロトコルに基づく処理動作を説明するデータの流れを示すブロック図である。
【図１０】ユーザ側認証用データ生成装置のＣＥ３プロトコルに基づく処理動作を説明するデータの流れを示すブロック図である。
【図１１】ユーザ側認証用データ生成装置のＣＥ４プロトコルに基づく処理動作を説明するデータの流れを示すブロック図である。
【図１２】ユーザ側認証結果判定及びセッション鍵生成装置２０３の処理の動作を説明するデータの流れを示すブロック図である。
【図１３】サーバ側認証用データ生成装置のＢＡＳＩＣプロトコルに基づく処理動作を説明するデータの流れを示すブロック図である。
【図１４】サーバ側認証用データ生成装置のＥＸＴＥＮＤＥＤ１プロトコルに基づく処理動作を説明するデータの流れを示すブロック図である。
【図１５】サーバ側認証用データ生成装置のＥＸＴＥＮＤＥＤ２プロトコルに基づく処理動作を説明するデータの流れを示すブロック図である。
【図１６】サーバ側認証用データ生成装置のＣＥ１プロトコルに基づく処理動作を説明するデータの流れを示すブロック図である。
【図１７】サーバ側認証用データ生成装置のＣＥ２プロトコルに基づく処理動作を説明するデータの流れを示すブロック図である。
【図１８】サーバ側認証用データ生成装置のＣＥ３プロトコルに基づく処理動作を説明するデータの流れを示すブロック図である。
【図１９】サーバ側認証用データ生成装置のＣＥ４プロトコルに基づく処理動作を説明するデータの流れを示すブロック図である。
【図２０】サーバ側認証結果判定及びセッション鍵生成装置３０３の処理の動作を説明するデータの流れを示すブロック図である。
【図２１】本発明の実施例に係る匿名認証システムを用いて構成する匿名サービス利用ネットワークのシステム構成を説明する図である。
【図２２】本発明の実施例に係る匿名認証システムを用いて構成する匿名マッチングシステムのシステム構成を示す図である。
【図２３】本発明の実施例に係る匿名認証システムを用いて構成する匿名マッチングシステムのシステム構成および動作を詳細に説明する図である。
【符号の説明】
【０１１６】
１００  匿名認証システム
１１０  通信路
２００  ユーザの端末装置
２０１  ユーザ側認証用データ生成装置
２０２  通信処理部
２０３  ユーザ側認証結果判定及びセッション鍵生成装置
３００  サーバの認証装置
３０１  サーバ側認証用データ生成装置
３０２  通信処理部
３０３  サーバ側認証結果判定及びセッション鍵生成装置
４００  匿名サービス提供サーバ
５００  匿名サービス利用ネットワーク
５０１  通信アドレス割り当て装置
５０２  ネットワークフィルタリング装置
６００  匿名マッチングシステム
６０１  条件検索者の匿名マッチングシステム
６０２  条件提供者の匿名マッチングシステム
６１１  検索語・条件式処理装置
６１２  検索語・条件式処理装置
【図１】
2008176650.tif 000003
【図２】
2008176650.tif 000004
【図３】
2008176650.tif 000005
【図４】
2008176650.tif 000006
【図５】
2008176650.tif 000007
【図６】
2008176650.tif 000008
【図７】
2008176650.tif 000009
【図８】
2008176650.tif 000010
【図９】
2008176650.tif 000011
【図１０】
2008176650.tif 000012
【図１１】
2008176650.tif 000013
【図１２】
2008176650.tif 000014
【図１３】
2008176650.tif 000015
【図１４】
2008176650.tif 000016
【図１５】
2008176650.tif 000017
【図１６】
2008176650.tif 000018
【図１７】
2008176650.tif 000019
【図１８】
2008176650.tif 000020
【図１９】
2008176650.tif 000021
【図２０】
2008176650.tif 000022
【図２１】
2008176650.tif 000023
【図２２】
2008176650.tif 000024
【図２３】
2008176650.tif 000025