(57)【要約】【課題】  タグ装置を用いた自動認識システムにおいて読取装置が本当に対象のタグ装置を物理的に取り扱ったのか否かを識別する。【解決手段】  タグ装置が、読取装置からのアクセスに対し、当該タグ装置からの送信順序の検証が可能なタグ情報Ｅｍ，ｉ−１，Ｅｍ，ｉ，Ｅｍ，ｉ＋１を送信する。これらはセキュリティサーバ装置に送信され、セキュリティサーバ装置は、このようなタグ情報をその受信順序が特定できるように格納する。そして、セキュリティサーバ装置は、そこに格納された各タグ情報を用い、これらのタグ装置からの送信順序とセキュリティサーバ装置での受信順序との関係を検証し、検証対象のタグ情報の正当性を検証する。【選択図】        図１
2006203743.tif 000002
【特許請求の範囲】
【請求項１】
タグ情報の正当性を検証するタグ情報検証方法であって、
タグ装置が、
読取装置からのアクセスに対し、タグインタフェースにおいて、当該タグ装置からの送信順序の検証が可能なタグ情報を送信し、
上記セキュリティサーバ装置が、
履歴記憶部において、タグ情報をその受信順序が特定できるように格納しておき、
検証部において、上記履歴記憶部に格納された各タグ情報を用い、これらの上記タグ装置からの送信順序と当該セキュリティサーバ装置での受信順序との関係を検証し、検証対象のタグ情報の正当性を検証する、
ことを特徴とするタグ情報検証方法。
【請求項２】
タグ情報の正当性を検証するタグ情報検証方法であって、
タグ装置ｍのタグ記憶部において、このタグ装置に対応する識別情報ｉｄｍと秘密情報ｋｍとを格納しておき、
セキュリティサーバ装置のセキュリティサーバ記憶部において、各タグ装置ｍに対応する識別情報ｉｄｍと秘密情報ｋｍとを関連付けて格納しておき、
上記タグ装置ｍが、
読取装置からのアクセスに対し、
タグカウンタにおいて、タグ情報の送信回数に応じたカウント値ｉを出力し、
関数演算部において、上記秘密情報ｋｍと上記カウント値ｉとを含む情報に逆元の算出が困難な関数Ｇを作用させた関数演算値Ｖｍ，ｉ＝Ｇ（ｋｍ，ｉ）を算出し、
タグインタフェースにおいて、上記識別情報ｉｄｍと上記関数演算値Ｖｍ，ｉとを含むタグ情報Ｅｍ，ｉを送信し、
上記セキュリティサーバ装置が、
セキュリティサーバ通信部において、上記タグ情報Ｅｍ，ｉを受信し、
履歴記憶部において、上記タグ情報Ｅｍ，ｉをその受信順序が特定できるように格納し、
検索部において、検証対象のタグ情報Ｅｍ，ｎが有する識別情報ｉｄｍに対応する秘密情報ｋｍを上記セキュリティサーバ記憶部から抽出し、
検証部において、上記タグ情報Ｅｍ，ｎが有する関数演算値Ｖｍ，ｎと、これよりも前に受信されたタグ情報Ｅｍ，ｎ−が有する関数演算値Ｖｍ，ｎ−と、後に受信されたタグ情報Ｅｍ，ｎ＋が有する関数演算値Ｖｍ，ｎ＋とに対し、
Ｖｍ，ｎ＝Ｇ（ｋｍ，ｎ），
Ｖｍ，ｎ−＝Ｇ（ｋｍ，ｎ−α），
Ｖｍ，ｎ＋＝Ｇ（ｋｍ，ｎ＋β），
α＞０，β＞０
を満たすことを条件に上記タグ情報Ｅｍ，ｎが正当であると判断する、
ことを特徴とするタグ情報検証方法。
【請求項３】
タグ情報の正当性を検証するタグ情報検証方法であって、
タグ装置ｍのタグ記憶部において、このタグ装置ｍに対応する識別情報ｉｄｍと秘密情報ｋｍ，ｉ（ｉは０以上の整数）とを格納しておき、
セキュリティサーバ装置のセキュリティサーバ記憶部において、各タグ装置ｍに対応する識別情報ｉｄｍと秘密情報の初期値ｋｍ，０とを関連付けて格納しておき、
上記タグ装置ｍが、
読取装置からのアクセスに対し、
関数演算部において、上記秘密情報ｋｍ，ｉを含む情報に逆元の算出が困難な関数Ｇを作用させた関数演算値Ｖｍ，ｉ＝Ｇ（ｋｍ，ｉ）を算出し、
タグインタフェースにおいて、上記識別情報ｉｄｍと上記関数演算値Ｖｍ，ｉとを含むタグ情報Ｅｍ，ｉを送信し、
秘密情報更新部において、上記秘密情報ｋｍ，ｉを含む情報に逆元の算出が困難な関数Ｈを作用させた秘密情報ｋｍ，ｉ＋１＝Ｈ（ｋｍ，ｉ）を算出し、これによって上記タグ記憶部の秘密情報を更新し、
上記セキュリティサーバ装置が、
セキュリティサーバ通信部において、上記タグ情報Ｅｍ，ｉを受信し、
履歴記憶部において、上記タグ情報Ｅｍ，ｉをその受信順序が特定できるように格納し、
検索部において、これらのタグ情報が有する上記識別情報ｉｄｍに対応する秘密情報の初期値ｋｍ，０を上記セキュリティサーバ記憶部から抽出し、
検証部において、検証対象のタグ情報Ｅｍ，ｎが有する関数演算値Ｖｍ，ｎと、これよりも前に受信されたタグ情報Ｅｍ，ｎ−が有する関数演算値Ｖｍ，ｎ−と、後に受信されたタグ情報Ｅｍ，ｎ＋が有する関数演算値Ｖｍ，ｎ＋とに対し、ｋｍ，ｉ＝Ｈｉ（ｋｍ，０）とした場合における、
Ｖｍ，ｎ＝Ｇ（ｋｍ，ｎ），
Ｖｍ，ｎ−＝Ｇ（ｋｍ，ｎ−α），
Ｖｍ，ｎ＋＝Ｇ（ｋｍ，ｎ＋β），
α＞０，β＞０
を満たすことを条件に上記タグ情報Ｅｍ，ｎが正当であると判断する、
ことを特徴とするタグ情報検証方法。
【請求項４】
タグ情報の正当性を検証するタグ情報検証方法であって、
タグ装置ｍのタグ記憶部において、このタグ装置ｍに対応する識別情報ｉｄｍと秘密情報ｋｍとを格納しておき、
セキュリティサーバ装置のセキュリティサーバ記憶部において、各タグ装置ｍに対応する識別情報ｉｄｍと秘密情報ｋｍとを関連付けて格納しておき、
ｊ回目にタグ装置ｍのタグ情報を読取る読取装置からの乱数送信要求に対し、上記セキュリティサーバ装置が、
セキュリティサーバ通信部において、乱数Ｒｍ，ｊを送信し、
上記セキュリティサーバ記憶部において、上記乱数Ｒｍ，ｊを上記識別情報ｉｄｍに関連付け、なおかつ値ｊが特定できるように格納し、
上記読取装置が、
読取通信部において、上記乱数Ｒｍ，ｊを受信し、
読取インタフェースにおいて、上記乱数Ｒｍ，ｊを上記タグ装置ｍに送信し、
上記タグ装置ｍが、
タグインタフェースにおいて、上記乱数Ｒｍ，ｊを受信し、
関数演算部において、上記秘密情報ｋｍと上記乱数Ｒｍ，ｊとを含む情報に逆元の算出が困難な関数Ｇを作用させた関数演算値Ｖｍ，ｊ＝Ｇ（ｋｍ，Ｒｍ，ｊ）を算出し、
タグインタフェースにおいて、上記識別情報ｉｄｍと上記関数演算値Ｖｍ，ｊとを含むタグ情報Ｅｍ，ｊを送信し、
上記セキュリティサーバ装置が、
セキュリティサーバ通信部において、上記タグ情報Ｅｍ，ｊを受信し、
履歴記憶部において、上記タグ情報Ｅｍ，ｊをその受信順序が特定できるように格納し、
検索部において、検証対象のタグ情報Ｅｍ，ｓが有する識別情報ｉｄｍに対応する秘密情報ｋｍと上記乱数Ｒｍ，ｓとを上記セキュリティサーバ記憶部から抽出し、
検証部において、検証対象のタグ情報Ｅｍ，ｓが有する関数演算値Ｖｍ，ｓと、これよりも前に受信されたタグ情報Ｅｍ，ｓ−が有する関数演算値Ｖｍ，ｓ−と、後に受信されたタグ情報Ｅｍ，ｓ＋が有する関数演算値Ｖｍ，ｓ＋とに対し、
Ｖｍ，ｓ＝Ｇ（ｋｍ，Ｒｍ，ｓ），
Ｖｍ，ｓ−＝Ｇ（ｋｍ，Ｒｍ，ｓ−γ），
Ｖｍ，ｓ＋＝Ｇ（ｋｍ，Ｒｍ，ｓ＋δ），
γ＞０，δ＞０
を満たすことを条件に、上記タグ情報Ｅｍ，ｓが正当であると判断する、
ことを特徴とするタグ情報検証方法。
【請求項５】
タグ情報の正当性を検証するタグ情報検証方法であって、
タグ装置ｍのタグ記憶部において、このタグ装置ｍに対応する識別情報ｉｄｍと秘密情報ｋｍとを格納しておき、
セキュリティサーバ装置のセキュリティサーバ記憶部において、各タグ装置ｍに対応する識別情報ｉｄｍと秘密情報ｋｍとを関連付けて格納しておき、
ｊ回目にタグ装置ｍのタグ情報を読取る読取装置からの乱数送信要求に対し、上記セキュリティサーバ装置が、
セキュリティサーバ通信部において、乱数Ｒｍ，ｊを上記読取装置に送信し、
上記セキュリティサーバ記憶部において、上記乱数Ｒｍ，ｊを上記識別情報ｉｄｍに関連付け、なおかつ値ｊが特定できるように格納し、
上記読取装置が、
読取通信部において、上記乱数Ｒｍ，ｊを受信し、
読取インタフェースにおいて、上記乱数Ｒｍ，ｊを上記タグ装置ｍに送信し、
上記タグ装置ｍが、
タグインタフェースにおいて、上記乱数Ｒｍ，ｊを受信し、
タグカウンタにおいて、タグ情報の送信回数に応じたカウント値ｉを出力し、
関数演算部において、上記秘密情報ｋｍと上記カウント値ｉと上記乱数Ｒｍ，ｊとを含む情報に逆元の算出が困難な関数Ｇを作用させた関数演算値Ｖｍ，ｉ，ｊ＝Ｇ（ｋｍ，ｉ，Ｒｍ，ｊ）を算出し、
タグインタフェースにおいて、上記識別情報ｉｄｍと上記関数演算値Ｖｍ，ｉ，ｊとを含むタグ情報Ｅｍ，ｉ，ｊ＝（ｉｄｍ，Ｖｍ，ｉ，ｊ）を送信し、
上記セキュリティサーバ装置が、
セキュリティサーバ通信部において、上記タグ情報Ｅｍ，ｉ，ｊを受信し、
履歴記憶部において、上記タグ情報Ｅｍ，ｉ，ｊをその受信順序が特定できるように格納し、
検索部において、検証対象のタグ情報Ｅｍ，ｎ，ｓが有する識別情報ｉｄｍに対応する秘密情報ｋｍと上記乱数Ｒｍ，ｓとを上記セキュリティサーバ記憶部から抽出し、
検証部において、検証対象のタグ情報Ｅｍ，ｎ，ｓが有する関数演算値Ｖｍ，ｎ，ｓと、これよりも前に受信されたタグ情報Ｅｍ，ｎ，ｓ−が有する関数演算値Ｖｍ，ｎ，ｓ−と、後に受信されたタグ情報Ｅｍ，ｎ，ｓ＋が有する関数演算値Ｖｍ，ｎ，ｓ＋とに対し、
Ｖｍ，ｎ，ｓ＝Ｇ（ｋｍ，ｎ，Ｒｍ，ｓ），
Ｖｍ，ｎ，ｓ−＝Ｇ（ｋｍ，ｎ−α，Ｒｍ，ｓ−γ），
Ｖｍ，ｎ，ｓ＋＝Ｇ（ｋｍ，ｎ＋β，Ｒｍ，ｓ＋δ），
α＞０，β＞０，γ＞０，δ＞０
を満たすことを条件に、上記タグ情報Ｅｍ，ｎ，ｓが正当であると判断する、
ことを特徴とするタグ情報検証方法。
【請求項６】
タグ情報の正当性を検証するタグ情報検証方法であって、
タグ装置ｍのタグ記憶部において、このタグ装置ｍに対応する識別情報ｉｄｍとｋｍ，ｉ（ｉは０以上の整数）とを格納しておき、
セキュリティサーバ装置のセキュリティサーバ記憶部において、各タグ装置ｍに対応する識別情報ｉｄｍと秘密情報の初期値ｋｍ，０とを関連付けて格納しておき、
ｊ回目にタグ装置ｍのタグ情報を読取る読取装置からの乱数送信要求に対し、上記セキュリティサーバ装置が、
セキュリティサーバ通信部において、乱数Ｒｍ，ｊを上記読取装置に送信し、
上記セキュリティサーバ記憶部において、上記乱数Ｒｍ，ｊを上記識別情報ｉｄｍに関連付け、なおかつ値ｊが特定できるように格納し、
上記読取装置が、
読取通信部において、上記乱数Ｒｍ，ｊを受信し、
読取インタフェースにおいて、上記乱数Ｒｍ，ｊを上記タグ装置ｍに送信し、
上記タグ装置ｍが、
タグインタフェースにおいて、上記乱数Ｒｍ，ｊを受信し、
関数演算部において、上記秘密情報ｋｍ，ｉと上記乱数Ｒｍ，ｊとを含む情報に逆元の算出が困難な関数Ｇを作用させた関数演算値Ｖｍ，ｉ，ｊ＝Ｇ（ｋｍ，ｉ，Ｒｍ，ｊ）を算出し、
タグインタフェースにおいて、上記識別情報ｉｄｍと上記関数演算値Ｖｍ，ｉ，ｊとを含むタグ情報Ｅｍ，ｉ，ｊを読取装置に送信し、
秘密情報更新部において、上記秘密情報ｋｍ，ｉを含む情報に逆元の算出が困難な関数Ｈを作用させた秘密情報ｋｍ，ｉ＋１＝Ｈ（ｋｍ，ｉ）を算出し、これによって上記タグ記憶部の秘密情報を更新し、
上記セキュリティサーバ装置が、
セキュリティサーバ通信部において、上記タグ情報Ｅｍ，ｉ，ｊを受信し、
履歴記憶部において、上記タグ情報Ｅｍ，ｉ，ｊをその受信順序が特定できるように格納し、
検索部において、これらのタグ情報が有する上記識別情報ｉｄｍに対応する秘密情報の初期値ｋｍ，０と上記乱数Ｒｍ，ｊとを上記セキュリティサーバ記憶部から抽出し、
検証部において、検証対象のタグ情報Ｅｍ，ｎ，ｓが有する関数演算値Ｖｍ，ｎ，ｓと、これよりも前に受信されたタグ情報Ｅｍ，ｎ，ｓ−が有する関数演算値Ｖｍ，ｎ，ｓ−と、後に受信されたタグ情報Ｅｍ，ｎ，ｓ＋が有する関数演算値Ｖｍ，ｎ，ｓ＋とに対し、ｋｍ，ｉ＝Ｈｉ（ｋｍ，０）とした場合における、
Ｖｍ，ｎ，ｓ＝Ｇ（ｋｍ，ｎ，Ｒｍ，ｓ），
Ｖｍ，ｎ，ｓ−＝Ｇ（ｋｍ，ｎ−α，Ｒｍ，ｓ−γ），
Ｖｍ，ｎ，ｓ＋＝Ｇ（ｋｍ，ｎ＋β，Ｒｍ，ｓ＋δ），
α＞０，β＞０，γ＞０，δ＞０
を満たすことを条件に、上記タグ情報Ｅｍ，ｎ，ｓが正当であると判断する、
ことを特徴とするタグ情報検証方法。
【請求項７】
タグ情報の正当性を検証するタグ情報検証方法であって、
タグ装置群を構成するｐ個のタグ装置ｍ∈｛１，２，…，ｐ｝のタグ記憶部において、各タグ装置ｍに対応する識別情報ｉｄｍと秘密情報ｋｍとをそれぞれ格納しておき、
セキュリティサーバ装置のセキュリティサーバ記憶部において、各タグ装置ｍに対応する識別情報ｉｄｍと秘密情報ｋｍとを関連付けて格納しておき、
ｊ回目にタグ装置ｍのタグ情報を読取る読取装置からの乱数送信要求に対し、上記セキュリティサーバ装置が、
セキュリティサーバ通信部において、上記タグ装置群の一部であるタグ装置ｑ∈｛１，２，…，ｐ｝に対し、乱数Ｒｑ，ｊを送信し、
上記セキュリティサーバ記憶部において、上記乱数Ｒｑ，ｊを上記識別情報ｉｄｑに関連付け、なおかつ値ｊが特定できるように格納し、
上記読取装置が、
読取通信部において、上記乱数Ｒｑ，ｊを受信し、
読取インタフェースにおいて、上記乱数Ｒｑ，ｊをタグ装置ｑに送信し、
上記タグ装置ｑが、
第１のタグインタフェースにおいて、上記乱数Ｒｑ，ｊを受信し、
第１の関数演算部において、上記秘密情報ｋｑと上記乱数Ｒｑ，ｊとを含む情報に逆元の算出が困難な関数Ｇを作用させた関数演算値Ｖｑ，ｊ＝Ｇ（ｋｑ，Ｒｑ，ｊ）を算出し、
上記第１のタグインタフェースにおいて、上記識別情報ｉｄｑと上記関数演算値Ｖｑ，ｊとを含むタグ情報Ｅｑ，ｊを送信し、
上記タグ装置ｑ以外の上記タグ装置群を構成するタグ装置ｒ∈｛１，２，…，ｐ｝（ｒ≠ｑ）が、
読取装置からのアクセスに対し、
第２の関数演算部において、上記秘密情報ｋｒを含む情報に逆元の算出が困難な関数Ｇを作用させた関数演算値Ｖｒ，ｊ＝Ｇ（ｋｒ）を算出し、
第２のタグインタフェースにおいて、上記識別情報ｉｄｒと上記関数演算値Ｖｒ，ｊとを含むタグ情報Ｅｒ，ｊを送信し、
上記セキュリティサーバ装置が、
セキュリティサーバ通信部において、上記タグ情報Ｅｍ，ｊを受信し、
履歴記憶部において、上記タグ情報Ｅｍ，ｊを、タグ装置群ごとの受信順序が特定できるように格納し、
検索部において、検証対象のタグ装置群に属するタグ情報Ｅｍ，ｓが有する識別情報ｉｄｍ及び当該タグ情報Ｅｍ，ｓの受信順序ｓに対応する、秘密情報ｋｍと上記乱数Ｒｑ，ｓとを上記セキュリティサーバ記憶部から抽出し、
検証部において、検証対象のタグ情報Ｅｑ，ｓが有する関数演算値Ｖｑ，ｓに対し、
Ｖｑ，ｓ＝Ｇ（ｋｑ，Ｒｑ，ｓ）
を満たし、
上記検証部において、検証対象のタグ情報Ｅｒ，ｓが有する関数演算値Ｖｒ，ｓに対し、
Ｖｒ，ｓ＝Ｇ（ｋｒ）
を満たすことを条件に、上記タグ装置群を構成するタグ装置から送信された各タグ情報Ｅｍ，ｓが正当であると判断する、
ことを特徴とするタグ情報検証方法。
【請求項８】
タグ情報の正当性を検証するタグ情報検証方法であって、
タグ装置群を構成するｐ個のタグ装置ｍ∈｛１，２，…，ｐ｝のタグ記憶部において、タグ装置に対応する識別情報ｉｄｍと秘密情報ｋｍとをそれぞれ格納しておき、
セキュリティサーバ装置のセキュリティサーバ記憶部において、各タグ装置ｍに対応する識別情報ｉｄｍと秘密情報ｋｍとを関連付けて格納しておき、
ｊ回目にタグ装置ｍのタグ情報を読取る読取装置からの乱数送信要求に対し、上記セキュリティサーバ装置が、
セキュリティサーバ通信部において、上記タグ装置群の一部であるタグ装置ｑ∈｛１，２，…，ｐ｝に対し、乱数Ｒｑ，ｊを送信し、
上記セキュリティサーバ記憶部において、上記乱数Ｒｑ，ｊを上記識別情報ｉｄｍに関連付け、なおかつ値ｊが特定できるように格納し、
上記読取装置が、
読取通信部において、上記乱数Ｒｑ，ｊを受信し、
読取インタフェースにおいて、上記乱数Ｒｑ，ｊをタグ装置ｑに送信し、
上記タグ装置ｑが、
第１のタグインタフェースにおいて、上記乱数Ｒｑ，ｊを受信し、
第１のタグカウンタにおいて、タグ情報の送信回数に応じたカウント値ｉｑを出力し、
第１の関数演算部において、上記秘密情報ｋｑと上記カウント値ｉｑと上記乱数Ｒｑ，ｊとを含む情報に逆元の算出が困難な関数Ｇを作用させた関数演算値Ｖｑ，ｉ，ｊ＝Ｇ（ｋｑ，ｉｑ，Ｒｑ，ｊ）を算出し、
上記第１のタグインタフェースにおいて、上記識別情報ｉｄｑと上記関数演算値Ｖｑ，ｉ，ｊとを含むタグ情報Ｅｑ，ｉ，ｊを送信し、
上記タグ装置ｑ以外の上記タグ装置群を構成するタグ装置ｒ∈｛１，２，…，ｐ｝（ｒ≠ｑ）が、
読取装置からのアクセスに対し、
第２のタグカウンタにおいて、タグ情報の送信回数に応じたカウント値ｉｒを出力し、
第２の関数演算部において、上記秘密情報ｋｒと上記カウント値ｉｒとを含む情報に逆元の算出が困難な関数Ｇを作用させた関数演算値Ｖｒ，ｉ，ｊ＝Ｇ（ｋｒ，ｉｒ）を算出し、
第２のタグインタフェースにおいて、上記識別情報ｉｄｒと上記関数演算値Ｖｒ，ｉとを含むタグ情報Ｅｒ，ｉ，ｊを送信し、
上記セキュリティサーバ装置が、
セキュリティサーバ通信部において、上記タグ情報Ｅｍ，ｉ，ｊを受信し、
履歴記憶部において、上記タグ情報Ｅｍ，ｉ，ｊを、タグ装置群ごとの受信順序が特定できるように格納し、
検索部において、検証対象のタグ装置群に属するタグ情報Ｅｍ，ｎ，ｓが有する識別情報ｉｄｍ及び当該タグ情報Ｅｍ，ｎ，ｓの受信順序ｓに対応する、秘密情報ｋｍと上記乱数Ｒｑ，ｓとを上記セキュリティサーバ記憶部から抽出し、
検証部において、検証対象のタグ装置群に属するタグ情報Ｅｑ，ｎ，ｓが有する関数演算値Ｖｑ，ｎ，ｓと、これよりも前に受信されたタグ情報Ｅｑ，ｎ，ｓ−が有する関数演算値Ｖｑ，ｎ，ｓ−と、後に受信されたタグ情報Ｅｑ，ｎ，ｓ＋が有する関数演算値Ｖｑ，ｎ，ｓ＋とに対し、
Ｖｑ，ｎ，ｓ＝Ｇ（ｋｑ，ｎ，Ｒｑ，ｓ），
Ｖｑ，ｎ，ｓ−＝Ｇ（ｋｑ，ｎ−α），
Ｖｑ，ｎ，ｓ＋＝Ｇ（ｋｑ，ｎ＋β），
α＞０，β＞０
を満たし、
検証対象のタグ装置群に属するタグ情報Ｅｒ，ｎ，ｓが有する関数演算値Ｖｒ，ｎ，ｓと、これよりも前に受信されたタグ情報Ｅｒ，ｎ，ｓ−が有する関数演算値Ｖｒ，ｎ，ｓ−と、後に受信されたタグ情報Ｅｒ，ｎ，ｓ＋が有する関数演算値Ｖｒ，ｎ，ｓ＋とに対し、
Ｖｒ，ｎ，ｓ＝Ｇ（ｋｒ，ｎ），
Ｖｒ，ｎ，ｓ−＝Ｇ（ｋｒ，ｎ−α），
Ｖｒ，ｎ，ｓ＋＝Ｇ（ｋｒ，ｎ＋β），
α＞０，β＞０
を満たすことを条件に、上記タグ装置群を構成するタグ装置から送信された各タグ情報Ｅｍ，ｎ，ｓが正当であると判断する、
ことを特徴とするタグ情報検証方法。
【請求項９】
タグ情報の正当性を検証するタグ情報検証方法であって、
タグ装置群を構成するｐ個のタグ装置ｍ∈｛１，２，…，ｐ｝のタグ記憶部において、各タグ装置に対応する識別情報ｉｄｍと秘密情報ｋｍ，ｉ（ｉは０以上の整数）とをそれぞれ格納しておき、
セキュリティサーバ装置のセキュリティサーバ記憶部において、各タグ装置ｍに対応する識別情報ｉｄｍと秘密情報の初期値ｋｍ，０とを関連付けて格納しておき、
ｊ回目にタグ装置ｍのタグ情報を読取る読取装置からの乱数送信要求に対し、上記セキュリティサーバ装置が、
セキュリティサーバ通信部において、上記タグ装置群の一部であるタグ装置ｑ∈｛１，２，…，ｐ｝に対し、乱数Ｒｑ，ｊを送信し、
上記セキュリティサーバ記憶部において、上記乱数Ｒｑ，ｊを上記識別情報ｉｄｍに関連付け、なおかつ値ｊが特定できるように格納し、
上記読取装置が、
読取通信部において、上記乱数Ｒｑ，ｊを受信し、
読取インタフェースにおいて、上記乱数Ｒｑ，ｊを上記タグ装置ｑに送信し、
上記タグ装置ｑが、
第１のタグインタフェースにおいて、上記乱数Ｒｑ，ｊを受信し、
第１の関数演算部において、上記秘密情報ｋｑ，ｉ１と上記乱数Ｒｑ，ｊとを含む情報に逆元の算出が困難な関数Ｇを作用させた関数演算値Ｖｑ，ｉ１，ｊ＝Ｇ（ｋｑ，ｉ１，Ｒｑ，ｊ）を算出し、
上記第１のタグインタフェースにおいて、上記識別情報ｉｄｍと上記関数演算値Ｖｑ，ｉ１，ｊとを含むタグ情報Ｅｑ，ｉ１，ｊを送信し、
第１の秘密情報更新部において、上記秘密情報ｋｑ，ｉ１を含む情報に逆元の算出が困難な関数Ｈを作用させた秘密情報ｋｑ，ｉ１＋１＝Ｈ（ｋｑ，ｉ１）を算出し、これによって上記タグ装置ｑのタグ記憶部の秘密情報を更新し、
上記タグ装置ｑ以外の上記タグ装置群を構成するタグ装置ｒ∈｛１，２，…，ｐ｝（ｒ≠ｑ）が、
読取装置からのアクセスに対し、
第２の関数演算部において、上記秘密情報ｋｒ，ｉ２を含む情報に逆元の算出が困難な関数Ｇを作用させた関数演算値Ｖｒ，ｉ２，ｊ＝Ｇ（ｋｒ，ｉ２）を算出し、
第２のタグインタフェースにおいて、上記識別情報ｉｄｍと上記関数演算値Ｖｒ，ｉ２，ｊとを含むタグ情報Ｅｍ，ｉ２，ｊを送信し、
第２の秘密情報更新部において、上記秘密情報ｋｒ，ｉ２を含む情報に逆元の算出が困難な関数Ｈを作用させた秘密情報ｋｒ，ｉ２＋１＝Ｈ（ｋｒ，ｉ２）を算出し、これによって上記タグ記憶部の秘密情報を更新し、
上記セキュリティサーバ装置が、
セキュリティサーバ通信部において、上記タグ情報Ｅｍ，ｉ，ｊを受信し、
履歴記憶部において、上記タグ情報Ｅｍ，ｉ，ｊを、タグ装置群ごとの受信順序が特定できるように格納し、
検索部において、検証対象のタグ装置群に属するタグ情報Ｅｍ，ｎ，ｓが有する上記識別情報ｉｄｍ及び受信順序ｓに対応する、秘密情報の初期値ｋｍ，０と上記乱数Ｒｑ，ｓとを上記セキュリティサーバ記憶部から抽出し、
検証部において、検証対象のタグ装置群に属するタグ情報Ｅｑ，ｎ，ｓが有する関数演算値Ｖｑ，ｎ，ｓと、これよりも前に受信されたタグ情報Ｅｑ，ｎ，ｓ−が有する関数演算値Ｖｑ，ｎ，ｓ−と、後に受信されたタグ情報Ｅｑ，ｎ，ｓ+が有する関数演算値Ｖｑ，ｎ，ｓ+とに対し、ｋｍ，ｉ＝Ｈｉ（ｋｍ，０）とした場合における、
Ｖｑ，ｎ，ｓ＝Ｇ（ｋｑ，ｎ，Ｒｑ，ｓ），
Ｖｑ，ｎ，ｓ−＝Ｇ（ｋｑ，ｎ−α），
Ｖｑ，ｎ，ｓ+＝Ｇ（ｋｑ，ｎ＋β），
α＞０，β＞０
を満たし、
検証対象のタグ装置群に属するタグ情報Ｅｒ，ｎ，ｓが有する関数演算値Ｖｒ，ｎ，ｓと、これよりも前に受信されたタグ情報Ｅｒ，ｎ，ｓ−が有する関数演算値Ｖｒ，ｎ，ｓ−と、後に受信されたタグ情報Ｅｒ，ｎ，ｓ＋が有する関数演算値Ｖｒ，ｎ，ｓ＋とに対し、
Ｖｒ，ｎ，ｓ＝Ｇ（ｋｒ，ｎ），
Ｖｒ，ｎ，ｓ−＝Ｇ（ｋｒ，ｎ−α），
Ｖｒ，ｎ，ｓ＋＝Ｇ（ｋｒ，ｎ＋β），
α＞０，β＞０
を満たすことを条件に、上記タグ装置群を構成するタグ装置から送信された各タグ情報Ｅｍ，ｎ，ｓが正当であると判断する、
ことを特徴とするタグ情報検証方法。
【請求項１０】
請求項１から９の何れかに記載のセキュリティサーバ装置としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報セキュリティ技術の応用技術に関し、特に、自動認識技術を用いたタグ技術に関する。
【背景技術】
【０００２】
近年、ＲＦＩＤ(Radio Frequency Identification：電波方式認識)等の無線タグ技術の導入が進んでいる（例えば非特許文献１参照）。無線タグ技術とは、以下のようなタグ装置と読取装置（リーダ装置）とセキュリティサーバ装置とから構成され、物流管理等に利用されるものである。
［タグ装置の処理］
タグ装置は、物品等に取り付けられ、無線通信により各タグ固有のＩＤを読取装置に送信する。
［読取装置の処理］
読取装置は、無線通信によりタグ装置からＩＤを読取り、そのタグ装置を取り扱ったことの証明として、タグの出力値をセキュリティサーバ装置に送信する。
［セキュリティサーバ装置の処理］
セキュリティサーバ装置は、読取装置から送られてくる情報を検証し、対象となるタグ装置が物理的にその読取装置によって取り扱われたのか、更に複数の読取装置について、その対象となるタグ装置がどのような順序で取り扱われたかの検証を行う。
【０００３】
＜従来の検証手法＞
従来のシステムでは、まず、読取装置が、タグ装置から出力されたＩＤを用い、そのタグ装置を取り扱った証拠となる署名を自分の秘密鍵を用いて行う。そして、セキュリティサーバ装置は、この署名を検証し、その読取装置が対象となるタグを確かに取り扱った事を検証する。
【非特許文献１】EPC global, Inc.、”EPCglobal”、[online]、[平成１７年１月１３日検索]、インターネット＜http://www.epcglobalinc.org/＞
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかし、従来方法の場合、何らかの手段によりタグ装置のタグ情報を知りえた攻撃者は、対象となるタグ装置を実際に取り扱わなくても、そのタグ装置を取り扱ったことを示す署名を生成できてしまう。そのため、このような不正が介在する可能性がある場合、セキュリティサーバ装置は、読取装置が本当に対象のタグ装置を物理的に取り扱ったのか否かを識別することはできない。
本発明はこのような点に鑑みてなされたものであり、読取装置が本当に対象のタグ装置を物理的に取り扱ったのか否かを識別することが可能なタグ情報検証方法を提供することを目的とする。
【課題を解決するための手段】
【０００５】
本発明では上記課題を解決するために、タグ装置が、読取装置からのアクセスに対し、タグインタフェースにおいて、当該タグ装置からの送信順序の検証が可能なタグ情報を送信する。セキュリティサーバ装置は、履歴記憶部において、このようなタグ情報をその受信順序が特定できるように格納しておき、検証部において、履歴記憶部に格納された各タグ情報を用い、これらのタグ装置からの送信順序とセキュリティサーバ装置での受信順序との関係を検証し、検証対象のタグ情報の正当性を検証する。
【０００６】
ここで、タグ装置から送信されるタグ情報はその送信順序を検証できる情報である。また、セキュリティサーバ装置は、履歴記憶部においてタグ情報をその受信順序が特定できるように格納する。よって、セキュリティサーバ装置は、タグ装置からの送信順序とセキュリティサーバ装置での受信順序との矛盾を検出することにより、実際にタグ装置から送信されていないタグ情報がセキュリティサーバ装置に送信されたことを検出することができる。これにより、対象となるタグ装置を読取装置が真に物理的に取り扱ったのか否かを検証することができる。
【０００７】
また、本発明において好ましくは、タグ装置ｍのタグ記憶部において、このタグ装置に対応する識別情報ｉｄｍと秘密情報ｋｍとを格納しておき、セキュリティサーバ装置のセキュリティサーバ記憶部において、各タグ装置ｍに対応する識別情報ｉｄｍと秘密情報ｋｍとを関連付けて格納しておく。そして、タグ装置ｍが、 読取装置からのアクセスに対し、タグカウンタにおいて、タグ情報の送信回数に応じたカウント値ｉを出力し、関数演算部において、秘密情報ｋｍとカウント値ｉとを含む情報に逆元の算出が困難な関数Ｇを作用させた関数演算値Ｖｍ，ｉ＝Ｇ（ｋｍ，ｉ）を算出し、タグインタフェースにおいて、識別情報ｉｄｍと関数演算値Ｖｍ，ｉとを含むタグ情報Ｅｍ，ｉを送信する。これに対し、セキュリティサーバ装置が、セキュリティサーバ通信部において、タグ情報Ｅｍ，ｉを受信し、履歴記憶部において、タグ情報Ｅｍ，ｉをその受信順序が特定できるように格納する。その後、検索部において、検証対象のタグ情報Ｅｍ，ｎが有する識別情報ｉｄｍに対応する秘密情報ｋｍをセキュリティサーバ記憶部から抽出し、検証部において、タグ情報Ｅｍ，ｎが有する関数演算値Ｖｍ，ｎと、これよりも前に受信されたタグ情報Ｅｍ，ｎ−が有する関数演算値Ｖｍ，ｎ−と、後に受信されたタグ情報Ｅｍ，ｎ＋が有する関数演算値Ｖｍ，ｎ＋とに対し、
Ｖｍ，ｎ＝Ｇ（ｋｍ，ｎ），
Ｖｍ，ｎ−＝Ｇ（ｋｍ，ｎ−α），
Ｖｍ，ｎ＋＝Ｇ（ｋｍ，ｎ＋β），
α＞０，β＞０
を満たすことを条件にタグ情報Ｅｍ，ｎが正当であると判断する。
この場合、タグ情報に係るカウント値とセキュリティサーバ装置の受信順序との矛盾を検出することにより不正なタグ情報を検出できる。
【０００８】
さらに、本発明において好ましくは、タグ装置ｍのタグ記憶部において、このタグ装置ｍに対応する識別情報ｉｄｍと秘密情報ｋｍ，ｉ（ｉは０以上の整数）とを格納しておき、セキュリティサーバ装置のセキュリティサーバ記憶部において、各タグ装置ｍに対応する識別情報ｉｄｍと秘密情報の初期値ｋｍ，０とを関連付けて格納しておく。そして、タグ装置ｍが、 読取装置からのアクセスに対し、関数演算部において、秘密情報ｋｍ，ｉを含む情報に逆元の算出が困難な関数Ｇを作用させた関数演算値Ｖｍ，ｉ＝Ｇ（ｋｍ，ｉ）を算出し、タグインタフェースにおいて、識別情報ｉｄｍと関数演算値Ｖｍ，ｉとを含むタグ情報Ｅｍ，ｉを送信し、秘密情報更新部において、秘密情報ｋｍ，ｉを含む情報に逆元の算出が困難な関数Ｈを作用させた秘密情報ｋｍ，ｉ＋１＝Ｈ（ｋｍ，ｉ）を算出し、これによってタグ記憶部の秘密情報を更新する。これに対し、セキュリティサーバ装置が、セキュリティサーバ通信部において、タグ情報Ｅｍ，ｉを受信し、履歴記憶部において、タグ情報Ｅｍ，ｉをその受信順序が特定できるように格納する。その後、検索部において、これらのタグ情報が有する識別情報ｉｄｍに対応する秘密情報の初期値ｋｍ，０をセキュリティサーバ記憶部から抽出し、検証部において、検証対象のタグ情報Ｅｍ，ｎが有する関数演算値Ｖｍ，ｎと、これよりも前に受信されたタグ情報Ｅｍ，ｎ−が有する関数演算値Ｖｍ，ｎ−と、後に受信されたタグ情報Ｅｍ，ｎ＋が有する関数演算値Ｖｍ，ｎ＋とに対し、ｋｍ，ｉ＝Ｈｉ（ｋｍ，０）とした場合における、
Ｖｍ，ｎ＝Ｇ（ｋｍ，ｎ），
Ｖｍ，ｎ−＝Ｇ（ｋｍ，ｎ−α），
Ｖｍ，ｎ＋＝Ｇ（ｋｍ，ｎ＋β），
α＞０，β＞０
を満たすことを条件にタグ情報Ｅｍ，ｎが正当であると判断する。
この場合、タグ装置ｍのタグ記憶部に格納された秘密情報が逆元の算出が困難な関数によって順次更新されるため、タグ記憶部に格納された秘密情報がタンパされた場合であっても、それよりも過去にタグ装置から出力されたタグ情報に対して不正を行うことができない（フォワードセキュア）。
【０００９】
またさらに、本発明において好ましくは、タグ装置ｍのタグ記憶部において、このタグ装置ｍに対応する識別情報ｉｄｍと秘密情報ｋｍとを格納しておき、セキュリティサーバ装置のセキュリティサーバ記憶部において、各タグ装置ｍに対応する識別情報ｉｄｍと秘密情報ｋｍとを関連付けて格納しておく。そして、ｊ回目にタグ装置ｍのタグ情報を読取る読取装置からの乱数送信要求に対し、セキュリティサーバ装置が、セキュリティサーバ通信部において、乱数Ｒｍ，ｊを読取装置に送信し、セキュリティサーバ記憶部において、乱数Ｒｍ，ｊを識別情報ｉｄｍに関連付け、なおかつ値ｊが特定できるように格納する。また、読取装置が、読取通信部において、乱数Ｒｍ，ｊを受信し、読取インタフェースにおいて、乱数Ｒｍ，ｊをタグ装置ｍに送信する。タグ装置ｍは、タグインタフェースにおいて、乱数Ｒｍ，ｊを受信し、関数演算部において、秘密情報ｋｍと乱数Ｒｍ，ｊとを含む情報に逆元の算出が困難な関数Ｇを作用させた関数演算値Ｖｍ，ｊ＝Ｇ（ｋｍ，Ｒｍ，ｊ）を算出し、タグインタフェースにおいて、識別情報ｉｄｍと関数演算値Ｖｍ，ｊとを含むタグ情報Ｅｍ，ｊを送信し、セキュリティサーバ装置が、セキュリティサーバ通信部において、タグ情報Ｅｍ，ｊを受信し、履歴記憶部において、タグ情報Ｅｍ，ｊをその受信順序が特定できるように格納する。その後、検索部において、検証対象のタグ情報Ｅｍ，ｓが有する識別情報ｉｄｍに対応する秘密情報ｋｍと乱数Ｒｍ，ｓとをセキュリティサーバ記憶部から抽出し、検証部において、検証対象のタグ情報Ｅｍ，ｓが有する関数演算値Ｖｍ，ｓと、これよりも前に受信されたタグ情報Ｅｍ，ｓ−が有する関数演算値Ｖｍ，ｓ−と、後に受信されたタグ情報Ｅｍ，ｓ＋が有する関数演算値Ｖｍ，ｓ＋とに対し、
Ｖｍ，ｓ＝Ｇ（ｋｍ，Ｒｍ，ｓ），
Ｖｍ，ｓ−＝Ｇ（ｋｍ，Ｒｍ，ｓ−γ），
Ｖｍ，ｓ＋＝Ｇ（ｋｍ，Ｒｍ，ｓ＋δ），
γ＞０，δ＞０
を満たすことを条件に、タグ情報Ｅｍ，ｓが正当であると判断する。
この場合、乱数Ｒｍ，ｊが与えられていない読取装置が読取ったタグ情報は、セキュリティサーバ装置において不当であると判断されるため、不正なタグ情報の使用を防止できる。
【発明の効果】
【００１０】
本発明では、タグ装置から出力されたタグ情報の出力順序とセキュリティサーバ装置におけるタグ情報の受信順序との関係を検証することとしたため、その矛盾を検出することにより、読取装置が本当に対象のタグ装置を物理的に取り扱ったのか否かを識別することができる。
【発明を実施するための最良の形態】
【００１１】
以下、本発明の実施の形態を図面を参照して説明する。
〔第１の実施の形態〕
まず、本発明における第１の実施の形態について説明する。
＜概要＞
図１は、本形態におけるタグ情報検証方法の概要を説明するための概念図である。
本形態では、タグ装置ｍが、各時点における読取装置からのアクセスに対し、それぞれが保持する秘密情報ｋｍと順次カウントアップされるカウント値ｉとを用い、当該タグ装置からの送信順序の検証が可能なタグ情報Ｅｍ，ｉ−１，Ｅｍ，ｉ，Ｅｍ，ｉ＋１を順次生成し、読取装置に送信する。
これに対し、セキュリティサーバ装置は、これらのタグ情報Ｅｍ，ｉ−１，Ｅｍ，ｉ，Ｅｍ，ｉ＋１をその受信順序が特定できるように格納していく。そして、セキュリティサーバ装置は、これらの格納された各タグ情報と格納している秘密情報ｋｍとを用い、タグ装置からの送信順序を示すカウント値と当該セキュリティサーバ装置での受信順序との関係を検証し、検証対象のタグ情報の正当性を検証する。
【００１２】
＜詳細＞
次に、本形態における詳細について説明する。
＜構成＞
図２は、本形態におけるタグ情報検証システム１の構成を例示したブロック図である。
図２に例示するように、本形態におけるタグ情報検証システム１は、タグ装置１０、読取装置２０、及び読取装置２０にネットワーク４０を通じて通信可能に接続されたセキュリティサーバ装置３０を有する。なお、図２では、説明の簡略化のため、１つのタグ装置１０及び読取装置２０のみを図示しているが、実際はこれ以上の数のタグ装置１０及び読取装置２０が存在する。また、図２では、１つのセキュリティサーバ装置３０のみを図示しているが、これ以上の数のセキュリティサーバ装置３０によって本システムを構成してもよい（以下同様）。
【００１３】
［タグ装置］
この例のタグ装置（ｍ）１０は、タグ記憶部１１、ハッシュ演算部１２（「関数演算部」に相当）、インタフェース１３（「タグインタフェース」に相当）、制御部１４及びタグカウンタ１５を有する。
ここで、タグ記憶部１１は、例えば、ＥＥＰＲＯＭ（Electronically Erasable and Programmable Read Only Memory）、ＦｅＲＡＭ（Ferroelectric Random Access Memory）、フラッシュメモリ、ＮＶ（Nonvolatile）ＲＡＭ等の読書き可能なメモリである。
【００１４】
ハッシュ演算部１２は、入力値にそれぞれ逆元の算出が困難な関数であるハッシュ（ｈａｓｈ）関数Ｇ：｛０，１｝＊→｛０，１｝Ｌを作用させ、その結果を出力するように構成された集積回路である。なお、｛０，１｝＊は、全てのバイナリ系列の集合を意味し、｛０，１｝Ｌは、Ｌビット長のバイナリ系列の集合を意味する。また、このようなハッシュ関数Ｇとしては、ＳＨＡ−１、ＭＤ５等を例示できる。
インタフェース１３は、例えば、無線或いは有線によって読取装置２０にデータを出力するハードウェアである。具体的には、インタフェース１３は、例えば、ＮＲＺ符号やマンチェスター符号化やミラー符号や単極ＲＺ符号化等によって符号化・復号化を行う符号化・復号化回路、ＡＳＫ(Amplitude Shift Keying)やＰＳＫ(Phase Shift Keying)やＦＳＫ(Frequency Shift Keying)等によって変・復調を行う変・復調回路、ダイポールアンテナやマイクロストリップアンテナやループコイルやコア入りコイル等のアンテナを有し、長周帯やＩＳＭ帯（Industry Science Medical band）の周波数を用いて信号の送受信を行う。なお、通信方式は、例えば、電磁誘導方式や電波方式を利用する。
【００１５】
また、制御部１４は、例えば、タグ装置１０全体の処理を制御するように構成された集積回路であり、図示していない読書き可能なメモリを有している。なお、制御部１４は、このメモリへ情報を読み書きしつつタグ装置１０の制御処理を実行する）以下ではこの説明を省略する）。
。また、この図では省略するが、制御部１４はタグ装置１０の各部と電気的に接続されている。
タグカウンタ１５は、例えば、タグ情報の送信回数に応じたカウント値ｉを出力する集積回路である。
【００１６】
［読取装置］
この例の読取装置２０は、インタフェース２１、通信部２２、及び制御部２３を有する。
インタフェース２１は、例えば、インタフェース１１４の例と同様なハードウェアであり、通信部２２は、例えば、ＬＡＮカード、モデム、ターミナルアダプター等である。制御部２３は、例えば、読取装置２０全体の処理を制御するように構成された集積回路であり、図示していない読書き可能なメモリを有している。なお、制御部２３は、このメモリへ情報を読み書きしつつ読取装置２０の制御処理を実行する（以下ではこの説明を省略する）。また、この図では省略するが、制御部２３は読取装置２０の各部と電気的に接続されている。
【００１７】
［セキュリティサーバ装置］
この例のセキュリティサーバ装置３０は、セキュリティサーバ記憶部３１、通信部３２（「セキュリティサーバ通信部」に相当）、検索部３３、ハッシュ演算部３４ａと比較部３４ｂとを具備する検証部３４、制御部３５及び履歴記憶部３６を有している。
具体的には、セキュリティサーバ装置３０は、例えば、ＣＰＵ、ＲＡＭ、ＲＯＭ（Read Only Memory）、磁気記録装置や光ディスク装置等の外部記憶装置、ＬＡＮカードやモデムやターミナルアダプター等をバスで接続した公知のノイマン型コンピュータに所定のプログラムを実行させることにより構成される。そしてこのＣＰＵが、ＲＡＭに格納されたプログラムを読み出し、それに従った処理を実行することによって以下に示す各処理機能を実現する。なお、制御部３５は、図示していないメモリを有し、このメモリへ情報を読み書きしつつセキュリティサーバ装置３０の制御処理を実行する（以下ではこの説明を省略する）。
【００１８】
＜処理＞
次に、本形態のタグ情報検証システムによる処理について説明する。
［前処理］
タグ装置１０のタグ記憶部１１において、このタグ装置１０に対応する識別情報ｉｄｍと秘密情報ｋｍとを格納しておき、タグカウンタ１５のカウント値を０にリセットする。また、セキュリティサーバ装置３０のセキュリティサーバ記憶部３１において、各タグ装置に対応する識別情報ｉｄｍと秘密情報ｋｍとをテーブル等によって関連付けて格納しておく。
【００１９】
［タグ情報提出処理］
次に、本形態のタグ装置１０から出力されたタグ情報を、その対象となるタグ装置を取り扱った証拠としてセキュリティサーバ装置３０に提出する処理について説明する。
図３は、このタグ情報提出処理を説明するためのフローチャートである。
この例のタグ装置１０は、複数箇所に設置された読取装置２０付近を巡回することにより順次タグ情報が読取られ、各読取装置２０は読取ったタグ情報をセキュリティサーバ装置３０に送信する。以下、ｉ回目の読取り処理を例にとって説明する。
この例のタグ装置１０は、 読取装置２０からのアクセス（タグ情報送信要求）をトリガに、まず、タグカウンタ１５において、ｉ←ｉ＋１（ｉ＋１の演算結果をｉの値とする処理）によりカウント値ｉをカウントアップし、このカウント値ｉを出力する（「タグ情報の送信回数に応じたカウント値ｉ」に相当）（ステップＳ１１）。
【００２０】
次に、ハッシュ演算部１２において、タグ記憶部１１から秘密情報ｋｍを読み出し、タグカウンタ１５から出力されたカウント値ｉの入力を受け付け、秘密情報ｋｍとカウント値ｉとにハッシュ関数Ｇを作用させたハッシュ値Ｖｍ，ｉ＝Ｇ（ｋｍ，ｉ）を算出する（ステップＳ１３）。なお、Ｇ（α）はαを入力とするハッシュ演算処理を意味し、「ハッシュ値」は「関数演算値」に相当する。また、（α，β）はαとβのビット結合やパディングを意味する。次に、インタフェース１３に、タグ記憶部１１の識別情報ｉｄｍと、タグカウンタ１５のカウント値ｉと、ハッシュ演算部１２のハッシュ値Ｖｍ，ｉとが入力され、インタフェース１３は、これらをタグ情報Ｅｍ，ｉ＝（ｉｄｍ，ｉ，Ｖｍ，ｉ）として読取装置に送信する（ステップＳ１４）。
【００２１】
読取装置２０は、このタグ情報Ｅｍ，ｉを受信し（ステップＳ１５）、これを通信部２２からネットワーク４０を通じセキュリティサーバ装置３０に送信する（ステップＳ１６）。
セキュリティサーバ装置３０は、通信部３２において、このタグ情報Ｅｍ，ｉを受信し（ステップＳ１７）、履歴記憶部３６において、このタグ情報Ｅｍ，ｉをその受信順序が特定できるように格納する（ステップＳ１８）。ここで、受信順序が特定できるようにタグ情報Ｅｍ，ｉを格納する具体的手法としては、例えば、受信順位を示す値と各タグ情報Ｅｍ，ｉとを関連付けて格納する手法や、受信順位を示す情報に履歴記憶部３６のアドレスを利用し、タグ情報Ｅｍ，ｉの受信順位に応じたアドレスにこのタグ情報Ｅｍ，ｉを格納していく手法等を例示できる。
【００２２】
［タグ情報検証処理］
次に、本形態のセキュリティサーバ装置３０において行われるタグ情報の検証処理を説明する。
図４は、このタグ情報の検証処理を説明するためのフローチャートである。
まず、検索部３３において、検証対象のタグ情報Ｅｍ，ｎを履歴記憶部３６から読み出し、それが有する識別情報ｉｄｍに対応する秘密情報ｋｍをセキュリティサーバ記憶部３１から抽出する（ステップＳ３１）。次に、ハッシュ演算部３４ａにおいて、この秘密情報ｋｍと履歴記憶部３６に格納された検証対象のタグ情報Ｅｍ，ｎのカウント値ｎと、これよりも前に受信されたＥｍ，ｎ−のカウント値ｎ‐αと、後に受信されたタグ情報Ｅｍ，ｎ＋のカウント値ｎ＋βとを用い、ハッシュ値Ｇ（ｋｍ，ｎ），Ｇ（ｋｍ，ｎ‐α），Ｇ（ｋｍ，ｎ＋β）を算出する（ステップＳ３３）。次に、比較部３４ｂにおいて、タグ情報Ｅｍ，ｎが有するハッシュ値Ｖｍ，ｎと、タグ情報Ｅｍ，ｎ−が有するハッシュ値Ｖｍ，ｎ−と、タグ情報Ｅｍ，ｎ＋が有するハッシュ値Ｖｍ，ｎ＋とを履歴記憶部３６から読み出し、これらに対し、
Ｖｍ，ｎ＝Ｇ（ｋｍ，ｎ），
Ｖｍ，ｎ−＝Ｇ（ｋｍ，ｎ−α），        …(1)
Ｖｍ，ｎ＋＝Ｇ（ｋｍ，ｎ＋β），
α＞０，β＞０
を満たすか否かを判断する（ステップＳ３３）。ここで、これらを満たすと判断された場合、検証部３４は検証対象のタグ情報Ｅｍ，ｎが正当であると判断し、このタグ情報Ｅｍ，ｎは確かに対象となるタグ装置を物理的に取り扱って出力されたものであるとされる（ステップＳ３４）。一方、これらを満たさない判断された場合、検証部３４は検証対象のタグ情報Ｅｍ，ｎが不当であると判断する（ステップＳ３５）。
【００２３】
＜本形態の特徴＞
［タグ情報の偽造困難性］
本形態では、セキュリティサーバ装置３０が、履歴記憶部３６に格納された各タグ情報とセキュリティサーバ記憶部３１に格納されている秘密情報とを用い、タグ装置からの送信順序を示すカウント値と当該セキュリティサーバ装置３０での受信順序との関係を検証し、検証対象のタグ情報の正当性を検証することした。ここで、タグ装置１０を物理的に取り扱って生成されたタグ情報は少ないタイムラグでセキュリティサーバ装置３０に受信される。そのため、タグ装置１０から正規に出力されたタグ情報の送信順序は、高い確率でセキュリティサーバ装置３０での受信順序に等しくなる。一方、タグ装置１０を物理的に取り扱うことなく偽造されたタグ情報に対応する順序情報を正規のタグ情報の送信順序に整合させることは困難である（以下の［出力予測困難性］，［秘密情報予測困難性］，［偽造困難性］より）。よって、偽造されたタグ情報から求めた送信順序をセキュリティサーバ装置３０での受信順序に一致させることは困難であり、この違いを検出することによりタグ情報の偽造を検出することができる。また、これらの順序情報を用い、タグ情報の取扱順序履歴の検証も可能である。
【００２４】
［出力予測困難性］
ハッシュ関数Ｇは、入力に対してランダムな値との識別困難な値を出力する。また、タグ装置１０内に記憶されている情報は、セキュリティサーバ装置３０のみが知っている情報である。よって、不正な取扱業者等の攻撃者が、タグ装置の出力情報をあらかじめ予測する事は出来ない。
【００２５】
［秘密情報予測困難性］
ハッシュ関数Ｇの一方向性により、攻撃者はタグ装置１０から出力されたタグ情報Ｅｍ，ｉをもとに秘密情報やカウンタ値を予測する事が出来ない。よって、攻撃者が、タグ装置１０の出力のみを観測し、タグ装置１０に記憶されている値やカウント値を予測し、タグ情報を偽造する事は出来ない。
［偽造困難性］
タグ装置１０に記憶されている秘密情報を知ることなしに、タグ装置１０から出力されるタグ情報を偽造することはできない。
【００２６】
［効率性］
タグ装置１０は、ハッシュ関数の計算だけで構成されるため、タグ装置に組み込む回路規模が小さく、低価格が要求されるタグ装置を構成できる。更にセキュリティサーバ装置３０そのように構成したタグ情報を用い、ハッシュ演算のみで検証を実行できる。
なお、本形態ではタグ情報がカウンタ値を具備することとしたが、タグ情報がカウンタ値を具備しない構成としてもよい（以下同様）。この場合、検証部３４はカウント値を総当りし、式（１）を満たすか否かを判断し、満たすものが存在すればタグ情報が正当であると判断し、存在しなければタグ情報が不当であると判断する。また、カウンタ値を全く用いない構成（タグカウンタを用いず、上述のカウント値をヌル値とした構成）としてもよい。
【００２７】
〔第２の実施の形態〕
次に、本発明における第２の実施の形態について説明する。なお、以下では、第１の実施の形態との相違点を中心に説明を行い、第１の実施の形態と共通する事項については説明を省略する。
＜概要＞
本形態では、タグ装置ｍが、各時点における読取装置からのアクセスに対し、それぞれが保持する秘密情報ｋｍを用い、当該タグ装置からの送信順序の検証が可能なタグ情報Ｅｍ，ｉ−１，Ｅｍ，ｉ，Ｅｍ，ｉ＋１を順次生成し、読取装置に送信する。なお、この秘密情報ｋｍは送信のたびにハッシュ関数を作用させた値（ハッシュチェーン値）で順次更新される。
これに対し、セキュリティサーバ装置は、これらのタグ情報Ｅｍ，ｉ−１，Ｅｍ，ｉ，Ｅｍ，ｉ＋１をその受信順序が特定できるように格納していく。そして、セキュリティサーバ装置は、これらの格納された各タグ情報と格納している秘密情報ｋｍとを用い、タグ装置からの送信順序を示す秘密情報の更新回数と当該セキュリティサーバ装置での受信順序との関係を検証し、検証対象のタグ情報の正当性を検証する。
【００２８】
＜詳細＞
次に、本形態における詳細について説明する。
＜構成＞
図５は、本形態におけるタグ情報検証システム２００の構成を示すブロック図である。なお、図５において第１の実施の形態と共通する事項については図２と同じ符号を付した。
本形態におけるタグ情報検証システム２００は、タグ装置（ｍ）２１０、読取装置２０、及び読取装置２０にネットワーク４０を通じて通信可能に接続されたセキュリティサーバ装置２３０を有する。
【００２９】
［タグ装置］
この例のタグ装置２１０は、タグ記憶部２１１、ハッシュ演算部２１２（「関数演算部」に相当）、インタフェース１３、制御部１４、タグカウンタ２１５及びハッシュ演算部２１６（「秘密情報更新部」に相当）を有する。なお、このタグカウンタ２１５はタグ記憶部２１１に記憶された秘密情報ｋｍ，ｉの更新回数を出力するカウンタである。
［読取装置］
第１の実施の形態と同様である。
【００３０】
［セキュリティサーバ装置］
この例のセキュリティサーバ装置２３０は、セキュリティサーバ記憶部３１、通信部３２、検索部３３、ハッシュ演算部２３４ａ，２３４ｃと比較部２３４ｂとを具備する検証部２３４、制御部３５及び履歴記憶部３６を有している。
＜処理＞
次に、本形態のタグ情報検証システムによる処理について説明する。
［前処理］
まず、タグ装置２１０のタグ記憶部２１１において、このタグ装置２１０に対応する識別情報ｉｄｍと秘密情報ｋｍ，ｉ（ｉは０以上の整数であり初期値は０）とを格納しておき、タグカウンタ２１５のカウント値を０にリセットしておく。また、セキュリティサーバ装置２３０のセキュリティサーバ記憶部３１において、各タグ装置ｍに対応する識別情報ｉｄｍと秘密情報の初期値ｋｍ，０とをテーブル等によって関連付けて格納しておく。
【００３１】
［タグ情報提出処理］
図６は、本形態のタグ情報提出処理を説明するためのフローチャートである。
この例のタグ装置２１０は、複数箇所に設置された読取装置２０付近を巡回することにより順次タグ情報が読取られ、各読取装置２０は読取ったタグ情報をセキュリティサーバ装置２３０に送信する。以下、ｉ−１回目の読取り処理を例にとって説明する。
【００３２】
まず、タグ装置２１０が、読取装置２０からのアクセスに対し、ハッシュ演算部２１２において、タグ記憶部２１１から秘密情報ｋｍ，ｉを抽出し（ステップＳ４１）、この秘密情報ｋｍ，ｉにハッシュ関数Ｇを作用させたハッシュ値Ｖｍ，ｉ＝Ｇ（ｋｍ，ｉ）を算出する（ステップＳ４２）。次に、インタフェース１３において、タグ記憶部２１１の識別情報ｉｄｍとハッシュ値Ｖｍ，ｉとタグカウンタ２１５のカウンタ値ｉを含むタグ情報Ｅｍ，ｉを送信する（ステップＳ４３）。その後、ハッシュ演算部２１６において、秘密情報ｋｍ，ｉにハッシュ関数Ｈ：｛０，１｝＊→｛０，１｝Ｌ（「逆元の算出が困難な関数」に相当）を作用させた秘密情報ｋｍ，ｉ＋１＝Ｈ（ｋｍ，ｉ）を算出し、これによってタグ記憶部２１１の秘密情報を更新する（ステップＳ４４）。その後、タグカウンタ２１５においてｉ←ｉ＋１の演算によってカウント値をカウントアップし、その状態を保持する（ステップＳ４５）。
【００３３】
読取装置２０は、ステップＳ４３で送信されたタグ情報Ｅｍ，ｉを受信し（ステップＳ４６）、これを通信部２２からネットワーク４０を通じセキュリティサーバ装置３０に送信する（ステップＳ４７）。
セキュリティサーバ装置２３０は、通信部３２において、タグ情報Ｅｍ，ｉを受信し（ステップＳ４８）、履歴記憶部３６において、このタグ情報Ｅｍ，ｉをその受信順序が特定できるように格納する（ステップＳ４９）。
【００３４】
［タグ情報検証処理］
図７は、本形態のタグ情報の検証処理を説明するためのフローチャートである。
まず、セキュリティサーバ装置２３０の検索部３３において、検証対象のタグ情報Ｅｍ，ｎを履歴記憶部３６から読み出し、タグ情報Ｅｍ，ｎが有する識別情報ｉｄｍに対応する秘密情報の初期値ｋｍ，０をセキュリティサーバ記憶部３１から抽出する（ステップＳ５１）。
次に、ハッシュ演算部２３４ｃにおいて、この初期値ｋｍ，０と履歴記憶部３６に格納された検証対象のタグ情報Ｅｍ，ｎのカウント値ｎと、これよりも前に受信されたＥｍ，ｎ−のカウント値ｎ‐αと、後に受信されたタグ情報Ｅｍ，ｎ＋のカウント値ｎ＋βとを用い、ハッシュ値ｋｍ，ｎ＝Ｈｎ（ｋｍ，０），ｋｍ，ｎ−α＝Ｈｎ−α（ｋｍ，０），ｋｍ，ｎ＋β＝Ｈｎ＋α（ｋｍ，０）を算出する（ステップＳ５２）。なお、Ｈω（θ）は、θを最初の作用対象とし、ハッシュ演算Ｈをω回繰り返し行うことを意味する。例えば、θに関数Ｈを１回作用させたものをＨ（θ）、Ｈ（θ）に関数Ｈを１回作用させたものをＨ２（θ）、Ｈｉ−１（θ）に関数Ｈを１回作用させたものをＨｉ（θ）と表記する。
【００３５】
次に、ハッシュ演算部２３４ａにおいて、これらのハッシュ値Ｇ（ｋｍ，ｎ），Ｇ（ｋｍ，ｎ−α），Ｇ（ｋｍ，ｎ＋β）を算出する（ステップＳ５３）。次に、比較部２３４ｂにおいて、タグ情報Ｅｍ，ｎが有するハッシュ値Ｖｍ，ｎと、タグ情報Ｅｍ，ｎ−が有するハッシュ値Ｖｍ，ｎ−と、タグ情報Ｅｍ，ｎ＋が有するハッシュ値Ｖｍ，ｎ＋とを履歴記憶部３６から読み出し、これらに対し、
Ｖｍ，ｎ＝Ｇ（ｋｍ，ｎ），
Ｖｍ，ｎ−＝Ｇ（ｋｍ，ｎ−α），        …(2)
Ｖｍ，ｎ＋＝Ｇ（ｋｍ，ｎ＋β），
α＞０，β＞０
を満たすか否かを判断する（ステップＳ５３）。ここで、これらを満たすと判断された場合、検証部２３４は検証対象のタグ情報Ｅｍ，ｎが正当であると判断し、このタグ情報Ｅｍ，ｎは確かに対象となるタグ装置を物理的に取り扱って出力されたものであるとされる（ステップＳ５４）。一方、これらを満たさない判断された場合、検証部３４は検証対象のタグ情報Ｅｍ，ｎが不当であると判断する（ステップＳ５５）。
【００３６】
＜本形態の特徴＞
本形態では、第１の実施の形態で述べた特徴の他、以下のような特徴がある。
［フォワードセキュア（例えばタグ装置がタンパされた場合にける過去の履歴に対する偽造防止）］
本形態では、タグ装置内に含まれている秘密情報をハッシュチェーンによって更新することとしたため、タグ装置内の秘密情報がタンパ等により盗まれた場合においてもそのタグ装置が出力したタグ情報の履歴を偽造する事が出来ない。
【００３７】
［読取装置の不正防止］
また、タグ装置内で秘密情報ｋｍが更新されるため、読取装置がタグ情報Ｅｍ，ｉを偽造することも困難である。
なお、本形態では、タグ装置２１０がタグ情報を送信してから秘密情報を更新することとしたが、秘密情報を更新してからタグ情報を生成して出力することとしてもよい。
【００３８】
〔第３の実施の形態〕
次に、本発明における第３の実施の形態について説明する。
本形態は第２の実施の形態の変形例である。以下では、第２の実施の形態との相違点を中心に説明する。
＜構成＞
図８は、本形態におけるタグ情報検証システム３００の構成を例示したブロック図である。なお、この図において前述の実施の形態と共通する部分についてはそれらと同じ符号を付している。
この図に示すように、本形態のタグ情報検証システム３００と第２の実施の形態のタグ情報検証システム２００との構成上の相違点は、タグ装置２１０の代わりにタグ装置（ｍ）３１０が、セキュリティサーバ装置２３０の代わりにセキュリティサーバ装置３３０が設けられている点である。また、タグ装置３１０とタグ装置２１０との相違点は、タグ記憶部２１１の代わりにタグ記憶部３１１が、ハッシュ演算部２１２の代わりにハッシュ演算部３１２が設けられている点である。さらに、セキュリティサーバ装置２３０とセキュリティサーバ装置３３０との相違点は、ハッシュ演算部２３４ａ，２３４ｃ及び比較部２３４ｂを有する検証部２３４の代わりに、ハッシュ演算部３３４ａ，３３４ｃ及び比較部３３４ｂを有する検証部３３４が、セキュリティサーバ記憶部３１の代わりにセキュリティサーバ記憶部３３１が設けられている点である。
【００３９】
＜処理＞
［前処理］
前処理として、タグ装置３１０のタグ記憶部３１１において、このタグ装置３１０に対応する識別情報ｉｄｍと秘密情報ｋｍ，ｉと秘密識別情報ｓｉｄｍとを格納しておき、タグカウンタ２１５のカウント値を０にリセットしておく。また、セキュリティサーバ装置３３０のセキュリティサーバ記憶部３３１において、各タグ装置ｍに対応する識別情報ｉｄｍと秘密情報の初期値ｋｍ，０と秘密識別情報ｓｉｄｍとをテーブル等によって関連付けて格納しておく。
【００４０】
［タグ情報提出処理］
第２の実施の形態との相違点は、第２の実施の形態でタグ装置２１０のハッシュ演算部２１２がハッシュ値Ｖｍ，ｉ＝Ｇ（ｋｍ，ｉ）を算出していた代わりに、本形態では、タグ装置３１０のハッシュ演算部３１２がハッシュ値Ｖｍ，ｉ＝Ｇ（ｋｍ，ｉ，ｓｉｄｍ）を算出する点である。
【００４１】
［タグ情報検証処理］
第２の実施の形態との相違点は、第２の実施の形態でセキュリティサーバ装置２３０の
ハッシュ演算部２３４ａがハッシュ値Ｇ（ｋｍ，ｎ），Ｇ（ｋｍ，ｎ−α），Ｇ（ｋｍ，ｎ＋β）を算出していた代わりに、本形態では、セキュリティサーバ装置３３０のハッシュ演算部３３４ａがハッシュ値Ｇ（ｋｍ，ｎ，ｓｉｄｍ），Ｇ（ｋｍ，ｎ−α，ｓｉｄｍ），Ｇ（ｋｍ，ｎ＋β，ｓｉｄｍ）を算出している点、及び第２の実施の形態で比較部２３４ｂが式（２）を満たすか否かを判断していた代わりに、
Ｖｍ，ｎ＝Ｇ（ｋｍ，ｎ，ｓｉｄｍ），
Ｖｍ，ｎ−＝Ｇ（ｋｍ，ｎ−α，ｓｉｄｍ），        …(3)
Ｖｍ，ｎ＋＝Ｇ（ｋｍ，ｎ＋β，ｓｉｄｍ），
α＞０，β＞０
を満たすか否かを判断する点である。
【００４２】
＜本形態の特徴＞
上述した特長に加え、本形態では、異なるタグ装置間でタグ情報Ｅｍ，ｉの衝突（同じ値となること）が半永久的に継続してしまうことを防止できるという特徴がある。すなわち、ハッシュ演算部３１２が求めるハッシュ値Ｖｍ，ｉ＝Ｇ（ｋｍ，ｉ，ｓｉｄｍ）の秘密識別情報ｓｉｄｍは各タグ装置に固有な情報である。そのため、たとえハッシュ演算部２１６における秘密情報ｋｍ，ｉの更新により、異なるタグ装置間の秘密情報ｋｍ，ｉ，ｋｍ’，ｉが同じ値となり、その後の秘密情報の値が同じになったとしても、ハッシュ値Ｖｍ，ｉ＝Ｇ（ｋｍ，ｉ，ｓｉｄｍ）とＶｍ’，ｉ＝Ｇ（ｋｍ’，ｉ，ｓｉｄｍ’）との衝突が継続することはない。
【００４３】
〔第４の実施の形態〕
次に、本発明における第４の実施の形態について説明する。
本形態も第２の実施の形態の変形例である。以下では、第２の実施の形態との相違点を中心に説明する。
＜構成＞
図９は、本形態におけるタグ情報検証システム４００の構成を例示したブロック図である。なお、この図において前述の実施の形態と共通する部分についてはそれらと同じ符号を付している。
【００４４】
この図に示すように、本形態のタグ情報検証システム４００と第２の実施の形態のタグ情報検証システム２００との構成上の相違点は、タグ装置２１０の代わりにタグ装置（ｍ）４１０が、セキュリティサーバ装置２３０の代わりにセキュリティサーバ装置４３０が設けられている点である。また、タグ装置４１０とタグ装置２１０との相違点は、タグ記憶部２１１の代わりにタグ記憶部３１１が、ハッシュ演算部２１６の代わりにハッシュ演算部４１６が設けられている点である。さらに、セキュリティサーバ装置２３０とセキュリティサーバ装置４３０との相違点は、ハッシュ演算部２３４ａ，２３４ｃ及び比較部２３４ｂを有する検証部２３４の代わりに、ハッシュ演算部４３４ａ，４３４ｃ及び比較部４３４ｂを有する検証部４３４が、セキュリティサーバ記憶部３１の代わりにセキュリティサーバ記憶部３３１が設けられている点である。
【００４５】
＜処理＞
［前処理］
第３の実施の形態と同じである。
［タグ情報提出処理］
第２の実施の形態との相違点は、第２の実施の形態でタグ装置２１０のハッシュ演算部２１６がハッシュ値ｋｍ，ｉ＋１＝Ｈ（ｋｍ，ｉ）を算出していた代わりに、本形態では、タグ装置４１０のハッシュ演算部４１６がハッシュ値ｋｍ，ｉ＋１＝Ｈ（ｋｍ，ｉ，ｓｉｄｍ）を算出する点である。
【００４６】
［タグ情報検証処理］
第２の実施の形態との相違点は、第２の実施の形態でハッシュ演算部２３４ｃがハッシュ値ｋｍ，ｎ＝Ｈｎ（ｋｍ，０），ｋｍ，ｎ−α＝Ｈｎ−α（ｋｍ，０），ｋｍ，ｎ＋β＝Ｈｎ＋α（ｋｍ，０）を算出していた代わりに、本形態ではハッシュ演算部４３４ｃがハッシュ値ｋｍ，ｎ＝Ｈｎ（ｋｍ，０，ｓｉｄｍ），ｋｍ，ｎ−α＝Ｈｎ−α（ｋｍ，０，ｓｉｄｍ），ｋｍ，ｎ＋β＝Ｈｎ＋α（ｋｍ，０，ｓｉｄｍ）を算出する点である。
【００４７】
＜本形態の特徴＞
上述した特長に加え、本形態では、異なるタグ装置間でタグ情報Ｅｍ，ｉの衝突（同じ値となること）が半永久的に継続してしまうことを防止できるという特徴がある。すなわち、秘密識別情報ｓｉｄｍは各タグ装置に固有な情報である。そのため、たとえハッシュ演算部２１６における秘密情報ｋｍ，ｉの更新により、異なるタグ装置間の秘密情報ｋｍ，ｉ，ｋｍ’，ｉが一旦同じ値となっても、その後の更新によってこの状態が継続することはない。
【００４８】
〔第５の実施の形態〕
次に、本発明における第５の実施の形態について説明する。
＜概要＞
図１０は、本形態におけるタグ情報検証方法の概要を説明するための概念図である。
本形態では、タグ装置ｍからｊ−１，ｊ，ｊ＋１回目にタグ情報を読取る読取装置に対し、セキュリティサーバ装置が乱数Ｒｍ，ｊ−１，Ｒｍ，ｊ，Ｒｍ，ｊ＋１を順次送信し、セキュリティサーバ装置はこれらの配信順序を保存する。
【００４９】
読取装置は、ｊ−１，ｊ，ｊ＋１回目のタグ装置ｍへの読取アクセス時に、それぞれこの乱数Ｒｍ，ｊ−１，Ｒｍ，ｊ，Ｒｍ，ｊ＋１をタグ装置ｍに送信する。タグ装置ｍは、各時点における読取装置からのアクセスに対し、それぞれが保持する秘密情報ｋｍとそれぞれの乱数Ｒｍ，ｊ−１，Ｒｍ，ｊ，Ｒｍ，ｊ＋１とを用い、この乱数を根拠に当該タグ装置からの送信順序の検証が可能なタグ情報Ｅｍ，ｊ−１，Ｅｍ，ｊ，Ｅｍ，ｊ＋１を順次生成し、読取装置に送信する。
【００５０】
これに対し、セキュリティサーバ装置は、これらのタグ情報Ｅｍ，ｊ−１，Ｅｍ，ｊ，Ｅｍ，ｊ＋１をその受信順序が特定できるように格納していく。そして、セキュリティサーバ装置は、これらの格納された各タグ情報と格納している秘密情報ｋｍ及び乱数Ｒｍ，ｊ−１，Ｒｍ，ｊ，Ｒｍ，ｊ＋１の配信順序とを用い、タグ装置からの送信順序を示すカウント値と当該セキュリティサーバ装置での受信順序との関係を検証し、検証対象のタグ情報の正当性を検証する。
【００５１】
＜詳細＞
次に、本形態における詳細について説明する。
＜構成＞
図１１は、本形態におけるタグ情報検証システム５００の構成を示すブロック図である。なお、図１１において前述の実施の形態と共通する事項についてはそれらと同じ符号を付した。
本形態におけるタグ情報検証システム５００は、タグ装置（ｍ）５１０、読取装置２０、及び読取装置２０にネットワーク４０を通じて通信可能に接続されたセキュリティサーバ装置５３０を有する。
【００５２】
［タグ装置］
この例のタグ装置５１０は、タグ記憶部１１、ハッシュ演算部５１２（「関数演算部」に相当）、インタフェース１３及び制御部１４を有する。
［読取装置］
第１の実施の形態と同様である。
［セキュリティサーバ装置］
この例のセキュリティサーバ装置５３０は、セキュリティサーバ記憶部５３１、通信部３２、検索部３３、ハッシュ演算部５３４ａと比較部５３４ｂとを具備する検証部５３４、制御部３５、履歴記憶部３６及び乱数生成部５３５を有している。
【００５３】
＜処理＞
［前処理］
タグ装置５１０のタグ記憶部１１において、このタグ装置５１０に対応する識別情報ｉｄｍと秘密情報ｋｍとを格納しておく。また、セキュリティサーバ装置５３０のセキュリティサーバ記憶部５３１において、各タグ装置ｍに対応する識別情報ｉｄｍと秘密情報ｋｍとを関連付けて格納しておく。
【００５４】
［タグ情報提出処理］
図１２は、本形態のタグ情報提出処理を説明するためのフローチャートである。
この例のタグ装置５１０は、複数箇所に設置された読取装置２０付近を巡回することにより順次タグ情報が読取られ、各読取装置２０は読取ったタグ情報をセキュリティサーバ装置５３０に送信する。以下、ｊ回目の読取り処理を例にとって説明する。
まず、ｊ回目にタグ装置５１０のタグ情報を読取る読取装置２０が、通信部２２（「読取通信部」に相当）において、セキュリティサーバ装置５３０に対し、ネットワーク４０を通じて乱数送信要求を送信する（ステップＳ６１）。これに対し、セキュリティサーバ装置５３０が、乱数生成部５３５において乱数Ｒｍ，ｊを生成し、通信部３２において、この乱数Ｒｍ，ｊを送信し、セキュリティサーバ記憶部５３１において、この乱数Ｒｍ，ｊを識別情報ｉｄｍに関連付け、なおかつ値ｊが特定できるように格納する（ステップＳ６２）。なお、乱数Ｒｍ，ｊを値ｊが特定できるように格納する方法としては、例えば、各乱数を値ｊに対応付けたテーブルとして格納する方法、値ｊに対応付けられたアドレスに対応する乱数Ｒｍ，ｊを格納する方法、ｊ＝１から順番に乱数Ｒｍ，ｊを順次格納する方法当を例示できる。
【００５５】
読取装置２０は、通信部２２において、この乱数Ｒｍ，ｊを受信し、インタフェース２１（「読取インタフェース」に相当）において、これをタグ装置５１０に送信する（ステップＳ６３）。
タグ装置５１０は、インタフェース１３において、乱数Ｒｍ，ｊを受信する（ステップＳ６４）。これをトリガにハッシュ演算部５１２がタグ記憶部１１から秘密情報ｋｍを読み出し（ステップＳ６５）、これとインタフェース１３から送られた乱数Ｒｍ，ｊとにハッシュ関数Ｇを作用させたハッシュ値Ｖｍ，ｊ＝Ｇ（ｋｍ，Ｒｍ，ｊ）を算出する（ステップＳ６６）。算出されたハッシュ値Ｖｍ，ｊ及びタグ記憶部１１内の識別情報ｉｄｍはインタフェース１３に送られ、インタフェース１３は、これらを含むタグ情報Ｅｍ，ｊ＝（ｉｄｍ，Ｖｍ，ｊ）を読取装置２０に送信する。読取装置２０は、インタフェース２１でこれを受信し、さらに通信部２２からネットワーク４０を通じ、セキュリティサーバ装置５３０に送信する（ステップＳ６８）。
セキュリティサーバ装置５３０は、通信部３２において、このタグ情報Ｅｍ，ｊを受信し（ステップＳ６９）、履歴記憶部３６において、このタグ情報Ｅｍ，ｊをその受信順序が特定できるように格納する（ステップＳ７０）。
【００５６】
［タグ情報検証処理］
図１３は、本形態のタグ情報検証処理を説明するためのフローチャートである。
まず、検索部３３において、検証対象のタグ情報Ｅｍ，ｓ（ｓはセキュリティサーバ装置での受信順序で擬制）を履歴記憶部３６から読み出し、これが有する識別情報ｉｄｍに対応する秘密情報ｋｍと乱数Ｒｍ，ｓとをセキュリティサーバ記憶部５３１から抽出する（ステップＳ８０）。これらは、検証部５３４に送られ、検証部５３４は、検証対象のタグ情報Ｅｍ，ｓが有するハッシュ値Ｖｍ，ｓを履歴記憶部３６から読み出し、ハッシュ演算部５３４ａにおいてＧ（ｋｍ，Ｒｍ，ｓ）を算出し、比較部５３４ｂにおいて、
Ｖｍ，ｓ＝Ｇ（ｋｍ，Ｒｍ，ｓ）
が成立するか否かを検証する（ステップＳ８１）。これが成立しなかった場合、検証部５３４はタグ情報Ｅｍ，ｓが不当であると判断する（ステップＳ８６）。一方、成立した場合、次に、タグ情報Ｅｍ，ｓよりも前に受信されたタグ情報Ｅｍ，ｓ−が有するハッシュ値Ｖｍ，ｓ−と、後に受信されたタグ情報Ｅｍ，ｓ＋が有するハッシュ値Ｖｍ，ｓ＋とを履歴記憶部３６から読み出す。そして、検証部５３４は、検索部３３を通じ、セキュリティサーバ記憶部５３１から識別情報ｉｄｍに対応する乱数Ｒｍ，ｘを順次読み出し、ハッシュ演算部５３４ａにおいてＧ（ｋｍ，Ｒｍ，ｓ−γ），Ｇ（ｋｍ，Ｒｍ，ｓ＋δ）を算出し、比較部５３４ｂにおいて、
Ｖｍ，ｓ−＝Ｇ（ｋｍ，Ｒｍ，ｓ−γ），    …(4)
Ｖｍ，ｓ＋＝Ｇ（ｋｍ，Ｒｍ，ｓ＋δ），
を満たすＲｍ，ｓ−γ，Ｒｍ，ｓ＋δを探索する（ステップＳ８２）。そして検証部５３４が、式（４）を満たすＲｍ，ｓ−γ，Ｒｍ，ｓ＋δが存在したか否かを判定し（ステップＳ８３）、存在しなければ、タグ情報Ｅｍ，ｓが不当であると判断し（ステップＳ８６）、存在すれば次に
γ＞０，δ＞０    …(5)
が成立するか否かを検証する（ステップＳ８４）。そしてこれが成立した場合、検証部５３４はタグ情報Ｅｍ，ｓが正当であると判断し（ステップＳ８５）、成立しなかった場合、検証部５３４はタグ情報Ｅｍ，ｓが不当であると判断する（ステップＳ８６）。
【００５７】
＜本形態の特徴＞
このように、セキュリティサーバ装置が配信する乱数Ｒｍ，ｊの配信順序が、それを用いて各タグ装置で生成されるタグ情報の送信順序と等しいものと仮定し、乱数Ｒｍ，ｊの配信順序とセキュリティサーバ装置での受信順序との関係を検証し、検証対象のタグ情報の正当性を検証することとしてもよい。この場合、上述の仮定が成立する限り不当なタグ情報を検出できる。なお、この仮定が成立しない場合とは、例えば、タグ装置ｍからｊ回目の読取を行う読取装置ｊがランダム値Ｒｍ，ｊを受け取り、タグ装置ｍからｊ＋１回目の読取を行う読取装置ｊ＋１がランダム値Ｒｍ，ｊ＋１を受け取り、読取装置ｊがタグ情報Ｅｍ，ｊをセキュリティサーバに送信する前に、読取装置ｊ＋１がタグ情報Ｅｍ，ｊ＋１をセキュリティサーバに送信してしまう場合である。このような事態を防止するため、セキュリティサーバ装置による乱数Ｒｍ，ｊの配信からタグ情報Ｅｍ，ｊの受信までをタイムラグ管理することが望ましい。例えば、セキュリティサーバ装置が乱数Ｒｍ，ｊを送信してから規定時間内でレスポンスがあるタグ情報Ｅｍ，ｊのみを検証対象とし、その時間内にレスポンスがないタグ情報Ｅｍ，ｊは無条件で不当とすることが望ましい。
【００５８】
また、セキュリティサーバ装置５３０において、配信した乱数Ｒｍ，ｊの配信先の読取装置を特定する情報を格納しておき、履歴記憶部３６にタグ情報Ｅｍ，ｊの送信元である読取装置を特定する情報を格納しておくこととしてもよい。この場合、式（４）（５）を満たし、さらに乱数Ｒｍ，ｓを配信した配信先とタグ情報Ｅｍ，ｓの送信元とが一致した場合にタグ情報Ｅｍ，ｓを合格とする検証が可能となる。
【００５９】
〔第６の実施の形態〕
次に、本発明における第６の実施の形態について説明する。
＜概要＞
本形態は、第５の実施の形態に第１の実施の形態の思想を取り込んだ形態である。
＜構成＞
図１４は、本形態におけるタグ情報検証システム６００の構成を示すブロック図である。なお、図１４において前述の実施の形態と共通する事項についてはそれらと同じ符号を付した。
本形態におけるタグ情報検証システム６００は、タグ装置（ｍ）６１０、読取装置２０、及び読取装置２０にネットワーク４０を通じて通信可能に接続されたセキュリティサーバ装置６３０を有する。
【００６０】
［タグ装置］
この例のタグ装置６１０は、タグ記憶部１１、ハッシュ演算部６１２（「関数演算部」に相当）、インタフェース１３、制御部１４及びタグカウンタ１５を有する。
［読取装置］
第１の実施の形態と同様である。
［セキュリティサーバ装置］
この例のセキュリティサーバ装置６３０は、セキュリティサーバ記憶部５３１、通信部３２、検索部３３、ハッシュ演算部６３４ａと比較部６３４ｂとを具備する検証部６３４、制御部３５、履歴記憶部３６及び乱数生成部５３５を有している。
【００６１】
＜処理＞
［前処理］
第５の実施の形態の処理に加え、タグカウンタ１５のカウント値を０にリセットする。
［タグ情報提出処理］
図１５は、本形態のタグ情報提出処理を説明するためのフローチャートである。
この例のタグ装置６１０は、複数箇所に設置された読取装置２０を巡回することにより順次タグ情報が読取られ、各読取装置２０は読取ったタグ情報をセキュリティサーバ装置６３０に送信する。以下、ｊ回目の読取り処理を例にとって説明する。
【００６２】
まず、ｊ回目にタグ装置６１０のタグ情報を読取る読取装置２０が、通信部２２（「読取通信部」に相当）において、セキュリティサーバ装置６３０に対し、ネットワーク４０を通じて乱数送信要求を送信する（ステップＳ９１）。これに対し、セキュリティサーバ装置６３０が、乱数生成部５３５において乱数Ｒｍ，ｊを生成し、通信部３２において、この乱数Ｒｍ，ｊを送信し、セキュリティサーバ記憶部５３１において、この乱数Ｒｍ，ｊを識別情報ｉｄｍに関連付け、なおかつ値ｊが特定できるように格納する（ステップＳ９２）。
【００６３】
読取装置２０は、通信部２２において、この乱数Ｒｍ，ｊを受信し、インタフェース２１（「読取インタフェース」に相当）において、これをタグ装置６１０に送信する（ステップＳ９３）。
タグ装置６１０は、インタフェース１３において、乱数Ｒｍ，ｊを受信する（ステップＳ９４）。これをトリガにタグカウンタ１５において、ｉ←ｉ＋１の演算を行い、このｉをタグ情報の送信回数に応じたカウント値ｉとして出力する（ステップＳ９５）。次に、ハッシュ演算部６１２がタグ記憶部１１から秘密情報ｋｍを読み出し（ステップＳ９６）、これとインタフェース１３から送られた乱数Ｒｍ，ｊとカウント値ｉとにハッシュ関数Ｇを作用させたハッシュ値Ｖｍ，ｉ，ｊ＝Ｇ（ｋｍ，ｉ，Ｒｍ，ｊ）を算出する（ステップＳ９７）。
【００６４】
算出されたハッシュ値Ｖｍ，ｉ，ｊ、タグ記憶部１１内の識別情報ｉｄｍ及びカウンタ値ｉはインタフェース１３に送られ、インタフェース１３は、これらを含むタグ情報Ｅｍ，ｉ，ｊ＝（ｉｄｍ，ｉ，Ｖｍ，ｊ）を読取装置２０に送信する。読取装置２０は、インタフェース２１でこれを受信し（ステップＳ９９）、さらに通信部２２からネットワーク４０を通じ、セキュリティサーバ装置６３０に送信する（ステップＳ１００）。
セキュリティサーバ装置６３０は、通信部３２において、このタグ情報Ｅｍ，ｉ，ｊを受信し（ステップＳ１０１）、履歴記憶部３６において、このタグ情報Ｅｍ，ｉ，ｊをその受信順序が特定できるように格納する（ステップＳ１０２）。
【００６５】
［タグ情報検証処理］
図１６は、本形態のタグ情報検証処理を説明するためのフローチャートである。
まず、検索部３３において、検証対象のタグ情報Ｅｍ，ｎ，ｓを履歴記憶部３６から読み出し、これが有する識別情報ｉｄｍに対応する秘密情報ｋｍと乱数Ｒｍ，ｓとをセキュリティサーバ記憶部５３１から抽出する（ステップＳ１１０）。これらは、検証部６３４に送られ、検証部５３４は、検証対象のタグ情報Ｅｍ，ｎ，ｓが有するハッシュ値Ｖｍ，ｎ，ｓ及びカウンタ値ｎを履歴記憶部３６から読み出す。そして、ハッシュ演算部６３４ａがＧ（ｋｍ，ｎ，Ｒｍ，ｓ）を算出し、比較部６３４ｂが、
Ｖｍ，ｎ，ｓ＝Ｇ（ｋｍ，ｎ，Ｒｍ，ｓ）
が成立するか否かを検証する（ステップＳ１１１）。これが成立しなければ、検証部５３４は、タグ情報Ｅｍ，ｉ，ｓが不当であると判断する（ステップＳ１１６）。一方、成立すると判断された場合、次に検証部５３４は、タグ情報Ｅｍ，ｎ，ｓよりも前に受信されたタグ情報Ｅｍ，ｎ，ｓ−が有するハッシュ値Ｖｍ，ｎ，ｓ−及びカウンタ値ｎ−αと、後に受信されたタグ情報Ｅｍ，ｎ,ｓ＋が有するハッシュ値Ｖｍ，ｎ，ｓ＋及びカウンタ値ｎ＋βとを履歴記憶部３６から読み出す。そして、検証部５３４は、検索部３３を通じ、セキュリティサーバ記憶部５３１で識別情報ｉｄｍに対応付けられた乱数Ｒｍ，ｘを順次抽出し、ハッシュ演算部６３４ａにおいてＧ（ｋｍ，ｎ，Ｒｍ，ｓ），Ｇ（ｋｍ，ｎ−α，Ｒｍ，ｓ−γ），Ｇ（ｋｍ，ｎ＋β，Ｒｍ，ｓ＋δ）を算出し、比較部６３４ｂにおいて、
Ｖｍ，ｎ，ｓ−＝Ｇ（ｋｍ，ｎ−α，Ｒｍ，ｓ−γ），  …(6)
Ｖｍ，ｎ，ｓ＋＝Ｇ（ｋｍ，ｎ＋β，Ｒｍ，ｓ＋δ），
を満たすＲｍ，ｓ−γ及びＲｍ，ｓ＋δを探索する（ステップＳ１１２）。そして検証部６３４が、式（６）を満たすＲｍ，ｓ−γ，Ｒｍ，ｓ＋δが存在したか否かを判定し（ステップＳ１１３）、存在しなければ、タグ情報Ｅｍ，ｉ，ｓが不当であると判断し（ステップＳ１１６）、存在すれば次に
α＞０，β＞０，γ＞０，δ＞０
が成立するか否かを検証する（ステップＳ１１４）。そしてこれが成立した場合、検証部６３４はタグ情報Ｅｍ，ｎ，ｓが正当であると判断し（ステップＳ１１５）、成立しなかった場合、検証部６３４はタグ情報Ｅｍ，ｎ，ｓが不当であると判断する（ステップＳ１１６）。
【００６６】
＜本形態の特徴＞
以上のような構成によっても第５の実施の形態と同様に不正なタグ情報を検出できる。  また、本形態の場合、さらにタグ装置で出力されるカウント値を用いてタグ情報を構成することとしたため、異なる時点での乱数Ｒｍ，ｊ，Ｒｍ，ｊ＋１をそれぞれ受信した読取装置が結託して行う不正も防止できる。すなわち、タグ情報の送信順序の根拠を乱数Ｒｍ，ｊだけではなく、タグ装置が出力するカウント値ｉをも根拠に用いることとしたため、読取装置が異なる時点での乱数Ｒｍ，ｊ，Ｒｍ，ｊ＋１の使用順序（タグ情報の生成に用いる順序）を入れ替える不正を行ってもセキュリティサーバ装置はその不正を検出できる。
【００６７】
〔第７の実施の形態〕
次に、本発明における第７の実施の形態について説明する。
＜概要＞
本形態は、第５の実施の形態に第２の実施の形態の思想を取り込んだ形態である。
＜構成＞
図１７は、本形態におけるタグ情報検証システム７００の構成を示すブロック図である。なお、図１７において前述の実施の形態と共通する事項についてはそれらと同じ符号を付した。
本形態におけるタグ情報検証システム７００は、タグ装置（ｍ）７１０、読取装置２０、及び読取装置２０にネットワーク４０を通じて通信可能に接続されたセキュリティサーバ装置７３０を有する。
【００６８】
［タグ装置］
この例のタグ装置７１０は、タグ記憶部２１１、ハッシュ演算部７１２（「関数演算部」に相当）、インタフェース１３、制御部１４及びタグカウンタ２１５を有する。
［読取装置］
第１の実施の形態と同様である。
［セキュリティサーバ装置］
この例のセキュリティサーバ装置６３０は、セキュリティサーバ記憶部７３１、通信部３２、検索部３３、ハッシュ演算部７３４ａ，７３４ｃと比較部７３４ｂとを具備する検証部７３４、制御部３５、履歴記憶部３６及び乱数生成部５３５を有している。
【００６９】
＜処理＞
［前処理］
タグ装置７１０のタグ記憶部２１１において、このタグ装置７１０に対応する識別情報ｉｄｍとｋｍ，ｉ（ｉは０以上の整数であり初期値は０）とを格納しておき、セキュリティサーバ装置７３０のセキュリティサーバ記憶部７３１において、各タグ装置ｍに対応する識別情報ｉｄｍと秘密情報の初期値ｋｍ，０とを関連付けて格納しておく。
【００７０】
［タグ情報提出処理］
図１８は、本形態のタグ情報提出処理を説明するためのフローチャートである。
この例のタグ装置７１０は、複数箇所に設置された読取装置２０を巡回することにより順次タグ情報が読取られ、各読取装置２０は読取ったタグ情報をセキュリティサーバ装置７３０に送信する。以下、ｊ回目の読取り処理を例にとって説明する。
まず、ｊ回目にタグ装置７１０のタグ情報を読取る読取装置２０が、通信部２２（「読取通信部」に相当）において、セキュリティサーバ装置７３０に対し、ネットワーク４０を通じて乱数送信要求を送信する（ステップＳ１２１）。これに対し、セキュリティサーバ装置７３０が、乱数生成部５３５において乱数Ｒｍ，ｊを生成し、通信部３２において、この乱数Ｒｍ，ｊを送信し、セキュリティサーバ記憶部７３１において、この乱数Ｒｍ，ｊを識別情報ｉｄｍに関連付け、なおかつ値ｊが特定できるように格納する（ステップＳ１２２）。
【００７１】
読取装置２０は、通信部２２において、この乱数Ｒｍ，ｊを受信し、インタフェース２１（「読取インタフェース」に相当）において、これをタグ装置７１０に送信する（ステップＳ１２３）。
タグ装置７１０は、インタフェース１３において、乱数Ｒｍ，ｊを受信する（ステップＳ１２４）。これをトリガにタグ装置７１０が、ハッシュ演算部７１２において、タグ記憶部２１１から秘密情報ｋｍ，ｉを抽出し（ステップＳ１２５）、この秘密情報ｋｍ，ｉと乱数Ｒｍ，ｊとにハッシュ関数Ｇを作用させたハッシュ値Ｖｍ，ｉ，ｊ＝Ｇ（ｋｍ，ｉ，Ｒｍ，ｊ）を算出する（ステップＳ１２６）。次に、インタフェース１３において、タグ記憶部２１１の識別情報ｉｄｍとハッシュ値Ｖｍ，ｉ，ｊとタグカウンタ２１５のカウンタ値ｉを含むタグ情報Ｅｍ，ｉ，ｊを送信する（ステップＳ１２７）。その後、ハッシュ演算部２１６において、秘密情報ｋｍ，ｉにハッシュ関数Ｈを作用させた秘密情報ｋｍ，ｉ＋１＝Ｈ（ｋｍ，ｉ）を算出し、これによってタグ記憶部２１１の秘密情報を更新する（ステップＳ１２８）。その後、タグカウンタ２１５においてｉ←ｉ＋１の演算によってカウント値をカウントアップし、その状態を保持する（ステップＳ１２９）。
【００７２】
読取装置２０は、送信されたタグ情報Ｅｍ，ｉ，ｊを受信し（ステップＳ１３０）、これを通信部２２からネットワーク４０を通じセキュリティサーバ装置７３０に送信する（ステップＳ１３１）。
セキュリティサーバ装置７３０は、通信部３２において、タグ情報Ｅｍ，ｉ，ｊを受信し（ステップＳ１３２）、履歴記憶部３６において、このタグ情報Ｅｍ，ｉ，ｊをその受信順序が特定できるように格納する（ステップＳ１３３）。
【００７３】
［タグ情報検証処理］
図１９は、本形態のタグ情報の検証処理を説明するためのフローチャートである。
まず、セキュリティサーバ装置７３０の検索部３３において、検証対象のタグ情報Ｅｍ，ｎ，ｓを履歴記憶部３６から読み出し、タグ情報Ｅｍ，ｎ，ｓが有する識別情報ｉｄｍに対応する秘密情報の初期値ｋｍ，０と乱数Ｒｍ，ｓとをセキュリティサーバ記憶部７３１から抽出する（ステップＳ１４０）。
次に、ハッシュ演算部７３４ｃにおいて、この初期値ｋｍ，０と履歴記憶部３６に格納された検証対象のタグ情報Ｅｍ，ｎ，ｓのカウント値ｎと、これよりも前に受信されたＥｍ，ｎ，ｓ−のカウント値ｎ‐αと、後に受信されたタグ情報Ｅｍ，ｎ，ｓ＋のカウント値ｎ＋βとを用い、ハッシュ値ｋｍ，ｎ＝Ｈｎ（ｋｍ，０），ｋｍ，ｎ−α＝Ｈｎ−α（ｋｍ，０），ｋｍ，ｎ＋β＝Ｈｎ＋α（ｋｍ，０）を算出する（ステップＳ１４１）。
【００７４】
また、検証部７３４は、検証対象のタグ情報Ｅｍ，ｎ，ｓが有するハッシュ値Ｖｍ，ｎ，ｓを履歴記憶部３６から読み出し、ハッシュ演算部７３４ａにおいてＧ（ｋｍ，Ｒｍ，ｓ）を算出し、比較部７３４ｂにおいて、
Ｖｍ，ｎ，ｓ＝Ｇ（ｋｍ，Ｒｍ，ｓ）
が成立するか否かを検証する（ステップＳ１４２）。これが成立しなければ検証部７３４は、タグ情報Ｅｍ，ｎ，ｓが不当であると判断し（ステップＳ１４７）、成立すれば、次に検証部７３４は、タグ情報Ｅｍ，ｎ，ｓよりも前に受信されたタグ情報Ｅｍ，ｎ，ｓ−が有するハッシュ値Ｖｍ，ｎ，ｓ−と、後に受信されたタグ情報Ｅｍ，ｎ，ｓ＋が有するハッシュ値Ｖｍ，ｎ，ｓ＋とを履歴記憶部３６から読み出す。そして、検証部７３４は、検索部３３を通じ、セキュリティサーバ記憶部５３１から識別情報ｉｄｍに対応する乱数Ｒｍ，ｘを順次読み出し、ハッシュ演算部５３４ａにおいてＧ（ｋｍ，Ｒｍ，ｓ），Ｇ（ｋｍ，Ｒｍ，ｓ−γ），Ｇ（ｋｍ，Ｒｍ，ｓ＋δ）を算出し、比較部５３４ｂにおいて、
Ｖｍ，ｎ，ｓ−＝Ｇ（ｋｍ，Ｒｍ，ｓ−γ），    …(7)
Ｖｍ，ｎ，ｓ＋＝Ｇ（ｋｍ，Ｒｍ，ｓ＋δ），
を満たすＲｍ，ｓ−γ，Ｒｍ，ｓ＋δを探索する（ステップＳ１４３）。そして検証部７３４が、式（７）を満たすＲｍ，ｓ−γ，Ｒｍ，ｓ＋δが存在したか否かを判定し（ステップＳ１４４）、存在しなければ、タグ情報Ｅｍ，ｎ，ｓが不当であると判断し（ステップＳ１４７）、存在すれば次に
α＞０，β＞０，γ＞０，δ＞０  
が成立するか否かを検証する（ステップＳ１４５）。そしてこれが成立した場合、検証部７３４はタグ情報Ｅｍ，ｎ，ｓが正当であると判断し（ステップＳ１４６）、成立しなかった場合、検証部７３４はタグ情報Ｅｍ，ｎ，ｓが不当であると判断する（ステップＳ１４７）。
【００７５】
＜本形態の特徴＞
以上のような構成によっても第５の実施の形態と同様に不正なタグ情報を検出できる。  また、本形態の場合、さらにタグ装置内の秘密情報を更新することとしたため、異なる時点での乱数Ｒｍ，ｊ，Ｒｍ，ｊ＋１をそれぞれ受信した読取装置が結託して行う不正も防止できる。さらに、この秘密情報の更新はハッシュチェーンによって行われるため、タグ装置内の秘密情報がタンパ等により盗まれた場合においてもそのタグ装置が出力したタグ情報の履歴を偽造する事が出来ない（フォワードセキュア）。
なお、第２の実施の形態の変形例である第３，４の実施の形態を本形態に適用してもよい。
【００７６】
〔第８の実施の形態〕
次に、本発明における第８の実施の形態について説明する。
＜概要＞
本形態は、複数のタグ装置がまとめて取り扱われる場合に適用可能な形態である。具体的には、例えば、牛乳１パックごとにタグ装置が付され、それらが１ケース単位で取り扱われる場合等を想定している。
【００７７】
図２０は、本形態の概要を説明するための概念図である。
この例では、「タグ装置１」「タグ装置２」「タグ装置３」・・・がまとめて取り扱われる。すなわち、これらのタグ装置のタグ情報は１つのタグ装置によって同時期に読み込まれる（なお、このようなタグ装置の集合をタグ装置群と呼ぶ）。この読取手順の概要は以下である。
【００７８】
まず、ｊ回目の読み込み時に一部のタグ装置ｑにのみ、第５〜７の実施の形態で説明したような乱数Ｒｑ，ｊがセキュリティサーバ装置から配送される。図２０の場合、１，２，３回目の読み込み時に、それぞれタグ装置２，タグ装置３，タグ装置１にそれぞれ乱数Ｒ２，１，Ｒ３，２，Ｒ１，３が配送される。この際セキュリティサーバ装置は、乱数Ｒｑ，ｊの配送順序（各読取時にどのタグ装置に乱数Ｒｑ，ｊを配送していったか）を保存しておく。
【００７９】
そして、乱数Ｒｑ，ｊを受け取ったタグ装置ｑは、自らの秘密情報ｋｑ，ｊと乱数Ｒｑ，ｊとを用いて生成したタグ情報Ｖｑ，ｊを送信し、他のタグ装置ｒは自らの秘密情報ｋｒ，ｊのみを用いて生成したタグ情報Ｖｒ，ｊを送信する。
セキュリティサーバ装置は、各タグ情報Ｖｑ，ｊをタグ装置群ごとの受信順序を特定できるように保存しておく。そして、この受信順序と乱数Ｒｑ，ｊの配送順序とを用い、物理的にタグ装置を取り扱わずに偽造された不正なタグ情報を検出する。
【００８０】
＜詳細＞
次に、本形態の詳細について説明する。
＜構成＞
図２１は、本形態におけるタグ情報検証システム８００の全体構成を例示した概念図である。
この図に例示するように、タグ情報検証システム８００は、まとめて取り扱われるタグ装置８１０−ｍ（ｍ∈｛１，...ｐ｝）（タグ装置群８１０）、読取装置８２０、及びこれとネットワーク４０を通じて通信可能に接続されたセキュリティサーバ装置８３０を有している。なお、ここでは１つのタグ装置群８１０、読取装置８２０及びセキュリティサーバ装置８３０を示しているが、これらは複数存在してもよい。
【００８１】
図２２及び図２３は、タグ情報検証システム８００の詳細を示したブロック図である。なお、図２２は乱数Ｒｑ，ｊが配送されるタグ装置８１０−ｑに関わる機能構成を示しており、図２３はその他のタグ装置８１０−ｒに関わる機能構成を示している。また、以下では１つのタグ装置群８１０に１つのタグ装置８１０−ｑ（乱数が配送されるタグ装置）が存在する場合を例に説明するが、１つのタグ装置群８１０に複数のタグ装置８１０−ｑが存在する構成としてもよい。
［タグ装置］
この例のタグ装置８１０−ｍは、タグ記憶部１１、ハッシュ演算部８１２（「関数演算部」に相当）、インタフェース１３及び制御部１４を有する。
【００８２】
［読取装置］
この例の読取装置８２０は、第１の実施の形態の構成にリスト生成部８２４を加えたものとなっている。
［セキュリティサーバ装置］
この例のセキュリティサーバ装置８３０−ｍは、セキュリティサーバ記憶部８３１、通信部３２、検索部３３、ハッシュ演算部８３４ａと比較部８３４ｂとを具備する検証部８３４、制御部３５、履歴記憶部３６及び乱数生成部５３５，８３５を有している。
【００８３】
＜処理＞
次に、本形態のタグ情報検証システムによる処理について説明する。
［前処理］
タグ装置群８１０を構成するｐ個のタグ装置８１０−ｍ（ｍ∈｛１，２，…，ｐ｝）のタグ記憶部１１において、各タグ装置８１０−ｍに対応する識別情報ｉｄｍと秘密情報ｋｍとをそれぞれ格納しておく。また、セキュリティサーバ装置８３０のセキュリティサーバ記憶部８３１において、各タグ装置８１０−ｍに対応する識別情報ｉｄｍと秘密情報ｋｍとを関連付けて格納しておく。
【００８４】
［タグ情報提出処理］
図２４は、タグ情報提出処理の乱数配送処理を説明するためのフローチャートである。
なお、以下ではｊ回目のタグ装置群８１０の読取処理について説明する。
まず、ｊ回目にタグ装置群８１０のタグ情報を読取る読取装置８２０は、各タグ装置８１０−ｍにそのタグ記憶部１１に格納された識別情報ｉｄｍを送信させ、これをインタフェース２１で受信する。各識別情報ｉｄｍはリスト生成部８２４に送られ、リスト生成部８２４は、リストＬｉ＝｛ｉｄ１，...，ｉｄｑ，...，ｉｄｐ｝を生成し、これを乱数送信要求と共にネットワーク４０を通じてセキュリティサーバ装置８３０に送信する（ステップＳ１５１）。セキュリティサーバ装置８３０は通信部３２においてこれを受信し、これを履歴記憶部３６に格納する（ステップＳ１５２）。次に、制御部３５は履歴記憶部３６に格納されたリストＬｉを参照し、タグ装置群８１０を構成するタグ装置の個数ｐを特定し、乱数生成部８３５に乱数ｑ∈｛１，２，…，ｐ｝を生成させ、これを用い、タグ装置群８１０の一部であるタグ装置８１０−ｑを決定する（ステップＳ１５３）。次に、乱数生成部５３５において（図２２）、このタグ装置８１０−ｑに対する乱数Ｒｑ，ｊを生成し、通信部３２において、タグ装置８１０−ｑに対する乱数Ｒｑ，ｊを読取装置８２０に向けて送信する（ステップＳ１５４）。また、セキュリティサーバ記憶部８３１において、この乱数Ｒｑ，ｊを識別情報ｉｄｑに関連付け、なおかつ値ｊが特定できるように格納する（ステップＳ１５５）。なお、乱数が生成されないタグ装置８１０−ｒの識別情報ｉｄｒには例えばnull値が対応付けられる。
【００８５】
送信された乱数Ｒｑ，ｊは、ネットワーク４０を通じて読取装置８２０の通信部２２で受信され、さらにインタフェース２１からタグ装置８１０−ｑに送信され、そのインタフェース１３で受信される（ステップＳ１５７）。その後、タグ装置８１０−ｑは、第５の実施の形態と同様（図１２）、ハッシュ演算部８１２（「第１の関数演算部」相当）において、秘密情報ｋｑと乱数Ｒｑ，ｊとにハッシュ関数Ｇを作用させたハッシュ値Ｖｑ，ｊ＝Ｇ（ｋｑ，Ｒｑ，ｊ）を算出し、インタフェース１３（「  第１のタグインタフェース」に相当）において、識別情報ｉｄｑとハッシュ値Ｖｑ，ｊとを含むタグ情報Ｅｑ，ｊを読取装置８２０に送信する。
【００８６】
一方、タグ装置８１０−ｑ以外のタグ装置８１０−ｒ（ｒ∈｛１，２，…，ｐ｝（ｒ≠ｑ））は（図２３）、読取装置８２０からのアクセスに対し、ハッシュ演算部８１２（「第２の関数演算部」に相当）において、秘密情報ｋｒにハッシュ関数Ｇを作用させたハッシュ値Ｖｒ，ｊ＝Ｇ（ｋｒ）を算出し、インタフェース１３（「第２のタグインタフェース」に相当）において、識別情報ｉｄｒと関数演算値Ｖｒ，ｊとを含むタグ情報Ｅｒ，ｊを読取装置８２０に送信する。
読取装置８２０はこれらのタグ情報Ｅｍ，ｊ（Ｅｑ，ｊ及び残り全てのＥｒ，ｊの情報を合わせたもの）をセキュリティサーバ装置８３０に送信し、セキュリティサーバ装置８３０は、通信部３２において、これらのタグ情報Ｅｍ，ｊを受信し、履歴記憶部３６において、タグ情報Ｅｍ，ｊを、タグ装置群ごとの受信順序が特定できるように格納する。
【００８７】
［タグ情報検証処理］
図２５は、本形態におけるタグ情報検証処理を説明するためのフローチャートである。
まず、セキュリティサーバ装置８３０は、検索部３３において、履歴記憶部３６から検証対象のタグ装置群に属するタグ情報Ｅｍ，ｓを読み出し、それが有する識別情報ｉｄｑと当該タグ情報Ｅｑ，ｓの受信順序ｓに対応する秘密情報ｋｑと乱数Ｒｑ，ｓとをセキュリティサーバ記憶部８３１から抽出する（ステップＳ１６１）。次に、検証部８３４において、検証対象のタグ情報Ｅｑ，ｓが有する関数演算値Ｖｑ，ｓに対し、ハッシュ演算部８３４ａ及び比較部８３４ｂを用い、
Ｖｑ，ｓ＝Ｇ（ｋｑ，Ｒｑ，ｓ）
を満たすか否かを検証する（ステップＳ１６２）。これを満たさなかった場合、検証部８３４は、タグ情報Ｅｍ，ｓが不当であると判断し（ステップＳ１６５）、満たした場合、検証部８３４において、検証対象のタグ情報Ｅｒ，ｓが有するハッシュ値Ｖｒ，ｓに対し、ハッシュ演算部８３４ａ及び比較部８３４ｂを用い、
Ｖｒ，ｓ＝Ｇ（ｋｒ）
を満たすか否かを判断する（ステップＳ１６３）。これを満たさなかった場合、検証部８３４は、タグ情報Ｅｍ，ｓが不当であると判断し（ステップＳ１６５）、満たした場合、検証部８３４は、タグ情報Ｅｍ，ｓが正当であると判断する（ステップＳ１６４）。
【００８８】
＜本形態の特徴＞
本形態では、複数のタグ装置によってタグ装置群を構成し、セキュリティサーバ装置８３０は、その一部のタグ装置に対してのみ乱数Ｒｑ，ｓを配送する。そして、セキュリティサーバ装置８３０は、何回目の読取り時にどのタグ装置８１０−ｑに対してどのような乱数Ｒｑ，ｓを送信したかを保存しておく。乱数Ｒｑ，ｓが配送されたタグ装置はこれと秘密情報とを用いてタグ情報を生成し、それ以外のタグ装置８１０−ｒは秘密情報のみを用いてタグ情報を生成する。そして、セキュリティサーバ装置８３０は、各タグ装置から送信されたタグ情報をタグ装置群８１０ごとの受信順序が特定できるように格納しておく。
【００８９】
ここで、セキュリティサーバ装置８３０は、各秘密情報ｋｍと、何回目の読取り時（タグ装置群ごとの送信順序）にどのタグ装置に対してどのような乱数Ｒｑ，ｓを送信したかという情報を保持しているため、ｓ回目に各タグ装置から送信されたタグ情報を再生できる。また、タグ情報が実際にタグ装置を物理的に取り扱って出力されたものであるならば、タグ装置群８１０ごとのタグ情報の送信順序と、セキュリティサーバ装置８３０でのタグ装置群８１０ごとタグ情報の受信順序とは高い確率で等しくなる。
再生したｓ回目読取り時のタグ情報が具備するハッシュ値と、実際にｓ番目に受信した各タグ情報のハッシュ値Ｖｍ，ｓとが等しいことを検証することにより、このタグ情報が実際にタグ装置を物理的に取り扱って出力されたものであるか否かを検証できる。
【００９０】
また、タグ装置での読取りエラーや処理効率等を考慮すると、タグ装置に乱数Ｒｑ，ｓを読み込ませる回数は少ないほどよい。本形態では、タグ装置群８１０を構成する一部のタグ装置８１０−ｑにのみに乱数Ｒｑ，ｓを読み込ませるものであるため、効率のよりシステムを構成できる。
【００９１】
〔第９の実施の形態〕
次に、本発明における第９の実施の形態について説明する。
本形態は第８の実施の形態の変形例であり、第８の実施の形態に第１，６の実施の形態の思想を取り込んだものである。以下では第８の実施の形態との相違点を中心に説明する。
＜構成＞
図２６及び図２７は、本形態のタグ情報検証システム１０００の詳細を示したブロック図である。なお、図２６は乱数Ｒｑ，ｊが配送されるタグ装置１０１０−ｑに関わる機能構成を示しており、図２７はその他のタグ装置１０１０−ｒに関わる機能構成を示している
【００９２】
［タグ装置］
この例のタグ装置１０１０−ｍ（ｑ及びｒ）は、タグ記憶部１１、ハッシュ演算部１０１２（「関数演算部」に相当）、インタフェース１３、制御部１４及びタグカウンタ１５を有する。
［読取装置］
この例の読取装置８２０は、第８の実施の形態と同様である。
［セキュリティサーバ装置］
この例のセキュリティサーバ装置１０３０は、セキュリティサーバ記憶部８３１、通信部３２、検索部３３、ハッシュ演算部１０３４ａと比較部１０３４ｂとを具備する検証部１０３４、制御部３５、履歴記憶部３６及び乱数生成部５３５，８３５を有している。
【００９３】
＜処理＞
次に、本形態のタグ情報検証システムによる処理について説明する。
［前処理］
タグ装置群を構成するｐ個のタグ装置１０１０−ｍ（ｍ∈｛１，２，…，ｐ｝）のタグ記憶部１１において、各タグ装置１０１０−ｍに対応する識別情報ｉｄｍと秘密情報ｋｍとをそれぞれ格納しておく。また、各タグ装置１０１０−ｍのタグカウンタ１５を０にリセットしておく。さらに、セキュリティサーバ装置１０３０のセキュリティサーバ記憶部８３１において、各タグ装置１０１０−ｍに対応する識別情報ｉｄｍと秘密情報ｋｍとを関連付けて格納しておく。
【００９４】
［タグ情報提出処理］
以下ではタグ装置群１０１０に対するｊ回目の読取処理について説明する。
まず、第８の実施の形態と同様に乱数配送処理を行う（図２４）。そして、インタフェース１３（「第１のタグインタフェース」に相当）において乱数Ｒｑ，ｊを受信したタグ装置１０１０−ｑは（図２６）、第６の実施の形態と同様に、タグカウンタ１５（「第１のタグカウンタ」に相当）において、タグ情報の送信回数に応じたカウント値ｉｑを出力し、ハッシュ演算部１０１２（「第１の関数演算部」に相当）において、秘密情報ｋｑとカウント値ｉｑと乱数Ｒｑ，ｊとにハッシュ関数Ｇを作用させたハッシュ値Ｖｑ，ｉ，ｊ＝Ｇ（ｋｑ，ｉｑ，Ｒｑ，ｊ）を算出し、タグインタフェース１３において、識別情報ｉｄｑと関数演算値Ｖｑ，ｉ，ｊとカウント値ｉｑを含むタグ情報Ｅｑ，ｉ，ｊを読取装置８２０に送信する。
【００９５】
一方、タグ装置１０１０−ｑ以外のタグ装置群を構成するタグ装置１０１０−ｒ（ｒ∈｛１，２，…，ｐ｝（ｒ≠ｑ））は（図２７）、読取装置８２０からのアクセスに対し、第１の実施の形態と同様に、タグカウンタ１５（「第２のタグカウンタ」に相当）において、タグ情報の送信回数に応じたカウント値ｉｒを出力し、ハッシュ演算部１０１２（「第２の関数演算部」に相当）において、秘密情報ｋｒとカウント値ｉｒとにハッシュ関数Ｇを作用させた関数演算値Ｖｒ，ｉ，ｊ＝Ｇ（ｋｒ，ｉｒ）を算出し、インタフェース１３（「第２のタグインタフェース」に相当）において、識別情報ｉｄｒと関数演算値Ｖｒ，ｉとカウント値ｉｒを含むタグ情報Ｅｒ，ｉ，ｊを読取装置に送信する。
【００９６】
読取装置８２０はこれらのタグ情報Ｅｍ，ｉ，ｊ（Ｅｑ，ｊ及び残り全てのＥｒ，ｊの情報を合わせたもの）をセキュリティサーバ装置１０３０に送信し、セキュリティサーバ装置１０３０は、通信部３２において、これらのタグ情報Ｅｍ，ｉ，ｊを受信し、履歴記憶部３６において、タグ情報Ｅｍ，ｉ，ｊを、タグ装置群ごとの受信順序が特定できるように格納する。
【００９７】
［タグ情報検証処理］
図８５は、本形態におけるタグ情報検証処理を説明するためのフローチャートである。
まず、セキュリティサーバ装置１０３０は、検索部３３において、検証対象のタグ装置群に属するタグ情報Ｅｍ，ｎ，ｓを読み出し、それが有する識別情報ｉｄｍと当該タグ情報Ｅｍ，ｎ，ｓの受信順序ｓとに対応する秘密情報ｋｍと乱数Ｒｑ，ｓとをセキュリティサーバ記憶部８３１から抽出する（ステップＳ１７１）。
【００９８】
次に、検証部１０３４において、検証対象のタグ装置群に属するタグ情報Ｅｑ，ｎ，ｓが有するハッシュ値Ｖｑ，ｎ，ｓと、これよりも前に受信されたタグ情報Ｅｑ，ｎ，ｓ−が有する関数演算値Ｖｑ，ｎ，ｓ−と、後に受信されたタグ情報Ｅｑ，ｎ，ｓ＋が有する関数演算値Ｖｑ，ｎ，ｓ＋とに対し、
Ｖｑ，ｎ，ｓ＝Ｇ（ｋｑ，ｎ，Ｒｑ，ｓ），
Ｖｑ，ｎ，ｓ−＝Ｇ（ｋｑ，ｎ−α），
Ｖｑ，ｎ，ｓ＋＝Ｇ（ｋｑ，ｎ＋β），
α＞０，β＞０
を満たすか否かをハッシュ演算部１０３４ａ及び比較部１０３４ｂを用いて検証する（ステップＳ１７２）。これを満たさなかった場合、検証部１０３４は、タグ情報Ｅｍ，ｎ，ｓが不当であると判断し（ステップＳ１７５）、満たした場合、検証部１０３４において、検証対象のタグ装置群に属するタグ情報Ｅｒ，ｎ，ｓが有する関数演算値Ｖｒ，ｎ，ｓと、これよりも前に受信されたタグ装置群のタグ情報Ｅｒ，ｎ，ｓ−が有する関数演算値Ｖｒ，ｎ，ｓ−と、後に受信されたタグ装置群のタグ情報Ｅｒ，ｎ，ｓ＋が有する関数演算値Ｖｒ，ｎ，ｓ＋とに対し、
Ｖｒ，ｎ，ｓ＝Ｇ（ｋｒ，ｎ），
Ｖｒ，ｎ，ｓ−＝Ｇ（ｋｒ，ｎ−α），
Ｖｒ，ｎ，ｓ＋＝Ｇ（ｋｒ，ｎ＋β），
α＞０，β＞０
を満たすか否かをハッシュ演算部１０３４ａ及び比較部１０３４ｂを用いて検証する（ステップＳ１７３）。これを満たさなかった場合、検証部１０３４は、タグ情報Ｅｍ，ｎ，ｓが不当であると判断し（ステップＳ１７５）、満たした場合、検証部１０３４は、タグ情報Ｅｍ，ｎ，ｓが正当であると判断する（ステップＳ１７４）。
【００９９】
〔第１０の実施の形態〕
次に、本発明における第１０の実施の形態について説明する。
本形態は第８の実施の形態の変形例であり、第８の実施の形態に第２，７の実施の形態の思想を取り込んだものである。以下では第８の実施の形態との相違点を中心に説明する。
＜構成＞
図２９及び図３０は、本形態のタグ情報検証システム１２００の詳細を示したブロック図である。なお、図２９は乱数Ｒｑ，ｊが配送されるタグ装置１２１０−ｑに関わる機能構成を示しており、図３０はその他のタグ装置１２１０−ｒに関わる機能構成を示している
［タグ装置］
この例のタグ装置１２１０−ｍ（ｑ及びｒ）は、タグ記憶部１１、ハッシュ演算部１２１２，２１６、インタフェース１３、制御部１４及びタグカウンタ２１５を有する。
【０１００】
［読取装置］
この例の読取装置８２０は、第８の実施の形態と同様である。
［セキュリティサーバ装置］
この例のセキュリティサーバ装置１２３０は、セキュリティサーバ記憶部１２３１、通信部３２、検索部３３、ハッシュ演算部１２３４ａ，１２３４ｃと比較部１２３４ｂとを具備する検証部１２３４、制御部３５、履歴記憶部３６及び乱数生成部５３５，８３５を有している。
【０１０１】
＜処理＞
次に、本形態のタグ情報検証システムによる処理について説明する。
［前処理］
タグ装置群を構成するｐ個のタグ装置１２１０−ｍ∈｛１，２，…，ｐ｝のタグ記憶部２１１において、各タグ装置１２１０−ｍに対応する識別情報ｉｄｍと秘密情報ｋｍ，ｉ（ｉは０以上の整数）とをそれぞれ格納しておく。また、タグカウンタ２１５のカウント値を０にリセットしておく。さらに、セキュリティサーバ装置１２３０のセキュリティサーバ記憶部１２３１において、各タグ装置１２１０−ｍに対応する識別情報ｉｄｍと秘密情報の初期値ｋｍ，０とを関連付けて格納しておく。
【０１０２】
［タグ情報提出処理］
以下ではタグ装置群１０１０に対するｊ回目の読取処理について説明する。
まず、第８の実施の形態と同様に乱数配送処理を行う（図２４）。そして、インタフェース１３（「第１のタグインタフェース」に相当）において乱数Ｒｑ，ｊを受信したタグ装置１２１０−ｑは（図２９）、第７の実施の形態と同様に、ハッシュ演算部１２１２（「第１の関数演算部」に相当）において、秘密情報ｋｑ，ｉ１と乱数Ｒｑ，ｊとにハッシュ関数Ｇを作用させたハッシュ値Ｖｑ，ｉ１，ｊ＝Ｇ（ｋｑ，ｉ１，Ｒｑ，ｊ）を算出し、インタフェース１３（「第１のタグインタフェース」に相当）において、識別情報ｉｄｍと関数演算値Ｖｑ，ｉ１，ｊとタグカウンタ２１５のカウント値ｉｑとを含むタグ情報Ｅｑ，ｉ１，ｊを送信する。そして、ハッシュ演算部２１６（「第１の秘密情報更新部」に相当）において、秘密情報ｋｑ，ｉ１にハッシュ関数Ｈを作用させた秘密情報ｋｑ，ｉ１＋１＝Ｈ（ｋｑ，ｉ１）を算出し、これによってタグ装置１２１０−ｑのタグ記憶部の秘密情報を更新し、タグカウンタ２１５をカウントアップする。
【０１０３】
一方、タグ装置１２１０−ｑ以外のタグ装置群を構成するタグ装置１２１０−ｒ∈｛１，２，…，ｐ｝（ｒ≠ｑ）は（図３０）、読取装置８２０からのアクセスに対し、ハッシュ演算部１２１２（「第２の関数演算部」に相当）において、秘密情報ｋｒ，ｉ２にハッシュ関数Ｇを作用させたハッシュ値Ｖｒ，ｉ２，ｊ＝Ｇ（ｋｒ，ｉ２）を算出し、タグインタフェース１３（「第２のタグインタフェース」に相当）において、識別情報ｉｄｍとハッシュ値Ｖｒ，ｉ２，ｊとカウント値ｉｒを含むタグ情報Ｅｍ，ｉ２，ｊを送信する。そして、ハッシュ演算部２１６（「第２の秘密情報更新部」に相当）において、秘密情報ｋｒ，ｉ２を含む情報にハッシュ関数Ｈを作用させた秘密情報ｋｒ，ｉ２＋１＝Ｈ（ｋｒ，ｉ２）を算出し、これによってタグ記憶部２１１の秘密情報を更新し、タグカウンタ２１５をカウントアップする。
【０１０４】
読取装置８２０はこれらのタグ情報Ｅｍ，ｉ，ｊ（Ｅｑ，ｊ及び残り全てのＥｒ，ｊの情報を合わせたもの）をセキュリティサーバ装置１２３０に送信し、セキュリティサーバ装置１２３０は、通信部３２において、これらのタグ情報Ｅｍ，ｉ，ｊを受信し、履歴記憶部３６において、タグ情報Ｅｍ，ｉ，ｊを、タグ装置群ごとの受信順序が特定できるように格納する。
【０１０５】
［タグ情報検証処理］
図８５は、本形態におけるタグ情報検証処理を説明するためのフローチャートである。
まず、検索部３３において、検証対象のタグ装置群に属するタグ情報Ｅｍ，ｎ，ｓを履歴記憶部３６から読み出し、それが有する識別情報ｉｄｍ及び受信順序ｓに対応する、秘密情報の初期値ｋｍ，０と乱数Ｒｑ，ｓとをセキュリティサーバ記憶部１２３１から抽出する（ステップＳ１８１）。
【０１０６】
次に、検証部１２３４において、検証対象のタグ装置群に属するタグ情報Ｅｑ，ｎ，ｓが有する関数演算値Ｖｑ，ｎ，ｓと、これよりも前に受信されたタグ情報Ｅｑ，ｎ，ｓ−が有する関数演算値Ｖｑ，ｎ，ｓ−と、後に受信されたタグ情報Ｅｑ，ｎ，ｓ+が有する関数演算値Ｖｑ，ｎ，ｓ+とに対し、ｋｍ，ｉ＝Ｈｉ（ｋｍ，０）とした場合における、
Ｖｑ，ｎ，ｓ＝Ｇ（ｋｑ，ｎ，Ｒｑ，ｓ），
Ｖｑ，ｎ，ｓ−＝Ｇ（ｋｑ，ｎ−α），
Ｖｑ，ｎ，ｓ+＝Ｇ（ｋｑ，ｎ＋β），
α＞０，β＞０
を満たすか否かを、ハッシュ演算部１２３４ａ，１２３４ｃ及び比較部１２３４ｂを用いて検証する（ステップＳ１８２）。これを満たさなかった場合、検証部１２３４は、タグ情報Ｅｍ，ｎ，ｓが不当であると判断し（ステップＳ１８５）、満たした場合、検証部１２３４は、検証対象のタグ装置群に属するタグ情報Ｅｒ，ｎ，ｓが有する関数演算値Ｖｒ，ｎ，ｓと、これよりも前に受信されたタグ情報Ｅｒ，ｎ，ｓ−が有する関数演算値Ｖｒ，ｎ，ｓ−と、後に受信されたタグ情報Ｅｒ，ｎ，ｓ＋が有する関数演算値Ｖｒ，ｎ，ｓ＋とに対し、
Ｖｒ，ｎ，ｓ＝Ｇ（ｋｒ，ｎ），
Ｖｒ，ｎ，ｓ−＝Ｇ（ｋｒ，ｎ−α），
Ｖｒ，ｎ，ｓ＋＝Ｇ（ｋｒ，ｎ＋β），
α＞０，β＞０
を満たす否かを、ハッシュ演算部１２３４ａ，１２３４ｃ及び比較部１２３４ｂを用いて検証する（ステップＳ１８３）。これを満たさなかった場合、検証部１２３４は、タグ情報Ｅｍ，ｎ，ｓが不当であると判断し（ステップＳ１８５）、満たした場合、検証部１２３４は、タグ情報Ｅｍ，ｎ，ｓが正当であると判断する（ステップＳ１５４）。
【０１０７】
〔第１１の実施の形態〕
次に、本発明における第１１の実施の形態について説明する。
＜概要＞
本形態は、セキュリティサーバ装置が格納するｉｄｍやｋｍ等の情報の一部を他のサーバ装置に分散して管理する形態である。すなわち、セキュリティサーバ装置がを全ての情報を持っていると、セキュリティサーバ装置の持つ記憶部から情報が漏洩した場合、任意のタグ装置に対する順序履歴の偽造が可能となってしまう。そこで、セキュリティサーバ装置と検証サーバ装置とでタグ装置に持たせる秘密情報を分散させ、セキュリティサーバ装置若しくは検証サーバ装置上の情報が漏洩した場合においても任意のタグ装置に対する順序履歴を偽造する事が出来ない機能を実現するものである。
【０１０８】
図３２は、この概要を説明するための概念図である。図３２の例では、セキュリティサーバ装置には、タグ装置に対応する識別情報ｉｄとそれを秘匿化した秘密識別情報ｓｉｄとが格納されているが、タグ装置の秘密情報ｋは格納されていない。一方、検証サーバ装置には、秘密識別情報ｓｉｄと秘密情報ｋが格納されているが識別情報ｉｄは格納されていない。そして、共に格納されている秘密識別情報ｓｉｄを用い、セキュリティサーバ装置と検証サーバ装置とで協力しあいタグ情報の検証を行う。
【０１０９】
＜詳細＞
次に、本形態の詳細について説明する。なお、以下では第７の実施の形態にセキュリティサーバ装置と検証サーバ装置とで秘匿情報を分散する思想を取り込んだ例を説明するが、他の実施の形態にこの思想を取り込んだ構成としてもよい。
【０１１０】
＜構成＞
図３３は、本形態におけるタグ情報検証システム１４００の構成を示すブロック図である。なお、図３３において前述の実施の形態と共通する事項についてはそれらと同じ符号を付した。
本形態におけるタグ情報検証システム１４００は、タグ装置（ｍ）１４１０、読取装置２０、読取装置２０にネットワーク４０を通じて通信可能に接続されたセキュリティサーバ装置１４３０及びセキュリティサーバ装置１４３０にネットワーク４０を通じて通信可能に接続された検証サーバ装置１４５０を有する。
【０１１１】
［タグ装置］
この例のタグ装置１４１０は、タグ記憶部１４１１、ハッシュ演算部２１６，１４１２、インタフェース１３、制御部１４及びタグカウンタ２１５を有する。
［読取装置］
第１の実施の形態と同様である。
［セキュリティサーバ装置］
この例のセキュリティサーバ装置１４３０は、セキュリティサーバ記憶部１４３１、通信部３２、検索部３３、制御部３５、履歴記憶部３６及び乱数生成部５３５を有している。
［検証サーバ装置］
この例の検証サーバ装置１４５０は、履歴サーバ記憶部１４５１、通信部１４５２、検索部１４５３、ハッシュ演算部１４５４ａ，１４５４ｃと比較部１４５４ｂとを具備する検証部１４５４、及び制御部１４５５を有している。
【０１１２】
＜処理＞
［前処理］
タグ装置１４１０のタグ記憶部１４１１において、このタグ装置１４１０に対応する識別情報ｉｄｍとこれを秘匿化した秘匿化識別情報ｓｉｄｍと秘密情報ｋｍ，ｉ（ｉは０以上の整数であり初期値は０）とを格納しておき、タグカウンタ２１５のカウント値を０にリセットしておく。また、セキュリティサーバ装置１４３０のセキュリティサーバ記憶部１４３１において、各タグ装置ｍに対応する識別情報ｉｄｍと秘匿化識別情報ｓｉｄｍとを関連付けて格納しておく。さらに、検証サーバ装置１４５０の履歴サーバ記憶部１４５１に秘匿化識別情報ｓｉｄｍと秘密情報の初期値ｋｍ，０を関連付けて格納しておく。
【０１１３】
［タグ情報提出処理］
図３４は、本形態のタグ情報提出処理を説明するためのフローチャートである。
まず、ｊ回目にタグ装置１４１０のタグ情報を読取る読取装置２０が、通信部２２において、セキュリティサーバ装置１４３０に対し、ネットワーク４０を通じて乱数送信要求を送信する（ステップＳ２０１）。これに対し、セキュリティサーバ装置１４３０が、乱数生成部５３５において乱数Ｒｍ，ｊを生成し、通信部３２において、この乱数Ｒｍ，ｊを送信し、セキュリティサーバ記憶部１４３１において、この乱数Ｒｍ，ｊを識別情報ｉｄｍに関連付け、なおかつ値ｊが特定できるように格納する（ステップＳ２０２）。
【０１１４】
読取装置２０は、通信部２２において、この乱数Ｒｍ，ｊを受信し、インタフェース２１において、これをタグ装置１４１０に送信する（ステップＳ２０３）。
タグ装置１４１０は、インタフェース１３において、乱数Ｒｍ，ｊを受信する（ステップＳ２０４）。これをトリガにタグ装置１４１０が、ハッシュ演算部１４１２において、タグ記憶部１４１１から秘密情報ｋｍ，ｉを抽出し（ステップＳ２０５）、この秘密情報ｋｍ，ｉと乱数Ｒｍ，ｊとにハッシュ関数Ｇを作用させたハッシュ値Ｖｍ，ｉ，ｊ＝Ｇ（ｋｍ，ｉ，Ｒｍ，ｊ）を算出する（ステップＳ２０５）。次に、インタフェース１３において、このハッシュ値Ｖｍ，ｉ，ｊとタグ記憶部１４１１の秘匿化識別情報ｓｉｄｍとタグカウンタ２１５のカウンタ値ｉとを含むタグ情報Ｅｍ，ｉ，ｊを送信する（ステップＳ２０６）。その後、ハッシュ演算部２１６において、秘密情報ｋｍ，ｉにハッシュ関数Ｈを作用させた秘密情報ｋｍ，ｉ＋１＝Ｈ（ｋｍ，ｉ）を算出し、これによってタグ記憶部１４１１の秘密情報を更新する（ステップＳ２０７）。その後、タグカウンタ２１５においてｉ←ｉ＋１の演算によってカウント値をカウントアップし、その状態を保持する（ステップＳ２０８）。
【０１１５】
読取装置２０は、送信されたタグ情報Ｅｍ，ｉ，ｊを受信し（ステップＳ２０９）、これを通信部２２からネットワーク４０を通じセキュリティサーバ装置１４３０に送信する（ステップＳ２１０）。
セキュリティサーバ装置１４３０は、通信部３２において、タグ情報Ｅｍ，ｉ，ｊを受信し（ステップＳ２１１）、履歴記憶部３６において、このタグ情報Ｅｍ，ｉ，ｊをその受信順序が特定できるように格納する（ステップＳ２１２）。
【０１１６】
［タグ情報検証処理］
図３５及び図３６は、本形態のタグ情報の検証処理を説明するためのフローチャートである。
まず、セキュリティサーバ装置１４３０の検索部３３において、検証対象のタグ情報Ｅｍ，ｎ，ｓを履歴記憶部３６から読み出し、タグ情報Ｅｍ，ｎ，ｓの秘匿化識別情報ｓｉｄｍに対応する全ての乱数Ｒｍ，ｘ（ｘは自然数）をセキュリティサーバ記憶部１４３１から抽出する（ステップＳ２２１）。次に、通信部３２において、履歴記憶部３６に格納された検証対象のタグ情報Ｅｍ，ｎ，ｓのハッシュ値Ｖｍ，ｎ，ｓとカウンタ値ｎ、これよりも前に受信されたタグ情報Ｅｍ，ｎ，ｓ−のハッシュ値Ｖｍ，ｎ，ｓ−とカウンタ値ｎ‐α、後に受信されたタグ情報Ｅｍ，ｎ，ｓ＋のハッシュ値Ｖｍ，ｎ，ｓ＋とカウンタ値ｎ＋β、ｓｉｄｍ，Ｒｍ，ｘを検証サーバ装置１４５０に送信して検証を依頼する（ステップＳ２２２）。
【０１１７】
検証サーバ装置１４５０は、通信部１４５２において、Ｖｍ，ｎ，ｓ，Ｖｍ，ｎ，ｓ−，Ｖｍ，ｎ，ｓ+，ｎ，ｎ‐α，ｎ＋β，ｓｉｄｍ，Ｒｍ，ｘを受信し（ステップＳ２２３）、まず、検索部１４５３において履歴サーバ記憶部１４５１からｓｉｄｍに対応するｋｍ，０抽出する（ステップＳ２２４）。次に、検証部１４５４のハッシュ演算部１４５４ｃにおいて、ハッシュ値ｋｍ，ｎ＝Ｈｎ（ｋｍ，０），ｋｍ，ｎ−α＝Ｈｎ−α（ｋｍ，０），ｋｍ，ｎ＋β＝Ｈｎ＋α（ｋｍ，０）算出し（ステップＳ２２５）、図示していない制御部のメモリに格納しておく。次に、ハッシュ演算部１４５４ａにおいてハッシュ値Ｇ（ｋｍ，ｎ，Ｒｍ，ｓ）を算出し、比較部１４５４ｂにおいて、
Ｖｍ，ｎ，ｓ＝Ｇ（ｋｍ，ｎ,Ｒｍ，ｓ）
が成立するか否かを検証する（ステップＳ２２６）。これが成立しない場合、検証部１４５４はタグ情報Ｅｍ，ｎ，ｓが不当であると判断する（ステップＳ２３０）。一方、成立する場合、検証部１４５４は、セキュリティサーバ装置１４３０から送信されたＲｍ，ｘを用い、ハッシュ演算部１４５４ａにおいてハッシュ値Ｇ（ｋｍ，ｎ−α，Ｒｍ，ｓ−γ )，Ｇ（ｋｍ，ｎ＋β，Ｒｍ，ｓ＋δ ）を算出し、比較部１４５４ｂにおいて、
Ｖｍ，ｎ，ｓ−＝Ｇ（ｋｍ，ｎ−α，Ｒｍ，ｓ−γ )，      …(8)
Ｖｍ，ｎ，ｓ＋＝Ｇ（ｋｍ，ｎ＋β，Ｒｍ，ｓ＋δ ）
を順次検証しつつ、これらを満たすＲｍ，ｓ−γ ，Ｒｍ，ｓ＋δを探索する（ステップＳ２２７）。
【０１１８】
そして検証部１４５４が、式（８）を満たすＲｍ，ｓ−γ，Ｒｍ，ｓ＋δが存在したか否かを判定し（ステップＳ２２８）、存在しなければ、タグ情報Ｅｍ，ｎ，ｓが不当であると判断し（ステップＳ２３０）、存在すれば次に
α＞０，β＞０，γ＞０，δ＞０  
が成立するか否かを検証する（ステップＳ２２９）。そしてこれが成立した場合、検証部１４５４はタグ情報Ｅｍ，ｎ，ｓが正当であると判断し（ステップＳ２３１）、成立しなかった場合、検証部１４５４はタグ情報Ｅｍ，ｎ，ｓが不当であると判断する（ステップＳ２３０）。
【０１１９】
以上の検証結果は通信部１４５２に送られ、通信部１４５２は、この検証結果を秘匿化識別情報ｓｉｄｍとともにセキュリティサーバ装置１４３０に返信する（ステップＳ２３２）。これらはネットワーク４０を通じ、セキュリティサーバ装置１４３０の通信部３２において受信される（ステップＳ２３３）。その後、検索部３３において、この秘匿化識別情報ｓｉｄｍに関連付けられている識別情報ｉｄｍを読み出し、ステップＳ２３３で受信した検索結果をこの識別情報ｉｄｍに対応するタグ装置のタグ情報に係るものとして出力する。
【０１２０】
＜本形態の特徴＞
本形態では、識別情報ｉｄｍと秘密情報の初期値ｋｉ，０とをセキュリティサーバ装置１４３０と検証サーバ装置１４５０とに分散管理することとしたため、何れか一方で管理する情報のみが漏洩しても任意のタグ装置に対する順序履歴を偽造する事が出来ない。また、検証サーバ装置１４５０には識別情報ｉｄｍ自体は与えられないため、検証サーバ装置１４５０はどのタグ装置のタグ情報に関して検証を行っているのかを知ることはできない。そのため、検証サーバ装置１４５０は特定の識別情報ｉｄｍを攻撃目標として検証結果の偽造を行うことができない。
【０１２１】
〔第１２の実施の形態〕
本形態は第１１の実施の形態の変形例であり、秘匿化識別情報ｓｉｄｍの用い方のみが第１１の実施の形態と相違する。
＜構成＞
図３７は、本形態におけるタグ情報検証システム１５００の構成を示すブロック図である。なお、図３７において前述の実施の形態と共通する事項についてはそれらと同じ符号を付した。
【０１２２】
本形態におけるタグ情報検証システム１５００は、タグ装置（ｍ）１５１０、読取装置２０、読取装置２０にネットワーク４０を通じて通信可能に接続されたセキュリティサーバ装置１５３０及びセキュリティサーバ装置１５３０にネットワーク４０を通じて通信可能に接続された検証サーバ装置１５５０を有する。
［タグ装置］
この例のタグ装置１５１０は、タグ記憶部１４１１、ハッシュ演算部２１６，１５１２、インタフェース１３、制御部１４及びタグカウンタ２１５を有する。
【０１２３】
［読取装置］
第１の実施の形態と同様である。
［セキュリティサーバ装置］
この例のセキュリティサーバ装置１５３０は、セキュリティサーバ記憶部１５３１、通信部３２、検索部３３、制御部３５、履歴記憶部３６及び乱数生成部５３５を有している。
［検証サーバ装置］
この例の検証サーバ装置１５５０は、履歴サーバ記憶部１４５１、通信部１４５２、検索部１４５３、ハッシュ演算部１５５４ａ，１５５４ｃと比較部１５５４ｂとを具備する検証部１５５４、及び制御部１４５５を有している。
【０１２４】
＜処理＞
［前処理］
第１１の実施の形態と同じである。
［タグ情報提出処理］
図３８は、本形態のタグ情報提出処理を説明するためのフローチャートである。
まず、ｊ回目にタグ装置１５１０のタグ情報を読取る読取装置２０が、通信部２２において、セキュリティサーバ装置１５３０に対し、ネットワーク４０を通じて乱数送信要求を送信する（ステップＳ２４１）。これに対し、セキュリティサーバ装置１５３０が、乱数生成部５３５において乱数Ｒｍ，ｊを生成し、通信部３２において、この乱数Ｒｍ，ｊを送信し、セキュリティサーバ記憶部１５３１において、この乱数Ｒｍ，ｊを識別情報ｉｄｍに関連付け、なおかつ値ｊが特定できるように格納する（ステップＳ２４２）。
【０１２５】
読取装置２０は、通信部２２において、この乱数Ｒｍ，ｊを受信し、インタフェース２１において、これをタグ装置１５１０に送信する（ステップＳ２４３）。
タグ装置１５１０は、インタフェース１３において、乱数Ｒｍ，ｊを受信する（ステップＳ２４４）。これをトリガにタグ装置１５１０が、ハッシュ演算部１５１２において、タグ記憶部１４１１から秘密情報ｋｍ，ｉと秘匿化識別情報ｓｉｄｍとを抽出し（ステップＳ２４５）、この秘密情報ｋｍ，ｉと秘匿化識別情報ｓｉｄｍと乱数Ｒｍ，ｊとにハッシュ関数Ｇを作用させたハッシュ値Ｖｍ，ｉ，ｊ＝Ｇ（ｋｍ，ｉ，ｓｉｄｍ，Ｒｍ，ｊ）を算出する（ステップＳ２４６）。次に、インタフェース１３において、このハッシュ値Ｖｍ，ｉ，ｊとタグ記憶部１４１１の識別情報ｉｄｍとタグカウンタ２１５のカウンタ値ｉとを含むタグ情報Ｅｍ，ｉ，ｊを送信する（ステップＳ２４７）。その後、ハッシュ演算部２１６において、秘密情報ｋｍ，ｉにハッシュ関数Ｈを作用させた秘密情報ｋｍ，ｉ＋１＝Ｈ（ｋｍ，ｉ）を算出し、これによってタグ記憶部１４１１の秘密情報を更新する（ステップＳ２４８）。その後、タグカウンタ２１５においてｉ←ｉ＋１の演算によってカウント値をカウントアップし、その状態を保持する（ステップＳ２４９）。
【０１２６】
読取装置２０は、送信されたタグ情報Ｅｍ，ｉ，ｊを受信し（ステップＳ２４１）、これを通信部２２からネットワーク４０を通じセキュリティサーバ装置１５３０に送信する（ステップＳ２５１）。
セキュリティサーバ装置１５３０は、通信部３２において、タグ情報Ｅｍ，ｉ，ｊを受信し（ステップＳ２５２）、履歴記憶部３６において、このタグ情報Ｅｍ，ｉ，ｊをその受信順序が特定できるように格納する（ステップＳ２５３）。
【０１２７】
［タグ情報検証処理］
図３９及び図４０は、本形態のタグ情報の検証処理を説明するためのフローチャートである。
まず、セキュリティサーバ装置１５３０の検索部３３において、検証対象のタグ情報Ｅｍ，ｎ，ｓを履歴記憶部３６から読み出し、タグ情報Ｅｍ，ｎ，ｓの識別情報ｉｄｍに対応する秘匿化識別情報ｓｉｄｍ及び全ての乱数Ｒｍ，ｘ（ｘは自然数）をセキュリティサーバ記憶部１５３１から抽出する（ステップＳ２６１）。次に、通信部３２において、履歴記憶部３６に格納された検証対象のタグ情報Ｅｍ，ｎ，ｓのハッシュ値Ｖｍ，ｎ，ｓとカウンタ値ｎ、これよりも前に受信されたタグ情報Ｅｍ，ｎ，ｓ−のハッシュ値Ｖｍ，ｎ，ｓ−とカウンタ値ｎ‐α、後に受信されたタグ情報Ｅｍ，ｎ，ｓ＋のハッシュ値Ｖｍ，ｎ，ｓ＋とカウンタ値ｎ＋β、ｓｉｄｍ，Ｒｍ，ｘを検証サーバ装置１５５０に送信して検証を依頼する（ステップＳ２６２）。
【０１２８】
検証サーバ装置１５５０は、通信部１４５２において、Ｖｍ，ｎ，ｓ，Ｖｍ，ｎ，ｓ−，Ｖｍ，ｎ，ｓ，ｎ，ｎ‐α，ｎ＋β，ｓｉｄｍ，Ｒｍ，ｘを受信し（ステップＳ２６３）、まず、検索部１４５３において履歴サーバ記憶部１４５１からｓｉｄｍに対応するｋｍ，０抽出する（ステップＳ２６４）。次に、検証部１４５４のハッシュ演算部１４５４ｃにおいて、ハッシュ値ｋｍ，ｎ＝Ｈｎ（ｋｍ，０），ｋｍ，ｎ−α＝Ｈｎ−α（ｋｍ，０），ｋｍ，ｎ＋β＝Ｈｎ＋α（ｋｍ，０）算出し（ステップＳ２２５）、図示していない制御部のメモリに格納しておく。次に、ハッシュ演算部１５５４ａにおいてハッシュ値Ｇ（ｋｍ，ｎ，ｓｉｄｍ，Ｒｍ，ｓ）を算出し、比較部１５５４ｂにおいて、
Ｖｍ，ｎ，ｓ＝Ｇ（ｋｍ，ｎ，ｓｉｄｍ，Ｒｍ，ｓ）
が成立するか否かを検証する（ステップＳ２６６）。これが成立しない場合、検証部１４５４はタグ情報Ｅｍ，ｎ，ｓが不当であると判断する（ステップＳ２７０）。一方、成立する場合、検証部１５５４は、セキュリティサーバ装置１５３０から送信されたＲｍ，ｘを用い、ハッシュ演算部１４５４ａにおいてハッシュ値Ｇ（ｋｍ，ｎ−α，Ｒｍ，ｓ−γ )，Ｇ（ｋｍ，ｎ＋β，Ｒｍ，ｓ＋δ ）を算出し、比較部１４５４ｂにおいて、
Ｖｍ，ｎ，ｓ−＝Ｇ（ｋｍ，ｎ−α，Ｒｍ，ｓ−γ )，      …(9)
Ｖｍ，ｎ，ｓ＋＝Ｇ（ｋｍ，ｎ＋β，Ｒｍ，ｓ＋δ ）
を順次検証しつつ、これらを満たすＲｍ，ｓ−γ ，Ｒｍ，ｓ＋δを探索する（ステップＳ２６７）。
【０１２９】
そして検証部１５５４が、式（９）を満たすＲｍ，ｓ−γ，Ｒｍ，ｓ＋δが存在したか否かを判定し（ステップＳ２６８）、存在しなければ、タグ情報Ｅｍ，ｎ，ｓが不当であると判断し（ステップＳ２７０）、存在すれば次に
α＞０，β＞０，γ＞０，δ＞０  
が成立するか否かを検証する（ステップＳ２６９）。そしてこれが成立した場合、検証部１５５４はタグ情報Ｅｍ，ｎ，ｓが正当であると判断し（ステップＳ２７１）、成立しなかった場合、検証部１５５４はタグ情報Ｅｍ，ｎ，ｓが不当であると判断する（ステップＳ２７０）。
【０１３０】
以上の検証結果は通信部１４５２に送られ、通信部１４５２は、この検証結果を秘匿化識別情報ｓｉｄｍとともにセキュリティサーバ装置１５３０に返信する（ステップＳ２７２）。これらはネットワーク４０を通じ、セキュリティサーバ装置１５３０の通信部３２において受信される（ステップＳ２７３）。その後、検索部３３において、この秘匿化識別情報ｓｉｄｍに関連付けられている識別情報ｉｄｍを読み出し、ステップＳ２７３で受信した検索結果をこの識別情報ｉｄｍに対応するタグ装置のタグ情報に係るものとして出力する。
【０１３１】
〔第１３の実施の形態〕
本形態は第１の実施の形態の変形例であり、読取装置が読取ったタグ情報に署名を付し、さらにその検証を行ったセキュリティサーバ装置がその検証結果に署名を付する形態である。これにより、セキュリティサーバ装置からこの署名付き検証結果を受けた第三者は、セキュリティサーバ装置を信用することを前提に、セキュリティサーバ装置が確かに履歴通りに読取装置からデータを受信し、その検証を行っていることを確認できる。その結果、第三者は、確かにタグ情報が実際に物理的に取り扱われて生成された情報であることを確認できる。
【０１３２】
＜概要＞
図４１は、本形態の概要を説明するための概念図である。
この図に示すように、本形態の読取装置はタグ装置から送信されたタグ情報Ｅｍ、ｉに対して読取装置の
署名Ｓｉｇ（Ｅｍ、ｉ）
を生成し、その対象となるタグ装置を取り扱った証拠として
署名とタグ情報の対Ｕｍ，ｉ＝（Ｓｉｇ（Ｅｍ、ｉ），Ｅｍ、ｉ）
をセキュリティサーバ装置に送信する。
【０１３３】
セキュリティサーバ装置は、読取装置から送信されたＵｍ，ｉ＝（Ｓｉｇ（Ｅｍ、ｉ），Ｅｍ、ｉ）と対象のタグ情報Ｅｍ、ｉと識別情報ｉｄｍとタグ情報Ｅｍ、ｉの受信時刻ｔに対し、
署名Ｓｉｇｓｓ（（Ｓｉｇ（Ｅｍ、ｉ），Ｅｍ、ｉ），Ｅｍ、ｉ，ｉｄｍ，ｔ）
を生成する。そして、セキュリティサーバ装置は、確かに順序履歴（履歴記憶部３６に記憶された受信順序）通りにデータを受信したことの証拠として
署名とタグ情報の対Ｗｍ，ｉ＝（Ｓｉｇｓｓ（（Ｓｉｇ（Ｅｍ、ｉ），Ｅｍ、ｉ），Ｅｍ、ｉ，ｉｄｍ，ｔ），（Ｓｉｇ（Ｅｍ、ｉ），Ｅｍ、ｉ），Ｅｍ、ｉ，ｉｄｍ，ｔ）
を生成し、タグ情報の正当性を確認する第三者に出力する。
【０１３４】
＜詳細＞
図４２は、本形態のタグ情報検証システム１６００の構成を例示したブロック図である。本形態と第１の実施の形態のタグ情報検証システム１との構成上の相違点は、読取装置２０が、署名部１６２４が付加された読取装置１６２０に置き換わる点、セキュリティサーバ装置３０が、署名部１６３６及び時計１６３７が付加されたセキュリティサーバ装置１６３０に置き換わる点である。
【０１３５】
また、タグ情報提出処理上の相違点は、読取装置１６２０がタグ装置１０から読取ったタグ情報Ｅｍ，ｉに対し、
署名とタグ情報の対Ｕｍ，ｉ＝（Ｓｉｇ（Ｅｍ、ｉ），Ｅｍ、ｉ）を生成し、タグ情報Ｅｍ，ｉの代わりにこの署名とタグ情報の対Ｕｍ，ｉをセキュリティサーバ装置１６３０に送信する点、セキュリティサーバ装置１６３０の履歴記憶部３６においてタグ情報Ｅｍ，ｉを格納する代わりに、通信部３２におけるＵｍ，ｉの受信時刻ｔを時計１６３７から出力し、このＵｍ，ｉを受信時刻ｔに関連付けて蓄積してく点である。
【０１３６】
また、タグ情報検証処理上の相違点は、セキュリティサーバ装置１６３０が確かに順序履歴通りにデータを受信したことの証拠として署名とタグ情報の対Ｗｍ，ｉ＝（Ｓｉｇｓｓ（Ｕｍ，ｉ，ｉｄｍ，ｔ），Ｕｍ，ｉ，ｉｄｍ，ｔ）を生成し、これを第三者に対して出力する点である。
【０１３７】
＜本形態の特徴＞
以上の構成により、第三者は、確かにセキュリティサーバ装置が確かに履歴通りに読取装置からデータを受信し、その検証を行っていることを確認できる。そして、検証部３４での検証はセキュリティサーバ装置でのタグ情報の受信順序を根拠にするものであるから、この第三者は、確かにタグ情報が実際に物理的に取り扱われて生成された情報であることを確認できる。なお、受信時刻ｔを署名とタグ情報の対Ｗｍ，ｉに含めない構成としてもよく、その他の情報を署名とタグ情報の対Ｗｍ，ｉに含めてもよい。
【０１３８】
〔第１４の実施の形態〕
本形態は第１３の実施の形態を第５の実施の形態に適用した例である。これにより、セキュリティサーバ装置からこの署名付き検証結果を受けた第三者は、セキュリティサーバ装置を信用することを前提に、確かに読取装置がセキュリティサーバ装置から配信された乱数Ｒｍ，ｊを取り扱い、セキュリティサーバ装置が履歴通りに読取装置からデータを受信していることを確認できる。その結果、第三者は、確かにタグ情報が実際に物理的に取り扱われて生成された情報であることを確認できる。
【０１３９】
＜概要＞
図４３は、本形態の概要を説明するための概念図である。
この図に示すように、本形態の読取装置はタグ装置から送信されたタグ情報Ｅｍ、ｊに対して読取装置の
署名Ｓｉｇ（Ｅｍ、ｊ，Ｒｍ、ｊ）
を生成し、その対象となるタグ装置を取り扱った証拠として
署名とタグ情報の対Ｕｍ，ｊ＝（Ｓｉｇ（Ｅｍ、ｊ，Ｒｍ、ｊ），Ｅｍ、ｊ，Ｒｍ、ｊ）
をセキュリティサーバ装置に送信する。
【０１４０】
セキュリティサーバ装置は、読取装置から送信されたＵｍ，ｊ＝（Ｓｉｇ（Ｅｍ、ｊ，Ｒｍ、ｊ），Ｅｍ、ｊ，Ｒｍ、ｊ）と識別情報ｉｄｍとタグ情報Ｅｍ、ｊの受信時刻ｔに対し、
署名とタグ情報の対Ｗｍ，ｊ＝（Ｓｉｇｓｓ（（Ｓｉｇ（Ｅｍ，ｊ，Ｒｍ，ｊ），Ｅｍ，ｊ，Ｒｍ，ｊ），ｉｄｍ，ｔ），（Ｓｉｇ（Ｅｍ，ｊ，Ｒｍ，ｊ），Ｅｍ，ｊ，Ｒｍ，ｊ），ｉｄｍ，ｔ）
を生成する。
そして、セキュリティサーバ装置は、確かに読取装置がセキュリティサーバ装置から配信された乱数Ｒｍ，ｊを取り扱い、セキュリティサーバ装置が履歴通りに読取装置からデータを受信したことの証拠としてＷｍ，ｊをタグ情報の正当性を確認する第三者に出力する。
【０１４１】
＜詳細＞
図４４は、本形態のタグ情報検証システム１８００の構成を例示したブロック図である。本形態と第５の実施の形態のタグ情報検証システム５００との構成上の相違点は、読取装置２０が、署名部１８２４が付加された読取装置１８２０に置き換わる点、セキュリティサーバ装置５３０が、署名部１８３６及び時計１８３７が付加されたセキュリティサーバ装置１８３０に置き換わる点である。
【０１４２】
また、タグ情報提出処理上の相違点は、読取装置１８２０がセキュリティサーバ装置１８３０から配信された乱数Ｒｍ、ｊとタグ装置１０から読取ったタグ情報Ｅｍ，ｊとに対し、署名とタグ情報の対Ｕｍ，ｊ＝（Ｓｉｇ（Ｅｍ、ｊ，Ｒｍ、ｊ），Ｅｍ、ｊ，Ｒｍ、ｊ）を生成し、タグ情報Ｅｍ，ｉの代わりにこの署名Ｕｍ，ｊをセキュリティサーバ装置１８３０に送信する点、セキュリティサーバ装置１８３０の履歴記憶部３６においてタグ情報Ｅｍ，ｊを格納する代わりに、通信部３２における署名Ｕｍ，ｊの受信時刻ｔを時計１８３７から出力し、この署名Ｕｍ，ｊを受信時刻ｔに関連付けて蓄積してく点である。
【０１４３】
また、タグ情報検証処理上の相違点は、署名部１８３６において、セキュリティサーバ装置１８３０が確かに順序履歴通りにデータを受信したことの証拠として署名とタグ情報の対Ｗｍ，ｉ＝（Ｓｉｇｓｓ（Ｕｍ，ｊ，ｉｄｍ，ｔ），Ｕｍ，ｊ，ｉｄｍ，ｔ）を生成し、これを第三者に対して出力する点である。
【０１４４】
＜本形態の特徴＞
以上の構成により、第三者は、確かにタグ情報を読み出した読取装置が乱数Ｒｍ，ｊを取扱い、セキュリティサーバ装置が履歴通りに読取装置からデータを受信したことを確認できる。そして、検証部３４での検証はセキュリティサーバ装置でのタグ情報の受信順序を根拠にするものであるから、この第三者は、確かにタグ情報が実際に物理的に取り扱われて生成された情報であることを確認できる。なお、受信時刻ｔを署名とタグ情報の対Ｗｍ，ｉに含めない構成としてもよく、その他の情報を署名とタグ情報の対Ｗｍ，ｉに含めてもよい。
【０１４５】
なお、第１３の実施の形態をその他の実施の形態に適用することとしてもよい。例えば、第１１，１２の実施の形態のように、セキュリティサーバ装置と検証サーバ装置とで秘匿情報を分散管理する形態に第１３の実施の形態の署名を適用してもよい。この場合、セキュリティサーバ装置は読取装置から署名とタグ情報の対Ｕｍ，ｊ＝（Ｓｉｇ（Ｅｍ、ｊ，Ｒｍ、ｊ），Ｅｍ、ｊ，Ｒｍ、ｊ）を受け取り、検証サーバ装置に検証を依頼し、その検証結果が正当であった場合に署名とタグ情報の対Ｗｍ，ｉ＝（Ｓｉｇｓｓ（Ｕｍ，ｉ，ｉｄｍ，ｔ），Ｕｍ，ｉ，ｉｄｍ，ｔ）を生成し、第三者に対して出力する。
【０１４６】
なお、本発明は上述の実施の形態に限定されるものではない。例えば、上述の各実施の形態では「逆元の算出が困難な関数」としてハッシュ関数を用いることとしたが、少なくともその一部にその他の一方向性関数を用いることとしてもよい。さらにはＡＥＳやＤＥＳ等の共通鍵暗号関数と秘密鍵とを、タグ装置とセキュリティサーバ装置或いは検証サーバ装置と共有し、これを「逆元の算出が困難な関数」として利用してもよい。
また、タグ装置とセキュリティサーバ装置や検証サーバ装置とで整合が取れるのであれば、上述したハッシュ演算部の入力データに他のデータ（例えば、秘匿化識別情報ｓｉｄｍやヘッダ情報等）を付加する構成としてもよい。同様に、タグ情報に他のデータを付加する構成としてもよい。
【０１４７】
さらに、上述の各実施の形態では、複数箇所に設置された読取装置を巡回することによって順次タグ情報が読取られる構成としたが、逆に各読取装置が各タグ装置を巡回し、順次タグ情報を読取る構成としてもよい。また、１箇所に設置された読取装置によってタグ情報が複数回読取られることとしてもよい。
その他、各実施の形態の思想を組み合わせる等、本発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。また、上述の各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。
【０１４８】
また、上述の構成をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。
この処理内容を記述したプログラムは、コンピュータで読取り可能な記録媒体に記録しておくことができる。コンピュータで読取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよいが、具体的には、例えば、磁気記録装置として、ハードディスク装置、フレキシブルディスク、磁気テープ等を、光ディスクとして、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ（Random Access Memory）、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）等を、光磁気記録媒体として、ＭＯ（Magneto-Optical disc）等を、半導体メモリとしてＥＥＰ−ＲＯＭ（Electronically Erasable and Programmable-Read Only Memory）等を用いることができる。
【０１４９】
また、このプログラムの流通は、例えば、そのプログラムを記録したＤＶＤ、ＣＤ−ＲＯＭ等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
【０１５０】
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記録媒体に格納されたプログラムを読取り、読取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるＡＳＰ（Application Service Provider）型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの（コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等）を含むものとする。
【産業上の利用可能性】
【０１５１】
本発明により、例えばＲＦＩＤ等の自動認識技術を用いた無線タグシステムにおいて、実際にタグ情報を取り扱っていないにも関わらず偽造したタグ情報を提出し、そのタグ情報に係る無線タグ装置を取り扱ったかのように偽る不正を検出できる。
【図面の簡単な説明】
【０１５２】
【図１】第１の実施の形態におけるタグ情報検証方法の概要を説明するための概念図。
【図２】第１の実施の形態におけるタグ情報検証システムの構成を例示したブロック図。
【図３】第１の実施の形態におけるタグ情報提出処理を説明するためのフローチャート。
【図４】第１の実施の形態におけるタグ情報検証処理を説明するためのフローチャート。
【図５】第２の実施の形態におけるタグ情報検証システムの構成を例示したブロック図。
【図６】第２の実施の形態におけるタグ情報提出処理を説明するためのフローチャート。
【図７】第２の実施の形態におけるタグ情報検証処理を説明するためのフローチャート。
【図８】第３の実施の形態におけるタグ情報検証システムの構成を例示したブロック図。
【図９】第４の実施の形態におけるタグ情報検証システムの構成を例示したブロック図。
【図１０】第５の実施の形態におけるタグ情報検証方法の概要を説明するための概念図。
【図１１】第５の実施の形態におけるタグ情報検証システムの構成を例示したブロック図。
【図１２】第５の実施の形態におけるタグ情報提出処理を説明するためのフローチャート。
【図１３】第５の実施の形態におけるタグ情報検証処理を説明するためのフローチャート。
【図１４】第６の実施の形態におけるタグ情報検証システムの構成を例示したブロック図。
【図１５】第６の実施の形態におけるタグ情報提出処理を説明するためのフローチャート。
【図１６】第６の実施の形態におけるタグ情報検証処理を説明するためのフローチャート。
【図１７】第７の実施の形態におけるタグ情報検証システムの構成を例示したブロック図。
【図１８】第７の実施の形態におけるタグ情報提出処理を説明するためのフローチャート。
【図１９】第７の実施の形態におけるタグ情報検証処理を説明するためのフローチャート。
【図２０】第８の実施の形態におけるタグ情報検証方法の概要を説明するための概念図。
【図２１】第８の実施の形態におけるタグ情報検証システムの全体構成を例示した概念図。
【図２２】第８の実施の形態におけるタグ情報検証システムの構成を例示したブロック図。
【図２３】第８の実施の形態におけるタグ情報検証システムの構成を例示したブロック図。
【図２４】第８の実施の形態における乱数配送処理を説明するためのフローチャート。
【図２５】第８の実施の形態におけるタグ情報検証処理を説明するためのフローチャート。
【図２６】第９の実施の形態におけるタグ情報検証システムの構成を例示したブロック図。
【図２７】第９の実施の形態におけるタグ情報検証システムの構成を例示したブロック図。
【図２８】第９の実施の形態におけるタグ情報検証処理を説明するためのフローチャート。
【図２９】第１０の実施の形態におけるタグ情報検証システムの構成を例示したブロック図。
【図３０】第１０の実施の形態におけるタグ情報検証システムの構成を例示したブロック図。
【図３１】第１０の実施の形態におけるタグ情報検証処理を説明するためのフローチャート。
【図３２】第１１の実施の形態におけるタグ情報検証方法の概要を説明するための概念図。
【図３３】第１１の実施の形態におけるタグ情報検証システムの構成を例示したブロック図。
【図３４】第１１の実施の形態におけるタグ情報提出処理を説明するためのフローチャート。
【図３５】第１１の実施の形態におけるタグ情報検証処理を説明するためのフローチャート。
【図３６】第１１の実施の形態におけるタグ情報検証処理を説明するためのフローチャート。
【図３７】第１２の実施の形態におけるタグ情報検証システムの構成を例示したブロック図。
【図３８】第１２の実施の形態におけるタグ情報提出処理を説明するためのフローチャート。
【図３９】第１２の実施の形態におけるタグ情報検証処理を説明するためのフローチャート。
【図４０】第１２の実施の形態におけるタグ情報検証処理を説明するためのフローチャート。
【図４１】第１３の実施の形態におけるタグ情報検証方法の概要を説明するための概念図。
【図４２】第１３の実施の形態におけるタグ情報検証システムの構成を例示したブロック図。
【図４３】第１４の実施の形態におけるタグ情報検証方法の概要を説明するための概念図。
【図４４】第１４の実施の形態におけるタグ情報検証システムの構成を例示したブロック図。
【符号の説明】
【０１５３】
１，２００，３００，４００，５００，６００，７００，８００，１２００，１４００，１５００，１６００，１８００    タグ情報検証システム
１０，２１０，３１０，４１０，５１０，６１０，７１０，８１０，１２００−ｑ，ｒ，１４１０，１５１０  タグ装置
２０，８２０，１６２０，１８２０  読取装置
３０，２３０，３３０，４３０，５３０，６３０，７３０，８３０，１２３０，１４３０，１５３０，１６３０，１８３０  セキュリティサーバ装置
１４５０，１５５０  検証サーバ装置
【図１】
2006203743.tif 000003
【図２】
2006203743.tif 000004
【図３】
2006203743.tif 000005
【図４】
2006203743.tif 000006
【図５】
2006203743.tif 000007
【図６】
2006203743.tif 000008
【図７】
2006203743.tif 000009
【図８】
2006203743.tif 000010
【図９】
2006203743.tif 000011
【図１０】
2006203743.tif 000012
【図１１】
2006203743.tif 000013
【図１２】
2006203743.tif 000014
【図１３】
2006203743.tif 000015
【図１４】
2006203743.tif 000016
【図１５】
2006203743.tif 000017
【図１６】
2006203743.tif 000018
【図１７】
2006203743.tif 000019
【図１８】
2006203743.tif 000020
【図１９】
2006203743.tif 000021
【図２０】
2006203743.tif 000022
【図２１】
2006203743.tif 000023
【図２２】
2006203743.tif 000024
【図２３】
2006203743.tif 000025
【図２４】
2006203743.tif 000026
【図２５】
2006203743.tif 000027
【図２６】
2006203743.tif 000028
【図２７】
2006203743.tif 000029
【図２８】
2006203743.tif 000030
【図２９】
2006203743.tif 000031
【図３０】
2006203743.tif 000032
【図３１】
2006203743.tif 000033
【図３２】
2006203743.tif 000034
【図３３】
2006203743.tif 000035
【図３４】
2006203743.tif 000036
【図３５】
2006203743.tif 000037
【図３６】
2006203743.tif 000038
【図３７】
2006203743.tif 000039
【図３８】
2006203743.tif 000040
【図３９】
2006203743.tif 000041
【図４０】
2006203743.tif 000042
【図４１】
2006203743.tif 000043
【図４２】
2006203743.tif 000044
【図４３】
2006203743.tif 000045
【図４４】
2006203743.tif 000046