説明

相互認証システム及び相互認証方法

【課題】親機が認証エンジンを具備することなく、信号伝送回線に接続されたデバイスの真偽を確認できるようにする。
【解決手段】伝送路を介して接続された複数のデバイスとホストとの間でデータの送受信を行い、前記複数のデバイスを前記ホストが順次認証する相互認証システムにおいて、前記伝送路に接続されたデバイス間で相互認証を実行させ、前記相互認証の結果に基づいてホストが伝送路に接続されたデバイスを認証するようにすることにより、認証済のデバイスを前記伝送路に1つ接続しておくだけで、前記伝送路に接続されるデバイスの認証を行うことができるようにする。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は相互認証システム及び相互認証方法に関し、特に、I2Cバスを介して接続された複数のデバイスをホストが認証するために用いて好適な技術に関する。
【背景技術】
【0002】
情報処理技術の発展に伴い、大量の情報が所定の伝送路を介して通信されている。情報が通信される伝送路には、第三者(送信者および受信者以外の者)が、通信されているデータを盗聴することが可能なものが多い。
【0003】
このような伝送路を利用して、情報を第三者に漏洩させずに、通信を行う場合、しばしば、暗号が利用される。暗号を利用し、暗号化されたデータを通信することにより、暗号化されたデータを盗聴することができても、第三者が、そのデータから通信した情報の内容を読み出すことは困難である。
【0004】
このような暗号を生成する暗号化方法には、所定の鍵を利用して、平文(送信する情報)から、暗号(実際に送信されるデータ)を生成するものが利用されることが多い。
【0005】
このような、鍵を利用した暗号には、共通鍵暗号と公開鍵暗号の2種類がある。共通鍵暗号においては、暗号化するときの鍵(暗号化鍵データ)と、復号化するときの鍵(復号化鍵データ)が同一である。例えば、共通鍵暗号としては、Feistel暗号の1つであるDES(Data Encryption Standard)方式などがよく利用されている。一方、公開鍵暗号においては、暗号化鍵データと復号化鍵データが異なる。そして、受信者は、送信者のために、それらの鍵のうち、暗号化鍵データを公開するが、復号化鍵データは公開せずに隠しておく(即ち、復号化鍵データは、受信者のみが知っている)。
【0006】
しかしながら、前述の認証方法においては、所定の送受信者が、他の送受信者を認証するだけであるので、例えば、リーダ/ライタ装置(親機)とICカードで構成されるカードシステムに、前述の認証方法を適用した場合、リーダ/ライタ装置は、通信相手が正規のICカードであるか否かを判断する(通信相手を認証する)ことができるが、ICカードは、通信相手が正規のリーダ/ライタ装置であるか否かを判断することが困難であるという問題を有している。
【0007】
前述のような問題点を解消するために、例えば、特許文献1においては、複数の情報処理装置において、相互に平文を送信するとともに、送信されてきた平文を受信し、受信した平文を暗号に暗号化し、平文を送信した装置に、その暗号を送信するとともに、送信されてきた暗号を受信し、その暗号を復号化した平文と最初に送信した平文を比較することで、相互に認証を行うようにした認証方法が提案されている。
【先行技術文献】
【特許文献】
【0008】
【特許文献1】特開平10−020780号公報
【発明の概要】
【発明が解決しようとする課題】
【0009】
特許文献1に記載の認証方法においては、リーダ/ライタ装置とICカードとで相互に認証を行うようにしている。このため、リーダ/ライタ装置に専用認証エンジンを具備する必要があった。
【0010】
また、ICカードを使用する各ユーザー向けにユーザー指定の制御用CPUのソフト向けのコードの開発する負担、及び開発した同コードを開示するために発生するセキュリティ上の管理のわずらわしさ(秘密保持の負担)も大きな負担であった。
本発明は前述の問題点に鑑み、親機が認証エンジンを具備することなく、伝送路に接続されたデバイスの真偽を確認できるようにすることを目的とする。
【課題を解決するための手段】
【0011】
本発明の相互認証システムは、伝送路を介して接続された複数のデバイスとホストとの間でデータの送受信を行い、前記複数のデバイスを前記ホストが順次認証する相互認証システムであって、
前記ホストにおいて、前記伝送路を介して接続された前記複数のデバイスのうち、相互認証させる第1のデバイスと第2のデバイスとを決定するデバイス決定手段と、
前記ホストにおいて、前記デバイス決定手段により決定された、第1及び第2のデバイスを指定して、相互認証を行うように命令する第1、第2のコマンドと、前記第1のデバイスから相互認証結果を読み出すように命令する第3のコマンドを生成するコマンド生成手段と、
前記ホストにおいて、前記コマンド生成手段により生成された、前記第1のコマンドを前記伝送路を介して前記第1、第2のデバイスに送信するホスト側送信手段と、
前記第1のデバイスにおいて、前記ホストが送信する、前記第1のコマンドを受信する第1のデバイス側受信手段と、
前記第2のデバイスにおいて、前記ホストが送信する、前記第1のコマンドを受信する第2のデバイス側受信手段と、
前記第1のデバイスにおいて、第1の乱数データを生成する第1のデバイス側乱数データ生成手段と、
前記第2のデバイスにおいて、第2の乱数データを生成する第2のデバイス側乱数データ生成手段と、
前記第1のデバイスにおいて、前記第1のデバイス側受信手段により受信された前記第1のコマンドに応じて、前記第1の乱数データを、前記第1、第2のデバイスが共通に保持する第1の鍵データを用いて暗号化して、第1の暗号データを生成する第1のデバイス側暗号化手段と、
前記第2のデバイスにおいて、前記第2のデバイス側受信手段により受信された前記第1のコマンドに応じて、前記第2の乱数データを、前記第1の鍵データを用いて第2の暗号データを生成する第2のデバイス側暗号化手段と、
前記第1のデバイスにおいて、前記第1の暗号データを、前記伝送路を介して前記ホストに送信する第1のデバイス側送信手段と、
前記第2のデバイスにおいて、前記第1のデバイスが送信する、前記第1の暗号データを受信する第2のデバイス側受信手段と、
前記第2のデバイスにおいて、前記第2のデバイス側受信手段により受信した、前記第1の暗号データを、前記第1の鍵データを用いて、第1の復号結果を得る第2のデバイス側復号化手段と、
前記第2のデバイスにおいて、前記第2のデバイス側復号化手段により得た前記第1の復号結果と、前記第2の乱数データとの間で演算を行い、第2の演算結果を得る第2のデバイス側演算手段と、
前記第2のデバイスにおいて、前記第2のデバイス側暗号化手段により生成された、前記第2の暗号データを、前記伝送路を介して前記ホストに送信する第2のデバイス側送信手段と、
前記第1のデバイスにおいて、前記第2のデバイスが送信する、前記第2の暗号データを受信する第1のデバイス側受信手段と、
前記第1のデバイスにおいて、前記第1のデバイス側受信手段により受信した、前記第2の暗号データを、前記第1の鍵データを用いて復号し、第2の復号結果を得る第1のデバイス側復号化手段と、
前記第1のデバイスにおいて、前記第1のデバイス側復号化手段により得た、前記第2の復号結果と、前記第1の乱数データとの間で演算を行い、第1の演算結果を得る第1のデバイス側演算手段と、
前記ホストにおいて、前記コマンド生成手段により生成された、前記第2のコマンドを、前記伝送路を介して前記第1、第2のデバイスに送信するホスト側送信手段と、
前記第1のデバイスにおいて、前記ホストが送信する、前記第2のコマンドを受信する第1のデバイス側受信手段と、
前記第2のデバイスにおいて、前記ホストが送信する、前記第2のコマンドを受信する第2のデバイス側受信手段と、
前記第1のデバイスにおいて、前記第1のデバイス側受信手段により受信した、前記第2のコマンドに応じて前記第1の演算結果を、前記第1、第2のデバイスが共通に保持する第2の鍵データを用いて暗号化して、第3の暗号データを生成する第1のデバイス側暗号化手段と、
前記第2のデバイスにおいて、前記第2のデバイス側受信手段により受信した、前記第2のコマンドに応じて、前記第2の演算結果を、前記第2の鍵データにより暗号化して、第4の暗号データを生成する第2のデバイス側暗号化手段と、
前記第1のデバイスにおいて、前記第1のデバイス側受信手段により受信した、前記第2のコマンドに応じて、前記第3の暗号データを、前記伝送路を介して前記ホストに送信する第1のデバイス側送信手段と、
前記第2のデバイスにおいて、前記第1のデバイスが送信する、前記第3の暗号データを受信する第2のデバイス側受信手段と、
前記第2のデバイスにおいて、前記第2のデバイス側受信手段で受信した、前記第3の暗号データを、前記第2の鍵データを用いて復号して第3の復号結果を得る第2のデバイス側復号化手段と、
前記第2のデバイスにおいて、前記第3の復号結果と、前記第2の演算結果との一致/不一致を判定して、前記第1のデバイスを認証する第2のデバイス側認証手段と、
前記第2のデバイスにおいて、前記第2のデバイス側認証手段による判定結果が一致の場合は、前記第1のデバイスが認証されたと判断して、前記第4の暗号データを前記伝送路を介して前記ホストに送信し、
不一致の場合は、前記第1のデバイスは認証されなかったと判断して、前記第2の演算結果とは異なる第3の乱数データを、前記第2のデバイス側乱数データ生成手段で生成し、前記第3の乱数データを、前記第2の鍵データを用いて、前記第2のデバイス側受信手段で受信した前記第2のコマンドに応じて、前記第2のデバイス側暗号化手段で暗号化して第5の暗号データを生成し、前記伝送路を介して前記ホストに送信する第2のデバイス側認証結果送信手段と、
前記第1のデバイスにおいて、前記第2のデバイスが送信する、前記第4の暗号データあるいは、前記第5の暗号データを受信する第1のデバイス側受信手段と、
前記第1のデバイスにおいて、前記第1のデバイス側受信手段で受信した、前記第4の暗号データあるいは、前記第5の暗号データを、前記第2の鍵データを用いて復号して第4の復号結果を得る第1のデバイス側復号化手段と、
前記第1のデバイスにおいて、前記第4の復号結果と、前記第1の演算結果との一致/不一致を判定する第1のデバイス側一致判定手段と、
前記ホストにおいて、前記コマンド生成手段により生成された、前記第3のコマンドを前記伝送路を介して前記第1のデバイスに送信するホスト側送信手段と、
前記第1のデバイスにおいて、前記ホストが送信する前記第3のコマンドを受信する第1のデバイス側受信手段と、
前記第1のデバイスにおいて、前記第1のデバイス側受信手段で受信した、前記第3のコマンドに応じて、前記第1のデバイス側一致判定段で判定した結果を、前記伝送路を介して前記ホストに送信する第1のデバイス側一致判定結果送信手段と、
前記ホストにおいて、前記第1のデバイスから送信された、前記第1のデバイス側一致判定手段での判定結果を受信するホスト側受信手段と、
第1のデバイスにおいて、前記第1のデバイス側一致判定手段で判定した結果により、前記第2のデバイスとの相互認証結果を判定する第1のデバイス側相互認証手段と、
前記ホストにおいて、前記ホスト側受信手段により受信された、前記第1のデバイス側一致判定手段での判定結果に基づいて、前記第1及び第2のデバイスの相互認証結果を判定する認証結果判定手段とを有することを特徴とする。
【0012】
本発明の相互認証方法は、伝送路を介して接続された複数のデバイスとホストとの間でデータの送受信を行い、前記複数のデバイスを前記ホストが順次認証する相互認証方法であって、
前記伝送路を介して接続された前記複数のデバイスのうち、相互認証させる第1のデバイスと第2のデバイスとを、前記デバイス決定手段により決定するデバイス決定工程と、
前記ホストにおいて、前記デバイス決定工程で決定した、前記第1、第2のデバイスを指定して、相互認証を行うように命令する、前記第1、第2のコマンドと、前記第1のデバイスから相互認証結果を読み出すように命令する、前記第3のコマンドを、前記コマンド生成手段で生成するコマンド生成工程と、
前記ホストにおいて、前記コマンド生成工程で生成した、前記第1のコマンドを、前記ホスト側送信手段で、前記伝送路を介して前記第1、第2のデバイスとに送信するホスト側送信工程と、
前記第1のデバイスにおいて、前記ホスト側送信工程にて、前記ホストが送信する、前記第1のコマンドを、前記第1のデバイス側受信手段で受信する第1のデバイス側受信工程と、
前記第2のデバイスにおいて、前記ホスト側送信工程にて、前記ホストが送信する、前記第1のコマンドを、前記第2のデバイス側受信手段で受信する第2のデバイス側受信工程と、
前記第1のデバイスにおいて、前記第1の乱数データを、前記第1のデバイス側乱数データ生成手段で生成する第1のデバイス側乱数データ生成工程と、
前記第2のデバイスにおいて、前記第2の乱数データを、前記第2のデバイス側乱数データ生成手段で生成する第2のデバイス側乱数データ生成工程と、
前記第1のデバイスにおいて、前記第1のデバイス側受信工程にて受信した、前記第1のコマンドに応じて、前記第1の乱数データを、前記第1、第2のデバイスが共通に保持する、前記第1の鍵データを用いて、前記第1のデバイス側暗号化手段で、前記第1の暗号データを生成する第1のデバイス側暗号化工程と、
前記第2のデバイスにおいて、前記第2のデバイス側受信工程にて受信した、前記第1のコマンドに応じて、前記第2の乱数データを、前記第1の鍵データを用いて、前記第2のデバイス側暗号化手段で、前記第2の暗号データを生成する第2のデバイス側暗号化工程と、
前記第1のデバイスにおいて、前記第1の暗号データを、前記第1のデバイス側送信手段で、前記伝送路を介して前記ホストに送信する第1のデバイス側送信工程と、
前記第2のデバイスにおいて、前記第1のデバイス側送信工程にて前記第1のデバイスが送信する、前記第1の暗号データを、前記第2のデバイス側受信手段で受信する第2のデバイス側受信工程と、
前記第2のデバイスにおいて、前記第2のデバイス側受信工程にて受信した、前記第1の暗号データを、前記第1の鍵データを用いて、前記第2のデバイス側復号化手段で前記第1の復号結果を得る第2のデバイス側復号化工程と、
前記第2のデバイスにおいて、前記第2のデバイス側復号化工程で得た、前記第1の復号結果と、前記第2の乱数データとの間で、前記第2のデバイス側演算手段で演算を行い、前記第2の演算結果を得る第2のデバイス側演算工程と、
前記第2のデバイスにおいて、前記第2の暗号データを、前記第2のデバイス側送信手段で、前記伝送路を介して前記ホストに送信する第2のデバイス側送信工程と、
前記第1のデバイスにおいて、前記第2のデバイス側送信工程にて、前記第2のデバイスが送信する、前記第2の暗号データを、前記第1のデバイス側受信手段で受信する第1のデバイス側受信工程と、
前記第1のデバイスにおいて、前記第1のデバイス側受信工程にて受信した、前記第2の暗号データを、前記第1の鍵データを用いて、前記第1のデバイス側復号化手段で復号し、前記第2の復号結果を得る第1のデバイス側復号化工程と、
前記第1のデバイスにおいて、前記第1のデバイス側復号化工程にて得た、前記第2の復号結果と、前記第1の乱数データとの間で、前記第1のデバイス側演算手段で演算を行い、前記第1の演算結果を得る第1のデバイス側演算工程と、
ホストにおいて、前記コマンド生成工程で生成した、前記第2のコマンドを、前記ホスト側送信手段で、前記伝送路を介して前記第1、第2のデバイスに送信するホスト側送信工程と、
前記第1のデバイスにおいて、前記ホスト側送信工程にて、前記ホストが送信する、前記第2のコマンドを、前記第1のデバイス側受信手段で受信する第1のデバイス側受信工程と、
前記第2のデバイスにおいて、前記ホスト側送信工程にて、前記ホストが送信する、前記第2のコマンドを、前記第2のデバイス側受信手段で受信する第2のデバイス側受信工程と、
前記第1のデバイスにおいて、前記第1のデバイス側受信工程にて受信した、前記第2のコマンドに応じて、前記第1の演算結果を、前記第1、第2のデバイスが共通に保持する、前記第2の鍵データを用いて、前記第1のデバイス側暗号化手段にて、前記第3の暗号データを生成する第1のデバイス側暗号化工程と、
前記第2のデバイスにおいて、前記第2のデバイス側受信工程にて受信した、前記第2のコマンドに応じて、前記第2の演算結果を、前記第2の鍵データにより、前記第2のデバイス側暗号化手段で暗号化して、前記第4の暗号データを生成する第2のデバイス側暗号化工程と、
前記第1のデバイスにおいて、前記第1のデバイス側暗号化工程にて生成された、前記第3の暗号データを、前記第1のデバイス側送信手段で、前記伝送路を介して前記ホストに送信する第1のデバイス側送信工程と、
前記第2のデバイスにおいて、前記第1のデバイス側送信工程にて、前記第1のデバイスが送信する、前記第3の暗号データを、前記第2のデバイス側受信手段で受信する第2のデバイス側受信工程と、
前記第2のデバイスにおいて、前記第2のデバイス側受信工程にて受信した第3の暗号データを、前記第2の鍵データを用いて、前記第2のデバイス側復号化手段にて復号して前記第3の復号結果を得る第2のデバイス側復号化工程と、
前記第2のデバイスにおいて、前記第2のデバイス側復号化工程で得た、前記第3の復号結果と、前記第2の演算結果の一致/不一致を、前記第2のデバイス側認証手段で判定して、前記第1のデバイスを認証する第2のデバイス側認証工程と、
前記第2のデバイスにおいて、前記第2のデバイス側認証工程での、前記第2のデバイス側認証手段による判定結果が一致の場合は、前記第1のデバイスが認証されたと判断して、前記第4の暗号データを前記伝送路を介して前記ホストに送信し、
不一致の場合は、前記第1のデバイスは認証されなかったと判断して、前記第2の演算結果とは異なる前記第3の乱数データを、前記第2のデバイス側乱数データ生成手段で生成し、前記第3の乱数データを、前記第2の鍵データを用いて、前記第2のデバイス側受信工程にて受信した前記第2のコマンドに応じて、前記第2のデバイス側暗号化手段で、前記第5の暗号データを生成して、前記第2のデバイス側認証結果送信手段により、前記伝送路を介して前記ホストに送信する第2のデバイス側認証結果送信工程と、
前記第1のデバイスにおいて、前記第2のデバイス側認証結果送信工程にて、前記第2のデバイスが生成して、前記伝送路を介して前記ホストに送信する、前記第4の暗号データあるいは、前記第5の暗号データを、前記第1のデバイス側受信手段で受信する第1のデバイス側受信工程と、
前記第1のデバイスにおいて、前記第1のデバイス側受信工程で受信した、前記第4の暗号データあるいは前記第5の暗号データを、前記第2の鍵データを用いて、前記第1のデバイス側復号化手段で復号して、前記第4の復号結果を得る第1のデバイス側復号化工程と、
前記第1のデバイスにおいて、前記第1のデバイス側復号化工程にて得た、前記第4の復号結果と、前記第1の演算結果との一致/不一致を、前記第1のデバイス側一致判定手段で判定する第1のデバイス側一致判定工程と、
前記ホストにおいて、前記コマンド生成工程で生成した、前記第3のコマンドを、前記ホスト側送信手段で、前記伝送路を介して前記第1のデバイスに送信するホスト側送信工程と、
前記第1のデバイスにおいて、前記ホスト側送信工程にて前記ホストが送信する、前記第3のコマンドを、前記第1のデバイス側受信手段で受信する第1のデバイス側受信工程と、
前記第1のデバイスにおいて、前記第1のデバイス側受信工程にて受信した、前記第3のコマンドに応じて、前記第1のデバイス側一致判定手段での判定結果を、前記第1のデバイス側一致結果送信手段で、前記伝送路を介して前記ホストに送信する第1のデバイス側一致判定結果送信工程と、
前記ホストにおいて、前記第1のデバイス側一致判定結果送信工程にて、前記第1のデバイスから送信される、前記第1のデバイス側一致判定手段での判定結果を、前記ホスト側受信手段で受信するホスト側受信工程と、
前記第1のデバイスにおいて、前記第1のデバイス側一致判定手段での判定結果により、前記第2のデバイスとの相互認証結果を判定する第1のデバイス側相互認証結果工程と、
前記ホストにおいて、前記ホスト側受信工程にて受信された前記第1のデバイス側一致判定手段での判定結果に基づいて、前記第1、第2のデバイスの相互認証結果を前記認証結果判定手段で判定する認証結果判定工程とを有し、
前記ホストから送信された第1、第2のコマンドにより第1、第2のデバイスに指定されなかったデバイスは、相互認証動作に参加せず待機していることを特徴とする。
【発明の効果】
【0013】
本発明によれば、親機が認証エンジンを具備することなく、伝送路に接続されたデバイスの真偽を確認することが可能となる。
【図面の簡単な説明】
【0014】
【図1】本発明の実施形態を示し、相互認証システムの全体構成例を示す図である。
【図2】本発明の実施形態を示し、親機の構成例を示す図である。
【図3】本発明の実施形態を示し、第1のデバイスの構成例を示す図である。
【図4】本発明の実施形態を示し、第2のデバイスの構成例を示す図である。
【図5】本発明の実施形態を示し、相互認証を行う手順を説明するタイミングチャートである。
【発明を実施するための形態】
【0015】
次に、図面を参照しながら本発明の実施形態を説明する。
(第1の実施形態)
図1は、本発明の実施形態を示し、相互認証システムの概略構成を示す図である。
図1に示したように、本実施形態の相互認証システムにおいては、ホスト(親機)10に対して複数のデバイスA11、デバイスB12、デバイスC13・・・がI2C(Inter-Integrated Circuit)伝送路14を介して接続されている。
【0016】
ホスト10は、伝送路14に接続されたデバイス11〜13の真偽を判断し、真のデバイスに対してのみアクセス制限を開放する。伝送路14に接続されたデバイスが真のデバイスであるか否かを判断するためには、一般には、ホスト10が認証用の専用認証エンジンを備え、ホスト10と認証対象のデバイスとの間で相互認証アルゴリズムを実行する必要がある。本実施形態においては、ホスト10に認証用の専用認証エンジンを具備することなく、伝送路14に接続されたデバイスの真偽を判断できるようにしている。
【0017】
図1に示したように、本実施形態の第1のデバイスA11にはメモリ11aが配設されており、メモリ11aに「第1、第2の鍵データKA、KB」が記憶されている。また、第2のデバイスB12にはメモリ12aが配設されており、メモリ12aに「第1、第2の鍵データKA、KB」が記憶されている。また、第3のデバイスC13にはメモリ13aが配設されており、メモリ13aに「第1、第2の鍵データKA、KB」が記憶されている。
【0018】
しかしながら、本実施形態のホスト10は伝送路14に接続されたデバイスとの間で相互認証を行わないので、メモリ10aには「第1、第2の鍵データKA、KB」が記憶されていない。図2にホスト10の概略構成例を示す。
【0019】
図2に示すように、ホスト10において、制御部21は、内蔵するプログラムに応じて、各種処理を行う。例えば、制御部21は、相互認証を行うデバイスに送信するコマンドを、コマンド生成部23にて生成するように制御し、生成したコマンドを送信部24に出力するよう制御する。
【0020】
メモリ22は、制御部21における処理に使用されるデータなどを記憶している。送信部24は、コマンド生成部23より供給されたコマンドを、I/F部25と伝送路14を介して相互認証を行うデバイスに送信する。
【0021】
受信部26は、I/F部25を介して、相互認証を行うデバイスにより送信されたデータを認証結果判定部27に出力する。
【0022】
制御部21からの制御により、認証結果判定部27は、受信部26より供給されたデータに基づいて、伝送路14に接続されたデバイスから送信された認証結果の真偽を判定し、判定結果を制御部21に出力するか、あるいは、受信部26より供給されたデータをそのまま制御部21に出力する。
【0023】
図3は、本発明の実施形態である第1のデバイスの構成例を示すブロック図である。
第1のデバイスにおいて、制御部31は、ホスト10より供給されるコマンドに応じて、各種処理を行う。具体的には、ホスト10からのコマンドを受信部36から受け取り、そのコマンドに対応した処理を行い、その処理の結果に対応して生成した乱数データや演算結果や応答データやメモリ32からの読み出しデータ等を暗号部33に出力する。
【0024】
メモリ32は、RAM(Random Access Memory)部(とROM(Read Only Memory)部を有している。そのうちのRAM部は、制御部31における処理に使用されるデータなどを一時的に記憶する。一方、ROM部には、デバイス固有のデバイスアドレスと暗号化または復号化において利用される「第1、第2の鍵データKA、KB」等が予め記憶されている。
【0025】
暗号部33は、制御部31より供給された暗号化するべきデータを、所定の鍵で暗号化し、暗号化したデータを送信部34に出力し、制御部31より供給されたデータを暗号化しない場合はそのまま送信部34に出力する。
送信部34は、暗号部33より供給されたデータを、I/F部35を介して伝送路14に出力し、ホスト10に送信する。
【0026】
受信部36は、伝送路14を介して送られてきたデータをI/F部35を介して、受信し、復号部37に出力する。
復号部37は、受信部36より供給されたデータを、制御部21の制御に応じて所定の鍵で復号化し、復号化したデータを制御部31に出力するか、そのまま制御部31に出力する。
【0027】
図4は、本発明の実施形態である第2のデバイスの構成例を示すブロック図である。第2のデバイスの構成は、図3に示した第1のデバイスの構成と全く同一であるが、動作説明を判り易くするため図3、4に分けて説明する。
【0028】
次に、図1を参照しながら本実施形態の相互認証システムの処理の概略を説明する。なお、図5に処理ステップを示す、各ステップで行われるデータ伝送は伝送路14を介して行われる。
【0029】
(ステップS1)
ホスト10が、相互認証させる第1、第2のデバイスアドレスを指定し、さらに乱数データとして生成した第1のスクランブルデータX、を附加して、第1の相互認証コマンド1を送信部24からI/F部25を介して伝送路14に送信する。例えば、第1のデバイスA11と第2のデバイスB12とを指定して第1の相互認証コマンド1の送信を行う。
【0030】
本実施形態においては、第1のデバイスA11が真のデバイスであることが予め確認されている。したがって、第1〜第3の相互認証コマンド1〜3に従って第1のデバイスA11と第2のデバイスB12との間で相互認証を行い、第1のデバイスA11のメモリ11aに記憶されている「第1、第2の鍵データKA、KB」と、第2のデバイスB12のメモリ12aに記憶されている「第1、第2の鍵データKA、KB」とが一致し、相互認証アルゴリズム計算が同じで、動作制御に正しく応答した場合には、第2のデバイスB12は真のデバイスであるとホスト10により認証される。デバイスアドレスを指定されなかったデバイスは相互認証動作に参加せず待機する。
【0031】
第1のデバイスA11は、ホスト10が伝送路14に送信する第1の相互認証コマンド1をI/F部35を介して受信部36により受信する。
第2のデバイスB12は、ホスト10が伝送路14に送信する第1の相互認証コマンド1をI/F部45を介して受信部46により受信する。
【0032】
ホスト10から送信された第1の相互認証コマンド1で第1のデバイスとしてデバイスアドレスを指定された第1のデバイスA11は、制御部31が第1の乱数Raを生成する。
ホスト10から送信された第1の相互認証コマンド1で第2のデバイスとしてデバイスアドレスを指定された第2のデバイスB12は、制御部41が第2の乱数Rbを生成する。
第1のデバイスA11は、メモリ11aに記憶している「第1の鍵データKA」とホスト10から送られてきた第1の相互認証コマンド1に附加されて来た第1のスクランブルデータX用いて、第1の乱数Raを暗号部33により暗号化して第1の暗号データを得る。
第2のデバイスB12は、メモリ12aに記憶している「第1の鍵データKA」とホスト10から送られてきた第1の相互認証コマンド1に附加されて来た第1のスクランブルデータXを用いて、第2の乱数Rbを暗号部43により暗号化して第2の暗号データを得る。
【0033】
(ステップ2)
第1のデバイスA11は、第1の暗号データを送信部34、I/F部35、伝送路14を介してホスト10に送信する。
第2のデバイスB12は、第1のデバイスA11が伝送路14を介してホスト10に送信している第1の暗号データをI/F部45を介して受信部46により受信する。
第2のデバイスB12は、受信した第1の暗号データを自身のメモリ12aに記憶している「第1の鍵データKA」と第1のスクランブルデータXを用いて複号部47で逆演算を行って復号して第1の復号データRa'を得る。
第2のデバイスB12は、制御部41で、第2の乱数Rbと、複号部47で逆演算を行って復号した第1の復号データRa'との間で所定の論理演算を行って第2の演算結果[Rb◆Ra']を得る。
さらに、説明を補足すると論理演算であるので交換の法則が成り立つので、[Rb◆Ra']=[Ra'◆Rb]の関係がある。
論理演算は、排他的OR演算、ビットシフト、ビット順の並び変え、特定ビットのデータ反転等を組み合わせて行うのが望ましい。
【0034】
(ステップS3)
第2のデバイスB12は、第2の暗号データを送信部44、I/F部45、伝送路14を介してホスト10に送信する。
第2のデバイスB12から伝送路14を介してホスト10に送信する第2の暗号データを第1のデバイスA11がI/F部35を介して受信部36により受信する。
【0035】
第1のデバイスA11は、受信した第2の暗号データをメモリ11aに記憶している「第1の鍵データKA」と第1のスクランブルデータXを用いて復号部37により逆演算を行って復号した第2の復号データRb'を得る。
第1のデバイスA11は、制御部31が、第1の乱数Raと、複号部37で逆演算を行って復号した第2の復号データRb'との間で所定の論理演算を行って第1の演算結果[Ra◆Rb']を得る。
【0036】
(ステップS4)
ホスト10が、相互認証させる第1、第2のデバイスアドレスを再度指定し、さらに、乱数データとして生成した第2のスクランブルデータYを附加して、第2の相互認証コマンド2をI/F部25を介して伝送路14に送信する。アドレスを指定されなかったデバイスは相互認証動作に参加せず待機する。
【0037】
第1のデバイスA11はホスト10が伝送路14に送信する第2の相互認証コマンド2をI/F部35を介して受信部36により受信する。
第2のデバイスB12はホスト10が伝送路14に送信する第2の相互認証コマンド2をI/F部45を介して受信部46により受信する。
第1のデバイスA11は、論理演算を行って得た第1の演算結果[Ra◆Rb']を、メモリ11aに記憶している「第2の鍵データKB」とホスト10から送られてきた第1、第2の相互認証コマンド1、2に附加されて来た第1、第2のスクランブルデータX、Yを用いて、暗号部33により暗号化して第3の暗号データを得る。
第2のデバイスB12は、論理演算を行って得た第2の演算結果[Rb◆Ra']を、メモリ12aに記憶している「第2の鍵データKB」とホスト10から送られてきた第1、第2の相互認証コマンド1、2に附加されて来た第1、第2のスクランブルデータX、Yを用いて、暗号部43により暗号化して第4の暗号データを得る。
【0038】
(ステップS5)
第1のデバイスA11は、第3の暗号データを送信部34、I/F部35、伝送路14を介してホスト10に送信する。
第2のデバイスB12は、第1のデバイスA11が伝送路14を介してホスト10に送信する第3の暗号データをI/F部45を介して受信部46により受信する。
第2のデバイスB12は、受信した第3の暗号データを自身のメモリ12aに記憶している「第2の鍵データKB」と第1、第2のスクランブルデータX、Yを用いて復号部37で逆演算を行って復号して第3の復号データ[Ra◆Rb']'を得る。
第2のデバイスB12は、第2の演算結果[Rb◆Ra']と第3の復号データ [Ra◆Rb']'との一致/不一致を検出する。
【0039】
(ステップS6)
第2のデバイスB12は、第2の演算結果[Rb◆Ra']と第3の復号データ [Ra◆Rb']'が一致している場合は、第4の暗号データを送信部34、I/F部35、伝送路14を介してホスト10に送信する。
さらに第2のデバイスB12は相互認証が成立したと判断し、第2のデバイスB12に対するアクセスに対する所定のアクセス制限を開放する。
第2のデバイスB12は、第2の演算結果[Rb◆Ra']と第3の復号データ [Ra◆Rb']'が一致していない場合は第3の乱数Rcを生成する。
また、第3の乱数Rc=第2の演算結果[Rb◆Ra']になった場合、あるいは、第3の乱数Rc=第3の復号データ[Ra◆Rb']'になった場合は、第3の乱数Rcを再度生成する。
第2のデバイスB12は、メモリ12aに記憶している「第2の鍵データKB」とホスト10から送られてきた第1、第2の相互認証コマンド1、2に附加されて送られて来た第1、第2のスクランブルデータX、Y用いて、第3の乱数Rcを暗号部43により暗号化して第5の暗号データを得る、そして、第5の暗号データを送信部44、I/F部45、伝送路14を介してホスト10に送信する。
この場合は、第2のデバイスB12は相互認証が成立しなかったと判断し、第2のデバイスB12に対するアクセスに対する所定のアクセス制限を開放しない。
【0040】
第1のデバイスA11は、第2のデバイスB12から送信部44、I/F部45伝送路14を介してホスト10に送信する、第4の暗号データ、あるいは第5の暗号データを、I/F部35を介して受信部36により受信している。
第1のデバイスA11は、受信した第4の暗号データ、あるいは第5の暗号データをメモリ11aに記憶している「第2の鍵データKB」と第1、第2のスクランブルデータX、Yを用いて復号部37で逆演算して復号して第4の復号データ [Rb◆Ra']'、あるいは、Rc'を得る。
第1のデバイスA11は、第4の復号データ[Rb'◆Ra]'、あるいはRc'と第1の演算結果[Ra◆Rb']との一致/不一致を判定し第1のデバイス側一致判定データTを得る。
【0041】
(ステップS7)
ホスト10が、第1のデバイスアドレスを指定しさらに、乱数データとして生成した第3のスクランブルデータZを附加して、相互認証の結果を問い合わせる第3の相互認証コマンド3をI/F部25を介して伝送路14に送信する。デバイスアドレスを指定されなかったデバイスは相互認証動作に参加せず待機する。
第1のデバイスA11は、ホスト10が伝送路14に送信する第3の相互認証コマンド3をI/F部35を介して受信部36により受信する。
【0042】
(ステップS8)
第1のデバイスA11は、ホスト10から送られてきた第1、第2、第3相互認証コマンド1,2,3に附加されて来た第1〜第3のスクランブルデータX、Y、Zを用いて第1のデバイス側一致判定データTをスクランブルして送信部34、I/F部35、伝送路14を介してホスト10に送信する。
ホスト10は、第1のデバイスA11がスクランブルして送信する第1のデバイス側一致判定データTを、I/F部25、受信部26を介して受信する。
【0043】
第1のデバイスA11は、第1のデバイス側一致判定データTが一致を示している場合は、相互認証が成立したと判断し、第1のデバイスA11へのアクセスに対し所定のアクセス制限を開放する。
また、第1のデバイスA11は、第1のデバイス側一致判定データTが一致を示していない場合は相互認証が成立しなかったと判断し、第1のデバイスA11へのアクセスに対する所定のアクセス制限を開放しない。
【0044】
ホスト10は、受信部26で受信したスクランブルされた第1のデバイス側一致判定データTを、認証結果判定部27に送る。
ホスト10は、認証結果判定部27でホスト10が送った第1〜第3スクランブルデータX、Y、Zを用いて第1のデバイス側一致判定データTを検出して制御部27に送る。この判定結果に応じて、第のデバイスA11と第2のデバイスB12の相互認証結果を判定し、ホスト10が第1のデバイスA11及び第2のデバイスB12の制限されたエリアにアクセスすることが可能になったか不可のままかを判断する。
【0045】
前述のようにして、第1のデバイスA11と第2のデバイスB12との間で相互認証することにより、ホスト10が第2のデバイスB12の真偽を認証するための演算処理を行うことなく、第2のデバイスB12が真のデバイスであることを確実に判定することができる。
【0046】
これにより、専用認証エンジンを具備する場合と比較してホスト10の開発コストの負担を軽減することができる。また、ホスト10の制御用CPUは既に開発済とか、過去の資産を引き継いでホスト10を使いたいユーザーの要求に応えることができる。さらに、ホスト10が「鍵データ」を持たないので、セキュリティ上の管理の煩わしさを不要にできる。さらに、第1のデバイスA11をバージョンアップすれば、ホスト10の制御CPUには負担をかけることなく、新しいセキュリティシステムに更新することができる等、種々の利点が得られる。
【符号の説明】
【0047】
10 ホスト
10a メモリ
11 第1のデバイスA
11a メモリ
12 第2のデバイスB
12a メモリ
13 第3のデバイスC
13aメモリ
14 伝送路
21 ホスト側の制御部
22 ホスト側のメモリ
23 ホスト側のコマンド生成部
24 ホスト側の送信部
25 ホスト側のI/F部
26 ホスト側の受信部
27 ホスト側の認証結果判定部
31,41 デバイス側の制御部
32、42 デバイス側のメモリ
33、43 デバイス側の暗号部
34、44 デバイス側の送信部
35、45 デバイス側のI/F部
36、46 デバイス側の受信部
37、47 デバイス側の復号部
S1〜S8 処理手順

【特許請求の範囲】
【請求項1】
伝送路を介して接続された複数のデバイスとホストとの間でデータの送受信を行い、前記複数のデバイスを前記ホストが順次認証する相互認証システムにおいて、
前記ホストにおいて、前記伝送路を介して接続された前記複数のデバイスのうち、相互認証させる第1のデバイスと第2のデバイスとを決定するデバイス決定手段と、
前記ホストにおいて、前記デバイス決定手段により決定された、第1及び第2のデバイスを指定して、相互認証を行うように命令する第1、第2のコマンドと、前記第1のデバイスから相互認証結果を読み出すように命令する第3のコマンドを生成するコマンド生成手段と、
前記ホストにおいて、前記コマンド生成手段により生成された、前記第1のコマンドを前記伝送路を介して前記第1、第2のデバイスに送信するホスト側送信手段と、
前記第1のデバイスにおいて、前記ホストが送信する、前記第1のコマンドを受信する第1のデバイス側受信手段と、
前記第2のデバイスにおいて、前記ホストが送信する、前記第1のコマンドを受信する第2のデバイス側受信手段と
前記第1のデバイスにおいて、第1の乱数データを生成する第1のデバイス側乱数データ生成手段と、
前記第2のデバイスにおいて、第2の乱数データを生成する第2のデバイス側乱数データ生成手段と、
前記第1のデバイスにおいて、前記第1のデバイス側受信手段により受信された前記第1のコマンドに応じて、前記第1の乱数データを、前記第1、第2のデバイスが共通に保持する第1の鍵データを用いて暗号化して、第1の暗号データを生成する第1のデバイス側暗号化手段と、
前記第2のデバイスにおいて、前記第2のデバイス側受信手段により受信された前記第1のコマンドに応じて、前記第2の乱数データを、前記第1の鍵データを用いて第2の暗号データを生成する第2のデバイス側暗号化手段と、
前記第1のデバイスにおいて、前記第1の暗号データを、前記伝送路を介して前記ホストに送信する第1のデバイス側送信手段と、
前記第2のデバイスにおいて、前記第1のデバイスが送信する、前記第1の暗号データを受信する第2のデバイス側受信手段と、
前記第2のデバイスにおいて、前記第2のデバイス側受信手段により受信した、前記第1の暗号データを、前記第1の鍵データを用いて、第1の復号結果を得る第2のデバイス側復号化手段と、
前記第2のデバイスにおいて、前記第2のデバイス側復号化手段により得た前記第1の復号結果と、前記第2の乱数データとの間で演算を行い、第2の演算結果を得る第2のデバイス側演算手段と、
前記第2のデバイスにおいて、前記第2のデバイス側暗号化手段により生成された、前記第2の暗号データを、前記伝送路を介して前記ホストに送信する第2のデバイス側送信手段と、
前記第1のデバイスにおいて、前記第2のデバイスが送信する、前記第2の暗号データを受信する第1のデバイス側受信手段と、
前記第1のデバイスにおいて、前記第1のデバイス側受信手段により受信した、前記第2の暗号データを、前記第1の鍵データを用いて復号し、第2の復号結果を得る第1のデバイス側復号化手段と、
前記第1のデバイスにおいて、前記第1のデバイス側復号化手段により得た、前記第2の復号結果と、前記第1の乱数データとの間で演算を行い、第1の演算結果を得る第1のデバイス側演算手段と、
前記ホストにおいて、前記コマンド生成手段により生成された、前記第2のコマンドを、前記伝送路を介して前記第1、第2のデバイスに送信するホスト側送信手段と、
前記第1のデバイスにおいて、前記ホストが送信する、前記第2のコマンドを受信する第1のデバイス側受信手段と、
前記第2のデバイスにおいて、前記ホストが送信する、前記第2のコマンドを受信する第2のデバイス側受信手段と、
前記第1のデバイスにおいて、前記第1のデバイス側受信手段により受信した、前記第2のコマンドに応じて前記第1の演算結果を、前記第1、第2のデバイスが共通に保持する第2の鍵データを用いて暗号化して、第3の暗号データを生成する第1のデバイス側暗号化手段と、
前記第2のデバイスにおいて、前記第2のデバイス側受信手段により受信した、前記第2のコマンドに応じて、前記第2の演算結果を、前記第2の鍵データにより暗号化して、第4の暗号データを生成する第2のデバイス側暗号化手段と、
前記第1のデバイスにおいて、前記第1のデバイス側受信手段により受信した、前記第2のコマンドに応じて、前記第3の暗号データを、前記伝送路を介して前記ホストに送信する第1のデバイス側送信手段と、
前記第2のデバイスにおいて、前記第1のデバイスが送信する、前記第3の暗号データを受信する第2のデバイス側受信手段と、
前記第2のデバイスにおいて、前記第2のデバイス側受信手段で受信した、前記第3の暗号データを、前記第2の鍵データを用いて復号して第3の復号結果を得る第2のデバイス側復号化手段と、
前記第2のデバイスにおいて、前記第3の復号結果と、前記第2の演算結果との一致/不一致を判定して、前記第1のデバイスを認証する第2のデバイス側認証手段と、
前記第2のデバイスにおいて、前記第2のデバイス側認証手段による判定結果が一致の場合は、前記第1のデバイスが認証されたと判断して、前記第4の暗号データを前記伝送路を介して前記ホストに送信し、
不一致の場合は、前記第1のデバイスは認証されなかったと判断して、前記第2の演算結果とは異なる第3の乱数データを、前記第2のデバイス側乱数データ生成手段で生成し、前記第3の乱数データを、前記第2の鍵データを用いて、前記第2のデバイス側受信手段で受信した前記第2のコマンドに応じて、前記第2のデバイス側暗号化手段で暗号化して第5の暗号データを生成し、前記伝送路を介して前記ホストに送信する第2のデバイス側認証結果送信手段と、
前記第1のデバイスにおいて、前記第2のデバイスが送信する、前記第4の暗号データあるいは、前記第5の暗号データを受信する第1のデバイス側受信手段と、
前記第1のデバイスにおいて、前記第1のデバイス側受信手段で受信した、前記第4の暗号データあるいは、前記第5の暗号データを、前記第2の鍵データを用いて復号して第4の復号結果を得る第1のデバイス側復号化手段と、
前記第1のデバイスにおいて、前記第4の復号結果と、前記第1の演算結果との一致/不一致を判定する第1のデバイス側一致判定手段と、
前記ホストにおいて、前記コマンド生成手段により生成された、前記第3のコマンドを前記伝送路を介して前記第1のデバイスに送信するホスト側送信手段と、
前記第1のデバイスにおいて、前記ホストが送信する前記第3のコマンドを受信する第1のデバイス側受信手段と、
前記第1のデバイスにおいて、前記第1のデバイス側受信手段で受信した、前記第3のコマンドに応じて、前記第1のデバイス側一致判定段で判定した結果を、前記伝送路を介して前記ホストに送信する第1のデバイス側一致判定結果送信手段と、
前記ホストにおいて、前記第1のデバイスから送信された、前記第1のデバイス側一致判定手段での判定結果を受信するホスト側受信手段と、
第1のデバイスにおいて、前記第1のデバイス側一致判定手段で判定した結果により、前記第2のデバイスとの相互認証結果を判定する第1のデバイス側相互認証手段と、
前記ホストにおいて、前記ホスト側受信手段により受信された、前記第1のデバイス側一致判定手段での判定結果に基づいて、前記第1及び第2のデバイスの相互認証結果を判定する認証結果判定手段とを有することを特徴とする相互認証システム。
【請求項2】
前記第1のデバイスは予め認証されたデバイスであることを特徴とする請求項1に記載の相互認証システム。
【請求項3】
前記伝送路はI2C(Inter-Integrated Circuit)伝送線であることを特徴とする請求項1または2に記載の相互認証システム。
【請求項4】
伝送路を介して接続された複数のデバイスとホストとの間でデータの送受信を行い、前記複数のデバイスを前記ホストが順次認証する相互認証方法であって、
前記伝送路を介して接続された前記複数のデバイスのうち、相互認証させる第1のデバイスと第2のデバイスとを、前記デバイス決定手段により決定するデバイス決定工程と、
前記ホストにおいて、前記デバイス決定工程で決定した、前記第1、第2のデバイスを指定して、相互認証を行うように命令する、前記第1、第2のコマンドと、前記第1のデバイスから相互認証結果を読み出すように命令する、前記第3のコマンドを、前記コマンド生成手段で生成するコマンド生成工程と、
前記ホストにおいて、前記コマンド生成工程で生成した、前記第1のコマンドを、前記ホスト側送信手段で、前記伝送路を介して前記第1、第2のデバイスとに送信するホスト側送信工程と、
前記第1のデバイスにおいて、前記ホスト側送信工程にて、前記ホストが送信する、前記第1のコマンドを、前記第1のデバイス側受信手段で受信する第1のデバイス側受信工程と、
前記第2のデバイスにおいて、前記ホスト側送信工程にて、前記ホストが送信する、前記第1のコマンドを、前記第2のデバイス側受信手段で受信する第2のデバイス側受信工程と、
前記第1のデバイスにおいて、前記第1の乱数データを、前記第1のデバイス側乱数データ生成手段で生成する第1のデバイス側乱数データ生成工程と、
前記第2のデバイスにおいて、前記第2の乱数データを、前記第2のデバイス側乱数データ生成手段で生成する第2のデバイス側乱数データ生成工程と、
前記第1のデバイスにおいて、前記第1のデバイス側受信工程にて受信した、前記第1のコマンドに応じて、前記第1の乱数データを、前記第1、第2のデバイスが共通に保持する、前記第1の鍵データを用いて、前記第1のデバイス側暗号化手段で、前記第1の暗号データを生成する第1のデバイス側暗号化工程と、
前記第2のデバイスにおいて、前記第2のデバイス側受信工程にて受信した、前記第1のコマンドに応じて、前記第2の乱数データを、前記第1の鍵データを用いて、前記第2のデバイス側暗号化手段で、前記第2の暗号データを生成する第2のデバイス側暗号化工程と、
前記第1のデバイスにおいて、前記第1の暗号データを、前記第1のデバイス側送信手段で、前記伝送路を介して前記ホストに送信する第1のデバイス側送信工程と、
前記第2のデバイスにおいて、前記第1のデバイス側送信工程にて前記第1のデバイスが送信する、前記第1の暗号データを、前記第2のデバイス側受信手段で受信する第2のデバイス側受信工程と、
前記第2のデバイスにおいて、前記第2のデバイス側受信工程にて受信した、前記第1の暗号データを、前記第1の鍵データを用いて、前記第2のデバイス側復号化手段で前記第1の復号結果を得る第2のデバイス側復号化工程と、
前記第2のデバイスにおいて、前記第2のデバイス側復号化工程で得た、前記第1の復号結果と、前記第2の乱数データとの間で、前記第2のデバイス側演算手段で演算を行い、前記第2の演算結果を得る第2のデバイス側演算工程と、
前記第2のデバイスにおいて、前記第2の暗号データを、前記第2のデバイス側送信手段で、前記伝送路を介して前記ホストに送信する第2のデバイス側送信工程と、
前記第1のデバイスにおいて、前記第2のデバイス側送信工程にて、前記第2のデバイスが送信する、前記第2の暗号データを、前記第1のデバイス側受信手段で受信する第1のデバイス側受信工程と、
前記第1のデバイスにおいて、前記第1のデバイス側受信工程にて受信した、前記第2の暗号データを、前記第1の鍵データを用いて、前記第1のデバイス側復号化手段で復号し、前記第2の復号結果を得る第1のデバイス側復号化工程と、
前記第1のデバイスにおいて、前記第1のデバイス側復号化工程にて得た、前記第2の復号結果と、前記第1の乱数データとの間で、前記第1のデバイス側演算手段で演算を行い、前記第1の演算結果を得る第1のデバイス側演算工程と、
ホストにおいて、前記コマンド生成工程で生成した、前記第2のコマンドを、前記ホスト側送信手段で、前記伝送路を介して前記第1、第2のデバイスに送信するホスト側送信工程と、
前記第1のデバイスにおいて、前記ホスト側送信工程にて、前記ホストが送信する、前記第2のコマンドを、前記第1のデバイス側受信手段で受信する第1のデバイス側受信工程と、
前記第2のデバイスにおいて、前記ホスト側送信工程にて、前記ホストが送信する、前記第2のコマンドを、前記第2のデバイス側受信手段で受信する第2のデバイス側受信工程と、
前記第1のデバイスにおいて、前記第1のデバイス側受信工程にて受信した、前記第2のコマンドに応じて、前記第1の演算結果を、前記第1、第2のデバイスが共通に保持する、前記第2の鍵データを用いて、前記第1のデバイス側暗号化手段にて、前記第3の暗号データを生成する第1のデバイス側暗号化工程と、
前記第2のデバイスにおいて、前記第2のデバイス側受信工程にて受信した、前記第2のコマンドに応じて、前記第2の演算結果を、前記第2の鍵データにより、前記第2のデバイス側暗号化手段で暗号化して、前記第4の暗号データを生成する第2のデバイス側暗号化工程と、
前記第1のデバイスにおいて、前記第1のデバイス側暗号化工程にて生成された、前記第3の暗号データを、前記第1のデバイス側送信手段で、前記伝送路を介して前記ホストに送信する第1のデバイス側送信工程と、
前記第2のデバイスにおいて、前記第1のデバイス側送信工程にて、前記第1のデバイスが送信する、前記第3の暗号データを、前記第2のデバイス側受信手段で受信する第2のデバイス側受信工程と、
前記第2のデバイスにおいて、前記第2のデバイス側受信工程にて受信した第3の暗号データを、前記第2の鍵データを用いて、前記第2のデバイス側復号化手段にて復号して前記第3の復号結果を得る第2のデバイス側復号化工程と、
前記第2のデバイスにおいて、前記第2のデバイス側復号化工程で得た、前記第3の復号結果と、前記第2の演算結果の一致/不一致を、前記第2のデバイス側認証手段で判定して、前記第1のデバイスを認証する第2のデバイス側認証工程と、
前記第2のデバイスにおいて、前記第2のデバイス側認証工程での、前記第2のデバイス側認証手段による判定結果が一致の場合は、前記第1のデバイスが認証されたと判断して、前記第4の暗号データを前記伝送路を介して前記ホストに送信し、
不一致の場合は、前記第1のデバイスは認証されなかったと判断して、前記第2の演算結果とは異なる前記第3の乱数データを、前記第2のデバイス側乱数データ生成手段で生成し、前記第3の乱数データを、前記第2の鍵データを用いて、前記第2のデバイス側受信工程にて受信した前記第2のコマンドに応じて、前記第2のデバイス側暗号化手段で、前記第5の暗号データを生成して、前記第2のデバイス側認証結果送信手段により、前記伝送路を介して前記ホストに送信する第2のデバイス側認証結果送信工程と、
前記第1のデバイスにおいて、前記第2のデバイス側認証結果送信工程にて、前記第2のデバイスが生成して、前記伝送路を介して前記ホストに送信する、前記第4の暗号データあるいは、前記第5の暗号データを、前記第1のデバイス側受信手段で受信する第1のデバイス側受信工程と、
前記第1のデバイスにおいて、前記第1のデバイス側受信工程で受信した、前記第4の暗号データあるいは前記第5の暗号データを、前記第2の鍵データを用いて、前記第1のデバイス側復号化手段で復号して、前記第4の復号結果を得る第1のデバイス側復号化工程と、
前記第1のデバイスにおいて、前記第1のデバイス側復号化工程にて得た、前記第4の復号結果と、前記第1の演算結果との一致/不一致を、前記第1のデバイス側相互認証手段で判定する第1のデバイス側一致判定工程と、
前記ホストにおいて、前記コマンド生成工程で生成した、前記第3のコマンドを、前記ホスト側送信手段で、前記伝送路を介して前記第1のデバイスに送信するホスト側送信工程と、
前記第1のデバイスにおいて、前記ホスト側送信工程にて前記ホストが送信する、前記第3のコマンドを、前記第1のデバイス側受信手段で受信する第1のデバイス側受信工程と、
前記第1のデバイスにおいて、前記第1のデバイス側受信工程にて受信した、前記第3のコマンドに応じて、前記第1のデバイス側一致判定手段での判定結果を、前記第1のデバイス側一致結果送信手段で、前記伝送路を介して前記ホストに送信する第1のデバイス側一致判定結果送信工程と、
前記ホストにおいて、前記第1のデバイス側一致判定結果送信工程にて、前記第1のデバイスから送信される、前記第1のデバイス側一致判定手段での判定結果を、前記ホスト側受信手段で受信するホスト側受信工程と、
前記第1のデバイスにおいて、前記第1のデバイス側一致判定手段での判定結果により、前記第2のデバイスとの相互認証結果を判定する第1のデバイス側相互認証結果工程と、
前記ホストにおいて、前記ホスト側受信工程にて受信された前記第1のデバイス側一致判定手段での判定結果に基づいて、前記第1、第2のデバイスの相互認証結果を前記認証結果判定手段で判定する認証結果判定工程とを有し、
前記ホストから送信された第1、第2のコマンドにより第1、第2のデバイスに指定されなかったデバイスは、相互認証動作に参加せず待機していることを特徴とする相互認証方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate


【公開番号】特開2013−73257(P2013−73257A)
【公開日】平成25年4月22日(2013.4.22)
【国際特許分類】
【出願番号】特願2011−209605(P2011−209605)
【出願日】平成23年9月26日(2011.9.26)
【出願人】(511167124)
【Fターム(参考)】