(57)【要約】【課題】データ流出や改ざん、成りすましに対するリスクを低減した安全性の高いデバイス間暗号通信方法及びこれを用いたデータ通信方法を提供する。【解決手段】本発明のデバイス間暗号通信方法は、それぞれ自然乱数生成手段と送信又は受信の都度データに含まれる乱数を時系列的に乱数用メモリに保存更新する手段とを有するデバイス及びホスト間の伝送線路における相互のデバイス間暗号通信方法であって、デバイスの固有情報を基に認証子及び乱数用メモリに共通の初期値を設定する段階と、両デバイス間で値の異なる対の認証子を生成して保存する構成時認証段階と、データの送受信の都度両デバイスで生成した乱数で順次乱数用メモリを更新して初期値を全て乱数に書き換える初期化認証段階と、データ送出前にデバイス及びホストで独立して生成した新たな乱数を乱数用メモリの値で暗号化及び認証を行いながら次回の暗号用に共有する随時認証段階と、を有する。【選択図】図２
2015128230.tif 000002
【特許請求の範囲】
【請求項１】
それぞれ自然乱数生成手段、データ送出前に新たな乱数を生成してデータに付加する乱数埋め込み手段、及び送信又は受信の都度データに含まれる乱数を時系列的に乱数用メモリに保存する乱数更新手段を有する端末側デバイスとホスト側デバイスとの間の伝送線路における相互のデバイス間暗号通信方法であって、
前記端末側デバイス及び前記ホスト側デバイスが、前記端末側デバイスの固有情報を基に、前記端末側デバイスとホスト側デバイスとの間で最初の認証に使用される認証子及び前記乱数用メモリに共通の初期値を設定して保存する段階と、
前記端末側デバイスが、前記初期値に第１の乱数を付加した値を前記乱数用メモリに保存された該初期値で暗号化して前記ホスト側デバイスに送信すると共に、前記メモリ更新手段により該第１の乱数を前記乱数用メモリに保存し、前記ホスト側デバイスが、受信したデータを前記乱数用メモリに保存された初期値で復号化して認証（アテスト）後、前記第１の乱数を前記メモリ更新手段により前記乱数用メモリに保存し、前記端末側デバイスから受信した前記初期値に第１の乱数を付加した値に更に第２の乱数を付加してハッシュ値を求め、前記第２の乱数及び求めた該ハッシュ値をデバイス認証子として前記端末側デバイスに送信して保存させ、前記デバイス認証子に該ホスト側デバイス又は該ホスト側デバイスに接続された外部デバイスに予め設定されたホストキーを更に付加した値のハッシュ値を求めてホスト認証子として該ホスト側デバイス又は該外部デバイスに保存し、前記メモリ更新手段により前記第２の乱数を前記乱数用メモリに保存する構成時認証段階と、
前記端末側デバイス及び前記ホスト側デバイスが、データの送信時に送信データに新たな乱数を生成して付加した後前記乱数用メモリに保存された乱数で暗号化し、受信側デバイスで前記乱数用メモリに保存された乱数で復号化及び認証（アテスト）を行い、送信側及び受信側デバイスの双方で該データに含まれる乱数を前記乱数更新手段により前記乱数用メモリに保存して前記乱数用メモリの初期値を全て乱数に書き換える初期化認証段階と、
前記端末側デバイス及び前記ホスト側デバイスが、通信の都度送信データに新たな乱数を生成して付加し、前記乱数用メモリに保存された時系列的に前後する２つの乱数を使用してデータの暗号化、復号化、及び伝送路の正当性確認の認証（アテスト）を行いながらデータの送受信を行うと共に、データの送信又は受信後に該データに含まれる新しい乱数を次回の暗号化及び復号化に利用するために前記乱数更新手段により前記乱数用メモリに保存する随時認証段階と、を有することを特徴とするデバイス間暗号通信方法。
【請求項２】
前記随時認証段階において、前記データの暗号化は、前記乱数用メモリに保存されている乱数のうち、前回送信時に保存した乱数か、又は該乱数と前々回送信時に保存した乱数とのＸＯＲ演算値かのいずれかをシード値として生成した擬似乱数を使用して行われ、伝送路の正当性確認が前々回送信時に保存した乱数を利用して求めたハッシュ値を使用して行われることを特徴とする請求項１に記載のデバイス間暗号通信方法。
【請求項３】
前記初期化認証段階及び前記随時認証段階のそれぞれは、前記アテストにおいて、前記乱数用メモリに保存された乱数のうち、前回受信時に保存した乱数か、又は該乱数と前々回送信時に保存した乱数とのＸＯＲ演算値かのいずれかをシード値として生成した擬似乱数を使用して復号化した情報を基に求めたハッシュ値と、受信したデータ中に含まれる元のデータのハッシュ値とが等しいか否かを確認する段階を含み、
少なくとも前記初期化認証段階は、前記ホスト側デバイスが、前記アテストにおいて、デバイス認証子が正しいものであるか否かを確かめる認証子認証段階を更に含むことを特徴とする請求項１又は２に記載のデバイス間暗号通信方法。
【請求項４】
前記構成時認証段階、前記初期化認証段階、及び前記随時認証段階において、前記端末側及びホスト側デバイス間の通信で送受信されるデータは、送受信の都度生成される自然乱数と前記乱数用メモリに保存された２番目に新しい乱数を含めて算出されたデータのハッシュ値とを含み、
少なくとも前記構成時認証段階、前記初期化認証段階において、前記端末側及びホスト側デバイス間の通信で送受信されるデータは、前記デバイス認証子を更に含むことを特徴とする請求項３に記載のデバイス間暗号通信方法。
【請求項５】
前記デバイス間暗号通信に使用するデバイスは、ＵＳＢ又はＩＥＥＥ１３９４準拠のいずれかを含むシリアルバス規格に基づくホスト及び周辺機器であることを特徴とする請求項４に記載のデバイス間暗号通信方法。
【請求項６】
前記デバイス間暗号通信に使用するデバイスは、ＩＥＥＥ８０２．１５．４準拠の近距離無線通信規格に基づくエンドポイント及びコーディネータであって、機器設置時、アドレスリストを形成するときに相互認証が行われることを特徴とする請求項４に記載のデバイス間暗号通信方法。
【請求項７】
前記デバイス間暗号通信に使用するデバイスは、ＩＰ準拠のコンピュータ通信規格に基づくクライアント及びサーバであることを特徴とする請求項４に記載のデバイス間暗号通信方法。
【請求項８】
複数のデバイスを直列に接続する伝送路を有するネットワークにおいて、請求項５乃至７のいずれか一項に記載のデバイス間暗号通信方法を少なくともいずれか１つのデバイス間の通信に適用し、始点から終点までの全てのデバイス間の相互認証を完了後に前記始点及び終点デバイス間でデータ通信を行うことを特徴とするデータ通信方法。
【請求項９】
複数のデバイスを直列に接続する伝送路を有するネットワークにおいて、請求項５乃至７のいずれか一項に記載のデバイス間暗号通信方法を少なくともいずれか１つのデバイス間の通信に適用し、始点から終点に向って順次デバイス間の相互認証を行い、認証が確認された区間までのデータ通信を順次行うことを特徴とするデータ通信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ユニークな認証子と自然乱数を用いた通信ネットワークのデバイス間暗号通信方法に関し、より詳細には、ユニークな認証子を自動的に生成して認証に使用すると共に時系列的に生成した自然乱数を順次更新しながら暗号化及び認証に使用するデバイス間暗号通信方法及びこれを用いたデータ通信方法に関する。
【背景技術】
【０００２】
原発の事故によるエネルギー供給不足問題などを背景にスマートコミュニティの推進が望まれるなど、ＩＴによる社会インフラの構築の重要性が高まりつつある。こうした社会の根幹となる技術のネットワーク化に関しては、第三者の介入によるデータの改ざんなどの反社会的な行為により社会全体が混乱する恐れがあり、セキュリティの確保は最重要課題である。
【０００３】
今後広がりが期待されるセンサーネットワークなどのインフラの構築は、Ｍ２Ｍ（機器間）ネットワークが基本となる。Ｍ２Ｍネットワークシステムにおいて構成機器を識別するために、端末に認証子が設けられて認証に使用されるが、認証子の初期設定に初期値やパスワードの入力など、人が介在すると情報が漏洩するリスクが発生する。また正常に運用が開始された後も、ホストも同じ認証子でデータベースを構成していると、認証子が盗用された場合、システムへの侵入やデータの改ざんリスクが高くなる。認証子に関してはネットワークのグローバル化に伴い、秘匿性を確保しつつグローバルなユニーク性を保持することが求められる。
【０００４】
またセキュリティが要求されるネットワーク通信では、暗号化処理によるデータの保護が一般的に使用される。通信データの暗号化処理の手法として暗号鍵を用いる方法が一般的である。暗号鍵を用いて暗号化したものを送信し、受信側で暗号鍵を用いて復号化することでネットワーク上では通信データは暗号化された状態で授受される。
【０００５】
この暗号鍵として共通鍵暗号方式と公開鍵暗号方式がある。共通鍵方式は送信側と受信側が同じ共通鍵を持ち、送信側が共通鍵で暗号化した情報を受信側で同じ共通鍵で復号化する。暗号化及び復号化の処理は早いが共通鍵を送信する際に傍受されるなどして第三者に盗用されると、暗号化しても第三者に容易に解読されてしまうというリスクがある。公開鍵方式は公開鍵と秘密鍵の２種類を使用し、送信側で暗号化した情報は、受信側で秘密鍵により復号化が行われる。暗号化と復号化で別の鍵を使用し、秘密鍵を共有する必要が無いため、秘密鍵が知られなければ情報の盗用のリスクは低減できる。しかし共通鍵暗号方式に比べ処理速度が遅いという問題がある。そこで公開鍵を利用して共通鍵を送信して共用し、共通鍵で暗号化及び復号化を行うハイブリッド方式も使用されている。鍵の送信は傍受されても盗用されるリスクは低減されるものの、共通鍵が盗まれた場合のリスクは、共通鍵暗号方式と同様である。
【０００６】
通信者のＩＤなどの固有情報や共通鍵が盗まれると、成りすましによるシステム侵入などによるデータの流出や改ざんのリスクが高まる。共通鍵は、第三者に知られないように厳重に管理する必要があるが、繰り返し使用していると第三者による解読のリスクが高くなる。そこで毎回鍵を取り替えるワンタイムパッドと呼ばれる暗号化技術も使用されるようになっている。しかし、一回限りで暗号鍵を交換するため、次の共用できる鍵を安全に交換する必要がある。また事前に計算方式や乱数表などで送信側と受信側が暗号に関する情報を共有する場合には、その管理を充分に行わなければ鍵を解読されるリスクがある。また一回限りで暗号鍵を交換するため、通信の時間的連続性が無く、成りすましに対するリスクを完全には除去できない。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０００−０５０３６３号公報
【特許文献２】特開２００８−１２４９０６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
本発明は、上記従来の問題点に鑑みてなされたものであって、本発明の目的は、暗号通信を行うデバイス間通信において、ネットワーク構築時に特定の端末に設定される認証子に自動的に初期値を設定して乱数を付加し、デバイスとホストとの間で異なる値として保有することで特定端末に関するデータ改ざんのリスクを低減するデバイス間暗号通信方法及びこれを用いたデータ通信方法を提供することにある。
【課題を解決するための手段】
【０００９】
上記目的を達成するためになされた本発明の一特徴によるデバイス間暗号通信方法は、それぞれ自然乱数生成手段、データ送出前に新たな乱数を生成してデータに付加する乱数埋め込み手段、及び送信又は受信の都度データに含まれる乱数を時系列的に乱数用メモリに保存する乱数更新手段を有する端末側デバイスとホスト側デバイスとの間の伝送線路における相互のデバイス間暗号通信方法であって、前記端末側デバイス及び前記ホスト側デバイスが、前記端末側デバイスの固有情報を基に前記端末側デバイスとホスト側デバイスとの間で最初の認証に使用される認証子及び前記乱数用メモリに共通の初期値を設定して保存する段階と、前記端末側デバイスが、前記初期値に第１の乱数を付加した値を前記乱数用メモリに保存された該初期値で暗号化して前記ホスト側デバイスに送信すると共に、前記メモリ更新手段により該第１の乱数を前記乱数用メモリに保存し、前記ホスト側デバイスが、受信したデータを前記乱数用メモリに保存された初期値で復号化して認証（アテスト）後、前記第１の乱数を前記メモリ更新手段により前記乱数用メモリに保存し、前記端末側デバイスから受信した前記初期値に第１の乱数を付加した値に更に第２の乱数を付加してハッシュ値を求め、前記第２の乱数及び求めた該ハッシュ値をデバイス認証子として前記端末側デバイスに送信して保存させ、前記デバイス認証子に該ホスト側デバイス又は該ホスト側デバイスに接続された外部デバイスに予め設定されたホストキーを更に付加した値のハッシュ値を求めてホスト認証子として該ホスト側デバイス又は該外部デバイスに保存し、前記メモリ更新手段により前記第２の乱数を前記乱数用メモリに保存する構成時認証段階と、前記端末側デバイス及び前記ホスト側デバイスが、データの送信時に送信データに新たな乱数を生成して付加した後前記乱数用メモリに保存された乱数で暗号化し、受信側デバイスで前記乱数用メモリに保存された乱数で復号化及び認証（アテスト）を行い、送信側及び受信側デバイスの双方で該データに含まれる乱数を前記乱数更新手段により前記乱数用メモリに保存して前記乱数用メモリの初期値を全て乱数に書き換える初期化認証段階と、前記端末側デバイス及び前記ホスト側デバイスが、通信の都度送信データに新たな乱数を生成して付加し、前記乱数用メモリに保存された時系列的に前後する２つの乱数を使用してデータの暗号化、復号化、及び伝送路の正当性確認の認証（アテスト）を行いながらデータの送受信を行うと共に、データの送信又は受信後に該データに含まれる新しい乱数を次回の暗号化及び復号化に利用するために前記乱数更新手段により前記乱数用メモリに保存する随時認証段階と、を有する。
【００１０】
前記随時認証段階において、前記データの暗号化は、前記乱数用メモリに保存されている乱数のうち、前回送信時に保存した乱数か、又は該乱数と前々回送信時に保存した乱数とのＸＯＲ演算値かのいずれかをシード値として生成した擬似乱数を使用して行われ、伝送路の正当性確認が前々回送信時に保存した乱数を利用して求めたハッシュ値を使用して行われ得る。
前記初期化認証段階及び前記随時認証段階のそれぞれは、前記アテストにおいて、前記乱数用メモリに保存された乱数のうち、前回受信時に保存した乱数か、又は該乱数と前々回送信時に保存した乱数とのＸＯＲ演算値かのいずれかをシード値として生成した擬似乱数を使用して復号化した情報を基に求めたハッシュ値と、受信したデータ中に含まれる元のデータのハッシュ値とが等しいか否かを確認する段階を含み、少なくとも前記初期化認証段階は、前記ホスト側デバイスが、前記アテストにおいて、デバイス認証子が正しいものであるか否かを確かめる認証子認証段階を更に含み得る。
前記構成時認証段階、前記初期化認証段階、及び前記随時認証段階において、前記端末側及びホスト側デバイス間の通信で送受信されるデータは、送受信の都度生成される自然乱数と前記乱数用メモリに保存された２番目に新しい乱数を含めて算出されたデータのハッシュ値とを含み、少なくとも前記構成時認証段階、前記初期化認証段階において、前記端末側及びホスト側デバイス間の通信で送受信されるデータは、前記デバイス認証子を更に含み得る。
前記デバイス間暗号通信に使用するデバイスは、ＵＳＢ又はＩＥＥＥ１３９４準拠のいずれかを含むシリアルバス規格に基づくホスト及び周辺機器であり得る。
前記デバイス間暗号通信に使用するデバイスは、ＩＥＥＥ８０２．１５．４準拠の近距離無線通信規格に基づくエンドポイント及びコーディネータであって、機器設置時、アドレスリストを形成するときに相互認証が行われ得る。
前記デバイス間暗号通信に使用するデバイスは、ＩＰ準拠のコンピュータ通信規格に基づくクライアント及びサーバであり得る。
【００１１】
上記目的を達成するためになされた本発明の一特徴によるデータ通信方法は、複数のデバイスを直列に接続する伝送路を有するネットワークにおいて、ＵＳＢ又はＩＥＥＥ１３９４準拠のいずれかを含むシリアル通信、ＩＥＥＥ８０２．１５．４準拠の近距離無線通信、及びＩＰ準拠のコンピュータ通信のいずれか一つの通信規格に基づく上記デバイス間暗号通信方法を少なくともいずれか１つのデバイス間の通信に適用し、始点から終点までの全てのデバイス間の相互認証を完了後に前記始点及び終点デバイス間でデータ通信を行う。
【００１２】
上記目的を達成するためになされた本発明の他の特徴によるデータ通信方法は、複数のデバイスを直列に接続する伝送路を有するネットワークにおいて、ＵＳＢ又はＩＥＥＥ１３９４準拠のいずれかを含むシリアル通信、ＩＥＥＥ８０２．１５．４準拠の近距離無線通信、及びＩＰ準拠のコンピュータ通信のいずれか一つの通信規格に基づく上記デバイス間暗号通信方法を少なくともいずれか１つのデバイス間の通信に適用し、始点から終点に向って順次デバイス間の相互認証を行い、認証が確認された区間までのデータ通信を順次行う。
【発明の効果】
【００１３】
本発明のデバイス間暗号通信方法によれば、デバイスの固有情報を基に通信経路の両端のデバイス間で初期認証に使用される認証子に人を介さず自動的に共有する初期値を設定するため、情報漏洩のリスクが回避できる。また、端末側デバイスに与えられる認証子の値はホスト側デバイスでは別の値に変換されて保存されるため、認証子情報が漏れてもホスト側デバイスのデータ改ざんや盗用のリスクを抑えることができる。また、連続して少なくとも２回分の通信に使用したものを併せて保管して使用するために時間連続性が維持され、ある時点のデータが傍受されても、その前の通信に使用された乱数が盗用されなければ、解読のリスクは抑えられる上、成りすましも防止できる。またデータに通信路の各エンドポイントでお互いに知りえない独立乱数を含み、更にデータを擬似乱数で暗号化するため、高いエントロピーが維持されてデータの独立性が確保される。またＵＳＢやＩＥＥＥ１３９４といったシリアル通信ばかりでなく、ＩＥＥＥ８０２．１５．４等の近距離無線通信ネットワーク、ＩＰ等による広域通信ネットワークにも応用が可能であり、これらを組合せてシームレスで多様なセキュリティネットワークを形成することができる。
【図面の簡単な説明】
【００１４】
【図１】本発明の一実施形態による認証子と暗号通信用の乱数を保存するメモリの初期値設定後の状態を示した図である。
【図２】本発明の一実施形態による構成時認証段階における認証子の発番と共有の手順を示した図である。
【図３】本発明の一実施形態による構成時認証段階における乱数の生成からデバイス間共有までの手順を示した図である。
【図４】本発明の一実施形態による通信に使用するペイロードデータの構成を示した図である。
【図５】本発明の一実施形態によるホスト側デバイスのアテストのフロー図である。
【図６】本発明の一実施形態による認証子認証の手順を示した図である。
【図７】本発明の一実施形態による様々な通信形態の機器のシームレスなネットワークの実施例を示した図である。
【図８】本発明の一実施形態によるＵＳＢ接続のファンクションの定義を示した図である。
【図９】本発明の一実施形態によるＵＳＢ接続における構成時認証段階と初期化認証段階におけるメモリの状態の遷移を示した図である。
【図１０】本発明の一実施形態による初期化認証段階終了後のＵＳＢ接続におけるデータの流れと乱数の状態を示した図である。
【図１１】本発明の一実施形態によるＵＳＢ接続における構成時認証段階と初期化認証段階におけるメモリの状態の遷移を示した図である。
【図１２】本発明の一実施形態による近距離無線通信とＵＳＢの機器認証を組合せたネットワークのイメージ図である。
【図１３】本発明の一実施形態による近距離無線通信における短いデータのホスト側デバイスのアテストのフロー図である。
【図１４】本発明の一実施形態によるエンドデバイスとコーディネータの構成時認証段階と初期化認証段階におけるメモリの状態の遷移を示した図である。
【図１５】本発明の一実施形態による初期化認証段階終了後のエンドデバイスとコーディネータとの間のデータの流れと乱数の状態を示した図である。
【図１６】本発明の一実施形態によるインターネットによるシステム構成のイメージを示した図である。
【図１７】本発明の一実施形態によるシームレスネットワークの説明図である。
【発明を実施するための形態】
【００１５】
以下、本発明のデバイス間暗号通信方法及びこれを用いたデータ通信方法を実施するための具体例を、図面を参照しながら詳細に説明する。
【００１６】
図１は、本発明の一実施形態による認証子と暗号通信用の乱数を保存するメモリの初期値設定後の状態を示した図であり、ネットワークを形成するデバイス１（端末側デバイス）とホスト２（ホスト側デバイス）との間の通信に使用する認証子と暗号通信に使用する乱数とを保存するメモリに共通の初期値を設定した段階の状態を示した図である。
【００１７】
デバイス１のメモリとして、認証子用メモリＤａ１（３０）と上り経路の暗号通信に使用する乱数用メモリセット５１（Ｕｐ１１（５１１）、Ｕｐ１２（５１２））及び下り経路の暗号通信に使用する乱数用メモリセット６１（Ｄｏｗｎ１１（６１１）、Ｄｏｗｎ１２（６１２））の合計５つがあり、それぞれの保存データを示す。
【００１８】
ホスト２のメモリとして、認証子用メモリＤａ２（４０）と上り経路の暗号通信に使用する乱数用メモリセット５２（Ｕｐ２１（５２１）、Ｕｐ２２（５２２））及び下り経路の暗号通信に使用する乱数用メモリセット６２（Ｄｏｗｎ２１（６２１）、Ｄｏｗｎ２２（６２２））の合計５つがあり、それぞれの保存データを示す。
【００１９】
それぞれのメモリの内容は、機器設置時の構成時認証段階の前の段階で全て同じ初期値にセットされる。初期値は、例えばデバイス１の固有情報など、構成前にデバイス１とホスト２で互いに共有可能な情報からハッシュ計算したダイジェストを設定することで、人手を介することなく自動的に設定される。
【００２０】
図２は、本発明の一実施形態による構成時認証段階における認証子の発番と共有の手順を示した図である。
【００２１】
デバイス１は、自然乱数生成器８１と送信データ格納用のメモリ９１、及び外部メモリ７１を有する。またデバイス認証子を保存する認証子用メモリＤａ１（３０）を外部メモリ７１の中に設ける。認証子用メモリＤａ１（３０）には事前に初期値（３１）をセットする。
【００２２】
一方、ホスト２は、受信したデータを保存する受信データ格納用のメモリ１０２と演算処理部（図示せず）、及び外部メモリ７２を有する。外部メモリ７２には、ホスト認証子を保存する認証子用メモリＤａ２（４０）を有し、更に予め設定して秘匿したホストキーＫ（１２０）を保存する。両デバイスは伝送線路１４０によって接続される。
【００２３】
デバイス１は、自然乱数生成器８１で自然乱数Ｘ１（１３１）を生成し、認証子用メモリＤａ１（３０）の初期値（３１）と共に送信データ格納用のメモリ９１に格納する（ステップＳ２０１）。デバイス１は、この送信データを後述する暗号化手段による暗号化の後、ホスト２に送信する（ステップＳ２０２）。
【００２４】
ホスト２は、後述するアテストを行い、ホスト認証子が初期値であり受信データ中のＵＵＩＤ（後述する図４、５の説明部分参照）が未登録である場合には、新たに自然乱数Ｙ１（１３２）を生成し、演算処理部で受信したデバイス認証子の初期値３１と自然乱数Ｘ１（１３１）に付加した後、ハッシュ値を求める（ステップＳ２０３）。このハッシュ値はデバイス１の新たなデバイス認証子Ａ（３２）として暗号化後デバイス１に送信され（ステップＳ２０４）、デバイス１により認証子用メモリＤａ１（３０）に保存される。ホスト２は、演算処理部でデバイス認証子Ａ（３２）に更にホストキーＫ（１２０）を付加した後、このハッシュ値を求め（ステップＳ２０５）、ホスト認証子Ｃ（４２）としてホスト２の認証子用メモリＤａ２（４０）に保存する。
【００２５】
このようにデバイス認証子Ａ（３２）と、このデバイス認証子Ａ（３２）を更に加工して別の値としたホスト認証子Ｃ（４２）とを、対を成す形でそれぞれのデバイスに保存するが、いずれも通信の両端で生成された乱数を含んだ情報のダイジェスト値であるため、グローバルにもユニークな認証子となる。またホストキーＫ（１２０）は、秘匿した値であるため、デバイス認証子Ａ（３２）が盗用されても、ホスト２内のホスト認証子Ｃ（４２）との関連性を読み取られるリスクは低い。
【００２６】
構成時認証段階では、認証子の生成と併せて、それぞれで生成した自然乱数Ｘ１（１３１）、Ｙ１（１３２）を両デバイス間で交換して保存する。この手順を、図３〜図６を参照して説明する。
【００２７】
図３は、本発明の一実施形態による構成時認証段階における乱数の生成からデバイス間共有までの手順を示した図である。
【００２８】
デバイス１は、自然乱数生成器８１、上り経路と下り経路用の４つの乱数用メモリ（Ｕｐ１１（５１１）、Ｕｐ１２（５１２）、Ｄｏｗｎ１１（６１１）、Ｄｏｗｎ１２（６１２））、及び受信したデータのアテストを行う認証部１５１を有し、デバイス認証子を保存する認証子用メモリＤａ１（３０）を外部メモリに有する。
【００２９】
ホスト２は、自然乱数生成器８２、上り経路と下り経路用の４つの乱数用メモリ（Ｕｐ２１（５２１）、Ｕｐ２２（５２２）、Ｄｏｗｎ２１（６２１）、Ｄｏｗｎ２２（６２２））、及び受信したデータのアテストを行う認証部１５２を有する。デバイス１、ホスト２のそれぞれの４つの乱数用メモリと認証子用メモリには、構成時認証段階の前の段階でいずれも初期値が設定される。
【００３０】
図４は、本発明の一実施形態による通信に使用するペイロードデータの構成を示した図であり、デバイス１とホスト２との間の通信に使用するペイロードデータの構成例を示す。
ペイロードデータは、認証子の値を格納するＵＵＩＤ、リクエストやリターンコードなどの通信で使用するコマンド等を格納するＲＰ、新たに生成した自然乱数を格納するＫｅｙ、送信データの主要部分のハッシュ値を格納するＨａｓｈ、及び平文等データを格納するＤａｔａの５つの要素で構成される。Ｈａｓｈには、送信データのＫｅｙ、Ｄａｔａ、及び前々回に交換した乱数を使用して求めたハッシュ値を格納する。ペイロードデータの構成は、後述するように通信形態によって変えても良い。
【００３１】
再び図３を参照すると、構成時認証段階では、初めに、デバイス１が自然乱数生成器８１で新たな自然乱数Ｘ１（１３１）を生成してペイロードデータのＫｅｙに格納する。またＵＵＩＤの部分に、認証子用メモリＤａ１（３０）に保存された初期値を読み出して格納する（ステップＳ３０１）。
【００３２】
デバイス１は、ペイロードデータ内のＵＵＩＤとＲＰを、予め設定されたホスト２と共有するゼネラルキーをシード値として生成した擬似乱数により、それ以外を上り経路用の乱数用メモリＵｐ１２（５１２）の値をシード値として生成した擬似乱数によりＸＯＲ演算して暗号化した後、ホスト２に送信する（ステップＳ３０２）。
【００３３】
ここで、ＵＵＩＤとＲＰ以外のデータの暗号化に使用する擬似乱数のシード値は、上り経路用の乱数用メモリＵｐ１２（５１２）の値に限らず、Ｕｐ１２（５１２）の値を使用した演算値、例えばＵｐ１２（５１２）とＵｐ１１（５１１）とのＸＯＲ値を使用してもよい。
【００３４】
図３に示すように、デバイス１は、データ送信後、乱数更新手段により、上り経路用の乱数用メモリＵｐ１１（５１１）の値をＵｐ１２（５１２）の値で書き換え、Ｕｐ１２（５１２）の値を自然乱数Ｘ１で書き換える。ホスト２は受信したデータのアテストを実施する。
【００３５】
図５は、本発明の一実施形態によるホスト側デバイスのアテストのフロー図であり、ホスト２におけるアテストの手順を示した図である。
【００３６】
ホスト２は、初めに受信データの先頭の３２バイト（Ｐａｙｌｏａｄ  Ｄａｔａ（０〜３２））を、ゼネラルキーをシード値として生成した擬似乱数によりＸＯＲ演算して復号化する。この時点でホスト認証子が初期値でありＵＵＩＤが未登録である場合には上述の認証子の発番を行い、ホスト認証子が初期値で無い場合には後述する認証子認証を行う。
【００３７】
認証子認証が成功すると、受信データ内の３３バイト目以降を、上り経路用の乱数用メモリＵｐ２２の値をシード値として生成した擬似乱数によりＸＯＲ演算して復号化し、前々回に交換して上り経路用の乱数用メモリＵｐ２１に保存された乱数とＫｅｙ、及びＤａｔａから求めたハッシュ値と予めデータに格納されたハッシュ値とを比較して、伝送経路の正当性を確認する。ここで、上り経路用の乱数用メモリＵｐ２１の値として、構成時認証段階の乱数の交換が行われる前は初めに設定した初期値を使用する。尚、この図のようにハッシュ値を求める際に上り経路用の乱数用メモリＵｐ２１の値を１／２にして、Ｕｐ２１の値を繰返して使用しないように形を変えてもよい。この場合、当然ながらデバイス１で送信用データの暗号化を行うにあたり、ハッシュ値を求めるための上り経路用の乱数用メモリＵｐ１１の値も１／２にして使用する。
【００３８】
図５では、復号化用の擬似乱数のシード値として、上り経路用の乱数用メモリＵｐ２２の値を使用する例を示したが、暗号化の際に使用したシード値に対応する値を使用することもできる。即ち、上述のように暗号化時の擬似乱数にＵｐ１２（５１２）とＵｐ１１（５１１）とのＸＯＲ値をシード値として使用した場合は、それに合わせて復号化用の擬似乱数に、上り経路用の乱数用メモリＵｐ２２（５２２）とＵｐ２１（５２１）とのＸＯＲ値をシード値として使用する。
【００３９】
図６は、本発明の一実施形態による認証子認証の手順を示した図である。
【００４０】
ホスト２は、デバイス１から受信した（ステップＳ６０２）受信データからデバイス認証子Ａ（３２）を取り出し、このデバイス認証子Ａ（３２）にホスト２に保存されたホストキーＫ（１２０）の値を付加した後、付加した値に対するハッシュ値を求める（ステップＳ６０３）。このハッシュ値がホスト２に保存されたホスト認証子Ｃ（４２）と等しい場合に認証は成功して次の伝送経路の正当性を確認する段階に進む。等しくない場合に認証は失敗し、これ以降の処理を排除する（ステップＳ６０４）。
【００４１】
再び図３を参照すると、アテストが成功した後、ホスト２は、乱数更新手段により上り経路用の乱数用メモリＵｐ２１（５２１）の値をＵｐ２２（５２２）の値で書き換え、Ｕｐ２２（５２２）の値を自然乱数Ｘ１（１３１）で書き換える。続いて新たな自然乱数Ｙ１（１３２）を生成してデバイス１に送信するデータを構成する。ペイロードデータの構成は上述の通りであるが、ＵＵＩＤにはデバイス認証子Ａ（３２）、Ｋｅｙには自然乱数Ｙ１（１３２）を格納する。
ホスト２からデバイス１への通信の暗号化は、デバイス１からホスト２への暗号化と同様で、図５で説明したように先頭の３２バイトに関してはゼネラルキーをシード値とした擬似乱数を使用するが、３３バイト目以降は下り経路用の乱数用メモリＤｏｗｎ２２（６２２）の値をシード値として生成した擬似乱数を使用する。このときも、Ｄｏｗｎ２２（６２２）の値に代えて下り経路用の乱数用メモリＤｏｗｎ２２（６２２）とＤｏｗｎ２１（６２１）のＸＯＲ値を用いてもよい。
【００４２】
ホスト２は、暗号化した自然乱数Ｙ１（１３２）を含むデータをデバイス１に送信（ステップＳ３０３）した後、乱数更新手段により下り経路用の乱数用メモリＤｏｗｎ２１（６２１）の値をＤｏｗｎ２２（６２２）の値で書き換え、Ｄｏｗｎ２２（６２２）の値を自然乱数Ｙ１で書き換える。デバイス１は、ホスト２からのデータを受信するとアテストを行う。
【００４３】
デバイス１のアテストは、図５のホスト２のアテストと異なり、認証子による判定は行わずにハッシュ値による伝送経路の正当性確認だけを行う。また復号化及びハッシュ値の確認に、上り経路ではなく下り経路用の乱数用メモリの値を使用するという点で異なる。
【００４４】
アテストが成功した後、デバイス１は、乱数更新手段により下り経路用の乱数用メモリＤｏｗｎ１１（６１１）の値をＤｏｗｎ１２（６１２）の値で書き換え、Ｄｏｗｎ１２（６１２）の値を自然乱数Ｙ１（１３２）で書き換える。
【００４５】
以上の一連の動作、即ちデバイス１で生成した乱数をホスト２に送信してホスト２で生成した乱数をデバイス１に送信し、両デバイスで乱数を共有して保有するというハンドシェーク動作によって、上り経路用の乱数用メモリ及び下り経路用の乱数用メモリのそれぞれ１つずつを新しい乱数で書き換える。
【００４６】
上述したように、図２の構成時認証段階で１回目のハンドシェークを行い、ホスト２で生成したデバイス認証子をデバイス１で保存すると共にホスト２でホスト認証子を生成して保有し、図３に示すように、構成時認証段階で自然乱数Ｘ１、Ｙ１を共有するための乱数用メモリＵｐ１２、Ｕｐ２２、Ｄｏｗｎ１２、Ｄｏｗｎ２２のメモリ値を乱数に書き換える。
【００４７】
次に初期化認証段階について説明する。初期化認証段階では２回目のハンドシェークを行うが、図２の構成時認証段階の終了時点でデバイス認証子Ａ（３２）とホスト認証子Ｃ（４２）の設定は終了しており、認証子として初期値の代わりに初めからデバイス認証子Ａ（３２）を使用する点が構成時認証段階の１回目のハンドシェークと異なる。
【００４８】
初期化認証段階の２回目のハンドシェークで、デバイス１は、新たな自然乱数Ｘ２を生成し、デバイス認証子Ａ（３２）と共に暗号化してホスト２に送信し、乱数更新手段により自然乱数Ｘ２を乱数用メモリに保存する。ホスト２は受信データのアテストを行い、認証子認証と伝送経路の正当性確認が成功すると、乱数更新手段により自然乱数Ｘ２を乱数用メモリに保存するとともに新たな自然乱数Ｙ２を生成してデバイス認証子Ａと共に暗号化の後にデバイス１に送信する。
【００４９】
デバイス１及びホスト２共に、乱数更新手段により自然乱数Ｙ２を乱数用メモリに保存する。この結果、初期化認証段階終了後のデバイス１、ホスト２のそれぞれ４つのメモリは、全て自然乱数に書き換わる。
【００５０】
初期化認証段階終了後のデータの送受信も、上述の初期化認証段階と同様の手順によりデータの送受信と共に乱数の交換を行う。即ち、デバイス１は、データ送信の都度自然乱数Ｘ（ｎ）を生成してデバイス認証子Ａと共にデータの一部に組み込み、前回交換した上り経路用の乱数をシード値とした擬似乱数で暗号化を行う。ホスト２は、前回交換した上り経路用の乱数をシード値とした擬似乱数で復号化してアテストを行い、認証子認証とデータの正当性の確認後、受信した乱数を保存すると共に新たな自然乱数Ｙ（ｎ）を生成し、デバイス認証子を含めて前回交換した下り経路用の乱数をシード値とした擬似乱数で暗号化して返信する。最後に、デバイス１も、アテストを行い、返信されたデータから自然乱数Ｙ（ｎ）を取り出して保存する。
以上図１〜図６を参照して自然乱数生成器を有するデバイス１とホスト２の間の実施形態を説明したが、通信に使用する乱数は各エンドポイントが相手のエンドポイントの乱数を予測し得ないという条件を満たせばよく、自然乱数としては、抵抗に発生する熱雑音を増幅して得られるような物理乱数やプロセッサー常駐のエントロピー・ソースを使用してハードウェアで生成するようなデジタル乱数であっても良い。従って自然乱数生成器としては物理乱数生成器やデジタル乱数生成器であっても良い。これらの乱数生成器は、ＬＳＩを使ってハードウェアで実現しても良いし、ＲＤＲＡＮＤ命令などのデジタル乱数を生成するソフトウェアで実現しても良い。
【００５１】
図７は、本発明の一実施形態による様々な通信形態の機器のシームレスなネットワークの実施例を示した図であり、様々な通信形態の機器がシリーズにつながった実施例を示したものである。
【００５２】
ＵＳＢ接続機器を有するホストコントローラ２００は、無線通信回線によってＵＳＢ接続機能を有するＭ２Ｍゲートウェイ２２０に接続し、更にＩＰｖ６等による広域通信ネットワーク（ＷＡＮ）を通して上位のＭ２Ｍゲートウェイ２３０に接続する。このネットワーク構成は、例えばＵＳＢ接続機器を有するホストコントローラ２００が通信機能を有する遊技機であり、ＵＳＢ接続機能を有するＭ２Ｍゲートウェイ２２０がホールコンピュータであり、上位のＭ２Ｍゲートウェイ２３０がデータサーバというような事例が想定される。接続回線の通信手段は各機器間で異なっているが、上述したデバイス間暗号通信方法を用い、それぞれの通信手段で事前に交換した乱数を暗号及び復号に使用しながら、次の通信の暗号用に新たな乱数を交換するという暗号通信を適用することで、起点から終点まで一貫して高いセキュリティレベルを保った暗号化通信が可能になる。このように複数のデバイスがシリーズにつながったネットワークで、起点から終点までの通信を行う際、起点から終点に向って順次デバイス間の相互認証を行い、全ての区間の認証が終わってからデータ通信を行っても良いし、順次デバイス間の相互認証を行い、認証が確認された区間までのデータ通信を順次行っても良い。また、ＵＳＢに代えて、ＩＥＥＥ１３９４、シリアルＡＴＡ、ＰＣＩ  Ｅｘｐｒｅｓｓ等のシリアルバス規格に基づく通信にも適用できる。
【００５３】
以下、各種の通信手段による具体的な実施例を説明する。
【００５４】
先ず、ＵＳＢによる動的なデバイス認証について図８〜１０を参照して説明する。
【００５５】
図８は、本発明の一実施形態によるＵＳＢ接続のファンクションの定義を示した図である。
【００５６】
デバイス１０は、デフォルトのコントロールパイプ用のエンドポイントを有しており、ホスト２０と接続する際に、コントロールパイプ３００を使用してコンフィグレーションが行われ、各パイプの使用条件等が設定される。図８は、エンドポイント１がホストからデバイスへの下り経路用、エンドポイント２が上り経路用に設定された状態を示す。尚、ホスト及びデバイスは、それぞれ自然乱数生成器、認証子を保存する認証子用メモリ、及び上り経路と下り経路の暗号通信で使用する乱数を時系列的に保存する乱数更新手段による乱数用メモリを有する（いずれも図示せず）。
【００５７】
ＵＳＢにデバイスを加える際、デバイス側から定義（デスクリプタ）を登録する必要があるが、構成時にデフォルトのコントロールパイプ３００を使用してデバイスとホストとの間のユニークな関係を構築することができる。
【００５８】
ユニークな関係を構築するために、ホストとデバイスとの間で共有可能な情報を使用する。例えばデバイスの構成の登録に使用されるデスクリプタの情報を用い、
Ｐｒｏｄｕｃｔ  ｓｔｒｉｎｇ＝“ＰＬＳＳＥＣ”、
Ｓｅｒｉａｌ  ｎｕｍｂｅｒ  ｓｔｒｉｎｇ＝“２０１３０００１”
のように定義する。
デバイス認証に当たり、ホスト及びデバイスの認証子用メモリと乱数用メモリの初期値を設定する。初期値として、デバイス側では、
初期値＝Ｈａｓｈ（Ｐｒｏｄｕｃｔ  ｓｔｒｉｎｇ＋Ｓｅｒｉａｌ  ｎｕｍｂｅｒ  ｓｔｒｉｎｇ）
のように定める。またホスト側では付加されたＵＳＢデバイスから、Ｐｒｏｄｕｃｔ、Ｓｅｒｉａｌ  ｎｕｍｂｅｒを用いて同様にハッシュ値により初期値を定める。
【００５９】
このように、自動的に読み込まれるデスクリプタの情報を使用することによって、人手を介することなく初期値を自動的に設定することができる。
【００６０】
図８に示すデバイス１０及びホスト２０は、双方共に初期値設定後に認証子用メモリ及び乱数用メモリの全てに初期値を保存する。尚、ホストには複数のデバイスが接続されることがあるが、ホスト２０はそれぞれのデバイス１０と１対１の暗号通信を行い、認証子や暗号用の乱数はそれぞれのデバイスで異なるため、ホスト２０には、接続されるデバイス数のメモリセットが用意され、メモリセットごとに初期値が設定される。
【００６１】
図９は、本発明の一実施形態によるＵＳＢ接続における構成時認証段階と初期化認証段階におけるメモリの状態の遷移を示した図であり、認証子用メモリ及び乱数用メモリの状態の遷移を示したものである。
【００６２】
これらの認証はデフォルトコントロールパイプ（ＲＰ０）のベンダーリクエストを用いて行われる。
【００６３】
構成時認証段階では、初めにデバイス１０で自然乱数Ｘ１を生成し、認証子用メモリに保存された初期値と共に乱数用メモリに保存された初期値を用いて暗号化を行い、ホスト２０に送信する（ステップＳ９０１）。デバイス１０は、データ送信後に乱数更新手段により上り経路用の乱数用メモリＵｐ１２の値をＵｐ１１に移し、Ｕｐ１２に新たに自然乱数Ｘ１を保存する。
【００６４】
ホスト２０は、図５に示すアテストを行い、乱数更新手段により自然乱数Ｙ１を保存し、続いて図２、３の手順で新たな自然乱数Ｙ１の生成と、デバイス認証子Ａ１及びホスト認証子Ｃ１の生成及び登録を行う。ホスト２０は、更に自然乱数Ｙ１を、デバイス認証子Ａ１と共に乱数用メモリに保存された初期値を使用して暗号化し、デバイス１０に送信する（ステップＳ９０２）とともに乱数更新手段により自然乱数Ｙ１を保存する。
尚、図３ではホストキーＫ（１２０）及びホスト認証子Ｃ（４２）はホスト２に接続された外部メモリ７２に保存する形態を示したが、ホストキーＫ（１２０）及びホスト認証子Ｃ（４２）はホスト２から取り外し可能な外部デバイスの中に保存し、構成時認証終了後、外部デバイスを取り外して保管することも可能である。このような構成は特に遊技機の場合に有効であり、一度通信が異常終了した際、ホストキーＫ（１２０）及びホスト認証子Ｃ（４２）を保存した外部デバイスを接続して、新たに構成時認証を実施しないと通信を再開できないようにすることで、なりすましによる不正行為を防止することができる。
【００６５】
デバイス１０はアテストを行った後、乱数更新手段により自然乱数Ｙ１を保存する。
【００６６】
この結果、構成時認証段階終了時には、デバイス１０、ホスト２０のそれぞれで乱数用メモリに保存された４つの初期値の内の２つがＸ１、Ｙ１に書き換わる。
【００６７】
続く初期化認証段階において、デバイス１０で新たな自然乱数Ｘ２を生成し、２度目のハンドシェーク（ステップＳ９０３、Ｓ９０４）により、ホストで新たに生成した自然乱数Ｙ２を含めて両デバイスが乱数の交換、アテスト、及び乱数更新を行う。初期化認証段階が終了した時点で、ホスト２０及びデバイス１０共に各メモリの初期値がそれぞれの認証子及び乱数に書き換わる。
【００６８】
ＵＳＢの場合、このようにデフォルトのコントロールパイプを使用して、プラグアンドプレイの段階でデバイスとホストとの間のユニークな関係を築くことができる。
【００６９】
図１０は、本発明の一実施形態による初期化認証段階終了後のＵＳＢ接続におけるデータの流れと乱数の状態を示した図であり、初期化認証段階終了後のデータ転送におけるデータの流れと乱数の状態を示したものである。
【００７０】
データ転送はデバイス１０とホスト２０との間で定義したパイプを使用して行われる。パイプはエンドポイント毎に設定され、データは双方向ではなく一方向に固定される。
【００７１】
デバイス１０は、データ転送が必要になると新たな自然乱数Ｘを生成し、デバイス認証子Ａと共にデータに付加して暗号化の後、上り経路用パイプを使用してホスト２０に送信する（ステップＳ１００１）。暗号化は、上り経路用の乱数用メモリＵｐ１２に保存されたＸ２をシード値として生成した擬似乱数を用いて行い、伝送路の正当性確認は上り経路用の乱数用メモリＵｐ１１に保存されたＸ１を含めてハッシュ値を求め、これを使用して行う。デバイス１０は、データ送信後に、乱数更新手段により自然乱数Ｘを乱数用メモリＵｐ１２に保存する。
【００７２】
ホスト２０は、データ受信後、アテストにより認証子認証と伝送路の正当性確認を行う。ホスト２０は、アテストで正当性が確認できると乱数更新手段により自然乱数Ｘを乱数用メモリＵｐ２２に保存し、続いて新たな自然乱数Ｙを生成し、リターンコードと共に暗号化後に下り経路用パイプを使用してデバイス１０に送信する（ステップＳ１００２）。暗号化は下り経路用の乱数用メモリＤｏｗｎ２２に保存されたＹ２をシード値として生成した擬似乱数を用いて行い、伝送路の正当性確認に使用するハッシュ値は下り経路乱数用メモリＤｏｗｎ２１に保存されたＹ１を含めて算出する。データ送信後、ホスト２０は、乱数更新手段により自然乱数Ｙを乱数用メモリＤｏｗｎ２２に保存する。
【００７３】
デバイス１０は、受信したデータのアテストを行い、正当性が確認できると、乱数更新手段により自然乱数Ｙを乱数用メモリＤｏｗｎ１２に保存する。この一連の手順により、データ送受信に併せて前に交換した乱数を暗号に使用しながら新たな乱数を後の暗号化に使用するために共有することが継続的に実行可能となる。
【００７４】
図１１は、本発明の一実施形態によるＵＳＢ接続における構成時認証段階と初期化認証段階におけるメモリの状態の遷移を示した図であり、認証子用メモリ及び乱数用メモリの状態の遷移を示したものである。
図９の実施形態では、暗号化は通信の経路に合わせて、上り経路には上り経路用の乱数用メモリＵｐ１２、下り経路には下り経路用の乱数用メモリＤｏｗｎ２２に保存された乱数を使用したが、図１１は最後に受信した逆方向の経路用の乱数も付加することでさらに第３者による解読のリスクを低減する実施形態を示す。
【００７５】
構成時認証段階では、初めにデバイス１０で自然乱数Ｘ１を生成し、認証子用メモリに保存された初期値と共に乱数用メモリに保存された初期値を用いて暗号化を行い、ホスト２０に送信する（ステップＳ１１０１）。デバイス１０は、データ送信後に乱数更新手段により上り経路用の乱数用メモリＵｐ１２の値をＵｐ１１に移し、Ｕｐ１２に新たに自然乱数Ｘ１を保存するとともに、下り経路用の乱数用メモリＤｏｗｎ１２にも自然乱数Ｘ１を元の値にＸＯＲ演算する形で付加して保存する。
【００７６】
ホスト２０は、デバイス１０からのデータを受信後、復号化して図５に示すアテストを行い伝送路の正当性が確認できると、自然乱数Ｘ１を取り出し、乱数更新手段により上り経路用の乱数用メモリＵｐ２２の値をＵｐ２１に移し、Ｕｐ２２に新たに自然乱数Ｘ１を保存するとともに、下り経路用の乱数用メモリＤｏｗｎ２２にも自然乱数Ｘ１を元の値にＸＯＲ演算する形で付加して保存する。
その後ホスト２０は、図２、３の手順で新たな自然乱数Ｙ１の生成と、デバイス認証子Ａ１及びホスト認証子Ｃ１の生成及び登録を行う。更に自然乱数Ｙ１を、デバイス認証子Ａ１と共に乱数用メモリに保存された値を使用して暗号化し、デバイス１０に送信する（ステップＳ１１０２）。次いでホスト２０は乱数更新手段により自然乱数Ｙ１を下り経路用の乱数用メモリＤｏｗｎ２２に保存するとともに上り経路用の乱数用メモリＵｐ２２にもＸＯＲ演算の形で付加して保存する。
【００７７】
デバイス１０はアテストを行った後、乱数更新手段により自然乱数Ｙ１を保存する。この際、下り経路用の乱数用メモリＤｏｗｎ１２に保存するとともに上り経路用の乱数用メモリＵｐ１２にもＸＯＲ演算の形で付加して保存する。
【００７８】
続く初期化認証段階において、デバイス１０で新たな自然乱数Ｘ２を生成し、２度目のハンドシェーク（ステップＳ１１０３、Ｓ１１０４）により、ホストで新たに生成した自然乱数Ｙ２を含めて両デバイスが乱数の交換、アテスト、及び乱数更新を行う。この際のデータの暗号化は上り経路の場合、上り経路用の乱数用メモリＵｐ２２の値を使用するが、このＵｐ２２にはデバイス１０で生成した自然乱数Ｘ１とホスト２０で生成したＹ１とがＸＯＲ演算の形で保存されているので、通信を第３者に盗まれても解読のリスクを低減することができる。
同様に下り経路の場合もデータの暗号化は下り経路用の乱数用メモリＤｏｗｎ２２の値を使用するが、Ｄｏｗｎ２２には直前に受信したデバイス１０で生成した自然乱数Ｘ２が付加されているので、通信データの安全性が確保される。
データの暗号化は、その経路の乱数用メモリの値を使用するが、１つのメモリの値に限らず、時系列的に１つ前の乱数を保存するメモリの値とのＸＯＲを使用しても良い。これによりさらにデータが複雑になり、第３者による解読のリスクを低減できる。
【００７９】
図１２、１３は、ＩＥＥＥ８０２．１５．４等の近距離無線通信によるデバイス認証について説明する図である。
【００８０】
図１２は、本発明の一実施形態による近距離無線通信とＵＳＢの機器認証を組合せたネットワークのイメージ図であり、近距離線通信ＩＥＥＥ８０２．１５．４（ＺｉｇＢｅｅ（登録商標））を使用した機器とＵＳＢの機器認証を組合せたネットワークのイメージ図である。
【００８１】
本実施形態は、複数のエンドデバイス（４１０、４１１）で構成されるセンサーネットワーク４００のデータを、それ自身がＵＳＢのデバイスとして実装されたコーディネータ２１０に集約し、更にＵＳＢ接続によりホスト２１に送信することを想定する。
【００８２】
コーディネータ２１０がＵＳＢ接続機能を有することで、通信規格の異なる伝送経路がシームレスに接続される。
【００８３】
各エンドデバイスとコーディネータは、それぞれ自然乱数生成器、認証子を保存する認証子用メモリ、及び上り経路と下り経路の暗号通信で使用する乱数を時系列的に保存する乱数更新手段による乱数用メモリを備える（いずれも図示せず）。
【００８４】
一つのエンドデバイス、例えばエンドデバイス４１０が新たに近距離無線通信ネットワークに参加するときに、コーディネータ２１０はネットワークＩＤを割り振り、エンドデバイス４１０とコーディネータ２１０との両端でネットワークＩＤを共有する。またエンドデバイス４１０がセンサーネットワーク４００に参加する都度、コーディネータ２１０は、例えば１６ビットのアドレス（ショートアドレス）を動的に割り当てる。エンドデバイス４１０及びコーディネータ２１０は、これらの値を使用して認証子用メモリと乱数用メモリの初期値を生成する。
【００８５】
具体的に、例えばエンドデバイスの認証子だけは、初期値として６４ビットのロングアドレスを用い、その他のメモリの初期値はＰＡＮ  ＩＤ（近距離線通信ＺｉｇＢｅｅ（登録商標）に割り当てられたＩＤ）とショートアドレスを使用して、
ＰＡＮ  ＩＤ＝０ｘ０１０１
ショートアドレス＝０ｘａ０１
のように設定を行い、ハッシュ値を求めて初期値とする。
初期値＝Ｈａｓｈ（ＰＡＮ  ＩＤ＋ショートアドレス）
【００８６】
このように、エンドデバイスが近距離無線通信ネットワークに参加するときに、自動的に発生する情報を初期値設定に利用することで、人手を介することなく初期値の設定を行うことができる。
【００８７】
近距離無線通信の場合も、エンドデバイス４１０とコーディネータ２１０の構成時認証段階の前に、それぞれの認証子用メモリ及び乱数用メモリに全て共通の初期値が設定される。
【００８８】
近距離無線通信の場合、通信速度に制約があるため、あまり大きなデータを送受信することは負荷が大きく効率が悪い。そこでペイロードデータの構成を見直す必要がある。
【００８９】
ネットワークの構成段階に応じてペイロードデータの構成を変え、構成時認証段階と初期認証段階の時には、デバイス認証子を格納するＵＵＩＤ、自然乱数を格納するＫｅｙ、及び伝送データの正当性確認用のハッシュ値を格納するＨａｓｈの３つの要素で構成し、それ以降のデータ伝送時には、ＵＵＩＤの代わりに平文等のデータを格納するＤａｔａを使用し、Ｋｅｙ、Ｈａｓｈ、及びＤａｔａの３要素構成とする。
【００９０】
このように段階に応じてデータ構成が変わるため、ペイロードデータを受信したときのアテストの内容も段階に応じて変更する。
【００９１】
図１３は、本発明の一実施形態による近距離無線通信における短いデータのホスト側デバイスのアテストのフロー図であり、近距離無線通信における構成時認証段階と初期認証段階の時にコーディネータで行うアテストの内容を示したフローチャートである。近距離無線通信の場合の暗号化には上述のようなゼネラルキーを使用せず、ペイロードデータ全体を１つの擬似乱数で暗号化する。
【００９２】
エンドデバイス側で送信データを暗号化する場合、上り経路用の乱数用メモリのＵｐ１２に保存された値をシード値として生成した擬似乱数を使用する。またハッシュ値は上り経路用の乱数用メモリのＵｐ１１に保存された値を含めて求める。
【００９３】
このため、コーディネータ側のアテストでは、上り経路用の乱数用メモリのＵｐ２２に保存された値をシード値として生成した擬似乱数で復号化の後、ホスト認証子が初期値か否か及びＵＵＩＤの値が登録済みか否かにより認証子の発番又は認証を行う。続いて上り経路用の乱数用メモリのＵｐ２１に保存された値を含めてハッシュ値を求め、受信したデータ中のハッシュ値と比較する。
【００９４】
随時認証段階のデータ送信時にコーディネータで行うアテストでは、ペイロードデータの構成が変わりＵＵＩＤを含めないため、認証子の認証は行わずに伝送路の正当性確認のみを行う。この場合の復号化には乱数用メモリＵｐ２２を、ハッシュ値計算には乱数用メモリＵｐ２１を参照する。
【００９５】
随時認証段階のデータ送信時にエンドデバイスで行うアテストは、コーディネータで行うアテストと同様であるが、使用する乱数として、復号化に乱数用メモリＤｏｗｎ１２を、ハッシュ値計算に乱数用メモリＤｏｗｎ１１を参照する点が異なる。
【００９６】
エンドデバイス４１０とコーディネータ２１０の構成時認証段階と初期化認証段階における認証子用メモリ及び乱数用メモリの状態の遷移は、図９のデバイスをエンドデバイス、ホストをコーディネータと見なすと、内容は略同じである。
【００９７】
近距離無線通信における初期化認証段階終了後の双方向データの流れと乱数の状態は、図１４のデバイスをエンドデバイス、ホストをコーディネータと見なすと内容は類似しているが、ペイロードデータの構成が異なるため、上述のようにホスト側デバイスのアテストが異なる。
【００９８】
図１４は、本発明の一実施形態によるエンドデバイスとコーディネータの構成時認証段階と初期化認証段階におけるメモリの状態の遷移を示した図であり、近距離無線通信の他の実施形態を示した図である。
【００９９】
図１３は、複数のエンドデバイス（ＭＡＮＹ）から１つのコーディネータ（ＯＮＥ）へのＭＡＮＹ−ＴＯ−ＯＮＥのデータ転送の状態を示している。
【０１００】
ＭＡＮＹ−ＴＯ−ＯＮＥのデータ転送は両端で同期が取れない一方通行のデータ送信となり、コーディネータ側で発生する乱数は、エンドデバイスとの間で交換されない。そこでエンドデバイス側の乱数のみで発生と交換を繰り返す。
【０１０１】
ＭＡＮＹ−ＴＯ−ＯＮＥのデータ転送を行うエンドデバイス４１０も、設置の際に構成時認証段階と初期化認証段階の各手順を行い、初期化認証段階の後に、エンドデバイス４１０は、認証子用メモリと上り経路用の乱数用メモリＵｐ１１、Ｕｐ１２にそれぞれデバイス認証子と自然乱数Ｘ１、Ｘ２を保存する。一方コーディネータ２１０は、認証子用メモリと上り経路用の乱数用メモリＵｐ２１、Ｕｐ２２にそれぞれホスト認証子と自然乱数Ｘ１、Ｘ２を保存する。
【０１０２】
図１５は、本発明の一実施形態による初期化認証段階終了後のエンドデバイスとコーディネータとの間のデータの流れと乱数の状態を示した図であり、ＭＡＮＹ−ＴＯ−ＯＮＥのデータ転送の初期化認証段階終了後のデータ通信におけるデータの流れと乱数の状態を示した図である。
【０１０３】
エンドデバイス４１０からデータを送信する場合のペイロードデータは、Ｋｅｙ、Ｈａｓｈ、及びＤａｔａの３要素で構成される。
【０１０４】
先ず、エンドデバイス４１０は、自然乱数生成器で新たな自然乱数Ｘを生成し、送信データ格納用のメモリ（図示せず）のＫｅｙに格納し、送信する平文データをＤａｔａに格納する。これに上り経路用の乱数用メモリＵｐ１１に保存された乱数を付加してハッシュ値を求め、Ｈａｓｈに格納する。こうして構成したペイロードデータを、上り経路用の乱数用メモリＵｐ１２に保存された乱数をシード値として生成した擬似乱数とＸＯＲ演算で暗号化し、コーディネータ２１０に送信する（ステップＳ１５０１）。
【０１０５】
コーディネータ２１０は、受信時にアテストで復号化したデータから求めたハッシュ値で正当性確認を行ってデータを受け取ると乱数更新手段により、上り経路用の乱数用メモリＵｐ２１（５２１）の値をＵｐ２２（５２２）の値で書き換え、Ｕｐ１２（５２２）の値を自然乱数Ｘで書き換えとともに、エンドデバイス４１０にデータが正常に送られたことを示すＡｃｋを送信する（ステップＳ１５０２）。このアテストには上り経路用の乱数用メモリＵｐ２１、Ｕｐ２２に保存された乱数を使用する。デバイス１は、Ａｃｋ受信後、乱数更新手段により、上り経路用の乱数用メモリＵｐ１１（５１１）の値をＵｐ１２（５１２）の値で書き換え、Ｕｐ１２（５１２）の値を自然乱数Ｘで書き換える。
【０１０６】
このように、ＭＡＮＹ−ＴＯ−ＯＮＥの場合は、データ送信が一方通行のため、エンドデバイス側で発生する乱数のみを通信に使用するが、常に新しい乱数を含むと共に前２回分の乱数を暗号化と正当性確認に使用するため、高いセキュリティを確保することができる。
【０１０７】
図１６を参照してインターネット等の広域通信ネットワークによる動的なエンドポイント認証の事例を説明する。
【０１０８】
図１６は、本発明の一実施形態によるインターネットによるシステム構成のイメージを示した図である。Ｍ２Ｍエンドデバイス５１０は、ＵＳＢのホストコントローラの機能を有し、自然乱数生成器（ＮＲＧ）５８１をＵＳＢにより接続する。このＭ２Ｍエンドデバイスは、ＩＰｖ６等による広域通信ネットワーク（ＷＡＮ）を通じてＭ２Ｍゲートウェイ５２０に接続される。Ｍ２Ｍゲートウェイ５２０もまたＵＳＢホストコントローラの機能を有し、自然乱数生成器（ＮＲＧ）５８２をＵＳＢにより接続する。
【０１０９】
Ｍ２ＭエンドデバイスとＭ２Ｍゲートウェイは、それぞれ認証子を保存する認証子用メモリと、上り経路及び下り経路の暗号通信で使用する乱数を時系列的に保存する乱数更新手段による乱数用メモリを備える（いずれも図示せず）。
【０１１０】
Ｍ２Ｍエンドデバイス５１０が新たにネットワークに参加する際、マシン名、ＩＰアドレス或いはＭＡＣアドレスが上位のＭ２Ｍゲートウェイ５２０との間で共有される。そこでネットワークに参加する時点を構成の認証と見なし、ユニークに識別可能でＭ２Ｍエンドデバイス５１０とＭ２Ｍゲートウェイ５２０とで共有可能な情報を用いて認証子用メモリ及び乱数用メモリの初期値を生成する。
具体的に、例えばパーソナルコンピュータのマシン名を
ＭａｃｈｉｎｅＮａｍｅ＝“ＵＴＰ−ＰＣ１”
のように定義し、このハッシュ値を求めて初期値とする。
初期値＝Ｈａｓｈ（ＭａｃｈｉｎｅＮａｍｅ）
【０１１１】
このように機器に固有の情報を使用することで、人を介することなく自動的に初期値設定を行うことができる。
【０１１２】
インターネットによるシステムの場合もＭ２Ｍエンドデバイス５１０とＭ２Ｍゲートウェイ５２０のそれぞれの認証子用メモリ及び乱数用メモリへの初期値の設定、構成時認証段階、及び初期化認証段階の各手順を行う。この場合も、図９、１０のデバイスをＭ２Ｍエンドデバイス、ホストをＭ２Ｍゲートウェイと見なすと、通信手段は異なるが認証子の生成や認証手順などの基本部分は略同じ内容である。
【０１１３】
図１７は、本発明の一実施形態によるシームレスネットワークの説明図であり、ＵＳＢゲートウェイを中心としたシームレスネットワークの例である。
【０１１４】
図１７は、ＰＡＮ（Ｐｅｒｓｏｎａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）（例えば、近距離線通信ＺｉｇＢｅｅ（登録商標））のエンドデバイスからＵＳＢゲートウェイを経由してインターネットに接続されたサーバと連携するネットワークを示す。ＵＳＢゲートウェイは、ＵＳＢデバイスとＵＳＢホストコントローラを有しており、ＵＳＢデバイスは、ＰＡＮエンドデバイスに対してコーディネータの機能を有し、ＵＳＢホストコントローラに対してＵＳＢのデバイスとして機能する。ＵＳＢホストコントローラは、ＵＳＢのデバイスに対するＵＳＢのホスト機能を有すると共にＬＡＮ機能を有し、サーバに対してイーサーネット（登録商標）のエンドデバイスとして機能する。そこでＵＳＢデバイスはＰＡＮで使用する認証子Ｂの他にＵＳＢで使用する認証子Ｃを有し、ＵＳＢホストコントローラはＵＳＢで使用する認証子Ｄの他にイーサーネット（登録商標）で使用する認証子Ｅを有する。それぞれの機器間の通信にはそれぞれの役割の認証子を付加して送信し、ＰＡＮエンドデバイスからデータを送信し、ＰＡＮエンドデバイスにレスポンスが戻るまでの一連のハンドシェークを行う。途中の経路で通信方式は変わるが、それぞれの通信経路で本発明の暗号通信が行われることで人手を介することなく、Ｍ２Ｍでシームレスなセキュリティネットワークが構築される。
【０１１５】
以上、本発明の実施形態について図面を参照しながら説明したが、本発明は、上述の実施形態に限定されるものではなく、本発明の技術的範囲から逸脱しない範囲内で多様に変更することが可能である。
【符号の説明】
【０１１６】
１、１０    デバイス
２、２０、２１    ホスト
３０    （デバイス認証子を保存する）認証子用メモリＤａ１
３１    初期値
３２    デバイス認証子Ａ
４０    （ホスト認証子を保存する）認証子用メモリＤａ２
４２    ホスト認証子Ｃ
５１、５２    （上り経路の暗号通信に使用する）乱数用メモリセット
６１、６２    （下り経路の暗号通信に使用する）乱数用メモリセット
７１、７２    外部メモリ
８１、８２、５８１、５８２    自然乱数生成器
９１    送信データ格納用のメモリ
１０２    受信データ格納用のメモリ
１２０    ホストキーＫ
１３１    自然乱数Ｘ１
１３２    自然乱数Ｙ１
１４０    伝送線路
１５１、１５２    （アテストを行う）認証部
２００    ホストコントローラ
２１０    コーディネータ
２２０、２３０、５２０    Ｍ２Ｍゲートウェイ
３００    コントロールパイプ
４００    センサーネットワーク
４１０    エンドデバイス
５１０    Ｍ２Ｍエンドデバイス
５２０    Ｍ２Ｍゲートウェイ
【図１】
2015128230.tif 000003
【図２】
2015128230.tif 000004
【図３】
2015128230.tif 000005
【図４】
2015128230.tif 000006
【図５】
2015128230.tif 000007
【図６】
2015128230.tif 000008
【図７】
2015128230.tif 000009
【図８】
2015128230.tif 000010
【図９】
2015128230.tif 000011
【図１０】
2015128230.tif 000012
【図１１】
2015128230.tif 000013
【図１２】
2015128230.tif 000014
【図１３】
2015128230.tif 000015
【図１４】
2015128230.tif 000016
【図１５】
2015128230.tif 000017
【図１６】
2015128230.tif 000018
【図１７】
2015128230.tif 000019