説明

無線タグ装置、タグ識別装置および無線通信システム

【課題】 セキュリティを維持しつつ簡易な構成で識別情報を送信可能な無線タグ装置と、該識別情報を受信して識別可能なタグ識別装置と、無線通信装置とを提供する。
【解決手段】 無線タグ装置は、乱数または疑似乱数を発生する乱数発生部と、複数ビットからなる識別情報を保持する識別情報保持部と、前記識別情報を構成する複数ビットのうち、前記乱数発生部で発生された乱数にて決定されるビットを反転してノイズ付き識別情報を生成するノイズ付加処理部と、前記ノイズ付き識別情報を無線送信する無線通信部と、を備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、識別情報を無線送信する無線タグ装置と、該識別情報を受信して識別するタグ識別装置と、無線通信装置に関する。
【背景技術】
【0002】
RFID(Radio Frequency Identify)タグは、非接触で情報の送受を行うことができるため、利用者にとって利便性が高い。利便性の確保は、RFIDタグの利用者のプライバシー漏洩のリスクとトレードオフの関係にある。
【0003】
例えば、財布にRFIDタグを付けたとすると、財布のRFIDタグの検出履歴により、その財布の所有者の行動を把握できてしまう。また、財布と同時に検出されたタグを所有者と関連づけることにより、財布を交換しても、高い確率で所有者の行動を追跡し続けることが可能になる。
【0004】
RFIDタグによるプライバシー漏洩から利用者を守るために、例えば以下の(1)〜(3)の対策が考えられる。
(1) Kill Switch / Kill Command
(2) Faraday Cage
(3) Blocker Tag
【0005】
(1)のKill Switch / Kill Commandは、タグに対して物理的あるいは論理的に無効化を指示する方式である。この方式によってタグを無効化することで、プライバシー漏洩から利用者を守れるが、タグによって得られるはずの利便性も損なってしまう。
【0006】
(2)のFaraday Cageは、電波をいっさい通さない素材の中にタグを収納し、収納している間はタグを無効化する方式である。この方式は、利用者の意図によってタグを有効化および無効化できる反面、タグ自身は対象となる商品等に付いている場合が多いため、限定された場合(例えば、タンスに収納した物は外部から読めないようにする)しか適用できない。タグによって得られる利便性はかなり制約される。
【0007】
(3)のBlocker Tagは、RSA Laboratoriesにより提案された技術である(非特許文献1参照)。RFIDタグのアンチコリジョン方式の一つであるALOHA方式(MIT Technical Report MIT-AUTOID-WH-014)にて適用可能な技術である。アンチコリジョンの特性を利用して、ある一定条件下でIDを読み取り不能にする機能を持つ。その一方で、利用者がタグ情報を読みたい場合は、Blocker Tagを遠方に持って行くか、スイッチを切るなどして無効化する必要がある。Faraday Cageに比べれば利便性は高くなるが、RFIDタグの目的の一つである自動認識としては不十分である。
【0008】
類似した目的をもつ技術として、鍵暗号方式を用いる技術が提案されている(特許文献1参照)。
【特許文献1】特開平2001-236325号公報
【非特許文献1】A, Juels, R. L. Rivest, and M. Szydlo. The Blocker Tag: Selective Blocking of RFID Tags for Consumer Privacy, ACM Press. 2003)
【発明の開示】
【発明が解決しようとする課題】
【0009】
上述した特許文献1に開示された技術では、タグ自身に十分な計算能力が必要とされるため、コスト面で不利である。
【0010】
本発明は、上述した問題を解決するためになされたものであり、その目的は、セキュリティを維持しつつ簡易な構成で識別情報を送信可能な無線タグ装置と、該識別情報を受信して識別可能なタグ識別装置と、無線通信システムとを提供することにある。
【課題を解決するための手段】
【0011】
本発明の一態様に係る無線タグ装置は、乱数または疑似乱数を発生する乱数発生部と、複数ビットからなる識別情報を保持する識別情報保持部と、前記識別情報を構成する複数ビットのうち、前記乱数発生部で発生された乱数にて決定されるビットの「0」から「1」への反転、および「1」から「0」への反転のいずれか一方向への反転を行ってノイズ付き識別情報を生成するノイズ付加処理部と、前記ノイズ付き識別情報を無線送信する無線通信部と、を備える。
【0012】
また、本発明の一態様に係るタグ識別装置は、既知の無線タグ装置の識別情報を記憶するタグ情報記憶部と、ある無線タグ装置から送信された、ノイズビットを含む複数ビットからなるノイズ付き識別情報を受信する無線通信部と、受信されたノイズ付き識別情報を構成する複数ビットの中で「0」と「1」が含まれる割合に基づいて、前記複数ビットのうちビット値が「0」または「1」のビットを、前記タグ情報記憶部に記憶された識別情報の該当ビットと比較するビット比較部と、前記ビット比較部での比較結果に基づいて、前記無線通信部で受信されたノイズ付き識別情報が前記タグ情報記憶部に記憶されているか否かを判断する判断部と、を備える。
【0013】
また、本発明の一態様に係る無線タグ装置は、あるビット列がビット列の集合に含まれるか否かを確率的に検査可能な複数ビットからなるフィルタを保持するフィルタ保持部と、乱数または疑似乱数を発生する乱数発生部と、前記フィルタを構成する複数ビットのうち、前記乱数発生部で発生された乱数にて決定される「0」のビットを「1」に反転してノイズ付きフィルタを生成するノイズ付加処理部と、前記ノイズ付きフィルタを無線送信する無線通信部と、を備える。
【0014】
また、本発明の一態様に係る無線通信システムは、識別情報に関する情報を含む無線信号を送信する無線タグ装置と、
前記無線タグ装置から送信された無線信号を受信して、前記無線タグ装置の識別情報が登録されているか否かを識別するタグ識別装置と、を備え、前記無線タグ装置は、あるビット列がビット列の集合に含まれるか否かを確率的に検査可能な複数ビットからなるフィルタを保持するフィルタ保持部と、乱数または疑似乱数を発生する乱数発生部と、前記フィルタを構成する複数ビットのうち、前記乱数発生部で発生された乱数に応じたビットを反転してノイズ付きフィルタを生成するノイズ付加処理部と、前記ノイズ付きフィルタを無線送信する無線通信部と、を有し、前記タグ識別装置は、既知の無線タグ装置の識別情報を記憶するタグ情報記憶部と、ある無線タグ装置から送信された、複数ビットからなるノイズ付きフィルタを受信する無線通信部と、前記タグ情報記憶部に記憶された識別情報の中で、受信された前記ノイズ付きフィルタに関連する識別情報が存在するか否かを判断する識別情報判断部と、を備える。
【発明の効果】
【0015】
本発明によれば、セキュリティを維持しつつ簡易な構成で識別情報を送信することができる。
【発明を実施するための最良の形態】
【0016】
以下、図面を参照しながら、本発明の一実施形態について説明する。
【0017】
(第1の実施形態)
図1は本発明の第1の実施形態による無線通信システムの概略構成を示すブロック図である。図1の無線通信システムは、タグIDを暗号化した無線信号を送信するRFIDタグTxと、受信されたタグIDを識別するリーダRyとを備えている。
【0018】
RFIDタグTxは、乱数または疑似乱数を発生する乱数発生部1と、タグIDを保持するタグID保持部2と、タグIDにノイズを付加したノイズ付きタグIDを生成するノイズ付加処理部3と、タグIDの送信制御およびタグIDの保持制御を行う制御部4とを有する。RFIDタグTxは、携帯可能なサイズであり、例えば種々の商品等に貼付される。RFIDタグTxには、特定の商品やサービスに関する情報を記憶するメモリが内蔵されることもある。
【0019】
リーダRyは、既知のタグIDを記憶する既知ID記憶部11と、受信されたノイズ付きタグIDに該当するタグIDが既知ID記憶部11に記憶されているか否かを判断するタグID比較部12と、タグIDの記憶制御およびタグIDの比較制御を行う制御部13とを有する。
【0020】
RFIDタグTx内のノイズ付加処理部3は、タグIDを構成する複数ビットからなるビット列のうち、乱数発生部1で発生される乱数にて決定されるビットを反転することにより、ノイズ付きタグIDを生成する。
【0021】
以下、図1の無線通信システムの処理動作の一例を詳述する。まず、以下の説明で用いる関数や定数等の定義を行う。サチュレーションs(x)は、ビット列xを構成する「0」ビットと「1」ビットのうち、「1」ビットの割合を示す。
【0022】
ノイズ関数N2(x, sat)は、サチュレーションs(z)が予め定めた閾値satに近づくように、ビット列zに対してランダムなビット操作を行う関数であり、N2(x, sat)の出力がノイズ付きタグIDである。ここでいうビット操作は、サチュレーションs(z)<satの場合は「0」になっているビットをランダムに「1」に反転し、サチュレーションs(z)≧satの場合は「1」を「0」にする操作である。以下では、sat=0.5とする。
【0023】
タグTxは、x番目(x=1〜n)のタグTxである。Tx.idは、タグTxのタグIDである。N2(Tx,id, sat)は、タグTxのノイズ付きIDである。リーダRyはy番目のリーダRyであり、Ry.Ti(i=1〜p)はリーダRyが知っているタグIDのリストである。
【0024】
図2はタグTxの処理動作の一例を示すフローチャートである。まず、リーダRyからのタグIDの読み出し要求を受信する(ステップS1)。次に、タグTx内の制御部4は、タグID保持部2に保持されているタグIDを読み出して、ノイズ付加処理部3に供給する(ステップS2)。次に、ノイズ付加処理部3は、一方向性のノイズ関数N2を利用して、タグIDにノイズを付加したノイズ付きタグIDを生成する(ステップS3)。タグIDをTx.idとするとき、ノイズ付きタグIDはN2(Tx.id, 0.5)と表される。ノイズ付きタグIDは、乱数を利用して生成されるため、リーダRyがタグTxのタグIDの読み出すたびに異なる値になる。したがって、ノイズ付きタグIDに基づいてタグTxのタグIDを特定することは難しい。
【0025】
ノイズ付加処理部3は、タグIDにノイズを付加する際、ノイズ付きタグIDのビット列に含まれる「0」と「1」の出現割合が等しくなるようにする。例えば、タグIDのs(x)が0.5未満の場合は、「0」の割合が「1」よりも多いため、「0」のビットのいずれかを「1」にする。逆に、s(x)が0.5以上の場合は、「1」の割合が「0」よりも多いため、「1」のビットのいずれかを「0」にする。このステップをs(x)≒0.5となるまで繰り返す。タグTx内の制御部は、生成されたノイズ付きタグIDを無線送信する(ステップS4)。
【0026】
図3はリーダRyの処理手順の一例を示すフローチャートである。リーダRyはノイズ付きタグIDを受信すると(ステップS11)、ノイズ付きタグIDがID記憶部に記憶されているタグIDのいずれかに該当するか否かを検証するID絞り込み手順を行う(ステップS12)。ここでは、以下の手順で検証を行う。
【0027】
ID記憶部に記憶されている各タグID(Ti:i=1〜n)について、サチュレーションs(Ry.Ti)が0.5未満か否かを判定し、0.5未満であれば、「0」を「1」に反転するノイズが付加され、0.5以上であれば、「1」を「0」に反転するノイズが付加されたことがわかる。したがって、s(R1.Ti)が0.5未満のタグIDについては、「0」のビットはノイズであるか元々の信号であるか区別できないことから、「1」のビットに注目する。そして、注目したビットについて、ノイズ付きタグIDのビット値と比較する。逆にs(R1, Ti)が0.5以上のタグIDについては、「0」のビットに注目し、注目したビットについてノイズ付きタグIDのビット値と比較する。
【0028】
以上の比較を行った結果、得られたノイズ付きタグIDに対応する可能性があるタグIDのリストを作成する(ステップS13)。
【0029】
以下、ID絞り込み手順の具体例を説明する。ノイズ付きタグIDが「101011」(2進数)で、ID記憶部に記憶されているタグIDが「100001」,「011011」,「000100」であったとする。「100001」はサチュレーションsが0.5未満であるため、「1」のビットに注目する。ノイズ付きタグIDの該当ビットがすべて「1」であるため、対応するタグIDである可能性が高い。一方、「011011」はサチュレーションsが0.5以上であるため、「0」のビットに注目する。ノイズ付きタグIDの該当ビットに「1」が含まれるため、対応するタグIDである可能性はない。また、「000100」は「1」のビットに注目する。ノイズ付きタグIDの該当ビットは「0」であるため、対応するタグIDである可能性はない。
【0030】
このようにして、タグIDの絞り込みを行う。ただし、上述したID絞り込み手順では、絞り込んだタグIDで間違いないという保証は得られない。そこで、リーダRyは、タグTxに対して、所定の確認手続を行って、タグIDの特定を行ってもよい(ステップS14)。この確認手続の詳細については後述する。
【0031】
このように、第1の実施形態では、タグTx側で自己のタグIDに一方向のノイズを付加して送信し、そのノイズ付きタグIDを受信したリーダRyがID絞り込み手順を行って、該当するタグIDを検索するため、タグTx側の構成を複雑にすることなく、セキュリティを保持した状態でタグIDの送受を行うことができる。すなわち、タグTx側は、単にノイズを付加する処理だけを行うため、簡易なチップ構成で実現でき、タグTxのコストおよび消費電力を削減でき、小型薄型化も実現できる。
【0032】
(第2の実施形態)
第2の実施形態は、一方向性ノイズとブルームフィルタを利用してタグIDの送信を行うものである。
【0033】
図4は本発明の第2の実施形態による無線通信システムの概略構成を示すブロック図である。図4の無線通信システムは、図1と同様にタグTxとリーダRyとを備えている。タグTxは、固定ブルームフィルタを保持するフィルタ保持部5と、乱数または疑似乱数を発生する乱数発生部1と、フィルタ保持部5から読み出した固定ブルームフィルタに対してノイズを付加するノイズ付加処理部3と、全体の制御を行う制御部4とを有する。リーダRyは、既知のタグIDを記憶する既知ID記憶部11と、受信された固定ブルームフィルタに対応するタグTxを識別するフィルタ処理部14と、全体の制御を行う制御部13とを有する。
【0034】
タグTx内のフィルタ保持部5に保持される固定ブルームフィルタは、BF([i], phase, Len)で表される。Lenはフィルタの長さ、phaseはハッシュ回数、iはタグのIDを示す。
【0035】
ブルームフィルタとは、あるバイト列がバイト列の集合に含まれるかどうかを確率的に検査するために用いられるフィルタである。ブルームフィルタを検査することにより、バイト列集合Sに任意のバイト列Dが含まれるかどうかが判明する。
【0036】
本実施形態では、タグIDを用いてブルームフィルタを生成し、これを固定ブルームフィルタと呼ぶ。固定ブルームフィルタの生成は必ずしもタグTxの内部で行う必要はない。タグTxの製造段階で、外部装置で生成した固定ブルームフィルタをタグTx内のフィルタ保持部5に保持すればよい。タグTxの外部で固定ブルームフィルタを生成するようにすれば、タグTx内で同フィルタの生成を行う必要がなくなり、タグTxの構成を簡略化できる。
【0037】
リーダRyは、タグTxが所持する固定ブルームフィルタによってタグIDを推測できるため、タグTxはタグIDを保持する必要はない。
【0038】
以下、固定ブルームフィルタの生成手順について説明する。図5は固定ブルームフィルタの生成手順の一例を示すフローチャートである。上述したように、この処理は、必ずしもタグTx自身で行う必要はない。
【0039】
まず、長さLenのビット列Fを用意し、全ビットを「0」に初期化する(ステップS21)。次に、値域が[1, Len]となる、phase個の独立したハッシュ関数hn()(ただし、n=1〜phase)を用意する(ステップS22)。同一のアルゴリズムに対して異なる定数(salt)を与えてもよい。
【0040】
次に、タグIDを用いて以下の処理を行う。まず、ハッシュ関数の繰り返す回数を表す変数pを0に初期化する(ステップS23)。次に、変数pがphaseより大きいか否かを判定し(ステップS24)、大きければ処理を中止する。
【0041】
変数pがphase以下であれば、ステップS22で用意したハッシュ関数を用いて、idx=hn(タグID)を計算する(ステップS25)。次に、ビット列Fのidxビット目を1にする(ステップS26)。次に、変数pに「1」を加えてステップS24に戻る(ステップS27)。
【0042】
タグTx内のノイズ付加処理部3は、図5の手順で生成されてフィルタ保持部5に保持された固定ブルームフィルタを読み出して、第1の実施形態と同様に一方向性ノイズ関数N()を実行することにより、ノイズを付加する。ここでは、固定ブルームフィルタの全ビットのうち「1」の割合(サチュレーション)が予め定めた基準値sat(例えば、0.5)より大きくなるまで、ランダムにビットを「1」にする。このような手順により、ノイズ付き固定ブルームフィルタTx.BFnが生成される。生成されたノイズ付き固定ブルームフィルタTx.BFnは、制御部4を介して無線送信される。
【0043】
リーダRy内のフィルタ処理部14は、受信したノイズ付き固定ブルームフィルタが既知ID記憶部11に記憶されたタグIDに対応するか否かを検出するために、関数TBF()を用いて検証を行う。関数TBF(F, d)は、任意のデータdが固定ブルームフィルタFに含まれる可能性があるか否かを検証するものである。
【0044】
図6は第2の実施形態による無線通信システムの処理動作を示すフローチャートである。まず、同システムの外部から、リーダRyに対してタグTxの読み出し指令が与えられる(ステップS31)。リーダRy内の制御部13は、タグTxに対して、タグTxが保持する固定ブルームフィルタの情報を送信するよう指示する信号(フィルタ情報送出信号)を送信する(ステップS32)。
【0045】
タグTxは、リーダRyからのフィルタ情報送出信号を受信した後(ステップS33)、タグTx内の制御部4は、ノイズ付き固定ブルームフィルタを送信すべく、各部を駆動する(ステップS34)。フィルタ保持部5は、保持している固定ブルームフィルタをノイズ付加処理部3に送信する(ステップS35)。ノイズ付加処理部3は、フィルタ保持部5が保持していた固定ブルームフィルタに対して「0」から「1」への一方向性のノイズを付加して、ノイズ付き固定ブルームフィルタを生成する(ステップS36)。タグTx内の制御部4は、生成されたノイズ付き固定ブルームフィルタをアンテナから無線送信する(ステップS37)。
【0046】
リーダRy内の制御部13は、ノイズ付き固定ブルームフィルタを受信し(ステップS38)、フィルタ処理部14に送信する(ステップS39)。フィルタ処理部14は、既知のタグIDのうち、受信されたノイズ付き固定ブルームフィルタに対して陽性になるものがあるか否かを検索する(TBF()処理)(ステップS40)。これにより、既知ID記憶部11に記憶されているタグIDの中に、受信されたノイズ付き固定ブルームフィルタに対応するタグIDが存在するか否かを示すリストを作成する(ステップS41)。制御部13は、作成されたリストを、ステップS31で指令を与えた外部装置に送信する(ステップS42)。
【0047】
このように、第2の実施形態では、固定ブルームフィルタに一方向性のノイズを付加したノイズ付き固定ブルームフィルタをタグTxからリーダRyに送信し、リーダRy内部でノイズ付きフィルタの検証を行うため、第1の実施形態よりもセキュリティ性および確実性を高めることができる。また、タグTxの製造時等に、外部で生成した固定ブルームフィルタをタグTx内に保持しておけばよいため、タグTx自身で固定ブルームフィルタを生成しなくてすみ、タグTxの内部構成を簡略化できる。
【0048】
(他の実施形態1:ID確認手続)
第1および第2の実施形態で行ったID絞り込み手順とフィルタの絞り込み手順では、確率的にそこに存在する可能性が否定できないタグTxのIDリストが得られるだけで、実際にそこに該当するタグTxが存在するか否かは確認できない。このため、タグTxを特定するには、実際のタグIDをタグTx側に提示して確認する必要がある。この確認手続の際、タグIDを平文のまま搬送波で伝送する場合は、盗聴等の攻撃に注意する必要がある。
【0049】
具体的には、タグTx側のタグIDと適合するIDの問い合わせを受けた場合は真、タグIDと異なるIDの問い合わせを受けた場合は偽を示す信号を返す機能をタグTx側に実装し、この機能を利用して、リーダRyがタグIDリストのそれぞれに問い合わせを行う実装が考えられる。このような手続を総称してID確認手続と呼ぶ。
【0050】
ID確認手続において、平文でタグIDを送信するのではなく、乱数と一方向性のハッシュ関数を併用した方式によりID確認を行うことも可能である。ただし、そのためには、ハッシュ関数の計算能力をタグTx側が持たなければならない。この場合、リーダRyはタグTxに乱数を送信し、その後、タグTxは乱数r2を生成し、受信したr1、生成したr2、タグIDから合成される数に対するハッシュ値Hを計算する。その上、r2とHを返信する。リーダはr2を手がかりに、どのIDとr1を合成すれば良いかを検証することによりIDを同定する。
【0051】
テストの結果、陽性となったIDそれぞれに対して、同様にハッシュ値を計算することで、一致するIDが存在するか否かを検証可能である。ただし、この方式は、ハッシュ関数の衝突可能性があることから、完璧ではない。しかし、衝突困難なアルゴリズム(SHA-256等)を利用すれば、その可能性は無視できる。
【0052】
一方、ID確認手続において、曖昧な部分のみを排除するための確認を行う方式も考えられる。この場合、タグIDの曖昧な部分を排除する方式と、固定ブルームフィルタの衝突部分を排除する方式とが考えられる。タグIDの曖昧な部分を排除する方式では、ID絞り込み手順ないしはフィルタによるID絞り込み手順の結果、残ったID候補のうち、差異があるビットに注目し、この差異を利用して最終的なタグTxの候補を明確にする。
【0053】
具体的には、候補が4つ存在し、タグIDを示すビット列の4ビット目と6ビット目に注目することで、注目しているタグTxが候補のいずれかに一意に定まる場合は、タグTxに対して4ビット目と6ビット目について問い合わせを行う。
【0054】
なお、この問い合わせは、タグTxのIDの一部を直接読み出す問い合わせでもあるため、タグTxはタイマ等を用いて、連続した問い合わせを排除するような機能を設けるのが望ましい。
【0055】
上述した差異ビットだけを送信させる方式では、高い確率で対象となるタグTxを識別できる一方で、盗聴者にはタグTxが識別できないという利点がある。また、タグTxではなく、ノイズ付き固定ブルームフィルタのビット列に注目し、同様に曖昧さの原因となっているビットについてタグTxに問い合わせる方式も考えられる。
【0056】
異なる方式として、ハッシュ回数phaseを上げることや、ハッシュ関数の生成時に与えられる定数saltを複数設けて複数の固定ブルームフィルタを生成することにより、固定ブルームフィルタの偽陽性の発生確率を現実的に安全な水準(1.0E-10等)まで下げることができる。この場合、IDの確認手続が不要となる可能性がある。この方式は、上述のハッシュ関数を用いる方式に比べて、タグTx側の計算コストの面で優れている一方、万一必ず偽陽性が発生するタグIDとリーダRyが知るID集合の組み合わせが発生した場合、回避方法が存在しないという欠点がある。その欠点を補うためには、固定ブルームフィルタを多数設けることによって偽陽性の発生確率を下げる必要があり、タグTx内のメモリ容量を増やす必要があることから、コストが上昇するおそれがある。
【0057】
十分に低い偽陽性発生確率は、同時にオフラインでのブルートフォース攻撃の可能性を与える一方で、本方式はこの攻撃の成功可能性を十分に下げることができる。
【0058】
(他の実施形態2:衝突防止方式(Anti-Collision))
上述した第1および第2の実施形態において、衝突防止機能を設けてもよい。衝突防止を行うには、タグTx内の乱数発生部1にて生成された乱数を一時的にタグTx自身のIDとして利用することで、ALOHA等の既知の方式を利用できる。
【0059】
図7は衝突防止方式機能を備えた無線通信システムの概略構成の一例を示すブロック図である。図7では図4と共通する構成部分には同一符号を付しており、以下では相違点を中心に説明する。図7の無線通信システム内のタグTxは、図4の構成に加えて、一時記憶部6を有する。この一時記憶部6は、タグTx内の乱数発生部1で生成された乱数を記憶する。
【0060】
図8は図7の無線通信システムの処理手順の一例を示すフローチャートである。まず、リーダRyが周囲のタグTxに対してネゴシエーションの開始要求を行う(ステップS51)。この要求を受信したタグTxは、乱数発生部1にて乱数を生成し、生成した乱数を一時記憶部6に記憶する(ステップS52)。一時記憶部6に記憶された乱数は、一時IDとして用いられる。
【0061】
次に、この一時IDをタグTxはリーダRyに送信する(ステップS53)。次に、リーダRyにて衝突が検出されたか否かを判定する(ステップS54)。衝突が検出された場合には、上述のALOHA手順により、衝突を回避する(ステップS55)。
【0062】
ALOHAによって衝突回避を行って一時IDを同定した後、リーダRyが上述したID絞り込み手順を行う際に、タグTxがリーダRyにノイズ付きタグID(またはノイズ付き固定ブルームフィルタ)に一時IDを添えることにより、他のタグTxと誤るおそれがなくなり、通信の衝突を避けることができる(ステップS56)。
【0063】
(他の実施形態3:複数のフィルタの併用)
上述した第2の実施形態において、タグTx内に十分なメモリ容量がある場合は、複数の固定ブルームフィルタを生成して、タグTx内のフィルタ保持部5に保持しておくことができる。この場合、以下のようなフィルタを生成して通信を行う手法が考えられる。
【0064】
まず、フィルタの長さに比べて、ハッシュ回数phaseが大きい場合には、固定ブルームフィルタが同定されるリスクが高くなる。一方、フィルタの長さは、メモリ負荷のみならず、送受信に要する時間が長くなるため、通信コストの上昇につながる。したがって、タグTxは、フィルタ長Lenとハッシュ回数phaseの関係を一定に維持しつつ、通常はフィルタ長の短いフィルタを送信する。リーダRyは、偽陽性等により、同定に失敗したか、期待する偽陽性確率を低く抑える必要がある場合 (既知IDが多い場合等) に、長いフィルタを要求する。
【0065】
ハッシュ回数phaseが小さい(5程度で、偽陽性の発生確率が0.03125程度の)フィルタと、ハッシュ回数phaseが大きいフィルタ(何段階か:33程度で、偽陽性の発生確率が1.164153218269348e-10)を用意する。
【0066】
ハッシュ回数phaseに対するフィルタの長さは、タグIDのプライバシ強度を決定するパラメータである。通常は、ハッシュ回数phaseに比べて、20〜100倍程度が必要と考えられる。したがって、ハッシュ回数phaseが5の場合は100〜500ビット、ハッシュ回数phaseが33の場合は660〜3300ビット程度が必要である。
【0067】
(他の実施形態4:繰り返し読み出しによる固定ブルームフィルタ推測攻撃とその対策)
盗聴者は、タグTxの固定ブルームフィルタを知ることにより、タグTxの同定を行うことができる。タグTxのIDを知らない第三者があるタグTxを追跡する場合に、ノイズ付き固定ブルームフィルタを利用することが考えられる。ノイズ付き固定ブルームフィルタは、固定ブルームフィルタのランダムなビットを、「0」から「1」に反転する操作を行っているが、「1」を「0」に反転する操作は行っていない。したがって、あるタグTxのノイズ付き固定ブルームフィルタを多数収集して、"bitwise and"(ビット単位のアンド)を取ることにより、固定ブルームフィルタを特定することができる。
【0068】
このような固定ブルームフィルタの推測攻撃に対して、以下の3つのいずれかの方式により、盗聴者による固定ブルームフィルタの同定を困難にできる。
(1) タイマ方式
(2) 一時記憶方式
(3) 特殊ノイズ生成装置の利用
【0069】
(1)のタイマ方式は、盗聴者が取得可能なノイズ付き固定ブルームフィルタの数を、タイマを用いて制限するものである。あるタグT1のノイズ付き固定ブルームフィルタを繰り返し取得するのに時間がかかれば、異なるタグT2(あるいはT{3...n})がリーダRの検出範囲に混入する可能性が高くなり、盗聴者は固定ブルームフィルタを特定できにくくなる。このため、タグTxがリーダRyにノイズ付き固定ブルームフィルタを送信する最小送信間隔をタイマにより制御し、タグTxが短時間に多数のノイズ付き固定ブルームフィルタを送信しないようにすることができる。
【0070】
図9はタイマを備えた無線通信システムの概略構成の一例を示すブロック図である。図示のように、タグTx内にタイマ7が設けられる。このタイマ7は、ノイズ付き固定ブルームフィルタを送信してからの時間を計測する。タイマ7で計測される時間が所定時間に達しない間は、制御部は新たなノイズ付き固定ブルームフィルタを送信しないようにする。
【0071】
(2)の一時記憶方式は、上述した衝突防止方式で説明した図7の一時記憶部6を使用する。一時記憶部6にノイズ付き固定ブルームフィルタを保持することにより、同時には1種類のノイズ付き固定ブルームフィルタしか読み出せなくなり、盗聴者による固定ブルームフィルタの推測を防止できる。なお、一時記憶部6は、キャパシタ等により一時的に維持されるSRAM等により構成され、一定時間後に消えるものとする。
【0072】
(3)の特殊ノイズ生成装置は、盗聴者に不利なノイズ生成装置をノイズ付加処理部3で用いる方式である。例えば、初期ノイズが生成された後の一定時間は、そのノイズに近いノイズを生成し続けるノイズ生成関数を利用することにより、盗聴者は類似したパターンのノイズ付き固定ブルームフィルタを取得することになり、特定の固定ブルームフィルタの識別に時間がかかる。短時間で多数のノイズ付き固定ブルームフィルタを読み出すと、saturationが1に近づくという特性を持たせることにより、タイマ方式と類似の効果を得ることができる。
【0073】
図10は特殊ノイズ方式を備えた無線通信システムの概略構成の一例を示すブロック図である。図示の特殊ノイズ生成装置8は、直前のノイズ付き固定ブルームフィルタと類似したノイズを生成する。制御部は、特殊ノイズ生成装置8で生成されたノイズをノイズ付き固定ブルームフィルタに合成して無線送信する。
【0074】
(他の実施形態5:オフラインにおけるブルートフォース攻撃に対する対処方法)
追加ノイズ付き固定ブルームフィルタに対するオフラインにおけるブルートフォース攻撃は、得られたノイズ付き固定ブルームフィルタの偽陽性発生確率とID空間のサイズによって容易さが決定づけられる。ここで、ハッシュ回数phaseを30、サチュレーションを0.5と仮定する。
【0075】
仮に、ID空間が32ビットの場合、ID空間全体に対してフィルタのテストを行うと、平均して4つ程度のIDが得られる計算になる。この場合、攻撃者は、いったんフィルタからIDの候補を得てしまえば、以後、別のフィルタに対しては、この4つ程度の候補をテストするだけで、対象となるタグTxを追跡可能になる。
【0076】
また、ID空間を拡張して、仮に128ビットとした場合、攻撃は著しく困難になる上、得られるIDの集合の数も3.17E29程度となり、今後の絞り込みも同様に困難になる。
【0077】
なお、固定ブルームフィルタの特性として、元のID空間の構成を事前に規定する必要がないということがある。すなわち、ドメイン名を含むなどの任意の文字列をIDに用いることが可能である。この特性を用いることで、本実施形態によれば、攻撃者によるブルートフォース攻撃の成立を困難にできる。
【0078】
(他の実施形態6:固定ブルームフィルタ推測攻撃に対する対処方法)
盗聴者は、タグTxの固定ブルームフィルタを知ることにより、タグTxを同定可能である。したがって、ノイズ付き固定ブルームフィルタから固定ブルームフィルタを知る手法について検討する。
【0079】
ノイズ付き固定ブルームフィルタは、固定ブルームフィルタのランダムなビットを「0」から「1」に反転操作したものであるが、「1」から「0」に反転する操作は本来行わない。このため、上述したように、固定ブルームフィルタを多数取得して、bitwise andを取ることにより、固定ブルームフィルタを特定することができる。
【0080】
フィルタの長さLenのうち、固定ブルームフィルタBFsのビット数は、ほぼハッシュ回数phaseにより決定される。同ビット数は、実際には、ハッシュ回数phaseと同数か、ハッシュ値の衝突時にはハッシュ回数phaseよりもわずかに少ないビットが「1」になっている。
【0081】
したがって、phase/Lenは、フィルタ中のそのタグTxを特徴づけるビットの存在比率の期待値(特徴ビット比率)に近似する。厳密には、ハッシュ値の衝突確率は、1/Lenなので、やや小さくなる。
【0082】
ここで、追跡を行う第三者(盗聴者)は、無数のタグTxから高い確率で追跡対象となるタグTxを検出する必要がある。そこで、タグTxから送信されるノイズ付き固定ブルームフィルタBFnを受信して、そのbitwise andを取るものとする。タグTxから送信される一連のノイズ付き固定ブルームフィルタBFnをそれぞれ、BFn1,BFn2,…,BFniとする。このとき、検出された固定ブルームフィルタBFdは、すべてのbitwise andを取ったものである。
【0083】
ここで、ノイズ付き固定ブルームフィルタBFnのサチュレーションは一定(sat)であるとの前提に立つと、検出された固定ブルームフィルタBFdのサチュレーションは(1)式で表される。
(常に1のビット数+bitwise andにより生き残ったビット数)/Len
=[ Phase + ( ( Len - phase )・sat2 ^ i ) ]/Len …(1)
【0084】
ただし、sat2は固定ブルームフィルタBFsに最初から1のビット数の影響を取り除く必要がある。ここの計算ではとりあえず、sat2 = satと近似する。
【0085】
例えば、ハッシュ回数phase=10かつフィルタ長Len=500かつsat=0.5として、盗聴者がノイズ付き固定ブルームフィルタBFnを揃えた数(i)と、検出された固定ブルームフィルタBFdのサチュレーションと特徴ビット比率との比とを求める。
i=1 → 特徴ビット比率/BFdのサチュレーション=0.0392156862745098
i=2 → 特徴ビット比率/BFdのサチュレーション=0.07547169811320754
i=3 → 特徴ビット比率/BFdのサチュレーション=0.1403508771929825
i=4 → 特徴ビット比率/BFdのサチュレーション=0.2461538461538461
i=5 → 特徴ビット比率/BFdのサチュレーション=0.3950617283950617
i=6 → 特徴ビット比率/BFdのサチュレーション=0.5663716814159293
【0086】
このように、i=6の段階で、検出された固定ブルームフィルタBFdは、特徴ビット比率を半分以上含むことになる。
【0087】
複数の固定ブルームフィルタを設けることで、盗聴者は容易にタグTxを同定することができる。固定ブルームフィルタの推測攻撃を防ぐには、互いに独立した複数のノイズ付き固定ブルームフィルタBFnを盗聴者に渡さない工夫を行えばよい。また、同時に、複数のノイズ付き固定ブルームフィルタBFnが同じタグTxから発信されたものであるという確信がなければ、盗聴者はbitwise andを実行できない。
【0088】
なぜなら、異なるタグTxから生成されたノイズ付き固定ブルームフィルタBFnが混入することで、同定する固定ブルームフィルタBFsのビットを落としてしまう可能性があるからである。サチュレーションが0.5だとすると、異なるタグTxのノイズ付き固定ブルームフィルタBFnが一連のBFnに一つ混入するたびに、固定ブルームフィルタBFsに含まれていたビット情報は半分失われることになる。
【0089】
なお、具体的な攻撃防御方法として、タグTxには以下のような機能を設けてもよい。これらは、タグTxにかけられるコストとの兼ね合いで、一つあるいは複数設けることができる。
【0090】
具体的な攻撃防御方法として、タグTxには以下のような機能を設けることができる。これらは、タグTxにかけられるコストとの兼ね合いで、一つあるいは複数設けることができる。
【0091】
(1) タイマ:ノイズ付き固定ブルームフィルタを繰り返し取得するのに時間がかかれば、異なるタグTxが検出範囲に混入する等の可能性(盗聴者にとってはリスク)が高まる。このため、ノイズ付き固定ブルームフィルタBFnを送信する最小送出時間間隔をタイマにより制御し、多数のノイズ付き固定ブルームフィルタBFnを短時間に送信できないようにする。
【0092】
(2) 一時IDとの連携:衝突回避に用いる一時IDとノイズ付き固定ブルームフィルタBFnを連動させる。これにより、同じ一時IDを用いている間は、同じノイズ付き固定ブルームフィルタBFnしか送信しなくなり、盗聴者は複数のノイズ付き固定ブルームフィルタBFnを同じ一時IDに関連づけることが困難になる。
【0093】
(3) 特殊なノイズ生成関数の利用:初期ノイズが生成された後、一定期間は、そのノイズと近いノイズを生成し続けるノイズ生成関数を利用することで、固定ブルームフィルタBFdのサチュレーションの低下を抑えることができる。
【図面の簡単な説明】
【0094】
【図1】本発明の第1の実施形態による無線通信システムの概略構成を示すブロック図。
【図2】タグTxの処理動作の一例を示すフローチャート。
【図3】リーダRyの処理手順の一例を示すフローチャート。
【図4】本発明の第2の実施形態による無線通信システムの概略構成を示すブロック図。
【図5】固定ブルームフィルタの生成手順の一例を示すフローチャート。
【図6】第2の実施形態による無線通信システムの処理動作を示すフローチャート。
【図7】衝突防止方式機能を備えた無線通信システムの概略構成の一例を示すブロック図。
【図8】図7の無線通信システムの処理手順の一例を示すフローチャート。
【図9】タイマを備えた無線通信システムの概略構成の一例を示すブロック図。
【図10】特殊ノイズ方式を備えた無線通信システムの概略構成の一例を示すブロック図。
【符号の説明】
【0095】
1 乱数発生部
2 タグID保持部
3 ノイズ付加処理部
4 制御部
5 フィルタ保持部
6 一時記憶部
7 タイマ
8 特殊ノイズ生成装置
11 既知ID記憶部
12 タグID記憶部
13 制御部
Tx RFIDタグ
Ry リーダ

