(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-07-14
(45)【発行日】2022-07-25
(54)【発明の名称】相互認証方法及び通信システム
(51)【国際特許分類】
H04L 9/32 20060101AFI20220715BHJP
G06F 21/44 20130101ALI20220715BHJP
【FI】
H04L9/32 200A
G06F21/44 350
(21)【出願番号】P 2020540033
(86)(22)【出願日】2019-03-08
(86)【国際出願番号】 JP2019009533
(87)【国際公開番号】W WO2020044624
(87)【国際公開日】2020-03-05
【審査請求日】2021-02-25
(31)【優先権主張番号】P 2018159771
(32)【優先日】2018-08-28
(33)【優先権主張国・地域又は機関】JP
【国等の委託研究の成果に係る記載事項】(出願人による申告)平成28年度 総務省、「スマートなインフラ維持管理に向けたICT基盤の確立(局所集中型低消費電力無線通信技術の研究開発)」委託研究、産業技術力強化法第19条の適用を受ける特許出願
(73)【特許権者】
【識別番号】000010098
【氏名又は名称】アルプスアルパイン株式会社
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(72)【発明者】
【氏名】村田 眞司
(72)【発明者】
【氏名】桝田屋 秀樹
【審査官】行田 悦資
(56)【参考文献】
【文献】米国特許出願公開第2009/0019282(US,A1)
【文献】国際公開第2014/147934(WO,A1)
【文献】特表2011-523264(JP,A)
【文献】特開平10-304333(JP,A)
【文献】米国特許出願公開第2009/0153290(US,A1)
【文献】特開2014-168216(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 9/32
G06F 21/44
(57)【特許請求の範囲】
【請求項1】
共通鍵を有する第1通信機と第2通信機とを含み、前記第1通信機及び前記第2通信機が通信回数を表す第1カウント値及び第2カウント値をそれぞれ保持する通信システムにおける相互認証方法であって、
前記第1通信機は、
前記共通鍵で前記第1カウント値を暗号化して第1暗号値を生成し、
前記第1暗号値と、前記第1カウント値の少なくとも一部分を含む第1数値とを前記第2通信機に送信し、
前記第2通信機は、
前記第1暗号値及び前記第1数値を受信すると、前記共通鍵で前記第1暗号値を復号化し、
前記復号化で得る第1復号値と前記第1数値との一致性を判定し、
前記一致性が成立する場合に、前記第1復号値が前記第2カウント値と等しいか、又は、前記第2カウント値よりも進んでいれば、第1通信機の認証が成立したと判定
し、
前記認証が成立すると、前記第1復号値を前記第2カウント値として設定し、
当該第2カウント値をインクリメントする、相互認証方法。
【請求項2】
前記第2通信機は、前記第1復号値が前記第2カウント値と等しいか、又は、前記第2カウント値よりも進んでいて前記第2カウント値との差が所定数以下であれば、第1通信機の認証が成立したと判定する、請求項1記載の相互認証方法。
【請求項3】
前記第2通信機は
、
前記インクリメントした第2カウント値を前記共通鍵で暗号化して第2暗号値を生成し、
前記第2暗号値を前記第1通信機に送信する、請求項
1又は2記載の相互認証方法。
【請求項4】
前記第1通信機は、
前記第2通信機から前記第2暗号値を受信すると前記第1カウント値をインクリメントし、
前記第1通信機から受信した第2暗号値を前記共通鍵で復号して得る復号値が前記インクリメントした第1カウント値と一致するか判定し、
一致する場合に、前記第2通信機の認証が成立したと判定する、請求項
3記載の相互認証方法。
【請求項5】
共通鍵を有する第1通信機と第2通信機とを含み、前記第1通信機及び前記第2通信機が通信回数を表す第1カウント値及び第2カウント値をそれぞれ保持する通信システムにおける相互認証方法であって、
前記第1通信機は、
前記共通鍵で前記第1カウント値を復号化して第1復号値を生成し、
前記第1復号値と、前記第1カウント値の少なくとも一部分を含む第1数値とを前記第2通信機に送信し、
前記第2通信機は、
前記第1復号値及び前記第1数値を受信すると、前記共通鍵で前記第1復号値を暗号化し、
前記暗号化で得る第1暗号値と前記第1数値との一致性を判定し、
前記一致性が成立する場合に、前記第1暗号値が前記第2カウント値と等しいか、又は、前記第2カウント値よりも進んでいれば、第1通信機の認証が成立したと判定する、
前記認証が成立すると、前記第1暗号値を前記第2カウント値として設定し、
当該第2カウント値をインクリメントする、相互認証方法。
【請求項6】
前記第2通信機は、前記第1暗号値が前記第2カウント値と等しいか、又は、前記第2カウント値よりも進んでいて前記第2カウント値との差が所定数以下であれば、第1通信機の認証が成立したと判定する、請求項
5記載の相互認証方法。
【請求項7】
前記第2通信機は
、
前記インクリメントした第2カウント値を前記共通鍵で暗号化して第2暗号値を生成し、
前記第2暗号値を前記第1通信機に送信する、請求項
5又は6記載の相互認証方法。
【請求項8】
前記第1通信機は、
前記第2通信機から前記第2暗号値を受信すると前記第1カウント値をインクリメントし、
前記第1通信機から受信した第2暗号値を前記共通鍵で復号して得る復号値が前記インクリメントした第1カウント値と一致するか判定し、
一致する場合に、前記第2通信機の認証が成立したと判定する、請求項
7記載の相互認証方法。
【請求項9】
前記第2通信機は、
センサをさらに有し、
前記第2カウント値をインクリメントし、
前記インクリメントした第2カウント値を前記共通鍵で暗号化して第2暗号値を生成し、
前記センサの検出値と前記第2暗号値との排他的論理和を表す暗号検出値を生成し、
前記暗号検出値を前記インクリメントした第2カウント値で暗号化して第3暗号値を生成し、
前記暗号検出値と、前記第3暗号値の少なくとも一部分を含む第3数値とを前記第1通信機に送信する、請求項3又は
7記載の相互認証方法。
【請求項10】
前記第1通信機は、
前記第2通信機から前記暗号検出値と第3数値とを受信すると前記第1カウント値をインクリメントし、
前記第2通信機から受信した暗号検出値と、前記インクリメントした第1カウント値を前記共通鍵で暗号化した第4暗号値との排他的論理和を取ることによって前記暗号検出値から検出値を取り出し、
前記取り出した検出値を前記インクリメントした第1カウント値で暗号化して第5暗号値を生成し、
前記第2通信機から受信した第3数値と前記第5暗号値とが一致するか判定し、
一致する場合に、前記第2通信機の認証が成立したと判定する、請求項
9記載の相互認証方法。
【請求項11】
第1通信機と第2通信機とを含み、前記第1通信機及び前記第2通信機が共通鍵を有する通信システムであって、
前記第1通信機は、
通信回数を表す第1カウント値をカウントする第1カウンタと、
前記共通鍵で前記第1カウント値を暗号化して第1暗号値を生成する暗号部と、
前記第1暗号値と、前記第1カウント値の少なくとも一部分を含む第1数値とを前記第2通信機に送信する第1通信部と
を有し、
前記第2通信機は、
通信回数を表す第2カウント値をカウントする第2カウンタと、
前記第1暗号値及び前記第1数値を前記第1通信機から受信する第2通信部と、
前記第2通信部が前記第1暗号値及び前記第1数値を受信すると、前記共通鍵で前記第1暗号値を復号化する復号部と、
前記復号化で得る第1復号値と前記第1数値との一致性を判定し、前記一致性が成立する場合に、前記第1復号値が前記第2カウント値と等しいか、又は、前記第2カウント値よりも進んでいれば、第1通信機の認証が成立したと判定する認証部と、
を有
し、
前記第2カウンタは、前記認証が成立すると、前記第1復号値を前記第2カウント値として設定し、当該第2カウント値をインクリメントする、通信システム。
【請求項12】
第1通信機と第2通信機とを含み、前記第1通信機及び前記第2通信機が共通鍵を有する通信システムであって、
前記第1通信機は、
通信回数を表す第1カウント値をカウントする第1カウンタと、
前記共通鍵で前記第1カウント値を復号化して第1復号値を生成する復号部と、
前記第1復号値と、前記第1カウント値の少なくとも一部分を含む第1数値とを前記第2通信機に送信する第1通信部と
を有し、
前記第2通信機は、
通信回数を表す第2カウント値をカウントする第2カウンタと、
前記第1復号値及び前記第1数値を前記第1通信機から受信する第2通信部と、
前記第2通信部が前記第1復号値及び前記第1数値を受信すると、前記共通鍵で前記第1復号値を暗号化する暗号部と、
前記暗号化で得る第1暗号値と前記第1数値との一致性を判定し、前記一致性が成立する場合に、前記第1暗号値が前記第2カウント値と等しいか、又は、前記第2カウント値よりも進んでいれば、第1通信機の認証が成立したと判定する認証部と
、
を有し
、
前記第2カウンタは、前記認証が成立すると、前記第1暗号値を前記第2カウント値として設定し、当該第2カウント値をインクリメントする、通信システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、相互認証方法及び通信システムに関する。
【背景技術】
【0002】
従来より、通信路で接続された第1機器と第2機器とからなる通信システムにおいて相手が正当な機器であることを認証するための機器認証システムであって、前記第1機器は、前記第2機器の正当性を検証するための複数の検証関数を予め記憶している検証関数記憶手段と、第1チャレンジデータを生成し第2機器に送信する第1チャレンジデータ送信手段と、前記第1チャレンジデータに対応する第1レスポンスデータを前記第2機器から受信する第1レスポンスデータ受信手段と、前記第1チャレンジデータと前記第1レスポンスデータとが前記複数の検証関数のいずれかによって関連づけられるか否かを検証する第1検証手段と、前記第1検証手段が肯定的に検証した場合に前記第2機器の正当性を認証する第1認証手段とを備え、第2機器は、前記複数の検証関数それぞれに対応する複数の証明関数であって、自己の正当性を証明するためのものを予め記憶している証明関数記憶手段と、前記第1機器が送信した第1チャレンジデータを受信する第1チャレンジデータ受信手段と、前記複数の証明関数から1つを選択する証明関数選択手段と、前記証明関数選択手段が選択した証明関数に基づいて、前記第1チャレンジデータから第1レスポンスデータを生成し第1機器に送信する第1レスポンスデータ送信手段とを備えることを特徴とする機器認証システムがある。第2機器が第2機器の正当性を検証するには、上述とは逆の動作を行う(例えば、特許文献1参照)。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
ところで、従来の機器認証システムにおける正当性の検証方法(認証方法)では、第1機器と第2機器が互いに認証するには二往復のデータ通信が必要であるため、認証にかかる通信時間が長いという課題がある。
【0005】
そこで、認証を短時間で行うことができる相互認証方法及び通信システムを提供することを目的とする。
【課題を解決するための手段】
【0006】
本発明の実施の形態の相互認証方法は、共通鍵を有する第1通信機と第2通信機とを含み、前記第1通信機及び前記第2通信機が通信回数を表す第1カウント値及び第2カウント値をそれぞれ保持する通信システムにおける相互認証方法であって、前記第1通信機は、前記共通鍵で前記第1カウント値を暗号化して第1暗号値を生成し、前記第1暗号値と、前記第1カウント値の少なくとも一部分を含む第1数値とを前記第2通信機に送信し、前記第2通信機は、前記第1暗号値及び前記第1数値を受信すると、前記共通鍵で前記第1暗号値を復号化し、前記復号化で得る第1復号値と前記第1数値との一致性を判定し、前記一致性が成立する場合に、前記第1復号値が前記第2カウント値と等しいか、又は、前記第2カウント値よりも進んでいれば、第1通信機の認証が成立したと判定し、前記認証が成立すると、前記第1復号値を前記第2カウント値として設定し、当該第2カウント値をインクリメントする。
【発明の効果】
【0007】
認証を短時間で行うことができる相互認証方法及び通信システムを提供することができる。
【図面の簡単な説明】
【0008】
【
図1】相互認証方法を実行する通信システム10を示す図である。
【
図2】R/W50及びRFIDタグ100が行う認証処理を示すタスク図である。
【
図3】R/W50が実行する相互認証処理を表すフローチャートを示す図である。
【
図4】RFIDタグ100が実行する相互認証処理を表すフローチャートを示す図である。
【
図5】変形例におけるR/W50及びRFIDタグ100が行う認証処理を示すタスク図である。
【
図6】変形例におけるR/W50及びRFIDタグ100が行う認証処理を示すタスク図である。
【
図7】変形例におけるR/W50及びRFIDタグ100が行う認証処理を示すタスク図である。
【発明を実施するための形態】
【0009】
以下、本発明の相互認証方法及び通信システムを適用した実施の形態について説明する。
【0010】
<実施の形態>
図1は、相互認証方法を実行する通信システム10を示す図である。通信システム10は、R/W(リーダライタ)50とRFIDタグ100を含む。R/W50は、第1通信機の一例であり、RFIDタグ100は、第2通信機の一例である。RFIDタグ100には、センサ30が接続されている。
【0011】
以下では、R/W50とRFIDタグ100が1個ずつ存在する形態について説明するが、1個のR/W50が複数のRFIDタグ100と通信を行う形態であってよい。
【0012】
また、一例として、センサ30が応力センサである場合には、RFIDタグ100は、橋梁や斜面等に設置され、センサ30が検出する応力を表すデータを暗号化してR/W50に送信する。R/W50は、センサ30の検出値を取得することができる。なお、このような用途は一例であり、様々な種類のセンサをセンサ30として用いることにより、RFIDタグ100を介してR/W50で様々な検出値を取得することができる。
【0013】
R/W50は、制御装置60、アンテナ70、及びメモリ80を有する。
【0014】
制御装置60は、CPU(Central Processing Unit)、RAM(Random Access Memory)、ROM(Read Only Memory)、HDD(Hard Disk Drive)、入出力インターフェース、及び内部バス等を含むコンピュータによって実現される。
【0015】
制御装置60は、主制御部61、暗号部62、認証部64、論理演算部65、及び通信部66を有する。制御部61、暗号部62、認証部64、論理演算部65、及び通信部66は、制御装置60が実行するプログラムの機能(ファンクション)を機能ブロックとして示したものである。また、メモリ80は、制御装置60のメモリを機能的に表したものである。
【0016】
主制御部61は、制御装置60の処理を統括する制御部であり、暗号部62、認証部64、論理演算部65、及び通信部66が行う処理以外の処理を実行する。主制御部61は、例えば、カウンタの機能を有し、R/W50が通信を行う度に、通信回数を表すカウント値をインクリメントする。また、主制御部61は、RFIDタグ100にカウント値や暗号等のデータを送信する処理を通信部66に行わせる。また、主制御部61は、RFIDタグ100からカウント値や暗号等のデータを受信する処理を通信部66に行わせ、受信したデータを暗号部62に伝送する。主制御部61がカウントするカウント値は、第1カウント値の一例である。
【0017】
暗号部62は、RFIDタグ100に送信するデータ等を暗号化する。暗号部62は、一例として、Present 80 Encryption によるデータの暗号化処理を行う。Present 80 Encryptionは、共通鍵を使った暗号化手法である。
【0018】
認証部64は、RFIDタグ100から受信する暗号やカウント値等に基づいて、RFIDタグ100の認証処理を行う。認証処理の詳細については、
図2を用いて後述する。
【0019】
論理演算部65は、RFIDタグ100から受信する暗号値と、暗号部62が生成する暗号値との排他的論理和(EXOR)を演算する。この処理の詳細については
図2を用いて後述する。
【0020】
通信部66は、RFIDタグ100との通信用のアンテナ70が接続されている。通信部66は、主制御部61からの指令に従って、RFIDタグ100にデータを送信する処理と、RFIDタグ100からデータを受信する処理とを行う。
【0021】
アンテナ70は、RFIDタグ100と無線通信を行えるアンテナであればよい。アンテナ70は、通信部66に接続されており、RFIDタグ100に送信するデータ等を含む信号を放射し、RFIDタグ100から返信されるデータ等を含む信号を受信する。
【0022】
メモリ80は、R/W50が認証処理を行うために必要なプログラムやデータ等を格納する。また、メモリ80は、主制御部61がカウントするカウント値を一時的に保持する。また、メモリ80は、R/W50及びRFIDタグ100が暗号化や複合化等に用いる共通鍵を格納する。
【0023】
RFIDタグ100は、制御装置110、アンテナ120、及びメモリ130を有する。RFIDタグ100は、一例として、R/W50から送信される信号をアンテナ120で受信すると、受信した電力で作動し、演算処理等を行って、R/W50にデータを送信(返信)する。
【0024】
制御装置110は、IC(Integrated Circuit)チップによって実現される。
【0025】
制御装置110は、主制御部111、暗号部112、復号部113、認証部114、論理演算部115、及び通信部116を有する。主制御部111、暗号部112、復号部113、認証部114、論理演算部115、及び通信部116は、制御装置110が実行するプログラムの機能(ファンクション)を機能ブロックとして示したものである。また、メモリ130は、制御装置110のメモリを機能的に表したものである。
【0026】
主制御部111は、制御装置110の処理を統括する制御部であり、暗号部112、復号部113、認証部114、論理演算部115、及び通信部116が行う処理以外の処理を実行する。主制御部111は、例えば、カウンタの機能を有し、RFIDタグ100が通信を行う度に、通信回数を表すカウント値をインクリメントする。また、主制御部111は、R/W50にカウント値や暗号等のデータを送信する処理を通信部116に行わせる。また、主制御部111は、R/W50からカウント値や暗号等のデータを受信する処理を通信部116に行わせ、受信したデータを暗号部112、復号部113に伝送する。主制御部111がカウントするカウント値は、第1カウント値の一例である。
【0027】
暗号部112は、R/W50に送信するデータ等を暗号化する。暗号部112は、一例として、Present 80 Encryption によるデータの暗号化処理を行う。
【0028】
復号部113は、R/W50から受信するデータ等を復号化する。復号部113は、一例として、Present 80 Decryption によるデータの復号化処理を行う。Present 80 Decryptionは、共通鍵を使った復号化手法である。
【0029】
認証部114は、R/W50から受信する暗号やカウント値等に基づいて、R/W50の認証処理を行う。認証処理の詳細については、
図2を用いて後述する。
【0030】
論理演算部115は、センサ30の検出値と、暗号部112が生成する暗号値との排他的論理和(EXOR)を演算する。この処理の詳細については
図2を用いて後述する。
【0031】
通信部116は、R/W50との通信用のアンテナ120が接続されている。通信部116は、主制御部111からの指令に従って、R/W50にデータを送信する処理と、R/W50からデータを受信する処理とを行う。
【0032】
アンテナ120は、R/W50と無線通信を行えるアンテナであればよい。アンテナ120は、通信部116に接続されており、R/W50から送信されるデータ等を含む信号を受信し、R/W50に返信するデータ等を含む信号を放射する。
【0033】
メモリ130は、RFIDタグ100が認証処理を行うために必要なプログラムやデータ等を格納する。また、メモリ130は、主制御部111がカウントするカウント値を一時的に保持する。また、メモリ130は、R/W50及びRFIDタグ100が暗号化や複合化等に用いる共通鍵を格納する。
【0034】
ここで、R/W50のカウント値は、RFIDタグ100のカウント値以上である。R/W50及びRFIDタグ100は、R/W50及びRFIDタグ100の間で通信を行う度に、カウント値をインクリメントする。このため、R/W50及びRFIDタグ100の間の通信が異常がなく、R/W50及びRFIDタグ100が送信/受信を毎回正常に行えている場合には、R/W50及びRFIDタグ100のカウント値は等しくなる。異常とは、例えば、R/W50が信号を送信しても、ノイズ等によってRFIDタグ100が受信できないような状態である。
【0035】
ところで、通信に異常が生じると、RFIDタグ100はR/W50から送信された信号がR/W50から送信されたことを認識できない状況が生じる。
【0036】
この場合には、R/W50のカウント値はインクリメントされるが、RFIDタグ100のカウント値はインクリメントされない。このため、R/W50のカウント値は、RFIDタグ100のカウント値よりも進む(多くなる)ことが有り得る。
【0037】
通信システム10では、R/W50及びRFIDタグ100のカウント値を認証に利用する。RFIDタグ100がR/W50を認証する際に、R/W50のカウント値がRFIDタグ100のカウント値以上であることが認証成立の1つの条件である。
【0038】
ただし、R/W50のカウント値がRFIDタグ100のカウント値よりもあまりにも多い場合には、正常に完了しなかった通信の回数が多いことになる。
【0039】
このため、R/W50のカウント値がRFIDタグ100のカウント値よりも進んでいる場合には、R/W50のカウント値と、RFIDタグ100のカウント値との差が所定値以下である場合に、認証を成立させることとする。なお、所定値は、一例として50である。
【0040】
なお、RFIDタグ100が、本来信号を受信する対象ではないリーダライタ(R/W50とは別の同様のリーダライタ)が送信した信号を受信すると、本来信号を受信する対象であるR/W50のカウント値よりもRFIDタグ100のカウント値が進む場合が有り得る。このため、RFIDタグ100のカウント値がR/W50のカウント値よりも進んでいる場合には、認証は不成立となる。
【0041】
図2は、R/W50及びRFIDタグ100が行う認証処理を示すタスク図である。
【0042】
まず、初期状態において、R/W50のカウント値が64ビットのM(64bit)であることとする。R/W50の制御部61はカウント値をインクリメントしM+1(64bit)とする。R/W50の暗号部62は、共通鍵を用いてインクリメントしたカウント値M+1(64bit)を暗号化して、暗号値1(64bit)を生成する。
【0043】
そして、R/W50は、暗号値1(64bit)と、カウント値M+1(64bit)のうちの下位16ビットであるカウント値M+1(下位16bit)とをRFIDタグ100に送信する。
【0044】
なお、暗号値1(64bit)は、第1暗号値の一例であり、カウント値M+1(下位16bit)は、第1数値の一例である。また、カウント値M+1(64bit)のうちの下位16ビット(カウント値M+1(下位16bit))のみをRFIDタグ100に送信することにより、通信データ容量を小さくすることができる。
【0045】
RFIDタグ100が暗号値1(64bit)及びカウント値M+1(下位16bit)を受信すると、復号部113は、共通鍵で暗号値1(64bit)を復号化し、認証部114は、復号化で得るカウント値M+1(64bit)の下位16ビットと、受信したカウント値M+1(下位16bit)とを比較し、一致性を判定する。ここで、復号化で得るカウント値M+1(64bit)は、第1復号値の一例である。
【0046】
復号化で得るカウント値M+1(64bit)のすべてのビット(64ビット)を比較しなくても、下位16ビット同士の比較で十分であるため、下位16ビット同士のみを比較するようにしている。また、これにより、通信データ容量を小さくすることができる。
【0047】
ここで、一致性を判定し、一致することは、一致性が成立することである。ここでは、下位16ビット同士のように一部の連続するビット同士が一致する場合に、一致性が成立することになる。なお、一致性の判定は、全ビット同士で行ってもよく、この場合には、全ビット同士が一致する場合に、一致性が成立することになる。
【0048】
認証部114は、下位16ビット同士の値が一致する場合に、復号化で得るカウント値M+1(64bit)が、RFIDタグ100の64ビットのカウント値Nと等しいか、又は、カウント値Nよりも進んでおり、かつ、カウント値の差が所定値以下であれば、R/W50の認証が成立したと判定する。
【0049】
R/W50のカウント値は、RFIDタグ100のカウント値以上である。このため、R/W50のカウント値(復号化で得るカウント値M+1(64bit))と、RFIDタグ100のカウント値Nとが等しい場合には、R/W50及びRFIDタグ100のカウント値は正常であり、R/W50の認証が成立したこととする。
【0050】
また、R/W50のカウント値(復号化で得るカウント値M+1(64bit))がRFIDタグ100のカウント値Nよりも多い場合に、その差が所定値以下である場合にも、R/W50及びRFIDタグ100のカウント値は正常であり、R/W50の認証が成立したこととする。なお、所定値は、一例として50である。
【0051】
RFIDタグ100の主制御部111は、認証が成立すると、自己のカウント値Nを、復号化で得るカウント値M+1(64bit)に設定する。これにより、RFIDタグ100のカウント値は、復号化で得るカウント値M+1(64bit)になる。
【0052】
次に、RFIDタグ100の主制御部111は、センサ30の検出値を取得する。検出値は、16ビットのS(16bit)である。
【0053】
また、RFIDタグ100の主制御部111は、カウント値(M+1(64bit))をインクリメントし、M+2(64bit)にする。暗号部112は、カウント値M+2(64bit)を共通鍵で暗号化して、暗号値2(64bit)を生成する。暗号値2(64bit)は、第2暗号値の一例である。
【0054】
次に、論理演算部115は、センサ30の検出値S(16bit)と、暗号値2(64bit)との排他的論理和を演算し、暗号値S(16bit)を出力する。暗号値S(16bit)は、暗号検出値の一例である。
【0055】
暗号部112は、暗号値S(16bit)をカウント値M+2(64bit)で暗号化して、暗号値3(64bit)を生成する。暗号値3(64bit)は、第3暗号値の一例である。
【0056】
そして、主制御部111は、暗号値S(16bit)と、暗号値3(64bit)の先頭(上位)8ビットである暗号値3(上位8bit)とを通信部116を介してR/W50に送信する。
【0057】
R/W50は、受信モードになり、カウント値(M+1)をインクリメントしてM+2にする。
【0058】
暗号部62は、インクリメントしたカウント値M+2を共通鍵で暗号化し、64ビットの暗号値4(64bit)を生成する。暗号値4(64bit)は、第4暗号値の一例である。暗号値4(64bit)は、RFIDタグ100がR/W50から貰ったカウント値M+1をインクリメントしたM+2を共通鍵で暗号化して生成した暗号値2(64bit)と等しい。
【0059】
R/W50が暗号値S(16bit)と、暗号値3(上位8bit)とを受信すると、論理演算部65は、RFIDタグ100から受信した暗号値S(16bit)と、暗号値4(64bit)との排他的論理和を取ることによって暗号値S(16bit)から検出値S(16bit)を取り出す。
【0060】
暗号部62は、論理演算部65によって取り出された検出値S(16bit)をカウント値M+2で暗号化して暗号値5(64bit)を生成する。暗号値5(64bit)は、第5暗号値の一例である。
【0061】
認証部64は、暗号部62によって暗号化された暗号値5(64bit)と、RFIDタグ100から受信した暗号値3(上位8bit)とを比較し、暗号値5(64bit)の上位8ビットと一致すれば(一致性が成立すれば)、RFIDタグ100の認証が成立したと判定する。
【0062】
暗号値3(64bit)は、RFIDタグ100の暗号部112が、暗号値S(16bit)をカウント値M+2(64bit)で暗号化して生成した暗号値であり、暗号値5(64bit)は、R/W50の論理演算部65によって取り出された検出値S(16bit)を暗号部62がカウント値M+2で暗号化した暗号値であるため、上位8ビット同士が一致すれば、共通鍵とカウンタ値が一致するので正当な(正規の)RFIDタグ100であると考えられるからである。正当な(正規の)とは、自己の通信相手として通信システム10において割り当てられていることをいう。
【0063】
主制御部61は、検出値S(16bit)をセンサ30の検出値として採用し、上位機に伝送する。上位機は、センサ30の検出値を収集するサーバ等である。
【0064】
図3は、R/W50が実行する相互認証処理を表すフローチャートを示す図である。
図4は、RFIDタグ100が実行する相互認証処理を表すフローチャートを示す図である。ここでは、
図3及び
図4をともに用いてR/W50とRFIDタグ100の処理を示す。
【0065】
処理がスタートすると、主制御部61は、カウント値をインクリメントする(ステップS1)。これにより、R/W50のカウント値は、64ビットのM+1(64bit)になる。
【0066】
暗号部62は、共通鍵でカウント値M+1(64bit)を暗号化して、暗号値1(64bit)を生成する(ステップS2)。
【0067】
主制御部61は、暗号値1(64bit)と、カウント値M+1(64bit)のうちの下位16ビットであるカウント値M+1(下位16bit)とをRFIDタグ100に送信する(ステップS3)。
【0068】
R/W50は、受信モードになり、カウント値(M+1)をインクリメントしてM+2にする(ステップS4)。
【0069】
暗号部62は、インクリメントしたカウント値M+2を共通鍵で暗号化し、64ビットの暗号値4(64bit)を生成する(ステップS5)。
【0070】
RFIDタグ100の主制御部111は、暗号値1(64bit)及びカウント値M+1(下位16bit)を受信する(ステップS21)。
【0071】
復号部113は、共通鍵で暗号値1(64bit)を復号化し、カウント値M+1(64bit)を生成する(ステップS22)。
【0072】
認証部114は、復号化で得るカウント値M+1(64bit)の下位16ビットと、受信したカウント値M+1(下位16bit)とを比較し、一致性を判定する(ステップS23)。
【0073】
認証部114は、下位16ビット同士の値が一致する(一致性が成立する)(S23:YES)場合に、R/W50の認証が成立したかどうかを判定する(ステップS24)。認証部114が認証が成立したと判定するのは、復号化で得るカウント値M+1(64bit)が、RFIDタグ100の64ビットのカウント値Nと等しいか、又は、カウント値Nよりも進んでおり、かつ、カウント値の差が所定値以下である場合である。
【0074】
認証部114によってR/W50の認証が成立した(S24:YES)と判定されると、主制御部111は、カウント値Nを復号化で得るカウント値M+1(64bit)に設定し、さらにインクリメントする(ステップS25)。これにより、RFIDタグ100のカウント値は、カウント値M+2(64bit)になる。
【0075】
暗号部112は、カウント値M+2(64bit)を共通鍵で暗号化して、暗号値2(64bit)を生成する(ステップS26)。
【0076】
次に、RFIDタグ100の主制御部111は、センサ30の検出値S(16bit)を取得する(ステップS27)。
【0077】
次に、論理演算部115は、センサ30の検出値S(16bit)と、暗号値2(64bit)との排他的論理和を演算し、暗号値S(16bit)を出力する(ステップS28)。
【0078】
暗号部112は、暗号値S(16bit)をカウント値M+2(64bit)で暗号化して、暗号値3(64bit)を生成する(ステップS29)。
【0079】
そして、主制御部111は、暗号値S(16bit)と、暗号値3(64bit)の先頭(上位)8ビットである暗号値3(上位8bit)とを通信部116を介してR/W50に送信する(ステップS30)。
【0080】
R/W50の主制御部61は、通信部66を介して暗号値S(16bit)と、暗号値4(上位8bit)とを受信する(ステップS6)。
【0081】
論理演算部65は、RFIDタグ100から受信した暗号値S(16bit)と、暗号値4(64bit)との排他的論理和を取ることによって暗号値S(16bit)から検出値S(16bit)を取り出す(ステップS7)。
【0082】
暗号部62は、論理演算部65によって取り出された検出値S(16bit)をカウント値M+2で暗号化して暗号値5(64bit)を生成する(ステップS8)。
【0083】
認証部64は、暗号部62によって暗号化された暗号値5(64bit)と、RFIDタグ100から受信した暗号値3(上位8bit)とを比較し、一致性を判定する(ステップS9)。
【0084】
認証部64は、暗号値5(64bit)の上位8ビットと一致すれば(一致性が成立すれば)、RFIDタグ100の認証が成立したと判定し、主制御部61は、検出値S(16bit)を上位機に伝送する(ステップS10)。
【0085】
一方、認証部64によって認証が不成立と判定されると、主制御部61は、動作を停止させる(ステップS11)。そして、主制御部61は、フローをステップS12に進行させる。
【0086】
主制御部61は、ステップS10又はS11の処理が終了すると、一連の処理を終了するかどうかを判定する(ステップS12)。一連の処理を終了するのは、例えばR/W50の電源がオフにされたときである。
【0087】
主制御部61は、一連の処理を終了しない(S12:NO)と判定すると、フローをステップS1にリターンし、一連の処理を終了する(S12:YES)と判定すると、一連の処理を終了する(エンド)。
【0088】
以上のように、実施の形態の通信システム10及び相互認証方法では、R/W50及びRFIDタグ100で共通のカウント値を用いることにより、R/W50からRFIDタグ100への1回の通信に基づいてRFIDタグ100がR/W50の認証を行い、RFIDタグ100からR/W50への1回の通信に基づいてR/W50がRFIDタグ100の認証を行うことができる。
【0089】
したがって、認証を短時間で行うことができる相互認証方法及び通信システム10を提供することができる。
【0090】
また、認証処理に必要な通信回数が少ないので、R/W50の消費電力を低減することができる。
【0091】
なお、以上では、R/W50がカウント値M+1(64bit)のうちの下位16ビットであるとをRFIDタグ100に送信する形態について説明したが、16ビットに限られず、下位に限られず、64ビットのうちの連続する複数のビットであればよい。また、64ビットすべてを送信してもよい。
【0092】
また、以上では、検出値Sが16ビットである形態について説明したが、検出値のビット数は16ビットに限られず、例えば8ビットでもよい。
【0093】
また、以上では、RFIDタグ100が暗号値3(64bit)のうちの上位8ビットをR/W50に送信する形態について説明したが、8ビットに限られず、上位に限られず、64ビットのうちの連続する複数のビットであればよい。また、64ビットすべてを送信してもよい。
【0094】
また、以上では、RFIDタグ100がR/W50を認証する処理に際して、R/W50が共通鍵でカウント値M+1(64bit)を暗号化した暗号値1(64bit)をRFIDタグ100が共通鍵で復号化する形態について説明したが、
図5に示すように、R/W50が共通鍵でカウント値M+1(64bit)を復号化した暗号値1(64bit)をRFIDタグ100が共通鍵で暗号化するようにしてもよい。
【0095】
図5に示すR/W50とRFIDタグ100の処理は、上述のようにRFIDタグ100がR/W50を認証する処理について、暗号化と複合化を入れ替えたこと以外は、
図2に示す処理と同様である。
【0096】
このような構成でも、R/W50からRFIDタグ100への1回の通信に基づいてRFIDタグ100がR/W50の認証を行い、RFIDタグ100からR/W50への1回の通信に基づいてR/W50がRFIDタグ100の認証を行うことができ、認証を短時間で行うことができる相互認証方法及び通信システム10を提供することができる。
【0097】
図5に示すような処理を行う場合には、RFIDタグ100は、RFIDタグ100がR/W50を認証する処理に際して暗号化を行い、R/W50がRFIDタグ100を認証する処理に際しても暗号化を行うことになる。
【0098】
このため、RFIDタグ100の制御装置110は、復号部113を含まなくてよくなり、RFIDタグ100の制御装置110の簡易化を図ることができ、コストダウンを図ることができる。なお、R/W50の制御装置60は、復号処理を行うことになるため、復号部をさらに含む構成にすればよい。
【0099】
また、RFIDタグ100にセンサ30が接続されていない場合には、
図6及び
図7に示すように相互認証処理を簡易化することができる。
【0100】
図6では、RFIDタグ100がR/W50を認証する処理は、
図2と同様である。R/W50がRFIDタグ100を認証する処理では、RFIDタグ100に検出値が存在しないため、
図2に示すような排他的論理和を演算する処理が不要になり、次のような処理を行えばよい。
【0101】
RFIDタグ100は、RFIDタグ100の主制御部111は、カウント値(M+1(64bit))をインクリメントし、M+2(64bit)にし、暗号部112は、カウント値M+2(64bit)を共通鍵で暗号化して、暗号値2(64bit)を生成する。
【0102】
R/W50は、受信モードになり、カウント値(M+1)をインクリメントしてM+2にする。R/W50は、RFIDタグ100から受信する暗号値2(64bit)を共通鍵で復号化して得るカウント値M+2(64bit)が、自己のカウント値M+2(64bit)と一致すれば、RFIDタグ100の認証成立と判定する。
【0103】
このようにセンサ30がRFIDタグ100に接続されていない場合には、論理演算部65、論理演算部115が不要になるため、システムの簡略化を図りつつ、認証を短時間で行うことができる相互認証方法及び通信システム10を提供することができる。なお、R/W50は、復号化処理を行うため、制御装置60は、復号部を含む構成になる。
【0104】
また、
図7に示す相互認証処理は、
図6に示す相互認証処理におけるRFIDタグ100がR/W50を認証する処理において、R/W50が共通鍵でカウント値M+1(64bit)を復号化した暗号値1(64bit)をRFIDタグ100が共通鍵で暗号化するように変形した処理である。
【0105】
すなわち、
図7に示す相互認証処理と、
図6に示す相互認証処理との関係は、
図5に示す相互認証処理と、
図2に示す相互認証処理との関係と同様であり、
図7に示すR/W50とRFIDタグ100の処理は、RFIDタグ100がR/W50を認証する処理について、暗号化と複合化を入れ替えたこと以外は、
図6に示す処理と同様である。
【0106】
このため、RFIDタグ100の制御装置110は、復号部113を含まなくてよくなり、RFIDタグ100の制御装置110の簡易化を図ることができ、コストダウンを図ることができる。なお、R/W50の制御装置60は、復号処理を行うことになるため、復号部をさらに含む構成にすればよい。
【0107】
以上、本発明の例示的な実施の形態の相互認証方法及び通信システムについて説明したが、本発明は、具体的に開示された実施の形態に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。
【0108】
なお、本国際出願は、2018年8月28日に出願した日本国特許出願2018-159771に基づく優先権を主張するものであり、その全内容は本国際出願にここでの参照により援用されるものとする。
【符号の説明】
【0109】
10 通信システム
30 センサ
50 R/W
60 制御装置
62 暗号部
64 認証部
65 論理演算部
66 通信部
100 RFIDタグ
110 制御装置
112 暗号部
113 復号部
114 認証部
115 論理演算部
116 通信部