説明

匿名認証システム

【課題】十分な匿名性で、しかも計算コストと通信コストが高くならない匿名認証システムおよびそれをもちいて構成する匿名通信路の匿名サービス利用ネットワークと秘匿性の高い匿名マッチングシステムを提供する。
【解決手段】 匿名認証システム100は、ユーザの端末装置200とサーバの認証装置300が、インターネットのような安全ではない通信路110により接続されて互いに通信を行い、個人を特定しないで利用者を認証する。パスワードを用いた匿名認証に対して過去に生成したデータを再利用したとしても安全性を損なわないようにして、2回目以降の処理を軽くする。また、匿名認証システムを用いて、匿名サービス利用ネットワークおよび匿名マッチングシステムが提供される。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、匿名認証システムに関するものである。また、匿名認証システムを用いて構成する匿名通信路の匿名サービス利用ネットワーク、および秘匿性の高い匿名マッチングシステムに関するものである。
【背景技術】
【0002】
IT化や個人情報保護法の施行などに伴い、匿名性を要するアプリケーションが増えている。従来の技術で、その匿名性や秘匿性を高めようとすると計算量と通信量が多くなり非常に使い勝手の悪いものとなる。例えば、非特許文献1の技術においては、OT(Oblivious Transfer)とPAKE(Password−Authenticated Key Exchange)の組み合わせで匿名認証を実現しているが、サーバ側の計算量と通信量が多いという欠点がある。
【0003】
非特許文献2の技術においては、暗号文の状態でその平文中のキーワードを検索できるが、その暗号文の作成者は利用者が何を検索しているのかを知ることができる。このために、十分な秘匿性が保証されない。非特許文献3の技術における「Private Information Retrieval」は、利用者が何を検索したかをサーバに秘匿できるが、利用者はサーバに置いてある情報を知ることができる。このため、ここでも、十分な秘匿性を保証することはできない。
【0004】
匿名認証の技術として、また、特許文献1〜特許文献3の技術が参照できる。特許文献1の技術では、管理装置であるグリッドシステムが、SSLでユーザのIDやパスワードに基づいてクライアント装置の認証を行う。その認証が成功したら管理装置はユーザの匿名プロキシ証明書を発行し、それに基いて計算機に対するユーザの認証を代わりに行う。特許文献2の技術は、ピアツーピア型匿名プロキシにおける安全性の高い匿名通信路の検証及び構築する方法であり、ユーザとサーバの間に匿名通信路を作るために、自分が立ち上げたピアツーピア型匿名プロキシと他人が立ち上げたピアツーピア型匿名プロキシを繋ぐことでルートができる。そのルートにある他人のピアツーピア型匿名プロキシが信頼できるかどうかを検証するためにパスワードを多重暗号化して送ってもらい、また、別のルートでそのピアツーピア型匿名プロキシとパスワードを送受信することで認証を行う。また、特許文献3の技術は、電子掲示板システム及びそれに用いる投稿管理方法の技術である。ここでは、クライアントが匿名を悪用して電子掲示板に投稿するのを防ぐために、クライアントのパスワード認証をホストコンピュータではなく、すべてのクライアントが協力することで認証ができる。
【非特許文献1】D. Q. Viet, A. Yamamura, and H. Tanaka, “AnonymousPassword-Based Authenticated Key Exchange” Proc. of INDOCRYPT 2005, LNCS 3797,pp. 244-257, 2005.
【非特許文献2】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.
【非特許文献3】W. Gasarch, “A Survey on Private InformationRetrieval” http://theorie.informatik.uni-ulm.de/Personen/toran/beatcs/column82.pdf
【特許文献1】特開2006−301831号公報
【特許文献2】特開2005−236939号公報
【特許文献3】特開2001−331411号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
上述したように、匿名性を要するアプリケーションが増えているが、これに対して、従来の技術で匿名性や秘匿性を高めようとすると、計算量と通信量が多くなり非常に使い勝手の悪いものとなる。
【0006】
例えば、パスワードを用いた従来の匿名認証の処理では、それを実行する度にグループのメンバ数をnとすると、nに比例した計算量や通信量が必要であり、匿名性や秘匿性を高めようとすると、計算量と通信量が膨大なものとなり、匿名性を要するアプリケーションおける計算コストが高くなるという問題がある。
【0007】
また、従来技術による匿名通信路においては、
(1)経由するノード数に応じて処理が重くなる、
(2)ファイヤーウォールやNAT(Network Address Translation)などで送信者を特定できる、
(3)コンテンツの不正配布、不法薬物の売買、テロ活動など公序良俗に反する目的で利用される恐れがある、
といった問題点があった。
【0008】
本発明は、これらの問題点を解決するためになされたものであり、本発明の目的は、十分な匿名性で、しかも計算コストと通信コストが高くならない匿名認証システムを提供することにある。また、そのような匿名認証システムを用いて構成する匿名通信路の匿名サービス利用ネットワーク、および秘匿性の高い匿名マッチングシステムを提供することにある。
【課題を解決するための手段】
【0009】
上記のような目的を達成するため、本発明による匿名認証システムにおいては、基本的な概念として、パスワードを用いた匿名認証に対して過去に生成したデータを再利用したとしても安全性を損なわないようにして、匿名認証システムを構成する。これにより、2回目以降の処理を軽くする。
【0010】
また、本発明による匿名認証システムを用いて匿名サービス利用ネットワークを構成する場合には、認証された利用者のみに通信の際に必要となる特定のアドレスを割り振ると共にそのアドレスでは特定のサーバにしか接続させないようにする。これにより、乱用ができなく、かつ効率のよい匿名サービス利用ネットワークを構成する。
【0011】
また、本発明による匿名認証システムを用いて、秘匿性の高い匿名マッチングシステムを構成する場合においては、パスワードを用いた匿名認証により提供される匿名性を応用することにより、「サーバに置いてあるデータを検索者に秘匿し、かつ検索者の検索内容をサーバに秘匿し、かつ検索結果がヒットした場合にはそのことをサーバと検索者が知ることのできる」匿名マッチングシステムが提供される。
【0012】
具体的には、本発明は、第1の態様として、本発明による匿名認証システムは、利用者端末装置に設けられて、利用者からのパスワード入力を受け付け、ユーザ側の認証用データを生成する第1の認証データ生成装置と、利用者端末装置に設けられて、前記第1認証データ生成装置により生成されたユーザ側の認証用データを認証サーバに送信するとともに、前記認証サーバからサーバ側の認証用データを受信する第1の通信処理部と、利用者端末装置に設けられて、前記第1認証データ生成装置から出力される認証用データおよび認証サーバから受信した認証用データに基づいて、認証結果を判断し、認証子を生成すると共に、セッション鍵を生成する第1のセッション鍵生成装置と、認証サーバに設けられて、ユーザ側の認証用データを受け付けて、認証サーバ側の認証用データを生成する第2の認証データ生成装置と、認証サーバに設けられて、前記利用者端末装置からユーザ側の認証用データを受信すると共に、前記第2認証データ生成装置により生成されたサーバ側の認証用データを利用者端末装置に送信する第2の通信処理部と、認証サーバに設けられて、前記第2認証データ生成装置から出力される認証用データおよび利用者端末装置から受信した認証用データに基づいて、認証結果を判断し、セッション鍵を生成する第2のセッション鍵生成装置と、を備えることを特徴とする匿名認証システムであって、利用者端末装置からユーザID及びパスワード入力があった場合に、認証サーバに設けられた第2の認証データ生成装置の初期化処理を行い、初期化処理データをメモリに格納し、以降の処理では前記メモリに格納したデータを用いる、ことを特徴とするものである。
【0013】
本発明は、第2の態様として、匿名認証システムを用いて構成する匿名サービス利用ネットワークであって、利用者端末装置からのセッション鍵に基づいて利用者に対してサービスを提供する匿名サービス提供サーバと、利用者端末装置からユーザの匿名認証を行った際に共有したセッション鍵を認証サーバから受け取り、前記匿名サービス提供サーバがサービスを提供するための通信路のアドレスを割り付ける通信アドレス割り当て装置と、利用者端末装置と前記匿名サービス提供サーバとの間のパケットの認証を行い、認証されていないパケットをネットワーク外に送信することを防止するネットワークフィルタリング装置と、を備えることを特徴とするものである。
【0014】
この場合に、前記匿名サービス提供サーバは、認証サーバによりユーザを匿名認証した際に共有したセッション鍵と、ユーザを特定するIDの通知を予め受けて、前記IDおよびセッション鍵に基づく通信のみを受け付けるように構成される。
【0015】
また、本発明は、第3の態様として、匿名認証システムを用いて、サーバに置いてあるデータを検索者に秘匿し、かつ検索者の検索内容をサーバに秘匿し、かつ検索結果がヒットした場合にはそのことをサーバと検索者が知ることのできる匿名マッチングシステムであって、自己の希望する検索語または条件式の入力を受け付ける検索語・条件式処理装置およびユーザ側認証用データ生成装置から構成される条件検索者の匿名マッチングシステムと、自己の希望する検索語または条件式の入力を受け付ける検索語・条件式処理装置およびサーバ側認証用データ生成装置から構成される条件提供者の匿名マッチングシステムと、を備え、条件提供者の匿名マッチングシステムの検索語・条件式処理装置が、検索語および条件式を受け入れ、それを加工し、その加工データを秘密情報として各サーバ側認証用データ生成装置に設定し、サーバ側認証用データ生成装置が、ユーザ側認証用データ生成装置からの接続に応答して、その出力を前記検索語・条件式処理装置に伝え、条件提供者の匿名マッチングシステムの検索語・条件式処理装置が、各サーバ側認証用データ生成装置の出力を集め、条件検索者の匿名マッチングシステムの検索語・条件式処理装置と通信し、マッチング結果を出力すると共に、条件検索者の匿名マッチングシステムの検索語・条件式処理装置が、検索語および条件式を受け入れ、それを加工し、その加工データを秘密情報として各ユーザ側認証用データ生成装置に設定し、ユーザ側認証用データ生成装置はサーバ側認証用データ生成装置に接続し、その出力を検索語・条件式処理装置に伝え、条件検索者の匿名マッチングシステムの検索語・条件式処理装置が、各ユーザ側認証用データ生成装置の出力を集め、条件提供者の匿名マッチングシステムの検索語・条件式処理装置と通信し、マッチング結果を出力する、ことを特徴とするものである。
【発明の効果】
【0016】
このような特徴を有する本発明の匿名認証システムによれば、従来のパスワードを用いた匿名認証では、それを実行する度にグループのメンバ数をnとしてnに比例した計算量や通信量が必要であったが、本発明の匿名認証システムでは、2回目以降の実行における計算量や通信量を一定にすることができ、非常に効率よく実行できる。
【0017】
また、本発明による匿名認証システムを用いて、送信元IPアドレスなどからデータの送信者を特定することを防止する匿名通信路である匿名サービス利用ネットワークが提供され、この匿名通信路では、別ノードを必要としないため、経由するノード数に応じて処理が重くなることはなく、また、ネットワークの管理者も利用者を特定できないため、従来の通信路のように、ファイヤーウォールやNAT(Network Address Translation)などで送信者を特定できることはなく、利用目的を限定できるため、コンテンツの不正配布、不法薬物の売買、テロ活動など公序良俗に反する目的で利用される恐れがあるといった問題点が解決される。
【0018】
さらに、また、本発明による匿名認証システムを用いることにより、サーバに置いてあるデータを検索者に秘匿し、かつ検索者の検索内容をサーバに秘匿し、かつ検索結果がヒットした場合にはそのことをサーバと検索者が知ることができるため、高い秘匿性を確保しながら検索やマッチングを行うことができる匿名マッチングシステムが提供される。
【発明を実施するための最良の形態】
【0019】
以下に、図面を参照しつつ、本発明の好適な実施例について説明する。ただし、本発明は以下の各実施例に限定されるものではなく、例えば、これら実施例の構成要素同士を適宜に組み合わせてもよい。
【0020】
図1は、本発明に係る匿名認証システムの概略のシステム構成を説明する図である。図1に示すように、匿名認証システム100は、ユーザの端末装置(利用者端末装置)200とサーバの認証装置(認証サーバ)300が、インターネットのような安全ではない通信路110により接続されて互いに通信を行い、個人を特定しないで利用者を認証するシステムである。
【0021】
すなわち、匿名認証システム100は、ユーザの端末装置200とサーバの認証装置300がお互いに相互認証しながら同じセッション鍵を確保するためのシステムであり、ここで、例えば、利用者サービスを提供するサーバは、セッション鍵を共有したユーザが自分に登録しているユーザの中で一人であることは確認できるものの、そのユーザが誰かは特定できない。利用者は、パスワード入力を行うことでサーバからのサービスを利用することができるようになる。
【0022】
まず、以下の説明において用いる整数論と記号について、概略を説明しておく。p,qは素数であり、q|p−1という関係がある。q|p−1は、qはp−1を割りきることのできる値であることを意味する。また、gはmod p上の位数qの有限体(群)G={g mod p: 0≦j<q}の生成元である(楕円曲線上の群でも同じように構成できる)。
【0023】
ここで、“g mod p”は、法指数演算で、gをj乗した値をpで割った残り(Remainder)という意味である。また、ここで、gは(1<g<p−1,g=1 mod p,g≠1 mod p(0<j<q))である。
【0024】
つまり、p,qは演算体系(素体の標数)を示す。例えば、X=g mod p(0<x<q)でxは秘密情報であり、Xが与えられた時、x=logXを求めるのは数学的に難しい問題(Xの生成元gに対する離散対数問題という)である。
【0025】
また、乱数発生器から発生される乱数はR∈(Z/qZ)を無作為に生成する。ここで、(Z/qZ)は{1,2,・・・,q−1}の集合を示す。マスタ鍵発生器から発生されるマスタ鍵はMS∈{0,1}を無作為に生成する。ここで、{0,1}は長さがmの二進数列の集合を示す。また、EKey(M)は対称鍵Keyを使ってメッセージMを暗号化し、DKey(C)は対称鍵Keyを使って暗号文Cからメッセージを復号する。例えば、対象鍵暗号方式としてAES−xxxなどが使われる。ここで、xxxはCBC、CCMなどのような対称鍵暗号方式の利用モードを意味する。
【0026】
以下の説明では、複数の安全な一方向性ハッシュ関数F,H,H,H,H,Hを使う(例えば、SHA256或いはRIPEMD160など)。また、lはハッシュ関数のセキュリティパラメータを意味する。
【0027】
ハッシュ関数Fは、{0,1} →(Z/qZ)にマッピングするFDH(Full Domain Hash)関数である。ここで、{0,1}は有限の二進数列の集合を示す。他のハッシュ関数H(1≦k≦5)は{0,1}→{0,1}lkのようにマッピングする。ここで、{0,1}lkは長さがlの二進数列の集合を示す。
【0028】
また、‖は値を連結(concatenation)するという意味である。また、各ユーザはユーザID(U)を持ち、そのグループIDはU={U,・・・,U}で表す。例えば、ユーザIDは一連番号(Serial number)あるいはPublic account nameにしてもよい。また、ユーザUは自分のパスワードpwを覚えていて、サーバはすべてのユーザのIDとパスワード対{U,pw}(1≦j≦n)をデータベースに保存している。また、SはサーバIDを表す。そして、param=(g,p,q),F,H,H,H,H,H,U={U,・・・,U},Sは公開情報であり、例えばサーバの掲示板などに公開する。
【0029】
図2は、本発明に係る匿名認証システムにおけるユーザの端末装置の概略のシステム構成を説明するブロック図である。図2に示すように、ユーザの端末装置200は、ユーザ側認証用データ生成装置201と,通信処理部202と、ユーザ側認証結果判定及びセッション鍵生成装置203とから構成される。
【0030】
ユーザの端末装置200において、ユーザ側認証用データ生成装置201は、利用者からのパスワード入力を受け付け、ユーザ側の認証用データを生成する。通信処理部202は、ユーザ側認証用データ生成装置201により生成されたユーザ側の認証用データを、サーバの認証装置300に送信するとともに、サーバの認証装置300からサーバ側の認証用データを受信する。ユーザ側認証結果判定及びセッション鍵生成装置203は、後述するように、ユーザ側認証用データ生成装置201から出力される認証用データおよびサーバの認証装置300から受信した認証用データに基づいて、認証結果を判断し、認証子を生成すると共に、セッション鍵を生成する。
【0031】
図3は、本発明に係る匿名認証システムにおけるサーバの認証装置の概略のシステム構成を説明するブロック図である。図3に示すように、サーバの認証装置300は、サーバ側認証用データ生成装置301と,通信処理部302と、サーバ側認証結果判定及びセッション鍵生成装置303とから構成される。
【0032】
サーバの認証装置300において、サーバ側認証用データ生成装置301は、ユーザ側の認証用データを受け付けて、認証サーバ側の認証用データを生成する。通信処理部302は、ユーザの端末装置200からユーザ側の認証用データを受信すると共に、サーバ側認証用データ生成装置301により生成された認証サーバ側の認証用データをユーザの端末装置200に送信する。また、サーバ側認証結果判定及びセッション鍵生成装置303は、後述するように、サーバ側認証用データ生成装置301から出力される認証用データおよびユーザの端末装置200から受信した認証用データに基づいて、認証結果を判断し、セッション鍵を生成する。
【0033】
次に、図2および図3を参照して、ユーザの端末装置200とサーバの認証装置300との間で匿名を保ちながら相互認証及び鍵交換を行う動作を説明する。
【0034】
<ユーザの端末装置の動作>
図2を参照すると、ユーザの端末装置200は、ユーザ側認証用データ生成装置201と、通信処理部202と、ユーザ側認証結果判定及びセッション鍵生成装置203で構成されている。ユーザ側認証用データ生成装置201は、BASIC,EXTENDED1,EXTENDED2,CE1,CE2,CE3,CE4プロトコルなどで構成される。それぞれのプロトコルよる構成および動作については、後に詳述する。
【0035】
<サーバの認証装置の動作>
また、図3を参照すると、サーバの認証装置300は、サーバ側認証用データ生成装置301と、通信処理部302と、サーバ側認証結果判定及びセッション鍵生成装置303で構成される。サーバ側認証用データ生成装置301は、BASIC,EXTENDED1,EXTENDED2,CE1,CE2,CE3,CE4プロトコルなどで構成する。これらは、ユーザの端末装置200の各プロトコルに対応したものであり、それぞれのプロトコルにおける構成および動作については、後に詳述する。
【0036】
本発明による匿名認証システム100は、サーバの認証装置300において、まず、サーバ側認証用データ生成装置301が、匿名認証のサービスを行う場合の前処理として初期化処理を行う。図4を参照して説明する。
【0037】
<サーバ側認証用データ生成装置の初期化及び更新化>
利用者に対してサービスを提供するための認証サーバは、ユーザのIDとパスワード対{U,pw}(1≦j≦n)に対して、まず、サーバの認証装置300において、サーバ側認証用データ生成装置301の初期化(更新化)の処理を行う。この初期化の処理は、以下に説明するすべてのプロトコルの実行前に必ず行われる。BASICプロトコルの実行前では毎回初期化処理を行う。
【0038】
また、初期化と同じ処理であるが、初期化以降の更新化(2回目からの初期化)はEXTENDED1,EXTENDED2,CE1,CE2,CE3,CE4プロトコルの実行前に行われる。また、更新化は周期的な期間(例えば、一日あるいは一ヵ月)単位で行うように設定されても良い。
【0039】
図4は、サーバ側認証用データ生成装置の初期化及び更新化の処理を説明するデータの流れを示すブロック図である。
【0040】
初期化の処理は、乱数発生器により発生される乱数に基づいて処理を行う。図4を参照すると、まず、乱数発生器401により、ランダムに乱数xを発生する。また、マスタ鍵発生器402により、ランダムにマスタ鍵MSを発生する。暗号処理演算器403は、乱数発生器401において発生させた乱数xから、公開値Xを、X=g mod pにより計算する。暗号鍵生成器405は、サーバ側認証用データ生成装置301に備えられたたメモリ404から記憶されたユーザIDとパスワード対{U,pw}(1≦j≦n)を読み出す。暗号鍵生成器405は、メモリ404から読み出した{U,pw}(1≦j≦n)と、乱数発生器401において発生させた乱数xにより、暗号鍵Kを、K=F(U,pw mod p(1≦j≦n)により計算して出力する。
【0041】
暗号器406では、暗号鍵生成器405から生成された暗号鍵Kとマスタ鍵発生器402において発生させたマスタ鍵MSとから暗号文Cを、C=EH1(Kj||param||S)(MS)(1≦j≦n)により計算する。サーバ側認証用データ生成装置301の内部にあるメモリ404は乱数発生器401から発生された乱数xと、暗号処理演算器403から生成されたXと、index=H(X)と、暗号鍵生成器404から生成された暗号鍵K(1≦j≦n)と暗号器406から生成された暗号文C(1≦j≦n)を記憶して保存する。
【0042】
前述したように、ユーザの端末装置200におけるユーザ側認証用データ生成装置201は、各プロトコルによる認証データの生成を行うように構成される。次に、ユーザ側認証用データ生成装置201の動作を、BASIC,EXTENDED1,EXTENDED2,CE1,CE2,CE3,CE4プロトコルについて、それぞれ動作について説明する。
【0043】
<ユーザ側認証用データ生成装置の動作>
(1)BASICプロトコルの場合、
図5は、ユーザ側認証用データ生成装置のBASICプロトコルに基づく処理動作を説明するデータの流れを示すブロック図である。初めに、図5を参照してBASICプロトコルを使ったユーザ側認証用データ生成装置201の動作を説明する。
【0044】
まず、乱数発生器211により、ランダムに乱数aを発生し、暗号処理演算器212に乱数aを入力する。暗号処理演算器212は、乱数発生器211において発生させた乱数aから、公開値g mod pを計算する。マスク演算器213は、ユーザUが入力したパスワードpwと暗号処理演算器212から入力された公開値gから、データAを、A=g・F(U,pw) mod pにより計算して出力する。出力されたデータAは、通信処理部202によって、サーバの認証装置300に送信される。また、サーバの認証装置300から、通信処理部202を介して、サーバの認証装置300から、認証用データのX,A,{C1≦j≦n,Vを受信する。
【0045】
図5を参照すると、復号鍵生成器214は、乱数発生器211から出力される乱数aと受信した認証用データの(X,A)を入力として、復号鍵Kを、K=A/X mod pにより計算して出力する。復号器215は、復号鍵生成器214から生成された復号鍵Kと、受信したi番目のC(つまり、i=j)から、マスタ鍵MSを、MS=DH1(Ki||param||S)(C)により計算する。セッション固有化器216は、マスク演算器から入力されたデータAと受信した認証用データのX,A,{C1≦j≦nからなるSession Identifier=(“BASIC”||U||S||A||A||X||{C1≦j≦n)と、復号器215から生成されたマスタ鍵MSを出力する。ここでの“BASIC”は、BASICプロトコルの名前を示している。ユーザ側認証用データ生成装置201の内部にあるメモリ217は、CE1とCE2プロトコルのために、受信した認証用データのX,Cを記憶して保存する。
【0046】
また、ユーザ側認証用データ生成装置201の内部にあるメモリ217は、CE3とCE4プロトコルのために、受信したXと復号器215から生成されたマスタ鍵MSを記憶して保存する。それ以外には、ユーザ側認証用データ生成装置201の内部にあるメモリ217に何も保存しない。
【0047】
(2)EXTENDED1プロトコルの場合、
図6は、ユーザ側認証用データ生成装置のEXTENDED1プロトコルに基づく処理動作を説明するデータの流れを示すブロック図である。図6を参照して、次に、EXTENDED1プロトコルを使ったユーザ側認証用データ生成装置201の動作を説明する。
【0048】
まず、乱数発生器221によりランダムに2つの乱数aと乱数bを発生する。暗号処理演算器222は、乱数発生器221において発生させた乱数aと乱数bから、公開値g mod pと公開値B=g mod pをそれぞれ計算する。マスク演算器223では、ユーザUが入力したパスワードpwと、暗号処理演算器222から入力された公開値gとから、データAを、A=g・F(U,pw) mod pにより計算して出力する。通信処理部202は、データAと公開値Bをサーバの認証装置300へ送信する。
【0049】
サーバの認証装置300からは、通信処理部202を介して認証用データのX,A,{C1≦j≦n,Vを受信する。復号鍵生成器225は、乱数発生器221から出力される乱数aと受信した認証用データのX,Aを入力として、復号鍵Kを、K=A/X mod pにより計算して出力する。復号器226は、復号鍵生成器225から生成された復号鍵Kと受信したi番目のC(つまり、i=j)から、マスタ鍵MSを、MS=DH1(Ki||param||S)(C)により計算する。
【0050】
また、暗号処理演算器224は、乱数発生器221から出力される乱数bと、受信した認証用データのXを入力として、DH(Diffie−Hellman)鍵(X mod p)を計算して出力する。セッション固有化器227は、マスク演算器223から出力されたデータAと、暗号処理演算器222から入力された公開値Bと、暗号処理演算器224から入力されたXと、受信した認証用データのX,A,{C1≦j≦nからなるSession Identifier=(“EXTENDED1”||U||S||A||A||B||X||X||{C1≦j≦n)と、復号器226から生成されたマスタ鍵MSを出力する。ここで、“EXTENDED1”はEXTENDED1プロトコルの名前を示している。
【0051】
(3)EXTENDED2プロトコルの場合、
図7は、ユーザ側認証用データ生成装置のEXTENDED2プロトコルに基づく処理動作を説明するデータの流れを示すブロック図である。図7を参照して、EXTENDED2プロトコルを使ったユーザ側認証用データ生成装置201の動作を説明する。
【0052】
まず、乱数発生器231によりランダムに2つの乱数aと乱数bを発生する。暗号処理演算器232は、乱数発生器231において発生させた乱数aと乱数bから、公開値g mod pと公開値B=g mod pをそれぞれ計算する。マスク演算器233では、ユーザUが入力したパスワードpwと、暗号処理演算器232から入力された公開値gから、データAを、A=g・F(U,pw) mod pにより計算して出力する。通信処理部202は、データAと公開値Bをサーバの認証装置300へ送信する。
【0053】
サーバの認証装置300からは、通信処理部202を介して認証用データのX,A,Y,{C1≦j≦n,Vを受信する。復号鍵生成器235は、乱数発生器231から出力される乱数aと受信した認証用データのX,Aを入力として、復号鍵Kを、K=A/X mod pにより計算して出力する。復号器236は、復号鍵生成器235から生成された復号鍵Kと、受信したi番目のC(つまり、i=j)から、マスタ鍵MSを、MS=DH1(Ki||param||S)(C)により計算する。
【0054】
また、暗号処理演算器234は、乱数発生器231から出力される乱数bと、受信した認証用データのX,Yを入力として、DH(Diffie−Hellman)鍵の(X mod p)と(Y mod p)とをそれぞれに計算して出力する。セッション固有化器237は、マスク演算器233から入力されたデータAと、暗号処理演算器232から入力された公開値B,暗号処理演算器234から入力された(X,Y)と、受信した認証用データのX,A,Y,{C1≦j≦nからなるSession Identifier=(“EXTENDED2”||U||S||A||A||B||X||Y||X||Y||{C1≦j≦n)と、復号器236から生成されたマスタ鍵MSを出力する。ここでの“EXTENDED2”はEXTENDED2プロトコルの名前を示している。
【0055】
(4)CE1プロトコルの場合、
図8は、ユーザ側認証用データ生成装置のCE(Communication Efficient)1プロトコルに基づく処理動作を説明するデータの流れを示すブロック図である。図8を参照して、CE1プロトコルを使ったユーザ側認証用データ生成装置の動作を説明する。ここで、一回だけCE1プロトコルの実行前は、前述したユーザ側認証用データ生成装置201のBASICプロトコル(図5)を行う。その後、ユーザ側認証用データ生成装置201にあるメモリ248に保存されているデータ(つまり、XとC)は固定されて使われるが、システムのセキュリティポリシーに従って周期的に前述したユーザ側認証用データ生成装置201のBASICプロトコル(図5)を行う。
【0056】
まず、乱数発生器241によりランダムに2つの乱数aと乱数bを発生する。暗号処理演算器242は、乱数発生器241において発生させた乱数aと乱数bから、公開値g mod pと公開値B=g mod pをそれぞれ計算する。マスク演算器243では、ユーザUが入力したパスワードpwと、暗号処理演算器242から入力された公開値gから、データAを、A=g・F(U,pw) mod pにより計算して出力する。通信処理部202は、データAと公開値Bをサーバの認証装置300へ送信する。
【0057】
サーバの認証装置300からは、通信処理部202を介して認証用データのA,Vを受信する。復号鍵生成器245は、乱数発生器241から出力される乱数aと、メモリ248から読み出したXと、受信した認証用データのAを入力として、復号鍵Kを、K=A/X mod pにより計算して出力する。復号器246は、復号鍵生成器245から生成された復号鍵Kと、メモリ248から読み出したCから、マスタ鍵MSを、MS=DH1(Ki||param||S)(C)により計算する。
【0058】
また、暗号処理演算器244は、乱数発生器241から出力される乱数bと、メモリ248から読み出したXを入力として、DH(Diffie−Hellman)鍵(X mod p)を計算して出力する。セッション固有化器247は、マスタ演算器243から入力されたデータAと、暗号処理演算器242から入力された公開値B,暗号処理演算器244から入力されたXと、メモリ248から読み出したXと、受信した認証用データのAからなるSession Identifier=(“CE1”||U||S||A||A||B||X||X)と、復号器236から生成されたマスタ鍵MSを出力する。ここでの“CE1”はCE1プロトコルの名前を示している。
【0059】
(5)CE2プロトコルの場合、
図9は、ユーザ側認証用データ生成装置のCE2プロトコルに基づく処理動作を説明するデータの流れを示すブロック図である。次に、図9を参照して、CE2プロトコルを使ったユーザ側認証用データ生成装置201の動作を説明する。ここで、一回だけCE2プロトコルの実行前は、前述したユーザ側認証用データ生成装置201のBASICプロトコル(図5)を行う。その後、ユーザ側認証用データ生成装置201にあるメモリ258に保存されたデータ(つまり、XとC)は固定されて使われるが、システムのセキュリティポリシーに従って周期的に前述したユーザ側認証用データ生成装置のBASICプロトコル(図5)を行う。
【0060】
まず、乱数発生器251によりランダムに2つの乱数aと乱数bを発生する。暗号処理演算器252は、乱数発生器251において発生させた乱数aと乱数bから、公開値g mod pと公開値B=g mod pを計算する。マスク演算器253は、ユーザUが入力したパスワードpwと、暗号処理演算器252から入力された公開値gとから、データAを、A=g・F(U,pw) mod pにより計算して出力する。通信処理部202は、データAと公開値Bをサーバの認証装置300へ送信する。
【0061】
サーバの認証装置300からは、通信処理部202を介して認証用データのA,Y,Vを受信する。復号鍵生成器255は、乱数発生器251から出力される乱数aと、メモリ258から読み出したXと、受信した認証用データのAを入力として、復号鍵Kを、K=A/X mod pにより計算して出力する。復号器256は、復号鍵生成器255から生成された復号鍵Kと、メモリ258から読み出したCから、マスタ鍵MSを、MS=DH1(Ki||param||S)(C)により計算する。
【0062】
また、暗号処理演算器254は、乱数発生器251から出力される乱数bと、メモリ258から読み出したXと、受信した認証用データのYを入力として、DH(Diffie−Hellman)鍵の(X mod p)と(Y mod p)を計算して出力する。セッション固有化器257は、マスタ演算器253から入力されたデータAと、暗号処理演算器252から入力された公開値B,暗号処理演算器254から入力された(X,Y)と、メモリ258から読み出したXと、受信した認証用データのA,YからなるSession Identifier=(“CE2”||U||S||A||A||B||X||Y||X||Y)と、復号器256から生成されたマスタ鍵MSを出力する。ここでの“CE2”はCE2プロトコルの名前を示している。
【0063】
(6)CE3プロトコルの場合、
図10は、ユーザ側認証用データ生成装置のCE3プロトコルに基づく処理動作を説明するデータの流れを示すブロック図である。次に、図10を参照して、CE3プロトコルを使ったユーザ側認証用データ生成装置201の動作を説明する。ここで、一回だけCE3プロトコルの実行前は、前述したユーザ側認証用データ生成装置のBASICプロトコル(図5)を行う。その後、ユーザ側認証用データ生成装置201にあるメモリ265に保存されたデータ(つまり、XとMS)は固定されて使われるが、システムのセキュリティポリシーに従って周期的に前述したユーザ側認証用データ生成装置のBASICプロトコルを行う。
【0064】
乱数発生器261によりランダムに乱数bを発生する。暗号処理演算器262は、乱数発生器261において発生させた乱数bから、公開値B=g mod pを計算する。通信処理部202は暗号処理演算器262から生成された公開値Bと、メモリ265から読み出したindex=H(X)を、通信処理部202を介してサーバの認証装置300へ送信する。
【0065】
サーバの認証装置300からは、通信処理部202を介して認証子のVを受信する。暗号処理演算器263は、乱数発生器261から出力される乱数bと、メモリ265から読み出したXを入力として、DH(Diffie−Hellman)鍵(X mod p)を計算して出力する。セッション固有化器264は、暗号処理演算器262から入力されたB,暗号処理演算器263から入力されたXと、メモリ265から読み出したXからなるSession Identifier=(“CE3”||U||S||B||X||X)と、メモリ265から読み出したマスタ鍵MSを出力する。ここでの“CE3”はCE3プロトコルの名前を示している。
【0066】
(7)CE4プロトコルの場合、
図11は、ユーザ側認証用データ生成装置のCE4プロトコルに基づく処理動作を説明するデータの流れを示すブロック図である。次に、図11を参照して、CE4プロトコルを使ったユーザ側認証用データ生成装置201の動作を説明する。ここで、一回だけCE4プロトコルの実行前は、前述したユーザ側認証用データ生成装置のBASICプロトコル(図5)を行う。その後、ユーザ側認証用データ生成装置201にあるメモリ275に保存されたデータ(つまり、XとMS)は固定されて使われるが、システムのセキュリティポリシーに従って周期的に前述したユーザ側認証用データ生成装置のBASICプロトコルを行う。
【0067】
まず、乱数発生器271によりランダムに乱数bを発生する。暗号処理演算器272は、乱数発生器において発生させた乱数bから、公開値B=g mod pを計算する。通信処理部202は、暗号処理演算器272から生成された公開値Bと、メモリ275から読み出したindex=H(X)をサーバの認証装置300へ送信する。
【0068】
サーバの認証装置300からは、通信処理部202を介して認証用データのY,Vを受信する。暗号処理演算器273は、乱数発生器271から出力される乱数bと、メモリ275から読み出したXと、受信したYを入力として、DH(Diffie−Hellman)鍵の(X mod p)と(Y mod p)を計算して出力する。セッション固有化器274は、暗号処理演算器272から入力された公開値B,暗号処理演算器273から入力された(X,Y)と、メモリ275から読み出したXと、受信したYからなるSession Identifier=(“CE4”||U||S||B||X||Y||X||Y)とメモリから読み出したマスタ鍵MSを出力する。ここでの“CE4”はCE4プロトコルの名前を示している。
【0069】
<ユーザ側認証結果判定及びセッション鍵生成装置の動作>
図12は、ユーザ側認証結果判定及びセッション鍵生成装置203の処理の動作を説明するデータの流れを示すブロック図である。図12を参照して、ユーザ側認証結果判定及びセッション鍵生成装置203の動作を説明する。ユーザ側認証結果判定及びセッション鍵生成装置203は、前述したBASIC,EXTENDED1,EXTENDED2,CE1,CE2,CE3,CE4プロトコルの場合に関わらず、次のように動作する。
【0070】
認証結果判断部51は、ユーザ側認証用データ生成装置201からのSession Identifierとマスタ鍵MSを入力として、H(Session Identifier‖MS)を計算して、これを通信処理部202により、サーバの認証装置300から受信したVと比較する。ここで、Hの代わりにMAC(Message Authentication Code)を使ってもよい。認証結果判断部51において、VとH(Session Identifier‖MS)が一致しない場合、認証結果判断部51は、エラー発生器52に対して、一致しないことを通知する。これを受けて、エラー発生器52はエラーを発生して処理を中断する。
【0071】
一方、認証結果判断部51において、VとH(Session Identifier‖MS)が一致した場合は、サーバが正当な装置として認証する。認証子生成器53は、ユーザ側認証用データ生成装置201からのSession Identifierとマスタ鍵MSを入力として、V=H(Session Identifier‖MS)によりVを計算して、このVを通信処理部202によりサーバの認証装置300へ送信する。ここで、Hの代わりにMAC(Message Authentication Code)を使ってもよい。
【0072】
そして、セッション鍵生成器54は、SK=H(Session Identifier‖MS)によりセッション鍵SKを生成して出力する。ここで、必要とするセッション鍵の長さに応じてHの代わりにRRF(Pseudo−Random Function)を使ってもよい。
【0073】
前述したように、サーバの認証装置300は、サーバ側認証用データ生成装置301、通信処理部302,およびサーバ側認証結果判定及びセッション鍵生成装置303で構成されており、サーバ側認証用データ生成装置301は、ユーザ側認証用データ生成装置201に対応して、それぞれ、BASIC,EXTENDED1,EXTENDED2,CE1,CE2,CE3,CE4プロトコルなどで構成される。
【0074】
<サーバの認証装置の動作>
次に、サーバ側認証用データ生成装置301の動作を、BASIC,EXTENDED1,EXTENDED2,CE1,CE2,CE3,CE4プロトコルについて、それぞれ動作について説明する。
【0075】
<サーバ側認証用データ生成装置の動作>
(1)BASICプロトコルの場合、
図13は、サーバ側認証用データ生成装置のBASICプロトコルに基づく処理動作を説明するデータの流れを示すブロック図である。図13を参照して、BASICプロトコルを使ったサーバ側認証用データ生成装置301の動作を説明する。ここで、毎回BASICプロトコルの実行前は、前述したサーバ側認証用データ生成装置301の初期化処理(図4)を行う。
【0076】
まず、サーバ側認証用データ生成装置301に備えたメモリ311から記憶された乱数xを読み出す。ここでの乱数xは一回使い捨て用の乱数である。暗号処理演算器312では、メモリ311から読み出したxと、通信処理部302により受信したデータAを入力として、A mod pを計算して出力する。セッション固有化器313は、暗号処理演算器312から入力されたAと、受信したデータAとメモリ311から読み出したX,{C1≦j≦nからなるSession Identifier=(“BASIC”||U||S||A||A||X||{C1≦j≦n)を出力する。ここでの“BASIC”はBASICプロトコルの名前を示している。復号器314は、メモリ311から読み出した復号鍵Kと、暗号文Cからマスタ鍵MSを、MS=DH1(Kj||param||S)(C)により計算する。
【0077】
そして、認証子生成器315が、セッション固有化器313からのSession Identifierと、復号器314から生成されたマスタ鍵MSを入力として、V=H(Session Identifier‖MS)によりVを計算して、このVとX,A,{C1≦j≦nを、認証用データとして、通信処理部302によりユーザの端末装置200へ送信する。ここで、Hの代わりにMAC(Message Authentication Code)を使ってもよい。また、認証子生成器315は、セッション固有化器315からのSession Identifierと復号器314から生成されたマスタ鍵MSを出力する。
【0078】
(2)EXTENDED1プロトコルの場合、
図14は、サーバ側認証用データ生成装置のEXTENDED1プロトコルに基づく処理動作を説明するデータの流れを示すブロック図である。次に、図14を参照して、EXTENDED1プロトコルを使ったサーバ側認証用データ生成装置301の動作を説明する。ここで、一回だけEXTENDED1プロトコルの実行前は、前述したサーバ側認証用データ生成装置301の初期化処理(図4)を行う。その後、サーバ側認証用データ生成装置301にあるメモリ321に保存されたデータは固定されて使われるが、システムのセキュリティポリシーに従って周期的に前述したサーバ側認証用データ生成装置301の更新化処理(図4)を行う。
【0079】
まず、サーバ側認証用データ生成装置301に備えたメモリ321から記憶された乱数xを読み出す。ここでの乱数xは固定された乱数であり、周期的に更新化される。暗号処理演算器322では、メモリ321から読み出したxと、通信処理部302により受信したデータAと公開値Bを入力として、A mod pとB mod pを計算して出力する。セッション固有化器323は、暗号処理演算器322から入力された(A,B)と受信したデータA,公開値Bと、メモリ321から読み出したX,{C1≦j≦nからなるSession Identifier=(“EXTENDED1”||U||S||A||A||B||B||X||{C1≦j≦n)を出力する。ここでの“EXTENDED1”はEXTENDED1プロトコルの名前を示している。復号器324は、メモリ321から読み出した復号鍵Kと暗号文Cから、マスタ鍵MSを、MS=DH1(Kj||param||S)(C)により計算する。
【0080】
そして、認証子生成器325が、セッション固有化器323からのSession Identifierと、復号器324から生成されたマスタ鍵MSを入力として、V=H(Session Identifier‖MS)により、Vを計算して、このVと、X,A,{C1≦j≦nを、認証用データとして、通信処理部302によりユーザの端末装置200へ送信する。ここで、Hの代わりにMAC(Message Authentication Code)を使ってもよい。また、認証子生成器325は、セッション固有化器323からのSession Identifierと、復号器324から生成されたマスタ鍵MSを出力する。
【0081】
(3)EXTENDED2プロトコルの場合、
図15は、サーバ側認証用データ生成装置のEXTENDED2プロトコルに基づく処理動作を説明するデータの流れを示すブロック図である。次に、図15を参照して、EXTENDED2プロトコルを使ったサーバ側認証用データ生成装置301の動作を説明する。ここで、一回だけEXTENDED2プロトコルの実行前は、前述したサーバ側認証用データ生成装置301の初期化処理(図4)を行う。その後、サーバ側認証用データ生成装置301にあるメモリ333に保存されたデータは固定されて使われるが、システムのセキュリティポリシーに従って、周期的に前述したサーバ側認証用データ生成装置301の更新化処理(図4)を行う。
【0082】
まず、乱数発生器331によりランダムに乱数yを発生する。サーバ側認証用データ生成装置301に備えたメモリ333から記憶された乱数xを読み出す。ここでの乱数xは固定された乱数であり、周期的に更新化される。暗号処理演算器332は、乱数発生器331において発生させた乱数yと、メモリ333から読み出した乱数xと、通信処理部302により受信したデータAと、公開値Bを入力として、Y=g mod p,A mod p,B mod p,B mod pを計算して出力する。セッション固有化器335は、暗号処理演算器332から入力された(Y,A,B,B)と、受信したデータA,公開値Bと、メモリ333から読み出した(X,{C1≦j≦n)からなるSession Identifier=(“EXTENDED2”||U||S||A||A||B||B||B||X||Y||{C1≦j≦n)を出力する。ここでの“EXTENDED2”はEXTENDED2プロトコルの名前を示している。復号器334は、メモリ333から読み出した復号鍵Kと暗号文Cから、マスタ鍵MSを、MS=DH1(Kj||param||S)(C)により計算する。
【0083】
そして、認証子生成器336が、セッション固有化器335からのSession Identifierと、復号器334から生成されたマスタ鍵MSを入力として、V=H(Session Identifier‖MS)によりVを計算して、このVと、X,A,Y,{C1≦j≦nを、認証用データとして通信処理部302によりユーザの端末装置200へ送信する。ここで、Hの代わりにMAC(Message Authentication Code)を使ってもよい。また、認証子生成器336は、セッション固有化器335からのSession Identifierと、復号器334から生成されたマスタ鍵MSを出力する。
【0084】
(4)CE1プロトコルの場合、
図16は、サーバ側認証用データ生成装置のCE(Communication Efficient)1プロトコルに基づく処理動作を説明するデータの流れを示すブロック図である。次に、図16を参照して、CE1プロトコルを使ったサーバ側認証用データ生成装置301の動作を説明する。ここで、一回だけCE1プロトコルの実行前は、前述したサーバ側認証用データ生成装置301の初期化処理(図4)を行う。その後、サーバ側認証用データ生成装置301にあるメモリ341に保存されたデータは固定されて使われるが、システムのセキュリティポリシーに従って周期的に前述したサーバ側認証用データ生成装置301の更新化処理(図4)を行う。
【0085】
まず、サーバ側認証用データ生成装置301に備えたメモリ341から記憶された乱数xを読み出す。ここでの乱数xは固定された乱数であり、周期的に更新化される。暗号処理演算器342は、メモリ341から読み出したxと、通信処理部302により受信したデータAと公開値Bを入力として、A mod pとB mod pを計算して出力する。セッション固有化器343は、暗号処理演算器342から入力された(A,B)と、受信した(A,B)と、メモリ341から読み出したXからなるSession Identifier=(“CE1”||U||S||A||A||B||B||X)を出力する。ここでの“CE1”はCE1プロトコルの名前を示している。復号器344は、メモリ341から読み出した復号鍵Kと、暗号文Cからマスタ鍵MSを、MS=DH1(Kj||param||S)(C)により計算する。
【0086】
そして、認証子生成器345は、セッション固有化器からのSession Identifierと、復号器344から生成されたマスタ鍵MSを入力として、V=H(Session Identifier‖MS)によりVを計算して、このVとAを、認証用データとして通信処理部302によりユーザの端末装置200へ送信する。ここで、Hの代わりにMAC(Message Authentication Code)を使ってもよい。また、認証子生成器345は、セッション固有化器343からのSession Identifierと、復号器344から生成されたマスタ鍵MSを出力する。
【0087】
(5)CE2プロトコルの場合、
図17は、サーバ側認証用データ生成装置のCE2プロトコルに基づく処理動作を説明するデータの流れを示すブロック図である。図17を参照して、CE2プロトコルを使ったサーバ側認証用データ生成装置の動作を説明する。ここで、一回だけCE2プロトコルの実行前は、前述したサーバ側認証用データ生成装置301の初期化処理(図4)を行う。その後、サーバ側認証用データ生成装置301にあるメモリ353に保存されたデータは固定されて使われるが、システムのセキュリティポリシーに従って周期的に前述したサーバ側認証用データ生成装置301の更新化処理(図4)を行う。
【0088】
まず、乱数発生器351によりランダムに乱数yを発生する。サーバ側認証用データ生成装置301に備えたメモリ353から記憶された乱数xを読み出す。ここでの乱数xは固定された乱数であり、周期的に更新化される。暗号処理演算器352は、乱数発生器351において発生させた乱数yと、メモリ353から読み出した乱数xと、通信処理部302により受信したデータAと、公開値Bを入力として、Y=g mod p,A mod p,B mod p,B mod pを計算して出力する。セッション固有化器355は、暗号処理演算器352から入力された(Y,A,B,B)と受信した(A,B)と、メモリ353から読み出したXからなるSession Identifier=(“CE2”||U||S||A||A||B||B||B||X||Y)を出力する。ここでの“CE2”はCE2プロトコルの名前を示している。復号器354は、メモリ353から読み出した復号鍵Kと暗号文Cから、マスタ鍵MSを、MS=DH1(Kj||param||S)(C)により計算する。
【0089】
そして、認証子生成器356は、セッション固有化器355からのSession Identifierと、復号器354から生成されたマスタ鍵MSを入力として、V=H(Session Identifier‖MS)によりVを計算して、このVとA,Yを、認証用データとして通信処理部302によりユーザの端末装置200へ送信する。ここで、Hの代わりにMAC(Message Authentication Code)を使ってもよい。また、認証子生成器356は、セッション固有化器355からのSession Identifierと、復号器354から生成されたマスタ鍵MSを出力する。
【0090】
(6)CE3プロトコルの場合、
図18は、サーバ側認証用データ生成装置のCE3プロトコルに基づく処理動作を説明するデータの流れを示すブロック図である。図18を参照して、CE3プロトコルを使ったサーバ側認証用データ生成装置301の動作を説明する。ここで、一回だけCE3プロトコルの実行前は、前述したサーバ側認証用データ生成装置301の初期化処理(図4)を行う。その後、サーバ側認証用データ生成装置301にあるメモリ361に保存されたデータは固定されて使われるが、システムのセキュリティポリシーに従って周期的に前述したサーバ側認証用データ生成装置301の更新化処理(図4)を行う。
【0091】
まず、サーバ側認証用データ生成装置301に備えたメモリ361から記憶された乱数xを読み出す。ここでの乱数xは固定された乱数であり、周期的に更新化される。暗号処理演算器362は、メモリ361から読み出した乱数xと、通信処理部302により受信した公開値Bを入力として、B mod pを計算して出力する。セッション固有化器363は、暗号処理演算器362から入力されたBと、受信した公開値Bと、メモリ361から読み出したXからなるSession Identifier=(“CE3”||U||S||B||B||X)を出力する。ここでの“CE3”はCE3プロトコルの名前を示している。復号器364は、メモリ361から読み出した復号鍵Kと、暗号文Cからマスタ鍵MSを、MS=DH1(Kj||param||S)(C)により計算する。
【0092】
そして、認証子生成器365が、セッション固有化器363からのSession Identifierと、復号器364から生成されたマスタ鍵MSを入力として、V=H(Session Identifier‖MS)によりVを計算して、このVを通信処理部302によりユーザの端末装置200へ送信する。ここで、Hの代わりにMAC(Message Authentication Code)を使ってもよい。また、認証子生成器365は、セッション固有化器363からのSession Identifierと、復号器364から生成されたマスタ鍵MSを出力する。
【0093】
(7)CE4プロトコルの場合、
図19は、サーバ側認証用データ生成装置のCE4プロトコルに基づく処理動作を説明するデータの流れを示すブロック図である。図19を参照して、CE4プロトコルを使ったサーバ側認証用データ生成装置301の動作を説明する。ここで、一回だけCE4プロトコルの実行前は、前述したサーバ側認証用データ生成装置301の初期化処理(図4)を行う。その後、サーバ側認証用データ生成装置301にあるメモリ373に保存されたデータは固定されて使われるが、システムのセキュリティポリシーに従って周期的に前述したサーバ側認証用データ生成装置301の更新化処理(図4)を行う。
【0094】
まず、乱数発生器371によりランダムに乱数yを発生する。サーバ側認証用データ生成装置301に備えたメモリ373から記憶された乱数xを読み出す。ここでの乱数xは固定された乱数であり、周期的に更新化される。暗号処理演算器372は、乱数発生器371において発生させた乱数yと、メモリ373から読み出した乱数xと、通信処理部302により受信した公開値Bを入力として、Y=g mod p,B mod p,B mod pを計算して出力する。セッション固有化器375は、暗号処理演算器372から入力された(Y,B,B)と、受信した公開値Bと、メモリ373から読み出したXからなるSession Identifier=(“CE4”||U||S||B||B||B||X||Y)を出力する。ここでの“CE4”はCE4プロトコルの名前を示している。復号器374は、メモリ373から読み出した復号鍵Kと、暗号文Cからマスタ鍵MSを、MS=DH1(Kj||param||S)(C)により計算する。
【0095】
そして、認証子生成器376は、セッション固有化器375からのSession Identifierと、復号器374から生成されたマスタ鍵MSを入力として、V=H(Session Identifier‖MS)によりVを計算して、このVとYを、認証用データとして通信処理部302によりユーザの端末装置200へ送信する。ここで、Hの代わりにMAC(Message Authentication Code)を使ってもよい。また、認証子生成器376は、セッション固有化器375からのSession Identifierと、復号器374から生成されたマスタ鍵MSを出力する。
【0096】
<サーバ側認証結果判定及びセッション鍵生成装置の動作>
図20は、サーバ側認証結果判定及びセッション鍵生成装置303の処理の動作を説明するデータの流れを示すブロック図である。図20を参照してサーバ側認証結果判定及びセッション鍵生成装置303の動作を説明する。サーバ側認証結果判定及びセッション鍵生成装置303は、前述したBASIC,EXTENDED1,EXTENDED2,CE1,CE2,CE3,CE4プロトコルの場合に関わらず、次のように動作する。
【0097】
認証結果判断部71は、サーバ側認証用データ生成装置301からのSession Identifierとマスタ鍵MSを入力として、H(Session Identifier‖MS)を計算して、これを通信処理部302によりユーザの端末装置200から受信したVと比較する。ここで、Hの代わりにMAC(Message Authentication Code)を使ってもよい。認証結果判断部71において、VとH(Session Identifier‖MS)が一致しない場合、認証結果判断部71は、エラー発生器72に対して、一致しないことを通知する。これを受けて、エラー発生器72はエラーを発生して処理を中断する。一方、認証結果判断部71において、VとH(Session Identifier‖MS)が一致した場合には、ユーザが正当な利用者として認証する。そして、セッション鍵生成器73は、SK=H(Session Identifier‖MS)によりセッション鍵SKを生成して出力する。ここで、必要とするセッション鍵の長さに応じて、Hの代わりにRRF(Pseudo−Random Function)を使ってもよい。
【0098】
次に、本発明に係る匿名認証システムを応用して、匿名通信路を構成する場合の実施例について説明する。この実施例のネットワークシステムでは、具体的には、通信アドレス(IPアドレスなど)の匿名割り当てを行うことで、そのアドレスの乱用防止ができる特徴がある。
【0099】
図21は、本発明の実施例に係る匿名認証システムを用いて構成する匿名サービス利用ネットワークのシステム構成を説明する図である。次に、図21を参照して、前述した匿名認証システムを応用して、通信アドレス(IPアドレスなど)の匿名割り当てを行い、そのアドレスの乱用を防止する構成について説明する。
【0100】
このシステム構成は、サーバの認証装置300と、匿名サービス利用ネットワーク500と、匿名サービス提供サーバ400から構成される。ここで、一つのサーバの認証装置300は、複数の匿名サービス利用ネットワーク500と、複数の匿名サービス提供サーバ400とから構成されてもよく、また、匿名サービス提供サーバ400が、匿名サービス利用ネットワーク500の内に置かれてもよい。また、一つのサーバの認証装置300は別のサーバの認証装置300と匿名認証のローミングを行ってもよい。
【0101】
匿名サービス利用ネットワーク500は、ユーザの端末装置200、通信アドレス割り当て装置501、ネットワークフィルタリング装置502から構成される。ただし、ユーザの端末装置200以外については、各装置が他の装置を含めてもよい。例えば、通信アドレス割り当て装置501が、ネットワークフィルタリング装置502を含む構成、サーバの認証装置300が通信アドレス割り当て装置501を含む構成としてシステムが構成されていてもよい。
【0102】
匿名サービス利用ネットワーク500における通信アドレス割り当て装置501は、サーバの認証装置300と、ユーザの端末装置200とが、匿名認証を行った際に共有した鍵をサーバの認証装置300から受け取り、それとユーザの端末装置200に割り当てたアドレスを、ネットワークフィルタリング装置502に通知する。なお、サーバの認証装置300と通信アドレス割り当て装置501との間、通信アドレス割り当て装置501とネットワークフィルタリング装置502との間は安全な通信路で結ばれているとする。
【0103】
ネットワークフィルタリング装置502は、ユーザの端末装置200との間でパケットの認証を行い、認証されていないパケットをLAN外へ送信することを防止する。また、匿名認証により割り当てられたアドレスからのパケットについては、匿名サービス提供サーバ400宛のパケットのみを通過させそれ以外をブロックする。これにより、匿名アドレスが(DoS攻撃やスパムメールの送信など)不適切な用途に利用されることを防止する。(なお、匿名サービス提供サーバのアドレスは予めネットワークフィルタリング装置に登録するかサーバの認証装置から通知されるとする。)
【0104】
匿名サービス提供サーバ400は、サーバの認証装置300がユーザを匿名認証した際に共有した鍵とそれを特定するためのIDをサーバの認証装置から通知してもらい、そのIDと鍵を知っているユーザからの通信のみを受け付ける。なお、匿名サービス提供サーバ400とサーバの認証装置300との間は安全な通信路で結ばれているとする。
【0105】
次に、本発明に係る匿名認証システムを応用して、サーバに置いてあるデータを検索者に秘匿し、かつ検索者の検索内容をサーバに秘匿し、かつ検索結果がヒットした場合にはそのことをサーバと検索者が知ることのできる匿名マッチングシステムを構成する場合の実施例について説明する。
【0106】
<匿名マッチングシステム>
図22は、本発明の実施例に係る匿名認証システムを用いて構成する匿名マッチングシステムのシステム構成を示す図である。次に、図22参照して、匿名認証システムを応用した匿名マッチングシステムについて説明する。
【0107】
匿名マッチングシステム600は、条件検索者の匿名マッチングシステム601と条件提供者の匿名マッチングシステム602から構成され、条件検索者と条件提供者は自分の希望する検索語や条件式を各自の匿名マッチングシステムに入力する。条件検索者の匿名マッチングシステム601は条件提供者の匿名マッチングシステム602と互いに通信(匿名通信)を行い、お互いの条件が合意できるか否かを出力する。
【0108】
なお、このシステム構成の特徴は、お互いの条件が合意できなかった場合に、通信相手の指定した条件を、それぞれの匿名マッチングシステム(601,602)が知りえないことにある。これによりお互いの条件を相手に秘匿した状態で、条件に合う相手を見つけることが可能となる。
【0109】
図23は、本発明の実施例に係る匿名認証システムを用いて構成する匿名マッチングシステムのシステム構成および動作を詳細に説明する図である。図23に示すように、匿名マッチングシステム600のシステム構成は、自己の希望する検索語または条件式の入力を受け付ける検索語・条件式処理装置611およびユーザ側認証用データ生成装置201から構成される条件検索者の匿名マッチングシステム601と、自己の希望する検索語または条件式の入力を受け付ける検索語・条件式処理装置612およびサーバ側認証用データ生成装置301から構成される条件提供者の匿名マッチングシステム602とが備えられたシステム構成とされる。
【0110】
条件検索者の匿名マッチングシステム601と条件提供者の匿名マッチングシステム602とは、条件検索者の匿名マッチングシステム601の検索語・条件式処理装置611からの条件を、ユーザ側認証用データ生成装置201が受け付けて、条件提供者の匿名マッチングシステム602の検索語・条件式処理装置612からの提示条件を、サーバ側認証用データ生成装置301が受け付けて、ユーザ側認証用データ生成装置201とサーバ側認証用データ生成装置301との間で匿名通信を行い、マッチングの処理を行う。
【0111】
つまり、条件提供者の匿名マッチングシステム602は、検索語・条件式入力632により、検索語および条件式を受け入れ、それを加工し、その加工データを秘密情報として各サーバ側認証用データ生成装置301に設定する。サーバ側認証用データ生成装置301は、ユーザ側認証用データ生成装置201からの接続に応答し、その出力を検索語・条件式処理装置612に伝える。検索語・条件式処理装置612は各サーバ側認証用データ生成装置301の出力を集め、条件検索者の匿名マッチングシステム601の検索語・条件式処理装置611と通信し、マッチング結果622を出力する。
【0112】
条件検索者の匿名マッチングシステム601は、検索語・条件式入力631により、検索語および条件式を受け入れ、それを加工し、その加工データを秘密情報として各ユーザ側認証用データ生成装置201に設定する。ユーザ側認証用データ生成装置201は、サーバ側認証用データ生成装置301に接続し、その出力を検索語・条件式処理装置611に伝える。検索語・条件式処理装置611は各ユーザ側認証用データ生成装置201の出力を集め、条件提供者の匿名マッチングシステム602の検索語・条件式処理装置612と通信し、マッチング結果621を出力する。
【0113】
このように、本発明に係る匿名認証システムを応用した匿名マッチングシステムによれば、サーバに置いてあるデータを検索者に秘匿し、かつ検索者の検索内容をサーバに秘匿し、かつ検索結果がヒットした場合にはそのことをサーバと検索者が知ることのできる匿名マッチングシステムを構成することができる。
【産業上の利用可能性】
【0114】
個人情報保護法の施行やIT化および現実社会・ネット上での監視が強化されるなか、個人情報保護や匿名性を確保できるアプリケーションの重要性は今後増すことが予想される。本発明による匿名認証システムは、さまざまなアプリケーションにおいて匿名性を確保する際の基盤技術として利用できる。例えば、匿名でのカウンセリング(医療相談、なやみ相談、いじめ相談)、内部告発、内容を秘匿した状態での検索やマッチング(特許あるいはアイデアの検索、企業間のマッチング、結婚相手の検索)など。また、通常の匿名でない認証用の情報をサーバに登録しておけば特別な登録手続き不要で匿名サービスを利用できるため、例えば、ISP(Internet Service Provider)などにおいて顧客獲得のための付加的なサービスとしての活用も期待できる。
【図面の簡単な説明】
【0115】
【図1】本発明に係る匿名認証システムの概略のシステム構成を説明する図である。
【図2】本発明に係る匿名認証システムにおけるユーザの端末装置の概略のシステム構成を説明するブロック図である。
【図3】本発明に係る匿名認証システムにおけるサーバの認証装置の概略のシステム構成を説明するブロック図である。
【図4】サーバ側認証用データ生成装置の初期化及び更新化の処理を説明するデータの流れを示すブロック図である。
【図5】ユーザ側認証用データ生成装置のBASICプロトコルに基づく処理動作を説明するデータの流れを示すブロック図である。
【図6】ユーザ側認証用データ生成装置のEXTENDED1プロトコルに基づく処理動作を説明するデータの流れを示すブロック図である。
【図7】ユーザ側認証用データ生成装置のEXTENDED2プロトコルに基づく処理動作を説明するデータの流れを示すブロック図である。
【図8】ユーザ側認証用データ生成装置のCE1プロトコルに基づく処理動作を説明するデータの流れを示すブロック図である。
【図9】ユーザ側認証用データ生成装置のCE2プロトコルに基づく処理動作を説明するデータの流れを示すブロック図である。
【図10】ユーザ側認証用データ生成装置のCE3プロトコルに基づく処理動作を説明するデータの流れを示すブロック図である。
【図11】ユーザ側認証用データ生成装置のCE4プロトコルに基づく処理動作を説明するデータの流れを示すブロック図である。
【図12】ユーザ側認証結果判定及びセッション鍵生成装置203の処理の動作を説明するデータの流れを示すブロック図である。
【図13】サーバ側認証用データ生成装置のBASICプロトコルに基づく処理動作を説明するデータの流れを示すブロック図である。
【図14】サーバ側認証用データ生成装置のEXTENDED1プロトコルに基づく処理動作を説明するデータの流れを示すブロック図である。
【図15】サーバ側認証用データ生成装置のEXTENDED2プロトコルに基づく処理動作を説明するデータの流れを示すブロック図である。
【図16】サーバ側認証用データ生成装置のCE1プロトコルに基づく処理動作を説明するデータの流れを示すブロック図である。
【図17】サーバ側認証用データ生成装置のCE2プロトコルに基づく処理動作を説明するデータの流れを示すブロック図である。
【図18】サーバ側認証用データ生成装置のCE3プロトコルに基づく処理動作を説明するデータの流れを示すブロック図である。
【図19】サーバ側認証用データ生成装置のCE4プロトコルに基づく処理動作を説明するデータの流れを示すブロック図である。
【図20】サーバ側認証結果判定及びセッション鍵生成装置303の処理の動作を説明するデータの流れを示すブロック図である。
【図21】本発明の実施例に係る匿名認証システムを用いて構成する匿名サービス利用ネットワークのシステム構成を説明する図である。
【図22】本発明の実施例に係る匿名認証システムを用いて構成する匿名マッチングシステムのシステム構成を示す図である。
【図23】本発明の実施例に係る匿名認証システムを用いて構成する匿名マッチングシステムのシステム構成および動作を詳細に説明する図である。
【符号の説明】
【0116】
100 匿名認証システム
110 通信路
200 ユーザの端末装置
201 ユーザ側認証用データ生成装置
202 通信処理部
203 ユーザ側認証結果判定及びセッション鍵生成装置
300 サーバの認証装置
301 サーバ側認証用データ生成装置
302 通信処理部
303 サーバ側認証結果判定及びセッション鍵生成装置
400 匿名サービス提供サーバ
500 匿名サービス利用ネットワーク
501 通信アドレス割り当て装置
502 ネットワークフィルタリング装置
600 匿名マッチングシステム
601 条件検索者の匿名マッチングシステム
602 条件提供者の匿名マッチングシステム
611 検索語・条件式処理装置
612 検索語・条件式処理装置


【特許請求の範囲】
【請求項1】
利用者端末装置に設けられて、利用者からのパスワード入力を受け付け、ユーザ側の認証用データを生成する第1の認証データ生成装置と、
利用者端末装置に設けられて、前記第1認証データ生成装置により生成されたユーザ側の認証用データを認証サーバに送信するとともに、前記認証サーバからサーバ側の認証用データを受信する第1の通信処理部と、
利用者端末装置に設けられて、前記第1認証データ生成装置から出力される認証用データおよび認証サーバから受信した認証用データに基づいて、認証結果を判断し、認証子を生成すると共に、セッション鍵を生成する第1のセッション鍵生成装置と、
認証サーバに設けられて、ユーザ側の認証用データを受け付けて、認証サーバ側の認証用データを生成する第2の認証データ生成装置と、
認証サーバに設けられて、前記利用者端末装置からユーザ側の認証用データを受信すると共に、前記第2認証データ生成装置により生成されたサーバ側の認証用データを利用者端末装置に送信する第2の通信処理部と、
認証サーバに設けられて、前記第2認証データ生成装置から出力される認証用データおよび利用者端末装置から受信した認証用データに基づいて、認証結果を判断し、セッション鍵を生成する第2のセッション鍵生成装置と、
を備えることを特徴とする匿名認証システムであって、
利用者端末装置からユーザID及びパスワード入力があった場合に、認証サーバに設けられた第2の認証データ生成装置の初期化処理を行い、初期化処理データをメモリに格納し、以降の処理では前記メモリに格納したデータを用いる、
ことを特徴とする匿名認証システム。
【請求項2】
請求項1に記載の匿名認証システムを用いて構成する匿名サービス利用ネットワークであって、
利用者端末装置からのセッション鍵に基づいて利用者に対してサービスを提供する匿名サービス提供サーバと、
利用者端末装置からユーザの匿名認証を行った際に共有したセッション鍵を認証サーバから受け取り、前記匿名サービス提供サーバがサービスを提供するための通信路のアドレスを割り付ける通信アドレス割り当て装置と、
利用者端末装置と前記匿名サービス提供サーバとの間のパケットの認証を行い、認証されていないパケットをネットワーク外に送信することを防止するネットワークフィルタリング装置と、
を備えることを特徴とする匿名サービス利用ネットワーク。
【請求項3】
請求項2に記載の匿名サービス利用ネットワークにおいて、
前記匿名サービス提供サーバは、認証サーバによりユーザを匿名認証した際に共有したセッション鍵と、ユーザを特定するIDの通知を予め受けて、前記IDおよびセッション鍵に基づく通信のみを受け付ける
ことを特徴とする匿名サービス利用ネットワーク。
【請求項4】
請求項1に記載の匿名認証システムを用いて、サーバに置いてあるデータを検索者に秘匿し、かつ検索者の検索内容をサーバに秘匿し、かつ検索結果がヒットした場合にはそのことをサーバと検索者が知ることのできる匿名マッチングシステムであって、
自己の希望する検索語または条件式の入力を受け付ける検索語・条件式処理装置およびユーザ側認証用データ生成装置から構成される条件検索者の匿名マッチングシステムと、
自己の希望する検索語または条件式の入力を受け付ける検索語・条件式処理装置およびサーバ側認証用データ生成装置から構成される条件提供者の匿名マッチングシステムと、
を備え、
条件提供者の匿名マッチングシステムの検索語・条件式処理装置が、検索語および条件式を受け入れ、それを加工し、その加工データを秘密情報として各サーバ側認証用データ生成装置に設定し、
サーバ側認証用データ生成装置が、ユーザ側認証用データ生成装置からの接続に応答して、その出力を前記検索語・条件式処理装置に伝え、
条件提供者の匿名マッチングシステムの検索語・条件式処理装置が、各サーバ側認証用データ生成装置の出力を集め、条件検索者の匿名マッチングシステムの検索語・条件式処理装置と通信し、マッチング結果を出力すると共に、
条件検索者の匿名マッチングシステムの検索語・条件式処理装置が、検索語および条件式を受け入れ、それを加工し、その加工データを秘密情報として各ユーザ側認証用データ生成装置に設定し、
ユーザ側認証用データ生成装置はサーバ側認証用データ生成装置に接続し、その出力を検索語・条件式処理装置に伝え、
条件検索者の匿名マッチングシステムの検索語・条件式処理装置が、各ユーザ側認証用データ生成装置の出力を集め、条件提供者の匿名マッチングシステムの検索語・条件式処理装置と通信し、マッチング結果を出力する、
ことを特徴とする匿名マッチングシステム。


【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate


【公開番号】特開2008−176650(P2008−176650A)
【公開日】平成20年7月31日(2008.7.31)
【国際特許分類】
【出願番号】特願2007−10667(P2007−10667)
【出願日】平成19年1月19日(2007.1.19)
【新規性喪失の例外の表示】特許法第30条第1項適用申請有り 2006年7月21日 社団法人 電子情報通信学会発行の「電子情報通信学会技術研究報告」に発表
【出願人】(301021533)独立行政法人産業技術総合研究所 (6,529)
【Fターム(参考)】