(57)【特許請求の範囲】
【請求項１】
第２のネットワークデバイスと共有される鍵長の共有暗号鍵を、多項式及び前記第２のネットワークデバイスの識別番号から決定する第１のネットワークデバイスであって、前記多項式は複数の項を有し、前記複数の項の各項は異なる次数及び係数と関連付けられ、前記第１のネットワークデバイスは、
前記第１のネットワークデバイスによる前記多項式の評価において使用される前記多項式の表現を含む前記第１のネットワークデバイスのローカル鍵材料を保存するための電子ストレージであって、前記第１のネットワークデバイスは限られた利用可能な計算リソースを有する電子ストレージと、
前記第１のネットワークデバイスとは異なる前記第２のネットワークデバイスの前記識別番号を取得するための受信機と、
リダクションアルゴリズムに従って前記多項式を前記識別番号に適用し、前記リダクションアルゴリズムから前記共有暗号鍵を導出するためのプロセッサと
を含み、
前記リダクションアルゴリズムは、複数の繰り返しを実行することを含み、前記複数の繰り返しの各繰り返しは、前記多項式の前記複数の項にわたり実行され、前記多項式の特定の項に関連付けられた少なくとも１つの繰り返しは、
前記識別番号と、前記多項式の前記表現から取得された前記特定の項の係数の最下部との間の第１の乗算であって、前記係数の前記最下部は、前記特定の項の前記係数の鍵長の最下位ビットによって形成される、第１の乗算と、
前記識別番号と、前記多項式の前記表現から取得された前記特定の項の前記係数の更なる部分との間の第２の乗算であって、前記係数の前記更なる部分は、前記特定の項の前記係数の前記鍵長の最下位ビットとは異なるビットによって形成され、前記更なる部分及び前記最下部は、合わせて、前記多項式の前記特定の項の前記係数より厳密に少ないビットを形成し、前記更なる部分は前記特定の項の係数の最上部である、第２の乗算とを含み、
前記更なる部分のサイズは前記特定の項の次数と共に増加し、したがって、前記更なる部分の前記サイズはリダクション結果の影響が増加する場合に増加し、前記更なる部分の前記サイズは前記リダクション結果の前記影響が減少する場合に減少し、前記更なる部分の前記増加及び前記減少の結果として、前記第１のネットワークデバイスによって利用される計算リソースに低減がある、第１のネットワークデバイス。
【請求項２】
公開モジュラスが２のべき乗＋オフセットであり、前記べき乗の指数は鍵長の倍数であり、前記オフセットの絶対値は２の鍵長乗未満であり、前記多項式の各係数は前記公開モジュラス未満である、請求項１に記載の第１のネットワークデバイス。
【請求項３】
鍵モジュラスが２の鍵長乗に等しく、前記識別番号は前記鍵モジュラス未満である、請求項１又は２に記載の第１のネットワークデバイス。
【請求項４】
前記多項式の項にわたる前記繰り返しの各繰り返しが、前記多項式の項のうちの特定の項と関連付けられ、各繰り返しは、
前記識別番号と、前記多項式の前記表現から取得された前記特定の項の係数の最下部との間の第１の乗算であって、前記係数の前記最下部は、前記特定の項の前記係数の鍵長の最下位ビットによって形成される、第１の乗算と、
前記識別番号と、前記多項式の前記表現から取得された前記特定の項の前記係数の更なる部分との間の第２の乗算であって、前記係数の前記更なる部分は、前記特定の項の前記係数の前記鍵長の最下位ビットとは異なるビットによって形成される、第２の乗算とを含む、請求項１乃至３のいずれか一項に記載の第１のネットワークデバイス。
【請求項５】
前記特定の項の前記係数の前記更なる部分は、前記特定の項の前記係数の最上部であり、前記係数の前記最上部は、前記特定の項の前記係数の複数の最上位ビットによって形成される、請求項４に記載の第１のネットワークデバイス。
【請求項６】
前記更なる部分のビット数は、鍵長の倍数である、請求項４又は５に記載の第１のネットワークデバイス。
【請求項７】
前記更なる部分のビット数は、前記特定の項の次数の減少と共に減少する、請求項４乃至６のいずれか一項に記載の第１のネットワークデバイス。
【請求項８】
前記更なる部分のビット数は、鍵長の倍数であり、前記倍数は、前記特定の項の次数＋エラー制御数に等しい、請求項７に記載の第１のネットワークデバイス。
【請求項９】
前記エラー制御数は１又は２に等しい、請求項８に記載の第１のネットワークデバイス。
【請求項１０】
前記多項式の前記係数は予備処理された形式で表現され、前記予備処理された形式において、前記特定の項の前記係数の前記最下部及び前記更なる部分は互いに隣接して単一のビット列によって表現され、前記リダクションアルゴリズムは、前記第１及び第２の乗算を合わせて実行するための前記識別番号と前記単一のビット列との間の単一の乗算を含む、請求項１乃至９のいずれか一項に記載の第１のネットワークデバイス。
【請求項１１】
第１のネットワークデバイスと第２のネットワークデバイスとの間で共有される鍵長の共有暗号鍵を、多項式及び前記第２のネットワークデバイスの識別番号から決定するための方法であって、前記多項式は複数の項を有し、前記複数の項の各項は異なる次数及び係数と関連付けられ、前記方法は、
前記第１のネットワークデバイスによる前記多項式の評価において使用される多項式の表現を含む、前記第１のネットワークデバイスのローカル鍵材料を電子形式で保存するステップであって、前記第１のネットワークデバイスは限られた利用可能な計算リソースを有するステップと、
前記第１のネットワークデバイスとは異なる前記第２のネットワークデバイスの識別番号を取得するステップと、
リダクションアルゴリズムに従って前記多項式を前記識別番号に適用するステップと、
前記リダクションアルゴリズムから前記共有暗号鍵を導出するステップと
を含み、
前記リダクションアルゴリズムは、前記多項式の項にわたる繰り返しを含み、前記多項式の特定の項に関連付けられた少なくとも１つの繰り返しは、
前記識別番号と、前記多項式の前記表現から取得された前記特定の項の係数の最下部との間の第１の乗算であって、前記係数の前記最下部は、前記特定の項の前記係数の鍵長の最下位ビットによって形成される、第１の乗算と、
前記識別番号と、前記多項式の前記表現から取得された前記特定の項の前記係数の更なる部分との間の第２の乗算であって、前記係数の前記更なる部分は、前記特定の項の前記係数の前記鍵長の最下位ビットとは異なるビットによって形成され、前記更なる部分及び前記最下部は、合わせて、前記多項式の前記特定の項の前記係数より厳密に少ないビットを形成し、前記更なる部分は前記特定の項の係数の最上部である、第２の乗算とを含み、
前記更なる部分のサイズは前記特定の項の次数と共に増加し、したがって、前記更なる部分の前記サイズはリダクション結果の影響が増加する場合に増加し、前記更なる部分の前記サイズは前記リダクション結果の前記影響が減少する場合に減少し、前記更なる部分の前記増加及び前記減少の結果として、前記第１のネットワークデバイスによって利用される計算リソースに低減がある、方法。
【請求項１２】
非一時的コンピュータ可読媒体に保存された１以上の実行可能な命令を有し、プロセッサによって実行されるときに、前記プロセッサに、第１のネットワークデバイスと第２のネットワークデバイスとの間で共有される鍵長の共有暗号鍵を、多項式及び前記第２のネットワークデバイスの識別番号から決定するための方法を実行させる当該非一時的コンピュータ可読媒体であって、前記多項式は複数の項を有し、前記複数の項の各項は異なる次数及び係数と関連付けられ、前記方法は、
前記第１のネットワークデバイスによる前記多項式の評価において使用される多項式の表現を含む、前記第１のネットワークデバイスのローカル鍵材料を電子形式で保存するステップであって、前記第１のネットワークデバイスは限られた利用可能な計算リソースを有するステップと、
前記第１のネットワークデバイスとは異なる前記第２のネットワークデバイスの識別番号を取得するステップと、
リダクションアルゴリズムに従って前記多項式を前記識別番号に適用するステップと、
前記リダクションアルゴリズムから前記共有暗号鍵を導出するステップと
を含み、
前記リダクションアルゴリズムは、前記多項式の項にわたる繰り返しを含み、前記多項式の特定の項に関連付けられた少なくとも１つの繰り返しは、
前記識別番号と、前記多項式の前記表現から取得された前記特定の項の係数の最下部との間の第１の乗算であって、前記係数の前記最下部は、前記特定の項の前記係数の鍵長の最下位ビットによって形成される、第１の乗算と、
前記識別番号と、前記多項式の前記表現から取得された前記特定の項の前記係数の更なる部分との間の第２の乗算であって、前記係数の前記更なる部分は、前記特定の項の前記係数の前記鍵長の最下位ビットとは異なるビットによって形成され、前記更なる部分及び前記最下部は、合わせて、前記多項式の前記特定の項の前記係数より厳密に少ないビットを形成し、前記更なる部分は前記特定の項の係数の最上部である、第２の乗算とを含み、
前記更なる部分のサイズは前記特定の項の次数と共に増加し、したがって、前記更なる部分の前記サイズはリダクション結果の影響が増加する場合に増加し、前記更なる部分の前記サイズは前記リダクション結果の前記影響が減少する場合に減少し、前記更なる部分の前記増加及び前記減少の結果として、前記第１のネットワークデバイスによって利用される計算リソースに低減がある、非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、第２のネットワークデバイスと共有される鍵長ビットの共有暗号鍵を、多項式及び第２のネットワークデバイスの識別番号から決定するよう構成された第１のネットワークデバイスに関する。第１のネットワークデバイスは、多項式を識別番号に適用するよう構成された多項式操作デバイスを含む。
【背景技術】
【０００２】
複数のネットワークデバイスを含む通信ネットワークにおいて、かかるネットワークデバイスのペア間に安全な接続を確立することは課題である。これを達成する方法の一つが、C. Blundo, A. De Santis, A. Herzberg, S. Kutten, U. Vaccaro and M. Yung, “Perfectly-Secure Key distribution for Dynamic Conferences”, Springer Lecture Notes in Mathematics, Vol. 740, pp. 471-486, 1993（「Ｂｌｕｎｄｏ」と呼ぶ）に開示されている。
【０００３】
この方法は、ｐ個の元を含む有限体Ｆ内の係数を有する対称二変数多項式ｆ（ｘ，ｙ）（ｐは素数又は素数のべき乗）を生成する中央権限（ネットワーク権限又は信頼できる第３者機関（Trusted Third Party; ＴＴＰ）とも呼ばれる）を仮定する。各デバイスはＦ内の識別番号を有し、ＴＴＰからローカル鍵材料を受け取る。識別子ηのデバイスのローカル鍵材料は、多項式ｆ（η，ｙ）の係数である。
【０００４】
デバイスηがデバイスη’と通信したい場合、デバイスηは鍵材料を用いて鍵Ｋ（η，η’）＝ｆ（η，η’）を生成する。ｆは対称式なので、同じ鍵が生成される。
【０００５】
本願と同じ出願人による特許出願“KEY SHARING DEVICE AND SYSTEM FOR CONFIGURATION THEREOF”には、改良された、鍵共有のためにネットワークデバイスを構成する方法が与えられている。（参照により本明細書に組み込まれる）この特許出願の出願番号は６１／７４０４８８、出願日は２０１２年１２月２１日であり、以下、「構成出願」と呼ぶ。
【０００６】
複数のネットワークデバイスの集合において、各々が固有の識別番号及びローカル鍵材料を有する。ローカル材料は、多くの場合は二変数多項式である秘密多項式から導出される。「構成出願」では、特定の攻撃に対してより高い耐性を得るために秘密多項式がどのように選択され得るかが説明されている。かかる攻撃の具体例は、複数のネットワークデバイスが秘密多項式を復元しようとする共謀攻撃である。
【０００７】
ネットワークデバイスは共有鍵を確立するためにいくらかの作業をしなければならない。例えば、それらのために秘密二変数多項式から得られた一変数多項式をそれぞれ受け取ったネットワークデバイスのペアを考える。２つのネットワークデバイスが両者間の暗号鍵を確立することが必要な場合、両者は他方のデバイスの識別番号を取得し、それを各自のローカル鍵材料と組み合わせて共有鍵を取得する。
【０００８】
共有鍵を導出する方法の１つは、各ネットワークデバイスが他のネットワークデバイスの識別番号を自身の一変数多項式に代入し、代入の結果モジュロ公開モジュラスによりリダクションし、そしてモジュロ鍵モジュラスによりリダクションすることである。鍵モジュラスは２のべき乗であり、指数は少なくとも鍵長である。
【０００９】
したがって、共有鍵の取得のための最初のステップにおいて、ネットワークデバイスは多項式評価を実行し、その後特定の時点で２つのリダクションを実行しなければならない可能性がある。
【発明の概要】
【発明が解決しようとする課題】
【００１０】
共有鍵を取得するのにより少ないリソース、例えば時間及び／又はストレージリソースを要する、共有暗号鍵を決定するよう構成された改良ネットワークデバイスを有することは有益であろう。
【課題を解決するための手段】
【００１１】
第２のネットワークデバイスと共有される鍵長（ｂ）ビットの共有暗号鍵を、多項式及び第２のネットワークデバイスの識別番号から決定するよう構成された第１のネットワークデバイスが提供される。多項式は複数の項を有し、各項が異なる次数及び係数に関連付けられる。第１のネットワークデバイスは電子ストレージ、受信機、多項式操作デバイス、及び鍵導出デバイスを含む。
【００１２】
電子ストレージは、第１のネットワークデバイスのローカル鍵材料を保存するよう構成され、ローカル鍵材料は、第１のネットワークデバイスによって後に評価される多項式の表現を含む。
【００１３】
受信機は、第１のネットワークデバイスとは異なる第２のネットワークデバイスの識別番号を取得するよう構成される。
【００１４】
多項式操作デバイスは、リダクションアルゴリズムに従って多項式を識別番号に適用するよう構成される。
【００１５】
鍵導出デバイスは、リダクション結果から共有鍵を導出するよう構成される。
【００１６】
リダクションアルゴリズムは、多項式の項にわたる繰り返しを含む。少なくとも１つの繰り返しは、第１の乗算及び第２の乗算を含む。当該少なくとも１つの繰り返しは、多項式の特定の項に関連付けられる。
【００１７】
第１の乗算は、識別番号と、多項式の表現から取得された特定の項の係数の最下部との間であり、係数の最下部は、特定の項の係数の鍵長最下位ビットによって形成される。
【００１８】
第２の乗算は、識別番号と、多項式の表現から取得された特定の項の係数の更なる部分との間であり、係数の更なる部分は、特定の項の係数の鍵長最下位ビットとは異なるビットによって形成され、更なる部分及び最下部は、合わせて、多項式の特定の項の係数より厳密に少ないビットを形成する。
【００１９】
第１及び第２のネットワークデバイスはモバイルデバイス、例えば携帯電話、コンピュータ等であり得る。特定の好適な実施形態では、ネットワークデバイスは照明デバイス、例えばランプである。共有鍵は、照明の状態に関する情報を通信するために、及び／又は、照明に例えば点灯若しくは消灯等の動作コマンドを伝送するために使用され得る。通信は共有鍵を用いて暗号化され得る。
【００２０】
安全な通信を要する、大規模な可能性がある照明ネットワークにおける鍵の確立に加えて、本発明は、デバイスペア間の安全な通信を要するあらゆる種類の通信ネットワークに適用され得る。
【００２１】
ネットワークデバイスは、電子通信手段及び計算手段を備える電子デバイスであり得る。ネットワークデバイスは、例えばＲＦＩＤタグ形式で任意の非電子物体に取り付けられ得る。例えば、当該方法は「モノのインターネット」に適し得る。例えば、物体、特に低コストの物体は、物体が通信するための、例えば識別されるための無線タグを備えてもよい。かかる物体は、コンピュータ等の電子手段を介してインベントリに入れられてもよい。盗難された又は故障したアイテムを容易に追跡及び発見することができる。特に有望なアプリケーションの１つは、共有鍵を決定するよう構成されたネットワークデバイスを備える照明である。かかる照明は安全に自身の状態を通信し、かかる照明は安全に制御、例えば点灯／消灯され得る。ネットワークデバイスは、それぞれが識別番号を送受信するための及び電子ステータスメッセージを送信するための電子通信機を含み、また、それぞれが本発明に係る方法に従い共有鍵を導出するよう構成された集積回路を含む複数のネットワークデバイスの１つであり得る。
【００２２】
一実施形態では、本発明の方法はＩＰＳｅｃ、（Ｄ）ＴＬＳ、ＨＩＰ、又はＺｉｇＢｅｅ等のセキュリティプロトコルのための暗号化方法として使用され得る。特に、これらのプロトコルのうちの１つを使用するデバイスは識別子に関連付けられる。第１のデバイスと通信しようとしている第２のデバイスは、その識別子に基づき、第１のデバイスと共通のペアワイズ鍵を生成でき、このペアワイズ鍵（又は例えば鍵導出関数によってこれから導出された鍵）は、事前共有鍵に基づく上記プロトコルの一方法に使用され得る。特に、本発明において規定されるデバイスの識別子は、ＺｉｇＢｅｅショートアドレス、ＩＰアドレス、又はホストＩＤ等のネットワークアドレスであり得る。また、識別子はデバイスのＩＥＥＥアドレスでもよいし、又はデバイスが製造中にＩＥＥＥアドレスに関連付けられたローカル鍵材料を受信するようデバイスに関連付けられたプロプリエタリビット列でもよい。
【００２３】
共有鍵の導出は多数のアプリケーションに利用され得る。典型的には、共有鍵は暗号対称鍵である。対称鍵は機密性のために使用されてもよく、例えば、送信メッセージ又は受信メッセージが対称鍵によって暗号化されてもよい。両方の識別番号、及び２つのローカル鍵材料のうちの１つを利用できる（又はルート鍵材料を利用できる）デバイスのみが通信を解読できる。対称鍵は認証のために使用されてもよく、例えば、送信又は受信メッセージが対称鍵を用いて認証されてもよい。このようにすることで、メッセージの発信源を確認できる。両方の識別番号、及び２つのローカル鍵材料のうちの１つを利用できる（又はルート鍵材料を利用できる）デバイスのみが認証メッセージを作成できる。
【００２４】
ネットワークデバイスは、ネットワーク権限、例えばＴＴＰによる鍵共有のために構成されてもよい。ネットワーク権限は必要な材料、例えばルート鍵材料を他のソースから取得してもよいが、自らこれを生成してもよい。例えば、公開モジュラスが生成され得る。ネットワーク権限が「構成出願」に記載される方法のうちの１つを使用する場合、公開モジュラスがシステムパラメータであって受信されたとしても、秘密モジュラスは生成され得る。
【００２５】
一実施形態では、公開モジュラスＮは２（ａ＋２）ｂ−１≦Ｎ≦２（ａ＋２）ｂ−１を満たすよう選択され、ここで、ａ（又はα）はローカル鍵材料に対応する多項式の次数を表し、ｂは鍵長を表す。例えば、一実施形態ではＮ＝２（ａ＋２）ｂ−１である。後者の選択の場合のモジュロ演算は特に効率的に実行され得る。固定の公開モジュラスを有することは、それがネットワークデバイスに伝送される必要がなく、例えばネットワークデバイスのシステムソフトウェアに組み込まれ得るという利点を有する。
【００２６】
鍵長（ｂ）ビットは、セキュリティ要件及び利用可能なリソースに基づき選択され得る。通常のセキュリティのためには１２８ビットで十分であり、高いセキュリティのためには２５６以上のビットが可能であり、低いセキュリティのためには８０、場合によっては６４が可能である。ネットワークデバイスの識別番号は、２の鍵長乗未満である。
【００２７】
ネットワークデバイスごとに、ローカル鍵材料に対応する多項式がネットワーク権限によって生成された。典型的には、多項式は一変数であり、二変数ルート多項式から導出される。ルート多項式が例えばｋの変数を有する多変数の場合、ネットワークデバイスは、ｋのデバイス間で共有される鍵を導出するためにｋ−１の異なる識別番号を受け取らなければならない。受け取られたｋ−１の異なる識別番号は、ネットワークデバイス内に表される多項式の変数に代入される。ｋ＝２の場合は２つのデバイス間の鍵共有に相当する。
【００２８】
興味深いことに、多項式の評価のためのネットワークデバイス内の多項式の表現には損失があってもよく（lossy）、すなわち、表現される情報が少なすぎるために表現から多項式が復元できなくてもよい。例えば、多項式の少なくとも１つの係数に関して、ビット群、例えば「中央のワード」、すなわち最上位及び最下位ではないワードが除外、すなわち表現内に含められなくてもよい。例えば、多項式の定数項については、最下位ワードのみを記録するだけでよい。ワードの長さは鍵長ビットである。例えば、ローカル多項式の生成後、ネットワーク権限は以下のステップを実行し得る。第２の乗算に使用される更なる部分、例えば最上部、及び第１の乗算に使用される最下部を係数ごとに選択する。少なくとも１つの係数に関して、更なる部分及び最下部は、対応する項の係数よりも厳密に少ないビットを有する。更なる部分及び最下部は係数ごとにローカル鍵材料内に含められる。好ましくは、係数の中央部、すなわち最上部と最下部との間はローカル鍵材料内に含まれない。ローカル鍵材料はネットワークデバイスに保存される。
【００２９】
第２のネットワークデバイスの識別番号は電子及びデジタル形式で、例えばバイナリビット列として受信され得る。第２のネットワークデバイスの識別番号は、第１のネットワークデバイスの識別番号とは異なる。
【００３０】
多項式操作デバイスは、リダクションアルゴリズムに従って多項式を識別番号に適用するよう構成される。リダクションアルゴリズムは、第２のネットワークデバイスの識別番号を多項式に代入し、代入の結果をモジュロ公開モジュラス及びモジュロ鍵モジュラスによってリダクションした結果に対応するリダクション結果を取得するよう構成される。ここで、鍵モジュラスは２のべき乗であり、指数は少なくとも鍵長である。
【００３１】
一実施形態では、公開モジュラスは２のべき乗（２（ａ＋２）ｂ）＋オフセットであり、指数は鍵長の倍数であり、オフセットの絶対値は２の鍵長乗未満であり、多項式の各係数は公開モジュラス未満である。特に好適には、−１のオフセットである。この場合、（後述されるように）モジュラＮ演算は加算にリダクションされる。
【００３２】
興味深いことに、一実施形態では、各繰り返しは第１及び第２の乗算を有する。第１の乗算は、受信された識別番号と、その項の係数の最下位ｂビットワードとの間であり、すなわち、第１の乗算のサイズは一定である。第２の乗算は、受信された識別番号と、係数の更なる部分との間である。更なる部分のサイズは項の次数と共に増加し、好ましくは単調増加し、より好ましくは狭義単調増加する。例えば、サイズは、次数＋エラー制御項に等しいワード数であり得る。したがって、第２の乗算のサイズは次数と共に減少する。更なる部分のサイズが次数と共に狭義単調増加することにより、サイズはリダクション結果の影響が大きい場合にのみ大きく、影響が小さい場合には小さくなり、結果として、計算リソースの大幅な削減が達成される。
【００３３】
発明者は、最終結果、すなわちリダクション結果に寄与するのは特に係数の最上部及び最下部であるという洞察を得た。係数において、リダクション結果に影響を及ばさない又はまれにしか及ぼさないために不要な中央のワードによって、これらの２つの部分は分離される。一実施形態では、最下部及び更なる部分、すなわち最上部は結合される。例えば、多項式の係数のうちの少なくとも１つは予備処理された形式で表現され、予備処理された形式において、特定の項の係数の最下部及び更なる部分は互いに隣接して単一のビット列によって表現され、リダクションアルゴリズムは、第１及び第２の乗算を合わせて実行するための識別番号と単一のビット列との間の単一の乗算を含む。
【００３４】
係数は、２の鍵長の倍数乗を掛け、その後リダクションモジュロ公開モジュラスを行うことにより、予備処理された形式で効率的に取得され得る。
【００３５】
各々が識別番号と識別番号に対して生成されたローカル鍵材料とを有する複数のネットワークデバイスのうちの任意の２つのネットワークデバイスのペアが、少ないリソースで共有鍵の交渉をすることができる。２つのネットワークデバイスは秘密に保たれる必要がない各自の識別番号を交換して、多項式計算を実行するだけでよい。要求される計算の種類は大きな計算リソースを要さず、これは、この方法が低コスト高ボリューム型のアプリケーションに適することを意味する。
【００３６】
ローカル鍵材料が対称多項式から取得された場合、これは、ネットワークデバイスのペアの両方のネットワークデバイスが同じ共有鍵を取得することを可能にする。ローカル鍵材料に難読化数が加えられた場合、ローカル鍵材料とルート鍵材料との間の関係が乱される。
【００３７】
一実施形態では、対称二変数多項式はネットワーク権限によって生成される。例えば、対称二変数多項式はランダムな対称二変数多項式であり得る。例えば、乱数生成部を使用して係数を乱数として選択してもよい。
【００３８】
一実施形態では、共有鍵の複数のＬＳＢが除去され、除去されるビット数は、例えば１、２以上、４以上、８以上、１６以上、３２以上、又は６４以上であり得る。より多くのＬＳＢを除去することにより、異なる鍵を有する可能性は低くなり、特に、任意の所望の閾値まで下げられ得る。共有鍵が等しくなる可能性は数学的関係に基づいて計算されてもよいし、実験により決定されてもよい。
【００３９】
多項式操作デバイスは、コンピュータ、例えば集積回路上で動作するソフトウェア内に実装され得る。多項式操作デバイスは、非常に効率的にハードウェア内に実装され得る。組み合わせも可能である。例えば、多項式操作デバイスは多項式を表現する係数のアレイを操作することによって実現されてもよい。
【００４０】
生成されたローカル鍵材料をネットワークデバイスにおいて電子保存することは、生成されたローカル鍵材料を例えば有線接続又は無線接続を用いてネットワークデバイスに電子的に送信して、生成されたローカル鍵材料をネットワークデバイスに保存することによって実行されてもよい。これは製造中又はインストール中、例えば、ネットワークデバイス内の集積回路のテスト中に実行されてもよい。テスト機器はネットワーク権限を含んでもよいし、又はネットワーク権限に接続されてもよい。また、これは、デバイスが動作ネットワークに参加成功後に起こってもよい（すなわち、ネットワークアクセス又はブートストラッピング後）。特に、ローカル鍵材料は動作ネットワークパラメータの一部として配信されてもよい。
【００４１】
第１のネットワークデバイスのローカル鍵材料を電子形式で取得することは、ネットワークデバイスを鍵共有のために構成するためのシステム、例えばネットワーク権限デバイスからローカル鍵材料を電子的に受け取ることによって実行され得る。また、ローカル鍵材料の取得は、ローカルストレージ、例えばフラッシュメモリ等のメモリからローカル鍵材料を引き出すことによって実行され得る。
【００４２】
第２のネットワークデバイスの識別番号を取得することは、識別番号を第２のネットワークデバイスから受信することによって、例えば第２のネットワークデバイスから直接又は無線で受信することによって実行され得る。
【００４３】
公開モジュラス及び鍵モジュラスはネットワークデバイス内に保存され得る。また、これらはネットワーク権限から受信されてもよい。また、これらはネットワークデバイスのソフトウェア内に暗示されてもよい。例えば、一実施形態では鍵モジュラスは２のべき乗である。リダクションモジュロかかる鍵モジュラスは、鍵長ＬＳＢ以外の全てのビットを破棄することによって実行され得る。まず、代入の結果にリダクションモジュロ公開モジュラスが行われ、その後、更にリダクションモジュロ鍵モジュラスされる。
【００４４】
必須ではないが、公開モジュラス及び鍵モジュラスは互いに素でもよい。これは、公開モジュラスを奇数とし、鍵モジュラスを２のべき乗とすることによって達成され得る。いずれにせよ、リダクションモジュロ公開モジュラスが省略され得るので、鍵モジュラスが公開モジュラスを割ることは避けられる。
【００４５】
一実施形態では、第１のネットワークデバイスはそのデバイスの識別番号に関連付けられた複数の（ｎ）ローカル鍵材料を受信する。この第１のデバイスと第２のデバイスとの間で生成される鍵は、第２のデバイスの識別番号を用いて複数の（ｎ）第１のデバイスのローカル鍵材料のそれぞれを評価することによって得られる複数の（ｎ）鍵の組み合わせ（例えば、連結）として得られる。これは方法の並列使用を可能にする。
【００４６】
ルート鍵材料として非対称二変数多項式を使用すること、すなわちｆ（ｘ，ｙ）！＝ｆ（ｙ，ｘ）は、第１のグループのデバイス及び第２のグループのデバイスが、それぞれ、デバイス上に保存されるローカル鍵材料ＫＭであるＫＭ（Ｉｄ，ｙ）及びＫＭ（ｘ，ｉＤ）を受信する等、２つのデバイスグループの作成を可能にする。同じグループに属する２つのデバイスは共通鍵を生成することはできないが、異なるグループ内のデバイスは可能である。Ｂｌｕｎｄｏも参照されたい。
【００４７】
ネットワークデバイスの識別番号は、デバイスに関連付けられた情報を含むビット列の一方向関数として計算され得る。一方向関数はＳＨＡ２又はＳＨＡ３等の暗号ハッシュ関数であり得る。一方向関数の結果は、識別子のサイズに適合するよう切り捨てられてもよい。あるいは、一方向関数のサイズは最大識別子サイズより小さい。
【００４８】
本発明の一側面は、鍵共有のためにネットワークデバイスを構成するためのシステムと、少なくとも２つの第１のネットワークデバイスとを含む鍵共有システムに関する。ネットワークデバイスを構成するためのシステムは、多変数ルート多項式、例えば二変数多項式からローカル多項式、例えば一変数多項式を導出する。ローカル多項式から、多項式の表現が導出される。単純な実施形態では、多項式の表現は、例えば項の次数によってソートされた多項式の係数のデジタルリストである。しかし、高度な実施形態では、表現において、係数の一部が除外される。
【００４９】
一実施形態では、鍵共有のためにネットワークデバイスを構成するためのシステムは、公開モジュラス、及び整数係数を有する対称多変数多項式を電子形式で取得するための鍵材料取得部と、少なくとも２つの第１のネットワークデバイスのうちのネットワークデバイスのためのローカル鍵材料を生成するための生成部であって、ネットワークデバイスの識別番号を電子形式で取得するための、及び生成されたローカル鍵材料をネットワークデバイスに電子保存するためのネットワークデバイスマネージャーと、識別番号を多変数多項式に代入することにより、多変数多項式から多項式を決定するための多項式操作デバイスとを含む、生成部とを含む。
【００５０】
また、ネットワークデバイスを構成するためのシステムは予備処理を実行し、例えば一実施形態では、ネットワークデバイスを構成するためのシステムの生成部は、決定された多項式の係数に２の鍵長の倍数乗を掛け、リダクションモジュロ公開モジュラスを行うことにより、１つ以上の係数を予備処理された形式で取得するよう構成される。
【００５１】
この予備処理はネットワークデバイスによって、例えば多項式操作デバイスによって行われてもよい。
【００５２】
一実施形態では、鍵共有のためにネットワークデバイスを構成するためのシステムは、
秘密モジュラス、公開モジュラス、及び整数係数を有する対称二変数多項式を電子形式で取得するための鍵材料取得部であって、公開モジュラスのバイナリ表現と秘密モジュラスのバイナリ表現とは少なくとも鍵長（ｂ）連続ビットにおいて同じである、鍵材料取得部と、
少なくとも２つの第１のネットワークデバイスのうちのネットワークデバイスのためのローカル鍵材料を生成するための生成部であって
ネットワークデバイスの識別番号（Ａ）を電子形式で取得するための、及び生成されたローカル鍵材料をネットワークデバイスに電子保存するためのネットワークデバイスマネージャーと、
識別番号を二変数多項式に代入し、代入の結果をモジュロ秘密モジュラスによってリダクションすることにより二変数多項式から一変数多項式を決定するための多項式操作デバイスとを含む、生成部とを含む。
【００５３】
本発明の一側面は、ネットワークデバイスを構成するための当該システムに関する。
【００５４】
鍵導出デバイスは、鍵モジュラスを法としたリダクションモジュロの結果から共有鍵を導出するよう構成されたコンピュータとして、例えば集積回路、実行ソフトウェア、ハードウェア、又はこれらの組み合わせ等として実装され得る。
【００５５】
鍵モジュラスを法としたリダクションモジュロの結果から共有鍵を導出するステップは、鍵導出関数、例えば、OMA DRM Specification of the Open Mobile Alliance (OMA-TS-DRM-DRM-V2_0_2-20080723-A, section 7.1.2 KDF)に規定される関数ＫＤＦ等の関数の適用を含み得る。共有鍵の導出は、１つ以上の最下位ビットを（鍵導出関数を適用する前に）破棄することを含み得る。共有鍵の導出は、（鍵導出関数を適用する前に）整数を加算、減算、又は連結させることを含み得る。
【００５６】
それぞれが識別番号及び対応するローカル鍵材料を有する複数のネットワークデバイスは、合わせて、ネットワークデバイスのペア間の安全な通信、例えば機密及び／又は認証通信のために構成された通信ネットワークを形成してもよい。
【００５７】
鍵生成はＩＤベースであり、デバイスペア間でペアワイズ鍵を生成することを可能にする。第１のデバイスＡは、ローカル鍵材料及び識別番号から鍵を導出するアルゴリズムに依拠し得る。
【００５８】
Song Guo、Victor Leung、及びZhuzhong Qianによる論文“A Permutation-Based Multi-Polynomial Scheme for Pairwise Key Establishment in Sensor Networks”を参照する。
【００５９】
本発明の一側面は、第２のネットワークデバイスと共有される鍵長（ｂ）ビットの共有暗号鍵を、多項式及び第２のネットワークデバイスの識別番号から決定する方法に関する。
【００６０】
本発明に係る方法は、コンピュータ実行方法としてコンピュータ上に、専用ハードウェアとして、又は両者の組み合わせとして実装されてもよい。本発明に係る方法のための実行可能コードがコンピュータプログラム製品上に記憶されてもよい。コンピュータプログラム製品の例は、記憶装置、光学記憶装置、集積回路、サーバ、オンラインソフトウェア等を含む。好ましくは、コンピュータプログラム製品は、当該プログラム製品がコンピュータ上で実行されるとき本発明に係る方法を実行するためのコンピュータ読み取り可能媒体上に記憶される非一時的プログラムコード手段を含む。
【００６１】
好ましい一実施形態では、コンピュータプログラムは、コンピュータ上で実行されたとき、本発明に係る方法のステップを全て実行可能なコンピュータプログラムコード手段を含む。好ましくは、コンピュータプログラムはコンピュータ読み取り可能媒体に組み込まれる。
【００６２】
第２のネットワークデバイスと共有される鍵長（ｂ）ビットの共有暗号鍵を、多項式及び第２のネットワークデバイスの識別番号から決定するよう構成されたネットワークデバイスが提供される。リダクションアルゴリズムを使用して、第２のネットワークデバイスの識別番号において多項式が評価され、モジュロ公開モジュラス及びモジュロ鍵モジュラスによるリダクションが行われる。リダクションアルゴリズムは、多項式の項にわたる繰り返しを含む。多項式の特定の項に関連付けられた、繰り返しのうちの少なくとも１つは、第１及び第２の乗算を含む。第１の乗算は、識別番号と、多項式の表現から取得された特定の項の係数の最下部との間であり、係数の最下部は、特定の項の係数の鍵長最下位ビットによって形成される。第２の乗算は、識別番号と、多項式の表現から取得された特定の項の係数の更なる部分との間であり、係数の更なる部分は、特定の項の係数の鍵長最下位ビットとは異なるビットによって形成され、更なる部分及び最下部は、合わせて、多項式の特定の項の係数より厳密に少ないビットを形成する。
【図面の簡単な説明】
【００６３】
本発明の上記及び他の側面は、後述される実施形態を参照して説明され、明らかになるであろう。
【００６４】
【図１ａ−１ｂ】図１ａ及び図１ｂは、通信ネットワークを示す概略的なブロック図である。
【図２】図２は、共有鍵の生成を示す概略的なフローチャートである。
【図３】図３は、共有鍵の生成を示す概略的なシーケンス図である。
【図４ａ−４ｆ】図４ａ−図４ｆは、様々なリダクションアルゴリズムを表す。
【図５】図５は、共有鍵の生成を示す他の概略的なフローチャートである。
【００６５】
異なる図において同じ参照符号を有するアイテムは、同じ構造的特徴及び同じ機能を有する、又は同じ信号であることに留意されたい。かかるアイテムの機能及び／又は構造が既に説明されている場合、発明を実施するための形態においてそれらを繰り返し説明する必要はない。
【発明を実施するための形態】
【００６６】
本発明は多様な実施形態を取り得るが、図面及び本明細書では、１つ又は複数の特定の実施形態が詳細に図示及び記載される。本開示は本発明の原理の例示として考えられるべきであり、本発明を図示及び記載される特定の実施形態に限定するものではないことを理解されたい。
【００６７】
図１ａは、セットアップフェーズ中の通信ネットワーク１００を図示する概略的なブロック図である。図１ａはネットワーク権限１６０を示す。図１ａは、更に、複数のネットワークデバイスを示し、第１のネットワークデバイス１１０及び第２のネットワークデバイス１２０が示されている。
【００６８】
ネットワークデバイスは登録フェーズ及び使用フェーズを有する。登録フェーズでは、関与しているネットワークデバイスに識別番号及びローカル鍵材料が供給される。ローカル鍵材料はネットワーク権限１６０によって供給される。
【００６９】
ネットワーク権限１６０は、例えば電子サーバの形態で実装され、例えば製造中にデバイスに直接結合され得る。ネットワーク権限１６０は、例えばインターネットを介して後にローカル鍵材料を供給し得る。
【００７０】
使用フェーズ中、２つ（以上）のネットワークデバイスが他のネットワークデバイスの公開識別番号を要求し、それを各自のローカル鍵材料と組み合わせることにより、共有鍵を確立し得る。
【００７１】
「構成出願」は、ネットワーク権限１６０がローカル鍵材料をどのように導出し得るかの詳細な説明を提供する。一実施形態では、ネットワーク権限は、秘密モジュラス（ｐ１）、公開モジュラス（Ｎ）、及び整数係数を有する二変数多項式（ｆ１）を電子形式で取得するステップであって、公開モジュラスのバイナリ表現及び秘密モジュラスのバイナリ表現は、少なくとも鍵長（ｂ）の連続ビットにおいて同じである、ステップと、ネットワークデバイスのローカル鍵材料を生成するステップであって、ネットワークデバイスの識別番号（Ａ）を電子形式で取得するステップと、多項式操作デバイスを使用して、二変数多項式に識別番号を代入し、代入の結果にリダクションモジュロ秘密モジュラス（秘密モジュラスを法とする計算）を行うことにより二変数多項式から一変数多項式を決定するステップとを含む、ステップと、生成されたローカル鍵材料をネットワークデバイスに電子保存するステップとを含む方法を実行する。
【００７２】
言い換えれば、ネットワーク権限は二変数多項式から開始し、ネットワークデバイスの識別番号を代入することによりそれを一変数多項式に変換し得る。リダクション及び係数等を特定の方法で選ぶことで、このプロセスのセキュリティを向上させることができる。最終的に、特定のネットワークデバイスに保存される、当該ネットワークデバイスのための特定の一変数多項式が得られる。
【００７３】
他の実施形態では、ネットワークデバイスのためのローカル鍵材料を生成するステップは、難読化数を生成するステップと、多項式操作デバイスを使用して難読化数を一変数多項式の係数に加えて難読化された一変数多項式を得るステップとを含み、生成されたローカル鍵材料は難読化された一変数多項式を含む。
【００７４】
一変数多項式から共有鍵を生成するために、ネットワークデバイスは、他のネットワークデバイスの外部識別番号を取得し、他のネットワークデバイスにローカル識別番号を送信し、外部識別番号を難読化された一変数多項式モジュロ公開モジュラスに代入し、モジュロ鍵モジュラスによってリダクションし得る。公開モジュラス及び鍵モジュラスは登録フェーズ中に又は前に合わせて選択され、参加する全てのネットワークデバイスに関して同じである。鍵モジュラスは所望の鍵のサイズに依存し、典型的には２の鍵長乗である。リダクション結果モジュロ鍵モジュラスから、共有鍵が導出され得る。鍵の導出は、鍵のビット間のエントロピーを広げ及び／又は集約させるための鍵導出ステップ、例えば暗号ハッシュの適用を含み得る。
【００７５】
不都合なことに、二変数多項式の選択方法に起因して、共有鍵が完全に同一ではない可能性がある。これは、例えばアドホックネットワークの場合、一部のネットワークデバイスが直接通信できなくても問題がない可能性があり、同様に、低コスト又は低セキュリティアプリケーションの場合、ある程度の失敗率は許容可能であり得るため、許容され得る。等しい鍵を得る確率は、鍵等化プロセスを使用することによって高められ得る。多くの場合に又は常に同じ結果を与えるリダクションアルゴリズムをいくつか説明する。実際には、共有鍵の決定が低い確率で失敗し得るという事実に基づき、常に完全に同一な結果を与えないが、高確率で与えるアルゴリズムが使用され得ることが特に好適である。
【００７６】
ネットワーク権限は、２つ（二変数）より多くの変数、例えば３、４、又はそれ以上の変数を有する多変数多項式を使用し得ることに留意されたい。この場合、共有鍵を導出するのに、複数のネットワークノードが自身の識別番号を供給しなければならない。ネットワーク権限は非対称多項式を使用し得ることに留意されたい。この場合、ネットワークデバイスは複数のグループに分割され、各グループの少なくとも１つのメンバーが自身の識別番号を供給しなければ共有鍵を導出することはできない。
【００７７】
例えば、ネットワーク権限は、係数ＫＭＡｉ（ｉ＝０，．．．，α）を含む
【数１】
0006328152.tif 000002
の形式の鍵材料のセットをデバイスＡのために生成し得る。Ａは、
【数２】
0006328152.tif 000003
（Ｎ＝２（α＋２）ｂ−１）を実行することにより、識別子ηを有する他のデバイスＢとの共通鍵を生成することができる。この多項式の評価は、小さい組み込みプロセッサ上で効率的に実行されなければならない。パラメータ、ルート鍵材料、及びローカル鍵材料の選択方法の例については、「構成出願」の１７〜２５頁を特に参照されたい。
【００７８】
効率的な多項式評価法の１つは、いわゆるホーナー法であるが、この方法は更に著しく最適化され得る。多項式評価は、１２８ビットより大きいサイズを有する大きい数の係数を用いて実行される。したがって、共通鍵ＫＡＢの評価は、大きな数の中間記憶のためにあまり多くのメモリを要することなく行われなければならない。更に、多項式はモジュロＮ上で評価され、高コストの除算を行うことなく実施されるべきである。本発明は、組み込みマイクロプロセッサ上で、最小のメモリ（フラッシュ及びＲＡＭ）を使用しながら高速で多項式評価を実行するための最適化を提供する。
【００７９】
Ｎの特に良好な選択は、２（ａ＋２）ｂ付近である。多項式の次数及び鍵長に関するＮのサイズは、システムを攻撃から保護することを助ける。Ｎが２のべき乗に近いため、モジュロ演算は加算、及び場合によっては（１又は−１でなければ）小さなオフセットとの乗算によって表現され得る。一部の最適化、例えば、最も高い次数及び最も低い次数の繰り返しをループ外に出すこと、Ｎごとのワード等はＮに依存しない。
【００８０】
図１ｂは、複数のネットワークデバイスを含む通信ネットワーク１００を図示する概略的なブロック図であり、第１のネットワークデバイス１１０及び第２のネットワークデバイス１２０が示されている。第１のネットワークデバイス１１０について説明する。第２のネットワークデバイス１２０は同様であるか、又は同じ原理に則って動作し得る。
【００８１】
ネットワークデバイス１１０は、第２のネットワークデバイス１２０と有線又は無線で電子形式、例えばデジタル形式のメッセージを送受信するための送信機及び受信機を兼ね備える送受信機１３０を含む。更に、送受信機１３０は、例えばネットワーク権限１６０又は他の信頼できる第３者機関からローカル鍵材料を受信するためにも使用され得る。送受信機１３０を介して、図１ｂでは第２のネットワークデバイス１２０である他のネットワークデバイスの識別番号が受信される。
【００８２】
送受信機は送信機及び受信機の組み合わせである。ローカルに共有鍵を導出するには受信機のみが必要であることに留意されたい。共有鍵が第１のデバイス及び第２のデバイスにおいておおよそ同時に導出されなければならない場合、送信機を適宜使用して識別番号が送信され得る。
【００８３】
ネットワークデバイス１１０は、ローカル鍵材料ストレージ１４４を備える。ローカル鍵材料ストレージ１４４は、ローカル鍵材料を保存するためのローカルメモリ、例えばフラッシュメモリ等の不揮発性メモリとして実装され得る。また、ローカル鍵材料ストレージ１４４は、例えば送受信機１３０を介して例えばネットワーク権限１６０からローカル鍵材料を取得するよう構成されてもよい。ローカル鍵材料ストレージ１４４は、多項式操作デバイスに必要なパラメータを供給するよう構成される。ローカル鍵材料ストレージ１４４によって保存されるローカル鍵材料は、後に第１のネットワークデバイスによって評価される多項式の表現を含む。例えば、多項式の表現は、例えば次数によってソートされた多項式の係数のリストであり得る。しかし、多項式の表現は様々な方法で最適化され、実際には、係数の一部は最終結果に対して非常に小さい影響を有する。共有鍵の決定は、最終結果に対して大きな影響を及ぼさないであろうこれらの計算を省くことによって最適化される。これにより、計算を最適化し得るだけでなく、係数の使用されない部分を保存しないことにより、表現のストレージも最適化され得る。
【００８４】
ネットワークデバイス１１０は、リダクションアルゴリズムに従って外部識別番号に多項式を適用してリダクション結果を取得するよう構成された多項式操作デバイス１４２を含む。リダクションアルゴリズムは、難読化された一変数多項式に第２のネットワークデバイスの識別番号を代入し、その結果に対して２つのリダクション、すなわちまず代入の結果モジュロ公開モジュラス、次にモジュロ鍵モジュラスによるリダクションを実行した場合に得られるであろう結果に対応する、すなわち近似するリダクション結果を与えるよう構成される。リダクション結果は他方のアルゴリズムの結果に近似するという点で対応する。
【００８５】
多くの場合、リダクション結果は、第２のネットワークデバイスの識別番号をローカル鍵材料に対応する多項式に代入し、その結果に対して２つのリダクション、すなわちモジュロ公開モジュラス及びモジュロ鍵モジュラスを実行した結果に等しくなる。残念ながら、両者は異なる場合がある。両者が異なる場合、通常、差異は１つの又は少数の最下位ビットに限られる。２つの値が１％未満、より好ましくないが１０％未満の確率で異なることが好ましい。
【００８６】
難読化された多項式又は２つの秘密モジュラスから導出された多項式の使用は、同様に、異なるデバイス上で取得されたリダクション結果がまれに異なり得るという特性を有することに留意されたい（「構成出願」を参照）。このため、システムは既にこの事実に対処する準備、例えば鍵等化又は他の解決策を備えているので、追加でまれに更なる差異がリダクション結果に導入されることは、大した追加の負担ではないと考えられる。
【００８７】
ネットワークデバイス１１０は、リダクションモジュロ鍵モジュラスの結果から共有鍵を導出するための鍵導出デバイス１４６を含む。例えば、鍵導出デバイス１４６は１つ以上の最下位ビットを除去し得る。また、鍵導出デバイス１４６は鍵導出関数を適用し得る。更なる処理を行うことなく、第２のリダクションの結果を使用することも可能である。
【００８８】
ネットワークデバイス１１０は、オプションの鍵等化部（イコライザー）１４８を含む。第１のネットワークデバイスで導出された共有鍵と第２のネットワークで（第１のネットワークデバイスの識別番号に基づいて）導出された鍵が等しくない可能性があることに留意されたい。これが望ましくないと考えられる場合、続いて鍵等化プロトコルが実行され得る。
【００８９】
ネットワークデバイス１１０は、共有鍵を暗号アプリケーションに使用するよう構成された暗号要素１５０を含む。例えば、暗号要素１５０は、第１のネットワークデバイスのメッセージ、例えばステータスメッセージを第２のネットワークデバイスに送信する前に、共有鍵を用いてメッセージを暗号化又は認証し得る。例えば、暗号要素１５０は、第２のネットワークデバイスから受信されたメッセージを解読又はその真正性を検証し得る。
【００９０】
典型的には、デバイス１１０及び１２０は、それぞれ、デバイス１１０及び１２０に保存される適切なソフトウェアを実行するマイクロプロセッサ（図示無し）を含み、例えば、ソフトウェアは対応するメモリ、例えばＲＡＭ又はフラッシュメモリ等の不揮発性メモリ（図示無し）にダウンロード及び保存され得る。
【００９１】
図２は、共有鍵２００の生成方法を示す概略的なフローチャートである。方法は、他のネットワークデバイスの外部識別番号を取得するステップ２１０、ローカル識別番号を他のネットワークデバイスに送信するステップ２２０、多項式及び受信された識別番号に対してリダクションアルゴリズムを実行するステップ２３０、共有鍵を導出するステップ２５０、他のネットワークデバイスに鍵確認メッセージを送信するステップ２６０、鍵が確認されたか否かを決定するステップ２７０、及び暗号アプリケーション２８０を含む。ステップ２７０において鍵が確認されない場合、方法は新しい鍵を導出するステップ２５０において継続する。例えば、ステップ２５０は、鍵が確認されない度に１つの追加の最下位ビットを除去し得る。
【００９２】
図４ａ−図４ｆを用いて説明されるように、リダクションアルゴリズムには様々な選択肢が存在する。リダクションアルゴリズムの実行は、多項式操作デバイスによってなされ得る。これは、以下で説明されるアルゴリズムに係るソフトウェアを有するマイクロプロセッサ上で実行され得る。
【００９３】
ステップ２５０、２６０、及び２７０は、合わせて、鍵等化プロトコルを形成する。例えば、ステップ２６０において、ナンス、及びステップ２５０で導出された共有鍵によるナンスの暗号化が第２のデバイスに送信され得る。ステップ２６０において、第２のデバイスからメッセージが受信される。受信されたメッセージは、単純に受信された鍵確認メッセージが鍵が異なることを示した旨を表し得る。また、受信メッセージは鍵確認メッセージを含んでもよい。後者の場合、第１のネットワークデバイスは鍵確認メッセージを検証し、鍵が等しいか否かを確認する。鍵が等しくない場合、例えばＬＳＢを消去することにより新たな鍵が導出される。
【００９４】
当業者にとって明らかなように、当該方法は多様に実行可能である。例えば、ステップの順番は変更され、一部のステップは並列に実行され得る。また、ステップ間に他の方法ステップが挿入されてもよい。挿入されるステップは本明細書が開示するような方法の改良に相当してもよいし、方法とは無関係でもよい。例えば、ステップ２１０及び２２０は、少なくとも部分的に並列に実行され得る。また、所与のステップが完全に終了する前に次のステップが開始されてもよい。
【００９５】
図３は、２つのネットワークデバイスＡ及びＢによる共有鍵の生成中の両デバイス間の可能なメッセージシーケンスを概略的な形式で示す。時間は下方向に進む。ステップ３１０において、ネットワークデバイスＡは自身の識別番号をデバイスＢに送信する。ステップ３２０において、デバイスＢは自身の識別番号、並びに、識別番号Ａ及び自身のローカル鍵材料に基づいて導出した共有鍵（Ｋ１）についての鍵確認メッセージを送信する。ステップ３３０において、デバイスＡは両者が同じ鍵を生成しなかったことを発見した。デバイスＡは１つのＬＳＢを消去し（例えば、整数割る２）、鍵Ｋ２を得た。ステップ３３０において、デバイスＡは新たな鍵確認メッセージを送信する。このようにして、Ａ及びＢは、ステップ３５０で同じ鍵にたどり着くまで鍵確認メッセージ３４０を交換する。ステップ３５０において、デバイスＡは鍵確認メッセージをデバイスＢに送信する。デバイスＢは、両者が同じ鍵にたどり着いたことを検証できた。ステップ３６０において、デバイスＢはその確認を送信し、これは認証メッセージ又は鍵確認メッセージ等であり得る。ステップ３７０において、デバイスＡは同じになった共有鍵を用いて（例えば、ＡＥＳを用いて）暗号化された及び／又は（例えば、ＨＭＡＣを用いて）認証されたメッセージＭ１を送信する。
【００９６】
以下のアルゴリズムはこのアプローチ、すなわち、デバイスＡ及びＢによって実行される相互鍵合意及びセッション鍵導出のためのプロトコルの可能な実装形態を与える。
0006328152.tif 000004
【００９７】
プロトコルは、本明細書に開示されるような鍵共有アルゴリズムを用いて生成されたビット列の複数のビットを除去し、認証ハンドシェイク、例えばチャレンジレスポンスを実行する。認証ハンドシェイクは鍵確認メッセージを含み得る。成功しない場合、更にいくつかのビットが除去され、ハンドシェイクが成功するまで又は鍵が短くなり過ぎるまで繰り返される。プロトコルは多様に変更され、例えば、プロトコルの実行を監視している傍受者がＡとＢとの間で共有される共通鍵の長さについて如何なる情報も得られないよう、反復に応じて可変のビット数を除去することによって、又は常に一定数のステップを要求することによって変更され得る。このアプローチは、共有鍵が可能な限り長いことを保証するという利点を有するが、共通鍵に関する合意のために複数の交換を要するという潜在的なデメリットを有する。一方、ほとんどのアプリケーションではこれは大きな問題とならない。ほとんどのデバイスペアにおいて鍵は等しくなる又は数ビットしか違わず、比較的多数の異なる最下位ビットに至るのは少数のデバイスペアのみだからである。これは生成される鍵の特性による。
【００９８】
例えば「構成出願」に記載されるように、両デバイスが同じ鍵に到達するための他の方法が存在する。
【００９９】
図４ａ−図４ｆを通じて、以下の規定が用いられる。結果のリダクションを実行するネットワークデバイスは第１のネットワークデバイスであり、自身の識別番号を供給するネットワークデバイスは第２のネットワークデバイスである。ｂは鍵長を示し、α（文章中ではａとも記される）は多項式の次数を示し、ＫＭη，ｊは第１のネットワークデバイスに対応する多項式の次数ｊの項に対応する係数を示し、ηは第１のネットワークデバイスの識別番号であり、η’は第２のネットワークデバイスの識別番号であり、Ｎは公開モジュラスである。＜...＞ｃという表記は、括弧内の数モジュロｃのモジュロリダクションを示す。＞＞ｃという表記は、ｃビットの右シフト、すなわち、２ｃによって割り、次の整数に切り捨てることを示す。
【０１００】
Input、Output、for、end for、returnらの語は、コンピュータアルゴリズムの分野において標準的である。
【０１０１】
例では、好適な公開モジュラスＮ＝２（α＋２）ｂ−１が使用される。この特定のモジュラスは、特に速くエレガントなリダクションを可能にする。特に、公開モジュラスが２のべき乗（２（ａ＋２）ｂ）−（正の）オフセットであり、指数が鍵長の倍数で、オフセットの絶対値が２の鍵長乗未満の場合、アルゴリズムは異なるモジュラスに対して採用され得る。オフセットが１より大きい場合、例えば３の場合、最上部が一度ではなくオフセット回、最下部に加えられる。オフセットが引かれるのではなく足される場合、最上部が最下部に加えられる。
【０１０２】
一例として、α＝２及びｂ＝１２８を取ることができる。より高いセキュリティのためにはより大きい値、例えばα＝４又は６が使用され得る。
【０１０３】
図４ａは、リダクション結果を得る方法をいわゆる疑似コードの形式で示す。
【０１０４】
第３行及び第５行は、係数ＫＭη，ｊによって与えられる多項式の項にわたる繰り返しを示す。各繰り返しにおいて、中間値「ｋｅｙ」に新たな係数が掛けられる。この鍵
【数３】
0006328152.tif 000005
の評価の実施形態は、いわゆるホーナー法を使用する。
【０１０５】
図４ｂのアルゴリズムは図４ａのそれと類似するが、使用されるモジュラスの特定の形式を利用する。Ｎが特別な形式Ｎ＝２（α＋２）ｂ−１であることを利用することにより、ｔｅｍｐ ← ＜ｋｅｙ×η＋ＫＭｊ＞Ｎのステップが最適化される。したがって、Ｒ＝ｋｅｙ×ηとすると、Ｒは２つの部分Ｒ＝Ｒ１２（α＋２）ｂ＋Ｒ０に分割され、ここで、Ｒ０はＲの２（α＋２）ｂ最下位ビット（ｌｓｂ）であり、Ｒ１はＲの残りのＭＳＢである。これに基づき、＜２（α＋２）ｂ＞Ｎ＝１なので、＜Ｒ＞Ｎ＝＜Ｒ１２（α＋２）ｂ＋Ｒ０＞Ｎ＝Ｒ１＋Ｒ０と計算することできる。正確には、＜Ｒ０＋Ｒ１＞Ｎであり、Ｒ０＋Ｒ１が大き過ぎない場合、すなわちＮ未満の場合、これはＲ０＋Ｒ１と等しい。より正確には、リダクションモジュロＮをもう一度行ってもよく、これは近似を与える。しかし、Ｒ１はＮと比べると非常に小さいので、二度目のリダクションを行わないことによって誤差が導入される可能性は低い。あるいは、（同じ仕組みで）ステップ７の後にモジュロＮリダクションを行い、その後にステップ８を適用してもよい。
【０１０６】
Ｎ＝２（α＋２）ｂ−オフセットの場合、同様の最適化が得られる。ここで、オフセットはＮに比べて小さく、例えば０より大きいが鍵モジュラス（２ｂ）未満である。
【０１０７】
図４ｃは不要な計算を回避する。最終結果に影響を及ぼさない又はまれにしか及ぼさない中間計算を実行しないことにより、図４ａ及び図４ｂのリダクションアルゴリズムのパフォーマンスが向上され得る。図４ｃでは、最初と最後の繰り返しがより少ない計算を要することが利用される。また、この設計では、実行により少ない計算を要する次式Ｒｊ＝ｋｅｙ×η’＋ＫＭｊ、よって＜Ｒｊ＞Ｎ＝＜Ｒｊ，１×２（α＋２）ｂ＋Ｒｊ，０＞Ｎ≒Ｒｊ，１＋Ｒｊ，０を使用してモジュロＮリダクションが排除される。
【０１０８】
この最適化は、η≦２ｂ−１且つＫＭｊ≦２（α＋２）ｂ−１という事実を利用する。（ｋｅｙ×η’＋ＫＭ＿）≦２（α＋３）ｂ−２ｂ＜２（α＋３）ｂ−１なので、演算ｋｅｙ ← ＜ｋｅｙ×η’＋ＫＭｊ＞Ｎは効率的に実行され得る。
【０１０９】
したがって、ｋｅｙはｋｅｙ＝Ｒ１２（α＋２）ｂ＋Ｒ０として表され得る（Ｒ１≦２ｂ−１）。Ｎによるリダクションは同様に単純な加算であるが、常にｂビットを有する。
【０１１０】
図４ａ、図４ｂ、及び図４ｃのアルゴリズムは、合わせて係数全体よりも小さい部分を形成する係数の更なる部分及び最下部による第１及び第２の乗算において識別番号が使用される、すなわち、多項式の一部が使用されないという特徴を有さない。リダクションアルゴリズム４ａ〜４ｃは、アルゴリズム４ｄ〜４ｆとの比較のために含められた。
【０１１１】
図４ｄはデータ保存要求を低減する。鍵の生成時、多項式係数の全てのビットが必要とされない。このアルゴリズムは使用されるビットのみを保存するだけでよい。また、このアプローチは必要な計算回数の減少をもたらす。ＭＳＢｃという表記は、ｃ最上位ワードを示す。ＬＳＢｃという表記は、ｃ最下位ワードを示す。ワードの幅は鍵長（ｂ）ビットである。
【０１１２】
図４ｄは、第３行及び第１０行において、多項式の項ＫＭηにわたる繰り返しを示す。この特定の実施形態では、各繰り返しは多項式の特定の項に関連付けられ、すなわち、繰り返しは順に次数α−１から１と関連付けられる。次数α及び０に対応する繰り返しは、ループ外で実行される。
【０１１３】
第５行は、識別番号（η’）と、多項式の表現から得られた特定の項の係数の最下部との間の第１の乗算を示す。係数の最下部は、特定の項の係数の鍵長最下位ビットによって形成される。
【０１１４】
第４行は、識別番号と、多項式の表現から得られた特定の項の係数の更なる部分との間の第２の乗算を示す。係数の更なる部分は、特定の項の係数の鍵長最下位ビットとは異なるビットによって形成される。
【０１１５】
ほとんどの繰り返しに関して、更なる部分と最下部とは合わせて多項式の特定の項の係数よりも厳密に少ないビットを形成することに留意されたい。実際には、それらは多項式の特定の項の係数よりも少ないワードを有する。使用されない係数は、保存される必要もない。
【０１１６】
各繰り返しにおいて、最下部はちょうど（鍵長ビットの）１ワードであることに留意されたい。しかし、更なる部分のビット数はループ内で減少し、すなわち次数と共に減少する。
【０１１７】
更なる部分のワード数は、次数（ｊ）＋エラー制御数（ｒｅｄ）である。ここでは、エラー制御数として１が選択される。エラー制御数は、リダクションアルゴリズムの結果が図４ａのアルゴリズムの結果と正確に同じになる確率を決定する。第１のネットワークデバイスと第２のネットワークデバイスとの間で異なる結果が得られる確率を下げるために、エラー制御数が例えば２に上げられてもよい。より大きい値も可能だが、確率はエラー制御数と共に指数関数的に低くなる。
【０１１８】
このアルゴリズムは、乗算されるＫＭｊ×η’の全ての部分が鍵の最終結果に寄与するわけではないという事実を更に利用する。一部は（桁上げのため）非常に小さい影響を及ぼすが、図２及び図３において説明されたように、これらの誤差は共有鍵の生成中に補正され得る。
【０１１９】
図４ｄのアルゴリズムと同様に、図４ｅはデータ保存要求の低減を試みる。この設計は、図４ｄのアルゴリズムが要さないいくらかの追加ビットを保存しなければならないが、より少ない中間計算を必要とし、よって実行がより速くなるので好適である。
【０１２０】
第４行において更なる部分が取得され、第５行において第２の乗算が示されている。第６行において、前回の繰り返しでｋｅｙに導入された最下部との第１の乗算が実行される。第５行において、第２の乗算が実行される。
【０１２１】
図４ｄの最適化は、各繰り返しにおいてＫＭｊから使用されているビットの量を記録しなければならず、追加のポインタ管理を要する。図４ｅのアルゴリズムはメモリ管理の要求を低減する。この最適化は、メモリ及びクロックサイクル数に関して、より効率的である。
【０１２２】
図４ｆは、係数に対する予備計算ステップを要する他のリダクションアルゴリズムを示す。このアルゴリズムは低いデータ保存要求を有し、且つ図４ｅのアルゴリズムよりも速い。鍵材料シェアは次のようにして生成される。
【数４】
0006328152.tif 000006
このように、各ＫＭｉ’は特別な形式を有し、ＭＳＢ及びＬＳＢを選択する命令がスキップされ得るため、このアプローチはより速くなる。この場合、第２のネットワークデバイスη’と鍵を生成しようとするネットワークデバイスηは、次のようにして鍵を計算し得る。
【数５】
0006328152.tif 000007
【０１２３】
この変換は、特定の項ＫＭｉの係数の最下部及び更なる部分が、ＫＭｉ’では互いに隣接し、単一のビット列によって表されるという効果を有する。通常、最下部と最上部とは複数の中間ワードによって互いに分離され、次数が低い程この中間部分は大きい。変換により、第１及び第２の乗算は単一のステップで実行され得る。
【０１２４】
図４ｆで使用される係数はこのように変換されている。結果として、第３行の乗算は第１及び第２の乗算を同時に行う。好ましくは、変換はＴＴＰによって行われ、ネットワークデバイスはこれらの変換された係数をローカル鍵材料ストレージ内に保存することに留意されたい。
【０１２５】
下の表は、後半のリダクションアルゴリズムの相対的優位性を示す。アルゴリズムはフラッシュにおいて実行され、動的メモリとしてＲＡＭが使用された。実行時間はＣＰＵサイクルで測定された。テストランに使用された構成はα＝６、ｂ＝３２、及び３２−ｂｉｔ  ＣＰＵ（ＡＲＭ  Ｃｏｒｔｅｘ−Ｍ）である。図４ａ及び図４ｂのアルゴリズムは、以下に与えられる例と比べて劣る。
【表１】
0006328152.tif 000008
【０１２６】
図５は、多項式及び第２のネットワークデバイスの識別番号から第２のネットワークデバイスと共有される鍵長（ｂ）ビットの共有暗号鍵を決定するための方法をフローチャート形式で再び示す。多項式は複数の項を有し、各項は異なる次数及び係数に関連付けられる。
【０１２７】
ステップ５１０において、ローカル鍵材料が第１のネットワークデバイスのための電子形式で保存される。ローカル鍵材料は、後に第１のネットワークデバイスによって評価される多項式の表現を含む。ステップ５２０において、第１のネットワークデバイスとは異なる第２のネットワークデバイスの識別番号が取得される。ステップ５３０において、リダクションアルゴリズムに従って多項式が識別番号に適用され、リダクション結果が得られる。ステップ５４０において、例えばＫＤＦ等の鍵導出アルゴリズムにより、リダクション結果から共有鍵が導出される。加えて、鍵等化アルゴリズムが実行されてもよい。ステップ５３０はリダクションアルゴリズムを含み、これは、ステップ５２２、５２４、及び５２６への破線矢印によって示されている。
【０１２８】
ステップ５２２において、多項式の項にわたる繰り返しが開始され、少なくとも１つの繰り返しが多項式の特定の項と関連付けられる。ステップ５２４において、識別番号と、多項式の表現から取得された特定の項の係数の最下部との間の第１の乗算が実行される。係数の最下部は、特定の項の係数の鍵長最下位ビットによって形成される。
【０１２９】
ステップ５２６において、識別番号と、多項式の表現から取得された特定の項の係数の更なる部分との間の第２の乗算が実行される。係数の更なる部分は、特定の項の係数の鍵長最下位ビットとは異なるビットによって形成され、更なる部分及び最下部は、合わせて、多項式の特定の項の係数よりも厳密に少ないビットを形成する。
【０１３０】
当業者にとって明らかなように、方法を実行する多数の異なる態様が可能である。例えば、ステップの順番が変更され、又は一部のステップが並列に実行されてもよい。また、ステップ間に他の方法ステップが挿入されてもよい。挿入されるステップは本明細書が開示するような方法の改良に相当してもよいし、方法とは無関係でもよい。例えば、更なる部分及び最下部が隣接する数を作成することにより、ステップ５２４及び５２６が合わせて実行されてもよい。また、所与のステップが完全に終了する前に次のステップが開始されてもよい。
【０１３１】
本発明に係る方法は、プロセッサシステムに方法５００を実行させるための命令を含むソフトウェアを用いて実行され得る。ソフトウェアは、システムの特定のサブエンティティによって実行されるステップのみを含んでもよい。ソフトウェアはハードディスク、フロッピー（登録商標）、メモリ等の適切な記憶媒体内に記憶され得る。ソフトウェアは有線若しくは無線による信号として、又はインターネット等のデータネットワークを用いて送信され得る。ソフトウェアはダウンロード及び／又はサーバ上での遠隔使用により利用可能でもよい。
【０１３２】
本発明は、本発明を実行するよう適合されたコンピュータプログラム、特にキャリア上の又はキャリア内のコンピュータプログラムまで及ぶ。プログラムは、ソースコード、オブジェクトコード、部分的にコンパイルされた形式等のソースコード及びオブジェクトコードの中間コードの形式、又は本発明に係る方法の実装形態に適した任意の他の形式を取り得る。コンピュータプログラム製品に関する一実施形態は、上記方法のうちの少なくとも１つの方法の処理ステップのそれぞれに対応するコンピュータ実行可能な命令を含む。これらの命令はサブルーチンに細分化されてもよいし、更に／又は静的に又は動的にリンクされ得る１つ以上のファイル内に保存されてもよい。コンピュータプログラム製品に関する他の実施形態は、上記システム及び／又は製品のうちの少なくとも１つの手段のそれぞれに対応するコンピュータ実行可能な命令を含む。
【０１３３】
上記実施形態は本発明を限定ではなく説明するものであり、当業者は多数の他の実施形態を設計できることに留意されたい。
【０１３４】
請求項において、括弧内の如何なる参照符号も請求項を限定すると解されるべきではない。動詞「備える（又は含む若しくは有する等）」及びその活用形は請求項内に記載されている以外の要素又はステップの存在を除外しない。要素は複数を除外しない。本発明は、複数の異なる要素を備えるハードウェアによって、及び、適切にプログラミングされたコンピュータによって実施され得る。複数の手段を列挙する装置クレームにおいて、手段のいくつかは同一のアイテム又はハードウェアによって具現化されてもよい。単にいくつかの手段が互いに異なる独立請求項に記載されているからといって、これらの手段の組み合わせを好適に使用することができないとは限らない。
【符号の説明】
【０１３５】
図１ａ、図１ｂ、及び図２の参照番号のリスト
１００  通信ネットワーク
１１０  第１のネットワークデバイス
１２０  第２のネットワークデバイス
１３０  送受信機
１４２  多項式操作デバイス
１４４  ローカル鍵材料ストレージ
１４６  鍵導出デバイス
１４８  鍵等化部
１５０  暗号要素
１６０  ネットワーク権限
２１０  他のネットワークデバイスの外部識別番号を取得
２２０  他のネットワークデバイスにローカル識別番号を送信
２３０  リダクションアルゴリズムを実行
２５０  共有鍵を導出
２６０  他のネットワークデバイスに鍵確認メッセージを送信
２７０  鍵が確認されたか？
２７５  Ｎｏ
２８０  暗号アプリケーション
【図１ａ】
0006328152.tif 000009
【図１ｂ】
0006328152.tif 000010
【図２】
0006328152.tif 000011
【図３】
0006328152.tif 000012
【図４ａ】
0006328152.tif 000013
【図４ｂ】
0006328152.tif 000014
【図４ｃ】
0006328152.tif 000015
【図４ｄ】
0006328152.tif 000016
【図４ｅ】
0006328152.tif 000017
【図４ｆ】
0006328152.tif 000018
【図５】
0006328152.tif 000019