(57)【特許請求の範囲】
【請求項１】
読み出し要求を受信すると、自身の識別子をサーバに送信するＲＦＩＤデバイスにおいて、
前記ＲＦＩＤデバイスは、
前記ＲＦＩＤデバイスを一意に識別するための本来識別子を記憶し、
乱数の書き込み要求を前記サーバから受信した場合、前記受信した乱数及び前記本来識別子を入力とする一方向関数を演算し、
前記一方向関数を演算した結果を次回送信する次回識別子として記憶し、
前記一方向関数を演算した後に、読み出し要求を前記サーバから受信した場合、前記記憶された次回識別子を前記サーバに送信し、
前記次回識別子を送信した後、前記本来識別子と前記送信した次回識別子とを入力として前記一方向関数を演算し、
前記一方向関数を演算した結果を新たな次回識別子として記憶し、
前記次回識別子を受信したサーバによって、前記サーバが記憶している前記本来識別子及び前記書き込み要求の乱数を入力とした前記ＲＦＩＤデバイスと同じ一方向関数の演算結果が前記次回識別子である場合に認証されることを特徴とするＲＦＩＤデバイス。
【請求項２】
前記ＲＦＩＤデバイスは、
前記次回識別子を送信するごとに値が更新されるカウンタを有し、
前記一方向関数は、前記受信した乱数及び前記本来識別子の他に、前記カウンタの値を入力とする関数であって、
前記乱数の書き込み要求を受信した場合、前記受信した乱数、前記本来識別子及び前記カウンタの値を入力として前記一方向関数を演算し、
前記一方向関数を演算した結果を次回識別子として記憶し、
前記次回識別子及び前記カウンタの値を送信することを特徴とする請求項１に記載のＲＦＩＤデバイス。
【請求項３】
前記ＲＦＩＤデバイスは、
前記次回識別子を送信した後、前記カウンタの値を更新し、
前記更新されたカウンタの値をさらに入力とする前記一方向関数を演算し、
前記一方向関数を演算した結果を新たな次回識別子として記憶することを特徴とする請求項２に記載のＲＦＩＤデバイス。
【請求項４】
前記一方向関数は、前記本来識別子の少なくとも一部及び前記受信した乱数を入力とする関数であって、
前記乱数の書き込み要求を受信した場合、前記本来識別子の少なくとも一部及び前記受信した乱数を入力として前記一方向関数を演算し、
前記一方向関数を演算した結果及び前記一方関数の入力とされていない本来識別子の一部を含めた新たな次回識別子を定め、前記定められた次回識別子を記憶することを特徴とする請求項１に記載のＲＦＩＤデバイス。
【請求項５】
ＲＦＩＤデバイスを一意に識別するための本来識別子を記憶し、読み出し要求に基づいて識別子を送信するＲＦＩＤデバイスと通信可能であって、前記ＲＦＩＤデバイスの本来識別子を管理するサーバであって、
前記サーバは、
乱数を生成し、
前記生成した乱数の書き込み要求を送信し、
前記書き込み要求の送信後に読み出し要求を送信し、
前記乱数及び前記本来識別子を入力とする一方向関数が前記ＲＦＩＤデバイスによって演算された結果である次回識別子を受信した場合、前記サーバが管理するすべてのＲＦＩＤデバイスの本来識別子及び前記生成した乱数を入力として前記ＲＦＩＤデバイスと同じ一方向関数を演算した結果と、前記受信した次回識別子とを比較して前記ＲＦＩＤデバイスを特定し、
前記サーバからの書き込み要求、及び読み出し要求を前記ＲＦＩＤデバイスに転送し、前記ＲＦＩＤデバイスによって送信された前記次回識別子を前記サーバに転送するＲＦＩＤリーダ・ライタ、並びに、前記ＲＦＩＤデバイスによって送信された前記次回識別子を前記サーバに転送するＲＦＩＤリーダと通信可能であり、
前記本来識別子及び前記受信した次回識別子を入力として前記一方向関数を演算した結果を次回受信する次回識別子の第１予測値として記憶し、
前記本来識別子及び前記乱数を入力として前記一方向関数を演算した結果を次回受信する次回識別子の第２予測値として記憶し、
前記ＲＦＩＤリーダ・ライタを介して前記次回識別子を受信した場合、前記第２予測値を選択し、
前記ＲＦＩＤリーダを介して前記次回識別子を受信した場合、前記第１予測値を選択し、
前記選択された予測値と前記次回識別子とを比較して前記ＲＦＩＤデバイスを特定することを特徴とするサーバ。
【請求項６】
前記サーバは、前記乱数、前記本来識別子、及び前記次回識別子が送信されるごとに更新されるカウンタ値を入力とした前記一方向関数が前記ＲＦＩＤデバイスによって演算された結果である次回識別子及び前記カウンタ値を受信した場合、前記サーバが管理するすべてのＲＦＩＤデバイスの本来識別子について、前記乱数、前記本来識別子、及び前記受信したカウンタ値を入力として前記ＲＦＩＤデバイスと同じ一方向関数を演算した結果と、前記受信した次回識別子とを比較して前記ＲＦＩＤデバイスを特定することを特徴とする請求項５に記載のサーバ。
【請求項７】
前記サーバは、
前記乱数の書き込み要求を送信する前に、前記サーバが管理するすべてのＲＦＩＤデバイスの本来識別子について、前記ＲＦＩＤデバイスと同じ前記一方向関数を演算し、
一致する前記前記一方向関数の演算結果がある場合、前記乱数を再び生成し、
前記サーバが管理するすべてのＲＦＩＤデバイスの本来識別子について、前記再び生成した乱数及び前記本来識別子を入力として前記ＲＦＩＤデバイスと同じ前記一方向関数を再び演算し、
一致する前記一方向関数の演算結果がない場合に、前記再び生成した乱数の書き込み要求を送信することを特徴とする請求項５に記載のサーバ。
【請求項８】
前記サーバは、
前記サーバが管理するすべてのＲＦＩＤデバイスの本来識別子について、前記乱数、前記本来識別子、及び前記受信したカウンタ値を入力とした前記ＲＦＩＤデバイスと同じ一方向関数を演算した結果のうち、一致する前記一方向関数を演算した結果がある場合、前記乱数を再び生成し、
前記再び生成した乱数の書き込み要求を再び送信し、
前記次回識別子及び前記カウンタ値を再び受信した場合、前記サーバが管理するすべてのＲＦＩＤデバイスの本来識別子について、前記再び生成した乱数、前記本来識別子、及び前記再び受信したカウンタ値を入力として、前記ＲＦＩＤデバイスと同じ前記一方向関数を演算した結果と前記受信した次回識別子とを比較して前記ＲＦＩＤデバイスを特定することを特徴とする請求項６に記載のサーバ。
【請求項９】
ＲＦＩＤデバイスを一意に識別するための本来識別子を記憶し、読み出し要求に基づいて識別子を送信するＲＦＩＤデバイスと、前記ＲＦＩＤデバイスを管理するサーバと、を備える計算機システムであって、
前記ＲＦＩＤデバイスは、
乱数の書き込み要求を前記サーバから受信した場合、前記受信した乱数及び前記本来識別子を入力とする一方向関数を演算し、
前記一方向関数を演算した結果を次回送信する次回識別子として記憶し、
前記一方向関数を演算した後に、読み出し要求を前記サーバから受信した場合、前記記憶された次回識別子を前記サーバに送信し、
前記次回識別子を送信した後、前記本来識別子と前記送信した次回識別子とを入力として前記一方向関数を演算し、
前記一方向関数を演算した結果を新たな次回識別子として記憶し、
前記サーバは、
前記乱数を生成し、
前記生成した乱数の書き込み要求を送信し、
前記書き込み要求の送信後に読み出し要求を送信し、
前記次回識別子を受信した場合、前記サーバが管理するすべてのＲＦＩＤデバイスの本来識別子及び前記生成した乱数を入力として前記ＲＦＩＤデバイスと同じ一方向関数を演算した結果と、前記受信した次回識別子とを比較して前記ＲＦＩＤデバイスを特定し、
前記計算機システムは、
前記サーバからの書き込み要求、及び読み出し要求を前記ＲＦＩＤデバイスに転送し、前記ＲＦＩＤデバイスからの前記次回識別子を前記サーバに転送するＲＦＩＤリーダ・ライタと、
前記ＲＦＩＤデバイスによって送信された前記次回識別子を前記サーバに転送するＲＦＩＤリーダと、をさらに備え、
前記ＲＦＩＤデバイスは、
前記次回識別子を送信した後、前記本来識別子と前記送信した次回識別子とを入力として前記一方向関数を演算し、
前記一方向関数を演算した結果を新たな次回識別子として記憶し、
前記サーバは、
前記本来識別子及び前記受信した次回識別子を入力として前記一方向関数を演算した結果を次回受信する次回識別子の第１予測値として記憶し、
前記本来識別子及び前記乱数を入力として前記一方向関数を演算した結果を次回受信する次回識別子の第２予測値として記憶し、
前記ＲＦＩＤリーダ・ライタを介して前記次回識別子を受信した場合、前記第２予測値を選択し、
前記ＲＦＩＤリーダを介して前記次回識別子を受信した場合、前記第１予測値を選択し、
前記選択された予測値と前記次回識別子とを比較して前記ＲＦＩＤデバイスを特定することを特徴とする計算機システム。
【請求項１０】
前記ＲＦＩＤデバイスは、
前記次回識別子を送信するごとに値が更新されるカウンタを有し、
前記一方向関数は、前記受信した乱数及び前記本来識別子の他に、前記カウンタの値を入力とする関数であって、
前記乱数の書き込み要求を受信した場合、前記受信した乱数、前記本来識別子及び前記カウンタの値を入力として前記一方向関数を演算し、
前記一方向関数を演算した結果を次回識別子として記憶し、
前記次回識別子及び前記カウンタの値を送信し、
前記サーバは、
前記次回識別子及び前記カウンタの値を受信した場合、前記サーバが管理するすべてのＲＦＩＤデバイスの本来識別子について、前記乱数、前記本来識別子及び前記受信したカウンタ値を入力として前記ＲＦＩＤデバイスと同じ一方向関数を演算した結果と、前記受信した次回識別子とを比較して前記ＲＦＩＤデバイスを特定することを特徴とする請求項９に記載の計算機システム。
【請求項１１】
前記サーバは、
前記乱数の書き込み要求を送信する前に、前記サーバが管理するすべてのＲＦＩＤデバイスの本来識別子について、前記ＲＦＩＤデバイスと同じ前記一方向関数を演算し、
一致する前記前記一方向関数の演算結果がある場合、前記乱数を再び生成し、
前記サーバが管理するすべてのＲＦＩＤデバイスの本来識別子について、前記再び生成した乱数及び前記本来識別子を入力として前記ＲＦＩＤデバイスと同じ前記一方向関数を再び演算し、
一致する前記一方向関数の演算結果がない場合に、前記再び生成した乱数の書き込み要求を送信することを特徴とする請求項９に記載の計算機システム。
【請求項１２】
前記サーバは、
前記サーバが管理するすべてのＲＦＩＤデバイスの本来識別子について、前記乱数、前記本来識別子及び前記受信したカウンタ値を入力として前記ＲＦＩＤデバイスと同じ一方向関数を演算した結果のうち、一致する前記一方向関数を演算した結果がある場合、前記乱数を再び生成し、
前記再び生成した乱数の書き込み要求を再び送信し、
前記次回識別子及び前記カウンタ値を再び受信した場合、前記サーバが管理するすべてのＲＦＩＤデバイスの本来識別子について、前記再び生成した乱数、前記本来識別子、及び前記再び受信したカウンタ値を入力とした前記ＲＦＩＤデバイスと同じ前記一方向関数を演算した結果と前記受信した次回識別子とを比較して前記ＲＦＩＤデバイスを特定することを特徴とする請求項１０に記載の計算機システム。
【請求項１３】
前記一方向関数は、前記本来識別子の少なくとも一部及び前記受信した乱数を入力とする関数であって、
前記ＲＦＩＤデバイスは、
前記乱数の書き込み要求を受信した場合、前記本来識別子の少なくとも一部及び前記受信した乱数を入力として前記一方向関数を演算し、
前記一方向関数を演算した結果及び前記一方関数の入力とされていない本来識別子の一部を含めた新たな次回識別子を定め、前記定められた次回識別子を記憶することを特徴とする請求項９に記載の計算機システム。
【請求項１４】
前記計算機システムは、前記サーバを複数備え、
前記ＲＦＩＤリーダは、
前記次回識別子を受信した場合、前記受信した次回識別子に含まれる前記一方向関数の入力とされていない本来識別子の一部に基づいて、前記受信した次回識別子を転送するサーバを決定し、
前記受信した次回識別子を前記決定されたサーバに転送することを特徴とする請求項１３に記載の計算機システム。
【請求項１５】
前記ＲＦＩＤシステムは、前記サーバからの書き込む要求を前記ＲＦＩＤデバイスに転送するＲＦＩＤライタをさらに備え、
前記ＲＦＩＤライタは、前記サーバから乱数の書き込み要求を予め受信し、前記ＲＦＩＤデバイスが接近すると、前記乱数の書き込み要求を前記ＲＦＩＤデバイスに送信し、
前記ＲＦＩＤリーダは、
前記ＲＦＩＤの次回識別子を読み取る要求を前記ＲＦＩＤデバイスに送信し、
前記次回識別子を受信すると、前記受信した次回識別子を前記サーバに送信することを特徴とする請求項９に記載の計算機システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、自身の識別子を送信可能なＲＦＩＤデバイスに関し、特に、ＲＦＩＤデバイスの保持者のプライバシ及びなりすましを防止するＲＦＩＤデバイスに関する。
【背景技術】
【０００２】
近年、流通業界及びレジャー施設等において、ＲＦＩＤデバイスを利用するＲＦＩＤシステムの導入が進んでいる。
【０００３】
ＲＦＩＤデバイスには、自身を示す一意な識別子のみを記憶するＲＦＩＤデバイス、及び識別子と自身に関連する情報とを記憶するＲＦＩＤデバイスがある。
【０００４】
識別子のみを記憶するＲＦＩＤデバイスは、識別子と自身に関連する情報とを記憶するＲＦＩＤデバイスに比べ、自身の識別子のみを送信するため、セキュリティが高く、かつ低価格である。
【０００５】
識別子のみを記憶するＲＦＩＤデバイスを用いたＲＦＩＤシステムでは、ＲＦＩＤデバイスから情報を読み取るＲＦＩＤリーダは、ネットワークを介してＲＦＩＤデバイスに関連する情報を記憶しているサーバに接続されている。このため、もし、ＲＦＩＤデバイスから不正に情報が読み取られた場合であっても、ＲＦＩＤデバイスは識別子しか送信しないので、ＲＦＩＤデバイスから識別子しか取得できない。
【０００６】
なお、サーバとＲＦＩＤデバイスとは、ＲＦＩＤリーダ・ライタを介して通信する。
【０００７】
ＲＦＩＤデバイスが識別子の読み出しを無制限に許可されている場合、ＲＦＩＤデバイスは、常に同じ識別子を送信するので、ＲＦＩＤデバイスの所有者の追跡が可能となる。これをロケーションプライバシ問題という。
【０００８】
また、ＲＦＩＤデバイスが送信する識別子に物品の種類の情報が含まれる場合（非特許文献１参照）、鞄の中にある物の種類が不正なサーバによって特定されてしまう可能性がある。これをコンテンツプライバシ問題という。
【０００９】
さらに、ＲＦＩＤデバイスが常に同じ識別子を送信する場合、不正に読み取られた識別子を利用して、サーバに対してなりすましを行うことも可能となる。
【００１０】
コンテンツプライバシ問題を解決する方法として、以下に示す第１の方法が知られている。
【００１１】
サーバ及びＲＦＩＤデバイスは、同じキー情報を保持する。ＲＦＩＤデバイスは、キー情報のハッシュ値をサーバに送信する。そして、サーバは、受信したハッシュ値に対応するキー情報をＲＦＩＤデバイスに送信する。
【００１２】
ＲＦＩＤデバイスは、受信したキー情報のハッシュ値を演算する。そして、ＲＦＩＤデバイスは、演算したハッシュ値と先に送信したハッシュ値とが一致する場合、サーバを正当なサーバとして認識し、本来の識別子を送信する（非特許文献２参照）。
【００１３】
これによって、ＲＦＩＤデバイスから送信されたハッシュ値に対応するキー情報を記憶している正当なサーバのみが、ＲＦＩＤデバイスから本来の識別子を受信できる。ＲＦＩＤデバイスは、正当なサーバのみにＲＦＩＤデバイスの識別子を送信するため、コンテンツプライバシ問題を解決できる。
【００１４】
しかしながら、常に同じハッシュ値が送信されるので、ロケーションプライバシ問題は解決されない。
【００１５】
次に、ロケーションプライバシ問題を解決する方法として、以下に示す第２の方法が知られている。
【００１６】
ＲＦＩＤデバイスは、まず乱数を生成し、自身の識別子と生成した乱数とを入力として、ハッシュ値を演算する。そして、ＲＦＩＤデバイスは、演算したハッシュ値と乱数とをサーバに送信する。
【００１７】
サーバは、管理するすべてのＲＦＩＤデバイスの識別子に対して、ＲＦＩＤデバイスの識別子と受信した乱数とを入力として、ＲＦＩＤデバイスと同じハッシュ関数を用いて、ハッシュ値を演算する。そして、サーバは、演算したハッシュ値のうち、受信したハッシュ値と一致するハッシュ値のＲＦＩＤデバイスの識別子を取得することによって、ＲＦＩＤデバイスを特定する（非特許文献２参照）。
【００１８】
これによって、ＲＦＩＤデバイスは、毎回異なるハッシュ値を送信できるので、ロケーションプライバシの問題は解決される。また、ＲＦＩＤデバイスと同じハッシュ関数は正当なサーバしか保持していないため、正当なサーバしかＲＦＩＤデバイスを特定できず、コンテンツプライバシの問題も解決できる。
【００１９】
また、他の方法として以下に示す第３の方法が知られている。
【００２０】
ＲＦＩＤデバイスは、サーバによって生成された乱数と、ＲＦＩＤデバイスの秘密情報とを用いてハッシュ関数を演算し、演算したハッシュ値をサーバに送信する。サーバは、生成した乱数とサーバが記憶するＲＦＩＤデバイスの秘密情報を用いてハッシュ関数を演算し、ハッシュ値を求める。そして、サーバは、演算したハッシュ値と受信したハッシュ値とを比較することによって、ＲＦＩＤデバイスが正当か否かを判定できる（特許文献１参照）。
【００２１】
これによって、チャレンジ・レスポンス認証が成立し、ＲＦＩＤデバイスのなりすましを防止できる。
【特許文献１】特開２００６−３５２８００号公報
【非特許文献１】「EPCTM Radio-Frequency Identity Protocols Class-1 Generation-2 UHF RFID Protocol for Communications at 860 MHz-960MHz」、2005年1月、EPCglobal、インターネット＜http://www.epcglobalinc.org/standards/uhfc1g2/uhfc1g2_1_0_9-standard-20050126.pdf＞
【非特許文献２】Weis, S.A.、「Security and Privacy in Radio-Frequency Identifications Devices」、2003年、Masters Thesis、 MIT
【非特許文献３】Tao Chcng, Li Jin、「Analysis and Simulation of RFID Anti-collision Algorithms」、2007年2月12日、ICACT2007
【発明の開示】
【発明が解決しようとする課題】
【００２２】
ＲＦＩＤ技術において、上記したように、コンテンツプライバシの問題、ロケーションプライバシの問題、及びなりすましの問題が課題として考えられている。また、流通及び在庫管理等において、ＲＦＩＤシステムを利用する場合、複数のＲＦＩＤデバイスを読み取る場合のサーバの応答性能も課題となる。
【００２３】
第１の方法は、コンテンツプライバシの問題を解決できるが、ＲＦＩＤデバイスは常に同じハッシュ値を送信するため、ロケーションプライバシの問題を解決できない。
【００２４】
第２の方法は、ＲＦＩＤデバイスは、ハッシュ値の送信ごとに、異なるハッシュ値を送信する。これによって、コンテンツプライバシの問題及びロケーション問題を解決できる。しかし、第２の方法は、不正に読みとられたＲＦＩＤデバイスの識別子によるなりすましを防止できない。
【００２５】
第３の方法は、チャレンジ・レスポンスの認証が成立するので、なりすましを防止できる。しかし、第３の方法では、ＲＦＩＤデバイスは、乱数の受信後に、次回ＩＤを算出するためにハッシュ関数を演算するため、ＲＦＩＤデバイスの読み取り要求に対する応答時間が長くなる。このため、複数のＲＦＩＤが読み取られる場合には、迅速に読み取ることができない。
【００２６】
そこで、コンテンツプライバシの問題、ロケーションプライバシの問題、及びなりすましの問題を防止し、かつ、読み取り要求に対する応答時間を短縮できるＲＦＩＤデバイスを提供することを目的とする。
【課題を解決するための手段】
【００２７】
本発明の代表的な一形態を示せば、読み出し要求を受信すると、自身の識別子をサーバに送信するＲＦＩＤデバイスにおいて、前記ＲＦＩＤデバイスは、前記ＲＦＩＤデバイスを一意に識別するための本来識別子を記憶し、乱数の書き込み要求を前記サーバから受信した場合、前記受信した乱数及び前記本来識別子を入力とする一方向関数を演算し、前記一方向関数を演算した結果を次回送信する次回識別子として記憶し、前記一方向関数を演算した後に、読み出し要求を前記サーバから受信した場合、前記記憶された次回識別子を前記サーバに送信し、前記次回識別子を送信した後、前記本来識別子と前記送信した次回識別子とを入力として前記一方向関数を演算し、前記一方向関数を演算した結果を新たな次回識別子として記憶し、前記次回識別子を受信したサーバによって、前記サーバが記憶している前記本来識別子及び前記書き込み要求の乱数を入力とした前記ＲＦＩＤデバイスと同じ一方向関数の演算結果が前記次回識別子である場合に認証されることを特徴とする。
【発明の効果】
【００２８】
本発明の一実施形態によると、ＲＦＩＤデバイスは次回識別子の送信ごとに異なる次回識別子を送信するので、コンテンツプライバシ問題及びロケーションプライバシ問題が解決できる。また、ＲＦＩＤデバイスは読み取り要求の受信前に一方向関数を演算して次回識別子を算出するので、読み取り要求に対してすぐに次回識別子を送信できる。
【発明を実施するための最良の形態】
【００２９】
＜第１実施形態＞
第１実施形態を図１〜図６を用いて説明する。
【００３０】
図１は本発明の第１実施形態のＲＦＩＤデバイス１０１のブロック図である。
【００３１】
ＲＦＩＤデバイス１０１は、ＣＰＵ１０２、メモリ１０３、外部無線インタフェース１０８及びバス１０９を備える。
【００３２】
ＣＰＵ１０２は、メモリ１０３に記憶された各種プログラムを実行する。メモリ１０３は、各種プログラムを記憶する。外部無線インタフェース１０８は、リーダ・ライタ２０３（図２参照）と非接触状態で通信するためのインタフェースである。なお、ＣＰＵ１０２、メモリ１０３及び外部無線インタフェース１０８は、バス１０９によって接続されている。
【００３３】
メモリ１０３は、ＩＤ記録部１０４、ハッシュ計算プログラム１０５、次回ＩＤ記録部１０６、及び衝突回避プログラム１０７を含む。
【００３４】
ＩＤ記録部１０４には、ＲＦＩＤデバイス１０１の本来ＩＤが格納される。本来ＩＤは、ＲＦＩＤデバイス１０１の一意な識別子であり、ＲＦＩＤデバイス１０１を管理するサーバ２０１（図２参照）にも記憶される。
【００３５】
ハッシュ計算プログラム１０５は、次回ＩＤ記録部１０６に格納された次回ＩＤ（又は乱数）とＩＤ記録部１０４に記憶された本来ＩＤとを入力として一方向関数であるハッシュ関数を演算して、ハッシュ値を求めるプログラムである。
【００３６】
次回ＩＤ記録部１０６は、ＲＦＩＤデバイス１０１が次回送信する次回ＩＤ、又はサーバ２０１から受信した乱数を記憶する。なお、次回ＩＤは、ハッシュ計算プログラム１０５によって求められたハッシュ値である。
【００３７】
衝突回避プログラム１０７は、複数のＲＦＩＤデバイス１０１によって送信された次回ＩＤパケットが衝突した場合に、次回ＩＤを送信するタイミングを遅らせることによって、次回ＩＤパケットの衝突を回避するプログラムである。
【００３８】
図２は、本発明の第１実施形態のＲＦＩＤシステムの構成図である。
【００３９】
ＲＦＩＤシステムは、サーバ２０１、リーダ・ライタ２０３及び複数のＲＦＩＤデバイス１０１Ａ〜１０１Ｎ（ＲＦＩＤデバイスを総じて１０１という）を備える。
【００４０】
サーバ２０１とリーダ・ライタ２０３とは、ネットワーク２０２を介して接続される。リーダ・ライタ２０３とＲＦＩＤデバイス１０１とは、無線によって通信可能である。
【００４１】
サーバ２０１は、サーバ２０１が管理するすべてのＲＦＩＤデバイス１０１の本来ＩＤを記憶し、リーダ・ライタ２０３を介してアクセスしたＲＦＩＤデバイス１０１がどのＲＦＩＤデバイス１０１であるかを特定する。
【００４２】
リーダ・ライタ２０３は、ＲＦＩＤデバイス１０１から情報を読み取るリーダ機能と、ＲＦＩＤデバイス１０１に情報を書き込むライタ機能と、を備える。なお、本実施形態では、リーダ・ライタ２０３のリーダ機能とライタ機能とが同一の装置で実現されるが、リーダ機能とライタ機能とが別々の装置で実現されてもよい。
【００４３】
ＲＦＩＤデバイス１０１は、リーダ・ライタ２０３を介してサーバ２０１と通信する。ＲＦＩＤデバイス１０１とリーダ・ライタ２０３とは、無線パケットによって通信する。
【００４４】
図３は、本発明の第１実施形態の複数のＲＦＩＤデバイス１０１から情報を読み取る場合のＲＦＩＤシステムのシーケンス図である。
【００４５】
まず、サーバ２０１は、乱数αを生成する（３０１）。次に、サーバ２０１は、サーバ２０１が管理するすべてのＲＦＩＤデバイス１０１の本来ＩＤとステップ３０１の処理で生成した乱数αとを入力としてハッシュ関数を演算し、サーバ２０１が管理するすべてのＲＦＩＤデバイス１０１の本来ＩＤに対して、ハッシュ値を算出する（３０２）。
【００４６】
次に、サーバ２０１は、ステップ３０１の処理で生成した乱数αをＲＦＩＤデバイス１０１に書き込む要求をリーダ・ライタ２０３に送信する（３０３）。
【００４７】
リーダ・ライタ２０３は、乱数αの書き込み要求をサーバ２０１から受信した場合、受信した乱数αの書き込み要求をＲＦＩＤデバイス１０１Ａ及び１０１Ｂ（以下、ＲＦＩＤデバイス１０１Ａ及び１０１Ｂを総じてＲＦＩＤデバイス１０１という）に送信する（３０４）。
【００４８】
ＲＦＩＤデバイス１０１は、乱数αの書き込み要求をリーダ・ライタ２０３から受信した場合、次回ＩＤ記録部１０６を乱数αに上書きする。そして、ＲＦＩＤデバイス１０１は、ＩＤ記録部１０４に記録されている本来ＩＤと次回ＩＤ記録部１０６に記録されている乱数αとを入力としてハッシュ関数を演算し、ハッシュ値を算出する。そして、ＲＦＩＤデバイス１０１は、次回ＩＤ記録部１０６を算出したハッシュ値に上書きする（３０５）。なお、ステップ３０５の処理で算出されたハッシュ値が、ＲＦＩＤデバイス１０１が次に送信する次回ＩＤとなる。
【００４９】
一方、サーバ２０１は、ステップ３０３の処理で乱数αの書き込み要求を送信してから所定時間経過後、ＲＦＩＤデバイス１０１の次回ＩＤ記録部１０６に記録されている次回ＩＤを読み取る要求を、リーダ・ライタ２０３に送信する（３０６）。
【００５０】
なお、所定時間は、ＲＦＩＤデバイス１０１がステップ３０５の処理を実行するために要する時間以上に設定される。これによって、ＲＦＩＤデバイス１０１が本来ＩＤと乱数αとを入力としてハッシュ演算した後に、サーバ２０１は次回ＩＤの読み取り要求を送信できるので、確実に次回ＩＤを読み取ることができる。
【００５１】
リーダ・ライタ２０３は、次回ＩＤの読み取り要求を受信した場合、受信した次回ＩＤの読み取り要求をＲＦＩＤデバイス１０１Ａ及び１０１Ｂに送信する（３０７）。
【００５２】
ＲＦＩＤデバイス１０１は、次回ＩＤの読み取り要求を受信した場合、次回ＩＤ記録部１０６に記録されている値（次回ＩＤ）を、リーダ・ライタ２０３に送信する（３０８）。
【００５３】
ステップ３０８の処理で、ＲＦＩＤデバイス１０１Ａが送信した次回ＩＤの無線パケットと、ＲＦＩＤデバイス１０１Ｂが送信した次回ＩＤの無線パケットとが衝突した場合（３０９）に、ＲＦＩＤデバイス１０１Ａ及び１０１Ｂは、それぞれ衝突回避プログラム１０７を実行し、衝突開始制御処理を実行する（３１０）。
【００５４】
衝突開始制御処理については、非特許文献３に記載されている。
【００５５】
例えば、ＲＦＩＤデバイス１０１は、次回ＩＤの無線パケットを送信する時間間隔を変更して、次回ＩＤの無線パケットを送信する（３１１）ことによって、無線パケットの衝突を回避する。
【００５６】
また、サーバ２０１が、無線パケットの最初のビットが例えば「１」である無線パケットのみを読み取る要求を、リーダ・ライタ２０３を介してＲＦＩＤデバイス１０１Ａ及び１０１Ｂに送信する。ＲＦＩＤデバイス１０１Ａ及び１０１Ｂは、最初のビットが「１」である無線パケットのみを読み取る要求を受信した場合には、次回ＩＤの無線パケットの最初のビットが「１」であるか否かを判定する。
【００５７】
次回ＩＤの無線パケットの最初のビットが「１」でないと判定された場合、ＲＦＩＤデバイス１０１Ａ及び１０１Ｂは、次回ＩＤの無線パケットをリーダ・ライタ２０３に送信しない。一方、次回ＩＤの無線パケットの最初のビットが「１」であると判定された場合、ＲＦＩＤデバイス１０１Ａ及び１０１Ｂは、次回ＩＤの無線パケットのリーダ・ライタ２０３に送信する（３１１）。
【００５８】
ＲＦＩＤデバイス１０１Ａが送信した次回ＩＤの無線パケットとＲＦＩＤデバイス１０１Ｂが送信した次回ＩＤの無線パケットとがまだ衝突する場合、サーバ２０１は、次に、次回ＩＤの無線パケットの最初から二つ目のビットが「１」である無線パケットの読み込み要求をリーダ・ライタ２０３に送信する。以下の処理は、最初のビットが「１」である無線パケットの要求と同じであるので、説明を省略する。
【００５９】
これを繰り返すことによって、ＲＦＩＤデバイス１０１Ａが送信した次回ＩＤの無線パケットとＲＦＩＤデバイス１０１Ｂが送信した次回ＩＤの無線パケットとの衝突を回避できる。
【００６０】
リーダ・ライタ２０３は、ステップ３１１の処理で送信された次回ＩＤを受信した場合、受信した次回ＩＤをサーバ２０１に送信する（３１２）。
【００６１】
なお、ＲＦＩＤデバイス１０１は、衝突することなく次回ＩＤを送信した場合、ＩＤ記録部１０４に記録されている本来ＩＤと次回ＩＤ記録部１０６に記録されている送信した次回ＩＤとを入力としてハッシュ関数を演算し、ハッシュ値を算出する。そして、ＲＦＩＤデバイス１０１は、算出したハッシュ値を次回ＩＤ記録部１０６に上書きする（３１３）。
【００６２】
ＲＦＩＤデバイス１０１が、次回ＩＤ送信後にステップ３１３の処理を実行して、次回ＩＤ記録部１０６を新たなハッシュ値に上書きすることによって、次回ＩＤが送信されるごとに次回ＩＤ記録部１０６に記録される値が更新される。これによって、ＲＦＩＤデバイス１０１は、サーバ２０１から乱数αを受信していないリーダ・ライタ２０３から、読み込み要求を受信した場合であっても、前回送信した次回ＩＤと異なる次回ＩＤを送信するので、ロケーションプライバシは問題とならない。
【００６３】
一方、サーバ２０１は、ステップ３１２の処理でリーダ・ライタ２０３によって送信された次回ＩＤを受信した場合、ステップ３０２の処理でサーバ２０１が管理するすべてのＲＦＩＤデバイス１０１の本来ＩＤに対して算出したハッシュ値のうち、受信した次回ＩＤの値と一致するハッシュ値を検索し、一致するハッシュ値の本来ＩＤを取得することによって、次回ＩＤを送信したＲＦＩＤデバイスを特定する（３１４）。
【００６４】
次に、ＲＦＩＤデバイス１０１の乱数更新処理について、図４を用いて説明する。
【００６５】
図４は、本発明の第１実施形態のＲＦＩＤデバイス１０１の乱数更新処理のフローチャートである。乱数更新受信処理は、ＲＦＩＤデバイス１０１が乱数αの書き込み要求を受信した場合に、ＲＦＩＤデバイス１０１のＣＰＵ１０２によって実行される。
【００６６】
まず、ＲＦＩＤデバイス１０１は、リーダ・ライタ２０３から乱数αの書き込み要求を外部無線インタフェース１０８を介して受信する（４０１）。
【００６７】
次に、ＲＦＩＤデバイス１０１は、次回ＩＤ記録部１０６に受信した書き込み要求の乱数αを記録する（４０２）。
【００６８】
次に、ＲＦＩＤデバイス１０１は、ＩＤ記録部１０４に記録されている本来ＩＤと次回ＩＤ記録部１０６に記録されている乱数αとを入力としてハッシュ関数を演算し、ハッシュ値を算出する。そして、ＲＦＩＤデバイス１０１は、次回ＩＤ記録部１０６を算出したハッシュ値に上書きして（４０３）、乱数更新処理を終了する（４０４）。
【００６９】
ステップ４０２の処理で、ＲＦＩＤデバイス１０１が受信した書き込み要求の乱数αを次回ＩＤ記録部１０６に記録するのは、ステップ４０３の処理（図３のステップ３０５の処理）のハッシュ関数の演算とステップ５０３の処理（図３のステップ３１３の処理）のハッシュ関数の演算とを同じく設定できるからである。具体的には、ステップ４０３の処理のハッシュ関数の演算及びステップ５０３の処理のハッシュ関数の演算は、ＩＤ記録部１０４に記録されている値と次回ＩＤ記録部１０６に記録されている値とを入力としたハッシュ関数を演算する。
【００７０】
次に、ＲＦＩＤデバイス１０１の読み取り要求受信処理を、図５を用いて説明する。
【００７１】
図５は、本発明の第１実施形態のＲＦＩＤデバイス１０１の読み取り要求受信処理のフローチャートである。読み取り要求受信処理は、ＲＦＩＤデバイス１０１が読み取り要求を受信した場合に、ＲＦＩＤデバイス１０１のＣＰＵ１０２によって実行される。
【００７２】
まず、ＲＦＩＤデバイス１０１は、リーダ・ライタ２０３から読み取り要求を外部無線インタフェース１０８を介して受信する（５０１）。
【００７３】
次に、ＲＦＩＤデバイス１０１は、次回ＩＤ記録部１０６に記録されている次回ＩＤをリーダ・ライタ２０３に送信する（５０２）。
【００７４】
次に、ＲＦＩＤデバイス１０１は、ＩＤ記録部１０４に記録されている本来ＩＤと次回ＩＤ記録部１０６に記録されている次回ＩＤとを入力としてハッシュ関数を演算し、ハッシュ値を算出する。そして、ＲＦＩＤデバイス１０１は、次回ＩＤ記録部１０６を算出したハッシュ値に上書きして（５０３）、読み取り要求受信処理を終了する（５０４）。
【００７５】
次に、サーバ２０１の処理について図６を用いて説明する。
【００７６】
図６は、本発明の第１実施形態のサーバ２０１の次回ＩＤ取得処理のフローチャートである。次回ＩＤ取得処理は、サーバ２０１の図示しないＣＰＵによって実行される。
【００７７】
サーバ２０１は、サーバ２０１の管理者からの指示又は所定の周期によって次回ＩＤ取得処理を実行する（６０１）。
【００７８】
サーバ２０１は、乱数αを生成する（６０２）。
【００７９】
次に、サーバ２０１は、サーバ２０１が管理するすべてのＲＦＩＤデバイス１０１の本来ＩＤとステップ６０２の処理で生成した乱数αとを入力としてハッシュ関数を演算し、サーバ２０１が管理するすべてのＲＦＩＤデバイス１０１の本来ＩＤに対して、ハッシュ値を算出する（６０３）。
【００８０】
次に、サーバ２０１は、サーバ２０１が管理するすべてのＲＦＩＤデバイス１０１の本来ＩＤに対して、ステップ６０３の処理で算出したハッシュ値のうち、同じ値になるハッシュ値があるか否かを判定する（６０４）。
【００８１】
サーバ２０１が管理するすべてのＲＦＩＤデバイス１０１の本来ＩＤに対して、ステップ６０３の処理で算出したハッシュ値のうち、同じ値になるハッシュ値があるとステップ６０４の処理で判定された場合、サーバ２０１は、次回ＩＤを送信したＲＦＩＤデバイス１０１を特定できないため、ステップ６０２の処理に戻り、乱数αを再度生成する。
【００８２】
一方、サーバ２０１が管理するすべてのＲＦＩＤデバイス１０１の本来ＩＤに対して、ステップ６０３の処理で算出したハッシュ値のうち、同じ値になるハッシュ値がないとステップ６０４の処理で判定された場合、ＲＦＩＤデバイス１０１は、乱数αをＲＦＩＤデバイス１０１の次回ＩＤ記録部１０６に書き込む要求をリーダ・ライタ２０３に送信する（６０５）。
【００８３】
次に、サーバ２０１は、ステップ６０５の処理で乱数αの書き込み要求を送信してから、所定時間経過後、ＲＦＩＤデバイス１０１の次回ＩＤ記録部１０６に記録されている次回ＩＤを読み取る要求を、リーダ・ライタ２０３に送信する（６０６）。
【００８４】
次に、サーバ２０１は、リーダ・ライタ２０３から次回ＩＤを受信する（６０７）。なお、ステップ６０７の処理では、サーバ２０１は、Ｎ個の次回ＩＤを受信したものとする。また、次回ＩＤを受信した順に、次回ＩＤ1〜次回ＩＤNとする。
【００８５】
次に、サーバ２０１は、ｉ＝１を設定する（６０８）。つまり、サーバ２０１は、次回ＩＤ1から、次回ＩＤを送信したＲＦＩＤデバイス１０１を特定する処理を開始する。
【００８６】
次に、サーバ２０１は、ステップ６０３の処理でサーバ２０１が管理するすべてのＲＦＩＤデバイス１０１の本来ＩＤに対して算出したハッシュ値のうち、次回ＩＤiの値と一致するハッシュ値が存在するか否かを判定する（６０９）。
【００８７】
ステップ６０３の処理でサーバ２０１が管理するすべてのＲＦＩＤデバイス１０１の本来ＩＤに対して算出したハッシュ値のうち、次回ＩＤiの値と一致するハッシュ値が存在しないと、ステップ６０９の処理で判定された場合、サーバ２０１は、次回ＩＤiを送信したＲＦＩＤデバイス１０１はサーバ２０１が管理していないＲＦＩＤデバイスであると認識する（６１３）。
【００８８】
ステップ６０３の処理でサーバ２０１が管理するすべてのＲＦＩＤデバイス１０１の本来ＩＤに対して算出したハッシュ値のうち、次回ＩＤiの値と一致するハッシュ値が存在すると、ステップ６０９の処理で判定された場合、サーバ２０１は、次回ＩＤiを送信したＲＦＩＤデバイス１０１の本来ＩＤを特定し、次回ＩＤiを送信したＲＦＩＤデバイス１０１を特定する（６１０）。
【００８９】
そして、受信したすべての次回ＩＤに対してＲＦＩＤデバイス１０１を特定する処理が実行されたか否かを判定するために、次回ＩＤiのｉがＮよりも小さいか否かを判定する（６１１）。
【００９０】
ステップ６１１の処理で、次回ＩＤiのｉがＮよりも小さいと判定された場合、つまり、受信したすべての次回ＩＤに対してＲＦＩＤデバイス１０１を特定する処理が実行されていないと判定された場合、サーバ２０１は、ｉをインクリメントした値を新たなｉとし（６１４）、ステップ６０９の処理に戻る。
【００９１】
一方、ステップ６１１の処理で、次回ＩＤiのｉがＮ以上であると判定された場合、つまり、受信したすべての次回ＩＤに対してＲＦＩＤデバイス１０１を特定する処理が実行されたと判定された場合、サーバ２０１は、次回ＩＤ取得処理を終了する（６１２）。
【００９２】
ＲＦＩＤデバイス１０１が次回ＩＤを送信するごとに、ハッシュ関数を演算したハッシュ値を次回ＩＤとして送信するため、次回ＩＤの送信ごとに次回ＩＤが変化するため、ロケーションプライバシの問題及びコンテンツプライバシの問題を解決でき、さらに、なりすましも防止できる。
【００９３】
また、ＲＦＩＤデバイス１０１は、読み込み要求を受信する前に、送信する次回ＩＤを予め算出しているので、サーバ２０１から送信される読み込み要求に対して、すぐに次回ＩＤを送信できる。
【００９４】
ＲＦＩＤデバイス１０１の標準化において，ＲＦＩＤリーダ／ライタ２０３が読み込み要求を送信してからＲＦＩＤデバイス１０１から読み込み要求に対する返事を受信するまでの時間がμsの単位で規定されている。
【００９５】
この規定では、ＲＦＩＤデバイス１０１が読み込み要求を受信した場合に、ハッシュ関数を演算することは考慮されていない。よって、ＲＦＩＤデバイス１０１が読み込み要求を受信してからハッシュ関数を演算する方法では，規定時間内に次回ＩＤを送信する返すことは困難である。
【００９６】
また，サーバ２０１が複数個（Ｎ個）のＲＦＩＤデバイス１０１に読み込み要求を送信する場合の衝突回避に関しても，既存の方式ではＲＦＩＤデバイス１０１が読み込み要求受信後にハッシュ関数を演算することは考慮されていないため，新たな方式が必要になる可能性がある。
【００９７】
本実施形態では，ＲＦＩＤデバイス１０１は、読み込み要求に対して次回ＩＤを即答するので，既存の規定時間内で次回ＩＤを送信でき，衝突回避に関しても既存の方法の適用が可能である。
【００９８】
さらに、ＲＦＩＤデバイス１０１が読み込み要求を受信した場合に、ＲＦＩＤデバイス１０１自身が乱数αを算出し，生成した乱数を用いてハッシュ関数を演算する方法では、Ｎ個のＲＦＩＤデバイス１０１がそれぞれ異なる乱数αを用いてハッシュ関数を演算する。したがって、サーバ２０１は、次回ＩＤを特定するためにハッシュ関数を演算する回数は、サーバ２０１が管理するすべての本来ＩＤに対してＮ回である。
【００９９】
これに対して、本実施形態では、全てのＲＦＩＤデバイス１０１が同じ乱数αを用いてハッシュ関数を演算するため，サーバ２０１は、次回ＩＤを特定するためのハッシュ関数を，サーバ２０１が管理するすべての本来ＩＤに対して一回だけ、演算すればよい。
【０１００】
＜第２実施形態＞
第１実施形態では、サーバ２０１が複数のＲＦＩＤデバイス１０１の次回ＩＤを取得することに適した実施形態を示した。第２実施形態では、ＲＦＩＤデバイス７０１のセキュリティを高める実施形態を示す。
【０１０１】
第２実施形態を図７〜図１１を用いて説明する。
【０１０２】
図７は、本発明の第２実施形態のＲＦＩＤデバイス７０１のブロック図である。なお、第１実施形態と同じ構成は同じ番号を付与し、説明を省略する。
【０１０３】
ＲＦＩＤデバイス７０１は、ＣＰＵ１０２、メモリ１０３、外部無線インタフェース１０８及びバス１０９を備える。
【０１０４】
メモリ１０３は、ＩＤ記録部１０４、ハッシュ計算プログラム１０５、次回ＩＤ記録部１０６、衝突回避プログラム１０７、及びカウンタ７０２を含む。
【０１０５】
カウンタ７０２は、次回ＩＤを送信するごとに記憶された値がインクリメントされる。
【０１０６】
図８は、本発明の第２実施形態のＲＦＩＤデバイス７０１から情報を読み取る場合のＲＦＩＤシステムのシーケンス図である。
【０１０７】
リーダ・ライタ２０３は、周期的にＲＦＩＤデバイスのＩＤの読み取り要求をＲＦＩＤデバイス７０１に送信する（８０１）。
【０１０８】
ＲＦＩＤデバイス７０１は、読み取り要求を受信した場合、次回ＩＤ記録部１０６に記録されている次回ＩＤ、及びカウンタ７０２に記録されているカウンタ値をリーダ・ライタ２０３に送信する（８０２）。
【０１０９】
そして、ＲＦＩＤデバイス７０１は、カウンタ７０２に記憶された値をインクリメントし、カウンタ値を更新する。そして、ＲＦＩＤデバイス７０１は、ＩＤ記録部１０４に記録されている本来ＩＤ、次回ＩＤ記録部１０６に記録されている値、及び更新したカウンタ値を入力としてハッシュ関数を演算し、ハッシュ値を算出する。そして、ＲＦＩＤデバイス７０１は、次回ＩＤ記録部１０６を算出したハッシュ値に上書きする（８０４）。
【０１１０】
リーダ・ライタ２０３は、次回ＩＤ及びカウンタ値を受信した場合、受信した次回ＩＤ及びカウンタ値をサーバ２０１に送信する（８０３）。
【０１１１】
サーバ２０１は、次回ＩＤ及びカウンタ値を受信した場合、乱数αを生成する（８０５）。そして、サーバ２０１は、生成した乱数αをＲＦＩＤデバイス７０１の次回ＩＤ記録部１０６に書き込む要求をリーダ・ライタ２０３に送信する（８０６）。
【０１１２】
リーダ・ライタ２０３は、受信した乱数αの書き込み要求をＲＦＩＤデバイス７０１に送信する（８０７）。
【０１１３】
ＲＦＩＤデバイス７０１は、乱数αの書き込み要求を受信した場合、受信した乱数αを次回ＩＤ記録部１０６に上書きする。そして、ＲＦＩＤデバイス７０１は、ＩＤ記録部１０４に記録されている本来ＩＤ、次回ＩＤ記録部１０６に記録されている値、及び更新したカウンタ値を入力としてハッシュ関数を演算し、ハッシュ値を算出する。そして、ＲＦＩＤデバイス７０１は、次回ＩＤ記録部１０６を算出したハッシュ値に上書きする（８０８）。
【０１１４】
次に、サーバ２０１は、ステップ８０６の処理で乱数αの書き込み要求を送信してから、ＲＦＩＤデバイス７０１がステップ８０４の処理を実行するために要する時間以上に設定された所定時間経過後、ＲＦＩＤデバイス７０１の次回ＩＤ記録部１０６に記録されている次回ＩＤを読み取る要求を、リーダ・ライタ２０３に送信する（８０９）。
【０１１５】
リーダ・ライタ２０３は、次回ＩＤの読み取り要求を受信した場合、受信した次回ＩＤの読み取り要求をＲＦＩＤデバイス７０１に送信する（８１０）。
【０１１６】
ＲＦＩＤデバイス７０１は、次回ＩＤの読み取り要求を受信した場合、次回ＩＤ記録部１０６に記録されている値（次回ＩＤ）、及び次回ＩＤを算出するためにハッシュ関数の演算の入力としたカウンタ値を、リーダ・ライタ２０３に送信する（８１１）。
【０１１７】
リーダ・ライタ２０３は、ＲＦＩＤデバイス７０１から次回ＩＤ及びカウンタ値を受信した場合、受信した次回ＩＤ及びカウンタ値をサーバ２０１に送信する（８１２）。
【０１１８】
なお、ＲＦＩＤデバイス７０１は、ステップ８１１の処理で次回ＩＤ及びカウンタ値を送信した場合、カウンタ７０２に記憶された値をインクリメントし、カウンタ値を更新する。そして、ＲＦＩＤデバイス７０１は、ＩＤ記録部１０４に記録されている本来ＩＤ、次回ＩＤ記録部１０６に記録されている値、及び更新したカウンタ値を入力としてハッシュ関数を演算し、ハッシュ値を算出する。そして、ＲＦＩＤデバイス７０１は、次回ＩＤ記録部１０６を算出したハッシュ値に上書きする（８１３）。
【０１１９】
一方、サーバ２０１は、ステップ８１２の処理でリーダ・ライタ２０３によって送信された次回ＩＤ及びカウンタ値を受信した場合、サーバ２０１が管理するすべてのＲＦＩＤデバイス７０１の本来ＩＤに対して、本来ＩＤ、受信したカウンタ値、及びステップ８０５の処理で生成した乱数αを入力として、ＲＦＩＤデバイス７０１と同じハッシュ関数を演算する。そして、サーバ２０１は、サーバ２０１が管理するすべてのＲＦＩＤデバイス７０１の本来ＩＤに対して演算したハッシュ値のうち、受信した次回ＩＤの値と一致するハッシュ値を検索し、一致するハッシュ値の本来ＩＤを取得することによって、次回ＩＤを送信したＲＦＩＤデバイスを特定する（８１４）。
【０１２０】
次に、ＲＦＩＤデバイス７０１の乱数更新処理について、図９を用いて説明する。
【０１２１】
図９は、本発明の第２実施形態のＲＦＩＤデバイス７０１の乱数更新処理のフローチャートである。乱数更新処理は、ＲＦＩＤデバイス７０１が乱数αの書き込み要求を受信した場合に、ＲＦＩＤデバイス７０１のＣＰＵ１０２によって実行される。
【０１２２】
まず、ＲＦＩＤデバイス７０１は、リーダ・ライタ２０３から乱数αの書き込み要求を外部無線インタフェース１０８を介して受信する（９０１）。
【０１２３】
次に、ＲＦＩＤデバイス７０１は、次回ＩＤ記録部１０６を受信した書き込み要求の乱数αに上書きする（９０２）。
【０１２４】
次に、ＲＦＩＤデバイス７０１は、ＩＤ記録部１０４に記録されている本来ＩＤ、次回ＩＤ記録部１０６に記録されている乱数α、及びカウンタ７０２に記録されているカウンタ値を入力としてハッシュ関数を演算し、ハッシュ値を算出する。そして、ＲＦＩＤデバイス７０１は、次回ＩＤ記録部１０６を算出したハッシュ値に上書きして（９０３）、乱数更新処理を終了する（９０４）。
【０１２５】
次に、ＲＦＩＤデバイス７０１の読み取り要求受信処理を、図１０を用いて説明する。
【０１２６】
図１０は、本発明の第２実施形態のＲＦＩＤデバイス７０１の読み取り要求受信処理のフローチャートである。読み取り要求受信処理は、ＲＦＩＤデバイス７０１が読み取り要求を受信した場合に、ＲＦＩＤデバイス７０１のＣＰＵ１０２によって実行される。
【０１２７】
まず、ＲＦＩＤデバイス７０１は、リーダ・ライタ２０３から読み取り要求を外部無線インタフェース１０８を介して受信する（１００１）。
【０１２８】
次に、ＲＦＩＤデバイス７０１は、次回ＩＤ記録部１０６に記録されている次回ＩＤ及びカウンタ７０２に記録されているカウンタ値をリーダ・ライタ２０３に送信する（１００２）。
【０１２９】
そして、ＲＦＩＤデバイス７０１は、次回ＩＤを送信したので、カウンタ７０２に記録されているカウンタ値をインクリメントして、カウンタ値を更新する（１００３）。
【０１３０】
次に、ＲＦＩＤデバイス７０１は、ＩＤ記録部１０４に記録されている本来ＩＤ、次回ＩＤ記録部１０６に記録されている次回ＩＤ、及びカウンタ７０２に記録されているカウンタ値を入力としてハッシュ関数を演算し、ハッシュ値を算出する。そして、ＲＦＩＤデバイス７０１は、次回ＩＤ記録部１０６を算出したハッシュ値に上書きして（１００４）、読み取り要求受信処理を終了する（１００５）。
【０１３１】
次に、サーバ２０１の処理について図１１を用いて説明する。
【０１３２】
図１１は、本発明の第２実施形態のサーバ２０１の次回ＩＤ取得処理のフローチャートである。次回ＩＤ取得処理は、サーバ２０１の図示しないＣＰＵによって実行される。
【０１３３】
サーバ２０１は、周期的な読取り処理８０１によってリーダ・ライタ２０３が得たＲＦＩＤデバイス情報の通知８０３、サーバ２０１の管理者からの指示、又は所定の周期によって次回ＩＤ取得処理を実行する（１１０１）。
【０１３４】
そして、サーバ２０１は、乱数αを生成する（１１０２）。
【０１３５】
ＲＦＩＤデバイス７０１は、乱数αをＲＦＩＤデバイス７０１の次回ＩＤ記録部１０６に書き込む要求をリーダ・ライタ２０３に送信する（１１０３）。
【０１３６】
次に、サーバ２０１は、ステップ１１０３の処理で乱数αの書き込み要求を送信してから、所定時間経過後、ＲＦＩＤデバイス７０１の次回ＩＤ記録部１０６に記録されている次回ＩＤを読み取る要求を、リーダ・ライタ２０３に送信する（１１０４）。
【０１３７】
次に、サーバ２０１は、リーダ・ライタ２０３から次回ＩＤ及びカウンタ値を受信する（１１０５）。
【０１３８】
次に、サーバ２０１は、サーバ２０１が管理するすべてのＲＦＩＤデバイス１０１の本来ＩＤに対して、本来ＩＤ、ステップ１１０２の処理で生成した乱数α、及び受信したカウンタ値を入力としてハッシュ関数を演算し、ハッシュ値を算出する。そして、サーバ２０１は、算出したハッシュ値と受信した次回ＩＤとを比較する（１１０６）。
【０１３９】
サーバ２０１は、ステップ１１０６の処理で算出したハッシュ値のうち、受信した次回ＩＤと一致するハッシュ値があるか否かを判定する（１１０７）。
【０１４０】
ステップ１１０６の処理で算出したハッシュ値のうち、受信した次回ＩＤと一致するハッシュ値がないと、ステップ１１０７の処理で判定された場合、サーバ２０１は、次回ＩＤを送信したＲＦＩＤデバイス７０１はサーバ２０１が管理していないＲＦＩＤデバイスであると認識する（１１１１）。
【０１４１】
一方、ステップ１１０６の処理で算出したハッシュ値のうち、受信した次回ＩＤと一致するハッシュ値があると、ステップ１１０７の処理で判定された場合、サーバ２０１は、ステップ１１０６の処理で算出したハッシュ値のうち、受信した次回ＩＤと一致するハッシュ値が複数存在するか否かを判定する（１１０８）。
【０１４２】
ステップ１１０６の処理で算出したハッシュ値のうち、受信した次回ＩＤと一致するハッシュ値が複数存在しないとステップ１１０８の処理で判定された場合、サーバ２０１は、次回ＩＤを送信したＲＦＩＤデバイス７０１の本来ＩＤを特定し、次回ＩＤを送信したＲＦＩＤデバイス７０１を特定し（１１０９）、次回ＩＤ取得処理を終了する（１１１０）。
【０１４３】
一方、ステップ１１０６の処理で算出したハッシュ値のうち、受信した次回ＩＤと一致するハッシュ値が複数存在するとステップ１１０８の処理で判定された場合、乱数αの値が不適切であったと判定し、サーバ２０１は、乱数αを再度生成する（１１１２）。
【０１４４】
そして、サーバ２０１は、ステップ１１１２の処理で再度生成した乱数αの書き込み要求をリーダ・ライタ２０３に送信する（１１１３）。
【０１４５】
次に、サーバ２０１は、ステップ１１１３の処理で乱数αの書き込み要求を送信してから、所定時間経過後、ＲＦＩＤデバイス７０１の次回ＩＤ記録部１０６に記録されている次回ＩＤを読み取る要求を、リーダ・ライタ２０３に送信する（１１１４）。
【０１４６】
次に、サーバ２０１は、リーダ・ライタ２０３から次回ＩＤ及びカウンタ値を受信する（１１１５）。
【０１４７】
次に、サーバ２０１は、ステップ１１０７の処理で次回ＩＤと一致すると判定されたハッシュ値の本来ＩＤに対して、本来ＩＤ、ステップ１１１２の処理で生成した乱数α、及び受信したカウンタ値を入力としてハッシュ関数を再度演算し、ハッシュ値を算出する。そして、サーバ２０１は、算出したハッシュ値と受信した次回ＩＤとを比較し（１１１６）、ステップ１１１０７の処理に戻る。
【０１４８】
第２実施形態では、ＲＦＩＤデバイス７０１は次回ＩＤを送信するごとに更新されるカウンタ７０２を備える。そして、ＲＦＩＤデバイス７０１は、本来ＩＤ、前回送信した次回ＩＤ、及びカウンタ値を入力としてハッシュ関数を演算する。
【０１４９】
これによって、サーバ２０１が前回と同じ乱数αを生成した場合であっても、ＲＦＩＤデバイス７０１は、前回送信した次回ＩＤと異なる次回ＩＤを送信できる。
【０１５０】
したがって、ＲＦＩＤデバイス７０１は、確実に毎回異なる次回ＩＤを送信することができるので、ロケーションプライバシ問題のセキュリティが向上する。
【０１５１】
＜第３実施形態＞
第３実施形態では、複数の企業がそれぞれＲＦＩＤデバイス１２０４を提供し、複数の企業が別のサーバ１２０１によってＲＦＩＤデバイス１２０４の情報を管理する場合に、リーダ・ライタ１２０３が、ＲＦＩＤデバイス１２０４の情報を、ＲＦＩＤデバイス１２０４を提供する企業のサーバ１２０１のみに送信する。
【０１５２】
第３実施形態を図１２及び図１３を用いて説明する。
【０１５３】
図１２は、本発明の第３実施形態のＲＦＩＤシステムの構成図である。
【０１５４】
ＲＦＩＤシステムは、複数のサーバ１２０１Ａ〜１２０１Ｃ（サーバ１２０１Ａ〜１２０１Ｃを総称してサーバ１２０１という）、リーダ・ライタ１２０３及びＲＦＩＤデバイス１２０４を備える。リーダ・ライタ１２０３とサーバ１２０１とは、ネットワーク１２０２によって接続される。
【０１５５】
サーバ１２０１Ａ〜１２０１Ｃ、リーダ・ライタ１２０３及びＲＦＩＤデバイス１２０４の構成は、第１実施形態と同じである。
【０１５６】
複数の企業がＲＦＩＤデバイス１２０４を提供している。ＲＦＩＤデバイスを提供する各企業は、それぞれ別のサーバでＲＦＩＤデバイス１２０４の情報を管理する。
【０１５７】
具体的には、Ａ企業は、Ａ企業が提供するＲＦＩＤデバイス１２０４の情報をサーバ１２０１Ａで管理し、Ｂ企業は、Ｂ企業が提供するＲＦＩＤデバイス１２０４の情報をサーバ１２０１Ｂで管理し、Ｃ企業は、Ｃ企業が提供するＲＦＩＤデバイス１２０４の情報をサーバ１２０１Ｃで管理する。
【０１５８】
ＲＦＩＤデバイス１２０４から次回ＩＤを受信したリーダ・ライタ１２０３は、受信した次回ＩＤを、リーダ・ライタ１２０３にネットワーク１２０２を介して接続されたすべてのサーバ１２０１Ａ〜１２０２Ｃに送信してもよい。
【０１５９】
しかし、サーバ１２０１は、サーバ１２０１が情報を管理していないＲＦＩＤデバイス１２０４の次回ＩＤを受信しても、受信した次回ＩＤを送信したＲＦＩＤデバイス１２０４の本来ＩＤを特定できない。したがって、リーダ・ライタ１２０３がすべてのサーバ１２０１に次回ＩＤを送信すると、サーバ１２０１は、次回ＩＤを送信したＲＦＩＤデバイス１２０４を特定できないにもかかわらず、次回ＩＤを送信したＲＦＩＤデバイス１２０４を特定する処理を実行してしまう。つまり、サーバ１２０１に無駄な処理を実行させてしまう。
【０１６０】
そこで、第３実施形態では、ＲＦＩＤデバイス１２０４は、本来ＩＤの情報のうち、ＲＦＩＤデバイス１２０４を管理するサーバ１２０１を特定可能な情報を含めた次回ＩＤを送信することによって、リーダ・ライタ１２０３が次回ＩＤを送信すべきサーバ１２０１を特定し、特定したサーバ１２０１に送信する。
【０１６１】
これによって、リーダ・ライタ１２０３は、次回ＩＤを送信したＲＦＩＤデバイス１２０４を管理するサーバ１２０１にのみ次回ＩＤを送信するので、サーバ１２０１に無駄な処理を実行させてしまうことを防止できる。
【０１６２】
図１３は、本発明の第３実施形態のハッシュ関数の入力とする本来ＩＤの情報を説明する図である。
【０１６３】
本来ＩＤ１３０１は、通常、フリー部分１３０２、製品種別部分１３０３及び企業番号部分１３０４を含む。
【０１６４】
フリー部分１３０２には、ＲＦＩＤデバイス１２０４の一意な識別子が含まれる。製品種別部分１３０３には、ＲＦＩＤデバイス１２０４の製品種別を示す情報が含まれる。
【０１６５】
企業番号部分１３０４には、ＲＦＩＤデバイス１２０４を提供する企業を示す情報が含まれる。本実施形態では、ＲＦＩＤデバイス１２０４を提供する複数の企業がそれぞれ別のサーバ１２０１でＲＦＩＤデバイス１２０４の情報を管理するので、企業番号部分１３０４に含まれるＲＦＩＤデバイス１２０４を提供する企業を示す情報は、ＲＦＩＤデバイス１２０４を管理するサーバ１２０１を特定可能な情報である。
【０１６６】
次回ＩＤ１３０６は、フリー部分１３０７、製品種別部分１３０３及び企業番号部分１３０４を含む。
【０１６７】
次回ＩＤ１３０６の製品種別部分１３０３及び企業番号部分１３０４は、本来ＩＤ１３０１の製品種別部分１３０３及び企業番号部分１３０４と同じである。
【０１６８】
次回ＩＤ１３０６のフリー部分１３０７には、本来ＩＤ１３０１のフリー部分１３０２の情報と、前回送信した次回ＩＤ１３０６のフリー部分１３０７の情報と、を入力としたハッシュ関数が演算され（１３０５）、演算されたハッシュ値が登録される。
【０１６９】
リーダ・ライタ１２０３は、次回ＩＤを受信した場合、受信した次回ＩＤに含まれる企業部分１３０４、つまりＲＦＩＤデバイス１２０４を管理するサーバ１２０１を特定可能な情報に基づいて、受信した次回ＩＤを送信すべきサーバ１２０１を特定し、受信した次回ＩＤを特定したサーバ１２０１に送信する。
【０１７０】
ＲＦＩＤデバイス１２０４は、ＲＦＩＤデバイス１２０４自体の一意な識別子を入力としてハッシュ関数を演算するので、ロケーションプライバシ問題及びコンテンツプライバシ問題を解決できるとともに、ＲＦＩＤデバイス１２０４を管理するサーバ１２０１を特定可能な情報を次回ＩＤに含めるので、当該ＲＦＩＤデバイス１２０４を管理しないサーバ１２０１に無駄な処理を実行させることを防止できる。
【０１７１】
なお、本実施形態では、ＲＦＩＤデバイス１２０４は、本来ＩＤ１３０１のフリー部分１３０２のみをハッシュ関数演算したが、本来ＩＤ１３０１のすべての情報と次回ＩＤ記録部１０６に記録された情報とを入力としたハッシュ関数を演算して、演算したハッシュ値を次回ＩＤ１３０６のフリー部分１３０７に含めてもよい。
【０１７２】
また、本実施形態では、ＲＦＩＤデバイス１２０４は、本来ＩＤ１３０１の製品種別部分１３０３をそのまま次回ＩＤ１３０６に含めたが、本来ＩＤ１３０１のフリー部分１３０２及び製品種別部分１３０３をハッシュ関数演算して、次回ＩＤ１３０６のフリー部分１３０７に含めてもよい。
【０１７３】
さらに、本実施形態では、ＲＦＩＤデバイス１２０４は、本来ＩＤ１３０１のフリー部分１３０２の情報と、前回送信した次回ＩＤ１３０６のフリー部分１３０７の情報と、を入力としたハッシュ関数を演算したが、本来ＩＤ１３０１のフリー部分１３０２の情報と、次回ＩＤ記録部１０６に記録されている値（つまり前回送信した次回ＩＤ又はサーバ１２０１が生成した乱数）と、を入力としたハッシュ関数を演算してもよい。
【０１７４】
＜第４実施形態＞
第４実施形態では、第１実施形態のＲＦＩＤシステムの在庫管理等における使用例を示す。
【０１７５】
第４実施形態を図１４及び図１５を用いて説明する。
【０１７６】
図１４は、本発明の第４実施形態のＲＦＩＤシステムの構成を示す図である。
【０１７７】
ＲＦＩＤシステムは、サーバ１４０１、ライタ１４０３、リーダ１４０４及びＲＦＩＤデバイス１４０６ａ〜１４０６ｎ（ＲＦＩＤデバイス１４０６ａ〜１４０６ｎを総称してＲＦＩＤデバイス１４０６という）を備える。サーバ１４０１は、ネットワーク１４０２を介して、ライタ１４０３及びリーダ１４０４に接続される。
【０１７８】
なお、ＲＦＩＤデバイス１４０６から情報を読み取る要求を送信するリーダ１４０４と、ＲＦＩＤデバイス１４０６へ乱数αを書き込む要求を送信するライタ１４０３と、が別体で配置される。
【０１７９】
ＲＦＩＤデバイス１４０６は商品に装着される。そして、ｎ個のＲＦＩＤデバイス１４０６ａ〜１４０６ｎは、それぞれ箱１４０５に詰められている。
【０１８０】
ＲＦＩＤデバイス１４０６が詰められた複数の箱１４０５Ａ〜１４０５ｍは、ベルトコンベア１４０７上を流される。
【０１８１】
ベルトコンベア１４０７上を流れているＲＦＩＤデバイス１４０６は、ライタ１４０３付近を通過する場合に、ライタ１４０３から乱数αの書き込み要求を受信する。そして、ＲＦＩＤデバイス１４０６は、乱数αの書き込み要求を受信した場合に、乱数αを次回ＩＤ記録部１０６に記憶し、ＩＤ記録部１０４に記録されている本来ＩＤと、次回ＩＤ記録部１０６に記録されている乱数αと、を入力として、ハッシュ関数を演算し、ハッシュ値を算出する。そして、ＲＦＩＤデバイス１４０６は、次回ＩＤ記録部１０６を算出したハッシュ値に上書きする。
【０１８２】
次に、ベルトコンベア上を流れているＲＦＩＤデバイス１４０６は、リーダ１４０４付近を通過する場合に、リーダ１４０４から読み取り要求を受信する。ＲＦＩＤデバイス１４０６は、読み取り要求を受信した場合に、次回ＩＤ記録部１０６に記録されている次回ＩＤをライタ１４０３に送信する。
【０１８３】
なお、ライタ１４０３が設置される場所とリーダ１４０４が設置される場所との間隔は、ＲＦＩＤデバイス１４０６が次回ＩＤを算出した後に読み取り要求を受信できるように、ＲＦＩＤデバイス１４０６がハッシュ関数を演算するために要する時間とベルトコンベア１４０７の速度とを乗じた値以上にする。
【０１８４】
図１５は、本発明の第４実施形態の複数のＲＦＩＤデバイス１０１から情報を読み取る場合のＲＦＩＤシステムのシーケンス図である。
【０１８５】
ライタ１４０３は、サーバ１４０１によって生成された乱数αを予め受信している。ライタ１４０３は、ベルトコンベア１４０７の速度に基づいて、周期的に乱数αの書き込み要求を送信する（１５０１）。
【０１８６】
ＲＦＩＤデバイス１４０６は、乱数αの書き込み要求を受信した場合、乱数αを次回ＩＤ記録部１０６に記録し、本来ＩＤと次回ＩＤ記録部１０６に記録した乱数αとを入力としてハッシュ関数を演算し、ハッシュ値を次回ＩＤ記録部１０６に上書きする（１５０２）。
【０１８７】
一方、リーダ１４０４は、ベルトコンベア１４０７の速度に基づいて、周期的に乱数αの書き込み要求を送信する（１５０３）。この場合、ライタ１４０３が設置される場所とリーダ１４０４が設置される場所との間隔は、ＲＦＩＤデバイス１４０６がハッシュ関数を演算するために要する時間とベルトコンベア１４０７の速度とを乗じた値以上にするため、ＲＦＩＤデバイス１４０６は、ステップ１５０２の処理を実行した後に、読み取り要求を受信する。
【０１８８】
ＲＦＩＤデバイス１４０６は、図３に示すステップ３１０の処理と同じ衝突回避制御処理を実行しながら（１５０４）、リーダ１４０４に次回ＩＤを送信する（１５０５）。
【０１８９】
リーダ１４０４は、次回ＩＤを受信した場合、受信した次回ＩＤをサーバ１４０１に送信する（１５０６）。
【０１９０】
サーバ１４０１は、次回ＩＤを受信した場合、乱数αの生成後すぐにサーバ１４０１が管理するすべてのＲＦＩＤデバイス１４０６の本来ＩＤに対して算出しておいたハッシュ値のうち、受信した次回ＩＤの値と一致するハッシュ値を検索し、一致するハッシュ値の本来ＩＤを取得することによって、次回ＩＤを送信したＲＦＩＤデバイス１４０６を特定する（１５０７）。
【０１９１】
ＲＦＩＤデバイス１４０６は、ライタ１４０３から乱数αの書き込み要求を受信すると、ハッシュ関数を演算し、次回ＩＤを生成しておき、ハッシュ関数の演算後にリーダ１４０４から読み込み要求を受信する。よって、ベルトコンベアの速度を、読み取り要求を受信すると本来ＩＤを送信するＲＦＩＤデバイスを流すベルトコンベアの速度と同じに設定できる。
【０１９２】
なお、本実施形態では、第１実施形態の利用する場合を示したが、カウンタ値を用いてハッシュ関数を演算する第２実施形態を利用してもよい。
【０１９３】
＜第５実施形態＞
第５実施形態では、ＲＦＩＤデバイスが装着された商品を購入したユーザが、商品を購入した後で、自宅及び店舗等でサービスを利用できる例を示す。
【０１９４】
第５実施形態を、図１６〜図１８を用いて説明する。
【０１９５】
図１６は、本発明の第５実施形態のＲＦＩＤシステムの構成図である。
【０１９６】
ＲＦＩＤシステムは、サーバ１６０１、個人用計算機（ＰＣ）１６０４、ＰＣ１６０４に接続されるリーダ・ライタ１６０３、及びＲＦＩＤデバイス１６０５を備える。
【０１９７】
サーバ１６０１とＰＣ１６０４とは、ネットワーク１６０２を介して接続される。ＰＣ１６０４は、店舗１６０７又はＲＦＩＤデバイス１６０５が装着された商品を購入したユーザ１６０６の自宅１６０７等に設置されている。
【０１９８】
サーバ１６０１は、商品に装着されていたＲＦＩＤデバイス１６０５を所有するユーザ１６０６にのみ、サービスを提供する。
【０１９９】
図１７は、本発明の第５実施形態のＲＦＩＤデバイス１６０５から情報を読み取る場合のＲＦＩＤシステムのシーケンス図である。
【０２００】
まず、ユーザ１６０６がＰＣ１６０４に、アクセス先のＵＲＬ等を入力することによって、ＰＣ１６０４は、アクセス先のサーバ１６０１にアクセス要求を送信する（１７０１）。
【０２０１】
サーバ１６０１は、アクセス要求を受信した場合、乱数αを生成し（１７０２）、生成した乱数αをＲＦＩＤデバイス１６０５に書き込む要求をＰＣ１６０４に送信する（１７０３）。
【０２０２】
ＰＣ１６０４は、乱数αの書き込み要求を受信した場合、乱数αの書き込み指示をリーダ・ライタ１６０３に送信する（１７０４）。
【０２０３】
リーダ・ライタ１６０３は、乱数αの書き込み指示を受信した場合、乱数αの書き込み要求をＲＦＩＤデバイス１６０５に送信する（１７０５）。
【０２０４】
ＲＦＩＤデバイス１６０５は、乱数αの書き込み要求を受信した場合、次回ＩＤ記録部１０６に乱数αを記憶し、本来ＩＤと次回ＩＤ記録部１０６に記憶されている乱数αとを入力としたハッシュ関数を演算し、ハッシュ値を算出する。そして、ＲＦＩＤデバイス１６０５は、算出したハッシュ値を次回ＩＤ記録部１０６に上書きする（１７０６）。
【０２０５】
一方、サーバ１６０１は、ステップ１７０３の処理で乱数αの書き込み要求を送信してから所定時間経過後、ＲＦＩＤデバイス１６０５の次回ＩＤ記録部１０６に記録されている次回ＩＤを読み取る要求を、ＰＣ１６０４に送信する（１７０７）。
【０２０６】
なお、所定時間は、ＲＦＩＤデバイス１６０５がステップ１７０６の処理を実行するために要する時間以上に設定される。
【０２０７】
ＰＣ１６０４は、次回ＩＤの読み取り要求を受信した場合、次回ＩＤの読み取り指示をリーダ・ライタ１６０３に送信する（１７０８）。
【０２０８】
リーダ・ライタ１６０３は、次回ＩＤの読み取り指示を受信した場合、次回ＩＤの読み取り要求をＲＦＩＤデバイス１６０５に送信する（１７０９）。
【０２０９】
ＲＦＩＤデバイス１６０５は、次回ＩＤの読み取り要求を受信した場合、次回ＩＤ記録部１０６に記録されている値（次回ＩＤ）を、リーダ・ライタ１６０３に送信する（１７１０）。
【０２１０】
なお、ＲＦＩＤデバイス１６０５は、ステップ１７１０の処理で次回ＩＤを送信した場合、ＩＤ記録部１０４に記録されている本来ＩＤと次回ＩＤ記録部１０６に記録されている送信した次回ＩＤとを入力としてハッシュ関数を演算し、ハッシュ値を算出する。そして、ＲＦＩＤデバイス１０１は、算出したハッシュ値を次回ＩＤ記録部１０６に上書きする（１７１１）。
【０２１１】
リーダ・ライタ１６０３は、次回ＩＤを受信した場合、受信した次回ＩＤをＰＣ１６０４に送信する（１７１２）。
【０２１２】
ＰＣ１６０４は、次回ＩＤを受信した場合、受信した次回ＩＤをサーバ１６０１に送信する（１７１３）。
【０２１３】
サーバ１６０１は、次回ＩＤを受信した場合、乱数αの生成後すぐにサーバ２０１が管理するすべてのＲＦＩＤデバイス１０１の本来ＩＤに対して算出しておいたハッシュ値のうち、受信した次回ＩＤの値と一致するハッシュ値を検索し、一致するハッシュ値の本来ＩＤを取得することによって、次回ＩＤを送信したＲＦＩＤデバイスを特定する（１７１４）。
【０２１４】
サーバ１６０１は、ステップ１７１４の処理で、次回ＩＤを送信したＲＦＩＤデバイスを特定した場合、次回ＩＤを送信したＰＣ１６０４にアクセス許可を送信する（１７１５）。
【０２１５】
ＰＣ１６０４がアクセス許可を受信した場合に、サービスの利用を開始する（１７１６）。
【０２１６】
ＰＣ１６０４は、ユーザ１６０６からの入力によってサービスの利用を終了する場合には、サービスの利用の終了通知をサーバ１６０１に送信する（１７１７）。
【０２１７】
そして、サーバ１６０１は、ＰＣ１６０４からサービスの利用の終了通知を受信した場合、サービスの提供を終了する（１７１８）。
【０２１８】
図１８は、本発明の第５実施形態のＰＣ１６０４のサービス利用処理のフローチャートである。
【０２１９】
まず、ユーザ１６０６がＰＣ１６０４に、アクセス先のＵＲＬ等を入力し（１８０１）、ＰＣ１６０４は、アクセス先のサーバ１６０１にアクセス要求を送信する（１８０２）。
【０２２０】
次に、ＰＣ１６０４は、アクセス要求を送信したサーバ１６０１にアクセス制限が設定されているか否かを判定する（１８０３）。
【０２２１】
アクセス制限は、サーバ１６０１が管理するＲＦＩＤデバイス１６０５か否かを判定し、サーバ１６０１が管理するＲＦＩＤデバイスのみにサービスを提供することをいう。
【０２２２】
ステップ１８０３の処理で、アクセス要求を送信したサーバ１６０１にアクセス制限が設定されていないと判定された場合、ＲＦＩＤデバイス１６０５を特定する処理を実行しないで、サービスの利用を開始する（１８１１）。
【０２２３】
一方、ステップ１８０３の処理で、アクセス要求を送信したサーバ１６０１にアクセス制限が設定されていると判定された場合、ＰＣ１６０４は、乱数αの書き込み要求を受信したか否かを判定する（１８０４）。
【０２２４】
ステップ１８０４の処理で、乱数αの書き込み要求を受信していないと判定された場合、ＰＣ１６０４は、その他の指示を受信したか否かを判定する（１８１５）。
【０２２５】
ステップ１８１５の処理で、その他の指示を受信していないと判定された場合、ＰＣ１６０４は、エラーをユーザ１６０６に報知するエラー画面を表示し（１８１９）、サービス利用処理を終了する（１８１３）。
【０２２６】
一方、ステップ１８１５の処理で、その他の指示を受信したと判定された場合、ＰＣ１６０４は、受信した指示に対応する処理を実行する（１８１６）。
【０２２７】
一方、ステップ１８０４の処理で、乱数αの書き込み要求を受信したと判定された場合、ＰＣ１６０４は、乱数αの書き込み指示をリーダ・ライタ１６０３に送信する（１８０５）。
【０２２８】
そして、ＰＣ１６０４は、次回ＩＤを読み取る要求を受信したか否かを判定する（１８０６）。
【０２２９】
ステップ１８０６の処理で、次回ＩＤを読み取る要求を受信していないと判定された場合、ＰＣ１６０４は、エラーをユーザ１６０６に報知するエラー画面を表示し（１８１９）、サービス利用処理を終了する（１８１３）。
【０２３０】
一方、ステップ１８０６の処理で、次回ＩＤを読み取る要求を受信したと判定された場合、ＰＣ１６０４は、次回ＩＤの読み取り指示をリーダ・ライタ１６０３に送信する（１８０７）。
【０２３１】
次に、ＰＣ１６０４は、次回ＩＤを受信したか否かを判定する（１８０８）。
【０２３２】
ステップ１８０８の処理で、次回ＩＤを受信していないと判定された場合、ＰＣ１６０４は、次回ＩＤの読み取り要求に対して応答がないことをサーバ１６０１に通知し（１８１４）、ステップ１８１０の処理に進む。
【０２３３】
一方、ステップ１８０８の処理で、次回ＩＤを受信したと判定された場合、ＰＣ１６０４は、受信した次回ＩＤをサーバ１６０１に送信する（１８０９）。
【０２３４】
次に、ＰＣ１６０４は、サーバ１６０１からアクセス許可を受信したか否かを判定する（１８１０）。
【０２３５】
ステップ１８１０の処理で、サーバ１６０１からアクセス許可を受信していないと判定された場合、サーバ１６０１が次回ＩＤを送信したＲＦＩＤデバイス１６０５を特定できなかった場合に送信するアクセス拒否を受信したか否かを判定する（１８１７）。
【０２３６】
ステップ１８１７の処理で、サーバ１６０１からアクセス拒否を受信していないと判定された場合、ＰＣ１６０４は、エラーをユーザ１６０６に報知するエラー画面を表示し（１８１９）、サービス利用処理を終了する（１８１３）。
【０２３７】
一方、ステップ１８１７の処理で、サーバ１６０１からアクセス拒否を受信したと判定された場合、ＰＣ１６０４は、アクセス要求が拒否された旨を表示し（１８１８）、サービス利用処理を終了する（１８１３）。
【０２３８】
一方、ステップ１８１０の処理で、サーバ１６０１からアクセス許可を受信したと判定された場合、ＰＣ１６０４は、サービスの利用を開始する（１８１１）。
【０２３９】
そして、ＰＣ１６０４は、ユーザ１６０６からの入力によってサービスの利用を終了する場合には、サービスの利用の終了通知をサーバ１６０１に送信し（１８１２）、サービス利用処理を終了する（１８１３）。
【０２４０】
これによって、ＲＦＩＤデバイス１６０５は、毎回異なる次回ＩＤを送信できるので、コンテンツプライバシの問題及びロケーションプライバシの問題を解決できる。
【０２４１】
また、ＫＩＬＬコマンド等によって本来ＩＤが変化することはないため、ＲＦＩＤデバイス１６０５が装着された商品が出荷される前も、ＲＦＩＤデバイス１６０５が装着された商品が購入された後も、同じ本来ＩＤである。このため、サーバ１６０１は、商品出荷された後に、本来ＩＤを変更せずに、ＲＦＩＤデバイス１６０５を管理できる。
【０２４２】
＜第６実施形態＞
第６実施形態では、第２実施形態のＲＦＩＤデバイスを用いたネットワーク認証を示す。
【０２４３】
第６実施形態を図１９〜図２９を用いて説明する。
【０２４４】
図１９は、本発明の第６実施形態のＲＦＩＤシステムの構成を示す図である。
【０２４５】
部屋１９１０には、複数のＰＣ１９０６Ａ〜１９０６Ｎ（ＰＣ１９０６Ａ〜１９０６Ｎを総称して、ＰＣ１９０６という）が設置される。
【０２４６】
複数のＰＣ１９０６Ａ〜１９０６Ｎには、それぞれＲＦＩＤデバイス１９０８に次回ＩＤの読み取り要求を送信するリーダ１９０５Ａ〜１９０５Ｎ（リーダ１９０５Ａ〜１９０５Ｎを総称して、リーダ１９０５という）が接続される。
【０２４７】
ＰＣ１９０６は、ネットワーク１９０２を介してサーバ１９０１に接続される。
【０２４８】
ＰＣ１９０６は、ユーザ１９０９が所有するＲＦＩＤデバイス１９０８がサーバ１９０１によって特定された場合にのみロックが解除されて、ユーザ１９０９がＰＣ１９０６を利用可能になる。
【０２４９】
なお、部屋１９１０の入口のドアは、電気錠１９０４によって鍵が開閉される。また、入口のドア付近には、ＲＦＩＤデバイス１９０８に乱数αの書き込み要求及び次回ＩＤの読み取り要求を送信するリーダ・ライタ１９０３が設置される。
【０２５０】
電気錠１９０４及びリーダ・ライタ１９０３は、ネットワーク１９０２を介してサーバ１９０１に接続される。
【０２５１】
ユーザ１９０９が所有するＲＦＩＤデバイス１９０８がサーバ１９０１によって特定された場合にのみ、電気錠１９０４は開錠する。
【０２５２】
サーバ１９０１は、サーバ１９０１が管理するＲＦＩＤデバイス１９０８から次に送信される次回ＩＤの予測値を示すＩＤ管理テーブル２００１を記憶する。
【０２５３】
図２０は、本発明の第６実施形態のＩＤ管理テーブル２００１の説明図である。
【０２５４】
ＩＤ管理テーブル２００１は、本来ＩＤ２００２及び次回ＩＤ予測値２００３を含む。
【０２５５】
本来ＩＤ２００２には、サーバ１９０１が管理するすべてのＲＦＩＤデバイス１９０８の本来ＩＤが登録される。
【０２５６】
次回ＩＤ予測値２００３には、ＲＦＩＤデバイス１９０８が次に送信する次回ＩＤを予測した値が登録される。
【０２５７】
なお、次回ＩＤ予測値２００３は、サーバ１９０１が次回ＩＤを受信するごとに更新される。ＩＤ管理テーブル２００１の更新処理については、図２１のステップ２１１３の処理、ステップ２１２２の処理、及び図２７のステップ２７０６の処理で説明する。
【０２５８】
図２１は、本発明の第６実施形態のネットワーク認証処理のＲＦＩＤシステムのシーケンス図である。
【０２５９】
ネットワーク認証処理には、ユーザ１９０９が部屋１９１０に入室する場合に、サーバ１９０１がドア付近に設置されたリーダ・ライタ１９０３を介してユーザ１９０９の所有するＲＦＩＤデバイス１９０８を認証する入室認証処理と、ユーザ１９０９がＰＣ１９０６を利用する場合に、サーバ１９０１がＰＣ１９０６に接続されたリーダ１９０５を介してユーザ１９０９が所有するＲＦＩＤデバイス１９０８を認証するＰＣ利用認証処理とがある。
【０２６０】
入室認証処理は、ステップ２１０１の処理〜ステップ２１１３の処理で説明する。ＰＣ利用認証処理は、ステップ２１１４の処理〜ステップ２１２６の処理で説明する。
【０２６１】
サーバ１９０１は、乱数αを周期的に更新し、乱数αを更新した場合、更新した乱数αをリーダ・ライタ１９０３に通知する。
【０２６２】
リーダ・ライタ１９０３は、サーバ１９０１から通知された乱数αをＲＦＩＤデバイス１９０８に書き込む要求を周期的にＲＦＩＤデバイス１９０８に送信する（２１０１）。
【０２６３】
ＲＦＩＤデバイス１９０８がリーダ・ライタ１９０３付近に位置している場合に、ＲＦＩＤデバイス１９０８は、乱数αの書き込み要求を受信する。
【０２６４】
ＲＦＩＤデバイス１９０８は、乱数αの書き込み要求を受信した場合、受信した乱数αを次回ＩＤ記録部１０６に上書きする。そして、ＲＦＩＤデバイス１９０８は、ＩＤ記録部１０４に記録されている本来ＩＤ、次回ＩＤ記録部１０６に記録されている値、及びカウンタ７０２に記録されているカウンタ値を入力としてハッシュ関数を演算し、ハッシュ値を算出する。そして、ＲＦＩＤデバイス１９０８は、次回ＩＤ記録部１０６を算出したハッシュ値に上書きする（２１０２）。
【０２６５】
リーダ・ライタ１９０３は、ステップ２１０１の処理で乱数αの書き込み要求を送信してから、ＲＦＩＤデバイス１９０８がステップ２１０２の処理を実行するために要する時間以上に設定された所定時間経過後、ＲＦＩＤデバイス１９０８の次回ＩＤ記録部１０６に記録されている次回ＩＤを読み取る要求を、リーダ・ライタ１９０３に送信する（２１０３）。
【０２６６】
ＲＦＩＤデバイス１９０８は、次回ＩＤの読み取り要求を受信した場合、次回ＩＤ記録部１０６に記録されている値（次回ＩＤ）、及び次回ＩＤを算出するためにハッシュ関数の演算の入力としたカウンタ値を、リーダ・ライタ１９０３に送信する（２１０４）。
【０２６７】
リーダ・ライタ１９０３は、ＲＦＩＤデバイス１９０８から次回ＩＤ及びカウンタ値を受信した場合、受信した次回ＩＤ及びカウンタ値をサーバ１９０１に送信する（２１０６）。
【０２６８】
なお、ＲＦＩＤデバイス１９０８は、ステップ２１０４の処理で次回ＩＤ及びカウンタ値を送信した場合、カウンタ７０２に記憶された値をインクリメントし、カウンタ値を更新する。そして、ＲＦＩＤデバイス１９０８は、ＩＤ記録部１０４に記録されている本来ＩＤ、次回ＩＤ記録部１０６に記録されている値、及び更新したカウンタ値を入力としてハッシュ関数を演算し、ハッシュ値を算出する。そして、ＲＦＩＤデバイス１９０８は、次回ＩＤ記録部１０６を算出したハッシュ値に上書きする（２１０５）。
【０２６９】
一方、サーバ１９０１は、ステップ２１０６の処理でリーダ・ライタ１９０３によって送信された次回ＩＤ及びカウンタ値を受信した場合、サーバ１９０１が管理するすべてのＲＦＩＤデバイス７０１の本来ＩＤに対して、本来ＩＤ、受信したカウンタ値、及び乱数αを入力として、ＲＦＩＤデバイス１９０８と同じハッシュ関数を演算する。そして、サーバ１９０１は、サーバ１９０１が管理するすべてのＲＦＩＤデバイス１９０８の本来ＩＤに対して演算したハッシュ値のうち、受信した次回ＩＤの値と一致するハッシュ値を検索し、一致するハッシュ値の本来ＩＤを取得することによって、次回ＩＤを送信したＲＦＩＤデバイス１９０８を特定する（２１０７）。
【０２７０】
ステップ２１０７の処理でサーバ１９０１が次回ＩＤを送信したＲＦＩＤデバイス１９０８を特定できた場合、サーバ１９０１は、電気錠１９０４を開錠する要求を電気錠１９０４に送信する（２１０８）。
【０２７１】
電気錠１９０４は、電気錠１９０４を開錠する要求を受信した場合、ドアのロックを開錠する（２１０９）。そして、電気錠１９０４は、所定時間経過すると、ドアのロックを閉錠する（２１１０）。
【０２７２】
ユーザ１９０９は、電気錠１９０４がドアのロックを開錠している間に、部屋１９１０に入室し（２１１１）、自席に着席する（２１１２）。
【０２７３】
また、サーバ１９０１は、ステップ２１０７の処理でサーバ１９０１が次回ＩＤを送信したＲＦＩＤデバイス１９０８を特定できた場合、ＩＤ管理テーブル２００１を更新する（２１１３）。
【０２７４】
具体的には、サーバ１９０１は、ステップ２１０７の処理で取得した本来ＩＤ、ステップ２１０６の処理でリーダ・ライタ１９０３から送信された次回ＩＤ、及びステップ２１０６の処理でリーダ・ライタ１９０３から送信されたカウンタ値をインクリメントした値を入力としてハッシュ関数を演算し、ハッシュ値を算出する。
【０２７５】
そして、サーバ１９０１は、ＩＤ管理テーブル２００１の本来ＩＤ２００２に登録された本来ＩＤのうち、ステップ２１０７の処理で取得した本来ＩＤと一致するエントリの次回ＩＤ予測値２００３に算出したハッシュ値を登録し、ＩＤ管理テーブル２００１を更新する。
【０２７６】
ユーザ１９０９は、自席に着席すると、ＰＣ１９０６を利用するために、ＲＦＩＤデバイス１９０８をＰＣ１９０６に接続されたリーダ１９０５にかざす。
【０２７７】
ＰＣ１９０６は、ＲＦＩＤデバイス１９０８の次回ＩＤを読み取る指示を周期的にリーダ１９０５に送信している（２１１４）。リーダ１９０５は、ＰＣ１９０６から次回ＩＤの読み取り指示を受けると、次回ＩＤの読み取り要求をＲＦＩＤデバイス１９０８に送信する（２１１５）。つまり。リーダ１９０５は、次回ＩＤの読み取り要求を周期的に送信している。
【０２７８】
したがって、ユーザ１９０９がＲＦＩＤデバイス１９０８をＰＣ１９０６に接続されたリーダ１９０５にかざした場合、ＲＦＩＤデバイス１９０８は、リーダ１９０５から次回ＩＤの読み取り要求を受信する。
【０２７９】
ＲＦＩＤデバイス１９０８は、次回ＩＤの読み取り要求を受信した場合、次回ＩＤ記録部１０６に記録されている値（次回ＩＤ）、及び次回ＩＤを算出するためにハッシュ関数の演算の入力としたカウンタ値を、リーダ１９０５に送信する（２１１６）。
【０２８０】
なお、ＲＦＩＤデバイス１９０８は、ステップ２１１５の処理で次回ＩＤ及びカウンタ値を送信した場合、カウンタ値を更新し、本来ＩＤ、送信した次回ＩＤ、及び更新したカウンタ値を入力としてハッシュ関数を演算し、ハッシュ値を算出する。そして、ＲＦＩＤデバイス１９０８は、次回ＩＤ記録部１０６を算出したハッシュ値に上書きする（２１１７）。
【０２８１】
リーダ１９０５は、ＲＦＩＤデバイス１９０８から次回ＩＤ及びカウンタ値を受信した場合、受信した次回ＩＤ及びカウンタ値をＰＣ１９０６に送信する（２１１８）。
【０２８２】
ＰＣ１９０６は、リーダ１９０５から次回ＩＤ及びカウンタ値を受信した場合、受信した次回ＩＤ及びカウンタ値をサーバ１９０１に送信する（２１１９）。
【０２８３】
サーバ１９０１は、ＰＣ１９０６から次回ＩＤ及びカウンタ値を受信した場合、ＩＤ管理テーブル２００１を参照し、ＩＤ管理テーブル２００１の次回ＩＤ予測値２００３に登録された次回ＩＤのうち、受信した次回ＩＤと一致するエントリの本来ＩＤ２００２に登録された本来ＩＤを取得し、次回ＩＤを送信したＲＦＩＤデバイス１９０８を特定する（２１２０）。
【０２８４】
ステップ２１２０の処理で、受信した次回ＩＤに対応する本来ＩＤを取得できた場合、サーバ１９０１は、ＲＦＩＤデバイス１９０８を認証したので、ＲＦＩＤデバイス１９０８を所有するユーザ１９０９がＰＣ１９０６を利用できるように、ＰＣ１９０６がロック状態であれば、ロック状態を解除する利用許可通知をＰＣ１９０６に送信する（２１２１）。
【０２８５】
サーバ１９０１は、ステップ２１２１の処理で利用許可通知を送信した後、ステップ２１１３の処理と同じく、ＩＤ管理テーブル２００１を更新する（２１２２）。
【０２８６】
ＰＣ１９０６は、サーバ１９０１から利用許可通知を受信した場合、ＰＣ１９０６がロック状態であればロック状態を解除する（２１２３）。
【０２８７】
ＰＣ１９０６は次回ＩＤを読み取る指示を周期的にリーダ１９０５に送信するため、ＲＦＩＤシステムは、ＰＣ利用認証処理を所定周期で繰り返し実行する。なお、図２１において、繰り返し実行されるＰＣ利用認証処理は、ステップ２１１４の処理〜ステップ２１２２の処理と同じなので、同じ符号を付与し、説明を省略する。
【０２８８】
２回目のＰＣ利用認証処理において、ＲＦＩＤデバイス１９０８がステップ２１１７の処理を実行した後に、ＲＦＩＤデバイス１９０８を所有するユーザ１９０９は、ＲＦＩＤデバイス２１１７を持って離席する（２１２４）。
【０２８９】
次に実行されるＰＣ利用処理において、リーダ１９０５から送信される次回ＩＤの読み取り要求は、ＲＦＩＤデバイス１９０８によって受信されないため、リーダ１９０５は、ＲＦＩＤデバイス１９０８の次回ＩＤを受信できない。
【０２９０】
この場合、リーダ１９０５は、ＲＦＩＤデバイス１９０８から返答がないことをＰＣ１９０６に通知する（２１２５）。
【０２９１】
ＰＣ１９０６は、ＲＦＩＤデバイス１９０８から返答がないことを通知された場合、ＰＣ１９０６を利用できないようにするために、ロック状態にする（２１２６）。
【０２９２】
第６実施形態では、サーバ１９０１は、ＰＣ利用認証処理では、次回ＩＤ予測値を用いて、受信した次回ＩＤのＲＦＩＤデバイス１９０８を認証する。よって、次回ＩＤの受信するごとに、サーバ１９０１が管理するすべてのＲＦＩＤデバイス１９０８の本来ＩＤに対して、サーバ１９０１がハッシュ関数を演算して、ＲＦＩＤデバイス１９０８を認証する場合よりも、サーバ１９０１の処理負荷を軽減できる。
【０２９３】
また、ユーザ１９０９が部屋１９１０に入室する場合に、乱数αを用いてハッシュ関数が演算されるため、部屋１９１０の外で不正に次回ＩＤを取得されたとしても、不正に取得した次回ＩＤを用いてＰＣ１９０６を利用できない。
【０２９４】
図２２は、本発明の第６実施形態のリーダ・ライタ１９０３の乱数αの更新処理のフローチャートである。
【０２９５】
リーダ・ライタ１９０３は、サーバ１９０１から更新された乱数αを受信する（２２０１）。
【０２９６】
リーダ・ライタ１９０３は、受信した乱数αを記憶し（２２０２）、乱数αの更新処理を終了する（２２０３）。
【０２９７】
図２３は、本発明の第６実施形態のリーダ・ライタ１９０３のネットワーク認証処理のフローチャートである。
【０２９８】
リーダ・ライタ１９０３は、所定の周期でネットワーク認証処理を開始する（２３０１）。
【０２９９】
リーダ・ライタ１９０３は、乱数αの書き込み要求をＲＦＩＤデバイス１９０８に送信する（２３０２）。
【０３００】
リーダ・ライタ１９０３は、ステップ２３０２の処理で乱数αの書き込み要求を送信してから、所定時間経過後に、次回ＩＤの読み取り要求をＲＦＩＤデバイス１９０８に送信する（２３０３）。
【０３０１】
リーダ・ライタ１９０３は、ＲＦＩＤデバイス１９０８から次回ＩＤ及びカウンタ値を受信したか否かを判定する（２３０４）。
【０３０２】
ステップ２３０４の処理で、ＲＦＩＤデバイス１９０８から次回ＩＤ及びカウンタ値を受信していないと判定された場合、リーダ・ライタ１９０３は、次回ＩＤ取得処理を終了する（２３０６）。
【０３０３】
一方、ステップ２３０４の処理で、ＲＦＩＤデバイス１９０８から次回ＩＤ及びカウンタ値を受信したと判定された場合、リーダ・ライタ１９０３は、受信した次回ＩＤ及びカウンタ値をサーバ１９０１に送信し（２３０５）、次回ＩＤ取得処理を終了する（２３０６）。
【０３０４】
図２４は、本発明の第６実施形態のリーダ１９０５のネットワーク認証処理のフローチャートである。
【０３０５】
まず、リーダ１９０５は、ＰＣ１９０６から次回ＩＤの読み取り指示を受信した場合に、ネットワーク認証処理を開始する（２４０１）。
【０３０６】
リーダ１９０５は、ＰＣ１９０６から次回ＩＤの読み取り指示を受信した場合、次回ＩＤの書き込み要求をＲＦＩＤデバイス１９０８に送信する（２４０２）。
【０３０７】
リーダ１９０５は、ＲＦＩＤデバイス１９０８から次回ＩＤ及びカウンタ値を受信したか否かを判定する（２４０３）。
【０３０８】
ステップ２４０３の処理で、ＲＦＩＤデバイス１９０８から次回ＩＤ及びカウンタ値を受信していないと判定された場合、リーダ１９０５は、ＲＦＩＤデバイス１９０８から返答がないことをＰＣ１９０６に通知し（２４０６）、次回ＩＤ取得処理を終了する（２４０５）。
【０３０９】
一方、ステップ２４０３の処理で、ＲＦＩＤデバイス１９０８から次回ＩＤ及びカウンタ値を受信したと判定された場合、リーダ１９０５は、受信した次回ＩＤ及びカウンタ値をＰＣ１９０６に送信し（２４０４）、次回ＩＤ取得処理を終了する（２４０５）。
【０３１０】
図２５は、本発明の第６実施形態のＰＣ１９０６のネットワーク認証処理のフローチャートである。
【０３１１】
ＰＣ１９０６は、次回ＩＤの読み取り指示を所定の周期でリーダ１９０５に送信する（２５０１）。
【０３１２】
次に、ＰＣ１９０６は、リーダ１９０５から次回ＩＤ及びカウンタ値を受信したか否かを判定する（２５０２）。
【０３１３】
ステップ２５０２の処理で、リーダ１９０５から次回ＩＤ及びカウンタ値を受信していないと判定された場合、ＰＣ１９０６は、ＰＣ１９０６の状態がロック解除中であるか否かを判定する（２５０８）。
【０３１４】
ステップ２５０８の処理で、ＰＣ１９０６の状態がロック解除中であると判定された場合、ＰＣ１９０６は、ＰＣ１９０６の状態をロック状態にして（２５０９）、ネットワーク認証処理を終了する（２５０７）。
【０３１５】
一方、ステップ２５０８の処理で、ＰＣ１９０６の状態がロック解除中でないと判定された場合、ＰＣ１９０６の状態はロック状態であるため、ＰＣ１９０６は、ネットワーク認証処理を終了する（２５０７）。
【０３１６】
一方、ステップ２５０２の処理で、リーダ１９０５から次回ＩＤ及びカウンタ値を受信したと判定された場合、ＰＣ１９０６は、受信した次回ＩＤ及びカウンタ値をサーバ１９０１に送信する（２５０３）。
【０３１７】
そして、ＰＣ１９０６は、サーバ１９０１から利用許可通知を受信したか否かを判定する（２５０４）。
【０３１８】
ステップ２５０４の処理で、サーバ１９０１から利用許可通知を受信していないと判定された場合、ＰＣ１９０６は、ステップ２５０８の処理を実行する。
【０３１９】
一方、ステップ２５０４の処理で、サーバ１９０１から利用許可通知を受信したと判定された場合、ＰＣ１９０６は、ＰＣ１９０６の状態がロック中であるか否かを判定する（２５０５）。
【０３２０】
ステップ２５０５の処理で、ＰＣ１９０６の状態がロック中であると判定された場合、ＰＣ１９０６は、ＲＦＩＤデバイス１９０８を所有するユーザ１９０９がＰＣ１９０６を利用できるように、ＰＣ１９０６のロック状態を解除し（２５０６）、ネットワーク認証処理を終了する（２５０７）。
【０３２１】
一方、ステップ２５０５の処理で、ＰＣ１９０６の状態がロック中でないと判定された場合、ＲＦＩＤデバイス１９０８を所有するユーザ１９０９がＰＣ１９０６を利用できるので、ネットワーク認証処理を終了する（２５０７）。
【０３２２】
図２６は、本発明の第６実施形態の電気錠１９０４のネットワーク認証処理のフローチャートである。
【０３２３】
電気錠１９０４は、サーバ１９０１から開錠指示を受信する（２６０１）。
【０３２４】
電気錠１９０４は、サーバ１９０１から開錠指示を受信した場合、ドアのロックを開錠する（２６０２）。
【０３２５】
そして、電気錠１９０４は、ドアの開閉があったか否かを判定する（２６０３）。
【０３２６】
ステップ２６０３の処理で、ドアの開閉がないと判定された場合、電気錠１９０４は、所定時間経過すると（２６０６）、ドアのロックを閉錠し（２６０４）、ネットワーク認証処理を終了する（２６０５）。
【０３２７】
一方、ステップ２６０３の処理で、ドアの開閉があったと判定された場合、電気錠１９０４は、ドアのロックを閉錠し（２６０４）、ネットワーク認証処理を終了する（２６０５）。
【０３２８】
図２７は、本発明の第６実施形態のサーバ１９０１のネットワーク認証処理のフローチャートである。
【０３２９】
サーバ１９０１は、リーダ・ライタ１９０３又はＰＣ１９０６から次回ＩＤ及びカウンタ値を受信する（２７０１）。
【０３３０】
そして、サーバ１９０１は、受信した次回ＩＤ及びカウンタ値はＰＣ１９０６によって送信されたものであるか否かを判定する（２７０２）。
【０３３１】
受信した次回ＩＤ及びカウンタ値がＰＣ１９０６によって送信されたものであるか否かを判定する具体的な方法を以下に説明する。
【０３３２】
ＰＣ１９０６は、次回ＩＤのパケットのアプリケーション層にＰＣ１９０６が送信したことを示す情報を含めて、次回ＩＤをサーバ１９０１に送信する。
【０３３３】
そして、次回ＩＤを受信したＰＣ１９０８は、受信した次回ＩＤ及びカウンタ値のパケットに、ＰＣ１９０６が送信したことを示す情報が含まれるか否かを判定する。
【０３３４】
受信した次回ＩＤ及びカウンタ値のパケットにＰＣ１９０６が送信したことを示す情報が含まれる場合、サーバ１９０１は、受信した次回ＩＤ及びカウンタ値はＰＣ１９０６によって送信されたもの、つまり、受信した次回ＩＤ及びカウンタ値はＲＦＩＤリーダ１９０５から送信されたものであると判定する。
【０３３５】
また、受信した次回ＩＤ及びカウンタ値のパケットにＰＣ１９０６が送信したことを示す情報が含まれない場合、サーバ１９０１は、受信した次回ＩＤ及びカウンタ値はＰＣ１９０６によって送信されていない、つまり、受信した次回ＩＤ及びカウンタ値はＲＦＩＤリーダ・ライタ１９０３から送信されたものであると判定する。
【０３３６】
なお、サーバ１９０１は、受信した次回ＩＤ及びカウンタ値のパケットの送信元を参照して、受信した次回ＩＤ及びカウンタ値はＰＣ１９０６によって送信されたものであるか否かを判定してもよい。
【０３３７】
ステップ２７０２の処理で、受信した次回ＩＤ及びカウンタ値がＰＣ１９０６によって送信されたものであると判定された場合、サーバ１９０１は、受信した次回ＩＤとＩＤ管理テーブル２００１の次回ＩＤ予測値２００３に登録された次回ＩＤとを比較する（２７０３）。
【０３３８】
そして、サーバ１９０１は、ＩＤ管理テーブル２００１の次回ＩＤ予測値２００３に登録された次回ＩＤのうち、受信した次回ＩＤと一致する次回ＩＤがあるか否かを判定する（２７０４）。
【０３３９】
ステップ２７０４の処理で、ＩＤ管理テーブル２００１の次回ＩＤ予測値２００３に登録された次回ＩＤのうち、受信した次回ＩＤと一致する次回ＩＤがないと判定された場合、サーバ１９０１は、次回ＩＤを送信したＲＦＩＤデバイス１９０８は、サーバ１９０１が管理するＲＦＩＤデバイス１９０８でないので、このＲＦＩＤデバイス１９０８を所有するユーザがＰＣ１９０６を利用できなくするように、利用拒否通知をＰＣ１９０６に送信する（２７０８）。
【０３４０】
一方、ステップ２７０４の処理で、ＩＤ管理テーブル２００１の次回ＩＤ予測値２００３に登録された次回ＩＤのうち、受信した次回ＩＤと一致する次回ＩＤがあると判定された場合、サーバ１９０１は、次回ＩＤを送信したＲＦＩＤデバイス１９０８は、サーバ１９０１が管理するＲＦＩＤデバイス１９０８であるので、このＲＦＩＤデバイス１９０８を所有するユーザがＰＣ１９０６を利用できるように、利用許可通知をＰＣ１９０６に送信する（２７０５）。
【０３４１】
そして、サーバ１９０１は、受信した次回ＩＤに対応する本来ＩＤと一致するＩＤ管理テーブル２００１のエントリに含まれる次回ＩＤ予測値２００３を更新し（２７０６）、ネットワーク認証処理を終了する（２７０７）。
【０３４２】
一方、ステップ２７０２の処理で、受信した次回ＩＤ及びカウンタ値がＰＣ１９０６によって送信されたものでないと判定された場合、受信した次回ＩＤ及びカウンタ値はリーダ・ライタ１９０３によって送信されたものである。
【０３４３】
受信した次回ＩＤ及びカウンタ値がリーダ・ライタ１９０３によって送信されたものである場合、カウンタ値を受信するまでカウンタ値を予測できないため、次回ＩＤを予測できないので、ＩＤ管理テーブル２００１を参照して、ＲＦＩＤを特定できない。
【０３４４】
このため、サーバ１９０１は、サーバ１９０１が管理するすべてのＲＦＩＤデバイス１９０８の本来ＩＤに対して、本来ＩＤ、受信したカウンタ値、及び乱数αを入力として、ＲＦＩＤデバイス１９０８と同じハッシュ関数を演算してハッシュ値を算出する（２７０９）。
【０３４５】
そして、サーバ１９０１は、サーバ１９０１が管理するすべてのＲＦＩＤデバイス１９０８の本来ＩＤに対して算出したハッシュ値のうち、受信した次回ＩＤの値と一致するハッシュ値があるか否かを判定する（２７１０）。
【０３４６】
ステップ２７１０の処理で、サーバ１９０１が管理するすべてのＲＦＩＤデバイス１９０８の本来ＩＤに対して算出したハッシュ値のうち、受信した次回ＩＤの値と一致するハッシュ値がないと判定された場合、次回ＩＤを送信したＲＦＩＤデバイス１９０８はサーバ１９０１が管理するＲＦＩＤデバイス１９０８でないので、サーバ１９０１は、電気錠１９０４を開錠する要求を電気錠１９０４に送信せずに、ネットワーク認証処理を終了する（２７０７）。
【０３４７】
一方、ステップ２７１０の処理で、サーバ１９０１が管理するすべてのＲＦＩＤデバイス１９０８の本来ＩＤに対して算出したハッシュ値のうち、受信した次回ＩＤの値と一致するハッシュ値があると判定された場合、次回ＩＤを送信したＲＦＩＤデバイス１９０８はサーバ１９０１が管理するＲＦＩＤデバイス１９０８であるので、サーバ１９０１は、電気錠１９０４を開錠する要求を電気錠１９０４に送信し（２７１１）、ステップ２７０９の処理に進む。
【０３４８】
なお、本実施形態は、一つの部屋１９１０におけるネットワーク認証処理について説明したが、図２８に示すように、複数の部屋１９１０Ａ〜１９１０Ｃにおけるネットワーク認証処理にも適用できる。
【０３４９】
図２８は、本発明の第６実施形態の複数の部屋１９１０Ａ〜１９１０Ｃにおけるネットワーク認証処理を実行するＲＦＩＤシステムの構成図である。なお、図２８において、図１９に示す構成と同じものは、同じ番号を付与し、説明を省略する。
【０３５０】
複数の部屋１９１０Ａ〜１９１０Ｃに設置されたＰＣ１９０６、リーダ・ライタ１９０３、及び電気錠１９０４は、ネットワーク１９０２Ａ〜１９０２Ｃ及びネットワーク１９０２を介してサーバ１９０１に接続される。
【０３５１】
また、本実施形態では、第２実施形態のＲＦＩＤデバイス１９０８を利用するネットワーク認証処理を示したが、ここでは，第１実施形態のＲＦＩＤデバイス１９０８を利用するネットワーク認証処理を以下に説明する。
【０３５２】
この場合、ＩＤ管理テーブル２００１の次回ＩＤ予測値２００３を更新する方法が、第２実施形態のＲＦＩＤデバイス１９０８を利用する第６実施形態と相違する。
【０３５３】
具体的には、本来ＩＤと受信した次回ＩＤとを入力とするハッシュ関数を演算し、ハッシュ値を算出する。そして、サーバ１９０１は、ＩＤ管理テーブル２００１の本来ＩＤ２００２に登録された本来ＩＤのうち、特定したＲＦＩＤデバイス１９０８の本来ＩＤと一致するエントリの次回ＩＤ予測値２００３に算出したハッシュ値を登録し、ＩＤ管理テーブル２００１を更新する。
【０３５４】
なお、第２実施形態のＲＦＩＤデバイス１９０８を利用する第６実施形態では、図２７に示すように、サーバ１９０１は、リーダ・ライタ１９０３から次回ＩＤを受信した場合、本来ＩＤ、受信したカウンタ値、及び乱数αを入力として、ＲＦＩＤデバイス１９０８と同じハッシュ関数を演算してハッシュ値を算出している。
【０３５５】
しかし、第１実施形態のＲＦＩＤデバイス１９０８は、乱数αの書き込み要求を受信した場合、本来ＩＤと乱数αとを入力としてハッシュ関数を演算し、次回ＩＤを生成するので、サーバ１９０１は、生成した乱数αを記憶しているため、リーダ・ライタ１９０３から次回ＩＤを受信する前に、予めリーダ・ライタ１９０３から受信する次回ＩＤを予測できる。
【０３５６】
このため、サーバ１９０１は、図２９に示すＩＤ管理テーブル２９０１を記憶している。
【０３５７】
図２９は、本発明の第６実施形態のＩＤ管理テーブル２９０１を説明するための図である。なお、ＩＤ管理テーブル２９０１の構成のうち、ＩＤ管理テーブル２００１と同じ構成のものは、同じ番号を付与し、説明を省略する。
【０３５８】
ＩＤ管理テーブル２９０１は、本来ＩＤ２００２、第１次回ＩＤ予測値２９０２、及び第２次回ＩＤ予測値２９０３を含む。
【０３５９】
第１次回ＩＤ予測値２９０２には、本来ＩＤと前回受信した次回ＩＤとを入力とするハッシュ関数を演算したハッシュ値が登録される。第１次回ＩＤ予測値２９０２が更新されるタイミングは、リーダ１９０５から受信した次回ＩＤのＲＦＩＤデバイス１９０８を特定した後である。
【０３６０】
また、第２次回ＩＤ予測値２９０３には、本来ＩＤと乱数αとを入力とするハッシュ関数を演算したハッシュ値が登録される。第２次回ＩＤ予測値２９０３が更新されるタイミングは、サーバ１９０１が乱数αを生成した後である。
【０３６１】
サーバ１９０１は、リーダ・ライタ１９０３を介して次回ＩＤを受信した場合、第２次回予測値２９０３に登録されたハッシュ値のうち、受信した次回ＩＤの値と一致する本来ＩＤを取得することによって、次回ＩＤを送信したＲＦＩＤデバイス１９０８を特定する。
【０３６２】
また、サーバ１９０１は、リーダ１９０５を介して次回ＩＤを受信した場合、第１次回予測値２９０２に登録されたハッシュ値のうち、受信した次回ＩＤの値と一致する本来ＩＤを取得することによって、次回ＩＤを送信したＲＦＩＤデバイス１９０８を特定する。
【産業上の利用可能性】
【０３６３】
本発明は、ＲＦＩＤデバイスを用いたＲＦＩＤシステムに適用できる。例えば、本発明のＲＦＩＤデバイスは、本等の流通物に装着させることができる。また、本発明のＲＦＩＤデバイスは、レジャー施設等の入場券としても利用できる。この場合、入場者は、レジャー施設へ入場した日の後、この入場券であるＲＦＩＤデバイスを用いて、入場者特典等のサービスを受けることも可能になる。
【０３６４】
また、本発明のＲＦＩＤシステムは、入退室管理及びネットワーク認証等にも適用できる。
【図面の簡単な説明】
【０３６５】
【図１】本発明の第１実施形態のＲＦＩＤデバイスのブロック図である。
【図２】本発明の第１実施形態のＲＦＩＤシステムの構成図である。
【図３】本発明の第１実施形態の複数のＲＦＩＤデバイスから情報を読み取る場合のＲＦＩＤシステムのシーケンス図である。
【図４】本発明の第１実施形態のＲＦＩＤデバイスの乱数更新処理のフローチャートである。
【図５】本発明の第１実施形態のＲＦＩＤデバイスの読み取り要求受信処理のフローチャートである。
【図６】本発明の第１実施形態のサーバの次回ＩＤ取得処理のフローチャートである。
【図７】本発明の第２実施形態のＲＦＩＤデバイスのブロック図である。
【図８】本発明の第２実施形態のＲＦＩＤデバイスから情報を読み取る場合のＲＦＩＤシステムのシーケンス図である。
【図９】本発明の第２実施形態のＲＦＩＤデバイスの乱数更新処理のフローチャートである。
【図１０】本発明の第２実施形態のＲＦＩＤデバイスの読み取り要求受信処理のフローチャートである。
【図１１】本発明の第２実施形態のサーバの次回ＩＤ取得処理のフローチャートである。
【図１２】本発明の第３実施形態のＲＦＩＤシステムの構成図である。
【図１３】本発明の第３実施形態のハッシュ関数の入力とする本来ＩＤの情報を説明する図である。
【図１４】本発明の第４実施形態のＲＦＩＤシステムの構成を示す図である。
【図１５】本発明の第４実施形態の複数のＲＦＩＤデバイスから情報を読み取る場合のＲＦＩＤシステムのシーケンス図である。
【図１６】本発明の第５実施形態のＲＦＩＤシステムの構成図である。
【図１７】本発明の第５実施形態のＲＦＩＤデバイスから情報を読み取る場合のＲＦＩＤシステムのシーケンス図である。
【図１８】本発明の第５実施形態のＰＣのサービス利用処理のフローチャートである。
【図１９】本発明の第６実施形態のＲＦＩＤシステムの構成を示す図である。
【図２０】本発明の第６実施形態のＩＤ管理テーブルの説明図である。
【図２１】本発明の第６実施形態のネットワーク認証処理のＲＦＩＤシステムのシーケンス図である。
【図２２】本発明の第６実施形態のリーダ・ライタの乱数αの更新処理のフローチャートである。
【図２３】本発明の第６実施形態のリーダ・ライタのネットワーク認証処理のフローチャートである。
【図２４】本発明の第６実施形態のリーダのネットワーク認証処理のフローチャートである。
【図２５】本発明の第６実施形態のＰＣのネットワーク認証処理のフローチャートである。
【図２６】本発明の第６実施形態の電気錠のネットワーク認証処理のフローチャートである。
【図２７】本発明の第６実施形態のサーバのネットワーク認証処理のフローチャートである。
【図２８】本発明の第６実施形態の複数の部屋におけるネットワーク認証処理を実行するＲＦＩＤシステムの構成図である。
【図２９】本発明の第６実施形態のＩＤ管理テーブルを説明するための図である。
【符号の説明】
【０３６６】
ＲＦＩＤデバイス  １０１、７０１、１２０４、１４０６、１６０５、１９０８
サーバ  ２０１、１２０１、１４０１、１６０１、１９０１
リーダ・ライタ  ２０３、１２０３、１６０３、１９０３
リーダ  １４０４、１９０５
【図１】
0004722903.tif 000002
【図２】
0004722903.tif 000003
【図３】
0004722903.tif 000004
【図４】
0004722903.tif 000005
【図５】
0004722903.tif 000006
【図６】
0004722903.tif 000007
【図７】
0004722903.tif 000008
【図８】
0004722903.tif 000009
【図９】
0004722903.tif 000010
【図１０】
0004722903.tif 000011
【図１１】
0004722903.tif 000012
【図１２】
0004722903.tif 000013
【図１３】
0004722903.tif 000014
【図１４】
0004722903.tif 000015
【図１５】
0004722903.tif 000016
【図１６】
0004722903.tif 000017
【図１７】
0004722903.tif 000018
【図１８】
0004722903.tif 000019
【図１９】
0004722903.tif 000020
【図２０】
0004722903.tif 000021
【図２１】
0004722903.tif 000022
【図２２】
0004722903.tif 000023
【図２３】
0004722903.tif 000024
【図２４】
0004722903.tif 000025
【図２５】
0004722903.tif 000026
【図２６】
0004722903.tif 000027
【図２７】
0004722903.tif 000028
【図２８】
0004722903.tif 000029
【図２９】
0004722903.tif 000030