説明

無線波読取装置による無線タグの認証方法

無線リーダ30によるタグ識別子データベースを介して利用可能な識別子IDを有した無線タグ20の認証方法は、リーダによる認証リクエストの送信段階E10と、タグによる少なくとも識別子に第1関数H1を適用した応答H1(ID)の送信段階E11と、タグ及びリーダによる識別子に第2関数H2を適用した新識別子H2(ID)の算出段階E15,E18とを有し、応答とデータベース内の識別子に第1関数を適用した結果とが一致した場合のリーダによる当該識別子に第3関数H3を適用した第1値H3(ID)の送信段階E13と、第1値とタグの識別子に第3関数を適用した値とが一致した場合のタグの算出した新識別子によるタグの識別子の置換段階E16と、当該新識別子に第4関数H4を適用して得た第2値H4(H2(ID))のリーダへの送信段階E17と、第2値とリーダの算出した新識別子に第4関数を適用した値とが一致した場合の当該新識別子によるデータベース内の識別子の置換段階E20とをさらに有する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、無線周波数識別読取装置による無線周波数識別タグの認証技術に関する。
詳細には、本発明は、無線周波数識別又は「RFID」の分野に有利に適用される。
【背景技術】
【0002】
無線周波数識別は、無線周波数識別タグ(又は「RFIDタグ」)と称されるマーカーを用いることで、データの格納及び取り出しをリモートで行う技術である。無線周波数タグは、例えば、粘着ラベルなど、他の物体又は製造物への貼り付け又は埋め込み可能な小さな物体である。タグには、電子チップに関連したアンテナが含まれており、アンテナは、読取装置(リーダ)と称される送受信機から送信される無線周波数リクエストを受信し、応答することを可能とする。無線周波数識別タグは、例えば、タグがパスポート、旅行チケット、又は支払いカードに組み込まれたものである場合には、個人を識別するために使用され、また、バーコードのように、製造物を識別するためにされる。
【0003】
慣習的に、読取装置は、タグの応答に対し、無線チャネルを介して特殊な問い合わせ信号を送信する。タグからの応答の一例としては、当該タグの数値的識別子がある。次いで、読取装置は、タグを識別するため又はタグの利用可能性をチェックするために、データベースの検索を行う。無線周波数識別タグの保有する私的生活(プライベートライフ)の情報、特に、個人の私的生活の情報の保護の観点から、通常、そのような情報は、読取装置において、以下の3つの特性を有した無線周波数識別タグ認証プロトコルを用いて取り扱われることが望ましい。
− プロトコルは、匿名性を有するべきである。換言すれば、認証に使用されるタグは、悪意ある第三者によって識別可能であってはならない。
− タグは、追跡可能であってはならない。換言すれば、同一のタグについて、2つの異なる認証結果が紐付けられてはならない。
− 何らかの手法、例えば、「リバースエンジニアリング」と称される手法やカードへの物理的な攻撃などにより、タグの識別子を逆取得する悪意のある行為が行われた場合に、タグの以前の認証結果を知ることが可能であってはならない。このような特性を「フォワードプライバシー」特性と称する。
【0004】
そのようなプロトコルが個人の識別に使用される場合に、上記の3つの特性が私的生活を尊重するための助けとなることは明らかである。
【0005】
大久保氏、鈴木氏、及び木下氏によって提案された「OSK」プロトコルと称されるプロトコルは、これらの3つのセキュリティ特性を提供する。本プロトコルは、以下のように説明できる。すなわち、タグは、IDを表す一意に定まる識別子を有し、かつタグを読み取る機能を有した読取装置は、すべてのタグ識別子を格納したデータベースにアクセスする。読取装置によって送信された認証リクエストを受信すると、タグは、自身の識別子のハッシュの送信によって応答する。ハッシュは、第1ハッシュ関数H、例えば、(「セキュアハッシュアルゴリズム(Secure Hash Algorithm)」である)「SHA−256」によって算出される。ここでは、このハッシュをH(ID)と称する。
【0006】
次いで、タグは、第1ハッシュ関数とは異なる第2ハッシュ関数Hを用いて自身の識別子の第2ハッシュを算出することによって、自身の識別子IDを更新する。ここでは、第2ハッシュをH(ID)と称する。よって、新たな識別子IDは、H(ID)となる。
【0007】
識別子の第1ハッシュH(ID)を受信すると、読取装置は、第1ハッシュ関数を用いて、データベース中の複数の識別子のハッシュを算出する。H(ID)に等しい値が見つかった場合、読取装置は、タグの認証を受理するとともに、タグ側と同様の手法、すなわち、H(ID)の算出によって、当該識別子IDを更新する。読取装置は、複数の識別子のデータベース中でH(ID)に等しい値を発見できなかった場合、第2ハッシュ関数Hを用いてすべての識別子のハッシュを算出し、認証が成功するまで、新たに算出した複数の識別子を用いて上記動作を繰り返す。
【0008】
以上のことから、このプロトコルについて、次のことが言える。
− タグと読取装置との間でやりとりされるのは、識別子にハッシュ関数を適用することによって取得された値である。ハッシュ関数、ここではHと称する、は、任意のxについて写像H(x)が定まり、H(x)=H(y)となるようなyを算出することが非常に困難であるという特性を有する。この特性のおかげで、タグの匿名性が保たれる。識別子のハッシュを復元しようとする悪意のある人物は、識別子を推測的(a priori)に取り出すことができない。
− 2つの認証の間にタグの識別子が更新されるので、認証リクエストに応答してタグによって送信される各メッセージは、異なる識別子に対応したものとなる。したがって、追跡不可能な特性が得られる。
− 2つの認証リクエストの間にタグの識別子が更新され、かつハッシュ関数は不可逆であるとみなせるので、タグ識別子を復元しようと試みる悪意ある第三者は、このタグ識別子と以前の認証結果とを関連付けることができない。故に、「フォワードシークレシー(Forward Secrecy)」と称される特性が得られる。
【0009】
しかしながら、この認証プロトコルは、いくつかの弱点を有している。例えば、タグは、読取装置からの各認証リクエストの後に自身の識別子を更新するので、タグに対してm個の連続した認証リクエストを行う者には、自身のタグ識別子のm回の更新を招き、タグと読取装置との間の同期に著しい損失を引き起こす。故に、読取装置による実際の認証リクエストにおいては、読取装置は、現在認証されているタグに対応する識別子を見つけた後に、複数の識別子のデータベース中のすべての識別子をm回更新する。m回の更新は、読取装置とタグとの再同期に相当する。サービス拒否型攻撃のような攻撃は、そのような無線周波数識別システムの処理能力を低下又は飽和させ、最終的には、他の認証を排除することを目的としたものである。
【0010】
無線周波数識別システムによって生成されたタグの数が大量である場合、タグの認証は、時間とリソースとの両方で高コストとなる。実行が容易であるこの種の攻撃は、無線周波数識別システムの認証プロトコルを無力化する。例えば、そのようなシステムが公共交通機関に設置され、回転式改札口(ターンスタイル)として具現されたアクセス端末において、加入者に対し、自身に提供された無線周波数識別タグを備えた加入者カードによる認証の後に、当該交通機関にアクセスすることが許可されている状況下で、特に混雑する時間帯に、加入者カードを提示してから改札口が開くのに数分も待たねばならないならば、これらの加入者は不満を抱くことだろう。
【0011】
したがって、無線周波数識別システムに対して、当該無線周波数識別システムを無力化するサービス拒否型攻撃の影響を受けない認証プロトコルが求められている。
【発明の概要】
【課題を解決するための手段】
【0012】
本発明は、無線周波数識別読取装置により無線周波数識別タグの認証を行う方法を提案することによって、このような要望に取り組む。上記タグは、読取装置が複数のタグ識別子のデータベースを介してアクセス可能な識別子を有する。上記方法は、
− 読取装置によって、タグへ認証リクエストが送信される段階と、
− タグによって、少なくとも識別子に第1関数を適用して算出した応答が送信される段階と、
− タグ及び読取装置それぞれによって、識別子に第2関数を適用した新識別子が算出される段階と
からなり、
− タグの送信した応答とデータベース内の識別子に上記第1関数を適用して得た結果とが一致した場合に、読取装置によって、データベース内の当該識別子に第3関数を適用して算出した第1値が送信される段階と、
− 送信された第1値とタグ内の識別子に第3関数を適用して得た値とが一致した場合に、タグ内の識別子がタグの算出した新識別子で置き換えられる段階と、
− タグの算出した新識別子に第4関数を適用して得た第2値が読取装置へ送信される段階と、
− 送信された第2値と読取装置の算出した新識別子に第4関数を適用して得た値とが一致した場合に、データベース内の当該タグの識別子が読取装置の算出した新識別子で置き換えられる段階と
を有することを特徴とする。
【0013】
本発明による方法では、タグ及び読取装置は、特定の条件下でのみタグ識別子の更新を行う。
【0014】
タグについては、識別子の更新は、読取装置がタグ識別子を把握したという確認を読取装置から受信し終わった後でのみ実行される。よって、タグは、信頼できる読取装置との対話が行われることを保証される。読取装置については、識別子のデータベース内のタグ識別子の更新は、タグが自身の識別子を更新したことを表すメッセージをタグから受信し、チェックした後でのみ実行される。
【0015】
したがって、タグは、読取装置毎に、各タグで信頼できる読取装置との対話を確保する。
【0016】
自身の識別子が更新されたことを通知するためにタグによって読取装置へ送信されるメッセージは、このようなメッセージがタグによる自身の識別子の更新の後に送信されるために過度の非同期性を保っており、読取装置によるデータベース内のタグ識別子の更新をトリガする。
【0017】
これによって、タグとデータベースとの過度の非同期化が可能となる。具体的には、第三者によってm個の認証リクエストがタグへ送信される場合、そのような第三者は、タグの求めるメッセージを提供することができないので、タグは、当分野の従来のプロトコルに従うような、自身の識別子のm回の更新は行わない。よって、本来の認証において、読取装置は、タグのメッセージを受け取るより前にデータベース内の識別子をm回更新する必要は無い。読取装置が多数の識別子を管理する場合、複数の更新が、タグの認証を著しく遅らせることとなる。よって、本発明による方法は、サービス拒否型のような読取装置の処理能力を低下又は飽和させて他の認証を妨げることを意図した、第三者からのそのような攻撃には反応しない。
【0018】
また、本発明による方法では、以下のセキュリティ特性が期待できる。
− 認証方法は、匿名性を有する。すなわち、タグと読取装置との間を行き来する識別子は、当該識別子に1つ以上のハッシュ関数を適用して得たハッシュ形態をとる。ハッシュ関数は、逆算が困難であるので、識別子のハッシュの復元を試みる悪意ある第三者は、認証で使用されるタグを識別できない。
− タグは、追跡不可能である。すなわち、プロトコルを使用した通常のケースでは、タグに対する2つの連続した認証を互いに結び付けることができない。これは、2つの認証の間にタグの識別子が更新されるので、各メッセージは、異なる識別子に対応する認証リクエストに応答してタグによって送信されるためである。
− 第三者がタグの識別子を取得できたとしても、彼らは、タグの以前の認証を認識できない。具体的には、識別子は、2つの連続する認証の間に更新される。さらに、逆算の困難なハッシュ関数の使用によって、以前の認証をそのようなタグ識別子に関連付けることができない。この特性は、「フォワードシークレシー」特性と称される。
【0019】
さらに、上記認証方法は、4つのハッシュ算出しか必要としないので、タグラベルにおける負荷が小さい。
【0020】
本発明の一態様では、本方法は、タグの送信した応答とデータベース内の各タグ識別子に上記第1関数を適用して得たすべての結果とが一致しなかった場合に、
− 最初に第2関数、次に第1関数が連続的に適用されるデータベース内の各識別子のうちから、タグの送信した応答を検索する段階と、
− タグの送信した応答とデータベース内のタグ識別子に最初に第2関数、次に第1関数を適用して得た結果とが一致した場合に、データベース内の当該識別子に第2関数を適用して識別子の更新を行う段階と
を有する。
【0021】
本発明による方法では、第三者に対し、タグと読取装置によって繰り返しアクセスを受けるデータベースとを非同期化できる。具体的には、タグは、読取装置から第1値H(ID)を受信した後に自身の識別子を更新するので、非同期化は、タグによる識別子の更新の後、かつタグが第2値H(H(ID))を読取装置へ送信する前に、プロトコルの割り込みによって実行される。この場合、読取装置は、データベースの更新も、新たな識別子H(ID)によるタグ識別子の置き換えも行わない。したがって、新たなタグ識別子がH(ID)であるのに対し、データベースでは、タグ識別子のIDのままであるので、タグ及び読取装置は、一度非同期化される。しかしながら、タグとデータベースとを再度非同期化することはできない。
【0022】
具体的には、第三者がタグへ新たな認証リクエストを送信する場合、そのような第三者は、タグの識別子を知らず、第1値H(ID)を生成してタグへ送信することができないので、タグは、自身の識別子の更新を行わない。
【0023】
認証リクエストに応答して乱数成分が読取装置へ送信される第2のケースでは、読取装置が識別子データベース内の識別子を無制限に検索するように、読取装置は、第1ハッシュ関数を適用して得た乱数成分のハッシュについて、データベース内を検索する。そのようなハッシュが見つからなかった場合、データベース内の各識別子に最初に第2ハッシュ関数、次に第1ハッシュ関数を適用して、データベース内を検索する。それでもハッシュが見つからなかった場合、読取装置は、それ以上検索は実行せず、認証は失敗に終わる。認証に失敗した場合、必然的に、タグが不正又は誤っていることを指す。どちらの場合でも、タグラベル又はデータベースラベルいずれの識別子の更新も行われない。
【0024】
しかしながら、タグと読取装置とが(タグは自身の識別子を更新するが、データベースはそうではないために)ひとたび非同期化され、かつ読取装置がタグへの通知のための認証リクエストを送信した場合、タグと識別子データベースとの非同期性が存在する。具体的には、タグから認証リクエストに対する応答を受信する読取装置は、データベースの第2の検索、すなわち、データベース内の各識別子に最初に第2ハッシュ関数、次に第1ハッシュ関数を適用して実行する検索の間に、この応答を識別子データベース内から見つけ出す。応答が見つけ出されると、次いで、データベース内でタグ識別子が更新され、認証プロトコルが続行される。よって、タグ及びデータベースは、この正当な認証リクエストによって再同期化がなされる。
【0025】
本発明による方法の一態様では、
− 認証リクエストは、読取装置の生成した第1乱数値(randomvalue1)を含み、
− 応答は、タグの生成した第2乱数値(randomvalue2)と、タグの識別子、読取装置から受信した第1乱数値(randomvalue1)、及び第2乱数値(randomvalue2)からなるデータに第1関数を適用して得たハッシュとを含む。
【0026】
メッセージ中での乱数値の使用は、認証方法のセキュリティを強化する。読取装置による第1乱数値randomvalue1の送信によって、タグと読取装置との間の非同期化の繰り返しを回避できる。タグの生成する第2乱数値randomvalue2は、いくつかの連続する認証間での非追跡性を確保する。特に、認証間の攻撃の場合に、タグと読取装置との間で行き来するあるメッセージが横取りされたとしても、タグ識別子は、タグによって更新されることがない。
【0027】
また、本発明は、無線周波数識別読取装置による認証がなされるように構成された無線周波数識別タグに関する。上記タグは、識別子を有するとともに、
− 読取装置から、認証リクエストと第1値とを受信するように構成された受信手段と、
− 読取装置へ、上記認証リクエストへの応答と第2値とを送信するように構成された送信手段と、
− 少なくとも識別子に第1関数を適用して上記応答を算出するように構成された応答算出手段と、
− 識別子に第2関数を適用して新識別子を算出するように構成された新識別子算出手段と、
− 新識別子に第4関数を適用して第2値を算出するように構成された第2値算出手段と、
− 識別子に第3関数を適用して第3値を算出するように構成された第3値算出手段と、
− タグ内の識別子を新識別子で置き換えるように構成された識別子置換手段と、
− 受信した第1値と算出した第3値とを比較し、一致した場合に、識別子置換手段を起動するように構成された比較手段と
を具備する。
【0028】
また、本発明は、タグ識別子のデータベースにアクセスすることにより無線周波数識別読取装置で利用可能となる識別子によって識別がなされる少なくとも1つの無線周波数識別タグの認証を行うように構成された無線周波数識別読取装置に関する。上記読取装置は、
− タグへ、認証リクエストと第1値とを送信するように構成された送信手段と、
− タグから、上記認証リクエストに対する応答と第2値とを受信するように構成された受信手段と、
− 算出のための手段であって、
・データベース内のタグに関連する識別子に第2関数を適用して算出したタグの新識別子と、
・データベース内のタグに関連する識別子に第3関数を適用して算出した第1値と、
・新識別子に第4関数を適用して算出した第3値と
を算出するように構成された算出手段と、
− データベース内のタグに関連する識別子を検索するための手段であって、タグの送信した応答とデータベース内の識別子に第1関数を適用して得た結果とが一致するか否かの判断を行い、一致した場合に、送信手段に、データベース内のタグに関連する上記識別子に第3関数(H)を適用して算出した第1値の送信を行わせるように構成された検索手段と、
− データベース内のタグに関連する識別子を新識別子で置き換えるように構成された置換手段と、
− タグから受信した第2値と第3値とを比較し、第2値と第3値とが一致した場合に、上記置換手段を起動するように構成された比較手段と
を具備する。
【0029】
本発明による読取装置の一態様では、
− 算出手段は、データベース内のタグ識別子に最初に第2関数、次に第1関数を連続的に適用するようにさらに構成され、
− データベース内のタグに関連する識別子の検索手段は、タグの送信した応答とデータベース内の各タグ識別子に上記第1関数を適用して得たすべての結果とが一致しなかった場合に、算出手段によって最初に第2関数、次に第1関数が連続的に適用されるデータベース内の各識別子のうちから、タグの送信した応答を検索するようにさらに構成され、
− 置換手段は、タグの送信した応答とデータベース内のタグ識別子に最初に第2関数、次に第1関数を適用して得た結果とが一致した場合に、当該識別子に第2関数を適用してデータベース内の識別子を更新するようにさらに構成される。
【0030】
また、本発明は、
− 本発明による上記無線周波数識別読取装置と、
− 本発明による、少なくとも1つの上記無線周波数識別タグと
からなる無線周波数認証システムに関する。
【0031】
また、本発明は、無線周波数識別読取装置の記憶部にインストールすることを意図したコンピュータプログラムに関する。上記コンピュータプログラムは、プロセッサによって実行されたとき、本発明による無線周波数識別タグの上記認証方法の各段階を読取装置で実行するための複数の命令からなる。
【0032】
また、本発明は、本発明による上記コンピュータプログラムを格納したデータ記録媒体に関する。
【0033】
本発明のその他の詳細及び利点は、限定ではなく例示として与えられた添付の図面を参照し、具体的な実施形態の記載に目を通すことで、より良い理解が得られる。
【図面の簡単な説明】
【0034】
【図1】本発明の一実施形態による、無線周波数識別読取装置によって無線周波数識別タグを認証するための方法の各ステップを示した図である。
【図2】本発明による、無線周波数識別タグの第1実施形態を例示した図である。
【図3】図2に示した無線周波数識別タグの認証を行うように構成された無線周波数識別読取装置の第1実施形態を例示した図である。
【発明を実施するための形態】
【0035】
これより、無線周波数識別読取装置による無線周波数識別タグの認証方法の各ステップについて、図1を参照して説明する。
【0036】
無線周波数識別読取装置30は、無線周波数識別タグ一式の認証を行うように構成される。上記無線周波数識別タグ一式は、読取装置30がアクセス可能な複数のタグ識別子からなるデータベース(図示せず)に記録される。一意の識別子IDが与えられた無線周波数識別タグ20が、読取装置30がアクセス可能な識別子データベースに記録される。
【0037】
認証が成功した場合、タグ20の識別子IDは、当該タグ20の識別子IDにハッシュ関数を適用することによって得られる新たな識別子を用いて、タグ側とデータベース側との両方で更新される。以降、上記ハッシュ関数をHと表す。そのような更新は、例えば、「OSK」プロトコルなど、従来技術による無線周波数識別タグ認証プロトコルによって実行されることに相当する。
【0038】
初期ステップE10において、読取装置30は、認証リクエストをメッセージm10として送信する。
【0039】
認証リクエストm10の受信後、演算及び応答送信のためのステップE11において、タグ20は、自身の識別子のハッシュH(ID)を算出して、この識別子ハッシュH(ID)を含んだ応答m11を送信する。ハッシュH(ID)は、既知の第1ハッシュ関数Hを自身の識別子IDに適用することによって算出される。例えば、タグ20は、ハッシュ関数として、SHA−256(SHAは、「セキュアハッシュアルゴリズム(Secure Hash Algorithm)」を意味する)を使用する。
【0040】
検索ステップE12において、読取装置30は、第1ハッシュ関数Hを用いて、複数のタグ識別子からなるデータベース中の各識別子のハッシュを算出して、受信した応答m11から得たハッシュと比較する。得られたハッシュが応答m11でタグから受信したハッシュH(ID)に一致した場合、これは、読取装置30がデータベース中にタグ20の識別子を発見したことを意味する。
【0041】
ステップE12で実行された検索で正の結果が得られた場合(図1におけるOKの分岐)、ステップE13において、読取装置30は、タグの識別子IDに第3ハッシュ関数Hを適用することにより第1値H(ID)を算出し、次いで、算出されたこの第1値H(ID)を含んだメッセージm12を送信する。メッセージm12は、読取装置30が識別子IDを知っているということの根拠となる。これにより、タグ20は、読取装置30から受信した認証リクエストの信頼性、すなわち、読取装置30の正当性をチェックできる。
【0042】
チェックステップE14において、タグは、自身の識別子IDに第3ハッシュ関数を適用することによりチェック値を算出して、算出したチェック値とメッセージm12で受信した第1値とを比較する。これらが一致した場合、タグ20は、読取装置30が自身の識別子IDを知っているという確証を得る。すなわち、正当な読取装置30とのやりとりであることを確信する。具体的には、タグ20の識別子を推測的に知り得ない不正な読取装置は、この識別子から算出される値を含むメッセージを送信することができない。
【0043】
ステップE15において、ステップE14で実行された正のチェック結果(図1におけるOKの分岐)に続いて、タグ20は、自身の識別子の更新を行う。この目的は、タグが、自身の識別子IDに第2ハッシュ関数Hを適用して、新たな識別子H(ID)を得ることである。好ましくは、第2ハッシュ関数Hは、第1ハッシュ関数Hとは異なる関数である。
【0044】
ステップE16において、タグは、メモリ(図示せず)中の自身の識別子IDを新たな識別子H(ID)に置き換える。
【0045】
本発明の変形実施形態においては、新たな識別子の算出と、新たな識別子によるタグ20のメモリ中の識別子IDの置き換えとが、同一のステップで行われる。よって、新たな識別子H(ID)のための一時記憶装置を必要とせず、タグのメモリ容量を削減するという利点を得る。
【0046】
ステップE17において、タグ20は、ステップE15で算出された新たな識別子H(ID)に第4ハッシュ関数Hを適用することにより算出された第2値を含んだメッセージm13を送信する。メッセージm13は、タグ20が自身の識別子IDの更新を実行したことを読取装置30に通知するために、タグ20によって送信される。メッセージm13はタグ20の識別子IDに基づくものなので、他者は、そのようなメッセージを送信することができない。したがって、メッセージm13を受信する読取装置30は、このようなメッセージが認証プロセス中のタグを送信元としたものであるという確証を得る。
【0047】
ステップE18において、読取装置は、自身の識別子IDに第2ハッシュ関数Hを適用することにより、タグの新たな識別子を算出する。
【0048】
チェックステップE19において、読取装置は、ステップE18で算出した新たな識別子H(ID)に第4ハッシュ関数を適用することによって、チェック値を算出し、算出したチェック値とメッセージm13で受信した第2値とを比較する。これらが一致した場合、読取装置30は、タグ20が自身の識別子IDの更新を実行したということを確信する。
【0049】
ステップE20において、ステップE19で行われた正のチェック(図1におけるOKの分岐)に続いて、読取装置30は、識別のデータベースにおいて、タグ20の識別子IDをステップE18で算出した新たな識別子H(ID)に置き換えることによって、タグ20の識別子を更新する。
【0050】
本発明の一実施形態(図示せず)では、ステップE12において、タグから受信した応答H(ID)がタグ識別子のデータベース中に見つからなかった場合、読取装置30は、応答H(ID)と、データベース内の各識別子に最初に第2ハッシュ関数H、次に第1ハッシュ関数Hを連続的に適用することによって算出された第2ハッシュとを比較する。受信した応答が見つかった場合、読取装置は、当該識別子に第2ハッシュ関数を適用することによってデータベース内の識別子IDを更新する。識別子のデータベース内の各識別子のうち、タグ20の識別子だけが更新されるということに留意されたい。次いで、本方法は、ステップE13に進み、タグ20の識別子IDが、更新後の識別子H(ID)となる。
【0051】
本発明のこの実施形態では、受信した応答が読取装置によって見つけ出されなかった場合、認証手続きは停止する。最初に第2ハッシュ関数、次に第1ハッシュ関数と2段階の適用がなされるデータベース内の各識別子を対象とする、応答の新たな検索は提供されない。具体的には、そのような検索は、本発明の方法に対しては、タグと読取装置が繰り返しアクセスするデータベースとを非同期化することが不可能なので意味をなさない。
【0052】
各種ハッシュの算出に用いられる各ハッシュ関数H,H,H,Hは、例えば、関数SHA−256、SHA−384、SHA−512である。
【0053】
本発明の一実施形態では、1つのハッシュ関数(明細書中では、Hと表す)だけを使用することができ、例えば、以下を算出する。
− タグの識別子IDに、連結定数、例えば1、とともにハッシュ関数Hを適用してH(ID)を算出する(H(1‖ID)と表される)。
− タグの識別子IDに、第2連結定数、例えば2、とともにハッシュ関数Hを適用してH(ID)を算出する(H(2‖ID)と表される)。
− タグの識別子IDに、第3連結定数、例えば3、とともにハッシュ関数Hを適用してH(ID)を算出する(H(3‖ID)と表される)。
− タグの識別子IDに、第4連結定数、例えば4、とともにハッシュ関数Hを適用してH(ID)を算出する(H(4‖ID)と表される)。
【0054】
よって、いくつかのパラメータ、この場合はタグの識別子ID、に対し、同一のハッシュ関数Hから4つの異なるハッシュを得ることができる。この実施形態は、タグの記憶容量が限られる場合に有利である。実際に、この実施形態は、1つのハッシュ関数だけしか必要としない。
【0055】
また、本発明の変形実施形態(図示せず)では、読取装置30によってタグ20へ送信される認証リクエストは、読取装置によって生成される第1乱数値randomvalue1が含まれる。応答の算出及び送信ステップE11において、タグは、ハッシュ関数Hを用いて、タグの識別子IDと、読取装置から受信した第1乱数値randomvalue1と、タグによって生成された第2乱数値randomvalue2とを連結して得られたデータのハッシュを算出する。上記連結は、H(ID‖randomvalue1‖randomvalue2)と表される。タグによって送信される応答m11は、得られたハッシュと、第2乱数値randomvalue2とを含む。
【0056】
読取装置による第1乱数値randomvalue1の送信により、タグと読取装置との間に同期のずれが存在したとしても、再試行を回避できる。具体的には、読取装置とタグとの間を行き来するメッセージ、例えば、第三者がタグからの応答m11を監視又は横取りしよとする場合、識別子がタグによって更新されたことを知るには、まず、タグによって読取装置へ送信されるメッセージm13の横取りを行う。メッセージm13の横取りは、タグと識別子のデータベースとの間の非同期化を引き起こす。これは、タグは自身の識別子を新たな識別子で置き換えるが、読取装置はメッセージm13を受信していないので識別子のデータベース内のタグの識別子IDを新たな識別子で置き換えていないためである。故に、第三者は、読取装置から送信される新たな認証リクエスト続いて、メッセージm13が横取りされた時点以前のやりとりで用いられていた応答m11を返すこととなる。よって、読取装置は、読取装置からの認証リクエストに対して、以前に送信されたメッセージを用いて応答した者が存在したとしても、正当なタグは認証を終えたと分かる。誤ったタグ、言うなれば、第三者に使用されるタグは、読取装置による正当な認証を受けることとなる。タグは、読取装置からの認証リクエストの後、読取装置によって送信された乱数値randomvalue1に基づいたハッシュを含む応答m11を返すので、そのような乱数値randomvalue1がこの種の攻撃を回避する。タグの識別子を知らない第三者は、そのような応答を生成不可能である。
【0057】
タグによって生成される第2乱数値randomvalue2により、いくつかの連続した認証の間の非追跡性が確保される。具体的には、第1の認証の間には、メッセージm12はタグに届かない(メッセージは、読取装置によって送信されない、又は、タグによって受信されない)ということに留意されたい。この場合、タグは、自身の新たな識別子を算出せず、自身の識別子を新たな識別子に置き換えない。よって、読取装置による認証リクエストの送信に続く、読取装置によるタグの新たな認証では、タグは、2つの認証の間にタグの識別子が変更されていなくても、第1認証の間に送信された応答とは異なる応答m11を返す。具体的には、タグによって生成された乱数値randomvalue2が、各認証時で異なるものとなる。故に、同一のタグの2つの認証を互いに結び付けることができないので、連続した認証の間の非追跡特性が完全に確保される。
【0058】
これより、本発明による無線周波数識別タグを図2を参照して説明する。本発明によるタグ20は、認証シーケンスの間に、先に記載した本発明による方法の各ステップの通りに、無線周波数識別読取装置と対話を行うように構成される。
【0059】
本明細書中に記載された一実施形態では、タグ20は、読取装置による問い合わせの際に、読取装置から自身のエネルギーを受信する受動デバイスである。タグ20は、一意に定まる識別子IDを有するとともに、通常、以下通り、複数の構成要素を具備する。
− アンテナを備え、読取装置からの受信と読取装置への送信とを行うように構成された送信及び受信手段を具備する。受信手段は、読取装置から、認証リクエスト及び第1値(H(ID))を受信するように構成される。送信手段は、読取装置へ、応答及び第2値(H(H(ID)))を送信するように構成される。
− 非プログラマブル有線ロジックの論理ゲートを形成するように構成された複数のトランジスタからなるシリコンチップ220を具備する。有線ロジックは、以下を構成する。
− 少なくとも識別子に第1関数(H)を適用するように構成された応答(H(ID))算出手段230。
− 識別子に第2ハッシュ関数(H)を適用することによって新たな識別子(H2(ID))を算出するように構成された新識別子算出手段240。
− 新たな識別子(H(ID))に第4ハッシュ関数(H)を適用することによって第2値を算出するように構成された第2値算出手段250。
− 識別子に第3関数(H)を適用することによって第3値を算出するように構成された第3値算出手段260。
− タグ内の識別子を新たな識別子(H(ID))で置き換えるように構成された識別子置換手段270。
− 読取装置から受信した第1値(H(ID))と第3値とを比較し、第1値が第3値に一致した場合に、識別子置換手段270を起動するように構成された比較手段280。
【0060】
本発明の一実施形態では、読取装置から受信した認証リクエストは、乱数値randomvalue1を有し、かつタグの返した応答は、第2乱数値randomvalue2を有しており、また、タグは、乱数値を生成するように構成された乱数値生成部(図示せず)を具備する。
【0061】
本発明の一実施形態では、受信手段210は、読取装置から第1乱数値randomvalue1を受信するようにさらに構成される。応答算出手段230は、乱数値生成部と共に動作し、タグの識別子、第1乱数値randomvalue1、乱数値生成部の生成した第2乱数値randomvalue2からなるデータに第1ハッシュ関数Hを適用するようにさらに構成される。例えば、上記データは、これら3つの値を連結したデータである。
【0062】
これより、本発明による無線周波数識別読取装置を図3を参照して説明する。
【0063】
無線周波数識別読取装置30は、タグ(図3には図示されていない)を起動する無線周波数を送信する能動デバイスであり、近接するタグに、タグの必要とするエネルギーを提供する。本発明による読取装置30は、先に記載した本発明による方法の各段階に従った認証シーケンスの間に、タグとの対話を行うように構成される。
【0064】
読取装置30は、以下の複数のモジュールからなる。
− 演算ユニット310、又は「CPU(中央演算ユニット)」
− 命令コードの実行、変数の格納などに使用される揮発性メモリ315又は「RAM(ランダムアクセスメモリ)」からなるメモリ一式。
− 無線チャネルを介した送信及び受信を行うように構成されたアンテナ325。
− タグへリクエストを送信するように構成された送信モジュール335。送信モジュール335は、送信のためにアンテナ325を使用し、かつ、アンテナ325に接続されている場合には、読取装置30の送信手段となる。具体的には、送信手段は、認証リクエスト及び第1値H(ID)をタグへ送信するように構成される。
− 送信手段325,335によって送信されたリクエストに対する応答をタグから受信するように構成された受信モジュール330。受信モジュール330は、受信のためにアンテナ325を使用し、かつ、アンテナ325に接続されている場合には、読取装置30の受信手段となる。具体的には、受信手段は、応答H(ID)及び第2値H(H(ID))をタグから受信するように構成される。
− 読取装置外部の識別子データベース(図示せず)にアクセスするためのアクセスモジュール320。
− 識別子に第2ハッシュ関数Hを適用してタグの新たな識別子を算出するように、上記識別子に第3ハッシュ関数Hを適用して第1値H(ID)を算出するように、かつ新たな識別子H(ID)に第4関数Hを適用して第3値を算出するように構成された算出モジュール340。
− データベース内の識別子に第1関数を適用することによって、識別子データベース内で、タグから受信した応答H(ID)を検索するように構成された検索モジュール345。送信手段335,325は、検索手段が応答を見つけ出した場合に、当該識別子に第3関数Hを適用して算出した第3値H(ID)を送信する。
− タグの識別子を識別子データベースの新たな識別子で置き換えるように構成された識別子置換モジュール350。
− タグから受信した第2値H(H(ID))と第3値とを比較するように構成された比較モジュール355。上記比較手段は、第2値が第3値に等しかった場合に、識別子置換モジュール350を起動する。
【0065】
各モジュールは、通信バスを介して通信を行う。
【0066】
各モジュール320,330,335,340,345,350,355は、先に記載したRFIDタグ認証方法の各ステップを実現するように構成される。好ましくは、これらは、タグ認証方法の各ステップを実行するための複数のソフトウェア命令からなるソフトウェアモジュールである。
【0067】
したがってまた、本発明は、
− プロセッサによって実行されたとき、先に記載したタグの認証方法を実現する複数の命令からなるコンピュータプログラムと、
− 上記のコンピュータプログラムを格納し、読取装置によって読み取り可能な記憶媒体と
に関する。
【0068】
ソフトウェアモジュールは、データ記録媒体に格納されるか、又はデータ記録媒体によって送信される。データ記録媒体は、ハードウェア記録媒体、例えば、CD−ROM、磁気ディスク若しくはハードディスク、又は、信号などの伝送媒体、又は、遠隔通信ネットワークであってよい。
【0069】
タグの返した応答H(ID)とデータベース内の各タグ識別子に上記第1関数を適用して得たすべての結果とが一致しない、本発明の一実施形態では、最初に第2関数、次に第1ハッシュ関数が連続的に適用されるデータベース内の識別子のうちから、送信された応答の検索を実行する。タグの送信した応答H(ID)とデータベース内のタグ識別子に最初に第2関数、次に第1関数を適用して得た結果H(H(ID))とが一致した場合、データベースにおいて、タグの識別子IDが、当該識別子に第2関数Hを適用することによって更新され、次いで、タグ20の識別子IDが、識別子H(ID)に更新される。この一実施形態では、
− 算出手段340は、データベース内のタグ識別子に最初に第2関数H、次に第1関数Hを連続的に適用するようにさらに構成され、
− データベース内のタグに関連する識別子の検索手段345は、タグの送信した応答H(ID)とデータベース内の各タグ識別子に上記第1関数を適用して得たすべての結果とが一致しなかった場合に、演算手段340によって、最初に第2関数H、次に第1関数Hが連続的に適用されるデータベース内の各識別子のうちから、タグの送信した応答をさらに検索するように構成され、
− 置換手段350は、タグの送信した応答H(ID)とデータベース内のタグ識別子に最初に第2関数、次に第1関数を適用して得た結果H(H(ID))とが一致した場合に、当該識別子に第2ハッシュ関数Hを適用して、データベース内の識別子IDを更新するようにさらに構成される。
【0070】
読取装置の送信した認証リクエストが乱数値randomvalue1を含み、かつタグの受信した応答が第2乱数値randomvalue2を含むような、本発明の別の一実施形態では、読取装置は、
− 乱数値を生成するように構成された乱数値生成部(図示せず)
をさらに具備する。
【0071】
本発明のこの実施形態では、
− 送信手段325,335は、乱数値生成部と共に動作し、認証リクエストにおいて、タグへ第1乱数値randomvalue1を送信するように構成され、
− 受信手段325,330は、タグから第2乱数値randomvalue2をさらに受信するように構成され、
− 演算手段340は、データベース内の識別子、第1乱数値randomvalue1、タグから受信した第2乱数値randomvalue2からなるデータに第1ハッシュ関数Hを適用するようにさらに構成される。例えば、上記データは、これら3つの値を連結したデータである。
【0072】
詳細には記載しないが、本発明の一実施形態では、タグ20は、能動デバイスとなる。よって、そのようなタグ20は、信号の送信を可能とするバッテリを備える。故に、タグと読取装置とは、タグが読取装置からエネルギーを受信する受動デバイスである場合に比べて、より長い距離でのやりとりが可能となる。
【0073】
詳細には記載しないが、本発明の別の実施形態では、タグ20は、チップカード状の構造を有し、暗号化マイクロプロセッサ、データメモリ、及びプログラムメモリからなる。
【符号の説明】
【0074】
20 無線周波数識別タグ(RFIDタグ)
210 アンテナ
220 シリコンチップ
230 応答算出手段
240 識別子算出手段
250 第2値算出手段
260 第3値算出手段
270 識別子置換手段
280 比較手段
30 無線周波数識別読取装置(RFIDリーダ)
310 演算ユニット(CPU)
315 揮発性メモリ(RAM)
320 データベースアクセスモジュール
325 アンテナ
330 受信モジュール
335 送信モジュール
340 算出モジュール
345 検索モジュール
350 識別子置換モジュール
355 比較モジュール

