(57)【要約】【課題】第３者の積極的な介入に対して安全なセキュリティキーを設定可能な方法及びシステムを提案する。【解決手段】有限体を構成している元素から選択した生成子と、有限体の元素の数よりも小さい任意の数とを用いて関数値を算出し、算出した関数値に対してハッシュ演算を行い、該ハッシュ演算のハッシュ値及び算出した関数値を第２のデバイスに送信する第１のデバイスを提案する。また、第１のデバイスから受信した関数値に対してハッシュ演算を行い、該ハッシュ演算のハッシュ値と第１のデバイスから受信したハッシュ演算のハッシュ値とが一致すると、受信した関数値と有限体を構成している元素の数よりも小さい自分が選択した任意の数とを用いてセキュリティキーを設定する第２のデバイスを提案する。【選択図】図３
2006217629.tif 000002
【特許請求の範囲】
【請求項１】
第１のデバイス及び第２のデバイスを備えたセキュリティキーの設定システムを用いたセキュリティキーの設定方法であって、
前記第１のデバイスが、有限体を構成している元素から生成子と、前記有限体の元素の数よりも小さい任意の数とを選択し、選択した前記任意の数と前記生成子とを用いて関数値を算出し、算出した前記関数値に対してハッシュ演算を行い、該ハッシュ演算のハッシュ値及び算出した前記関数値を前記第２のデバイスに送信するステップと、
前記第２のデバイスが、受信した前記関数値に対してハッシュ演算を行い、該ハッシュ演算のハッシュ値と前記第１のデバイスから受信した前記ハッシュ値とが一致するかどうかを判断するステップと、
前記第２のデバイスが、前記判断の結果、前記第２のデバイスが算出した前記ハッシュ値と前記第１のデバイスから受信した前記ハッシュ値とが一致すると、前記受信した関数値と、前記有限体を構成している元素の数よりも小さい自分が選択した任意の数とを用いてセキュリティキーを設定するステップと、を含むことを特徴とするセキュリティキーの設定システムを用いたセキュリティキーの設定方法。
【請求項２】
前記ハッシュ値は、少なくとも３２ビットであることを特徴とする請求項１に記載のセキュリティキーの設定システムを用いたセキュリティキーの設定方法。
【請求項３】
前記第１のデバイスにおいて、選択した前記任意の数がｘであり、前記生成子がｇであれば、算出する前記関数値は「ｇx」であることを特徴とする請求項１に記載のセキュリティキーの設定システムを用いたセキュリティキーの設定方法。
【請求項４】
前記「ｇx」のビット数は、前記ハッシュ値のビット数よりも多いことを特徴とする請求項３に記載のセキュリティキー設定方法。
【請求項５】
前記第２のデバイスにおいて、前記自分が選択した任意の数がｙであれば、設定するセキュリティキーは、「（ｇx）y」であることを特徴とする請求項３に記載のセキュリティキーの設定システムを用いたセキュリティキーの設定方法。
【請求項６】
前記セキュリティキーを用いたネットワークにおける通信速度は、Ｇｂｐｓ以上の帯域であることを特徴とする請求項１に記載のセキュリティキーの設定システムを用いたセキュリティキーの設定方法。
【請求項７】
前記第１のデバイスと前記第２のデバイスとの距離がａであり、前記セキュリティキーの設定に介入しようとする第３者と前記第１のデバイスと前記第２のデバイスとの距離がｂ、ｃであれば、前記セキュリティキーの設定時における最低通信速度は、下記（８）式の通りであることを特徴とする請求項６に記載のセキュリティキーの設定システムを用いたセキュリティキーの設定方法。
ｆ＝（ｂ＋ｃ−ａ）／（ｃ×ｎ）      ・・・（８）
ｆ：最低通信速度
ｃ：光速
ｎ：ハッシュ値のビット数
【請求項８】
前記ハッシュ値のビット数は３２より大きい任意の数で設定されることを特徴とする請求項７に記載のセキュリティキーの設定システムを用いたセキュリティキーの設定方法。
【請求項９】
有限体を構成している元素から選択した生成子と、前記有限体の元素の数よりも小さい第１の任意の数とを用いて第１の関数値を算出し、算出した前記第１の関数値に対してハッシュ演算を行い、該ハッシュ演算の第１のハッシュ値及び算出した前記第１の関数値を第２のデバイスに送信する第１のデバイスと、
受信した前記第１の関数値に対してハッシュ演算を行い、該ハッシュ演算の第２のハッシュ値と前記第１のデバイスから受信した第１のハッシュ値とが一致すると、前記受信した第１の関数値と前記有限体を構成している元素の数よりも小さい自分が選択した第２の任意の数を用いてセキュリティキーを設定する第２のデバイスと、を備えることを特徴とするセキュリティキーの設定システム。
【請求項１０】
前記第２のデバイスは、
前記第２の任意の数と前記生成子とを用いて第２の関数値を算出し、算出した前記第２の関数値に対してハッシュ演算を行い、該ハッシュ演算の第３のハッシュ値及び算出した前記第２の関数値を前記第１のデバイスに送信することを特徴とする請求項９に記載のセキュリティキーの設定システム。
【請求項１１】
前記第１のデバイスは、
受信した前記第２の関数値に対してハッシュ演算を行い、該ハッシュ演算の第４のハッシュ値と前記第２のデバイスから受信した前記ハッシュ演算の第３のハッシュ値とが一致すると、前記受信した第２の関数値と、選択した前記第１の任意の数とを用いてセキュリティキーを設定することを特徴とする請求項１０に記載のセキュリティキーの設定システム。
【請求項１２】
前記ハッシュ値は、少なくとも３２ビットであることを特徴とする請求項９に記載のセキュリティキー設定システム。
【請求項１３】
前記第１のデバイスにおいて、
選択した前記第１の任意の数がｘであり、前記生成子がｇであれば、算出する前記第１の関数値は「ｇx」であることを特徴とする請求項９に記載のセキュリティキーの設定システム。
【請求項１４】
前記第１のデバイスは、
前記ハッシュ値のビット数よりも多いビット数を有する「ｇx」を算出することを特徴とする請求項１３に記載のセキュリティキーの設定システム。
【請求項１５】
前記第２のデバイスは、
選択した前記第２の任意の数がｙであれば、セキュリティキーを「（ｇx）y」に設定することを特徴とする請求項１３に記載のセキュリティキーの設定システム。
【請求項１６】
前記セキュリティキーを用いたネットワークにおける通信速度は、Ｇｂｐｓ以上の帯域であることを特徴とする請求項９に記載のセキュリティキーの設定システム。
【請求項１７】
前記第１のデバイスと前記第２のデバイスとの距離がａであり、前記セキュリティキーの設定に介入しようとする第３者と前記第１のデバイスと前記第２のデバイスとの距離がｂ、ｃであれば、前記セキュリティキーの設定時における最低通信速度は、下記（８）式の通りであることを特徴とする請求項１６に記載のセキュリティキーの設定システム。
ｆ＝（ｂ＋ｃ−ａ）／（ｃ×ｎ）      ・・・（８）
ｆ：最低通信速度
ｃ：光速
ｎ：ハッシュ値のビット数
【請求項１８】
前記ハッシュ値のビット数は３２より大きい任意の数で設定されることを特徴とする請求項１７に記載のセキュリティキーの設定システム。
【請求項１９】
前記ハッシュ値及び前記関数値は１Ｇｂｐｓ以上の速度で送信されることを特徴とする請求項６に記載のセキュリティキーの設定システムを用いたセキュリティキーの設定方法。
【請求項２０】
前記ハッシュ値及び前記関数値は１Ｇｂｐｓ以上の速度で送信されることを特徴とする請求項１６に記載のセキュリティキーの設定システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、無線ネットワークデバイス同士の通信のためにセキュリティキーを設定する方法及びシステムに係り、さらに詳しくは、他のデバイスの攻撃（介入）に対して安全なセキュリティキーを設定する方法及びシステムに関する。
【背景技術】
【０００２】
無線ネットワークを構成しているデバイスは、第３者の攻撃に対して安全にデータを送受信するために、セキュリティキーを設定する。このため、デバイスは、設定したセキュリティキーを用いてデータを暗号化して伝送することにより、第３者の攻撃に対して安全にデータを送受信することができる。
【０００３】
以下、従来の無線ネットワーク、特に、アドホックネットワークを構成しているデバイスがセキュリティキーを設定する複数の方法について説明する。
【０００４】
第一の方法は、デバイスが、データ伝送のためのチャンネルではなく、他のチャンネルを用いてセキュリティキーを設定するものである。すなわち、デバイスは、赤外線を用いたり、有線を用いたりなどしてセキュリティキーを設定する。この方法によれば、デバイスが短い伝送距離内に位置していることから、第３者の介入を遮断することができる。しかしながら、この方法は、短い伝送距離に位置しているデバイス内でしかセキュリティキーを設定することができないという欠点がある。
【０００５】
なお、デバイスは、直接的な接触、あるいは、人間の身体をチャンネルとしてセキュリティキーを設定することができる。すなわち、デバイスを人間の身体に接触することにより、人間の身体に流れる電流を用いてセキュリティキーを設定することができる。しかしながら、このような方法は、デバイス同士で通信を行うためのチャンネルに加えて、別途チャンネルを使用するという欠点がある。
【０００６】
第二の方法は、コストの節減のために、ジグビーアライアンスによって提案されている、ＵＫＥ（Unsecure Key Establishment）プロトコルである。しかしながら、ＵＫＥプロトコルは、第３者が積極的に介入しなくてもセキュリティキーを取得することができるという欠点がある。
【０００７】
第三の方法は、送信デバイスと受信デバイスとが、公開鍵を用いてデータを送受信するものである。公開鍵を用いてデータを暗号化あるいは復号化するためには、多くの演算量を必要とする。しかしながら、アドホックネットワークを構成しているデバイスは、演算容量が小さいものが多い。
【０００８】
第三の方法の例であるＲＳＡは、リベルト（Rivest）、シャミル（Shamir）、アドルマン（Adleman）の３名が発明した暗号体系で、大きな定数の因数分解の困難さを暗号化手法としているものであり、現在、最も汎用されている。しかしながら、楕円曲線を用いた因数分解手法が知見され、近年に至っては、５１２ビットの数を因数分解してＲＳＡを攻撃する方法が発表されている。このため、モジュラスｎを大きな数として選択しなければ、安全なＲＳＡ暗号体系を構成することができない。そこで、現在は、ＲＳＡ暗号体系において、１０２４ビットのセキュリティキーが使用されている。このように、現在一般化しているＲＳＡ暗号体系においては、コンピュータの演算速度が高速化するに伴って、セキュリティキーの大きさを増やす必要がある。そして、セキュリティーキーの大きさが増えるに伴って、暗号化及び復号化にかかる時間が延びてしまう。さらに、べき乗の演算は、乗算を繰り返し行う必要があるため、データの暗号化及び復号化速度が落ちてしまう。
【０００９】
上述した方法に加えて、ディフィヘルマン（Diffe-Hellman：ＤＨ）プロトコルがある。ＤＨプロトコルは、有限体における離散対数問題（discrete logarithm problem）に基づく暗号体系である。ＤＨプロトコルは、有限体（例えば、Ｚｐ）においてαとβを知っているとき、αx＝βを満足するｘを求めることが困難であることを用いたものであり、ＲＳＡ暗号体系に比べてセキュリティキーの大きさを相対的に小さくすることで、相対的に安定性を保証しているという長所がある。
【００１０】
図１は、従来のＤＨプロトコルを用いてデバイス同士のセキュリティキーを設定する方法を説明するための図である。図１において、セキュリティキーを設定したいデバイスＡ及びデバイスＢと、第３のデバイスとしてのデバイスＣとが示されている。デバイスＡ及びデバイスＢは、セキュリティキーを設定するために有限体と生成子とを設定する。有限体と生成子とについては、後述する。
【００１１】
デバイスＡ及びデバイスＢは、有限体の元素の数よりも小さな任意の数を選択する。図１に示すように、デバイスＡが選択した任意の数は「ｘ」であり、デバイスＢが選択した任意の数は「ｙ」である。デバイスＡは、選択した任意の数「ｘ」と生成子「ｇ」とを用いて関数値を算出する。すなわち、デバイスＡは「ｇx」を算出する。デバイスＢも同様に選択した任意の数「ｙ」と生成子とを用いて関数値を算出する。すなわち、デバイスＢは、「ｇy」を算出する。
【００１２】
デバイスＡは、算出した値「ｇx」をデバイスＢに送信する。この場合、デバイスＣがデバイスＡから近い距離に位置しているならば、デバイスＡから出力される値を受信することになる。デバイスＢも同様に算出した値「ｇy」をデバイスＡに送信する。この場合、デバイスＣがデバイスＢから近い距離に位置しているならば、デバイスＢから出力される値を受信することになる。
【００１３】
デバイスＡは、送信された「ｇy」と自分が選択した任意の数「ｘ」とを組み合わせてセキュリティキーを生成する。すなわち、デバイスＡが生成するセキュリティキーは、「（ｇy）x」である。デバイスＢも同様に、送信された「ｇx」と自分が選択した任意の数「ｙ」とを組み合わせてセキュリティキーを生成する。すなわち、デバイスＢが生成するセキュリティキーは、「（ｇx）y」である。すなわち、有限体には交換法則が成立するため、デバイスＡとデバイスＢとは同じセキュリティキー「（ｇx）y」が設定されている。
【００１４】
しかしながら、デバイスＣは、デバイスＡとデバイスＢに割り当てられた「（ｇx）y」を取得するために、送信された「ｇx」から「ｘ」を取得するか、あるいは、「ｇy」から「ｙ」を取得する必要がある。しかしながら、離散対数問題の特性上、「ｇx」から「ｘ」を取得すること、あるいは、「ｇy」から「ｙ」を取得することは困難である。このため、デバイスＣは、デバイスＡとデバイスＢとに割り当てられた「（ｇx）y」を取得することはできない。
【００１５】
図２は、デバイスＣが積極的にデバイスＡとデバイスＢとのセキュリティキーの割り当てに介入する場合に生じうる問題点を説明するための図である。
【００１６】
デバイスＡがデバイスＢにセキュリティキーの設定を要請するか、あるいは、デバイスＢがデバイスＡにセキュリティキーの設定を要請する場合を想定する。デバイスＡがデバイスＢにセキュリティキーの設定を要請する場合、デバイスＣが介入し、自分がデバイスＢであるかのように装ってデバイスＡに応答し、デバイスＢに対しては、自分がデバイスＡであるかのように装ってセキュリティキーの設定を要請する。もちろん、デバイスＢがデバイスＡにセキュリティキーの設定を要請する場合も同様である。
【００１７】
デバイスＡが選択した任意の数は「ｘ」であり、デバイスＣがデバイスＡとのセキュリティキーの設定のために選択した任意の数は「ｕ」である。また、デバイスＢが選択した任意の数は「ｙ」であり、デバイスＣがデバイスＢとのセキュリティキーの設定のために選択した任意の数は「ｖ」である。デバイスＡは、選択した任意の数「ｘ」と生成子「ｇ」とを用いて関数値を算出する。すなわち、デバイスＡは、「ｇx」を算出する。デバイスＢも同様に、選択した任意の数「ｙ」と生成子「ｇ」とを用いて関数値を算出する。すなわち、デバイスＢは「ｇy」を算出する。デバイスＣは、選択した任意の数と生成子を用いて関数値を算出する。すなわち、デバイスＣは、「ｇu」と「ｇv」を算出する。
【００１８】
デバイスＡは、算出した値「ｇx」をデバイスＣに送信する。デバイスＢも同様に、算出した値「ｇy」をデバイスＣに送信する。デバイスＣは、算出した値「ｇu」をデバイスＡに送信し、算出した値「ｇv」をデバイスＢに送信する。
【００１９】
デバイスＡは、送信された「ｇu」と自分が選択した任意の数「ｘ」とを組み合わせてセキュリティキーを生成する。すなわち、デバイスＡが生成するセキュリティキーは、「（ｇu）x」である。デバイスＢも同様に、送信された「ｇv」と自分が選択した任意の数「ｙ」とを組み合わせてセキュリティキーを生成する。すなわち、デバイスＢが生成するセキュリティキーは、「（ｇv）y」である。デバイスＣも同様に、送信された「ｇx」、「ｇy」と自分が選択した任意の数「ｕ」及び「ｖ」とを組み合わせてセキュリティキーを生成する。すなわち、デバイスＢが生成するセキュリティキーは、「（ｇx）u」と「（ｇy）v」である。
【００２０】
このように、デバイスＣは、デバイスＡとデバイスＢとの間のセキュリティキーの設定に積極的に介入することによって、デバイスＡとデバイスＢとが設定したセキュリティキーを取得することになる。この場合、デバイスＡは、デバイスＣをデバイスＢと錯覚してデバイスＣと通信を行い、デバイスＢも同様にデバイスＣをデバイスＡと錯覚してデバイスＣと通信を行う。
このため、デバイスＡ及びデバイスＢが、第３者としてのデバイスＣに対して安全なセキュリティキーを設定する方法及びシステムが望まれている。
【発明の開示】
【発明が解決しようとする課題】
【００２１】
本発明は、上記事情に鑑みてなされたものであり、その目的は、第３者の積極的な介入に対して安全なセキュリティキーを設定することのできる方法及びシステムを提案するところにある。
【００２２】
本発明の他の目的は、データ通信をチャンネルを用いてセキュリティキーを設定する方法及びシステムを提案するところにある。
【００２３】
本発明のさらに他の目的は、セキュリティキーを用いて暗号化あるいは復号化を行うのに必要な演算量を低減することのできる方法及びシステムを提案するところにある。
【課題を解決するための手段】
【００２４】
本発明の諸目的を達成するために、本発明に係るセキュリティキーの設定方法は、第１のデバイス及び第２のデバイスを備えたセキュリティキーの設定システムを用いたセキュリティキーの設定方法であって、前記第１のデバイスが、有限体を構成している元素から生成子と、前記有限体の元素の数よりも小さい任意の数とを選択し、選択した前記任意の数と前記生成子とを用いて関数値を算出し、算出した前記関数値に対してハッシュ演算を行い、該ハッシュ演算のハッシュ値及び算出した前記関数値を前記第２のデバイスに送信するステップと、前記第２のデバイスが、受信した前記関数値に対してハッシュ演算を行い、該ハッシュ演算のハッシュ値と前記第１のデバイスから受信した前記ハッシュ値とが一致するかどうかを判断するステップと、前記第２のデバイスが、前記判断の結果、前記第２のデバイスが算出した前記ハッシュ値と前記第１のデバイスから受信した前記ハッシュ値とが一致すると、前記受信した関数値と、前記有限体を構成している元素の数よりも小さい自分が選択した任意の数とを用いてセキュリティキーを設定するステップと、を含むことを特徴とする。
【００２５】
本発明の諸目的を達成するために、本発明に係るセキュリティキーの設定システムは、有限体を構成している元素から選択した生成子と、前記有限体の元素の数よりも小さい第１の任意の数とを用いて第１の関数値を算出し、算出した前記第１の関数値に対してハッシュ演算を行い、該ハッシュ演算の第１のハッシュ値及び算出した前記第１の関数値を第２のデバイスに送信する第１のデバイスと、受信した前記第１の関数値に対してハッシュ演算を行い、該ハッシュ演算の第２のハッシュ値と前記第１のデバイスから受信した第１のハッシュ値とが一致すると、前記受信した第１の関数値と前記有限体を構成している元素の数よりも小さい自分が選択した第２の任意の数を用いてセキュリティキーを設定する第２のデバイスと、を備えることを特徴とする。
【発明の効果】
【００２６】
本発明は、デバイスＡ及びデバイスＢにおいてセキュリティキーを設定する際に、第３者としてのデバイスＣがセキュリティキーの設定過程に介入することを防ぐために、設定するセキュリティキーをハッシュ関数を用いて暗号化して送受信する。これにより、デバイスＣがセキュリティキーの設定過程に介入することを防ぐことができる。また、データの送受信のためのチャンネルを用いてセキュリティキーを設定することにより、セキュリティキーの設定のために別途チャンネルを必要としない。
【発明を実施するための最良の形態】
【００２７】
以下、添付された図面を参照し、本実施形態に係る無線ネットワークデバイス同士のセキュリティキー設定方法について詳細に説明する。特に、本実施形態では、セキュリティキーの設定にかかる時間を短縮することにより、第３者の介入を防ぐ方法を提案する。
まず、有限体について説明する。
Ｚｐ＝（０，１，２，３，…，ｐ−１）      ・・・（１）
【００２８】
（１）式において、ｐは、素数を意味する。ｐが素数である場合、任意の数をｐで割った結果の余りの集合であるＺｐは有限体を構成する。
例えば、ｐが７である場合、Ｚ7＝（０，１，２，３，４，５，６）である。下記表１は、ｐが７であるＺ7の加算（ａ＋ｂ）を示す表であって、具体的には、加算結果をｐで割った結果の余りが算出されたものである。
【表１】
2006217629.tif 000003
【００２９】
下記表２は、ｐが７であるＺ7の乗算（ａ×ｂ）を示す表であって、具体的には、乗算結果をｐで割った結果の余りが算出されたものである。
【表２】
2006217629.tif 000004
【００３０】
下記表３は、ｐが７であるＺ7のべき乗（ｂa）を示す表であって、具体的には、べき乗の結果をｐで割った結果の余りが算出されたものである。
【表３】
2006217629.tif 000005
【００３１】
次に、生成子について説明する。ａが１ないし６である場合、算出したｂaの値が重複しないｂを生成子とする。例えば、表３において、生成子は、「３」と「５」である。
【００３２】
図３は、本実施形態による各デバイス同士のセキュリティキーを設定する方法を説明するための図である。以下、図３を用い、本実施形態による各デバイス同士のセキュリティキーを設定する方法について詳述する。
【００３３】
デバイスＡは、有限体を構成している元素のうち一つの生成子を選択して設定し、また、有限体を構成している元素の数よりも小さな任意の数を一つ選択する。例えば、デバイスＡが選択した任意の数を「ｘ」とする。デバイスＡは、選択した任意の数と予め設定した生成子を用いて関数値を算出する。デバイスＡが算出する関数値は、「ｇx」である。デバイスＡは、算出した関数値に対してハッシュ演算を行う。すなわち、デバイスＡは、下記（２）式を算出する。
ｈa＝Ｈ（ｇx）＝ａ1｜ａ2｜ａ3｜…｜ａn      ・・・（２）
【００３４】
デバイスＢも同様に、有限体を構成している元素の数よりも小さな任意の数を一つ選択する。例えば、デバイスＢが選択した任意の数を「ｙ」とする。デバイスＢは、選択した任意の数と予め設定した生成子を用いて関数値を算出する。デバイスＢが算出する関数値は、「ｇy」である。デバイスＢは、算出した関数値に対してハッシュ演算を行う。すなわち、デバイスＢは、下記（３）式を算出する。
ｈb＝Ｈ（ｇy）＝ｂ1｜ｂ2｜ｂ3｜…｜ｂn      ・・・（３）
【００３５】
通常、伝送されるハッシュ演算の結果値であるハッシュ値のサイズを減らすために、デバイスＡとデバイスＢは、ｎを３２よりも大きな任意の数に設定することがある。
【００３６】
そして、図３に示すように、デバイスＡは、算出したハッシュ値の最初のビット値をデバイスＢに送信する（Ｓ３００）。デバイスＢは、算出したハッシュ値の最初のビット値をデバイスＡに送信する（Ｓ３０２）。デバイスＡは、算出したハッシュ値の二番目のビット値をデバイスＢに送信する（Ｓ３０４）。デバイスＢは、算出したハッシュ値の二番目のビット値をデバイスＡに送信する（Ｓ３０６）。デバイスＡは、算出したハッシュ値の最後のビット値をデバイスＢに送信する（Ｓ３０８）。デバイスＢは、算出したハッシュ値の最後のビット値をデバイスＡに送信する（Ｓ３１０）。デバイスＡは、算出した関数値である「ｇx」をデバイスＢに送信する（Ｓ３１２）。デバイスＢは、算出した関数値である「ｇy」をデバイスＡに送信する（Ｓ３１４）。
【００３７】
次に、デバイスＡは、送信された関数値である「ｇy」に対してハッシュ演算を行ったハッシュ値と、Ｓ３０２、Ｓ３０６、Ｓ３１０において送信されたハッシュ値と、を比較する。比較の結果、両値が同じであれば、デバイスＡは、「ｇy」と選択した任意の数を組み合わせてセキュリティキーを生成する。すなわち、デバイスＡが生成するセキュリティキーは、「（ｇy）x」である。これに対し、比較の結果、両値が同じでなければ、デバイスＡは、「ｇy」がデバイスＣにより改ざんされていることを認知する。また、デバイスＢは、送信された関数値である「ｇx」に対してハッシュ演算を行ったハッシュ値と、Ｓ３００、Ｓ３０４、Ｓ３０８において送信されたハッシュ値と、を比較する。比較の結果、両値が同じであれば、デバイスＢは、「ｇx」と選択した任意の数を組み合わせてセキュリティキーを生成する。すなわち、デバイスＢが生成するセキュリティキーは、「（ｇx）y」である。これに対し、比較の結果、両値が同じでなければ、デバイスＢは、「ｇx」がデバイスＣにより改ざんされていることを認知する。このような過程を行うことにより、デバイスＡとデバイスＢは同じセキュリティキーを設定することになる。
【００３８】
なお、図３において、デバイスＡとデバイスＢが交互にビット値あるいは関数値を伝送するように示しているが、実際には、デバイスＡとデバイスＢは互いに独立的にビット値あるいは関数値を送信する。
【００３９】
上述したように、本実施形態によれば、セキュリティキーの設定にかかる時間を短縮するために、送受されるビット値の数を低減することができる。現在の技術の発展速度からして、近い将来には、無線通信速度が数Ｇｂｐｓないし数十Ｇｂｐｓに達すると見込まれる。例えば、無線ネットワークにおける通信速度が１Ｇｂｐｓであるとしたとき、１ビットのデータの伝送にかかる時間中に電波が進む距離は、下記（４）式の通りである。
λ＝ｃ／ｆ＝（３×１０8）／（１×１０9）＝３０ｃｍ      ・・・（４）
【００４０】
（４）式に示すように、クロック間隔が３０ｃｍであるため、１ビットのデータの伝送に要される距離は、３０ｃｍとなる。すなわち、３２ビットのデータの伝送にかかる距離は、９６０ｃｍとなるため、デバイスＡとデバイスＢから９６０ｃｍを外れた領域に位置しているデバイスＣは、デバイスＡとデバイスＢとのセキュリティキーの設定に介入することができない。
【００４１】
図４は、本実施形態を適用するために、無線ネットワークにおける通信速度を算出する例を説明するための図である。
【００４２】
以下、まず、通信速度の算出に用いられる定数について説明する。Ｔｕは、１ビットのデータの伝送にかかる時間を示し、ｃは、光速を示す。ＤABは、デバイスＡとデバイスＢとの距離を示し、ＤBCは、デバイスＢとデバイスＣとの距離を示し、ＤCAは、デバイスＣとデバイスＡとの距離を示す。ｎは、ハッシュ値のビット数を示す。デバイスＡとデバイスＢがセキュリティキーを設定するためには、下記（５）式を満足しなければならない。
ｃ-1×（ＤBC＋ＤCA）≧ｎ×Ｔｕ＋ｃ-1×ＤAB      ・・・（５）
【００４３】
「ｃ-1×（ＤBC＋ＤCA）」は、デバイスＡからのハッシュ値の最初のビット値がデバイスＣを経由してデバイスＢに送信されるためにかかる時間を示す。言い換えると、「ｃ-1×（ＤBC＋ＤCA）」は、デバイスＣがデバイスＡとデバイスＢとのセキュリティキーの設定に介入するためにかかる時間を示す。「ｎ×Ｔｕ」は、ハッシュ値の最初のビット値の伝送時間と最後のビット値の伝送時間との差分を示す。「ｃ-1×ＤAB」は、デバイスＡからのハッシュ値の最初のビット値がデバイスＢに送信されるのにかかる時間を示す。前記（５）式において、「ｎ×Ｔｕ」を考慮する理由は、デバイスＣの介入を完全に遮断するためである。すなわち、デバイスＣからハッシュ値の最初のビット値が受信される前に、デバイスＢは、デバイスＡからハッシュ値の最後のビット値を受信しなければならない。
【００４４】
また、例えば、ＤABが０に収斂するとしたとき、前記（５）式は、下記（６）式のように表わすことができる。
Ｔｕ≦２Ｒ／（ｎ×ｃ）      ・・・（６）
【００４５】
Ｒは、デバイスＡとデバイスＣとの距離あるいはデバイスＢとデバイスＣとの距離を示す。ハッシュ値のビット数が３２ビットであり、Ｒ＝１であれば、Ｔｕは、下記（７）式のように表わすことができる。
Ｔｕ≦２×１０-10      ・・・（７）
【００４６】
すなわち、無線ネットワークにおける通信速度が５０Ｇｂｐｓ以上であれば、３０ｃｍ以内に他のデバイスがないことをユーザが物理的に確認することにより、本願発明において提案する方法を用いることができる。
【００４７】
以上、本発明の好適な実施の形態について詳述したが、本発明はこれらに限定されるものではなく、特許請求の範囲において請求する本発明の要旨を逸脱しない限り、当該発明が属する技術分野における通常の知識を有する者であれば、だれでも各種の変形実施が可能であることは言うまでもなく、そのような変更は請求の範囲に記載の範囲内にある。
【図面の簡単な説明】
【００４８】
【図１】従来のＤＨプロトコルを用いてデバイス同士のセキュリティキーを設定する方法を説明するための図である。
【図２】デバイスＣが積極的にデバイスＡとデバイスＢのセキュリティキーの割り当てに介入する場合に生じうる問題点を説明するための図である。
【図３】本実施形態による各デバイス同士のセキュリティキーを設定する方法を説明するための図である。
【図４】本実施形態を適用するために、無線ネットワークにおける通信速度を算出する例を説明するための図である。
【符号の説明】
【００４９】
Ａ，Ｂ，Ｃ  デバイス
【図１】
2006217629.tif 000006
【図２】
2006217629.tif 000007
【図３】
2006217629.tif 000008
【図４】
2006217629.tif 000009