(57)【要約】  認証を短時間で行うことができる相互認証方法及び通信システムを提供する。  相互認証方法は、共通鍵を有する第１通信機と第２通信機とを含み、前記第１通信機及び前記第２通信機が通信回数を表す第１カウント値及び第２カウント値をそれぞれ保持する通信システムにおける相互認証方法であって、前記第１通信機は、前記共通鍵で前記第１カウント値を暗号化して第１暗号値を生成し、前記第１暗号値と、前記第１カウント値の少なくとも一部分を含む第１数値とを前記第２通信機に送信し、前記第２通信機は、前記第１暗号値及び前記第１数値を受信すると、前記共通鍵で前記第１暗号値を復号化し、前記復号化で得る第１復号値と前記第１数値との一致性を判定し、前記一致性が成立する場合に、前記第１復号値が前記第２カウント値と等しいか、又は、前記第２カウント値よりも進んでいれば、第１通信機の認証が成立したと判定する。
2020044624.tif 000002
【特許請求の範囲】
【請求項１】
共通鍵を有する第１通信機と第２通信機とを含み、前記第１通信機及び前記第２通信機が通信回数を表す第１カウント値及び第２カウント値をそれぞれ保持する通信システムにおける相互認証方法であって、
前記第１通信機は、
前記共通鍵で前記第１カウント値を暗号化して第１暗号値を生成し、
前記第１暗号値と、前記第１カウント値の少なくとも一部分を含む第１数値とを前記第２通信機に送信し、
前記第２通信機は、
前記第１暗号値及び前記第１数値を受信すると、前記共通鍵で前記第１暗号値を復号化し、
前記復号化で得る第１復号値と前記第１数値との一致性を判定し、
前記一致性が成立する場合に、前記第１復号値が前記第２カウント値と等しいか、又は、前記第２カウント値よりも進んでいれば、第１通信機の認証が成立したと判定する、相互認証方法。
【請求項２】
前記第２通信機は、前記第１復号値が前記第２カウント値と等しいか、又は、前記第２カウント値よりも進んでいて前記第２カウント値との差が所定数以下であれば、第１通信機の認証が成立したと判定する、請求項１記載の相互認証方法。
【請求項３】
前記第２通信機は、前記認証が成立すると、前記第１復号値を前記第２カウント値として設定する、請求項１又は２記載の相互認証方法。
【請求項４】
前記第２通信機は、
前記第２カウント値をインクリメントし、
前記インクリメントした第２カウント値を前記共通鍵で暗号化して第２暗号値を生成し、
前記第２暗号値を前記第１通信機に送信する、請求項３記載の相互認証方法。
【請求項５】
前記第１通信機は、
前記第２通信機から前記第２暗号値を受信すると前記第１カウント値をインクリメントし、
前記第１通信機から受信した第２暗号値を前記共通鍵で復号して得る復号値が前記インクリメントした第１カウント値と一致するか判定し、
一致する場合に、前記第２通信機の認証が成立したと判定する、請求項４記載の相互認証方法。
【請求項６】
共通鍵を有する第１通信機と第２通信機とを含み、前記第１通信機及び前記第２通信機が通信回数を表す第１カウント値及び第２カウント値をそれぞれ保持する通信システムにおける相互認証方法であって、
前記第１通信機は、
前記共通鍵で前記第１カウント値を復号化して第１復号値を生成し、
前記第１復号値と、前記第１カウント値の少なくとも一部分を含む第１数値とを前記第２通信機に送信し、
前記第２通信機は、
前記第１復号値及び前記第１数値を受信すると、前記共通鍵で前記第１復号値を暗号化し、
前記暗号化で得る第１暗号値と前記第１数値との一致性を判定し、
前記一致性が成立する場合に、前記第１暗号値が前記第２カウント値と等しいか、又は、前記第２カウント値よりも進んでいれば、第１通信機の認証が成立したと判定する、相互認証方法。
【請求項７】
前記第２通信機は、前記第１暗号値が前記第２カウント値と等しいか、又は、前記第２カウント値よりも進んでいて前記第２カウント値との差が所定数以下であれば、第１通信機の認証が成立したと判定する、請求項６記載の相互認証方法。
【請求項８】
前記第２通信機は、前記認証が成立すると、前記第１暗号値を前記第２カウント値として設定する、請求項６又は７記載の相互認証方法。
【請求項９】
前記第２通信機は、
前記第２カウント値をインクリメントし、
前記インクリメントした第２カウント値を前記共通鍵で暗号化して第２暗号値を生成し、
前記第２暗号値を前記第１通信機に送信する、請求項８記載の相互認証方法。
【請求項１０】
前記第１通信機は、
前記第２通信機から前記第２暗号値を受信すると前記第１カウント値をインクリメントし、
前記第１通信機から受信した第２暗号値を前記共通鍵で復号して得る復号値が前記インクリメントした第１カウント値と一致するか判定し、
一致する場合に、前記第２通信機の認証が成立したと判定する、請求項９記載の相互認証方法。
【請求項１１】
前記第２通信機は、
センサをさらに有し、
前記第２カウント値をインクリメントし、
前記インクリメントした第２カウント値を前記共通鍵で暗号化して第２暗号値を生成し、
前記センサの検出値と前記第２暗号値との排他的論理和を表す暗号検出値を生成し、
前記暗号検出値を前記インクリメントした第２カウント値で暗号化して第３暗号値を生成し、
前記暗号検出値と、前記第３暗号値の少なくとも一部分を含む第３数値とを前記第１通信機に送信する、請求項３又は９記載の相互認証方法。
【請求項１２】
前記第１通信機は、
前記第２通信機から前記暗号検出値と第３数値とを受信すると前記第１カウント値をインクリメントし、
前記第２通信機から受信した暗号検出値と、前記インクリメントした第１カウント値を前記共通鍵で暗号化した第４暗号値との排他的論理和を取ることによって前記暗号検出値から検出値を取り出し、
前記取り出した検出値を前記インクリメントした第１カウント値で暗号化して第５暗号値を生成し、
前記第２通信機から受信した第３数値と前記第５暗号値とが一致するか判定し、
一致する場合に、前記第２通信機の認証が成立したと判定する、請求項１１記載の相互認証方法。
【請求項１３】
第１通信機と第２通信機とを含み、前記第１通信機及び前記第２通信機が共通鍵を有する通信システムであって、
前記第１通信機は、
通信回数を表す第１カウント値をカウントする第１カウンタと、
前記共通鍵で前記第１カウント値を暗号化して第１暗号値を生成する暗号部と、
前記第１暗号値と、前記第１カウント値の少なくとも一部分を含む第１数値とを前記第２通信機に送信する第１通信部と
を有し、
前記第２通信機は、
通信回数を表す第２カウント値をカウントする第２カウンタと、
前記第１暗号値及び前記第１数値を前記第１通信機から受信する第２通信部と、
前記第２通信部が前記第１暗号値及び前記第１数値を受信すると、前記共通鍵で前記第１暗号値を復号化する復号部と、
前記復号化で得る第１復号値と前記第１数値との一致性を判定し、前記一致性が成立する場合に、前記第１復号値が前記第２カウント値と等しいか、又は、前記第２カウント値よりも進んでいれば、第１通信機の認証が成立したと判定する認証部と
を有する、通信システム。
【請求項１４】
第１通信機と第２通信機とを含み、前記第１通信機及び前記第２通信機が共通鍵を有する通信システムであって、
前記第１通信機は、
通信回数を表す第１カウント値をカウントする第１カウンタと、
前記共通鍵で前記第１カウント値を復号化して第１復号値を生成する復号部と、
前記第１復号値と、前記第１カウント値の少なくとも一部分を含む第１数値とを前記第２通信機に送信する第１通信部と
を有し、
前記第２通信機は、
通信回数を表す第２カウント値をカウントする第２カウンタと、
前記第１復号値及び前記第１数値を前記第１通信機から受信する第２通信部と、
前記第２通信部が前記第１復号値及び前記第１数値を受信すると、前記共通鍵で前記第１復号値を暗号化する暗号部と、
前記暗号化で得る第１暗号値と前記第１数値との一致性を判定し、前記一致性が成立する場合に、前記第１暗号値が前記第２カウント値と等しいか、又は、前記第２カウント値よりも進んでいれば、第１通信機の認証が成立したと判定する認証部と
を有する、通信システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、相互認証方法及び通信システムに関する。
【背景技術】
【０００２】
従来より、通信路で接続された第１機器と第２機器とからなる通信システムにおいて相手が正当な機器であることを認証するための機器認証システムであって、前記第１機器は、前記第２機器の正当性を検証するための複数の検証関数を予め記憶している検証関数記憶手段と、第１チャレンジデータを生成し第２機器に送信する第１チャレンジデータ送信手段と、前記第１チャレンジデータに対応する第１レスポンスデータを前記第２機器から受信する第１レスポンスデータ受信手段と、前記第１チャレンジデータと前記第１レスポンスデータとが前記複数の検証関数のいずれかによって関連づけられるか否かを検証する第１検証手段と、前記第１検証手段が肯定的に検証した場合に前記第２機器の正当性を認証する第１認証手段とを備え、第２機器は、前記複数の検証関数それぞれに対応する複数の証明関数であって、自己の正当性を証明するためのものを予め記憶している証明関数記憶手段と、前記第１機器が送信した第１チャレンジデータを受信する第１チャレンジデータ受信手段と、前記複数の証明関数から１つを選択する証明関数選択手段と、前記証明関数選択手段が選択した証明関数に基づいて、前記第１チャレンジデータから第１レスポンスデータを生成し第１機器に送信する第１レスポンスデータ送信手段とを備えることを特徴とする機器認証システムがある。第２機器が第２機器の正当性を検証するには、上述とは逆の動作を行う（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平１０−２２４３４３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、従来の機器認証システムにおける正当性の検証方法(認証方法)では、第１機器と第２機器が互いに認証するには二往復のデータ通信が必要であるため、認証にかかる通信時間が長いという課題がある。【０００５】
そこで、認証を短時間で行うことができる相互認証方法及び通信システムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明の実施の形態の相互認証方法は、共通鍵を有する第１通信機と第２通信機とを含み、前記第１通信機及び前記第２通信機が通信回数を表す第１カウント値及び第２カウント値をそれぞれ保持する通信システムにおける相互認証方法であって、前記第１通信機は、前記共通鍵で前記第１カウント値を暗号化して第１暗号値を生成し、前記第１暗号値と、前記第１カウント値の少なくとも一部分を含む第１数値とを前記第２通信機に送信し、前記第２通信機は、前記第１暗号値及び前記第１数値を受信すると、前記共通鍵で前記第１暗号値を復号化し、前記復号化で得る第１復号値と前記第１数値との一致性を判定し、前記一致性が成立する場合に、前記第１復号値が前記第２カウント値と等しいか、又は、前記第２カウント値よりも進んでいれば、第１通信機の認証が成立したと判定する。
【発明の効果】
【０００７】
認証を短時間で行うことができる相互認証方法及び通信システムを提供することができる。
【図面の簡単な説明】
【０００８】
【図１】相互認証方法を実行する通信システム１０を示す図である。
【図２】Ｒ／Ｗ５０及びＲＦＩＤタグ１００が行う認証処理を示すタスク図である。
【図３】Ｒ／Ｗ５０が実行する相互認証処理を表すフローチャートを示す図である。
【図４】ＲＦＩＤタグ１００が実行する相互認証処理を表すフローチャートを示す図である。
【図５】変形例におけるＲ／Ｗ５０及びＲＦＩＤタグ１００が行う認証処理を示すタスク図である。
【図６】変形例におけるＲ／Ｗ５０及びＲＦＩＤタグ１００が行う認証処理を示すタスク図である。
【図７】変形例におけるＲ／Ｗ５０及びＲＦＩＤタグ１００が行う認証処理を示すタスク図である。
【発明を実施するための形態】
【０００９】
以下、本発明の相互認証方法及び通信システムを適用した実施の形態について説明する。
【００１０】
＜実施の形態＞
図１は、相互認証方法を実行する通信システム１０を示す図である。通信システム１０は、Ｒ／Ｗ（リーダライタ）５０とＲＦＩＤタグ１００を含む。Ｒ／Ｗ５０は、第１通信機の一例であり、ＲＦＩＤタグ１００は、第２通信機の一例である。ＲＦＩＤタグ１００には、センサ３０が接続されている。
【００１１】
以下では、Ｒ／Ｗ５０とＲＦＩＤタグ１００が１個ずつ存在する形態について説明するが、１個のＲ／Ｗ５０が複数のＲＦＩＤタグ１００と通信を行う形態であってよい。
【００１２】
また、一例として、センサ３０が応力センサである場合には、ＲＦＩＤタグ１００は、橋梁や斜面等に設置され、センサ３０が検出する応力を表すデータを暗号化してＲ／Ｗ５０に送信する。Ｒ／Ｗ５０は、センサ３０の検出値を取得することができる。なお、このような用途は一例であり、様々な種類のセンサをセンサ３０として用いることにより、ＲＦＩＤタグ１００を介してＲ／Ｗ５０で様々な検出値を取得することができる。
【００１３】
Ｒ／Ｗ５０は、制御装置６０、アンテナ７０、及びメモリ８０を有する。
【００１４】
制御装置６０は、ＣＰＵ(Central Processing Unit)、ＲＡＭ(Random Access Memory)、ＲＯＭ(Read Only Memory)、ＨＤＤ(Hard Disk Drive)、入出力インターフェース、及び内部バス等を含むコンピュータによって実現される。
【００１５】
制御装置６０は、主制御部６１、暗号部６２、認証部６４、論理演算部６５、及び通信部６６を有する。制御部６１、暗号部６２、認証部６４、論理演算部６５、及び通信部６６は、制御装置６０が実行するプログラムの機能（ファンクション）を機能ブロックとして示したものである。また、メモリ８０は、制御装置６０のメモリを機能的に表したものである。
【００１６】
主制御部６１は、制御装置６０の処理を統括する制御部であり、暗号部６２、認証部６４、論理演算部６５、及び通信部６６が行う処理以外の処理を実行する。主制御部６１は、例えば、カウンタの機能を有し、Ｒ／Ｗ５０が通信を行う度に、通信回数を表すカウント値をインクリメントする。また、主制御部６１は、ＲＦＩＤタグ１００にカウント値や暗号等のデータを送信する処理を通信部６６に行わせる。また、主制御部６１は、ＲＦＩＤタグ１００からカウント値や暗号等のデータを受信する処理を通信部６６に行わせ、受信したデータを暗号部６２に伝送する。主制御部６１がカウントするカウント値は、第１カウント値の一例である。
【００１７】
暗号部６２は、ＲＦＩＤタグ１００に送信するデータ等を暗号化する。暗号部６２は、一例として、Present 80 Encryption によるデータの暗号化処理を行う。Present 80 Encryptionは、共通鍵を使った暗号化手法である。
【００１８】
認証部６４は、ＲＦＩＤタグ１００から受信する暗号やカウント値等に基づいて、ＲＦＩＤタグ１００の認証処理を行う。認証処理の詳細については、図２を用いて後述する。
【００１９】
論理演算部６５は、ＲＦＩＤタグ１００から受信する暗号値と、暗号部６２が生成する暗号値との排他的論理和（ＥＸＯＲ）を演算する。この処理の詳細については図２を用いて後述する。
【００２０】
通信部６６は、ＲＦＩＤタグ１００との通信用のアンテナ７０が接続されている。通信部６６は、主制御部６１からの指令に従って、ＲＦＩＤタグ１００にデータを送信する処理と、ＲＦＩＤタグ１００からデータを受信する処理とを行う。
【００２１】
アンテナ７０は、ＲＦＩＤタグ１００と無線通信を行えるアンテナであればよい。アンテナ７０は、通信部６６に接続されており、ＲＦＩＤタグ１００に送信するデータ等を含む信号を放射し、ＲＦＩＤタグ１００から返信されるデータ等を含む信号を受信する。
【００２２】
メモリ８０は、Ｒ／Ｗ５０が認証処理を行うために必要なプログラムやデータ等を格納する。また、メモリ８０は、主制御部６１がカウントするカウント値を一時的に保持する。また、メモリ８０は、Ｒ／Ｗ５０及びＲＦＩＤタグ１００が暗号化や複合化等に用いる共通鍵を格納する。
【００２３】
ＲＦＩＤタグ１００は、制御装置１１０、アンテナ１２０、及びメモリ１３０を有する。ＲＦＩＤタグ１００は、一例として、Ｒ／Ｗ５０から送信される信号をアンテナ１２０で受信すると、受信した電力で作動し、演算処理等を行って、Ｒ／Ｗ５０にデータを送信（返信）する。
【００２４】
制御装置１１０は、ＩＣ(Integrated Circuit)チップによって実現される。
【００２５】
制御装置１１０は、主制御部１１１、暗号部１１２、復号部１１３、認証部１１４、論理演算部１１５、及び通信部１１６を有する。主制御部１１１、暗号部１１２、復号部１１３、認証部１１４、論理演算部１１５、及び通信部１１６は、制御装置１１０が実行するプログラムの機能（ファンクション）を機能ブロックとして示したものである。また、メモリ１３０は、制御装置１１０のメモリを機能的に表したものである。
【００２６】
主制御部１１１は、制御装置１１０の処理を統括する制御部であり、暗号部１１２、復号部１１３、認証部１１４、論理演算部１１５、及び通信部１１６が行う処理以外の処理を実行する。主制御部１１１は、例えば、カウンタの機能を有し、ＲＦＩＤタグ１００が通信を行う度に、通信回数を表すカウント値をインクリメントする。また、主制御部１１１は、Ｒ／Ｗ５０にカウント値や暗号等のデータを送信する処理を通信部１１６に行わせる。また、主制御部１１１は、Ｒ／Ｗ５０からカウント値や暗号等のデータを受信する処理を通信部１１６に行わせ、受信したデータを暗号部１１２、復号部１１３に伝送する。主制御部１１１がカウントするカウント値は、第１カウント値の一例である。
【００２７】
暗号部１１２は、Ｒ／Ｗ５０に送信するデータ等を暗号化する。暗号部１１２は、一例として、Present 80 Encryption によるデータの暗号化処理を行う。
【００２８】
復号部１１３は、Ｒ／Ｗ５０から受信するデータ等を復号化する。復号部１１３は、一例として、Present 80 Decryption によるデータの復号化処理を行う。Present 80 Decryptionは、共通鍵を使った復号化手法である。
【００２９】
認証部１１４は、Ｒ／Ｗ５０から受信する暗号やカウント値等に基づいて、Ｒ／Ｗ５０の認証処理を行う。認証処理の詳細については、図２を用いて後述する。
【００３０】
論理演算部１１５は、センサ３０の検出値と、暗号部１１２が生成する暗号値との排他的論理和（ＥＸＯＲ）を演算する。この処理の詳細については図２を用いて後述する。
【００３１】
通信部１１６は、Ｒ／Ｗ５０との通信用のアンテナ１２０が接続されている。通信部１１６は、主制御部１１１からの指令に従って、Ｒ／Ｗ５０にデータを送信する処理と、Ｒ／Ｗ５０からデータを受信する処理とを行う。
【００３２】
アンテナ１２０は、Ｒ／Ｗ５０と無線通信を行えるアンテナであればよい。アンテナ１２０は、通信部１１６に接続されており、Ｒ／Ｗ５０から送信されるデータ等を含む信号を受信し、Ｒ／Ｗ５０に返信するデータ等を含む信号を放射する。
【００３３】
メモリ１３０は、ＲＦＩＤタグ１００が認証処理を行うために必要なプログラムやデータ等を格納する。また、メモリ１３０は、主制御部１１１がカウントするカウント値を一時的に保持する。また、メモリ１３０は、Ｒ／Ｗ５０及びＲＦＩＤタグ１００が暗号化や複合化等に用いる共通鍵を格納する。
【００３４】
ここで、Ｒ／Ｗ５０のカウント値は、ＲＦＩＤタグ１００のカウント値以上である。Ｒ／Ｗ５０及びＲＦＩＤタグ１００は、Ｒ／Ｗ５０及びＲＦＩＤタグ１００の間で通信を行う度に、カウント値をインクリメントする。このため、Ｒ／Ｗ５０及びＲＦＩＤタグ１００の間の通信が異常がなく、Ｒ／Ｗ５０及びＲＦＩＤタグ１００が送信／受信を毎回正常に行えている場合には、Ｒ／Ｗ５０及びＲＦＩＤタグ１００のカウント値は等しくなる。異常とは、例えば、Ｒ／Ｗ５０が信号を送信しても、ノイズ等によってＲＦＩＤタグ１００が受信できないような状態である。
【００３５】
ところで、通信に異常が生じると、ＲＦＩＤタグ１００はＲ／Ｗ５０から送信された信号がＲ／Ｗ５０から送信されたことを認識できない状況が生じる。
【００３６】
この場合には、Ｒ／Ｗ５０のカウント値はインクリメントされるが、ＲＦＩＤタグ１００のカウント値はインクリメントされない。このため、Ｒ／Ｗ５０のカウント値は、ＲＦＩＤタグ１００のカウント値よりも進む（多くなる）ことが有り得る。
【００３７】
通信システム１０では、Ｒ／Ｗ５０及びＲＦＩＤタグ１００のカウント値を認証に利用する。ＲＦＩＤタグ１００がＲ／Ｗ５０を認証する際に、Ｒ／Ｗ５０のカウント値がＲＦＩＤタグ１００のカウント値以上であることが認証成立の１つの条件である。
【００３８】
ただし、Ｒ／Ｗ５０のカウント値がＲＦＩＤタグ１００のカウント値よりもあまりにも多い場合には、正常に完了しなかった通信の回数が多いことになる。
【００３９】
このため、Ｒ／Ｗ５０のカウント値がＲＦＩＤタグ１００のカウント値よりも進んでいる場合には、Ｒ／Ｗ５０のカウント値と、ＲＦＩＤタグ１００のカウント値との差が所定値以下である場合に、認証を成立させることとする。なお、所定値は、一例として５０である。
【００４０】
なお、ＲＦＩＤタグ１００が、本来信号を受信する対象ではないリーダライタ（Ｒ／Ｗ５０とは別の同様のリーダライタ）が送信した信号を受信すると、本来信号を受信する対象であるＲ／Ｗ５０のカウント値よりもＲＦＩＤタグ１００のカウント値が進む場合が有り得る。このため、ＲＦＩＤタグ１００のカウント値がＲ／Ｗ５０のカウント値よりも進んでいる場合には、認証は不成立となる。
【００４１】
図２は、Ｒ／Ｗ５０及びＲＦＩＤタグ１００が行う認証処理を示すタスク図である。
【００４２】
まず、初期状態において、Ｒ／Ｗ５０のカウント値が６４ビットのＭ（６４ｂｉｔ）であることとする。Ｒ／Ｗ５０の制御部６１はカウント値をインクリメントしＭ＋１（６４ｂｉｔ）とする。Ｒ／Ｗ５０の暗号部６２は、共通鍵を用いてインクリメントしたカウント値Ｍ＋１（６４ｂｉｔ）を暗号化して、暗号値１（６４ｂｉｔ）を生成する。
【００４３】
そして、Ｒ／Ｗ５０は、暗号値１（６４ｂｉｔ）と、カウント値Ｍ＋１（６４ｂｉｔ）のうちの下位１６ビットであるカウント値Ｍ＋１（下位１６ｂｉｔ）とをＲＦＩＤタグ１００に送信する。
【００４４】
なお、暗号値１（６４ｂｉｔ）は、第１暗号値の一例であり、カウント値Ｍ＋１（下位１６ｂｉｔ）は、第１数値の一例である。また、カウント値Ｍ＋１（６４ｂｉｔ）のうちの下位１６ビット（カウント値Ｍ＋１（下位１６ｂｉｔ））のみをＲＦＩＤタグ１００に送信することにより、通信データ容量を小さくすることができる。
【００４５】
ＲＦＩＤタグ１００が暗号値１（６４ｂｉｔ）及びカウント値Ｍ＋１（下位１６ｂｉｔ）を受信すると、復号部１１３は、共通鍵で暗号値１（６４ｂｉｔ）を復号化し、認証部１１４は、復号化で得るカウント値Ｍ＋１（６４ｂｉｔ）の下位１６ビットと、受信したカウント値Ｍ＋１（下位１６ｂｉｔ）とを比較し、一致性を判定する。ここで、復号化で得るカウント値Ｍ＋１（６４ｂｉｔ）は、第１復号値の一例である。
【００４６】
復号化で得るカウント値Ｍ＋１（６４ｂｉｔ）のすべてのビット（６４ビット）を比較しなくても、下位１６ビット同士の比較で十分であるため、下位１６ビット同士のみを比較するようにしている。また、これにより、通信データ容量を小さくすることができる。
【００４７】
ここで、一致性を判定し、一致することは、一致性が成立することである。ここでは、下位１６ビット同士のように一部の連続するビット同士が一致する場合に、一致性が成立することになる。なお、一致性の判定は、全ビット同士で行ってもよく、この場合には、全ビット同士が一致する場合に、一致性が成立することになる。
【００４８】
認証部１１４は、下位１６ビット同士の値が一致する場合に、復号化で得るカウント値Ｍ＋１（６４ｂｉｔ）が、ＲＦＩＤタグ１００の６４ビットのカウント値Ｎと等しいか、又は、カウント値Ｎよりも進んでおり、かつ、カウント値の差が所定値以下であれば、Ｒ／Ｗ５０の認証が成立したと判定する。
【００４９】
Ｒ／Ｗ５０のカウント値は、ＲＦＩＤタグ１００のカウント値以上である。このため、Ｒ／Ｗ５０のカウント値（復号化で得るカウント値Ｍ＋１（６４ｂｉｔ））と、ＲＦＩＤタグ１００のカウント値Ｎとが等しい場合には、Ｒ／Ｗ５０及びＲＦＩＤタグ１００のカウント値は正常であり、Ｒ／Ｗ５０の認証が成立したこととする。
【００５０】
また、Ｒ／Ｗ５０のカウント値（復号化で得るカウント値Ｍ＋１（６４ｂｉｔ））がＲＦＩＤタグ１００のカウント値Ｎよりも多い場合に、その差が所定値以下である場合にも、Ｒ／Ｗ５０及びＲＦＩＤタグ１００のカウント値は正常であり、Ｒ／Ｗ５０の認証が成立したこととする。なお、所定値は、一例として５０である。
【００５１】
ＲＦＩＤタグ１００の主制御部１１１は、認証が成立すると、自己のカウント値Ｎを、復号化で得るカウント値Ｍ＋１（６４ｂｉｔ）に設定する。これにより、ＲＦＩＤタグ１００のカウント値は、復号化で得るカウント値Ｍ＋１（６４ｂｉｔ）になる。
【００５２】
次に、ＲＦＩＤタグ１００の主制御部１１１は、センサ３０の検出値を取得する。検出値は、１６ビットのＳ（１６ｂｉｔ）である。
【００５３】
また、ＲＦＩＤタグ１００の主制御部１１１は、カウント値（Ｍ＋１（６４ｂｉｔ））をインクリメントし、Ｍ＋２（６４ｂｉｔ）にする。暗号部１１２は、カウント値Ｍ＋２（６４ｂｉｔ）を共通鍵で暗号化して、暗号値２（６４ｂｉｔ）を生成する。暗号値２（６４ｂｉｔ）は、第２暗号値の一例である。
【００５４】
次に、論理演算部１１５は、センサ３０の検出値Ｓ（１６ｂｉｔ）と、暗号値２（６４ｂｉｔ）との排他的論理和を演算し、暗号値Ｓ（１６ｂｉｔ）を出力する。暗号値Ｓ（１６ｂｉｔ）は、暗号検出値の一例である。
【００５５】
暗号部１１２は、暗号値Ｓ（１６ｂｉｔ）をカウント値Ｍ＋２（６４ｂｉｔ）で暗号化して、暗号値３（６４ｂｉｔ）を生成する。暗号値３（６４ｂｉｔ）は、第３暗号値の一例である。
【００５６】
そして、主制御部１１１は、暗号値Ｓ（１６ｂｉｔ）と、暗号値３（６４ｂｉｔ）の先頭（上位）８ビットである暗号値３（上位８ｂｉｔ）とを通信部１１６を介してＲ／Ｗ５０に送信する。
【００５７】
Ｒ／Ｗ５０は、受信モードになり、カウント値（Ｍ＋１）をインクリメントしてＭ＋２にする。
【００５８】
暗号部６２は、インクリメントしたカウント値Ｍ＋２を共通鍵で暗号化し、６４ビットの暗号値４（６４ｂｉｔ）を生成する。暗号値４（６４ｂｉｔ）は、第４暗号値の一例である。暗号値４（６４ｂｉｔ）は、ＲＦＩＤタグ１００がＲ／Ｗ５０から貰ったカウント値Ｍ＋１をインクリメントしたＭ＋２を共通鍵で暗号化して生成した暗号値２（６４ｂｉｔ）と等しい。
【００５９】
Ｒ／Ｗ５０が暗号値Ｓ（１６ｂｉｔ）と、暗号値３（上位８ｂｉｔ）とを受信すると、論理演算部６５は、ＲＦＩＤタグ１００から受信した暗号値Ｓ（１６ｂｉｔ）と、暗号値４（６４ｂｉｔ）との排他的論理和を取ることによって暗号値Ｓ（１６ｂｉｔ）から検出値Ｓ（１６ｂｉｔ）を取り出す。
【００６０】
暗号部６２は、論理演算部６５によって取り出された検出値Ｓ（１６ｂｉｔ）をカウント値Ｍ＋２で暗号化して暗号値５（６４ｂｉｔ）を生成する。暗号値５（６４ｂｉｔ）は、第５暗号値の一例である。
【００６１】
認証部６４は、暗号部６２によって暗号化された暗号値５（６４ｂｉｔ）と、ＲＦＩＤタグ１００から受信した暗号値３（上位８ｂｉｔ）とを比較し、暗号値５（６４ｂｉｔ）の上位８ビットと一致すれば（一致性が成立すれば）、ＲＦＩＤタグ１００の認証が成立したと判定する。
【００６２】
暗号値３（６４ｂｉｔ）は、ＲＦＩＤタグ１００の暗号部１１２が、暗号値Ｓ（１６ｂｉｔ）をカウント値Ｍ＋２（６４ｂｉｔ）で暗号化して生成した暗号値であり、暗号値５（６４ｂｉｔ）は、Ｒ／Ｗ５０の論理演算部６５によって取り出された検出値Ｓ（１６ｂｉｔ）を暗号部６２がカウント値Ｍ＋２で暗号化した暗号値であるため、上位８ビット同士が一致すれば、共通鍵とカウンタ値が一致するので正当な（正規の）ＲＦＩＤタグ１００であると考えられるからである。正当な（正規の）とは、自己の通信相手として通信システム１０において割り当てられていることをいう。
【００６３】
主制御部６１は、検出値Ｓ（１６ｂｉｔ）をセンサ３０の検出値として採用し、上位機に伝送する。上位機は、センサ３０の検出値を収集するサーバ等である。
【００６４】
図３は、Ｒ／Ｗ５０が実行する相互認証処理を表すフローチャートを示す図である。図４は、ＲＦＩＤタグ１００が実行する相互認証処理を表すフローチャートを示す図である。ここでは、図３及び図４をともに用いてＲ／Ｗ５０とＲＦＩＤタグ１００の処理を示す。
【００６５】
処理がスタートすると、主制御部６１は、カウント値をインクリメントする（ステップＳ１）。これにより、Ｒ／Ｗ５０のカウント値は、６４ビットのＭ＋１（６４ｂｉｔ）になる。
【００６６】
暗号部６２は、共通鍵でカウント値Ｍ＋１（６４ｂｉｔ）を暗号化して、暗号値１（６４ｂｉｔ）を生成する（ステップＳ２）。
【００６７】
主制御部６１は、暗号値１（６４ｂｉｔ）と、カウント値Ｍ＋１（６４ｂｉｔ）のうちの下位１６ビットであるカウント値Ｍ＋１（下位１６ｂｉｔ）とをＲＦＩＤタグ１００に送信する（ステップＳ３）。
【００６８】
Ｒ／Ｗ５０は、受信モードになり、カウント値（Ｍ＋１）をインクリメントしてＭ＋２にする（ステップＳ４）。
【００６９】
暗号部６２は、インクリメントしたカウント値Ｍ＋２を共通鍵で暗号化し、６４ビットの暗号値４（６４ｂｉｔ）を生成する（ステップＳ５）。
【００７０】
ＲＦＩＤタグ１００の主制御部１１１は、暗号値１（６４ｂｉｔ）及びカウント値Ｍ＋１（下位１６ｂｉｔ）を受信する（ステップＳ２１）。
【００７１】
復号部１１３は、共通鍵で暗号値１（６４ｂｉｔ）を復号化し、カウント値Ｍ＋１（６４ｂｉｔ）を生成する（ステップＳ２２）。
【００７２】
認証部１１４は、復号化で得るカウント値Ｍ＋１（６４ｂｉｔ）の下位１６ビットと、受信したカウント値Ｍ＋１（下位１６ｂｉｔ）とを比較し、一致性を判定する（ステップＳ２３）。
【００７３】
認証部１１４は、下位１６ビット同士の値が一致する（一致性が成立する）（Ｓ２３：ＹＥＳ）場合に、Ｒ／Ｗ５０の認証が成立したかどうかを判定する（ステップＳ２４）。認証部１１４が認証が成立したと判定するのは、復号化で得るカウント値Ｍ＋１（６４ｂｉｔ）が、ＲＦＩＤタグ１００の６４ビットのカウント値Ｎと等しいか、又は、カウント値Ｎよりも進んでおり、かつ、カウント値の差が所定値以下である場合である。
【００７４】
認証部１１４によってＲ／Ｗ５０の認証が成立した（Ｓ２４：ＹＥＳ）と判定されると、主制御部１１１は、カウント値Ｎを復号化で得るカウント値Ｍ＋１（６４ｂｉｔ）に設定し、さらにインクリメントする（ステップＳ２５）。これにより、ＲＦＩＤタグ１００のカウント値は、カウント値Ｍ＋２（６４ｂｉｔ）になる。
【００７５】
暗号部１１２は、カウント値Ｍ＋２（６４ｂｉｔ）を共通鍵で暗号化して、暗号値２（６４ｂｉｔ）を生成する（ステップＳ２６）。
【００７６】
次に、ＲＦＩＤタグ１００の主制御部１１１は、センサ３０の検出値Ｓ（１６ｂｉｔ）を取得する（ステップＳ２７）。
【００７７】
次に、論理演算部１１５は、センサ３０の検出値Ｓ（１６ｂｉｔ）と、暗号値２（６４ｂｉｔ）との排他的論理和を演算し、暗号値Ｓ（１６ｂｉｔ）を出力する（ステップＳ２８）。
【００７８】
暗号部１１２は、暗号値Ｓ（１６ｂｉｔ）をカウント値Ｍ＋２（６４ｂｉｔ）で暗号化して、暗号値３（６４ｂｉｔ）を生成する（ステップＳ２９）。
【００７９】
そして、主制御部１１１は、暗号値Ｓ（１６ｂｉｔ）と、暗号値３（６４ｂｉｔ）の先頭（上位）８ビットである暗号値３（上位８ｂｉｔ）とを通信部１１６を介してＲ／Ｗ５０に送信する（ステップＳ３０）。
【００８０】
Ｒ／Ｗ５０の主制御部６１は、通信部６６を介して暗号値Ｓ（１６ｂｉｔ）と、暗号値４（上位８ｂｉｔ）とを受信する（ステップＳ６）。
【００８１】
論理演算部６５は、ＲＦＩＤタグ１００から受信した暗号値Ｓ（１６ｂｉｔ）と、暗号値４（６４ｂｉｔ）との排他的論理和を取ることによって暗号値Ｓ（１６ｂｉｔ）から検出値Ｓ（１６ｂｉｔ）を取り出す（ステップＳ７）。
【００８２】
暗号部６２は、論理演算部６５によって取り出された検出値Ｓ（１６ｂｉｔ）をカウント値Ｍ＋２で暗号化して暗号値５（６４ｂｉｔ）を生成する（ステップＳ８）。
【００８３】
認証部６４は、暗号部６２によって暗号化された暗号値５（６４ｂｉｔ）と、ＲＦＩＤタグ１００から受信した暗号値３（上位８ｂｉｔ）とを比較し、一致性を判定する（ステップＳ９）。
【００８４】
認証部６４は、暗号値５（６４ｂｉｔ）の上位８ビットと一致すれば（一致性が成立すれば）、ＲＦＩＤタグ１００の認証が成立したと判定し、主制御部６１は、検出値Ｓ（１６ｂｉｔ）を上位機に伝送する（ステップＳ１０）。
【００８５】
一方、認証部６４によって認証が不成立と判定されると、主制御部６１は、動作を停止させる（ステップＳ１１）。そして、主制御部６１は、フローをステップＳ１２に進行させる。
【００８６】
主制御部６１は、ステップＳ１０又はＳ１１の処理が終了すると、一連の処理を終了するかどうかを判定する（ステップＳ１２）。一連の処理を終了するのは、例えばＲ／Ｗ５０の電源がオフにされたときである。
【００８７】
主制御部６１は、一連の処理を終了しない（Ｓ１２：ＮＯ）と判定すると、フローをステップＳ１にリターンし、一連の処理を終了する（Ｓ１２：ＹＥＳ）と判定すると、一連の処理を終了する（エンド）。
【００８８】
以上のように、実施の形態の通信システム１０及び相互認証方法では、Ｒ／Ｗ５０及びＲＦＩＤタグ１００で共通のカウント値を用いることにより、Ｒ／Ｗ５０からＲＦＩＤタグ１００への１回の通信に基づいてＲＦＩＤタグ１００がＲ／Ｗ５０の認証を行い、ＲＦＩＤタグ１００からＲ／Ｗ５０への１回の通信に基づいてＲ／Ｗ５０がＲＦＩＤタグ１００の認証を行うことができる。
【００８９】
したがって、認証を短時間で行うことができる相互認証方法及び通信システム１０を提供することができる。
【００９０】
また、認証処理に必要な通信回数が少ないので、Ｒ／Ｗ５０の消費電力を低減することができる。
【００９１】
なお、以上では、Ｒ／Ｗ５０がカウント値Ｍ＋１（６４ｂｉｔ）のうちの下位１６ビットであるとをＲＦＩＤタグ１００に送信する形態について説明したが、１６ビットに限られず、下位に限られず、６４ビットのうちの連続する複数のビットであればよい。また、６４ビットすべてを送信してもよい。
【００９２】
また、以上では、検出値Ｓが１６ビットである形態について説明したが、検出値のビット数は１６ビットに限られず、例えば８ビットでもよい。
【００９３】
また、以上では、ＲＦＩＤタグ１００が暗号値３（６４ｂｉｔ）のうちの上位８ビットをＲ／Ｗ５０に送信する形態について説明したが、８ビットに限られず、上位に限られず、６４ビットのうちの連続する複数のビットであればよい。また、６４ビットすべてを送信してもよい。
【００９４】
また、以上では、ＲＦＩＤタグ１００がＲ／Ｗ５０を認証する処理に際して、Ｒ／Ｗ５０が共通鍵でカウント値Ｍ＋１（６４ｂｉｔ）を暗号化した暗号値１（６４ｂｉｔ）をＲＦＩＤタグ１００が共通鍵で復号化する形態について説明したが、図５に示すように、Ｒ／Ｗ５０が共通鍵でカウント値Ｍ＋１（６４ｂｉｔ）を復号化した暗号値１（６４ｂｉｔ）をＲＦＩＤタグ１００が共通鍵で暗号化するようにしてもよい。
【００９５】
図５に示すＲ／Ｗ５０とＲＦＩＤタグ１００の処理は、上述のようにＲＦＩＤタグ１００がＲ／Ｗ５０を認証する処理について、暗号化と複合化を入れ替えたこと以外は、図２に示す処理と同様である。
【００９６】
このような構成でも、Ｒ／Ｗ５０からＲＦＩＤタグ１００への１回の通信に基づいてＲＦＩＤタグ１００がＲ／Ｗ５０の認証を行い、ＲＦＩＤタグ１００からＲ／Ｗ５０への１回の通信に基づいてＲ／Ｗ５０がＲＦＩＤタグ１００の認証を行うことができ、認証を短時間で行うことができる相互認証方法及び通信システム１０を提供することができる。
【００９７】
図５に示すような処理を行う場合には、ＲＦＩＤタグ１００は、ＲＦＩＤタグ１００がＲ／Ｗ５０を認証する処理に際して暗号化を行い、Ｒ／Ｗ５０がＲＦＩＤタグ１００を認証する処理に際しても暗号化を行うことになる。
【００９８】
このため、ＲＦＩＤタグ１００の制御装置１１０は、復号部１１３を含まなくてよくなり、ＲＦＩＤタグ１００の制御装置１１０の簡易化を図ることができ、コストダウンを図ることができる。なお、Ｒ／Ｗ５０の制御装置６０は、復号処理を行うことになるため、復号部をさらに含む構成にすればよい。
【００９９】
また、ＲＦＩＤタグ１００にセンサ３０が接続されていない場合には、図６及び図７に示すように相互認証処理を簡易化することができる。
【０１００】
図６では、ＲＦＩＤタグ１００がＲ／Ｗ５０を認証する処理は、図２と同様である。Ｒ／Ｗ５０がＲＦＩＤタグ１００を認証する処理では、ＲＦＩＤタグ１００に検出値が存在しないため、図２に示すような排他的論理和を演算する処理が不要になり、次のような処理を行えばよい。
【０１０１】
ＲＦＩＤタグ１００は、ＲＦＩＤタグ１００の主制御部１１１は、カウント値（Ｍ＋１（６４ｂｉｔ））をインクリメントし、Ｍ＋２（６４ｂｉｔ）にし、暗号部１１２は、カウント値Ｍ＋２（６４ｂｉｔ）を共通鍵で暗号化して、暗号値２（６４ｂｉｔ）を生成する。
【０１０２】
Ｒ／Ｗ５０は、受信モードになり、カウント値（Ｍ＋１）をインクリメントしてＭ＋２にする。Ｒ／Ｗ５０は、ＲＦＩＤタグ１００から受信する暗号値２（６４ｂｉｔ）を共通鍵で復号化して得るカウント値Ｍ＋２（６４ｂｉｔ）が、自己のカウント値Ｍ＋２（６４ｂｉｔ）と一致すれば、ＲＦＩＤタグ１００の認証成立と判定する。
【０１０３】
このようにセンサ３０がＲＦＩＤタグ１００に接続されていない場合には、論理演算部６５、論理演算部１１５が不要になるため、システムの簡略化を図りつつ、認証を短時間で行うことができる相互認証方法及び通信システム１０を提供することができる。なお、Ｒ／Ｗ５０は、復号化処理を行うため、制御装置６０は、復号部を含む構成になる。
【０１０４】
また、図７に示す相互認証処理は、図６に示す相互認証処理におけるＲＦＩＤタグ１００がＲ／Ｗ５０を認証する処理において、Ｒ／Ｗ５０が共通鍵でカウント値Ｍ＋１（６４ｂｉｔ）を復号化した暗号値１（６４ｂｉｔ）をＲＦＩＤタグ１００が共通鍵で暗号化するように変形した処理である。
【０１０５】
すなわち、図７に示す相互認証処理と、図６に示す相互認証処理との関係は、図５に示す相互認証処理と、図２に示す相互認証処理との関係と同様であり、図７に示すＲ／Ｗ５０とＲＦＩＤタグ１００の処理は、ＲＦＩＤタグ１００がＲ／Ｗ５０を認証する処理について、暗号化と複合化を入れ替えたこと以外は、図６に示す処理と同様である。
【０１０６】
このため、ＲＦＩＤタグ１００の制御装置１１０は、復号部１１３を含まなくてよくなり、ＲＦＩＤタグ１００の制御装置１１０の簡易化を図ることができ、コストダウンを図ることができる。なお、Ｒ／Ｗ５０の制御装置６０は、復号処理を行うことになるため、復号部をさらに含む構成にすればよい。
【０１０７】
以上、本発明の例示的な実施の形態の相互認証方法及び通信システムについて説明したが、本発明は、具体的に開示された実施の形態に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。
【０１０８】
なお、本国際出願は、２０１８年８月２８日に出願した日本国特許出願２０１８−１５９７７１に基づく優先権を主張するものであり、その全内容は本国際出願にここでの参照により援用されるものとする。
【符号の説明】
【０１０９】
１０  通信システム
３０  センサ
５０  Ｒ／Ｗ
６０  制御装置
６２  暗号部
６４  認証部
６５  論理演算部
６６  通信部
１００  ＲＦＩＤタグ
１１０  制御装置
１１２  暗号部
１１３  復号部
１１４  認証部
１１５  論理演算部
１１６  通信部
【図１】
2020044624.tif 000003
【図２】
2020044624.tif 000004
【図３】
2020044624.tif 000005
【図４】
2020044624.tif 000006
【図５】
2020044624.tif 000007
【図６】
2020044624.tif 000008
【図７】
2020044624.tif 000009
【国際調査報告】
2020044624.tif 000010
2020044624.tif 000011
2020044624.tif 000012
2020044624.tif 000013