【特許請求の範囲】
【請求項1】
乱数または疑似乱数を発生する乱数発生部と、
複数ビットからなる識別情報を保持する識別情報保持部と、
前記識別情報を構成する複数ビットのうち、前記乱数発生部で発生された乱数にて決定されるビットの「0」から「1」への反転、および「1」から「0」への反転のいずれか一方向への反転を行ってノイズ付き識別情報を生成するノイズ付加処理部と、
前記ノイズ付き識別情報を無線送信する無線通信部と、を備えることを特徴とする無線タグ装置。
【請求項2】
既知の無線タグ装置の識別情報を記憶するタグ情報記憶部と、
ある無線タグ装置から送信された、ノイズビットを含む複数ビットからなるノイズ付き識別情報を受信する無線通信部と、
受信されたノイズ付き識別情報を構成する複数ビットの中で「0」と「1」が含まれる割合に基づいて、前記複数ビットのうちビット値が「0」または「1」のビットを、前記タグ情報記憶部に記憶された識別情報の該当ビットと比較するビット比較部と、
前記ビット比較部での比較結果に基づいて、前記無線通信部で受信されたノイズ付き識別情報が前記タグ情報記憶部に記憶されているか否かを判断する判断部と、を備えることを特徴とするタグ識別装置。
【請求項3】
あるビット列がビット列の集合に含まれるか否かを確率的に検査可能な複数ビットからなるフィルタを保持するフィルタ保持部と、
乱数または疑似乱数を発生する乱数発生部と、
前記フィルタを構成する複数ビットのうち、前記乱数発生部で発生された乱数にて決定される「0」のビットを「1」に反転してノイズ付きフィルタを生成するノイズ付加処理部と、
前記ノイズ付きフィルタを無線送信する無線通信部と、を備えることを特徴とする無線タグ装置。
【請求項4】
前記フィルタ保持部にて保持されるフィルタは、複数ビットからなる識別情報とハッシュ関数とを用いて生成されることを特徴とする請求項3に記載の無線タグ装置。
【請求項5】
前記ノイズ付加処理部は、前記フィルタ保持部で保持されているフィルタを構成する複数ビットのうち、前記乱数発生部で発生された乱数にて決定される「0」のビットを「1」に反転させた前記ノイズ付きフィルタを生成することを特徴とする請求項3または4に記載の無線タグ装置。
【請求項6】
前記フィルタ保持部は、ビット数の異なる複数のフィルタを保持し、
前記フィルタ保持部に保持された複数のフィルタのうち、いずれか一つを選択するフィルタ選択部をさらに備え、
前記ノイズ付加処理部は、前記フィルタ選択部で選択されたフィルタに対応する前記ノイズ付きフィルタを生成することを特徴とする請求項3乃至5のいずれかに記載の無線タグ装置。
【請求項7】
前記乱数発生部で発生された乱数を記憶する一時記憶部を備え、
前記無線通信部は、前記一時記憶部に記憶された乱数を前記ノイズ付きフィルタに添付して無線送信することを特徴とする請求項3乃至6のいずれかに記載の無線タグ装置。
【請求項8】
前記無線通信部からノイズ付きフィルタを送信してからの時間を計測する時間計測部を備え、
前記無線通信部は、前記時間計測部にて計測される時間が所定時間以上の場合に、次のノイズ付きフィルタを送信することを特徴とする請求項3乃至6のいずれかに記載の無線タグ装置。
【請求項9】
前記ノイズ付きフィルタに付加されたノイズに関連のあるノイズを生成するノイズ生成部を備え、
前記無線通信部は、前記ノイズ生成部で生成されたノイズを前記ノイズ付きフィルタに付加して無線送信することを特徴とする請求項3乃至6のいずれかに記載の無線タグ装置。
【請求項10】
識別情報に関する情報を含む無線信号を送信する無線タグ装置と、
前記無線タグ装置から送信された無線信号を受信して、前記無線タグ装置の識別情報が登録されているか否かを識別するタグ識別装置と、を備え、
前記無線タグ装置は、
あるビット列がビット列の集合に含まれるか否かを確率的に検査可能な複数ビットからなるフィルタを保持するフィルタ保持部と、
乱数または疑似乱数を発生する乱数発生部と、
前記フィルタを構成する複数ビットのうち、前記乱数発生部で発生された乱数に応じたビットを反転してノイズ付きフィルタを生成するノイズ付加処理部と、
前記ノイズ付きフィルタを無線送信する無線通信部と、を有し、
前記タグ識別装置は、
既知の無線タグ装置の識別情報を記憶するタグ情報記憶部と、
ある無線タグ装置から送信された、複数ビットからなるノイズ付きフィルタを受信する無線通信部と、
前記タグ情報記憶部に記憶された識別情報の中で、受信された前記ノイズ付きフィルタに関連する識別情報が存在するか否かを判断する識別情報判断部と、を備えることを特徴とする無線通信システム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate


【公開番号】特開2006−67083(P2006−67083A)
【公開日】平成18年3月9日(2006.3.9)
【国際特許分類】
【出願番号】特願2004−245209(P2004−245209)
【出願日】平成16年8月25日(2004.8.25)
【出願人】(000003078)株式会社東芝 (54,554)
【Fターム(参考)】