(57)【特許請求の範囲】
【請求項１】
鍵共有のために複数のネットワークデバイスを構成する複数の構成サーバを備える暗号システムであって、各構成サーバが、
前記構成サーバに特定的なルート鍵材料を電子形式で取得する鍵材料取得器と、
前記複数のネットワークデバイスのうち構成対象のネットワークデバイスのネットワークデバイス識別番号を電子形式で取得するネットワークデバイスマネージャと、
前記ルート鍵材料及び前記ネットワークデバイス識別番号から前記ネットワークデバイスのためのローカル鍵材料を計算する計算ユニットと、
を備え、
前記ネットワークデバイスマネージャが更に、計算した前記ローカル鍵材料を構成対象の前記ネットワークデバイスに提供し、
前記複数のネットワークデバイスの各ネットワークデバイスについて、前記複数の構成サーバのうち少なくとも２つの構成サーバが、計算したローカル鍵材料を前記ネットワークデバイスに提供し、前記ネットワークデバイスが、少なくとも２つの提供された計算したローカル鍵材料を加算して、単一の組み合わせローカル鍵材料を取得する、暗号システム。
【請求項２】
前記ルート鍵材料が二変数多項式を含み、構成サーバによってネットワークデバイスのための前記ローカル鍵材料を計算することが、前記ネットワークデバイス識別番号を特定の前記多項式に代入することによって一変数多項式を取得することを含む、請求項１に記載の暗号システム。
【請求項３】
前記ルート鍵材料が二変数多項式の第１の秘密セット及びリダクション整数の第２の秘密セットを含み、前記第１の秘密セット内の各二変数多項式が前記第２の秘密セットのリダクション整数に関連付けられ、
一変数秘密鍵多項式を含むネットワークデバイスのためのローカル鍵材料が構成サーバによって計算され、前記計算ユニットが、
前記第１の秘密セットの各特定の多項式について、前記ネットワークデバイス識別番号を前記特定の多項式に代入すること、及び前記特定の多項式に関連付けられた前記リダクション整数を法としてリダクションすること、及び
一変数多項式セットを合計すること、
によって前記一変数多項式セットを取得することにより、前記第１及び第２の秘密セットから前記一変数秘密鍵多項式を計算する、請求項１に記載の暗号システム。
【請求項４】
前記複数の構成サーバが全て同一の公開グローバルリダクション整数のために構成され、秘密リダクション整数と前記公開グローバルリダクション整数との差が２のべき乗の倍数であり、任意選択的に、前記計算ユニットが、前記公開グローバルリダクション整数を法として前記一変数多項式セットの合計結果をリダクションする、請求項３に記載の暗号システム。
【請求項５】
各秘密リダクション整数ｐｉが、Ｂｉ＜２Ｂである整数Ｂｉについて、ｐｉ＝Ｎ−Ｂｉ２ｂを満たし、前記ネットワークデバイス識別番号がＢビット長であり、共有鍵がｂビット長である、請求項４に記載の暗号システム。
【請求項６】
複数のネットワークデバイスのうち任意の１つとの共有鍵を決定する第１のネットワークデバイスであって、
第１のネットワークデバイス識別番号を記憶する電子記憶装置と、
複数の構成サーバのうち少なくとも２つの異なる構成サーバから複数のローカル鍵材料を受信する受信器と、
前記複数のネットワークデバイスのうち第２のネットワークデバイスの第２のネットワークデバイス識別番号を取得すると共に、前記第１のネットワークデバイス識別番号を前記第２のネットワークデバイスに提供する通信ユニットと、
前記第２のネットワークデバイス識別番号と、前記第１のネットワークデバイスの前記複数のローカル鍵材料のうち少なくとも２つと、から共有鍵を導出する共有鍵ユニットと、を備え、前記共有鍵ユニットが、前記第１のネットワークデバイスの前記複数のローカル鍵材料のうち前記少なくとも２つを組み合わせて単一の組み合わせローカル鍵材料を取得し、前記共有鍵ユニットが前記少なくとも２つのローカル鍵材料を加算してそれらを組み合わせ、前記共有鍵が前記第２のネットワークデバイス識別番号及び前記組み合わせローカル鍵材料から導出される、第１のネットワークデバイス。
【請求項７】
前記電子記憶装置が更に公開グローバルリダクション整数を記憶し、前記共有鍵ユニットが前記公開グローバルリダクション整数を法として前記組み合わせローカル鍵材料をリダクションし、前記複数のネットワークデバイスの全てのネットワークデバイスが同一の公開グローバルリダクション整数を記憶している、請求項６に記載の第１のネットワークデバイス。
【請求項８】
前記共有鍵ユニットが、前記第２のネットワークデバイス識別番号と、前記第１のネットワークデバイスの前記複数のローカル鍵材料のうち第１のローカル鍵材料と、から第１の中間共有鍵を導出すると共に、前記第２のネットワークデバイス識別番号と、前記第１のネットワークデバイスの前記複数のローカル鍵材料のうち第２のローカル鍵材料と、から第２の中間共有鍵を導出し、前記共有鍵が前記第１及び第２の中間鍵を組み合わせることによって導出される、請求項６に記載の第１のネットワークデバイス。
【請求項９】
前記複数のローカル鍵材料が複数の関連付けられた構成サーバ識別子と共に前記第１のネットワークデバイスに記憶され、構成サーバ識別子が、どの構成サーバから関連付けられたローカル鍵材料が前記第１のネットワークデバイスで受信されたかを示し、前記第１のネットワークデバイスが、複数の構成サーバ識別子の中のサブセットについて、前記第１及び第２のネットワークデバイスが双方とも前記サブセットの構成サーバに関連付けられたローカル鍵材料を有するように前記第２のネットワークデバイスと合意する構成ユニットを備える、請求項６乃至８のいずれか１項に記載の第１のネットワークデバイス。
【請求項１０】
前記第１のネットワークデバイスの前記構成ユニットが、前記複数の構成サーバ識別子を前記第２のネットワークデバイスに提供し、前記第２のネットワークデバイスから前記サブセットを受信し、及び／又は、
前記第１のネットワークデバイスの前記構成ユニットが、前記第２のネットワークデバイスから複数の構成サーバ識別子を受信し、前記受信した複数の構成サーバ識別子と前記第１のネットワークデバイスの前記複数の構成サーバ識別子との共通部分を決定し、前記共通部分から前記サブセットを選択し、前記サブセットを前記第２のネットワークデバイスに提供する、請求項９に記載の第１のネットワークデバイス。
【請求項１１】
ローカル鍵材料が一変数秘密鍵多項式を含み、前記ローカル鍵材料が請求項２に記載の構成サーバから取得され、
前記電子記憶装置が公開グローバルリダクション整数を記憶し、前記複数のネットワークデバイスの全てのネットワークデバイスが同一の公開グローバルリダクション整数を共有し、
前記共有鍵ユニットが、
前記複数のローカル鍵材料のうち１つのローカル鍵材料又は前記組み合わせローカル鍵材料の前記一変数秘密鍵多項式に前記第２のネットワークデバイス識別整数を代入し、
前記公開グローバルリダクション整数を法として前記代入の結果をリダクションする、請求項６乃至１０のいずれか１項に記載の第１のネットワークデバイス。
【請求項１２】
請求項６乃至１１のいずれか１項に記載の第１のネットワークデバイスを複数備える、請求項１乃至５のいずれか１項に記載の暗号システム。
【請求項１３】
複数のネットワークデバイスのうち任意の１つとの共有鍵を決定する共有方法であって、
前記複数のネットワークデバイスのうち第１のネットワークデバイスの第１のネットワークデバイス識別番号を記憶することと、
複数の構成サーバのうち少なくとも２つの異なる構成サーバから複数のローカル鍵材料を受信することと、
前記複数のネットワークデバイスのうち第２のネットワークデバイスの第２のネットワークデバイス識別番号を取得することと、
前記第１のネットワークデバイス識別番号を前記第２のネットワークデバイスに提供することと、
前記第１のネットワークデバイスの前記複数のローカル鍵材料のうち前記少なくとも２つを加算することによって前記少なくとも２つのローカル鍵材料を組み合わせて単一の組み合わせローカル鍵材料を取得することと、
前記第２のネットワークデバイス識別番号及び前記第１のネットワークデバイスの前記組み合わせローカル鍵材料から、前記第１及び第２のネットワークデバイス間で共有される共有鍵を導出することと、
を備える、方法。
【請求項１４】
コンピュータ上で実行された場合に請求項１３に記載の方法の全てのステップを遂行するコンピュータプログラムコード手段を備える、コンピュータプログラム。
【請求項１５】
コンピュータ読み取り可能媒体上で具現化される、請求項１４に記載のコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、暗号システム、ネットワークデバイス、共有方法、コンピュータプログラム、及びコンピュータ読み取り可能媒体に関する。
【背景技術】
【０００２】
暗号化技術において、鍵合意プロトコル（ｋｅｙ  ａｇｒｅｅｍｅｎｔ  ｐｒｏｔｏｃｏｌ）は、まだ共通鍵を共有していない２つ以上のパーティがそのような鍵に関して合意することを可能とするプロトコルである。好ましくは、双方のパーティが、どちらも鍵の選択を強制できないように結果に影響を及ぼすことができる。２つのパーティ間の全ての通信を盗聴する攻撃者は、鍵について何も知らないはずである。同じ通信を見ている攻撃者は何も知らないか又はほとんど知らないが、それらのパーティは共有鍵を導出できる。
【０００３】
鍵合意プロトコルは、例えば通信を安全にするため、例えばパーティ間のメッセージを暗号化及び／又は認証するために有用である。
【０００４】
実用的な鍵合意プロトコルは、１９７６年、Ｗｈｉｔｆｉｅｌｄ  Ｄｉｆｆｉｅ及びＭａｒｔｉｎ  Ｈｅｌｌｍａｎが公開鍵暗号化技術の概念を紹介した時に導入された。彼らは、ｑ個の元を含む有限体ＧＦ（ｑ）について対数を計算する見かけ上の困難を利用する、２つのパーティ間の鍵合意のためのシステムを提案した。このシステムを用いて、２人のユーザは対称鍵に関して合意することができる。次いでこの対称鍵を、例えば２つのパーティ間の暗号化通信のために用いればよい。
【０００５】
鍵合意のためのＤｉｆｆｉｅ−Ｈｅｌｌｍａｎシステムは、パーティがまだ共有の秘密を持たない場合に適用可能である。Ｄｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵合意方法は、例えば有限体について累乗演算（ｅｘｐｏｎｅｎｔｉａｔｉｏｎ  ｏｐｅｒａｔｉｏｎ）を実行するといったリソースの多い数学的演算を必要とする。指数及び有限体サイズは双方とも大きい場合がある。このため、鍵合意プロトコルは低リソースデバイスではあまり適切でなくなる。一方、鍵合意プロトコルは、リソースが制約されたデバイスにおいて極めて有用である。例えば、モノのインターネット（ｉｎｔｅｒｎｅｔ  ｏｆ  ｔｈｉｎｇｓ）、アドホック無線ネットワーク等の適用分野では、鍵合意を用いてデバイス間のリンクを保護することができる。別の例には、リーダと電子タグ、例えばカードリーダとスマートカードとの間、又はタグリーダとタグ、例えばＲＦＩＤタグ又はＮＦＣタグとの間の通信がある。
【０００６】
所与の通信ネットワークにおいてネットワークデバイスペア間の安全な接続を設立する問題に対する別の手法は、Ｃ．Ｂｌｕｎｄｏ、Ａ．Ｄｅ  Ｓａｎｔｉｓ、Ａ．Ｈｅｒｚｂｅｒｇ、Ｓ．Ｋｕｔｔｅｎ、Ｕ．Ｖａｃｃａｒｏ、及びＭ．Ｙｕｎｇの「Ｐｅｒｆｅｃｔｌｙ−Ｓｅｃｕｒｅ  Ｋｅｙ  ｄｉｓｔｒｉｂｕｔｉｏｎ  ｆｏｒ  Ｄｙｎａｍｉｃ  Ｃｏｎｆｅｒｅｎｃｅｓ」（Ｓｐｒｉｎｇｅｒ  Ｌｅｃｔｕｒｅ  Ｎｏｔｅｓ  ｉｎ  Ｍａｔｈｅｍａｔｉｃｓ、Ｖｏｌ．７４０、ｐｐ．４７１〜４８６、１９９３年）（「Ｂｌｕｎｄｏ」と呼ぶ）に与えられている。
【０００７】
このシステムは、ネットワーク権限又は信頼できるサードパーティ（ＴＴＰ：Ｔｒｕｓｔｅｄ  Ｔｈｉｒｄ  Ｐａｒｔｙ）とも呼ばれる中央権限が、ｐ個の元を含む有限体Ｆ内に係数を有する対称二変数多項式ｆ（ｘ，ｙ）を生成すると仮定している。ここで、ｐは素数又は素数のべき乗である。各デバイスはＦ内に識別番号を有し、ＴＴＰによってローカル鍵材料が与えられる。識別子ηを有するデバイスでは、ローカル鍵材料は多項式ｆ（η，ｙ）の係数である。デバイスηがデバイスη’と通信を行いたい場合、デバイスηは、その鍵材料を用いて鍵Ｋ（η，η’）＝ｆ（η，η’）を生成する。ｆは対称であるので、同じ鍵が生成される。ローカル鍵材料は秘密である。ローカル鍵材料の知識は直接システムを危険にさらす。具体的には、盗聴者が同じ共有鍵を取得することを可能とする。この方法では、デバイスネットワーク内の各デバイスがそれ自身の一意の識別番号及びローカル鍵材料を有する必要がある。
【発明の概要】
【発明が解決しようとする課題】
【０００８】
攻撃者がｔ＋１以上のデバイスの鍵材料を知る場合、この鍵共有スキームに問題が起こる。ここで、ｔは二変数多項式の次数である。この場合、攻撃者は多項式ｆ（ｘ，ｙ）を復元することができる。その時点でシステムのセキュリティは完全に破られる。任意の２つのデバイスの識別番号が与えられると、攻撃者はこのデバイスペア間で共有される鍵を復元することができる。
【０００９】
信頼できるサードパーティは単一障害点を形成する。信頼できるサードパーティが危険にさらされ、そのルート鍵材料が漏洩した場合、全てのネットワークデバイスの鍵材料が計算される可能性がある。ローカル鍵材料から導出され、結局はルート鍵材料から導出される鍵を用いた全ての通信は危険にさらされ得る。例えば、暗号が破られたり、認証が偽造されたりする恐れがある。
【００１０】
実際、信頼できるサードパーティ自体は、個々のノードの鍵材料及び任意のノードペア間の鍵を、そのルート鍵材料及びノードの識別子（ｉｄｅｎｔｉｔｙ）から復元することができる。従って、ＴＴＰはネットワーク内の全ての通信を立ち聞きすることができる。これは、極めて高レベルの信頼性を必要とするので、ある特定の環境では望ましくない状況である。
【課題を解決するための手段】
【００１１】
鍵共有のため複数のネットワークデバイスを構成するように設けられた複数の構成サーバを備える暗号システムが提供される。
【００１２】
各構成サーバは、
構成サーバに特定的なルート鍵材料を電子形式で取得するように設けられた鍵材料取得器と、
複数のネットワークデバイスのうち構成対象のネットワークデバイスのネットワークデバイス識別番号を電子形式で取得するように設けられたネットワークデバイスマネージャと、
ルート鍵材料及びネットワークデバイス識別番号からネットワークデバイスのためのローカル鍵材料を計算するように設けられた計算ユニットと、
を備え、
ネットワークデバイスマネージャが更に、計算したローカル鍵材料を構成対象のネットワークデバイスに提供するように設けられ、
複数のネットワークデバイスの各ネットワークデバイスについて、複数の構成サーバのうち少なくとも２つの構成サーバが、計算したローカル鍵材料をネットワークデバイスに提供し、ネットワークデバイスが、少なくとも２つの提供された計算したローカル鍵材料を加算して、単一の組み合わせローカル鍵材料を取得するように設けられている。
【００１３】
ネットワークデバイスは少なくとも２つの異なる構成サーバからローカル鍵材料を受信するので、信頼できるサードパーティによって生じる単一障害点は排除される。ネットワークデバイスは、２つ以上の構成サーバから取得されるローカル鍵材料を用い得る。１つの構成サーバが危険にさらされた場合であっても、この構成サーバから以前ローカル鍵材料を受信したネットワークデバイスによって導出される鍵は、依然として安全である。更に、鍵生成プロセスは複数の構成サーバのローカル鍵材料を使用して単一のカギを導出するので、１つだけの構成サーバが鍵を導出することはできない。従って、複数の構成サーバの使用に要求される信頼レベルは、構成サーバが１つしか存在しない場合よりも低い。
【００１４】
例えば、ルート鍵材料は二変数多項式を含み、構成サーバによってネットワークデバイスのためのローカル鍵材料を計算することは、ネットワークデバイス識別番号を特定の多項式に代入することによって一変数多項式を取得することを含み得る。一変数多項式は、組み合わせ演算子としての加算と両立できる。これによってネットワークデバイスは、例えば一変数多項式を加算するか、又はそこから導出された中間鍵を加算することができる。
【００１５】
本発明の一態様は、複数のネットワークデバイスのうち任意の１つとの共有鍵を決定するように構成された第１のネットワークデバイスに関する。第１のネットワークデバイスは、
第１のネットワークデバイス識別番号を記憶するように設けられた電子記憶装置と、
複数の構成サーバのうち少なくとも２つの異なる構成サーバから複数のローカル鍵材料を受信するように設けられた受信器と、
複数の構成サーバのうち少なくとも第２のネットワークデバイスの第２のネットワーク識別番号を取得すると共に、第１のネットワークデバイス識別番号を第２のネットワークデバイスに提供するように設けられた通信ユニットと、
第２のネットワークデバイス識別番号と、第１のネットワークデバイスの複数のローカル鍵材料のうち少なくとも２つと、から共有鍵を導出するように設けられた共有鍵ユニットと、を備え、共有鍵ユニット（３３０）が、第１のネットワークデバイスの複数のローカル鍵材料のうち少なくとも２つを組み合わせて単一の組み合わせローカル鍵材料を取得するように設けられ、共有鍵ユニット（３３０）が、少なくとも２つのローカル鍵材料を加算してそれらを組み合わせ、共有鍵が第２のネットワークデバイス識別番号及び組み合わせローカル鍵材料から導出される。
【００１６】
ネットワークデバイスでは、その共有鍵が、例えば信頼できるサードパーティのような異なる場所での障害によって危険にさらされるというリスクが低減する。その複数のローカル鍵材料のうち１つが知られた場合であっても、まだ別のローカル材料があり、そこから共有鍵が導出される。従って、単一障害点は排除される。更に、鍵生成プロセスは複数の構成サーバのローカル鍵材料を使用するので、単一の構成サーバが鍵を導出することはできない。
【００１７】
一実施形態において、共有鍵ユニットは、第１のネットワークデバイスの複数のローカル鍵材料のうち少なくとも２つを組み合わせて単一の組み合わせローカル鍵材料を取得するように設けられ、共有鍵は、第２のネットワークデバイス識別番号及び組み合わせローカル鍵材料から導出される。例えばローカル鍵材料を加算することができる。組み合わせた後、元の鍵材料を削除することによって記憶要件を低減させてもよい。元の鍵材料はもはやデバイス内に存在しないので、結託攻撃はいっそう困難となる。更に、組み合わせローカル鍵材料を用いた更なる計算はいっそう高効率となる。
【００１８】
鍵材料を組み合わせて単一の組み合わせ鍵材料とする代わりに、共有鍵ユニットは、第２のネットワークデバイス識別番号と、第１のネットワークデバイスの複数のローカル鍵材料のうち第１のローカル鍵材料と、から第１の中間共有鍵を導出するように設けると共に、第２のネットワークデバイス識別番号と、第１のネットワークデバイスの複数のローカル鍵材料のうち第２のローカル鍵材料と、から第２の中間共有鍵を導出するように設けることができる。共有鍵は、第１及び第２の中間鍵を組み合わせることによって導出される。１より大きい任意の数のローカル鍵材料を用いればよい。
【００１９】
双方の場合において、少なくとも２つの鍵材料が、結果として生じる共有鍵に影響を及ぼす。
【００２０】
暗号システムの一実施形態において、ローカル鍵材料は例えば一変数多項式のような多項式を含み、ネットワークデバイスは、少なくとも２つの提供された多項式を加算することにより、少なくとも２つの提供された計算したローカル鍵材料を加算して、単一の組み合わせローカル鍵材料を取得するように設けられている。例えば、構成サーバに特定的なルート鍵材料は、１つ以上の多変数多項式、例えば二変数多項式を含むことができ、この多項式からネットワークデバイスのためのローカル鍵材料が計算される。
【００２１】
一実施形態において、複数のローカル鍵材料は、複数の関連付けられた構成サーバ識別子と共に第１のネットワークデバイスに記憶され、構成サーバ識別子は、どの構成サーバから関連付けられたローカル鍵材料が第１のネットワークデバイスで受信されたかを示し、第１のネットワークデバイスは、複数の構成サーバ識別子の中のサブセットについて、第１及び第２のネットワークデバイスが双方ともサブセットの構成サーバに関連付けられたローカル鍵材料を有するように第２のネットワークデバイスと合意するよう設けられた構成ユニットを備える。
【００２２】
このシステムによってネットワークデバイスは、より多くのローカル鍵材料を蓄積することができる。例えばこれは、ダウンタイムなしで、かつシステムを危険にさらすことなく、構成サーバ間のマイグレーションを可能とする。鍵材料が単一の組み合わせ鍵材料として記憶される場合、マイグレーションの間、構成サーバは追加の鍵材料を送信することができ、これが記憶された組み合わせ鍵材料と組み合わされると、この組み合わせから古い鍵材料を除去すると共に、任意選択的に新しい鍵材料を直接加算する効果を有する。これは結託攻撃を複雑化する。
【００２３】
本明細書に記載される鍵共有方法は、広範囲の実用的な用途に適用できる。そのような実用的な用途には、家庭用オートメーション、移動通信等が含まれる。
【００２４】
一実施形態において、共有鍵ユニットは、第２のネットワークデバイス識別番号と、第１のネットワークデバイスの複数のローカル鍵材料のうち少なくとも３つ又は少なくとも４つと、から共有鍵を導出するように設けられている。
【００２５】
本発明に従った方法は、コンピュータ実施方法としてコンピュータ上で、又は専用ハードウェアにおいて、又は双方の組み合わせで実装され得る。本発明に従った方法のための実行可能コードは、コンピュータプログラム製品に記憶することができる。コンピュータプログラム製品の例は、メモリデバイス、光記憶デバイス、集積回路、サーバ、オンラインソフトウェア等を含む。好ましくは、コンピュータプログラム製品は、このプログラム製品がコンピュータ上で実行された場合に本発明に従った方法を遂行するためコンピュータ読み取り可能媒体上に記憶された非一時的（ｎｏｎ−ｔｒａｎｓｉｔｏｒｙ）プログラムコード手段を含む。
【００２６】
好適な実施形態において、コンピュータプログラムは、コンピュータ上で実行された場合に本発明に従った方法の全てのステップを遂行するよう適合されたコンピュータプログラムコード手段を備える。好ましくは、コンピュータプログラムはコンピュータ読み取り可能媒体上で具現化される。
【図面の簡単な説明】
【００２７】
本発明のこれら及び他の態様は、以下に説明される実施形態を参照して明らかとなり、説明されるであろう。
【００２８】
【図１ａ】暗号システムの実施形態の一例をブロック図として概略的に示す。
【図１ｂ】電子記憶装置の実施形態の一例をブロック図として概略的に示す。
【図２】構成サーバ２００の実施形態の一例をブロック図として概略的に示す。
【図３】第１のネットワークデバイス３００及び第２のネットワークデバイス３５０の実施形態の一例をブロック図として概略的に示す。
【図４】鍵共有システム１０２の実施形態の一例をブロック図として概略的に示す。
【図５】方法５００の実施形態の一例をフローチャートとして概略的に示す。
【図６】集積回路４００の実施形態の一例をブロック図として概略的に示す。
【００２９】
異なる図において同一の参照番号を有するアイテムは、同一の構造的特徴及び同一の機能を有するか、又は同一の信号であることに留意すべきである。そのようなアイテムの機能及び／又は構造についてすでに説明されている場合、詳細な説明においてその説明を繰り返す必要はない。
【００３０】
図１から図４、図６における参照番号のリスト
１    複数の構成サーバ
２    複数のネットワークデバイス
１００、１０２    鍵共有システム
１１０  個人化デバイス
１２１、１２２  鍵共有
２００、２０１、２０２  構成サーバ
２１０、２１１、２１２  鍵材料取得器
２２０、２２３、２２５  計算ユニット
２２２  代入ユニット
２２４  多項式リダクションユニット
２２６  多項式加算ユニット
２２８  一変数多項式セットの合計
２２９  一変数秘密鍵多項式
２３０  ネットワークデバイスマネージャ
２３２  識別番号メッセージ
２３６  秘密鍵材料メッセージ
２３８  接続
２４０  多項式操作ユニット
２５０  パラメータセット
２５２  二変数多項式の第１の秘密セット
２５４  リダクション整数の第２の秘密セット
２５６  公開グローバルリダクション整数
２７６  構成サーバ識別子
３００  第１のネットワークデバイス
３１０  識別番号
３２０、３２１、３２２  電子記憶装置
３３０  共有鍵ユニット
３３２  代入ユニット
３３４  整数リダクションユニット
３３６  鍵調停ユニット
３４０  鍵導出デバイス
３４２  通信ユニット
３４５  暗号ユニット
３５０  第２のネットワークデバイス
３５５  識別番号
３６０  第３のネットワークデバイス
３７０  第１の鍵材料セット
３７２  秘密一変数鍵多項式
３７４  公開グローバルリダクション整数
３７６  構成サーバ識別子
３８０  第２の鍵材料セット
３８２  秘密一変数鍵多項式
３８６  構成サーバ識別子
３９０  構成ユニット
４００  集積回路
４１０  相互接続
４２０  プロセッサ
４３０  メモリ
４４０  入出力ユニット
４５０  計算ユニット
【発明を実施するための形態】
【００３１】
本発明は多くの異なる形態の実施形態が可能であるが、１つ以上の具体的な実施形態が図面に示され明細書に詳しく記載される。これは、本開示が本発明の原理の例示として見なされるものであり、図示され記載される具体的な実施形態に本発明を限定することは意図されないという了解のもとに行われる。以下で、理解を得るため、動作中の回路について記載する。しかしながら、各要素は、それらが実行するものとして記載される機能を実行するように設けられることは明らかである。
【００３２】
図１ａは、暗号鍵共有システム１００の実施形態の一例をブロック図として概略的に示す。
【００３３】
鍵共有システム１００は、鍵共有のため複数のネットワークデバイス１を構成するように設けられた複数の構成サーバ２を備えている。
【００３４】
図１ａは、構成サーバ２００、２０１、及び２０２を示す。少なくとも２つの構成サーバがある。
【００３５】
各構成サーバは、鍵材料取得器、ネットワークデバイスマネージャ、計算ユニット、及びネットワークデバイスマネージャを備えている。明確さのため、図１ａは鍵材料取得器及び計算ユニットのみを示す。図１ａは、構成サーバ２００のための鍵材料取得器２１０及び計算ユニット２２０、構成サーバ２０１のための鍵材料取得器２１１及び計算ユニット２２３、構成サーバ２０２のための鍵材料取得器２１２及び計算ユニット２２５を示す。計算ユニット２２０、２２３、及び２２５は同一の設計を共有し得る。
【００３６】
鍵材料取得器は、構成サーバに特定的なルート鍵材料を電子形式で取得するように設けられている。すなわち、異なる構成サーバは異なるルート鍵材料を有する。例えば鍵材料取得器は、ルート鍵材料を発生するか又はルート鍵材料を受信することができる。一実施形態では、鍵材料取得器はルート鍵材料を記憶する記憶装置を備え、この記憶装置からルート鍵材料を検索する。一実施形態では、ルート鍵材料は１つ以上の秘密二変数多項式（ｆｉ（，））を含む。記憶装置は、電子メモリ、磁気記憶装置、光学記憶装置等とすればよい。
【００３７】
ネットワークデバイスマネージャは、複数のネットワークデバイス１のうち構成対象のネットワークデバイスのネットワークデバイス識別番号（Ａ）を電子形式で取得するように設けられている。
【００３８】
計算ユニット２２０は、ルート鍵材料及びネットワークデバイス識別番号（Ａ）から、ネットワークデバイスのローカル鍵材料を計算するように設けられている。ローカル鍵材料は鍵材料セットとも呼ばれる。
【００３９】
ある実施形態において、計算ユニットは、１つ以上の非公開の二変数多項式（ｆｉ（Ａ，））にネットワークデバイス識別番号を代入して、ローカル鍵材料が導出される１つ以上の一変数多項式を取得するように設けられている。ローカル鍵材料は一変数多項式を含む。
【００４０】
ネットワークデバイスマネージャ２３０は更に、計算したローカル鍵材料を構成対象のネットワークデバイスに提供するように設けられている。これを提供する１つの方法は送信することである。例えばネットワークデバイスマネージャ２３０は、計算したローカル鍵材料を構成対象のネットワークデバイスに送信するように設ければよい。
【００４１】
構成サーバは、例えばウェブサーバとして実装され得る。ネットワークデバイスマネージャは、例えばＬＡＮネットワーク又はインターネット等のコンピュータ−ネットワーク接続を用いて実装され得る。構成サーバは、必ずしもコンピュータネットワーク接続を使用するものではなく、構成のもとで直接ネットワークデバイスに接続してもよい。後者は例えば、ネットワークデバイスの製造と共に用いるのに適している。システム１００の単一の実施形態において、異なるタイプの構成サーバを組み合わせてもよい。ローカル鍵材料を構成サーバからネットワークデバイスへ転送するための接続は、図１ａにおいて、複数の構成サーバ２から複数のネットワークデバイス１への矢印として図示している。
【００４２】
鍵共有システム１００は、鍵共有のため複数のネットワークデバイス１を構成するように設けられた複数の構成サーバ２を備えている。
【００４３】
図１ａは、ネットワークデバイス３００、３５０、及び３６０を示す。少なくとも２つのネットワークデバイスがあるが、典型的な実施形態では、ネットワークデバイスの数は構成サーバの数よりもはるかに多い。例えばある実施形態では、構成サーバの少なくとも５０倍の数のネットワークデバイスがある。
【００４４】
一実施形態に従った複数のデバイスは、それらのペアの間で容易に鍵を確立することができ、これによって任意の２つのデバイス間で安全な通信を可能とする。従って、これらのデバイスをネットワークデバイスと呼ぶ。ある実施形態では、２つのデバイス間の通信は無線通信を用いる。例えば有線通信のような他の形態の通信も可能である。
【００４５】
各ネットワークデバイスは、第１のネットワークデバイス識別番号を記憶するように設けられた電子記憶装置を備えている。図１ａは、電子記憶装置３２０を備えた第１のネットワークデバイス３００、電子記憶装置３２１を備えた第２のネットワークデバイス３５０、電子記憶装置３２２を備えた第３のネットワークデバイス３６０を示す。複数のネットワークデバイス間で導出できる異なる鍵の数が充分に多いことを保証するため、識別番号は複数のネットワークデバイス内のあるネットワークデバイスを一意に識別することが好ましいが、後者は必須ではない。例えば識別番号は、複数のデバイス内でデバイスをアドレスするように機能し得る。一方、例えば鍵合意のため識別番号を予約する等、独立したアドレス機構を使用してもよい。
【００４６】
ネットワークデバイスは更に、受信器、通信ユニット、及び共有鍵ユニット３３０を備えている。明確さのため、図１ａは電子記憶装置及び計算ユニットのみを示す。
【００４７】
受信器は、複数の構成サーバのうち少なくとも２つの異なる構成サーバから複数のローカル鍵材料を受信するように設けられている。受信器はネットワーク接続ユニットとすればよく、例えばＷｉ−Ｆｉ（登録商標）のような無線接続ユニット、又は例えばイーサネット（登録商標）のような有線接続である。受信器は、例えば製造中にローカル鍵材料をデバイスにロードするための専用の接続としてもよい。
【００４８】
ネットワークデバイスは、異なる構成サーバからローカル鍵材料を受信する。ネットワークデバイスは、異なるタイプの構成サーバからローカル鍵材料を受信することができる。例えば、製造中にネットワークデバイスは第１のローカル鍵材料を受信し、後に例えばコンピュータネットワーク接続を介して追加のローカル鍵材料を受信し得る。
【００４９】
ネットワークデバイスは、それらのローカル鍵材料を受信した後、別のネットワークデバイスと鍵を共有するために構成サーバによる介入を必要としない。複数のネットワークデバイスのうち別のネットワークデバイス、例えば第２のネットワークデバイスと鍵を共有するため、ネットワークデバイスの通信ユニット及び共有鍵ユニットがネットワークデバイスによって用いられる。通信ユニットは、複数のネットワークデバイスのうち第２のネットワークデバイスの第２のネットワークデバイス識別番号（Ｂ）を取得すると共に、第１のネットワークデバイス識別番号を第２のネットワークデバイスに提供するように設けられている。共有鍵ユニット３３０は、第２のネットワークデバイス識別番号と、第１のネットワークデバイスの複数のローカル鍵材料のうち少なくとも２つと、から共有鍵を導出するように設けられている。第２のネットワークデバイスは同様の計算を実行するが、それ自身の複数のローカル鍵材料及び第１のデバイスの識別番号を用いる。両者における計算の結果が共有鍵である。
【００５０】
２つのネットワークデバイス、例えば第１のネットワークデバイス３００と第２のネットワークデバイス３５０との間の通信について知っている者は、過度に大きいリソースを用いることなしに共有鍵を取得することはできない。デバイス３６０でさえ、デバイス３００と３５０との間で共有される鍵を導出できない。
【００５１】
例えば鍵合意プロトコル等、システム１００において使用され得る鍵共有のための複数のアルゴリズムがある。これらの２つの例について以下で説明する。
【００５２】
２つのネットワークデバイスが、例えばこれら２つのデバイス間の通信を暗号化及び／又は認証するために、例えば対称鍵のような鍵を共有する必要がある場合、各々は、第２のネットワークデバイスの識別番号と、第１のネットワークデバイスの複数のローカル鍵材料のうち少なくとも２つと、から共有鍵を導出する。共有鍵の導出に用いられるローカル鍵材料は、同じルート鍵材料から発生する。
【００５３】
図１ａに示す例では、第１のネットワークデバイス３００は、構成サーバ２００及び２０１からの、すなわちそれらの各ルート鍵材料から導出されたローカル鍵材料を受信し、第２のネットワークデバイス３５０は、構成サーバ２００、２０１、及び２０２からのローカル鍵材料を受信し、第３のネットワークデバイス３６０は、構成サーバ２０１及び２０２からの、すなわちそれらの各ルート鍵材料から導出されたローカル鍵材料を受信する。
【００５４】
例えば、第１及び第２のネットワークデバイス３００及び３５０は、同じ２つの構成サーバ２００及び２０１からローカル鍵材料を受信している。これらのローカル鍵材料を用いて、これらのネットワークデバイスは共有する鍵を導出することができる。
【００５５】
複数のローカル鍵材料を用いて共有鍵を導出することは、多くの手法で実施され得る。
【００５６】
２つ以上のローカル鍵材料から共有鍵を導出する第１の手法は、複数のローカル鍵材料のうち少なくとも２つを組み合わせて単一の組み合わせローカル鍵材料を得るように設けられた共有鍵ユニット３３０を使用する。共有鍵は、単一の組み合わせローカル鍵材料及び受信したネットワークデバイス識別番号から導出され得る。後者は、当技術分野の鍵共有アルゴリズム、例えば以下で更に説明する２つの例のうち１つを用い得る。例えば、２つ以上のローカル鍵材料を加算することでそれらを組み合わせればよい。
【００５７】
組み合わせるローカル鍵材料の加算は、例えば、ルート鍵材料が二変数多項式を含み、ローカル鍵材料がこの二変数多項式から導出された一変数多項式を含む鍵合意に適している。一変数多項式を含むローカル鍵材料の加算は、一変数多項式を加算すること、例えば同じべき指数を有する単項式の係数を加算することを含み得る。
【００５８】
組み合わせローカル鍵材料は、鍵共有の間に又は構成フェーズの間等に導出され得る。例えばネットワークデバイスは、例えば２又は３又はそれ以上といった特定数のローカル鍵材料のため構成することができる。ネットワークデバイスがその数のローカル鍵材料を受信した場合、例えば鍵共有が必要となる前、例えば第２のネットワークデバイス識別番号が受信される前に、組み合わせが行われる。この動作によって、攻撃者が個々のローカル鍵材料にアクセスを得ることが回避されるので、セキュリティが向上する。しかしながら、組み合わせは、例えば第２のネットワークデバイス識別番号の受信後のように、鍵共有の間に行ってもよい。
【００５９】
ローカル鍵材料の組み合わせは、使用するローカル鍵材料の数が増えるので、ネットワークデバイスの結託攻撃に対するセキュリティが向上するという追加の利点を有する。
【００６０】
ローカル鍵材料を組み合わせた後、それらは後に除去してもよい。受信した識別子と、第１のネットワークデバイスの少なくとも２つのローカル鍵材料を含む組み合わせ鍵材料と、から共有鍵が導出される。
【００６１】
２つ以上のローカル鍵材料から共有鍵を導出する第２の手法は、第２のネットワークデバイス識別番号と、第１のネットワークデバイスの複数のローカル鍵材料のうち第１のローカル鍵材料と、から第１の中間共有鍵を導出するように設けられると共に、第２のネットワークデバイス識別番号と、第１のネットワークデバイスの複数のローカル鍵材料のうち第２のローカル鍵材料と、から第２の中間共有鍵を導出するように設けられた共有鍵ユニット３３０を使用する。第１及び第２の中間鍵を組み合わせることによって共有鍵が導出される。まず中間鍵を導出し、それらを組み合わせて共有鍵を形成することは、例えばＤｉｆｆｉｅ−Ｈｅｌｌｍａｎに基づくもの等、広範囲の鍵合意プロトコルと両立する。
【００６２】
中間鍵は、原則として単独で用いられて通信を保護することができる暗号共有鍵であり得る。一方で中間鍵は、例えば共有されないという理由のため、単独での使用に適さない場合もある。例えば、中間鍵の導出中、第１及び第２のネットワークデバイスのような双方のパーティについて中間鍵が等しい可能性が高いことを保証する鍵共有アルゴリズムの部分、例えばモジュロ演算や調停（ｒｅｃｏｎｃｉｌｉａｔｉｏｎ）等が省略されている場合がある。省略された部分は、第１及び第２の中間鍵を組み合わせるため実行され得る。
【００６３】
中間鍵の組み合わせは、それらを加算することによっても実行できる。加算、又は基礎にある鍵合意機構と両立する他の何らかの数学的操作は、例えば組み合わせ鍵に対して何らかの操作が実行される場合に適している。加算はある数を法として実行できる。加算、ＸＯＲ、乗算等の基本算術演算の代わりに、鍵導出関数を用いて中間鍵から共有鍵を導出することも可能である。鍵導出は、入力として少なくとも第１及び第２の中間鍵を使用し、出力として共有鍵又はその何らかの先行物を生成する。例えば、第１及び第２の中間鍵の連結に適用されるｓｈａ−２５６等の暗号ハッシュ関数を鍵導出関数として用いればよい。基礎にある鍵合意機構と両立しない暗号鍵導出関数は、例えば第１及び第２のネットワークデバイスのような双方のパーティについて共有される、例えば等しい中間鍵を組み合わせるのに適している。
【００６４】
ある実施形態では、複数のネットワークデバイスの全てが複数の構成サーバの全てからローカル鍵材料を受信する。例えばそのような実施形態は、厳密に２つの構成サーバが存在するシステムに適している。全ての構成サーバからローカル鍵材料を受信すると、異なる構成サーバから得られるセキュリティへの寄与が最大になる。例えば３、４、又はそれ以上の数の構成サーバがある場合、共有鍵ユニット３３０は、同じ数のローカル鍵材料から共有鍵を導出するように設けることができる。
【００６５】
後者は必須ではないが、異なるネットワークデバイスは、それぞれ異なる構成サーバから、場合によってはそれぞれ異なる数の構成サーバからローカル鍵材料を受信し得るので、全てのネットワークデバイスが同じ数のローカル鍵材料を有するわけではない。この実施形態では、ネットワークデバイスは、どのネットワークデバイスとの共有鍵をどのローカル鍵材料を使用して導出するか、例えばプリプログラムによって構成できる。ネットワークデバイスは、正しいローカル鍵材料を選択するように構成してもよい。
【００６６】
ある実施形態において、複数のローカル鍵材料は、複数の関連付けられた構成サーバ識別子と共に第１のネットワークデバイスに記憶される。構成サーバ識別子は、どの構成サーバから関連付けられたローカル鍵材料が第１のネットワークデバイスで受信されたかを示す。各構成サーバは、複数の構成サーバの中で当該構成サーバを一意に識別する構成サーバ識別子に関連付けられている。ネットワークデバイスは、複数の構成サーバ識別子の中のサブセットについて、第１及び第２のネットワークデバイスが双方ともこのサブセットの構成サーバに関連付けられたローカル鍵材料を有するように第２のネットワークデバイスと合意するよう設けられた構成ユニットを備える。構成ユニットは、図１ａに単体として示されていない。構成ユニットは任意選択的である。
【００６７】
図１ｂは電子記憶装置３２０の実施形態の一例を示す。記憶装置３２０は、第１のネットワークデバイス３００の識別番号、第１の鍵材料セット３７０、すなわち第１のローカル鍵材料、及び第２の鍵材料セット３８０、すなわち第２のローカル鍵材料を記憶している。記憶装置３２０は、第１のローカル鍵材料に関連付けられた第１の構成サーバ識別子３７６、及び第２のローカル鍵材料に関連付けられた第２の構成サーバ識別子３８６も記憶している。例えば、第１の構成サーバ識別子３７６は構成サーバ２００を識別し、第２の構成サーバ識別子３８６は構成サーバ２０１を識別することができる。
【００６８】
図１ａに戻ると、構成ユニットは、複数の構成サーバ識別子のサブセットに関して合意を達成するため、複数の手法で設けられ得る。
【００６９】
例えば、第１のネットワークデバイスの構成ユニットは、複数の構成サーバ識別子を第２のネットワークデバイスに送信し、第２のネットワークデバイスからサブセットを受信するように設けられ得る。第１のネットワークデバイスが共に共有鍵を導出している第２のネットワークデバイスの構成は、第２のネットワークデバイスから複数の構成サーバ識別子を受信し、受信した複数の構成サーバ識別子と第１のネットワークデバイスの複数の構成サーバ識別子との共通部分を決定し、この共通部分からサブセットを選択し、このサブセットを第２のネットワークデバイスに送信するように設けられ得る。
【００７０】
例えば第２のネットワークデバイス３５０は、構成サーバ２００、２０１、及び２０２の構成識別子を第３のネットワークデバイス３６０に送信することができる。第３のネットワークデバイス３６０は、構成サーバ２０１及び２０２の構成サーバ識別子である、受信した複数の構成サーバ識別子とそれ自身、すなわち第３のネットワークデバイスの複数の構成サーバ識別子との共通部分を決定できる。この例では、共通部分は構成サーバ２０１及び２０２の構成識別子である。この共通部分から、第３のネットワークデバイス３６０はサブセットを選択する。得られたサブセットは第２のネットワークデバイス３５０に返信することができる。ネットワークデバイスは、それらの各通信ユニットを用いてメッセージを送信できる。
【００７１】
共通部分からのサブセット選択は複数の手法で実行され得る。例えば、共通部分をサブセットとして選択することができる。これは、共有鍵へと組み合わされるローカル鍵材料の量を最大化し、これによってセキュリティが向上する。しかしながら、共通部分が大きい場合は、より選択を狭めることでオーバーヘッドを低減させることが好適であり得る。例えば一実施形態において、構成ユニットは、構成サーバ識別子の数が、例えば４又は５又はそれ以上である共通部分パラメータ以下である場合は、共通部分全体をサブセットとして選択すると共に、構成サーバ識別子の数が構成サーバ識別子の共通部分パラメータより大きい場合は、共通部分パラメータ数を選択するように設けられている。共通部分からの選択は、ランダムな選択によって、又は例えば構成サーバ識別子の第１の共通部分パラメータを使用することによって実行できる。共通部分パラメータは、予め決定されているか、又は例えば構成ユニットの構成可能セキュリティパラメータに応じて構成ユニットにより動的に決定され得る。
【００７２】
図１ａに示す例では、第１のネットワークデバイス３００及び第３のネットワークデバイス３６０は、この場合は構成サーバ２０１である１つだけの共有構成サーバからのローカル鍵材料のみを有する。構成ユニットが用いられる場合、これは共通部分が決定される場合に検出され得る。この時点で、構成ユニットはエラーメッセージを生成し、少なくとも２つの同一構成サーバからのローカル鍵材料が利用できないので、このネットワークデバイスとの共有鍵の導出は不可能であると示すことができる。ある実施形態では、例えば単一のローカル鍵材料から導出される共有鍵を使用できるフォールバック機構を設けてもよい。後者は、セキュリティが低下したフォールバック状況を攻撃者によって強制できる可能性があるので、好適でない。しかしながらこれは、ある適用例では、通信の欠如に比べると好ましい場合がある。このフォールバックは、共通部分がない場合は不可能であるが、後者は、それらのネットワークデバイスが１つの構成サーバからの少なくとも１つのローカル鍵材料を有すると保証することによって回避され得る。例えば、全てのネットワークデバイスは、例えば製造中に少なくとも１つの特定の構成サーバからローカル鍵材料を受信できる。使用中にネットワークデバイスによって追加のローカル鍵材料を取得できる。このようにして、ネットワークデバイスの寿命中に共有鍵のセキュリティが向上する。更に、ローカル鍵材料の起点がますます不明瞭になるので、例えば構成サーバを危険にさらし得る強力な敵による攻撃がますます難しくなる。
【００７３】
以下で、システム１００と共に用いるのに適した２つの鍵共有アルゴリズムについて説明する。双方とも、構成サーバを危険にさらすことにより生じる単一障害点が排除されているので、セキュリティ向上の利点を有する。単一の構成サーバのルート鍵材料の漏洩は、全ての導出される共有鍵のセキュリティを直接損なうものではない。
【００７４】
システム１００において使用され得る第１の暗号鍵共有機構について説明する。構成サーバのルート鍵材料は単一の二変数多項式を含み得る。例えば、構成サーバｉは二変数多項式Ｒｉ（ｘ，ｙ）を有する。ここで、二変数多項式の２つの入力はｘ及びｙで示される。これらの変数は形式的変数であり、明確さのため後者は時として、例えばＲｉ（，）のように省略される。二変数多項式はある環において規定することができ、具体的にはある数を法とした、更に具体的には素数を法とした整数、例えばＺｐにおいて、規定され得る。
【００７５】
構成サーバｉが識別番号ｒのネットワークデバイスを構成する場合、構成サーバは環内で、例えばｐを法として、Ｚｐにおいて、Ｒｉ（ｒ，ｘ）を計算し、これにより一変数多項式を得る。ローカル鍵材料は一変数多項式を含む。
【００７６】
上述のように、１つのネットワークデバイスは、全ての又はいくつかの構成サーバからローカル鍵材料を受信し得る。構成サーバは、例えば異なる二変数多項式のような異なるルート鍵材料を有するが、それらは全て計算のため同じ環を共有する。例えば、それらは全てｐを法とした計算を行う。
【００７７】
例えば第１のネットワークデバイス３００等の第１のネットワークデバイスが、例えば第２のネットワークデバイス３５０等の第２のネットワークデバイスと共有する鍵を導出したい場合、これら２つのネットワークデバイスはネットワークデバイス識別子を交換する。例えば、第１のネットワークデバイスは識別子Ａを第２のネットワークデバイスに送信し、第２のネットワークデバイスから識別子Ｂを受信する。
【００７８】
以下では、明確さのため、これらのネットワークデバイスがサーバｉ＝１及びｉ＝２から、例えばサーバ２００及び２０１からローカル鍵材料を受信すること、計算がｐを法とすることを仮定する。しかしながら、本明細書に示す変数は必要に応じて変更を加えて適用される。第１のネットワークデバイスは２つの中間鍵Ｒ１（Ａ，Ｂ）及びＲ２（Ａ，Ｂ）を計算することができる。これら２つの中間鍵は各々、ｐを法としたリダクションを行い、このようにして２つの共有中間鍵が得られる。２つの共有中間鍵は、鍵導出関数を用いて単一の共有鍵へと組み合わせることができる。最初に中間鍵を加算し、次いでｐを法としたリダクションを行うように、ｐを法としたリダクションを後回しにしてもよい。後者の結果は共有鍵として直接使用され得る。所望の場合、単一の入力を用いる鍵導出関数を使用し、例えばハッシュ関数の適用によって、鍵におけるエントロピを均等にすることができる。
【００７９】
中間鍵を導出する代わりに、ネットワークデバイスはローカル鍵材料自体を組み合わせてもよい。例えば第１のネットワークデバイスは、好ましくはｐを法として一変数多項式を加算し、ＳＣ（ｙ）＝Ｒ１（Ａ，ｙ）＋Ｒ２（Ａ，ｙ）、単一の組み合わせローカル鍵材料ＳＣを得ることができる。共有鍵を導出するため、ネットワークデバイスはここで、受信した識別番号における単一の組み合わせローカル鍵材料を直接評価することができる。
【００８０】
図２及び図３を参照して、システム１００で使用され得る第２の暗号鍵共有機構について説明する。この鍵共有方法の実施形態を最初に数学的な用語で説明する。鍵共有方法は、以下で記載するようにデバイス内で、例えば鍵共有システム１００等におけるネットワークデバイス３００を構成するための構成サーバ２００上で実装することができる。ネットワークデバイスをノード又はネットワークノードとも称する。
【００８１】
この方法はセットアップフェーズと使用フェーズとを有する。セットアップフェーズは開始ステップ及び登録ステップを含み得る。開始ステップはネットワークデバイスを必要としない。
【００８２】
開始ステップはシステムパラメータを選択する。開始ステップは信頼できるサードパーティ（ＴＴＰ）によって実行され得る。システムパラメータは所与の入力と見なすことも可能である。その場合、信頼できるサードパーティはシステムパラメータを生成する必要はなく、開始ステップはスキップすることができる。例えば、信頼できるサードパーティはデバイス製造業者からシステムパラメータを受信してもよい。デバイス製造業者は、すでに開始ステップを実行してシステムパラメータを取得している場合がある。解説の便宜上、信頼できるサードパーティが開始ステップを実行するものと記載するが、これは必須ではないことに留意すべきである。構成サーバの１つが、信頼できるサードパーティとして、例えばシステムパラメータを選択し、それらを他の構成サーバに配信する追加機能を有してもよい。
【００８３】
開始ステップ
インスタンスの使用フェーズにおいてデバイス間で共有されることになる鍵の所望の鍵長が選択される。この鍵長を「ｂ」と称する。所望の識別番号長も選択される。後の登録ステップ中、各デバイスは識別番号長の識別番号に関連付けられることになる。識別番号長を「Ｂ」と称する。この番号長はビット単位で測定される。複数のインスタンスが並列に存在し、各インスタンスが共有鍵の導出を可能とすることができる。単一のインスタンスが存在する場合もある。各構成はそれぞれのインスタンスごとにルート鍵材料を取得する。各構成サーバは好ましくは同じ数のインスタンスを用いる。インスタンス数は１であってもよい。
【００８４】
ｂ≦Ｂであることが好ましいが、これは必須ではない。格子攻撃に対する耐性を高めるため、ｂ＜Ｂを選択してもよい。ある実施形態において、Ｂはｂの倍数であり、例えばＢは少なくとも２ｂであるか、又は推奨されるセキュリティレベルではＢは少なくとも４ｂである。低セキュリティ適用例の典型的な値は、ｂ＝８、Ｂ＝１６である。高セキュリティでは、ｂ＝８、Ｂ＝３２がより良い。各インスタンスで、２つのパーティが共有鍵を導出することができる。共有鍵を組み合わせて、より大きな組み合わせ鍵を形成できる。使用されることになるセキュリティ適用例のために組み合わせ鍵が充分な長さであるように、インスタンスの数が選択される。
【００８５】
Ｂに対してｂの値を小さくすると、いわゆる結託攻撃に対するレジリエンスが増大する。結託攻撃において、攻撃者は、ターゲットのネットワークノードと複数の結託ネットワークノードとの間で用いられる共有鍵に関する情報を取得する。
【００８６】
多くの場合、インスタンス数、鍵サイズ、及びサブ鍵長は、例えばシステム設計者によって予め決定され、信頼できるパーティに入力として与えられる。
【００８７】
インスタンスパラメータ
次に、各インスタンスのパラメータが選択される。所望の次数が選択される。この次数は、特定の多項式の次数を制御する。次数は「α」と称され、これは少なくとも１である。αの実際的な選択は２である。より安全な適用例は、例えば３又は４又はより大きい値のような、より大きいαの値が使用され得る。単純な適用例では、α＝１も可能である。α＝１のケースは、いわゆる「隠れ数問題（ｈｉｄｄｅｎ  ｎｕｍｂｅｒ  ｐｒｏｂｌｅｍ）」に関連し、より大きい「α」の値は、拡張（ｅｘｔｅｎｄｅｄ）隠れ数問題に関連し、これらの事例が破られにくいことを保証する。α＝１の値は、可能であるものの推奨されず、極めて低いセキュリティ適用例でのみ検討すべきである。低セキュリティの適用例では、α＞２の値、例えばα＝３が可能である。しかしながら、より高いセキュリティではα≧３２が推奨され、例えばα＝３２である。
【００８８】
多項式の数が選択される。多項式の数は「ｍ」と称される。ｍの実際的な選択は２である。より安全な適用例では、例えば３又は４又はより大きい値のような、より大きいｍの値が使用され得る。
【００８９】
例えばリソース制約デバイスのような複雑性の低い適用例では、ｍ＝１を使用し得ることを注記しておく。ｍ＝１の値は、可能であるが推奨されず、低セキュリティ適用例でのみ検討すべきである。セキュリティパラメータα及びｍの値が大きくなると、システムの複雑性が増し、従ってその扱いにくさが増す。より複雑なシステムは解析が難しくなり、従って暗号解析に対する耐性が高くなる。以下では、ｍ≧２を仮定する。
【００９０】
２（α＋１）Ｂ＋ｂ−１≦Ｎを満たす公開モジュラス（ｐｕｂｌｉｃ  ｍｏｄｕｌｕｓ）Ｎが選択される。好ましくは、公開モジュラスＮは、厳密に（α＋１）Ｂ＋ｂビットを有するように選択され、従ってＮ＜２（α＋１）Ｂ＋ｂである。例えば、Ｎはこの区間内でランダムに選択され得る。多くの場合、鍵長ｂ、次数α、及び多項式の数ｍは、例えばシステム設計者によって予め決定され、信頼できるパーティに入力として与えられる。公開モジュラスも、例えばある基準における既定のものでもよいが、より典型的にはパラメータ生成中に選択されることになる。
【００９１】
ある実施形態において、全ての構成サーバは、公開モジュラスＮ、共有鍵サイズｂ、識別子サイズＢ、及び次数αを含む同じパラメータを取得する。構成サーバは更に、秘密モジュラス（ｐｒｉｖａｔｅ  ｍｏｄｕｌｕｓ）及び秘密二変数多項式を必要とする。これらを信頼できるパーティによって選択して構成サーバに配信することも可能であり、この場合も構成サーバが後に危険にさらされることに対する保護を与えるが、信頼できるパーティに対する中央攻撃の可能性は残っている。
【００９２】
ある実施形態において、各構成サーバの鍵材料取得器は、その構成サーバに特定的なルート鍵材料の少なくとも一部を生成するように設けられている。各構成サーバのルート鍵材料の重要部分は、秘密モジュラス及び対応する二変数多項式である。ある実施形態において、鍵材料取得器は、その構成サーバのため少なくとも秘密モジュラス及び二変数モジュラスを生成する。以下ではこれを仮定しているが、これが絶対に必須ではないことに留意すべきである。
【００９３】
各構成サーバにおいて、ｍ個の秘密モジュラスｐ１、ｐ２．．．、ｐｍが選択される。モジュラスは正の整数である。ある実施形態において、選択された各数は以下の関係ｐｊ＝Ｎ−Ｂｊ２ｂを満たす。ここでＢｊはランダムなＢビット整数である。すなわちＢｊ＜２Ｂである。より好ましくは、秘密モジュラスは識別子長Ｂに厳密に等しいビット数を有する。すなわち、２Ｂ−１≦Ｂｊ＜２Ｂである。秘密モジュラスを第２の秘密セットと称する。
【００９４】
ｍ＞１では、異なるモジュラスについてのモジュロ演算が、通常の数学的な意味では両立しないにもかかわらず組み合わされるので、システムはより複雑であり、従ってより安全である。この理由で、選択される秘密モジュラスｐｊをペアワイズに別個になるように選択することが有利である。
【００９５】
構成サーバを１つだけ用いた場合、ｍ＞１であることが推奨されるが、複数のローカル鍵材料を組み合わせることで、最終的な共有鍵とローカル鍵材料との間の関係（単一の組み合わせローカル鍵材料に組み合わせられるか否かにはかかわらず）は線形性が低くなる。ある実施形態では、ｍ＝１である。
【００９６】
ある実施形態では、ｍ≧１、α＞１、ｐｊ＝Ｎ−Ｂｊ２ｂ、Ｂｊ＜２Ｂ、及び２（α＋１）Ｂ＋ｂ−１≦Ｎである。
【００９７】
各構成サーバにおいて、次数αｊのｍ個の二変数多項式ｆ１、ｆ２、．．．、ｆｍが生成される。これを第１の秘密セットと称する。好ましくは、二変数多項式は対称である。これにより、全てのネットワークデバイスは他の各ネットワークデバイスと共有鍵に関して合意することができる。これらの二変数多項式は非対称に選択してもよい。後者の場合、デバイスは２つのグループに分割される。第１のグループは二変数多項式の第１の変数に代入することでローカル鍵材料を取得し、第２のグループは二変数多項式の第２の変数に代入することでローカル鍵材料を取得する。１つのグループ内のデバイスは他のグループ内のデバイスとのみ共有鍵に関して合意できる。
【００９８】
全ての次数はαｊ≦αを満たし、少なくとも１つのｊについてαｊ＝αである。より良い選択は、次数αの各多項式を利用することである。α＞１の値が推奨され、好ましくはより大きい値が用いられる。二変数多項式は２変数の多項式である。対称多項式ｆはｆ（ｘ，ｙ）＝ｆ（ｙ，ｘ）を満たす。各多項式ｆｊは、モジュロｐｊを計算することで得られる整数モジュロｐｊによって形成される有限環において評価される。整数モジュロｐｊは、ｐｊの元を含む有限環を形成する。多項式ｆｊの係数は整数であり、モジュロｐｊ演算により定義される有限環内の元を表す。ある実施形態では、多項式ｆｊは０からｐｊ−１までの係数によって表される。二変数多項式は、例えばこれらの範囲内でランダムな係数を選択することによってランダムに選択され得る。
【００９９】
これらの二変数多項式はシステムのルート鍵材料であるので、鍵共有のセキュリティはこれらに依存する。従って、好ましくは、例えば制御手順や改ざん防止デバイス等、それらを保護するための強力な措置が取られる。好ましくは、ｐｊに対応する値Ｂｊを含めて、選択される整数ｐ１、ｐ２．．．、ｐｍも秘密に保持されるが、これは重要性が低い。これは、秘密に保持する必要のないＮ、ｂ、Ｂ、ｍ、α等のパラメータには当てはまらない。二変数多項式については、以下の形態でも記載される。（ｊ＝１、２、．．．、ｍ）。
【数１】
0006559774.tif 000002
この理由で、これらのパラメータが、例えば第１の構成サーバのような信頼できるサードパーティ（ＴＴＰ）により選択され、他の構成サーバに配信されることが許容される。
【０１００】
上述の実施形態は多様に変更することができる。公開及び秘密モジュラスに対する制約を多種多様に選択することで、一変数多項式の難読化が可能でありながら、ネットワークデバイスで得られる共有鍵が充分な頻度で相互に充分に近いまま維持されるようにすることができる。何をもって充分とするかは、用途、必要なセキュリティレベル、及びネットワークデバイスで利用可能な計算リソースに依存する。上述の実施形態は、多項式部分の生成時に実行されるモジュラ演算が、多項式部分を整数に対して加算する際に非線形に組み合わされるよう正の整数を組み合わせ、ネットワークデバイス上に記憶されるローカル鍵材料の非線形構造を作成する。Ｎ及びｐｊについての上記の選択は、以下の特性を有する。すなわち、（ｉ）Ｎのサイズは全てのネットワークデバイスについて固定されている。（ｉｉ）非線形効果は、デバイスに記憶される鍵材料を形成する係数に現れる。その特定の形態のため、共有される小さい鍵は、Ｎを法としたリダクションの後に２ｂを法としたリダクションを行うことによって生成され得る。
【０１０１】
登録ステップ
登録ステップにおいて各ネットワークデバイスは、構成サーバのうち２つ以上から、鍵材料（ＫＭ）とも称するローカル鍵材料が割り当てられる。ローカル鍵材料は、秘密一変数鍵多項式を含む。ネットワークデバイスは、２つの構成サーバから２つのローカル鍵材料を取得したら、一実施形態に従ったシステムに加わることができる。しかしながら、ネットワークデバイスの寿命全体を通して、新しいローカル鍵材料がネットワークデバイスで受信され得る。ある実施形態では、ネットワークデバイスは、共有鍵を導出した後に追加のローカル鍵材料を受信する。
【０１０２】
鍵材料は、（複数のインスタンスが用いられる場合）各インスタンスのための鍵材料を含む。以下で、ネットワークデバイスに対してどのように１つのインスタンスの鍵材料が導出されるかを説明する。鍵材料の部分が異なるインスタンス間で共有され得るにもかかわらず、各インスタンスは、そのインスタンスに一意の鍵材料を有する。簡略化のため、そのローカル鍵材料が用いられる２つの構成サーバに１及び２と番号を付す。
【０１０３】
ネットワークデバイスは識別番号Ａに関連付けられている。識別番号は、例えばＴＴＰによってオンデマンドで割り当てるか、又はデバイス内にすでに記憶されていてもよく、例えば製造時にデバイス内に記憶され得る。ＡのビットサイズはＢビットである。Ａの生成は、多種多様に実行することができる。高いセキュリティでは、Ａの下位ビットはランダムである。例えば、Ａは乱数として選択され得る。Ａは、例えば通し番号のような別の識別番号のハッシュとし、場合によっては切り捨ててＢビットにすればよい。
【０１０４】
構成サーバ１は、以下のようにデバイスＡの鍵材料セットを生成する。
【数２】
0006559774.tif 000003
これは、第１の構成サーバに特定的なルート鍵材料、すなわち秘密リダクション整数ｐ１，ｊ及び二変数多項式ｆ１，ｊ（，）を用いる。これにより一変数多項式セットが得られ、第１の秘密セットのそれぞれ特定の多項式について、識別番号（Ａ）が前記の特定の多項式に代入されｆｉ（Ａ，ｘ）、前記の特定の多項式に関連付けられたリダクション整数を法としたリダクションを実行する。得られた一変数多項式セットを合計する。この合計を一変数多項式の生成と組み合わせてもよい。は形式的変数である。同様のべき乗のｘの係数を加算して、Ｇ１，Ａ（ｘ）の係数を得る。鍵材料は非線形であることを注記しておく。表記＜・・・＞ｐｊは、括弧内の多項式の各係数のｐｊを法としたリダクションを示す。
【０１０５】
以下のように、これに難読化数を加えることができる。
【数３】
0006559774.tif 000004
ここで、ＫＭＡ，１（ｘ）は構成サーバ１から受信された識別番号Ａのデバイスの鍵材料である。換言すると、以下を有する。
【数４】
0006559774.tif 000005
表記「εＡ，ｉ」は、｜εＡ，ｉ｜＜２（α＋１−ｉ）ｂであるようなランダムな整数であり、難読化数の一例である。ランダムな整数のいずれも正又は負であり得ることを注記しておく。乱数εはデバイスごとに再び生成される。従って、以下の項は次数αのＸの多項式を表し、その係数長は次数が大きいほど短くなる。
【数５】
0006559774.tif 000006
あるいは、より一般的であるが複雑な条件は、以下
【数６】
0006559774.tif 000007
が小さい、例えば＜２α＋１である。異なる有限環で混合を行う効果はセキュリティに最大の寄与を与え、このため難読化数の使用は任意選択的なものである。
【０１０６】
全ての他の加算は、普通の整数演算（ｎａｔｕｒａｌ  ｉｎｔｅｇｅｒ  ａｒｉｔｈｍｅｔｉｃ）、すなわち環Ｚ内の演算を用いるか、又は（好ましくは）Ｎを法とした加算を用い得る。このため、一変数多項式
【数７】
0006559774.tif 000008
の評価はそれぞれ、より小さいモジュラスｐｊを法として実行されるが、これらのリダクション一変数多項式自体の合計は、好ましくはＮを法として行われる。また、難読化多項式
【数８】
0006559774.tif 000009
の加算も、普通の整数演算を用いて、又は好ましくはＮを法として行えばよい。鍵材料は係数
【数９】
0006559774.tif 000010
を含む。鍵材料は上述のように多項式として表すことができる。実際には、鍵材料は整数
【数１０】
0006559774.tif 000011
のリストとして、例えばアレイとして記憶され得る。デバイスＡは数値Ｎ及びｂも受信する。例えば係数を含むアレイの操作として、多項式の操作を実装してもよく、例えば全ての係数を所定の順序にリスト化することができる。多項式は他のデータ構造で実装してもよい。例えば、（次数、係数）ペアの集合を含む連想配列として（「マップ」としても知られる）、好ましくは集合内で各係数が最大で１度現れるようにする。デバイスに与えられる係数
【数１１】
0006559774.tif 000012
は、好ましくは０、１、．．．、Ｎ−１の範囲内にある。
【０１０７】
第２の鍵材料の生成は、第２の構成サーバにより、代わりに二変数多項式ｆ２，ｊ及び秘密リダクション整数ｐ１，ｊを用いて、同様に進行する。
【０１０８】
使用フェーズ
いったん２つのデバイスが識別番号Ａ及びＢを有し、少なくとも２つの構成サーバからそれぞれの鍵材料を受信したら、これら２つのデバイスは２つの鍵材料を用いて１つの共有鍵を取得することができる。
【０１０９】
例えば、デバイスＡ及びＢは、使用する一変数多項式を組み合わせる、この場合は加算することができる。これは効果的に値ｍを２倍にし、少なくとも２つの構成サーバがもはや単一の障害点でないという事実に加えて、著しいセキュリティ向上が得られる。一変数多項式の加算後、公開グローバルリダクション整数Ｎを法としたリダクションを適用できる。
【０１１０】
単一の組み合わせローカル鍵材料を用いて、デバイスＡは以下のステップをインスタンスごとに実行して、その共有鍵を取得することができる。まず、デバイスＡはデバイスＢの識別番号Ｂを取得し、次いでＡは以下を計算することにより共有鍵を生成する。上付き文字「ｃ」は、組み合わせ鍵材料が用いられることを示す。
【数１２】
0006559774.tif 000013
【０１１１】
すなわちＡは、整数多項式として見られる組み合わせ鍵材料を値Ｂについて評価する。鍵材料の評価の結果は整数である。次にデバイスＡは評価の結果を、まず公開モジュラスＮを法として、次いで鍵モジュラス２ｂを法としてリダクションすることができる。この結果をＡの中間鍵と称する。これは、０から２ｂ−１までの範囲内の整数である。その一部について、デバイスＢは、自身の鍵材料を識別子Ａについて評価し、その結果をＮを法として、次いで２ｂを法としてリダクションすることにより、ＡによるＢの中間鍵を生成することができる。ＫＡＢはＫ（Ａ，Ｂ）の別の表記であることを注記しておく。
【０１１２】
ルート鍵材料における二変数多項式が対称である場合、Ａの中間鍵及びＡによるＢの中間鍵は、必ずしも常にではないが多くの場合は等しい。整数ｐ１、ｐ２．．．、ｐｍ、及び（任意選択的な）乱数εに対する特定の要件は、２の鍵長乗を法とした計算を行った鍵がしばしば等しく、ほとんど必ず相互に近いというものである。
【０１１３】
この鍵をＫ（Ａ，Ｂ）とも称する。ここでＡは、デバイスＡのＢビット識別子であり、すなわち０≦ξ＜２Ｂである。［デバイスＢの識別子Ｂは、Ｂとも称する識別子長に無関係であることを注記しておく。例えば前者は１２８ビット数であり、後者は数１２８であり得る。］
【０１１４】
デバイスＡが例えばデバイスＢとの通信を暗号化するために生成するｂビットの鍵Ｋ（Ａ，Ｂ）は、デバイスＢが例えばデバイスＡとの通信を暗号化するために生成する鍵Ｋ（Ｂ，Ａ）と常に等しいわけでない。しかしながら、これらの鍵の差は、以下の意味で限定されている。すなわち、Ｋ（Ｂ，Ａ）＝＜Ｋ（Ａ，Ｂ）＋δＮ＞２ｂが成り立ち、ここでＮは公開グローバルリダクション整数であり、＜＞２ｂは２ｂを法とした演算を示し、δは絶対値｜δ｜≦Δで限定される整数である。Ｋ（Ａ，Ｂ）は中間鍵の一例であり、補正項の倍数、すなわちＮの倍数を加算又は減算することにより、可能な共有鍵セットを定義する。倍数は、例えばΔのような上限以下であり、例えば−Δのような下限以上である。
【０１１５】
上限及び下限の値は、選択したパラメータに関して計算することができ、それらのパラメータに依存し得る。鍵材料のビットの半分をゼロに設定することで、この差について比較的シャープな範囲（ｂｏｕｎｄ）が得られる。この場合、Δ≦２ｍ＋２α＋１である。ここで、ｍは混合多項式の数であり、αはその次数である。しかしながら他の実施形態では、Ｋ（Ａ，Ｂ）及びＫ（Ｂ，Ａ）の導出に従い、相違し得るビット数を把握することで、同様の範囲を得てもよい。係数をゼロに設定するという仮定がない場合は、範囲Δ≦２ｍである。
【０１１６】
このポイントで、パーティＡ及びＢの変更された中間鍵は等しい可能性が極めて高い。Ａ及びＢが同じ鍵を取得した場合、ＡとＢとの間で共有される対称鍵としてそれを用い得る。例えばこれは多種多様な暗号適用例のため使用可能であり、例えば、共有鍵を用いて暗号化及び／又は認証した１つ以上のメッセージを交換することができる。好ましくは、マスター鍵を更に保護するため、共有鍵に鍵導出アルゴリズムが適用される。例えばハッシュ関数を適用すればよい。
【０１１７】
パーティＡ及びＢは、鍵調停データを送信することによって、変更後の同じ鍵を実際に取得したことを検証し得る。例えば、変更された鍵のハッシュを送信すること、又は所定のストリングの暗号を送信すること等によって。鍵調停データにより同一の共有鍵が取得されていないことが示されると、補正された鍵を変更して、受信された鍵調停データに一致させることができるので、第１のデバイス及び第２のデバイスは同一の共有鍵に対するアクセスを得る。変更は、その範囲に従って異なるδの値を試行することを含み得る。範囲は比較的小さいので、正しい補正項を見つけるための仕事量も実現可能である。もう１つの可能性は、中間鍵のある数の最下位ビットを調停データ内に含めることである。補正項はこれらのビットを複製することになり、調停の後これらのビットは廃棄される。
【０１１８】
組み合わせ鍵材料を用いる代わりに、システムは、各ローカル鍵材料から中間鍵を導出してもよい。中間鍵は別個に調停され、次いで単一の共有鍵へと組み合わせることができる。しかしながら、まずＮを法として中間鍵を加算し、次いで２ｂを法としてリダクションすることも可能である。すなわち、第１及び第２の中間鍵は共有鍵よりも長い。このように得られた共有鍵は、上記のように調停することができる。
【０１１９】
選択されたｍ個の秘密モジュラスｐ１、ｐ２．．．、ｐｍは、好ましくはペアワイズで互いに素である。これらの数がペアワイズで互いに素である場合、モジュロ演算間の互換性の欠如が増す。ペアワイズで互いに素な数を取得するには、整数を順番に選択し、新しい整数ごとに、異なる数の全てのペアが依然として互いに素であるか試験し、素でなければ選択した数をセットから除去すればよい。この手順は、ｍ個の数が全て選択されるまで継続する。選択されたｍ個の秘密モジュラスｐ１、ｐ２．．．、ｐｍが別個の素数であることを要求することによって、複雑性は更に増す。
【０１２０】
複数のインスタンスの組み合わせ
説明されるシステムによってネットワークノードは、小さい共有鍵、しかもそれらの識別子よりも小さい可能性のある共有鍵に関して合意することができる。より高いセキュリティと現実的な実装の組み合わせでは、例えばｂ≦８、又は場合によってはｂ≦１６のような比較的小さいｂの値の選択が望ましくなる。非現実的なほどに長い鍵材料を生成することなく鍵長を増大させる１つの手法は、複数の小さい鍵を組み合わせることである。システムによってパーティは、一緒に共有鍵を形成する複数のサブ鍵に関して合意することができる。サブ鍵を生成するシステムを鍵合意インスタンスと呼ぶ。各インスタンスはそれ自身の独立パラメータを有し得るが、他のインスタンスと同じ原理に沿って動作する。それにもかかわらず、複数のインスタンスはそれらのパラメータのいくつかを共有することができる。上述のような１つのシステムから、すなわち単一のインスタンスから取得される共有鍵を「小さい」鍵と呼び、２つ以上の小さい鍵の組み合わせを「大きい鍵」と呼ぶ。組み合わされるインスタンスの数を「ｔ」とする。
【０１２１】
以下のパラメータセット、すなわちアルファ＝３、ｂ＝８、Ｂ＝３２は、実現可能な選択である。セキュリティを向上させるため、３２ビット識別番号の全範囲を用いることが勧められる。具体的には、長さ２５６の任意の区間において、１０未満の識別番号を用いなければならない。一般的に、セキュリティ向上を達成するには、所定の第１及び第２の識別閾値を設定し、第１の識別閾値（例えば２５６）の大きさの区間が識別値の第２の識別閾値（例えば１０）より多くを含まないように識別番号を選択する。これは、例えばネットワークデバイスマネージャにより、例えばこのルールに従って識別値を生成することによって、又は閾値を超える識別値を有するデバイスに対してローカル鍵材料の生成を拒否することによって、実行できる。
【０１２２】
図２は、鍵共有のためネットワークデバイスを構成するための構成サーバ２００及び第１のデバイス３００の概略ブロック図である。デバイス３００をネットワークデバイスと呼ぶ。
【０１２３】
構成サーバ２００は典型的には統合デバイスとして実装される。例えば、構成サーバ２００はサーバ内に含まれ得る。構成サーバ２００は、例えば無線ネットワーク又はインターネット等のネットワークを介してネットワークデバイスを構成することができる。しかしながら、構成サーバ２００は、ネットワークデバイスを製造するための製造デバイスに統合されてもよい。
【０１２４】
構成サーバ２００は、鍵材料取得器２１０、ネットワークデバイスマネージャ２３０、及び計算ユニット２２０を備えている。構成サーバ２００は、複数のネットワークデバイスと動作するように意図されている。図２は、１つのそのようなデバイス、すなわち第１のネットワークデバイス３００を示す。
【０１２５】
構成サーバ２００は、ルート鍵材料とも称する秘密鍵材料を選択する。構成サーバ２０００は次いで、複数のネットワークデバイスの各々についてローカル鍵材料を導出する。ローカル鍵材料は、ルート鍵材料及びネットワークデバイスの少なくとも１つの公開識別番号Ａから導出される。図２において、ネットワークデバイス３００は識別番号３１０を記憶している。ネットワークデバイスは、複数の識別番号を、例えばインスタンスごとに１つずつ有してもよい。ネットワークデバイスは、別の識別番号も記憶し、必要な場合に例えばこの別の識別番号をハッシュ処理することで、ここから識別番号３１０を導出してもよい。
【０１２６】
ローカル鍵材料は、特定のネットワークデバイスだけに限られている（ｐｉｖａｔｅ）部分、すなわち、１つの特定のネットワークデバイスと、場合によっては信頼できるデバイスとにだけアクセス可能な部分を含む。ローカル鍵材料は、共有鍵を取得するため必要であるが、秘密に保つことがあまり重要でない部分も含み得る。
【０１２７】
公開（ｐｕｂｌｉｃ）及び秘密（ｐｒｉｖａｔｅ）という形容詞の使用は、以下の理解を助けるものとして意図される。すなわち、全ての公開データにはアクセスを有するとしても、秘密データは、少なくとも、その適用例のセキュリティが与えられた、又は鍵生成、暗号化、及び暗号解読に必要なリソースに比べて、過度に大きいリソースなしでは計算することができない。しかしながら、「公開」とは、対応するデータが必ずしも構成サーバ２００及びネットワークデバイス以外の他者に利用可能とされることを意味しない。特に、公開グローバルリダクション整数及び他の公開パラメータを信頼できないパーティから秘密に保つことは、セキュリティを向上させる。同様に、秘密データに対するアクセスは、そのデータを生成したか又は必要とするパーティに限定することができ、これはセキュリティを向上させる。しかしながら、信頼できるパーティには秘密データへのアクセスが許可されることがある。秘密データに対するアクセスはセキュリティを低下させる。
【０１２８】
ネットワークデバイスのローカル鍵材料及び他のパーティの識別番号を用いて、ネットワークデバイスはそれらの間で共有鍵に関して合意することができる。
【０１２９】
鍵材料取得器２１０は、少なくともパラメータセット２５０を電子形式で取得するように構成されている。パラメータセット２５０は、公開グローバルリダクション整数２５６，Ｎと、二変数多項式の第１の秘密セット２５２、ｆｉ（，）と、リダクション整数の第２の秘密セット２５４，ｐｉと、を含む。第１のセットの各二変数多項式は、第２のセットのリダクション整数と、公開グローバルリダクション整数２５６，Ｎとに関連付けられている。パラメータセットは、ビットサイズＢの識別番号を有するネットワークノードに対して生成される。パラメータセットはローカル鍵材料を生成するため用いられ、次いでこのローカル鍵材料は共有鍵を導出するため用いられる。ある実施形態では、小さい鍵ｂのビットサイズは、ｂ＜Ｂを満たす。これは必須ではないが、格子問題を解くことによるシステムへの攻撃を困難にする。ある実施形態ではｂ≦Ｂであり、特に、ｂはＢに等しい場合がある。
【０１３０】
好適な実施形態において、鍵材料取得器２１０はパラメータセット２５０を電子形式で取得するように構成されている。複数のインスタンスが用いられる場合、鍵材料取得器２１０は複数のパラメータセットを備え得る。図２は１つのパラメータセット２５０を示す。
【０１３１】
パラメータセットの公開グローバルリダクション整数２５６，Ｎは、好ましくはそのセットのリダクション整数２５４の各々とは異なるが、これは厳密に要求されない。好ましくは、パラメータセットの公開グローバルリダクション整数２５６，Ｎは、そのパラメータセットのリダクション整数２５４の各々以上の大きさである。
【０１３２】
鍵材料取得器２１０は、鍵材料を取得するためネットワークデバイスとのインタラクションを必要としない。特に、鍵材料取得器２１０は識別番号を必要としない。構成サーバ２００は、鍵材料取得器２１０が計算ユニット２２０とは異なる物理的ロケーションに位置付けられた分散システムとすることができる。鍵材料取得器２１０は、鍵材料の全部又は一部を生成する、及び／又は外部ソースから鍵材料の全部又は一部を取得する。例えば、鍵材料取得器２１０は外部ソースから公開グローバルリダクション整数２５６を受信し、第１の秘密セット２５２及び第２の秘密セット２５４を生成するように適合されている。後者によって、全てのネットワークデバイスを固定の公開グローバルリダクション整数２５６を用いて製造することが可能となり、コストを削減できる。
【０１３３】
鍵材料取得器２１０は、電子乱数発生器を備えることができる。乱数発生器は、真又は疑似乱数発生器とすればよい。鍵材料取得器２１０は、例えば電子乱数発生器を用いて公開グローバルリダクション整数Ｎを生成することができるが、それでもなお、Ｎの値は、全ての鍵材料取得器（例えば図１ａの場合、２１０、２１１、２１２）で同じでなければならない。例えばＮは、構成サーバ間で通信されることがある。
【０１３４】
公開グローバルリダクション整数は公開情報であるが、ランダム性を導入することによって、システムの解析をいっそう困難にする。
【０１３５】
第１のセット内の各二変数多項式に、第２のセットからのリダクション整数が関連付けられる。ランダム係数は、整数環から、例えば関連付けられたリダクション整数のような数を法とした整数から、ランダムに選択され得る。
【０１３６】
鍵材料取得器２１０は、電子乱数発生器を用いて、第２の秘密セット内のリダクション整数ｐｉの１つ以上の係数を生成することができる。リダクション整数が素数であることは必須ではない。しかしながらリダクション整数は、耐性を向上させるために素数として選択することができる。素数は、環の種類である体を生じさせる。後に鍵を共有する必要がある全てのネットワークデバイスについて、同じパラメータセット、すなわち同じ第１及び第２の秘密セット並びに公開グローバルリダクション数が用いられる。
【０１３７】
鍵材料取得器２１０は、例えば電子乱数発生器を用いて、第１の秘密セット２５２内の二変数多項式ｆｉ（，）の１つ以上の係数を生成することができる。鍵材料取得器２１０はこのように二変数多項式の全てを生成できる。鍵材料取得器２１０は、これらの多項式の最大次数、例えば２又は３又はそれ以上を用い、その次数より１以上多いランダム係数を生成することができる。
【０１３８】
秘密セット２５２内の多項式の数及び多項式の次数又は最大次数のような、第１の秘密セット２５２のいくつかの態様を規定することは便利である。また、例えば記憶要件を低減するため、多項式の係数のいくつかがゼロであると規定してもよい。
【０１３９】
第１のセットは、２つの等しい多項式を含んでもよい。これは機能するが、関連付けられたリダクション整数が同じであれば、このセットはサイズが縮小し得る。このため、典型的に、第１のセット内の２つ以上の二変数多項式が同じである場合はいつでも、関連付けられたリダクション整数、すなわち基礎にある環は異なる。
【０１４０】
ある実施形態では、二変数多項式（ｆｉ（，））の第１の秘密セットは全て、対称二変数多項式のみを含む。対称多項式のみを用いることは、各ネットワークデバイスが構成されたネットワークデバイスの他の任意のネットワークデバイスと共有鍵に関して合意できるという利点がある。しかしながら、二変数多項式の第１の秘密セットは、１つ以上の非対称多項式を含んでもよい。これは、デバイスを２つのグループに分割できるという効果がある。１つのグループからのデバイスは、第２のグループのデバイスとだけ共有鍵に関して合意できる。
【０１４１】
鍵材料取得器２１０は、数式でｆｉ（，）とも表される二変数多項式の第１の秘密セット２５２を電子形式で取得するように構成されている。以下に記載する実施形態は、セット２５２内の全ての二変数多項式が対称であると仮定する。第２のパラメータセットの生成は同じように実行すればよい。
【０１４２】
対称二変数多項式は、２つの形式的変数をプレースホルダーとして、ｆｉ（ｘ，ｙ）とも表すことができる。対称的な二変数多項式は、ｆｉ（ｘ，ｙ）＝ｆｉ（ｙ，ｘ）を満たす。この要件は、例えば単項式ｘαｙｂの係数が単項式ｘｂｙαの係数に等しいという係数に対する要件に変換される。
【０１４３】
第１の秘密セット２５２内の多項式の数は、用途に応じて異なるように選択され得る。システムは、第１及び第２のセットが１つだけ多項式を含む場合に機能するはずである。そのようなシステムでは、鍵は良好に共有されて、中程度のセキュリティを提供し得る。しかしながら、異なる環で混合を行うことのセキュリティ上の利点が達成されるのは、第１のセットがその中に少なくとも２つの多項式を有し、第２のセットが少なくとも２つの異なるリダクション整数を有する場合のみである。
【０１４４】
秘密セット２５２は、少なくとも１つの二変数多項式を含む。構成サーバ２００のある実施形態では、秘密セット２５２は１つの多項式から成る。秘密セット２５２内に１つだけ多項式を有することは、複雑性、記憶要件を低減させ、速度を上げる。しかしながら、秘密セット２５２内に１つだけ多項式を有することは、秘密セット２５２内に２つ以上の多項式を有するよりも安全でないと考えられる。その理由は、そのような１多項式システムが、以下に説明する合計における追加の混合から利益を得ないからである。しかしながら、鍵共有は正しく機能するはずであり、低い値及び／又は低いセキュリティの適用例では充分に安全であると考えられる。
【０１４５】
残りの部分では、秘密セット２５２が少なくとも２つの対称二変数多項式を含むと仮定する。ある実施形態では、多項式の少なくとも２つ、又は全てが異なる。これはシステムの解析を著しく複雑にする。必須ではないが、秘密セット２５２は２つの等しい多項式を含むことができ、これら２つの多項式が異なるリングで評価されるならば、合計ステップにおける混合から利益を得ることができる。異なるリダクション整数は異なる環を定義することを注記しておく。ある実施形態において、秘密セット２５２は、異なる関連リダクション整数に関連付けられた少なくとも２つの等しい多項式を含む。第１のセット内に２つ以上の等しい多項式を有することは、記憶要件を低減させる。ある実施形態では、第２のセットは少なくとも２つの多項式を含み、第２のセット内の全ての多項式は異なっている。
【０１４６】
秘密セット２５２内の多項式は、次数が異なるものであり得る。対称二変数多項式の次数とは、２つの変数の一方における多項式の次数を意味する。例えば、ｘ２ｙ２＋２ｘｙ＋１では、ｘの次数が２であるので、この式の次数は２に等しい。多項式は、各変数において同じ次数を有するように選択され得る。秘密セット２５２内の多項式が対称である場合、次数は他の変数と同じになる。
【０１４７】
秘密セット２５２内の多項式の次数は、用途に応じて異なるように選択され得る。秘密セット２５２は、次数が１以上である少なくとも１つの対称二変数多項式を含む。ある実施形態において、秘密セット２５２は次数１の多項式のみを含む。秘密セット２５２内に線形多項式のみを有することは、複雑性、記憶要件を低減させ、速度を上げる。しかしながら、秘密セット２５２内に次数１の多項式のみを有することは、秘密セット２５２内に次数が少なくとも２である少なくとも１つの多項式を有するよりも安全でないと考えられる。その理由は、そのようなシステムは著しく線形性が高いからである。この場合でも、秘密セット２５２内の複数の多項式が異なる環で評価されるならば、秘密セット２５２内の全ての多項式が線形であるとしても、結果として生じる暗号化は線形でない。ある実施形態において、秘密セット２５２は、次数が２以上の多項式を少なくとも１つ、好ましくは２つ含む。しかしながら、鍵生成、暗号化、及び暗号解読は、次数１の多項式のみが用いられる場合に正しく機能するはずであり、低い値及び／又は低いセキュリティの適用例では充分に安全であると考えられる。
【０１４８】
秘密セット２５２内に次数０の１つ以上の多項式を有することは、より高い次数の多項式（複数の多項式）が充分なセキュリティを与える限り、システムに影響を及ぼさない。
【０１４９】
中程度のセキュリティの適用例では、秘密セット２５２は、次数２の対称二変数多項式を２つ含むか又はそれらから成る場合がある。より高いセキュリティの適用例では、秘密セット２５２は、１つが次数２、もう１つが２より高い、例えば次数３という２つの対称二変数多項式を含むか又はそれらから成る場合がある。多項式の数及び／又はそれらの次数の増大はセキュリティを更に向上させるが、リソース消費の増大という犠牲が伴う。
【０１５０】
好ましくは、リダクション整数は、同じリダクション整数セット内の任意の２つのリダクション整数の差が公約数を有するように選択される。具体的には、公約数は２ｂとすればよい。又は、任意の２つのリダクション整数間の差の二進表現は、このインスタンスから導出される小さい鍵のサイズと少なくとも同じゼロの数で終わる。
【０１５１】
例えば、リダクション整数及び公開グローバルリダクション整数を生成するための１つの手法は、以下の通りである。
【０１５２】
まず、例えば規定サイズのランダムな整数として、公開グローバルリダクション整数Ｎを生成する。
【０１５３】
各リダクション整数について、整数Ｂｉを生成し、リダクション整数ｐｉを差ｐｉ＝Ｎ−Ｂｉ２ｂとして生成する。
【０１５４】
公開グローバルリダクション整数は、（α＋１）Ｂ＋ｂビット以上となるように選択することができる。ここで、αは第１の秘密セット内の二変数多項式の単一変数における最も高い次数である。その場合、整数ＢｉはＢｉ＜２Ｂとして選択することができる。ある実施形態では、公開グローバルリダクション整数は少なくとも（α＋１）Ｂ＋ｂビットを有する。ここで、αは第１の秘密セット内の二変数多項式の単一変数における最も高い次数である。
【０１５５】
鍵材料取得器２１０は、ソフトウェア又はハードウェア又はそれらの組み合わせでプログラムすることができる。鍵材料取得器２１０は、多項式操作のための計算ユニット２２０とリソースを共有することができる。
【０１５６】
ネットワークデバイスマネージャ２３０は、ネットワークデバイス３００のための識別番号３１０、Ａを電子形式で取得するように構成されている。ネットワークデバイスマネージャ２３０は、ネットワークデバイスから識別番号を受信することができる。例えばネットワークデバイスマネージャ２３０は、ネットワークを介して識別番号を受信するための通信ユニットを含むか又は利用すればよい。例えばネットワークデバイスマネージャ２３０は、無線信号として識別番号を受信するためのアンテナを含み得る。識別番号はビット数として表すことができ、典型的には、識別番号のビット数ｂは共有鍵のビット数と少なくとも同じ大きさである。
【０１５７】
システム２００は、全てのパラメータセットについて同じ識別番号を使用できる。しかしながら、異なるパラメータセットについて異なる識別番号を使用することも可能である。後者の場合、ネットワークマネージャ２３０は複数の識別番号を取得する。
【０１５８】
計算ユニット２２０は、パラメータセット及び識別番号Ａについて一変数秘密鍵多項式２２９を計算するように構成されている。計算ユニット２２０は、鍵材料取得器２１０のパラメータセットの各々に適用される。ある実施形態では、計算ユニットは、パラメータセットの少なくとも２つ、又は各々に対して、同じ識別番号を用いる。ある実施形態では、計算ユニットは、パラメータセットの少なくとも２つ、又は全てに対して、ネットワークデバイスの異なる識別番号を用いる。このように取得された一変数秘密鍵多項式及び対応する公開グローバルリダクション整数は、ネットワークデバイスに送信されることになるローカル鍵材料の一部である。
【０１５９】
計算ユニット２２０は、接続２３８を介して鍵材料取得器２１０からパラメータセット内のデータを受信する。以下で、計算ユニット２２０がどのようにパラメータセットから一変数秘密鍵多項式を決定するかについて説明する。他のパラメータセットからの一変数秘密鍵多項式の生成も同じように行われる。
【０１６０】
計算ユニット２２０は、以下のように一変数秘密鍵多項式２２９を計算することができる。
【０１６１】
一変数多項式は、現在処理しているパラメータセットの第１の秘密セット内の各多項式に識別整数Ａを代入することによって取得される。二変数多項式の１つの変数だけに値を代入することにより、二変数多項式は一変数多項式に変換される。次いで、得られた一変数多項式を、識別整数Ａが代入された二変数多項式に関連付けられたリダクション整数を法としてリダクションする。これにより得られた一変数多項式セットを、例えば多項式におけるｙの等しいべき指数の係数を加算することで合計する。これは、ＣｉＡについて、以下の式から得られる。
【数１３】
0006559774.tif 000014
【０１６２】
ｆｉ（ｘ，ｙ）が第１の秘密セット内の二変数多項式の１つであると仮定する。この多項式の係数は環Ｚｐｉから得られる。すなわち、第１のセット内の多項式の係数は整数環から得られる。簡略化のため、変数ｘ及びｙを用いて第１のセット内の整数の形式的変数を表す。
【０１６３】
代入の後、計算ユニット２２０はｆｉ（Ａ，ｙ）を取得する。計算ユニット２２０は更に、この項をｐｉを法としてリダクションするように構成されている。係数は、例えばｐを法としてリダクションすることで、例えばＺｐのようなシステムが動作する環においてリダクションされる。好ましくは、計算ユニット２２０はその結果を正準形に、すなわち所定の標準化表現にする。適切な正準形は、単項式の次数によってソートされた係数表現である。あるいは、代入はｙについて行ってもよい。
【０１６４】
識別番号がシステム内で「ランダムに」動作することを保証するため、チェーン内のポイントにおけるランダム化ステップによって、攻撃が簡単でないことを保証することが勧められる。特に、ネットワークデバイスが、例えば通し番号のような特定の順序に従った識別番号を与えられる場合、そのようなランダム化ステップが勧められる。例えば、Ｓｈａ２５６等の暗号ハッシュを識別番号に適用し、その結果をＢビットまで短くすればよい。
【０１６５】
更に、識別番号をより多くのビットに拡張することも可能である。例えばＢ’ビットの識別番号を、例えばハッシュ及び／又は連結によってＢビットまで拡張してもよい。ここで、Ｂ’＜Ｂである。例えば、識別番号Ａを、Ｈ（Ａ）又はＡ｜｜Ｈ（Ａ）まで拡張してもよい。Ｈはハッシュを示し、｜｜は連結を示す。連結はＬＳＢ側で行われる。この動作には、暗号ハッシュ等の高度に非線形のハッシュが好ましい。
【０１６６】
第１のセットが対称多項式のみを含む場合、識別整数Ａの代入は二変数多項式の２つの変数のいずれか１つにおいて行えばよい。しかしながら、非対称多項式で代入が行われる場合、より注意が必要である。例えば計算ユニット２２０は、第１のネットワークデバイス３００が第１又は第２のグループのどちらかであるかを取得するように構成され得る。第１及び第２のグループは、それぞれ二変数多項式の第１及び第２の変数に関連付けられている。第１のグループのネットワークデバイスでは、常に第１の変数が用いられる。第２のグループのネットワークデバイスでは、常に第２の変数が用いられる。
【０１６７】
図２は、この機能を実装する１つの可能な手法を示す。図２は、代入ユニット２２２、多項式リダクションユニット２２４、多項式加算ユニット２２６、及び一変数多項式セットの合計２２８を示す。後者は、一変数秘密鍵多項式２２９となる。
【０１６８】
代入ユニット２２２、多項式リダクションユニット２２４、及び多項式加算ユニット２２６は、まとめて１つの計算ユニットにしてもよい。この選択肢は図２において破線で示されている。
【０１６９】
これらは以下のように機能し得る。代入ユニット２２２は、第１のセットの二変数多項式に識別整数Ａを代入する。代入ユニット２２２は、複数の項を収集して、その結果を正準形としてもよいが、これは後で行ってもよい。多項式リダクションユニット２２４は、代入の結果を受信し、これを、代入された二変数多項式に関連付けられたリダクション整数を法としてリダクションする。
【０１７０】
識別整数Ａを前記の特定の多項式に代入しｆｉ（Ａ，ｙ）、前記の特定の多項式に関連付けられたリダクション整数を法としてリダクションした結果は、係数のリストとして正準形で表され、その後で多項式加算ユニット２２６によって合計される。変数ｙは形式的変数として作用する。この代入を、単にｆｉ（Ａ，）と表すこともある。
【０１７１】
多項式加算ユニット２２６は、リダクションされた一変数多項式を受信し、それらを合計２２８の現在までの合計に加算する。合計２２８は、一変数秘密鍵多項式の生成の前に０にリセットされている。多項式加算ユニット２２６は、普通の演算又はパラメータセットに関連した公開グローバルリダクション数を法とした計算のどちらかを用いて、多項式を係数的に加算することができる。
【０１７２】
第１の秘密セットの全ての多項式がこのように処理されたら、合計２２８の結果を一変数秘密鍵多項式として用いることができる。例えば合計２２８で結果として得られた一変数秘密鍵多項式を、係数リストとして正準形で表すことができる。
【０１７３】
システム２００が複数のインスタンスを用いる場合、すなわちシステム２００が複数のパラメータセットを用いる場合、計算ユニット２２０は、それらの各々について一変数秘密鍵多項式を決定する。必要ならば、ユニット２２０は何らかの情報を再使用することができる。例えばユニット２２０は、全ての一変数秘密鍵多項式を生成するため同じ識別番号Ａを用い得る。より高いセキュリティのためには、パラメータセットは独立であり、好ましくは異なる識別番号を用いる。
【０１７４】
ネットワークデバイスマネージャ２３０は更に、生成された一変数秘密鍵多項式２２９、対応する公開グローバルリダクション整数２５６，Ｎを、ネットワークデバイスにおいて電子的に記憶するよう構成されている。一変数秘密鍵多項式２２９及びその１つ又は複数の識別番号を用いて、第１のネットワークデバイス３００は、同じルート材料から構成された鍵を他のデバイスと共有することができる。また、ネットワークデバイスマネージャ２３０は、パラメータＢ及びｂをネットワークデバイスにおいて電子的に記憶するよう構成することも可能である。
【０１７５】
構成サーバ２００は、例えば電子メモリ内に構成サーバ識別子２７６も備え得る。ネットワークデバイスマネージャ２３０は、ネットワークデバイスにおいて、例えば鍵材料と共に構成サーバ識別子２７６を記憶することができる。構成サーバ識別子２７６は任意選択的であり、例えば全てのネットワークデバイスが同じ構成サーバセットから鍵材料を受信する場合は省略してもよい。
【０１７６】
電子的に記憶することは、デバイスマネージャが第１のデバイスに情報を電子的に送信し、次いで第１のデバイスがこの情報を記憶することを含み得る。
【０１７７】
計算ユニット２２０はソフトウェアで実装してもよいが、計算ユニット２２０はハードウェアでの実装に特に適している。多項式リダクションユニット２２４のみがハードウェアを実装している場合、著しい速度の向上が得られる。ユニット２２４のハードウェアバージョンにより実行されないシステム２００の機能性の部分は、プロセッサのソフトウェア動作により実行すればよい。
【０１７８】
図２は、計算ユニット２２０が第１のネットワークデバイス３００から識別番号メッセージ２３２を受信し、第１のネットワークデバイス３００が計算ユニット２２０から秘密鍵材料メッセージ２３６を受信することを示す。秘密鍵材料メッセージ２３６は、公開グローバルリダクション整数、一変数秘密鍵多項式計算ユニットを含み得る。
【０１７９】
これらのメッセージは典型的に、ネットワークデバイスマネージャ２３０を介して送信及び受信される。秘密鍵材料メッセージ２３６は、複数のメッセージ間に分割してもよい。複数のインスタンスが用いられる場合、それらの対応する秘密鍵材料メッセージを組み合わせて単一のメッセージとしてもよい。
【０１８０】
構成サーバ２００は、第１のネットワークデバイス３００のための識別番号を生成することで識別番号を取得するように構成してもよい。そのような構成は、製造設備によく適している。その場合、第１のネットワークデバイス３００は、識別番号メッセージ２３２を送信するのではなく構成システム２００から受信する。例えば、鍵材料取得器２１０又は計算ユニット２２０から識別番号メッセージ２３２を受信する。
【０１８１】
図３は、第１のネットワークデバイス３００及び第２のネットワークデバイス３５０の概略ブロック図である。第１のネットワークデバイス３００及び第２のネットワークデバイス３５０は、一緒に共有鍵を決定するように構成されている。
【０１８２】
第２のネットワークデバイス３５０は、ネットワークデバイス３００と同じ設計とすることができる。第１のネットワークデバイス３００についてのみ詳細に説明するが、第２のネットワークデバイス３５０も同じか又は同様であり得る。図３は、第２のネットワークデバイス３５０が識別番号３５５を記憶していることのみを示す。第２のネットワークデバイス３５０の識別番号３５５は公開であり、鍵を共有するためネットワークデバイス３００と交換することができる。また、第２のネットワークデバイス３５０は、ローカル鍵材料（図示せず）、特に、識別番号３５５に対応する１つ以上の一変数秘密鍵多項式も必要とする。
【０１８３】
第１のネットワークデバイス３００は、電子記憶装置３２０、通信ユニット３４２、共有鍵ユニット３３０、及び鍵導出デバイス３４０を備えている。
【０１８４】
記憶装置３２０は、デバイス３００のローカル鍵材料を記憶している。図３に示す実施形態において、記憶装置３２０は、２つの異なる構成サーバ、例えば構成サーバ２００及び２０１から受信された鍵材料セット３７０及び３８０を含む。各鍵材料は一変数秘密鍵多項式を含み、双方の鍵材料は同じ公開グローバルリダクション整数３７４と共に機能する。例えば、鍵材料３７０は一変数秘密鍵多項式３７２及び構成サーバ識別子３８６を含む。例えば、鍵材料３８０は一変数秘密鍵多項式３８２及び構成サーバ識別子３８６を含む。ローカル鍵材料３７０及び３８０は異なる構成サーバから受信され、公開グローバルリダクション整数３７４は、ＴＴＰから受信されるか、製造中に入力されるか、又は、例えばネットワークデバイスを構成する第１の構成サーバ等の構成サーバから受信される場合がある。
【０１８５】
この実施形態は、他の各ネットワークデバイスと単一の共有鍵を導出するため、単一のインスタンス、すなわち鍵材料のために設けられているものとして記載される。ネットワークデバイスに、複数の構成サーバからの複数の鍵材料を含み得る複数の鍵材料セットを供給して、このネットワークデバイスが複数の共有鍵を導出すること、例えばより長い鍵へと組み合わせることを可能としてもよい。また、記憶装置３２０は、鍵材料内の一変数秘密鍵多項式を生成するため構成サーバによって用いられた識別番号３１０，Ａも記憶している。
【０１８６】
図示する例では、鍵材料３７０及び３８０は組み合わされていない。ある実施形態において、鍵材料は例えば受信時に組み合わされる。これはメモリ要件を低減させると共に、リバースエンジニアリングを複雑化する。
【０１８７】
記憶装置３２０は、例えば不揮発性かつ書き込み可能のメモリ、例えばフラッシュメモリ等のメモリとすればよい。記憶装置３２０は、例えばハードディスク等の磁気記憶装置のような他のタイプの記憶装置としてもよい。記憶装置３２０は追記型メモリとしてもよい。
【０１８８】
通信ユニット３４２は、第２のネットワークデバイス３５０の識別番号３５５，Ｂを取得するように構成されている。通信ユニット３４２は、例えばＷｉ−Ｆｉ（登録商標）、Ｂｌｕｅｔｏｏｔｈ（登録商標）、又はＺｉｇｂｅｅ（登録商標）接続のような有線接続として実装され得る。通信ユニット３４２は、例えばインターネットのようなデータネットワークを介した接続によって実装され得る。
【０１８９】
共有鍵ユニット３３０は、記憶装置３２０内の鍵材料３７０に対応してデバイス３５０と共有される鍵を導出するように構成されている。デバイス３５０は鍵材料３７０に対応した鍵材料を有する。以下で、どのように共有鍵ユニット３３０が鍵材料３７０を用いて単一の共有鍵を導出し得るかについて説明する。しかしながら、複数のインスタンスを組み合わせることも可能である。
【０１９０】
共有鍵ユニット３３０は、代入ユニット３３２及び整数リダクションユニット３３４を含み得る。代入ユニット３３２及び整数リダクションユニット３３４は一緒に共有鍵ユニット３３０を形成する。後者は破線で示されている。
【０１９１】
共有鍵ユニット３３０は、受信されたネットワークデバイス３５０の識別整数Ｂ及び鍵材料から、ネットワークデバイス３００と３５０との間の中間鍵を導出するように構成されている。これを用いて、第２のネットワークデバイス識別番号及び第１のネットワークデバイスの複数のローカル鍵材料のうち少なくとも２つから共有鍵を導出する。
【０１９２】
識別整数Ｂ及び鍵材料から中間鍵を導出すると、共有鍵ユニット３３０は、一変数秘密鍵多項式３７２のような一変数秘密鍵多項式に識別整数Ｂを代入し、この代入の結果を公開グローバルリダクション整数３７４を法としてリダクションするように構成されている。共有鍵ユニット３３０は、代入ユニット２２２及び多項式リダクションユニット２２４と同様のハードウェア又はソフトウェアを用い得る。第１のネットワークデバイス３００は第１及び第２の秘密セットに対するアクセスを有しないことを注記しておく。リダクションユニット３３４の結果は中間鍵である。
【０１９３】
ある実施形態において、共有鍵ユニットは、第１のネットワークデバイスの複数のローカル鍵材料のうち少なくとも２つを組み合わせて単一の組み合わせローカル鍵材料を得るように設けられ、共有鍵は、第２のネットワークデバイス識別番号及びこの組み合わせローカル鍵材料から導出される。例えばそれらは、一変数多項式を加算することによって、例えば等しいべき指数の係数を合計することによって組み合わせればよい。共有鍵ユニットは、一変数多項式を加算するように設けられた多項式加算ユニットを備え得る。その合計は、グローバル公開グローバルリダクション整数３７４を法としてリダクションすることができる。組み合わせ鍵材料から中間鍵が導出される。後者の結果は、公開グローバルリダクション整数３７４Ｎを法としてリダクションされ、その後、以下で示すように２ｂを法としたリダクション及び／又は調停が行われる。
【０１９４】
後に共有鍵が導出される中間鍵を導出する前に鍵材料を組み合わせる代わりに、共有鍵ユニット３３０は、複数のローカル鍵材料から複数の中間鍵を導出するように設けることも可能である。第１及び第２の中間鍵を組み合わせることで共有鍵が導出される。例えば、複数の中間鍵は最初に、公開グローバルリダクション整数３７４Ｎを法として加算される。後者の結果は、以下で示すように、２ｂを法としたリダクション及び／又は調停が実行され得る。
【０１９５】
ある実施形態において、異なるネットワークデバイスは異なる構成サーバからローカル鍵材料を受信し得る。この実施形態では、鍵材料又は中間鍵を組み合わせるには、鍵共有に参加している双方のネットワークデバイスについて、使用されるローカル鍵材料が同じルート鍵材料から発生したものである必要がある。
【０１９６】
記憶装置３２０は、複数のローカル鍵材料３７０、３８０を、任意選択的な複数の関連付けられた構成サーバ識別子３７６、３８６と共に記憶している。ネットワークデバイス３００は、任意選択的な構成ユニット３９０を備えている。構成ユニットは、例えばネットワークデバイス３５０のような第２のネットワークデバイスと、複数の構成サーバ識別子のサブセットについて合意するよう設けられて、第１及び第２のネットワークデバイスが双方ともそのサブセットの構成サーバに関連付けられたローカル鍵材料を有するようにする。例えば構成ユニット３９０は、通信ユニット３４２を用いて、複数の構成サーバ識別子を第２のネットワークデバイスに送信すると共に、第２のネットワークデバイスからサブセットを受信することができる。
【０１９７】
ネットワークデバイス３５０は、第１のネットワークデバイス３００から複数の構成サーバ識別子を受信し、受信した複数の構成サーバ識別子と第２のネットワークデバイスの複数の構成サーバ識別子との間の共通部分を決定し、この共通部分からサブセットを選択し、このサブセットを第１のネットワークデバイス３００に送信するように設けられた構成ユニットを備え得る。
【０１９８】
構成ユニット３９０は、双方の機能のために構成することができる。例えば構成ユニット３９０は、デバイス３００が鍵共有を開始した場合は複数の構成サーバ識別子を他方のネットワークデバイスに送信するが、鍵共有を開始しなかった場合はサブセットを選択するように設けることができる。
【０１９９】
任意選択的に、共有鍵ユニット３３０は鍵調停ユニット３３６を備えている。デバイス３００及びデバイス３５０は、同じ共有鍵に到達しないということが起こり得る。アプリケーションは、この可能性を無視することを選択してもよい。その際は、いくつかのネットワークデバイスペアは、共通の共有鍵がないので、暗号化された及び／又は認証された通信に関与できない場合がある。いくつかのアプリケーションでは、いくつかのネットワークデバイスペアのみが安全であれば充分である。例えば、アドホックのネットワークはこの一例である。デバイス３００及び３５０は、任意選択的な鍵調停ユニット３３６を用いて構成してもよい。２つのデバイス３００及び３５０のうち一方において、鍵調停ユニット３３６は生成された鍵から鍵調停データを生成し、これを他方のデバイスに送信する。他方のデバイスにおいて、鍵調停ユニット３３６は受信した鍵調停データを用いて、双方のデバイスで導出される共有鍵が同じであるように、生成された鍵を適合させる。
【０２００】
鍵調停ユニット３３６を用いて鍵を適合させる場合、鍵調停ユニットは、鍵調停データに一致するまで、生成された鍵を適合させる。すなわち、適合された鍵から鍵調停データを導出すると、その鍵について受信した鍵調停データと同じ結果を与える。鍵の適合は、公開グローバルリダクション整数の倍数を加算し、２ｂを法としてリダクションすることにより、すなわちＫＢＡ＋δＮ  ｍｏｄ２ｂにより実行できる。調停が行われない場合、中間鍵は直接２ｂを法としてリダクションされる。
【０２０１】
例えば、デバイス３３０内の鍵調停ユニット３３６は、鍵調停データとして、生成された小さい鍵の所定数の最下位ビットを取得する。例えば、２Ｃ≧１＋２Ｄとなるように、所定数ｃを最小の数として選択することができる。ここで、αは第１の秘密セットの多項式の次数であり、ｍは多項式の数である。Ｄは残りの可能な鍵の数、すなわち変更された中間鍵に残っている不確定性を示す。これらの最下位ビットが調停データとして用いられる場合、鍵調停ユニットは、ｃの最下位ビットが受信したビットと同じになるまで倍数を加算する。ｂ＝８であっても、各インスタンスに５ビットが残る。これらの５ビットは追加の調停を必要としないが、複数のインスタンス、例えば１６のインスタンスを組み合わせて８０ビットの共有鍵を取得することで、所望の長さの鍵を取得できる。
【０２０２】
鍵導出デバイス３４０は、例えば変更された中間鍵（複数の中間鍵）のような、導出された１つ以上の鍵から共有鍵を導出するように構成されている。共有鍵はいわゆる対称鍵である。リダクションの結果は整数である。この結果は、例えば調停後に任意選択的に係数を連結することによって、ほとんど直接的に鍵として用いられ得る。
【０２０３】
リダクションの結果から共有鍵を導出することは、例えばＯｐｅｎ  Ｍｏｂｉｌｅ  Ａｌｌｉａｎｃｅ（ＯＭＡ）のＯＭＡ  ＤＲＭ仕様（ＯＭＡ−ＴＳ−ＤＲＭ−ＤＲＭ−Ｖ２＿０＿２−２００８０７２３−Ａ、セクション７．１．２ＫＤＦ）で定義された関数ＫＤＦ、及び同様の関数のような鍵導出関数の適用を含み得る。
【０２０４】
ｂビット鍵ごとに鍵調停データを送信及び受信する代わりに、鍵調停ユニットは、場合によってはＫＤＦのような鍵調停アルゴリズムの後に、アセンブルされた大きい共有鍵に対して鍵調停データを生成するよう構成することも可能である。この場合、鍵調停ユニットは、鍵調停データを満足する大きい鍵が見出されるまで全ての小さい鍵を同時に適合させる。複数の小さい鍵を同時に変化させることは著しい手間がかかる一方で、小さい鍵に利用可能な情報がより直接的でなくなるので、大きい鍵に対して鍵調停データを生成することは著しく安全でもある。
【０２０５】
図３は更に、第１のネットワークデバイス３００内に任意選択的な暗号ユニット３４５を示す。暗号ユニット３４５は共有鍵を用いるように構成されている。例えば暗号ユニット３４５は、共有対称鍵を用いて電子メッセージを暗号化するため構成された暗号化ユニットとすればよい。例えば暗号ユニット３４５は、共有対称鍵を用いて電子メッセージを暗号解読するため構成された暗号解読ユニットとしてもよい。
【０２０６】
図４は、同様の鍵共有システム１０２の概略ブロック図である。システム１０２は、ネットワークデバイスが個人化デバイス１１０から識別番号を受信することを除いて、システム１００と同じである。この場合ネットワークデバイスは、それらの識別番号を送信することによって構成サーバ２００及び２０１に登録する。デバイス３６０でさえも、デバイス３００と３５０との間で共有される鍵を取得することはできない。
【０２０７】
個人化デバイス１１０は、他の目的にも使用される識別番号を割り当てることができる。例えば個人化デバイス１１０は、ＭＡＣアドレス等のネットワークアドレスを割り当ててもよい。ネットワークアドレスは、ネットワークノードによって、第２のネットワークノードからそれ自身へネットワークトラフィックをルーティングするため用いられる。しかしながら、ネットワークアドレスは識別番号としても兼用され得る。この場合、ネットワークノードは、そのネットワークアドレスをシステム２００及び２０１が利用できるようにし、ネットワークノードがそのネットワークアドレスを識別番号として用いて暗号化通信に関与することを可能とする一変数秘密鍵多項式を受信する。識別番号は、完全エントロピ、すなわちＢビットのエントロピを有することが好ましい。しかしながら、これが実現可能でない場合は、識別番号としてこの番号を用いる前に、例えばハッシュ関数等のエントロピ平滑化関数を実行することが好ましい。
【０２０８】
個人化デバイス１１０は、近い識別番号、すなわち最上位ビットの多く又は全てを共有する識別番号を回避することによって、システムのセキュリティを向上させるように識別番号を生成できる。例えばサーバ１１０は、識別番号をランダムに、例えば真の又は疑似乱数を生成することができる。また、例えば１０ビット等の所定数のランダムなビットを識別番号に付加することで充分である。識別番号は、Ａ１｜｜Ａ２の形態を有し得る。Ａ１は乱数でなく、例えば通し番号、ネットワークアドレス等であり、Ａ２は乱数である。Ａ２は乱数発生器によって発生すればよい。Ａ２は、Ａ１のハッシュ処理によって生成してもよい。鍵形成ハッシュ（ｋｅｙｅｄ  ｈａｓｈ）、例えばＨＭＡＣが用いられる場合、Ａ２は、前記のカギにアクセスを有しないパーティには、乱数から区別できない場合がある。この鍵はサーバ１１０によって生成され、記憶することができる。
【０２０９】
サーバ１１０は、構成サーバの１つに含めることができ、例えばシステム２００内で、例えばネットワークマネージャ２３０に組み込んでもよい。
【０２１０】
典型的に、デバイス２００、２０１、２０２、及び３００、３５０、３６０、及び１１０は各々、デバイスに記憶された適切なソフトウェアを実行するマイクロプロセッサ（図示せず）を備えている。例えばそのソフトウェアは、例えばＲＡＭ等の揮発性メモリ又はフラッシュ（Ｆｌａｓｈ）等の不揮発性メモリ（図示せず）のような対応するメモリにダウンロード及び／又は記憶しておくことができる。また、これらのデバイスにマイクロプロセッサ及びメモリ（図示せず）を搭載することも可能である。あるいは、デバイスは全体的に又は部分的に、例えばフィールドプログラマブルゲートアレイ（ＦＰＧＡ）等のプログラマブル論理に実装してもよい。デバイスは、全体的に又は部分的に、いわゆる特定用途向け集積回路（ＡＳＩＣ）、すなわち特定の用途のためカスタマイズされた集積回路に実装してもよい。
【０２１１】
図６は、集積回路４００の概略ブロック図である。集積回路４００は、プロセッサ４２０、メモリ４３０、及び入出力ユニット４４０を備えている。集積回路４００のこれらのユニットは、バス等の相互接続４１０を介して相互に通信を行うことができる。プロセッサ４２０は、メモリ４３０に記憶されたソフトウェアを実行して、本明細書に記載されるような方法、例えばデバイスを構成するための方法又は共有鍵を決定するための方法を実行するように構成されている。このように、集積回路４００は、構成サーバ２００又は第１のネットワークデバイス３００等のネットワークデバイスとして構成することができる。メモリ４３０の一部は、必要に応じて、公開グローバルリダクション整数、二変数多項式の第１の秘密セット、リダクション整数の第２の秘密セット、識別番号、平文メッセージ、及び／又は暗号化メッセージを記憶することができる。
【０２１２】
入出力ユニット４４０は、デバイス２００又は３００等の他のデバイスと通信を行って、例えば二変数多項式の第１の秘密セット２５２、場合によってはサイズ、次数、モジュラスのような関連付けられたパラメータ等も含む鍵データを受信すること、又は暗号化及び／又は認証されたメッセージを送信及び受信することができる。入出力ユニット４４０は無線通信のためのアンテナを備えてもよい。入出力ユニット４４０は有線通信のための電気インタフェースを備えてもよい。
【０２１３】
集積回路４００は、コンピュータや携帯電話等の移動通信デバイスに一体化してもよい。集積回路４００は、照明デバイスに一体化し、例えばＬＥＤデバイスと共に設けてもよい。例えば、ネットワークデバイスとして構成され、ＬＥＤ等の照明ユニットと共に設けられる集積回路は、共有対称鍵で暗号化されたコマンドを受信することができる。
【０２１４】
例えば照明デバイスに組み込まれた複数のネットワークデバイスは、暗号化ネットワークのノードを形成することができ、この場合、ノード間で共有鍵を用いてリンクが暗号化される。
【０２１５】
集積回路４００は、迅速な対称鍵合意を望む他のデバイスに一体化することも可能である。集積回路４００は支払いシステムに一体化してもよい。集積回路４００は自動車に一体化してもよい。複数のそのような自動車を自動車間通信のために配置し、共有鍵を用いて自動車間メッセージを暗号化及び／又は認証してもよい。
【０２１６】
多項式操作は、メモリ４３０に記憶された多項式操作ソフトウェアにより命令される通りにプロセッサ４２０が実行すればよいが、集積回路４００が任意選択的な計算ユニット４５０と共に構成されている場合、鍵生成及び一変数多項式を計算するタスクはいっそう迅速になる。この実施形態において、計算ユニット４５０は、代入及びリダクション動作を実行するためのハードウェアユニットである。
【０２１７】
典型的に、デバイス２００、３００は各々、デバイス２００及び３００に記憶された適切なソフトウェアを実行するマイクロプロセッサ（図示せず）を備えている。例えばそのソフトウェアは、例えばＲＡＭ等の揮発性メモリ又はフラッシュ等の不揮発性メモリ（図示せず）のような対応するメモリにダウンロード及び／又は記憶しておくことができる。あるいは、デバイス２００又は３００は全体的に又は部分的に、例えばフィールドプログラマブルゲートアレイ（ＦＰＧＡ）等のプログラマブル論理に実装してもよい。
【０２１８】
図５は、複数のネットワークデバイスのいずれか１つとの共有鍵を決定するための方法５００の実施形態の一例をフローチャートとして概略的に示す。この方法は、例えばデバイス３００、３５０、及び３６０のいずれか１つによって実行すればよい。方法は、
第１のネットワークデバイス識別番号（３１０，Ａ）を記憶すること（５１０）、
複数の構成サーバのうち少なくとも２つの異なる構成サーバから複数のローカル鍵材料を受信すること（５２０）、
複数のネットワークデバイスのうち第２のネットワークデバイスの第２のネットワークデバイス識別番号（３５５，Ｂ）を取得すること（５３０）、
第１のネットワークデバイス識別番号を第２のネットワークデバイスに提供すること（５４０）、
第２のネットワークデバイス識別番号及び第１のネットワークデバイスの複数のローカル鍵材料のうち少なくとも２つから、第１及び第２のネットワークデバイス間で共有される共有鍵を導出すること（５５０）、
を備える。
【０２１９】
当業者に明らかであるように、この方法を実行する多くの異なる手法が可能である。例えばステップの順序を変えることができ、又はいくつかのステップを並行して実行してもよい。更に、ステップ間に他の方法ステップを挿入してもよい。挿入されるステップは、本明細書に記載されるような方法の改良（ｒｅｆｉｎｅｍｅｎｔ）を表すことがあり、又は本方法に無関係であることもある。
【０２２０】
ある実施形態に従った方法は、プロセッサシステムに方法５００又は６００を実行させるための命令を含むソフトウェアを用いて実行され得る。ソフトウェアは、システムの特定のサブエンティティ（ｓｕｂ−ｅｎｔｉｔｙ）によって利用されるステップのみを含み得る。ソフトウェアは、ハードディスク、フロッピー、メモリ等の適切な記憶媒体に記憶することができる。ソフトウェアは、有線又は無線で、又は例えばインターネット等のデータネットワークを用いて、信号として送信することができる。ソフトウェアは、ダウンロードのため及び／又はサーバ上での遠隔使用のため利用できるようにしてもよい。方法は、この方法を実行するため、例えばフィールドプログラマブルゲートアレイ（ＦＰＧＡ）等のプログラマブル論理を構成するように設けられたビットストリームを用いて実行すればよい。
【０２２１】
本発明は、本発明を実行に移すように適合されたコンピュータプログラム、特にキャリア上又はキャリア内のコンピュータプログラムにも拡張されることは認められよう。プログラムは、ソースコード、オブジェクトコード、部分的にコンパイルされた形態等のソースコード及びオブジェクトコードの中間コードの形態、又は実施形態に従った本方法の実装における使用に適した他の任意の形態を取り得る。コンピュータプログラム製品に関する一実施形態は、上述した方法の少なくとも１つの処理ステップの各々に対応するコンピュータ実行可能命令を含む。これらの命令はサブルーチンに細分してもよく、及び／又は静的に又は動的にリンクされ得る１つ以上のファイル内に記憶してもよい。コンピュータプログラム製品に関する別の実施形態は、上述したシステム及び／又は製品のうち少なくとも１つの手段の各々に対応するコンピュータ実行可能命令を含む。
【０２２２】
上述の実施形態は本発明を限定するのではなく例示するものであり、当業者は多くの代替的な実施形態を設計できることに留意するべきである。
【０２２３】
請求項において、括弧内に置かれたいかなる参照符号も請求項を限定するものとして解釈されるべきではない。動詞「ｃｏｍｐｒｉｓｅ（備える）」及びその活用形の使用は、請求項に記載されたもの以外の要素又はステップの存在を除外しない。ある要素の前の冠詞「ａ（１つの）」又は「ａｎ（１つの）」は、複数のそのような要素の存在を除外しない。本発明は、いくつかの別個の要素を含むハードウェアによって、及び適切にプログラミングしたコンピュータによって実施され得る。いくつかの手段を列挙したデバイスの請求項では、これらの手段のいくつかはハードウェアの同一のアイテムによって具現化され得る。単にいくつかの手段（ｍｅａｓｕｒｅｓ）が相互に異なる従属項に記載されているからといって、これらの手段の組み合わせを有利に使用することができないと示唆されるわけではない。
【０２２４】
請求項において、括弧内の参照番号（ｒｅｆｅｒｅｎｃｅ）は、実施形態の図面又は実施形態の式における参照符号を示し、これによって請求項の理解しやすさを向上させる。これらの参照番号は請求項を限定するものとして解釈されない。
【図１ａ】
0006559774.tif 000015
【図１ｂ】
0006559774.tif 000016
【図２】
0006559774.tif 000017
【図３】
0006559774.tif 000018
【図４】
0006559774.tif 000019
【図５】
0006559774.tif 000020
【図６】
0006559774.tif 000021