(57)【要約】第２のデバイス（３５０）とともに共有鍵を決定するよう構成されている第１のデバイス（３００）。暗号法において、鍵共有プロトコルは、まだ共通鍵を共有していない場合がある２以上のパーティがそのような鍵について合意することができるプロトコルである。第１のデバイスは、秘密補正関数（ΛＡ（））及び秘密一変数鍵多項式（３７２、ＧＡ（））を備える。秘密一変数鍵多項式から、補正関数が導出され、補正関数から、補正係数が導出される。可能な共有鍵の数を低減させるために、中間鍵が修正される。
2017519457.tif 000002
【特許請求の範囲】
【請求項１】
第２のデバイスとともに共有鍵を決定するよう構成されている第１のデバイスであって、
第１の識別番号と、第１の秘密補正関数と、第１の秘密一変数鍵多項式と、を記憶する電子ストレージであって、
前記第２のデバイスは、第２の秘密一変数鍵多項式及び第２の補正関数にアクセスすることができ、前記第１の識別番号を前記第２の秘密一変数鍵多項式に代入することから第２の中間鍵を取得するよう構成されており、補正係数を用いて前記第２の中間鍵を修正することから第２の補正された鍵を取得するよう構成されており、前記第１の秘密補正関数及び第２の秘密補正関数は、少なくとも１つの非整数係数を有する有理多項式の非多項式整数近似である、
電子ストレージと、
前記第２のデバイスの第２の識別番号を取得するよう構成されている通信ユニットと、
前記第２の識別番号を前記第１の秘密一変数鍵多項式に代入して、第１の中間鍵を取得するよう構成されている多項式操作ユニットであって、前記第１の中間鍵は、第１の鍵集合を規定し、前記第２のデバイスによって導出される前記第２の中間鍵は、前記第１の鍵集合内に含まれる、多項式操作ユニットと、
前記第２の識別番号を前記第１の秘密補正関数に代入して、第１の補正係数を取得し、前記第１の補正係数を用いて前記第１の中間鍵を修正して、第１の補正された鍵を取得するよう構成されている鍵補正ユニットであって、前記第１の補正された鍵は、第２の鍵集合を規定し、前記第２の鍵集合は、前記第１の鍵集合よりも小さく、前記第２の鍵集合は、前記第２の補正された鍵を含み、前記第１のデバイスは、少なくとも前記第１の補正された鍵から前記共有鍵を導出するよう構成されている、鍵補正ユニットと、
を備える、第１のデバイス。
【請求項２】
前記第１の秘密補正関数は単調である、請求項１に記載の第１のデバイス。
【請求項３】
前記第１の秘密補正関数は、有理係数を有する丸められた多項式である、請求項１又は２に記載の第１のデバイス。
【請求項４】
前記第１の秘密補正関数は、有理係数を有する単一の項を有する丸められた多項式である、請求項３に記載の第１のデバイス。
【請求項５】
前記第１の秘密補正関数ΛＡ（）は、ｘ≦ＩＡ，１である場合、ΛＡ（ｘ）＝０であり、ＩＡ，ｉ＜ｘ≦ＩＡ，ｉ＋１である場合、ΛＡ（ｘ）＝ｉであるように、昇順の一連の整数ブレークポイントＩＡ，１、ＩＡ，２、．．．として記憶される、請求項２に記載の第１のデバイス。
【請求項６】
前記第１の秘密一変数鍵多項式は、二変数多項式の第１の秘密集合の各特定の多項式について、前記第１の識別番号を該特定の多項式に代入し、該特定の多項式に関連付けられている簡約整数を法として簡約し、一変数多項式の集合を合計することにより、前記一変数多項式の集合を取得することによって、デバイスを構成するためのシステムによって取得されている、請求項１乃至５のいずれか一項に記載の第１のデバイス。
【請求項７】
前記簡約整数ｐｉは、βｉ＜２Ｂである何らかの整数βｉ、及び、公開グローバル簡約整数Ｎについて、ｐｉ＝Ｎ−βｉ２ｂを満たす、請求項６に記載の第１のデバイス。
【請求項８】
前記第１の鍵集合は、前記第１の中間鍵によって、補正項の倍数を加算又は減算することにより規定され、前記倍数は、上限よりも小さく下限よりも大きい、請求項１乃至７のいずれか一項に記載の第１のデバイス。
【請求項９】
前記電子ストレージは、公開グローバル簡約整数をさらに記憶し、前記第１の中間鍵を修正することは、前記第１の補正係数を前記公開グローバル簡約整数で乗算し、前記乗算の結果を前記第１の中間鍵に対して加算又は減算することを含む、請求項１乃至８のいずれか一項に記載の第１のデバイス。
【請求項１０】
前記多項式操作ユニットは、さらに、前記公開グローバル簡約整数を法として前記代入の結果を簡約し、２ｂを法として、前記公開グローバル簡約整数を法とする前記簡約の結果をさらに簡約して、前記第１の中間鍵を取得するよう構成されており、前記第１の中間鍵は、ｂビット長であり、前記第１の中間鍵を修正することは、前記加算又は前記減算の後に、２ｂを法として簡約することをさらに含む、請求項９に記載の第１のデバイス。
【請求項１１】
前記第１の秘密補正関数ΛＡ（Ｘ）は、関数
【数１】
2017519457.tif 000054
を近似し、ここで、
【数２】
2017519457.tif 000055
であり、ｆｉ（，）は、前記二変数多項式の第１の秘密集合を表し、ｐｉは、簡約モジュラスの第２の秘密集合を表す、請求項６に記載の第１のデバイス。
【請求項１２】
前記通信ユニットは、さらに、前記第２のデバイスから鍵調整データを受信するよう構成されており、前記第１のデバイスは、前記の受信された鍵調整データに合うように前記第１の補正された鍵を修正するよう構成されている鍵調整ユニットを備え、前記共有鍵は、前記の修正された第１の補正された鍵から導出される、請求項１乃至１１のいずれか一項に記載の第１のデバイス。
【請求項１３】
鍵を共有するように第１のデバイスを構成するためのシステムであって、
ルート鍵材料を電子的形態で取得するよう構成されている鍵材料取得部と、
少なくとも、前記第１のデバイスの第１の識別番号を電子的形態で取得するデバイスマネージャと、
前記第１のデバイスについて、請求項１に記載の第１のデバイスにおいて使用するために、前記ルート鍵材料及び前記第１の識別番号から秘密一変数鍵多項式及び秘密補正関数を計算する計算ユニットであって、前記第１の秘密補正関数は、少なくとも１つの非整数係数を有する有理多項式の非多項式整数近似である、計算ユニットと、
を備え、
前記デバイスマネージャは、さらに、生成された前記秘密一変数鍵多項式及び前記秘密補正関数を、前記第１のデバイスにおいて電子的に記憶させるよう構成されている、システム。
【請求項１４】
前記ルート鍵材料は、二変数多項式の第１の秘密集合、及び、簡約整数の第２の秘密集合を含み、前記第１の秘密集合内の各二変数多項式には、前記第２の秘密集合の簡約整数が関連付けられており、前記鍵材料取得部は、さらに、公開グローバル簡約整数を取得するよう構成されており、
前記計算ユニットは、前記第１のデバイスについて、
前記第１の秘密集合の各特定の多項式について、前記第１の識別番号を該特定の多項式に代入し、該特定の多項式に関連付けられている前記簡約整数を法として簡約することによって、一変数多項式の集合を取得し、
前記一変数多項式の集合を合計する
ことによって、前記第１の秘密集合及び前記第２の秘密集合から、前記秘密一変数鍵多項式を計算するよう構成されている、請求項１３に記載のシステム。
【請求項１５】
前記計算ユニットは、関数
【数３】
2017519457.tif 000056
を近似することによって前記秘密補正関数ΛＡ（Ｘ）を計算するよう構成されており、ここで、
【数４】
2017519457.tif 000057
であり、ｆｉ（，）は、前記二変数多項式の第１の秘密集合を表し、ｐｉは、簡約モジュラスの第２の秘密集合を表す、請求項１４に記載のシステム。
【請求項１６】
第２のデバイスとともに共有鍵を決定するための方法であって、
第１の識別番号と、少なくとも１つの非整数係数を有する有理多項式の非多項式整数近似である第１の秘密補正関数と、第１の秘密一変数鍵多項式と、を記憶するステップと、
前記第２のデバイスの第２の識別番号を取得するステップと、
前記第２の識別番号を前記第１の秘密一変数鍵多項式に代入して、第１の中間鍵を取得するステップであって、前記第１の中間鍵は、第１の鍵集合を規定する、ステップと、
前記第２の識別番号を前記第１の秘密補正関数に代入して、第１の補正係数を取得するステップと、
前記第１の補正係数を用いて前記第１の中間鍵を修正して、第１の補正された鍵を取得するステップであって、前記第１の補正された鍵は、第２の鍵集合を規定し、前記第２の鍵集合は、前記第１の鍵集合よりも小さい、ステップと、
を含む、方法。
【請求項１７】
鍵を共有するようにデバイスを構成するための方法であって、
ルート鍵材料を電子的形態で取得するステップと、
前記デバイスの第１の識別番号を電子的形態で取得するステップと、
前記デバイスについて、前記ルート鍵材料及び前記第１の識別番号から、秘密一変数鍵多項式及び第１の秘密補正関数を計算するステップであって、前記第１の秘密補正関数は、少なくとも１つの非整数係数を有する有理多項式の非多項式整数近似である、ステップと、
生成された前記秘密一変数鍵多項式及び前記第１の秘密補正関数を、前記デバイスにおいて電子的に記憶させるステップと、
を含む、方法。
【請求項１８】
コンピュータ上で実行されたときにプロセッサに請求項１６又は１７に記載の方法を実行させる命令を含むコンピュータプログラム。
【請求項１９】
請求項１８に記載のコンピュータプログラムを記憶しているコンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、さらなるデバイスとともに共有鍵を決定するよう構成されているデバイスに関する。
【０００２】
本発明は、さらに、鍵を共有するようにデバイスを構成するためのシステムに関する。
【０００３】
本発明は、さらに、さらなるネットワークデバイスとともに共有鍵を決定するための方法、鍵を共有するようにデバイスを構成するための方法、並びに、対応するコンピュータプログラム及びコンピュータ読み取り可能な媒体に関する。
【背景技術】
【０００４】
暗号法において、鍵共有プロトコルは、まだ共通鍵を共有していない場合がある２以上のパーティがそのような鍵について合意することができるプロトコルである。好ましくは、両方のパーティは、いずれのパーティも鍵の選択を強制することができないように、結果に影響を及ぼし得る。２つのパーティ間の全ての通信を傍受する攻撃者は、鍵に関しては何も学習しないはずである。また、同じ通信を見る攻撃者は、何も又はほとんど学習しないが、パーティ自身は、共有鍵を導出することができる。鍵共有プロトコルは、例えば、通信をセキュアにすること、例えば、パーティ間のメッセージを暗号化及び／又は認証することのために、有用である。
【０００５】
鍵共有のための既知のシステムが、参照により含まれる、同一出願人による「Ｋｅｙ  ｓｈａｒｉｎｇ  ｄｅｖｉｃｅ  ａｎｄ  ｓｙｓｔｅｍ  ｆｏｒ  ｃｏｎｆｉｇｕｒａｔｉｏｎ  ｔｈｅｒｅｏｆ」と題する国際公開第２０１３／１７４５５４号（特許文献１）に開示されている。このシステムは、「ＨＩＭＭＯ」として知られている。この既知のシステムの一態様に従うと、ルート鍵材料が生成される。ルート鍵材料は、次数αｊのｍ個の対称二変数多項式ｆ１、ｆ２、．．．、ｆｍを含む。各関与するデバイスについて、秘密一変数鍵多項式が生成される。信頼できる第三者機関（ＴＴＰ）は、以下のように、デバイスＡについての鍵材料を生成することができる。
【数１】
2017519457.tif 000003
【０００６】
表記
【数２】
2017519457.tif 000004
は、ｐｊを法として、括弧の間の多項式の各係数を簡約することを表す。数ｐ１、．．．、ｐｍは、秘密であり、ルート鍵材料の一部分である。
【０００７】
２つのデバイスが、識別番号Ａ及びＢを有し、ＴＴＰからそれらのそれぞれの鍵材料を受信すると、それらのデバイスは、それらの鍵材料を使用して、共有鍵を取得することができる。デバイスＡは、次のステップを実行することができる。すなわち、デバイスＡは、最初に、デバイスＢの識別番号Ｂを取得し、次いで、Ａは、以下を計算することによって、共有鍵を生成する。
【数３】
2017519457.tif 000005
【０００８】
この式において、Ｎは、公開グローバル簡約整数（public  global  reduction  integer）を指し、鍵長は、「ｂ」として参照される。
【０００９】
複数の異なる環にわたって多項式を加算することによって、秘密一変数鍵多項式は、特別な構造を有するようになる。すなわち、Ａの共有鍵及びＢの共有鍵は、必ずしも常にというわけではないが、多くの場合、等しくなる。
【００１０】
Ａによって導出される共有鍵とＢによって導出される共有鍵とが、等しくなり、暗号目的で使用可能になるように、それらの共有鍵を調整するための様々な可能性が存在する。それでも、調整プロセスは問題があると考えられており、そのため、調整の量を低減させることが望まれている。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】国際公開第２０１３／１７４５５４号
【発明の概要】
【００１２】
デバイスＡがデバイスＢの識別番号をＡの秘密一変数鍵多項式に代入して、中間鍵を取得すると、中間鍵は、デバイスＢが、デバイスＡの識別番号をＢの秘密一変数鍵多項式に代入することによって取得している可能性がある、可能な鍵の集合を規定すること、を本発明者らは見出した。
【００１３】
デバイスＢの識別番号を代入することによって取得される鍵Ａと、デバイスＡの識別番号を代入することによって取得される鍵Ｂと、の間の差は限られる。
【数４】
2017519457.tif 000006
が成り立ち、ここで、δは、絶対値｜δ｜≦Δに制限される整数である。
【００１４】
これは、デバイスＡが、ＫＡＢによって規定される２Δ＋１個の候補の間でＫＢＡを見出すことを可能にするために、デバイスＢが、ＫＢＡに関する少なくともｌｏｇ２（２Δ＋１）ビットの情報をデバイスＡに送信しなければならないことを意味する。情報理論的観点から、これは、有効鍵長を、ｂビットからｂ−ｌｏｇ２（２Δ＋１）ビットに低減させる。代替的に、デバイスＢは、ＫＢＡのハッシュ値ｈ（ＫＢＡ）をデバイスＡに送信することもある。デバイスＡは、次いで、ｈ（ＫＢＡ）を、式
【数５】
2017519457.tif 000007
（｜δ｜≦Δである）の全ての候補のハッシュ値と比較することによって、ＫＢＡを見出すことができる。これは、Δが大きい場合には時間がかかる。
【００１５】
鍵共有のための改善されたデバイスを有することが有利であろう。
【００１６】
第２のデバイスとともに共有鍵を決定するよう構成されている第１のデバイスが提供される。第１のデバイスは、電子ストレージと、通信ユニットと、多項式操作ユニットと、鍵補正ユニットと、を備える。
【００１７】
電子ストレージは、第１の識別番号、第１の秘密補正関数、及び第１の秘密一変数鍵多項式を記憶する。第２のデバイスは、第２の秘密一変数鍵多項式及び第２の補正鍵にアクセスすることができる。第１のデバイスと同様に、第２のデバイスも、中間鍵を計算し、次いで、補正係数を計算し、最後に、補正された中間鍵を計算する。第２のデバイスは、それ自身の補正関数にアクセスすることができる。
【００１８】
通信ユニットは、第２のデバイスの第２の識別番号を取得するよう構成されている。
【００１９】
多項式操作ユニットは、第２の識別番号を秘密一変数鍵多項式に代入して、中間鍵を取得するよう構成されており、中間鍵は、第１の鍵集合を規定し、第２のデバイスによって導出される中間鍵は、第１の鍵集合内に含まれる。
【００２０】
鍵補正ユニットは、第２の識別番号を秘密補正関数に代入して、補正係数を取得し、補正係数を用いて中間鍵を修正して、補正された鍵を取得するよう構成されており、補正された鍵は、第２の鍵集合を規定する。第２の集合は、第１の集合よりも小さく、さらに、デバイスＢによって取得される補正された鍵は、第２の鍵集合内に含まれる。
【００２１】
第１の鍵集合内の鍵は、対称鍵とみなされ得る。第１のデバイス及び第２のデバイスは、中間鍵から共有鍵を導出することができる。この場合、それらは、第１の鍵集合のサイズにわたって調整する必要があるであろう。
【００２２】
秘密補正関数（ΛＡ（））は、追加の調整データを送信することなく、第１の集合のサイズを低減させる。したがって、可能性のある鍵非対称性が低減される。任意の追加の調整データは、セキュリティを低減させる可能性があり、したがって、これを低減させることが有利である。さらに、鍵調整は少なくて済む。
【００２３】
共有鍵は、補正された中間鍵から導出され得る。補正された中間鍵から共有鍵を導出することは、調整データを受信し、補正された中間鍵を、受信された調整データに合わせること、及び／又は、鍵導出関数を適用すること、を含み得る。共有鍵は、複数の補正された中間鍵を組み合わせることができる。
【００２４】
本発明の一態様は、鍵を共有するように第１のデバイスを構成するためのシステムに関する。本発明の一態様は、第２のデバイスとともに共有鍵を決定するための方法に関する。本発明の一態様は、鍵を共有するようにデバイスを構成するための方法に関する。
【００２５】
第１のデバイス及び第２のデバイス、並びに構成するためのシステムは、電子デバイスである。本明細書に記載の第１のデバイスは、広範な実際的用途において適用され得る。そのような実際的用途は、多数の可能性のあるデバイス間のセキュアな通信を必要とする通信ネットワークを含む。そのような通信ネットワークは、ライティングネットワーク及び車両間通信を含む。
【００２６】
本発明に従った方法は、コンピュータ実施方法としてコンピュータ上で、若しくは専用ハードウェアにおいて、又はそれら両方の組合せで実施され得る。本発明に従った方法のための実行可能なコードは、コンピュータプログラム製品に記憶され得る。コンピュータプログラム製品の例は、メモリデバイス、光記憶デバイス、集積回路、サーバ、オンラインソフトウェア等を含む。好ましくは、コンピュータプログラム製品は、当該プログラム製品がコンピュータ上で実行されたときに本発明に従った方法を実行するための、コンピュータ読み取り可能な媒体に記憶されている非一時的なプログラムコード手段を含む。
【００２７】
好ましい実施形態において、コンピュータプログラムは、当該コンピュータプログラムがコンピュータ上で実行されたときに本発明に従った方法の全てのステップを実行するよう適合されているコンピュータプログラムコード手段を含む。好ましくは、コンピュータプログラムは、コンピュータ読み取り可能な媒体上に具現化される。
【図面の簡単な説明】
【００２８】
本発明のこれらの態様及び他の態様が、以下に記載されている実施形態から明らかになり、同実施形態を参照することによって明瞭にされるであろう。異なる図面において同じ参照符号を有するアイテムは、同じ構造的特徴及び同じ機能を有する、又は同じ信号であることに留意されたい。そのようなアイテムの機能及び／又は構造が説明されている場合、詳細な説明において、その繰り返しの説明の必要はない。
【図１】鍵を共有するようにネットワークデバイス３００を構成するためのシステム２００の概略ブロック図である。
【図２】第１のネットワークデバイス３００及び第２のネットワークデバイス３５０の概略ブロック図である。
【図３ａ】鍵共有システム１００の概略ブロック図である。
【図３ｂ】鍵共有システム１０２の概略ブロック図である。
【図４】集積回路４００の概略ブロック図である。
【図５】第２のネットワークデバイス３５０とともに共有鍵を決定するための方法５００を示すフローチャートである。
【図６】鍵を共有するようにネットワークデバイスを構成するための方法６００を示すフローチャートである。
【発明を実施するための形態】
【００２９】
本発明は、多くの異なる形の実施形態が可能であるが、１以上の特定の実施形態が、図面に示され本明細書で詳細に説明される。本開示は、本発明の原理の例示として考えられるべきであり、本発明を、図示及び説明される特定の実施形態に限定するようには意図されていないことを理解されたい。
【００３０】
以下において、まず、鍵共有方法の実施形態が、数学的用語で説明される。鍵共有方法は、鍵共有システム１００、１０２等における、以下に記載するようなデバイスにおいて、例えば、ネットワークデバイス３００を構成するためのシステム２００において、実施され得る。デバイスは、ノード又はネットワークノードとも呼ばれる。
【００３１】
一実施形態に従った複数のデバイスは、それらのペアの間で容易に鍵を確立することができ、したがって、それらのデバイスのうちのいずれか２つのデバイスの間のセキュアな通信を可能にする。したがって、それらのデバイスは、ネットワークデバイスと呼ばれる。一実施形態において、２つのデバイスの間の通信は、無線通信を使用する。例えば有線通信等の他の形態の通信も可能である。
【００３２】
方法は、セットアップフェーズ及び使用フェーズを有する。セットアップフェーズは、開始ステップ及び登録ステップを含み得る。開始ステップは、ネットワークデバイスを伴わない。
【００３３】
開始ステップは、システムパラメータを選択する。開始ステップは、信頼できる第三者機関（ＴＴＰ）によって実行され得る。システムパラメータは、所与の入力とみなされもする。この場合、信頼できる第三者機関は、システムパラメータを生成する必要がなく、開始ステップは、スキップされ得る。例えば、信頼できる第三者機関は、デバイス製造業者からシステムパラメータを受け取ることができる。デバイス製造業者は、開始ステップを実行して、システムパラメータを取得していることがある。説明の便宜上、信頼できる第三者機関が開始ステップを実行するものとして言及されるが、これは必須ではないことに留意されたい。
【００３４】
開始ステップ
インスタンスの使用フェーズにおいてデバイス間で共有されることになる鍵の所望の鍵長が選択される。この鍵長は、「ｂ」として参照される。所望の識別番号長も選択される。後の登録ステップ中に、各デバイスは、識別番号長を有する識別番号に関連付けられることになる。識別番号長は、「Ｂ」として参照される。番号の長さは、ビット単位で測定される。
【００３５】
ｂ≦Ｂであることが好ましいが、これは必須ではない。格子攻撃に対する耐性を高めるために、ｂ＜Ｂが選択され得る。一実施形態において、Ｂは、ｂの倍数であり、例えば、Ｂは、少なくとも２ｂであり、又は、推奨されるセキュリティレベルについては、Ｂは、少なくとも４ｂである。低セキュリティ用途のための一般的な値は、ｂ＝８、Ｂ＝１６であり得る。高いセキュリティのためには、ｂ＝８、Ｂ＝３２がより良好である。より高いセキュリティでは、ｂ≦８（例えば、ｂ＝８）及びＢ≧１２８（例えば、Ｂ＝１２８）が使用され得る。
【００３６】
各インスタンスを用いて、２つのパーティは、共有鍵を導出することができる。共有鍵は、組み合わされて、より大きい組合せ鍵（combined  key）が形成され得る。インスタンスの数は、組合せ鍵が、それが使用されることになるセキュリティ用途にとって十分長くなるように選択される。
【００３７】
Ｂに対してｂの値が小さくなるほど、いわゆる結託攻撃に対する耐性が増大する。結託攻撃において、攻撃者は、ターゲットネットワークノードと複数の結託ネットワークノードとの間で使用される共有鍵に関する情報を取得する。
【００３８】
しばしば、インスタンスの数、鍵サイズ、及びサブ鍵長は、例えば、システム設計者によって事前に決定され、入力として信頼できるパーティに提供される。
【００３９】
インスタンスパラメータ
次いで、各インスタンスについてのパラメータが選択される。所望の次数が選択される。次数は、所定の多項式の次数を制御する。次数は、「α」として参照され、少なくとも１である。αの実用的な選択は２である。よりセキュアな用途では、αとして、より高い値、例えば３若しくは４、又はさらに高い値が使用され得る。単純な用途では、α＝１も可能である。α＝１の場合は、いわゆる「隠れ数問題」に関連し、より高い「α」値は、拡張隠れ問題に関連し、これらの場合は、破るのが難しいことが確認されている。値α＝１は、可能ではあるが推奨されず、非常に低いセキュリティ用途についてのみ検討されるべきである。低セキュリティ用途では、α＞２、例えば、α＝３が可能である。しかしながら、高いセキュリティでは、α≧３２、例えば、α＝３２が推奨される。
【００４０】
多項式の数が選択される。多項式の数は、「ｍ」として参照される。ｍの実用的な選択は２である。よりセキュアな用途では、ｍとして、より高い値、例えば、３若しくは４、又はさらに高い値が使用され得る。
【００４１】
低複雑度のアプリケーションは、例えば、リソースが限られているデバイスについては、ｍ＝１を使用し得ることに留意されたい。値ｍ＝１は、可能ではあるが推奨されず、低セキュリティ用途についてのみ検討されるべきである。セキュリティパラメータα及びｍのより高い値は、システムの複雑度、したがって、その取り扱いにくさを増大させる。システムが複雑になるほど解析が難しくなり、したがって、暗号解読に対する耐性が高くなる。以下においては、ｍ≧２であると想定する。
【００４２】
２（α＋１）Ｂ＋ｂ−１≦Ｎを満たす公開モジュラスＮが選択される。好ましくは、公開モジュラスＮは、正確に（α＋１）Ｂ＋ｂビットを有するように選択され、したがって、Ｎ＜２（α＋１）Ｂ＋ｂでもある。例えば、Ｎは、この間隔の中でランダムに選択され得る。しばしば、鍵長ｂ、多項式の次数α及び数ｍは、例えば、システム設計者によって事前に決定され、入力として信頼できるパーティに提供される。公開モジュラスは、例えば標準において固定されてもよいが、より一般的には、パラメータを生成している間に選択される。
【００４３】
ｍ個の秘密モジュラスｐ１、ｐ２、．．．、ｐｍが選択される。モジュラスは、正の整数である。一実施形態において、各選択される数は、関係ｐｊ＝Ｎ−βｊ・２ｂを満たす。ここで、βｊは、ランダムなＢビット整数である、すなわち、βｊ＜２Ｂである。より好ましくは、秘密モジュラスは、識別子長Ｂに正確に等しいビット数を有する、すなわち、２Ｂ−１≦βｊ＜２Ｂである。これらの秘密モジュラスは、第２の秘密集合と呼ばれる。
【００４４】
ｍ＞１について、異なるモジュラスについてのモジュロ演算が、そのような演算は通常の数学的意味では両立しないにもかかわらず、組み合わされるため、システムは、より複雑であり、したがって、よりセキュアである。この理由から、選択される秘密モジュラスｐｊを、互いに相違するもの（pairwise  distinct）として選択することが有利である。非常に低いセキュリティ用途以外では、ｍ＞１及びα＞１が推奨されるが、より高い値が使用されることが好ましい。
【００４５】
一実施形態において、ｍ＞１、α＞１、ｐｊ＝Ｎ−βｊ・２ｂ、βｊ＜２Ｂ、及び２（α＋１）Ｂ＋ｂ−１≦Ｎである。
【００４６】
次数αｊのｍ個の二変数多項式ｆ１、ｆ２、．．．、ｆｍが生成され、これらは、第１の秘密集合と呼ばれる。好ましくは、二変数多項式は対称であり、これは、全てのネットワークデバイスが、各他のネットワークデバイスと共有鍵について合意することを可能にする。これらの二変数多項式はまた、非対称に選択されてもよい。後者の場合において、デバイスは、２つのグループ、すなわち、二変数多項式の第１の変数に代入することによってローカル鍵材料を取得する第１のグループと、二変数多項式の第２の変数に代入することによってローカル鍵材料を取得する第２のグループと、に分けられる。１つのグループ内のデバイスは、他のデバイス内のデバイスとのみ、共有鍵について合意することができる。
【００４７】
全ての次数は、αｊ≦αを満たし、少なくとも１つのｊについて、αｊ＝αである。より良好な選択は、それぞれが次数αの多項式をとることである。二変数多項式は、変数が２つの多項式である。対称多項式ｆは、ｆ（ｘ，ｙ）＝ｆ（ｙ，ｘ）を満たす。モジュロｐｊを演算することによって取得されるｐｊを法とする整数によって形成される有限環において、各多項式ｆｊが評価される。ｐｊを法とする整数は、ｐｊの元（element）を含む有限環を形成する。多項式ｆｊの係数は、整数であり、モジュロｐｊ演算によって規定される有限環内の元を表す。一実施形態において、多項式ｆｊは、０からｐｊ−１までの係数を用いて表される。二変数多項式は、ランダムに、例えば、これらの制限内でランダムな係数を選択することによって、選択され得る。
【００４８】
これらの二変数多項式は、システムのルート鍵材料であるため、鍵共有のセキュリティは、これらの二変数多項式に依存し、そのため、それらを保護するための強力な手段、例えば、制御手順、耐タンパー性デバイス等が、利用されることが好ましい。ｐｊに対応する値βｊを含め、選択される整数ｐ１、ｐ２、．．．、ｐｍも秘密に保たれることが好ましいが、これはそれほど重要ではない。二変数多項式は、次の形態でも参照される。すなわち、ｊ＝１、２、．．．、ｍについて、
【数６】
2017519457.tif 000008
と記述される。
【００４９】
上記の実施形態は、いくつかの形で変更され得る。公開モジュラス及び秘密モジュラスに対する制限は、一変数多項式の難読化が可能であるが、なおネットワークデバイスにおいて取得される共有鍵が十分な頻度で十分に互いに近いままであるように、多様に選択され得る。何をもって十分とするかは、用途、必要とされるセキュリティレベル、及び、ネットワークデバイスにおいて利用可能な計算リソースに応じて決まる。上記の実施形態は、共有される多項式を生成するときに実行されるモジュラ演算が、それら多項式が整数にわたって加算されるときに非線形に結合されるように、正の整数を組み合わせて、ネットワークデバイスに記憶されるローカル鍵材料についての非線形構造を生成する。Ｎ及びｐｊの上記選択は、次の特性を有する：（ｉ）Ｎのサイズは、全てのネットワークデバイスについて固定である、（ｉｉ）非線形効果は、デバイスに記憶される鍵材料を形成する係数に現れる。その特定の形態を理由として、小さい共有鍵が、Ｎを法とする簡約の後に２ｂを法として簡約することによって生成され得る。
【００５０】
登録ステップ
登録ステップにおいて、各ネットワークデバイスに、秘密一変数鍵多項式を含む鍵材料（ＫＭ）が割り当てられる。鍵材料は、各インスタンスについての鍵材料を含む。以下において、ネットワークデバイスのために１つのインスタンスについての鍵材料がどのように導出されるかが説明される。各インスタンスは、たとえ鍵材料の部分が異なるインスタンスの間で共有され得るとしても、当該インスタンスに固有である鍵材料を有する。
【００５１】
ネットワークデバイスは、識別番号Ａに関連付けられる。識別番号は、要求に応じて、例えば、ＴＴＰによって割り当てられてもよいし、例えば、製造時にデバイスに記憶される等、デバイスにすでに記憶されていてもよい。Ａのビットサイズは、Ｂビットである。Ａの生成は、様々な方法で行われ得る。高いセキュリティのためには、Ａの低ビットは、ランダムである。例えば、Ａは、乱数として選択されてもよいし、あるいは、Ａは、場合によってはＢビットに切り詰められる、例えばシリアル番号といったさらなる識別番号のハッシュであってもよい。
【００５２】
ＴＴＰは、以下のように、デバイスＡについての鍵材料の集合を生成する。
【数７】
2017519457.tif 000009
したがって、一変数多項式の集合が取得され、第１の秘密集合の各特定の多項式について、識別番号（Ａ）が、当該特定の多項式ｆｉ（Ａ，ｘ）に代入され、当該特定の多項式に関連付けられている簡約整数を法として簡約される。結果としてもたらされた一変数多項式の集合が合計される。この合計は、生成と組み合わされ得る。ｘは、形式的変数（formal  variable）である。鍵材料は非線形であることに留意されたい。表記
【数８】
2017519457.tif 000010
は、ｐｊを法として、括弧の間の多項式の各係数を簡約することを表す。
【００５３】
以下のように、さらなる難読化数をこれに加算することが可能である。
【数９】
2017519457.tif 000011
ここで、ＫＭＡ（Ｘ）は、識別番号Ａを有するデバイスの鍵材料である。言い換えれば、
【数１０】
2017519457.tif 000012
である。表記「∈Ａ，ｉ」は、ランダムな整数を表し、これは、｜∈Ａ，ｉ｜＜２（α＋１−ｉ）ｂであるような難読化数の一例である。ランダムな整数のいずれか１つは、正であっても負であってもよいことに留意されたい。乱数∈が、各デバイスについて再び生成される。したがって、項
【数１１】
2017519457.tif 000013
は、次数αのＸ内の多項式を表し、その係数長は、次数が増大するほど短くなる。代替的に、より一般的ではあるがより複雑な条件は、
【数１２】
2017519457.tif 000014
が小さいこと、例えば、２α＋１よりも小さいことである。異なる有限環にわたる混合効果（mixing  effect）は、セキュリティに対する最大の寄与を提供し、したがって、難読化数の使用は任意的である。
【００５４】
全ての他の加算は、自然整数演算、すなわち、環
【数１３】
2017519457.tif 000015
における演算を使用するか、又は（好ましくは）Ｎを法とする加算を使用する。そのため、一変数多項式
【数１４】
2017519457.tif 000016
の評価は、より小さいモジュラスｐｊを法としてそれぞれ個々に行われるが、これらの簡約された一変数多項式自体の合計は、好ましくは、Ｎを法として行われる。また、難読化多項式
【数１５】
2017519457.tif 000017
の加算は、自然整数演算を使用して、又は、好ましくはＮを法として行われ得る。鍵材料は、係数
【数１６】
2017519457.tif 000018
（ｉ＝０、．．．、α）を含む。鍵材料は、上記のように多項式として提示され得る。実際には、鍵材料は、整数
【数１７】
2017519457.tif 000019
のリスト、例えば配列として、記憶され得る。デバイスＡはまた、数Ｎ及びｂを受信する。多項式の操作は、例えば、例として予め定められた順序で全ての係数を列挙している、係数を含む配列の操作として実施され得る。多項式は、例えば、（次数，係数）ペアの集合を、好ましくはこのような集合内に各係数が最大で一度現れるように含む連想配列（「マップ」としても知られる）として、他のデータ構造で実装されてもよいことに留意されたい。デバイスに提供される係数
【数１８】
2017519457.tif 000020
は、好ましくは、０、１、．．．、Ｎ−１の範囲内である。
【００５５】
２つのデバイスが、識別番号Ａ及びＢを有し、ＴＴＰからそれらのそれぞれの鍵材料を受信すると、それらのデバイスは、それらの鍵材料を使用して、１つの小さい共有鍵を取得することができる。デバイスＡは、各インスタンスについて、次のステップを実行して、その共有鍵を取得することができる。最初に、デバイスＡは、デバイスＢの識別番号Ｂを取得し、次いで、Ａは、以下を計算することによって、共有鍵を生成する。
【数１９】
2017519457.tif 000021
【００５６】
この鍵は、Ｋ（Ａ，Ｂ）としても参照される。ここで、Ａは、デバイスＡのＢビット識別子である、すなわち、０≦ξ＜２Ｂである。［デバイスＢの識別子Ｂは、Ｂとしても参照されるこの識別子長とは無関係であることに留意されたい。例えば、前者は、１２８ビット数であり得るのに対し、前者は、数１２８であり得る。］
【００５７】
例えば、デバイスＢとの通信を暗号化するためにデバイスＡが生成するｂビット鍵Ｋ（Ａ，Ｂ）は、必ずしも、Ｋ（Ｂ，Ａ）、すなわち、デバイスＡとの通信を暗号化するためにデバイスＢが生成する鍵に等しいとは限らない。しかしながら、これらの鍵の間の差は、以下の意味において限られている。すなわち、
【数２０】
2017519457.tif 000022
が成り立つ（ここで、Ｎは、公開グローバル簡約整数であり、
【数２１】
2017519457.tif 000023
は、モジュロ２ｂ演算を表し、δは、絶対値｜δ｜≦Δに制限される整数である）。Ｋ（Ａ，Ｂ）は、中間鍵の一例であり、補正項の倍数、すなわち、Ｎの倍数を加算又は減算することによって、可能な共有鍵の集合を規定する。倍数は、上限以下、例えばΔ以下であり、下限以上、例えば−Δ以上である。
【００５８】
上限及び下限の値が、計算され得、選択されたパラメータに依存し得る。差に対する相対的に鋭い制限は、鍵材料のビットの半分を０に設定することによって得られ得る。この場合においては、Δ≦２ｍ＋２α＋１である。ここで、ｍは、混合多項式の数を表し、αは、それらの次数を表す。しかしながら、他の実施形態について、同様の制限がまた、Ｋ（Ａ，Ｂ）及びＫ（Ｂ，Ａ）の導出後、異なり得るビット数を追跡することによって取得されてもよい。係数を０に設定すると仮定しなければ、制限は、Δ≦２ｍである。
【００５９】
大きい値Δは望ましくない。より大きい値は、２つのデバイスが、偶然に、すなわち、さらなる調整なく、同じ共有鍵に到達する機会を低減させる。さらに、鍵調整が開始された場合、作業は、Δとともに増大する。また、暗号学的観点からも、大きい値のΔは望ましくない。調整のために、デバイスＡが、２Δ＋１個の候補の間でＫ（Ｂ，Ａ）を見出すことを可能にするために、デバイスＢは、Ｋ（Ｂ，Ａ）に関する少なくともｌｏｇ２（２Δ＋１）ビットの情報をデバイスＡに送信しなければならない場合がある。これは、有効鍵長を、ｂビットからｂ−ｌｏｇ２（２Δ＋１）ビットに低減させる。小さい値のｂを使用する用途については、これは特に望ましくない。第１の集合は、２Δ＋１のサイズを有する。調整は、代わりに、１以上の鍵にわたるハッシュ値を、調整データとして送信してもよい。
【００６０】
ＴＴＰはまた、追加の調整データを送信することなく、第１の集合のサイズを低減させるために使用することができる秘密補正関数（ΛＡ（））を計算するよう構成される。生成された鍵が常に合致するように鍵共有を修正することは、結託攻撃に対する耐性にとっては弊害があると考えられる。しかしながら、この補正関数は、もしあれば、そのような攻撃に対するわずかなさらなる脆弱性しかもたらさないようにしながら、鍵の差に対する制限が大きく低減されることを可能にする。
【００６１】
好ましくは、デバイスＡ及びＢの両方が、補正関数を有する。両方が、補正係数を導出し、この補正係数を中間鍵に適用する。２つのデバイスのうちの一方のみ、例えばデバイスＡが、調整に関与する必要があり得るのに対し、他方のデバイス、例えばデバイスＢは、デバイスＢがその補正係数を適用した、生成された鍵、例えばＫ（Ｂ，Ａ）を、単に使用することができる。デバイスは、それでも、補正関数を有することなく鍵共有システムに関与することができる。この場合、より大きい調整が必要とされる。これは、システムが、補正関数を有しないデバイスと後方互換性があることを意味する。すなわち、両方のデバイスが、補正関数を使用するか、あるいは、両方が、補正関数を使用しない。補正係数は、概して、デバイスＡとデバイスＢとで異なる。
【００６２】
この秘密補正関数は、各デバイス用であり、その定義域は、可能な識別子の集合｛０，１，．．．，２Ｂ−１｝であり、その値域は、例えば、集合｛０，１，２，．．．，２ｍ＋２α＋１｝である。この関数は、ＴＴＰによって計算され、好ましい実施形態においては、単調関数である、すなわち、非減少又は非増加である。
【００６３】
デバイスＡは、前述したようにＫ（Ａ，Ｂ）を計算することができるが、これは、その鍵になろうとするものではない。Ｋ（Ａ，Ｂ）は、中間鍵の一例である。代わりに、デバイスＡはまた、ΛＡ（Ｂ）を計算し（又は、後述するように探索し）、
【数２２】
2017519457.tif 000024
として鍵を計算する。ΛＡ（）は、秘密補正関数の一例である。ΛＡ（Ｂ）は、補正係数の一例である。同様に、デバイスＢは、
【数２３】
2017519457.tif 000025
を計算する。デバイスＢはまた、補正を実行するが、それ自身の補正関数を使用し、デバイスＡの補正係数とは概して異なるそれ自身の補正係数を導出し、この補正係数をそれ自身の中間鍵に適用する。
【００６４】
一実施形態において、修正された中間鍵は、
【数２４】
2017519457.tif 000026
のようにほぼ等しく、ここで、δ∈｛−１，０，１｝である。したがって、第２の集合は、第１の集合よりもはるかに小さい。この実施形態において、修正された中間鍵について、制限は、Δ＝１である。
【００６５】
ＴＴＰは、システムに関与する各デバイスについて関数ΛＡを計算する。ＴＴＰのみが、この関数を計算できる。なぜならば、これは、ルート鍵材料、すなわち、秘密モジュラスｐ１、ｐ２、．．．、ｐｍ及びｍ個の多項式ｆｉ（ｘ，ｙ）に依存するからである。補正関数を生成するためのいくつかの方法が存在する。以下において、いくつかの異なるオプションが与えられる。
【００６６】
ｍ個の多項式ｆｉ（ｘ，ｙ）は対称であると想定しているが、これは必須ではないことに留意されたい。以下において、ｍ個の対称多項式ｆｉ（ｘ，ｙ）が、多項式係数
【数２５】
2017519457.tif 000027
の対称行列として表現される。
【数２６】
2017519457.tif 000028
は、二変数多項式ｆｉ（ｘ，ｙ）内のｘｊｙｋの係数である。ｘ及びｙは、形式的変数であることを思い出してほしい。
【００６７】
ここで、デバイスＡについての鍵生成多項式は、
【数２７】
2017519457.tif 000029
として定義され得る。ＴＴＰは、この多項式の係数をデバイスＡに与え、それによって、デバイスＡは、
【数２８】
2017519457.tif 000030
を計算することができる。説明を単純にするために、各デバイスＡについて、ｍ個の補助多項式
【数２９】
2017519457.tif 000031
がさらに導入される。これらの多項式に関して、関数
【数３０】
2017519457.tif 000032
が定義される。関数Λ’Ａは、有理係数を有する次数αの多項式であることに留意されたい。変数Ｘは、形式的であるが、動作中にデバイス識別子で置換され得る。
【００６８】
少なくとも有効な識別子値について、例えば、範囲｛０，．．．，２Ｂ−１｝にわたって、関数Λ’Ａ（Ｘ）についての整数近似を提供することによって、補正関数が取得され得る。そのような近似は、整数値単調ステップ関数である。一実施形態において、補正関数は、非多項式である。この文脈において、非多項式とは、範囲｛０，．．．，２Ｂ−１｝内の全てのｘについて補正関数と同じ値を有するラグランジュ補間多項式Ｌ（Ｘ）（すなわち、ΛＡ（ｘ）＝Ｌ（ｘ）である）が、αよりも大きい次数を有することを意味し、実際には、典型的には次数は、はるかに大きく、例えば、Ｌ（ｘ）の次数は、１０α以上である。
【００６９】
例えば、補正関数ΛＡ（Ｘ）は、
【数３１】
2017519457.tif 000033
によって与えられ得る。ここで、
【数３２】
2017519457.tif 000034
は、最も近い整数へと下向きに丸めることを意味し、したがって、
【数３３】
2017519457.tif 000035
である。
【００７０】
この合計は、有理数にわたるものである。有理数は、分子及び分母を示す整数のペアとして数字で表現され得る。この補正関数は、他の補正関数と同様に、整数値関数である。この関数は非多項式であることに留意されたい。一般的に、非整数係数が下方向に丸められている有理多項式自体が多項式であり、また、Λ’Ａ（Ｘ）が非整数値を扱う場合は、これは当てはまらない。
【００７１】
丸められている関数は、非負係数を有するＸの多項式であり、それによって、Λ’Ａ（Ｘ）は、その定義域｛０，１，．．．，２Ｂ−１｝における非減少関数であることに留意されたい。関数は、その負数で置換され得、その場合、これは非増加である。後者は、補正項が、減算される代わりに加算されるという結果を有する。両方の場合において、秘密補正関数ΛＡ（Ｘ）は単調である。
【００７２】
ΛＡ（Ｘ）は、その係数を記憶することによって記憶され得る。代替的に、単調であるということは、秘密補正関数ΛＡ（Ｘ）が、（最大）２ｍ＋２α＋１個の整数ブレークポイントＩＡ，１、ＩＡ，２、．．．によって一意に特徴付けられ得ることを示す。ここで、ＩＡ，ｋ＝ｍｉｎ｛ｘ｜ΛＡ（ｘ）＝ｋ｝である。これは、ＩＡ，ｋ≦Ｂ＜ＩＡ，ｋ＋１である場合、ΛＡ（Ｂ）＝ｋであって、ここで、１≦ｋ≦２ｍ＋２αであり、０≦Ｂ＜ＩＡ，１である場合、ΛＡ（Ｂ）＝０であり、ＩＡ，２ｍ＋２α＋１≦Ｂである場合、ΛＡ（Ｂ）＝２ｍ＋２α＋１であることを意味する。ブレークポイントの数は、中間鍵間の差に対する制限Δに応じて増大又は低減され得る。
【００７３】
補正関数の係数は、有理数であり、大きい分子及び分母を有するため、補正関数の係数の代わりにブレークポイントを記憶することは、記憶空間を節減させる。
【００７４】
ＴＴＰは、例えば二分法といった探索アルゴリズムによって、値ＩＡ，ｋを探し出すことができ、これらの値をデバイスＡに与える。デバイスＡは、ここで、上述したように、Ｂを値ＩＡ，ｋと比較することによって、ΛＡ（Ｂ）を評価することができる。
【００７５】
Λ’Ａを近似するためのいくつかの変形形態が可能である。例えば、ΛＡ（Ｘ）の定義において最も近い整数への丸めを使用することができる（その場合、値域は、｛０，１，．．．，２ｍ＋２α＋２｝になる）。これは、丸めの形態よりもさらに一般化され得る。サイズ１の任意の範囲内でΛＡ（Ｘ）を指定することは、同じ結果をもたらすことになる。後者は、下方向への丸めの代わりに最も近い整数に丸めること、又は、より大きい整数の中で最も小さい整数に丸めることによって、得られ得る。整数サイズｋの任意の範囲内でΛＡ（Ｘ）を指定することは、Δ＝ｋにさせることになる。例えば、ΛＡ（Ｘ）は、最も近い偶数の整数（ｋ＝２）、又は、予め定められた整数の最も近い倍数、に丸めることによって、得られ得る。これらの方策は、ブレークポイントを記憶するのに必要とされるストレージサイズを低減させる。
【００７６】
ＴＴＰは、デバイスＡがΛＡ（Ｘ）を正確に計算することができず、ΛＡ（Ｘ）を近似することしかできないように、デバイスに不完全な情報を与えることもできる。これは、修正された鍵におけるいくらかより大きい最大非対称性Δをもたらすが、これは依然として許容可能であり得る。
【００７７】
Λ’Ａを近似するための種々の方法が存在する。例えば、有理多項式は、１以上の最高次数項によって近似され得る。高次近似（high-order  approximation）は、デバイスによって評価され得、次いで、例えば下方向に丸められる等、丸められ得る。
【００７８】
例えば、秘密補正関数（ΛＡ（））は、有理係数を有する丸められた多項式であり得る。一実施形態において、秘密補正関数は、有理係数を有する単一項を有する丸められた多項式、例えば、
【数３４】
2017519457.tif 000036
であり、ここで、Ｒは、非整数有理数である。例えば、一実施形態において、
【数３５】
2017519457.tif 000037
である。この関数を記憶するためには、数
【数３６】
2017519457.tif 000038
と、場合によっては数ｒと、しか記憶される必要がない。この式において、ａαは、Λ’Ａ（ｙ）内のｙαの係数である。数ｒは、この係数を近似するのに用いられたビット数を示す。識別子ビット長が中間鍵長に等しい（Ｂ＝ｂである）場合、ｒの良好な選択は、２ｂ−２である。
【００７９】
説明している補正関数の全てが、鍵不等性（key-inequality）を大きく低減させる。実際、次の定理を導出することができる：Гξ（ｙ）を、全ての０＜η＜２ｂについてΛξ（η）−１≦Гξ（η）≦Λξ（η）となるような任意の実数値関数とする。
【数３７】
2017519457.tif 000039
とする。
【００８０】
このとき、
【数３８】
2017519457.tif 000040
となるようなδ’ξ，η∈｛−１，０，１｝が存在する。本明細書において、
【数３９】
2017519457.tif 000041
及びＫ’は、同じ関数を表す。
【００８１】
補正関数はまた、複数のインスタンスを有するときにも適用され得、その場合、デバイスは、２以上の鍵生成多項式を記憶し、これらの多項式の各々を、Ｎに類似する異なるパラメータを法として評価する。その場合、各鍵生成多項式は、それ自身の補正関数を伴う。
【００８２】
使用フェーズ
２つのデバイスが、識別番号Ａ及びＢを有し、ＴＰＰから、秘密一変数鍵多項式及び秘密補正関数を含む、それらのそれぞれの鍵材料を受信すると、それらのデバイスは、それらの鍵材料を使用して、共有鍵を取得することができる。
【００８３】
デバイスＡは、各インスタンスについて、以下のステップを実行して、その共有鍵を取得することができる。
【００８４】
最初に、デバイスは、中間鍵を計算する。すなわち、デバイスＡは、デバイスＢの識別番号Ｂを取得し、次いで、Ａは、以下を計算することによって、中間鍵を生成する。
【数４０】
2017519457.tif 000042
【００８５】
すなわち、Ａは、値Ｂについて、整数多項式として確認されるその鍵材料を評価する。鍵材料を評価した結果は整数である。次いで、デバイスＡは、評価の結果を、最初は公開モジュラスＮを法として、次いで、鍵モジュラス２ｂを法として、簡約することができる。この結果は、Ａの中間鍵として参照されることになり、これは、０から２ｂ−１までの範囲内の整数である。その部分について、デバイスＢは、アイデンティティＡについてその鍵材料を評価し、その結果を、Ｎを法として、次いで、２ｂを法として、簡約することによって、Ａを有するＢの中間鍵を生成することができる。ＫＡＢは、Ｋ（Ａ，Ｂ）の別の表記であることに留意されたい。
【００８６】
ルート鍵材料における二変数多項式が対称である場合、Ａの中間鍵とＡを有するＢの中間鍵とは、必ずしも常にではないが、多くの場合、等しい。整数ｐ１、ｐ２、．．．、ｐｍ及び（任意的な）乱数∈に対する特定の要件は、鍵が、多くの場合等しく、２の鍵長乗を法としてほぼ常に互いに近くなることである。
【００８７】
Ａ及びＢが同じ共有鍵を取得していないとしても、ＫＡＢ＝ＫＢＡ＋δＮ  ｍｏｄ  ２ｂであるという意味において、これらの鍵が互いに近いことは確かである。本明細書において、δは、最大でも絶対値が２ｍ＋２α＋１の小さい数であり、この値は、上記で示したように、係数に制限を課すことによって、さらに低減され得る。したがって、中間鍵は、他のパーティによって導出される中間鍵に関する情報を与えるが、それでも、依然として、まずまずの、可能な共有鍵の第１の集合を可能にする。可能な鍵の第１の鍵集合は、中間鍵ＫＡＢによって、及び、補正項（Ｎ）の倍数を加算又は減算し、２ｂを法として簡約することによって、規定され得る。倍数（δ）は、上限、例えば＋（２ｍ＋２α＋１）よりも小さく、下限、例えば−（２ｍ＋２α＋１）よりも大きい。
【００８８】
一例において、第１の鍵集合のサイズは、鍵１０００個よりも小さく、より好ましくは、１００個よりも小さく、より好ましくは、１０個よりも小さい。第１の鍵集合のサイズは、例えば、多項式の数ｍとともに増大する。後者は、第１の鍵集合のサイズを制御するために使用され得る。
【００８９】
デバイスＡ及びＢはまた、他方のパーティの識別番号を、それらの秘密補正関数に代入することによって、補正係数を導出する。中間鍵は、補正係数を用いて修正されて、補正された鍵が取得される。一実施形態において、修正された中間鍵は、
【数４１】
2017519457.tif 000043
として計算される。言い換えれば、中間鍵を修正することは、補正係数ΛＡ（Ｂ）を公開グローバル簡約整数Ｎで乗算し、乗算の結果を中間鍵に対して加算又は減算することを含む。
【００９０】
この手順が、可能性のある鍵非対称性を低減させることが示され得る：
【数４２】
2017519457.tif 000044
ここで、δ∈｛−１，０，１｝である。言い換えれば、修正された中間鍵は、他のパーティによって導出される修正された中間鍵に関する情報を与え、これは、依然として、可能な補正された中間鍵の第２の集合を可能にするが、第２の集合は、第１の集合よりもはるかに小さい。
【００９１】
第２の鍵集合は、修正された中間鍵
【数４３】
2017519457.tif 000045
によって、及び、補正項（Ｎ）の倍数を加算又は減算し、２ｂを法として簡約することによって、規定され得る。倍数（δ）は、上限、例えば＋１よりも小さく、下限、例えば−１よりも大きい。
【００９２】
補正関数は、その表現に対応するように評価され得る。例えば、補正関数が、一連の整数ブレークポイントＩＡ，１、ＩＡ，２、．．．として記憶されるならば、それによって、ｘ≦ＩＡ，１である場合、ΛＡ（ｘ）＝０であり、ＩＡ，ｉ＜ｘ≦ＩＡ，ｉ＋１である場合、ΛＡ（ｘ）＝ｉである。このとき、ＩＡ，ｋ≦Ｂ＜ＩＡ，ｋ＋１である場合、ΛＡ（Ｂ）＝ｋである。ここで、ｋは、第１の集合のサイズによって制限され、例えば、１≦ｋ≦２ｍ＋２αであり、０≦Ｂ＜ＩＡ，１である場合、ΛＡ（Ｂ）＝０であり、ＩＡ，２ｍ＋２α＋１≦Ｂである場合、ΛＡ（Ｂ）＝２ｍ＋２α＋１である。好ましくは、ブレークポイントは、ソート順に記憶される。補正関数がさらに丸められた場合、ブレークポイントの数が低減され、これに対応して補正係数が増大される。
【００９３】
秘密補正関数（ΛＡ（））が、有理係数を有する丸められた多項式である場合、丸められた多項式は、他方のパーティの識別番号について評価され、例えば下方向／上方向に又は最も近い整数に丸められる等、丸められ得る。
【００９４】
この時点において、パーティＡ及びＢの修正された中間鍵は等しい可能性が非常に高い。Ａ及びＢが同じ鍵を取得している場合、それらは、その鍵を、ＡとＢとの間で共有される対称鍵として使用することができる。例えば、その鍵は、様々な暗号用途に使用され得る。例えば、Ａ及びＢは、その共有鍵を使用して暗号化及び／又は認証された１以上のメッセージを交換することができる。好ましくは、鍵導出アルゴリズムが、マスター鍵のさらなる保護のために、共有鍵に適用される。例えば、ハッシュ関数が適用され得る。
【００９５】
パーティＡ及びＢは、鍵調整データを送信することによって、修正後にパーティＡ及びＢが実際に同じ鍵を取得していることを検証することができる。例えば、修正された鍵のハッシュを送信することによって、又は、予め定められた文字列を暗号化したものを送信することによって等、検証が行われ得る。同じ共有鍵が取得されていないことを鍵調整データが示す場合、第１のデバイス及び第２のデバイスが同一の共有鍵へのアクセスを得るように、補正された鍵が、受信された鍵調整データに合うように修正され得る。この修正は、例えば値１及び−１といった異なる値のδを試行することを含み得る。
【００９６】
選択されるｍ個の秘密モジュラスｐ１、ｐ２、．．．、ｐｍは、好ましくは、互いに素である。これらの数が、互いに素である場合、モジュロ演算の間の互換性の欠如が増大される。互いに素である数は、整数を順に選択し、各新たな整数について、異なる数の全てのペアが依然として互いに素であるかどうかをテストし、互いに素でない場合には現在選択されている数を集合から除去することによって、取得され得る。この手順は、ｍ個全ての数が選択されるまで継続する。選択されるｍ個の秘密モジュラスｐ１、ｐ２、．．．、ｐｍが互いに相違する素数であることを要求することによって、複雑度がさらに増大する。
【００９７】
複数のインスタンスの組合せ
説明しているシステムは、ネットワークノードが、小さいものであり得る共有鍵であって、また、ネットワークノードの識別子よりも小さいものであり得る共有鍵について合意することを可能にする。より高いセキュリティと実際的な実装との組合せは、比較的小さい、例えば、ｂ≦８又は場合によってはｂ≦１６であるｂの値を選択することを望ましいものにする。しかしながら、そのようなｂの選択は、セキュアな暗号化通信には小さすぎる。これは、例えば、識別番号長Ｂを５１２ビット以上として選択し、鍵長ｂを１２８ビット以上として選択することによって等、はるかにより大きい値のＢを選択することによって、解決され得る。この場合、単一のインスタンスは、２つのネットワークノードがｂビットの鍵を共有することを可能にし、これは、セキュアな通信にとって十分に長い。しかしながら、Ｂ＝５１２にすることは、ローカル鍵材料を、これに対応してより大きくさせる。したがって、例えば携帯電話機といった中程度に強力なネットワークデバイスのみを使用しても、なお単一のインスタンスのみを必要としながら、セキュアな通信にとって十分に長い鍵をセキュアに共有するようにそのようなネットワークデバイスを構成することが可能である。それでも、依然として十分に長い共有鍵を導出しながら、ストレージ要件を低減させることが非常に望ましい。
【００９８】
非実際的なほどに長い鍵材料を作成することなく鍵長を増大させるための１つの方法は、複数の小さい鍵を組み合わせることである。システムは、一緒になって共有鍵を形成する複数のサブ鍵についてパーティが合意することを可能にする。サブ鍵を生成するシステムは、鍵共有インスタンスとして参照される。各インスタンスは、それ自身の独立したパラメータを有し得るが、他のインスタンスと同じ原理に沿って動作する。それでも、複数のインスタンスは、それらのパラメータのうちのいくつかを共有することができる。上述したようなシステムから取得される共有鍵、すなわち、単一のインスタンスから取得される共有鍵は、「小さい」鍵と呼ばれ、２以上の小さい鍵の組合せは、「大きい鍵」と呼ばれる。組み合わされるインスタンスの数は、「ｔ」として参照される。
【００９９】
複数の小さい鍵を取得するための第１の方法は、複数の完全に独立したインスタンスを選択することである。しかしながら、小さい鍵の各々についてのセキュリティ要件は等しいため、これら複数のインスタンスは、通常、ｂ、Ｂ、α、及びｍについて同じ値を有する。ＴＴＰは、各インスタンスについて、公開モジュラスＮ、秘密モジュラスｐｉ、秘密多項式ｆｉを生成し、各インスタンス及び各ネットワークノードについて、識別子Ａ及びローカル鍵材料ＫＭＡを生成する。
【０１００】
複数のインスタンスを組み合わせるための第２の方法は、各インスタンスについて同じ識別子Ａを使用することである。第３の方法は、各インスタンスについて同じ公開モジュラスＮを使用することである。最後に、同じ識別子Ａ及び同じ公開モジュラスＮを使用してもよい。ローカル鍵材料は、全てのインスタンスについて同じになるとは限らない。
【０１０１】
各インスタンスはまた、それ自身の補正関数も有する。興味深いことに、２以上の小さい鍵の調整データが計算され得る。これは、調整データにおいて漏洩する可能性がある情報を低減させる。結果として、複数の小さい鍵が同時に調整される必要がある。しかしながら、第２の集合のサイズは低減されているため、これは作業量がより少ない。
【０１０２】
例えば、大きい共有鍵のサイズは、セキュリティ要件に依存し、６４又は８０であり得る。コンシューマレベルのセキュリティのための典型的な値は、１２８であり得る。機密性の高い用途では、２５６又はさらにより高い値が好ましい場合がある。一実施形態において、組合せ鍵の長さは、識別子の長さＢに等しい。
【０１０３】
また、インスタンスの数「ｔ」及びサブ鍵のサイズが選択される。異なるインスタンスにおけるサブ鍵のサイズは異なり得る。インスタンス「ｉ」におけるサブ鍵のサイズは、「ｂｉ」として参照され得る。これらは、Σｂｉ≧Ｂであるように選択される。単純にするために、添え字が落とされ、以下において、サブ鍵のサイズは、「ｂ」と表記される。通常、サブ鍵のサイズは、全てのインスタンスにおいて等しくなり、ｂｔ＝Ｂであるように選択される。
【０１０４】
各デバイスは、鍵材料の異なるインスタンスを使用して、サブ鍵を生成する。次いで、共有鍵が、例えば、サブ鍵を連結することによって、サブ鍵から生成される。
【０１０５】
とりわけ、Ｂ＝３２について、α＝１０、ｂ＝８、Ｂ＝３２であるパラメータ集合が、他のものよりもセキュアであると実験的に検証されており、このシステムは、３２ビット鍵を作成するために４つのインスタンスを必要とする。α＝３、ｂ＝８、Ｂ＝３２であるパラメータ集合もセキュアであるが、αがより小さいこの選択では、３２ビットＩＤのフルスパンを使用することが望ましい。特に、長さ２５６の任意の間隔内では、１０個未満のＩＤが使用されるべきである。一般に、予め定められた第１の識別閾値及び第２の識別閾値を設定し、第１の識別閾値のサイズ（例えば、２５６）のいずれの間隔も、第２の識別閾値（例えば、１０）を超える識別値を含まないように、識別番号を選択することによって、より高いセキュリティが実現される。これは、例えば、ネットワークデバイスマネージャによって、例えば、このルールに従って識別値を生成することによって、又は、閾値を超える識別値を有するデバイスについてローカル鍵材料の生成を拒絶することによって、強化され得る。
【０１０６】
図１は、鍵を共有するようにネットワークデバイスを構成するためのシステム２００と第１のデバイス３００との概略ブロック図である。デバイス３００は、ネットワークデバイスと呼ばれる。
【０１０７】
構成するためのシステム２００は、一般的に、統合デバイスとして実装される。例えば、構成するためのシステム２００は、サーバに含められ得る。構成するためのシステム２００は、例えば、無線ネットワーク又はインターネット等のネットワークにわたるネットワークデバイスを構成することができる。しかしながら、構成するためのシステム２００はまた、ネットワークデバイスを製造するための製造デバイスに統合されてもよい。
【０１０８】
構成するためのシステム２００は、鍵材料取得部２１０、ネットワークデバイスマネージャ２３０、及び計算ユニット２２０を備える。構成するためのシステム２００は、複数のネットワークデバイスとともに動作するよう意図されている。図１は、１つのそのようなデバイスとして、第１のネットワークデバイス３００を示している。
【０１０９】
構成するためのシステム２００は、ルート鍵材料とも呼ばれる秘密鍵材料を選択する。構成するためのシステム２００は、次いで、複数のネットワークデバイスの各々についてのローカル鍵材料を導出する。ローカル鍵材料は、ルート鍵材料とネットワークデバイスの少なくとも１つの公開識別番号Ａとから導出される。図１において、ネットワークデバイス３００は、識別番号３１０を記憶する。ネットワークデバイスはまた、例えばインスタンスごとに１つの識別番号といった、複数の識別番号を有することもできる。ネットワークデバイスはまた、さらなる識別番号を記憶し、必要とされるときに、例えば、さらなる識別番号をハッシュすることによって、さらなる識別番号から識別番号３１０を導出することもできる。
【０１１０】
ローカル鍵材料は、特定のネットワークデバイスに秘密である部分、すなわち、１つの特定のネットワークデバイス及び場合によっては信頼できるデバイスにのみアクセス可能である部分を含む。ローカル鍵材料はまた、共有鍵を取得するために必要ではあるが、秘密を保持するためにはそれほど重要でない部分も含み得る。
【０１１１】
公開（public）及び秘密（private）という形容詞の使用は、理解のために有用であるように意図されている。全ての公開データにアクセスすることができる場合であっても、少なくとも、その用途のセキュリティを所与として、又は、鍵生成、暗号化、及び復号化のために必要とされるリソースと比較して不当に高いリソースがなければ、秘密データを計算することはできない。しかしながら、「公開」は、対応するデータが、必ずしも、構成するためのシステム２００及びネットワークデバイス以外のいかなる者にも利用可能にされることを意味するわけではない。特に、公開グローバル簡約整数及び他の公開パラメータを、信頼できないパーティから秘密のままにすることは、セキュリティを増大させる。同様に、秘密データへのアクセスは、そのデータを生成したパーティ又はそのデータを必要とするパーティに制限され得、これは、セキュリティを増大させる。しかしながら、信頼できるパーティは、秘密データへのアクセスを許容され得、秘密データへのアクセスは、セキュリティを低減させる。
【０１１２】
それらのローカル鍵材料及び他のパーティの識別番号を使用して、ネットワークデバイスは、それらデバイスの間で共有鍵について合意することができる。
【０１１３】
鍵材料取得部２１０は、少なくとも１つのパラメータ集合２５０を電子的形態で取得するよう構成されている。パラメータ集合２５０は、公開グローバル簡約整数２５６（Ｎ）と、二変数多項式の第１の秘密集合２５２（ｆｉ（，））と、簡約整数の第２の秘密集合２５４（ｐｉ）と、を含み、第１の集合内の各二変数多項式には、第２の集合の簡約整数及び公開グローバル簡約整数２５６（Ｎ）が関連付けられている。パラメータ集合は、ビットサイズＢの識別番号を有するネットワークノードについて生成される。パラメータ集合は、ローカル鍵材料を生成するために使用されることになり、その後、ローカル鍵材料は、共有鍵を導出するために使用されることになる。一実施形態において、小さい鍵のビットサイズｂは、ｂ＜Ｂを満たす。これは、必須ではないが、対応する格子問題をより難しくする。一実施形態において、ｂ≦Ｂであり、特に、ｂはＢに等しくてよい。
【０１１４】
好ましい実施形態において、鍵材料取得部２１０は、パラメータ集合２５０を電子的形態で取得するよう構成されている。複数のインスタンスが使用される場合、鍵材料取得部２１０は、複数のパラメータ集合を含み得る。図１は、１つのパラメータ集合２５０を示している。
【０１１５】
パラメータ集合の公開グローバル簡約整数２５６（Ｎ）は、その集合の簡約整数２５４の各々とは異なる。好ましくは、パラメータ集合の公開グローバル簡約整数２５６（Ｎ）は、そのパラメータ集合の簡約整数２５４の各々よりも大きい。
【０１１６】
鍵材料取得部２１０は、鍵材料を取得するために、ネットワークデバイスとのインタラションを必要としない。詳細には、鍵材料取得部２１０は、識別番号を必要としない。構成するためのシステム２００は、鍵材料取得部２１０が計算ユニット２２０とは異なる物理的位置に配置される分散型システムであってもよい。鍵材料取得部２１０は、鍵材料の全て又は一部分を生成し、且つ／又は、外部ソースから鍵材料の全て又は一部分を取得する。例えば、鍵材料取得部２１０は、外部ソースから公開グローバル簡約整数２５６を受信し、第１の秘密集合２５２及び第２の集合２５４を生成するのに適している。後者は、全てのネットワークデバイスが、固定された公開グローバル簡約整数２５６をもって製造されることを可能にし、コストを低減させる。
【０１１７】
鍵材料取得部２１０は、電子乱数生成部を含み得る。乱数生成部は、真性乱数生成部であってもよいし、擬似乱数生成部であってもよい。鍵材料取得部２１０は、例えば、電子乱数生成部を使用して、公開グローバル簡約整数（Ｎ）を生成することができる。公開グローバル簡約整数は公開情報であるが、ランダム性を導入することは、システムを解析することをより難しくする。
【０１１８】
第２の集合からの簡約整数は、第１の集合内の各二変数多項式に関連付けられる。ランダム係数は、整数環、例えば、関連付けられている簡約整数等の数を法とする整数からランダムに選択され得る。
【０１１９】
鍵材料取得部２１０は、電子乱数生成部を使用して、第２の秘密集合内の簡約整数ｐｉの１以上の係数を生成することができる。簡約整数が素数であることは必須ではない。しかしながら、耐性を増大させるために、それらは、素数として選択されてもよい。素数は、環の一種である体（field）を生じさせる。同じパラメータ集合、すなわち、同じ第１の秘密集合及び第２の秘密集合並びに公開グローバル簡約整数が、後に鍵を共有する必要がある全てのネットワークデバイスについて使用される。
【０１２０】
鍵材料取得部２１０は、例えば、電子乱数生成部を使用して、第１の秘密集合２５２内の二変数多項式（ｆｉ（，））の１以上の係数を生成することができる。鍵材料取得部２１０は、この方式で二変数多項式の全てを生成することができる。鍵材料取得部２１０は、これらの多項式の最大次数、例えば、２若しくは３又は４以上を使用し、その次数よりも１つ多いランダム係数を生成することができる。
【０１２１】
秘密集合２５２内の多項式の数、多項式の次数、又は最大次数等の、第１の秘密集合２５２のいくつかの態様を規定することが都合がよい。例えば、ストレージ要件を低減させるために、多項式内の係数のうちのいくつかが０であることが規定され得る。
【０１２２】
第１の集合は、２つの等しい多項式を含み得る。これは機能するが、関連付けられる簡約整数が異なっていない限り、集合のサイズが低減され得る。そのため、通常、第１の集合内の２以上の二変数多項式が同じであるときはいつでも、関連付けられる簡約整数、すなわち、基礎となる環は、異なる。
【０１２３】
一実施形態において、二変数多項式の全ての第１の秘密集合（ｆｉ（，））は、対称二変数多項式のみを含む。対称多項式のみを使用することには、各ネットワークデバイスが、構成されているネットワークデバイスのうちの任意の他のネットワークデバイスと共有鍵について合意できるという利点がある。しかしながら、二変数多項式の第１の秘密集合は、１以上の非対称多項式を含んでもよく、これには、デバイスを２つのグループに分けることができるという効果があり、第１のグループからのデバイスは、第２のグループのデバイスとのみ、共有鍵について合意することができる。
【０１２４】
鍵材料取得部２１０は、式においてｆｉ（，）としても参照される、二変数多項式の第１の秘密集合２５２を電子的形態で取得するよう構成されている。以下に記載の実施形態は、集合２５２内の全ての二変数多項式が対称であると想定している。第２のパラメータ集合の生成も、同様に行われ得る。
【０１２５】
対称二変数多項式は、プレースホルダとして２つの形式的変数を有するｆｉ（ｘ，ｙ）と表記されることもある。対称二変数多項式は、ｆｉ（ｘ，ｙ）＝ｆｉ（ｙ，ｘ）を満たす。この要件は、例えば、単項式ｘａｙｂの係数が単項式ｘｂｙａの係数に等しいといった、係数に対する要件に変換される。
【０１２６】
第１の秘密集合２５２内の多項式の数は、用途に応じて異なって選択され得る。システムは、第１の集合及び第２の集合が単一の多項式のみを含むときに機能する。そのようなシステムにおいて、鍵は、成功裡に共有され、適度なレベルのセキュリティを提供することができる。一方、第１の集合がその中に少なくとも２つの多項式を有し、第２の集合が少なくとも２つの異なる簡約整数を有するときにのみ、異なる環にわたる混合のセキュリティ利点が実現される。
【０１２７】
秘密集合２５２は、少なくとも１つの二変数多項式を含む。鍵共有デバイス１００を起動する実施形態において、秘密集合２５２は、１つの多項式からなる。秘密集合２５２内に１つの多項式のみを有することは、複雑度、ストレージ要件を低減させ、速度を増大させる。しかしながら、秘密集合２５２内に１つの多項式のみを有することは、秘密集合２５２内に２以上の多項式を有することよりもセキュアでないと考えられる。なぜならば、そのような１多項式システムは、以下に記載されている合計におけるさらなる混合から恩恵を受けないからである。しかしながら、鍵共有は、適切に機能することになり、低値及び／又は低セキュリティ用途には十分にセキュアであると考えられる。
【０１２８】
残りの部分において、秘密集合２５２が、少なくとも２つの対称二変数多項式を含むと想定している。一実施形態において、多項式のうちの少なくとも２つ又はさらには全てが異なる。これは、システムの解析を相当に複雑化させる。これは必須ではないが、秘密集合２５２は、２つの等しい多項式を含み、これらの２つの多項式が異なる環にわたって評価される場合、合計ステップにおける混合からなお恩恵を受けることができる。異なる簡約整数が異なる環を規定することに留意されたい。一実施形態において、秘密集合２５２は、異なる関連簡約整数に関連付けられている少なくとも２つの等しい多項式を含む。第１の集合内に２以上の等しい多項式を有することは、ストレージ要件を低減させる。一実施形態において、第２の集合は、少なくとも２つの多項式を含み、第２の集合内の全ての多項式は異なる。
【０１２９】
秘密集合２５２内の多項式は、次数が異なってもよい。対称二変数多項式の次数は、２つの変数のうちの一方における、多項式の次数を意味する。例えば、ｘ２ｙ２＋２ｘｙ＋１の次数は、ｘにおける次数が２であるため、２に等しい。多項式は、各変数において同じ次数を有するように選択され得る。秘密集合２５２内の多項式が対称である場合、次数は、他の変数において同じになる。
【０１３０】
秘密集合２５２内の多項式の次数は、用途に応じて異なって選択され得る。秘密集合２５２は、次数が１以上である少なくとも１つの対称二変数多項式を含む。一実施形態において、秘密集合２５２は、次数が１である多項式のみを含む。秘密集合２５２内に線形多項式のみを有することは、複雑度、ストレージ要件を低減させ、速度を増大させる。しかしながら、秘密集合２５２内に一次多項式のみを有することは、秘密集合２５２内に次数が少なくとも２である少なくとも１つの多項式を有することよりもセキュアでないと考えられる。なぜならば、そのようなシステムは、相当により線形であるからである。そうであっても、秘密集合２５２内の複数の多項式が異なる環にわたって評価される場合、結果としてもたらされる暗号化は、たとえ秘密集合２５２内の全ての多項式が線形であるとしても、線形でない。一実施形態において、秘密集合２５２は、次数が２以上である少なくとも１つの、好ましくは２つの多項式を含む。しかしながら、鍵生成、暗号化、及び復号化は、一次多項式のみが使用される場合に適切に機能することになり、低値及び／又は低セキュリティ用途には十分にセキュアであると考えられる。
【０１３１】
より高い次数を有する１以上の多項式が十分なセキュリティを提供する限り、秘密集合２５２内に次数が０である１以上の多項式を有することは、システムに影響を及ぼさない。
【０１３２】
中程度のセキュリティの用途では、秘密集合２５２は、次数が２である２つの対称二変数多項式を含んでもよいし、さらには、そのような２つの対称二変数多項式からなってもよい。より高いセキュリティの用途では、秘密集合２５２は、一方の次数が２であり、一方の次数が２よりも高い、例えば、３である２つの対称二変数多項式を含んでもよいし、さらには、そのような２つの対称二変数多項式からなってもよい。多項式の数及び／又は多項式の次数を増大させることは、リソース消費の増大と引き換えに、セキュリティをさらに増大させる。
【０１３３】
好ましくは、簡約整数は、簡約整数の同じ集合内の任意の２つの簡約整数の差が公約数を有するように選択される。特に、公約数は、２ｂであり得る。すなわち、言葉で説明すると、任意の２つの簡約整数の間の差は、このインスタンスから導出されることになる小さい鍵のサイズと同数のゼロとしての最小値になる。
【０１３４】
例えば、簡約整数及び公開グローバル簡約整数を生成するための１つの方法は、以下のようなものである。
【０１３５】
１．最初に、公開グローバル簡約整数（Ｎ）を、例えば、規定サイズのランダムな整数として生成する。
【０１３６】
２．各簡約整数について、整数βｉを生成し、簡約整数ｐｉを、差ｐｉ＝Ｎ−βｉ２ｂとして生成する。
【０１３７】
公開グローバル簡約整数は、（α＋１）Ｂ＋ｂビット以上を有するように選択され得る。ここで、αは、第１の秘密集合内の二変数多項式の単一の変数における最高次数である。この場合、整数βｉは、βｉ＜２Ｂとして選択され得る。
【０１３８】
鍵材料取得部２１０は、ソフトウェア若しくはハードウェア又はソフトウェアとハードウェアとの組合せでプログラムされ得る。鍵材料取得部２１０は、多項式操作のために計算ユニット２２０とリソースを共有することができる。
【０１３９】
ネットワークデバイスマネージャ２３０は、ネットワークデバイス３００の識別番号３１０（Ａ）を電子的形態で取得するよう構成されている。ネットワークデバイスマネージャ２３０は、ネットワークデバイスから識別番号を受信することができる。例えば、ネットワークデバイスマネージャ２３０は、ネットワークを介して識別番号を受信するために、通信ユニットを含み得る又は利用し得る。例えば、ネットワークデバイスマネージャ２３０は、識別番号を無線信号として受信するためのアンテナを含み得る。識別番号は、ビット数として表現され得、識別番号におけるビット数ｂは、少なくとも、共有鍵におけるビット数だけの大きさがある。
【０１４０】
システム２００は、全てのパラメータ集合について同じ識別番号を使用することができる。しかしながら、異なるパラメータ集合について異なる識別番号を使用することも可能である。後者の場合、ネットワークマネージャ２３０は、複数の識別番号を取得する。
【０１４１】
計算ユニット２２０は、パラメータ集合及び識別番号Ａについて一変数秘密鍵多項式２２９を計算するよう構成されている。計算ユニット２２０は、鍵材料取得部２１０のパラメータ集合の各々に適用される。一実施形態において、計算ユニットは、パラメータ集合のうちの少なくとも２つのパラメータ集合について、又は、さらにはパラメータ集合の各々について、同じ識別番号を使用する。一実施形態において、多項式操作ユニットは、パラメータ集合のうちの少なくとも２つのパラメータ集合について、又は、さらにはパラメータ集合の全てについて、ネットワークデバイスの異なる識別番号を使用する。このように取得される一変数秘密鍵多項式及び対応する公開グローバル簡約整数は、ネットワークデバイスに送信されることになるローカル鍵材料の一部分である。
【０１４２】
計算ユニット２２０は、鍵材料取得部２１０から接続２３８を介してパラメータ集合内のデータを受信する。以下において、計算ユニット２２０が、パラメータ集合から一変数秘密鍵多項式をどのように決定するかが説明される。他のパラメータ集合からの一変数秘密鍵多項式の生成も、同様に行われる。
【０１４３】
計算ユニット２２０は、以下のように、一変数秘密鍵多項式２２９を計算することができる。
【０１４４】
一変数多項式は、現在処理されているパラメータ集合の第１の秘密集合内の多項式の各々に、識別整数Ａを代入することによって、取得される。二変数多項式の１つの変数のみについて値を代入することによって、二変数多項式は、一変数多項式に簡約される。次いで、結果としてもたらされた一変数多項式が、識別整数Ａが代入された二変数多項式に関連付けられている簡約整数を法として簡約される。結果としてもたらされた一変数多項式の集合が、例えば、多項式内のｙの等しい冪の係数を加算することによって合計される。これは、
【数４４】
2017519457.tif 000046
における
【数４５】
2017519457.tif 000047
についての式から得られ得る。
【０１４５】
ｆｉ（ｘ，ｙ）が、第１の秘密集合内の二変数多項式のうちの１つであると仮定する。この多項式の係数は、環
【数４６】
2017519457.tif 000048
から得られる。すなわち、第１の集合内の多項式の係数は、整数環から得られる。単純にするために、変数ｘ及びｙが、第１の集合内の整数の形式的変数を表すために使用される。
【０１４６】
代入後、計算ユニット２２０は、ｆｉ（Ａ，ｙ）を取得する。計算ユニット２２０は、さらに、この項を、ｐｉを法として簡約するよう構成されている。係数は、システムが演算する環、例えば、Ｚｐにおいて、例えば、ｐを法として簡約することによって簡約される。好ましくは、計算ユニット２２０は、その結果を、正準形、すなわち、予め定められた標準化された表現にする。適切な正準形は、単項式の次数でソートされた係数の表現である。代替的に、代入は、ｙについてのものであってもよい。
【０１４７】
識別番号がシステムにおいて「ランダム」に作用することを確実にするために、格子攻撃が単純化しないことを保証するための、チェーン内のポイントにおけるランダム化ステップが望ましい。特に、ネットワークデバイスに、特定の順序に従った識別番号、例えば、シリアル番号が与えられる場合、そのようなランダム化ステップが望ましい。例えばｓｈａ−２５６といった暗号学的ハッシュが、例えば、識別番号に適用され得、その結果が、Ｂビットに短縮される。
【０１４８】
さらに、識別番号は、より多くのビットに拡張され得る。例えば、Ｂ’ビットの識別番号が、例えば、ハッシング及び／又は連結によってＢビットに拡張され得る。ここで、Ｂ’＜Ｂである。例えば、識別番号Ａは、Ｈ（Ａ）又はＡ｜｜Ｈ（Ａ）に拡張され得る。ここで、Ｈはハッシングを表し、｜｜は連結を表す。連結は、ＬＳＢ側で行われる。暗号学的ハッシュ等の高度に非線形なハッシュが、この演算には好ましい。
【０１４９】
第１の集合が対称多項式のみを含む場合、識別整数Ａの代入は、二変数多項式の２つの変数のうちのいずれか一方におけるものであり得る。しかしながら、代入が非対称多項式において行われる場合、より注意が必要である。例えば、計算ユニット２２０は、第１のネットワークデバイス３００が第１のグループにあるか又は第２のグループにあるかを得るよう構成され得る。第１のグループ及び第２のグループはそれぞれ、二変数多項式の第１の変数及び第２の変数に関連付けられる。第１のグループ内のネットワークデバイスについては、常に第１の変数が使用される。第２のグループ内のネットワークデバイスについては、常に第２の変数が使用される。
【０１５０】
図１は、この機能を実装するための１つの可能な態様を示している。図１は、代入ユニット２２２、多項式簡約ユニット２２４、多項式加算ユニット２２６、及び、一変数多項式の集合の合計２２８を示している。後者は、一変数秘密鍵多項式２２９になる。
【０１５１】
代入ユニット２２２、多項式簡約ユニット２２４、及び多項式加算ユニット２２６は、多項式操作ユニットに編成され得る。このオプションが、図１において破線で示されている。
【０１５２】
これらは、次のように動作することができる。代入ユニット２２２は、識別整数Ａを、第１の集合の二変数多項式に代入する。代入ユニット２２２は、項をまとめて、正準形の結果にすることができるが、これは準備されていてもよい。多項式簡約ユニット２２４は、代入の結果を受信し、この結果を、代入された二変数多項式に関連付けられている簡約整数を法として簡約する。
【０１５３】
識別整数Ａを上記特定の多項式ｆｉ（Ａ，ｙ）に代入し、上記特定の多項式に関連付けられている簡約整数を法として簡約した結果は、多項式加算ユニット２２６による合計の前に、正準形での係数のリストとして表現される。変数ｙは、形式的変数として作用する。この代入は、単にｆｉ（Ａ，）と表記されることがある。
【０１５４】
多項式加算ユニット２２６は、簡約された一変数多項式を受信し、それら簡約された一変数多項式を合計２２８における当座の総計（running  total）に加算する。合計２２８は、一変数秘密鍵多項式の生成の前に、０にリセットされている。多項式加算ユニット２２６は、自然演算を使用して、又は、パラメータ集合に関連付けられている公開グローバル簡約整数を法として、係数に関して多項式を加算することができる。
【０１５５】
第１の秘密集合の全ての多項式がこのように処理されると、合計２２８における結果が、一変数秘密鍵多項式として使用され得る。例えば、合計２２８における、結果としてもたらされた一変数秘密鍵多項式が、係数のリストとして正準形で表現され得る。
【０１５６】
システム２００が複数のインスタンスを使用する場合、すなわち、システム２００が複数のパラメータ集合を使用する場合、計算ユニット２２０は、それらのパラメータ集合の各々について一変数秘密鍵多項式を決定する。必要とされる場合、ユニット２２０は、何らかの情報を再使用することができ、例えば、ユニット２２０は、同じ識別番号Ａを使用して、全ての一変数秘密鍵多項式を生成することができる。より高いセキュリティのために、パラメータ集合は、独立しており、好ましくは、異なる識別番号を使用する。
【０１５７】
計算ユニット２２０はまた、識別番号３１０及びパラメータ集合２５０の両方に対応する補正関数２７１を計算するよう構成されている補正関数ユニット２７０を含む。例えば、ユニット２７０は、以下を計算するよう構成され得る。
【数４７】
2017519457.tif 000049
ここで、
【数４８】
2017519457.tif 000050
である。
【０１５８】
間隔０−２Ｂの中での繰り返しの交差によって、ブレークポイントが計算され得る。ブレークポイントは、記憶空間の量を低減させる。さらに、ブレークポイントはまた、ネットワークデバイスに記憶される情報の量も低減させる。補正関数の個々の係数が記憶される必要はない。これらの有理係数は、ルート鍵材料から決定され、デバイスは、ブレークポイントを使用して、依然として補正関数を評価することができるが、これを越えて追加の情報を有していない。これは、セキュリティを向上させる。
【０１５９】
代替的に、Λ’Ａの最高次数項の１つの係数（好ましくは）又は複数の係数が計算されてもよい。これは、一変数多項式ｆｉ（Ａ，Ｘ）の最高次数項を選択することによって行われ、整数にわたって評価され、整数にわたって加算され得る。この単一の数は、デバイスＡのローカル鍵材料とともに配布され得る。
【０１６０】
ネットワークデバイスマネージャ２３０は、さらに、生成された一変数秘密鍵多項式２２９、対応する公開グローバル簡約整数２５６（Ｎ）、及び補正関数２７１を、ネットワークデバイスにおいて電子的に記憶させるよう構成されている。第１のネットワークデバイス３００は、一変数秘密鍵多項式２２９及びその１以上の識別番号を使用して、同じルート鍵材料から構成されている鍵を、他のデバイスと共有することができる。ネットワークデバイスマネージャ２３０はまた、パラメータＢ及びｂを、ネットワークデバイスにおいて電子的に記憶させるよう構成され得る。
【０１６１】
電子的に記憶させることは、デバイスマネージャが第１のデバイスに情報を電子的に送信し、その後、第１のデバイスが情報を記憶することを含み得る。
【０１６２】
計算ユニット２２０は、ソフトウェアにより実装されてもよいが、計算ユニット２２０は、ハードウェアによる実装に特に適している。多項式簡約ユニット２２４のみが、ハードウェアにより実装される場合、大幅な速度向上が得られる。システム２００の機能のうち、ユニット２２４のハードウェアバージョンによって実行されない部分は、プロセッサでのソフトウェア動作で実行され得る。
【０１６３】
図１は、第１のネットワークデバイス３００から識別番号メッセージ２３２を受信する計算ユニット２２０、計算デバイス２２０から秘密鍵材料メッセージ２３６を受信する第１のネットワークデバイス３００を示している。秘密鍵材料メッセージ２３６は、公開グローバル簡約整数、一変数秘密鍵多項式、及び補正関数を含み得る。
【０１６４】
これらのメッセージは、通常、ネットワークデバイスマネージャ２３０を通じて送受信される。秘密鍵材料メッセージ２３６は、複数のメッセージにわたって分割され得る。複数のインスタンスが使用される場合、それらは、それらの対応する秘密鍵材料メッセージを組み合わせて単一のメッセージにすることができる。
【０１６５】
構成するためのシステム２００は、第１のネットワークデバイス３００の識別番号を生成することによって識別番号を取得するよう構成され得る。そのような構成は、製造設備によく適している。その場合、第１のネットワークデバイス３００は、識別番号メッセージ２３２を送信する代わりに、構成システム２００から識別番号メッセージ２３２を受信する。第１のネットワークデバイス３００は、例えば、鍵材料取得部２１０又は計算ユニット２２０から識別番号メッセージ２３２を受信する。
【０１６６】
図２は、第１のネットワークデバイス３００及び第２のネットワークデバイス３５０の概略ブロック図である。第１のネットワークデバイス３００及び第２のネットワークデバイス３５０は、一緒に共有鍵を決定するよう構成されている。
【０１６７】
第２のネットワークデバイス３５０は、ネットワークデバイス３００と同じ設計のものであってよい。第１のネットワークデバイス３００のみが詳細に説明されるが、第２のネットワークデバイス３５０は、同じ又は同様であり得る。図２は、第２のネットワークデバイス３５０が識別番号３５５を記憶することしか示していない。第２のネットワークデバイス３５０の識別番号３５５は、公開であり、鍵を共有するためにネットワークデバイス３００と交換され得る。第２のネットワークデバイス３５０はまた、対応する補正関数とともに、ローカル鍵材料（図示せず）、特に、識別番号３５５に対応する１以上の一変数秘密鍵多項式を必要とする。
【０１６８】
第１のネットワークデバイス３００は、電子ストレージ３２０、通信ユニット３４２、計算ユニット３３０、及び鍵導出デバイス３４０を備える。
【０１６９】
ストレージ３２０は、デバイス３００のローカル鍵材料を記憶する。デバイスは、ローカル鍵材料の単一のインスタンス、すなわち、１つの一変数秘密鍵多項式及び１つの公開グローバル簡約整数をもって動作するよう構成され得る。図２に示す実施形態において、デバイス３００は、鍵材料集合３７０を備える。デバイス３００は、複数の鍵材料集合を備えることができる。鍵材料集合の数は、２であってもよいし、２より多くてもよい。デバイス３００の鍵材料は、システム２００等の、鍵を共有するようにネットワークデバイスを構成するためのシステムから取得されているものであり得る。鍵材料は、一変数秘密鍵多項式、公開グローバル簡約整数、及び補正関数を含む。例えば、鍵材料３７０は、一変数秘密鍵多項式３７２、公開グローバル簡約整数３７４、及び補正関数３７６を含む。公開グローバル簡約整数は、いくつかの又は全ての鍵材料の間で共有され得る。しかしながら、秘密鍵多項式は、好ましくは、全ての集合において異なる。
【０１７０】
ストレージ３２０は、鍵材料における一変数秘密鍵多項式を生成するために使用された識別番号３１０（Ａ）も記憶する。鍵材料はまた、特に、各鍵材料について異なる識別番号が使用される場合、識別番号も含み得る。
【０１７１】
ストレージ３２０は、例えば、フラッシュメモリ等の不揮発性の書き込み可能なメモリといったメモリであり得る。ストレージ３２０は、例えば、ハードディスク等の磁気ストレージといった他のタイプのストレージであってもよい。ストレージ３２０は、ライトワンスメモリであってもよい。
【０１７２】
通信ユニット３４２は、第２のネットワークデバイス３５０の識別番号３５５を取得するよう構成されている。通信ユニット３４２は、有線接続や、例えば、Ｗｉ−Ｆｉ（登録商標）接続、Ｂｌｕｅｔｏｏｔｈ（登録商標）接続、又はＺｉｇｂｅｅ（登録商標）接続として実装され得る。通信ユニット３４２は、例えばインターネットといったデータネットワークを介する接続で実装されてもよい。
【０１７３】
計算ユニット３３０は、ストレージ３２０内の鍵材料３７０に対応する、デバイス３５０と共有される鍵を導出するよう構成されている。デバイス３５０は、鍵材料３７０に対応する鍵材料を有する。以下において、計算ユニット３３０が、鍵材料３７０を使用して、単一の共有鍵をどのように導出できるかが説明される。しかしながら、複数のインスタンスが組み合わされてもよい。
【０１７４】
計算ユニット３３０は、代入ユニット３３２及び整数簡約ユニット３３４を含み得る。代入ユニット３３２及び整数簡約ユニット３３４は、一緒になって多項式操作ユニット３３１を形成する。後者が、破線で示されている。
【０１７５】
計算ユニット３３０は、識別整数Ａを一変数秘密鍵多項式３７２に代入し、公開グローバル簡約整数３７４を法として、代入の結果を簡約するよう構成されている。計算ユニット３３０は、代入ユニット２２２及び多項式簡約ユニット２２４と同様のハードウェア又はソフトウェアを使用することができる。第１のネットワークデバイス３００は、第１の秘密集合及び第２の秘密集合にアクセスすることができないことに留意されたい。簡約ユニット３３４の結果は、中間鍵である。
【０１７６】
計算ユニット３３０は、補正関数評価ユニット３９２及び鍵修正ユニット３９４をさらに含む。後者２つは、破線で示されている鍵補正ユニット３９１を形成する。
【０１７７】
補正関数評価ユニット３９２は、第２の識別番号を秘密補正関数に代入して、補正係数を取得するよう構成されている。補正関数の評価は、関数の記憶のタイプに適している評価方法を使用する。例えば、補正関数３７６が、一連のブレークポイントとして記憶されている場合、関数は、識別番号３５５が間に含まれる２つのブレークポイントを見出すことによって評価される。例えば、補正関数３７６が、近似有理多項式として記憶されている場合、有理多項式が、例えば有理数として評価され、丸められる。
【０１７８】
その結果が、中間鍵を修正するために使用することができる補正係数である。
【０１７９】
鍵修正ユニット３９４は、中間鍵及び補正係数を受信し、補正係数を用いて中間鍵を修正して、補正された鍵を取得するよう構成されている。例えば、鍵修正ユニット３９４は、補正係数を公開グローバルモジュラス３７４で乗算し、その結果を中間鍵に加算することができる。後者が、次いで、２ｂを法として簡約される。
【０１８０】
任意的に、計算ユニット３３０は、鍵調整ユニット３３６を含む。デバイス３００及びデバイス３５０が同じ共有鍵に達しないということが起こり得る。アプリケーションは、この可能性を無視することを選択することができる。そうする際、ネットワークデバイスのいくつかのペアは、それらが共通の共有鍵を有しないため、暗号化及び／又は認証された通信に関与することができない場合がある。いくつかの用途について、ネットワークデバイスのいくつかのペアのみがセキュアにされていることで十分であり、例えば、アドホックネットワークが、この一例である。デバイス３００及び３５０はまた、任意的な鍵調整ユニット３３６を有するよう構成されてもよい。２つのデバイス３００及び３５０のうちの一方において、鍵調整ユニット３３６は、生成された鍵から鍵調整データを生成し、鍵調整データを他方のデバイスに送信する。他方のデバイスにおいて、鍵調整ユニット３３６は、受信された鍵調整データを使用して、両方のデバイスにおいて導出された共有鍵が同じであるように、生成された鍵を適合させる。
【０１８１】
鍵調整ユニット３３６が鍵を適合させるために使用される場合、鍵調整ユニットは、生成された鍵が鍵調整データに合うまで、生成された鍵を適合させる。すなわち、適合された鍵から鍵調整データを導出することが、その鍵について、受信された鍵調整データと同じ結果を与えるであろう。鍵を適合させることは、公開グローバル簡約整数の倍数を加算し、２ｂを法として簡約すること、すなわち、ＫＢＡ＋δＮ  ｍｏｄ  ２ｂによって行われ得る。
【０１８２】
例えば、デバイス３００における鍵調整ユニット３３６は、生成された小さい鍵の所定数の最下位ビットを、鍵調整データとして取得する。例えば、２ｃ≧１＋２Ｄであるように、所定数ｃが、最小数として選択され得る。ここで、αは、第１の秘密集合内の多項式の次数であり、ｍは、多項式の数である。Ｄは、第２の集合内の鍵の残っている数を表す、すなわち、修正された中間鍵における残っている不確実性を表す。好ましくは、Ｄ＝３である。なぜならば、これは、１、−１、又は０のいずれかであるδの値に対応するからである。デバイス３５０は、調整データとして、修正された中間鍵の最下位３ビットを送信することができる。最下位ビットが調整データとして使用される場合、鍵調整ユニットは、最下位ｃビットが、受信されたビットと同じになるまで、倍数を加算する。ｂ＝８であるとしても、５ビットが各インスタンスについて残る。これら５ビットは、追加の調整を必要としないが、複数のインスタンス、例えば、８０ビット共有鍵を取得するための１６個のインスタンスを組み合わせることによって、任意の所望の長さの鍵が取得され得る。
【０１８３】
鍵導出デバイス３４０は、導出された１以上の鍵、例えば、１以上の修正された中間鍵から、共有鍵を導出するよう構成されている。共有鍵は、いわゆる対称鍵である。簡約の結果は整数である。この結果は、例えば、その係数を任意的に調整後に連結することによって、ほぼ直接的に鍵として使用され得る。
【０１８４】
簡約の結果から共有鍵を導出することは、例えば、Ｏｐｅｎ  Ｍｏｂｉｌｅ  ＡｌｌｉａｎｃｅのＯＭＡ  ＤＲＭ仕様（ＯＭＡ−ＴＳ−ＤＲＭ−ＤＲＭ−Ｖ２＿０＿２−２００８０７２３−Ａ，ｓｅｃｔｉｏｎ  ７．１．２  ＫＤＦ）において定義されている関数ＫＤＦ及び同様の関数といった鍵導出関数を適用することを含み得る。
【０１８５】
ｂビット鍵ごとに鍵調整データを送受信する代わりに、鍵調整ユニットはまた、可能であればＫＤＦのような鍵調整アルゴリズムの後でも、集約された大きい共有鍵にわたる鍵調整データを生成するよう構成され得る。この場合、鍵調整ユニットは、鍵調整データを満たす大きい鍵が見出されるまで、全ての小さい鍵を同時に適合させる。同時での複数の小さい鍵の変更は、はるかに多くの作業量であるが、小さい鍵にとって利用可能な直接的な情報はより少ないため、大きい鍵にわたって鍵調整データを生成することは、はるかにセキュアである。
【０１８６】
図２は、第１のネットワークデバイス３００における任意的な暗号化ユニット３４５をさらに示している。暗号化ユニット３４５は、共有鍵を使用するよう構成されている。例えば、暗号化ユニット３４５は、共有対称鍵を用いて電子メッセージを暗号化するよう構成されている暗号化ユニットであり得る。例えば、暗号化ユニット３４５は、共有対称鍵を用いて電子メッセージを復号化するよう構成されている復号化ユニットであってもよい。
【０１８７】
図３ａは、鍵共有システム１００の概略ブロック図である。
【０１８８】
鍵共有システム１００は、構成するためのシステム２００及び複数のネットワークデバイスを有する。ネットワークデバイス３００、３５０、及び３６０が図示されている。ネットワークデバイスの各々は、構成するためのシステム２００から、識別番号、一変数秘密鍵多項式、グローバル簡約整数、及び補正関数を受信する。この情報を使用して、ネットワークデバイスは、共有鍵について合意することができる。例えば、第１のネットワークデバイス３００及び第２のネットワークデバイス３５０の各々は、それらの識別番号を他方のパーティに送信する。次いで、それらのネットワークデバイスは、例えば、両方とも最初に中間鍵を導出し、両方とも補正され修正された中間鍵を導出することによって、共有鍵を計算することができる。最後に、それら２つのネットワークデバイスのうちの一方が、調整データを送信し得るのに対し、他方のネットワークデバイスが、受信された調整データに合うように、その修正された中間鍵を適合させる。
【０１８９】
第１のネットワークデバイス３００と第２のネットワークデバイス３５０との間の通信の知識、及び、さらにはグローバル簡約整数の知識を有する者も、不当に大きいリソースを使用しなければ、それらの共有鍵を取得することはできない。デバイス３６０でさえ、デバイス３００とデバイス３５０との間で共有される鍵を導出することはできない。
【０１９０】
図３ｂは、類似する鍵共有システム１０２の概略ブロック図である。システム１０２は、ネットワークデバイスが、個別化デバイスとも呼ばれる構成サーバ１１０から、それらの識別番号を受信することを除いて、システム１００と同じである。その後、ネットワークデバイスは、それらの識別番号を送信することによって、構成するためのシステム２００に登録する。デバイス３６０でさえ、デバイス３００とデバイス３５０との間で共有される鍵を取得することはできない。
【０１９１】
構成サーバ１１０は、他の目的でも使用される識別番号を割り当てることができる。例えば、構成サーバ１１０は、ＭＡＣアドレス等のネットワークアドレスを割り当てることができる。ネットワークアドレスは、ネットワークノードによって、ネットワークトラフィックを第２のネットワークノードからネットワークノード自身へとルーティングするために使用される。しかしながら、ネットワークアドレスはまた、識別番号の役割も果たすことができる。この場合、ネットワークノードは、そのネットワークアドレスを、システム２００に利用可能にし、ネットワークノードがそのネットワークアドレスを識別番号として使用して暗号化通信に関与することを可能にする一変数秘密鍵多項式を受信する。識別番号が、完全エントロピー、すなわち、Ｂビットのエントロピーを有することが好ましい。しかしながら、これを実現することが可能でない場合、その番号を識別番号として使用する前に、例えばハッシュ関数といったエントロピー平滑化関数を実行することが好ましい。
【０１９２】
構成サーバ１１０は、近い識別番号、すなわち、最上位ビットの多く又は全てを共有する識別番号を回避することによって、システムのセキュリティを増大させるための識別番号を生成することができる。例えば、サーバ１１０は、識別番号をランダムに、例えば、真性ランダム又は擬似ランダムに、生成することができる。例えば１０ビットといった所定数のランダムビットを識別番号に付加することでも、十分である。識別番号は、Ａ１｜｜Ａ２の形態を有することができる。ここで、Ａ１は、ランダムではなく、例えば、シリアル番号、ネットワークアドレス等であり、Ａ２は、ランダムである。Ａ２は、乱数生成部によって生成され得る。Ａ２はまた、Ａ１をハッシュすることによって生成され得る。例えばＨＭＡＣといった鍵付きハッシュが使用される場合、このＡ２は、ランダム性から、当該鍵にアクセスできないパーティには識別できない。鍵は、サーバ１１０によって生成されて記憶され得る。
【０１９３】
サーバ１１０は、システム２００に含められ得、例えば、ネットワークマネージャ２３０に組み込まれ得る。
【０１９４】
一般的に、デバイス２００及び３００の各々は、デバイス２００及び３００に記憶されている適切なソフトウェアを実行するマイクロプロセッサ（図示せず）を備え、例えば、そのようなソフトウェアは、例えば、ＲＡＭ等の揮発性メモリ又はフラッシュ等の不揮発性メモリ（図示せず）といった対応するメモリにダウンロード及び／又は記憶されているものであり得る。デバイス３５０及び３６０も、マイクロプロセッサ及びメモリ（図示せず）を備えることができる。代替的に、デバイス２００及び３００は、プログラマブルロジックにより、例えば、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）として、全て又は一部分が実装されてもよい。デバイス２００及び３００は、いわゆる特定用途向け集積回路（ＡＳＩＣ）、すなわち、それらの特定の使用に合わせてカスタマイズされている集積回路（ＩＣ）として、全て又は一部分が実装されてもよい。
【０１９５】
図４は、集積回路４００の概略ブロック図である。集積回路４００は、プロセッサ４２０、メモリ４３０、及びＩ／Ｏユニット４４０を備える。集積回路４００のこれらのユニットは、バス等のインターコネクト４１０を介して互いの間で通信することができる。プロセッサ４２０は、例えば、デバイスを構成するための方法又は共有鍵を決定するための方法といった、本明細書に記載の方法を実行するための、メモリ４３０に記憶されているソフトウェアを実行するよう構成されている。このように、集積回路４００は、構成するためのシステム２００として、又は、第１のネットワークデバイス３００等のネットワークデバイスとして、構成され得る、メモリ４３０の一部分は、必要に応じて、公開グローバル簡約整数、二変数多項式の第１の秘密集合、簡約整数の第２の秘密集合、識別番号、平文メッセージ、及び／又は暗号化メッセージを記憶することができる。
【０１９６】
Ｉ／Ｏユニット４４０は、デバイス２００又は３００等の他のデバイスと通信して、例えば、二変数多項式の第１の秘密集合２５２等の鍵データ、及び、可能であれば、サイズ、次数、モジュラス等といった関連パラメータを受信するために、又は、暗号化及び／又は認証されたメッセージを送受信するために、使用され得る。Ｉ／Ｏユニット４４０は、無線通信のためのアンテナを含み得る。Ｉ／Ｏユニット４４０は、有線通信のための電気インターフェースを含み得る。
【０１９７】
集積回路４００は、コンピュータ、携帯電話機等のモバイル通信デバイス等に統合され得る。集積回路４００はまた、例えば、ＬＥＤデバイスを有して構成されているライティングデバイスに統合されてもよい。例えば、ネットワークデバイスとして、ＬＥＤ等のライティングユニットを有して構成されている集積回路４００は、共有対称鍵を用いて暗号化されたコマンドを受信することができる。
【０１９８】
例えば、ライティングデバイスに組み込まれている複数のネットワークデバイスは、リンクがノード間の共有鍵を使用して暗号化されている暗号化ネットワークのノードを形成することができる。
【０１９９】
集積回路４００は、高速の対称鍵共有を望む他のデバイスに統合されてもよい。集積回路４００は、決済システムに統合されてもよい。集積回路４００は、車両に統合されてもよい。複数のそのような車両が、車両間メッセージが共有鍵を使用して暗号化及び／又は認証される車両間通信のために構成されてもよい。
【０２００】
多項式操作は、プロセッサ４２０によって、メモリ４３０に記憶されている多項式操作ソフトウェアによって命令されるように実行され得るが、鍵生成、及び一変数多項式の計算のタスクは、集積回路４００が、任意的な多項式操作ユニット４５０を有して構成される場合、より高速である。この実施形態において、多項式操作ユニット４５０は、代入演算及び簡約演算を実行するためのハードウェアユニットである。
【０２０１】
一般的に、デバイス２００及び３００の各々は、デバイス２００及び３００に記憶されている適切なソフトウェアを実行するマイクロプロセッサ（図示せず）を備え、例えば、そのようなソフトウェアは、例えば、ＲＡＭ等の揮発性メモリ又はフラッシュ等の不揮発性メモリ（図示せず）といった対応するメモリにダウンロード及び／又は記憶されているものであり得る。代替的に、デバイス２００及び３００は、プログラマブルロジックにより、例えば、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）として、全て又は一部分が実装されてもよい。
【０２０２】
図５は、第２のデバイスとともに共有鍵を決定するための方法５００をフローチャートとして概略的に示している。
方法５００は、
第１の識別番号（Ａ）、秘密補正関数（ΛＡ（））、第１の秘密一変数鍵多項式（３７２、ＧＡ（））を記憶するステップ５０２と、
第２のデバイスの第２の識別番号（３５５、Ｂ）を取得するステップ５０４と、
第２の識別番号を秘密一変数鍵多項式に代入して、中間鍵を取得するステップ５０６であって、中間鍵は、第１の鍵集合を規定する、ステップ５０６と、
第２の識別番号を秘密補正関数に代入して、補正係数を取得するステップ５０８と、
補正係数を用いて中間鍵を修正して、補正された鍵を取得するステップ５１０であって、補正された鍵は、第２の鍵集合を規定し、第２の鍵集合は、第１の鍵集合よりも小さい、ステップ５１０と、
を含む。
【０２０３】
共有鍵は、少なくとも補正された鍵から導出され得る。
【０２０４】
図６は、鍵を共有するようにデバイス３００を構成するための方法６００をフローチャートとして概略的に示している。
方法６００は、
ルート鍵材料を電子的形態で取得するステップ６０２と、
デバイスの第１の識別番号（３１０、Ａ）を電子的形態で取得するステップ６０４と、
デバイスについて、ルート鍵材料及び第１の識別番号（３１０、Ａ）から、秘密一変数鍵多項式（２２９）及び秘密補正関数（ΛＡ（））を計算するステップ６０６と、
生成された秘密一変数鍵多項式（２２９、２３６）及び秘密補正関数（ΛＡ（））を、デバイスにおいて記憶させるステップ６０８と、
を含む。
【０２０５】
当業者には明らかであるように、本方法を実行する多くの異なる態様が可能である。例えば、ステップの順序が、変更されてもよいし、いくつかのステップが、並列に実行されてもよい。さらに、ステップの間に、他の方法ステップが挿入されてもよい。挿入されるステップは、本明細書に記載されているような方法の改良を表すこともあるし、本明細書に記載されているような方法と無関係であることもある。
【０２０６】
一実施形態に従った方法は、プロセッサシステムに、方法５００又は６００を実行させる命令を含むソフトウェアを使用して実行され得る。ソフトウェアは、システムの特定のサブエンティティによって行われるステップのみを含み得る。ソフトウェアは、ハードディスク、フロッピー（登録商標）、メモリ等といった適切な記憶媒体に記憶され得る。ソフトウェアは、ワイヤに沿って若しくは無線で、又は、例えばインターネットといったデータネットワークを用いて、信号として伝送され得る。ソフトウェアは、ダウンロード及び／又はサーバ上でのリモート使用のために利用可能にされ得る。方法は、本方法を実行するように、例えばフィールドプログラマブルゲートアレイ（ＦＰＧＡ）といったプログラマブルロジックを構成するよう構成されているビットストリームを使用して実行され得る。
【０２０７】
本発明はまた、コンピュータプログラム、特に、本発明を実施するよう適合されている、キャリア上又はキャリア内のコンピュータプログラムにも拡張される。プログラムは、ソースコード、オブジェクトコード、コード中間ソース、及び、部分的にコンパイルされた形態、又は、実施形態に従った方法の実装において使用するのに適した任意の他の形態等のオブジェクトコードの形態であり得る。コンピュータプログラム製品に関連する実施形態は、記載されている方法のうちの少なくとも１つ方法の処理ステップの各々に対応するコンピュータ実行可能な命令を含む。これらの命令は、サブルーチンに細分割され得る、且つ／又は、静的若しくは動的にリンクされ得る１以上のファイルに記憶され得る。コンピュータプログラム製品に関連する別の実施形態は、記載されているシステム及び／又は製品のうちの少なくとも１つの手段の各々に対応するコンピュータ実行可能な命令を含む。
【０２０８】
上述した実施形態は、本発明を限定するものではなく例示するものであり、当業者であれば多くの代替実施形態を設計することが可能であることに留意されたい。
【０２０９】
バイオメトリック検証のための有利な実施形態が、以下の項目に記載される。本出願人は、これによって、本出願又は本出願から導出される任意のさらなる出願の手続き中に、そのような項目及び／又はそのような項目の組合せ及び／又は本明細書から得られる特徴に対して新たな請求項が策定され得ることを告示する。
【０２１０】
１．第２のデバイス（３５０）とともに共有鍵を決定するよう構成されている第１のデバイス（３００）であって、
第１の識別番号（３１０、Ａ）と、第１の秘密補正関数（３７６、ΛＡ（））と、第１の秘密一変数鍵多項式（３７２、ＧＡ（））と、を記憶する電子ストレージ（３２０）であって、
第２のデバイス（３５０）は、第２の秘密一変数鍵多項式（ＧＢ（））及び第２の補正関数（ΛＢ（））にアクセスすることができ、第１の識別番号（３１０、Ａ）を第２の秘密一変数鍵多項式（ＧＢ（））に代入することから第２の中間鍵を取得するよう構成されており、補正係数を用いて第２の中間鍵を修正することから第２の補正された鍵を取得するよう構成されている、
電子ストレージ（３２０）と、
第２のデバイスの第２の識別番号（３５５、Ｂ）を取得するよう構成されている通信ユニット（３４２）と、
第２の識別番号（３５５）を第１の秘密一変数鍵多項式（３７２）に代入して、第１の中間鍵を取得するよう構成されている多項式操作ユニット（３３１）であって、第１の中間鍵は、第１の鍵集合を規定し、第２のデバイスによって導出される第２の中間鍵は、第１の鍵集合内に含まれる、多項式操作ユニット（３３１）と、
第２の識別番号（３５５）を第１の秘密補正関数（３７６）に代入して、第１の補正係数を取得し、第１の補正係数を用いて第１の中間鍵を修正して、第１の補正された鍵を取得するよう構成されている鍵補正ユニット（３９１）であって、第１の補正された鍵は、第２の鍵集合を規定し、第２の鍵集合は、第１の鍵集合よりも小さく、第２の鍵集合は、第２の補正された鍵を含み、第１のデバイスは、少なくとも第１の補正された鍵から共有鍵を導出するよう構成されている、鍵補正ユニット（３９１）と、
を備える、第１のデバイス（３００）。
【０２１１】
２．第１の秘密補正関数（３７６）は、単調且つ／又は非多項式である、項目１に記載の第１のデバイス（３００）。
【０２１２】
３．第１の秘密補正関数（ΛＡ（））は、有理係数を有する丸められた多項式である、項目１〜２のいずれか１つに記載の第１のデバイス（３００）。
【０２１３】
４．第１の秘密補正関数（ΛＡ（））は、有理係数を有する単一の項を有する丸められた多項式（
【数４９】
2017519457.tif 000051
）である、項目３に記載の第１のデバイス（３００）。
【０２１４】
５．第１の秘密補正関数（３７６、ΛＡ（））は、ｘ≦ＩＡ，１である場合、ΛＡ（ｘ）＝０であり、ＩＡ，ｉ＜ｘ≦ＩＡ，ｉ＋１である場合、ΛＡ（ｘ）＝ｉであるように、昇順の一連の整数ブレークポイントＩＡ，１、ＩＡ，２、．．．として記憶される、項目２に記載の第１のデバイス（３００）。
【０２１５】
６．第１の秘密一変数鍵多項式（３７２、ＧＡ（））は、二変数多項式（２５２、ｆｉ（，））の第１の秘密集合の各特定の多項式について、第１の識別番号（Ａ）を該特定の多項式（ｆｉ（Ａ，））に代入し、該特定の多項式に関連付けられている簡約整数を法として簡約し、一変数多項式の集合を合計することにより、一変数多項式の集合を取得することによって、デバイス（３００）を構成するためのシステム（２００）によって取得されている、項目１〜５のいずれか１つに記載の第１のデバイス（３００）。
【０２１６】
７．秘密簡約整数ｐｉは、βｉ＜２Ｂである何らかの整数βｉ、及び、公開グローバル簡約整数（２５６、Ｎ）について、ｐｉ＝Ｎ−βｉ２ｂを満たす、項目６に記載の第１のデバイス（３００）。
【０２１７】
８．第１の鍵集合は、第１の中間鍵によって、補正項の倍数を加算又は減算することにより規定され、倍数は、上限よりも小さく下限よりも大きい、項目１〜７のいずれか１つに記載の第１のデバイス（３００）。
【０２１８】
９．電子ストレージ（３２０）は、公開グローバル簡約整数（３７４、Ｎ）をさらに記憶し、第１の中間鍵を修正することは、第１の補正係数を公開グローバル簡約整数（３７４、Ｎ）で乗算し、乗算の結果を第１の中間鍵に対して加算又は減算することを含む、項目１〜８のいずれか１つに記載の第１のデバイス（３００）。
【０２１９】
１０．多項式操作ユニットは、さらに、公開グローバル簡約整数（Ｎ）を法として代入の結果を簡約し、２ｂを法として、公開グローバル簡約整数（Ｎ）を法とする簡約の結果をさらに簡約して、第１の中間鍵を取得するよう構成されており、第１の中間鍵は、ｂビット長であり、第１の中間鍵を修正することは、加算又は減算の後に、２ｂを法として簡約することをさらに含む、項目９に記載の第１のデバイス（３００）。
【０２２０】
１１．通信ユニット（３４２）は、さらに、第２のデバイスから鍵調整データを受信するよう構成されており、第１のデバイスは、受信された鍵調整データに合うように第１の補正された鍵を修正するよう構成されている鍵調整ユニット（３３６）を備え、共有鍵は、修正された第１の補正された鍵から導出される、項目１〜１０のいずれか１つに記載の第１のデバイス（３００）。
【０２２１】
１２．鍵を共有するように第１のデバイス（３００）を構成するためのシステム（２００）であって、
ルート鍵材料を電子的形態で取得するよう構成されている鍵材料取得部（２１０）と、
少なくとも、第１のデバイスの第１の識別番号（３１０、Ａ）を電子的形態で取得するデバイスマネージャ（２３０）と、
デバイスについて、項目１に記載の第１のデバイスにおいて使用するために、ルート鍵材料及び第１の識別番号（３１０、Ａ）から秘密一変数鍵多項式（２２９、ＧＡ（））及び秘密補正関数（２７１、ΛＡ（））を計算する計算ユニット（２２０）と、
を備え、
デバイスマネージャ（２３０）は、さらに、生成された秘密一変数鍵多項式（２２９、２３６）及び秘密補正関数（２７１、ΛＡ（））を、第１のデバイスにおいて電子的に記憶させるよう構成されている、鍵を共有するように第１のデバイス（３００）を構成するためのシステム（２００）。
【０２２２】
１３．ルート鍵材料は、二変数多項式の第１の秘密集合（２５２、ｆｉ（，））、及び、簡約整数の第２の秘密集合（２５４、ｐｉ）を含み、第１の集合内の各二変数多項式には、第２の集合の簡約整数が関連付けられており、鍵材料取得部（２１０）は、さらに、公開グローバル簡約整数（２５６、Ｎ）を取得するよう構成されており、
計算ユニット（２２０）は、デバイスについて、
第１の秘密集合の各特定の多項式について、第１の識別番号（Ａ）を該特定の多項式（ｆｉ（Ａ，））に代入し、該特定の多項式に関連付けられている簡約整数を法として簡約することによって、一変数多項式の集合を取得し、
一変数多項式の集合を合計する
ことによって、第１の秘密集合及び第２の秘密集合から、秘密一変数鍵多項式（２２９、ＧＡ（））を計算するよう構成されている、項目１２に記載のデバイス（３００）を構成するためのシステム（２００）。
【０２２３】
１４．計算ユニットは、関数
【数５０】
2017519457.tif 000052
を近似することによって補正関数ΛＡ（Ｘ）を計算するよう構成されており、ここで、
【数５１】
2017519457.tif 000053
であり、ｆｉ（，）は、二変数多項式の第１の秘密集合（２５２）を表し、ｐｉは、簡約モジュラスの第２の秘密集合を表す、項目１３に記載のデバイス（３００）を構成するためのシステム（２００）。
【０２２４】
１５．第２のデバイス（３５０）とともに共有鍵を決定するための方法であって、
第１の識別番号（Ａ）と、第１の秘密補正関数（ΛＡ（））と、第１の秘密一変数鍵多項式（３７２、ＧＡ（））と、を記憶するステップと、
第２のデバイスの第２の識別番号（３５５、Ｂ）を取得するステップと、
第２の識別番号を秘密一変数鍵多項式に代入して、第１の中間鍵を取得するステップであって、第１の中間鍵は、第１の鍵集合を規定する、ステップと、
第２の識別番号を第１の秘密補正関数に代入して、第１の補正係数を取得するステップと、
第１の補正係数を用いて第１の中間鍵を修正して、第１の補正された鍵を取得するステップであって、第１の補正された鍵は、第２の鍵集合を規定し、第２の鍵集合は、第１の鍵集合よりも小さい、ステップと、
を含む、方法。
【０２２５】
１６．鍵を共有するようにデバイス（３００）を構成するための方法であって、
ルート鍵材料を電子的形態で取得するステップと、
デバイスの第１の識別番号（３１０、Ａ）を電子的形態で取得するステップと、
デバイスについて、ルート鍵材料及び第１の識別番号（３１０、Ａ）から、秘密一変数鍵多項式（２２９）及び第１の秘密補正関数（ΛＡ（））を計算するステップと、
生成された秘密一変数鍵多項式（２２９、２３６）及び第１の秘密補正関数（ΛＡ（））を、デバイスにおいて電子的に記憶させるステップと、
を含む、方法。
【０２２６】
１７．コンピュータプログラムであって、コンピュータプログラムがコンピュータ上で実行されたときに、項目１５又は１６の全てのステップを実行するよう適合されているコンピュータプログラムコード手段を含む、コンピュータプログラム。
【０２２７】
１８．コンピュータ読み取り可能な媒体上に具現化されている、項目１７に記載のコンピュータプログラム。
【０２２８】
請求項において、括弧内に配置されているいかなる参照符号も、請求項を限定するものとして解釈されるべきではない。動詞「備える（comprise）」及びその活用形の使用は、請求項に記載されている要素又はステップ以外の要素又はステップの存在を排除するものではない。要素に先行する冠詞「a」又は「an」は、複数のそのような要素の存在を排除するものではない。本発明は、複数の異なる要素を含むハードウェア、及び、適切にプログラムされたコンピュータによって実装され得る。複数の手段を列挙している装置の請求項において、これらの手段のうちのいくつかは、全く同一のハードウェアアイテムによって具現化されてもよい。所定の手段が、相互に異なる従属請求項に記載されているというだけの事実は、これらの手段の組合せを有利に使用することができないことを示すものではない。
【０２２９】
請求項において、括弧内の参照符号は、実施形態の図面内の参照符号又は実施形態の式を参照しており、したがって、請求項の理解度を増大させる。これらの参照符号は、請求項を限定するものとして解釈されるべきではない。
【符号の説明】
【０２３０】
１００，１０２  鍵共有システム
１１０  個別化デバイス
２００  鍵を共有するようにネットワークデバイスを構成するためのシステム
２１０  鍵材料取得部
２２０  計算ユニット
２２２  代入ユニット
２２４  多項式簡約ユニット
２２６  多項式加算ユニット
２２８  一変数多項式の集合の合計
２２９  一変数秘密鍵多項式
２３０  ネットワークデバイスマネージャ
２３２  識別番号メッセージ
２３６  秘密鍵材料メッセージ
２３８  接続
２４０  多項式操作ユニット
２５０  パラメータ集合
２５２  二変数多項式の第１の秘密集合
２５４  簡約整数の第２の秘密集合
２５６  公開グローバル簡約整数
２７０  補正関数ユニット
２７１  補正関数
３００  第１のネットワークデバイス
３１０  識別番号
３２０  電子ストレージ
３３０  計算ユニット
３３１  多項式操作ユニット
３３２  代入ユニット
３３４  整数簡約ユニット
３３６  鍵調整ユニット
３４０  鍵導出デバイス
３４２  通信ユニット
３４５  暗号化ユニット
３５０  第２のネットワークデバイス
３５５  識別番号
３６０  第３のネットワークデバイス
３７０  鍵材料集合
３７２  秘密一変数鍵多項式
３７４  公開グローバル簡約整数
３７６  補正関数
３９１  鍵補正ユニット
３９２  補正関数評価ユニット
３９４  鍵修正ユニット
４００  集積回路
４１０  インターコネクト
４２０  プロセッサ
４３０  メモリ
４４０  Ｉ／Ｏユニット
４５０  多項式操作ユニット
【図１】
2017519457.tif 000058
【図２】
2017519457.tif 000059
【図３ａ】
2017519457.tif 000060
【図３ｂ】
2017519457.tif 000061
【図４】
2017519457.tif 000062
【図５】
2017519457.tif 000063
【図６】
2017519457.tif 000064
【手続補正書】
【提出日】平成29年2月28日(2017.2.28)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
第２のデバイスとともに共有鍵を決定するよう構成されている第１のデバイスであって、
第１の識別番号と、第１の秘密補正関数と、第１の秘密一変数鍵多項式と、を記憶する電子ストレージであって、
前記第２のデバイスは、第２の秘密一変数鍵多項式及び第２の補正関数にアクセスすることができ、前記第１の識別番号を前記第２の秘密一変数鍵多項式に代入することから第２の中間鍵を取得するよう構成されており、補正係数を用いて前記第２の中間鍵を修正することから第２の補正された鍵を取得するよう構成されており、前記第１の秘密補正関数及び第２の秘密補正関数は、非多項式整数値単調関数である、
電子ストレージと、
前記第２のデバイスの第２の識別番号を取得するよう構成されている通信ユニットと、
前記第２の識別番号を前記第１の秘密一変数鍵多項式に代入して、第１の中間鍵を取得するよう構成されている多項式操作ユニットであって、前記第１の中間鍵は、第１の鍵集合を規定し、前記第２のデバイスによって導出される前記第２の中間鍵は、前記第１の鍵集合内に含まれる、多項式操作ユニットと、
前記第２の識別番号を前記第１の秘密補正関数に代入して、第１の補正係数を取得し、前記第１の補正係数を用いて前記第１の中間鍵を修正して、第１の補正された鍵を取得するよう構成されている鍵補正ユニットであって、前記第１の補正された鍵は、第２の鍵集合を規定し、前記第２の鍵集合は、前記第１の鍵集合よりも小さく、前記第２の鍵集合は、前記第２の補正された鍵を含み、前記第１のデバイスは、少なくとも前記第１の補正された鍵から前記共有鍵を導出するよう構成されている、鍵補正ユニットと、
を備える、第１のデバイス。
【請求項２】
前記第１の秘密補正関数は、有理係数を有する丸められた多項式である、請求項１に記載の第１のデバイス。
【請求項３】
前記第１の秘密補正関数は、有理係数を有する単一の項を有する丸められた多項式である、請求項２に記載の第１のデバイス。
【請求項４】
前記第１の秘密補正関数ΛＡ（）は、ｘ≦ＩＡ，１である場合、ΛＡ（ｘ）＝０であり、ＩＡ，ｉ＜ｘ≦ＩＡ，ｉ＋１である場合、ΛＡ（ｘ）＝ｉであるように、昇順の一連の整数ブレークポイントＩＡ，１、ＩＡ，２、．．．として記憶される、請求項１に記載の第１のデバイス。
【請求項５】
前記第１の秘密一変数鍵多項式は、二変数多項式の第１の秘密集合の各特定の多項式について、前記第１の識別番号を該特定の多項式に代入し、該特定の多項式に関連付けられている簡約整数を法として簡約し、一変数多項式の集合を合計することにより、前記一変数多項式の集合を取得することによって、デバイスを構成するためのシステムによって取得されている、請求項１乃至４のいずれか一項に記載の第１のデバイス。
【請求項６】
前記簡約整数ｐｉは、βｉ＜２Ｂである何らかの整数βｉ、及び、公開グローバル簡約整数Ｎについて、ｐｉ＝Ｎ−βｉ２ｂを満たす、請求項５に記載の第１のデバイス。
【請求項７】
前記第１の鍵集合は、前記第１の中間鍵によって、補正項の倍数を加算又は減算することにより規定され、前記倍数は、上限よりも小さく下限よりも大きい、請求項１乃至６のいずれか一項に記載の第１のデバイス。
【請求項８】
前記電子ストレージは、公開グローバル簡約整数をさらに記憶し、前記第１の中間鍵を修正することは、前記第１の補正係数を前記公開グローバル簡約整数で乗算し、前記乗算の結果を前記第１の中間鍵に対して加算又は減算することを含む、請求項１乃至７のいずれか一項に記載の第１のデバイス。
【請求項９】
前記多項式操作ユニットは、さらに、前記公開グローバル簡約整数を法として前記代入の結果を簡約し、２ｂを法として、前記公開グローバル簡約整数を法とする前記簡約の結果をさらに簡約して、前記第１の中間鍵を取得するよう構成されており、前記第１の中間鍵は、ｂビット長であり、前記第１の中間鍵を修正することは、前記加算又は前記減算の後に、２ｂを法として簡約することをさらに含む、請求項８に記載の第１のデバイス。
【請求項１０】
前記第１の秘密補正関数ΛＡ（Ｘ）は、関数
【数１】
2017519457.tif 000065
を近似し、ここで、
【数２】
2017519457.tif 000066
であり、ｆｉ（，）は、前記二変数多項式の第１の秘密集合を表し、ｐｉは、簡約モジュラスの第２の秘密集合を表す、請求項５に記載の第１のデバイス。
【請求項１１】
前記通信ユニットは、さらに、前記第２のデバイスから鍵調整データを受信するよう構成されており、前記第１のデバイスは、前記の受信された鍵調整データに合うように前記第１の補正された鍵を修正するよう構成されている鍵調整ユニットを備え、前記共有鍵は、前記の修正された第１の補正された鍵から導出される、請求項１乃至１０のいずれか一項に記載の第１のデバイス。
【請求項１２】
鍵を共有するように第１のデバイスを構成するためのシステムであって、
ルート鍵材料を電子的形態で取得するよう構成されている鍵材料取得部と、
少なくとも、前記第１のデバイスの第１の識別番号を電子的形態で取得するデバイスマネージャと、
前記第１のデバイスについて、請求項１に記載の第１のデバイスにおいて使用するために、前記ルート鍵材料及び前記第１の識別番号から秘密一変数鍵多項式及び秘密補正関数を計算する計算ユニットであって、前記第１の秘密補正関数は、非多項式整数値単調関数である、計算ユニットと、
を備え、
前記デバイスマネージャは、さらに、生成された前記秘密一変数鍵多項式及び前記秘密補正関数を、前記第１のデバイスにおいて電子的に記憶させるよう構成されている、システム。
【請求項１３】
前記ルート鍵材料は、二変数多項式の第１の秘密集合、及び、簡約整数の第２の秘密集合を含み、前記第１の秘密集合内の各二変数多項式には、前記第２の秘密集合の簡約整数が関連付けられており、前記鍵材料取得部は、さらに、公開グローバル簡約整数を取得するよう構成されており、
前記計算ユニットは、前記第１のデバイスについて、
前記第１の秘密集合の各特定の多項式について、前記第１の識別番号を該特定の多項式に代入し、該特定の多項式に関連付けられている前記簡約整数を法として簡約することによって、一変数多項式の集合を取得し、
前記一変数多項式の集合を合計する
ことによって、前記第１の秘密集合及び前記第２の秘密集合から、前記秘密一変数鍵多項式を計算するよう構成されている、請求項１２に記載のシステム。
【請求項１４】
前記計算ユニットは、関数
【数３】
2017519457.tif 000067
を近似することによって前記秘密補正関数ΛＡ（Ｘ）を計算するよう構成されており、ここで、
【数４】
2017519457.tif 000068
であり、ｆｉ（，）は、前記二変数多項式の第１の秘密集合を表し、ｐｉは、簡約モジュラスの第２の秘密集合を表す、請求項１３に記載のシステム。
【請求項１５】
第２のデバイスとともに共有鍵を決定するための方法であって、
第１の識別番号と、非多項式整数値単調関数である第１の秘密補正関数と、第１の秘密一変数鍵多項式と、を記憶するステップと、
前記第２のデバイスの第２の識別番号を取得するステップと、
前記第２の識別番号を前記第１の秘密一変数鍵多項式に代入して、第１の中間鍵を取得するステップであって、前記第１の中間鍵は、第１の鍵集合を規定する、ステップと、
前記第２の識別番号を前記第１の秘密補正関数に代入して、第１の補正係数を取得するステップと、
前記第１の補正係数を用いて前記第１の中間鍵を修正して、第１の補正された鍵を取得するステップであって、前記第１の補正された鍵は、第２の鍵集合を規定し、前記第２の鍵集合は、前記第１の鍵集合よりも小さい、ステップと、
を含む、方法。
【請求項１６】
鍵を共有するようにデバイスを構成するための方法であって、
ルート鍵材料を電子的形態で取得するステップと、
前記デバイスの第１の識別番号を電子的形態で取得するステップと、
前記デバイスについて、前記ルート鍵材料及び前記第１の識別番号から、秘密一変数鍵多項式及び第１の秘密補正関数を計算するステップであって、前記第１の秘密補正関数は、非多項式整数値単調関数である、ステップと、
生成された前記秘密一変数鍵多項式及び前記第１の秘密補正関数を、前記デバイスにおいて電子的に記憶させるステップと、
を含む、方法。
【請求項１７】
コンピュータ上で実行されたときにプロセッサに請求項１５又は１６に記載の方法を実行させる命令を含むコンピュータプログラム。
【請求項１８】
請求項１７に記載のコンピュータプログラムを記憶しているコンピュータ読み取り可能な記憶媒体。
【国際調査報告】
2017519457.tif 000069
2017519457.tif 000070
2017519457.tif 000071