(57)【要約】【課題】ネットワーク、好ましくは無線センサネットワーク内の少なくとも２個のノード間での認証方法を提供する。【解決手段】送信ノードがハッシュ関数ｈを用いて長さｔビットのハッシュ値を計算する。送信ノードから受信ノードへハッシュ値のｔ−ｋビットのみを打ち切りハッシュ値として転送する。ここでｋは１とｔ−１の間の任意の自然数定数である。送信されたハッシュ値は受信ノードで計算されたハッシュ値と比較される。これにより、ネットワークを通じて追加的に送信するデータは最小限となる。【選択図】図１
2007089147.tif 000002
【特許請求の範囲】
【請求項１】
ネットワーク、好ましくは無線センサネットワーク内の少なくとも２個のノード間での認証方法において、送信ノードがハッシュ関数ｈを用いて長さｔビットのハッシュ値を計算し、
前記送信ノードから受信ノードへ前記ハッシュ値のｔ−ｋビットのみを打ち切りハッシュ値として転送し、ここでｋは１とｔ−１との間の任意の自然数定数であり、送信されたハッシュ値は前記受信ノードで計算されたハッシュ値と比較されることを特徴とする認証方法。
【請求項２】
前記打ち切りハッシュ値を算出するために、前記ハッシュ値の連続するｔ−ｋビット、好ましくは上位ｔ−ｋビットが使用されることを特徴とする請求項１に記載の方法。
【請求項３】
ｋは、前記打ち切りハッシュ値が約８ビット程度の長さを示すように選択されることを特徴とする請求項１または２に記載の方法。
【請求項４】
ハッシュ関数ｈとして鍵付きハッシュ関数が使用されることを特徴とする請求項１〜３のいずれか１項に記載の方法。
【請求項５】
各認証で、前記鍵付きハッシュ関数ｈのパラメータとして、別の鍵が使用されることを特徴とする請求項４に記載の方法。
【請求項６】
ｉ番目の認証に対し、前記鍵付きハッシュ関数ｈの鍵として、別のハッシュ関数により計算されたハッシュ値ｘn-iが使用されることを特徴とする請求項４または５に記載の方法。
【請求項７】
前記ハッシュ値ｘn-iが、入力値ｘ0に対する前記別のハッシュ関数の反復適用によって計算され、ハッシュ値ｘj+1が、前記別のハッシュ値を１回適用することによりハッシュ値ｘjから計算されることを特徴とする請求項６に記載の方法。
【請求項８】
前記鍵付きハッシュ関数が、送信すべきメッセージにパラメータとして渡されることを特徴とする請求項４〜７のいずれか１項に記載の方法。
【請求項９】
前記ハッシュ関数ｈによって計算されるハッシュ値が、渡されるメッセージに依存することを特徴とする請求項８に記載の方法。
【請求項１０】
前記メッセージが、前記送信ノードから前記受信ノードへ前記打ち切りハッシュ値とともに送信されることを特徴とする請求項１〜９のいずれか１項に記載の方法。
【請求項１１】
前記計算されたハッシュ値が、前記受信ノードで計算されることを特徴とする請求項１〜１０のいずれか１項に記載の方法。
【請求項１２】
前記計算されたハッシュ値が、受信されたメッセージを使用することにより計算されることを特徴とする請求項１１に記載の方法。
【請求項１３】
前記送信ノードで前記計算されたハッシュ値を計算するために、同一または少なくとも同程度の計算ステップが適用されることを特徴とする請求項１〜１２のいずれか１項に記載の方法。
【請求項１４】
前記送信ノードおよび前記受信ノードには、入力値ｘ0、前記２つのハッシュ関数、および前記入力値に前記別のハッシュ関数を適用することが可能な回数ｎが既知であることを特徴とする請求項１〜１３のいずれか１項に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワーク、好ましくは無線センサネットワーク内の少なくとも２個のノード間での認証方法に関する。ここで、送信ノードがハッシュ関数ｈを用いて長さｔビットのハッシュ値を計算する。
【背景技術】
【０００２】
ほとんどのネットワークにおいて、データ転送の信頼性および安全性は主要な条件である。このことは、一方では、データが送信ノードから受信ノードへ高い信頼性で送信されることを含み、他方では、無権限者によるデータパケットの注入や送信データの改竄を排除あるいは防止しなければならないことを含む。特に、無線ネットワークの場合、無権限のアクセスからの物理的保護はほとんど不可能なので、これらの条件は本質的に重要である。応用分野によっては、さらに、送信データ傍受の防止が重要である。
【０００３】
データ送信の安全性を確保するための多様な方法が当業者に既知である。一方では、アクセス制御のための高度なプロトコルが用いられ、他方では、適切なセキュリティメカニズムが送信データを保護する。送信中のデータの改竄や、データを無権限でネットワークに注入することは、認証および署名のためのさまざまな方法によって防止される。送信データの探知は、データの暗号化によって効率的に防止できる。このためには、例えばＰＧＰ（Pretty Good Privacy）、Ｓ／ＭＩＭＥ（Secure/Multipurpose Internet Mail Extension）あるいはＤＳＡ（Digital Signature Algorithm、ディジタル署名アルゴリズム）のような方法が利用可能である。制約のある環境における認証方法に関しては、例として、非特許文献１あるいは非特許文献２に記載の研究が挙げられる。
【０００４】
認証、署名および／または暗号化の方法を用いると、送信されるべきメッセージは追加的情報によって補完される。これにより、メッセージを一意的に送信元にマッピングすることが可能となり、送信が正しく改竄なしに行われたことが示され、および／または送信中のメッセージが読み出し不能になる。これらのすべての効果の代償として、送信メッセージにはかなりの冗長性が必ず追加される。
【０００５】
【非特許文献１】Ｒ．アンダーソン（R. Anderson）、「新規な認証プロトコルのファミリ（A family of new authentication protocols）」、Operating System Review 32(4):9-20
【非特許文献２】Ｆ．スタンジャノ（F. Stanjano）、Ｒ．アンダーソン（R. Anderson）、「Resurrecting Duckling：アドホック無線ネットワークにおけるセキュリティ問題（Resurrecting Duckling: Security Issues in Ad-Hoc Wireless Networks）」、3rd ATT Software Symposium, 1999
【発明の開示】
【発明が解決しようとする課題】
【０００６】
多くのネットワークコネクションの場合には、十分な帯域幅が利用可能なので、追加的なデータ送信量はあまり問題とならない。しかし、無線センサネットワークの場合には一般に、かなり狭い帯域幅のネットワークコネクションが実装されている。認証識別子、署名あるいは暗号化メッセージを計算するプロセッサの処理能力に加えて、電源リソースも非常に制約される。多くの方法は、かなりの計算能力を必要とするので採用されない。ＭＡＣ（Message Authentication Code、メッセージ認証符号）のような高速計算可能な認証方法は、生じる冗長性が比較的高いという欠点を有することが多い。現在、これらの相反する目標に対する解決手段を満足な形で実現できる方法は知られていない。
【課題を解決するための手段】
【０００７】
そこで、本発明は、上記のような方法において、追加的情報の簡単な計算が可能であり、ネットワークが負担する追加データ送信量がなるべく少なく、しかもなお安全な認証が可能な方法を実現し、さらに改良するという課題を解決しようとするものである。
【０００８】
本発明によれば、上記の課題は請求項１に記載の特徴を備えた方法によって解決される。これによれば、本発明の認証方法は、送信ノードから受信ノードへハッシュ値のｔ−ｋビットのみを打ち切りハッシュ値として転送することを特徴とする。ここで、ｋは１とｔ−１の間の任意の自然数定数であり、送信されたハッシュ値は受信ノードで計算されたハッシュ値と比較される。
【０００９】
本発明により初めて認識されたこととして、メッセージの十分に安全な認証を実現するためには、多くの追加ビット数が必ずしも必要なわけではない。むしろ、認証識別子内の正しいビット列の推測を混乱させるには、ビット列をうまく選択すれば、比較的少ないビット数で十分である。本発明による方法は、計算が簡単なハッシュ関数を用いる。長さｔビットのハッシュ値をハッシュ関数により生成する。本発明によれば、メッセージの認証のためには、そのｔビットの全部は送信しない。その代わりに、送信の際には、ハッシュ値の非常に小さい部分のみを考慮する。このため、ハッシュ値のｔ−ｋビットを切り出して認証に用いる。ｋの値は１とｔ−１の間の比較的任意の自然数であり、最初に定義した後は一般に一定値のままである。打ち切ったハッシュ値を受信ノードへ送信し、そこで計算されたハッシュ値と比較し、これにより認証を実行する。ハッシュ値のｔ−ｋビットを用いた認証により、潜在的衝突数は増大するが、一致する認証識別子をランダムに生成するためには依然として最大２t-k回の試行が必要である。
【００１０】
衝突とは、ハッシュ関数の入力値が異なるにもかかわらず最終結果が同一ハッシュ値となる場合のことである。送信すべきメッセージとともに、ｔビットではなくｔ−ｋビットのみを送信すればよいので、ネットワークコネクションははるかに効率的に使用可能となる。本発明による方法によれば、追加的労力は非常に少ないにもかかわらず、非常に効率的な認証が実現可能である。本発明による方法は、ハッシュ値の計算が簡単であり、認証によるネットワークコネクションへの負荷が非常に低いので、きわめて省電力である。また、本発明による方法は、ＤｏＳ（サービス拒否）攻撃に対する保護も提供する。
【００１１】
好ましくは、打ち切りハッシュ値は、連続するｔ−ｋビットを用いて生成される。その選択は、計算したハッシュ値の上位ｔ−ｋビットを選択すれば非常に容易になる。特に無線センサシステムの分野での多くのシステムはマイクロコントローラを用いてこのような計算をするので、上位ビットの使用は非常に容易に実現可能である。ほとんどの場合、８ビットまたは１６ビット幅の記憶域を有するプロセッサが用いられるので、単にハッシュ値の上位ビットを格納する記憶要素を使用することでハッシュ値を容易に打ち切ることができる。なお、ハッシュ値から他の任意のｔ−ｋビットを選ぶことも可能である。ハッシュ値のどのビットを使用するかは問わない。特に、それらのビットは必ずしも互いに連続している必要はない。前提条件は、システムの動作開始前に、送信ノードと受信ノードが、どのビットがハッシュ値から選ばれるかを定める規則を知っていることだけである。
【００１２】
送信データ量をできるだけ効果的に低減することに関して、打ち切りハッシュ値の長さがほぼ８ビットとなるようにｋを選択するのが好ましい。通常、ハッシュ値の長さは８０〜１２８ビットであるので、これは送信データ量の低減にとって大きな可能性を開くことが明らかである。一般に、個々のビットの送信はプロセッサ命令の実行と同等以上のコストがかかるので、本発明による方法は大幅にコストを低減する。
【００１３】
計算される認証識別子のセキュリティレベルをできるだけ高くするため、ハッシュ関数として鍵付きハッシュ関数を使用するのが好ましい。鍵付きハッシュ関数とは、その結果が入力値に依存するだけでなく、計算のために選択された鍵にも依存するハッシュ関数である。各認証ごとに、鍵付きハッシュ関数のパラメータとして別の鍵を使用すれば、鍵付きハッシュ関数は特に有効となる。
【００１４】
送信ノードおよび受信ノードで別個に多数の鍵を保管する必要をなくすため、各ノード内において共通の入力値ｘ0からハッシュ関数を繰り返し適用することによって複数の鍵を生成することができる。ｉ番目の認証はハッシュ値ｘn-iによって計算される。ここでｘn-iは、入力値ｘ0に対してハッシュ関数を（ｎ−ｉ）回反復適用することによって計算される。関数について特定の選択をすれば、ハッシュ関数の逆関数は容易に求めることができない。すなわち、ハッシュ関数が与えられても、ハッシュ値ｘjを知ることからは、非常に多大な労力を払わなければ、ハッシュ値ｘj-1を推論することができない。
【００１５】
したがって、ハッシュ値は逆順で利用される。その結果、反復計算回数は認証ごとに減少する。
【００１６】
認証識別子に関して、送信者の認証が可能なだけでなく、メッセージの改竄のない伝送も検証すべきなので、認証識別子は送信メッセージに依存させることができる。これは、鍵付きハッシュ関数がメッセージをパラメータとし、メッセージおよび鍵に依存するハッシュ値を計算する理由である。このようにして計算されたハッシュ値を打ち切り、受信ノードへ送信すべきメッセージとともに送信する。
【００１７】
有利な態様として、送信ノードだけが、入力値ｘ0、ハッシュ関数およびハッシュ関数の反復適用回数ｎを知るのではなく、このデータは受信ノードにも通知されるとよい。これは、システムの動作開始前に行うのが好ましい。最も簡単なのは、個々の装置の生産時に行うことである。
【００１８】
また、認証識別子は、受信ノードで、受信メッセージ、そこに保存されているハッシュ関数、入力値ｘ0、および数ｎに基づいて計算することも可能である。この場合、有利な態様として、送信ノードにおけるのと同一または少なくとも同程度の計算ステップが適用される。受信ノードで計算される認証識別子は、計算ハッシュ値としての役割を果たし、受信メッセージの認証に用いられる。両方のハッシュ値が一致する場合、受信メッセージは、示されている送信者から来たものであって、改竄されていないと想定される。
【００１９】
この場合、メッセージに含まれる情報および／または命令がさらに処理される。２つのハッシュ値が異なる場合、受信メッセージは破棄される。これにより、ＤｏＳ攻撃に対するある一定の堅牢性が実現できる。
【発明の効果】
【００２０】
本発明によれば、送信すべきメッセージとともに、ｔビットではなくｔ−ｋビットのみを送信すればよいので、ネットワークコネクションははるかに効率的に使用可能となる。本発明による方法によれば、追加的労力は非常に少ないにもかかわらず、非常に効率的な認証が実現可能である。本発明による方法は、ハッシュ値の計算が簡単であり、認証によるネットワークコネクションへの負荷が非常に低いので、きわめて省電力である。また、本発明による方法は、ＤｏＳ（サービス拒否）攻撃に対する保護も提供する。
本発明を有利な態様で実施し改良するためのいくつかの選択肢がある。これに関しては、一方で請求項１に従属する請求項を参照し、他方で図面とともに本発明の好ましい実施例に関する以下の説明を参照されたい。好ましい実施例および図面の説明においては、一般的に本発明の好ましい実施形態および改良形態も説明される。
【発明を実施するための最良の形態】
【００２１】
図１は、本発明による方法を実施するために使用可能な無線センサネットワークを模式的に示している。複数のセンサノード１が無線ネットワークコネクション３を通じてシンク２に接続されている。このシンク２には、遠隔コンピュータ４が有線コネクション５を通じて接続されている。
【００２２】
無線センサ１を設置する前に、入力値ｘ0、認証識別子を計算するための鍵付きハッシュ関数ｈ、鍵を生成するための別のハッシュ関数、およびこの別のハッシュ関数の最大反復適用回数ｎが保存される。
【００２３】
鍵付きハッシュ関数ｈはＭＡＣ（メッセージ認証符号）であり、別のハッシュ関数はランポート（Lamport）のハッシュ値を生成するように設計される。ハッシュ値ｘjからは、別のハッシュ関数を適用することによってハッシュ値ｘj+1を計算することができる。ここでｘ0は入力値の役割を果たす。また、計算量を低減するために、別のハッシュ関数のある一定の適用回数（例えば連続する６４回の計算）に対して、ハッシュ値の暫定値を保存することができる。シンク２は、それぞれの値および関数のコピーも受け取る。
【００２４】
例として、センサ値の取得がセンサ１．２で開始され、シンク２を通じて遠隔コンピュータ４へ転送されるとする。このために、シンク２は、センサ１．２への対応する要求を開始する。要求はまず符号化されてから、無権限の傍受に対する保護のために暗号化される。この場合、暗号化方法は問わないので、当業者に既知の任意の方法が用いられると仮定する。選択した暗号化方法によって、冗長性の追加がなるべく少なくなればよい。暗号化された要求は、最終的に、センサへ送信されるメッセージとなる。
【００２５】
認証識別子を計算するため、まず鍵を選択する。このため、システム動作開始以来何個の要求がなされたかをチェックする。この数ｉは適当なレジスタに保存することができる。入力値ｘ0に別のハッシュ関数を（ｎ−ｉ）回適用することにより、ハッシュ値ｘn-iを計算して鍵とする。
【００２６】
鍵が得られた後、この鍵は、鍵付きハッシュ関数ｈに渡されてメッセージに適用される。その計算の結果をここではＭＡＣ（ｍ，ｘn-i）とする。その後、ハッシュ値の上位ｔ−ｋビットを切り出し、メッセージｍと連結することにより新たなメッセージ＜ｍ，（ｔ−ｋ）−ＭＡＣ（ｍ，ｘn-i）＞を得る。ここで、（ｔ−ｋ）−ＭＡＣ（ｍ，ｘn-i）は、ハッシュ値ＭＡＣ（ｍ，ｘn-i）の上位ｔ−ｋビットを意味する。最後に、この新たなメッセージをセンサノード１．２へ送信する。
【００２７】
センサノード１．２（この場合は受信ノード）は、受信メッセージからメッセージｍ′を取り出し、このセンサノードに既知であるｉの値を用いて同様に値ｘn-iを計算する。このために、ネットワークの設置前にセンサに保存しておいた値およびハッシュ関数を使用する。受信ノードでは、受信メッセージに対するハッシュ値ＭＡＣ（ｍ′，ｘn-i）を算出する。ハッシュ値の上位ｔ−ｋビットを切り出した後、その打ち切りハッシュ値を受信したハッシュ値と比較する。両方の打ち切りハッシュ値が一致する場合、要求が処理され、状況に応じて測定値あるいは他のメッセージが、必要なプロトコルの一部としてシンクへ送信される。これにより、送信ノードおよび受信ノードの役割が入れ替わる。センサが送信ノードとなり、シンクが受信ノードとなる。
【００２８】
ハッシュ値が一致しない場合、次のハッシュ値ｘn-i-1に対して処理を繰り返すことができる。ｘn-i-1は既に計算されているので、ＭＡＣ（ｍ′，ｘn-i-1）を算出するだけでよい。これを行うのは、無線ネットワークでは要求が宛先で受信されないことがあり得るからである。必要があれば、これらの計算は、与えられたフレーム内で別のハッシュ値を用いて繰り返すことができる。正しいハッシュ値が見出された場合、要求を処理することができる。シンクには、変更された要求番号を通知する。
【００２９】
最後に、留意すべき特に重要な点であるが、上記の本発明による実施例は、全く任意に選択されたものであり、本発明による教示の実例としての役割を果たすに過ぎず、本発明を上記実施例に限定するものでは全くない。
【図面の簡単な説明】
【００３０】
【図１】本発明による方法を実施するためのシステムの概略図である。
【符号の説明】
【００３１】
１  センサノード
２  シンク
３  無線ネットワークコネクション
４  遠隔コンピュータ
５  有線コネクション
【図１】
2007089147.tif 000003