(57)【要約】本発明は、第１の通信ユニット（２００）と第２の通信ユニット（３００）との間の通信の暗号処理のための鍵を生成する構成と方法に関する。第１の通信ユニット（２００）および第２の通信ユニット（３００）は、秘密関数に関する情報を得るように適合され、第１の通信ユニットは、値ｚを選択する手段（２１０）と、選択された値ｚの関数として秘密関数を計算する手段（２２０）と、計算した秘密関数を用いてデータを処理する手段（２３０）と、選択されたｚに関連して処理されたデータを第２の通信ユニットに送信する手段（２４０）とを備える。秘密関数はほぼｋワイズ独立な関数の集合から選択される。
2009517703.tif 000002
【特許請求の範囲】
【請求項１】
送信側通信ユニットと受信側通信ユニットとの間の通信の暗号処理のための鍵を生成する方法であって、前記送信側通信ユニットと前記受信側通信ユニットは、秘密関数に関する情報を得るように適合され、
前記方法は、
値ｚを選択するステップ（３０１）と、
前記送信ユニットにおいて、選択された前記値ｚの関数として前記秘密関数を計算するステップ（３０２）と、
前記計算された秘密関数を用いてデータを処理するステップ（３０３）と、
選択された前記ｚに関連して処理された前記データを、前記受信側通信ユニットに送信するステップ（３０４）とを有し、
前記秘密関数がほぼｋワイズ独立(ａｌｍｏｓｔ  ｋ−ｗｉｓｅ  ｉｎｄｅｐｅｎｄｅｎｔ）な関数の集合から選択されることを特徴とする方法。
【請求項２】
送信側通信ユニットと受信側通信ユニットとの間の通信のセキュリティ処理のための鍵を生成する方法であって、前記送信側通信ユニットと前記受信側通信ユニットは、秘密関数に関する情報を得るように適合され、
前記方法は、
暗号処理されたデータに関連した値ｚを受信するステップ（３０５）と、
前記受信側ユニットにおいて、受信された前記値ｚの関数として前記秘密関数を計算するステップ（３０６）と、
計算された前記秘密関数を用いて受信された前記データを処理するステップ（３０７）とを有し、
前記秘密関数は、ほぼｋワイズ独立な関数の集合から選択されることを特徴とする方法。
【請求項３】
前記秘密関数は、完全ｋワイズ独立な関数の集合から選択されることを特徴とする請求項１または請求項２のいずれか記載の方法。
【請求項４】
ｋワイズ独立な関数の前記集合は、有限フィールドの上で定義されたｋ−１次の多項式を備えることを特徴とする請求項１乃至請求項３のいずれか一項に記載の方法。
【請求項５】
最大ｋ−１個の鍵を生成するためにｐを使用してしまったときは、前記秘密関数ｐを関数ｐ＿ｎｅｗで置換するステップと、
前記関数ｐの暗号処理に基づいてｐ＿ｎｅｗを生成するステップと
をさらに有することを特徴とする請求項１乃至４のいずれか一項に記載の方法。
【請求項６】
前記ｐ＿ｎｅｗの生成は、一方向ハッシュ（ｏｎｅ−ｗａｙ  ｈａｓｈ）関数に基づくことを特徴とする請求項１乃至５のいずれか一項に記載の方法。
【請求項７】
前記受信側通信ユニットがｐ（ｚ）を計算する前に正しい秘密関数ｐを検索するために、前記送信側通信ユニットのＩＤを含めるステップをさらに有することを特徴とする請求項１、または請求項３乃至請求項６のいずれか一項に記載の方法。
【請求項８】
前記受信側通信ユニットがｐ（ｚ）を計算する前に正しい秘密関数ｐを検索するために、前記送信側通信ユニットのＩＤを受信するステップをさらに有することを特徴とする請求項２乃至請求項６のいずれか一項に記載の方法。
【請求項９】
前記通信ユニットは、センサの中に設置されることを特徴とする請求項１乃至８のいずれか一項に記載の方法。
【請求項１０】
前記通信ユニットは、センサと通信を行うデバイスの中に設置されることを特徴とするこれまでの請求項１乃至９のいずれか一項に記載の方法。
【請求項１１】
通信ユニットの中にあるコンピュータの内部メモリの中に直接実装可能なコンピュータプログラムであって、請求項１乃至請求項１０のいずれか一項に記載の前記ステップを実行するためのソフトウェアコードを備えることを特徴とするコンピュータプログラム。
【請求項１２】
コンピュータ使用可能媒体に記憶されるコンピュータプログラムであって、通信ユニットの中のコンピュータを駆動して請求項１乃至請求項１０のいずれか一項に記載の前記ステップの実行を制御するための可読プログラムを含むことを特徴とするコンピュータプログラム。
【請求項１３】
第１の通信ユニット（２００）であって、前記第１の通信ユニット（２００）と第２の通信ユニット（３００）との間の通信の暗号処理のための鍵を生成する手段を備え、前記第１の通信ユニット（２００）および前記第２の通信ユニット（３００）は、秘密関数に関する情報を得るように適合され、
前記第１の通信ユニットは、
値ｚを選択するための手段（２１０）と、
選択された前記値ｚの関数として前記秘密関数を計算するための手段（２２０）と、
前記計算された秘密関数を用いてデータを処理するための手段（２３０）と、
選択された前記値ｚに関連して処理された前記データを、前記第２の通信ユニットに送信するための手段（２４０）とを有し、
前記秘密関数は、ほぼｋワイズ独立な関数の集合から選択されることを特徴とする第１の通信ユニット。
【請求項１４】
第２の通信ユニットであって、第１の通信ユニットと前記第２の通信ユニットとの間の通信のセキュリティ処理のための鍵を生成する手段を備え、前記第１の通信ユニットおよび前記第２の通信ユニットは、秘密関数に関する情報を得るように適合され、
前記第２の通信ユニットは、
暗号処理されたデータに関連した値ｚを受信するための手段（２５０）と、
前記受信ユニットにおいて、受信された前記値ｚの関数として前記秘密関数を計算するための手段（２６０）と、
計算された前記秘密関数を用いて受信された前記データを処理するための手段（２７０）とを備え、
前記秘密関数は、ほぼｋワイズ独立な関数の集合から選択されることを特徴とする第２の通信ユニット。
【請求項１５】
前記秘密関数は、完全ｋワイズ独立な関数の集合から選択されることを特徴とする請求項１３または請求項１４のいずれかに記載の通信ユニット。
【請求項１６】
ｋワイズ独立な関数の集合は、有限体上で定義されるｋ−１次の多項式を備えることを特徴とする請求項１３乃至請求項１５のいずれか一項に記載の通信ユニット。
【請求項１７】
最大ｋ−１個の鍵を生成するためにｐを使用してしまったときは、前記秘密関数ｐを関数ｐ＿ｎｅｗで置換するための手段と、
前記関数ｐの暗号処理に基づいてｐ＿ｎｅｗを生成するための手段と
を備えることを特徴とする請求項１３乃至請求項１６のいずれか一項に記載の通信ユニット。
【請求項１８】
一方向ハッシュ関数に基いて前記ｐ＿ｎｅｗを生成するための手段を備えることを特徴とする請求項１３乃至請求項１７のいずれか一項に記載の通信ユニット。
【請求項１９】
前記第２のユニットがｐ（ｚ）を計算する前に正しい秘密関数ｐを検索するために、前記通信ユニットのＩＤを含めるための手段を備えることを特徴とする請求項１３、または請求項１５乃至請求項１８のいずれか一項に記載の通信ユニット。
【請求項２０】
前記第２の通信ユニットがｐ（ｚ）を計算する前に正しい秘密関数ｐを検索するために、前記第１の通信ユニットのＩＤを受信するための手段を備えることを特徴とする請求項１４乃至請求項１８のいずれか一項に記載の方法。
【請求項２１】
前記通信ユニットは、センサの中に設置されることを特徴とする請求項１３乃至請求項２０のいずれか一項に記載の通信ユニット。
【請求項２２】
前記通信ユニットは、センサと通信を行うデバイスの中に設置されることを特徴とする請求項１３乃至請求項２０のいずれか一項に記載の通信ユニット。
【請求項２３】
請求項１３または請求項１４に記載の前記通信ユニットを、秘密関数を用いて事前設定するように適合された事前設定デバイスであって、前記秘密関数は、ほぼｋワイズ独立な関数の集合から選択されることを特徴とする事前設定デバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば暗号化または完全性保護等の鍵管理に関し、特に鍵の生成に関する。
【背景技術】
【０００２】
本発明によって生成される、例えば暗号化または完全性保護のための鍵は、センサネットワークに適している。そのようなセンサネットワークの例が図１に示される。センサネットワークに関するさらなる情報は、Ｈｏｌｇｅｒ  ＫａｒｌおよびＡｎｄｒｅａｓ  Ｗｉｌｌｉｇ著、「Ｐｒｏｔｏｃｏｌｓ  ａｎｄ  Ａｒｃｈｉｔｅｃｔｕｒｅｓ  ｆｏｒ  ｗｉｒｅｌｅｓｓ  ｓｅｎｓｏｒ  ｎｅｔｗｏｒｋｓ」に見いだすことができる。図１に示すセンサは、例えば、航空機によって地理的にばらまかれてネットワークを形成する。センサネットワークは、データを収集し交換を行う手段を備える複数のセンサを備える。データの収集は、一般的には、温度、気圧、音、映像、静止画、振動等の環境情報の収集を意味する。収集されたデータは、センサの間で交換をすることができて、一般的には中央点で処理される。ここでは、センサの内の１つは中央点と直接に接続されている必要がある。従って、少なくとも１つのセンサは、中継手段を備える。中継手段を備えるセンサは中継センサと呼ばれる。図１では、中継センサは十字にて示され、中継センサでないセンサ（非中継センサ）は、丸印で示されている。
【０００３】
中継センサは、非中継センサに情報を送信し、また非中継センサから情報を受信することができ、また、センサネットワークの中央点と通信を行うことができる。例えば、中継センサは、測定報告を複数の非中継センサから受信して、自分の測定報告に加えて、この受信した情報をネットワークの中央点に転送する。中央点はセルラネットワークの基地局でもよく、または、報告の情報を処理するための中央ユニットに報告を転送できるアンテナを持つ車両でも良い。
【０００４】
センサは、ある場合には、図１に示されているように、例えば、航空機から投下されて、地理的エリアにランダムに分布していている。この場合には、「発見」プロトコルが最初に走って、中継機能を持つ近傍のセンサ、および、どのセンサが中継センサの役を担うか、またはそのいずれかを見いだす。発見プロトコルの例は、上記のＫａｒｌおよびＷｉｌｌｉｇの参考文献に見いだすことができる。この段階は、また、非中継センサが他の（中継）センサと安全保護された接続を設立する、初期のセキュリティハンドシェイク（ｓｅｃｕｒｉｔｙ  ｈａｎｄｓｈａｋｅｓ）を含むことができる。
【０００５】
あるいは、センサは、より規則的に分布をして、この場合には、中継センサは適宜に配列される。この場合の典型的な例は、センサがアパートの建物の中にある場合で、それぞれのアパートにはある数の関連するセンサを配置することができ、ここでは、少なくとも１つのセンサが中継センサであって、例えば、その建物に関係する中央点と通信を行う。
【０００６】
センサネットワークの中での通信に対するセキュリティ要件は、センサアプリケーションのタイプに依存する。そして、中継センサと非中継センサとの通信のセキュリティ要件は、非中継センサからの距離が短いことの特性ゆえに、一般的に、中継センサとセンサネットワークの中央点との通信に比べてより低いセキュリティでよい。しかし、多くのアプリケーションでは、中継センサと中央点との間の通信は、高度に安全保護された方法で行われることが要求される。本発明は、中継センサと中央点（例えば基地局）との間の通信の安全保護に最も適している。しかし、上述したセンサ間での使用を排除するものではない。
【０００７】
安全保護された通信のための共通の技術では、鍵のネゴシエーション、または生成を行う「握手（ｈａｎｄｓｈａｋｅ）」を行うことから通信セッションを開始する。しかし、重要なセンサアプリケーションの場合には、センサからデータを受信する側は、通常、「電波の沈黙（ｒａｄｉｏ  ｓｉｌｅｎｃｅ）」を守ること、すなわち、通信当事者の存在または位置が外に露見しないことという希望がある。センサもエネルギーの節約のために、シグナリングの量を制限することを望むかも知れない。無線インタフェースの上で１ビットを送信するのに、約８００〜１０００のローカルＣＰＵ命令を実行する程度のエネルギーが消費される。同様に、聞くこと（リッスン）も電力を消費する。多くのアプリケーションでは、例えば、放送の場合のように、データを受信するある特定の受信者は、センサに知られていない可能性がある。従って、センサは、自分自身の鍵を生成し、そしてまた、認可された受信機に対して安全で簡単な方法で、どの鍵を用いたのかの適宜な「ヒント」を与えることができる必要があると考えられる。従って、鍵の材料に対する基盤は、例えば、配備する前の製造または設定過程において、初めからセンサの中に記憶されている必要がある。そのような基盤から新しい鍵を生成する共通の手法は、次式に示すように、マスタ鍵Ｋmasterといくつかのランダムデータに暗号化関数を適用することである。
Ｋsession＝ｆ（Ｋmaster，ＲＡＮＤＯＭ）。
【０００８】
これに関する第１の問題は、小さなセンサは、ランダムデータのための十分によい材料を持っていない可能性があり、実際には、ＲＡＮＤＯＭは、セッション鍵を判明できるように、「カウンタ」の値またはそれと同様なものになる。しかしながら、これは鍵の品質を低下させる。別の手法は、次式を用いることであろう。
Ｋnew＝ｆ（Ｋold）。
【０００９】
しかし、これは、ある鍵が明らかになれば、例えば、用いられている暗号のアルゴリズムが解読されると、全てのその後の鍵が明らかになってしまうという欠点を持つ。さらに加えるに、上記の双方の手法に共通な点は、非常に高度のセキュリティが要求されるアプリケーションでは、末端デバイスの中での鍵の暗号生成は不適当あるいは不許可として禁止されるであろう。例えば、ｆがＳＨＡ１ハッシュやＡＥＳアルゴリズムのような関数であれば、上記のセキュリティの手法は、暗号に関する仮定に依存しており、それは結局誤りであることが判明するであろう。すなわち、セキュリティは純粋に発見的である。高度な要件を持つアプリケーションには、実に、上記で議論した方法では得ることのできない、鍵の正確な統計的分布等の性質の正式で数学的な証明が必要であるだろう。
【発明の開示】
【発明が解決しようとする課題】
【００１０】
従って、センサの中での鍵生成の問題と、不必要な通信を避けたいという希望から、センサは、高度に安全保護された鍵生成のデバイスによって生成された、比較的大量の事前に組み込まれた鍵を記憶しておく必要があるかも知れない。これは、センサに強いられた環境ゆえにまた問題がある。
【００１１】
従って、本発明の目的は、改善された鍵生成の方法と、高度に安全保護されたセンサに適した構成を提供することである。
【課題を解決するための手段】
【００１２】
上記の目的は、独立請求項に従った方法と構成によって達成される。
【００１３】
好ましい実施形態は、従属請求項によって画定される。
【００１４】
本発明の基本的な考え方は、例えば、暗号化の目的の、鍵を計算するための秘密関数として、ｋワイズ独立（ｋ−ｗｉｓｅ  ｉｎｄｅｐｅｎｄｅｎｔ）な関数を用いることである。ｋワイズ独立な関数ｐから、ｋ−１個の統計的に独立な鍵が算出可能であることが示される。秘密関数は完全ｋワイズ独立（ｆｕｌｌｙ  ｋ−ｗｉｓｅ  ｉｎｄｅｐｅｎｄｅｎｔ）である必要はなくて、秘密関数ｐはほぼｋワイズ度樹立（ａｌｍｏｓｔ  ｋ−ｗｉｓｅ  ｉｎｄｅｐｅｎｄｅｎｔ）であってもよいことに注意すべきである。ｐのコピーは、通信をしている通信ユニットに記憶されるか、または伝えられる。送信側通信ユニットは、通信をするときには、以前に用いられていない値ｚ∈ＧＦ（２n）を選択し、選択したｚでｐ（ｚ）を計算し、そのｐ（ｚ）を用いて送信すべきデータを処理する。処理されたデータはｚとともに送信される。受信機は、処理されたデータと選択されたｚを受信すると、データからｚを得て、ｐ（ｚ）を当てはめて同じ鍵に到達する。そしてこの鍵がデータの処理（例えば暗号化）とデータの「逆処理」（例えば暗号解読）に用いられる。
【００１５】
本発明の利点は、記憶される鍵の量が限定され、記憶されている鍵から新しい鍵が暗号記法によらずに生成されるという点、特に、セキュリティを、暗号に関する仮定の上に置く必要がないという点である。
【００１６】
さらなる利点は、前方／後方に対するセキュリティ（ｆｏｒｗａｒｄ／ｂａｃｋｗａｒｄ  ｓｅｃｕｒｉｔｙ）が達成され、個々のセッション鍵に対する、または、そのような鍵の集合に対してさえも、連続した敵対的攻撃が、以前のまたは今後の鍵に影響を与えないという点である。
【００１７】
さらなる利点は、本発明に従った方法は、コンピュータにとって効果的でありエネルギー効率がよい点である。
【００１８】
さらに、本発明は、センサがどの鍵を用いるかを、信頼できる相手に知らせるための簡単な手段を提供する。
【発明を実施するための最良の形態】
【００１９】
本発明は、本発明の好ましい実施形態が示された添付の図面を参照して、下記でより十分に説明されるであろう。しかし、本発明は多くの異なる形において実施されることも可能であり、本明細書に記載された実施形態に限定されると解釈されるべきではない。むしろ、これらの実施形態は、本開示が十分で完全であるように、また当業者に対して本発明の範囲を十分に伝えるように提供されるものである。
【００２０】
本発明の説明の中で、以下の表記が用いられる。Ｓが集合であれば、＃Ｓは大きさ、すなわち、Ｓの要素の数を示すのに用いられる。Ｓが集合でｇがある関数であれば、ｇ（Ｓ）は集合｛ｇ（ｓ）｜ｓ∈Ｓ｝を示す。最後に、ＧＦ（２n）は２n個の要素の有限体を示す。
【００２１】
本発明は、通信ユニットの中の安全保護された鍵を生成するための方法と構成に関する。鍵として暗号鍵が述べられていても、それは、完全性保護、認証、またはその他のセキュリティの目標に対する鍵も、本発明によって生成することができる。通信ユニットは、好ましくは、センサネットワークに関連していて、通信ユニットはセンサの中に設置され、または、少なくとも、センサと通信を行うように適合された別のユニットの中にあることもできる。通信ユニットを備えるセンサは中継センサであってよく、別のユニットは上記で説明した中央点であってよい。本発明によれば、通信ユニットは、製造時にまたは初期設定時に、ほぼｋワイズ独立な関数の集合から得られる関数ｐが与えられる。どの通信ユニットにどのｐが与えられるかの情報は、ｐを通信ユニットのＩＤに関連づけることにより、中央のデータベースに記憶させることが望ましい。
【００２２】
関数の集合Ｆがあり、Ｆの中のそれぞれの関数が集合Ａから集合Ｂへの写像であり、Ａの任意の異なるｋ個の入力値に対するｋ個の出力値が、Ｆからの関数ｆのランダムな選択にわたって、Ｂ×Ｂ×．．．×Ｂ（ｋ個のコピーであり、通常Ｂ＾ｋとも示される。）の中で一様に分布するとすれば、その関数の集合Ｆはｋワイズ独立であるといわれる。ｋワイズ独立な関数の集合を表現する別の方法は、Ａの要素のｋ次元のベクトル（ｘ１，．．．，ｘｋ）をとり、Ｆからランダムな関数ｆを選び、ｆを要素ごとに適用する：ｙ＝（ｆ（ｘ１），．．．，ｆ（ｘｋ））。すると、ｙは、全てのｋ次元のベクトルの集合の間で、Ｂ上に一様に分布する。
【００２３】
ｋワイズ独立性は以下の例によって示される。ｋ＝２、Ａは整数の集合｛０，１，．．．，１０｝、Ｂは集合｛０，１，．．．，６｝とする。そのとき、Ｆは２ワイズ独立な関数集合であり、Ｆからｆをランダムに選択したとすれば、｛０，１，．．．，１０｝の中で任意の異なるｘ１、ｘ２、および、｛０，１，．．．，６｝の中で任意の異なるｙ１、ｙ２に対して、ｆ（ｘ１）＝ｙ１およびｆ（ｘ２）＝ｙ２となる確率は、１／４９である（Ｂ×Ｂは４９個の要素を含むので）。
【００２４】
ｋワイズ独立をこのように定義した１つの帰結は、ランダムに選択された未知のｆに対する数値の対［ｘ１，ｆ（ｘ１）］、［ｘ２，ｆ（ｘ２）］、．．．、［ｘ［ｋ−１］，ｆ（ｘ［ｋ−１］）］が分かっても、ｘｋが「観測された」集合｛ｘ１，．．．，ｘ［ｋ−１］｝の中になければ、これは、なお、値ｆ（ｘｋ）について何も明らかにはしないということである。言い換えれば、ｆ（ｘｋ）が任意の値ｙｋを取る確率は１／Ｂに変りはない。
【００２５】
本発明の説明の中で、ｋワイズ独立な関数の集合は、典型的に次数ｋ−１の多項式によって表される。しかしながら、次数ｋ−１の多項式と異なった関数もｋワイズ独立であり、本発明の中に用いることができることに注意すべきである。そのようなｋワイズ独立な関数の集合の別の例は、ＡおよびＢが任意の有限な集合であるときのＡとＢとの間にある全ての関数の集合である。
【００２６】
上記で述べたように、本発明では、秘密関数ｐはほぼｋワイズ独立な関数の集合から選択される必要がある。「ほぼ」という用語は、ここでは、ｐはｋワイズｄ独立な（ｋ−ｗｉｓｅ  ｄ−ｉｎｄｅｐｅｎｄｅｎｔ）関数の集合から得られる関数であることを意味する。以下にｄ独立の説明を行う。ｆをＡ→Ｂの関数ｆとすると、ｋワイズ独立は、それぞれｋ個の要素から成る値（ｆ（ｘ１），．．．，ｆ（ｘｋ））が「ほぼ」一様に分布することを意味する。これは、（ｆ（ｘ１），．．．，ｆ（ｘｋ））が一様分布にどの程度近いかを計る、定量的な「距離測度」ｄを導入することにより取り込むことができる。すなわち、一様分布からの偏差がｄ以下であれば、関数の集合Ｆはｋワイズｄ独立であるいわれる。これはいくつかの方法で計ることが可能である。例えば、最大ノルムを用いることができる。この場合、ｆをランダムに選択された関数ｆ∈Ｆとして、それぞれの（ｙ１，．．．，ｙｋ）に対して（ｆ（ｘ１），．．．，ｆ（ｘｋ））＝（ｙ１，．．．，ｙｋ）である確率が［（＃Ｂ）＾（−ｋ）−ｄ，（＃Ｂ）＾（−ｋ）＋ｄ]の範囲にあれば、Ｆはｋワイズｄ独立であるといわれる。あるいは、統計的ノルムを用いることが可能であり、ここでは、Ｂ＾ｋの中の全ての（ｙ１，．．．，ｙｋ）を合計したときに、｜Ｐｒ［（ｆ（ｘ１），．．．，ｆ（ｘｋ））＝（ｙ１，．．．，ｙｋ）］−（＃Ｂ）＾（−ｋ）｜がｄ以下であれば、Ｆはｋワイズｄ独立である。このようなｋワイズｄ独立な関数の例は、Ｎ．Ａｌｏｎ、Ｏ．Ｇｏｌｄｒｅｉｃｈ、Ｊ．Ｈａｓｔａｄ、Ｒ．Ｐｅｒａｌｔａ、「Ｓｉｍｐｌｅ  Ｃｏｎｓｔｒｕｃｔｉｏｎｓ  ｏｆ  Ａｌｍｏｓｔ  ｋ−ｗｉｓｅ  Ｉｎｄｅｐｅｎｄｅｎｔ  Ｒａｎｄｏｍ  Ｖａｒｉａｂｌｅｓ」、ＩＥＥＥ  Ｓｙｍｐｏｓｉｕｍ  ｏｎ  Ｆｏｕｎｄａｔｉｏｎｓ  ｏｆ  Ｃｏｍｐｕｔｅｒ  Ｓｃｉｅｎｃｅ、１９９２年、に見いだすことができる。
【００２７】
しかし、秘密関数ｐは、上記の例でｄ＝０を意味する、完全にｋワイズ独立な関数の集合から得ることが望ましい。
【００２８】
通信を行うときには、送信側通信ユニットは、ｚを選択し、ｐ（ｚ）を計算する。計算されたｐ（ｚ）は、直接にまたは処理を加えた後に、鍵材料に用いられ、例えば、データの暗号化等、送信すべきデータを処理する。処理されたデータおよび選択されたｚは、少なくとも１つの受信側通信ユニットに送信される。もし送信者のＩＤが受信者に知られていないとすれば、受信者が送信者に対応する正しいｐを検索できるように、送信者は送信者のＩＤも送信しなければならない。ｚの送信は、好ましくは認証されて、また、安全保護された形で送信することもできる。しかし、セキュリティは必ずしも要件ではない。特に、ｚそのものは暗号化される必要はない。前記の少なくとも１つの受信者は既に秘密関数ｐを知っていて、または、送信者のＩＤを用いてデータベースから秘密関数ｐを検索するように適合されていて、ｚを受信することによりｐ（ｚ）を計算し、暗号化されていれば受信したその暗号化データを復号することができる。計算されたｐ（ｚ）は、双方向に用いることができる。あるいは、第１の鍵ｐ（ｚ１）は第１の方向に用いられ、第２の鍵ｐ（ｚ２）は第２の方向に用いられる。別の随意の選択としては、上記の追加的な処理により鍵を２つの鍵に「分離」して、１つの方向に１つの鍵を用いることである。さらなる代替案として、１つの鍵は１つの送信／セッションに用いることができる。また、新しい鍵は、例えば、毎時間または毎日等、周期的に生成する。さらに、所定の数の送信が行われたときに、または、所定の量のデータ転送の後に、または、通信ユニットが新しい鍵の生成の指示を受けたときに、新しい鍵を生成する、等である。
【００２９】
選択された値ｚ（ここでｚ∈ＧＦ（２n））は送信されるデータに含めることができる。または別のメッセージの中で送信することができる。
【００３０】
センサは、セキュリティを低下させないために、同じｚを再び用いることを回避することが望ましい。全てのこれまでのｚ値を記憶することなく、どのようにこれを達成するかを以下で検討する。
【００３１】
必要な条件ではないが、非常に効率良く有限体を計算できるので、ｎは合成数であり、例えば、８ビットＣＰＵの上で、ｗを整数として、ｎ＝８ｗの形をしていることが有利である。これに関しては、例えば、Ｄｅ  Ｗｉｎ、Ｂｏｓｓｅｌａｅｒｓ，Ｖａｎｄｅｎｂｅｒｇｈｅ、Ｄｅ  Ｇｅｒｓｅｍ、Ｖａｎｄｅｗａｌｌｅ、「Ａ  ｆａｓｔ  ｓｏｆｔｗａｒｅ  ｉｍｐｌｅｍｅｎｔａｔｉｏｎ  ｆｏｒ  ａｒｉｔｈｍｅｔｉｃ  ｏｐｅｒａｔｉｏｎｓ  ｉｎ  ＧＦ（２＾ｎ）」、Ｌｅｃｔ．Ｎｏｔｅｓ  ｉｎ  Ｃｏｍｐ．  Ｓｃｉ．、Ｓｐｒｉｎｇｅｒ−Ｖｅｒｌａｇ、１１６３巻（１９９６）、６５ページ−７６ページ、を参照できる。本発明は、原理的に任意の他の有限体に一般化できるが、簡単のために説明では２進体のみを考慮している。しかし、本発明は２進体に限定されないことに注意しなければならない。
【００３２】
通信ユニットには秘密関数ｐが設定される。ｐは通信ユニットの製造時に設定されることが望ましい。下記の例では、ｋワイズ独立な関数ｐ（ｚ）は、ＧＦ（２n）上のランダムに選択されたｋ−１次の多項式である。
ｐ（ｘ）＝ｃk-1ｘk-1＋ｃk-2ｘk-2＋．．．＋ｃ1ｘ＋ｃ0
ここに、それぞれのｃj∈ＧＦ（２n）である。しかし、厳密に言えば、より低い次数の多項式でｃk-1＝０である場合も排除されない。このようなｐは、ｚにおけるｐ、すなわちｐ（ｚ）を評価することにより、ｚ∈ＧＦ（２n）の、要素ｐ（ｚ）∈ＧＦ（２n）への任意の写像を表現することができる。
【００３３】
通信ユニットの準備は、通常は工場の環境で行われるので、ｐのランダムさの品質は高いと仮定される。異なる通信ユニットには独立でランダムなｐ（ｚ）が設定される。ここに、ｎは希望する「セキュリティレベル」に対応し、例えば、ｎ＝８０、１１２、または１２８が典型的な値であってよい。このような多項式をメモリのｋｎビットを用いて記憶することができることに注意を要する。値「ｋ」もまた、セキュリティの特性を画定するであろう。これは下記で議論されるが、ｋの実際の値としてはおおよそｎと同じ大きさであり、結果として、メモリの消費は１ｋＢよりやや大きい程度になる。
【００３４】
上記で述べたように、ｐのコピーは、通信を行っている通信ユニットに記憶されるか、または、伝えられる必要がある。これらの通信ユニットは、例えば、センサの通信ユニット、および、センサと通信を行うデバイスの通信ユニットである。例えば、センサの通信ユニットが通信を行うときには、通信ユニットは、これまでに用いられてない値ｚ∈ＧＦ（２n）を選択する。この場合、例えば、値ｚを辞書の順序に従って取り出すことにより、これまでの全ての値を「覚えている」必要を回避することができる。選択したｚを用いてｐ（ｚ）を計算し、ｐ（ｚ）を用いて、例えば送信すべきデータの暗号化等の処理を行い、そして、例えば、選択したｚを送信データの中に含める。ｚを表現するためにはｎビットが必要であることに注意を要する。受信機は受信をすると、データからｚを得て、ｐ（ｚ）を当てはめて処理に用いられているのと同じ鍵に到達する。これまでに議論したように、受信者がｐ（ｚ）を算出する前に正しいｐを検索するために、送信者はそのＩＤを含めることもできる。ｐ（ｚ）の評価は、それがホーナー法（Ｈｏｒｎｅｒ’ｓ  ｒｕｌｅ）と呼ばれる式の変形を用いて、ｄ程度の大きさのＧＦ（２n）の中での加算と乗算で実行することができるので、効率よく行われる。ホーナー法は、多項式を評価するのに効率のよい方法であり、さらには、例えば、Ｄ．Ｋｎｕｔｈ、「Ｔｈｅ  ａｒｔ  ｏｆ  ｃｏｍｐｕｔｅｒ  ｐｒｏｇｒａｍｍｉｎｇ」、第２巻、第２版、Ａｄｄｉｓｏｎ−Ｗｅｓｌｒｅｙ、１９８１年、で説明されている。
【００３５】
本発明のセキュリティの特性を以下で解析する。上記で述べたように、ランダムに選択されたｐに対して、ｐ（ｚ）は以下の特性を持つ。
【００３６】
任意の定数ｚ∈ＧＦ（２n）に対して、ＧＦ（２n）の中でｐ（ｚ）は完全に一様に分布し、確率はｐのランダムな選択全体に対して、すなわち、任意のｚとｑに対して下式で計算される。
Ｐｒ［ｐ（ｚ）＝ｑ］＝２-n
一般に、任意の（必ずしも異なる必要はない）部分集合Ｔ⊂ＧＦ（２n）に対して、また、＃Ｔ＝＃Ｓ≦ｋを持つ異なる要素の任意の集合Ｓ⊂ＧＦ（２n）に対して、ｐ（Ｓ）＝Ｔである確率は、正確に２-n#Sである。すなわち、ｐの出力はｋワイズ独立である。これらの特性は、最大でｋ個の鍵の任意の集合が、あたかも、それらが独立にかつ完全にランダムに選択されたごとくに「よい」鍵であろうということを意味する。特に、もしｋ−１個のセッションが暗号解析によって破られたとしても、攻撃者に対してその他のセッションを破る助けを与えるものではない。明らかに、もし、ｋ個ものセッションが破られれば、その後のセッションのセキュリティも失われる。しかし、どのようにその障害を限定できるかを以下で示す。もし、ｋ−１＝ｎ＝１００が選択されたとすれば、１００セッションが破られることはそうはあり得ることではない。
【００３７】
本発明のある実施形態においては、暗号化手法が受け入れられる場合には、本発明の方法は、従来の暗号化手法と組み合わせられる。これは上記で述べたように、さらなる障害制御を加えることになるであろう。もしｋ個のセッション鍵が脅かされると、多項式ｐは改変および再構成が可能であるので、従来の技術に従った上記の方法のセキュリティは失われる。例えば、ｋ＝２の場合には、多項式（これは現在ｐ（ｘ）＝ａｘ＋ｂという形のアフィン関数である）の再構成は、次式の方程式系を解くことによって行われる。
ｙ１＝ａｚ１＋ｂ
ｙ２＝ａｚ２＋ｂ
ここに、ａおよびｂは未知で、ｚ１およびｚ２は通信を聞いて得た値であり、ｙ１およびｙ２は脅かされた鍵に対応している。明らかにｚ１はｚ２と異なる値であり、未知数の数だけの方程式を持つ非縮退の方程式系が得られ、従って、（ａ，ｂ）に関する解を得ることができる。この点に関して別の見方をすれば、点（ｚ１，ｙ１）と（ｚ２，ｙ２）を通る直線を当てはめて、それによりこの線上の全ての他の点を得ることである。一般的に、ｋ個の未知数とｋ本の方程式を持つ非縮退方程式系を、例えば、標準的なガウスの方法または他の内挿法で解く必要がある。
【００３８】
もしｋ個（またはそれ以上）のセッション鍵の危機に関連する全ての危険性を回避したいならば、一般的にｋ−１個より多くのセッション鍵が、決して同じｐから生成されないことが大切である。ｋ−１個より多くの鍵が生成されても、全ての鍵が脅かされたとすれば、それらが完全なセキュリティを持つことは、もはや保証されないであろう。詳細には、ｋ11，ｋ12，．．．，ｋ1k-1が第１の（ランダム）多項式ｐ1を用いて生成される。ｐ1はｐ2によって置換される。例えば、一方向ハッシュ関数（ｏｎｅ−ｗａｙ  ｈａｓｈ  ｆｕｎｃｔｉｏｎ）等の、ある適当な、一方向の、暗号化関数ｆについて、たとえば、
ｐ2＝ｆ（ｐ1）である。
そして、ｋ21，ｋ22，．．．，ｋ2k-1はｐ2等から生成される。これにより、セキュリティの議論がより発見的／暗号的になって行くことに注意を要する。しかし、あるｐjから生成された全てのｋ−１個の鍵が脅かされたとしても、「前方の」および「後方の」セキュリティは与えることができる。センサが物理的な意味において破壊されたとしても、後方のセキュリティは保持される。
【００３９】
本発明に従った方法のフローチャート示す図３ａおよび図３ｂの説明を行う。以上のように、本発明は、送信側通信ユニットと受信側通信ユニットとの間の通信の暗号処理のための鍵を生成する方法に関する。ここに、送信側通信ユニットと受信側通信ユニットは、秘密関数に関する情報を得るように適合される。図３ａに示される方法は、
３０１．値ｚを選択するステップと、
３０２．送信ユニットにおいて、選択された値ｚの関数として秘密関数を計算するステップと、
３０３．計算された秘密関数を用いてデータを処理するステップと、
３０４．選択されたｚに関連して処理されたデータを、受信側通信ユニットに送信するステップとを有し、秘密関数は、ほぼｋワイズ独立な関数の集合から選択される。本発明は、送信側通信ユニットと受信側通信ユニットとの間の通信の安全保護処理のための鍵を生成する方法にさらに関する。送信側通信ユニットと受信側通信ユニットは、秘密関数に関する情報を得るように適合される。本方法は図３ｂのフローチャートの中に示され、
３０５．暗号処理されたデータに関連した値ｚを受信するステップと、
３０６．受信ユニットにおいて、受信されたｚの関数として秘密関数を計算するステップと、
３０７．計算された秘密関数を用いて受信されたデータを処理するステップとを有し、秘密関数は、ほぼｋワイズ独立な関数の集合から選択される。
【００４０】
本方法はコンピュータプログラム製品によって実施することができる。コンピュータプログラム製品は、通信ユニットの中の処理手段を駆動し、本発明の方法のステップの実行を制御するための読み取り可能なプログラムを含む、コンピュータ使用可能媒体の上に記憶することができる。本方法は、ハードウェアによって、またはハードウェアとソフトウェアとの組み合わせによって実施することも可能でることに注意すべきである。
【００４１】
図２に関する説明を行う。図２は、通信を行う２つの通信ユニットが示され、送信側通信ユニット（２００）はセンサの中に設けられ、受信側通信ユニット（３００）は基地局に関わる中央点に設けられる。送信側通信ユニット（２００）は、また第１の通信ユニットとも呼ばれ、送信側通信ユニットと受信側通信ユニットとの間の通信の暗号処理のための鍵を生成する手段を備える。受信側通信ユニットは、また第２の通信ユニットとも呼ばれる。双方の通信ユニットは、秘密関数に関する情報を得るように適合される。秘密関数に関する情報を得るのは、例えば、データベースから秘密関数を検索することによって行われるか、または、秘密関数は製造時に通信ユニットの中に記憶させることもできる。送信側通信ユニットは、値ｚを選択する手段（２１０）と、選択された値ｚの関数として秘密関数を計算する手段（２２０）と、計算した秘密関数を用いてデータを処理する手段（２３０）と、処理されたデータとともに、ｚを第２の通信ユニットに送信する手段（２４０）とを備える。受信側通信ユニットは、暗号処理されたデータとともに値ｚを受信するための手段（２５０）と、受信ユニットにおいて受信された数値ｚの関数として秘密関数を計算する手段（２６０）と、算出された秘密関数を用いて受信したデータを処理する手段（２７０）とを備える。本発明に従えば、秘密関数はほぼｋワイズ独立な関数の集合から選択される。
【００４２】
さらに、本発明はまた、本発明に従った通信ユニットを、ほぼｋワイズ独立な関数の集合から選択される秘密関数を用いて事前に設定するように適合された事前設定デバイスに関する。
【００４３】
本発明は、上記で説明した好ましい実施形態に限定されるものではない。種々の代替、変更、等価な形態が使用可能である。従って、上記の実施形態は、本発明の範囲を限定するものと理解されるべきではなく、本発明の範囲は添付の特許請求の範囲によって画定される。
【図面の簡単な説明】
【００４４】
【図１】本発明が実施される可能性のあるセンサネットワークを示す図である
【図２】送信および受信を行っている本発明に従った通信ユニットを示す図である。
【図３ａ】、
【図３ｂ】本発明に従った方法のフローチャートを示す図である。
【図１】
2009517703.tif 000003
【図２】
2009517703.tif 000004
【図３ａ】
2009517703.tif 000005
【図３ｂ】
2009517703.tif 000006
【手続補正書】
【提出日】平成19年9月24日(2007.9.24)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
センサネットワークの送信側通信ユニットと受信側通信ユニットとの間の通信の暗号処理のための鍵を生成する方法であって、前記送信側通信ユニットと前記受信側通信ユニットは、秘密関数に関する情報を得るように適合され、
前記方法は、
前記送信側通信ユニットにおいて値ｚを選択するステップ（３０１）と、
前記送信側通信ユニットにおいて、選択された前記値ｚの関数として前記秘密関数を計算して鍵を生成するステップ（３０２）と、
前記鍵を用いてデータを処理するステップ（３０３）と、
選択された前記ｚに関連して処理された前記データを、前記受信側通信ユニットに送信するステップ（３０４）とを有し、
前記秘密関数がほぼｋワイズ独立(ａｌｍｏｓｔ  ｋ−ｗｉｓｅ  ｉｎｄｅｐｅｎｄｅｎｔ）な関数の集合から選択され、
前記秘密関数は、前記通信ユニット間で共有され、また、独立かつランダムに事前に前記通信ユニットに設定され、
生成された前記鍵は前記送信側通信ユニットの情報にのみ基づいており、
前記通信ユニットのひとつは中央点であり、その他はセンサであり、
前記鍵は、前記センサネットワーク内のセンサの数から独立したｋに関わらず、安全に生成されることを特徴とする方法。
【請求項２】
センサネットワークの送信側通信ユニットと受信側通信ユニットとの間の通信のセキュリティ処理のための鍵を生成する方法であって、前記送信側通信ユニットと前記受信側通信ユニットは、秘密関数に関する情報を得るように適合され、
前記方法は、
暗号処理されたデータに関連した値ｚを受信するステップ（３０５）と、
前記受信側ユニットにおいて、受信された前記値ｚの関数として前記秘密関数を計算して鍵を生成するステップ（３０６）と、
生成された前記鍵を用いて受信された前記データを処理するステップ（３０７）とを有し、
前記秘密関数は、ほぼｋワイズ独立な関数の集合から選択され、
前記秘密関数は、前記通信ユニット間で共有され、また、独立かつランダムに事前に前記通信ユニットに設定され、
生成された前記鍵は前記送信側通信ユニットの情報にのみ基づいており、
前記通信ユニットのひとつは中央点であり、その他はセンサであり、
前記鍵は、前記センサネットワーク内のセンサの数から独立したｋに関わらず、安全に生成されることを特徴とする方法。
【請求項３】
前記秘密関数は、完全ｋワイズ独立な関数の集合から選択されることを特徴とする請求項１または請求項２のいずれか記載の方法。
【請求項４】
ｋワイズ独立な関数の前記集合は、有限フィールドの上で定義されたｋ−１次の多項式を備えることを特徴とする請求項１乃至請求項３のいずれか一項に記載の方法。
【請求項５】
最大ｋ−１個の鍵を生成するためにｐを使用してしまったときは、前記秘密関数ｐを関数ｐ＿ｎｅｗで置換するステップと、
前記関数ｐの暗号処理に基づいてｐ＿ｎｅｗを生成するステップと
をさらに有することを特徴とする請求項１乃至４のいずれか一項に記載の方法。
【請求項６】
前記ｐ＿ｎｅｗの生成は、一方向ハッシュ（ｏｎｅ−ｗａｙ  ｈａｓｈ）関数に基づくことを特徴とする請求項１乃至５のいずれか一項に記載の方法。
【請求項７】
前記受信側通信ユニットがｐ（ｚ）を計算する前に正しい秘密関数ｐを検索するために、前記送信側通信ユニットのＩＤを含めるステップをさらに有することを特徴とする請求項１、または請求項３乃至請求項６のいずれか一項に記載の方法。
【請求項８】
前記受信側通信ユニットがｐ（ｚ）を計算する前に正しい秘密関数ｐを検索するために、前記送信側通信ユニットのＩＤを受信するステップをさらに有することを特徴とする請求項２乃至請求項６のいずれか一項に記載の方法。
【請求項９】
通信ユニットの中にあるコンピュータの内部メモリの中に直接実装可能なコンピュータプログラムであって、請求項１乃至請求項８のいずれか一項に記載の前記ステップを実行するためのソフトウェアコードを備えることを特徴とするコンピュータプログラム。
【請求項１０】
コンピュータ使用可能媒体に記憶されるコンピュータプログラムであって、通信ユニットの中のコンピュータを駆動して請求項１乃至請求項８のいずれか一項に記載の前記ステップの実行を制御するための可読プログラムを含むことを特徴とするコンピュータプログラム。
【請求項１１】
第１の通信ユニット（２００）であって、センサネットワーク内の前記第１の通信ユニット（２００）と第２の通信ユニット（３００）との間の通信の暗号処理のための鍵を生成する手段を備え、前記第１の通信ユニット（２００）および前記第２の通信ユニット（３００）は、秘密関数に関する情報を得るように適合され、
前記第１の通信ユニットは、
値ｚを選択するための手段（２１０）と、
選択された前記値ｚの関数として前記秘密関数を計算して鍵を生成するための手段（２２０）と、
前記計算された秘密関数を用いてデータを処理するための手段（２３０）と、
選択された前記値ｚに関連して処理された前記データを、前記第２の通信ユニット（３００）に送信するための手段（２４０）とを有し、
前記秘密関数は、ほぼｋワイズ独立な関数の集合から選択され、
前記秘密関数は、前記通信ユニット間で共有され、また、独立かつランダムに事前に前記通信ユニットに設定され、
生成された前記鍵は前記送信側通信ユニットの情報にのみ基づいており、
前記通信ユニットのひとつは中央点であり、その他はセンサであり、
前記鍵は、前記センサネットワーク内のセンサの数から独立したｋに関わらず、安全に生成されることを特徴とする第１の通信ユニット。
【請求項１２】
第２の通信ユニットであって、センサネットワークの第１の通信ユニットと前記第２の通信ユニットとの間の通信のセキュリティ処理のための鍵を生成する手段を備え、前記第１の通信ユニットおよび前記第２の通信ユニットは、秘密関数に関する情報を得るように適合され、
前記第２の通信ユニットは、
暗号処理されたデータに関連した値ｚを受信するための手段（２５０）と、
前記第２のユニット（３００）において、受信された前記値ｚの関数として前記秘密関数を計算して鍵を生成するための手段（２６０）と、
計算された前記秘密関数を用いて受信された前記データを処理するための手段（２７０）とを備え、
前記秘密関数は、ほぼｋワイズ独立な関数の集合から選択され、
前記秘密関数は、前記通信ユニット間で共有され、また、独立かつランダムに事前に前記通信ユニットに設定され、
生成された前記鍵は前記送信側通信ユニットの情報にのみ基づいており、
前記通信ユニットのひとつは中央点であり、その他はセンサであり、
前記鍵は、前記センサネットワーク内のセンサの数から独立したｋに関わらず、安全に生成されることを特徴とする第２の通信ユニット。
【請求項１３】
前記秘密関数は、完全ｋワイズ独立な関数の集合から選択されることを特徴とする請求項１１または請求項１２のいずれかに記載の通信ユニット。
【請求項１４】
ｋワイズ独立な関数の集合は、有限体上で定義されるｋ−１次の多項式を備えることを特徴とする請求項１１乃至請求項１３のいずれか一項に記載の通信ユニット。
【請求項１５】
最大ｋ−１個の鍵を生成するためにｐを使用してしまったときは、前記秘密関数ｐを関数ｐ＿ｎｅｗで置換するための手段と、
前記関数ｐの暗号処理に基づいてｐ＿ｎｅｗを生成するための手段と
を備えることを特徴とする請求項１１乃至請求項１４のいずれか一項に記載の通信ユニット。
【請求項１６】
一方向ハッシュ関数に基いて前記ｐ＿ｎｅｗを生成するための手段を備えることを特徴とする請求項１１乃至請求項１５のいずれか一項に記載の通信ユニット。
【請求項１７】
前記第２のユニットがｐ（ｚ）を計算する前に正しい秘密関数ｐを検索するために、前記通信ユニットのＩＤを含めるための手段を備えることを特徴とする請求項１３、または請求項１３乃至請求項１６のいずれか一項に記載の通信ユニット。
【請求項１８】
前記第２の通信ユニットがｐ（ｚ）を計算する前に正しい秘密関数ｐを検索するために、前記第１の通信ユニットのＩＤを受信するための手段を備えることを特徴とする請求項１２乃至請求項１６のいずれか一項に記載の方法。
【請求項１９】
請求項１１または請求項１２に記載の前記通信ユニットを、秘密関数を用いて事前設定するように適合された事前設定デバイスであって、前記秘密関数は、ほぼｋワイズ独立な関数の集合から選択されることを特徴とする事前設定デバイス。
【国際調査報告】
2009517703.tif 000007
2009517703.tif 000008
2009517703.tif 000009