(57)【要約】  複数のノードＮ１〜Ｎ９を含む通信システム内の通信メッセージの検証処理を管理する方法及び装置は、通信システムの第１のノードＮ１において、第１のノードＮ１の１つ以上の近隣ノードＮ２〜Ｎ９から、１つ以上の通信メッセージを受信するステップと、受信した１つ以上の通信メッセージについて有効性検証動作を実行するステップと、第１のノードＮ１において単位時間毎に実行される有効性検証動作の数を示す総合的検証率パラメータＶ＿ａｌｌを判定するステップと、第１のノードＮ１において受信した第１のノードＮ１の近隣ノードＮ２〜Ｎ９からの１つ以上の更なる通信メッセージについて、総合的検証率パラメータＶ＿ａｌｌが総合的検証率閾値を超えないように、有効性検証動作の実行を制御するステップとを有する（図４Ａ）。
2016088676.tif 000002
【特許請求の範囲】
【請求項１】
複数のノード（Ｎ１〜Ｎ９）を含む通信システム内の通信メッセージの検証処理を管理する方法において、
前記通信システムの第１のノード（Ｎ１）において、前記第１のノード（Ｎ１）の１つ以上の近隣ノード（Ｎ２〜Ｎ９）から、１つ以上の通信メッセージを受信するステップと、
前記受信した１つ以上の通信メッセージについて有効性検証動作を実行するステップと、
前記第１のノード（Ｎ１）において単位時間毎に実行される有効性検証動作の数を示す総合的検証率パラメータ（Ｖ＿ａｌｌ）を判定するステップと、
前記第１のノード（Ｎ１）において受信した前記第１のノード（Ｎ１）の近隣ノード（Ｎ２〜Ｎ９）からの１つ以上の更なる通信メッセージについて、前記総合的検証率パラメータ（Ｖ＿ａｌｌ）が総合的検証率閾値（Ｌ；Ｌ＋ε）を超えないように、前記有効性検証動作の実行を制御するステップとを有する方法。
【請求項２】
前記１つ以上の更なる通信メッセージについて前記有効性検証動作の実行を制御するステップは、前記総合的検証率パラメータが前記総合的検証率閾値（Ｌ；Ｌ＋ε）を超えると判定されたとき、１つ以上のノード別検証率（Ｖ＿ｉ）を低めるステップを含み、及び／又は
前記１つ以上の更なる通信メッセージについて前記有効性検証動作の実行を制御するステップは、前記総合的検証率パラメータが第２の検証率閾値（Ｌ−ε）以下に低下したと判定されたとき、１つ以上のノード別検証率（Ｖ＿ｉ）を高めるステップを含む請求項１記載の方法。
【請求項３】
前記ノード別検証率（Ｖ＿ｉ）のそれぞれは、前記第１のノード（Ｎ１）の近隣ノード（Ｎ＿ｉ）のそれぞれと個別に関連付けられ、前記各ノード別検証率（Ｖ＿ｉ）は、前記関連する近隣ノード（Ｎ＿ｉ）のそれぞれから受信した通信メッセージについて、前記第１のノード（Ｎ１）において単位時間毎に実行される有効性検証動作の数を示す請求項２記載の方法。
【請求項４】
前記第１のノード（Ｎ１）において、前記第１のノード（Ｎ１）の近隣ノードのうちの第２のノード（Ｎ＿ｉ）から１つ以上の第１の通信メッセージを受信するステップと、
前記受信した１つ以上の第１の通信メッセージについて有効性検証動作を実行するステップと、
前記第１のノード（Ｎ１）において、前記第２のノード（Ｎ＿ｉ）からの１つ以上の第２の通信メッセージを受信するステップとを有し、
前記第２のノード（Ｎ＿ｉ）に関連する前記ノード別検証率を低めるステップは、
前記第１のノード（Ｎ１）において、前記第２のノード（Ｎ＿ｉ）から１つ以上の第２の通信メッセージを受信すると、前記１つ以上の第１の通信メッセージの検証の有効性検証結果に基づいて、前記１つ以上の第２の通信メッセージについて有効性検証動作を実行するか否かを決定することを含む請求項２又は３記載の方法。
【請求項５】
前記１つ以上の第２の通信メッセージについて有効性検証動作を実行するか否かの決定は、前記第２のノードに関連し及び前記第２のノードから受信した通信メッセージに関連する成功した有効性検証結果を示す検証履歴データに基づいて実行される請求項４記載の方法。
【請求項６】
前記第２のノードに関連する前記検証履歴データは、前記第２のノードに関連する信頼度のレベルを示す検証パラメータ（Ｋ＿ｉ）を含む請求項５記載の方法。
【請求項７】
前記第２のノード（Ｎ＿ｉ）から受信される前記通信メッセージの検証が連続的に成功した数に基づいて、前記第２のノード（Ｎ＿ｉ）の前記検証パラメータ（Ｋ＿ｉ）を判定するステップを更に有する請求項６記載の方法。
【請求項８】
前記第２のノード（Ｎ＿ｉ）の検証パラメータ（Ｋ＿ｉ）は、前記第２のノード（Ｎ＿ｉ）から受信された通信メッセージの検証が連続的に成功した数の増加によって前記第２のノード（Ｎ＿ｉ）の信頼度レベルが増加するように決定される請求項７記載の方法。
【請求項９】
前記第２のノード（Ｎ＿ｉ）の検証パラメータ（Ｋ＿ｉ）は、前記第２のノード（Ｎ＿ｉ）から受信された通信メッセージに対して実行された１つ以上の有効性検証動作が失敗した場合、前記第２のノード（Ｎ＿ｉ）の信頼度レベルが減少するように決定される請求項７又は８記載の方法。
【請求項１０】
前記第２のノード（Ｎ＿ｉ）に関連する検証パラメータ（Ｋ＿ｉ）に基づいて、前記第２のノード（Ｎ＿ｉ）に関連するノード別受信率（Ｒ＿ｉ）に関するノード別検証率（Ｖ＿ｉ）を示す検証率低減係数（Ｆ＿ｉ）を決定するステップを更に有する請求項６乃至９いずれか１項記載の方法。
【請求項１１】
前記第２のノード（Ｎ＿ｉ）に関連する許容される最大検証率低減量に基づいて及び／又は判定された総合的検証率パラメータ（Ｖ＿ａｌｌ）と総合的検証率閾値（Ｌ；Ｌ＋ε）の差に基づいて、前記第２のノード（Ｎ＿ｉ）に関連するノード別検証率（Ｖ＿ｉ）を低減するステップを更に有する請求項４乃至９いずれか１項記載の方法。
【請求項１２】
前記第２のノード（Ｎ＿ｉ）に関連する許容される最大検証率低減量が前記判定された総合的検証率パラメータ（Ｖ＿ａｌｌ）と前記総合的検証率閾値（Ｌ；Ｌ＋ε）の差より小さい場合、前記第２のノード（Ｎ＿ｉ）に関連するノード別検証率（Ｖ＿ｉ）は、前記第２のノード（Ｎ＿ｉ）に関連する許容される最大検証率低減量以下に低められ、
前記方法は、第３のノード（Ｎ＿ｉ）に関連するノード別検証率を低めるステップを更に有し、このステップは、前記第１のノード（Ｎ１）において前記第３のノード（Ｎ＿ｉ）から１つ以上の第３の通信メッセージを受信すると、前記１つ以上の第３の通信メッセージの検証の有効性検証結果に基づいて、１つ以上の第４の通信メッセージについて有効性検証動作を実行するか否かを決定することを含む請求項１１記載の方法。
【請求項１３】
前記第２のノード（Ｎ＿ｉ）に関連する許容される最大検証率低減量は、前記第２のノード（Ｎ＿ｉ）に関連する判定された検証率低減係数（Ｆ＿ｉ）及び第１のノード（Ｎ１）において第２のノード（Ｎ＿ｉ）から受信される単位時間あたりの通信メッセージの数を示すメッセージ受信率（Ｒ＿ｉ）に基づいて決定される請求項１０乃至１２いずれか１項記載の方法。
【請求項１４】
複数のノードを含む通信システム内の通信メッセージの検証処理を管理する装置において、
１つ以上の近隣ノードから１つ以上の通信メッセージを受信するように構成された受信機と、
処理ユニットとを備え、前記処理ユニットは、
前記受信した１つ以上の通信メッセージについて有効性検証動作を実行し、
前記受信機において単位時間毎に実行される有効性検証動作の数を示す総合的検証率パラメータを判定し、
前記受信機において受信した前記近隣ノードからの１つ以上の更なる通信メッセージについて、前記総合的検証率パラメータが総合的検証率閾値を超えないように、前記有効性検証動作の実行を制御するように構成されている装置。
【請求項１５】
複数のノードを含む通信システム内の通信メッセージの検証処理を管理するコンピュータプログラム製品において、前記通信システムの第１のノードにおける処理ユニット上で実行され又は処理ユニットにロードされると、前記第１のノードの受信機が前記第１のノードの１つ以上の近隣ノードから、１つ以上の通信メッセージ受信したとき、前記処理ユニットに請求項１乃至１３いずれか１項記載の方法を実行させるコンピュータ読取可能プログラム命令を有するコンピュータプログラム製品。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のノードを含む通信システム、特に、モバイルノードと、オプションとして固定ノードを更に含むモバイルアドホックネットワーク（mobile ad hoc network）内の通信メッセージの検証処理を管理する方法及び装置に関する。
【背景技術】
【０００２】
非インフラストラクチャネットワーク技術、例えば、アドホックネットワーク及びセンサネットワークが普及しつつある。特に、高度道路交通システム（Intelligent Transport System：ＩＴＳ）の分野では、交通安全、交通効率、並びにドライバ及び同乗者の快適性及び／又は娯楽体験を向上させるための車両と車両の間（Ｖ２Ｖ）及び車両とインフラストラクチャの間（Ｖ２Ｉ）の分散型の無線通信技術が世界中で活発に研究されている。【０００３】
無線アドホックネットワーク（Mobile Ad-hoc NETwork：ＭＡＮＥＴ）は、無線通信手段によって無線通信を介して接続された複数のネットワークノードによって形成される通信ネットワークである。無線通信手段は、以下に限定されるわけでないが、ＷＬＡＮ、ブルートゥース及び／又は赤外線インタフェースを含んでいてもよい。ＭＡＮＥＴに参加する各ネットワークノードは、クライアント、サーバ又は一組のネットワークノード間で確立される通信のための中継器として動作するように構成される。【０００４】
ＭＡＮＥＴのトポロジは、通常、任意であり、各ネットワークノードは、自由に、予測不能に動くことができる。通常、ＭＡＮＥＴのサイズは、比較的小さく維持されるが、ＭＡＮＥＴネットワークのノード数は、基本的に無制限であり、制限なしに増加する可能性がある。【０００５】
ＭＡＮＥＴノードの大部分が車両である場合又は（無線通信手段が車両に搭載されているという仮定の下で）少なくとも自動車等の車両に搭載されている場合、このようなネットワークは、通常、自動車ＭＡＮＥＴ（Vehicular MANET）又はＶＡＮＥＴと呼ばれる。【０００６】
もちろん、ＶＡＮＥＴの幾つかのノードは、固定ノード又は実質的な固定ノードであってもよく、例えば、信号機に取り付けられたノード、路側通信機に取り付けられたノード、ＶＡＮＥＴ拡大器（VANET extensor）又は準固定ノードとして歩行者が携帯するデバイス（例えば、携帯電話機）であってもよい。ノード追跡及び位置関連のサービスのためにＧＰＳ又はガリレオ（Galileo）等の測位システムを用いてもよい。【０００７】
ＶＡＮＥＴノードの移動性は、通常、例えば、道路及び交差点等から構成される交通ネットワーク等の特定の経路によって制約されるが、このトポロジは、例えば、ナビゲーションシステムのためのナビゲーションデータを介して、デジタル的に利用可能となる場合がある。【０００８】
ノードの移動性が潜在的に高いこのような車両用の通信ネットワークでは、これらのサービスのためのデータ通信をサポートするために高度なアクセス制御、トポロジ維持管理及びルーティング処理が必要である。【０００９】
この分野の特徴的技術の１つは、車両の位置情報及び宛先に基づいてデータメッセージ又はデータパケットを送達する地理ベースのルーティング／配信（routing/dissemination）である。【００１０】
多くの車両用通信ネットワークアプリケーションの基礎は、位置、向き及び速度等の情報を搬送する周期的ビーコン（periodic beacons）によって表現される。ビーコン動作を安全に行うために、メッセージは、署名され、及び／又は有効なネットワーク参加者であるとの証明が添付される。【００１１】
例えば、Ｅ．Ｓｃｈｏｃｈ及びＦ．Ｋａｒｇｌによる論文「On the Efficiency of Secure Beaconing in VANETs」（In: Proceedings of the third ACM conference on Wireless network security, ACM WiSec 2010, Hoboken, New Jersey, USA; pp. 111-116）で論じられているように、近年の標準化動向及びフィールドテストから、ビーコン動作は、将来のＣ２Ｘ（car-to-car又はcar-to-X通信）ｅＳａｆｅｔｙアプリケーションのための初期的に重要な側面となることが明らかとなっている。【００１２】
「ビーコン動作（beaconing）」とは、通常、車両の位置及び他の情報を含むパケット／メッセージを、全ての近隣車両又は路側ユニットに、（単一ホップ）リンク層ブロードキャストとして定期的に送信することを意味する。安全なインプリメントを行わないと、ビーコン動作は、悪用される可能性がある。これらの問題に対処するため、ＥＣＤＳＡ等の非対称暗号メカニズム及び更なるメカニズムに基づく署名を使用する多くの安全策が提案されている。基本的なストラテジは、非対称暗号鍵対及び／又は信頼できる認証機関（certification authority：ＣＡ）が発行する証明書をノードに提供することである。【００１３】
そして、全てのビーコンが車両の署名鍵（signature key）ＳＫを用いて署名され、受信機は、検証鍵（verification key）ＶＫを使用して、ビーコンを検証する。ＶＫを含む署名及び証明書は、ビーコンに添付される。このメカニズムでは、２つの重大な問題が生じる。第１に、ビーコンに署名及び／又は証明書を追加することによって、大きなプロトコルオーバヘッドが生じる。オーバヘッドが比較的小さいＥＣＣベースのソリューションを用いても、署名及び証明書は、少なくとも１５０〜１６０バイトが必要であり、署名の作成及び検証によって、大きな演算オーバヘッドが生じる。送信されるビーコン毎に、１件の署名の生成と、最大２件の検証（署名及び証明書）が必要である。【００１４】
近隣の車両が最大２００台であり、ビーコンレートが１０Ｈｚであるとすると、車両は、１秒につき１０個の署名を生成し、４０００個の署名を検証する必要があり、これは、一般的な車載ユニットの能力を超える。車両製造は、コスト上の制約が多く、車載ユニットは、安価である必要があるので、この問題は、より強力なハードウェアを用いることによって解決することはできない。【００１５】
上述した論文は、証明書及び／又は署名の検証を省略することを提案しているが、この方法は、例えば、他のノードから受信したパケットメッセージを周期的及び固定的にｎ個毎に検証することによって、検証を省略するのみである。この手法では、ノードの密度が高いシナリオ、例えば、交通渋滞中では、処理負荷を十分に低めることができないという問題があり、また、密度が低いシナリオでも、ｎ個毎のパケット／メッセージを検証するのみであるために安全性に問題が生じることがある。【００１６】
ＥＰ２０５８９９２Ａ１及びＷＯ２０１３／１８５９９７Ａ１は、優先順位に基づいてパケット／メッセージ検証のシーケンスを変更するアルゴリズムを開示しているが、この手法では、受信したパケット／メッセージの全てが検証される。
【先行技術文献】
【特許文献】
【００１７】
【特許文献１】欧州特許出願公開第２０５８９９２号明細書
【特許文献２】国際公開第２０１３／１８５９９７号公報
【発明の概要】
【発明が解決しようとする課題】
【００１８】
上述の課題に鑑み、本発明の目的は、モバイルノードを含む通信ネットワークにおけるメッセージ検証を制御するための方法及び装置であって、非常に高い安全性を実現しながら、同時に費用対効果に優れ、メッセージ検証における演算負荷が小さい方法及び装置を提供することである。
【課題を解決するための手段】
【００１９】
上述の課題に鑑み、本発明は、請求項１に対応する、複数のノード（Ｎ１〜Ｎ９）を含む通信システム内の通信メッセージの検証処理を管理する方法、請求項１４に対応する、複数のノードを含む通信システム内の通信メッセージの検証処理を管理する装置及び請求項１５に対応する、複数のノードを含む通信システム内の通信メッセージの検証処理を管理するコンピュータプログラム製品を提供する。従属請求項は、本発明の好ましい実施形態に関する。【００２０】
例示的な実施形態の側面として、複数のノードを含む通信システム内の通信メッセージの検証処理を管理する方法を提供してもよい。【００２１】
方法は、通信システムの第１のノードにおいて、第１のノードの１つ以上の近隣ノードから、１つ以上の通信メッセージを受信するステップ、受信した１つ以上の通信メッセージについて、例えば、証明データ及び／又は署名データに基づいて、安全性検証等の有効性検証動作を実行するステップ、第１のノードにおいて単位時間毎に実行される有効性検証動作の数を示す総合的検証率パラメータを判定するステップ、及び／又は第１のノードにおいて受信した第１のノードの近隣ノードからの１つ以上の更なる通信メッセージについて、総合的検証率パラメータが総合的検証率閾値を超えないように、有効性検証動作の実行を制御するステップを有する。【００２２】
例示的な実施形態の他の側面として、複数のノードを含む通信システム内の通信メッセージの検証処理を管理するように構成された装置を提供してもよい。【００２３】
装置は、１つ以上の近隣ノードから１つ以上の通信メッセージを受信するように構成された受信機と、処理ユニット（１つ以上のコンピュータプロセッサ、例えば、ＣＰＵ及び／又は１つ以上のプログラム可能なハードウェア回路、例えば、フィールドプログラマブルゲートアレイ（Field Programmable Gate Array：ＦＰＧＡ））とを備え、処理ユニットは、受信した１つ以上の通信メッセージについて有効性検証動作を実行し、受信機において単位時間毎に実行される有効性検証動作の数を示す総合的検証率パラメータを判定し、及び／又は受信機において受信した近隣ノードからの１つ以上の更なる通信メッセージについて、総合的検証率パラメータが総合的検証率閾値を超えないように、有効性検証動作の実行を制御するように構成されている。【００２４】
装置は、上述した方法及び／又は以下に示す方法の側面、及び／又は後述する例示的な実施形態の更なる説明に示す１つ以上又は全てのステップを実行するように構成してもよい。【００２５】
例示的な実施形態の他の側面として、複数のノードを含む通信システム内の通信メッセージの検証処理を管理するコンピュータプログラム製品を提供してもよく、コンピュータプログラム製品は、通信システムの第１のノードにおける処理ユニット（１つ以上のコンピュータプロセッサ、例えば、ＣＰＵ及び／又は１つ以上のプログラム可能なハードウェア回路、例えば、フィールドプログラマブルゲートアレイ（ＦＰＧＡ））上で実行され又は処理ユニットにロードされると、第１のノードの受信機が第１のノードの１つ以上の近隣ノードから、１つ以上の通信メッセージ受信したとき、上述した方法及び／又は以下に示す方法の側面、及び／又は後述する例示的な実施形態の更なる説明に示す１つ以上又は全てのステップを処理ユニットに実行させるコンピュータ読取可能プログラム命令を有する。【００２６】
幾つかの好ましい実施形態においては、１つ以上の更なる通信メッセージについて有効性検証動作の実行を制御するステップは、総合的検証率パラメータが総合的検証率閾値を超えると判定されたとき（例えば、総合的検証率閾値以上になったとき）、１つ以上のノード別検証率を低めるステップを含む。【００２７】
幾つかの好ましい実施形態においては、１つ以上の更なる通信メッセージについて有効性検証動作の実行を制御するステップは、総合的検証率パラメータが第２の検証率閾値以下に低下したと判定されたとき、１つ以上のノード別検証率を高めるステップを含む。【００２８】
各ノード別検証率は、第１のノードの近隣ノードのそれぞれと個別に関連付けられていてもよい。各ノード別検証率は、関連する近隣ノードのそれぞれから受信した通信メッセージについて、第１のノードにおいて単位時間毎に実行される有効性検証動作の数を示していてもよく、又はこの数に基づいていてもよい。【００２９】
幾つかの好ましい実施形態においては、方法は、第１のノードにおいて、第１のノードの近隣ノードのうちの第２のノードから１つ以上の第１の通信メッセージを受信するステップ、受信した１つ以上の第１の通信メッセージについて有効性検証動作を実行するステップ、及び／又は第１のノードにおいて、第２のノードからの１つ以上の第２の通信メッセージを受信するステップを有していてもよい。【００３０】
幾つかの好ましい実施形態においては、第２のノードに関係するノード別検証率を低めるステップは、第１のノードにおいて、第２のノードから１つ以上の第２の通信メッセージを受信すると、１つ以上の第１の通信メッセージの検証の有効性検証結果に基づいて、１つ以上の第２の通信メッセージについて有効性検証動作を実行するか否かを決定することを含んでいてもよい。【００３１】
なお、上述した側面を個別に実現する関連する他の方法において更なる側面及び実施形態を提供してもよく、例えば、複数のネットワークノードを含む通信ネットワークシステムにおいて通信メッセージを処理する方法及び／又は通信メッセージの検証処理を管理する方法を提供してもよく、方法は、通信システムの第１のノードにおいて、通信システムの第２のノードから、１つ以上の通信メッセージを受信するステップ、受信した１つ以上の第１の通信メッセージの検証のために有効性検証動作を実行するステップ、第１のノードにおいて、第２のノードから１つ以上の第２の通信メッセージを受信するステップ、及び／又は１つ以上の第１の通信メッセージの検証の有効性検証結果に基づいて、１つ以上の第２の通信メッセージについて有効性検証動作を実行するか否かを決定するステップを有する。【００３２】
幾つかの好ましい実施形態においては、１つ以上の第２の通信メッセージについて有効性検証動作を実行するか否かの決定は、第２のノードに関連し及び／又は第２のノードから受信した通信メッセージに関連する成功した有効性検証結果を示す検証履歴データに基づいて実行してもよい。【００３３】
幾つかの好ましい実施形態においては、第２のノードに関連する検証履歴データは、好ましくは、第２のノードに関連する信頼度のレベルを示す検証パラメータを含んでいてもよい。【００３４】
幾つかの好ましい実施形態においては、方法は、第２のノードから受信される通信メッセージの検証が連続的に成功した数に基づいて、第２のノードの検証パラメータを判定するステップを更に有していてもよい。【００３５】
幾つかの好ましい実施形態においては、第２のノードの検証パラメータは、第２のノードから受信された通信メッセージの検証が連続的に成功した数の増加によって第２のノードの信頼度レベルが増加するように決定してもよい。【００３６】
幾つかの好ましい実施形態においては、第２のノードの検証パラメータは、第２のノードから受信された通信メッセージに対して実行された１つ以上の有効性検証動作が失敗した場合、第２のノードの信頼度レベルが減少するように決定してもよい。【００３７】
幾つかの好ましい実施形態においては、第２のノードに関連するノード別受信率に関するノード別検証率を示す検証率低減係数は、第２のノードに関連する検証パラメータに基づいて決定してもよい。検証率低減係数は、第２のノードに関連するノード別検証率及びノード別受信率の間の比率によって決定してもよく例えば、第２のノードに関連するノード別受信率に対するノード別目標検証率及び／又はノード別受信率に対するノード別最小検証率を表していてもよい。【００３８】
幾つかの好ましい実施形態においては、第２のノードに関連する許容される最大検証率低減量に基づいて及び／又は判定された総合的検証率パラメータと総合的検証率閾値の差に基づいて、第２のノードに関連するノード別検証率を低減してもよい。【００３９】
幾つかの好ましい実施形態においては、第２のノードに関連する許容される最大検証率低減量が判定された総合的検証率パラメータと総合的検証率閾値の差より小さい場合、第２のノードに関連するノード別検証率は、第２のノードに関連する許容される最大検証率低減量以下に低めてもよい。【００４０】
この場合、幾つかの更に好ましい実施形態においては、方法は、第３のノードに関連するノード別検証率を低めるステップを更に有し、このステップは、第１のノードにおいて第３のノードから１つ以上の第３の通信メッセージを受信すると、１つ以上の第３の通信メッセージの検証の有効性検証結果に基づいて、１つ以上の第４の通信メッセージについて有効性検証動作を実行するか否かを決定することを含んでいてもよい。【００４１】
幾つかの好ましい実施形態においては、第２のノードに関連する許容される最大検証率低減量は、第２のノードに関連する判定された検証率低減係数及び／又は第１のノードにおいて第２のノードから受信される単位時間あたりの通信メッセージの数を示すメッセージ受信率に基づいて決定してもよい。【００４２】
以上のように、幾つかの実施形態は、モバイルノードを含む通信ネットワークにおけるメッセージ検証の制御であって、非常に高い安全性を実現しながら、同時に費用対効果に優れ、メッセージ検証における演算負荷が小さい有益な制御を提供する。
【図面の簡単な説明】
【００４３】
【図１】モバイルアドホック通信ネットワークの概略を示す図である。
【図２Ａ】モバイルアドホックネットワークの通信状態を例示する図である。
【図２Ｂ】モバイルアドホックネットワークの通信状態を例示する図である。
【図３】幾つかの例示的な実施形態に基づくノードユニットの例示的なアーキテクチャの概略を示す図である。
【図４Ａ】幾つかの例示的な実施形態に基づく例示的な検証率制御処理のフローチャートである。
【図４Ｂ】幾つかの例示的な実施形態に基づく例示的な検証率制御下位処理のフローチャートである。
【図５】幾つかの例示的な実施形態に基づく更なる例示的な検証率制御下位処理のフローチャートである。
【図６】幾つかの例示的な実施形態に基づく例示的なメッセージ検証制御処理のフローチャートである。
【図７Ａ】幾つかの例示的な実施形態に基づく更なる例示的な検証率制御処理のフローチャートである。
【図７Ｂ】幾つかの例示的な実施形態に基づく更なる例示的な検証率制御下位処理のフローチャートである。
【図７Ｃ】幾つかの例示的な実施形態に基づく更なる例示的な検証率制御下位処理のフローチャートである。
【図８】幾つかの例示的な実施形態に基づく更なる例示的なメッセージ検証制御処理のフローチャートである。
【発明を実施するための形態】
【００４４】
以下、添付の図面を参照して好ましい例示的な実施形態を説明する。なお、後述の実施形態の記述された特徴及び側面を変更し又は組み合わせて、更なる実施形態を形成してもよい。
【００４５】
自動車−Ｘ間（Ｃ２Ｘ又はＣ２Ｃ）通信では、車両／ノードによって受信されるパケット／メッセージは、セキュリティモジュールによって検証されることになっている。検証が失敗すると、パケット／メッセージは削除され、検証が成功すると、パケット／メッセージは受領及び処理される（又は処理のためにより高次の層に送られる）。しかしながら、このような検証処理は、多数のメッセージ検証、例えば、一秒あたり数千もの多数の検証を処理するためのプロセッサ又は専用のハードウェアアクセラレータチップが必要であるため、演算負荷が重く、高コストである。
【００４６】
例示的な実施形態の幾つかは、コスト及び演算負荷を軽減しながら高い安全性を維持することを目的とし、望ましくは動的に、パケット／メッセージを検証するか否かの判定について幾つかのポリシ及び／又は基準を定義することによって、（通常、例えば、単位時間、例えば、１秒毎に検証されるパケット／メッセージの単位で表される）総合的検証率のノード別制御を提供することができる。
【００４７】
幾つかの例示的な実施形態は、１つ以上のノード別検証率を制御することによって総合的検証率を制御することを目的とし、具体的には、目標値又は閾値（予め定義されていてもよく、例えば、ＨＭＩユニット等を介してユーザが調整可能であってもよい。）に基づいて総合的検証率を維持して、望ましくは動的に総合的検証率を制御して、閾値以下に維持する。
【００４８】
幾つかの例示的な実施形態の好ましい適用分野は、車両間（vehicle-to-vehicle）又は車両−インフラストラクチャ間（vehicle-to-infrastructure）無線通信ネットワーク、例えば、モバイルアドホックネットワーク又は車両アドホックネットワークである。
【００４９】
幾つかの例示的な実施形態では、近隣ノードにノード別信頼度レベルパラメータを割り当て、例えば、関連する信頼度レベルパラメータを高めることによって信頼できるノードに「報酬」を与え、関連する信頼度レベルパラメータを低めることによって信頼できないノードに「ペナルティ」を与える。例えば、１回以上、望ましくは連続して、肯定的な検証に成功し、有効なメッセージが受信された場合、信頼度レベルパラメータを高めることによってそのノードに報酬を与えてもよく、或いは、１つ以上のメッセージが無効であり、検証の結果が否定的であった（例えば、誤った署名又は証明書に基づいている）場合、信頼度レベルパラメータを低めることによってノードにペナルティを与えてもよい。
【００５０】
幾つかの例示的な実施形態では、全ての近隣ノードからの全てのメッセージを検証すると総合的検証率Ｖ＿ａｌｌが高くなり、閾値を超えてしまう場合、蓄積された信頼度レベルパラメータに基づいて総合的検証率Ｖ＿ａｌｌを低めることによってノード別検証率を制御してもよい。
【００５１】
図１は、例えば、車両通信ネットワーク（vehicular communication network）又は車両アドホック通信ネットワーク（vehicular ad hoc communication network）等のモバイルアドホック通信ネットワークの概略を例示的に示している。
【００５２】
例えば、車両１、２、３は、交通ネットワークの道路を走行しており、互いの通信範囲にあるとき、モバイルアドホック通信ネットワーク内で互いに通信を行う。すなわち、車両１、２、３は、モバイルアドホック通信ネットワークの通信ノードを例示的に表している。車両１、２、３は、モバイルアドホック通信ネットワークの通信ノードとして動作するために、例えば、無線通信において通信ネットワークの他のノードに通信可能に接続するように構成された、所謂車載ユニット（On-Board Unit：ＯＢＵ）を備えている。
【００５３】
通信ネットワークは、例えば、固定ノード４、５を更に備える。固定ノード４、５は、モバイルアドホック通信ネットワークの通信ノードとして動作するために、例えば、無線通信において通信ネットワークの他のノードに通信可能に接続するように構成された、所謂路側ユニット（Road-Side Unit：ＲＳＵ）を備えていてもよい。
【００５４】
以下の説明では、通信ネットワークのノードは、通信ネットワークの１つ以上の他ノードから／にメッセージを受信及び／又は送信するように構成されたエンティティである。なお、ノードのいずれも、モバイルノード（例えば、車両等に搭載された車載ユニットを用いて、又は移動ナビゲーションデバイス、携帯電話機、タブレット、モバイルコンピュータ等のモバイルデバイス）として具現化してもよく、又は固定ノード（例えば、通信ネットワークに接続するように構成された路側ユニット又は他の固定送信機／受信機）として具現化してもよい。
【００５５】
図２Ａ及び図２Ｂは、モバイルアドホックネットワークの通信状況を例示している。図２Ａでは、ノードＮ１〜Ｎ９が互いに対して例示的な位置に示されている。上述したように、ノードＮ１〜Ｎ９の各々は、モバイルノードであっても固定ノードであってもよい。通信範囲ＣＲは、ノードＮ１に関連し、ノードＮ１は、この通信範囲ＣＲ内に位置するあらゆるノード、例えば、図２ＡのノードＮ２、Ｎ６、Ｎ７からメッセージを受信することができると仮定する。
【００５６】
図２Ａ及び図２Ｂでは、通信範囲ＣＲを例示的に円形の形状で示している。但し、実際の通信範囲ＣＲは、例えば、受信アンテナの感度の非対称性、又は、例えば、特定の方向からのメッセージの伝送が建物又は他の障害物によって遮蔽又は妨害されるノードの環境のトポロジのために、円形とは異なる形状を有することがある。
【００５７】
図２Ａでは、ノードＮ２、Ｎ６、Ｎ７は、ノードＮ１の通信範囲ＣＲ内に位置し、ノードＮ１の近隣ノード（neighbor node）を表している。通常、あるノードの近隣ノードとは、現在、そのノードに通信可能に接続されている通信ネットワークのノードを意味し、そのノードは、これらの近隣ノードからメッセージを受信することができる。
【００５８】
ノードＮ１〜Ｎ９の少なくとも一部は、互いに相対的に動くモバイルノードである場合があるので、ネットワークの状況が変化し、あるノードの近隣ノードの数は、時間とともに変化することが多い。
【００５９】
例えば、図２Ｂは、全てのノードＮ２〜Ｎ９がノードＮ１の通信範囲ＣＲ内に配置された状況を示しており、したがって、図２Ｂの状況では、ノードＮ１は、ノードＮ２〜Ｎ９のいずれからもメッセージを受信でき、図２Ｂでは、ノードＮ２〜Ｎ９をノードＮ１の近隣ノードと呼ぶことができる。
【００６０】
幾つかのモバイルアドホックネットワークでは、プロトコル規格の一部として、複数又は全てのノードが近隣ノードに繰り返し、定期的に又は周期的にメッセージを送信することがある。例えば、幾つかのプロトコルでは、ビーコンメカニズム（beaconing mechanism）が設けられており、このメカニズムでは、全て又は少なくとも幾つかのノードが繰り返し、定期的に又は周期的に（通常、約１〜１０Ｈｚのビーコン周波数で）ビーコンメッセージを１つ以上又は全ての近隣ノードに送信し、各ビーコンメッセージは、例えば、位置、速度及び／又は（例えば、速さベクトル又はこの他の種類の情報として）移動に関する情報を含む。
【００６１】
これは、ある時刻における近隣ノードの数及びビーコンメカニズムの周波数に応じて、例えば、交通渋滞等の混雑した交通状況によって又は車線数が多いハイウェイ上で通勤時間帯の交通集中によってネットワークに参加する多くの車両が混み合う車両アドホックネットワークでは、あるノードが１秒につき数百、数千又は数万のビーコンメッセージを受信することがあることを意味する。
【００６２】
例えば、図２Ｂの状況では、ノードＮ１は、図２Ａの状況に比べて、通信範囲内に位置する近隣ノードの数がより多いため（又は換言すれば、周辺の近隣ノードの密度がより高いため）１秒につきより多くのビーコンメッセージを受信する。
【００６３】
更に、幾つかのメカニズムでは、各ビーコンメッセージは、例えば、メッセージ検証目的のための認証情報（certification information）及び／又は署名情報（signature information）等の検証情報を含むことがある。
【００６４】
すなわち、受信ノードは、近隣ノードの１つから、例えば、ビーコンメッセージ等のメッセージを受信すると、（例えば、安全又はセキュリティ目的のために）受信メッセージに対する検証処理を実行し、ここでは、例えば、受信ノードが有する認証情報及び／又は署名情報を参照することによって、例えば、認証キー情報等に基づいて、メッセージに含まれる認証情報及び／又は署名情報を処理し、メッセージが有効か（すなわち、有効であることが検証できるか）否かを判定する。
【００６５】
従来の技術では、セキュリティ目的のために、受信メッセージのそれぞれに対し、例えば、優先順位に基づいて、このような検証処理を実行する（例えば、ＥＰ２０５８９９２Ａ１及びＷＯ２０１３／１８５９９７Ａ１参照）。
【００６６】
ノードユニットで必要とされるメモリ消費量及び処理負荷を軽減するために、ある近隣ノードから受信した最初のメッセージと、Ｎ個毎のメッセージのみを検証することによって検証の総数を低める他のメカニズムも提案されている。
【００６７】
一方、幾つかの実施形態は、近隣ノードが多い（又は受信されるビーコンメッセージが多い）状況でメモリ消費量及び処理負荷を軽減することを目的としながら、特に、近隣ノードが少ない（又は受信されるビーコンメッセージが少ない）状況でも最適な安全性を提供することを目的としている。
【００６８】
したがって、幾つかの実施形態では、受信ノードにおいて総合的な検証速度を動的に制御して、近隣ノードが多い（又は受信されるビーコンメッセージが多い）状況では、総合的検証率を低め、及び／又は近隣ノードの数が少ない（又は受信されるビーコンメッセージが少ない）状況では、総合的検証率を高めることを提案する。
【００６９】
ＷＯ２０１３／１８５９９７Ａ１では、例えば、メッセージの内容（例えば、データタイプ）に応じてメッセージの検証の優先順位を決定する。この手法では、攻撃者がシステムを騙そうとしている場合、メッセージを検証するか否かについての決定に問題が生じることがある。
【００７０】
したがって、幾つかの実施形態では、データタイプ及び／又はデータ内容から独立して、メッセージを検証するかを決定する。例えば、幾つかの実施形態では、特に、メッセージのデータタイプ及び／又はデータ内容を考慮することなく、１つ以上の前の／先の検証結果に基づいて、メッセージを検証するか否かを決定することが有益である。
【００７１】
図３は、幾つかの例示的な実施形態に基づくノードユニット３００の例示的なアーキテクチャ構成の概略を示している。
【００７２】
ノードユニット３００は、車載ユニットとして実現してもよく、車載ユニットの一部として実現してもよく、モバイルアドホックネットワークのモバイルノードの車載ユニットに取り付け又は接続してもよく、例えば、車両アドホックネットワーク内の車両であってもよく、或いは、ノードユニット３００は、固定ノードとして実現してもよく、固定ノードの一部として実現してもよく、モバイルアドホックネットワークの固定ノードに取り付け又は接続してもよく、例えば、車両アドホックネットワーク内の路側ユニットであってもよい。
【００７３】
ノードユニット３００は、通信ユニット３１０と、人間−機械インタフェース（Human Machine Interface：ＨＭＩ）ユニット３２０と、演算ユニット３３０と、情報ユニット３４０とを備える。通信ユニット３１０は、例えば、通信ネットワーク内の近隣ノードからメッセージを受信（望ましくは無線受信）するように構成された受信機３１１と、通信ネットワーク内の近隣ノードにメッセージを送信（望ましくは無線送信）するように構成された送信機３１２とを備える。
【００７４】
通信ユニットは、例えば、ＵＭＴＳ、ＬＴＥ等の携帯電話規格及びＷｉ−Ｆｉ、ＢｌｕｅＴｏｏｔｈ（登録商標）又は、例えば、ＩＥＥＥ８０２．１１ｐ等を含む周知の如何なる無線データ通信技術を使用してもよい。通信ユニット３１０は、例えば、テレマティックス制御ユニット（Telematics Control Unit：ＴＣＵ）等の独立した通信モジュールを含んでいてもよく、或いはこのようなモジュールとして実現してもよい。
【００７５】
ユーザは、例えば、ユーザに情報を表示するディスプレイ３２１と、ユーザ入力を受け取るように構成された入力ユニット３２２とを備えるＨＭＩユニット３２０を介して（例えば、タッチスクリーン、１つ以上のボタン、１つ以上のキーパッド、１つ以上のスイッチ及び／又は１つ以上の回転ノブ／ボタンによって）、ノードユニット３００を制御し及び／又は情報を取得する。
【００７６】
更に、ノードユニット３００は、演算ユニット３３０を備え、演算ユニット３３０は、例えば、処理ユニット３３１とメモリユニット３３２とを含み、メモリユニット３３２（例えば、キャッシュ又はＲＡＭ又は他のメモリ）には、処理ユニット３３１によって処理されるデータが格納される。処理ユニット３３２は、１つ以上のプロセッサ、例えば、１つ以上のＣＰＵを含んでいてもよいが、これに加えて又はこれに代えて、処理ユニット３３１は、例えば、１つ以上のプログラマブル論理コントローラ及び／又は１つ以上のプログラマブル集積回路、例えば、フィールドプログラマブルゲートアレイ（field-programmable gate array：ＦＰＧＡ）等のプログラマブル論理回路を含んでいてもよい。
【００７７】
ノードユニット３２０は、更なる情報ユニット３４０（例えば、メモリ、レジスタ、ソリッドステートメモリ又は他のストレージ）を有していてもよく、ここに格納された情報は、処理ユニット３３０が使用でき、及び／又はユーザがＨＭＩユニット３２０を介して読み出すことができる。情報ユニット３４０は、例えば、検証情報３４１（例えば、他のノードに関連する、受信機３１１が受信したメッセージを検証するための検証キー、認証及び／又は署名、及び／又は現在のノードに関連する、送信機３１２を介して他のノードに送信するメッセージに追加される認証情報及び署名情報）を格納する。
【００７８】
更に、情報ユニット３４０は、近隣ノードに関するデータを示す近隣ノード情報３４２を有する。これは、例えば、受信したビーコンメッセージに含まれる近隣ノードの位置、速度、方向等の情報を含んでいてもよい。また、これは、例えば、以下の実施形態で説明するように、各近隣ノードに関連する更なる様々なデータ及びパラメータを含んでいてもよい。
【００７９】
また、近隣ノード情報３４２ａは、現在の近隣ノード例えば、現在、本ノード又はノードユニット３００の通信範囲の内に位置する全てのノード（例えば、アクティブ近隣ノード）に関する情報を示していてもよい。なお、以前の近隣ノード（例えば、非アクティブ近隣ノード）に関する情報を示す近隣ノード情報３４２ｂを提供してもよい。これは、通信範囲からしばらく外れている（したがって、現在の近隣ノードとはみなされないが、再び近隣ノードになる可能性がある）前の近隣ノードに関する情報を含んでいてもよい。このような状況では、前の近隣ノードが再び現在の近隣ノードになった場合、これらのノードに関する有用な情報が近隣ノード情報３４２ｂとして既に格納されている。
【００８０】
図４Ａは、幾つかの例示的な実施形態に基づく例示的な検証率制御処理のフローチャートを示している。
【００８１】
ステップＳ４０１において、あるノードにおけるノードユニットで実行される処理は、例えば、このノードの現在の近隣ノードのうちの次の近隣ノードｉに進む。この処理は、例えば、現在の近隣ノードを示す近隣ノード情報（例えば、近隣ノード情報３４２ａに含まれる情報）、例えば、現在の近隣ノードリスト又は現在の近隣ノードテーブル等に基づいて実行される。もちろん、このような近隣ノード情報は、例えば、近隣ノードがあるノードの通信範囲から外れ、及び更なるノードが新しい近隣ノードとしてそのノードの通信範囲に入ることによって、動的に変化することがある。
【００８２】
ステップＳ４０２において、（例えば、上述した処理ユニット３３１によって実行される）処理は、近隣ノードｉについて、近隣ノードｉから受信するメッセージに対して実行する単位時間あたりの検証動作の数を示すノード別検証率Ｖ＿ｉを判定する。例えば、近隣ノードｉのノード別検証率Ｖ＿ｉは、１秒あたりの検証単位数、すなわち「毎秒」又はＨｚによって表される。
【００８３】
ここでは、例示的に、メッセージが有効であるか否かを示す結果を返す処理ステップを検証動作と呼ぶ。これは、認証情報（例えば、証明書（certificate））をチェックすること及び／又は署名情報をチェックすることを含んでいてもよい。そして、このような状況では、これは、単位時間あたりの近隣ノードｉからの受信メッセージの数を示すノード別受信率Ｒ＿ｉに対してノード別検証率Ｖ＿ｉが正規化されることを意味し、すなわち、例えば、全ての受信メッセージを検証する場合、ノード別検証率Ｖ＿ｉは、ノード別受信率Ｒ＿ｉに等しい。
【００８４】
幾つかの他の実施形態においては、このノード別検証率Ｖ＿ｉは、下位処理の数（例えば、１つのステップとしての認証情報のチェック及び他のステップとしての署名情報のチェック）を意味する。
【００８５】
いずれの場合も、近隣ノードｉについてのノード別検証率Ｖ＿ｉは、近隣ノードｉから受信したメッセージの検証処理に関わる処理の負荷の直接的又は間接的な尺度を示し、すなわち、ノード別検証率Ｖ＿ｉが高い程、近隣ノードｉから受信されるメッセージの検証処理に関係する処理の負荷が大きい。
【００８６】
ステップＳ４０３では、各ノード別検証率Ｖ＿ｉが現在の全ての近隣ノードについて判定されたかを判定し、このステップＳ４０３がＮＯを返した場合、処理は、次の近隣ノードｉ＋１に進み、次の近隣ノードｉ＋１についてステップＳ４０２を繰り返し、ステップＳ４０３がＹＥＳを返すまで、すなわち、現在の全ての近隣ノードについて各ノード別検証率Ｖ＿ｉが判定されるまで、これを繰り返す。
【００８７】
なお、上述の処理は、幾つかの例示的な実施形態においては、処理が現在の近隣ノードのリストを調べ、リスト内の全ての近隣ノードについて現在のノード別検証率Ｖ＿ｉを算出することによって実現してもよく、幾つかの他の例示的な実施形態においては、近隣ノード情報内の全ての現在の（及び例えば、連続的又は定期的に更新された）近隣ノードについて現在のノード別検証率Ｖ＿ｉを保存し、上述の処理は、現在の近隣ノード（例えば、１つ以上のステップでは）についての予め保存されている（更新されている）ノード別検証率Ｖ＿ｉを参照することによって実現してもよい。
【００８８】
ステップＳ４０２において判定された現在の近隣ノードについてのノード別検証率Ｖ＿ｉに基づいて、処理は、ステップＳ４０４に進み、例えば、現在の全ての近隣ノードについて判定されたノード別検証率Ｖ＿ｉの合計として、現在の総合的検証率Ｖ＿ａｌｌを判定する。
【００８９】
例えば、検証動作が、メッセージの有効性を示す結果を返す処理ステップを意味している場合、これは、例えば単位時間あたりの受信メッセージの総数を示す総合的受信率Ｒ＿ａｌｌに対して総合的検証率Ｖ＿ａｌｌが正規化されることを意味し、すなわち、全ての受信メッセージを検証する場合、総合的検証率Ｖ＿ａｌｌは、総合的受信率Ｒ＿ａｌｌに等しい。
【００９０】
いずれの場合も、総合的検証率Ｖ＿ａｌｌは、全ての近隣ノードから受信した全てのメッセージの検証処理に関する処理の負荷の直接的又は間接的な尺度を示し、すなわち、総合的検証率Ｖ＿ａｌｌが高い程、全ての近隣ノードから受信される全てのメッセージの検証処理に関係する処理の負荷が大きい。
【００９１】
ステップＳ４０５では、判定された総合的検証率Ｖ＿ａｌｌを閾値Ｌと比較し、例えば、判定された総合的検証率Ｖ＿ａｌｌが閾値Ｌ（総合的検証率閾値）より大きいか否かをチェックする。ステップＳ４０５がＮＯを返した場合、すなわち、判定された総合的検証率Ｖ＿ａｌｌが閾値Ｌより小さい／閾値Ｌを超えない場合、（例えば、繰り返し、定期的に又は周期的に）処理を繰り返す。
【００９２】
一方、ステップＳ４０５において、総合的検証率Ｖ＿ａｌｌが総合的検証率閾値Ｌより大きいと判定された（ステップＳ４０５がＹＥＳを返した）場合、方法は、総合的検証率Ｖ＿ａｌｌの制御を実行するステップ、具体的には、総合的検証率Ｖ＿ａｌｌを低めるように制御するステップに進む。幾つかの実施形態においては、ステップＳ４０６の後、（例えば、繰り返し、定期的又は周期的に）この処理を繰り返す。
【００９３】
幾つかの実施形態では、近隣ノードの現在の数が＃ＮＮである場合、例えば、（Ｌ−Ｖ＿ａｌｌ）／＃ＮＮで表される数量によって近隣ノードのそれぞれのノード別検証率Ｖ＿ｉを低め、総合的検証率Ｖ＿ａｌｌが総合的検証率閾値Ｌを上回らないように動的に制御してもよい。
【００９４】
更に、他の例示的な実施形態の更なる下位処理では、ノード別検証率Ｖ＿ｉを低めることができるノードを限定的に選択することによって総合的検証率Ｖ＿ａｌｌを低め、これによって、総合的検証率Ｖ＿ａｌｌを動的に低めてもよい。
【００９５】
例えば、図４Ｂは、特に、ノード別検証率Ｖ＿ｉを低めることができるノードを限定的に選択することによって総合的検証率Ｖ＿ａｌｌを低める幾つかの例示的な実施形態に基づく例示的な検証率制御下位処理のフローチャートを例示している。
【００９６】
ステップＳ４０７（上述したステップＳ４０５として既に実行されたものであってもよく、再び実行してもよい。）では、閾値Ｌに対して、判定された総合的検証率Ｖ＿ａｌｌをチェックし、例えば、判定された総合的検証率Ｖ＿ａｌｌが閾値Ｌ（総合的検証率閾値）より大きいか否かをチェックする。ステップＳ４０７／Ｓ４０５がＮＯを返した場合、図４Ｂの下位処理は終了する（又はステップＳ４０６を繰り返して再開され、及び／又は繰り返し、定期的又は周期的に独自に開始される）。
【００９７】
ステップＳ４０７がＹＥＳを返した場合、方法は、例えば、ステップＳ４０６の一部として、ステップＳ４０６の制御として、又は独立した処理として、下位処理であるステップＳ４０８に進み、ここで、例えば、必要な低減量＝Ｖ＿ａｌｌ−Ｌとして、判定された総合的検証率Ｖ＿ａｌｌ及び総合的検証率閾値Ｌの差に基づいて、総合的検証率Ｖ＿ａｌｌ（図４Ａに示すように、再び判定してもよく、更新された近隣ノード情報から取得してもよい）の必要な低減を算出する。
【００９８】
次に、近隣ノードの１つのノード別検証率Ｖ＿ｉを低めるために、近隣ノードを選択する必要がある。もちろん、幾つかの実施形態では、近隣ノードのリスト内のノードを順番に進んでもよく、他の例示的な実施形態では、最も信頼できる（例えば、近隣ノードのなかで信頼度が高い又は最高レベルである）近隣ノードを選択してもよいが、好ましい実施形態においては、悪意のあるノードに対する更なる安全層を提供するために、ランダム化された処理によって次のノードを選択する。
【００９９】
例えば、ステップＳ４０９では、番号１から＃ＮＮ（現在の近隣ノード数）の間の乱数ｉを取得する。もちろん、例えば、近隣ノードリストのシャッフル処理等、他のランダム化処理を行ってもよい。
【０１００】
ステップＳ４０９の乱数ｉに基づいて、処理は、このようにしてランダムに選択された近隣ノードｉに進み、ステップＳ４１１において、ランダムに選択された近隣ノードｉのノード別検証率Ｖ＿ｉを判定する。
【０１０１】
例えば、処理は、ステップＳ４１２において、ランダムに選択された近隣ノードｉのノード別受信率Ｒ＿ｉを判定し、ステップＳ４１３において、ランダムに選択された近隣ノードｉの現在のノード別検証率低減係数Ｆ＿ｉを判定する。現在の検証率低減係数Ｆ＿ｉは、例えば、近隣ノード情報３４２から導出してもよく、現在の検証率低減係数Ｆ＿ｉは、ある近隣ノードｉについて許容される低減の係数を示すパラメータ（又はデータ）である。
【０１０２】
例えば、現在のノード別検証率低減係数Ｆ＿ｉが５０％（すなわち、Ｆ＿ｉ＝０．５）であれば、これは、近隣ノードｉから受信される全てのメッセージの少なくとも５０％を検証する必要があるが、近隣ノードｉから受信される全てのメッセージの最大５０％は、検証する必要がないことを意味し、現在のノード別検証率低減係数Ｆ＿ｉが８０％（すなわち、Ｆ＿ｉ＝０．８）であれば、これは、近隣ノードｉから受信される全てのメッセージの少なくとも８０％を検証する必要があるが近隣ノードｉから受信される全てのメッセージの最大２０％は、検証する必要がないことを意味する。
【０１０３】
ステップＳ４１４では、ランダムに選択された近隣ノードｉについて、ランダムに選択された近隣ノードｉのノード別検証率Ｖ＿ｉが、現在のノード別検証率低減係数Ｆ＿ｉ及びランダムに選択された近隣ノードｉのノード別受信率Ｒ＿ｉの積より大きいか否かを判定する。ステップＳ４１４がＮＯを返した場合、これは、ランダムに選択された近隣ノードｉの検証率Ｖ＿ｉを低めることができない（又はこれ以上低めることができない）ことを意味し、処理は、ステップＳ４０９に戻り、更なる乱数ｉを取得する（幾つかの更なる実施形態においては、ステップＳ４１４がＮＯを返したノードｉは、ノード別検証率Ｖ＿ｉを高めるためにスケジューリング又はフラグ付けされる）。
【０１０４】
ステップＳ４１４がＹＥＳを返した場合、これは、ランダムに選択された近隣ノードｉの検証率Ｖ＿ｉを低めることができる（又は更に低めることができる）ことを意味し、処理は、ステップＳ４１５に進み、ランダムに選択された近隣ノードｉについて、ランダムに選択された近隣ノードｉの検証率Ｖ＿ｉと、現在のノード別検証率低減係数Ｆ＿ｉ及びノード別受信率Ｒ＿ｉの積との差が、必要とされる総合的検証率Ｖ＿ａｌｌの低減量、すなわち、判定された総合的検証率Ｖ＿ａｌｌと総合的検証率閾値Ｌの差以上であるかをチェックする。
【０１０５】
ステップＳ４１５がＹＥＳを返した場合、ステップＳ４１７において判定された総合的検証率Ｖ＿ａｌｌ及び総合的検証率閾値Ｌの差に対応する必要量だけランダムに選択された近隣ノードｉの検証率Ｖ＿ｉを低める（これによって、総合的検証率Ｖ＿ａｌｌが総合的検証率閾値Ｌの値まで低められる）。更なる実施形態においては、総合的検証率Ｖ＿ａｌｌを総合的検証率閾値Ｌより低くなるように低めてもよいが、検証率Ｖ＿ｉを必要量Ｖ＿ａｌｌ−Ｌだけ低めることは、総合的検証率を閾値より下に維持しながら、検証率の低減が必要量だけに限定されるので、安全のために最適である。
【０１０６】
一方、ステップＳ４１５がＮＯを返した場合、ランダムに選択された近隣ノードｉの検証率Ｖ＿ｉは、ステップＳ４１６において、ランダムに選択された近隣ノードｉについての現在の検証率Ｖ＿ｉと現在のノード別検証率低減係数Ｆ＿ｉ及びノード別受信率Ｒ＿ｉの積との差に一致する量だけ低められ、すなわち、検証率Ｖ＿ｉは、ランダムに選択された近隣ノードｉについて現在のノード別検証率低減係数Ｆ＿ｉ及びノード別受信率Ｒ＿ｉの積の許容される値まで低められる。
【０１０７】
そして、ステップＳ４１８において、近隣ノード情報を更新し、これは、例えば、ランダムに選択された近隣ノードｉのノード別検証率Ｖ＿ｉの値を更新すること、及びオプションとして総合的検証率Ｖ＿ａｌｌを更新することを含む。そして、処理は、再びステップＳ４０７に進み、このループにおいてステップＳ４０７の結果がＮＯになるまで、更なるノードに進み、更なる検証率低減制御を行う。
【０１０８】
例えば、パラメータＶ＿ｉ及びＶ＿ａｌｌは、直接的に更新してもよく、或いは、例えば、システムが設定した適切な重み係数とともに指数移動平均法を用いて更新してもよい。
【０１０９】
幾つかの実施形態においては、ステップＳ４１０からＳ４１８によって全ての近隣ノードが処理されてもステップＳ４０７がＹＥＳを返す場合、残りの必要な低減は、例えば、以下の例示的な手法によって達成される。現在の近隣ノードの数を＃ＮＮとして、近隣ノードのそれぞれのノード別検証率Ｖ＿ｉを、例えば、（Ｌ−Ｖ＿ａｌｌ）／＃ＮＮの量だけ低めることによって、総合的検証率Ｖ＿ａｌｌが総合的検証率閾値Ｌを上回らないように動的に制御してもよい。
【０１１０】
或いは、残りの必要な低減量は、次のような例示的な手法によって達成してもよい。幾つかの実施形態においては、ステップＳ４１７又はＳ４１６によって調整されていない近隣ノードの現在の数を＃ＮＮ１として、これらの近隣ノードのそれぞれのノード別検証率Ｖ＿ｉを、例えば、（Ｌ−Ｖ＿ａｌｌ）／＃ＮＮ１の量だけ低めることによって、総合的検証率Ｖ＿ａｌｌが総合的検証率閾値Ｌを上回らないように動的に制御してもよい。
【０１１１】
先の実施形態では、ランダムに選択された近隣ノードｉのノード別検証率Ｖ＿ｉは、ノード別低減係数Ｆ＿ｉに基づいて低めることができる。
【０１１２】
幾つかの実施形態においては、例えば、ノードの振る舞い及び／又はこのノードのためのメッセージの先の検証結果に基づいて、ノード別低減係数Ｆ＿ｉが時間とともに変化できるように動的に制御してもよい。なお、幾つかのノードでは、先に低減した検証率Ｖ＿ｉを再び調整する必要が生じることがあるため、幾つかの実施形態では、例えば、ノードの振る舞い及び／又はこのノードのためのメッセージの先の検証結果に基づいて、ノード別低減係数Ｆ＿ｉを時間とともに再び高めてもよい。
【０１１３】
図５は、幾つかの例示的な実施形態に基づく更なる例示的な検証率制御下位処理のフローチャートを示している。
【０１１４】
ステップＳ５０１では、処理は、近隣ノード情報（現在の近隣ノード及び／又は現在の近隣ノードに関する更なる情報を示していてもよい。）を読み出す。そして、ステップＳ５０２においてｉ＝１から開始して、近隣ノードについての処理を順次的に（又は他の実施形態では非順次的（asequentially）に）進め、ステップＳ５０３において近隣ノードｉに進み、処理は、ステップＳ５０４、Ｓ５０５、Ｓ５０６を続け、（例えば、上述したステップＳ４１１〜Ｓ４１３と同様に）選択された近隣ノードｉについてノード別検証率Ｖ＿ｉ、ノード別受信率Ｒ＿ｉ及びノード別検証率低減係数Ｆ＿ｉを判定する。
【０１１５】
ステップＳ５０７では、ランダムに選択された近隣ノードｉについて、選択された近隣ノードｉのノード別検証率Ｖ＿ｉが、選択された近隣ノードｉの現在のノード別検証率低減係数Ｆ＿ｉ及びノード別受信率Ｒ＿ｉの積より小さいかをチェックする。ステップＳ５０７がＮＯを返した場合、これは、選択された近隣ノードｉの検証率Ｖ＿ｉを高める必要がないことを意味し、処理は、ステップＳ５０３に戻り、次の近隣ノードｉ＋１に進む。
【０１１６】
一方、ステップＳ５０７がＹＥＳを返した場合、これは、選択された近隣ノードｉの検証率Ｖ＿ｉを高める必要があることを意味し、処理は、ステップＳ５０８に進み、例えば、選択された近隣ノードｉについての現在のノード別検証率低減係数Ｆ＿ｉ及びノード別受信率Ｒ＿ｉの積に基づいて許容される最小値（幾つかの実施形態では、これ以上）まで、選択された近隣ノードｉの検証率Ｖ＿ｉを高める。
【０１１７】
ステップＳ５０７及びＳ５０８に加えて又はこれに代えて、処理は、（例えば、ステップＳ５０７がＮＯを返した場合）選択された近隣ノードｉについて、ノード別検証率Ｖ＿ｉがノード別受信率Ｒ＿ｉより小さいか、及び／又は総合的検証率が閾値（又は第２の閾値）より高いか低いかをチェックし、総合的検証率が目標値（例えば、閾値）に近付くように選択された近隣ノードｉの検証率Ｖ＿ｉを高めてもよい。
【０１１８】
ステップＳ５０９では、近隣ノード情報を更新し、これは、例えば、選択された近隣ノードｉのノード別検証率Ｖ＿ｉの値を更新すること、及びオプションとして総合的検証率Ｖ＿ａｌｌを更新することを含む。
【０１１９】
そして、処理は、ステップＳ５１０に進み、ステップＳ５０３及びこれに続くステップが現在の近隣ノードの全てについて実行されたかをチェックし、このループにおいてステップＳ５１０がＹＥＳを返すまで、更なる検証制御のために更なるノードに進み（ステップＳ５０３の次のｉ＋１）、ステップＳ５１０がＹＥＳを返すと、処理が終了し、或いは、幾つかの実施形態では、（例えば、繰り返し、定期的に又は周期的に）ステップＳ５０１に戻る。
【０１２０】
幾つかの実施形態においては、選択された近隣ノードｉのノード別検証率低減係数Ｆ＿ｉは、好ましくは、特定の近隣ノードのメッセージの先の検証結果に基づいて制御してもよい。例えば、幾つかの実施形態においては、特定の近隣ノードｉのメッセージのための先の検証が成功している場合（すなわち、メッセージが有効であると検証された場合）、ノード別検証率低減係数Ｆ＿ｉを低めてもよく、及び／又は特定の近隣ノードｉのメッセージのための先の検証の１つ以上が成功していない場合（すなわち、メッセージの検証に失敗又は無効であると判定された等の場合）、これを高めてもよい。
【０１２１】
例えば、図６は、幾つかの例示的な実施形態に基づく例示的なメッセージ検証制御処理のフローチャートを示している。
【０１２２】
ステップＳ６０１では、近隣ノードｉからメッセージを受信する。ステップＳ６０２では、ステップＳ６０１において新しく受信したメッセージに基づいて、近隣ノードｉのノード別受信率Ｒ＿ｉを更新する。
【０１２３】
ステップＳ６０３では、検証が必要であるか否かを判定し、ステップＳ６０３がＮＯを返した場合、処理は、メッセージを処理するステップＳ６０７に進む（例えば、メッセージ又はメッセージヘッダを符号化すること又はメッセージを検証層から上位の処理層に転送することを含むメッセージの処理を行う）。
【０１２４】
例えば、ステップＳ６０３では、検証が必要であるか否かは、例えば、近隣ノードｉに関連した検証率低減係数Ｆ＿ｉに基づいて判定してもよい。
【０１２５】
例えば、所定の先行する期間又は時間間隔の間に受信した全てのメッセージ及び／又は所定数の受信メッセージに対して検証動作が行われたメッセージの比率が、検証率低減係数Ｆ＿ｉより大きい場合、次のメッセージを検証する必要はなく、ステップＳ６０３は、ＮＯを返す。また、ステップＳ６０５は、幾つかの例示的な実施形態について後述するように、検証率低減係数Ｆ＿ｉに基づいて、検証時刻（次回検証時刻）ベースで行ってもよい。
【０１２６】
一方、ステップＳ６０３がＹＥＳを返した場合、処理は、ステップＳ６０４に進み、受信メッセージを検証する（すなわち、メッセージに対する検証動作を実行する）。
【０１２７】
ステップＳ６０５では、検証が成功したか否か（すなわち、メッセージが有効であることが検証されたか否か）を判定し、ステップＳ６０５がＮＯを返した場合、（すなわち、メッセージの検証処理に失敗した場合）、メッセージを削除する。ステップＳ６０５がＮＯを返した場合、ステップＳ６０８において、近隣ノードｉに関連する検証率低減係数Ｆ＿ｉを高め（以降、近隣ノードｉからのメッセージのうち、最大で全てのメッセージを検証する必要があることを指示し）、処理を終了する（又は次のメッセージの受信を待機する）。
【０１２８】
一方、ステップＳ６０５がＹＥＳを返した場合、処理は、ステップＳ６０６において、近隣ノードｉに関連する検証率低減係数Ｆ＿ｉの低減を続ける（以降、近隣ノードｉからのメッセージのうち、検証する必要があるメッセージがより少なくてよいことを示す）。そして、ステップＳ６０７において、メッセージを処理する。
【０１２９】
このように、近隣ノードｉからの先のメッセージの検証の結果に応じて、１つ以上の検証が失敗した場合、ノードｉに関連する検証率低減係数Ｆ＿ｉを高め（最大で、全てのメッセージの検証が必要であることを示すＦ＿ｉ＝１）、１つ以上の検証が成功した場合、検証率低減係数Ｆ＿ｉを低める。
【０１３０】
図７Ａは、幾つかの例示的な実施形態に基づく更なる例示的な検証率制御処理のフローチャートを示している。
【０１３１】
ステップＳ７０１では、例えば、あるノードのノードユニットが実行する処理が、そのノードの現在の近隣ノードのうちの次の近隣ノードｉに進む。
【０１３２】
これは、（例えば、近隣ノード情報３４２ａに含まれる）近隣ノード情報、例えば、現在の近隣ノードを示す現在の近隣ノードリスト又は現在の近隣ノードテーブルに基づいて実行してもよい。もちろん、このような近隣ノード情報は、近隣ノードがあるノードの通信範囲から外れ、及び更なるノードがあるノードの通信範囲に入って新しい近隣ノードになる等によって動的に変化することがある。
【０１３３】
ステップＳ７０２では、処理（例えば、上述した処理ユニット３３１によって実行される）は、近隣ノードｉから受信したメッセージについて、単位時間あたりに実行する検証動作の数を示すノード別検証率Ｖ＿ｉを判定する。上述のように、近隣ノードｉのノード別検証率Ｖ＿ｉは、近隣ノードｉから受信されるメッセージの検証処理に関する処理負荷についての直接的又は間接的な尺度を示しており、すなわち、ノード別検証率Ｖ＿ｉが高い程、その近隣ノードｉから受信されるメッセージの検証処理に関する処理負荷が大きくなる。
【０１３４】
ステップＳ７０３では、現在の全ての近隣ノードについてそれぞれのノード別検証率Ｖ＿ｉが判定されたか否かを判定し、ステップＳ７０３がＮＯを返した場合、処理は、次の近隣ノードｉ＋１に進み、次の近隣ノードｉ＋１についてステップＳ７０２を繰り返し、ステップＳ７０３がＹＥＳを返すまで、すなわち現在の全ての近隣ノードについてそれぞれのノード別検証率Ｖ＿ｉが判定されるまで、この処理を続ける。
【０１３５】
なお、幾つかの例示的な実施形態においては、上述の処理は、処理が現在の近隣ノードのリストを調べ、リスト内の全ての近隣ノードについて、現在のノード別検証率Ｖ＿ｉを算出することによって実現してもよく、幾つかの他の例示的な実施形態においては、現在の全ての近隣ノードについて、現在のノード別検証率Ｖ＿ｉを近隣ノード情報内に保存する（及び、例えば、連続的又は周期的に更新する）ことによって実現してもよく、この場合、上述の処理は、（例えば、１つ以上のステップにおいて、）予め保存された（更新された）現在の近隣ノードについてのノード別検証率Ｖ＿ｉを参照する。
【０１３６】
ステップＳ７０２で判定された現在の近隣ノードについてのノード別検証率Ｖ＿ｉに基づいて、処理は、ステップＳ７０４に進み、例えば、現在の近隣ノードについて判定された全てのノード別検証率Ｖ＿ｉの合計として、現在の総合的検証率Ｖ＿ａｌｌを判定する。
【０１３７】
総合的検証率Ｖ＿ａｌｌは、全ての近隣ノードから受信される全てのメッセージの検証処理に関する処理負荷に関する直接的又は間接的な尺度を示し、総合的検証率Ｖ＿ａｌｌが高い程、全ての近隣ノードから受信される全てのメッセージの検証処理に関する処理負荷が大きい。
【０１３８】
ステップＳ７０５では、例えば、判定された総合的検証率Ｖ＿ａｌｌが閾値Ｌ＋ε又はＬ＋ε１（総合的検証率閾値）より小さいか否か、及び判定された総合的検証率Ｖ＿ａｌｌが（第２の）閾値Ｌ−ε（又はＬ−ε２）より大きい否かをチェックすることによって、判定された総合的検証率Ｖ＿ａｌｌを、所定の許容値パラメータε（幾つかの例示的な実施形態においては、異なる上下の許容値パラメータε１及びε２）によって、閾値Ｌに対して上下からチェックする。これは、判定された総合的検証率Ｖ＿ａｌｌが、（第２の／下側の）閾値Ｌ−ε（又はＬ−ε２）と、（上側の）閾値Ｌ＋ε又はＬ＋ε１（総合的検証率閾値）の間の目標範囲内にあるか否かチェックすることを意味する。
【０１３９】
この処理は、許容範囲内の制御目標値Ｌに基づいて総合的検証率Ｖ＿ａｌｌを制御することを目的とする。許容範囲は、目標値Ｌの近傍の僅かな変化又は僅かな変動のために不必要な検証率調整が実行されることを回避するために有効である。
【０１４０】
ステップＳ７０５がＹＥＳを返した場合、すなわち、判定された総合的検証率Ｖ＿ａｌｌが上側の閾値Ｌ＋ε（又はＬ＋ε１）以下であり、且つ（第２の）下側の閾値Ｌ−ε（又はＬ−ε２）を下回らない場合、処理を（例えば、繰り返し、定期的又は周期的に）繰り返す。
【０１４１】
一方、ステップＳ７０５において、総合的検証率Ｖ＿ａｌｌが目標範囲を外れていると判定された場合、ステップＳ７０５は、ＮＯを返し、処理は、総合的検証率Ｖ＿ａｌｌを制御するステップ７０６に進み、目標間隔に応じて総合的検証率Ｖ＿ａｌｌを減少又は増加させる。幾つかの実施形態においては、ステップＳ７０６の後、（例えば、繰り返し、定期的又は周期的に）処理を繰り返す。
【０１４２】
図７Ｂ及び図７Ｃは、幾つかの例示的な実施形態に基づき、特に、ノード別検証率Ｖ＿ｉを低めることができるノードを選択して総合的検証率Ｖ＿ａｌｌを低め、及び／又はノード別検証率Ｖ＿ｉを高めることができるノードを選択して総合的検証率Ｖ＿ａｌｌを高める更なる例示的な検証率制御下位処理のフローチャートを示している。
【０１４３】
ステップＳ７０７では、（上述したステップＳ７０５として既に実行されたものであってもよく、再び実行してもよい。）では、（上側の）閾値Ｌ＋ε（又はＬ＋ε１）に対して、判定された総合的検証率Ｖ＿ａｌｌをチェックし、例えば、判定された総合的検証率Ｖ＿ａｌｌが閾値Ｌ＋ε（総合的検証率閾値）より大きいか否かをチェックする。ステップＳ７０７／Ｓ７０５がＮＯを返した場合、図７Ｂの下位処理は、図７Ｃの（Ａ）に進む（又は終了し、又はステップＳ７０６を繰り返して再開され、及び／又は繰り返し、定期的又は周期的に独自に開始される）。
【０１４４】
ステップＳ７０７がＹＥＳを返した場合、方法は、例えば、ステップＳ７０６の一部として、ステップＳ７０６の制御として、又は独立した処理として、下位処理であるステップＳ７０８に進み、ここで、例えば、判定された総合的検証率Ｖ＿ａｌｌ及び総合的検証率目標値Ｌの差に基づいて、必要な低減量＝Ｖ＿ａｌｌ−Ｌとして、総合的検証率Ｖ＿ａｌｌ（図７Ａに示すように、再び判定してもよく、更新された近隣ノード情報から取得してもよい）の必要な低減量を算出する。
【０１４５】
次に、近隣ノードの１つのノード別検証率Ｖ＿ｉを低めるために、近隣ノードを選択する必要がある。ステップＳ７０９においても、ステップＳ４０９と同様に、番号１から＃ＮＮ（現在の近隣ノード数）の間の乱数ｉを取得する。もちろん、例えば、近隣ノードリストのシャッフル処理等、他のランダム化処理を行ってもよい。
【０１４６】
ステップＳ７０９の乱数ｉに基づいて、処理は、このようにしてランダムに選択された近隣ノードｉに進み（ステップＳ７１０）、ステップＳ７１１において、ランダムに選択された近隣ノードｉのノード別検証率Ｖ＿ｉを判定する。
【０１４７】
例えば、処理は、ステップＳ７１２において、ランダムに選択された近隣ノードｉのノード別受信率Ｒ＿ｉを判定し、ステップＳ７１３において、ランダムに選択された近隣ノードｉの現在のノード別検証率低減係数Ｆ＿ｉを判定する。現在の検証率低減係数Ｆ＿ｉは、例えば、近隣ノード情報３４２から導出してもよく、現在の検証率低減係数Ｆ＿ｉは、ある近隣ノードｉについて許容される低減の係数を示すパラメータ（又はデータ）である。
【０１４８】
ステップＳ７１４では、ランダムに選択された近隣ノードｉについて、ランダムに選択された近隣ノードｉのノード別検証率Ｖ＿ｉが、現在のノード別検証率低減係数Ｆ＿ｉ及びランダムに選択された近隣ノードｉのノード別受信率Ｒ＿ｉの積より大きいか否かを判定する。ステップＳ７１４がＮＯを返した場合、これは、ランダムに選択された近隣ノードｉの検証率Ｖ＿ｉを低めることができない（又はこれ以上低めることができない）ことを意味し、処理は、ステップＳ７０９に戻り、更なる乱数ｉを取得する（幾つかの更なる実施形態においては、ステップＳ７１４がＮＯを返したノードｉは、ノード別検証率Ｖ＿ｉを高めるためにスケジューリング又はフラグ付けされる）。
【０１４９】
ステップＳ７１４がＹＥＳを返した場合、これは、ランダムに選択された近隣ノードｉの検証率Ｖ＿ｉを低めることができる（又は更に低めることができる）ことを意味し、処理は、ステップＳ７１５に進み、ランダムに選択された近隣ノードｉについて、ランダムに選択された近隣ノードｉの検証率Ｖ＿ｉと、現在のノード別検証率低減係数Ｆ＿ｉ及びノード別受信率Ｒ＿ｉの積との差が、必要とされる総合的検証率Ｖ＿ａｌｌの低減量、すなわち、判定された総合的検証率Ｖ＿ａｌｌと総合的検証率目標値Ｌの差以上であるかをチェックする。
【０１５０】
ステップＳ７１５がＹＥＳを返した場合、ステップＳ７１７において判定された総合的検証率Ｖ＿ａｌｌ及び総合的検証率目標値Ｌの差に対応する必要量だけランダムに選択された近隣ノードｉの検証率Ｖ＿ｉを低める（これによって、総合的検証率Ｖ＿ａｌｌが総合的検証率目標値Ｌの値まで低められる）。
【０１５１】
一方、ステップＳ７１５がＮＯを返した場合、ランダムに選択された近隣ノードｉの検証率Ｖ＿ｉは、ステップＳ７１６において、ランダムに選択された近隣ノードｉについての現在の検証率Ｖ＿ｉと現在のノード別検証率低減係数Ｆ＿ｉ及びノード別受信率Ｒ＿ｉの積との差に一致する量だけ低められ、すなわち、検証率Ｖ＿ｉは、ランダムに選択された近隣ノードｉについて現在のノード別検証率低減係数Ｆ＿ｉ及びノード別受信率Ｒ＿ｉの積である許容値まで低められる。
【０１５２】
そして、ステップＳ７１８において、近隣ノード情報を更新し、これは、例えば、ランダムに選択された近隣ノードｉのノード別検証率Ｖ＿ｉの値を更新すること、及びオプションとして総合的検証率Ｖ＿ａｌｌを更新することを含む。例えば、ステップＳ７１８では、更に、近隣ノードｉに関連する検証時刻（time-to-verify）又は次回検証時刻（next-verification time）ＴＶ＿ｉを更新してもよい（以下の幾つかの例示的な実施形態で説明する）。そして、処理は、再びステップＳ７０７に戻り、ステップＳ７０７がＮＯを返した場合、図７Ｃの（Ａ）に進み、又はステップＳ７０７がＮＯを返すまで、更なるノードについて、更に検証率を低めるループを繰り返す。
【０１５３】
幾つかの実施形態においては、ステップＳ７１０からＳ７１８によって全ての近隣ノードが処理されてもステップＳ７０７がＹＥＳを返す場合、残りの必要な低減は、例えば、以下の例示的な手法によって達成される。現在の近隣ノードの数を＃ＮＮとして、近隣ノードのそれぞれのノード別検証率Ｖ＿ｉを、例えば、（Ｌ−Ｖ＿ａｌｌ）／＃ＮＮの量だけ低めることによって、総合的検証率Ｖ＿ａｌｌが総合的検証率閾値Ｌを上回らないように動的に制御してもよい。
【０１５４】
或いは、残りの必要な低減量は、次のような例示的な手法によって達成してもよい。幾つかの実施形態においては、ステップＳ７１７又はＳ７１６によって調整されていない近隣ノードの現在の数を＃ＮＮ１として、これらの近隣ノードのそれぞれのノード別検証率Ｖ＿ｉを、例えば、（Ｌ−Ｖ＿ａｌｌ）／＃ＮＮ１の量だけ低めることによって、総合的検証率Ｖ＿ａｌｌが総合的検証率閾値Ｌを上回らないように動的に制御してもよい。
【０１５５】
一方、ステップＳ７０７がＮＯを返した場合、処理は、上述のように、図７Ｃの（Ａ）を経て、ステップＳ７２０（上述したステップＳ７０５として既に実行されたものであってもよく、再び実行してもよい。）に進み、（下側の）第２の閾値Ｌ−ε（又は、Ｌ―ε１）に対して判定された総合的検証率Ｖ＿ａｌｌをチェックし、例えば、判定された総合的検証率Ｖ＿ａｌｌが（下側の）第２の閾値Ｌ−εより小さいか否かをチェックする。ステップＳ７０７／Ｓ７０５がＮＯを返した場合、図７Ｂの下位処理は、終了する（又はステップＳ７０６を繰り返して再開され、及び／又は繰り返し、定期的又は周期的に独自に開始される）。
【０１５６】
ステップＳ７２０がＹＥＳを返した場合、方法は、例えば、ステップＳ７０６の一部として、ステップＳ７０６の制御として、又は独立した処理として、下位処理であるステップＳ７２１に進み、ここで、例えば、判定された総合的検証率Ｖ＿ａｌｌ及び総合的検証率目標値Ｌの差に基づいて、許容される増加量＝Ｌ−Ｖ＿ａｌｌとして、総合的検証率Ｖ＿ａｌｌ（図７Ａに示すように、再び判定してもよく、更新された近隣ノード情報から取得してもよい）の許容される増加量を算出する。
【０１５７】
次に、近隣ノードの１つのノード別検証率Ｖ＿ｉを高めるために、例えば、次の近隣ノードｉに進むことによって（ステップＳ７２２）、近隣ノードを選択する必要がある。処理は、選択された近隣ノードｉに進み、ステップＳ７２３において、ランダムに選択された近隣ノードｉのノード別検証率Ｖ＿ｉを判定する。処理は、例えば、ステップＳ７２４において、ランダムに選択された近隣ノードｉのノード別受信率Ｒ＿ｉも判定する。
【０１５８】
ステップＳ７２５では、選択された近隣ノードｉについてランダムに選択された近隣ノードｉのノード別検証率Ｖ＿ｉがノード別受信率Ｒ＿ｉより低いか否かをチェックする。ステップＳ７２５がＮＯを返した場合、これは、選択された近隣ノードｉの検証率Ｖ＿ｉを高められない（又はこれ以上高められない）ことを意味し、処理は、ステップＳ７２２に戻り、次のノードｉ＋１に進む。
【０１５９】
ステップＳ７２５がＹＥＳを返した場合、これは、選択された近隣ノードｉの検証率Ｖ＿ｉを高めることができる（又は更に高めることができる）ことを意味し、処理は、ステップＳ７２６に進み、選択された近隣ノードｉのノード別受信率Ｒ＿ｉ及び選択された近隣ノードｉの検証率Ｖ＿ｉの差が総合的検証率Ｖ＿ａｌｌの許容された増加量、すなわち、総合的検証率目標値Ｌ及び判定された総合的検証率Ｖ＿ａｌｌの差以下であるかをチェックする。
【０１６０】
ステップＳ７２６がＮＯを返した場合、ステップＳ７２７において、総合的検証率目標値Ｌ及び判定された総合的検証率Ｖ＿ａｌｌの間の差である総合的な許容量によって選択された近隣ノードｉの検証率Ｖ＿ｉを高める（総合的検証率Ｖ＿ａｌｌが総合的検証率目標値Ｌの値まで高められる）。
【０１６１】
一方、ステップＳ７２６がＹＥＳを返した場合、ステップＳ７２８において、選択された近隣ノードｉのノード別受信率Ｒ＿ｉに一致するノード別に可能な量だけ選択された近隣ノードｉの検証率Ｖ＿ｉを高める（すなわち、ノードｉからの全てのメッセージを検証する）。
【０１６２】
そして、ステップＳ７２７において、近隣ノード情報を更新し、これは、例えば、選択された近隣ノードｉのノード別検証率Ｖ＿ｉの値を更新すること、及びオプションとして総合的検証率Ｖ＿ａｌｌを更新することを含む。例えば、ステップＳ７２７では、更に、近隣ノードｉに関連する検証時刻（time-to-verify）又は次回検証時刻（next-verification time）ＴＶ＿ｉを更新してもよい（以下の幾つかの例示的な実施形態で説明する）。そして、処理は、再びステップＳ７２０に戻り、ステップＳ７２０がＮＯを返した場合、処理が終了し、この他の場合、ステップＳ７２０がＮＯを返すまで（又は全ての近隣ノードの検証率Ｖ＿ｉが受信率Ｒ＿ｉに等しくなるまで）更なるノードについて、検証率を更に低めるループを繰り返す。
【０１６３】
図８は、幾つかの例示的な実施形態に基づく更なる例示的なメッセージ検証制御処理のフローチャートを示している。
【０１６４】
ステップＳ８０１では、近隣ノードｉからメッセージを受信する。ステップＳ８０２では、ステップＳ８０１において新しく受信したメッセージに基づいて、近隣ノードｉのノード別受信率Ｒ＿ｉを更新する。
【０１６５】
ステップＳ８０３では、処理は、近隣ノード情報に基づいて（又は近隣ノードｉに関連する検証率低減係数Ｆ＿ｉ又は信頼度レベルパラメータＫ＿ｉからの計算に基づいて）、近隣ノードｉに関連するノード別次回検証時刻ＴＶ＿ｉ（time-to-verify）を判定する。
【０１６６】
ステップＳ８０４では、受信したメッセージの検証が必要か否かを判定するために、近隣ノードｉに関連する判定された次回検証時刻ＴＶ＿ｉを現在の時刻Ｔｃｕｒと比較し、Ｔｃｕｒが次回検証時刻ＴＶ＿ｉより後であれば、検証が必要であり、ステップＳ８０４は、ＹＥＳを返し、Ｔｃｕｒが判定された次回検証時刻ＴＶ＿ｉより前であれば、検証は不要であり、ステップＳ８０４は、ＮＯを返す。
【０１６７】
すなわち、ステップＳ８０４では、検証が必要か否かを判定し、ステップＳ８０４がＮＯを返した場合、処理は、メッセージを処理するステップＳ８１０に進む（例えば、メッセージの処理は、メッセージ又はメッセージヘッダを符号化すること又は検証層から上位の処理層にメッセージを転送することを含む）。
【０１６８】
一方、ステップＳ８０４がＹＥＳを返した場合、処理はステップＳ８０５に進み、受信メッセージを検証する（すなわち、メッセージ対する検証動作を実行する）。
【０１６９】
ステップＳ８０６では、検証が成功したか否か（すなわち、メッセージが有効であることが検証されたか否か）を判定し、ステップＳ８０６がＮＯを返した（すなわち、メッセージの検証処理が失敗した）場合、メッセージを削除する。なお、ステップＳ８０６がＮＯを返した場合、ステップＳ８１２において、近隣ノードｉに関連する信頼度レベルパラメータＫ＿ｉを低めることによって、近隣ノードｉに関連する検証率低減係数Ｆ＿ｉを高め（以降、近隣ノードｉからのメッセージのうち、最大で全てのメッセージを検証する必要があることを指示し）、処理を終了する（又は次のメッセージの受信を待機する）。
【０１７０】
一方、ステップＳ８０６がＹＥＳを返した場合、処理は、ステップＳ８０７に進んで近隣ノードｉに関連する信頼度レベルパラメータＫ＿ｉを判定し、次に、ステップＳ８０８において信頼度レベルパラメータＫ＿ｉが最大の信頼度レベルパラメータＫｍａｘを下回っているか否か（Ｋ＿ｉ＜Ｋｍａｘ？）を調べ、ステップＳ８０８がＮＯを返した場合、ステップＳ８１０において、メッセージを処理する。一方、信頼度レベルパラメータＫ＿ｉが最大の信頼度レベルパラメータＫｍａｘを下回っている場合、ステップＳ８０８は、ＹＥＳを返し、方法は、ステップＳ８０９に進み、近隣ノードｉに関連する信頼度レベルパラメータＫ＿ｉを高めることによって、近隣ノードｉに関連する検証率低減係数Ｆ＿ｉを間接的に低める（以降、近隣ノードｉからのメッセージのうち、検証する必要があるメッセージがより少なくてよいことを示す）。そして、ステップＳ８１０において、メッセージを処理する。
【０１７１】
このように、近隣ノードｉからの先のメッセージの検証の結果に応じて、１つ以上の検証が失敗した場合、信頼度パラメータＫ＿ｉを低めることによってノードｉに関連する検証率低減係数Ｆ＿ｉを高め（最大で、全てのメッセージの検証が必要であることを示すＦ＿ｉ＝１）、１つ以上の検証が成功した場合、信頼度レベルパラメータＫ＿ｉを高めることによって検証率低減係数Ｆ＿ｉを低める。すなわち、各信頼度レベルパラメータは、関連する各ノードから受信されるメッセージに関する先の検証結果に基づいて判定される各関連ノードの信頼性を示している。
【０１７２】
処理は、ステップＳ８１１において、近隣ノード情報３４２内の各パラメータを更新し、これは、近隣ノードｉに関連するノード別検証率パラメータＶ＿ｉ（Ｓ８０４／Ｓ８０５によって変化することがある）、総合的検証率パラメータＶ＿ａｌｌ（例えば、変更されたＶ＿ｉの影響を受ける。）、近隣ノードｉに関連するノード別信頼度レベルパラメータＫ＿ｉ（例えば、ステップＳ８１２又はＳ８０９によって変化する。）、近隣ノードｉに関連するノード別検証率低減係数Ｆ＿ｉ（例えば、変更された信頼度レベルパラメータＫ＿ｉの影響を受ける。）、及び近隣ノードｉに関連する次回検証時刻ＴＶ＿ｉ（変更された信頼度レベルパラメータＫ＿ｉ及び／又は変更された検証率低減係数Ｆ＿ｉの影響を受ける。）を更新することを含む。
【０１７３】
例えば、近隣ノードｉに関連するノード別検証率パラメータＶ＿ｉを制御するために、検証率パラメータＶ＿ｉの意図された制御値を用いて、ステップＳ８０４において使用される近隣ノードｉに関連する次回検証時刻ＴＶ＿ｉを更新することができる。例えば、メッセージの検証に応じて、近隣ノードｉに関連する次回検証時刻ＴＶ＿ｉをＴＶ＿ｉ＝Ｔｃｕｒ＋１／Ｖ＿ｉとして更新してもよい。
【０１７４】
また、上述の例では、近隣ノードｉに関連する信頼度レベルパラメータＫ＿ｉ（信頼性のレベル）は、例えば、近隣ノードｉに関連する検証率低減係数Ｆ＿ｉの低減に伴って増加し、及び例えば、近隣ノードｉに関連する検証率低減係数Ｆ＿ｉの増加に伴って減少する。幾つかの実施形態においては、この関係は線形であり、例えば、Ｆ＿ｉ＝１−Ｋ＿ｉ等であってもよい。
【０１７５】
幾つかの好ましい例示的な実施形態においては、近隣ノードｉに関連する信頼度レベルパラメータＫ＿ｉは、低減係数Ｆ＿ｉが０になり、特定のノードからのメッセージが全く検証されなくなる状況を回避するために、０から最大値Ｋｍａｘの間に限定される。Ｋｍａｘは、好ましくは、０より大きい１未満の数又は値である。
【０１７６】
もちろん、検証結果に基づく近隣ノードｉに関連する信頼度レベルパラメータＫ＿ｉの増加及び減少に関して、１つ以上の検証が成功／失敗したとき、信頼度レベルパラメータＫ＿ｉが階段状に増加／減少する階段関数を用いてもよい。
【０１７７】
また、幾つかの例示的な実施形態においては、ノードｉから受信したメッセージの検証の連続的な成功の関数として信頼度レベルパラメータＫ＿ｉを高めることを提案する。例えば、幾つかの例示的な実施形態においては、信頼度レベルパラメータＫ＿ｉを、Ｋ＿ｉ＝１−αｎ＿ｉとしてもよく、ここで、αは、０より大きい１未満の数又は値であり、指数ｎ＿ｉは、特定の近隣ノードｉから受信したパケット／メッセージの検証の連続的な成功の総数である。
【０１７８】
例えば、パラメータαは、近隣ノードが信頼される速さを定義し、例えば、α＝０．９５であれば、最初の検証の成功によって信頼度レベルが速やかに上昇し、この後の検証の成功では、（例えば、上限Ｋｍａｘに到達するまで）より緩やかに上昇する（Ｋｍａｘは、例えば、間隔０．８５〜０．９５、好ましくは、０．９である）。
【０１７９】
特に、近隣ノードがローカルネットワークに参加し又は離脱する速度が速い動的なシナリオにおいては、例えば、αは、０．７５〜０．９５の範囲内、好ましくは、０．８５〜０．９５の範囲内において、α＝０．９５等、より大きい値が好ましい。
【０１８０】
検証が成功せず、失敗したとき、信頼度レベルパラメータＫ＿ｉを低めるために、αを０より大きい１未満への数又は値とし、その指数ｎ＿ｉを特定の近隣ノードｉから受信したパケット／メッセージの検証の連続的な成功の総数として、上述の式Ｋ＿ｉ＝１−αｎ＿ｉを適用してもよい（例えば、ｎ＿ｉが０になり、Ｋ＿ｉは、０と判定される）。
【０１８１】
他の例示的な実施形態では、例えば、先の信用度レベルパラメータＫ＿ｉに０より大きい１未満のペナルティ係数βを乗算することによって「ペナルティ」を緩くしてもよく、これにより、Ｋ＿ｉは、Ｋ＿ｉ×βとなる。係数βは、ペナルティの強さ又は厳しさを決定する。係数β＝０は、如何なる場合も次のパケットを検証することを意味し、係数β＝０．５は、特定の近隣ノードｉの新たな検証に失敗する毎に、信用度レベルを半分にすることを意味する。
【０１８２】
以上のように、幾つかの実施形態では、モバイルノードを含む通信ネットワーク内のメッセージ検証を有利に制御し、非常に高い安全性を実現すると同時に、より費用効果が高く、演算負荷が小さいメッセージ検証を実現できる。
【０１８３】
上述した実施形態の構造の特徴、構成要素及び特定の詳細を交換し又は組み合わせて、アプリケーション毎に最適化された更なる実施形態を想到することができる。説明を簡潔にするために、可能な全ての組み合わせを特別に明示していないが、これらの修正は、当業者にとって明らかであり、これらの組み合わせは、本明細書によって間接的に開示されているものとする。
【図１】
2016088676.tif 000003
【図２Ａ】
2016088676.tif 000004
【図２Ｂ】
2016088676.tif 000005
【図３】
2016088676.tif 000006
【図４Ａ】
2016088676.tif 000007
【図４Ｂ】
2016088676.tif 000008
【図５】
2016088676.tif 000009
【図６】
2016088676.tif 000010
【図７Ａ】
2016088676.tif 000011
【図７Ｂ】
2016088676.tif 000012
【図７Ｃ】
2016088676.tif 000013
【図８】
2016088676.tif 000014
【国際調査報告】
2016088676.tif 000015
2016088676.tif 000016
2016088676.tif 000017
2016088676.tif 000018