【特許請求の範囲】
【請求項1】
無線周波数識別読取装置(30)による、タグ識別子のデータベースを介して当該読取装置で利用可能となる識別子(ID)を有した無線周波数識別タグ(20)の認証方法であって、
読取装置によって、タグへ認証リクエストが送信される段階(E10)と、
タグによって、少なくとも識別子に第1関数を適用して算出した応答(H(ID))が送信される段階(E11)と、
タグ及び読取装置それぞれによって、識別子に第2関数を適用した新識別子(H(ID))が算出される段階(E15,E18)と
を有し、
タグの送信した応答(H(ID))とデータベース内の識別子に前記第1関数を適用して得た結果とが一致した場合に、読取装置(30)によって、データベース内の当該識別子に第3関数を適用して算出した第1値(H(ID))が送信される段階(E13)と、
送信された第1値(H(ID))とタグ内の識別子に第3関数(H)を適用して得た値とが一致した場合に、タグ(20)内の識別子(ID)がタグの算出した新識別子(H(ID))で置き換えられる段階(E16)と、
タグの算出した新識別子(H(ID))に第4関数を適用して得た第2値(H(H(ID)))が読取装置へ送信される段階(E17)と、
送信された第2値(H(H(ID)))と読取装置の算出した新識別子(H(ID))に第4関数(H)を適用して得た値とが一致した場合に、データベース内の当該タグの識別子が読取装置の算出した新識別子で置き換えられる段階(E20)と
をさらに有することを特徴とする方法。
【請求項2】
タグの送信した応答(H(ID))とデータベース内の各タグ識別子に前記第1関数を適用して得たすべての結果とが一致しなかった場合に、
最初に第2関数、次に第1関数が連続的に適用されるデータベース内の各識別子のうちから、タグの送信した応答を検索する段階と、
タグの送信した応答(H(ID))とデータベース内のタグ識別子に最初に第2関数、次に第1関数を適用して得た結果とが一致した場合に、データベース内の当該識別子に第2関数(H)を適用して識別子(ID)の更新を行う段階と
をさらに有することを特徴とする請求項1に記載の方法。
【請求項3】
認証リクエストが、読取装置の生成した第1乱数値(randomvalue1)を含み、
応答が、
タグの生成した第2乱数値(randomvalue2)と、
タグの識別子、読取装置から受信した第1乱数値(randomvalue1)、及び第2乱数値(randomvalue2)からなるデータに第1関数を適用して得たハッシュと
を含むことを特徴とする請求項1に記載の方法。
【請求項4】
無線周波数識別読取装置による認証がなされるように構成された、識別子(ID)を有する無線周波数識別タグであって、
読取装置から、認証リクエストと第1値(H(ID))とを受信するように構成された受信手段(210)と、
読取装置へ、前記認証リクエストへの応答と第2値(H(H(ID)))とを送信するように構成された送信手段(210)と、
少なくとも識別子に第1関数(H)を適用して前記応答(H(ID))を算出するように構成された応答算出手段(230)と、
識別子に第2関数(H)を適用して新識別子(H(ID))を算出するように構成された新識別子算出手段(240)と、
新識別子(H(ID))に第4関数(H)を適用して第2値を算出するように構成された第2値算出手段(250)と、
識別子に第3関数(H)を適用して第3値を算出するように構成された第3値算出手段(260)と、
タグ内の識別子を新識別子(H(ID))で置き換えるように構成された識別子置換手段(270)と、
受信した第1値(H(ID))と算出した第3値とを比較し、一致した場合に、識別子置換手段を起動するように構成された比較手段(280)と
を具備することを特徴とする無線周波数識別タグ。
【請求項5】
タグ識別子のデータベースにアクセスすることにより無線周波数識別読取装置で利用可能となる識別子(ID)によって識別がなされる少なくとも1つの無線周波数識別タグの認証を行うように構成された無線周波数識別読取装置であって、
タグへ、認証リクエストと第1値(H(ID))とを送信するように構成された送信手段(325,335)と、
タグから、前記認証リクエストに対する応答(H(ID))と第2値(H(H(ID)))とを受信するように構成された受信手段(325,330)と、
算出のための手段であって、
データベース内のタグに関連する識別子に第2関数(H)を適用して算出したタグの新識別子(H(ID))と、
データベース内のタグに関連する識別子に第3関数(H)を適用して算出した第1値(H(ID))と、
新識別子(H(ID))に第4関数(H)を適用して算出した第3値と
を算出するように構成された算出手段(340)と、
データベース内のタグに関連する識別子を検索するための手段であって、タグの送信した応答(H(ID))とデータベース内の識別子に第1関数を適用して得た結果とが一致するか否かの判断を行い、一致した場合に、送信手段に、データベース内のタグに関連する前記識別子に第3関数(H)を適用して算出した第1値(H(ID))の送信を行わせるように構成された検索手段(345)と、
データベース内のタグに関連する識別子を新識別子で置き換えるように構成された置換手段(350)と、
タグから受信した第2値(H(H(ID)))と第3値とを比較し、第2値と第3値とが一致した場合に、前記置換手段を起動するように構成された比較手段(355)と
を具備することを特徴とする無線周波数識別読取装置。
【請求項6】
算出手段(340)が、データベース内のタグ識別子に最初に第2関数(H)、次に第1関数(H)を連続的に適用するようにさらに構成され、
データベース内のタグに関連する識別子の検索手段(345)が、タグの送信した応答(H(ID))とデータベース内の各タグ識別子に前記第1関数を適用して得たすべての結果とが一致しなかった場合に、算出手段によって最初に第2関数(H)、次に第1関数(H)が連続的に適用されるデータベース内の各識別子のうちから、タグの送信した応答を検索するようにさらに構成され、
置換手段(350)が、タグの送信した応答(H(ID))とデータベース内のタグ識別子に最初に第2関数、次に第1関数を適用して得た結果(H(H(ID)))とが一致した場合に、当該識別子に第2関数(H)を適用してデータベース内の識別子を更新するようにさらに構成されることを特徴とする請求項5に記載の無線周波数識別読取装置。
【請求項7】
請求項5に記載の無線周波数識別読取装置と、
少なくとも1つの、請求項4に記載の無線周波数識別タグと
からなることを特徴とする無線周波数認証システム。
【請求項8】
無線周波数識別読取装置の記憶部にインストールすることを意図したコンピュータプログラムであって、
プロセッサによって実行されたとき、請求項1ないし3のいずれか1項に記載の無線周波数識別タグの認証方法の各段階を無線周波数識別読取装置で実行するための複数の命令からなることを特徴とするコンピュータプログラム。
【請求項9】
請求項8に記載のコンピュータプログラムを格納したデータ記録媒体。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate


【公表番号】特表2011−520373(P2011−520373A)
【公表日】平成23年7月14日(2011.7.14)
【国際特許分類】
【出願番号】特願2011−507973(P2011−507973)
【出願日】平成21年5月5日(2009.5.5)
【国際出願番号】PCT/FR2009/050828
【国際公開番号】WO2009/141561
【国際公開日】平成21年11月26日(2009.11.26)
【出願人】(591034154)フランス・テレコム (290)
【Fターム(参考)】