(57)【要約】【課題】  セキュリティを維持しつつ簡易な構成で識別情報を送信可能な無線タグ装置と、該識別情報を受信して識別可能なタグ識別装置と、無線通信装置とを提供する。【解決手段】  無線タグ装置は、乱数または疑似乱数を発生する乱数発生部と、複数ビットからなる識別情報を保持する識別情報保持部と、前記識別情報を構成する複数ビットのうち、前記乱数発生部で発生された乱数にて決定されるビットを反転してノイズ付き識別情報を生成するノイズ付加処理部と、前記ノイズ付き識別情報を無線送信する無線通信部と、を備える。【選択図】  図１
2006067083.tif 000002
【特許請求の範囲】
【請求項１】
乱数または疑似乱数を発生する乱数発生部と、
複数ビットからなる識別情報を保持する識別情報保持部と、
前記識別情報を構成する複数ビットのうち、前記乱数発生部で発生された乱数にて決定されるビットの「０」から「１」への反転、および「１」から「０」への反転のいずれか一方向への反転を行ってノイズ付き識別情報を生成するノイズ付加処理部と、
前記ノイズ付き識別情報を無線送信する無線通信部と、を備えることを特徴とする無線タグ装置。
【請求項２】
既知の無線タグ装置の識別情報を記憶するタグ情報記憶部と、
ある無線タグ装置から送信された、ノイズビットを含む複数ビットからなるノイズ付き識別情報を受信する無線通信部と、
受信されたノイズ付き識別情報を構成する複数ビットの中で「０」と「１」が含まれる割合に基づいて、前記複数ビットのうちビット値が「０」または「１」のビットを、前記タグ情報記憶部に記憶された識別情報の該当ビットと比較するビット比較部と、
前記ビット比較部での比較結果に基づいて、前記無線通信部で受信されたノイズ付き識別情報が前記タグ情報記憶部に記憶されているか否かを判断する判断部と、を備えることを特徴とするタグ識別装置。
【請求項３】
あるビット列がビット列の集合に含まれるか否かを確率的に検査可能な複数ビットからなるフィルタを保持するフィルタ保持部と、
乱数または疑似乱数を発生する乱数発生部と、
前記フィルタを構成する複数ビットのうち、前記乱数発生部で発生された乱数にて決定される「０」のビットを「１」に反転してノイズ付きフィルタを生成するノイズ付加処理部と、
前記ノイズ付きフィルタを無線送信する無線通信部と、を備えることを特徴とする無線タグ装置。
【請求項４】
前記フィルタ保持部にて保持されるフィルタは、複数ビットからなる識別情報とハッシュ関数とを用いて生成されることを特徴とする請求項３に記載の無線タグ装置。
【請求項５】
前記ノイズ付加処理部は、前記フィルタ保持部で保持されているフィルタを構成する複数ビットのうち、前記乱数発生部で発生された乱数にて決定される「０」のビットを「１」に反転させた前記ノイズ付きフィルタを生成することを特徴とする請求項３または４に記載の無線タグ装置。
【請求項６】
前記フィルタ保持部は、ビット数の異なる複数のフィルタを保持し、
前記フィルタ保持部に保持された複数のフィルタのうち、いずれか一つを選択するフィルタ選択部をさらに備え、
前記ノイズ付加処理部は、前記フィルタ選択部で選択されたフィルタに対応する前記ノイズ付きフィルタを生成することを特徴とする請求項３乃至５のいずれかに記載の無線タグ装置。
【請求項７】
前記乱数発生部で発生された乱数を記憶する一時記憶部を備え、
前記無線通信部は、前記一時記憶部に記憶された乱数を前記ノイズ付きフィルタに添付して無線送信することを特徴とする請求項３乃至６のいずれかに記載の無線タグ装置。
【請求項８】
前記無線通信部からノイズ付きフィルタを送信してからの時間を計測する時間計測部を備え、
前記無線通信部は、前記時間計測部にて計測される時間が所定時間以上の場合に、次のノイズ付きフィルタを送信することを特徴とする請求項３乃至６のいずれかに記載の無線タグ装置。
【請求項９】
前記ノイズ付きフィルタに付加されたノイズに関連のあるノイズを生成するノイズ生成部を備え、
前記無線通信部は、前記ノイズ生成部で生成されたノイズを前記ノイズ付きフィルタに付加して無線送信することを特徴とする請求項３乃至６のいずれかに記載の無線タグ装置。
【請求項１０】
識別情報に関する情報を含む無線信号を送信する無線タグ装置と、
前記無線タグ装置から送信された無線信号を受信して、前記無線タグ装置の識別情報が登録されているか否かを識別するタグ識別装置と、を備え、
前記無線タグ装置は、
あるビット列がビット列の集合に含まれるか否かを確率的に検査可能な複数ビットからなるフィルタを保持するフィルタ保持部と、
乱数または疑似乱数を発生する乱数発生部と、
前記フィルタを構成する複数ビットのうち、前記乱数発生部で発生された乱数に応じたビットを反転してノイズ付きフィルタを生成するノイズ付加処理部と、
前記ノイズ付きフィルタを無線送信する無線通信部と、を有し、
前記タグ識別装置は、
既知の無線タグ装置の識別情報を記憶するタグ情報記憶部と、
ある無線タグ装置から送信された、複数ビットからなるノイズ付きフィルタを受信する無線通信部と、
前記タグ情報記憶部に記憶された識別情報の中で、受信された前記ノイズ付きフィルタに関連する識別情報が存在するか否かを判断する識別情報判断部と、を備えることを特徴とする無線通信システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、識別情報を無線送信する無線タグ装置と、該識別情報を受信して識別するタグ識別装置と、無線通信装置に関する。
【背景技術】
【０００２】
RFID（Radio Frequency Identify）タグは、非接触で情報の送受を行うことができるため、利用者にとって利便性が高い。利便性の確保は、RFIDタグの利用者のプライバシー漏洩のリスクとトレードオフの関係にある。
【０００３】
例えば、財布にRFIDタグを付けたとすると、財布のRFIDタグの検出履歴により、その財布の所有者の行動を把握できてしまう。また、財布と同時に検出されたタグを所有者と関連づけることにより、財布を交換しても、高い確率で所有者の行動を追跡し続けることが可能になる。
【０００４】
RFIDタグによるプライバシー漏洩から利用者を守るために、例えば以下の(1)〜(3)の対策が考えられる。
(1) Kill Switch / Kill Command
(2) Faraday Cage
(3) Blocker Tag
【０００５】
(1)のKill Switch / Kill Commandは、タグに対して物理的あるいは論理的に無効化を指示する方式である。この方式によってタグを無効化することで、プライバシー漏洩から利用者を守れるが、タグによって得られるはずの利便性も損なってしまう。
【０００６】
(2)のFaraday Cageは、電波をいっさい通さない素材の中にタグを収納し、収納している間はタグを無効化する方式である。この方式は、利用者の意図によってタグを有効化および無効化できる反面、タグ自身は対象となる商品等に付いている場合が多いため、限定された場合（例えば、タンスに収納した物は外部から読めないようにする）しか適用できない。タグによって得られる利便性はかなり制約される。
【０００７】
(3)のBlocker Tagは、RSA Laboratoriesにより提案された技術である（非特許文献１参照）。RFIDタグのアンチコリジョン方式の一つであるALOHA方式（MIT Technical Report MIT-AUTOID-WH-014）にて適用可能な技術である。アンチコリジョンの特性を利用して、ある一定条件下でIDを読み取り不能にする機能を持つ。その一方で、利用者がタグ情報を読みたい場合は、Blocker Tagを遠方に持って行くか、スイッチを切るなどして無効化する必要がある。Faraday Cageに比べれば利便性は高くなるが、RFIDタグの目的の一つである自動認識としては不十分である。
【０００８】
類似した目的をもつ技術として、鍵暗号方式を用いる技術が提案されている（特許文献１参照）。
【特許文献１】特開平2001-236325号公報
【非特許文献１】A, Juels, R. L. Rivest, and M. Szydlo.  The Blocker Tag: Selective Blocking of RFID Tags for Consumer Privacy, ACM Press. 2003）
【発明の開示】
【発明が解決しようとする課題】
【０００９】
上述した特許文献１に開示された技術では、タグ自身に十分な計算能力が必要とされるため、コスト面で不利である。
【００１０】
本発明は、上述した問題を解決するためになされたものであり、その目的は、セキュリティを維持しつつ簡易な構成で識別情報を送信可能な無線タグ装置と、該識別情報を受信して識別可能なタグ識別装置と、無線通信システムとを提供することにある。
【課題を解決するための手段】
【００１１】
本発明の一態様に係る無線タグ装置は、乱数または疑似乱数を発生する乱数発生部と、複数ビットからなる識別情報を保持する識別情報保持部と、前記識別情報を構成する複数ビットのうち、前記乱数発生部で発生された乱数にて決定されるビットの「０」から「１」への反転、および「１」から「０」への反転のいずれか一方向への反転を行ってノイズ付き識別情報を生成するノイズ付加処理部と、前記ノイズ付き識別情報を無線送信する無線通信部と、を備える。
【００１２】
また、本発明の一態様に係るタグ識別装置は、既知の無線タグ装置の識別情報を記憶するタグ情報記憶部と、ある無線タグ装置から送信された、ノイズビットを含む複数ビットからなるノイズ付き識別情報を受信する無線通信部と、受信されたノイズ付き識別情報を構成する複数ビットの中で「０」と「１」が含まれる割合に基づいて、前記複数ビットのうちビット値が「０」または「１」のビットを、前記タグ情報記憶部に記憶された識別情報の該当ビットと比較するビット比較部と、前記ビット比較部での比較結果に基づいて、前記無線通信部で受信されたノイズ付き識別情報が前記タグ情報記憶部に記憶されているか否かを判断する判断部と、を備える。
【００１３】
また、本発明の一態様に係る無線タグ装置は、あるビット列がビット列の集合に含まれるか否かを確率的に検査可能な複数ビットからなるフィルタを保持するフィルタ保持部と、乱数または疑似乱数を発生する乱数発生部と、前記フィルタを構成する複数ビットのうち、前記乱数発生部で発生された乱数にて決定される「０」のビットを「１」に反転してノイズ付きフィルタを生成するノイズ付加処理部と、前記ノイズ付きフィルタを無線送信する無線通信部と、を備える。
【００１４】
また、本発明の一態様に係る無線通信システムは、識別情報に関する情報を含む無線信号を送信する無線タグ装置と、
前記無線タグ装置から送信された無線信号を受信して、前記無線タグ装置の識別情報が登録されているか否かを識別するタグ識別装置と、を備え、前記無線タグ装置は、あるビット列がビット列の集合に含まれるか否かを確率的に検査可能な複数ビットからなるフィルタを保持するフィルタ保持部と、乱数または疑似乱数を発生する乱数発生部と、前記フィルタを構成する複数ビットのうち、前記乱数発生部で発生された乱数に応じたビットを反転してノイズ付きフィルタを生成するノイズ付加処理部と、前記ノイズ付きフィルタを無線送信する無線通信部と、を有し、前記タグ識別装置は、既知の無線タグ装置の識別情報を記憶するタグ情報記憶部と、ある無線タグ装置から送信された、複数ビットからなるノイズ付きフィルタを受信する無線通信部と、前記タグ情報記憶部に記憶された識別情報の中で、受信された前記ノイズ付きフィルタに関連する識別情報が存在するか否かを判断する識別情報判断部と、を備える。
【発明の効果】
【００１５】
本発明によれば、セキュリティを維持しつつ簡易な構成で識別情報を送信することができる。
【発明を実施するための最良の形態】
【００１６】
以下、図面を参照しながら、本発明の一実施形態について説明する。
【００１７】
（第１の実施形態）
図１は本発明の第１の実施形態による無線通信システムの概略構成を示すブロック図である。図１の無線通信システムは、タグIDを暗号化した無線信号を送信するRFIDタグTxと、受信されたタグIDを識別するリーダRyとを備えている。
【００１８】
RFIDタグTxは、乱数または疑似乱数を発生する乱数発生部１と、タグIDを保持するタグID保持部２と、タグIDにノイズを付加したノイズ付きタグIDを生成するノイズ付加処理部３と、タグIDの送信制御およびタグIDの保持制御を行う制御部４とを有する。RFIDタグTxは、携帯可能なサイズであり、例えば種々の商品等に貼付される。RFIDタグTxには、特定の商品やサービスに関する情報を記憶するメモリが内蔵されることもある。
【００１９】
リーダRyは、既知のタグIDを記憶する既知ID記憶部１１と、受信されたノイズ付きタグIDに該当するタグIDが既知ID記憶部１１に記憶されているか否かを判断するタグID比較部１２と、タグIDの記憶制御およびタグIDの比較制御を行う制御部１３とを有する。
【００２０】
RFIDタグTx内のノイズ付加処理部３は、タグIDを構成する複数ビットからなるビット列のうち、乱数発生部１で発生される乱数にて決定されるビットを反転することにより、ノイズ付きタグIDを生成する。
【００２１】
以下、図１の無線通信システムの処理動作の一例を詳述する。まず、以下の説明で用いる関数や定数等の定義を行う。サチュレーションｓ(x)は、ビット列ｘを構成する「０」ビットと「１」ビットのうち、「１」ビットの割合を示す。
【００２２】
ノイズ関数N2(x, sat)は、サチュレーションｓ(z)が予め定めた閾値satに近づくように、ビット列ｚに対してランダムなビット操作を行う関数であり、N2(x, sat)の出力がノイズ付きタグIDである。ここでいうビット操作は、サチュレーションｓ(z)＜satの場合は「０」になっているビットをランダムに「１」に反転し、サチュレーションｓ(z)≧satの場合は「１」を「０」にする操作である。以下では、sat＝0.5とする。
【００２３】
タグTxは、ｘ番目（ｘ＝１〜ｎ）のタグTxである。Tx.idは、タグTxのタグIDである。N2(Tx,id, sat)は、タグTxのノイズ付きIDである。リーダRyはｙ番目のリーダRyであり、Ry.Ti（ｉ＝１〜ｐ）はリーダRyが知っているタグIDのリストである。
【００２４】
図２はタグTxの処理動作の一例を示すフローチャートである。まず、リーダRyからのタグIDの読み出し要求を受信する（ステップＳ１）。次に、タグTx内の制御部４は、タグID保持部２に保持されているタグIDを読み出して、ノイズ付加処理部３に供給する（ステップＳ２）。次に、ノイズ付加処理部３は、一方向性のノイズ関数N2を利用して、タグIDにノイズを付加したノイズ付きタグIDを生成する（ステップＳ３）。タグIDをTx.idとするとき、ノイズ付きタグIDはN2(Tx.id, 0.5)と表される。ノイズ付きタグIDは、乱数を利用して生成されるため、リーダRyがタグTxのタグIDの読み出すたびに異なる値になる。したがって、ノイズ付きタグIDに基づいてタグTxのタグIDを特定することは難しい。
【００２５】
ノイズ付加処理部３は、タグIDにノイズを付加する際、ノイズ付きタグIDのビット列に含まれる「０」と「１」の出現割合が等しくなるようにする。例えば、タグIDのｓ(x)が0.5未満の場合は、「０」の割合が「１」よりも多いため、「０」のビットのいずれかを「１」にする。逆に、ｓ(x)が0.5以上の場合は、「１」の割合が「０」よりも多いため、「１」のビットのいずれかを「０」にする。このステップをｓ(x)≒0.5となるまで繰り返す。タグTx内の制御部は、生成されたノイズ付きタグIDを無線送信する（ステップＳ４）。
【００２６】
図３はリーダRyの処理手順の一例を示すフローチャートである。リーダRyはノイズ付きタグIDを受信すると（ステップＳ１１）、ノイズ付きタグIDがID記憶部に記憶されているタグIDのいずれかに該当するか否かを検証するID絞り込み手順を行う（ステップＳ１２）。ここでは、以下の手順で検証を行う。
【００２７】
ID記憶部に記憶されている各タグID（Ti：ｉ＝１〜ｎ）について、サチュレーションｓ(Ry.Ti)が0.5未満か否かを判定し、0.5未満であれば、「０」を「１」に反転するノイズが付加され、0.5以上であれば、「１」を「０」に反転するノイズが付加されたことがわかる。したがって、ｓ(R1.Ti)が0.5未満のタグIDについては、「０」のビットはノイズであるか元々の信号であるか区別できないことから、「１」のビットに注目する。そして、注目したビットについて、ノイズ付きタグIDのビット値と比較する。逆にｓ(R1, Ti)が0.5以上のタグIDについては、「０」のビットに注目し、注目したビットについてノイズ付きタグIDのビット値と比較する。
【００２８】
以上の比較を行った結果、得られたノイズ付きタグIDに対応する可能性があるタグIDのリストを作成する（ステップＳ１３）。
【００２９】
以下、ID絞り込み手順の具体例を説明する。ノイズ付きタグIDが「101011」（２進数）で、ID記憶部に記憶されているタグIDが「100001」，「011011」，「000100」であったとする。「100001」はサチュレーションｓが0.5未満であるため、「１」のビットに注目する。ノイズ付きタグIDの該当ビットがすべて「１」であるため、対応するタグIDである可能性が高い。一方、「011011」はサチュレーションｓが0.5以上であるため、「０」のビットに注目する。ノイズ付きタグIDの該当ビットに「１」が含まれるため、対応するタグIDである可能性はない。また、「000100」は「１」のビットに注目する。ノイズ付きタグIDの該当ビットは「０」であるため、対応するタグIDである可能性はない。
【００３０】
このようにして、タグIDの絞り込みを行う。ただし、上述したID絞り込み手順では、絞り込んだタグIDで間違いないという保証は得られない。そこで、リーダRyは、タグTxに対して、所定の確認手続を行って、タグIDの特定を行ってもよい（ステップＳ１４）。この確認手続の詳細については後述する。
【００３１】
このように、第１の実施形態では、タグTx側で自己のタグIDに一方向のノイズを付加して送信し、そのノイズ付きタグIDを受信したリーダRyがID絞り込み手順を行って、該当するタグIDを検索するため、タグTx側の構成を複雑にすることなく、セキュリティを保持した状態でタグIDの送受を行うことができる。すなわち、タグTx側は、単にノイズを付加する処理だけを行うため、簡易なチップ構成で実現でき、タグTxのコストおよび消費電力を削減でき、小型薄型化も実現できる。
【００３２】
（第２の実施形態）
第２の実施形態は、一方向性ノイズとブルームフィルタを利用してタグIDの送信を行うものである。
【００３３】
図４は本発明の第２の実施形態による無線通信システムの概略構成を示すブロック図である。図４の無線通信システムは、図１と同様にタグTxとリーダRyとを備えている。タグTxは、固定ブルームフィルタを保持するフィルタ保持部５と、乱数または疑似乱数を発生する乱数発生部１と、フィルタ保持部５から読み出した固定ブルームフィルタに対してノイズを付加するノイズ付加処理部３と、全体の制御を行う制御部４とを有する。リーダRyは、既知のタグIDを記憶する既知ID記憶部１１と、受信された固定ブルームフィルタに対応するタグTxを識別するフィルタ処理部１４と、全体の制御を行う制御部１３とを有する。
【００３４】
タグTx内のフィルタ保持部５に保持される固定ブルームフィルタは、BF([i], phase, Len)で表される。Lenはフィルタの長さ、phaseはハッシュ回数、ｉはタグのIDを示す。
【００３５】
ブルームフィルタとは、あるバイト列がバイト列の集合に含まれるかどうかを確率的に検査するために用いられるフィルタである。ブルームフィルタを検査することにより、バイト列集合Ｓに任意のバイト列Ｄが含まれるかどうかが判明する。
【００３６】
本実施形態では、タグIDを用いてブルームフィルタを生成し、これを固定ブルームフィルタと呼ぶ。固定ブルームフィルタの生成は必ずしもタグTxの内部で行う必要はない。タグTxの製造段階で、外部装置で生成した固定ブルームフィルタをタグTx内のフィルタ保持部５に保持すればよい。タグTxの外部で固定ブルームフィルタを生成するようにすれば、タグTx内で同フィルタの生成を行う必要がなくなり、タグTxの構成を簡略化できる。
【００３７】
リーダRyは、タグTxが所持する固定ブルームフィルタによってタグIDを推測できるため、タグTxはタグIDを保持する必要はない。
【００３８】
以下、固定ブルームフィルタの生成手順について説明する。図５は固定ブルームフィルタの生成手順の一例を示すフローチャートである。上述したように、この処理は、必ずしもタグTx自身で行う必要はない。
【００３９】
まず、長さLenのビット列Ｆを用意し、全ビットを「０」に初期化する（ステップＳ２１）。次に、値域が[1, Len]となる、phase個の独立したハッシュ関数hn()（ただし、ｎ＝１〜phase）を用意する（ステップＳ２２）。同一のアルゴリズムに対して異なる定数（salt）を与えてもよい。
【００４０】
次に、タグIDを用いて以下の処理を行う。まず、ハッシュ関数の繰り返す回数を表す変数ｐを０に初期化する（ステップＳ２３）。次に、変数ｐがphaseより大きいか否かを判定し（ステップＳ２４）、大きければ処理を中止する。
【００４１】
変数ｐがphase以下であれば、ステップＳ２２で用意したハッシュ関数を用いて、idx＝hn（タグID）を計算する（ステップＳ２５）。次に、ビット列Ｆのidxビット目を１にする（ステップＳ２６）。次に、変数ｐに「１」を加えてステップＳ２４に戻る（ステップＳ２７）。
【００４２】
タグTx内のノイズ付加処理部３は、図５の手順で生成されてフィルタ保持部５に保持された固定ブルームフィルタを読み出して、第１の実施形態と同様に一方向性ノイズ関数N()を実行することにより、ノイズを付加する。ここでは、固定ブルームフィルタの全ビットのうち「１」の割合（サチュレーション）が予め定めた基準値sat（例えば、0.5）より大きくなるまで、ランダムにビットを「１」にする。このような手順により、ノイズ付き固定ブルームフィルタTx.BFnが生成される。生成されたノイズ付き固定ブルームフィルタTx.BFnは、制御部４を介して無線送信される。
【００４３】
リーダRy内のフィルタ処理部１４は、受信したノイズ付き固定ブルームフィルタが既知ID記憶部１１に記憶されたタグIDに対応するか否かを検出するために、関数TBF()を用いて検証を行う。関数TBF(F, d)は、任意のデータｄが固定ブルームフィルタFに含まれる可能性があるか否かを検証するものである。
【００４４】
図６は第２の実施形態による無線通信システムの処理動作を示すフローチャートである。まず、同システムの外部から、リーダRyに対してタグTxの読み出し指令が与えられる（ステップＳ３１）。リーダRy内の制御部１３は、タグTxに対して、タグTxが保持する固定ブルームフィルタの情報を送信するよう指示する信号（フィルタ情報送出信号）を送信する（ステップＳ３２）。
【００４５】
タグTxは、リーダRyからのフィルタ情報送出信号を受信した後（ステップＳ３３）、タグTx内の制御部４は、ノイズ付き固定ブルームフィルタを送信すべく、各部を駆動する（ステップＳ３４）。フィルタ保持部５は、保持している固定ブルームフィルタをノイズ付加処理部３に送信する（ステップＳ３５）。ノイズ付加処理部３は、フィルタ保持部５が保持していた固定ブルームフィルタに対して「０」から「１」への一方向性のノイズを付加して、ノイズ付き固定ブルームフィルタを生成する（ステップＳ３６）。タグTx内の制御部４は、生成されたノイズ付き固定ブルームフィルタをアンテナから無線送信する（ステップＳ３７）。
【００４６】
リーダRy内の制御部１３は、ノイズ付き固定ブルームフィルタを受信し（ステップＳ３８）、フィルタ処理部１４に送信する（ステップＳ３９）。フィルタ処理部１４は、既知のタグIDのうち、受信されたノイズ付き固定ブルームフィルタに対して陽性になるものがあるか否かを検索する（TBF()処理）（ステップＳ４０）。これにより、既知ID記憶部１１に記憶されているタグIDの中に、受信されたノイズ付き固定ブルームフィルタに対応するタグIDが存在するか否かを示すリストを作成する（ステップＳ４１）。制御部１３は、作成されたリストを、ステップＳ３１で指令を与えた外部装置に送信する（ステップＳ４２）。
【００４７】
このように、第２の実施形態では、固定ブルームフィルタに一方向性のノイズを付加したノイズ付き固定ブルームフィルタをタグTxからリーダRyに送信し、リーダRy内部でノイズ付きフィルタの検証を行うため、第１の実施形態よりもセキュリティ性および確実性を高めることができる。また、タグTxの製造時等に、外部で生成した固定ブルームフィルタをタグTx内に保持しておけばよいため、タグTx自身で固定ブルームフィルタを生成しなくてすみ、タグTxの内部構成を簡略化できる。
【００４８】
（他の実施形態１：ID確認手続）
第１および第２の実施形態で行ったID絞り込み手順とフィルタの絞り込み手順では、確率的にそこに存在する可能性が否定できないタグTxのIDリストが得られるだけで、実際にそこに該当するタグTxが存在するか否かは確認できない。このため、タグTxを特定するには、実際のタグIDをタグTx側に提示して確認する必要がある。この確認手続の際、タグIDを平文のまま搬送波で伝送する場合は、盗聴等の攻撃に注意する必要がある。
【００４９】
具体的には、タグTx側のタグIDと適合するIDの問い合わせを受けた場合は真、タグIDと異なるIDの問い合わせを受けた場合は偽を示す信号を返す機能をタグTx側に実装し、この機能を利用して、リーダRyがタグIDリストのそれぞれに問い合わせを行う実装が考えられる。このような手続を総称してID確認手続と呼ぶ。
【００５０】
ID確認手続において、平文でタグIDを送信するのではなく、乱数と一方向性のハッシュ関数を併用した方式によりID確認を行うことも可能である。ただし、そのためには、ハッシュ関数の計算能力をタグTx側が持たなければならない。この場合、リーダRyはタグTxに乱数を送信し、その後、タグTxは乱数r2を生成し、受信したr1、生成したr2、タグIDから合成される数に対するハッシュ値Hを計算する。その上、r2とHを返信する。リーダはr2を手がかりに、どのIDとr1を合成すれば良いかを検証することによりIDを同定する。
【００５１】
テストの結果、陽性となったIDそれぞれに対して、同様にハッシュ値を計算することで、一致するIDが存在するか否かを検証可能である。ただし、この方式は、ハッシュ関数の衝突可能性があることから、完璧ではない。しかし、衝突困難なアルゴリズム(SHA-256等)を利用すれば、その可能性は無視できる。
【００５２】
一方、ID確認手続において、曖昧な部分のみを排除するための確認を行う方式も考えられる。この場合、タグIDの曖昧な部分を排除する方式と、固定ブルームフィルタの衝突部分を排除する方式とが考えられる。タグIDの曖昧な部分を排除する方式では、ID絞り込み手順ないしはフィルタによるID絞り込み手順の結果、残ったID候補のうち、差異があるビットに注目し、この差異を利用して最終的なタグTxの候補を明確にする。
【００５３】
具体的には、候補が４つ存在し、タグIDを示すビット列の４ビット目と６ビット目に注目することで、注目しているタグTxが候補のいずれかに一意に定まる場合は、タグTxに対して４ビット目と６ビット目について問い合わせを行う。
【００５４】
なお、この問い合わせは、タグTxのIDの一部を直接読み出す問い合わせでもあるため、タグTxはタイマ等を用いて、連続した問い合わせを排除するような機能を設けるのが望ましい。
【００５５】
上述した差異ビットだけを送信させる方式では、高い確率で対象となるタグTxを識別できる一方で、盗聴者にはタグTxが識別できないという利点がある。また、タグTxではなく、ノイズ付き固定ブルームフィルタのビット列に注目し、同様に曖昧さの原因となっているビットについてタグTxに問い合わせる方式も考えられる。
【００５６】
異なる方式として、ハッシュ回数phaseを上げることや、ハッシュ関数の生成時に与えられる定数saltを複数設けて複数の固定ブルームフィルタを生成することにより、固定ブルームフィルタの偽陽性の発生確率を現実的に安全な水準（1.0E-10等）まで下げることができる。この場合、IDの確認手続が不要となる可能性がある。この方式は、上述のハッシュ関数を用いる方式に比べて、タグTx側の計算コストの面で優れている一方、万一必ず偽陽性が発生するタグIDとリーダRyが知るID集合の組み合わせが発生した場合、回避方法が存在しないという欠点がある。その欠点を補うためには、固定ブルームフィルタを多数設けることによって偽陽性の発生確率を下げる必要があり、タグTx内のメモリ容量を増やす必要があることから、コストが上昇するおそれがある。
【００５７】
十分に低い偽陽性発生確率は、同時にオフラインでのブルートフォース攻撃の可能性を与える一方で、本方式はこの攻撃の成功可能性を十分に下げることができる。
【００５８】
（他の実施形態２：衝突防止方式（Anti-Collision））
上述した第１および第２の実施形態において、衝突防止機能を設けてもよい。衝突防止を行うには、タグTx内の乱数発生部１にて生成された乱数を一時的にタグTx自身のIDとして利用することで、ALOHA等の既知の方式を利用できる。
【００５９】
図７は衝突防止方式機能を備えた無線通信システムの概略構成の一例を示すブロック図である。図７では図４と共通する構成部分には同一符号を付しており、以下では相違点を中心に説明する。図７の無線通信システム内のタグTxは、図４の構成に加えて、一時記憶部６を有する。この一時記憶部６は、タグTx内の乱数発生部１で生成された乱数を記憶する。
【００６０】
図８は図７の無線通信システムの処理手順の一例を示すフローチャートである。まず、リーダRyが周囲のタグTxに対してネゴシエーションの開始要求を行う（ステップＳ５１）。この要求を受信したタグTxは、乱数発生部１にて乱数を生成し、生成した乱数を一時記憶部６に記憶する（ステップＳ５２）。一時記憶部６に記憶された乱数は、一時IDとして用いられる。
【００６１】
次に、この一時IDをタグTxはリーダRyに送信する（ステップＳ５３）。次に、リーダRyにて衝突が検出されたか否かを判定する（ステップＳ５４）。衝突が検出された場合には、上述のALOHA手順により、衝突を回避する（ステップＳ５５）。
【００６２】
ALOHAによって衝突回避を行って一時IDを同定した後、リーダRyが上述したID絞り込み手順を行う際に、タグTxがリーダRyにノイズ付きタグID（またはノイズ付き固定ブルームフィルタ）に一時IDを添えることにより、他のタグTxと誤るおそれがなくなり、通信の衝突を避けることができる（ステップＳ５６）。
【００６３】
（他の実施形態３：複数のフィルタの併用）
上述した第２の実施形態において、タグTx内に十分なメモリ容量がある場合は、複数の固定ブルームフィルタを生成して、タグTx内のフィルタ保持部５に保持しておくことができる。この場合、以下のようなフィルタを生成して通信を行う手法が考えられる。
【００６４】
まず、フィルタの長さに比べて、ハッシュ回数phaseが大きい場合には、固定ブルームフィルタが同定されるリスクが高くなる。一方、フィルタの長さは、メモリ負荷のみならず、送受信に要する時間が長くなるため、通信コストの上昇につながる。したがって、タグTxは、フィルタ長Lenとハッシュ回数phaseの関係を一定に維持しつつ、通常はフィルタ長の短いフィルタを送信する。リーダRyは、偽陽性等により、同定に失敗したか、期待する偽陽性確率を低く抑える必要がある場合 (既知IDが多い場合等) に、長いフィルタを要求する。
【００６５】
ハッシュ回数phaseが小さい（５程度で、偽陽性の発生確率が0.03125程度の）フィルタと、ハッシュ回数phaseが大きいフィルタ（何段階か：33程度で、偽陽性の発生確率が1.164153218269348e-10）を用意する。
【００６６】
ハッシュ回数phaseに対するフィルタの長さは、タグIDのプライバシ強度を決定するパラメータである。通常は、ハッシュ回数phaseに比べて、20〜100倍程度が必要と考えられる。したがって、ハッシュ回数phaseが５の場合は100〜500ビット、ハッシュ回数phaseが33の場合は660〜3300ビット程度が必要である。
【００６７】
（他の実施形態４：繰り返し読み出しによる固定ブルームフィルタ推測攻撃とその対策）
盗聴者は、タグTxの固定ブルームフィルタを知ることにより、タグTxの同定を行うことができる。タグTxのIDを知らない第三者があるタグTxを追跡する場合に、ノイズ付き固定ブルームフィルタを利用することが考えられる。ノイズ付き固定ブルームフィルタは、固定ブルームフィルタのランダムなビットを、「０」から「１」に反転する操作を行っているが、「１」を「０」に反転する操作は行っていない。したがって、あるタグTxのノイズ付き固定ブルームフィルタを多数収集して、"bitwise and"（ビット単位のアンド）を取ることにより、固定ブルームフィルタを特定することができる。
【００６８】
このような固定ブルームフィルタの推測攻撃に対して、以下の３つのいずれかの方式により、盗聴者による固定ブルームフィルタの同定を困難にできる。
(1) タイマ方式
(2) 一時記憶方式
(3) 特殊ノイズ生成装置の利用
【００６９】
(1)のタイマ方式は、盗聴者が取得可能なノイズ付き固定ブルームフィルタの数を、タイマを用いて制限するものである。あるタグT1のノイズ付き固定ブルームフィルタを繰り返し取得するのに時間がかかれば、異なるタグT2(あるいはT{3...n})がリーダRの検出範囲に混入する可能性が高くなり、盗聴者は固定ブルームフィルタを特定できにくくなる。このため、タグTxがリーダRyにノイズ付き固定ブルームフィルタを送信する最小送信間隔をタイマにより制御し、タグTxが短時間に多数のノイズ付き固定ブルームフィルタを送信しないようにすることができる。
【００７０】
図９はタイマを備えた無線通信システムの概略構成の一例を示すブロック図である。図示のように、タグTx内にタイマ７が設けられる。このタイマ７は、ノイズ付き固定ブルームフィルタを送信してからの時間を計測する。タイマ７で計測される時間が所定時間に達しない間は、制御部は新たなノイズ付き固定ブルームフィルタを送信しないようにする。
【００７１】
(2)の一時記憶方式は、上述した衝突防止方式で説明した図７の一時記憶部６を使用する。一時記憶部６にノイズ付き固定ブルームフィルタを保持することにより、同時には１種類のノイズ付き固定ブルームフィルタしか読み出せなくなり、盗聴者による固定ブルームフィルタの推測を防止できる。なお、一時記憶部６は、キャパシタ等により一時的に維持されるSRAM等により構成され、一定時間後に消えるものとする。
【００７２】
(3)の特殊ノイズ生成装置は、盗聴者に不利なノイズ生成装置をノイズ付加処理部３で用いる方式である。例えば、初期ノイズが生成された後の一定時間は、そのノイズに近いノイズを生成し続けるノイズ生成関数を利用することにより、盗聴者は類似したパターンのノイズ付き固定ブルームフィルタを取得することになり、特定の固定ブルームフィルタの識別に時間がかかる。短時間で多数のノイズ付き固定ブルームフィルタを読み出すと、saturationが１に近づくという特性を持たせることにより、タイマ方式と類似の効果を得ることができる。
【００７３】
図１０は特殊ノイズ方式を備えた無線通信システムの概略構成の一例を示すブロック図である。図示の特殊ノイズ生成装置８は、直前のノイズ付き固定ブルームフィルタと類似したノイズを生成する。制御部は、特殊ノイズ生成装置８で生成されたノイズをノイズ付き固定ブルームフィルタに合成して無線送信する。
【００７４】
（他の実施形態５：オフラインにおけるブルートフォース攻撃に対する対処方法）
追加ノイズ付き固定ブルームフィルタに対するオフラインにおけるブルートフォース攻撃は、得られたノイズ付き固定ブルームフィルタの偽陽性発生確率とID空間のサイズによって容易さが決定づけられる。ここで、ハッシュ回数phaseを30、サチュレーションを0.5と仮定する。
【００７５】
仮に、ID空間が32ビットの場合、ID空間全体に対してフィルタのテストを行うと、平均して４つ程度のIDが得られる計算になる。この場合、攻撃者は、いったんフィルタからIDの候補を得てしまえば、以後、別のフィルタに対しては、この４つ程度の候補をテストするだけで、対象となるタグTxを追跡可能になる。
【００７６】
また、ID空間を拡張して、仮に128ビットとした場合、攻撃は著しく困難になる上、得られるIDの集合の数も3.17E29程度となり、今後の絞り込みも同様に困難になる。
【００７７】
なお、固定ブルームフィルタの特性として、元のID空間の構成を事前に規定する必要がないということがある。すなわち、ドメイン名を含むなどの任意の文字列をIDに用いることが可能である。この特性を用いることで、本実施形態によれば、攻撃者によるブルートフォース攻撃の成立を困難にできる。
【００７８】
（他の実施形態６：固定ブルームフィルタ推測攻撃に対する対処方法）
盗聴者は、タグTxの固定ブルームフィルタを知ることにより、タグTxを同定可能である。したがって、ノイズ付き固定ブルームフィルタから固定ブルームフィルタを知る手法について検討する。
【００７９】
ノイズ付き固定ブルームフィルタは、固定ブルームフィルタのランダムなビットを「０」から「１」に反転操作したものであるが、「１」から「０」に反転する操作は本来行わない。このため、上述したように、固定ブルームフィルタを多数取得して、bitwise andを取ることにより、固定ブルームフィルタを特定することができる。
【００８０】
フィルタの長さLenのうち、固定ブルームフィルタBFsのビット数は、ほぼハッシュ回数phaseにより決定される。同ビット数は、実際には、ハッシュ回数phaseと同数か、ハッシュ値の衝突時にはハッシュ回数phaseよりもわずかに少ないビットが「１」になっている。
【００８１】
したがって、phase／Lenは、フィルタ中のそのタグTxを特徴づけるビットの存在比率の期待値（特徴ビット比率）に近似する。厳密には、ハッシュ値の衝突確率は、1/Lenなので、やや小さくなる。
【００８２】
ここで、追跡を行う第三者（盗聴者）は、無数のタグTxから高い確率で追跡対象となるタグTxを検出する必要がある。そこで、タグTxから送信されるノイズ付き固定ブルームフィルタBFnを受信して、そのbitwise andを取るものとする。タグTxから送信される一連のノイズ付き固定ブルームフィルタBFnをそれぞれ、BFn1，BFn2，…，BFniとする。このとき、検出された固定ブルームフィルタBFdは、すべてのbitwise andを取ったものである。
【００８３】
ここで、ノイズ付き固定ブルームフィルタBFnのサチュレーションは一定（sat）であるとの前提に立つと、検出された固定ブルームフィルタBFdのサチュレーションは（１）式で表される。
（常に１のビット数＋bitwise andにより生き残ったビット数）／Len
＝[ Phase + ( ( Len - phase )・sat2 ^ i ) ]／Len    …（１）
【００８４】
ただし、sat2は固定ブルームフィルタBFsに最初から１のビット数の影響を取り除く必要がある。ここの計算ではとりあえず、sat2 = satと近似する。
【００８５】
例えば、ハッシュ回数phase＝10かつフィルタ長Len＝500かつsat＝0.5として、盗聴者がノイズ付き固定ブルームフィルタBFnを揃えた数(i)と、検出された固定ブルームフィルタBFdのサチュレーションと特徴ビット比率との比とを求める。
ｉ＝１ → 特徴ビット比率／BFdのサチュレーション＝0.0392156862745098
ｉ＝２ → 特徴ビット比率／BFdのサチュレーション＝0.07547169811320754
ｉ＝３ → 特徴ビット比率／BFdのサチュレーション＝0.1403508771929825
ｉ＝４ → 特徴ビット比率／BFdのサチュレーション＝0.2461538461538461
ｉ＝５ → 特徴ビット比率／BFdのサチュレーション＝0.3950617283950617
ｉ＝６ → 特徴ビット比率／BFdのサチュレーション＝0.5663716814159293
【００８６】
このように、ｉ＝６の段階で、検出された固定ブルームフィルタBFdは、特徴ビット比率を半分以上含むことになる。
【００８７】
複数の固定ブルームフィルタを設けることで、盗聴者は容易にタグTxを同定することができる。固定ブルームフィルタの推測攻撃を防ぐには、互いに独立した複数のノイズ付き固定ブルームフィルタBFnを盗聴者に渡さない工夫を行えばよい。また、同時に、複数のノイズ付き固定ブルームフィルタBFnが同じタグTxから発信されたものであるという確信がなければ、盗聴者はbitwise andを実行できない。
【００８８】
なぜなら、異なるタグTxから生成されたノイズ付き固定ブルームフィルタBFnが混入することで、同定する固定ブルームフィルタBFsのビットを落としてしまう可能性があるからである。サチュレーションが0.5だとすると、異なるタグTxのノイズ付き固定ブルームフィルタBFnが一連のBFnに一つ混入するたびに、固定ブルームフィルタBFsに含まれていたビット情報は半分失われることになる。
【００８９】
なお、具体的な攻撃防御方法として、タグTxには以下のような機能を設けてもよい。これらは、タグTxにかけられるコストとの兼ね合いで、一つあるいは複数設けることができる。
【００９０】
具体的な攻撃防御方法として、タグTxには以下のような機能を設けることができる。これらは、タグTxにかけられるコストとの兼ね合いで、一つあるいは複数設けることができる。
【００９１】
(1) タイマ：ノイズ付き固定ブルームフィルタを繰り返し取得するのに時間がかかれば、異なるタグTxが検出範囲に混入する等の可能性（盗聴者にとってはリスク）が高まる。このため、ノイズ付き固定ブルームフィルタBFnを送信する最小送出時間間隔をタイマにより制御し、多数のノイズ付き固定ブルームフィルタBFnを短時間に送信できないようにする。
【００９２】
(2) 一時IDとの連携：衝突回避に用いる一時IDとノイズ付き固定ブルームフィルタBFnを連動させる。これにより、同じ一時IDを用いている間は、同じノイズ付き固定ブルームフィルタBFnしか送信しなくなり、盗聴者は複数のノイズ付き固定ブルームフィルタBFnを同じ一時IDに関連づけることが困難になる。
【００９３】
(3) 特殊なノイズ生成関数の利用：初期ノイズが生成された後、一定期間は、そのノイズと近いノイズを生成し続けるノイズ生成関数を利用することで、固定ブルームフィルタBFdのサチュレーションの低下を抑えることができる。
【図面の簡単な説明】
【００９４】
【図１】本発明の第１の実施形態による無線通信システムの概略構成を示すブロック図。
【図２】タグTxの処理動作の一例を示すフローチャート。
【図３】リーダRyの処理手順の一例を示すフローチャート。
【図４】本発明の第２の実施形態による無線通信システムの概略構成を示すブロック図。
【図５】固定ブルームフィルタの生成手順の一例を示すフローチャート。
【図６】第２の実施形態による無線通信システムの処理動作を示すフローチャート。
【図７】衝突防止方式機能を備えた無線通信システムの概略構成の一例を示すブロック図。
【図８】図７の無線通信システムの処理手順の一例を示すフローチャート。
【図９】タイマを備えた無線通信システムの概略構成の一例を示すブロック図。
【図１０】特殊ノイズ方式を備えた無線通信システムの概略構成の一例を示すブロック図。
【符号の説明】
【００９５】
１  乱数発生部
２  タグID保持部
３  ノイズ付加処理部
４  制御部
５  フィルタ保持部
６  一時記憶部
７  タイマ
８  特殊ノイズ生成装置
１１  既知ID記憶部
１２  タグID記憶部
１３  制御部
Tx  RFIDタグ
Ry  リーダ
【図１】
2006067083.tif 000003
【図２】
2006067083.tif 000004
【図３】
2006067083.tif 000005
【図４】
2006067083.tif 000006
【図５】
2006067083.tif 000007
【図６】
2006067083.tif 000008
【図７】
2006067083.tif 000009
【図８】
2006067083.tif 000010
【図９】
2006067083.tif 000011
【図１０】
2006067083.tif 000012