(57)【要約】【課題】暗号化のための共通の暗号鍵を相手に送る際の危険性を考慮し、暗号鍵を相手に送ることなく暗号鍵を互いに共有すること。【解決手段】  ゲートウェイ２とセンサノード１は同一の情報をその内部に共有しており、ゲートウェイ２は、共有情報からハッシュ関数によって算出したハッシュ値をセンサノード１との間で行う共通鍵暗号化通信の暗号鍵として保持し、センサノード１は、共有情報から前記ハッシュ関数と同一のハッシュ関数によって算出したハッシュ値をゲートウェイ２との間で行う共通鍵暗号化通信の暗号鍵として保持し、さらに、ゲートウェイ２及びセンサノード１は、共有情報を予め定めた所定のタイミングで互いに同一の内容で更新し、更新された共有情報からハッシュ関数によって算出したハッシュ値を新たな暗号鍵として更新する。【選択図】図６
2019057867.tif 000002
【特許請求の範囲】
【請求項１】
インターネットに接続されたゲートウェイと、該ゲートウェイに無線接続されたネットワークノード（以下「ノード」という。）との間の通信を暗号化して行う暗号化通信システムにおいて、
前記ゲートウェイと前記ノードとの通信は低電力広域通信（以下「ＬＰＷＡ通信」という。）であり、
前記ゲートウェイと前記ノードは同一の情報をその内部に共有しており、
前記ゲートウェイは、前記共有している情報（以下「共有情報」という。）から一方向性ハッシュ関数（以下「ハッシュ関数」という。）によって算出したハッシュ値を前記ノードとの間で行う共通鍵暗号化通信の暗号鍵として保持し、
前記ノードは、前記共有情報から前記ハッシュ関数と同一のハッシュ関数によって算出したハッシュ値を前記ゲートウェイとの間で行う共通鍵暗号化通信の暗号鍵として保持し、さらに、
前記ゲートウェイ及び前記ノードは、前記共有情報を予め定めた所定のタイミングで互いに同一の内容で更新し、前記更新された共有情報から前記ハッシュ関数によって算出したハッシュ値を新たな暗号鍵として更新するとともに、
前記ゲートウェイ及び前記ノードは、前記暗号鍵の生成及び更新を行う制御部をそれぞれ備えていることを特徴とする暗号化通信システム。
【請求項２】
インターネットに接続されたゲートウェイと、該ゲートウェイに無線接続された複数のノードとの間の通信を暗号化して行う暗号化通信システムにおいて、
前記ゲートウェイと前記ノードとの通信は低電力広域通信（以下「ＬＰＷＡ通信」という。）であり、
前記ゲートウェイは、前記各ノードと同一の情報をその内部に共有しており（ただし、該情報は各ノードごとに異なる）、
前記ゲートウェイは、前記各ノードと共有している情報（以下「共有情報」という。）から一方向性ハッシュ関数（以下「ハッシュ関数」という。）によって算出したハッシュ値を前記ノードとの間で行う共通鍵暗号化通信の個別暗号鍵として保持し、
前記ノードは、前記共有情報から前記ハッシュ関数と同一のハッシュ関数によって算出したハッシュ値を前記ゲートウェイとの間で行う共通鍵暗号化通信の個別暗号鍵として保持し、さらに、
前記ゲートウェイは、前記各ノードと共有しているすべての共有情報（ノードの台数分存在する）から前記ハッシュ関数と同一あるいは別のハッシュ関数で算出した一つのハッシュ値を前記各ノードに共通する共通暗号鍵として生成するとともに、前記生成した共通暗号鍵を、前記ノードごとに生成した前記個別暗号鍵を用いて暗号化し、暗号化された前記共通暗号鍵を前記各ノードに送信し、
前記各ノードは、受信した前記暗号化された共通暗号鍵を、前記個別暗号鍵を用いて復号化して共通暗号鍵として保持し、
前記ゲートウェイ及び前記各ノードは、前記共有情報を予め定めた所定のタイミングで互いに同一の内容で更新し、前記更新された共有情報から前記ハッシュ関数によって算出したハッシュ値を新たな個別暗号鍵として更新するとともに、
前記ゲートウェイは、前記更新されたすべての共有情報から前記ハッシュ関数と同一あるいは別のハッシュ関数で算出した一つのハッシュ値を新たな共通暗号鍵として更新するとともに、
前記ゲートウェイ及び前記各ノードは、前記暗号鍵の生成及び更新を行う制御部をそれぞれ備えていることを特徴とする暗号化通信システム。
【請求項３】
前記所定のタイミングが、一連の暗号化通信が終了後、再度、通信を開始するとき、又は、接続されている時間が一定期間を経過した時であることを特徴とする請求項１又は２に記載の暗号化通信システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、暗号化通信システムに関する。特に、小電力無線通信等の非ＩＰネットワークにおける通信に適した暗号化通信システムに関する。
【背景技術】
【０００２】
ＩＰ（Internet Protocol）ネットワークであるインターネットにおける通信で一般的に使用されているＳＳＬ（Secure Sockets Layer）やＩＰｓｅｃ（IP Security Architecture）は、暗号通信用の暗号鍵を共有するために、Diffie-Hellman（DH）鍵交換、ＲＳＡなどの方法で、自分の公開鍵を互いに相手に送信する必要がある。これらの方法で安全性を確保するには、2000ビット以上の整数のべき乗の剰余計算が伴うため、処理能力が小さいＩｏＴ機器には適していない。
また、ＩｏＴ機器とゲートウェイとの通信に利用されているＬｏＲａ等の低電力広域通信（以下「ＬＰＷＡ通信」という。）ではセキュリティ機能が備えられていないため、ＩｏＴ機器をインターネットに接続した場合、サイバー攻撃の対象になりやすく、深刻な被害が発生するおそれがある。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特願２０１７−０４５８１４明細書
【発明の概要】
【発明が解決しようとする課題】
【０００４】
例えば、未公開の上記特許文献１の図３において、監視カメラを備えた監視装置（子機）１１が、ゲートウェイである親機１０とＬＰＷＡ通信により通信を行う場合、悪意の第三者が不正なゲートウェイ機器から子機１１に不正な指令を送って誤作動させたり、子機１１からの信号を傍受してデータを書き換えて真正な親機１０に転送したりする不正が起こらないとも限らない。
そのためには、通信を行う親機１０及び子機１１が真正なものであるかを相互に認証し、また、その間の通信も暗号化して第三者に読み取られない（あるいは読み取られても解読不可能であること）ようにすることが求められている。
さらには、暗号化のための共通の暗号鍵を相手に送る際の危険性を考慮し、暗号鍵を相手に送ることなく暗号鍵を互いに共有することが望ましい。
【０００５】
本発明は、上述のようなＬＰＷＡ通信等の非ＩＰネットワーク通信における問題点に鑑み為されたものであり、かかる通信を行う機器間における安全性の高い暗号化通信システムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明は、インターネットに接続されたゲートウェイと、該ゲートウェイに無線接続されたネットワークノード（以下「ノード」という。）との間の通信を暗号化して行う暗号化通信システムにおいて、前記ゲートウェイと前記ノードとの通信は低電力広域通信（以下「ＬＰＷＡ通信」という。）であり、前記ゲートウェイと前記ノードは同一の情報をその内部に共有しており、前記ゲートウェイは、前記共有している情報（以下「共有情報」という。）から一方向性ハッシュ関数（以下「ハッシュ関数」という。）によって算出したハッシュ値を前記ノードとの間で行う共通鍵暗号化通信の暗号鍵として保持し、前記ノードは、前記共有情報から前記ハッシュ関数と同一のハッシュ関数によって算出したハッシュ値を前記ゲートウェイとの間で行う共通鍵暗号化通信の暗号鍵として保持し、さらに、前記ゲートウェイ及び前記ノードは、前記共有情報を予め定めた所定のタイミングで互いに同一の内容で更新し、前記更新された共有情報から前記ハッシュ関数によって算出したハッシュ値を新たな暗号鍵として更新するとともに、前記ゲートウェイ及び前記ノードは、前記暗号鍵の生成及び更新を行う制御部をそれぞれ備えていることを特徴とする。
【０００７】
また、本発明は、インターネットに接続されたゲートウェイと、該ゲートウェイに無線接続された複数のノードとの間の通信を暗号化して行う暗号化通信システムにおいて、
前記ゲートウェイと前記ノードとの通信はＬＰＷＡ通信であり、前記ゲートウェイは、前記各ノードと同一の情報をその内部に共有しており（ただし、該情報は各ノードごとに異なる）、前記ゲートウェイは、前記各ノードとの共有情報からハッシュ関数によって算出したハッシュ値を前記ノードとの間で行う共通鍵暗号化通信の個別暗号鍵として保持し、
前記ノードは、前記共有情報から前記ハッシュ関数と同一のハッシュ関数によって算出したハッシュ値を前記ゲートウェイとの間で行う共通鍵暗号化通信の個別暗号鍵として保持し、さらに、前記ゲートウェイは、前記各ノードと共有しているすべての共有情報（ノードの台数分存在する）から前記ハッシュ関数と同一あるいは別のハッシュ関数で算出した一つのハッシュ値を前記各ノードに共通する共通暗号鍵として生成するとともに、前記生成した共通暗号鍵を、前記ノードごとに生成した前記個別暗号鍵を用いて暗号化し、暗号化された前記共通暗号鍵を前記各ノードに送信し、前記各ノードは、受信した前記暗号化された共通暗号鍵を、前記個別暗号鍵を用いて復号化して共通暗号鍵として保持し、前記ゲートウェイ及び前記各ノードは、前記共有情報を予め定めた所定のタイミングで互いに同一の内容で更新し、前記更新された共有情報から前記ハッシュ関数によって算出したハッシュ値を新たな個別暗号鍵として更新するとともに、前記ゲートウェイは、前記更新されたすべての共有情報から前記ハッシュ関数と同一あるいは別のハッシュ関数で算出した一つのハッシュ値を新たな共通暗号鍵として更新するとともに、前記ゲートウェイ及び前記各ノードは、前記暗号鍵の生成及び更新を行う制御部をそれぞれ備えていることを特徴とする。
【発明の効果】
【０００８】
上記構成による暗号化通信システムによれば、相手に暗号鍵を送信することなく、共通鍵暗号化通信を行うことができる。また、所定のタイミングで暗号鍵の更新を行うので、安全性がさらに高まる。
【図面の簡単な説明】
【０００９】
【図１】本発明に係る暗号化通信システムが適用されるワイヤレスセンサネットワークの一例を示すブロック図である。
【図２】センサノードのハードウェア構成例を示すブロック図である。
【図３】ゲートウェイのハードウェア構成例を示すブロック図である。
【図４】センサノードの機能ブロックを示すブロック図である。
【図５】ゲートウェイの機能ブロックを示すブロック図である。
【図６】ゲートウェイとセンサノード間における認証及び暗号化通信のシーケンスの第一実施形態を示す図である。
【図７】ゲートウェイとセンサノード間における認証及び暗号化通信のシーケンスの第一実施形態の変形例を示す図である。
【図８】ゲートウェイとセンサノード間における認証及び暗号化通信のシーケンスの第二実施形態を示す図である。
【図９】ゲートウェイとセンサノード間における認証及び暗号化通信のシーケンスの第二実施形態の変形例を示す図である
【図１０】センサノードとゲートウェイの間で送受信されるデータのフォーマットの例を示す図である。
【図１１】暗号化の範囲とセキュリティ機能の適用範囲を示した図である（パターン１の場合）。
【図１２】暗号化の範囲とセキュリティ機能の適用範囲を示した図である（パターン２の場合）。
【図１３】図１２（Ｅ）の場合におけるメッセージ改竄箇所の判定を行うフローを示す図である。
【図１４】暗号化の範囲とセキュリティ機能の適用範囲を示した図である（パターン３の場合）。
【図１５】暗号化の範囲とセキュリティ機能の適用範囲を示した図である（パターン４の場合）。
【図１６】暗号化の範囲とセキュリティ機能の適用範囲を示した図である（パターン５の場合）。
【図１７】暗号化の範囲とセキュリティ機能の適用範囲を示した図である（パターン６の場合）。
【図１８】Ｎ個の異なる属性の情報で構成されるメッセージを暗号化通信する場合のデータフォーマットの一例を示す図である。
【図１９】Ｎ個の異なる属性の情報で構成されるメッセージを暗号化通信する場合のデータフォーマットの他の例を示す図である。
【図２０】図１８のフォーマットのメッセージの改竄の箇所を特定する処理のフローチャートの一例を示す図である。
【図２１】非ＩＰネットワークとＩＰネットワークとの安全な接続方法の一例を示すシーケンス図である。
【図２２】非ＩＰネットワークとＩＰネットワークとの安全な接続方法の他の例を示すシーケンス図である。
【発明を実施するための形態】
【００１０】
本発明に係る暗号化通信システムの実施形態について、図面を参照しつつ詳細に説明する。
図１は、本発明に係る暗号化通信システムが適用されるワイヤレスセンサネットワーク（ＷＳＮ）の一例を示すブロック図である。
ノードの一例である分散配置された複数のセンサノード（計測ノードとも言う。）１がゲートウェイ２と無線接続され、センサノード１で集録されたデータはＷＳＮを介してゲートウェイ２に送信され、インターネット３等の広域ネットワークに接続されたゲートウェイ２を介してサーバ４にデータが集められ、サーバ４に解析結果が表示されるようになっている。また、ゲートウェイ２とインターネット３との間は無線又は有線で接続されている。
なお、この実施例においては、ＷＳＮはＬＰＷＡ通信などの低電力広域通信を想定している。
また、サーバ４には、利用可能なセンサノードの属性情報（ノード名、識別情報、秘密情報、シーケンス番号、型式名、シリアルNo.他）が、例えば、データベース（表１）として予め格納されている。セットアップの段階で、接続するセンサノードが決定したら、その識別情報、秘密情報、シーケンス番号（初期値：０）をサーバ４からゲートウェイ２に転送し、後述のフラッシュメモリ１４に書きこむ。
【表１】
2019057867.tif 000003
【００１１】
図２は、センサノード１のハードウェア構成を示すブロック図である。センサノード１は、本体５とセンサ６とから構成されている。本体５は、制御部１０と、制御部１０に接続されたＬＰＷＡ通信モジュール１１とセンサインタフェース（Ｉ／Ｆ）１２を備えている。
ＬＰＷＡ通信モジュール１１は、ゲートウェイ２との通信を行うための機能を備えたモジュールである。ＬＰＷＡ通信モジュールとしては、例えば、ＬｏＲａ用のＬｏＲａモジュール「ＥＳ９２０ＬＲ」（株式会社ＥＡＳＥＬ製）が利用可能である。
ＬｏＲａは最大８ｋｍという長い距離を低い出力の電波を使って通信ができるという特長がある。なお、距離が長くなればそれだけ電力を消費するため、電池の性能を勘案しながら、配置距離を決定する。線路監視の場合、約７０ｍおきに設置する。使用される周波数は、日本では免許の不要な特定小電力無線局が利用できる９２０ＭＨｚ帯である。この帯域は、Ｗｉｆｉ（登録商標）等で使用されている２．４ＧＨｚ帯よりも低い周波数であり、その分長距離を飛び、建物などを回り込むことができ、雨などの影響や電波干渉を受けにくい。
【００１２】
制御部１０は、ＣＰＵ１０ａ、ＲＡＭ１０ｂ及びＲＯＭ１０ｃを備え、センサノード１全体を制御する制御手段である。ＣＰＵ１０ａが、ＲＯＭ１０ｃ等に記憶されている所要のプログラムを実行して、ゲートウェイ２を介して、サーバ４にセンサ６で集録されたデータを送信したりする機能を有する。
センサＩ／Ｆ１２は、センサ６との接続のためのインタフェースである。
また、制御部１０は、後述のように、ゲートウェイ２を認証したり、暗号化通信のための暗号鍵を生成／更新したり、送信データを暗号鍵を用いて暗号化／復号化したりする機能も備える。
さらに、ＲＯＭ１０ｃには、後述のように、認証や暗号鍵生成のために使用する共有情報が予め格納されている。
【００１３】
図３は、ゲートウェイ２のハードウェア構成を示すブロック図である。ゲートウェイ２は、制御部１０と、制御部１０に接続されたＬＰＷＡ通信モジュール１１と通信Ｉ／Ｆ１３を備えている。ＬＰＷＡ通信モジュール１１は、センサノード１との通信を行うための機能を備えたモジュールである。通信Ｉ／Ｆ１３は、インターネット３に接続するための通信インタフェースであり、有線ＬＡＮまたは無線ＬＡＮが利用可能である。
さらに、ゲートウェイ２は、一括書きこみ／消去が可能なフラッシュメモリ１４を備えている。
制御部１０は、ＣＰＵ１０ａ、ＲＡＭ１０ｂ及びＲＯＭ１０ｃを備え、ゲートウェイ２全体を制御する制御手段である。ＣＰＵ１０ａが、ＲＯＭ１０ｃ等に記憶されている所要のプログラムを実行して、後述の各種の機能を実現する。
【００１４】
次に、センサノード１の機能構成について説明する。図４は、センサノード１の機能構成を示す機能ブロック図である。
図４に示すように、センサノード１は、乱数発生部２１、認証部２２、暗号鍵生成部２３、暗号化部２４、共有情報更新部２５、記憶部２６を備える。
記憶部２６を除く各部の機能は、ＣＰＵ１０ａが所要のプログラムを実行して図４に示した各部の動作を制御することにより実現されるものである。なお、記憶部２６の機能はＲＯＭ１０ｃが実現する。
【００１５】
このうち、乱数発生部２１は、ゲートウェイ２を認証するための乱数（α）を発生させる機能を備える。
また、認証部２２は、記憶部２６に格納されたセンサノード１の識別情報（ＩＤ）、秘密情報（ｓｋ）、シーケンス番号（ｉ）と、乱数発生部２１で発生させた乱数（α）及び後述のゲートウェイ２から受け取った乱数（Ｘ）とを用いてゲートウェイ２を認証する機能を備える。認証の方法（シーケンス）は後述する。
【００１６】
暗号鍵生成部２３は、記憶部２６に格納されたセンサノード１の識別情報（ＩＤ）、秘密情報（ｓｋ）、シーケンス番号（ｉ）と、乱数発生部２１で発生させた乱数（α）及び後述のゲートウェイ２から受け取った乱数（Ｘ）とから、一方向性ハッシュ関数によりハッシュ値を求め、それを暗号鍵として生成する機能を備える。
一方向性ハッシュ関数とは、元のデータから固定長のデータ（ハッシュ値）を作り出す関数のことであり、簡単に計算はできるが、その逆関数の計算は非常に困難若しくは不可能である関数のことである。一方向ハッシュ関数としては、ＭＤ５、ＳＨＡ−１、ＳＨＡ−２等が知られており、目的に応じて適宜選択することが可能である。
【００１７】
暗号化部２４は、暗号鍵生成部２３で生成した暗号鍵を用いて、ゲートウェイ２に送信するデータを暗号化したり、その逆に、ゲートウェイ２から受信した暗号化データを復号化したりする機能を備える。
暗号化方式は共通鍵暗号化方式を用いる。例えば、米国ＮＳＡが開発し、CRYPTRECでも紹介されている軽量暗号SPECK等が利用可能である。
【００１８】
共有情報とは、ここでは上記の秘密情報（ｓｋ）とシーケンス番号（ｉ）をまとめたものを指すが、共有情報更新部２５は、共有情報を所定のタイミングで更新する機能を備える。所定のタイミングとは、例えば、（１）一連の暗号化通信が終了後、再度、通信を開始するとき、（２）接続されている時間が一定期間を経過した時、（３）サーバから認証をすることを指示されたときのいずれかが考えられるが、ゲートウェイ２がサーバ４に接続されていない場合には、（１）か（２）のいずれか早い方になる。
共有情報が更新されると、更新された共有情報を用いて暗号鍵も更新される。
【００１９】
次に、ゲートウェイ２の機能構成について説明する。図５は、ゲートウェイ２の機能構成を示す機能ブロック図である。
図５に示すように、ゲートウェイ２は、乱数発生部３１、認証部３２、暗号鍵生成部３３、暗号化部３４、共有情報更新部３５、記憶部３６を備える。
記憶部３６を除く各部の機能は、ＣＰＵ１０ａが所要のプログラムを実行して図５に示した各部の動作を制御することにより実現されるものである。なお、記憶部３６の機能はフラッシュメモリ１４が実現する。
【００２０】
このうち、乱数発生部３１は、センサノード１を認証するための乱数（Ｘ）を発生させる機能を備える。
また、認証部３２は、記憶部３６に格納されたセンサノード１の識別情報（ＩＤ）、秘密情報（ｓｋ）、シーケンス番号（ｉ）と、乱数発生部３１で発生させた乱数（Ｘ）及び前述のセンサノード１から受け取った乱数（α）とを用いてセンサノード１を認証する機能を備える。認証の方法（シーケンス）は後述する。
暗号鍵生成部３３は、記憶部３６に格納されたセンサノード１の識別情報（ＩＤ）、秘密情報（ｓｋ）、シーケンス番号（ｉ）と、乱数発生部３１で発生させた乱数（Ｘ）及びセンサノード１から受け取った乱数（α）とから、一方向性ハッシュ関数によりハッシュ値を求め、それを暗号鍵として生成する機能を備える。
暗号化部３４は、暗号鍵生成部３３で生成した暗号鍵を用いて、センサノード１に送信するデータを暗号化したり、その逆に、センサノード１から受信した暗号化データを復号化したりする機能を備える。
【００２１】
共有情報更新部３５は、共有情報を所定のタイミングで更新する機能を備える。所定のタイミングとは、上述の通りである。共有情報が更新されると、更新された共有情報を用いて暗号鍵も更新される。
なお、ゲートウェイ２はプロトコル変換機能も備えるが、本発明の暗号化通信システムとは直接関係がないので、図示は省略した。
【００２２】
次に、センサノード１及びゲートウェイ２との間で行われる相互認証、（共通の）暗号鍵生成及び共有情報の更新方法について説明する。
図６は、ゲートウェイ２とセンサノード１の間における認証及び暗号化通信のシーケンスの第一実施形態を示す図である。以下、図においては、ゲートウェイを「ＧＷ」、センサノードを「ＳＮ」と表記する。
前提として、ゲートウェイ２のフラッシュメモリ１４にはセンサノードＳＮ１の識別情報ID1と共有情報（sk1、i1）が格納されており、センサノードＳＮ１のＲＯＭ１０ｃにはセンサノードＳＮ１の識別情報ID1と共有情報（sk1、i1）が格納されているものとする。
【００２３】
両者の情報が同じものであることが確認されたら、お互いに相手が真正なものであると判断するという考え方であるが、共有情報それ自体を相手に送って、相手が持っている共有情報と直接比較するのではなく、共有情報を含む情報から求めたハッシュ値を相手に送り、相手が持っている共有情報を含む情報から求めたハッシュ値と比較することにより、共有情報が同じものか否かを判定するものである。共有情報自体を送信しないため、通信を第三者に傍受されても問題はない。
【００２４】
まず、ＧＷが新規乱数（X1）を生成し（Ｓ１）、乱数X1をＳＮ１に送信する（Ｓ２）。
ＳＮ１は、ＧＷから乱数X1を受信すると、新規乱数（α1）生成する（Ｓ３）。
次に、ＳＮ１はID1，sk1，i1，X1，α1から、ハッシュ関数Ｈ０でハッシュ値β1を計算する（Ｓ４）。
次に、ＳＮ１からＧＷに対して、α１とβ１を結合したデータY1=α1||β1を送信する（Ｓ５）。乱数を互いに送信する目的は、認証で送信するハッシュ値を毎回異なる値にすることにある。なお、「||」は連結演算子である。
β１を受信したＧＷは、フラッシュメモリ１４に格納されているID1，sk1，i1と、自身が発生させたX1とＳＮ１から受信したα1とから、ハッシュ関数Ｈ０でハッシュ値βを計算し（Ｓ６）、受信したβ１と比較する（Ｓ７）。もし、両者が一致した場合は（Ｓ７のＹＥＳ）、ＳＮ１は正規と判定する（Ｓ８）。なお、一致しなかった場合は（Ｓ７のＮＯ）、ＳＮ１は不正と判定し、以降の通信を行わない（Ｓ９）。
【００２５】
次に、上記とは逆に、ＳＮ１がＧＷを認証する処理を行う。ステップＳ８でＳＮ１が正規であると判定されたら、ＧＷはID1，sk1，i1，X1，α1から、ハッシュ関数H１でハッシュ値Z1を計算し（Ｓ１０）、ハッシュ値Z1をＳＮ１に送信する（Ｓ１１）。
Z１を受信したＳＮ１は、ＲＯＭ１０ｃに格納されているID1，sk1，i1と、自身が発生させたα1とＧＷから受信したX1とから、ハッシュ関数Ｈ１でハッシュ値Zを計算し（Ｓ１２）、受信したZ1と比較する（Ｓ１３）。もし、両者が一致した場合は（Ｓ１３のＹＥＳ）、ＧＷは正規と判定する（Ｓ１４）。なお、一致しなかった場合は（Ｓ１３のＮＯ）、ＧＷは不正と判定し、以降の通信を行わない（Ｓ１５）。
【００２６】
ＧＷは、ステップＳ１１でハッシュ値Z1をＳＮ１に送信したら、ID1，sk1，i1，X1，α1から、ハッシュ関数H２でハッシュ値を計算し（Ｓ１６）、それを共通の暗号鍵(key1)として保持する。
一方、ＳＮ１も同様にしてID1，sk1，i1，X1，α1から、ハッシュ関数H２でハッシュ値を計算し（Ｓ１７）、それを共通の暗号鍵(key1)として保持する。
このようにして、ＳＮ１とＧＷは暗号鍵を相手に送ることなく、共通の暗号鍵を保有することができる。すなわち、この第一実施形態は、センサノードごとに共通の暗号鍵が異なる場合である。
【００２７】
次に、ＳＮ１は、センサ６で集録したデータ等を、生成した暗号鍵(key1)で暗号化し（Ｓ１８）、暗号化情報をＧＷに送信する（Ｓ１９）。ＧＷは、受信した暗号化情報を暗号鍵(key1)で復号化し（Ｓ２０）、サーバ４に送る。
次に、ＧＷはID1，sk1，i1からハッシュ関数Ｈ２でハッシュ値を計算し、そのハッシュ値を新たなsk1としてフラッシュメモリ１４内のsk1を書き換えて更新するとともに（Ｓ２１）、シーケンス番号i1を更新（例えば、１増やす。）し、フラッシュメモリ１４内のi1を書き換える（Ｓ２２）。
【００２８】
一方、ＳＮ１も同様に、ID1，sk1，i1からハッシュ関数Ｈ２でハッシュ値を計算し、そのハッシュ値を新たなsk1としてＲＯＭ１０ｃ内のsk1を書き換えて更新するととに（Ｓ２３）、シーケンス番号i1を更新し、ＲＯＭ１０ｃ内のi1を書き換える（Ｓ２４）。そして、次回の通信時まで待機する。
なお、i1の更新であるが、ＧＷとＳＮ１で、初期値と更新の規則を同じにする。一番簡単なのは、初期値を０、その後、１ずつ大きくする方法である。最大値もソフトに設定しておき、最大値に到達したら、初期値に戻すか、１ずつ減らして行くことが考えられる
【００２９】
図７は、ゲートウェイとセンサノード間における認証及び暗号化通信のシーケンスの第一実施形態の変形例を示す図である。図７に示すシーケンスは、図６におけるＳ１０〜Ｓ１５までの処理を省略したものである。
すなわち、ゲートウェイ２がセンサノード１を認証する処理だけを行い、処理の簡略化を図ったものである。すなわち、ゲートウェイ２がセンサノード１を認証した結果、センサノード１が真正なものと判定されたということは、とりもなおさず、お互いが保有している共有情報が同一のものであることを意味するから、センサノード１がゲートウェイ２を認証する処理（Ｓ１０〜Ｓ１５）において、Ｓ１３が「ＹＥＳ」となる可能性が極めて高いから、Ｓ１０〜Ｓ１５は省略が可能であるからである。
なお、図７のステップＳ１６’とＳ１７’は、それぞれ、図６のＳ１６とＳ１７のハッシュ関数Ｈ２をハッシュ関数Ｈ１に置き換えたものであり、それ以外の部分は同一である。従って、図７の説明は省略する。
【００３０】
次に、１台のゲートウェイ２（ＧＷ）に複数のセンサノード１（ＳＮ１，ＳＮ２）が接続された場合の相互認証、（共通の）暗号鍵生成及び共有情報の更新方法について説明する。
第一実施形態の場合は、センサノードごとに暗号鍵が異なるが、センサノードごとに暗号鍵が異なると、ゲートウェイはセンサノードごとに異なった暗号鍵で暗号化を行わなければならず、また、その逆に、センサノードから受信した暗号化情報を、そのセンサノードに対応した暗号鍵で復号化しなければならなくなるので、センサノードの数が多いとゲートウェイの処理負担が過大なものとなる。
【００３１】
図８は、ゲートウェイとセンサノード間における認証及び暗号化通信のシーケンスの第二実施形態を示す図である。
この第二実施形態は、上述のような問題を解決するものであり、複数のセンサノードがあった場合でも、一つの共通した暗号鍵ですべてのセンサノードとの暗号化通信を可能にするものである。
以下、図８に基づいて第二実施形態について説明する。
前提として、ゲートウェイ２のフラッシュメモリ１４にはセンサノードＳＮ１及びＳＮ２の識別情報ID1，ID2と共有情報（sk1，sk2，i1，i2）が格納されているものとする。また、センサノードＳＮ１のＲＯＭ１０ｃにはセンサノードＳＮ１の識別情報ID1と共有情報（sk1、i1）が格納されており、センサノードＳＮ２のＲＯＭ１０ｃにはセンサノードＳＮ２の識別情報ID2と共有情報（sk2，i2）が格納されているものとする。
【００３２】
まず、ＧＷが新規乱数（X1）を生成し（Ｓ３１）、乱数X1をＳＮ１に送信する（Ｓ３２）。
ＳＮ１は、ＧＷから乱数X1を受信すると、新規乱数（α1）生成する（Ｓ３３）。次のステップＳ３４のＧＷとＳＮ１間の相互認証のシーケンスについては、図６のステップＳ４〜Ｓ１５と同じであるので、図示及び説明を省略する。
ＧＷとＳＮ２間の相互認証のシーケンスも、ＧＷとＳＮ１間の場合と同様に、まず、ＧＷが新規乱数（X2）を生成し（Ｓ３５）、乱数X2をＳＮ２に送信する（Ｓ３６）。
ＳＮ２は、ＧＷから乱数X2を受信すると、新規乱数（α2）生成する（Ｓ３７）。次のステップＳ３８のＧＷとＳＮ２間の相互認証のシーケンスについては、図６のステップＳ４〜Ｓ１５と同じであるので、図示及び説明を省略する。
【００３３】
ＧＷは、ステップＳ３８までにおいてすべてのセンサノードとの間で相互認証を終えたら、ID1，sk1，i1，X1，α1から、ハッシュ関数H２でハッシュ値(key1)を計算し、さらに、ID2，sk2，i2，X2，α2から、ハッシュ関数H２でハッシュ値(key2)を計算し保持する（Ｓ３９）。
一方、ＳＮ１も同様にしてID1，sk1，i1，X1，α1から、ハッシュ関数H２でハッシュ値(key1)を計算し保持する（Ｓ４０）。また、ＳＮ２も同様にしてID2，sk2，i2，X2，α2から、ハッシュ関数H２でハッシュ値(key2)を計算し保持する（Ｓ４１）。
なお、ここでハッシュ値key1及びkey2を計算したのは、後述の共通鍵(keyc)をＧＷからＳＮ１及びＳＮ２に安全に送るためであり、ハッシュ値(key1)及びハッシュ値(key2)が個別暗号鍵に相当する。
【００３４】
次に、ＧＷは、ID1，ID2，key1，key2，i1，i2から、ハッシュ関数H２でハッシュ値(keyc)を計算し、これを共通の暗号鍵(keyc)として保持する（Ｓ４２）。そして、ＧＷはすべてのセンサノードに共通の暗号鍵keycをハッシュ値key1で暗号化してＳＮ１に送る（Ｓ４３）。
ＳＮ１は受信した情報をハッシュ値(key1)で復号化し、共通暗号鍵keycとして使用する（Ｓ４４）。
同様に、ＧＷは共通暗号鍵keycをハッシュ値key2で暗号化してＳＮ２に送る（Ｓ４５）。
ＳＮ２は受信した情報をハッシュ値(key2)で復号化し、共通暗号鍵keycとして使用する（Ｓ４６）。
【００３５】
このようにして、ＧＷとすべてのセンサノードは共通の暗号鍵を共有することができる。
これ以降、ＧＷとＳＮ１又はＳＮ２の間の通信は、共通暗号鍵keycを用いた暗号化通信を行うことができる（Ｓ４７，Ｓ４８）。
ＧＷとＳＮ１及びＳＮ２の間の暗号化通信が行われたら、ＧＷは、ID1，sk1，i1からハッシュ関数H2でハッシュ値を計算し、そのハッシュ値でsk1を更新し、さらにID2，sk2，i2からハッシュ関数H2でハッシュ値を計算し、そのハッシュ値でsk2を更新する（Ｓ４９）。そして、シーケンス番号i1，i2を更新し（Ｓ５０）、次回の通信時まで待機する。
【００３６】
同様に、ＳＮ１もID1，sk1，i1からハッシュ関数Ｈ２でハッシュ値を計算し、そのハッシュ値を新たなsk1としてＲＯＭ１０ｃ内のsk1を書き換えて更新するととに（Ｓ５１）、シーケンス番号i1を更新し、ＲＯＭ１０ｃ内のi1を書き換える（Ｓ５２）。そして、次回の通信時まで待機する。
また、ＳＮ２もID2，sk2，i2からハッシュ関数Ｈ２でハッシュ値を計算し、そのハッシュ値を新たなsk2としてＲＯＭ１０ｃ内のsk2を書き換えて更新するととに（Ｓ５３）、シーケンス番号i2を更新し、ＲＯＭ１０ｃ内のi2を書き換える（Ｓ５４）。そして、次回の通信時まで待機する。
【００３７】
図９は、ゲートウェイとセンサノード間における認証及び暗号化通信のシーケンスの第二実施形態の変形例を示す図である。図９に示すシーケンスと図８のシーケンスとの違いは、図８のステップＳ３４（及びＳ３８）がＧＷとＳＮ１（及びＳＮ２）の間における相互認証であるのに対して、図９では一方向認証である点のみである。一方向認証については、図７ですでに説明しているので、ここでは説明を省略する。
それ以外の箇所については、図８での説明と同一であるので、説明は省略する。
以上でセンサノード１及びゲートウェイ２との間で行われる認証、共通暗号鍵生成及び共有情報の更新方法についての説明を終了する。
【００３８】
次に、生成された共通の暗号鍵を用いて行われる暗号化通信の実施例について説明する。
図１０は、センサノードとゲートウェイの間で送受信されるデータのフォーマットの例を示す図である。
図において、Dst IDは送信先（宛先）の装置のID、Src IDは送信元の装置のIDである。Dataは送受信されるデータであり、暗号化されるものである。また、Control Codeであるが、例えば次のようなものが考えられる。
（１）ゲートウェイからセンサノードに対するデータ送信要求と、センサノードからゲートウェイに送信されるデータ送信通知
（２）センサノードがゲートウェイに送信するデータのサイズ
（３）認証情報の更新時期
（４）暗号鍵の更新時期
【００３９】
図１０に示すデータに対して適用するセキュリティ機能は、暗号化、メッセージ認証及び送信元確認である。暗号化はデータを第三者が理解できないデータに変換する機能であり、メッセージ認証は第三者によってデータが不正に変更（改竄）されていないことを確認する機能である。また、送信元確認は、所謂「なりすまし」を防止するためのものである。送信データに対して、どこまでを暗号化するのか、また、暗号化、メッセージ認証及び送信元確認をどのように組み合わせるのかによって、次の表２に示す６つのパターンが考えられる。それぞれのパターンのときのフォーマットを図１１〜図１７（図１３を除く）に示す。メッセージ認証にはハッシュ値を使用する。
【表２】
2019057867.tif 000004
【００４０】
図１１は、送信するメッセージに対する暗号化の範囲とセキュリティ機能の適用範囲を示した図であり、表２のパターン１の場合を示すものである。Dataのみが暗号化され、メッセージ認証及び送信元確認は行われない。グレーで色を付けた部分が暗号化された部分である（以下、同様）。
図１２は、送信するメッセージに対する暗号化の範囲とセキュリティ機能の適用範囲を示した図であり、表２のパターン２の場合を示すものである。Dataの暗号化とメッセージ認証を組み合わせたものであり、送信元確認は行わない。ハッシュ値の計算対象の違いにより、５つのバリエーション（Ａ〜Ｅ）がある。ハッシュ値はドットでハッチングした部分である。ハッシュ値も暗号化される。
【００４１】
図１２（Ａ）は、ハッシュ値の計算対象はDataであり、暗号化の対象範囲はDataとハッシュ値である。また、ハッシュ値は図１２（Ｂ）に示すように、Dataの前においてもよい。
図１２（Ｃ）は、Control CodeとDataがハッシュ値の計算対象であり、メッセージを受信後に計算したハッシュ値と、メッセージの中に記載されているハッシュ値とを比較することで、改竄が行われていないことを確認できる。ハッシュ値は暗号化されているので、第三者は見ることができない。
また、第三者は暗号鍵を知らないため、暗号化された正しいハッシュ値に置き換えることができない。
図１２（Ｄ）は、ハッシュ値の計算対象がメッセージ全体の場合である。
図１２（Ｅ）は、ハッシュ値の計算対象を複数個設定することで、不正な改竄が行われた箇所が分かるようにする場合である。これは、ハッシュ値の計算対象を３つ設定するケースの例である。
・ハッシュ値１（Hash1）：ハッシュ値の計算対象はData
・ハッシュ値２（Hash2）：ハッシュ値の計算対象はDataとControl Code
・ハッシュ値３（Hash3）：ハッシュ値の計算対象はData、Control Code及びSrc ID
【００４２】
次に、図１２（Ｅ）の場合におけるメッセージの改竄の検出と改竄箇所の特定の方法を説明する。図１３は、図１２（Ｅ）の場合におけるメッセージ改竄箇所の判定を行うフローを示す図である。以下、図１３に基づいて説明する。この処理は、受信した装置（センサノード又はゲートウェイ）のＣＰＵ１０ａが所定のプログラムに基づいて行うものである。
まず、メッセージを受信したら、共通の暗号鍵で復号化し、Data及びHash1，Hash2，Hash3の平文を取得する（Ｓ６１）。
【００４３】
その後、Src ID、Control Code、Dataで構成される情報に対してハッシュ値を計算して、Hash3と比較する（Ｓ６２）。一致すれば（Ｓ６３のＹＥＳ）、メッセージは改竄されていないと判定する（Ｓ６４）。
一方、一致しなかった場合は（Ｓ６３のＮＯ）、Control CodeとDataで構成される情報に対してハッシュ値を計算してHash2と比較する（Ｓ６５）。
一致する場合には（Ｓ６６のＹＥＳ）、Src IDが改竄されたと判定する（Ｓ６７）。すなわち、「なりすまし」が分かる。
一方、一致しなかった場合は（Ｓ６６のＮＯ）、Dataに対してハッシュ値を計算してHash1と比較する（Ｓ６８）。計算結果がHash1と一致する場合には（Ｓ６９のＹＥＳ）、Control Codeが改竄されていると判定し（Ｓ７０）、一致しない場合には（Ｓ６９のＮＯ）、Dataが改竄されたと判定する（Ｓ７１）。
なお、Dst IDは、メッセージを受信した装置が内部に記憶しているＩＤと照合できるため、ハッシュ値の計算対象から除外している。
【００４４】
図１４は、送信するメッセージに対する暗号化の範囲とセキュリティ機能の適用範囲を示した図であり、表２のパターン３の場合を示すものである。DataとControl Codeが暗号化の対象範囲であり、メッセージ認証及び送信元確認は行わない。
図１５は、送信するメッセージに対する暗号化の範囲とセキュリティ機能の適用範囲をメッセージ認証を行う範囲を示した図であり、表２のパターン４の場合を示すものである。Control Code，Dataの暗号化とメッセージ認証を組み合わせたものである。メッセージ認証の対象がData及びControl Codeであり、暗号化の対象範囲は、Data、Control Code及びハッシュ値である。
【００４５】
また、図１６は、送信するメッセージに対する暗号化の範囲とセキュリティ機能の適用範囲を示した図であり、表２のパターン５の場合を示すものである。Src ID，Control Code，Dataが暗号化の対象範囲であり、メッセージ認証は行わない。復号化したSrc IDと、送られた平文のSrc IDを比較すれば、送信元であるSrc IDが途中で不正に書き換えられたときに、書き換えられたことがわかり、また、真の送信元を特定できる。
図１７は、送信するメッセージに対する暗号化の範囲とセキュリティ機能の適用範囲を示した図であり、表２のパターン６の場合を示すものである。Src ID，Control Code，Dataの暗号化、メッセージ認証及び送信元確認を組み合わせたものである。メッセージ認証の対象がSrc ID，Control Code及びDataであり、暗号化の対象範囲は、Src ID，Control Code，Data及びハッシュ値である。Src ID、Control Code、Dataのいずれかが途中で改竄されたときに、書き換えれられたことがわかる。
【００４６】
以上の例は、メッセージがDst ID，Src ID，Control Code，Dataで構成される場合であるが、これに限定されることはない。
図１８は、Ｎ個の異なる属性の情報で構成されるメッセージを暗号化通信する場合のデータフォーマットの一例を示す図である。
図１８において、Info1〜InfoNで示すのがＮ個の属性の異なる情報であり、Hash1〜HashNはInfo1〜InfoNの情報から算出されたハッシュ値である。ここで、属性とは、アドレス、Control Codeなどの情報の種類を指す。
【００４７】
ＴＣＰ（Transmission Control Protocol）で通信する場合、送受信される情報は、イーサネット（登録商標）ヘッダ、ＩＰヘッダ、ＴＣＰヘッダ、ユーザデータという４つの異なる属性の情報で構成される。図１８は、ハッシュ値のみを暗号化した例であるが、情報（Info1〜InfoN））も暗号化してもよい。
図１９は、Ｎ個の異なる属性の情報で構成されるメッセージを暗号化通信する場合のデータフォーマットの他の例を示す図であり、ハッシュ値全部（Hash1〜HashN）とInfo(N-1)及びInfoNを暗号化するときのメッセージ構成である。
【００４８】
次に、図１８のメッセージを受信する装置が、メッセージの改竄の有無の判定と、改竄された箇所を特定する方法を説明する。
図２０は、図１８のフォーマットのメッセージの改竄の箇所を特定する処理のフローチャートの一例を示す図である。以下、図２０に基づいて説明する。
まず、メッセージを受信した装置は、受信したメッセージを共通の暗号鍵で復号化し、Hash1〜HashNの平文を取得する（Ｓ８１）。
次に、Info1〜InfoNのN個の情報で構成される情報のハッシュ値を計算し、取得したHash1と比較する（Ｓ８２）。
算出したハッシュ値と取得したHash1が一致した場合は（Ｓ８３のＹＥＳ）、受信したメッセージに改竄はないと判定する（Ｓ８４）。
【００４９】
これに対して、算出したハッシュ値と取得したHash1が一致しなかった場合は（Ｓ８３のＮＯ）、Info2〜InfoNの(N-1)個の情報で構成される情報のハッシュ値を計算し、取得したHash2と比較する（Ｓ８５）。
算出したハッシュ値と取得したHash2が一致した場合は（Ｓ８６のＹＥＳ）、Info1が改竄されていると判定する（Ｓ８７）。
これに対して、算出したハッシュ値と取得したHash2が一致しなかった場合は（Ｓ８６のＮＯ）、Info3〜InfoNの(N-2)個の情報で構成される情報のハッシュ値を計算し、取得したHash3と比較する（Ｓ８８）。
【００５０】
算出したハッシュ値と取得したHash3が一致した場合は（Ｓ８９のＹＥＳ）、Info2が改竄されていると判定する（Ｓ９０）。
これに対して、算出したハッシュ値と取得したHash3が一致しなかった場合は（Ｓ８９のＮＯ）、Info4〜InfoNの(N-3)個の情報で構成される情報のハッシュ値を計算し、取得したHash4と比較する（Ｓ９１）。以下、同様の処理を繰り返す。
【００５１】
Info(N-2)〜InfoNの３個の情報で構成される情報のハッシュ値を計算し、取得したHash(N-2)と比較して一致しなかった場合は、Info(N-1)〜InfoNの２個の情報で構成される情報のハッシュ値を計算し、取得したHash(N-1)と比較する（Ｓ９２）。
算出したハッシュ値と取得したHash(N-1)が一致した場合は（Ｓ９３のＹＥＳ）、Info(N-2)が改竄されていると判定する（Ｓ９４）。
これに対して、算出したハッシュ値と取得したHash(N-1)が一致しなかった場合は（Ｓ９３のＮＯ）、InfoNのハッシュ値を計算し、取得したHashNと比較する（Ｓ９５）。
算出したハッシュ値と取得したHashNが一致した場合は（Ｓ９６のＹＥＳ）、Info(N-1)が改竄されていると判定する（Ｓ９７）。
これに対して、算出したハッシュ値と取得したHashNが一致しなかった場合は（Ｓ９６のＮＯ）、InfoNが改竄されていると判定し（Ｓ９８）、処理を終了する。
【００５２】
次に、ＷＳＮのような小電力無線（ＬｏＲａなど）を使った非ＩＰネットワークとＩＰネットワークとの安全な接続方法について説明する。
図２１は、非ＩＰネットワークとＩＰネットワークとの安全な接続方法の一例を示すシーケンス図である。ＩＰネットワークで使用される主なデータ通信方式は、ＵＤＰ，ＴＣＰ、ＴＣＰ／ＳＳＬの３つであるが、ここでは、ＩＰネットワークが、ＴＣＰ／ＳＳＬを使用している場合の非ＩＰネットワークとＩＰネットワークとの接続について説明する。
【００５３】
まず、センサノード１（ＳＮ）とゲートウェイ２（ＧＷ）との間で、認証及び暗号鍵共有を行う（Ｓ１０１）。認証及び暗号鍵共有のシーケンスは、図６又は図７に示す通りである。
次に、ＧＷとサーバ４との間でＳＳＬセッションの確立を行う（Ｓ１０２）。ＴＣＰ／ＳＳＬでは通信の開始時、Handshake Protocolによって、暗号化通信を開始するために必要な各種パラメータの交換及び設定（ネゴシエーション）が行われる。ＴＣＰ／ＳＳＬとはＳＳＬによる安全なＴＣＰ／ＩＰ接続を意味する。
【００５４】
ＳＮにおいて、ＧＷに送る情報を共有鍵で暗号化する（Ｓ１０３）。そして、暗号化した情報をＧＷに送信する（Ｓ１０４）。ＧＷは受信した情報を共有鍵で復号化する（Ｓ１０５）。
ＧＷは、さらに、復号化した情報をＳＳＬで暗号化し（Ｓ１０６）、暗号化した情報をサーバ４に送信する（Ｓ１０７）。
サーバ４は受信した情報をＳＳＬで復号化し（Ｓ１０８）、必要な処理を行う。
【００５５】
一方、サーバ４からＳＮに対して情報を送る場合は、送信したい情報をＳＳＬで暗号化する（Ｓ１０９）。そしてＳＳＬで暗号化した情報をＧＷに送信する（Ｓ１１０）。
ＧＷは、受信した情報をＳＳＬで復号化し（Ｓ１１１）、さらにそれを共有鍵で暗号化する（Ｓ１１２）。そして、暗号化した情報をＳＮに送信する（Ｓ１１３）。
ＳＮは、受信した情報を共有鍵で復号化し、情報の平文を取得する（Ｓ１１４）。
【００５６】
図２２は、非ＩＰネットワークとＩＰネットワークとの安全な接続方法の他の例を示すシーケンス図である。
まず、センサノード１（ＳＮ）とゲートウェイ２（ＧＷ）との間で、認証及び暗号鍵共有を行う（Ｓ１２１）。認証及び暗号鍵共有のシーケンスは、図６又は図７に示す通りである。次に、ＧＷとサーバ４との間でＳＳＬセッションの確立を行う（Ｓ１２２）。
【００５７】
ＳＮにおいて、ＧＷに送る情報を共有鍵で暗号化する（Ｓ１２３）。そして、暗号化した情報をＧＷに送信する（Ｓ１２４）。ＧＷは受信した情報と共有鍵をＳＳＬで暗号化し（Ｓ１２５）、暗号化した情報をサーバ４に送信する（Ｓ１２６）。
サーバ４は受信した情報をＳＳＬで復号化し（Ｓ１２７）、さらに、送られた共有鍵で情報をさらに復号化する（Ｓ１２８）。サーバ４は復号化した情報を用いて必要な処理を行う。
【００５８】
一方、サーバ４からＳＮに対して情報を送る場合は、送信したい情報をまず共有鍵で暗号化し（Ｓ１２９）、さらに、暗号化情報と共有鍵をＳＳＬで暗号化する（Ｓ１３０）。そしてＳＳＬで暗号化した情報をＧＷに送信する（Ｓ１３１）。
ＧＷは、受信した情報をＳＳＬで復号化し（Ｓ１３２）、ＳＳＬで復号化した共有鍵と、サーバが現在保有している共有鍵（最新の共有鍵）が同一か否かをチェックする（Ｓ１３３）。
【００５９】
同一である場合は（Ｓ１３４のＹＥＳ）、ＳＳＬで復号化した情報をそのままＳＮに送信する（Ｓ１３５）。情報は共有鍵で暗号化されているので安全である。
一方、同一でなかった場合は（Ｓ１３４のＮＯ）、ＳＳＬで復号化した情報を送られた元の共有鍵で一旦復号化した後、最新の共有鍵でその情報を暗号化する（Ｓ１３６）。そして、最新の共有鍵で暗号化した情報をＳＮに送信する（Ｓ１３７）。ＳＮは、受信した情報を最新の共有鍵で復号化し、情報の平文を取得する（Ｓ１３８）。
いずれの場合も、その暗号化通信に直接使用した暗号鍵が移動しないのが特徴である。
【００６０】
以上で実施形態の説明を終了するが、この発明において、各装置の具体的な構成、処理の内容、データの構成、使用する装置の台数等は、実施形態で説明したものに限るものではない。
例えば、上記説明ではＷＳＮにおける適用について説明したが、これに限られないことは言うまでもない。ノードはセンサノードではなく、ゲートウェイに接続される一般のＩｏＴ機器であってもよい。
【符号の説明】
【００６１】
１：センサノード、２：ゲートウェイ、３：インターネット、４：サーバ、１０：制御部、１１：ＬＰＷＡ通信モジュール、２１：乱数発生部、２２：認証部、２３：暗号鍵生成部、２４：暗号化部、２５：共有情報更新部、２６：記憶部、３１：乱数発生部、３２：認証部、３３：暗号鍵生成部、３４：暗号化部、３５：共有情報更新部、３６：記憶部
【図１】
2019057867.tif 000005
【図２】
2019057867.tif 000006
【図３】
2019057867.tif 000007
【図４】
2019057867.tif 000008
【図５】
2019057867.tif 000009
【図６】
2019057867.tif 000010
【図７】
2019057867.tif 000011
【図８】
2019057867.tif 000012
【図９】
2019057867.tif 000013
【図１０】
2019057867.tif 000014
【図１１】
2019057867.tif 000015
【図１２】
2019057867.tif 000016
【図１３】
2019057867.tif 000017
【図１４】
2019057867.tif 000018
【図１５】
2019057867.tif 000019
【図１６】
2019057867.tif 000020
【図１７】
2019057867.tif 000021
【図１８】
2019057867.tif 000022
【図１９】
2019057867.tif 000023
【図２０】
2019057867.tif 000024
【図２１】
2019057867.tif 000025
【図２２】
2019057867.tif 000026