<第1の実施形態>
図2及び図3は、本発明の第1の実施形態に係る通信端末装置(端末)の認証方法を説明するための概念図である。図2及び図3は、10個の端末がアドホックネットワーク(ネットワーク通信システム)を形成している例を示している。図2及び図3において、実線の丸で描かれている構成は、端末を示し、丸内に表示されている数値(‘001’〜‘010’)は、その端末の端末ID(識別子)情報を示している。また、図2及び図3において、端末間を繋ぐ線は、端末間の隣接関係(即ち、1ホップしか離れていない端末間の関係)を示している。さらに、図2及び図3において、両方向矢印を持つ線は、端末間の認証が成立している場合(即ち、信頼できる場合)を示し、X(クロス)印が備えられた線は、認証関係が不成立の場合(即ち、信頼できない場合)を示している。さらにまた、図2及び図3において、両方向矢印及びX印のいずれをも持たない直線は、認証を実行していない隣接関係(即ち、未検証)を示す。ここで、「ある端末に隣接する端末」とは、ある端末から1ホップしか離れていない他の端末を意味する。さらにまた、図2及び図3において、破線で囲われた構成RG1〜RG4は、信頼関係を共有するグループ(信頼グループ)を示す。なお、以下の説明においては、端末ID情報‘xxx’(x=0,1,…,9)を持つ端末を、端末‘xxx’とも表記する。
図2に示されるように、第1の実施形態においては、互いに隣接する端末は認証を行い、相互に認証が成立すると信頼グループを形成する。第1の実施形態において、信頼グループの形成は、各端末が認証プロトコルが開始してから終了するまでの間で、1度のみ(即ち、他の1個の端末との間でのみ)実行される。図2には、互いに認証が成立した4組の端末が示されており、これら4組の端末のそれぞれが信頼グループRG1〜RG4を構成している。
図3に示されるように、信頼グループ(例えば、信頼グループRG1)を形成している複数の端末(例えば、端末‘001’と端末‘002’)は、隣接する端末(例えば、端末‘001’に隣接する端末‘003’、及び、端末‘002’に隣接する端末‘005’)との認証情報を互いに共有し合う。信頼グループを形成している複数の端末(例えば、信頼グループRG1を形成している端末‘001’と端末‘002’)は、隣接する信頼グループ間、又は、信頼グループとこの信頼グループに隣接する端末間(例えば、信頼グループRG1と端末‘003’との間)で重複する未検証の隣接関係の認証は、信頼グループ内の1つの端末が実行し、この信頼グループ内の他の端末は、それぞれ異なる端末又は異なる信頼グループとの認証を実行する。言い換えれば、図3に示されるように、端末‘001’と端末‘002’で形成された信頼グループRG1については、端末‘001’と端末‘003’との間、及び、端末‘002’と端末‘003’との間に未検証の隣接関係がある。したがって、信頼グループRG1は、端末‘003’との間に、未検証の隣接関係を2つ持っている。そこで、端末‘002’と端末‘003’との間の認証は実行せずに、端末‘001’と端末‘003’との間の認証を実行し、端末‘001’と端末‘003’との間の検証結果に基づいて、端末‘002’と端末‘003’との間の認証の成立又は不成立を判断する。また、端末‘001’と端末‘003’との間の認証の実行と同時に、端末‘002’と端末‘005’との間の認証を実行する。
図4は、第1の実施形態に係る認証方法を実行する通信端末装置(端末)100の構成を示す機能ブロック図である。図4に示されるように、端末100は、隣接端末情報管理部101、グループ形成部102、自端末ID管理部103、グループID生成部104、グループID管理部105、グループ共有情報管理部106、認証実行相手管理部107、認証実行相手選定部108、認証部109、送信部110、及び受信部111を有している。
また、図5は、第1の実施形態に係る認証方法において、認証が開始されてから、各々の端末が隣接する端末すべてに関して認証情報を得て、認証が終了するまでの、途中段階を示す説明図である。図5は、16個の端末が4×4の格子状の隣接関係を持つようにアドホックネットワークを形成している例を示している。図5において、実線の丸で描かれている構成は、端末を示し、丸内に表示されている数値(‘001’〜‘016’)は、その端末の端末ID情報を示している。また、図5において、端末間を繋ぐ線は、端末間の隣接関係を示している。さらに、図5において、両方向矢印を持つ線は、端末間の認証が成立している場合(即ち、信頼できる場合)を示し、X(クロス)印が備えられた線は、認証関係が不成立の場合(即ち、信頼できない場合)を示している。さらにまた、図5において、両方向矢印及びX印のいずれをも持たない直線は、認証を実行していない隣接関係(即ち、未検証)を示す。さらにまた、図5において、破線で囲われた構成は、信頼関係を共有するグループ(信頼グループ)を示し、符号‘A’〜‘F’は信頼グループが共有する固有のグループID情報を示している。なお、以下の説明においては、グループID情報‘y’(yは、大文字のアルファベットA,B,C,…である。)を持つ信頼グループを、信頼グループ‘y’とも表記する。
図4において、隣接端末情報管理部101は、受信部111から与えられる隣接する端末の情報と、認証部109から与えられる認証相手端末の端末ID情報、及び、その端末又は信頼グループとの認証情報とを受け取り、隣接する端末に関する情報(「隣接端末情報」ともいう。)を記憶し、記憶した隣接端末情報をグループ形成部102、グループ共有情報管理部106、及び送信部110に与える。ここで、「隣接端末情報」には、隣接する端末の端末ID情報、隣接する端末が属する信頼グループのグループID情報、隣接する端末の認証情報(認証成立、認証不成立、未検証)が含まれる。例えば、図5における信頼グループ‘A’の端末‘001’と端末‘002’が、各々の隣接端末情報管理部101に記憶する隣接端末情報は、それぞれ以下の表1及び表2に示されるような内容になる。
隣接端末情報は、自端末が他の端末と信頼グループを形成するか否かを決定するために必要となる。また、隣接端末情報は、同じ信頼グループに属する端末が、隣接する端末に関する認証情報を得るために必要となる。また、隣接端末情報は、同じ信頼グループに属する端末が、グループ共有情報を生成するために必要となる。
グループ形成部102は、隣接端末情報管理部101から与えられる隣接端末情報に基づいて、隣接する端末と共に信頼グループを形成するか否かを決定する。グループ形成部102は、信頼グループを形成すると決定した場合には、信頼グループを形成する端末に固有の端末ID情報を、グループID生成部104に与える。第1の実施形態においては、信頼グループの形成は、隣接する端末との間における信頼関係の有無を検証するための認証プロトコルが開始してから終了するまでの間で1度のみ実行される。ある端末が隣接する端末と共に信頼グループを形成するか否かは、
(1a)ある端末と隣接する端末との間において相互に認証が成立している。
(1b)隣接する端末が既に信頼グループを形成していない。
という2つの条件(1a)及び(1b)を同時に満たすか否かに基づいて決定する。グループ形成部102は、信頼グループを形成する場合には、信頼グループを形成する端末の端末ID情報をグループID生成部104へ与える。
自端末ID管理部103は、端末100自身(自端末)を特定する固有の端末ID情報(自端末ID情報)を記憶している。自端末ID管理部103は、記憶している自端末ID情報を送信部110及びグループID生成部104へ与える。自端末ID情報は、送信部110から通信相手の端末に送信される。端末ID情報は、例えば、各端末に固有の情報であり、ハードウェアに固有の製造番号、ネットワークに接続するためのアドレス、電話番号、又は、それらの組み合わせ等から構成される。図5においては、各端末の端末ID情報‘001’〜‘016’は、各端末に固有の番号である。
グループID生成部104は、自端末ID管理部103から与えられる自端末ID情報と、グループ形成部102から与えられる信頼グループを形成する端末の端末ID情報又は受信部111から与えられる認証成立済みの認証相手端末からの情報とに基づいて、グループID情報を生成する。グループID生成部104は、生成したグループID情報をグループID管理部105に与える。グループID情報は、信頼グループを形成するすべての端末の端末ID情報に基づいて生成される。例えば、端末ID情報‘001’を持つ端末と端末ID情報‘002’を持つ端末とから形成される信頼グループの場合には、端末ID情報‘001’と‘002’を結合することによって、グループID情報‘001002’(又は、‘002001’)を生成する。グループID情報は、信頼グループに固有のID情報である。グループID情報の生成は、信頼グループを形成する端末の端末ID情報を入力とする何らかの関数の形で与えてもよい。ただし、グループID情報は、他の信頼グループのグループID情報と重複しないようにグループID情報を生成する必要がある。また、グループID情報は、同じ信頼グループに属する端末間で共通である必要がある。例えば、グループID情報の生成に際して、端末ID情報‘001’を持つ端末と端末ID情報‘002’を持つ端末から形成されるグループID情報は、値の大きい端末ID情報を先に、値の小さい端末ID情報を後に並べることによって‘002001’とする生成規則を採用してもよい。また、グループID情報の生成に際して、信頼グループを形成することを決定した端末からグループID情報を与えられてもよい。
グループID管理部105は、グループID生成部104から与えられたグループID情報を記憶しており、グループID情報を送信部110へ与える。グループID情報は、通信相手の端末が、自端末がどの信頼グループに属しているか、また、自端末が信頼グループを形成しているか否かを特定するために必要となる。グループID情報は、自端末が属する信頼グループの端末との間で共通のものであり、信頼グループに固有のID情報である。例えば、図5においては、‘A’から‘H’までがグループID情報であり、同じ信頼グループに属する各端末が共通に持つ情報である。
グループ共有情報管理部106は、隣接端末情報管理部101から与えられる自端末が隣接する端末に関する情報(「自端末の隣接端末情報」ともいう。)と、受信部111から与えられる同じ信頼グループに属する端末に隣接する端末に関する情報とに基づいて、信頼グループが隣接する端末に関する情報(「信頼グループの隣接端末情報」ともいう。)を管理及び記憶する。グループ共有情報管理部106は、信頼グループの隣接端末情報を認証実行相手管理部107に与える。「信頼グループの隣接端末情報」とは、同じ信頼グループに属するすべての端末が、自グループ以外に隣接する端末に関して保持する情報であり、端末ID情報、グループID情報、認証情報(認証成立、認証不成立、未検証)、自グループとの隣接数、隣接関係にある自グループの端末の端末ID情報を含む。例えば、図5に示される信頼グループ‘A’の場合には、信頼グループが隣接する端末に関する情報は、表3に示すようなものになる。表3に示される情報は、信頼グループ‘A’に属する端末‘001’と端末‘002’が保持する情報(表1及び表2に示される情報)を互いに共有し合い、整理した情報である。
自端末が信頼グループに属していない場合には、グループ共有情報管理部106で記憶している情報は、隣接端末情報管理部101で記憶している情報とほぼ同一となり、自グループとの隣接端末数が1であり、隣接関係にある自グループの端末の端末ID情報が自端末の端末ID情報となる。
認証実行相手管理部107は、グループ共有情報管理部106から与えられた、信頼グループの隣接端末情報に基づいて、信頼グループが隣接する未検証の端末又は信頼グループに対して自端末と同じ信頼グループ(自グループ)のどの端末が認証を担当するかを整理することにより、自端末が次に認証相手とする端末の候補リストを生成する。認証実行相手管理部107は、生成した次の認証相手の端末の候補リストを認証実行相手選定部108に与える。認証相手の端末の候補の選定は、信頼グループが隣接するすべての未検証の端末又は信頼グループについて、自グループに属する端末の認証相手の候補と、自端末の認証相手の候補とが同一にならないように行う。例えば、図5の信頼グループ‘A’の場合には、以下の表4のように、認証相手端末の候補が選定される。
例外として、自グループ内の複数の端末が、同一の端末又は同一の信頼グループを認証候補とする場合もある。自端末が信頼グループに属していない場合には、未検証の隣接する端末すべてが、次の認証相手の候補となる。認証を実行する端末の候補リストは、認証候補端末の端末ID情報及びグループID情報から構成される。例えば、図5に示す信頼グループ‘A’の場合で説明すると、信頼グループ‘A’に属する端末‘001’と端末‘002’は、表3に示すようなグループ共有情報から、信頼グループ‘E’、‘G’、‘F’と未検証であることがわかる。また、信頼グループ‘A’と信頼グループ‘E’との間では、未検証の隣接関係が、端末‘005’と端末‘001’、及び、端末‘006’と端末‘002’というように、2つ存在する。したがって、信頼グループ‘A’と信頼グループ‘E’との間では、隣接関係が重複している。このような場合には、先ず始めに、自グループとの隣接端末数が1である、信頼グループ‘G’と‘F’は隣接する自グループの端末‘002’が認証を担当することを決定する。この時点で、残る信頼グループ‘E’との認証は、自グループの端末‘001’と端末‘002’の両方が隣接するが、すでに認証を担当することが決まっている端末の数が、それぞれ0個と2個であるので、信頼グループ‘E’との認証はすでに認証を担当する端末の数が少ない、端末‘001’が担当することを決定する。以上の整理情報より、端末‘001’と端末‘002’は、それぞれ表5と表6に示すような、認証相手候補の端末の端末ID情報とグループID情報が記された候補リストを生成する。
認証実行相手選定部108は、認証実行相手管理部107から与えられた、自端末が次に認証を行う端末の候補リストの中から、認証要求メッセージ、又は、認証要求受理メッセージ若しくは認証要求拒否メッセージを生成し、次に認証を実行する端末を決定する。認証実行相手選定部108は、次に認証を実行すると決定した認証相手端末の端末ID情報とグループID情報を、認証部109へ与える。
認証相手端末の決定には、2通りの方法がある。第1の方法は、認証実行相手選定部108が認証要求メッセージを生成し、生成された認証要求メッセージを送信部110へ与え、認証要求受理メッセージ又は認証要求拒否メッセージを受信部111から受け取る方法である。この場合、自端末は候補リストの中から認証相手端末を選び、認証要求メッセージを生成して、送信部110へ与える。認証要求メッセージには、自端末の情報が付加される。例えば、認証要求メッセージには、自端末が持つ認証を行う端末の候補リストから、候補端末の総数が付加される。図5の信頼グループ‘A’の場合には、端末‘001’は、認証候補端末の総数が1であるので、1という情報が認証要求メッセージに付加される。また、端末‘002’は、認証候補端末の総数が2であるので、2という情報が認証要求メッセージに付加される。候補リストの中から認証要求を送信する認証相手端末を選ぶ方法は、候補リストの上に位置するものから順に選んでもよいし、端末ID情報の大小に基づく順番で選んでもよい。なお、自端末が信頼グループに属していない場合には、同様に信頼グループに属していない端末を認証相手として優先的に選択する。
認証相手端末の決定における第2の方法は、受信部111から与えられた認証要求メッセージに基づいて、認証実行相手を選別し、認証要求受理メッセージ又は認証要求拒否メッセージを生成して送信部110へ与える方法である。この場合、自端末は、受信部111から与えられた認証要求メッセージの送信端末が候補リストに含まれているか否かに基づいて、認証要求受理メッセージ又は認証要求拒否メッセージを生成し、送信部110に与える。候補リストに含まれている複数の端末から認証要求メッセージを受けた場合には、認証要求メッセージに付加されている送信端末の情報に基づいて優先度を決め、優先度の一番高い端末に認証要求受理メッセージを、その他の端末に認証要求拒否メッセージを与える。例えば、図5において、信頼グループ‘G’の端末‘010’が、信頼グループ‘A’の端末‘002’から認証候補端末の総数2という情報と共に認証要求メッセージを受信し、また、信頼グループ‘C’の端末‘011’から認証候補端末の総数3という情報と共に認証要求メッセージを受信して、かつ、両方の端末とも認証相手候補リストに含まれている場合を考える。この場合には、認証候補要求の総数が少ない信頼グループ‘A’の端末‘002’に認証要求受理メッセージを返し、信頼グループ‘C’の端末‘011’に認証要求拒否メッセージを返す。さらに、優先度が同一の場合には、先に認証要求メッセージを受信した端末に認証要求受理メッセージを返してもよいし、端末ID情報の大小に基づいて認証要求受理メッセージを返す端末を選んでもよい。自端末が信頼グループに属していない場合には、同様に信頼グループに属していない端末からの認証要求を優先的に選択する。認証実行相手選定部108が認証要求メッセージと認証要求受理メッセージを生成するのは、認証実行相手管理部107から認証相手の候補リストを受けてから、認証相手端末の端末ID情報を認証部109へ与えるまでの期間に限定されており、それ以外の期間は、認証要求メッセージを生成せず、受信部111から受けた認証要求メッセージに対しては、認証要求拒否メッセージを送信部110へ与える。
認証部109は、認証実行相手選定部108から端末ID情報及びグループID情報を受け取り、その端末ID情報を持つ端末と認証を実行する。また、認証部109は、認証を実行することによって得られた認証結果及び認証相手端末の端末ID情報を隣接端末情報管理部101に与える。また、認証部109は、認証の実行にあたり、認証を行うために必要な情報を送信部110へ与え、求める情報を受信部111から受け取る。認証相手端末の認証方法としては、共通鍵を用いるチャレンジ/レスポンス方式を用いることができる。また、認証相手端末の認証方法としては、上記特許文献1に示されるように、認証プログラムを一定の関係を有する端末(自端末と認証相手の端末)に予め配布しておき、認証相手の端末に同一の認証プログラムが存在するかどうかを確認することにより認証を行う手法を採用してもよい。
認証相手端末の認証方法として、共通鍵と一方向性関数を用いたチャレンジ/レスポンス方式を用いる場合には、認証部109の機能ブロック図は、例えば、図6のようになる。この場合には、図6に示されるように、認証部109は、認証相手端末ID情報管理部201、接続制御部202、乱数生成部203、乱数管理部204、秘密情報管理部205、一方向性関数演算部206、及び演算結果比較部207を有する。
認証相手端末ID情報管理部201は、認証実行相手選定部108から与えられる、認証を実行する認証相手端末の端末ID情報及びグループID情報を記憶する。認証相手端末ID情報管理部201は、認証相手端末の端末ID情報及びグループID情報を接続制御部202及び隣接端末情報管理部101へ与える。認証相手端末の端末ID情報及びグループID情報は、認証を実行するにあたり認証相手端末と接続を確立するために必要であり、また、認証部109で得られた認証結果を隣接端末情報管理部101へ与えるにあたり、認証を行った認証相手端末を特定するために必要である。
接続制御部202は、認証相手端末ID情報管理部201から与えられるID情報を持つ端末と接続を確立し、認証を実行するために必要な情報を制御する。接続制御部202は、受信部111から与えられるチャレンジ要求メッセージを乱数生成部203へ与え、乱数情報を乱数管理部204へ与え、演算結果情報を演算結果比較部207へ与える。また、接続制御部202は、乱数管理部204から与えられる乱数情報を送信部110へ与え、一方向性関数演算部206から与えられる演算結果情報を送信部110へ与える。接続制御部202は、認証相手端末との接続を要求するにあたり、チャレンジ要求メッセージを生成する。接続制御部202における送受信メッセージの制御としては、次の2通りの方法が考えられる。第1の方法は、認証相手端末ID情報管理部201から与えられるID情報を持つ端末に対して先にチャレンジ要求メッセージを送信した場合であり、この場合には、認証相手端末から与えられた乱数情報を乱数管理部204へ与え、一方向性関数演算部206から与えられた演算結果情報を認証相手端末へ送信する方法である。第2の方法は、チャレンジ要求メッセージを受信した場合の方法であり、この場合には、乱数生成部203へチャレンジ要求メッセージを与え、乱数管理部204から与えられた乱数情報を認証相手端末へ送信し、認証相手端末から与えられた演算結果情報を演算結果比較部207へ与える。
乱数生成部203は、接続制御部202から与えられるチャレンジ要求メッセージを受けて、乱数情報を生成する。乱数生成部203は、生成した乱数情報を乱数管理部204へ与える。乱数管理部204は、乱数生成部203から与えられる乱数情報を記憶する。乱数管理部204は、記憶した乱数情報を一方向性関数演算部206及び接続制御部202へ与える。また、乱数管理部204を、接続制御部202から与えられる乱数情報を記憶し、記憶した乱数情報を一方向性関数演算部206へ与えるように構成することもできる。
秘密情報管理部205は、信頼関係を共有できる端末間で共通な情報を、予め秘密に与えられ、秘密に保持(記憶)する。秘密情報管理部205は、記憶する秘密情報を一方向性関数演算部206へ与える。
一方向性関数演算部206は、秘密情報管理部205から与えられる信頼関係を共有できる端末に共通の秘密情報と、乱数管理部204から与えられる乱数情報とを入力として、演算計算を行う。一方向性関数演算部206は、得られた演算結果情報を演算結果比較部207及び接続制御部202へ与える。ここで、「一方向性関数」とは、出力する演算結果情報から、その入力情報を推定するのが困難な関数である。
演算結果比較部207は、一方向性関数演算部206から与えられる演算結果情報と、受信部111から与えられる演算結果とを比較し、両者が一致するか否かを判断する。演算結果比較部207は、一方向性関数演算部206から与えられる演算結果と、受信部111から与えられる演算結果とが一致する場合には、認証成立(即ち、信頼できる)の情報を隣接端末情報管理部101へ与え、一致しない場合には、認証不成立(即ち、信頼できない)の情報を隣接端末情報管理部101へ与える。
送信部110は、隣接端末情報管理部101から与えられた自端末が隣接する端末に関する情報(自端末の隣接端末情報)と、自端末ID管理部103から与えられた自端末ID情報と、グループID管理部105から与えられたグループID情報と、認証実行相手選定から与えられた認証要求メッセージと、認証要求受理メッセージ又は認証要求拒否メッセージと、認証部109から与えられた認証実行に伴うメッセージとを、指定された認証相手端末に送信する。
受信部111は、自端末以外の端末から受信する、グループID情報をグループID生成部104に、端末ID情報及びグループID情報を隣接端末情報管理部101に、同じ信頼グループに属する端末の隣接する端末に関する情報をグループ共有情報管理部106に、認証要求メッセージと認証要求受理メッセージ又は認証要求拒否メッセージとを認証実行相手選定部108に、認証実行に伴うメッセージを認証部109に与える。
図7は、本発明の第1の実施形態に係る認証方法を示すフローチャートである。アドホックネットワークを形成する端末が、認証を開始してから隣接する端末に関して認証情報を得るまでの過程をフローチャートを参照しながら説明する。
まず、認証プロトコルを開始した各端末は、隣接端末情報管理部101に記憶されている隣接する端末に関する情報を参照し、隣接する端末に未検証の端末が存在するか否かを調べる(ステップS301)。
隣接する端末に未検証の端末が存在しなければ、認証プロトコルは終了する。隣接する端末に未検証の端末が存在すれば、次に認証を行う認証相手端末の候補リストを作成する(ステップS302)。この過程は、図4の認証実行相手管理部107における動作に相当する。信頼グループを形成せず単独で存在する端末は、未検証の隣接する端末のすべてが次の認証相手端末の候補となる。信頼グループを形成する端末は、グループ共有情報に基づいて、次の認証相手端末の候補リストを作成する。このステップS302において、信頼グループを形成する端末が認証相手候補端末を選定する動作は、以下のステップS11からステップS15までのように行われる。
(ステップS11)信頼グループに属する端末は、グループ共有情報管理部106から与えられるグループ共有情報のうち、未検証の端末を参照する。
(ステップS12)自グループとの隣接数が1である未検証の端末との認証は、その未検証の端末に隣接する自グループ内の端末が担当する。この時点で、認証担当が決定していない未検証の端末は、自グループの複数の端末と、未検証の隣接関係が重複している端末又は信頼グループである。その端末又は信頼グループを、候補Xとする。
(ステップS13)候補Xと隣接する自グループの端末の中で、候補X以外で既に認証担当となっている端末の総数が最も少ない端末が、候補Xとの認証を担当する。もしも既に認証担当となっている端末の総数が最も少ない端末が複数存在する場合には、次のステップS14に進む。
(ステップS14)候補Xと隣接する自グループの端末の中で、候補Xとの隣接数が最も多い端末が、候補Xとの認証を担当する。これは、候補Xから認証要求メッセージを受けた場合に、認証要求受理メッセージを返信する確率が高くなるためである。もしも候補Xとの隣接数が最も多い端末が複数存在する場合には、次のステップS15に進む。
(ステップS15)候補Xとの認証担当は、例えば、端末ID情報の大小等に基づいて決定する。以上のステップS11〜S15の過程を経て、信頼グループ内の各端末は次の認証相手端末の候補を決定し、認証相手端末の候補リストを生成する。
次に、認証相手端末を決定する(ステップS303)。この過程は、図4の認証実行相手選定部108における動作に相当する。認証相手端末の決定過程には、2通りの方法がある。第1の方法は、認証相手候補リストの中から認証相手端末を選び、認証要求メッセージを生成して認証相手端末へ送信し、認証要求受理メッセージ又は認証要求拒否メッセージを認証相手端末から受け取る方法である。認証要求拒否メッセージを受信した場合には、候補リストの中から他の端末を選び、認証要求メッセージを送信する。第2の方法は、自端末が、隣接する端末から認証要求メッセージを受けて、自端末の持つ認証相手候補リストに基づいて、認証要求受理メッセージ又は認証要求拒否メッセージを生成し、隣接する端末に送信する方法である。
認証相手端末が決定すると、認証実行に移る(ステップS304)。この過程は、図4の認証部109における動作に相当する。認証相手端末の認証方法としては、共通鍵を用いるチャレンジ/レスポンス方式を採用することができる。また、認証相手端末の認証方法としては、上記特許文献1に開示されているように、対象端末に検証側端末と同一の認証プログラムが実行されているか否かに基づいて認証する方法を採用してもよい。ここで用いられる認証方式は、端末間で相互認証を確立できる認証方式である。
次に、得られた認証情報を保持する(ステップS305)。この過程は、図4の隣接端末情報管理部101が認証部109で得られた認証相手端末の端末ID情報とその認証結果情報を記憶する動作に相当する。認証相手端末が信頼グループを形成している場合には、その認証相手との認証結果情報を、認証相手と同じ信頼グループに属するすべての隣接する端末との認証情報に適用する。
次に、グループ形成過程に移る(ステップS306)。この過程は、図4のグループ形成部102における動作に相当する。第1の実施形態においては、信頼グループの形成は認証プロトコルが開始してから終了するまでの間で1度のみである。よって、既に信頼グループを形成する端末は、無条件にステップS309へ進む。信頼グループを形成するか否かは、自端末に、認証が成立しており、かつ、信頼グループを形成していないという条件を満たす隣接する端末が存在しているか否かに基づいて決定する。
信頼グループを形成することが決定されると、信頼グループを形成する端末はグループID情報を生成する(ステップS307)。この過程は、図4のグループID生成部104における動作に相当する。グループID情報は、信頼グループを形成するすべての端末の端末ID情報に基づいて生成される。グループID情報の生成は、信頼グループを形成する端末の端末ID情報を繋いだ形にしてもよいし、信頼グループを形成する端末の端末ID情報を入力とする何らかの関数の形で与えてもよい。ただし、他の信頼グループと重複しないようなグループID生成方法を用いる必要がある。また、グループID情報は同じ信頼グループに属する端末間で共通である必要がある。なお、各端末が共通のグループID情報を生成するように予め規則を設けていてもよいし、グループID情報を生成した端末から、信頼グループを形成する端末にグループID情報を与えてもよい。
次に、生成されたグループID情報を隣接する端末にマルチキャストする(ステップS308)。この過程は、図4のグループID管理部105における動作に相当する。隣接する端末は、自端末が信頼グループを形成したことを知らせる情報、及び、形成された信頼グループのグループID情報を受け取り、隣接端末情報管理部101に記憶する。
次に、グループ共有情報管理部106に記憶されているグループ共有情報を更新する(ステップS309)。信頼グループを形成せず単独で存在する端末は、隣接する端末に関する情報の更新に伴い、グループ共有情報を更新する。信頼グループを形成する端末は、互いに隣接端末情報管理部101に記憶されている隣接する端末に関する情報を共有し合い、グループ共有情報を更新する。以上の過程を経た後、処理は、再びステップS301に戻る。
第1の実施形態においては、アドホックネットワークを形成する各端末は、隣接する端末のみに関する認証成立又は認証不成立の情報を保持する。このような手法は、膨大な数の端末で構成される大規模なアドホックネットワーク等のように、ネットワーク全体像を把握できていない場合に、有効な手法である。
また、第1の実施形態においては、隣接する端末が信頼できる端末であるか否かを把握しておくことにより、よりセキュア(安全)なマルチホップ通信を実現させることができる。
さらにまた、第1の実施形態においては、隣接する端末との認証に成功し、その端末と信頼グループを形成して情報を共有し合うことにより、隣接する信頼グループ間、又は、信頼グループとこの信頼グループに隣接する端末間で、重複している未検証の隣接関係を1個の端末に認証依頼することが可能になるので、認証を実行する回数を減らすことができる。
また、同じ信頼グループに属する端末間で情報を共有し合うことにより、信頼グループに属する端末の数に等しい数の認証に参加することができ(即ち、並行して複数の認証プロセスを実行でき)、隣接する端末との認証情報を効率良く得ることができる。
図8は、6個の通信端末装置がアドホックネットワークを形成している場合を示す概念図である。また、図9は、図8のアドホックネットワークにおける従来の認証方法を説明するための概念図である。さらにまた、図10は、図8のアドホックネットワークにおける第1の実施形態に係る認証方法を説明するための概念図である。
例えば、図8に示されるような6個の端末‘001’〜‘006’がアドホックネットワークを形成している場合、未検証の隣接関係の数(直線の数)は8である。各端末が隣接するすべての未検証の端末に関して認証情報を得るためには、図9に示されるように、8回の相互認証を4段階(図9に、ST1,ST2,ST3,ST4で示す)に分けて行う必要がある。それに対して、図10の例においては、1段階目の相互認証に成功することにより信頼グループを生成している。このように信頼グループを生成して信頼グループ内のメンバ間で隣接する端末に関する情報を共有すると、図10の例においては、端末‘001’と端末‘004’間、端末‘002’と端末‘003’間、端末‘002’と端末‘004’間の未検証の隣接関係は、端末‘001’と端末‘003’間の認証により得て、それと同時に、端末‘002’と端末‘004’は、それぞれ端末‘005’と端末‘006’と認証を行うことができる。よって、各端末が隣接するすべての未検証の端末に関する認証情報は、5回の相互認証を2段階(図10にST11,ST12で示す)に分けて行うことにより得ることができる。このように、隣接する端末との相互認証が成立し、信頼グループを生成して情報を共有し合うことにより、手動で行う認証回数を減らすことができ、隣接する端末との認証情報を効率良く得ることができる。
<第2の実施形態>
第1の実施形態においては、信頼グループを形成する端末の数は、認証方式(認証に加わる端末の数)に基づいて決定していた。これに対し、第2の実施形態においては、信頼グループを形成する端末の数に幅を持たせ、信頼グループと端末間、又は、信頼グループ相互間に相互認証が確立した場合に、信頼グループに、新たな端末又は新たな信頼グループが加わることを許している。
図11及び図12は、本発明の第2の実施形態に係る通信端末装置(端末)の認証方法を説明するための概念図である。図11及び図12は、10個の端末がアドホックネットワーク(ネットワーク通信システム)を形成している例を示している。図11及び図12において、実線の丸で描かれている構成は、端末を示し、丸内に表示されている数値(‘001’〜‘010’)は、その端末の端末ID(識別子)情報を示している。また、図11及び図12において、端末間を繋ぐ線は、端末間の隣接関係(即ち、1ホップしか離れていない端末間の関係)を示している。さらに、図11及び図12において、両方向矢印を持つ線は、端末間の認証が成立している場合(即ち、信頼できる場合)を示し、X(クロス)印が備えられた線は、認証関係が不成立の場合(即ち、信頼できない場合)を示している。さらにまた、図11及び図12において、両方向矢印及びX印のいずれをも持たない直線は、認証を実行していない隣接関係(即ち、未検証)を示す。ここで、「ある端末に隣接する端末」とは、ある端末から1ホップしか離れていない他の端末を意味する。さらにまた、図11及び図12において、破線で囲われた構成RG1〜RG4、RG11〜RG13は、信頼関係を共有するグループ(信頼グループ)を示す。
第2の実施形態においては、例えば、図2に示されるアドホックネットワークにおいて、さらに認証プロトコルを実行させ、図11に示されるような新たな相互認証を確率し、その結果、図12に示されるような、新たな信頼グループRG11〜RG13を形成する。より具体的に言えば、第2の実施形態においては、例えば、図2に示されるアドホックネットワークおいて、端末‘001’と端末‘002’によって形成される信頼グループRG1が、端末‘003’との相互認証を確立し、端末‘007’と端末‘008’によって形成される信頼グループRG4が、端末‘004’との相互認証を確立し、端末‘005’と端末‘010’によって形成される信頼グループRG2が、端末‘006’と端末‘009’によって形成される信頼グループRG3との相互認証を確立する。この結果、図11に両方向矢印を持つ直線で示されるような端末間の認証関係が成立する。このとき、図12に示されるように、より多い端末の数から形成される信頼グループRG11,RG12,RG13を形成し、信頼グループRG11,RG12,RG13内の各端末が隣接する端末に関する情報を共有し合う。
図13は、本発明の第2の実施形態に係る認証方法を実行する通信端末装置(端末)400の構成を示す機能ブロック図である。図13において、図4に示される構成と同一又は対応する機能を有する構成には、同一の符号を付す。図13に示されるように、端末400は、自端末ID管理部103、グループID生成部104、認証実行相手管理部107、認証実行相手選定部108、認証部109、隣接端末情報管理部401、グループ形成部402、グループ形成端末数管理部403、自グループ端末数管理部404、グループID管理部405、送信部407、及び受信部408を有している。以下に、第1の実施形態の端末の構成と異なる構成について説明する。
隣接端末情報管理部401は、受信部408から与えられる隣接する端末の情報と、認証部109から与えられる認証相手端末のID情報、及び、その端末又はグループとの認証情報とを受け取り、隣接する端末に関する情報を記憶し、隣接する端末に関する情報をグループ形成部402、グループ共有情報管理部406、及び、送信部407に与える。ここで、「隣接する端末に関する情報(隣接端末情報)」とは、隣接する端末の端末ID情報、隣接する信頼グループのグループID情報、隣接する信頼グループに属する端末の数、認証情報(認証成立、認証不成立、未検証)を含む。例えば、図12における信頼グループ‘A’の端末‘003’が隣接端末情報管理部401に記憶する隣接する端末に関する情報とは、表7に示されるような内容になる。
隣接端末情報は、自端末が他の端末と信頼グループを形成するか否かを判断するために必要となる。また、隣接端末情報は、同じ信頼グループに属する端末が、隣接する端末に関する認証情報を得るために必要となる。また、隣接端末情報は、同じ信頼グループに属する端末が、グループ共有情報を生成するために必要となる。
グループ形成部402は、隣接端末情報管理部401から与えられる隣接端末情報と、グループID管理部405から与えられる自端末が属する信頼グループのグループID情報と、グループ形成端末数管理部403から与えられる信頼グループを形成する端末の最大数の目安値と、自グループ端末数管理部404から与えられる自端末が属する信頼グループの端末の総数とに基づいて、グループ形成要求メッセージを生成し送信部407へ与える。また、グループ形成部402は、グループ形成受理メッセージ若しくはグループ形成拒否メッセージを受信部408から受け取るか、又は、グループ形成要求メッセージを受信部408から受け取り、グループ形成受理メッセージ又はグループ形成拒否メッセージを生成して送信部407へ与えることにより、信頼グループを形成するか否かを決定する。グループ形成部402は、信頼グループを形成することになった場合には、信頼グループを形成する端末の端末ID情報をグループID生成部104へ、信頼グループの端末の総数を自グループ端末数管理部404へ与える。
信頼グループを形成するか否かの決定には、2通りの方法がある。第1の方法は、グループ形成部402が、グループ形成要求を生成し、送信部407へ与え、グループ形成要求受理メッセージ又はグループ形成要求拒否メッセージを受信部408から受け取る方法である。自端末は、以下の条件(2a)及び(2b)を満たすときに、グループ形成要求メッセージを隣接する端末に送信する。
(2a)自端末には、認証が成立しており、かつ、自端末と異なる信頼グループに属する又は信頼グループを形成していない隣接する端末が存在している。
(2b)自グループ端末数管理部404から与えられる自端末が属する信頼グループの端末の総数(信頼グループを形成していない場合には1)と、隣接端末情報管理部401から与えられるその隣接する端末が属する信頼グループの端末の総数(信頼グループを形成していない場合には1)との合計が、グループ形成端末数管理部403から与えられる信頼グループを形成する端末の最大数の目安値よりも小さい。
そして、グループ形成要求メッセージを与えた端末から、グループ形成要求受理メッセージを受け取ることにより、信頼グループを形成することを決定し、信頼グループを形成する端末の端末ID情報を、グループID生成部104へ与える。
第2の方法は、グループ形成部402が、受信部408から与えられたグループ形成要求メッセージに対して、グループ形成要求受理メッセージ又はグループ形成要求拒否メッセージを生成して送信部407へ与える方法である。この方法では、自端末は、以下の条件(3a)(3b)(3c)を満たすときに、認証要求受理メッセージを生成し、送信部407に与える。
(3a)自端末は、隣接端末情報管理部401から与えられた隣接する端末に関する情報に基づいて、認証要求メッセージの送信端末と認証が成立している。
(3b)認証要求メッセージの送信端末は自端末の属する信頼グループと異なる信頼グループに属しているか、又は、信頼グループに属していない端末である。
(3c)認証要求メッセージの送信端末が属する信頼グループの端末の総数(信頼グループを形成していない場合には1)と、自グループ端末数管理部404から与えられる自端末の属する信頼グループの端末の総数(信頼グループを形成していない場合には1)との合計が、グループ形成端末数管理部403から与えられる信頼グループを形成する端末の最大数の目安値よりも小さい。
上記条件を満たさない場合には、グループ形成部402は、認証要求拒否メッセージを生成し、送信部407へ与える。グループ形成部402は、認証要求受理メッセージを生成する場合には、そのメッセージを送信部407へ与えると共に、信頼グループを形成する認証相手端末の端末ID情報をグループID生成部104へ与える。
グループ形成端末数管理部403は、信頼グループを形成する端末の最大数の目安値を記憶する。グループ形成端末数管理部403は、信頼グループを形成する端末の最大数の目安値をグループ形成部402へ与える。グループ形成端末数管理部403で記憶する信頼グループを形成する端末の最大数の目安値は、システムに応じて予め決められた値であり、各端末に共通の値である。この値は、固定された値であってもよく、また、システムの権限者により変更可能な値であってもよい。
自グループ端末数管理部404は、グループ形成部402から与えられる自端末が属する信頼グループの端末の総数と、受信部408から与えられる自端末が属する信頼グループの端末の総数とに基づいて、自端末が属する信頼グループの端末の総数を記憶する。自グループ端末数管理部404は、自端末が属する信頼グループの端末の総数をグループ形成部402及び送信部407へ与える。自グループ端末数管理部404は、その時点で記憶している自端末が属する信頼グループの端末の総数が、受信部408から与えられる自端末が属する信頼グループの端末の総数に基づいて更新されることで、更新された自端末が属する信頼グループの端末の総数をグループ形成部402へ与える。また、自グループ端末数管理部404は、その時点で記憶している自端末が属する信頼グループの端末の総数が、グループ形成部402から与えられる自端末が属する信頼グループの端末の総数に基づいて更新されることにより、更新された自端末が属する信頼グループの端末の総数を送信部407へ与える。
グループID管理部405は、受信部408及びグループID生成部104から与えられたグループID情報を記憶しており、グループID情報をグループ形成部402及び送信部407へ与える。グループID管理部405は、その時点で記憶しているグループID情報が、受信部408から与えられるグループID情報に基づいて更新されることにより、更新されたグループID情報をグループ形成部402へ与える。また、グループID管理部405は、その時点で記憶しているグループID情報がグループID生成部104から与えられるグループID情報により更新されることにより、更新されたグループID情報を送信部407へ与える。グループID情報は、自端末と通信相手の端末が、自端末がどの信頼グループに属しているか、また、信頼グループを形成しているか否かを特定するために必要となる。グループID情報は、自端末が属する信頼グループの端末との間で共通のものであり、信頼グループに固有のID情報である。例えば、図12の例においては、‘A’、‘B’、‘C’が信頼グループRG11,RG12,RG13のグループID情報であり、同じ信頼グループに属する端末間で共通に持つ情報である。
送信部407は、隣接端末情報管理部401から与えられた自端末の隣接端末情報と、グループ形成部402から与えられたグループ形成メッセージ、及び、グループ形成受理メッセージ又はグループ形成拒否メッセージと、自グループ端末数管理部404から与えられた自端末が属する信頼グループの端末の総数と、自端末ID管理部103から与えられた自端末ID情報と、グループID管理部405から与えられたグループID情報と、認証実行相手選定から与えられた認証要求メッセージ、及び、認証要求受理メッセージ又は認証要求拒否メッセージと、認証部109から与えられた認証実行に伴うメッセージとを、指定された認証相手端末に送信する。
受信部408は、通信相手の端末から受信する、グループ形成要求メッセージと、グループ形成要求受理メッセージ又はグループ形成要求拒否メッセージとをグループ形成部402に、自端末が属する信頼グループの端末の総数を自グループ端末数管理部404に、グループID情報をグループID生成部104に、グループID情報をグループID管理部405に、端末ID情報とグループID情報を隣接端末情報管理部401に、同じ信頼グループに属する端末の隣接する端末に関する情報をグループ共有情報管理部106に、認証要求メッセージ、及び、認証要求受理メッセージ又は認証要求拒否メッセージを認証実行相手選定部108に、認証実行に伴うメッセージを認証部109に与える。
図14は、第2の実施形態に係る認証方法を示すフローチャートである。アドホックネットワークを形成する端末が、認証を開始してから隣接する端末に関して認証情報を得るまでの過程をフローチャートを参照しながら説明する。
まず、認証プロトコルを開始した各端末は、隣接端末情報管理部401に記憶されている隣接する端末に関する情報を参照し、隣接する端末に未検証の端末が存在するか否かを調べる(ステップS501)。隣接する端末に未検証の端末が存在しなければ、認証プロトコルは終了する。
隣接する端末に未検証の端末が存在すれば、次の認証相手端末の候補リストを作成する(ステップS502)。この過程は、図13の認証実行相手管理部107における動作に相当する。信頼グループを形成せず単独で存在する端末は、未検証の隣接する端末のすべてが次の認証相手端末の候補となる。信頼グループを形成する端末は、グループ共有情報より次の認証相手端末の候補リストを作成する。このステップS502において、信頼グループを形成する端末が認証相手候補端末を選定する動作を、以下のステップS21からステップS25までに説明する。
(ステップS21)信頼グループに属する端末は、グループ共有情報管理部106から与えられるグループ共有情報のうち、未検証の端末を参照する。
(ステップS22)自グループとの隣接数が1である未検証の端末との認証は、その未検証の端末に隣接する自グループ内の端末が担当する。この時点で、認証担当が決定していない未検証の端末は、自グループの複数の端末と、未検証の隣接関係が重複している端末又は信頼グループである。その端末又は信頼グループを候補Xとする。
(ステップS23)候補Xと隣接する自グループの端末の中で、候補X以外で既に認証担当となっている端末の総数が最も少ない端末が、候補Xとの認証を担当する。もしも既に認証担当となっている端末の総数が最も少ない端末が複数存在する場合には、次のステップS24に進む。
(ステップS24)候補Xと隣接する自グループの端末の中で、候補Xとの隣接数が最も多い端末が、候補Xとの認証を担当する。これは、候補Xから認証要求メッセージを受けた場合に、認証要求受理メッセージを返信する確率が高くなるためである。もしも候補Xとの隣接数が最も多い端末が複数存在する場合には、次のステップS25に進む。
(ステップS25)候補Xとの認証担当は、例えば、端末ID情報の大小等に基づいて決定する。以上のステップS21〜S25の過程を経て、信頼グループ内の各端末は次の認証相手端末の候補を決定し、認証相手端末の候補リストを生成する。
次に、認証相手端末を決定する(ステップS503)。この過程は、図13の認証実行相手選定部108における動作に相当する。認証相手端末の決定過程には、2通りの方法がある。第1の方法は、認証相手候補リストの中から認証相手端末を選び、認証要求メッセージを生成して認証相手端末へ送信し、認証要求受理メッセージ又は認証要求拒否メッセージを認証相手端末から受け取る方法である。認証要求拒否メッセージを受信した場合には、候補リストの中から他の端末を選び、認証要求メッセージを送信する。第2の方法は、自端末が、隣接する端末から認証要求メツセージを受けて、自端末の持つ認証相手候補リストに基づいて、認証要求受理メッセージ又は認証要求拒否メッセージを生成し、隣接する端末に送信する方法である。
認証相手端末が決定すると、認証実行に移る(ステップS504)。この過程は、図13の認証部109における動作に相当する。認証相手端末の認証方法としては、共通鍵を用いるチャレンジ/レスポンス方式を採用することができる。また、認証相手端末の認証方法として、上記特許文献1に開示されているように、対象端末に検証側端末と同一の認証プログラムが実行されているか否かに基づいて認証する方法を採用してもよい。ここで用いられる認証方式は、端末間で相互認証を確立できる認証方式である。
次に、得られた認証情報を保持する(ステップS505)。この過程は、図13の隣接端末情報管理部401が認証部109で得られた認証相手端末の端末ID情報とその認証結果情報を記憶する動作に相当する。認証相手端末が信頼グループを形成している場合には、その認証相手との認証結果情報を、認証相手と同じ信頼グループに属するすべての隣接する端末との認証情報に適用する。
次に、グループ形成過程に移る(ステップS506)。この過程は、図13のグループ形成部402における動作に相当する。第2の実施形態においては、信頼グループと端末間又は信頼グループ間に相互認証が確立した場合に、信頼グループに、端末又は信頼グループが追加することを許す。ただし、信頼グループを形成する端末の数には制限(上限値)が予め設けられている。よって、既に信頼グループの端末の総数が図13のグループ形成端末数管理部403で記憶されている信頼グループを形成する端末の最大数の目安値を超えている信頼グループに属する端末は、その処理を、無条件にステップS509へ進める。また、信頼グループを形成するか否かは、
(4a)自端末には、認証が成立しており、かつ、自端末と異なる信頼グループに属する又は信頼グループを形成していない隣接する端末が存在しており、また、
(4b)自グループ端末数管理部404から与えられる自端末が属する信頼グループの端末の総数(信頼グループを形成していない場合には1)と、隣接端末情報管理部401から与えられるその隣接する端末が属する信頼グループの端末の総数(信頼グループを形成していない場合には1)との合計が、グループ形成端末数管理部403から与えられる信頼グループを形成する端末の最大数の目安値よりも小さい、
という条件を満たしているか否かに基づいて決定する。
信頼グループを形成することが決定されると、信頼グループを形成する端末はグループID情報を生成する(ステップS507)。この過程は、図13のグループID生成部104により実行される。グループID情報は、信頼グループを形成するすべての端末の端末ID情報に基づいて生成される。グループID情報の生成は、信頼グループを形成する端末の端末ID情報を繋いだ形にしてもよいし、信頼グループを形成する端末の端末ID情報を入力とする何らかの関数の形で与えてもよい。ただし、他の信頼グループと重複しないようにグループID情報を生成する方法を用いる必要がある。また、グループID情報は同じ信頼グループに属する端末間で共通である必要がある。さらにまた、各端末が共通のグループID情報を生成するように予め規則を設けていてもよいし、また、グループID情報を生成した端末から、信頼グループを形成する端末に与えてもよい。
次に、生成又は更新されたグループID情報と、信頼グループの形成に伴い更新された自端末が属する信頼グループの端末の総数を同じ信頼グループに属する端末間で共有する(ステップS508)。この過程は、図13のグループID管理部405及び自グループ端末数管理部404における動作に相当する。信頼グループに属する端末は、同じ信頼グループに属する端末から伝達される、グループID情報と、自端末が属する信頼グループの端末の総数に基づいて、自端末が記憶するグループID情報と、自端末が属する信頼グループの端末の総数が更新された時に、そのグループID情報と自端末が属する信頼グループの端末の総数とを隣接する同じ信頼グループに属する端末にマルチキャストする。同じ信頼グループに属する端末は、自端末のグループID情報、及び、自端末が属する信頼グループの端末の総数についての情報を受け取り、隣接端末情報管理部401に記憶する。
次に、信頼グループ情報を隣接する端末にマルチキャストする(ステップS509)。この過程は、前段のステップS508と同様に、図13のグループID管理部405及び自グループ端末数管理部404における動作に相当する。同じ信頼グループに属する端末から伝達される、グループID情報と、自端末が属する信頼グループの端末の総数とに基づいて、自端末が記憶するグループID情報と、自端末が属する信頼グループの端末の総数とが更新された時に、そのグループID情報と自端末が属する信頼グループの端末の総数を隣接する端末にマルチキャストする。隣接する端末は、自端末が信頼グループに属していることを示す情報と、自端末のグループID情報と、自端末の信頼グループの端末の総数についての情報とを受け取り、隣接端末情報管理部401に記憶させる。
次に、グループ共有情報管理部106で記憶されているグループ共有情報を更新する(ステップS510)。信頼グループを形成せず単独で存在する端末は、隣接する端末に関する情報の更新に伴い、グループ共有情報を更新する。信頼グループを形成する端末は、互いに隣接端末情報管理部401に記憶されている隣接する端末に関する情報を共有し合い、グループ共有情報を更新する。
以上の段階を経て、認証処理は、再びステップS501に戻る。
以上に説明したように、第2の実施形態によれば、アドホックネットワークを形成する各端末は隣接する端末のみに関する認証成立又は認証不成立の情報を保持する。これは、膨大な数の端末によって形成される大規模なアドホックネットワーク等、ネットワーク全体像を把握できていない場合に、有効な手法である。また、隣接する端末が信頼できる端末か否かを把握しておくことにより、よりセキュア(安全)なマルチホップ通信を実現させることができる。
さらにまた、第2の実施形態においては、隣接する端末との認証に成功し、その端末と信頼グループを形成して情報を共有し合うことにより、隣接する信頼グループ間、又は、信頼グループとこの信頼グループに隣接する端末間で、重複している未検証の隣接関係を1個の端末に認証依頼することが可能になるので、認証を実行する回数を減らすことができる。
また、同じ信頼グループに属する端末間で情報を共有し合うことにより、信頼グループを形成する端末の数に等しい数の認証に参加することができ(即ち、並行して複数の認証プロセスを実行でき)、隣接する端末との認証情報を効率良く得ることができる。
第2の実施形態においては、信頼グループを形成する端末の数に幅を持たせ、信頼グループと端末間又は信頼グループ間に相互認証が確立することにより、信頼グループに新たな端末を追加すること、又は、信頼グループに新たな信頼グループを追加することを許し、3個以上であって予め決められた所定数以下の端末の数から形成される信頼グループを形成することができる。このため、第2の実施形態においては、第1の実施形態の場合よりも、隣接する端末との認証情報をより高い効率で得ることができる。
図11及び図12は、10個の端末がアドホックネットワークを形成している例を示している。図11において、5つ存在する未検証の隣接関係(端末‘002’と端末‘005’間、端末‘003’と端末‘005’間、端末‘003’と端末‘006’間、端末‘004’と端末‘006’間、端末‘006’と端末‘008’間)について認証情報を得るには、5回の認証を実行する必要がある。しかし、図11の端末間の認証関係から図12に示されるような、より多い端末の数からなる信頼グループを形成することにより、端末‘002’と端末‘005’が、それぞれ信頼グループ‘A’と信頼グループ‘B’の代表として認証を実行し、また同時に、端末‘006’と端末‘004’又は端末‘008’が、それぞれ信頼グループ‘B’と信頼グループ‘C’の代表として認証を実行することができる。この結果、図12において5つ存在する未検証の隣接関係についての認証情報を、2回の認証を実行することにより得ることができる。
このように、信頼グループを形成する端末の数が多くなるほど、信頼グループ間で重複する未検証の隣接関係が増える状況は多くなり、手動で行う認証回数を減らすことができることが分かる。また、信頼グループを形成する端末の数が増えると、信頼グループとなった端末間における情報共有に伴い、各端末の要するメモリ容量と通信コストが増えることが考えられるが、第2の実施形態においては、信頼グループを形成する端末の総数に最大値の目安値を設けることにより、信頼グループの端末の総数を制限しているので、端末の能力に応じたシステム設定が可能になる。
<第3の実施形態>
第3の実施形態においては、各信頼グループを代表する端末(「代表端末」ともいう。)を決定し、代表端末が、同じ信頼グループに属する端末の情報を管理及び整理して、同じ信頼グループに属する端末を制御する。第3の実施形態に係る認証方法は、代表端末を決定する点において、代表端末を決定せず、同じ信頼グループに属する各端末が互いに情報を共有し合い、その共有した情報に基づいて次の認証相手端末と新たな信頼グループを形成するか否かを決定する上記第1の実施形態及び第2の実施形態に係る認証方法と相違する。
図15は、第3の実施形態に係る通信端末装置(端末)の認証方法を説明するための概念図である。図15は、10個の端末がアドホックネットワーク(ネットワーク通信システム)を形成している例を示している。図15において、実線の丸で描かれている構成は、端末を示し、丸内に表示されている数値(‘001’〜‘010’)は、その端末の端末ID(識別子)情報を示している。また、太い実線の丸で描かれている構成(‘001’、‘007’、‘009’)は、代表端末を示している。また、図15において、端末間を繋ぐ線は、端末間の隣接関係(即ち、1ホップしか離れていない端末間の関係)を示している。さらに、図15において、両方向矢印を持つ線は、端末間の認証が成立している場合(即ち、信頼できる場合)を示し、X(クロス)印が備えられた線は、認証関係が不成立の場合(即ち、信頼できない場合)を示している。さらにまた、図15において、両方向矢印及びX印のいずれをも持たない直線は、認証を実行していない隣接関係(即ち、未検証)を示す。ここで、「ある端末に隣接する端末」とは、ある端末から1ホップしか離れていない他の端末を意味する。さらにまた、図15において、破線で囲われた構成RG21〜RG23は、信頼関係を共有するグループ(信頼グループ)を示す。
例えば、図15に示されるように、端末‘001’と端末‘002’と端末‘003’によって形成される信頼グループRG21においては、端末‘001’が代表端末となり、信頼グループRG21を制御する。また、端末‘004’と端末‘007’と端末‘008’によって形成される信頼グループRG3においては、端末‘007’が代表端末となり、信頼グループRG3を制御する。さらにまた、端末‘005’と端末‘006’と端末‘009’と端末‘010’によって形成される信頼グループRG2においては、端末‘009’が代表端末となり、信頼グループRG2を制御する。ここで、「代表端末が信頼グループを制御する」とは、代表端末が、同じ信頼グループに属する端末が次の認証相手端末の候補を決めたり、他の端末又は他の信頼グループと新たに信頼グループを形成するか否かを決めたりすることを意味する。
図16は、第3の実施形態に係る認証方法を実行する通信端末装置(端末)600の構成を示す機能ブロック図である。図16において、図4(第1の実施形態)又は図13(第2の実施形態)に示される構成と同一又は対応する機能を有する構成には、同一符号を付す。図16に示されるように、端末600は、自端末ID管理部103、認証実行相手選定部108、認証部109、グループ形成端末数管理部403、自グループ端末数管理部404、隣接端末情報管理部601、グループ形成部602、グループ代表端末選定部603、グループ代表端末ID管理部604、グループ共有情報管理部605、認証実行相手管理部606、送信部607、及び、受信部608を有している。以下に、第3の実施形態に係る端末600が、第2の実施形態に係る端末400(図13)と相違する点について、説明する。
図16において、隣接端末情報管理部601は、受信部608から与えられる隣接する端末の情報と、認証部109から与えられる認証相手端末の端末ID情報、及び、その端末又は信頼グループとの認証情報とを受け取り、隣接する端末に関する情報(「隣接端末情報」ともいう。)を記憶し、記憶した隣接端末情報をグループ形成部602、グループ共有情報管理部605、及び送信部607に与える。ここで、「隣接端末情報」には、隣接する端末の端末ID情報、隣接する端末のグループ代表端末ID情報、隣接する端末の信頼グループに属する端末の数、隣接する端末の認証情報(認証成立、認証不成立、未検証)が含まれる。隣接端末情報は、自端末が他の端末と信頼グループを形成するか否か判断するために必要となる。また、隣接端末情報は、同じ信頼グループに属する端末が、隣接する端末に関する認証情報を得るために必要となる。また、隣接端末情報は、同じ信頼グループに属する端末が、グループ共有情報を生成するために必要となる。
グループ形成部602は、隣接端末情報管理部601から与えられる隣接端末情報と、グループ共有情報管理部605から与えられるグループ共有情報と、グループ形成端末数管理部403から与えられる信頼グループを形成する端末の最大数の目安値と、自グループ端末数管理部404から与えられる自端末が属する信頼グループの端末の総数とに基づいて、グループ形成要求メッセージ、グループ形成受理メッセージ又はグループ形成拒否メッセージ、及び、グループ形成要求依頼メッセージを生成する。グループ形成部602は、生成した各メッセージを送信部607へ与え、受信部608からその返答を受け取ることにより、信頼グループを形成するか否かを決定する。グループ形成部602は、信頼グループを形成することになった場合には、信頼グループを形成する端末の端末ID情報、又は、信頼グループを形成する端末が属する信頼グループの代表端末の端末ID情報を、グループ代表端末選定部603へ与える。
信頼グループを形成するか否かの決定は、以下の条件(5a)及び(5b)を同時に満たすか否かに基づいて決定する。
(5a)自端末又は自グループ(即ち、自端末が属する信頼グループ)には、認証が成立しており、かつ、自端末と異なる信頼グループに属する又は信頼グループを形成していない隣接する端末が存在している。
(5b)自グループ端末数管理部404から与えられる自端末が属する信頼グループの端末の総数(信頼グループを形成していない場合には1)と、隣接端末情報管理部601又はグループ共有情報管理部605から与えられるその隣接する端末が属する信頼グループの端末の総数(信頼グループを形成していない場合には1)との合計が、グループ形成端末数管理部403から与えられる信頼グループを形成する端末の最大数の目安値よりも小さい。
信頼グループの代表端末は、同じ信頼グループに属する端末に対して、グループ形成要求依頼メッセージを与える。グループ形成要求依頼メッセージには、自グループの代表端末の端末ID情報と、グループ形成要求を出す対象となる認証相手端末の端末ID情報とが付加されている。自グループの代表端末からグループ形成要求依頼メッセージを受け取った端末は、グループ形成要求メッセージを生成し、対象となる端末に送信する。グループ形成要求メッセージを送信した端末は、グループ形成要求メッセージを受け取った対象端末から、グループ形成要求受理メッセージ又はグループ形成要求拒否メッセージを受け取り、自グループの代表端末へ送信する。
グループ代表端末選定部603は、自端末ID管理部103から与えられる自端末ID情報と、グループ形成部602から与えられる信頼グループを形成する端末の端末ID情報、又は、受信部608から与えられる認証成立済みの認証相手端末からの情報とに基づいて、信頼グループの代表端末を選定する。グループ代表端末選定部603は、選定した信頼グループの代表端末の端末ID情報をグループ代表端末ID管理部604に与える。信頼グループの代表端末は、信頼グループを形成する端末の中から選定される。例えば、信頼グループの代表端末としては、処理能力の高い端末が選ばれる。具体的に言えば、端末‘001’と端末‘002’とから形成される信頼グループの代表端末として、処理能力が高い端末‘002’を選び、この代表端末の端末ID情報‘002’を信頼グループに固有のID情報とする方法である。また、上記した端末の処理能力に基づいて代表端末を選定する方法の代わりに、信頼グループを形成する端末の端末ID情報の大小に基づいて、代表端末を選定してもよい。さらにまた、信頼グループに新たに端末が追加される場合における信頼グループの代表端末の選定は、既に形成されている信頼グループの代表端末が優先的に選ばれるようにしてもよい。なお、信頼グループの代表端末は、同じ信頼グループに属する端末間で共通である必要がある。
グループ代表端末ID管理部604は、受信部608又はグループ代表端末選定部603から与えられた信頼グループの代表端末の端末ID情報を記憶する。グループ代表端末ID管理部604は、記憶している代表端末の端末ID情報を、グループ形成部602及び送信部607へ与える。グループ代表端末ID管理部604は、その時点で記憶している信頼グループの代表端末の端末ID情報が、受信部608から与えられる信頼グループの代表端末の端末ID情報により更新されることにより、更新された信頼グループの代表端末の端末ID情報をグループ形成部602へ与える。また、グループ代表端末ID管理部604は、その時点で記憶している信頼グループの代表端末の端末ID情報がグループ代表端末選定部603から与えられる信頼グループの代表端末のID情報により更新されることにより、更新された信頼グループの代表端末の端末ID情報を送信部607へ与える。信頼グループの代表端末の端末ID情報は、第1の実施形態及び第2の実施形態におけるグループID情報の役目を果たしている。信頼グループの代表端末の端末ID情報は、第1の実施形態及び第2の実施形態におけるグループID情報と同様に、自端末と通信している通信相手端末が、自端末がどの信頼グループに属しているか、また、自端末が信頼グループを形成しているか否か、を特定するために必要となる。グループ代表端末の端末ID情報は、自端末が属する信頼グループの端末の間で共通のものであり、信頼グループに固有のID情報である。
グループ共有情報管理部605は、隣接端末情報管理部601から与えられる自端末が隣接している端末の情報(「自端末の隣接端末情報」ともいう。)、及び、受信部608から与えられる同じ信頼グループに属する端末の情報を受け取り、信頼グループの隣接端末情報を管理及び記憶し、信頼グループの隣接端末情報をグループ形成部602と認証実行相手管理部606に与える。ここで、「信頼グループの隣接端末情報」とは、同じ信頼グループに属するすべての端末が、自グループ以外に隣接する端末に関して保持する情報であり、端末ID情報、信頼グループの代表端末ID情報、信頼グループに属する端末の数、認証情報(認証成立、認証不成立、未検証)、自グループとの隣接数、隣接関係にある自グループの端末の端末ID情報を含む。
認証実行相手管理部606は、グループ共有情報管理部605から与えられた信頼グループの隣接端末情報に基づいて、信頼グループが隣接する未検証の端末又は信頼グループに対して自グループのどの端末が認証を担当するかを整理することにより、信頼グループに属する端末が、次の認証相手端末の候補リストを生成する。認証実行相手管理部606は、生成した端末の候補リストを、認証実行相手選定部108及び送信部607に与える。また、認証実行相手管理部606は、受信部608から与えられた次の認証相手端末の候補リストを、自端末が次に認証を実行する認証相手端末の候補リストに設定し、その候補リストを認証実行相手選定部108に与えてもよい。認証相手端末の候補の選定は、信頼グループが隣接するすべての未検証の端末又は信頼グループに関して、同じ信頼グループに属する端末と認証候補端末が同一にならないように行う。ただし、例外として、自グループ内の複数の端末が、同一の端末又は信頼グループを認証候補とする場合もある。自端末が信頼グループに属していない場合には、未検証の隣接する端末すべてが、次の認証相手の候補となる。認証を実行する端末の候補リストは、認証候補端末の端末ID情報と、信頼グループの代表端末の端末ID情報とから構成される。
送信部607は、各種情報を送信する。送信部607から送信される情報には、(6a)隣接端末情報管理部601から与えられた自端末の隣接端末情報、(6b)グループ形成部602から与えられたグループ形成要求メッセージ、グループ形成受理メッセージ又はグループ形成拒否メッセージ、及びグループ形成要求依頼メッセージ、(6c)自グループ端末数管理部404から与えられた自端末が属する信頼グループの端末の総数、(6d)自端末ID管理部103から与えられた自端末ID情報、(6e)信頼グループの代表端末ID管理部604から与えられた信頼グループの代表端末の端末ID情報、(6f)認証実行相手管理部606から与えられた認証相手の候補リスト、(6g)認証実行相手選定部から与えられた認証要求メッセージと、認証要求受理メッセージ又は認証要求拒否メッセージ、(6h)認証部109から与えられた認証実行に伴うメッセージが含まれる。
受信部608は、通信相手の端末から各種情報を受信する。受信部608は、通信相手の端末からの各種情報グループ形成要求メッセージと、グループ形成要求受理メッセージ又はグループ形成要求拒否メッセージと、グループ形成要求依頼メッセージとを受信し、グループ形成部602に与える。また、受信部608は、自端末が属する信頼グループの端末の総数を自グループ端末数管理部404に、端末ID情報をグループ代表端末選定部603に、信頼グループの代表端末の端末ID情報をグループ代表端末ID管理部604に、端末ID情報と信頼グループの代表端末の端末ID情報を隣接端末情報管理部601に、同じ信頼グループに属する端末の隣接する端末に関する情報をグループ共有情報管理部605に、認証相手端末の候補リストを認証実行相手管理部606に、認証要求メッセージと、認証要求受理メッセージ又は認証要求拒否メッセージとを認証実行相手選定部に、認証実行に伴うメッセージを認証部109に与える。
図17から図19までは、本発明の第3の実施形態に係る認証方法を示すフローチャートであり、図17は、端末が信頼グループを形成していない場合、図18は、端末が信頼グループを形成していて信頼グループの代表端末である場合、図19は、端末が信頼グループを形成していて信頼グループの代表端末でない場合を示す。それぞれの状態の端末が、認証を開始してから隣接する端末に関して認証情報を得るまでの過程をフローチャートを参照しながら説明する。
まず、認証プロトコルを開始した各端末は隣接端末情報管理部601に記憶されている隣接端末情報を参照し、隣接する端末に未検証の端末が存在するか否かを調べる(ステップS701、S801、S901)。信頼グループを形成していて信頼グループを代表する端末以外は、隣接する端末に未検証の端末が存在しなければ、認証プロトコルを終了する。信頼グループを形成していて信頼グループの代表端末について、隣接する端末に未検証の端末が存在しない場合には、自グループと隣接する端末に未検証の端末が存在するか否かを調べる(ステップS812)。この過程は、図16のグループ共有情報管理部605に記憶されている情報を参照する動作に相当する。自グループと隣接する端末に未検証の端末が存在しなければ、認証プロトコルを終了する。
隣接する端末に未検証の端末が存在すれば、次の認証相手端末の候補リストを保持する。この過程は、図16の認証実行相手管理部606における動作に相当する。信頼グループを形成していない端末は、未検証の隣接する端末のすべてが次の認証相手端末の候補となり、それらの端末の端末ID情報が記された認証相手端末の候補リストを作成する(ステップS702)。信頼グループを形成している代表端末は、グループ共有情報より次の認証相手端末と自グループに属する端末との対応付けを行い、生成した候補リストを、自グループに属する端末に送信する(ステップS802)。信頼グループを形成していて代表ではない端末は、自らは次の認証相手端末の候補リストを生成せず、自グループの代表端末から受信する候補リストに従う(ステップS902)。信頼グループの代表端末が次の認証相手端末と自グループに属する端末とを対応づける動作を、以下のステップS31からステップS35までに説明する。
(ステップS31)信頼グループの代表端末は、グループ共有情報管理部605から与えられるグループ共有情報のうち、未検証の端末を参照する。
(ステップS32)自グループとの隣接数が1である未検証の端末との認証は、その未検証の端末と隣接する自グループ内の端末が担当する。この時点で、認証担当が決定していない未検証の端末は、自グループの複数の端末と、未検証の隣接関係が重複している端末又は信頼グループである。その端末又は信頼グループを、候補Xとする。
(ステップS33)候補Xと隣接する自グループの端末の中で、候補X以外で既に認証担当となっている端末の総数が最も少ない端末が、候補Xとの認証を担当する。もしも既に認証担当となっている端末の総数が最も少ない端末が複数存在する場合には、次のステップS34に進む。
(ステップS34)候補Xと隣接する自グループの端末の中で、候補Xとの隣接数が最も多い端末が、候補Xとの認証を担当する。これは、候補Xから認証要求メッセージを受けた場合に、認証要求受理メッセージを返信する確率が高くなるためである。もしも候補Xとの隣接数が最も多い端末が複数存在する場合には、次のステップS35に進む。
(ステップS35)候補Xとの認証担当は、例えば、端末ID情報の大小等に基づいて決定する。以上のステップS31〜S35の過程を経て、信頼グループ内の各端末と次の認証相手端末との対応付けを決定し、生成した認証相手端末の候補リストを自グループの端末に送信する。もしも信頼グループを代表する自端末に隣接する端末で未検証の端末が存在しない場合には、ステップS806へ進む。
次に、認証相手端末を決定する(ステップS703、S803、S903)。この過程は、図16の認証実行相手選定部における動作に相当する。認証相手端末の決定過程には、2通りの方法がある。第1の方法は、認証相手候補リストの中から認証相手端末を選び、認証要求メッセージを生成して認証相手端末へ送信し、認証要求受理メッセージ又は認証要求拒否メッセージを認証相手端末から受け取る方法である。認証要求拒否メッセージを受信した場合には、候補リストの中から他の端末を選び、認証要求メッセージを送信する。第2の方法は、隣接する端末から認証要求メッセージを受けて、その端末が自端末の持つ認証相手候補リストに認証要求受理メッセージ又は認証要求拒否メッセージを生成し、その端末に送信する方法である。
認証相手端末が決定すると、認証実行に移る(ステップS704、S804、S904)。この過程は、図16の認証部109における動作に相当する。認証相手端末の認証方法としては、共通鍵を用いるチャレンジ/レスポンス方式を採用することができる。また、認証相手端末の認証方法として、上記特許文献1のように対象端末に検証側端末と同一の認証プログラムが実行されているか否かで認証してもよい。ここで用いられる認証方式は、端末間で相互認証を確立できる認証方式である。
次に、得られた認証情報を保持する(ステップS705、S805、S905)。この過程は、図16の隣接端末情報管理部601が認証部109で得られた認証相手端末の端末ID情報とその認証結果情報を記憶する動作に相当する。認証相手端末が信頼グループを形成している場合には、その認証相手との認証結果情報を、認証相手と同じ信頼グループに属するすべての隣接する端末との認証情報に適用する。
次に、前ステップで得られた認証情報を整理する。このステップは、信頼グループを形成する端末のみが実行する。信頼グループを形成していて信頼グループ代表ではない端末は、隣接する端末との更新された認証情報を自端末の属する信頼グループの代表端末に報告する(ステップS906)。信頼グループを形成していて信頼グループの代表端末は、自グループの端末から、隣接する端末との新しい認証情報を受けてグループ共有情報を更新する(ステップS806)。この過程は、信頼グループを形成していて信頼グループ代表ではない端末が、図16の隣接端末情報管理部601の情報を自グループの代表端末に送り、信頼グループを形成していて信頼グループの代表端末が、自グループの端末から送られる隣接する端末に関する情報をグループ共有情報管理部605へ与える動作に相当する。
次に、グループ形成過程に移る。この過程は、図16のグループ形成部602における動作に相当する。第3の実施形態においては、第2の実施形態と同様に、信頼グループと端末間又は信頼グループ間に相互認証が確立することにより、信頼グループに、端末又は信頼グループを追加することを許す。ただし、信頼グループを形成する端末の数には制限が設けられている。よって、既に信頼グループの端末の総数が、図16のグループ形成端末数管理部403に記憶されている信頼グループを形成する端末の最大数の目安値を超えている場合には、新たに信頼グループを形成しない。信頼グループを形成していない端末が信頼グループを形成するか否かは、第2の実施形態と同様に、
(7a)自端末には、認証が成立しており、かつ、自端末と異なる信頼グループに属する又は信頼グループを形成していない隣接する端末が存在しており、また、
(7b)自グループ端末数管理部404から与えられる自端末が属する信頼グループの端末の総数(ここでは、信頼グループを形成していないので1)と、隣接端末情報管理部601から与えられるその隣接する端末が属する信頼グループの端末の総数(信頼グループを形成していない場合には1)との合計が、グループ形成端末数管理部403から与えられる信頼グループを形成する端末の最大数の目安値よりも小さい、
という条件を満たしているか否かに基づいて、グループ形成要求メッセージを生成及び送信し、認証相手端末からグループ形成要求受理メッセージ又はグループ形成要求拒否メッセージを受信することにより信頼グループを形成するか否かを決定する(ステップS706)。
信頼グループを形成しない場合には、ステップS709へ進む。第3の実施形態においては、信頼グループを形成する端末が新たに信頼グループを形成するか否かは、信頼グループの代表端末が決定する。信頼グループを形成している代表端末は、グループ共有情報管理部605に記憶するグループ共有情報に基づいて、
(8a)自グループには、認証が成立しており、かつ、自グループと異なる信頼グループに属する又は信頼グループを形成していない隣接する端末が存在しており、また、
(8b)自グループ端末数管理部404から与えられる自端末が属する信頼グループの端末の総数と、隣接端末情報管理部601から与えられるその隣接する端末が属する信頼グループの端末の総数(信頼グループを形成していない場合には1)との合計が、グループ形成端末数管理部403から与えられる信頼グループを形成する端末の最大数の目安値よりも小さい、
という条件を満たしているか否かを判断し、満たしている場合に、グループ形成要求メッセージ、又は、グループ形成要求依頼メッセージを生成する。グループ形成要求メッセージ、又は、グループ形成要求依頼メッセージを送信した認証相手端末から、グループ形成要求受理メッセージを受信することにより、信頼グループを形成することを決定する(ステップS807)。信頼グループを形成しない場合には、ステップS811へ進む。信頼グループを形成している代表端末は、自グループの代表端末からグループ形成要求依頼メッセージを受信した場合には、そのメッセージに付加されているグループ形成要求の対象となる隣接する端末に対し、グループ形成要求メッセージを生成し、その端末からのグループ形成受理メッセージ又はグループ形成拒否メッセージを自グループの代表端末へ返す。自グループ以外の、又は、信頼グループに属していない隣接する端末からグループ形成要求メッセージを受信した場合には、そのメッセージを自グループの代表端末に送信し、代表端末から受信するグループ形成要求受理メッセージ又はグループ形成要求拒否メッセージを隣接する端末へ返信する(ステップS907)。信頼グループを形成しない場合には、ステップS909へ進む。
信頼グループを形成することが決定すると、信頼グループの代表端末を選定する(ステップS707、S808)。この過程は、図16のグループ代表端末選定部603における動作に相当する。信頼グループの代表端末の選定は、処理能力の高い端末が選ばれてもよいし、信頼グループを形成する端末の端末ID情報の大小により選んでもよいし、既に信頼グループを形成する端末の信頼グループの代表端末を優先的に選んでもよい。
次に、選定又は更新された代表端末の端末ID情報と、信頼グループの形成に伴い更新された自端末が属する信頼グループの端末の総数とを、同じ信頼グループに属する端末間で共有する(ステップS708、S809、S909)。この過程は、図16のグループ代表端末ID管理部604及び自グループ端末数管理部404における動作に相当する。信頼グループの代表端末は、自分のID情報と信頼グループの端末の総数を自グループに属する端末に伝達する。信頼グループに属する端末は、同じ信頼グループに属する端末から伝達される、グループ代表端末ID情報と、自端末が属する信頼グループの端末の総数とに基づいて、自端末が記憶する信頼グループの代表端末ID情報と、自端末が属する信頼グループの端末の総数が更新された時に、そのグループ代表端末ID情報と自端末が属する信頼グループの端末の総数を隣接する同じ信頼グループに属する端末にマルチキャストする。この過程で同じ信頼グループに属する端末は、自端末の属する信頼グループの代表端末ID情報、また、自端末の属する信頼グループの端末の総数について知る。
次に、信頼グループの情報を隣接する端末にマルチキャストする(ステップS709、S810、S910)。この過程は、前段ステップと同様に、図16のグループ代表端末ID管理部604と、自グループ端末数管理部404における動作に相当する。同じ信頼グループに属する端末から伝達される、信頼グループ代表の端末ID情報と、自端末が属する信頼グループの端末の総数に基づいて、自端末が記憶する信頼グループ代表の端末ID情報と、自端末が属する信頼グループの端末の総数が更新された時に、その信頼グループ代表の端末ID情報と自端末が属する信頼グループの端末の総数を隣接する端末にマルチキャストする。隣接する端末は、自端末が信頼グループに属していることと、自端末の属する信頼グループの代表端末ID情報、また、自端末の信頼グループの端末の総数について知り、隣接端末情報管理部601部に記憶する。
次に、グループ共有情報を更新する。この過程は、信頼グループを形成していない端末又は信頼グループを形成している代表端末が、グループ共有情報管理部605で記憶されている情報を更新する動作に相当する。また、信頼グループを形成していて代表ではない端末が、隣接端末情報管理部601で記憶されている情報の更新に伴い、その情報を自グループの代表端末へ報告するために送信部607へ与える動作を示している。信頼グループを形成していない端末は、隣接する端末に関する情報の更新に伴い、グループ共有情報を更新する(ステップS710)。信頼グループを形成していて代表ではない端末は、隣接する端末が属する信頼グループの端末の総数等の更新された情報を、自端末の属する信頼グループの代表端末に報告する(ステップS911)。信頼グループを形成していて信頼グループを代表する端末は、自グループの端末から、隣接する端末との情報を受けてグループ共有情報を更新する(ステップS811)。
以上のステップを経て、信頼グループを形成していない端末、信頼グループを形成していて信頼グループを代表する端末、信頼グループを形成していて代表ではない端末は、それぞれ再びステップS701、ステップS801、ステップS901に戻る。
以上に説明したように、第3の実施形態によれば、アドホックネットワークを形成する各端末は隣接する端末のみに関する認証成立又は認証不成立の情報を保持する。これは、膨大な数の端末によって形成される大規模なアドホックネットワーク等、ネットワーク全体像を把握できていない場合に、有効な手法である。また、隣接する端末が信頼できる端末か否かを把握しておくことにより、よりセキュア(安全)なマルチホップ通信を実現させることができる。
さらにまた、第3の実施形態においては、隣接する端末との認証に成功し、その端末と信頼グループを形成して情報を共有し合うことにより、隣接する信頼グループ間、又は、信頼グループとこの信頼グループに隣接する端末間で、重複している未検証の隣接関係を1個の端末に認証依頼することが可能になるので、認証を実行する回数を減らすことができる。
また、同じ信頼グループに属する端末間で情報を共有し合うことにより、信頼グループを形成する端末の数に等しい数の認証に参加することができ(即ち、並行して複数の認証プロセスを実行でき)、隣接する端末との認証情報を効率良く得ることができる。
第3の実施形態においては、信頼グループを形成する端末の数に幅を持たせ、信頼グループと端末間又は信頼グループ間に相互認証が確立することにより、信頼グループに新たな端末を追加すること、又は、信頼グループに新たな信頼グループを追加することを許し、3個以上であって予め決められた所定数以下の端末の数から形成される信頼グループを形成することができる。このため、第3の実施形態においては、第1の実施形態の場合よりも、隣接する端末との認証情報をより高い効率で得ることができる。なお、信頼グループを形成する端末の数が増えると、信頼グループとなった端末間における情報共有に伴い、各端末の要するメモリ容量と通信コストが増えることが考えられるが、第2の実施形態と同様に、信頼グループを形成する端末の総数に目安値を設けることにより、信頼グループの端末の総数を制限することが可能であるので、端末の能力に応じたシステム設定が可能である。
また、第3の実施形態においては、同じ信頼グループに属する端末の情報を、信頼グループ内で定めた1端末(信頼グループの代表端末)が管理及び整理することにより、信頼グループを制御することを容易にする。信頼グループの代表端末は、同じ信頼グループに属する端末から情報を集めて整理し、信頼グループ内の他の端末に指示を与えるため、信頼グループの代表端末に負荷の集中が生じるが、信頼グループを形成していて代表ではない端末の負荷は緩和される。例えば、アドホックネットワークを形成する端末には、処理能力の高い端末と低い端末とが混在しており、その処理能力に格差があるような状況下においては、処理能力の高い端末を代表端末とすることによって、適切なシステム設計が実現できる。
さらに、第3の実施形態においては、各信頼グループの代表端末の端末ID情報が、第1の実施形態及び第2の実施形態におけるグループID情報の役目を果たす。しかし、同じ信頼グループに属する各端末が、信頼グループを特定するために持つ共通の情報は、その信頼グループの代表端末の端末ID情報に限定されず、信頼グループの代表端末を特定できる情報であれば他の方法であってもよい。
<第4の実施形態>
上記第1の実施形態においては、未検証の互いに隣接する2個の端末が互いに認証を行い、認証が成立した場合に、これら2個の端末によって信頼グループを形成する場合を説明した。しかし、1つの信頼グループを形成する端末の個数は2個に限定されるものではなく、認証方式(認証に参加する端末の個数)に応じて、3個以上であって所定の上限値以下の個数とすることができる。例えば、複数の端末が互いに情報を交換し合うことによって、それらの端末すべてが信頼できる端末であるか否かを確かめることができる手法を用いることにより、端末間の相互認証を、3個以上の端末の間で一度に実行することができる。
上記第1の実施形態において3個の端末で相互認証を実行する場合には、3個の端末間に隣接関係が存在することを確かめる必要がある。このため、認証要求メッセージを生成する端末は、その端末の認証実行相手選定部108(図4に示される)において、認証を実行しようとするすべての端末の端末ID情報を付加して認証要求メッセージを認証相手端末に送る必要がある。また、このような認証要求メッセージを受け取った端末は、その端末の認証実行相手選定部108(図4に示される)において、認証を実行しようとするすべての端末が認証実行端末の候補リストにあるか否かに基づいて、認証要求受理メッセージ又は認証要求拒否メッセージを生成し、返信する必要がある。
なお、端末間の相互認証を3個以上の端末において実行する際に、秘密分散法を利用してもよい。例えば、秘密分散法により秘密分散された分散情報を各端末(以下「メンバ」ともいう。)に配布し、各メンバが分散情報を所有している状態を形成する。もとの秘密情報Sを再構成させたいときには、集まったメンバ(n人)が分散情報を持ち寄り、所定の計算式を用いてもとの秘密情報Sを再構成する。もとの秘密情報Sが再構成できたときに、認証成立とすることにより、3個以上の所定個数の端末からなる信頼グループを形成することができる。
秘密分散法の一つである(k,n)しきい値秘密分散法においては、秘密情報をn(nは2以上の整数)個の分散情報に符号化し、k(kはn以下の整数)個以上の分散情報が集まれば、もとの秘密情報を復元することができるが、k−1個以下の分散情報を集めても、もとの秘密情報を全く知ることができないという性質を、多項式補間を用いることにより実現している。
具体的には、次式(1)に示されるようなk−1次多項式f(x)を用いてもとの秘密情報を分散する。
f(x)=S+R1x+R2x2+…+Rk−1xk−1 …(1)
ここで、Sは、もとの秘密情報であり、R1,R2,…,Rk−1は、分配者が決める乱数である。
分散情報が配布されるn人の各メンバにメンバIDとして、m1,m2,…,mnが付与されている場合に、メンバID_mj(j=1,2,…,n)に対する分散情報Xmjは、上記式(1)を用いて、次式(2)のように計算できる。
Xmj
=f(mj)
=S+R1mj+R2(mj)2+…+Rk−1(mj)k−1 …(2)
図20は、(k,n)しきい値秘密分散法に基づく秘密分散を実施する秘密分散計算部1101の動作を説明するための図である。図20に示されるように、秘密分散計算部1101は、もとの秘密情報S及びこの秘密情報の分散情報が配布されるメンバ全員のメンバID_mj(j=1,2,…,n)を受け取り、もとの秘密情報Sに基づいて上記式(1)の多項式f(x)を生成し、その多項式f(x)及びメンバID_mjに基づいて、各メンバID_mjに対応する分散情報Xmjを、上記式(2)を用いて生成して出力する。出力した各分散情報Xmjはそれぞれ、対応するメンバIDを持つメンバに秘密裏に配布する。
各メンバに配布した分散情報からもとの秘密情報Sを再構成する際には、分散情報が分配されたn人のメンバのうちt人(k≦t≦n)のメンバを集め、集められたt人のメンバのメンバID_m’
1,m’
2,…,m’
tと分散情報Xm’
1,Xm’
2,…,Xm’
tを持ち寄り、次式(3)及び(4)を用いて、もとの秘密情報Sを計算する。
このように、もとの秘密情報Sが再構成できたときに、認証成立とすることにより、3個以上の所定個数のメンバ(端末)からなる信頼グループを形成することができる。
また、端末間の相互認証を3個以上の端末において実行する際に、マルチパーティ・プロトコルを利用した秘密分散法を利用してもよい。この方法は、例えば、本出願人による特許出願(特願2003−067834号)に説明されている。この方法においては、もとの秘密情報Sを再構成する際に、もとの秘密情報Sを再構成するために集まったメンバ(演算記憶装置)が保有する分散情報を用いてマルチパーティ・プロトコルを実行することにより、各メンバが保有する分散情報を公開せずに、もとの秘密情報Sの再構成を行う。なお、この秘密再構成方法は、秘密再構成システムにより実施される。この秘密再構成システムは、各メンバ(演算記憶装置)である分散秘密再構成装置(分散秘密再構成計算部1301)と、メンバのいずれかに備えられた演算装置(秘密再構成計算部1302)とを主要な構成としている。
先ず、マルチパーティ・プロトコルの説明をする。マルチパーティ・プロトコルとは、ある関数への入力値を公開せずに、その関数の計算を集まったメンバで協力して行う方式であり、「分散計算」とも呼ばれる。マルチパーティ・プロトコルには、大きく分けて2つの方式がある。第1の方式は、計算するために集まったメンバのうち、どの2人のメンバ間にも、その2人のメンバ以外には通信内容を秘密とすることができる秘密通信路が確立されていることを前提とする方式である。第2方式は、計算するために集まったメンバ間の通信には、前述した秘密通信路による通信方法に加え、紛失通信と呼ばれる通信手法を用いる方式である。
ここでは、有限体要素の計算(加算と乗算の計算)を用いるマルチパーティ・プロトコルの第1方式について説明する。マルチパーティ・プロトコルを実行するメンバがt人いる場合を想定する。メンバのそれぞれが、メンバIDとしてmj(j=1,2,…,t)と、そのメンバ固有の秘密情報Xmj(j=1,2,…,t)を所有しており、次式(5)に示される関数値Yをマルチパーティ・プロトコルで計算する場合を考える。
Y=f(Xm1,Xm2,…,Xmt) …(5)
ここで、各メンバのメンバIDであるmj及び秘密情報Xmj(j=1,2,…,t)は、有限体GF(q)(qは素数又は素数のべき乗)上の値であるものとする。また、上記式(5)の関数fにおける演算は、有限体GF(q)上の演算であるものとし、したがって、得られる関数値Yも、有限体GF(q)上の値となる。
各メンバ固有の秘密情報Xm
j(j=1,2,…,t)を、他のメンバに公開しないまま、関数値Yを計算するために、マルチパーティ・プロトコルでは、まず、各メンバ固有の秘密情報Xm
j(j=1,2,…,t)を、(k,t)しきい値秘密分散法を用いて秘密分散し、各メンバに配布する。メンバIDがm
jであるメンバの秘密情報がXm
jであるとすると、このメンバは、次式(6)のk−1(k≦t)次多項式fm
j(x)を作る。
ここで、Rm
j,1,Rm
j,2,…,Rm
j,k−1は、有限体GF(q)上の値から選ばれたk−1個の乱数である。
秘密情報Xm
jを秘密分散法により分散し、メンバIDがm
p(p=1,2,…,t)であるメンバに対して配布される分散情報をXm
j,pと表記する場合に、分散情報Xm
j,pは、上記式(6)を用いて、次式(7)のよう計算できる。
なお、分散情報Xm
j,pは、メンバIDがm
p(p=1,2,…,t)であるメンバ以外には秘密となるよう、秘密通信路を用いて、メンバIDがm
p(p=1,2,…,t)であるメンバに配布する。
上記式(6)及び(7)における足し算及び掛け算は、有限体GF(q)上における加算及び乗算であるものとする。したがって、得られる分散情報Xmj,p(j=1,2,…,t;p=1,2,…,t)は、有限体GF(q)上の値である。なお、以下の説明においては、断りがない限り、演算は有限体GF(q)上で行われるものとする。
以上の処理によって、各メンバは、他の各メンバの秘密情報Xmjの分散情報Xmj,pを持っている状態になる。メンバIDがmjであるメンバは、他のメンバから配布された分散情報(及び自分自身の秘密情報の分散情報)Xm1,j,Xm2,j,…,Xmt,jのt個の分散情報を持っていることになる。
ここで、マルチパーティ・プロトコルにおける分散加算(足し算計算)を行う。上記式(5)の関数が、例えば、次式(8)に示されるような、ある2つの入力XmA及びXmBの足し算となっている場合、
Y=f(Xm1,Xm2,…,Xmt)=XmA+XmB …(8)
マルチパーティ・プロトコルでは、各メンバは、入力XmA及びXmBの分散情報同士の足し算を行うことで、計算結果Yの分散情報Ymj(j=1,2,…,t)を得ることができる。例えば、メンバIDがmjであるメンバは、入力XmA及びXmBの分散情報として、それぞれXmA,j及びXmB,jを持っているので、次式(9)のような計算を行い、計算結果Yの分散情報Ymjを得る。
Ymj=XmA,j+XmB,j …(9)
次に、マルチパーティ・プロトコルにおける分散乗算(掛け算計算)を説明する。上記式(5)の関数が、例えば、次式(10)のような、ある2つの入力XmA及びXmBの掛け算となっている場合、
Y=f(Xm1,Xm2,…,Xmt)=XmA×XmB …(10)
マルチパーティ・プロトコルでは、各メンバは、次のようなステップS101〜S103の処理を行う。ステップS101においては、入力XmA及びXmBの分散情報同士の掛け算を行い、ステップS102においては、その掛け算結果をさらに、他のメンバに秘密分散して配布し、ステップS103においては、受け取った側でそれらの再構成を行うことで、計算結果Yの分散情報Ymj(j=1,2,…,t)を得ることができる。ただし、第1方式における、マルチパーティ・プロトコルの分散乗算では、秘密分散のしきい値kは、次式(11)となっている必要がある。
k≦(t+1)/2 …(11)
ここで、上記式(11)の演算は、有限体GF(q)上の演算ではなく、通常の実数、整数演算である。
具体的に説明すると、例えば、メンバIDがmjであるメンバは、入力XmA及びXmBの分散情報として、それぞれXmA,j及びXmB,jを持っているので、まず、次式(12)のような計算を行い、途中計算結果Y’mjを得る(上記ステップS101)。
Y’mj=XmA,j×XmB,j …(12)
次に、この途中計算結果Y’m
jを次式(13)のような多項式で秘密分散を行う(上記ステップS102)。
ここで、R’m
j,1,R’m
j,2,…,R’m
j,k−1は、乱数として有限体GF(q)上の値をk−1個選ぶことによって得られる。
次に、メンバIDがm
p(p=1,2,…,t)であるメンバに対して配布する自分の途中計算結果Y’m
jの分散情報Y’m
j,pを、上記式(13)を用いて、次式(14)のように計算する。
なお、メンバIDがm
p(p=1,2,…,t)であるメンバ以外には秘密となるよう、秘密通信路を用いてメンバIDがm
p(p=1,2,…,t)であるメンバに配布する。上記式(14)のような計算で分散した結果、メンバIDがm
jであるメンバは、Y’m
1,j,Y’m
2,j,…,Y’m
t,jのt個の分散情報を受け取る。
メンバIDがm
jであるメンバは、これら分散情報Y’m
1,j,Y’m
2,j,…,Y’m
t,jから、掛け算結果の分散情報Ym
jを次式(15)及び(16)のように計算する。
この計算は、秘密情報の再構成時の計算(前述した式(3))と同様のものである(上記ステップS103)。
上記のように、マルチパーティ・プロトコルを用いれば、各メンバ同士が秘密通信を行って計算処理をすることにより、入力値を公開せずに、与えられた関数の計算を行うことができる。
ここでは、複数のメンバ(演算記憶装置)からなるあるグループで、もとの秘密情報Sを、(k,n)しきい値秘密分散法ではなく、単純な加減算による秘密分散法を用いて分散し、各メンバに分散情報が秘密裏に配布されている状態を前提とする。すなわち、図21に示されるように、秘密分散法を用いてもとの秘密情報Sから分散情報を生成し、生成された分散情報が各メンバに配布されている場合を前提とする。図21は、秘密分散法を実施する秘密分散計算部1201の動作を説明するための図である。秘密分散計算部1201は、前述した図20の秘密分散計算部1101とは動作が異なり、次のような計算を行う。ここで、秘密分散計算部1201へ入力されるもとの秘密情報をS(これは、有限体GF(q)上の要素とする)とし、分散情報が配布されるメンバがn人であるとする。秘密分散計算部1201は、まず、有限体GF(q)から乱数をn−1個選ぶ。それらの乱数X1,X2,…,Xn−1から、次式(17)を満たすXnを求める。
Xn=S−(X1+X2+…+Xn−1) …(17)
秘密分散計算部1201は、上記式(17)により得られた値X1,X2,…,Xnを出力し、各メンバに重複しないように配布する。値X1,X2,…,Xnのうち、いくつかは等しい値であってもよい。上記式(17)の計算は、有限体GF(q)上で行われる。以降の説明においては、断りがない限り、演算は、有限体GF(q)上で行われるものとする。
上記したような秘密分散法によりもとの秘密情報Sを分散した場合には、分散情報が配布されたメンバ全員(すなわちn人)が集まらない限り、もとの秘密情報Sを再構成することができない。もとの秘密情報Sは、次式(18)を計算することにより、再構成できる。
S=X1+X2+…+Xn …(18)
上記したような秘密分散法を、「加算秘密分散法」と呼ぶこととする。ここでは、上記した加算秘密分散法により秘密分散された分散情報を各メンバに配布し、各メンバが分散情報を所有している状態を前提とする。もとの秘密情報Sを再構成させたいときに、集まったメンバ(n人)が分散情報を持ち寄り、上記式(18)を用いてもとの秘密情報Sを再構成することができるが、ここで説明する秘密再構成方法においては、この再構成時の計算を、マルチパーティ・プロトコルで分散計算することにより、集まった各メンバの分散情報を公開せずに、もとの秘密情報Sを再構成する。
ここでは、複数のメンバからなるあるグループで、前述の秘密分散法(上記式(17)による方法)を用いてもとの秘密情報Sから生成された分散情報が、各メンバに秘密裏に配布されている状態を前提とする。このグループにはn人のメンバがいるものとし、もとの秘密情報Sから生成され、各メンバに配布された分散情報をXj(j=1,2,…,n)とする。
もとの秘密情報Sを再構成する際に、メンバ全員(すなわち、n人のメンバ)が集まり、各メンバの持つ分散情報を持ち寄る。また、メンバのうち、どの2人のメンバ間にも、その2人のメンバ以外には通信内容を秘密とすることができる秘密通信路が確立されているものとする。図22は、各メンバ間の通信に用いる秘密通信路1303を示す図である。図22において、四角形で示されるブロックは集まったメンバを示し、m’1,m’2,…,m’j,…,m’tは、メンバIDを示し、両方向の矢印は、それぞれ対応するメンバ以外には通信内容を秘密とする秘密通信路1303を示している。
次に、図23を用いて、秘密再構成方法の概要を説明する。図23においては、メンバの人数は3人(すなわち、演算記憶装置の数は3個)とし、各メンバは、もとの秘密情報Sを加算秘密分散法で分散させた分散情報A0,B0,C0をそれぞれ持っているものとする。もとの秘密情報Sを再構成する場合には、まず、各メンバが持っている分散情報A0,B0,C0を加算秘密分散法でさらに分散して、分散情報A0,B0,C0の分散情報を生成する。具体的に言えば、図23に符号<1>で示されるように、分散情報Aを分散して分散情報Aの分散情報A1,A2,A3を生成し、分散情報Bを分散して分散情報Bの分散情報B1,B2,B3を生成し、分散情報Cを分散して分散情報Cの分散情報C1,C2,C3を生成する。次に、図23に符号<2>で示されるように、分散情報A0,B0,C0の分散情報を他のメンバに配布する。図23に符号<3>で示されるように、各メンバは、分散情報A0,B0,C0の分散情報A1,B1,C1又はA2,B2,C2又はA3,B3,C3を受け取り、これらをもとに分散計算を行い、その分散計算の結果を出力する。次に、図23に符号<4>で示されるように、分散情報A0,B0,C0の分散情報A1,B1,C1と、A2,B2,C2と、A3,B3,C3とをそれぞれ用いて分散計算した計算結果を集めることにより、もとの秘密情報Sを再構成する。
図24は、秘密再構成方法を実施する構成(秘密再構成システム)を示すブロック図である。図24を用いて、秘密再構成方法を説明する。図24に示されるように、もとの秘密情報Sを再構成しようとする際に集まったn人のメンバ(すなわち、n個の演算記憶装置)には、それぞれ、分散計算で秘密情報を再構成する手段である分散秘密再構成計算部(すなわち、分散秘密再構成装置)1301(1301−1,1301−2,…,1301−n)が備えられている。ここで、符号1301−jは、メンバj(j=1,2,…,n)に備えられた分散秘密再構成計算部1301を表わす。各メンバの分散秘密再構成計算部1301−j(j=1,2,…,n)は、それぞれ他のメンバの分散秘密再構成計算部1301と、図22で説明した秘密通信路1303で接続されている。また、各メンバの分散秘密再構成計算部1301−j(j=1,2,…,n)からの出力は、秘密再構成計算部1302へ入力される。
秘密再構成計算部1302は、各メンバの分散秘密再構成計算部1301−j(j=1,2,…,n)からの出力を受け取り、それら受け取ったn個の値を、n個の分散情報としたときの秘密情報の再構成を行う計算をし、その再構成された秘密情報を出力する。各メンバの分散秘密再構成計算部1301−j(j=1,2,…,n)から出力される値(すなわち、秘密再構成計算の中間計算結果)をS
j(j=1,2,…,n)とすると、次式(19)を用いて、もとの秘密情報Sを計算することができる。
上記式(19)における各演算は有限体GF(q)上で行う。なお、以降の説明においては、断りがない限り、演算は、有限体GF(q)上で行われるものとする。
各メンバの分散秘密再構成計算部1301−j(j=1,2,…,n)における処理は、各メンバが、それぞれ他のメンバにはその処理の内容が分からないように行う。秘密再構成計算部1302における処理は、処理を統合するセンター(メンバとは別の演算装置)のようなものが行ってもよいし、集まったメンバ(演算記憶装置)のうちの1人、又は、複数人で行ってもよい。ただし、秘密情報Sを必要としているメンバが行うのが望ましい。
図25は、図24の分散秘密再構成計算部1301−j(j=1,2,…,n)の構成を示すブロック図である。図25を用いて分散秘密再構成計算部1301−jを説明する。図25に示されるように、分散秘密再構成計算部1301−jは、秘密分散計算部1401−jと、入力の数がn個である“(n)加算部”1402−jとを有する。秘密分散計算部1401−jからの出力が“(n)加算部”1402−jへ入力され、“(n)加算部”1402−jからの出力が、分散秘密再構成計算部1301−jの出力となる。
秘密分散計算部1401−jへは、メンバjが持っているもとの秘密情報Sの分散情報Xjが入力される。秘密分散計算部1401−jは、入力された分散情報Xjを加算秘密分散法を用いて分散し、他のメンバと通信する秘密通信路1303を経由して配布する。分散情報Xjの分散情報Xj,nの計算は、Xj,1,Xj,2,…,Xj,n−1を、乱数として有限体GF(q)上の値をn−1個選び、次式(20)で、Xj,n求める。
Xj,n=Xj−(Xj,1+Xj,2+…+Xj,n−1) …(20)
値Xj,1,Xj,2,…,Xj,nのうち、自分自身に対する分散情報Xj,jは、“(n)加算部”1402−jへ出力し、その他の分散情報Xj,p(p=1,2,…,nであり、p≠jであるもの)は、秘密通信路1303を通して各メンバに配布される。
“(n)加算部”1402−jは、秘密分散計算部1401−jから、もとの秘密情報Sの分散情報X
jの分散情報X
j,jを受け取る。さらに、秘密通信路1303を経由して、他のメンバから配布された、もとの秘密情報Sの分散情報X
p(p=1,2,…,nであり、p≠jであるもの)の分散情報X
1,j,…,X
j−1,j,X
j+1,j,…,X
n,jを受け取る。これらn個ある、もとの秘密情報Sの分散情報の分散情報X
p,j(p=1,2,…,n)から、もとの秘密情報Sの分散情報S
j(秘密情報Sの再構成時に得られる秘密情報Sの分散情報S
jと、秘密情報Sの分散時に得られる秘密情報Sの分散情報X
jとは異なるものである)を計算し出力する。“(n)加算部”1402−jは、次式(21)のような計算を行い、秘密情報Sの分散情報S
jを出力する。
図26は、秘密再構成方法における動作を示すフローチャートである。ここで、もとの秘密情報Sを再構成するために集まったメンバ全員(n人のメンバ)が持つ分散情報をX1,X2,…,Xnとする。
まず、各メンバが持つ分散情報X1,X2,…,Xnを加算秘密分散方法を用いて分散し、他のメンバに配布する(ステップS1501)。ステップS1501は、図25の秘密分散計算部1401−jにおける動作を示しており、各メンバの持つ分散情報Xjから乱数生成及び上記式(20)を用いて分散情報Xj,p(p=1,2,…,n)を計算し、他のメンバに対して配布する。
次に、各メンバは、自分自身の分散情報Xjの分散情報及び他のメンバから配布された分散情報、すなわち、分散情報Xp,j(p=1,2,…,n)を用いて演算を施し、もとの秘密情報Sの分散情報Sjを求める(ステップS1502)。ステップS1502は、図25の加算部1402−jにおける動作を示しており、メンバjは、他のメンバから配布された分散情報Xp,j(p=1,2,…,n)(自分自身の分散情報Xjの分散情報Xj,jが含まれている)から、上記式(21)を用いて計算する。その計算結果Sjは、もとの秘密情報Sの分散情報となっている。
次に、ステップS1502で各メンバが計算した分散情報Sjからもとの秘密情報Sを再構成する(ステップS1503)。ステップS1503は、図24の秘密再構成計算部1302における動作を示しており、メンバjがステップS1502で計算した結果Sj(j=1,2,…,n)から、上記式(19)を用いて計算し、もとの秘密情報Sを得ることができる。このように、もとの秘密情報Sが再構成できたときに、認証成立とすることにより、3個以上の所定個数のメンバ(端末)からなる信頼グループを形成することができる。
上記した方法によれば、もとの秘密情報Sを再構成するために集まったメンバ(端末)の持つ分散情報Xjを、他のメンバに公開せずに、もとの秘密情報Sを再構成することができる。したがって、各メンバが持つ分散情報Xjを、次回の秘密再構成の際に再利用することができる。しかも、秘密再構成を行う第三者的なセンターのようなものを設けなくても、上記の効果を達成することができる。また、分散情報Xjを持つメンバ全員が集まらないと、もとの秘密情報Sを再構成することができないが、各メンバの匿名性は保たれており、さらに、秘密再構成の際のメンバ間の相互通信は、最初の分散情報を分散配布するための1回のみで済むため、通信量及び計算量の両方とも少ない。
さらに、秘密情報Sの分散情報Xjを持たない人(演算記憶装置)が、この再構成に参加しようとしても、秘密情報Sの再構成に失敗することから、集まった複数人数からなるグループ全員が正当メンバ(予め秘密情報Sの分散情報Xjを配布されたメンバ)か、そうでない人(演算記憶装置)が混在するか、ということを認証するような機能が備わる。さらにまた、前述したように分散情報を再利用可能なので、この認証機能は、秘密情報Sの分散情報を更新せずとも何度も利用できる。また、この認証機能は、集まったメンバから他へ送信される情報は、認証(秘密情報Sの再構成)のたびに異なるので、盗聴による“なりすまし”に非常に強い。このような認証機能は、秘密分散法の秘密再構成の性質と、マルチパーティ・プロトコルによる分散計算の性質との単なる組み合わせによって得られる機能ではなく、新しい機能である。なお、上記認証機能は、「もとの秘密情報S」を照合秘密情報S(予め登録されている情報で、認証が成立するか否かを、再構成結果と照らし合わせる情報)として用いる利用形態であるので、もとの秘密情報Sを各メンバに秘密にしない場合であっても、実現できる。