(57)【要約】第１の発明では、リーダー装置からの呼び出しに対し、タグ装置は、第２の演算部において秘密値メモリから秘密値を読み出し、これに定義域の元とその写像との関係を撹乱させる第２の関数Ｆ２を作用させたタグ出力情報を生成する。このタグ出力情報は出力部に送られ、そこからバックエンド装置に対して出力される。その後、第１の演算部において、秘密値メモリから秘密値の少なくとも一部の要素を読み出し、これに逆像を求めることが困難な第１の関数Ｆ１を作用させ、その演算結果で秘密値メモリ内の秘密値を上書き更新する。第２の発明では、タグ装置の外部に設けられた更新装置において、タグ装置に格納されている秘匿化ＩＤ情報を、所定の契機で、それとの関連性の把握が困難な新たな秘匿化ＩＤ情報に更新する。
2005031579.tif 000002
【特許請求の範囲】
【請求項１】
タグ装置から出力される情報から利用者のプライバシー情報が取得されることを防止するタグプライバシー保護方法であって、
上記各タグ装置の秘密値メモリに、それぞれのタグＩＤ情報に対応する秘密値が格納されており、
上記タグ装置が、
出力部において、上記秘密値メモリの上記秘密値に対応するタグ出力情報を出力し、
第１の演算部において、上記秘密値メモリから上記秘密値の少なくとも一部の要素を読み出し、これに、逆像を求めることが困難な第１の関数Ｆ１を作用させ、その演算結果で上記秘密値メモリ内の上記秘密値を上書き更新する、
ことを特徴とするタグプライバシー保護方法。
【請求項２】
請求項１記載のタグプライバシー保護方法であって、
上記タグ出力情報は、
上記タグ装置の第２の演算部が、上記秘密値メモリから上記秘密値を読み出し、これに定義域の元とその写像との関係を撹乱させる第２の関数Ｆ２を作用させた演算結果である、
ことを特徴とするタグプライバシー保護方法。
【請求項３】
請求項２記載のタグプライバシー保護方法であって、
上記第１の関数Ｆ１及び上記第２の関数Ｆ２の少なくとも一方は、
ハッシュ関数である、
ことを特徴とするタグプライバシー保護方法。
【請求項４】
請求項２記載のタグプライバシー保護方法であって、
上記第１の関数Ｆ１は、
ｒ，ｓを自然数とし、ｈａｓｈを｛０，１｝＊→｛０，１｝ｒのハッシュ関数とし、ｐ∈｛０，１｝ｓとした場合における、ハッシュ関数Ｈ（ｘ）＝ｈａｓｈ（ｐ｜ｘ）であり、
上記第２の関数Ｆ２は、
ｑ∈｛０，１｝ｓとし、ｐ≠ｑとした場合における、ハッシュ関数Ｇ（ｘ）＝ｈａｓｈ（ｑ｜ｘ）である、
ことを特徴とするタグプライバシー保護方法。
【請求項５】
請求項２記載のタグプライバシー保護方法であって、
上記第１の関数Ｆ１は、
ｒ，ｓを自然数とし、ｈａｓｈを｛０，１｝＊→｛０，１｝ｒのハッシュ関数とし、ｐ∈｛０，１｝ｓとし、ｘにｐをパディングしたものをｐａｄ（ｘ，ｐ）とした場合における、ハッシュ関数Ｈ（ｘ）＝ｈａｓｈ（ｐａｄ（ｘ，ｐ））であり、
上記第２の関数Ｆ２は、
ｑ∈｛０，１｝ｓとし、ｐ≠ｑとし、ｘにｑをパディングしたものをｐａｄ（ｘ，ｑ）とした場合における、ハッシュ関数Ｇ（ｘ）＝ｈａｓｈ（ｐａｄ（ｘ，ｑ））である、
ことを特徴とするタグプライバシー保護方法。
【請求項６】
請求項２記載のタグプライバシー保護方法であって、
上記第１の関数Ｆ１は、
ｒを自然数とした場合における、｛０，１｝＊→｛０，１｝ｒのハッシュ関数Ｈ（ｘ）であり、
上記第２の関数Ｆ２は、
ｒｘをｘのビット反転とした場合における、
ハッシュ関数Ｇ（ｘ）＝Ｆ（ｒｘ）である、
ことを特徴とするタグプライバシー保護方法。
【請求項７】
請求項２記載のタグプライバシー保護方法であって、
上記第１の関数Ｆ１及び上記第２の関数Ｆ２の少なくとも一方は、
共通鍵暗号関数である、
ことを特徴とするタグプライバシー保護方法。
【請求項８】
請求項２記載のタグプライバシー保護方法であって、
上記第１の関数Ｆ１及び上記第２の関数Ｆ２は、
異なる共通鍵を適用した同じ共通鍵暗号関数である、
ことを特徴とするタグプライバシー保護方法。
【請求項９】
タグ装置から出力される情報から利用者のプライバシー情報が取得されることを防止するタグプライバシー保護方法であって、
上記各タグ装置ｋ（ｋ∈｛１，．．．，ｍ｝，ｍはタグ装置の総数）の秘密値メモリに、それぞれのタグＩＤ情報ｉｄｋに対応する第１の秘密値ｓｋ，ｉが格納されており、
上記バックエンド装置のデータベースメモリに、各タグＩＤ情報ｉｄｎ（ｎ∈｛１，．．．，ｍ｝）とそれらに対応する第２の秘密値ｓｎ，１とが対応付けられて格納されており、
上記タグ装置が、
第２の演算部において、上記秘密値メモリから上記第１の秘密値ｓｋ，ｉを読み出し、これに定義域の元とその写像との関係を撹乱させる第２の関数Ｆ２を作用させて、タグ出力情報Ｆ２（ｓｋ，ｉ）を生成し、
出力部において、上記タグ出力情報Ｆ２（ｓｋ，ｉ）を出力し、
第１の演算部において、上記秘密値メモリから上記第１の秘密値ｓｋ，ｉを読み出し、これに、逆像を求めることが困難な第１の関数Ｆ１を作用させ、その演算結果Ｆ１（ｓｋ，ｉ）を新たな第１の秘密値ｓｋ，ｉ＋１として上記秘密値メモリに上書き保存し、
上記バックエンド装置が、
入力部において、上記タグ出力情報Ｆ２（ｓｋ，ｉ）の入力を受け付け、
第３の演算部において、上記データベースメモリから上記第２の秘密値ｓｎ，１を読み出し、読み出した各第２の秘密値ｓｎ，１に上記第１の関数Ｆ１をｊ回（ｊ∈｛０，．．．，ｊｍａｘ｝）作用させた後、さらに上記第２の関数Ｆ２を作用させ、
比較部において、上記タグ出力情報Ｆ２（ｓｋ，ｉ）と上記第３の演算部における演算結果Ｆ２（Ｆ１ｊ（ｓｎ，１））とを比較し、
上記タグ出力情報Ｆ２（ｓｋ，ｉ）−と上記演算結果Ｆ２（Ｆ１ｊ（ｓｎ，１））とが一致しなければ、ｎ及びｊの少なくとも一方の値を変化させて、上記第３の演算部及び上記比較部における処理を再び行い、
上記タグ出力情報Ｆ２（ｓｋ，ｉ）−と上記演算結果Ｆ２（Ｆ１ｊ（ｓｎ，１））とが一致すれば、読出し部において、一致した上記演算結果Ｆ２（Ｆ１ｊ（ｓｎ，１））に対応する上記第２の秘密値ｓｎ，１に対応付けられている上記タグＩＤ情報ｉｄｎを、上記データベースメモリから抽出する、
ことを特徴とするタグプライバシー保護方法。
【請求項１０】
タグ装置から出力される情報から利用者のプライバシー情報が取得されることを防止するタグプライバシー保護方法であって、
上記各タグ装置ｋ（ｋ∈｛１，．．．，ｍ｝，ｍはタグ装置の総数）の秘密値メモリに、それぞれのタグＩＤ情報ｉｄｋに対応する第１の秘密値ｓｋ，ｉ及び第１の固有値ｗｋが格納されており、
上記バックエンド装置のデータベースメモリに、各タグＩＤ情報ｉｄｎ（ｎ∈｛１，．．．，ｍ｝）とそれらに対応する第２の秘密値ｓｎ，１及び第２の固有値ｗｎとが対応付けられて格納されており、
上記タグ装置が、
第２の演算部において、上記秘密値メモリから上記第１の秘密値ｓｋ，ｉを読み出し、これに定義域の元とその写像との関係を撹乱させる第２の関数Ｆ２を作用させて、タグ出力情報Ｆ２（ｓｋ，ｉ）を生成し、
出力部において、上記タグ出力情報Ｆ２（ｓｋ，ｉ）を出力し、
第１の演算部において、上記秘密値メモリから上記第１の秘密値ｓｋ，ｉ及び上記第１の固有値ｗｋを読み出し、これらのビット結合値に、逆像を求めることが困難な第１の関数Ｆ１を作用させ、その演算結果Ｆ１（ｓｋ，ｉ｜ｗｋ）を新たな第１の秘密値ｓｋ，ｉ＋１として上記秘密値メモリに上書き保存し、
上記バックエンド装置が、
入力部において、上記タグ出力情報Ｆ２（ｓｋ，ｉ）の入力を受け付け、
第３の演算部において、上記データベースメモリから上記第２の秘密値ｓｎ，１及び上記第２の固有値ｗｎを読み出し、Ｉｊ（ｎ）＝ｓｎ，１（ｊ＝０），Ｉｊ（ｎ）＝Ｆ１（Ｉｊ−１（ｎ）｜ｉｄｎ）（ｊ≧１）とした場合におけるＩｊ（ｎ）に、上記第２の関数Ｆ２を作用させたＦ２（Ｉｊ（ｎ））を算出し、
比較部において、上記タグ出力情報Ｆ２（ｓｋ，ｉ）と上記第３の演算部における演算結果Ｆ２（Ｉｊ（ｎ））とを比較し、
上記タグ出力情報Ｆ２（ｓｋ，ｉ）と上記演算結果Ｆ２（Ｉｊ（ｎ））とが一致しなければ、ｎ及びｊの少なくとも一方の値を変化させて、上記第３の演算部及び上記比較部における処理を再び行い、
上記タグ出力情報Ｆ２（ｓｋ，ｉ）と上記演算結果Ｆ２（Ｉｊ（ｎ））とが一致すれば、読出し部において、一致した上記演算結果Ｆ２（Ｉｊ（ｎ））に対応する上記第２の秘密値ｓｎ，１及び第２の固有値ｗｎに対応付けられている上記タグＩＤ情報ｉｄｎを、上記データベースメモリから抽出する、
ことを特徴とするタグプライバシー保護方法。
【請求項１１】
タグ装置から出力される情報から利用者のプライバシー情報が取得されることを防止するタグプライバシー保護方法であって、
上記各タグ装置ｋ（ｋ∈｛１，．．．，ｍ｝，ｍはタグ装置の総数）の秘密値メモリに、それぞれのタグＩＤ情報ｉｄｋに対応する第１の秘密値ｓｋ，ｉ及び第１の固有値ｗｋが格納されており、
上記バックエンド装置のデータベースメモリに、各タグＩＤ情報ｉｄｎ（ｎ∈｛１，．．．，ｍ｝）とそれらに対応する第２の秘密値ｓｎ，１及び第２の固有値ｗｎとが対応付けられて格納されており、
上記タグ装置が、
第２の演算部において、上記秘密値メモリから上記第１の秘密値ｓｋ，ｉ及び第１の固有値ｗｋを読み出し、これらのビット結合値に、定義域の元とその写像との関係を撹乱させる第２の関数Ｆ２を作用させて、タグ出力情報Ｆ２（ｓｋ，ｉ｜ｗｋ）を生成し、
出力部において、上記タグ出力情報Ｆ２（ｓｋ，ｉ｜ｗｋ）を出力し、
第１の演算部において、上記秘密値メモリから上記第１の秘密値ｓｋ，ｉを読み出し、読み出した第１の秘密値ｓｋ，ｉに、逆像を求めることが困難な第１の関数Ｆ１を作用させ、その演算結果Ｆ１（ｓｋ，ｉ）を新たな上記第１の秘密値ｓｋ，ｉ＋１として上記秘密値メモリに上書き保存し、
上記バックエンド装置が、
入力部において、上記タグ出力情報Ｆ２（ｓｋ，ｉ｜ｗｋ）の入力を受け付け、
第３の演算部において、上記データベースメモリから上記第２の秘密値ｓｎ，１及び上記第２の固有値ｗｎを読み出し、当該第２の秘密値ｓｎ，１に上記第１の関数Ｆ１をｊ回（ｊ∈｛０，．．．，ｊｍａｘ｝）作用させ、その結果Ｆ１ｊ（ｓｎ，ｉ）と当該第２の固有値ｗｎとのビット結合値Ｆ１ｊ（ｓｎ，ｉ）｜ｗｎを求め、そのビット結合値Ｆ１ｊ（ｓｎ，ｉ）｜ｗｎに上記第２の関数Ｆ２を作用させ、
比較部において、上記タグ出力情報Ｆ２（ｓｋ，ｉ｜ｗｋ）と上記第３の演算部における演算結果Ｆ２（Ｆ１ｊ（ｓｎ，ｉ）｜ｗｎ）とを比較し、
上記タグ出力情報Ｆ２（ｓｋ，ｉ｜ｗｋ）と上記演算結果Ｆ２（Ｆ１ｊ（ｓｎ，ｉ）｜ｗｎ）とが一致しなければ、ｎ及びｊの少なくとも一方の値を変化させて、上記第３の演算部及び上記比較部における処理を再び行い、
上記タグ出力情報Ｆ２（ｓｋ，ｉ｜ｗｋ）と上記演算結果Ｆ２（Ｆ１ｊ（ｓｎ，ｉ）｜ｗｎ）とが一致すれば、読出し部において、一致した上記演算結果Ｆ２（Ｆ１ｊ（ｓｎ，ｉ）｜ｗｎ）に対応する上記第２の秘密値ｓｎ，１及び第２の固有値ｗｎに対応付けられている上記タグＩＤ情報ｉｄｎを、上記データベースメモリから抽出する、
ことを特徴とするタグプライバシー保護方法。
【請求項１２】
タグ装置から出力される情報から利用者のプライバシー情報が取得されることを防止するタグプライバシー保護方法であって、
上記各タグ装置ｋ（ｋ∈｛１，．．．，ｍ｝，ｍはタグ装置の総数）の秘密値メモリに、各タグＩＤ情報ｉｄｋにそれぞれ対応する第１の固有値ｗｋと、複数のタグＩＤ情報に対して同一の初期値ｓ１をとる第１の秘密値ｓｉとが格納されており、
上記バックエンド装置のデータベースメモリに、各タグＩＤ情報ｉｄｎ（ｎ∈｛１，．．．，ｍ｝）及びそれらに対応する第２の固有値ｗｎが対応付けられて格納されており、
上記バックエンド装置の演算値メモリに、複数のタグＩＤ情報で共用される第２の秘密値ｓ１に第１の関数Ｆ１をｊ回（ｊ∈｛０，．．．，ｊｍａｘ｝）作用させた各第１の演算結果ｓｊ＋１が格納されており、
上記タグ装置が、
第２の演算部において、上記秘密値メモリから上記第１の秘密値ｓｉ及び第１の固有値ｗｋを読み出し、これらのビット結合値に、定義域の元とその写像との関係を撹乱させる第２の関数Ｆ２を作用させて、タグ出力情報Ｆ２（ｓｉ｜ｗｋ）を生成し、
出力部において、上記タグ出力情報Ｆ２（ｓｉ｜ｗｋ）を出力し、
第１の演算部において、上記秘密値メモリから上記第１の秘密値ｓｉを読み出し、読み出した第１の秘密値ｓｉに、逆像を求めることが困難な第１の関数Ｆ１を作用させ、その演算結果Ｆ１（ｓｉ）を新たな上記第１の秘密値ｓｉ＋１として上記秘密値メモリに上書き保存し、
上記バックエンド装置が、
入力部において、上記タグ出力情報Ｆ２（ｓｉ｜ｗｋ）の入力を受け付け、
第３の演算部において、上記データベースメモリから上記第１の演算結果ｓｊ＋１と上記第２の固有値ｗｎとを読み出し、これらのビット結合値ｓｊ＋１｜ｗｎを求め、それに上記第２の関数Ｆ２を作用させ、
比較部において、上記タグ出力情報Ｆ２（ｓｉ｜ｗｋ）と上記第３の演算部における演算結果Ｆ２（ｓｊ＋１｜ｗｎ）とを比較し、
上記タグ出力情報Ｆ２（ｓｉ｜ｗｋ）と上記演算結果Ｆ２（ｓｊ＋１｜ｗｎ）とが一致しなければ、ｎ及びｊの少なくとも一方の値を変化させて、上記第３の演算部及び上記比較部における処理を再び行い、
上記タグ出力情報Ｆ２（ｓｉ｜ｗｋ）と上記演算結果Ｆ２（ｓｊ＋１｜ｗｎ）とが一致すれば、読出し部において、一致した上記演算結果Ｆ２（ｓｊ＋１｜ｗｎ）に対応する上記第２の固有値ｗｎに対応付けられている上記タグＩＤ情報ｉｄｎを、上記データベースメモリから抽出する、
ことを特徴とするタグプライバシー保護方法。
【請求項１３】
タグ装置から出力される情報から利用者のプライバシー情報が取得されることを防止するタグプライバシー保護方法であって、
上記各タグ装置ｋ（ｋ∈｛１，．．．，ｍ｝，ｍはタグ装置の総数）の秘密値メモリに、ｄ個（ｄ≧２）の要素ｅｕ，ｖｕ（ｕ∈｛１，…，ｄ｝）からなる組合せであって各タグＩＤ情報ｉｄｋに対応するものが格納されており、
上記バックエンド装置のデータベースメモリに、ｄ種類（ｄ≧２）のサブグループαｕ（ｕ∈｛１，…，ｄ｝）から１つずつ選択されたｄ個の初期要素ｆｕ，０の組合せと、各タグ装置ｎ（ｎ∈｛１，．．．，ｍ｝）のタグＩＤ情報ｉｄｎとが、対応付けられて格納されており、
上記タグ装置が、
第２の演算部において、上記秘密値メモリから上記ｄ個の要素ｅｕ，ｖｕを読み出し、これらのビット結合値である秘密値ｓｋ，ｉに、定義域の元とその写像との関係を撹乱させる第２の関数Ｆ２を作用させて、タグ出力情報ａｋ，ｉ＝Ｆ２（ｓｋ，ｉ）を生成し、
出力部において、上記タグ出力情報ａｋ，ｉを出力し、
第１の演算部において、上記秘密値メモリから少なくとも一部の要素ｅｕ’，ｖｕ’（ｕ’∈｛１，…，ｄ｝）を抽出し、抽出した要素ｅｕ’，ｖｕ’に、逆像を求めることが困難な第１の関数Ｆ１を作用させ、その演算結果Ｆ１（ｅｕ’，ｖｕ’）を新たな要素ｅｕ’，ｖｕ’＋１として上記秘密値メモリに上書き保存し、
上記バックエンド装置が、
入力部において、上記タグ出力情報ａｋ，ｉの入力を受け付け、
第３の演算部において、上記タグＩＤ情報ｉｄｎに対応するｄ個の初期要素ｆｕ，０（ｕ∈｛１，…，ｄ｝）に、それぞれ上記第１の関数Ｆ１をｗｕ回（ｗｕ∈｛１，２，…，ｍａｘ｝）作用させ、それらの値Ｆ１ｗｕ（ｆｕ，０）のビット結合値に上記第２の関数Ｆ２を作用させた演算値ｃを求め、
比較部において、上記タグ出力情報ａｋ，ｉと上記演算値ｃとを比較し、
上記タグ出力情報ａｋ，ｉと上記演算値ｃとが一致しなければ、ｎ及びｗｕの少なくとも一部の値を変化させて、上記第３の演算部及び上記比較部における処理を再び行い、
上記タグ出力情報ａｋ，ｉと上記演算値ｃとが一致すれば、読出し部において、当該演算値ｃに対応する上記ｄ個の初期要素ｆｕ，０の組合せに対応付けられているタグＩＤ情報ｉｄｎを、上記データベースメモリから抽出する、
ことを特徴とするタグプライバシー保護方法。
【請求項１４】
タグ装置から出力される情報から利用者のプライバシー情報が取得されることを防止するタグプライバシー保護方法であって、
上記各タグ装置ｋ（ｋ∈｛１，．．．，ｍ｝，ｍはタグ装置の総数）の秘密値メモリに、ｄ個（ｄ≧２）の要素ｅｕ，ｖｕ（ｕ∈｛１，…，ｄ｝）からなる組合せであって各タグＩＤ情報ｉｄｋに対応するもの、及び各タグＩＤ情報ｉｄｋに固有な固有値γｋが格納されており、
上記バックエンド装置のデータベースメモリに、ｄ種類（ｄ≧２）のサブグループαｕ（ｕ∈｛１，…，ｄ｝）から１つずつ選択されたｄ個の初期要素ｆｕ，０の組合せと、各タグＩＤ情報ｉｄｎ（ｎ∈｛１，．．．，ｍ｝）に固有な固有値γｎと、各タグＩＤ情報ｉｄｎとが、対応付けられて格納されており、
上記タグ装置が、
第２の演算部において、上記秘密値メモリから上記ｄ個の要素ｅｕ，ｖｕ及び上記固有値γｋを読み出し、これらのビット結合値である秘密値ｓｋ，ｉに、定義域の元とその写像との関係を撹乱させる第２の関数Ｆ２を作用させて、タグ出力情報ａｋ，ｉ＝Ｆ２（ｓｋ，ｉ）を生成し、
出力部において、上記タグ出力情報ａｋ，ｉを出力し、
第１の演算部において、上記秘密値メモリから少なくとも一部の要素ｅｕ’，ｖｕ’（ｕ’∈｛１，…，ｄ｝）を抽出し、抽出した要素ｅｕ’，ｖｕ’に、逆像を求めることが困難な第１の関数Ｆ１を作用させ、その演算結果Ｆ１（ｅｕ’，ｖｕ’）を新たな要素ｅｕ’，ｖｕ’＋１として上記秘密値メモリに上書き保存し、
上記バックエンド装置が、
入力部において、上記タグ出力情報ａｋ，ｉの入力を受け付け、
第３の演算部において、上記タグＩＤ情報ｉｄｎに対応する上記ｄ個の初期要素ｆｕ，０（ｕ∈｛１，…，ｄ｝）にそれぞれ上記第１の関数Ｆ１をｗｕ回（ｗｕ∈｛１，２，…，ｍａｘ｝）作用させ、それらの値Ｆ１ｗｕ（ｆｕ，０）と上記固有値γｎとのビット結合値に上記第２の関数Ｆ２を作用させた演算値ｃを求め、
比較部において、上記タグ出力情報ａｋ，ｉと上記演算値ｃとを比較し、
上記タグ出力情報ａｋ，ｉと上記演算値ｃとが一致しなければ、ｎ及びｗｕの少なくとも一部の値を変化させて、上記第３の演算部及び上記比較部における処理を再び行い、
上記タグ出力情報ａｋ，ｉと上記演算値ｃとが一致すれば、読出し部において、当該演算値ｃに対応する複数の初期要素ｆｕ，０の組合せに対応付けられているタグＩＤ情報ｉｄｎを、上記データベースメモリから抽出する、
ことを特徴とするタグプライバシー保護方法。
【請求項１５】
タグ装置から出力される情報から利用者のプライバシー情報が取得されることを防止するタグプライバシー保護方法であって、
上記各タグ装置ｋ（ｋ∈｛１，．．．，ｍ｝，ｍはタグ装置の総数）の秘密値メモリに、ｄ個（ｄ≧１）の要素ｅｕ，ｖｕ（ｕ∈｛１，…，ｄ｝）が格納されており、
上記各タグ装置ｋの第１の多様値メモリに、ｔ種類（ｔ≧２）の値の多様値ｚが格納されており、
上記バックエンド装置のデータベースメモリに、ｄ種類（ｄ≧１）のサブグループαｕ（ｕ∈｛１，…，ｄ｝）から１つずつ選択されたｄ個の初期要素ｆｕ，０の組合せと、各タグ装置のタグＩＤ情報ｉｄｎ（ｎ∈｛１，．．．，ｍ｝）とが対応付けられて格納されており、
上記バックエンド装置の第２の多様値メモリに、上記多様値ｚが格納されており、
上記タグ装置が、
第２の演算部において、上記秘密値メモリから上記各要素ｅｕ，ｖｕを読み出し、上記第１の多様値メモリから何れかの上記多様値ｚを読み出し、これらのビット結合値である秘密値ｓｋ，ｉに、定義域の元とその写像との関係を撹乱させる第２の関数Ｆ２を作用させたタグ出力情報ａｋ，ｉ＝Ｆ２（ｓｋ，ｉ）を生成し、
出力部において、上記タグ出力情報ａｋ，ｉを出力し、
上記出力部が上記タグ出力情報ａｋ，ｉをｔ回出力するたびに、第１の演算部において、上記秘密値メモリから少なくとも一部の要素ｅｕ’，ｖｕ’（ｕ’∈｛１，…，ｄ｝）を抽出し、抽出した要素ｅｕ’，ｖｕ’に、逆像を求めることが困難な第１の関数Ｆ１を作用させ、その演算結果Ｆ１（ｅｕ’，ｖｕ’）を新たな要素ｅｕ’，ｖｕ’＋１として上記秘密値メモリに上書き保存し、
上記バックエンド装置が、
入力部において、上記タグ出力情報ａｋ，ｉの入力を受け付け、
第３の演算部において、上記タグＩＤ情報ｉｄｎに対応する上記ｄ個の初期要素ｆｕ，０（ｕ∈｛１，…，ｄ｝）に、それぞれ上記第１の関数Ｆ１をｗｕ回（ｗｕ∈｛１，２，…，ｍａｘ｝）作用させ、それらの値Ｆ１ｗｕ（ｆｕ，０）と上記多様値ｚとのビット結合値に上記第２の関数Ｆ２を作用させた演算値ｃを求め、
比較部において、上記タグ出力情報ａｋ，ｉと上記演算値ｃとを比較し、
上記タグ出力情報ａｋ，ｉと上記演算値ｃとが一致しなければ、ｎ、ｗｕ及びｚの少なくとも一部の値を変化させて、上記第３の演算部及び上記比較部における処理を再び行い、
上記タグ出力情報ａｋ，ｉと上記演算値ｃとが一致すれば、読出し部において、当該演算値ｃに対応する上記ｄ個の初期要素ｆｕ，０の組合せに対応付けられているタグＩＤ情報ｉｄｎを、上記データベースメモリから抽出する、
ことを特徴とするタグプライバシー保護方法。
【請求項１６】
タグ装置から出力される情報から利用者のプライバシー情報が取得されることを防止するタグプライバシー保護方法であって、
上記各タグ装置ｋ（ｋ∈｛１，．．．，ｍ｝，ｍはタグ装置の総数）の秘密値メモリに、ｄ個（ｄ≧２）の要素ｅｕ，ｖｕ（ｕ∈｛１，…，ｄ｝）が格納されており、
上記各タグ装置ｋの第１の多様値メモリに、各ｕに対してｔｕ種類（ｔｕ≧２）の値をとる多様値ｚｕが格納されており、
バックエンド装置のデータベースメモリに、ｄ種類（ｄ≧１）のサブグループαｕ（ｕ∈｛１，…，ｄ｝）から１つずつ選択されたｄ個の初期要素ｆｕ，０の組合せと、各タグ装置のタグＩＤ情報ｉｄｎ（ｎ∈｛１，．．．，ｍ｝）とが対応付けられて格納されており、
上記バックエンド装置の第２の多様値メモリに、上記多様値ｚｕが格納されており、
上記タグ装置が、
第２の演算部において、上記秘密値メモリから上記各要素ｅｕ，ｖｕを読み出し、上記第１の多様値メモリから各ｕについて何れかの上記多様値ｚｕを読み出し、これらのｅｕ，ｖｕ及びｚｕのビット結合値である秘密値ｓｋ，ｉに、定義域の元とその写像との関係を撹乱させる第２の関数Ｆ２を作用させて、タグ出力情報ａｋ，ｉ＝Ｆ２（ｓｋ，ｉ）を生成し、
出力部において、上記タグ出力情報ａｋ，ｉを出力し、
上記出力部が上記タグ出力情報ａｋ，ｉを所定回数出力するたびに、第１の演算部において、上記秘密値メモリから少なくとも一部の要素ｅｕ’，ｖｕ’（ｕ’∈｛１，…，ｄ｝）を抽出し、抽出した要素ｅｕ’，ｖｕ’に、逆像を求めることが困難な第１の関数Ｆ１を作用させ、その演算結果Ｆ１（ｅｕ’，ｖｕ’）を新たな要素ｅｕ’，ｖｕ’＋１として上記秘密値メモリに上書き保存し、
上記バックエンド装置が、
入力部において、上記タグ出力情報ａｋ，ｉの入力を受け付け、
第３の演算部において、上記タグＩＤ情報ｉｄｎに対応するｄ個の初期要素ｆｕ，０（ｕ∈｛１，…，ｄ｝）に、それぞれ上記第１の関数Ｆ１をｗｕ回（ｗｕ∈｛１，２，…，ｍａｘ｝）作用させ、それらの値Ｆ１ｗｕ（ｆｕ，０）と上記多様値ｚｕとのビット結合値に上記第２の関数Ｆ２を作用させた演算値ｃ求め、
比較部において、上記タグ出力情報ａｋ，ｉと上記演算値ｃとを比較し、
上記タグ出力情報ａｋ，ｉと上記演算値ｃとが一致しなければ、ｎ、ｗｕ、ｚｕの少なくとも一部の値を変化させて、上記第３の演算部及び上記比較部における処理を再び行い、
上記タグ出力情報ａｋ，ｉと上記演算値ｃとが一致すれば、読出し部において、当該演算値ｃに対応する複数の初期要素ｆｕ，０の組合せに対応付けられているタグＩＤ情報ｉｄｎを、上記データベースメモリから抽出する、
ことを特徴とするタグプライバシー保護方法。
【請求項１７】
タグ自動認識システムに使用されるタグ装置であって、
タグＩＤ情報に対応する秘密値が格納された秘密値メモリと、
上記秘密値メモリに接続され、この秘密値メモリから上記秘密値を読み出し、これに定義域の元とその写像との関係を撹乱させる第２の関数Ｆ２を作用させて、タグ出力情報を生成する第２の演算部と、
上記タグ出力情報を出力する出力部と、
上記秘密値メモリから上記秘密値の少なくとも一部の要素を読み出し、これに、写像を求めることが困難な第１の関数Ｆ１を作用させ、その演算結果で上記秘密値メモリ内の上記秘密値を上書き更新する第１の演算部と、
を有することを特徴とするタグ装置。
【請求項１８】
タグ自動認識システムに使用されるバックエンド装置であって、
各タグＩＤ情報とそれらに対応する秘密値とが対応付けられたデータベースメモリと、
タグ出力情報の入力を受け付ける入力部と、
上記データベースメモリの秘密値の少なくとも一部の要素に、タグ装置で使用された第１の関数Ｆ１を所定回数作用させた後、さらに当該タグ装置で使用された第２の関数を作用させる演算部と、
上記演算部における上記演算結果と上記タグ出力情報とを順次比較する比較部と、
これらが一致した場合、一致した演算結果に対応する上記秘密値に対応付けられている上記タグＩＤ情報を、上記データベースメモリから抽出する読出し部と、
を有することを特徴とするバックエンド装置。
【請求項１９】
タグ自動認識システムに使用されるタグ装置であって、
タグＩＤ情報ｉｄｋに対応する第１の秘密値ｓｋ，ｉが格納された秘密値メモリと、
上記秘密値メモリに接続され、この秘密値メモリから上記第１の秘密値ｓｋ，ｉを読み出し、これに定義域の元とその写像との関係を撹乱させる第２の関数Ｆ２を作用させて、タグ出力情報Ｆ２（ｓｋ，ｉ）を生成する第２の演算部と、
上記タグ出力情報Ｆ２（ｓｋ，ｉ）を出力する出力部と、
上記秘密値メモリに接続され、この秘密値メモリから上記第１の秘密値ｓｋ，ｉを読み出し、これに、逆像を求めることが困難な第１の関数Ｆ１を作用させ、その演算結果Ｆ１（ｓｋ，ｉ）を新たな第１の秘密値ｓｋ，ｉ＋１として上記秘密値メモリに上書き保存する第１の演算部と、
を有することを特徴とするタグ装置。
【請求項２０】
請求項１９記載のタグ装置であって、
上記第１の秘密値の更新回数ｒｎをカウントするカウンタをさらに有し、
上記出力部は、さらに、この更新回数ｒｎを特定する情報を出力する、
ことを特徴とするタグ装置。
【請求項２１】
タグ自動認識システムに使用されるタグ装置であって、
タグＩＤ情報ｉｄｋに対応する第１の秘密値ｓｋ，ｉ及び第１の固有値ｗｋが格納された秘密値メモリと、
上記秘密値メモリに接続され、この秘密値メモリから上記第１の秘密値ｓｋ，ｉを読み出し、これに定義域の元とその写像との関係を撹乱させる第２の関数Ｆ２を作用させて、タグ出力情報Ｆ２（ｓｋ，ｉ）を生成する第２の演算部と、
上記タグ出力情報Ｆ２（ｓｋ，ｉ）を出力する出力部と、
上記秘密値メモリに接続され、この秘密値メモリから上記第１の秘密値ｓｋ，ｉ及び上記第１の固有値ｗｋを読み出し、これらのビット結合値に、逆像を求めることが困難な第１の関数Ｆ１を作用させ、その演算結果Ｆ１（ｓｋ，ｉ｜ｗｋ）を新たな第１の秘密値ｓｋ，ｉ＋１として上記秘密値メモリに上書き保存する第１の演算部と、
を有することを特徴とするタグ装置。
【請求項２２】
タグ自動認識システムに使用されるバックエンド装置であって、
各タグＩＤ情報ｉｄｎ（ｎ∈｛１，．．．，ｍ｝，ｍはタグ装置の総数）とそれらに対応する第２の秘密値ｓｎ，１とが対応付けられたデータベースメモリと、
タグ出力情報Ｆ２（ｓｋ，ｉ）の入力を受け付ける入力部と、
上記データベースメモリに接続され、このデータベースメモリから上記第２の秘密値ｓｎ，１を読み出し、読み出した各第２の秘密値ｓｎ，１にタグ装置で使用された第１の関数Ｆ１をｊ回（ｊ∈｛０，．．．，ｊｍａｘ｝）作用させた後、さらに当該タグ装置で使用された第２の関数Ｆ２を作用させる第３の演算部と、
上記タグ出力情報Ｆ２（ｓｋ，ｉ）と上記第３の演算部における演算結果Ｆ２（Ｆ１ｊ（ｓｎ，１））とを比較する比較部と、
上記タグ出力情報Ｆ２（ｓｋ，ｉ）−と上記演算結果Ｆ２（Ｆ１ｊ（ｓｎ，１））とが一致しない場合、ｎ及びｊの少なくとも一方の値を変化させて、上記第３の演算部及び上記比較部における処理を再び実行させる制御部と、
上記データベースメモリに接続され、上記タグ出力情報Ｆ２（ｓｋ，ｉ）−と上記演算結果Ｆ２（Ｆ１ｊ（ｓｎ，１））とが一致した場合、一致した上記演算結果Ｆ２（Ｆ１ｊ（ｓｎ，１））に対応する上記第２の秘密値ｓｎ，１に対応付けられている上記タグＩＤ情報ｉｄｎを、上記データベースメモリから抽出する読出し部と、
を有することを特徴とするバックエンド装置。
【請求項２３】
請求項２２記載のバックエンド装置であって、
上記入力部は、
さらに、タグ装置における１の秘密値の更新回数ｒｎを特定する情報の入力を受け付け、
上記第３の演算部は、上記読み出した各第２の秘密値ｓｎ，１に上記第１の関数Ｆ１をｊ＝ｒｎ回作用させた後、さらに上記第２の関数Ｆ２を作用させ、
上記制御部は、
上記タグ出力情報Ｆ２（ｓｋ，ｉ）−と上記演算結果Ｆ２（Ｆ１ｊ（ｓｎ，１））とが一致しない場合、ｎの値を変化させて、上記第３の演算部及び上記比較部における処理を再び実行させる、
ことを特徴とするバックエンド装置。
【請求項２４】
請求項２２記載のバックエンド装置であって、
上記データベースメモリは、
上記第３の演算部における演算結果Ｆ２（Ｆ１ｊ（ｓｎ，１））を上記第２の秘密値ｓｎ，１に対応付けて格納し、
上記比較部は、
上記データベースメモリに格納された演算結果Ｆ２（Ｆ１ｊ（ｓｎ，１））を用い、上記比較処理を行う、
ことを特徴とするバックエンド装置。
【請求項２５】
タグ自動認識システムに使用されるバックエンド装置であって、
各タグＩＤ情報ｉｄｎ（ｎ∈｛１，．．．，ｍ｝）とそれらに対応する第２の秘密値ｓｎ，１及び第２の固有値ｗｎとが対応付けられて格納されたデータベースメモリと、
上記タグ出力情報Ｆ２（ｓｋ，ｉ）の入力を受け付ける入力部と、
上記データベースメモリに接続され、このデータベースメモリから上記第２の秘密値ｓｎ，１及び上記第２の固有値ｗｎを読み出し、Ｉｊ（ｎ）＝ｓｎ，１（ｊ＝０），Ｉｊ（ｎ）＝Ｆ１（Ｉｊ−１（ｎ）｜ｉｄｎ）（ｊ≧１）とした場合におけるＩｊ（ｎ）に、上記第２の関数Ｆ２を作用させたＦ２（Ｉｊ（ｎ））を算出する第３の演算部と、
上記タグ出力情報Ｆ２（ｓｋ，ｉ）と上記第３の演算部における演算結果Ｆ２（Ｉｊ（ｎ））とを比較する比較部と、
上記タグ出力情報Ｆ２（ｓｋ，ｉ）と上記演算結果Ｆ２（Ｉｊ（ｎ））とが一致しない場合、ｎ及びｊの少なくとも一方の値を変化させて、上記第３の演算部及び上記比較部における処理を再び実行させる制御部と、
上記タグ出力情報Ｆ２（ｓｋ，ｉ）と上記演算結果Ｆ２（Ｉｊ（ｎ））とが一致した場合、一致した上記演算結果Ｆ２（Ｉｊ（ｎ））に対応する上記第２の秘密値ｓｎ，１及び第２の固有値ｗｎに対応付けられている上記タグＩＤ情報ｉｄｎを、上記データベースメモリから抽出する読出し部と、
を有することを特徴とするバックエンド装置。
【請求項２６】
タグ自動認識システムに使用されるタグ装置であって、
タグＩＤ情報ｉｄｋに対応する第１の秘密値ｓｋ，ｉ及び第１の固有値ｗｋが格納された秘密値メモリと、
上記秘密値メモリに接続され、この秘密値メモリから上記第１の秘密値ｓｋ，ｉ及び第１の固有値ｗｋを読み出し、これらのビット結合値に、定義域の元とその写像との関係を撹乱させる第２の関数Ｆ２を作用させて、タグ出力情報Ｆ２（ｓｋ，ｉ｜ｗｋ）を生成する第２の演算部と、
上記タグ出力情報Ｆ２（ｓｋ，ｉ｜ｗｋ）を出力する出力部と、
上記秘密値メモリに接続され、この秘密値メモリから上記第１の秘密値ｓｋ，ｉを読み出し、読み出した第１の秘密値ｓｋ，ｉに、逆像を求めることが困難な第１の関数Ｆ１を作用させ、その演算結果Ｆ１（ｓｋ，ｉ）を新たな上記第１の秘密値ｓｋ，ｉ＋１として上記秘密値メモリに上書き保存する第１の演算部と、
を有することを特徴とするタグ装置。
【請求項２７】
タグ自動認識システムに使用されるバックエンド装置であって、
各タグＩＤ情報ｉｄｎ（ｎ∈｛１，．．．，ｍ｝）とそれらに対応する第２の秘密値ｓｎ，１及び第２の固有値ｗｎとが対応付けられて格納されたデータベースメモリと、
タグ出力情報Ｆ２（ｓｋ，ｉ｜ｗｋ）の入力を受け付ける入力部と、
上記データベースメモリに接続され、このデータベースメモリから上記第２の秘密値ｓｎ，１及び上記第２の固有値ｗｎを読み出し、当該第２の秘密値ｓｎ，１にタグ装置で使用された第１の関数Ｆ１をｊ回（ｊ∈｛０，．．．，ｊｍａｘ｝）作用させ、その結果Ｆ１ｊ（ｓｎ，１）と当該第２の固有値ｗｎとのビット結合値Ｆ１ｊ（ｓｎ，１）｜ｗｎを求め、そのビット結合値Ｆ１ｊ（ｓｎ，１）｜ｗｎに当該タグ装置で使用された第２の関数Ｆ２を作用させる第３の演算部と、
上記タグ出力情報Ｆ２（ｓｋ，ｉ｜ｗｋ）と上記第３の演算部における演算結果Ｆ２（Ｆ１ｊ（ｓｎ，ｉ）｜ｗｎ）とを比較する比較部と、
上記タグ出力情報Ｆ２（ｓｋ，ｉ｜ｗｋ）と上記演算結果Ｆ２（Ｆ１ｊ（ｓｎ，ｉ）｜ｗｎ）とが一致しない場合、ｎ及びｊの少なくとも一方の値を変化させて、上記第３の演算部及び上記比較部における処理を再び実行させる制御部と、
上記データベースメモリに接続され、上記タグ出力情報Ｆ２（ｓｋ，ｉ｜ｗｋ）と上記演算結果Ｆ２（Ｆ１ｊ（ｓｎ，ｉ）｜ｗｎ）とが一致した場合、一致した上記演算結果Ｆ２（Ｆ１ｊ（ｓｎ，ｉ）｜ｗｎ）に対応する上記第２の秘密値ｓｎ，１及び第２の固有値ｗｎに対応付けられている上記タグＩＤ情報ｉｄｎを、上記データベースメモリから抽出する読出し部と、
を有することを特徴とするバックエンド装置。
【請求項２８】
タグ自動認識システムに使用されるタグ装置であって、
各タグＩＤ情報ｉｄｋにそれぞれ対応する第１の固有値ｗｋと、複数のタグＩＤ情報に対して同一の初期値ｓ１をとる第１の秘密値ｓｉとが格納された秘密値メモリと、
上記秘密値メモリに接続され、この秘密値メモリから上記第１の秘密値ｓｉ及び第１の固有値ｗｋを読み出し、これらのビット結合値に、定義域の元とその写像との関係を撹乱させる第２の関数Ｆ２を作用させて、タグ出力情報Ｆ２（ｓｉ｜ｗｋ）を生成する第２演算部と、
上記タグ出力情報Ｆ２（ｓｉ｜ｗｋ）を出力する出力部と、
上記秘密値メモリに接続され、この秘密値メモリから上記第１の秘密値ｓｉを読み出し、読み出した第１の秘密値ｓｉに、逆像を求めることが困難な第１の関数Ｆ１を作用させ、その演算結果Ｆ１（ｓｉ）を新たな上記第１の秘密値ｓｉ＋１として上記秘密値メモリに上書き保存する第１の演算部と、
を有することを特徴とするタグ装置。
【請求項２９】
タグ自動認識システムに使用されるバックエンド装置であって、
各タグＩＤ情報ｉｄｎ（ｎ∈｛１，．．．，ｍ｝）及びそれらに対応する第２の固有値ｗｎが対応付けられて格納されたデータベースメモリと、
複数のタグＩＤ情報で共用される第２の秘密値ｓ１に、タグ装置で使用された第１の関数Ｆ１をｊ回（ｊ∈｛０，．．．，ｊｍａｘ｝）作用させた各第１の演算結果ｓｊ＋１が格納された演算値メモリと、
タグ出力情報Ｆ２（ｓｉ｜ｗｋ）の入力を受け付ける入力部と、
上記データベースメモリに接続され、このデータベースメモリから上記第１の演算結果ｓｊ＋１と上記第２の固有値ｗｎとを読み出し、これらのビット結合値ｓｊ＋１｜ｗｎを求め、それに上記タグ装置で使用された第２の関数Ｆ２を作用させる第３の演算部と、
上記タグ出力情報Ｆ２（ｓｉ｜ｗｋ）と上記第３の演算部における演算結果Ｆ２（ｓｊ＋１｜ｗｎ）とを比較する比較部と、
上記タグ出力情報Ｆ２（ｓｉ｜ｗｋ）と上記演算結果Ｆ２（ｓｊ＋１｜ｗｎ）とが一致しない場合、ｎ及びｊの少なくとも一方の値を変化させて、上記第３の演算部及び上記比較部における処理を再び実行させる制御部と、
上記データベースメモリに接続され、上記タグ出力情報Ｆ２（ｓｉ｜ｗｋ）と上記演算結果Ｆ２（ｓｊ＋１｜ｗｎ）とが一致した場合、一致した上記演算結果Ｆ２（ｓｊ＋１｜ｗｎ）に対応する上記第２の固有値ｗｎに対応付けられている上記タグＩＤ情報ｉｄｎを、上記データベースメモリから抽出する読出し部と、
を有することを特徴とするバックエンド装置。
【請求項３０】
タグ自動認識システムに使用されるタグ装置であって、
ｄ個（ｄ≧２）の要素ｅｕ，ｖｕ（ｕ∈｛１，…，ｄ｝）からなる組合せであって各タグＩＤ情報ｉｄに対応するものが格納された秘密値メモリと、
上記秘密値メモリに接続され、この秘密値メモリから上記ｄ個の要素ｅｕ，ｖｕを読み出し、これらのビット結合値である秘密値ｓｋ，ｉに、定義域の元とその写像との関係を撹乱させる第２の関数Ｆ２を作用させて、タグ出力情報ａｋ，ｉ＝Ｆ２（ｓｋ，ｉ）を生成する第２の演算部と、
上記タグ出力情報ａｋ，ｉを出力する出力部と、
上記秘密値メモリに接続され、この秘密値メモリから少なくとも一部の要素ｅｕ’，ｖｕ’（ｕ’∈｛１，…，ｄ｝）を抽出し、抽出した要素ｅｕ’，ｖｕ’に、逆像を求めることが困難な第１の関数Ｆ１を作用させ、その演算結果Ｆ１（ｅｕ’，ｖｕ’）を新たな要素ｅｕ’，ｖｕ’＋１として上記秘密値メモリに上書き保存する第１の演算部と、
を有することを特徴とするタグ装置。
【請求項３１】
タグ自動認識システムに使用されるバックエンド装置であって、
ｄ種類（ｄ≧２）のサブグループαｕ（ｕ∈｛１，…，ｄ｝）から１つずつ選択されたｄ個の初期要素ｆｕ，０の組合せと、各タグ装置ｎ（ｎ∈｛１，．．．，ｍ，ｍはタグ装置の総数｝）のタグＩＤ情報ｉｄｎとが、対応付けられて格納されたデータベースメモリと、
タグ出力情報ａｋ，ｉの入力を受け付ける入力部と、
上記タグＩＤ情報ｉｄｎに対応するｄ個の初期要素ｆｕ，０（ｕ∈｛１，…，ｄ｝）に、それぞれ上記第１の関数Ｆ１をｗｕ回（ｗｕ∈｛１，２，…，ｍａｘ｝）作用させ、それらの値Ｆ１ｗｕ（ｆｕ，０）のビット結合値に上記第２の関数Ｆ２を作用させた演算値ｃを求める第３の演算部と、
上記タグ出力情報ａｋ，ｉと上記演算値ｃとを比較する比較部と、
上記タグ出力情報ａｋ，ｉと上記演算値ｃとが一致しない場合、ｎ及びｗｕの少なくとも一部の値を変化させて、上記第３の演算部及び上記比較部における処理を再び実行させる制御部と、
上記データベースメモリに接続され、上記タグ出力情報ａｋ，ｉと上記演算値ｃとが一致する場合、当該演算値ｃに対応する上記ｄ個の初期要素ｆｕ，０の組合せに対応付けられているタグＩＤ情報ｉｄｎを、上記データベースメモリから抽出する読出し部と、
とを有することを特徴とするバックエンド装置。
【請求項３２】
タグ自動認識システムに使用されるタグ装置であって、
ｄ個（ｄ≧２）の要素ｅｕ，ｖｕ（ｕ∈｛１，…，ｄ｝）からなる組合せであって各タグＩＤ情報ｉｄｋに対応するもの、及び各タグＩＤ情報ｉｄｋに固有な固有値γｋが格納された秘密値メモリと、
上記秘密値メモリに接続され、この秘密値メモリから上記ｄ個の要素ｅｕ，ｖｕ及び上記固有値γｋを読み出し、これらのビット結合値である秘密値ｓｋ，ｉに、定義域の元とその写像との関係を撹乱させる第２の関数Ｆ２を作用させて、タグ出力情報ａｋ，ｉ＝Ｆ２（ｓｋ，ｉ）を生成する第２の演算部と、
上記タグ出力情報ａｋ，ｉを出力する出力部と、
上記秘密値メモリに接続され、この秘密値メモリから少なくとも一部の要素ｅｕ’，ｖｕ’（ｕ’∈｛１，…，ｄ｝）を抽出し、抽出した要素ｅｕ’，ｖｕ’に、逆像を求めることが困難な第１の関数Ｆ１を作用させ、その演算結果Ｆ１（ｅｕ’，ｖｕ’）を新たな要素ｅｕ’，ｖｕ’＋１として上記秘密値メモリに上書き保存する第１の演算部と、
を有することを特徴とするタグ装置。
【請求項３３】
タグ自動認識システムに使用されるバックエンド装置であって、
ｄ種類（ｄ≧２）のサブグループαｕ（ｕ∈｛１，…，ｄ｝）から１つずつ選択されたｄ個の初期要素ｆｕ，０の組合せと、各タグＩＤ情報ｉｄｎ（ｎ∈｛１，．．．，ｍ｝）に固有な固有値γｎと、各タグＩＤ情報ｉｄｎとが、対応付けられて格納されたデータベースメモリと、
タグ出力情報ａｋ，ｉの入力を受け付ける入力部と、
上記タグＩＤ情報ｉｄｎに対応する上記ｄ個の初期要素ｆｕ，０（ｕ∈｛１，…，ｄ｝）にそれぞれ上記第１の関数Ｆ１をｗｕ回（ｗｕ∈｛１，２，…，ｍａｘ｝）作用させ、それらの値Ｆ１ｗｕ（ｆｕ，０）と上記固有値γｎとのビット結合値に上記第２の関数Ｆ２を作用させた演算値ｃを求める第３の演算部と、
上記タグ出力情報ａｋ，ｉと、上記演算値ｃとを比較する比較部と、
上記タグ出力情報ａｋ，ｉと上記演算値ｃとが一致しない場合、ｎ及びｗｕの少なくとも一部の値を変化させて、上記第３の演算部及び上記比較部における処理を再び実行させる制御部と、
上記データベースメモリに接続され、上記タグ出力情報ａｋ，ｉと上記演算値ｃとが一致いるタグＩＤ情報ｉｄｎを、上記データベースメモリから抽出する読出し部と、
を有することを特徴とするバックエンド装置。
【請求項３４】
タグ自動認識システムに使用されるタグ装置であって、
ｄ個（ｄ≧１）の要素ｅｕ，ｖｕ（ｕ∈｛１，…，ｄ｝）が格納された秘密値メモリと、
ｔ種類（ｔ≧２）の値の多様値ｚが格納された第１の多様値メモリと、
上記秘密値メモリ及び上記第１の多様値メモリに接続され、この秘密値メモリから上記各要素ｅｕ，ｖｕを読み出し、この第１の多様値メモリから何れかの上記多様値ｚを読み出し、これらのビット結合値である秘密値ｓｋ，ｉに、定義域の元とその写像との関係を撹乱させる第２の関数Ｆ２を作用させたタグ出力情報ａｋ，ｉ＝Ｆ２（ｓｋ，ｉ）を生成する第２の演算部と、
上記タグ出力情報ａｋ，ｉを出力する出力部と、
上記秘密値メモリに接続され、上記出力部が上記タグ出力情報ａｋ，ｉをｔ回出力するたびに、上記秘密値メモリから少なくとも一部の要素ｅｕ’，ｖｕ’（ｕ’∈｛１，…，ｄ｝）を抽出し、抽出した要素ｅｕ’，ｖｕ’に、逆像を求めることが困難な第１の関数Ｆ１を作用させ、その演算結果Ｆ１（ｅｕ’，ｖｕ’）を新たな要素ｅｕ’，ｖｕ’＋１として上記秘密値メモリに上書き保存する第１の演算部と、
を有することを特徴とするタグ装置。
【請求項３５】
請求項３４記載のタグ装置であって、
上記第１の演算部が、上記秘密値メモリの上記要素の更新を行わない間、上記第２の演算部が上記タグ出力情報ａｋ，ｉの生成に使用する上記多様値ｚは、当該タグ出力情報ａｋ，ｉを生成するたびに異なる、
ことを特徴とするタグ装置。
【請求項３６】
タグ自動認識システムに使用されるバックエンド装置であって、
ｄ種類（ｄ≧１）のサブグループαｕ（ｕ∈｛１，…，ｄ｝）から１つずつ選択されたｄ個の初期要素ｆｕ，０の組合せと、各タグ装置のタグＩＤ情報ｉｄｎ（ｎ∈｛１，．．．，ｍ｝）とが対応付けられて格納されたデータベースメモリと、
ｔ種類（ｔ≧２）の値の多様値ｚが格納された第２の多様値メモリと、
タグ出力情報ａｋ，ｉの入力を受け付ける入力部と、
上記タグＩＤ情報ｉｄｎに対応する上記データベースメモリの上記ｄ個の初期要素ｆｕ，０（ｕ∈｛１，…，ｄ｝）に、それぞれ上記第１の関数Ｆ１をｗｕ回（ｗｕ∈｛１，２，…，ｍａｘ｝）作用させ、それらの値Ｆ１ｗｕ（ｆｕ，０）と上記第２の多様値メモリの上記多様値ｚとのビット結合値に上記第２の関数Ｆ２を作用させた演算値ｃを求める第３の演算部と、
上記タグ出力情報ａｋ，ｉと上記演算値ｃとを比較する比較部と、
上記タグ出力情報ａｋ，ｉと上記演算値ｃとが一致しない場合、ｎ、ｗｕ及びｚの少なくとも一部の値を変化させて、上記第３の演算部及び上記比較部における処理を再び実行させる制御部と、
上記データベースメモリに接続され、上記タグ出力情報ａｋ，ｉと上記演算値ｃとが一致する場合、当該演算値ｃに対応する上記ｄ個の初期要素ｆｕ，０の組合せに対応付けられているタグＩＤ情報ｉｄｎを、上記データベースメモリから抽出する読出し部と、
を有することを特徴とするバックエンド装置。
【請求項３７】
タグ自動認識システムに使用されるタグ装置であって、
ｄ個（ｄ≧２）の要素ｅｕ，ｖｕ（ｕ∈｛１，…，ｄ｝）が格納された秘密値メモリと、
各ｕに対してｔｕ種類（ｔｕ≧２）の値をとる多様値ｚｕが格納された第１の多様値メモリと、
上記秘密値メモリ及び上記第１の多様値メモリに接続され、この秘密値メモリから上記各要素ｅｕ，ｖｕを読み出し、この第１の多様値メモリから各ｕについて何れかの上記多様値ｚｕを読み出し、これらのｅｕ，ｖｕ及びｚｕのビット結合値である秘密値ｓｋ，ｉに、定義域の元とその写像との関係を撹乱させる第２の関数Ｆ２を作用させて、タグ出力情報ａｋ，ｉ＝Ｆ２（ｓｋ，ｉ）を生成する第２の演算部と、
上記タグ出力情報ａｋ，ｉを出力する出力部と、
上記秘密値メモリに接続され、上記出力部が上記タグ出力情報ａｋ，ｉを所定回数出力するたびに、上記秘密値メモリから少なくとも一部の要素ｅｕ’，ｖｕ’（ｕ’∈｛１，…，ｄ｝）を抽出し、抽出した要素ｅｕ’，ｖｕ’に、逆像を求めることが困難な第１の関数Ｆ１を作用させ、その演算結果Ｆ１（ｅｕ’，ｖｕ’）を新たな要素ｅｕ’，ｖｕ’＋１として上記秘密値メモリに上書き保存する第１の演算部と、
を有することを特徴とするタグ装置。
【請求項３８】
請求項３７記載のタグ装置であって、
上記第１の演算部は、
上記出力部が上記タグ出力情報ａｋ，ｉを出力するたびに、上記秘密値メモリから少なくとも一部の要素ｅｕ’，ｖｕ’を抽出し、抽出した要素ｅｕ’，ｖｕ’に上記第１の関数Ｆ１を作用させ、その演算結果Ｆ１（ｅｕ’，ｖｕ’）を新たな要素ｅｕ’，ｖｕ’＋１として上記秘密値メモリに上書き保存する、
ことを特徴とするタグ装置。
【請求項３９】
請求項３７記載のタグ装置であって、
上記第１の演算部は、
上記出力部が上記タグ出力情報ａｋ，ｉをΣｕ＝１ｄｔｕ回出力するたびに、上記秘密値メモリから少なくとも一部の要素ｅｕ’，ｖｕ’を抽出し、抽出した要素ｅｕ’，ｖｕ’に上記第１の関数Ｆ１を作用させ、その演算結果Ｆ１（ｅｕ’，ｖｕ’）を新たな要素ｅｕ’，ｖｕ’＋１として上記秘密値メモリに上書き保存する、
ことを特徴とするタグ装置。
【請求項４０】
請求項３９記載のタグ装置であって、
上記第１の演算部が、上記秘密値メモリの上記要素の更新を行わない間、上記第２の演算部が上記タグ出力情報ａｋ，ｉの生成に使用する上記多様値ｚｕ（ｕ∈｛１，…，ｄ｝）の組合せは、当該タグ出力情報ａｋ，ｉを生成するたびに異なる、
ことを特徴とするタグ装置。
【請求項４１】
タグ自動認識システムに使用されるバックエンド装置であって、
ｄ種類（ｄ≧１）のサブグループαｕ（ｕ∈｛１，…，ｄ｝）から１つずつ選択されたｄ個の初期要素ｆｕ，０の組合せと、各タグ装置のタグＩＤ情報ｉｄｎ（ｎ∈｛１，．．．，ｍ｝）とが対応付けられて格納されたデータベースメモリと、
各ｕに対してｔｕ種類（ｔｕ≧２）の値をとる多様値ｚｕが格納された第２の多様値メモリと、
タグ出力情報ａｋ，ｉの入力を受け付ける入力部と、
上記タグＩＤ情報ｉｄｎに対応する上記ｄ個の初期要素ｆｕ，０（ｕ∈｛１，…，ｄ｝）に、それぞれタグ装置で使用された第１の関数Ｆ１をｗｕ回（ｗｕ∈｛１，２，…，ｍａｘ｝）作用させ、それらの値Ｆ１ｗｕ（ｆｕ，０）と上記多様値ｚｕとのビット結合値に、当該タグ装置で使用された第２の関数Ｆ２を作用させた演算値ｃを求める第３の演算部と、
上記タグ出力情報ａｋ，ｉと上記演算値ｃとを比較する比較部と、
上記タグ出力情報ａｋ，ｉと上記演算値ｃとが一致しない場合、ｎ、ｗｕ及びｚの少なくとも一部の値を変化させて、上記第３の演算部及び上記比較部における処理を再び実行させる制御部と、
上記データベースメモリに接続され、上記タグ出力情報ａｋ，ｉと上記演算値ｃとが一致する場合、当該演算値ｃに対応する上記ｄ個の初期要素ｆｕ，０の組合せに対応付けられているタグＩＤ情報ｉｄｎを、上記データベースメモリから抽出する読出し部と、
を有することを特徴とするバックエンド装置。
【請求項４２】
タグ装置から出力される情報から利用者のプライバシー情報が取得されることを防止するタグプライバシー保護方法であって、
上記各タグ装置の秘密値メモリに、それぞれのタグＩＤ情報ｉｄｈを秘匿化した秘匿化ＩＤ情報ｓｉｄｈが格納されており、
上記タグ装置が、
読書き部において、その上記秘密値メモリに格納されている上記秘匿化ＩＤ情報ｓｉｄｈを読み出し、
第１の出力部において、上記秘匿化ＩＤ情報ｓｉｄｈを、上記各タグ装置の外部に設けられた更新装置に対して出力し、
上記更新装置が、
第１の入力部において、上記秘匿化ＩＤ情報ｓｉｄｈの入力を受け付け、
更新部において、上記秘匿化ＩＤ情報ｓｉｄｈとの関連性の把握が困難な新たな秘匿化ＩＤ情報ｓｉｄｈ’を生成し、
第２の出力部において、上記新たな秘匿化ＩＤ情報ｓｉｄｈ’を上記タグ装置に対して出力し、
上記タグ装置が、
第２の入力部において、上記新たな秘匿化ＩＤ情報ｓｉｄｈ’の入力を受け付け、
上記読書き部において、上記新たな秘匿化ＩＤ情報ｓｉｄｈ’を上記秘密値メモリに格納する、
ことを特徴とするタグプライバシー保護方法。
【請求項４３】
タグ装置から出力される情報から利用者のプライバシー情報が取得されることを防止するタグプライバシー保護方法であって、
上記各タグ装置ｈ（ｈ∈｛１，．．．，ｍ｝，ｍはタグ装置の総数）の秘密値メモリに、それぞれのタグＩＤ情報ｉｄｈに対応付けられたランダム値ｒｈである秘匿化ＩＤ情報ｓｉｄｈが格納されており、
上記各タグ装置ｈの外部に設けられた更新装置の秘匿化ＩＤメモリに、上記各タグＩＤ情報ｉｄｈと、当該タグＩＤ情報ｉｄｈに対応する上記ランダム値ｒｈである上記秘匿化ＩＤ情報ｓｉｄｈと、が対応付けられて格納されており、
上記タグ装置ｈが、
第１の読書き部において、その上記秘密値メモリに格納されている上記秘匿化ＩＤ情報ｓｉｄｈを読み出し、
第１の出力部において、上記秘匿化ＩＤ情報ｓｉｄｈを上記更新装置に対して出力し、
上記更新装置が、
第１の入力部において、上記秘匿化ＩＤ情報ｓｉｄｈの入力を受け付け、
ランダム値生成部において、新たなランダム値ｒｈ’を生成し、
第２の読書き部において、上記入力された上記秘匿化ＩＤ情報ｓｉｄｈに対応するタグＩＤ情報ｉｄｈを上記秘匿化ＩＤメモリから選択し、これに上記新たなランダム値ｒｈ’を新たな秘匿化ＩＤ情報ｓｉｄｈ’として対応付けて当該秘匿化ＩＤメモリに格納し、
第２の出力部において、上記新たな秘匿化ＩＤ情報ｓｉｄｈ’を上記タグ装置ｈに対して出力し、
上記タグ装置ｈが、
第２の入力部において、上記新たな秘匿化ＩＤ情報ｓｉｄｈ’の入力を受け付け、
上記読書き部において、上記新たな秘匿化ＩＤ情報ｓｉｄｈ’を上記秘密値メモリに格納する、
ことを特徴とするタグプライバシー保護方法。
【請求項４４】
タグ装置から出力される情報から利用者のプライバシー情報が取得されることを防止するタグプライバシー保護方法であって、
上記各タグ装置ｈ（ｈ∈｛１，．．．，ｍ｝，ｍはタグ装置の総数）の秘密値メモリに、それぞれのタグＩＤ情報ｉｄｈに対応する、共通鍵暗号方式による第１の暗号文と、その暗号化に用いた共通鍵ｋｊ（ｊ∈｛１，．．．，ｎ｝，ｎはタグ装置の総数）の鍵ＩＤ情報ｋｉｄｊと、を有する秘匿化ＩＤ情報ｓｉｄｈを格納しておき、
上記各タグ装置ｈの外部に設けられた更新装置の鍵メモリに、上記各鍵ＩＤ情報ｋｉｄｊと上記各共通鍵ｋｊとを対応つけて格納しておき、
上記タグ装置ｈが、
第１の読書き部において、その上記秘密値メモリに格納されている上記秘匿化ＩＤ情報ｓｉｄｈを読み出し、
第１の出力部において、上記秘匿化ＩＤ情報ｓｉｄｈを上記更新装置に対して出力し、
上記更新装置が、
第１の入力部において、上記秘匿化ＩＤ情報ｓｉｄｈの入力を受け付け、
第２の読書き部において、上記秘匿化ＩＤ情報ｓｉｄｈが具備する上記鍵ＩＤ情報ｋｉｄｊに対応する上記共通鍵ｋｊを上記鍵メモリから抽出し、
ＩＤ抽出部において、上記第２の読書き部が抽出した上記共通鍵ｋｊを用いて上記第１の暗号文を復号し、タグＩＤ情報ｉｄｈを抽出し、
暗号化部において、上記ＩＤ抽出部が抽出した上記タグＩＤ情報ｉｄｈと、その抽出に用いられた上記共通鍵ｋｊとを用い、上記第１の暗号文との関連性の把握が困難な第２の暗号文を生成し、
第２の出力部において、上記第２の暗号文と、その共通鍵ｋｊの上記鍵ＩＤ情報ｋｉｄｊと、を有する新たな秘匿化ＩＤ情報ｓｉｄｈ’を上記タグ装置ｈに対して出力し、
上記タグ装置ｈが、
第２の入力部において、上記新たな秘匿化ＩＤ情報ｓｉｄｈ’の入力を受け付け、
上記第１の読書き部において、上記新たな秘匿化ＩＤ情報ｓｉｄｈ’を上記秘密値メモリに格納する、
ことを特徴とするタグプライバシー保護方法。
【請求項４５】
タグ装置から出力される情報から利用者のプライバシー情報が取得されることを防止するタグプライバシー保護方法であって、
上記各タグ装置ｈ（ｈ∈｛１，．．．，ｍ｝，ｍはタグ装置の総数）の秘密値メモリに、それぞれのタグＩＤ情報ｉｄｈに対応する公開鍵暗号方式による第１の暗号文と、その鍵ペア（ｓｋｊ，ｐｋｊ）（ｓｋｊは秘密鍵，ｐｋｊは公開鍵，ｊ∈｛１，．．．，ｎ｝，ｎはタグ装置の総数）の鍵ＩＤ情報ｋｉｄｊと、を有する秘匿化ＩＤ情報ｓｉｄｈを格納しておき、
上記各タグ装置ｈの外部に設けられた更新装置の鍵メモリに、上記各鍵ＩＤ情報ｋｉｄｊと上記各鍵ペア（ｓｋｊ，ｐｋｊ）とを対応つけて格納しておき、
上記タグ装置ｈが、
第１の読書き部において、その上記秘密値メモリに格納されている上記秘匿化ＩＤ情報ｓｉｄｈを読み出し、
第１の出力部において、上記秘匿化ＩＤ情報ｓｉｄｈを上記更新装置に対して出力し、
上記更新装置が、
第１の入力部において、上記秘匿化ＩＤ情報ｓｉｄｈの入力を受け付け、
第２の読書き部において、上記第１の入力部に入力された上記秘匿化ＩＤ情報ｓｉｄｈが具備する上記鍵ＩＤ情報ｋｉｄｊに対応する鍵ペア（ｓｋｊ，ｐｋｊ）を上記鍵メモリから抽出し、
ＩＤ抽出部において、上記第２の読書き部が抽出した上記秘密鍵ｓｋｊを用いて上記第１の暗号文を復号し、上記タグＩＤ情報ｉｄｈを抽出し、
暗号化部において、上記ＩＤ抽出部が抽出した上記タグＩＤ情報ｉｄｈと、上記第２の読書き部が抽出した上記公開鍵ｐｋｊとを用い、上記第１の暗号文との関連性の把握が困難な第２の暗号文を生成し、
第２の出力部において、上記第２の暗号文と、その上記鍵ペア（ｓｋｊ，ｐｋｊ）の上記鍵ＩＤ情報ｋｉｄｊと、を有する新たな秘匿化ＩＤ情報ｓｉｄｈ’を上記タグ装置ｈに対して出力し、
上記タグ装置ｈが、
第２の入力部において、上記新たな秘匿化ＩＤ情報ｓｉｄｈ’の入力を受け付け、
上記読書き部において、上記新たな秘匿化ＩＤ情報ｓｉｄｈ’を上記秘密値メモリに格納する、
ことを特徴とするタグプライバシー保護方法。
【請求項４６】
タグ装置から出力される情報から利用者のプライバシー情報が取得されることを防止するタグプライバシー保護方法であって、
上記各タグ装置ｈ（ｈ∈｛１，．．．，ｍ｝，ｍはタグ装置の総数）の秘密値メモリに、それぞれのタグＩＤ情報ｉｄｈに対応する再暗号化可能な公開鍵暗号方式による第１の暗号文と、その公開鍵ｐｋｊ（ｊ∈｛１，．．．，ｎ｝，ｎは鍵の総数）の鍵ＩＤ情報ｋｉｄｊと、を有する秘匿化ＩＤ情報ｓｉｄｈを格納しておき、
上記各タグ装置ｈの外部に設けられた更新装置の鍵メモリに、上記各鍵ＩＤ情報ｋｉｄｊと上記各公開鍵ｐｋｊとを対応つけて格納しておき、
上記タグ装置ｈが、
第１の読書き部において、その上記秘密値メモリに格納されている上記秘匿化ＩＤ情報ｓｉｄｈを読み出し、
第１の出力部において、上記秘匿化ＩＤ情報ｓｉｄｈを上記更新装置に対して出力し、
上記更新装置が、
第１の入力部において、上記秘匿化ＩＤ情報ｓｉｄｈの入力を受け付け、
第２の読書き部において、上記第１の入力部に入力された上記秘匿化ＩＤ情報ｓｉｄｈが具備する上記鍵ＩＤ情報ｋｉｄｊに対応する上記公開鍵ｐｋｊを上記鍵メモリから抽出し、
暗号化部において、上記第２の読書き部が抽出した上記公開鍵ｐｋｊを用い、上記秘匿化ＩＤ情報ｓｉｄｈが具備する上記第１の暗号文を再暗号化し、当該第１の暗号文との関連性の把握が困難な第２の暗号文を生成し、
第２の出力部において、上記第２の暗号文と、その上記公開鍵ｐｋｊの上記鍵ＩＤ情報ｋｉｄｊと、を有する新たな秘匿化ＩＤ情報ｓｉｄｈ’を上記タグ装置ｈに対して出力し、
上記タグ装置ｈが、
第２の入力部において、上記新たな秘匿化ＩＤ情報ｓｉｄｈ’の入力を受け付け、
上記読書き部において、上記新たな秘匿化ＩＤ情報ｓｉｄｈ’を上記秘密値メモリに格納する、
ことを特徴とするタグプライバシー保護方法。
【請求項４７】
タグ装置から出力される情報から利用者のプライバシー情報が取得されることを防止するタグプライバシー保護方法であって、
上記各タグ装置ｈ（ｈ∈｛１，．．．，ｍ｝，ｍはタグ装置の総数）の秘密値メモリに、それぞれのタグＩＤ情報ｉｄｈを秘匿化した秘匿化ＩＤ情報ｓｉｄｈを格納しておき、
上記タグ装置ｈが、
第１の読書き部において、その上記秘密値メモリに格納されている上記秘匿化ＩＤ情報ｓｉｄｈを読み出し、
第１の出力部において、上記秘匿化ＩＤ情報ｓｉｄｈを当該タグ装置ｈの外部に設けられた第１の更新装置に対して出力し、
上記第１の更新装置が、
第１の入力部において、上記秘匿化ＩＤ情報ｓｉｄｈの入力を受け付け、
ＩＤ抽出部において、上記秘匿化ＩＤ情報ｓｉｄｈからタグＩＤ情報ｉｄｈを求め、
第２の出力部において、上記タグＩＤ情報ｉｄｈを上記タグ装置ｈの外部に設けられた第２の更新装置に対して出力し、
上記第２の更新装置が、
第３の入力部において、上記タグＩＤ情報ｉｄｈの入力を受け付け、
暗号化部において、上記タグＩＤ情報ｉｄｈを秘匿化した新たな秘匿化ＩＤ情報ｓｉｄｈ’を生成し、
第３の出力部において、上記新たな秘匿化ＩＤ情報ｓｉｄｈ’を上記タグ装置ｈに対して出力し、
上記タグ装置ｈが、第２の入力部において、上記新たな秘匿化ＩＤ情報ｓｉｄｈ’の入力を受け付け、
上記読書き部において、上記新たな秘匿化ＩＤ情報ｓｉｄｈ’を上記秘密値メモリに格納する、
ことを特徴とするタグプライバシー保護方法。
【請求項４８】
タグ装置の秘匿化ＩＤ情報を更新する更新装置であって、
上記タグ装置の外部に設けられ、
各タグＩＤ情報ｉｄｈと、当該タグＩＤ情報ｉｄｈに対応する上記ランダム値ｒｈである上記秘匿化ＩＤ情報ｓｉｄｈと、を対応付けて格納する秘匿化ＩＤメモリと、
上記タグ装置から出力された秘匿化ＩＤ情報ｓｉｄｈの入力を受け付ける第１の入力部と、
新たなランダム値ｒｈ’を生成するランダム値生成部と、
上記秘匿化ＩＤメモリに接続され、上記第１の入力部に入力された上記秘匿化ＩＤ情報ｓｉｄｈに対応するタグＩＤ情報ｉｄｈを当該秘匿化ＩＤメモリから選択し、これに上記新たなランダム値ｒｈ’を新たな秘匿化ＩＤ情報ｓｉｄｈ’として対応付けて当該秘匿化ＩＤメモリに格納する第２の読書き部と、
上記新たな秘匿化ＩＤ情報ｓｉｄｈ’を上記タグ装置ｈに対して出力する第２の出力部と、
を有することを特徴とする更新装置。
【請求項４９】
タグ装置の秘匿化ＩＤ情報を更新する更新装置であって、
上記タグ装置の外部に設けられ、
各鍵ＩＤ情報ｋｉｄｊ（ｊ∈｛１，．．．，ｎ｝，ｎは鍵の総数）と共通鍵暗号方式の各共通鍵ｋｊとを対応つけて格納する鍵メモリと、
タグＩＤ情報ｉｄｈに対応する共通鍵暗号方式による第１の暗号文と、その暗号化に用いた共通鍵ｋｊの鍵ＩＤ情報ｋｉｄｊと、を有する秘匿化ＩＤ情報ｓｉｄｈの入力を受け付ける第１の入力部と、
上記鍵メモリに接続され、上記秘匿化ＩＤ情報ｓｉｄｈが具備する上記鍵ＩＤ情報ｋｉｄｊに対応する上記共通鍵ｋｊを当該鍵メモリから抽出する第２の読書き部と、
上記第２の読書き部が抽出した上記共通鍵ｋｊを用いて上記第１の暗号文を復号し、タグＩＤ情報ｉｄｈを抽出するＩＤ抽出部と、
上記ＩＤ抽出部が抽出した上記タグＩＤ情報ｉｄｈと、その抽出に用いられた上記共通鍵ｋｊとを用い、上記第１の暗号文との関連性の把握が困難な第２の暗号文を生成する暗号化部と、
上記第２の暗号文と、その共通鍵ｋｊの上記鍵ＩＤ情報ｋｉｄｊとを有する新たな秘匿化ＩＤ情報ｓｉｄｈ’を上記タグ装置ｈに対して出力する第２の出力部と、
を有することを特徴とする更新装置。
【請求項５０】
タグ装置の秘匿化ＩＤ情報を更新する更新装置であって、
上記タグ装置の外部に設けられ、
各鍵ＩＤ情報ｋｉｄｊ（ｊ∈｛１，．．．，ｎ｝，ｎは鍵の総数）と各鍵ペア（ｓｋｊ，ｐｋｊ）（ｓｋｊは秘密鍵，ｐｋｊは公開鍵）とを対応つけて格納した鍵メモリと、
タグＩＤ情報ｉｄｈに対応する公開鍵暗号方式による第１の暗号文と、その暗号化に用いた公開鍵ｐｋｊの鍵ＩＤ情報ｋｉｄｊと、を有する秘匿化ＩＤ情報ｓｉｄｈの入力を受け付ける第１の入力部と、
上記鍵メモリに接続され、上記第１の入力部に入力された上記秘匿化ＩＤ情報ｓｉｄｈが具備する上記鍵ＩＤ情報ｋｉｄｊに対応する上記鍵ペア（ｓｋｊ，ｐｋｊ）を上記鍵メモリから抽出する第２の読書き部と、
上記第２の読書き部が抽出した上記秘密鍵ｓｋｊを用いて上記第１の暗号文を復号し、上記タグＩＤ情報ｉｄｈを抽出するＩＤ抽出部と、
上記ＩＤ抽出部が抽出した上記タグＩＤ情報ｉｄｈと、上記第２の読書き部が抽出した上記公開鍵ｐｋｊとを用い、上記第１の暗号文との関連性の把握が困難な第２の暗号文を生成する暗号化部と、
上記第２の暗号文と、その上記鍵ペア（ｓｋｊ，ｐｋｊ）の上記鍵ＩＤ情報ｋｉｄｊと、を有する新たな秘匿化ＩＤ情報ｓｉｄｈ’を上記タグ装置ｈに対して出力する第２の出力部と、
を有することを特徴とする更新装置。
【請求項５１】
タグ装置の秘匿化ＩＤ情報を更新する更新装置であって、
上記タグ装置の外部に設けられ、
各鍵ＩＤ情報ｋｉｄｊ（ｊ∈｛１，．．．，ｎ｝，ｎは鍵の総数）と各公開鍵ｐｋｊとを対応つけて格納した鍵メモリと、
タグＩＤ情報ｉｄｈに対応する再暗号化可能な公開鍵暗号方式による第１の暗号文と、その公開鍵ｐｋｊの鍵ＩＤ情報ｋｉｄｊと、を有する秘匿化ＩＤ情報ｓｉｄｈの入力を受け付ける第１の入力部と、
上記鍵メモリに接続され、上記第１の入力部に入力された上記秘匿化ＩＤ情報ｓｉｄｈが具備する上記鍵ＩＤ情報ｋｉｄｊに対応する上記公開鍵ｐｋｊを上記鍵メモリから抽出する第２の読書き部と、
上記第２の読書き部が抽出した上記公開鍵ｐｋｊを用い、上記秘匿化ＩＤ情報ｓｉｄｈが具備する上記第１の暗号文を再暗号化し、当該第１の暗号文との関連性の把握が困難な第２の暗号文を生成する暗号化部と、
上記第２の暗号文と、その上記公開鍵ｐｋｊの上記鍵ＩＤ情報ｋｉｄｊと、を有する新たな秘匿化ＩＤ情報ｓｉｄｈ’を上記タグ装置ｈに対して出力する第２の出力部と、
を有することを特徴とする更新装置。
【請求項５２】
請求項４９から５１の何れかに記載の更新装置であって、
上記鍵ＩＤ情報ｋｉｄｊは、
関連性のない複数の上記タグ装置に共有されている情報である、
ことを特徴とする更新装置。
【請求項５３】
更新装置にタグ装置の秘匿化ＩＤ情報の更新を依頼する更新依頼装置であって、
タグ装置の外部に設けられ、
同一のタグＩＤ情報ｉｄｈに対応する再暗号化可能な暗号文である秘匿化ＩＤが、複数種類入力される秘匿化ＩＤ入力部と、
入力された複数種類の上記秘匿化ＩＤを格納する秘匿化ＩＤメモリと、
上記秘匿化ＩＤメモリに接続され、所定の契機で当該秘匿化ＩＤメモリから１つの秘匿化ＩＤを抽出する秘匿化ＩＤ抽出部と、
抽出された上記秘匿化ＩＤを上記タグ装置に対して出力する秘匿化ＩＤ出力部と、
を有することを特徴とする更新依頼装置。
【請求項５４】
タグ自動認識システムに使用されるタグ装置であって、
同一のタグＩＤ情報ｉｄｈに対応する再暗号化可能な暗号文である秘匿化ＩＤが、複数種類入力される秘匿化ＩＤ入力部と、
入力された複数種類の上記秘匿化ＩＤを格納する秘匿化ＩＤメモリと、
上記秘匿化ＩＤメモリに接続され、所定の契機で当該秘匿化ＩＤメモリから１つの秘匿化ＩＤを抽出する秘匿化ＩＤ抽出部と、
上記秘匿化ＩＤメモリに接続され、所定の契機で当該秘匿化ＩＤメモリから１つの秘匿化ＩＤを抽出する秘匿化ＩＤ抽出部と、
抽出された上記秘匿化ＩＤを出力する秘匿化ＩＤ出力部と、
を有することを特徴とするタグ装置。
【請求項５５】
タグ装置から出力される情報から利用者のプライバシー情報が取得されることを防止するタグプライバシー保護方法であって、
鍵メモリに、鍵ＩＤと鍵とが対応付けられて格納されており、
上記タグ装置は、鍵ＩＤが格納された読取専用領域と、第１の秘匿化ＩＤが格納された書換可能領域と、を有する秘匿化ＩＤメモリを有しており、
上記タグ装置が、
読書き部において、上記秘匿化ＩＤメモリから上記鍵ＩＤと上記第１の秘匿化ＩＤを抽出し、
抽出された上記鍵ＩＤと上記第１の秘匿化ＩＤを、第１の出力部において、更新装置に対して出力し、
上記更新装置が、
第１の入力部において、上記鍵ＩＤと上記第１の秘匿化ＩＤの入力を受け付け、
第１の鍵抽出部において、第１入力部に入力された上記鍵ＩＤに対応する鍵を上記鍵メモリから抽出し、
秘匿化ＩＤ更新部において、上記第１の鍵抽出部が抽出した上記鍵と、上記第１の入力部に入力された上記第１の秘匿化ＩＤとを用い、上記第１の秘匿化ＩＤとの関連性の把握が困難な第２の秘匿化ＩＤを生成し、
第２の出力部において、上記第２の秘匿化ＩＤを出力し、
上記タグ装置が、
第２の入力部において、上記第２の秘匿化ＩＤの入力を受け付け、
上記読書き部において、上記第２の秘匿化ＩＤを、上記秘匿化ＩＤメモリの上記書換可能領域に格納する、
ことを特徴とするタグプライバシー保護方法。
【請求項５６】
請求項５５記載のタグプライバシー保護方法であって、
上記更新装置は、さらに、上記第２の秘匿化ＩＤに対する検証情報を生成する検証情報生成部を有し、
上記更新装置の第２の出力部は、上記第２の秘匿化ＩＤ及び上記検証情報を出力し、
上記タグ装置の第２の入力部は、上記第２の秘匿化ＩＤ及び上記検証情報の入力を受け付け、
上記タグ装置の上記読書き部は、上記第２の秘匿化ＩＤ及び上記検証情報を、上記秘匿化ＩＤメモリの上記書換可能領域に格納する、
ことを特徴とするタグプライバシー保護方法。
【請求項５７】
請求項５５記載のタグプライバシー保護方法であって、
上記タグ装置が、
読書き部において、上記秘匿化ＩＤメモリの読取専用領域から上記鍵ＩＤを抽出し、上記書換可能領域から第３の秘匿化ＩＤを抽出し、
抽出された上記鍵ＩＤと上記第３の秘匿化ＩＤを、第１の出力部において、復号装置に対して出力し、
上記復号装置が、
第３の入力部において、上記鍵ＩＤと上記第１の秘匿化ＩＤの入力を受け付け
第２の鍵抽出部において、上記第３の入力部に入力された上記鍵ＩＤに対応する鍵を、上記鍵メモリから抽出し、
第３の入力部に入力された上記秘匿化ＩＤと、上記第２の鍵抽出部が抽出した上記鍵とを用い、ＩＤ算出部においてＩＤを算出し、
算出されたＩＤの構造を、ＩＤ構造検証部において検証する、
ことを特徴とするタグプライバシー保護方法。
【請求項５８】
タグ自動認識システムに使用されるタグ装置であって、
鍵ＩＤが格納された読取専用領域と、第１の秘匿化ＩＤが格納された書換可能領域と、を有する秘匿化ＩＤメモリと、
上記秘匿化ＩＤメモリから、上記鍵ＩＤと上記第１の秘匿化ＩＤを抽出する読書き部と、
抽出された上記鍵ＩＤと上記第１の秘匿化ＩＤを出力する第１の出力部と、
上記第１の秘匿化ＩＤとの関連性の把握が困難な第２の秘匿化ＩＤの入力を受け付ける第２の入力部と、
を有し、
上記読書き部は、
入力された上記第２の秘匿化ＩＤを、上記秘匿化ＩＤメモリの上記書換可能領域に格納する、
ことを特徴とするタグ装置。
【請求項５９】
請求項５８記載のタグ装置であって、
上記第２の入力部は、
さらに、上記第２の秘匿化ＩＤに対する検証情報の入力を受け付け、
上記読書き部は、
入力された上記検証情報を、さらに上記秘匿化ＩＤメモリの上記書換可能領域に格納する、
ことを特徴とするタグ装置。
【請求項６０】
請求項５８に記載のタグ装置であって、
上記秘匿化ＩＤは、
ＩＤを構成する情報のうち、各タグ装置に固有な情報のみを秘匿化した情報である、
ことを特徴とするタグ装置。
【請求項６１】
請求項５８に記載のタグ装置であって、
関連性のないタグ装置に、同じ上記鍵ＩＤが割り当てられる、
ことを特徴とするタグ装置。
【請求項６２】
請求項１７、５４或いは５８に記載のタグ装置としてコンピュータを機能させるためのタグプログラム。
【請求項６３】
請求項１８記載のバックエンド装置としてコンピュータを機能させるためのタグプログラム。
【請求項６４】
請求項４８から５１の何れかに記載の更新装置としてコンピュータを機能させるための更新プログラム。
【請求項６５】
請求項５３記載の更新依頼装置としてコンピュータを機能させるための更新依頼プログラム。
【請求項６６】
請求項１７、５４或いは５８に記載のタグ装置としてコンピュータを機能させるためのタグプログラムを格納したコンピュータ読取り可能な記録媒体。
【請求項６７】
請求項１８記載のバックエンド装置としてコンピュータを機能させるためのタグプログラムを格納したコンピュータ読取り可能な記録媒体。
【請求項６８】
請求項４８から５１の何れかに記載の更新装置としてコンピュータを機能させるための更新プログラムを格納したコンピュータ読取り可能な記録媒体。
【請求項６９】
請求項５３記載の更新依頼装置としてコンピュータを機能させるための更新依頼プログラムを格納したコンピュータ読取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】  本発明は、情報セキュリティ技術を応用したタグ技術に関し、特にタグ装置から出力される情報から利用者のプライバシー情報が取得されることを防止するタグプライバシー保護方法、タグ装置、バックエンド装置、更新装置、更新依頼装置、プログラム及び記録媒体に関する。
【背景技術】
【０００２】  近年、ＲＦＩＤ（Ｒａｄｉｏ  Ｆｒｅｑｕｅｎｃｙ  Ｉｄｅｎｔｉｆｉｃａｔｉｏｎ：電波方式認識）等のタグ自動認識システムの導入が進んでいる。このシステムは、「タグ（ｔａｇ）装置」と呼ばれる小型の情報記録媒体、「リーダー（ｒｅａｄｅｒ）装置」と呼ばれる読取り機、及び「バックエンド（ｂａｃｋ−ｅｎｄ）装置」と呼ばれるデータベースサーバから構成され、物流管理等に利用されるものである。以下、この技術を概説する。
〔タグ装置の処理〕
基本的なタグ自動認識システムでは、各タグ装置に固有なタグＩＤ情報（例えば、ＭＩＴによるＡｕｔｏ−ＩＤセンターが定めるタグＩＤは、製造者コードと、商品の種別を示す商品コードと、商品個体の番号を示す個体番号とからなっている。）がタグ装置に格納される。また、タグ装置は物品等に付され、無線通信により、各タグ装置固有のタグＩＤ情報を店舗等に設置されたリーダー装置に送信する。【０００３】  〔リーダー装置の処理〕
リーダー装置は、無線通信によりタグ装置からタグＩＤ情報を読取り、そのタグＩＤ情報をバックエンド装置へ送って、物流情報の取得等を依頼する。
〔バックエンド装置の処理〕
バックエンド装置は、各タグ装置のＩＤと物流情報等のデータベースを管理する。そして、バックエンド装置は、リーダー装置から送られたタグＩＤ情報をキーに、このデータベースの物流情報等を検索し、その検索結果をリーダー装置に送信する。【０００４】  〔基本的なタグ自動認識システムの問題点〕
しかし、基本的なタグ自動認識システムでは、リーダー装置を持っている者であれば誰でもタグＩＤ情報を読み取れるため、盗聴されたタグＩＤ情報から所持品の情報が漏洩してしまう危険性があった。
これに対し、非特許文献２には、タグ装置がハッシュ（ｈａｓｈ）値をリーダー装置に出力する方法が記載されている。
この方法の場合、まず、タグ装置は、ＩＤ情報ｉｄと乱数ｒのビット結合のハッシュ値Ｈ（ｉｄ｜ｒ）と、この乱数ｒをリーダー装置に送る。リーダー装置はこれらをバックエンド装置に送る。バックエンド装置は、受け取った乱数ｒと、データベースに格納されている各ｉｄ’をビット結合し、そのハッシュ値Ｈ（ｉｄ’｜ｒ）を求める。そして、バックエンド装置は、求めたハッシュ値Ｈ（ｉｄ’｜ｒ）と、受け取ったハッシュ値Ｈ（ｉｄ｜ｒ）とが一致するか否かを検証し、一致したｉｄ’に対応する物流情報等をリーダー装置に送信する。これにより、第三者へのタグＩＤ情報の漏洩を防止できる。なお、Ｈ（＊）とは、＊にハッシュ関数Ｈを作用させる処理を意味する。【０００５】  また、未公開の特許出願番号２００３−１１１３４２及び２００３−１１３７９８に示す方法では、タグＩＤ情報を秘匿化した秘匿化ＩＤを用い、第三者へのタグＩＤ情報の漏洩を防止していた。すなわち、これらの手法では、秘匿化ＩＤをタグ装置に格納しておき、この秘匿化ＩＤを読み取ったクライアント装置が、ネットワーク上のセキュリティサーバ装置に、この秘匿化ＩＤの復号を依頼する。この依頼を受けたセキュリティサーバ装置は、依頼元が正規のクライアント装置であることを確認した後、この秘匿化ＩＤの復号結果である平文のタグＩＤ情報を応答する。これにより、第三者へのタグＩＤ情報の漏洩を防止できる。
【非特許文献１】ＥＰＣ  ｇｌｏｂａｌ，Ｉｎｃ．、”ＥＰＣｇｌｏｂａｌ”、［ｏｎｌｉｎｅ］、［平成１６年９月９日検索］、インターネット＜ｈｔｔｐ：／／ｗｗｗ．ｅｐｃｇｌｏｂａｌｉｎｃ．ｏｒｇ／＞
【非特許文献２】Ｓｔｅｐｈｅｎ  Ａ．Ｗｅｉｓ，Ｓａｎｊａｙ  Ｅ．Ｓａｒｍａ，Ｒｏｎａｌｄ  Ｌ．Ｒｉｖｅｓｔ，Ｄａｎｉｅｌ  Ｗ．Ｅｎｇｅｌｓ，Ｓｅｃｕｒｉｔｙ  ａｎｄ  Ｐｒｉｖａｃｙ  Ａｓｐｅｃｔｓ  ｏｆ  Ｌｏｗ−Ｃｏｓｔ  Ｒａｄｉｏ  Ｆｒｅｑｕｅｎｃｙ  Ｉｄｅｎｔｉｆｉｃａｔｉｏｎ  Ｓｙｓｔｅｍｓ，Ｆｉｒｓｔ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ｓｅｃｕｒｉｔｙ  ｉｎ  Ｐｅｒｖａｓｉｖｅ  Ｃｏｍｐｕｔｉｎｇ．
【発明の開示】
【発明が解決しようとする課題】
【０００６】  しかし、従来の方法では、タグ装置から出力される情報から、タグ装置の流通過程が追跡（ｔｒａｃｅ）される場合がある。
つまり、例えば非特許文献２に記載された方法の場合、タグ装置からリーダー装置に送られるハッシュ値Ｈ（ｉｄ｜ｒ）は、ｉｄを知らない第三者にとっては単なる乱数である。また、乱数ｒは、タグ装置とリーダー装置との通信を行うたびに生成されるため、ハッシュ値Ｈ（ｉｄ｜ｒ）も通信ごとに異なる。従って、通常、攻撃者は、タグ装置から盗聴したハッシュ値Ｈ（ｉｄ｜ｒ）と、過去の通信履歴のハッシュ値Ｈ（ｉｄ｜ｒｉ）との関連性を知ることはできない。しかし、タグ装置のタンパー等により、攻撃者がＩＤ情報ｉｄを取得できた場合、この攻撃者は、通信履歴の乱数ｒｉからハッシュ値Ｈ（ｉｄ｜ｒｉ）を計算することができる（ハッシュ関数Ｈを知っていれば）。そして、その算出値が通信履歴のハッシュ値（乱数ｒｉに対応する）と一致するか否かを検証することにより、この攻撃者は、その通信履歴が、取得したＩＤに対応するものであるか否かを知ることができ、このＩＤに対応する通信履歴を収集することにより、タグ装置の流通過程を追跡することができる。【０００７】  また、例えば特許出願番号２００３−１１１３４２等に示す方法では、常に無線タグ装置から同じ秘匿化ＩＤが返されるため、攻撃者は、平文のＩＤを解読できなくても、その秘匿化ＩＤを追跡することによって、そのタグ装置の流通過程を追跡することができる。
本発明はこのような点に鑑みてなされたものであり、第三者によるタグ装置の流通過程の追跡を防止することが可能な技術を提供することを目的とする。
【課題を解決するための手段】
【０００８】  以上の課題を解決するために、タグ装置にタグＩＤ情報の秘匿化情報を格納しておき、これを所定の契機で上書き更新する。これにより、攻撃者は、過去にタグ装置が出力した情報と、更新された秘匿化情報との関連をとることが困難となり、タグ装置の流通過程を追跡することが困難となる。
例えば、第１の本発明では、各タグ装置の秘密値メモリに、それぞれのタグＩＤ情報に対応する秘密値を格納しておく。そして、リーダー装置からの呼び出しに対し、タグ装置は、出力部において、秘密値メモリの秘密値に対応するタグ出力情報を出力する。そして、タグ装置は、第１の演算部において、秘密値メモリから秘密値の少なくとも一部の要素を読み出し、これに、逆像を求めることが困難な第１の関数Ｆ１を作用させ、その演算結果で秘密値メモリ内の秘密値を上書き更新する。ここで、秘密値メモリ内の秘密値は上書き更新されるため、攻撃者がタンパー等により秘密値メモリに格納された秘密値を取得しても、更新後の秘密値は更新前にタグ装置から送信された情報には対応していない。また、この更新は、逆像を求めることが困難な第１の関数Ｆ１を作用させることによって行うため、ある時点の秘密値から更新前の秘密値を求めることは困難である。よって、攻撃者は、タグ装置と通信履歴との対応を知ることができない。【０００９】  また、例えば、第２の本発明では、タグ装置の外部に設けられた更新装置において、タグ装置に格納されている秘匿化ＩＤ情報を、所定の契機で、それとの関連性の把握が困難な新たな秘匿化ＩＤ情報に更新する。このように秘匿化ＩＤ情報が更新されるため、攻撃者は、この更新前にタグ装置からバックエンド装置へ出力された秘匿化ＩＤ情報と、更新後の新たな秘匿化ＩＤ情報との対応を知ることはできない。よって、攻撃者は、タグ装置と通信履歴との対応を知ることができない。
【発明の効果】
【００１０】  以上のように、本発明では、第三者がタグ装置と通信履歴との対応を知ることができないため、第三者によるタグ装置の流通過程の追跡を防止できる。
【図面の簡単な説明】
【００１１】［図１］Ａは、第１の実施の形態のタグ自動認識システムの全体を例示したブロック図である。また、Ｂはタグ装置の概略構成を、Ｃはバックエンド装置の概略構成を、それぞれ例示したブロック図である。
［図２］実施例１のタグ自動認識システムの全体構成を例示した図である。
［図３］実施例１の処理を説明するためのフローチャートである。
［図４］実施例２のタグ自動認識システムの全体構成を例示した図である。
［図５］実施例３のタグ自動認識システムの全体構成を例示した図である。
［図６］実施例３のバックエンド装置の処理を説明するためのフローチャートである。
［図７］実施例４のタグ自動認識システムの全体構成を例示した図である。
［図８］実施例４のバックエンド装置の処理を説明するためのフローチャートである。
［図９］実施例５のタグ自動認識システムの全体構成を例示した図である。
［図１０］Ａは、実施例５のタグ装置の処理を説明するためのフローチャートであり、Ｂは、本実施例のバックエンド装置の処理を説明するためのフローチャートである。
［図１１］実施例６のタグ自動認識システムの全体構成を例示した図である。
［図１２］実施例６の処理を説明するためのフローチャートである。
［図１３］実施例７のタグ自動認識システムの全体構成を例示した図である。
［図１４］実施例７の処理を説明するためのフローチャートである。
［図１５］実施例８のタグ自動認識システムの全体構成を例示した図である。
［図１６］Ａは、タグ装置の秘密値メモリに格納されるデータの例示であり、Ｂは、バックエンド装置のデータベースメモリに格納されるデータの例示である。
［図１７］実施例８の処理を説明するためのフローチャートである。
［図１８］実施例８の処理を説明するためのフローチャートである。
［図１９］実施例９のタグ自動認識システムの全体構成を例示した図である。
［図２０］Ａは、タグ装置の秘密値メモリに格納されるデータの例示であり、Ｂは、バックエンド装置のデータベースメモリに格納されるデータの例示である。
［図２１］実施例１０のタグ自動認識システムの全体構成を例示した図である。
［図２２］実施例１０のタグ装置の処理を説明するためのフローチャートである。
［図２３］実施例１０のバックエンド装置の処理を説明するためのフローチャートである。
［図２４］実施例１１のタグ自動認識システムの全体構成を例示した図である。
［図２５］実施例１１のタグ装置の処理を説明するためのフローチャートである。
［図２６］実施例１１のバックエンド装置の処理の一部を説明するためのフローチャートである。
［図２７］実施例１２のタグ装置の処理を説明するためのフローチャートである。
［図２８］第２の実施の形態の概略構成を例示したブロック図である。
［図２９］実施例１４の更新システムの全体構成を例示した概念図である。
［図３０］実施例１４の更新システムの機能構成を例示したブロック図である。
［図３１］実施例１４の処理手順を説明するためのフローチャートである。
［図３２］本実施例１５の更新システムの機能構成を例示したブロック図である。
［図３３］本実施例１５の処理手順を説明するためのフローチャートである。
［図３４］実施例１６の更新システムの機能構成を例示したブロック図である。
［図３５］実施例１６の処理手順を説明するためのフローチャートである。
［図３６］実施例１７の更新システムの機能構成を例示したブロック図である。
［図３７］実施例１７の処理手順を説明するためのフローチャートである。
［図３８］実施例１８の更新システムの全体構成を例示した概念図である。
［図３９］実施例１８の更新システムの機能構成を例示したブロック図である。
［図４０］実施例１８の処理手順を説明するためのフローチャートである。
［図４１］実施例１９の更新システムの機能構成を例示したブロック図である。
［図４２］実施例１９の処理手順を説明するためのフローチャートである。
［図４３］実施例２０の更新システムの機能構成を例示したブロック図である。
［図４４］実施例２０の処理手順を説明するためのフローチャートである。
［図４５］実施例２１の更新システムの機能構成を例示したブロック図である。
［図４６］実施例２２の更新システムの機能構成を例示したブロック図である。
［図４７］実施例２３の更新システムの全体構成を例示した概念図である。
［図４８］実施例２３の更新システムの機能構成を例示した図である。
［図４９］実施例２３の処理手順を説明するためのフローチャートである。
［図５０］実施例２３の処理手順を説明するためのフローチャートである。
［図５１］実施例２４のセキュリティサーバ装置の機能構成を例示した図である。
［図５２］実施例２４のフォーマットを例示した図である。
［図５３］実施例２４のセキュリティサーバ装置の処理手順を説明するためのフローチャートである。
［図５４］実施例２５の更新システムの機能構成を例示した図である。
［図５５］実施例２５の更新システムの機能構成を例示した図である。
［図５６］実施例２５の処理手順を説明するためのフローチャートである。
［図５７］実施例２５の処理手順を説明するためのフローチャートである。
［図５８］実施例２６におけるタグ装置の機能構成を例示した図ある。
【符号の説明】
【００１２】１  タグ自動認識システム
１０  タグ装置
１１  秘密値メモリ
１２  第１の演算部
１３  第２の演算部
１４  出力部
２０  リーダー装置
３０  バックエンド装置
３１  データベースメモリ
３２  入力部
３３  演算部
３４  比較部
３５  読出し部
４０  ネットワーク
１５００  更新システム
１５１０  タグ装置
１５１１  秘密値メモリ
１５１２  読書き部
１５１３  出力部
１５１４  入力部
１５６０  セキュリティサーバ装置
１５６１  入力部
１５６２  更新部
１５６３  出力部
【発明を実施するための最良の形態】
【００１３】  以下、本発明の実施の形態を図面を参照して説明する。
〔第１の実施の形態〕
＜構成＞
図１Ａは、第１の実施の形態におけるタグ自動認識システム１の全体を例示したブロック図である。また、Ｂはタグ装置１０の概略構成を、Ｃはバックエンド装置３０の概略構成を、それぞれ例示したブロック図である。
図１Ａに例示するように、本形態のタグ自動認識システム１は、タグ装置１０と、リーダー装置２０と、このリーダー装置２０にネットワーク４０を通じて接続されたバックエンド装置３０とからなる。【００１４】  また、図１Ｂに例示するように、本形態のタグ装置１０は、それぞれのタグＩＤ情報に対応する秘密値が格納され秘密値メモリ１１と、逆像を求めることが困難な第１の関数Ｆ１を作用させる第１の演算部１２と、定義域の元とその写像との関係を撹乱させる第２の関数Ｆ２を作用させる第２の演算部１３と、秘密値メモリ１１の秘密値に対応するタグ出力情報をバックエンド装置３０に対して出力する出力部１４とからなる。
また、図１Ｃに例示するように、本形態のバックエンド装置３０は、各タグＩＤ情報とそれらに対応する秘密値とが対応付けられたデータベースメモリ３１と、タグ出力情報の入力を受け付ける入力部３２と、上記の第１の関数Ｆ１と第２の関数とを作用させる演算部３３と、演算部３３における演算結果とタグ出力情報とを比較する比較部３４と、データベースメモリ３１から情報を抽出する読出し部３５とからなる。【００１５】  ＜タグ装置１０の処理＞
タグ装置１０がリーダー装置２０からの読み出し要求を受けると、まず、タグ装置１０の第２の演算部１３が、秘密値メモリ１１から秘密値を読み出し、これに第２の関数Ｆ２を作用させたタグ出力情報を生成する。このタグ出力情報は出力部１４に送られ、出力部１４においてバックエンド装置３０に対して出力（無線或いは有線）される。その後、第１の演算部１２において、秘密値メモリ１１から秘密値の少なくとも一部の要素を読み出し、これに第１の関数Ｆ１を作用させ、その演算結果で秘密値メモリ１１内の秘密値を上書き更新する。なお、ここではタグ出力情報を生成した後、秘密値メモリ１１内の秘密値を上書き更新しているが、秘密値メモリ１１内の秘密値を上書き更新した後、タグ出力情報を生成する構成としてもよい。【００１６】  ＜リーダー装置２０の処理＞
リーダー装置２０は、タグ装置１０からバックエンド装置３０に対して出力されたタグ出力情報の入力を受け付け、これを、ネットワーク４０を通じバックエンド装置３０に送信する。
＜バックエンド装置３０の処理＞
バックエンド装置３０の入力部３２は、リーダー装置２０から送信されたタグ出力情報の入力を受ける。これをトリガに、演算部３３は、データベースメモリ３１の秘密値の少なくとも一部の要素に、タグ装置１０で使用された第１の関数Ｆ１を所定回数作用させた後、さらに当該タグ装置１０で使用された第２の関数を作用させる。そして、比較部３４において、演算部３３における演算結果とタグ出力情報とを順次比較し、これらが一致した場合、読出し部３５において、一致した演算結果に対応する秘密値に対応付けられているタグＩＤ情報を、データベースメモリ３１から抽出する。
【実施例１】
【００１７】  図２は、第１の実施の形態の実施例１におけるタグ自動認識システム１００の全体構成を例示した図であり、図３は、この実施例１における処理を説明するためのフローチャートである。
以下、これらの図を用いて、実施例１の機能構成及び処理方法について説明する。
＜構成＞
図２に例示するように、実施例１のタグ自動認識システム１００は、タグ装置１１０、リーダー装置１２０、及びリーダー装置１２０にネットワーク１４０を通じて通信可能に接続されたバックエンド装置１３０を有する。なお、図２では、説明の簡略化のため、１つのタグ装置１１０のみを図示しているが、実際はこれ以上の数のタグ装置１１０が存在する。また、図２では、リーダー装置１２０及びバックエンド装置１３０を一つずつ示しているが、これ以上の数のリーダー装置１２０及びバックエンド装置１３０によって本システムを構成してもよい。【００１８】  ＜タグ装置＞
この例のタグ装置１１０は、秘密値メモリ１１１、ハッシュ演算部１１２（「第２の演算部」に相当）、ハッシュ演算部１１３（「第１の演算部」に相当）、インタフェース１１４（「出力部」に相当）、及びメモリ１１５ａを具備する制御部１１５を有する。
ここで、秘密値メモリ１１１，メモリ１１５ａは、例えば、ＥＥＰＲＯＭ（Ｅｌｅｃｔｒｏｎｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  ａｎｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＦｅＲＡＭ（Ｆｅｒｒｏｅｌｅｃｔｒｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、フラッシュメモリ、ＮＶ（Ｎｏｎｖｏｌａｔｉｌｅ）ＲＡＭ等の読書き可能なメモリである。【００１９】  ハッシュ演算部１１２及びハッシュ演算部１１３は、例えば、入力値にそれぞれ一方向性関数であるハッシュ（ｈａｓｈ）関数Ｇ，Ｈ：｛０，１｝＊→｛０，１｝Ｌを作用させ、その結果を出力するように構成された集積回路である。なお、｛０，１｝＊は、全てのバイナリ系列の集合を意味し、｛０，１｝Ｌは、Ｌビット長のバイナリ系列の集合を意味する。また、このようなハッシュ関数Ｇ，Ｈとしては、ＳＨＡ−１、ＭＤ５等を例示できる。なお、このハッシュ関数Ｈは「逆像を求めることが困難な第１の関数Ｆ１」に相当し、ハッシュ関数Ｇは「定義域の元とその写像との関係を撹乱させる第２の関数Ｆ２」に相当する。また、制御部１１５は、例えば、タグ装置１１０全体の処理を制御するように構成された集積回路である。【００２０】  インタフェース１１４は、例えば、無線或いは有線によってリーダー装置１２０にデータを出力するハードウェアである。具体的には、インタフェース１１４は、例えば、ＮＲＺ符号やマンチェスター符号化やミラー符号や単極ＲＺ符号化等によって符号化・復号化を行う符号化・復号化回路、ＡＳＫ（Ａｍｐｌｉｔｕｄｅ  Ｓｈｉｆｔ  Ｋｅｙｉｎｇ）やＰＳＫ（Ｐｈａｓｅ  Ｓｈｉｆｔ  Ｋｅｙｉｎｇ）やＦＳＫ（Ｆｒｅｑｕｅｎｃｙ  Ｓｈｉｆｔ  Ｋｅｙｉｎｇ）等によって変・復調を行う変・復調回路、ダイポールアンテナやマイクロストリップアンテナやループコイルやコア入りコイル等のアンテナを有し、長周帯やＩＳＭ帯（Ｉｎｄｕｓｔｒｙ  Ｓｃｉｅｎｃｅ  Ｍｅｄｉｃａｌ  ｂａｎｄ）の周波数を用いて信号の送受信を行う。なお、通信方式は、例えば、電磁誘導方式や電波方式を利用する。【００２１】  またハッシュ演算部１１２及びハッシュ演算部１１３は、秘密値メモリ１１１と電気的に接続され、ハッシュ演算部１１２は、インタフェース１１４（「出力部」に相当）と電気的に接続される。また、この図では省略するが、制御部１１５はタグ装置１１０の各部と電気的に接続されている。
＜リーダー装置＞
この例のリーダー装置１２０は、物流情報メモリ１２１、インタフェース１２２、通信部１２３、メモリ１２４ａ及び制御部１２４を有する。【００２２】  物流情報メモリ１２１は、例えば、ハードディスク装置、フレキシブルディスク等の磁気記録装置、ＤＶＤ−ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＣＤ−Ｒ（Ｒｅｃｏｒｄａｂｌｅ）／ＲＷ（ＲｅＷｒｉｔａｂｌｅ）等の光ディスク装置、ＭＯ（Ｍａｇｎｅｔｏ−Ｏｐｔｉｃａｌ  ｄｉｓｃ）等の光磁気記録装置、ＥＥＰ−ＲＯＭ（Ｅｌｅｃｔｒｏｎｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  ａｎｄ  Ｐｒｏｇｒａｍｍａｂｌｅ−Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、フラッシュメモリ（ｆｌａｓｈ  ｍｅｍｏｒｙ）等の半導体メモリ等である。インタフェース１２２は、例えば、インタフェース１１４の例と同様なハードウェアである。通信部１２３は、例えば、ＬＡＮカード、モデム、ターミナルアダプター等であり、制御部１２４は、例えば、メモリ１２４ａを有するＣＩＳＣ（Ｃｏｍｐｌｅｘ  Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｅｔ  Ｃｏｍｐｕｔｅｒ）方式、ＲＩＳＣ（Ｒｅｄｕｃｅｄ  Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｅｔ  Ｃｏｍｐｕｔｅｒ）方式等のＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）である。【００２３】  また、インタフェース１２２及び物流情報メモリ１２１は通信部１２３と電気的に接続され、この図では省略するが、制御部１２４はリーダー装置１２０の各部と電気的に接続されている。
＜バックエンド装置＞
この例のバックエンド装置１３０は、データベースメモリ１３１、通信部１３２（「入力部」に相当）、ハッシュ演算部１３３（「第３の演算部」に相当）、比較部１３４、読書き部１３５（「読出し部」に相当）、メモリ１３６ａ及び制御部１３６を有している。具体的には、バックエンド装置１３０は、例えば、ＣＰＵ、ＲＡＭ、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、磁気記録装置や光ディスク装置等の外部記憶装置、ＬＡＮカードやモデムやターミナルアダプター等をバスで接続した公知のノイマン型コンピュータに所定のプログラムを実行させることにより構成される。そしてこのＣＰＵが、ＲＡＭに格納されたプログラムを読み出し、それに従った処理を実行することによって以下に示す各処理機能を実現する。【００２４】  ＜前処理＞
まず、バックエンド装置１３０のハッシュ演算部１３３がタグ装置１１０と同じハッシュ関数Ｇ，Ｈを使用できるように、所定のプログラムがバックエンド装置１３０にインストールされる。
各タグＩＤ情報ｉｄｋ（ｋ∈｛１，．．．，ｍ｝，ｋは各タグ装置に対応，ｍはタグ装置の総数）に対応する秘密値ｓｋ，１（「第１の秘密値」に相当）を、それぞれのタグ装置１１０の秘密値メモリ１１１に１つずつ格納しておく。なお、この秘密値ｓｋ，１は、例えば、タグ装置１１０外部の乱数生成装置（図示せず）が、ＳＨＡ−１等の一方向性ハッシュ関数を用いた計算量理論に基づく擬似乱数生成アルゴリズムによって生成する擬似乱数ｓｋ，１∈｛０，１｝Ｌである。なお、異なるタグ装置に格納される乱数ｓｋ，１は相互に一致しないものとする。また、バックエンド装置１３０のデータベースメモリ１３１には、各タグ装置ｎに対応する秘密値ｓｎ，１（「第２の秘密値」に相当，ｎ∈｛１，．．．，ｍ｝，ｎはｋに対応）とタグＩＤ情報ｉｄｎと物流情報等のデータｄａｔａｎとが対応付けられて格納される。【００２５】  ＜タグ装置の処理＞
以下では、ｉ回目（ｉは自然数）に、タグ装置１１０をリーダー装置１２０に読取らせた際の処理を説明する。なお、タグ装置１１０の処理は、制御部１１５の制御のもと行われ、その制御に必要なデータはメモリ１１５ａに逐一読み書きされる。
まず、ハッシュ演算部１１２において、秘密値メモリ１１１から秘密値ｓｋ，ｉ（「第１の秘密値」に相当）を読み出し（ステップＳ１）、そのハッシュ値であるタグ出力情報Ｇ（ｓｋ，ｉ）を生成する（ステップＳ２）。このタグ出力情報Ｇ（ｓｋ，ｉ）は、インタフェース１１４に送られ、そこから無線或いは有線でリーダー装置１２０に送信される（ステップＳ３）。【００２６】  次に、ハッシュ演算部１１３において、秘密値メモリ１１１から読み出した秘密値ｓｋ，ｉのハッシュ値ｓｋ，ｉ＋１＝Ｈ（ｓｋ，ｉ）を演算し（ステップＳ４）、このハッシュ値ｓｋ，ｉ＋１を、新たな秘密値ｓｋ，ｉ＋１（「新たな第１の秘密値」に相当）として秘密値メモリ１１１に上書き保存する（秘密値メモリ１１１の秘密値ｓｋ，ｉを消去し、代わりに秘密値ｓｋ，ｉ＋１を格納する：ステップＳ５）。なお、Ｈ（＊）とは、＊にハッシュ関数Ｈを作用させる処理を意味する。
＜リーダー装置の処理＞
リーダー装置１２０の処理は、制御部１２４の制御のもと行われ、その制御に必要なデータはメモリ１２４ａに逐一読み書きされる。【００２７】  まず、リーダー装置１２０は、インタフェース１２２において、タグ装置１１０から送信されたタグ出力情報Ｇ（ｓｋ，ｉ）を受信し（ステップＳ６）、通信部１２３に送る。通信部１２３は、物流情報メモリ１２１から物流情報ｐｄ（例えば、リーダー装置１２０が設置されている店舗コード等）を抽出し（ステップＳ７）、この物流情報ｐｄとタグ出力情報Ｇ（ｓｋ，ｉ）とを、ネットワーク１４０を通じ、バックエンド装置１３０に送信する（ステップＳ８）。
＜バックエンド装置の処理＞
バックエンド装置１３０の処理は、制御部１３６の制御のもと行われ、その制御に必要なデータはメモリ１３６ａに逐一読み書きされる。【００２８】  まず、バックエンド装置１３０は、通信部１３２において、リーダー装置１２０から送信された物流情報ｐｄとタグ出力情報Ｇ（ｓｋ，ｉ）を受信する（入力を受け付ける：ステップＳ９）。なお、受信された物流情報ｐｄとタグ出力情報Ｇ（ｓｋ，ｉ）はメモリ１３６ａに格納される。次に、制御部１３６は、ｎに１を代入し、これをメモリ１３６ａに格納する（ステップＳ１０）。そして、制御部１３６は、メモリ１３６ａのｎの値を参照し、ハッシュ演算部１３３にデータベースメモリ１３１から秘密値ｓｎ，１を抽出させる（ステップＳ１１）。次に、制御部１３６は、ｊに０を代入し、これをメモリ１３６ａに格納する（ステップＳ１２）。そして、制御部１３６は、メモリ１３６ａのｊの値を参照し、ハッシュ演算部１３３にハッシュ値Ｇ（Ｈｊ（ｓｎ，１））（「第３の演算部における演算結果」に相当）を算出させる（ステップＳ１３）。なお、Ｈｊ（ｓｎ，１）は、秘密値ｓｎ，１にハッシュ関数Ｈをｊ回作用させることを意味する。また、Ｈ０（ｓｎ，１）はｓｎ，１を意味する。【００２９】  次に、比較部１３４において、ハッシュ演算部１３３からハッシュ値Ｇ（Ｈｊ（ｓｎ，１））を、メモリ１３６ａからタグ出力情報Ｇ（ｓｋ，ｉ）を、それぞれ取得し、それらを比較する（ステップＳ１４）。
ここで、これらの値が一致しなかった場合には（ステップＳ１５）、制御部１３６は、メモリ１３６ａのｊにｊ＋１を代入し（ステップＳ１６）、ｊが所定の最大値ｊｍａｘを超えたか否かを判断する（ステップＳ１７）。ここで、ｊが最大値ｊｍａｘ以下であった場合、制御部１３６は、ステップＳ１３以降の処理を再実行させ、ｊが最大値ｊｍａｘを超えた場合には、メモリ１３６ａのｎがｍであるか否かを判断する（ステップＳ１８）。ここで、ｎ＝ｍでないならば、制御部１３６は、メモリ１３６ａのｎにｎ＋１を格納し（ステップＳ１９）、ステップＳ１１以降の処理を再実行させ、ｎ＝ｍならば処理を終了させる。なお、この処理は、制御部１３６の制御のもと、タグ出力情報Ｇ（ｓｋ，ｉ）−とハッシュ値Ｇ（Ｈｊ（ｓｎ，１））とが一致しなければ、ｎ及びｊの少なくとも一方の値を変化させて、ハッシュ演算部１３３及び比較部１３４における処理を再び行うことに相当する。【００３０】  一方、タグ出力情報Ｇ（ｓｋ，ｉ）とハッシュ値Ｇ（Ｈｊ（ｓｎ，１））が一致した場合（ステップＳ１５）、制御部１３６は、一致したハッシュ値Ｇ（Ｈｊ（ｓｎ，１））に対応する秘密値ｓｎ，１を読書き部１３５に送り、読書き部１３５は、一致したハッシュ値Ｇ（Ｈｊ（ｓｎ，１））に対応する秘密値ｓｎ，１に対応付けられているタグＩＤ情報ｉｄｎと物流情報等のデータｄａｔａｎをデータベースメモリ１３１から抽出し、これを通信部１３２に送る（ステップＳ２０）。また、読書き部１３５は、メモリ１３６ａから物流情報ｐｄを受け取り、この物流情報ｐｄを、この秘密値ｓｎ，１に対応付けて、データベースメモリ１３１に書き込む（ステップＳ２０）。【００３１】  通信部１３２に送られたタグＩＤ情報ｉｄｎとデータｄａｔａｎは、ネットワーク１４０を通じてリーダー装置１２０に送信され（ステップＳ２１）、リーダー装置１２０の通信部１２３で受信され、出力される（ステップＳ２２）。
＜実施例１の特徴＞
［追跡不可能性］
本形態の実施例１ではハッシュ値Ｇ（ｓｋ，ｉ）をタグ出力情報として通信に用いた。ハッシュ値の認識不能性から、秘密値を知らない攻撃者にとって、このハッシュ値Ｇ（ｓｋ，ｉ）は単なる乱数にみえる。そのため、この攻撃者は、Ｇ（ｓｋ，ｉ）とＧ（ｓｋ，ｉ＋１）が同じタグ装置１１０から出力された値であるか否かを知ることはできず、タグ装置１１０の流通過程も追跡できない。【００３２】  ［フォワードセキュリティ］
本形態の実施例１では、通信に用いた秘密値メモリ１１１内の秘密値を、ハッシュ関数Ｈによって更新することとした。また、ハッシュ関数の一方向性により、タグ装置１１０がタンパー等され秘密値ｓｋ，ｉが漏洩しても、攻撃者がこの秘密値ｓｋ，ｉから過去の秘密値ｓｋ，ｉ−Δｉを求めることはできない。従って、たとえ秘密値ｓｋ，ｉが漏洩しても、攻撃者は、取得した秘密値ｓｋ，ｉと通信履歴の対応をとれず、タグ装置１１０の追跡もできない。【００３３】  ［追跡可能性］
一方、ハッシュ関数Ｇ，Ｈの衝突困難性（異なる値のハッシュ値が同じ値をとりにくい性質）から、秘密値ｓｎ，１を知っているバックエンド装置１３０は、タグ装置１１０の流通過程を追跡できる。
［効率性］
ハッシュ関数の演算だけで通信データを構成するため、従来の乱数を発生させる方法に比べ、タグ装置１１０に取り込む回路規模も小さく、低価格が要求される用途に適している。【００３４】  なお、バックエンド装置１３０における、ステップＳ１３の過程で算出されたハッシュ値Ｈｊ（ｓｎ，１）をメモリ１３６ａに記録しておき、これを次のループのステップＳ１３で利用することとしてもよい。すなわち、記録しておいたＨｊ（ｓｎ，１）を用い、Ｈ（Ｈｊ（ｓｎ，１））により、ハッシュ値Ｈｊ＋１（ｓｎ，１）を求め、さらにこの値をメモリ１３６ａに格納しておくこととしてもよい。この場合、ハッシュ演算部１３３のハッシュ演算回数を低減させることができ、バックエンド装置１３０の演算効率を向上させることができる。
【実施例２】
【００３５】  実施例２は実施例１の変形例であり、タグ装置がさらにタグＩＤ情報ｉｄｋ（「第１の固有値ｗｋ」に相当）を保持し、ｓｋ，ｉ＋１＝Ｈ（ｓｋ，ｉ｜ｉｄｋ）により、秘密値ｓｋ，ｉを更新する点のみが実施例１と相違する。以下では、実施例１との相違点のみ説明する。
図４は、実施例２におけるタグ自動認識システム２００の全体構成を例示した図である。なお、この図において実施例１と共通する部分には、実施例１と共通の符号を付している。以下、この図を用いて、実施例２の機能構成及び処理方法について説明する。【００３６】  ＜前処理＞
実施例１とは、タグ装置２１０の秘密値メモリ２１１に、そのタグＩＤ情報ｉｄｋとこれに対応する秘密値ｓｋ，ｉとが格納される点のみが相違する。また、バックエンド装置１３０のデータベースメモリ１３１には、各タグ装置ｎに対応する秘密値ｓｎ，１とタグＩＤ情報ｉｄｎと物流情報等のデータｄａｔａｎとが対応付けられて格納されるが、このタグＩＤ情報ｉｄｎは「第２の固有値ｗｎ」に相当する。
＜タグ装置の処理＞
実施例１とは、ステップＳ４の処理のみが相違する。すなわち、実施例１のステップＳ４の処理の代わりに、ハッシュ演算部２１３（「第１の演算部」に相当）において、秘密値メモリ２１１から秘密値ｓｋ，ｉとタグＩＤ情報ｉｄｋを抽出し、ｓｋ，ｉ＋１＝Ｈ（ｓｋ，ｉ，｜ｉｄｋ）を演算する。なお、α｜βはαとβとのビット結合を意味する。そして、その演算結果を、新たな秘密値ｓｋ，ｉ＋１として秘密値メモリ２１１に上書きする。【００３７】  ＜リーダー装置の処理＞
実施例１と同様である。
＜バックエンド装置の処理＞
実施例１とは、ステップＳ１１、Ｓ１３、Ｓ１４の処理のみが相違する。すなわち、実施例２では、ステップＳ１１の代わりにバックエンド装置２３０のハッシュ演算部２３３（「第３の演算部」に相当）において、データベースメモリ１３１から、秘密値ｓｎ，１及びそれに対応するタグＩＤ情報ｉｄｎを抽出する。【００３８】  次に、実施例１と同様、制御部１３６が、ｊに０を代入し、これをメモリ１３６ａに格納する（ステップＳ１２）。その後、ステップＳ１３の代わりに、ハッシュ演算部２３３が、ハッシュ値Ｇ（Ｉｊ（ｎ））を計算する。但し、Ｉｊ（ｎ）＝ｓｎ，１（ｊ＝０），Ｉｊ（ｎ）＝Ｈ（Ｉｊ−１（ｎ）｜ｉｄｎ）（ｊ≧１）と定義する。すなわち、ハッシュ演算部２３３は、秘密値ｓｎ，１及びそれに対応するタグＩＤ情報ｉｄｎからＩｊ（ｎ）を再帰的に求め、そのハッシュ値Ｇ（Ｉｊ（ｎ））を計算する。なお、この再帰的な演算は、演算過程における各Ｉｊ’（ｎ）（ｊ’∈｛１，．．．，ｊ−１｝）をメモリ１３６ａに一時的に格納し、それを次のＩｊ＋１（ｎ）の算出に用いることにより実現する。また、ハッシュ値Ｇ（Ｉｊ（ｎ））を計算する際に求めたＩｊ（ｎ）を、少なくとも次のハッシュ値Ｇ（Ｉｊ＋１（ｎ））の算出時までメモリ１３６ａに保存しておいてもよい。これにより、一旦求めたＩｊ（ｎ）を、次のハッシュ値Ｇ（Ｉｊ＋１（ｎ））を求める際のＩｊ＋１（ｎ）＝Ｈ（Ｉｊ（ｎ）｜ｉｄｎ）の演算に利用でき、演算の効率化を図ることができる。【００３９】  その後、ステップＳ１４の代わりに、比較部１３４において、ハッシュ演算部２３３からハッシュ値Ｇ（Ｉｊ（ｎ））を、メモリ１３６ａからタグ出力情報Ｇ（ｓｋ，ｉ）を、それぞれ取得し、それらを比較する。その後、実施例１と同様、ステップＳ１５以降の処理を実行する。
以上説明したように、実施例２では、ｓｋ，ｉ＋１＝Ｈ（ｓｋ，ｉ｜ｉｄｋ）の演算によってタグ装置２１０の秘密値メモリ２１１の秘密値ｓｋ，ｉを更新する。これにより、異なるタグＩＤ情報ｉｄｋに対応する秘密値の更新内容が半永久的に一致してしまう事態を防止できる。すなわち、異なる秘密値等にそれぞれ同じハッシュ関数を作用させていった場合、ある時点でそれらの演算結果が一致する場合（ｃｏｌｌｉｓｉｏｎ）もあり得る。しかし、その場合であっても、それぞれの秘密値ｓｋ，ｉに対応するタグＩＤ情報ｉｄｋは異なるため、ｓｋ，ｉ＋１＝Ｈ（ｓｋ，ｉ｜ｉｄｋ）によって演算される次の秘密値は同一とならない。これは、ｓｋ，ｉ＋１＝Ｈ（ｓｋ，ｉ）によって秘密値の更新を行う場合には得られない効果である。【００４０】  なお、実施例２では、タグＩＤ情報ｉｄｋ及びｉｄｎを、それぞれ第１の固有値ｗｋ及び第２の固有値ｗｎとしたが、各タグＩＤ情報に対応するその他の情報を固有値として用いてもよい。
【実施例３】  本形態は実施例１の変形例であり、バックエンド装置において、予め算出した演算値Ｇ（Ｈｊ（ｓｎ，１））（ｊ＝０，…，ｊｍａｘ）を記録しておく点のみが実施例１と相違する。以下では、実施例１との相違点のみ説明する。【００４１】  図５は、実施例３におけるタグ自動認識システム３００の全体構成を例示した図である。なお、この図において実施例１と共通する部分には、実施例１と共通の符号を付している。また、図６は、実施例３のバックエンド装置３３０の処理を説明するためのフローチャートである。以下、これらの図を用いて、実施例３の機能構成及び処理方法について説明する。
＜前処理＞
バックエンド装置３３０のデータベースメモリ３３１に、ハッシュ演算部１３３において予め算出した演算結果Ｇ（Ｈｊ（ｓｎ，１））（ｊ＝０，…，ｊｍａｘ）を、秘密値ｓｎ，１に対応付けて格納しておく点のみが第１の実施の形態と相違する。【００４２】  ＜タグ装置の処理・リーダー装置の処理＞
実施例１と同様である。
＜バックエンド装置の処理＞
まず、バックエンド装置３３０は、通信部１３２において、リーダー装置１２０から送信された物流情報ｐｄとタグ出力情報Ｇ（ｓｋ，ｉ）を受信する（ステップＳ３１）。なお、受信された物流情報ｐｄとタグ出力情報Ｇ（ｓｋ，ｉ）はメモリ１３６ａに格納される。次に、制御部１３６は、ｎに１を代入し、これをメモリ１３６ａに格納する（ステップＳ３２）。次に、制御部１３６は、ｊに０を代入し、これをメモリ１３６ａに格納する（ステップＳ３３）。そして、制御部１３６は、メモリ１３６ａのｎ，ｊの値を参照し、データベースメモリ３３１に格納された演算結果Ｇ（Ｈｊ（ｓｎ，１））を抽出する（ステップＳ３４）。【００４３】  次に、比較部１３４において、この演算結果Ｇ（Ｈｊ（ｓｎ，１））とメモリ１３６ａから抽出したタグ出力情報Ｇ（ｓｋ，ｉ）とを比較する（ステップＳ３５）。
ここで、これらの値が一致しなかった場合には（ステップＳ３６）、制御部１３６は、メモリ１３６ａのｊにｊ＋１を代入し（ステップＳ３７）、ｊが所定の最大値ｊｍａｘを超えたか否かを判断する（ステップＳ３８）。ここで、ｊが最大値ｊｍａｘ以下であった場合、制御部１３６は、ステップＳ３４以降の処理を再実行させ、ｊが最大値ｊｍａｘを超えた場合には、メモリ１３６ａのｎがｍであるか否かを判断する（ステップＳ３９）。ここで、ｎ＝ｍでないならば、制御部１３６は、ｎ←ｎ＋１（ｎ＋１を新たなｎとする）をメモリ１３６ａに格納し（ステップＳ４０）、ステップＳ３３以降の処理を再実行させ、ｎ＝ｍならば処理を終了させる。なお、この処理は、制御部１３６の制御のもと、タグ出力情報Ｇ（ｓｋ，ｉ）−とハッシュ値Ｇ（Ｈｊ（ｓｎ，１））とが一致しなければ、ｎ及びｊの少なくとも一方の値を変化させて、ハッシュ演算部１３３及び比較部１３４における処理を再び行うことに相当する。【００４４】  一方、タグ出力情報Ｇ（ｓｋ，ｉ）とハッシュ値Ｇ（Ｈｊ（ｓｎ，１））が一致した場合（ステップＳ３６）、制御部１３６は、一致した演算結果Ｇ（Ｈｊ（ｓｎ，１））に対応する秘密値ｓｎ，１を読書き部１３５に送り、読書き部１３５は、一致したハッシュ値Ｇ（Ｈｊ（ｓｎ，１））に対応する秘密値ｓｎ，１に対応付けられているタグＩＤ情報ｉｄｎと物流情報等のデータｄａｔａｎをデータベースメモリ３３１から抽出し、これを通信部１３２に送る（ステップＳ４０）。また、読書き部１３５は、メモリ１３６ａから物流情報ｐｄを受け取り、この物流情報ｐｄを、この秘密値ｓｎ，１に対応付けて、データベースメモリ１３１に書き込む（ステップＳ４０）。通信部１３２に送られたタグＩＤ情報ｉｄｎとデータｄａｔａｎは、ネットワーク１４０を通じてリーダー装置１２０に送信される（ステップＳ４１）。【００４５】  以上説明したように、実施例３では、予め算出した演算結果Ｇ（Ｈｊ（ｓｎ，１））をデータベースメモリ３３１に格納しておくこととした。そのため、比較処理ごとにＧ（Ｈｊ（ｓｎ，１））を算出する場合に比べ、バックエンド装置３３０の処理量を低減させることができる。
【実施例４】  実施例４は実施例１の変形例であり、タグ装置から秘密値の更新回数を特定する情報を送信し、バックエンド装置でこの秘密値の更新回数を用いて処理を行う点のみが実施例１と相違する。以下では、実施例１との相違点のみ説明する。【００４６】  図７は、実施例４におけるタグ自動認識システム４００の全体構成を例示した図である。なお、この図において実施例１と共通する部分には、実施例１と共通の符号を付している。また、図８は、実施例４のバックエンド装置４３０の処理を説明するためのフローチャートである。以下、これらの図を用いて、実施例４の機能構成及び処理方法について説明する。
＜タグ装置の構成＞
実施例１とは、タグ装置４１０が、秘密値の更新回数ｒｎをカウントするカウンタ４１６を有している点のみが相違する。【００４７】  ＜タグ装置の処理＞
実施例１とは、タグ装置４１０の秘密値メモリ４１１に秘密値ｓｋ，ｉの他、カウンタ４１６がカウントした秘密値ｓｋ，ｉの更新回数ｒｎが格納される点、この更新回数ｒｎを特定する情報を、ハッシュ演算部１１２及びインタフェース１１４（「出力部」に相当）を介してリーダー装置１２０に送信する点のみが相違する。
＜リーダー装置の処理＞
実施例１とは、インタフェース１２２において、さらに更新回数ｒｎを特定する情報を受信し、通信部１２３において、さらにこの更新回数ｒｎを特定する情報を、ネットワーク１４０を通じてバックエンド装置４３０に送信する点のみが相違する。【００４８】  ＜バックエンド装置の処理＞
まず、バックエンド装置３３０は、通信部１３２において、リーダー装置１２０から送信されたｒｎを特定する情報、物流情報ｐｄ及びタグ出力情報Ｇ（ｓｋ，ｉ）を受信する（ステップＳ５０）。なお、受信されたｒｎを特定する情報、物流情報ｐｄ及びタグ出力情報Ｇ（ｓｋ，ｉ）はメモリ１３６ａに格納される。次に、制御部１３６は、ｎに１を代入し、これをメモリ１３６ａに格納する（ステップＳ５１）。そして、制御部１３６は、メモリ１３６ａのｎ，ｊの値を参照し、ハッシュ演算部４３３にデータベースメモリ１３１から秘密値ｓｎ，１を抽出させ（ステップＳ５２）、これにハッシュ関数Ｈをｒｎ回作用させた後、さらにハッシュ関数Ｇを作用させ、ハッシュ値Ｇ（Ｈｊ（ｓｎ，１））（ｊ＝ｒｎ）を算出させる（ステップＳ５３）。【００４９】  次に、比較部１３４において、ハッシュ演算部４３３からハッシュ値Ｇ（Ｈｊ（ｓｎ，１））を、メモリ１３６ａからタグ出力情報Ｇ（ｓｋ，ｉ）を、それぞれ取得し、それらを比較する（ステップＳ５４）。
ここで、これらの値が一致しなかった場合（ステップＳ５５）、制御部１３６は、メモリ１３６ａのｎがｍであるか否かを判断する（ステップＳ５６）。ここで、ｎ＝ｍでないならば、制御部１３６は、ｎ←ｎ＋１（ｎ＋１を新たなｎとする）をメモリ１３６ａに格納し（ステップＳ５７）、ステップＳ５２以降の処理を再実行させ、ｎ＝ｍならば処理を終了させる。なお、この処理は、ハッシュ値Ｇ（Ｈｊ（ｓｎ，１））とタグ出力情報Ｇ（ｓｋ，ｉ）とが一致しない場合、ｎの値を変化させて、ハッシュ演算部４３３及び比較部１３４における処理を再び実行させることに相当する。【００５０】  一方、タグ出力情報Ｇ（ｓｋ，ｉ）とハッシュ値Ｇ（Ｈｊ（ｓｎ，１））が一致した場合（ステップＳ５５）、制御部１３６は、一致したハッシュ値Ｇ（Ｈｊ（ｓｎ，１））に対応する秘密値ｓｎ，１を読書き部１３５に送り、読書き部１３５は、一致したハッシュ値Ｇ（Ｈｊ（ｓｎ，１））に対応する秘密値ｓｎ，１に対応付けられているタグＩＤ情報ｉｄｎと物流情報等のデータｄａｔａｎをデータベースメモリ１３１から抽出し、これを通信部１３２に送る（ステップＳ５８）。また、読書き部１３５は、メモリ１３６ａから物流情報ｐｄを受け取り、この物流情報ｐｄを、この秘密値ｓｎ，１に対応付けて、データベースメモリ１３１に書き込む（ステップＳ５９）。通信部１３２に送られたタグＩＤ情報ｉｄｎとデータｄａｔａｎは、ネットワーク１４０を通じてリーダー装置１２０に送信される（ステップＳ５９）。【００５１】  以上説明したように、実施例４では、タグ装置４１０においてｒｎを送信し、バックエンド装置４３０において、このｒｎを用いてハッシュ値Ｇ（Ｈｒｎ（ｓｎ，１））を算出して比較処理を行うこととした。これにより、バックエンド装置４３０の比較処理は、各ｓｎ，１に対し、１回のみとなり、この処理に必要な処理量を低減させることができる。
【実施例５】  実施例５は実施例１の変形例であり、ハッシュ関数の代わりに秘密鍵暗号関数を用いて秘密値の更新・比較を行う点のみが実施例１と相違する。以下では、実施例１との相違点のみ説明する。【００５２】  図９は、実施例５におけるタグ自動認識システム５００の全体構成を例示した図である。なお、この図において実施例１と共通する部分には、実施例１と共通の符号を付している。また、図１０Ａは、実施例５におけるタグ装置５１０の処理を説明するためのフローチャートであり、図１０Ｂは、実施例５におけるバックエンド装置５３０の処理を説明するためのフローチャートである。以下、これらの図を用いて、本実施例の機能構成及び処理方法について説明する。
＜前処理＞
実施例５では、タグ装置５１０に鍵メモリ５１５が設けられ、バックエンド装置５３０に鍵メモリ５３６が設けられ、それぞれに共通鍵ＫＧ，ＫＨが格納される。また、タグ装置５１０には、実施例１のハッシュ演算部１１２、１１３の代わりに暗号関数演算部５１２、５１３が設けられ、バックエンド装置５３０には、ハッシュ演算部１３３の代わりに暗号関数演算部５３３が設けられる。そして、暗号関数演算部５１２、５１３，５３３は、ハッシュ関数の代わりに、ＡＥＳ，カメリア（Ｃａｍｅｌｌｉａ）等の共通鍵暗号関数Ｅによる演算が可能なように構成される。なお、実施例５では、共通鍵ＫＨを用いた共通鍵暗号関数Ｅが「逆像を求めることが困難な第１の関数Ｆ１」に相当し、共通鍵ＫＧを用いた共通鍵暗号関数Ｅが「定義域の元とその写像との関係を撹乱させる第２の関数Ｆ２」に相当する。すなわち、この例の第１の関数Ｆ１及び第２の関数Ｆ２は、異なる共通鍵を適用した同じ共通鍵暗号関数である。【００５３】  以上の点が実施例１との相違点である。
＜タグ装置の処理＞
まず、暗号関数演算部５１２（「第２の演算部」に相当）において、秘密値メモリ１１１から秘密値ｓｋ，ｉを抽出し（ステップＳ６１）、鍵メモリ５１５から共通鍵ＫＧを抽出し、秘密値ｓｋ，ｉに共通鍵ＫＧで共通鍵暗号関数Ｅを作用させる（ＥＫＧ（ｓｋ，ｉ）：ステップＳ６２）。算出された暗号文ＥＫＧ（ｓｋ，ｉ）は、タグ出力情報ＥＫＧ（ｓｋ，ｉ）としてインタフェース１１４から、無線或いは有線で、リーダー装置１２０に送信される（ステップＳ６３）。【００５４】  次に、暗号関数演算部５１３（「第１の演算部」に相当）において、鍵メモリ５１５から共通鍵ＫＨを抽出し、秘密値メモリ１１１から秘密値ｓｋ，ｉを抽出し、この秘密値ｓｋ，ｉに共通鍵ＫＨで共通鍵暗号関数Ｅを作用させ（ステップＳ６４）、その演算結果を新たな秘密値ｓｉ＋１＝ＥＫＨ（ｓｋ，ｉ）として秘密値メモリ１１１に上書き保存する（ステップＳ６５）。
＜リーダー装置の処理＞
実施例１と同様である。【００５５】  ＜バックエンド装置の処理＞
まず、バックエンド装置５３０は、通信部１３２において、リーダー装置１２０から送信された物流情報ｐｄとタグ出力情報ＥＫＧ（ｓｋ，ｉ）を受信する（ステップＳ７０）。なお、受信された物流情報ｐｄとタグ出力情報ＥＫＧ（ｓｋ，ｉ）はメモリ１３６ａに格納される。次に、制御部１３６は、ｎに１を代入し、これをメモリ１３６ａに格納する（ステップＳ７１）。そして、制御部１３６は、メモリ１３６ａのｎの値を参照し、暗号関数演算部５３３（「第３の演算部」に相当）にデータベースメモリ１３１から秘密値ｓｎ，１を抽出させる（ステップＳ７２）。次に、制御部１３６は、ｊに０を代入し、これをメモリ１３６ａに格納する（ステップＳ７３）。そして、制御部１３６は、メモリ１３６ａのｊの値を参照し、暗号関数演算部５３３に暗号文ＥＫＧ（ＥｊＫＨ（ｓｎ，１））（「第３の演算部における演算結果」に相当）を算出させる（ステップＳ７４）。なお、ＥｊＫＨ（ｓｎ，１）は、秘密値ｓｎ，１に共通鍵ＫＨで共通鍵暗号関数Ｅをｊ回作用させることを意味する。次に、比較部１３４において、ハッシュ演算部１３３から暗号文ＥＫＧ（ＥｊＫＨ（ｓｎ，１））を、メモリ１３６ａからタグ出力情報タグ出力情報ＥＫＧ（ｓｋ，ｉ）を、それぞれ取得し、それらを比較する（ステップＳ７５）。【００５６】  ここで、これらの値が一致しなかった場合には（ステップＳ７６）、制御部１３６は、メモリ１３６ａのｊにｊ＋１を代入し（ステップＳ７７）、ｊが所定の最大値ｊｍａｘを超えたか否かを判断する（ステップＳ７８）。ここで、ｊが最大値ｊｍａｘ以下であった場合、制御部１３６は、ステップＳ７４以降の処理を再実行させ、ｊが最大値ｊｍａｘを超えた場合には、メモリ１３６ａのｎがｍであるか否かを判断する（ステップＳ７９）。ここで、ｎ＝ｍでないならば、制御部１３６は、ｎ←ｎ＋１（ｎ＋１を新たなｎとする）をメモリ１３６ａに格納し（ステップＳ８０）、ステップＳ７２以降の処理を再実行させ、ｎ＝ｍならば処理を終了させる。なお、この処理は、制御部１３６の制御のもと、タグ出力情報ＥＫＧ（ｓｋ，ｉ）と暗号文ＥＫＧ（ＥｊＫＨ（ｓｎ，１））とが一致しなければ、ｎ及びｊの少なくとも一方の値を変化させて、暗号関数演算部５３３及び比較部１３４における処理を再び行うことに相当する。【００５７】  一方、タグ出力情報ＥＫＧ（ｓｋ，ｉ）と暗号文ＥＫＧ（ＥｊＫＨ（ｓｎ，１））が一致した場合（ステップＳ７６）、制御部１３６は、一致した暗号文ＥＫＧ（ＥｊＫＨ（ｓｎ，１））に対応する秘密値ｓｎ，１を読書き部１３５に送り、読書き部１３５は、一致した暗号文ＥＫＧ（ＥｊＫＨ（ｓｎ，１））に対応する秘密値ｓｎ，１に対応付けられているタグＩＤ情報ｉｄｎと物流情報等のデータｄａｔａｎをデータベースメモリ１３１から抽出し、これを通信部１３２に送る（ステップＳ８１）。また、読書き部１３５は、メモリ１３６ａから物流情報ｐｄを受け取り、この物流情報ｐｄを、この秘密値ｓｎ，１に対応付けて、データベースメモリ１３１に書き込む（ステップＳ８１）。通信部１３２に送られたタグＩＤ情報ｉｄｎとデータｄａｔａｎは、ネットワーク１４０を通じてリーダー装置１２０に送信される（ステップＳ８２��。【００５８】  なお、バックエンド装置５３０における、ステップＳ７４の過程で算出された暗号文ＥｊＫＨ（ｓｎ，１）をメモリ１３６ａに記録しておき、これを次のループのステップＳ７４で利用することとしてもよい。すなわち、記録しておいたＥｊＫＨ（ｓｎ，１）を用い、ＥＫＨ（ＥｊＫＨ（ｓｎ，１））により、暗号文Ｅｊ＋１ＫＨ（ｓｎ，１）を求め、さらにこの値をメモリ１３６ａに格納しておくこととしてもよい。この場合、暗号関数演算部５３３の暗号演算回数を低減させることができ、バックエンド装置５３０の演算効率を向上させることができる。さらに、バックエンド装置５３０において、ＥｊＫＨ（ｓｎ，１）（ｊ∈｛１，．．．，ｊｍａｘ｝）を事前計算してメモリ１３６ａに格納しておき、これをステップＳ７４で利用することとしてもよい。この場合もバックエンド装置５３０の演算効率を向上させることができる。【００５９】  また、実施例５は、共通鍵ＫＨを用いた共通鍵暗号関数Ｅを「逆像を求めることが困難な第１の関数Ｆ１」とし、共通鍵ＫＧを用いた共通鍵暗号関数Ｅを「定義域の元とその写像との関係を撹乱させる第２の関数Ｆ２」として処理を行う例であるが、第１の関数Ｆ１及び第２の関数Ｆ２の一方をハッシュ関数として処理を行ってもよい。さらに、前述の実施例１から４或いは後述する実施例６から１１において、第１の関数Ｆ１及び第２の関数Ｆ２の少なくとも一方を共通鍵ＫＨ或いはＫＧを用いた共通鍵暗号関数Ｅとして処理を行ってもよい。【００６０】  このように実施例５では、共有鍵暗号関数を用いて秘密値ｓｋ，ｉを更新することとした。そのため、タグ装置５１０から秘密値ｓｋ，ｉが漏洩しても、攻撃者がこの秘密値ｓｋ，ｉと通信履歴とからタグ装置５１０の流通過程を追跡することはできない。また、タグ装置５１０に乱数生成回路を設ける必要もないため、タグ装置５１０のコストを低減させることができる。さらに、ハッシュ関数よりも軽い（演算量が少ない）共通鍵暗号関数を用いることができれば、タグ装置５１０及びバックエンド装置５３０の処理量を低減させることができる。
【実施例６】
【００６１】  実施例６は、実施例１の変形例であり、秘密値ｓｋ，ｉと、各タグ固有の第１固有値ｗｋと、のビット結合のハッシュ値をタグ出力情報とする点が実施例１と相違する。
図１１は、実施例６におけるタグ自動認識システム６００の全体構成を例示した図であり、図１２は、実施例６における処理を説明するためのフローチャートである。なお、図１１において実施例１と共通する部分には、実施例１と共通の符号を付している。以下、これらの図を用いて、実施例６の機能構成及び処理方法について説明する。【００６２】  ＜前処理＞
実施例１との相違点は、各タグ装置６１０の秘密値メモリ６１１に、それぞれのタグＩＤ情報ｉｄｋに対応する秘密値ｓｋ，ｉ（「第１の秘密値」に相当）及び固有値ｗｋ（「第１の固有値」に相当）を格納しておく点、バックエンド装置６３０のデータベースメモリ６３１に、各タグＩＤ情報ｉｄｎ（ｎ∈｛１，．．．，ｍ｝）とそれらに対応する秘密値ｓｎ，１（「第２の秘密値」に相当）、固有値ｗｎ「第２の固有値」に相当）及び物流情報等のデータｄａｔａｎとを対応付けて格納しておく点である。なお、固有値としては、例えば、タグＩＤ情報を利用することができる。【００６３】  ＜タグ装置の処理＞
以下では、ｉ回目（ｉは自然数）に、タグ装置６１０をリーダー装置６２０に読取らせた際の処理を説明する。
まず、ハッシュ演算部６１２において、秘密値メモリ６１１から秘密値ｓｋ，ｉ及び第固有値ｗｋを抽出し（ステップＳ１０１）、当該秘密値ｓｋ，ｉ及び固有値ｗｋのビット結合にハッシュ関数Ｇを作用させたタグ出力情報Ｇ（ｓｋ，ｉ｜ｗｋ）を算出する（ステップＳ１０２）。そして、インタフェース１１４において、このタグ出力情報Ｇ（ｓｋ，ｉ｜ｗｋ）を、無線或いは有線でリーダー装置１２０に送信する（ステップＳ１０３）。【００６４】  次に、ハッシュ演算部１１３において、秘密値メモリ６１１から抽出した秘密値ｓｋ，ｉハッシュ関数Ｈを作用させたハッシュ値Ｈ（ｓｋ，ｉ）を算出し（ステップＳ１０４）、当該ハッシュ値Ｈ（ｓｋ，ｉ）を新たな秘密値ｓｋ，ｉ＋１として、秘密値メモリ６１１の秘密値ｓｋ，ｉに上書きする（秘密値メモリ６１１の秘密値ｓｋ，ｉを消去し、代わりに秘密値ｓｋ，ｉ＋１を格納する：ステップＳ１０５）。
＜リーダー装置の処理＞
リーダー装置１２０は、インタフェース１２２において、タグ装置６１０から送信されたタグ出力情報Ｇ（ｓｋ，ｉ｜ｗｋ）を受信し（ステップＳ１０６）、通信部１２３に送る。通信部１２３は、物流情報メモリ１２１から物流情報ｐｄを抽出し（ステップＳ１０７）、この物流情報ｐｄとハッシュ値Ｇ（ｓｋ，ｉ｜ｗｋ）とを、ネットワーク１４０を通じ、バックエンド装置６３０に送信する（ステップＳ１０８）。【００６５】  ＜バックエンド装置の処理＞
バックエンド装置６３０は、通信部１３２において、リーダー装置１２０から送信された物流情報ｐｄとタグ出力情報Ｇ（ｓｋ，ｉ｜ｗｋ）を受信する（入力を受け付ける：ステップＳ１０９）。なお、受信された物流情報ｐｄとタグ出力情報Ｇ（ｓｋ，ｉ｜ｗｋ）は、メモリ１３６ａに格納される。
次に、制御部１３６において、パラメータｊ，ｎに０を代入し、これらをメモリ１３６ａに格納する（ステップＳ１０）。そして、制御部１３６は、メモリ１３６ａのｊ，ｎを参照し、ハッシュ演算部６３３（「第３の演算部」に相当）に、データベースメモリ６３１から抽出した１組の第２秘密値ｓｎ，１及び第２固有値ｗｎを用い、ハッシュ値Ｇ（Ｈｊ（ｓｎ，１）｜ｗｎ）を算出させる（ステップＳ１１１）。なお、このＨｊ（ｓｎ，１）を事前計算し、データベースメモリ６３１に格納しておいてもよい。この場合、バックエンド装置６３０における演算負担を軽減できる。【００６６】  次に、比較部１３４において、ハッシュ演算部６３３からハッシュ値Ｇ（Ｈｊ（ｓｎ，１）｜ｗｎ）を、メモリ１３６ａからタグ出力情報Ｇ（ｓｋ，ｉ｜ｗｋ）を、それぞれ取得し、それらを比較する（ステップＳ１１２）。
ここで、これらの値が一致しなかった場合（ステップＳ１１３）、制御部１３６は、メモリ１３６ａのｊにｊ＋１を代入し（ステップＳ１１４）、ｊが所定の最大値ｊｍａｘを超えたか否かを判断する（ステップＳ１１５）。ここで、ｊが最大値ｊｍａｘ以下であった場合にはステップＳ１１１の処理に戻り、ｊが最大値ｊｍａｘを超えた場合には、制御部１３６においてメモリ１３６ａのｎにｎ＋１を、ｊに０を、それぞれ代入し（ステップＳ１１６）、ｎが所定の最大値ｎｍａｘを超えたか否かを判断する（ステップＳ１１７）。ここで、ｎが最大値ｎｍａｘ以下であった場合にはステップＳ１１１の処理に戻り、ｎが最大値ｎｍａｘを超えた場合には、エラー終了する（ステップＳ１１８）。【００６７】  一方、ステップＳ１１３の判断において、タグ出力情報Ｇ（ｓｋ，ｉ｜ｗｋ）とハッシュ値Ｇ（Ｈｊ（ｓｎ，１）｜ｗｎ）とが一致すると判断された場合、制御部１３６は、このｎの値を読書き部１３５に与え、読書き部１３５は、このｎを用い、当該一致したハッシュ値Ｇ（Ｈｊ（ｓｎ，１）｜ｗｎ）に対応する秘密値ｓｎ，１及び固有値ｗｎに対応付けられているｉｄｎ及ｄａｔａｎを、データベースメモリ６３１から抽出し、これらを通信部１３２に送る。また、読書き部１３５は、メモリ１３６ａから物流情報ｐｄを受け取り、この物流情報ｐｄを、当該一致したハッシュ値Ｇ（Ｈｊ（ｓｎ，１）｜ｗｎ）に対応する秘密値ｓｎ，１及び固有値ｗｎに対応付けて、データベースメモリ６３１に書き込む（ステップＳ１１９）。【００６８】  通信部１３２に送られたｉｄｎ及ｄａｔａｎは、ネットワーク１４０を通じてリーダー装置１２０に送信され（ステップＳ１２０）、リーダー装置１２０の通信部１２３で受信され、出力される（ステップＳ１２１）。
＜実施例６の特徴＞
実施例６では、各タグ装置６１０から出力されるタグ出力情報Ｇ（ｓｋ，ｉ｜ｗｋ）は、秘密値ｓｋ，ｉと、各タグ装置６１０固有の固有値ｗｋと、のビット結合のハッシュ値である。また、各タグ装置の秘密値ｓｋ，ｉは、ハッシュ値Ｈ（ｓｋ，ｉ）によって順次更新される。従って、異なるタグ装置間でタグ出力情報Ｇ（ｓｋ，ｉ｜ｗｋ）が同一（コリジョン発生）となったとしても、固有値ｗｋがタグ装置ごとに異なる以上、各タグ装置の秘密値ｓｋ，ｉが更新されれば、ハッシュ関数の衝突困難性により、このコリジョンは高い確率で解消する。これにより、タグ装置６１０のタグ出力情報Ｇ（ｓｋ，ｉ｜ｗｋ）のコリジョンが継続することを防止でき、バックエンド装置６３０が、タグ出力情報Ｇ（ｓｋ，ｉ｜ｗｋ）からタグＩＤ情報を一義的に特定できなくなってしまうことを防止できる。
【実施例７】
【００６９】  実施例７は実施例６の変形例であり、秘密値を各タグ装置の共用とする点が実施例６と相違する。以下では、実施例１、実施例６との相違点を中心に説明する。
図１３は、実施例７におけるタグ自動認識システム７００の全体構成を例示した図である。なお、この図において実施例１と共通する部分には、実施例１と共通の符号を付している。また、図１４は、実施例７における処理を説明するためのフローチャートである。以下、これらの図を用いて、実施例７の機能構成及び処理方法について説明する。【００７０】  ＜前処理＞
各タグ装置７１０に対応する各ＩＤ（ｉｄｋ（ｋ＝１，．．．，ｍ））に対し、ある１つの乱数ｓ１∈｛０，１｝ｔを生成し、これを各タグ装置７１０の秘密値メモリ７１１に、秘密値ｓ１（ｓｉの初期値であり「第１の秘密値」に相当）として格納する。また、各タグ装置７１０に対応する各タグＩＤ情報（ｉｄｋ（ｋ＝１，．．．，ｍ））ごとに、それぞれ固有な固有値ｗｋを生成し、これを当該各タグ装置７１０の秘密値メモリ７１１に格納する。【００７１】  また、各タグ装置７１０に格納された秘密値ｓ１と同じ秘密値ｓ１を「第２の秘密値」として、バックエンド装置７３０のデータベースメモリ７３１に格納する。また、このデータベースメモリ７３１に、各固有値ｗｎを、対応するタグ装置７１０のタグＩＤ情報ｉｄｎ及び物流データ等ｄａｔａｎに対応付けて格納する。
さらに、バックエンド装置７３０のハッシュ演算部７３６において、各タグ装置７１０に共通の秘密値ｓ１のハッシュ値ｓｊ＋２＝Ｈｊ＋１（ｓ１）（ｊ＝０，．．．，ｊｍａｘ）を算出する。算出された各ハッシュ値ｓｊ＋２は、データベースメモリ７３１に格納される。【００７２】  ＜タグ装置の処理＞
以下では、ｉ回目に、タグ装置７１０をリーダー装置７２０に読み取らせた際の処理を説明する。
まず、ハッシュ演算部７１２において、秘密値メモリ７１１から秘密値ｓｉ及び固有値ｗｋを抽出し（ステップＳ１３１）、当該秘密値ｓｉ及び固有値ｗｋのビット結合のハッシュ値であるタグ出力情報Ｇ（ｓｉ｜ｗｋ）を算出する（ステップＳ１３２）。そして、インタフェース１１４において、このタグ出力情報Ｇ（ｓｉ｜ｗｋ）をリーダー装置１２０に送信する（ステップＳ１３３）。【００７３】  次に、ハッシュ演算部１１３において、秘密値メモリ７１１から抽出した秘密値ｓｉのハッシュ値Ｈ（ｓｉ）を算出し（ステップＳ１３４）、当該ハッシュ値Ｈ（ｓｉ）を新たな秘密値ｓｉ＋１として、秘密値メモリ７１１の秘密値ｓｉに上書きする（ステップＳ１３５）。
＜リーダー装置の処理＞
実施例１と同様である（ステップＳ１３６〜Ｓ１３８）。
＜バックエンド装置の処理＞
バックエンド装置７３０は、通信部１３２において、リーダー装置１２０から送信された物流情報ｐｄとタグ出力情報Ｇ（ｓｉ｜ｗｋ）を受信する（ステップＳ１３９）。なお、受信された物流情報ｐｄとタグ出力情報Ｇ（ｓｉ｜ｗｋ）はメモリ１３６ａに格納される。【００７４】  次に、制御部１３６において、パラメータｊ，ｎに０を代入し、メモリ１３６ａに格納する（ステップＳ１４０）。
そして、ハッシュ演算部７３３（「第３の演算部」に相当）において、データベースメモリ７３１から抽出した固有値ｗｎ及び秘密値ｓ１或いはハッシュ値ｓｊ＋２（ハッシュ演算部７３６において算出（事前計算）されたハッシュ値ｓｊ＋２）を用い、ハッシュ値Ｇ（ｓｊ＋１｜ｗｎ）を算出する（ステップＳ１４１）。
次に、比較部１３４において、ハッシュ演算部７３３からハッシュ値Ｇ（ｓｊ＋１｜ｗｎ）（「第３の演算部における演算結果」に相当）を、メモリ１３６ａからタグ出力情報Ｇ（ｓｉ｜ｗｋ）を、それぞれ取得し、それらを比較する（ステップＳ１４２）。【００７５】  ここで、これらの値が一致しなかった場合（ステップＳ１４３）、制御部１３６は、メモリ１３６ａのｊにｊ＋１を代入し（ステップＳ１４４）、ｊが所定の最大値ｊｍａｘを超えたか否かを判断する（ステップＳ１４５）。ここで、ｊが最大値ｊｍａｘ以下であった場合にはステップＳ１４１の処理に戻り、ｊが最大値ｊｍａｘを超えた場合には、制御部１３６において、メモリ１３６ａのｎにｎ＋１を、ｊに０を、それぞれ代入し（ステップＳ１４６）、ｎが所定の最大値ｎｍａｘを超えたか否かを判断する（ステップＳ１４７）。ここで、ｎが最大値ｎｍａｘ以下であった場合にはステップＳ１４１の処理に戻り、ｎが最大値ｎｍａｘを超えた場合には、エラー終了する（ステップＳ１４８）。【００７６】  一方、ステップＳ１４３の判断において、タグ出力情報Ｇ（ｓｉ｜ｗｋ）とハッシュ値Ｇ（ｓｊ＋１｜ｗｎ）とが一致すると判断された場合、制御部１３６の制御のもと、読書き部１３５において、当該一致したハッシュ値Ｇ（ｓｊ＋１｜ｗｎ）に対応する固有値ｗｎに対応付けられているｉｄｎ及ｄａｔａｎを、データベースメモリ７３１から抽出し、これらを通信部１３２に送る。また、読書き部１３５は、通信部１３２から物流情報ｐｄを受け取り、この物流情報ｐｄを、当該一致したハッシュ値Ｇ（ｓｊ＋１｜ｗｎ）に対応する固有値ｗｎに対応付けて、データベースメモリ７３１に書き込む（ステップＳ１４９）。【００７７】  通信部１３２に送られたｉｄｎ及ｄａｔａｎは、ネットワーク１４０を通じてリーダー装置１２０に送信され（ステップＳ１５０）、リーダー装置１２０の通信部１２３で受信され、出力される（ステップＳ１５１）。
＜実施例７の特徴＞
実施例７では、各タグ装置７１０に共通の秘密値ｓ１を用いることとした。そのため、バックエンド装置７３０のステップＳ１４１の処理で用いる秘密値ｓｊ＋１を、各タグＩＤ情報ｉｄｎに対して共通化できる。これにより、バックエンド装置７３０における演算量を大幅に低減でき、効率的な検索を行うことが可能となる。【００７８】  具体的には、タグ装置７１０の個数をｍ、バックエンド装置７３０のハッシュ回数（タグ装置７１０での秘密値の更新回数）をｊとした場合、実施例１では、２ｍｊ回のハッシュ演算が必要であった。これに対し、実施例７では、ｍｊ＋ｊ回のハッシュ演算に抑えることができる。
さらに、タグ装置７１０が、タグ出力情報Ｇ（ｓｉ｜ｗｋ）とともに、秘密値ｓｉの更新回数ｒｎを出力し、この更新回数ｒｎをバックエンド装置７３０に与えることとすれば（実施例４参照）、バックエンド装置７３０におけるハッシュ演算回数はｍ＋ｊ回にまで低減できる。
【実施例８】
【００７９】  実施例８は、実施例１の変形例であり、複数の要素の組合せを、各タグ装置固有の値として割り当てる点が実施例１と相違する。これにより、各タグ装置に割り当てる要素の一部を複数のタグ装置間で共有できる。その結果、タグ装置の認識処理に必要な総当り演算量を低減できる。
図１５は、実施例８におけるタグ自動認識システム８００の全体構成を例示した図である。この図において実施例１と共通する部分については、実施例１と同じ番号を付した。また、図１６Ａは、タグ装置８１０の秘密値メモリ８１１に格納されるデータの例示であり、図１６Ｂは、バックエンド装置８３０のデータベースメモリ８３１に格納されるデータの例示である。さらに、図１７及び１８は、実施例８における処理を説明するためのフローチャートである。【００８０】  以下、これらの図を用いて、実施例８の機能構成及び処理方法について説明する。なお、実施例１と共通する事項については説明を省略する。
＜前処理＞
例えば、乱数生成装置（図示せず）等を用い、各タグ装置に割り当てる要素の初期値の集合
（ｂ１，１，０，…，ｂ１，ｊ，０，…，ｂ１，ρ，０）…（ｂｕ，１，０，…，ｂｕ，ｊ，０，…，ｂｕ，ρ，０）…（ｂｄ，１，０，…，ｂｄ，ｊ，０，…，ｂｄ，ρ，０）
を生成する。なお、この各「（  ）」内の要素の集合をサブグループαｕ（ｕ∈｛１，…，ｄ｝）と呼ぶ。【００８１】  ここで、ｊは１≦ｊ≦ρの自然数（ｊ∈｛１，…，ρ｝）であり、ｕは１≦ｕ≦ｄの自然数（ｕ∈｛１，…，ｄ｝）である。また、実施例８では複数の要素の組合せによって１つの秘密値を構成するが、ｄ（ｄ≧２）はこの１つの秘密値を構成する要素の数である。また、ｍはタグ装置８１０の総数（必要となる秘密値の総数）以上の数であり、なおかつ、ｍ＝ρｄが自然数となる数である。
次に、このように生成された各要素の組合せを各タグ装置８１０に割り当てる。具体的には、上述した要素の初期値の集合を構成するｄ種類のサブクループαｕから、それぞれ１つずつ要素を選択し、選択したｄ個の初期要素ｆｕ，０の組合せ（ｆ１，０，…，ｆｕ，０，…，ｆｄ，０）を各タグ装置８１０に割り当てる（ｆ１，０∈｛ｂ１，１，０，・・・，ｂ１，ｑ，０，・・・，ｂ１，ρ，０｝，…，ｆｕ，０∈｛ｂｕ，１，０，・・・，ｂｕ，ｑ，０，・・・，ｂｕ，ρ，０｝，…，ｆｄ，０∈｛ｂｄ，１，０，・・・，ｂｄ，ｑ，０，・・・，ｂｄ，ρ，０｝）。なお、この割り当ては、異なるタグ装置８１０間で同じ組合せとならないように行われ、合計ｍ種類（タグ装置８１０の総数）の（ｆ１，０，…，ｆｕ，０，…，ｆｄ，０）の組合せが割り当てられる。また、１つのタグ装置８１０に複数の初期要素ｆｕ，０の組合せを対応付けることとしてもよく、この場合、合計ｍ種類以上（タグ装置８１０の総数以上）の（ｆ１，０，…，ｆｕ，０，…，ｆｄ，０）の組合せが割り当てられる。なお、各（ｆ１，０，…，ｆｕ，０，…，ｆｄ，０）を構成する要素の少なくとも一部は、複数のタグ装置８１０に共用される。【００８２】  生成されたすべての組合せ（ｆ１，０，…，ｆｕ，０，…，ｆｄ，０）（ｄ個（ｄ≧２）の初期要素ｆｕ，０（ｕ∈｛１，…，ｄ｝）の組合せ）は、それぞれ割り当てられた各タグ装置８１０のタグＩＤ情報ｉｄｎと、各タグ装置８１０に対応するデータｄａｔａｎとに対応付けられ、バックエンド装置８３０のデータベースメモリ８３１に格納される。なお、ｎは各タグ装置に対応する値であり、各タグ装置から出力されるタグ出力情報ａｋ，ｉ（後述）の下付添え字ｋに対応する。すなわち、データベースメモリ８３１に格納されるｄ個の初期要素ｆｕ，０の組合せ数は、タグ装置８１０の総数となる。また、１つのタグ装置８１０に複数の初期要素ｆｕ，０の組合せを対応付ける場合、データベースメモリ８３１に格納されるｄ個の初期要素ｆｕ，０の組合せ数は、タグ装置８１０の総数以上となる。【００８３】  また、生成された各初期要素の組合せ（ｆ１，０，…，ｆｕ，０，…，ｆｄ，０）（「ｄ個（ｄ≧２）の要素ｅｕ，ｖｕ（ｕ∈｛１，…，ｄ｝）からなる組合せであって各タグＩＤ情報ｉｄｋに対応するもの」に相当。但し、ｖｕは要素ｅｕ，ｖｕの更新回数を示す０以上の整数。要素ｅｕ，ｖｕの下付添え字のｖｕは、ｖｕを示す。）は、割り当てられた各タグ装置８１０の秘密値メモリ８１１に格納される。なお、以下では、各タグ装置８１０の秘密値メモリ８１１に格納された初期要素の組合せを（ｅ１，０，…，ｅｕ，０，…，ｅｄ，０）と示す。【００８４】  図１６の例は、ｄ＝２、ρ＝３、ｍ＝９の場合における、初期要素の割り当てを例示したものである。
図１６Ｂに示すように、この例の場合、バックエンド装置８３０のデータベースメモリ８３１に、初期要素の組合せ８３１ａａ（（ｆ１，０，ｆ２，０）（ｆ１，０∈｛ｂ１，１，０，ｂ１，２，０，ｂ１，３，０｝，ｆ２，０∈｛ｂ２，１，０，ｂ２，２，０，ｂ２，３，０｝）
）と、タグＩＤ情報８３１ａｂ（ｉｄｎ（ｎ∈｛１，…，９｝）と、データ８３１ａｃ（ｄａｔａｎ（ｎ∈｛１，…，９｝）と、を対応付けて格納する。【００８５】  また、図１６Ａに示すように、タグ装置８１０の秘密値メモリ８１１に、そのタグＩＤ情報ｉｄに対応する１組の初期要素の組合せ８１１ａ（（ｅ１，０，ｅ２，０）＝（ｂ１，２，０，ｂ２，２，０））を格納する。なお、秘密値メモリ８１１に格納される上記要素ｅｕ，ｖｕの一部は、他のタグ装置にも対応する要素として、当該他のタグ装置の秘密値メモリにも格納される。
＜タグ装置の処理＞
以下では、ｉ回目（ｉは自然数）に、タグ装置８１０をリーダー装置２０に読取らせた際の処理を説明する。【００８６】  まず、ハッシュ演算部８１２（「第２の演算部」に相当）において、秘密値メモリ８１１から各ｄ個の要素ｅｕ，ｖｕを抽出し（ステップＳ１６１）、これらのビット列の結合値（秘密値ｓｋ，ｉ）にハッシュ関数Ｇを作用させたタグ出力情報ａｋ，ｉ＝Ｇ（ｓｋ，ｉ）を算出する（ステップＳ１６２）。ここで、ｋは各タグ装置に対応する値であり、ｉは出力部における出力回数を示す自然数である。また、本実施例では、秘密値ｓｋ，ｉ＝ｅ１，ｖ１｜・・・｜ｅｕ，ｖｕ｜・・・｜ｅｄ，ｖｄとし、タグ出力情報ａｋ，ｉ＝Ｇ（ｅ１，ｖ１｜・・・｜ｅｕ，ｖｕ｜・・・｜ｅｄ，ｖｄ）とするが、各要素ｅｕ，ｖｕのビット配置順序はこれに限定されない。【００８７】  生成されたタグ出力情報ａｋ，ｉはインタフェース１１４に送られ、インタフェース１１４は、このタグ出力情報ａｋ，ｉを出力する（ステップＳ１６３）。
その後、ハッシュ演算部８１３（「第１の演算部」に相当）において、秘密値メモリ８１１から少なくとも一部の要素ｅｕ’，ｖｕ’（ｕ’∈｛１，…，ｄ｝）を抽出し、抽出した要素ｅｕ’，ｖｕ’のハッシュ値Ｈ（ｅｕ’，ｖｕ’）を算出し（ステップＳ１６４）、このハッシュ値Ｈ（ｅｕ’，ｖｕ’）を新たな要素ｅｕ’，ｖｕ’＋１として秘密値メモリ８１１に上書き保存する（ステップＳ１６５）。なお、ｕ’∈｛１，…，ｄ｝の選択方法はどのようなものでもよい。例えば、タグ装置８１０が通信を行うたびに異なるｕ’を選択していく方法、１つのｕ’について要素ｅｕ’，ｖｕ’の更新がすべて完了した時点で別のｕ’が選択される方法、２つ以上のｕ’が同時に選択される方法等を例示できる。【００８８】  ＜リーダー装置の処理＞
リーダー装置１２０は、インタフェース１２２において、タグ装置８１０から送信されたタグ出力情報ａｋ，ｉを受信し（ステップＳ１６６）、通信部１２３に送る。通信部１２３は、物流情報メモリ１２１から物流情報ｐｄを抽出し（ステップＳ１６７）、この物流情報ｐｄとタグ出力情報ａｋ，ｉとを、ネットワーク１４０を通じ、バックエンド装置８３０に送信する（ステップＳ１６８）。
＜バックエンド装置の処理＞
リーダー装置１２０から送信されたタグ出力情報ａｋ，ｉ及び物流情報ｐｄは通信部１３２において受信され、メモリ１３６ａに格納される（ステップＳ１６９）。【００８９】  これをトリガに、制御部１３６は、ｎに１を代入してメモリ１３６ａに格納し（ステップＳ１７０）、ｄ個のｗｕの組合せを次のように選択し、その組合せをメモリ１３６ａに格納する（ステップＳ１７１）。
（ｗ１，．．．，ｗｄ）∈Ｓｗ＝｛ｗ１，．．．，ｗｄ｜ｗｕ∈［０，ｊｍａｘ］｝
（但し［α，β］はα以上β以下の整数の集合を示す。）
次に、制御部１３６は、メモリ１３６ａのｎ，ｄ個のｗｕの組合せを参照し、さらにハッシュ値メモリ８３８を参照して、タグＩＤ情報ｉｄｎに対応するｄ個の初期要素ｆｕ，０（ｕ∈｛１，…，ｄ｝）に、それぞれハッシュ関数Ｈをｗｕ回作用させたハッシュ値Ｈｗｕ（ｆｕ，０）がハッシュ値メモリ８３８に格納されているか（生成済みであるか）否かを検証する（ステップＳ１７２）。なお、Ｈｗｕ（ｆｕ，０）の上付き添え字ｗｕはｗｕを示す。【００９０】  ここで、タグＩＤ情報ｉｄｎに対応するハッシュ値Ｈｗｕ（ｆｕ，０）のうち、まだ演算が行われていないものが存在すると判断された場合、ハッシュ演算部８３７は、上記の「タグＩＤ情報ｉｄｎに対応するハッシュ値Ｈｗｕ（ｆｕ，０）のうち、まだ演算が行われていないもの」に対応する初期要素ｆｕ，０をデータベースメモリ８３１から抽出し、この初期要素ｆｕ，０にハッシュ関数Ｈをｗｕ回作用させハッシュ値Ｈｗｕ（ｆｕ，０）を算出する（ステップＳ１７３）。算出されたハッシュ値Ｈｗｕ（ｆｕ，０）はハッシュ値メモリ８３８に格納され（ステップＳ１７４）、ステップＳ１７２の処理に戻る。【００９１】  一方、ステップＳ１７２の判断で、タグＩＤ情報ｉｄｎに対応するハッシュ値Ｈｗｕ（ｆｕ，０）がすべて生成済みであると判断された場合、制御部１３６は、メモリ１３６ａのｎ，ｄ個のｗｕの組合せを参照し、ハッシュ演算部８３３（「第３の演算部」に相当）に、ハッシュ値メモリ８３８から、タグＩＤ情報ｉｄｎに対応するｄ個の初期要素ｆｕ，０（ｕ∈｛１，…，ｄ｝）に、それぞれ第１の関数Ｆ１をｗｕ回作用させたハッシュ値Ｈｗｕ（ｆｕ，０）を抽出させ（ステップＳ１７５）、それらハッシュ値Ｈｗｕ（ｆｕ，０）のビット結合値にハッシュ値Ｇを作用させた演算値ｃを算出させる（ステップＳ１７６）。なお、演算値ｃとしては、例えば、ｃ＝Ｇ（Ｈｗ１（ｆ１，０）｜・・・｜Ｈｗｕ（ｆｕ，０）｜・・・｜Ｈｗｄ（ｆｄ，０））を例示できるが、各ハッシュ値Ｈｗｕ（ｆｕ，０）のビット配置順序はこれに限定されない。但し、その順序はタグ装置８１０のハッシュ演算部８１２での各要素ｅｕ，ｖｕのビット配置順序に対応させる必要がある。【００９２】  次に、比較部１３４において、メモリ１３６ａからタグ出力情報ａｋ，ｉを読出し、ハッシュ演算部８３３から上記演算値ｃを受け取り、これらを比較してｃ＝ａｋ，ｉであるか否かを判断する（ステップＳ１７７）。この例では、ハッシュ値ｃ＝Ｇ（Ｈｗ１（ｆ１，０）｜・・・｜Ｈｗｕ（ｆｕ，０）｜・・・｜Ｈｗｄ（ｆｄ，０））と、タグ出力情報ａｋ，ｉと、を比較する。
ここで、これらが一致しないと判断された場合、制御部１３６は、メモリ１３６ａを参照し、全てのｄ個の組合せパターン（ｗ１，．．．，ｗｄ）∈Ｓｗが選択済みであるか否かを判断する（ステップＳ１７８）。ここで、まだ選択されていない組合せパターン存在すると判断された場合、制御部１３６は、新たな組合せ（ｗ１，．．．，ｗｄ）∈Ｓｗを選択し、これらをメモリ１３６ａに格納して（ステップＳ１７９）、この新たな組合せ及びｎについて、ステップＳ１７２以降の処理を実行させる。【００９３】  一方、ステップＳ１７８の判断で、全ての組合せパターンが選択されたとされた場合、制御部１３６はメモリ１３６ａのｎを参照し、ｎ＝ｍであるか否かを判断する（ステップＳ１８０）。ここで、ｎ＝ｍでないと判断されると、制御部１３６はメモリ１３６ａのｎをｎ＋１によって更新し（ステップＳ１８１）、ステップＳ１７２以降の処理を実行させる。一方、ｎ＝ｍであると判断された場合には処理をエラー終了する（ステップＳ１８２）。
なお、ステップＳ１７２〜１８１の処理は、制御部１３６の制御のもと、タグ出力情報ａｋ，ｉと演算値ｃとが一致しなければ、ｎ及びｗｕの少なくとも一部の値を変化させて、ハッシュ演算部８３３及び比較部１３４における処理を再び行うことに相当する。【００９４】  一方、ステップＳ１７７において、ハッシュ値ｃとタグ出力情報ａｋ，ｉとが一致すると判断された場合、読書き部１３５は、制御部１３５の制御のもと、当該ハッシュ値ｃに対応する複数の初期要素ｆｕ，０の組合せに対応付けられているタグＩＤ情報ｉｄｎをデータベースメモリ８３１から選択し、このタグＩＤ情報ｉｄｎとそれに対応するデータｄａｔａｎを抽出して通信部１３２に送る。また、読書き部１３５は、メモリ１３６ａから物流情報ｐｄを受け取り、この物流情報ｐｄを、タグＩＤ情報ｉｄｎに対応するデータｄａｔａｎとして、データベースメモリ８３１に追加書込みする（ステップＳ１８３）。【００９５】  通信部１３２に送られたタグＩＤ情報ｉｄｎとデータｄａｔａｎは、ネットワーク１４０を通じてリーダー装置１２０に送信され（ステップＳ１８４）、リーダー装置１２０の通信部１２３で受信され、出力される（ステップＳ１８５）。
＜実施例８の特徴＞
［効率性］
バックエンド装置８３０のハッシュ演算部８３８でのハッシュ値ｃの算出には、ハッシュ値Ｈｗｕ（ｆｕ，０）＝ｆｕ，ｖｕの演算が必要である。実施例８では、各要素ｅｕ，ｖｕは複数のタグ装置８１０で共用できるため、何れかのタグ装置８１０に対応するハッシュ値ｃの算出のために計算したハッシュ値Ｈｗｕ（ｆｕ，０）＝ｆｕ，ｖｕをハッシュ値メモリ８３８に格納しておけば、この要素ｆｕ，ｖｕを、他のタグ装置８１０に対応するハッシュ値ｃの算出にも利用できる。これにより、算出すべきハッシュ値Ｈｗｕ（ｆｕ，０）の数を増加させることなく、対応可能なタグ装置８１０の数を増やすことができる。具体的には、ｄ＊ρ個の要素を用いρｄ個のタグ装置に対する固有の初期要素を割り当てることができる。【００９６】  さらにハッシュ関数の演算だけで通信データを構成するため、従来の乱数を発生させる方法に比べ、タグ装置８１０に取り込む回路規模も小さく、低価格が要求される用途に適している。
［追跡不可能性］
実施例８ではタグ出力情報ａｋ，ｉ＝Ｇ（ｓｋ，ｉ）を通信に用いた。ハッシュ値の認識不能性から、秘密値を知らない攻撃者にとって、このタグ出力情報ａｋ，ｉ＝Ｇ（ｓｋ，ｉ）は単なる乱数にみえる。そのため、この攻撃者は、タグ出力情報ａｋ，ｉ＝Ｇ（ｓｋ，ｉ）とａｋ，ｉ＋１＝Ｇ（ｓｋ，ｉ＋１）が同じタグ装置８１０から出力された値であるか否かを知ることはできず、タグ装置８１０の流通過程も追跡できない。【００９７】  ［フォワードセキュリティ］
実施例８では、通信に用いた秘密値メモリ８１１内の秘密値を、ハッシュ関数Ｈによって更新することとした。また、ハッシュ関数の一方向性により、タグ装置８１０がタンパー等され各要素ｅｕ，ｖｕが漏洩しても、攻撃者がこの要素ｅｕ，ｖｕから過去の要素ｅｕ，ｖｕ−Δｖｕを求めることはできない。従って、たとえ各要素ｅｕ，ｖｕが漏洩しても、攻撃者は、取得した各要素ｅｕ，ｖｕと通信履歴の対応を採れず、タグ装置８１０の追跡もできない。【００９８】  ［追跡可能性］
一方、ハッシュ関数Ｇ，Ｈの衝突困難性（異なる値のハッシュ値が同じ値をとりにくい性質）から、各要素ｆｕ，ｖｕを知っているバックエンド装置８３０は、タグ装置の流通過程を追跡できる。
なお、実施例８では、バックエンド装置８３０において生成される初期要素の集合を、
（ｂ１，１，０，…，ｂ１，ｊ，０，…，ｂ１，ρ，０）…（ｂｕ，１，０，…，ｂｕ，ｊ，０，…，ｂｕ，ρ，０）…（ｂｄ，１，０，…，ｂｄ，ｊ，０，…，ｂｄ，ρ，０）
とした。すなわち、各ｕ（ｕ∈｛１，…，ｄ｝）ごとにρ個ずつ初期要素ｂを生成した。しかし、各ｕ（ｕ∈｛１，…，ｄ｝）ごとに生成される初期要素ｂの数が異なっていてもよい。【００９９】  また、ステップＳ１７６の処理に必要なハッシュ値Ｈｗｕ（ｆｕ，０）（ｕ∈｛１，．．．，ｄ｝）を、事前処理の段階で、バックエンド装置８３０のハッシュ演算部８３７において求め、ハッシュ値メモリ８３８に格納しておいてもよい。
【実施例９】  実施例９は、実施例８の変形例であり、タグ装置の秘密値メモリ及びバックエンド装置のデータベースメモリに、さらに各タグ装置に固有な固有値が格納され、各要素ｅｕ，ｖｕ及び固有値γｋを含むビット列の結合のハッシュ値ａｋ，ｉ＝Ｇ（ｓｋ，ｉ）をタグ出力情報とする点が実施例８と相違する。これにより、他のタグ装置をタンパーして集められた要素ｅｕ，ｖｕをもとに、特定のタグ装置の秘密値が求められ、タグ装置が追跡されるといった事態を防止できる。【０１００】  以下では実施例８との相違点のみを説明し、実施例８と共通する事項については説明を省略する。
図１９は、実施例９におけるタグ自動認識システム９００の全体構成を例示した図である。また、図２０Ａは、タグ装置９１０の秘密値メモリ９１１に格納されるデータの例示であり、図２０Ｂは、バックエンド装置９３０のデータベースメモリ９３１に格納されるデータの例示である。なお、図１９において実施例１と共通する機能構成には図２と同じ符号を付し、実施例８と共通する機能構成には図１５と同じ符号を付し、それらの説明を省略する。また、図１９では１つのタグ装置９１０のみを図示しているが、実際は複数のタグ装置９１０が存在する。【０１０１】  以下、これらの図を用いて、実施例９の機能構成及び処理方法について説明する。
＜前処理＞
実施例８との相違点は、タグ装置９１０の秘密値メモリ９１１に、さらに固有値γｋが格納される点、及び、バックエンド装置９３０のデータベースメモリ９３１にｄ個（ｄ≧２）の初期要素ｆｕ，０（ｕ∈｛１，…，ｄ｝）の組合せと、各タグ装置固有の固有値γｎと、各タグ装置のタグＩＤ情報ｉｄｎと（ｎは各タグ装置に対応する値）を、対応付けて格納する点である。なお、固有値γｋ，γｎは、例えばランダム値である。【０１０２】  図２０の例は、ｄ＝２、ρ＝３、ｍ＝９の場合における、組合せ固有値の割り当てを例示したものである。
図２０Ｂに示すように、この例では、バックエンド装置９３０のデータベースメモリ９３１に、初期要素の組合せ９３１ａａ（（ｆ１，０，ｆ２，０）（ｆ１，０∈｛ｂ１，１，０，ｂ１，２，０，ｂ１，３，０｝，ｆ２，０∈｛ｂ２，１，０，ｂ２，２，０，ｂ２，３，０｝）
）と、タグＩＤ情報９３１ａｂ（ｉｄｎ（ｎ∈｛１，…，９｝）と、データ９３１ａｃ（ｄａｔａｎ（ｎ∈｛１，…，９｝）と、各タグ装置固有の固有値９３１ａｄ（γｋ，ｋ∈｛１，…，１２｝）と、を対応付けて格納する。また、図２０Ａに示すように、タグ装置９１０の秘密値メモリ９１１に、初期要素の組合せ９１１ａ（（ｅ１，０，ｅ２，０）＝（ｂ１，２，０，ｂ２，２，０））と、固有値９１１ｂ（γｋ＝γ５）を格納する。【０１０３】  ＜タグ装置の処理＞
以下では、ｉ回目（ｉは自然数）に、タグ装置９１０をリーダー装置１２０に読取らせた際の処理を説明する。
まず、ハッシュ演算部９１２（「第２の演算部」に相当）において、秘密値メモリ９１１から各要素ｅｕ，ｖｕ及び固有値γｋを抽出し、抽出した各要素ｅｕ，ｖｕ及び固有値γｋを含むビット列の結合値（秘密値ｓｋ，ｉ）のハッシュ値であるタグ出力情報ａｋ，ｉ＝Ｇ（ｓｋ，ｉ）を算出する。実施例９では、秘密値ｓｋ，ｉ＝γｋ｜ｅ１，ｖ１｜・・・｜ｅｕ，ｖｕ｜・・・｜ｅｄ，ｖｄとし、タグ出力情報ａｋ，ｉ＝Ｇ（γｋ｜ｅ１，ｖ１｜・・・｜ｅｕ，ｖｕ｜・・・｜ｅｄ，ｖｄ）とする。【０１０４】  その後、実施例８と同様に、タグ出力情報ａｋ，ｉが出力され、秘密値メモリ９１１の要素が更新される。
＜リーダー装置の処理＞
実施例８と同様である。
＜バックエンド装置の処理＞
実施例８との相違点は、実施例８のステップＳ１７６の処理（図１８）の代わりに、ハッシュ演算部９３３（「第３の演算部」に相当）が、データベースメモリ９３１から固有値γｎを読出し、ハッシュ値Ｈｗｕ（ｆｕ，０）及び固有値γｎを含むビット列の結合値のハッシュ値ｃを算出する点である。この例では、ハッシュ値ｃ＝Ｇ（γｎ｜Ｈｗ１（ｆ１，０）｜・・・｜Ｈｗｕ（ｆｕ，０）｜・・・｜Ｈｗｄ（ｆｄ，０））を算出する。それ以外は、実施例８と同様である。【０１０５】  ＜実施例９の特徴＞
［追跡不可能性］
実施例９では、各要素ｅｕ，ｖｕ及び固有値γｋを含むビット列の結合のハッシュ値であるタグ出力情報ａｋ，ｉ＝Ｇ（ｓｋ，ｉ）を、タグ装置９１０の出力とした。ここで、固有値γｋは、タグ装置９１０ごとに固有な値である。そのため、あるタグ装置がタンパーされたとしても、そこに格納されていたデータのハッシュ値から、要素ｅｕ，ｖｕを共用する他のタグ装置の過去のタグ出力情報を求めることはできない。そのため、攻撃者はこの他のタグ装置を追跡することができない。
【実施例１０】
【０１０６】  実施例１０は、実施例８の形態の変形例であり、タグ装置の多様値メモリにｔ種類（ｔ≧２）の値の多様値ｚを格納しておき、秘密値メモリから抽出した各要素ｅｕ，ｖｕと、何れかの多様値ｚと、のビット結合値（秘密値ｓｋ，ｉ）のハッシュ値をａｋ，ｉ＝Ｇ（ｓｋ，ｉ）をタグ出力情報とし、秘密値メモリの更新をｔ回の通信に１回行う点が実施例８と相違する。
以下では実施例８との相違点のみを説明し、実施例８と共通する事項については説明を省略する。【０１０７】  図２１は、実施例１０におけるタグ自動認識システム１０００の全体構成を例示した図である。また、図２２は、タグ装置１０１０の処理を説明するためのフローチャートであり、図２３は、バックエンド装置１０３０の処理を説明するためのフローチャートである。なお、図２１において実施例１，実施例８と共通する機能構成には図２，１５と同じ符号を付している。また、図２１では１つのタグ装置１０１０のみを図示しているが、実際は複数のタグ装置１０１０が存在する。
以下、これらの図を用いて、本実施例の機能構成及び処理方法について説明する。【０１０８】  ＜前処理＞
実施例８ととの相違点は、タグ装置１０１０の多様値生成部１０１５においてｔ種類（ｔ≧２）の値の多様値ｚを生成し、これを多様値メモリ１０１６（「第１多様値メモリ」に相当）に格納しておく点、バックエンド装置１０３０のデータベースメモリ１０３１（「第２多様値メモリ」に相当）に各タグ装置１０１０と共用されるｔ種類（ｔ≧２）の多様値ｚを格納しておく点である。
なお、多様値生成部１０１５としては、ｚ＝１・・・ｔをカウントするカウンタ、ｚ＝Ｈ（ｓｅｅｄ，ｘ），ｘ∈｛１，…，ｔ｝の演算を行うハッシュ演算装置、ｚ＝Ｈｘ（ｓｅｅｄ），ｘ∈｛１，…，ｔ｝の演算を行うハッシュ演算装置等を例示できる。ここで、ｓｅｅｄとは初期値を意味する。以下では、多様値ｚをｚ＝π（ｘ），カウント値ｘ∈｛１，…，ｔ｝と表現する。また、好ましくは、それぞれのｘ∈｛１，…，ｔ｝に対応する各多様値ｚ＝π（ｘ）は一致しない。【０１０９】  さらに、多様値ｚの生成及び格納は、必ずしも、前処理において行わなくてもよく、タグ装置１０１０の通信処理時や、バックエンド装置１０３０での検索処理時に行うこととしてもよい。
＜タグ装置の処理＞
以下では、ｉ回目（ｉは自然数）に、タグ装置１０１０をリーダー装置１２０に読取らせた際の処理を説明する。なお、カウント値ｘの初期値（ｉ＝１）は１であり、カウント値ｘは制御部１１５の制御のもとメモリ１１５ａに保存される。【０１１０】  まず、ハッシュ演算部１０１２（「第２の演算部」に相当）において、秘密値メモリ１０１１から各要素ｅｕ，ｖｕを抽出し、多様値メモリ１０１６から何れかの多様値ｚ（この例ではｚ＝π（ｘ））を抽出する（ステップＳ１９１）。そして、ハッシュ演算部１０１２は、抽出した各要素ｅｕ，ｖｕと、多様値ｚと、のビット結合値（秘密値ｓｋ，ｉ）のハッシュ関数ａｋ，ｉ＝Ｇ（ｓｋ，ｉ）をタグ出力情報として算出する（ステップＳ１９２）。この例では、秘密値ｓｋ，ｉ＝ｅ１，ｖ１｜・・・｜ｅｕ，ｖｕ｜・・・｜ｅｄ，ｖｄ｜ｚとし、タグ出力情報ａｋ，ｉ＝Ｇ（ｅ１，ｖ１｜・・・｜ｅｕ，ｖｕ｜・・・｜ｅｄ，ｖｄ｜ｚ）とする。なお、各要素ｅｕ，ｖｕと多様値ｚのビット配置順序、ビット結合される多様値ｚの数はこれに限定されない。また、ｘ∈｛１，…，ｔ｝に対応する各多様値ｚ＝π（ｘ）が一致しないこととした場合、秘密値メモリ１０１１の要素が更新されない間、ハッシュ演算部１０１２がタグ出力情報ａｋ，ｉの生成に使用する多様値ｚは、通信ごとに異なることになる。【０１１１】  生成されたタグ出力情報ａｋ，ｉはインタフェース１１４に送られ、インタフェース１１４は、このタグ出力情報ａｋ，ｉを出力する（ステップＳ１９３）。
その後、制御部１１５において、ｘ←ｘ＋１の演算（カウントアップ）を行い（ステップＳ１９４）、ｘ＞ｔであるか否かを判断する（ステップＳ１９５）。ここで、ｘ＞ｔでないと判断されれば、ｘの値をメモリ１１５ａに保持したままでタグ装置１０１０の処理を終了する。
一方、ｘ＞ｔであると判断された場合には、制御部１１５において、メモリ１１５ａのカウント値ｘをｘ←１とし（ステップＳ１９６）、ハッシュ演算部１０１３において、秘密値メモリ１０１１から少なくとも一部の要素ｅｕ’，ｖｕ’（ｕ’∈｛１，…，ｄ｝）を抽出し、抽出した要素ｅｕ’，ｖｕのハッシュ値Ｈ（ｅｕ’，ｖｕ’）を算出する（ステップＳ１９７）。そして、ハッシュ演算部１０１３において、このハッシュ値Ｈ（ｅｕ’ｖｕ’）を新たな要素ｅｕ’，ｖｕ’＋１として秘密値メモリ１０１１に上書きする（ステップＳ１９８）。なお、ｕ’∈｛１，…，ｄ｝の選択方法はどのようなものでもよい。【０１１２】  ＜リーダー装置の処理＞
実施例８と同様である。
＜バックエンド装置の処理＞
リーダー装置１２０から送信されたタグ出力情報ａｋ，ｉ及び物流情報ｐｄは通信部１３２において受信され、メモリ１３６ａに格納される（ステップＳ２０１）。
これをトリガに、制御部１３６は、ｎに１を代入してメモリ１３６ａに格納し（ステップＳ２０２）、ｄ個のｗｕの組合せを次のように選択し、その組合せをメモリ１３６ａに格納する（ステップＳ２０３）。【０１１３】  （ｗ１，．．．，ｗｄ）∈Ｓｗ＝｛ｗ１，．．．，ｗｄ｜ｗｕ∈［０，ｊｍａｘ］｝
次に、制御部１３６は、メモリ１３６ａのｎ，ｄ個のｗｕの組合せを参照し、さらにハッシュ値メモリ８３８を参照して、タグＩＤ情報ｉｄｎに対応するｄ個の初期要素ｆｕ，０（ｕ∈｛１，…，ｄ｝）に、それぞれハッシュ関数Ｈをｗｕ回作用させたハッシュ値Ｈｗｕ（ｆｕ，０）がハッシュ値メモリ８３８に格納されているか（生成済みであるか）否かを検証する（ステップＳ２０４）。なお、Ｈｗｕ（ｆｕ，０）の上付き添え字ｗｕはｗｕを示す。【０１１４】  ここで、タグＩＤ情報ｉｄｎに対応するハッシュ値Ｈｗｕ（ｆｕ，０）のうち、まだ演算が行われていないものが存在すると判断された場合、ハッシュ演算部８３７は、上記の「タグＩＤ情報ｉｄｎに対応するハッシュ値Ｈｗｕ（ｆｕ，０）のうち、まだ演算が行われていないもの」に対応する初期要素ｆｕ，０をデータベースメモリ１０３１から抽出し、この初期要素ｆｕ，０にハッシュ関数Ｈをｗｕ回作用させハッシュ値Ｈｗｕ（ｆｕ，０）を算出する（ステップＳ２０５）。算出されたハッシュ値Ｈｗｕ（ｆｕ，０）はハッシュ値メモリ８３８に格納され（ステップＳ２０６）、ステップＳ２０４の処理に戻る。【０１１５】  一方、ステップＳ２０４の判断で、タグＩＤ情報ｉｄｎに対応するハッシュ値Ｈｗｕ（ｆｕ，０）がすべて生成済みであると判断された場合、制御部１３６は、メモリ１３６ａのｎ，ｄ個のｗｕの組合せを参照し、ハッシュ演算部１０３３（「第３の演算部」に相当）に、ハッシュ値メモリ８３８から、タグＩＤ情報ｉｄｎに対応するｄ個の初期要素ｆｕ，０（ｕ∈｛１，…，ｄ｝）に、それぞれ第１の関数Ｆ１をｗｕ回作用させたハッシュ値Ｈｗｕ（ｆｕ，０）を抽出させる（ステップＳ２０７）。また、制御部１３６はカウンタ値ｘ’を１としてメモリ１３６ａに格納し（ステップＳ２０８）、多様値ｚ＝π（ｘ’）をデータベースメモリ１０３１から抽出してハッシュ演算部１０３３に送る。そしてハッシュ演算部１０３３は、ハッシュ値Ｈｗｕ（ｆｕ，０）と多様値ｚとのビット結合値にハッシュ値Ｇを作用させた演算値ｃを算出する（ステップＳ２０９）。なお、演算値ｃとしては、例えば、ｃ＝Ｇ（Ｈｗ１（ｆ１，０）｜・・・｜Ｈｗｕ（ｆｕ，０）｜・・・｜Ｈｗｄ（ｆｄ，０）｜ｚ）を例示できるが、各ハッシュ値Ｈｗｕ（ｆｕ，０）と多様値ｚのビット配置順序、ビット結合される多様値ｚの数はこれに限定されない。但し、その順序等はタグ装置１０１０のハッシュ演算部１０１２での各要素のビット配置順序に対応させる必要がある。【０１１６】  次に、比較部１３４において、メモリ１３６ａからタグ出力情報ａｋ，ｉを読出し、ハッシュ演算部１０３３から上記演算値ｃを受け取り、これらを比較してｃ＝ａｋ，ｉであるか否かを判断する（ステップＳ２１０）。この例では、ハッシュ値ｃ＝Ｇ（Ｈｗ１（ｆ１，０）｜・・・｜Ｈｗｕ（ｆｕ，０）｜・・・｜Ｈｗｄ（ｆｄ，０）｜ｚ）と、タグ出力情報ａｋ，ｉと、を比較する。
ここで、これらが一致しないと判断された場合、制御部１３６は、メモリ１３６ａのｘ’がｔであるか否かを判断する（ステップＳ２１１）。ここで、ｘ’＝ｔでないと判断された場合、制御部１３６はメモリ１３６ａのｘ’をｘ’＋１で更新してステップＳ２０９以降の処理を実行させる（ステップＳ２１２）一方、ｘ’＝ｔであると判断された場合、制御部１３６はメモリ１３６ａを参照し、全てのｄ個の組合せパターン（ｗ１，．．．，ｗｄ）∈Ｓｗが選択済みであるか否かを判断する（ステップＳ２１３）。【０１１７】  ここで、まだ選択されていない組合せパターン存在すると判断された場合、制御部１３６は、新たな組合せ（ｗ１，．．．，ｗｄ）∈Ｓｗを選択し、これらをメモリ１３６ａに格納して（ステップＳ２１４）、この新たな組合せ及びｎについて、ステップＳ２０４以降の処理を実行させる。一方、ステップＳ２１３の判断で、全ての組合せパターンが選択されたとされた場合、制御部１３６はメモリ１３６ａのｎを参照し、ｎ＝ｍであるか否かを判断する（ステップＳ２１５）。ここで、ｎ＝ｍでないと判断されると、制御部１３６はメモリ１３６ａのｎをｎ＋１によって更新し（ステップＳ２１６）、ステップＳ２０４以降の処理を実行させる。一方、ｎ＝ｍであると判断された場合には処理をエラー終了する（ステップＳ２１７）。【０１１８】  なお、ステップＳ２０４〜２１６の処理は、制御部１３６の制御のもと、タグ出力情報ａｋ，ｉと演算値ｃとが一致しなければ、ｎ、ｗｕ及びｚの少なくとも一部の値を変化させて、ハッシュ演算部１０３３及び比較部１３４における処理を再び行うことに相当する。
一方、ステップＳ２１０において、ハッシュ値ｃとタグ出力情報ａｋ，ｉとが一致すると判断された場合、読書き部１３５は、制御部１３５の制御のもと、当該ハッシュ値ｃに対応する複数の初期要素ｆｕ，０の組合せに対応付けられているタグＩＤ情報ｉｄｎをデータベースメモリ１０３１から選択し、このタグＩＤ情報ｉｄｎとそれに対応するデータｄａｔａｎを抽出して通信部１３２に送る。また、読書き部１３５は、メモリ１３６ａから物流情報ｐｄを受け取り、この物流情報ｐｄを、タグＩＤ情報ｉｄｎに対応するデータｄａｔａｎとして、データベースメモリ１０３１に追加書込みする（ステップＳ２１８）。通信部１３２に送られたタグＩＤ情報ｉｄｎとデータｄａｔａｎは、ネットワーク１４０を通じてリーダー装置１２０に送信される（ステップＳ２１９）。【０１１９】  ＜実施例１０の特徴＞
［追跡不可能性］
本実施例のタグ装置１０１０は、要素ｅｕ，ｖｕと多様値ｚとのビット結合値のハッシュ値をタグ出力情報ａｋ，ｉとしている。そのため、要素ｅｕ，ｖｕを更新しなくても多様値ｚを変化させれば出力値を変化させることができる。そして、ハッシュ関数の一方向性により、このように変化させた出力値の相関はとれない。そして多様値ｚはｔ種類の値をとるため、タグ装置は、要素ｅｕ，ｖｕを更新しなくても最大ｔ回の追跡困難な通信が可能である。【０１２０】  ［効率性］
本実施例のタグ装置１０１０は、ｔ回の通信に対して１回のみ、秘密値メモリ１１の要素ｅｕ，ｖｕを更新する。そのため、タグ装置１０１０での更新処理演算量を１／ｔに低減できる。
また、バックエンド装置１０３０でのハッシュ値ｃとタグ出力情報ａｋ，ｉとの比較処理も、最大Ｔ回ずつは、ハッシュ値Ｈｗｕ（ｆｕ，０）の組合せを変更することなく行われる。そのため、タグ装置２１０での許容通信回数（リーダー装置１２０からタグ装置１０１０への呼び出し回数の最大値）を増加させた場合でも、バックエンド装置１０３０におけるハッシュ処理はさほど増加しない。
【実施例１１】
【０１２１】  実施例１１は、実施例１０の変形例であり、タグ装置の多様値メモリに、各ｕ（ｕ∈｛１，…，ｄ｝）に対してｔｕ種類（ｔｕ≧２）の値をとる多様値ｚｕを格納しておき、秘密値メモリから抽出した各要素ｅｕ，ｖｕと、何れかの多様値ｚｕと、のビット結合値のタグ出力情報ａｋ，ｉ＝Ｇ（ｅ１，ｖ１｜ｚ１｜…｜ｅｄ，ｖｄ｜ｚｄ）を出力値とする点が実施例１０と相違する。また、秘密値メモリの各ｕ（ｕ∈｛１，…，ｄ｝）に対応する各要素ｅｕ，ｖｕは、それぞれｔｕ回の通信に１回行われるが、実施例１１では、各要素ｅｕ，ｖｕが更新される通信時点をシフトさせておき、タグ装置がタグ出力情報ａｋ，ｉを出力するたびに、秘密値メモリの何れかの要素ｅｕ’，ｖｕ’（ｕ’∈｛１，…，ｄ｝）が更新されるようにする。これにより、どの通信時点でタグ装置がタンパーされてもタグ装置を追跡できない。【０１２２】  以下では実施例１、実施例１０との相違点のみを説明し、実施例１、実施例１０の形態と共通する事項については説明を省略する。
図２４は、実施例１１におけるタグ自動認識システム１１００の全体構成を例示した図である。また、図２５は、タグ装置１１１０の処理を説明するためのフローチャートであり、図２６は、バックエンド装置１１３０の処理の一部を説明するためのフローチャートである。なお、図２４において実施例１，８と共通する機能構成には図２，１５と同じ符号を付している。また、図２４では１つのタグ装置１１１０のみを図示しているが、実際は複数のタグ装置１１１０が存在する。【０１２３】  以下、これらの図を用いて、本実施例の機能構成及び処理方法について説明する。
＜前処理＞
実施例１０との相違点は、タグ装置１１１０の多様値生成部１１１５において、各ｕ（ｕ∈｛１，…，ｄ｝）に対してｔｕ種類（ｔｕ≧２）の値をとる多様値ｚｕを設定し、これを多様値メモリ１１１６（「第１多様値メモリ」に相当）に格納しておく点、バックエンド装置１１３０のデータベースメモリ１１３１（「第２の多様値メモリ」に相当）に、各ｕ（ｕ∈｛１，…，ｄ｝）に対してｔｕ種類（ｔｕ≧２）の値をとる多様値ｚｕを格納しておく点である。なお、データベースメモリ１１３１に格納される各多様値ｚｕは各タグ装置１１１０に格納された各多様値ｚｕと同じである。【０１２４】  なお、多様値生成部１１１５としては、各ｕ（ｕ∈｛１，…，ｄ｝）に対して、ｚｕ＝１・・・ｔｕをカウントするカウンタ、ｚｕ＝Ｈ（ｓｅｅｄ，ｘｕ），ｘｕ∈｛１，…，ｔｕ｝の演算を行うハッシュ演算装置、ｚｕ＝Ｈｘ（ｓｅｅｄ），ｘｕ∈｛１，…，ｔｕ｝の演算を行うハッシュ演算装置等を例示できる。以下では、多様値ｚｕをｚｕ＝πｕ（ｘｕ），ｘｕ∈｛１，…，ｔｕ｝と表現する。なお、好ましくは、同一のｕに対し、ｘｕ∈｛１，…，ｔｕ｝に対応する各多様値ｚｕ＝πｕ（ｘｕ）が一致しないようにπｕが設定される。【０１２５】  また、実施例１１では、各ｘｕをｘｕ＝ｉ＋εｕ（ｕ∈｛１，…，ｄ｝）とする。ここで、ｉはタグ装置１１１０の通信回数を示しており、εｕは各ｘｕのｉからのずれを示す定数（０≦εｕ≦ｒｍａｘである整数）を示している。ここで、ｒｍａｘは、リーダー装置１２０からタグ装置１１１０への呼び出し回数の最大値である。
さらに、実施例１１では、すべての通信時点において、何れかのｘｕが必ずｘｕ＝ｔｕとなるように、εｕ及びｔｕを設定する。例えば、各ｕ（ｕ∈｛１，…，ｄ｝）に対するｔｕをすべて同一値とし、εｕ（ｕ∈｛１，…，ｄ｝）の集合がｔｕ未満の自然数の全体集合となるように各εｕを設定する。【０１２６】  また、多様値ｚｕの生成及び格納は、必ずしも、前処理において行わなくてもよく、タグ装置１１１０の通信処理時や、バックエンド装置１１３０での検索処理時に行うこととしてもよい。
＜タグ装置の処理＞
以下では、ｉ回目（ｉは自然数）に、タグ装置１１１０をリーダー装置１２０に読取らせた際の処理を説明する。なお、カウント値ｘｕ（ｕ∈｛１，…，ｄ｝）の初期値（ｉ＝１）は１＋εｕであり、各カウント値ｘｕは制御部１１５の制御のもとメモリ１１５ａに保存される。【０１２７】  まず、ハッシュ演算部１１１２（「第２の演算部」に相当）において、秘密値メモリ１１１１から各要素ｅｕ，ｖｕを抽出し、多様値メモリ１１１６から何れかの多様値ｚｕ（この例ではｚｕ＝πｕ（ｘｕ））を抽出する（ステップＳ２３１）。そして、ハッシュ演算部１１１２は、抽出した各要素ｅｕ，ｖｕと、何れかの多様値ｚｕと、のビット結合値（秘密値ｓｋ，ｉ）のハッシュ値であるタグ出力情報ａｋ，ｉ＝Ｇ（ｅ１，ｖ１｜ｚ１｜…｜ｅｄ，ｖｄ｜ｚｄ）を算出する（ステップＳ２３２）。なお、同一のｕに対し、ｘｕ∈｛１，…，ｔｕ｝に対応する各多様値ｚｕ＝πｕ（ｘｕ）が一致しないようにπｕを設定している場合、秘密値メモリ１１１１の要素が更新されない間、ハッシュ演算部１１１２がタグ出力情報ａｋ，ｉの生成に使用する多様値ｚｕは、通信ごとに異なることになる。また、秘密値ｓｋ，ｉ＝ｅ１，ｖ１｜ｚ１｜…｜ｅｄ，ｖｄ｜ｚｄにおけるビット結合順序は、特にこれに限定されない。生成されたタグ出力情報ａｋ，ｉはインタフェース１１４に送られ、インタフェース１１４は、このタグ出力情報ａｋ，ｉを送信する（ステップＳ２３３）。【０１２８】  その後、制御部１３６において、メモリ１３６ａのｘｕに対してｘｕ←ｘｕ＋１（ｕ∈｛１，…，ｄ｝）の演算を行う（ステップＳ２３４）。ここで、実施例１１では、すべての通信時点において、何れかのｘｕが必ずｘｕ＝ｔｕとなるようにεｕ及びｔｕを設定している。そのため、このｘｕ←ｘｕ＋１の演算により、必ず何れかのｘｕがｘｕ＞ｔｕとなっている。制御部１３６は、次に、このｘｕ＞ｔｕとなったｘｕに１を代入する（ステップＳ２３５）。なお、本実施例では、このｘｕに対応するｕをｕ’とする。
次に、ハッシュ演算部８１３において、秘密値メモリ１１１１から一部の要素ｅｕ’ｖｕ’（上記のｕ’∈｛１，…，ｄ｝に対応する要素）を抽出し、抽出した要素ｅｕ’，ｖｕ’のハッシュ値Ｈ（ｅｕ’，ｖｕ’）を算出する（ステップＳ２３６）。そして、ハッシュ演算部８１３において、このハッシュ値Ｈ（ｅｕ’，ｖｕ’）を新たな要素ｅｕ’，ｖｕ’＋１として秘密値メモリ１１１１に上書きし（ステップＳ２３７）、タグ装置１１１０での処理を終了する。【０１２９】  以上の処理により、インタフェース１１４がタグ出力情報ａｋ，ｉを出力するたびに、ハッシュ演算部８１３において、秘密値メモリ１１１１から要素ｅｕ’，ｖｕ’（ｕ’∈｛１，…，ｄ｝）を少なくとも１つ抽出し、抽出した要素ｅｕ’，ｖｕ’のハッシュ値Ｈ（ｅｕ’，ｖｕ’）を算出し、秘密値メモリ１１１１を更新することになる。
＜リーダー装置の処理＞
第１の実施の形態と同様である。
＜バックエンド装置の処理＞
実施例１１の実施例１０との相違点は、図２３に示したステップＳ２０８からＳ２１３の処理の代わりに、ステップＳ２６の処理を行う点である。【０１３０】  すなわち、ステップＳ２０７の処理の後、制御部１３６は、（ｘ１，．．．，ｘｄ）∈Ｓｘの組合せを次のように選択し、これらをメモリ１３６ａに格納する（ステップＳ２４１）。
（ｘ１，．．．，ｘｄ）∈Ｓｘ＝｛ｘ１，．．．，ｘｄ｜ｘｕ∈［０，ｔｕ］｝
そして、制御部１３６はメモリ１３６ａの（ｘ１，．．．，ｘｄ）∈Ｓｘの組合せを参照し、データベースメモリ１１３１からこれらに対応するｄ個の多様値ｚｕ＝π（ｘｕ）（ｕ∈｛１，…，ｄ｝）を抽出し、ハッシュ演算部１１３３に送る。ハッシュ演算部１１３３は、ハッシュ値Ｈｗｕ（ｆｕ，０）と多様値ｚｕとのビット結合値にハッシュ値Ｇを作用させた演算値ｃを算出する（ステップＳ２４２）。なお、演算値ｃとしては、例えば、ｃ＝Ｇ（Ｈｗ１（ｆ１，０）｜ｚ１｜・・・｜Ｈｗｕ（ｆｕ，０）｜ｚｕ｜・・・｜Ｈｗｄ（ｆｄ，０）｜ｚｄ）を例示できるが、各ハッシュ値Ｈｗｕ（ｆｕ，０）と多様値ｚｕのビット配置順序はこれに限定されない。但し、その順序等はタグ装置１１１０のハッシュ演算部１１１２での各要素のビット配置順序に対応させる必要がある。【０１３１】  次に、比較部１３４において、メモリ１３６ａからタグ出力情報ａｋ，ｉを読出し、ハッシュ演算部１１３３から上記演算値ｃを受け取り、これらを比較してｃ＝ａｋ，ｉであるか否かを判断する（ステップＳ２４３）。この例では、ハッシュ値ｃ＝Ｇ（Ｈｗ１（ｆ１，０）｜ｚ１｜・・・｜Ｈｗｕ（ｆｕ，０）｜ｚｕ｜・・・｜Ｈｗｄ（ｆｄ，０）｜ｚｄ）と、タグ出力情報ａｋ，ｉと、を比較する。
ここで、これらが一致しないと判断された場合、制御部１３６は、メモリ１３６ａを参照し、全ての組合せパターン（ｘ１，．．．，ｘｄ）∈Ｓｘが選択済みであるか否かを判断する（ステップＳ２４４）。ここで、全ての組合せパターン（ｘ１，．．．，ｘｄ）∈Ｓｘが選択済みでないと判断された場合、制御部１３６は、新たな組合せ（ｘ１，．．．，ｘｄ）∈Ｓｘを選択し、これらをメモリ１３６ａに格納した後、ステップＳ２４２以降の処理を実行させる。一方、ステップＳ２４４の判断で全ての組合せパターン（ｘ１，．．．，ｘｄ）∈Ｓｘが選択済みであると判断された場合には、図２３のステップＳ２１３に進む。一方、ステップＳ２４３の処理でｃ＝ａｋ，ｉであると判断された場合には、図２３のステップＳ２１８に進む。【０１３２】  ［効率性］
バックエンド装置１１３０でのハッシュ値ｃとタグ出力情報ａｋ，ｉとの比較処理は、最大ｔ１＋ｔ２＋．．．＋ｔｄ−１＋ｔｄ回ずつは、ハッシュ値Ｈｗｕ（ｆｕ，０）の組合せを変更することなく行われる。そのため、タグ装置１１１０での許容通信回数（リーダー装置１２０からタグ装置１１１０への呼び出し回数の最大値）を増加させた場合でも、バックエンド装置１１３０における処理はさほど増加しない。
［追跡不可能性］
実施例１１のタグ装置１１１０は、タグ出力情報ａｋ，ｉを出力するたびに、秘密値メモリ１１１１に格納された何れかの要素ｅｕ’，ｖｕ’（ｕ’∈｛１，…，ｄ｝）をハッシュチェインによって更新する。そのため、タグ装置１１１０がタンパーされ、秘密値メモリ１１１１内の要素ｅｕ’，ｖｕ’が攻撃者に漏洩しても、攻撃者は、ハッシュ関数の一方向性により、更新前の要素ｅｕ’，ｖｕ’−ｔと、更新後の要素ｅｕ’，ｖｕ’との相関がとれない。そのため、攻撃者は、秘密値メモリ１１１１から取得した要素と、過去にタグ装置から出力された出力値との相関をとることもできない。これにより、タグ装置１１１０の追跡を防止できる。【０１３３】  さらに、実施例１１では、タグ装置１１１０がタンパーされ、各多様値ｚｕが漏洩した場合であっても、秘密値メモリ１１１１に格納された何れかの要素ｅｕ’ｖｕ’は上書き更新されている。これにより、タグ装置１１１０がタンパーされた場合における影響を最小限に抑えることができる。
なお、実施例１１では、すべての通信時点において、何れかのｘｕが必ずｘｕ＝ｔｕとなるように、εｕ及びｔｕを設定した。つまり、例えば、ｔ１＝ｔ２＝・・・＝ｔｄとし、各要素ｅｕ，ｖｕに対応するカウンタｘｕを１ずつずらすこととした（ｘｕ＝ｉ＋ｕ／ｄ）。【０１３４】  しかし、ｔｕ（ｕ∈｛１，…，ｄ｝）をすべて等しくせず、各要素ｅｕ，ｖｕに対応する各カウンタｘｕを、一番値の大きいｔｕをｄ等分した間隔ずつずらしたものとしてもよい。この場合、完全なフォワードセキュア（ｆｏｒｗａｒｄ  ｓｅｃｕｒｅ）の性質を満たさない場合もあるが、少なくとも、タンパーされたときの影響を抑制することはできる。
【実施例１２】  実施例１２は、実施例１１の変形例である。実施例１１と同様、実施例１２でも各要素ｅｕ，ｖｕが更新される通信時点はシフトさせる。但し、実施例１２では、タグ装置が、タグ出力情報ａｋ，ｉをΣｕ＝１ｄｔｕ回出力するたびに、何れかの要素ｅｕ’，ｖｕ’を抽出し、抽出した要素ｅｕ’，ｖｕ’のハッシュ値Ｈ（ｅｕ’，ｖｕ’）を算出する。【０１３５】  具体的には、実施例１２のタグ装置は、外部からのアクセスごとに、ｄ個の要素ｅｕ，ｖｕの何れかに対応するカウンタｘｕ∈｛１，…，ｔｕ｝をカウントアップしていく（例えば、ｅ１，ｖ１・・・ｅｄ，ｖｄの順に１ずつカウントアップしていく）。ここで、このカウンタｘｕは、タグ出力情報ａｋ，ｉ＝Ｇ（ｅ１，ｖ１｜ｚ１｜…｜ｅｄ，ｖｄ｜ｚｄ）を構成する多様値ｚｕに対応するため、このタグ装置は、各要素ｅｕ，ｖｕを更新することなく、異なる値のタグ出力情報ａｋ，ｉをΣｕ＝１ｄｔｕ回出力することができる。本実施例では、このタグ出力情報ａｋ，ｉをΣｕ＝１ｄｔｕ回出力するごとに何れかの各要素ｅｕ，ｖｕを更新するこれにより、タグ装置の出力値の多様性を保持しつつ、タグ装置での更新演算量を最小限に抑える。【０１３６】  以下では、実施例１，１１との相違点のみを説明し、実施例１，１１と共通する事項については説明を省略する。
図２７は、実施例１２のタグ装置の処理を説明するためのフローチャートである。なお、全体の機能構成は、実施例１１と同様である（図２４）。
以下、これらの図を用いて、本実施例の処理方法について説明する。
＜前処理＞
実施例１１では、ｘｕ＝ｉ＋εｕ（ｕ∈｛１，…，ｄ｝）とし、すべての通信時点において、何れかのｘｕが必ずｘｕ＝ｔｕとなるようにεｕ及びｔｕを設定していたが、実施例１２では、特にこのような限定は行わない。【０１３７】  ＜タグ装置の処理＞
以下では、ｉ回目（ｉは自然数）に、タグ装置３１０をリーダー装置２０に読取らせた際の処理を説明する。なお、カウント値ｘｕ（ｕ∈｛１，…，ｄ｝）の初期値（ｉ＝１）は１であり、ｕ’及びｕ’の初期値も１である。なお、ｕ’は更新する要素ｅｕ’，ｖｕ’に対応し、ｕ’’はカウントアップする要素ｅｕ’’，ｖｕ’’のカウント値ｘｕ’’に対応する。また、各パラメータは、制御部１３６の制御のもとメモリ１３６ａに格納される。【０１３８】  まず、ハッシュ演算部１１１２において、秘密値メモリ１１１１から各要素ｅｕ，ｖｕを抽出し、多様値メモリ１１１６から何れかの多様値ｚｕ（この例ではｚｕ＝πｕ（ｘｕ））を抽出する（ステップＳ２４１）。そして、ハッシュ演算部１１１２は、抽出した各要素ｅｕ，ｖｕと、何れかの多様値ｚｕと、のビット結合値のハッシュ値であるタグ出力情報ａｋ，ｉ＝Ｇ（ｅ１，ｖ１｜ｚ１｜…｜ｅｄ，ｖｄ｜ｚｄ）を算出する（ステップＳ２４２）。
生成されたタグ出力情報ａｋ，ｉはインタフェース１１４に送られ、インタフェース１１４は、このタグ出力情報ａｋ，ｉを送信する（ステップＳ２４３）。【０１３９】  その後、制御部１３６において、メモリのｘｕ’’に対し、ｘｕ’’←ｘｕ’’＋１（ｕ’’∈｛１，…，ｄ｝）の演算を行い（ステップＳ２４４）、ｘｕ’’＞ｔｕ’’（ｔｕ’’はｘｕ’’の最大値）であるか否かを判断する（ステップＳ２４５）。ここで、ｘｕ’’＞ｔｕ’’ないと判断された場合にはタグ装置１１１０の処理を終了する。
一方、ｘｕ’’＞ｔｕ’’であると判断された場合、制御部１３６は、メモリ１３６ａのｕ’’にｕ’’＋１を代入し（ステップＳ２４６）、ｕ’’＞ｄとなったか否かを判断する（ステップＳ２４７）。ここで、ｕ’’＞ｄとなっていない場合にはタグ装置１１１０での処理を終了し、ｕ’’＞ｄとなっている場合には、ハッシュ演算部８１３において、秘密値メモリ１１１１から要素ｅｕ’，ｖｕ’（上記のｕ’∈｛１，…，ｄ｝に対応する要素）を抽出し、抽出した要素ｅｕ’，ｖｕ’のハッシュ値Ｈ（ｅｕ’，ｖｕ’）を算出する（ステップＳ２４８）。そして、ハッシュ演算部８１３において、このハッシュ値Ｈ（ｅｕ’，ｖｕ’）を新たな要素ｅｕ’，ｖｕ’＋１として秘密値メモリ１１１１に上書き保存する（ステップＳ２４９）。【０１４０】  その後、例えば、ハッシュ演算部８１３において、ｖｕ’←ｖｕ’＋１の演算（更新回数）を行い（ステップＳ２５０）、ｖｕ’が要素ｅｕ’，ｖｕ’の更新回数の最大値（ｍａｘ）を超えたか否かを判断する（ステップＳ２５１）。ここで、ｖｕ’＞ｍａｘとなっていないと判断された場合にはタグ装置１１１０の処理を終了し、ｖｕ’＞ｍａｘとなっている場合には、制御部１３６において、ｕ’←ｕ’＋１（更新対象となる要素の変更）と、ｖｕ’←０（更新対象となる要素の更新回数をリセット）との演算を行い（ステップＳ２５２）、それらの結果をメモリ１３６ａに格納してタグ装置１１１０での処理を終了する。【０１４１】  以上の処理により、インタフェース１１４がタグ出力情報ａｋ，ｉをΣｕ＝１ｄｔｕ回出力するたびに、ハッシュ演算部８１３において、秘密値メモリ１１１１からいずれかの要素ｅｕ’，ｖｕ’を抽出し、抽出した要素ｅｕ’，ｖｕ’のハッシュ値Ｈ（ｅｕ’，ｖｕ’）を算出し、秘密値メモリ１１を更新することになる。
＜リーダー装置の処理＞
実施例８と同様である。
＜バックエンド装置の処理＞
実施例１１と同様である。【０１４２】  ＜実施例１２の特徴＞
［効率性］
実施例１２では、タグ装置１１１０がΣｕ＝１ｄｔｕ回通信するたびに、いずれかの要素ｅｕ’，ｖｕ’を更新するため、タグ装置１１１０での更新処理演算量を削減できる。つまり、本実施例では、通信のたびにΣｕ＝１ｄｔｕ個の多様値を置き換えながらタグ出力情報ａｋ，ｉ＝Ｇ（ｅ１，ｖ１｜ｚ１｜…｜ｅｄ，ｖｄ｜ｚｄ）を生成し出力する。そのため、Σｕ＝１ｄｔｕ回の通信において、要素ｅｕ，ｖｕを更新することなく、タグ装置の出力値の多様性を確保できる。そして、Σｕ＝１ｄｔｕ回の通信ごとにいずれかの要素ｅｕ’，ｖｕ’を更新することにより、さらに次のΣｕ＝１ｄｔｕ回の通信における出力値の多様性を確保できる。そして、要素ｅｕ’，ｖｕ’の更新はΣｕ＝１ｄｔｕ回の通信に一回でよいため、タグ装置１１１０での更新演算量を最小限に抑えることができる。【０１４３】  ［追跡不可能性］
本実施例のタグ装置１１１０は、インタフェース１１４がタグ出力情報ａｋ，ｉをΣｕ＝１ｄｔｕ回出力するたびに、ハッシュ演算部８１３が秘密値メモリ１１１１を更新する。そのため、タグ装置１１１０がタンパーされ、秘密値メモリ１１１１内の要素ｅｕ’，ｖｕ’が攻撃者に漏洩しても、攻撃者が知ることができるタグ装置１１１０の過去の出力値の数はΣｕ＝１ｄｔｕ個未満である。これにより、タグ装置１１１０での更新演算処理量を削減しつつ、タグ装置１１１０の追跡を抑制できる。
【実施例１３】
【０１４４】  実施例１３は実施例１から４，６から１２の変形例であり、使用される２種類のハッシュ関数Ｇ（ｘ）及びハッシュ関数Ｈ（ｘ）に特徴がある。
以下では、このハッシュ関数Ｈ（ｘ），Ｇ（ｘ）についてのみ説明する。
＜Ｎｏ１＞
この例のハッシュ関数Ｇ（ｘ）は、ｒを自然数とし、ｈａｓｈを｛０，１｝＊→｛０，１｝ｒのハッシュ関数とした場合における、ｈａｓｈ（１｜ｘ）であり、ハッシュ関数Ｈ（ｘ）は、ｈａｓｈ（０｜ｘ）である。なお、α｜βとはαとβのビット結合を示す。また、ハッシュ関数Ｇ（ｘ）をｈａｓｈ（０｜ｘ）とし、ハッシュ関数Ｈ（ｘ）をｈａｓｈ（１｜ｘ）としてもよい。【０１４５】  ＜Ｎｏ２＞
この例のハッシュ関数Ｈ（ｘ）（第１の関数Ｆ１）は、ｒ，ｓを自然数とし、ｈａｓｈを｛０，１｝＊→｛０，１｝ｒのハッシュ関数とし、ｐ∈｛０，１｝ｓとした場合における、ｈａｓｈ（ｐ｜ｘ）である。また、ハッシュ関数Ｇ（ｘ）（第２の関数Ｆ２）は、ｑ∈｛０，１｝ｓとし、ｐ≠ｑとした場合における、ｈａｓｈ（ｑ｜ｘ）である。
＜Ｎｏ３＞
このハッシュ関数Ｈ（ｘ）（第１の関数Ｆ１）は、ｐ∈｛０，１｝ｓとし、ｘにｐをパディングしたもの（ｘに対するｐのパディング）をｐａｄ（ｘ，ｐ）とした場合における、ｈａｓｈ（ｐａｄ（ｘ，ｐ））である。また、ハッシュ関数Ｇ（ｘ）（第２の関数Ｆ２）は、ｑ∈｛０，１｝ｓとし、ｐ≠ｑとし、ｘにｑをパディングしたもの（ｘに対するｑのパディング）をｐａｄ（ｘ，ｑ）とした場合における、ｈａｓｈ（ｐａｄ（ｘ，ｑ））である。なお、ｘに対するｐやｑのパディング位置（ビット列の位置）は特に限定されない。例えば、ｘの前や後にｐ或いはｑをビット結合してもよく、また、ｘのビット列の途中にｐ或いはｑを挿入してもよい。【０１４６】  ＜Ｎｏ４＞
このハッシュ関数Ｈ（ｘ）（第１の関数Ｆ１）は、ｈａｓｈを｛０，１｝＊→｛０，１｝ｒのハッシュ関数とした場合における、ｈａｓｈ（ｘ）であり、ハッシュ関数Ｇ（ｘ）（第２の関数Ｆ２）は、ｒｘをｘのビット反転とした場合における、ｈａｓｈ（ｒｘ）である。
＜実施例１３の効果＞
本実施例では、１種類のハッシュ関数のみを用い、その性質（一方向性、ランダム値を出力する）を崩すことなく、２種類のハッシュ演算Ｇ（ｘ），Ｈ（ｘ）を実現できる。これにより、ハッシュ関数を構成する回路規模を縮小することができる。その結果、タグ装置に組み込む回路規模を小さくでき、タグ装置の低コスト化を実現できる。【０１４７】  〔第２の実施の形態〕
＜構成＞
次に、本発明における第２の実施の形態について説明する。
本形態では、タグ装置の外部に設けられた更新装置において、タグ装置に格納されている秘匿化ＩＤ情報を、所定の契機で、それとの関連性の把握が困難な新たな秘匿化ＩＤ情報に更新する。
＜構成＞
図２８は、本形態の概略構成を例示したブロック図である。【０１４８】  図２８に例示するように、本形態の更新システム１５００は、タグ装置１５１０及びその外部に設けられたセキュリティサーバ装置１５６０を有している。
タグ装置１５１０は、各タグ装置に固有なタグＩＤ情報を秘匿化した秘匿化した秘匿化ＩＤ情報を格納する秘密値メモリ、秘密値メモリと電気的に接続された読書き部１５１２、読書き部１５１２と電気的に接続された第１の出力部１５１３及び第２の入力部１５１４を有している。
また、セキュリティサーバ装置１５６０は、第１の入力部１５６１、第１の入力部１５６１と電気的に接続された更新部１５６２、更新部１５６２に接続された第２の出力部１５６３を有している。【０１４９】  ＜秘匿化ＩＤの更新処理＞
秘匿化ＩＤの更新は以下のように行われる。
まず、所定の契機で、タグ装置１５１０が、読書き部１５１２において、その秘密値メモリ１５１１に格納されている秘匿化ＩＤ情報ｓｉｄｈを読み出し、第１の出力部１５１３において、秘匿化ＩＤ情報ｓｉｄｈを、各タグ装置の外部に設けられたセキュリティサーバ装置１５６０に対して出力する。
セキュリティサーバ装置１５６０は、第１の入力部１５６１において、秘匿化ＩＤ情報ｓｉｄｈの入力を受け付ける。そして、更新部１５６２において、秘匿化ＩＤ情報ｓｉｄｈとの関連性の把握が困難な新たな秘匿化ＩＤ情報ｓｉｄｈ’を生成し、第２の出力部１５６３において、新たな秘匿化ＩＤ情報ｓｉｄｈ’をタグ装置１５１０に対して出力する。【０１５０】  タグ装置１５１０は、第２の入力部１５１４において、新たな秘匿化ＩＤ情報ｓｉｄｈ’の入力を受け付け、読書き部１５１２において、この新たな秘匿化ＩＤ情報ｓｉｄｈ’を秘密値メモリ１５１１に格納する。
【実施例１４】  図２９は実施例１４における更新システム２０００の全体構成を例示した概念図である。
この図に例示するように、更新システム２０００は、商品等に貼り付けられる無線タグ等のタグ装置２０１０、クライアント装置２０２０、平文のＩＤに関連する流通情報等を管理するバックエンド装置２０５０、及びＩＤの復元や秘匿化ＩＤの再秘匿化処理等を行うセキュリティサーバ装置２０６０（ネットワークを通じて送信された秘匿化ＩＤの再秘匿化処理を行うサーバ装置であり、「更新装置」に相当する）を有している。そして、このクライアント装置２０２０、バックエンド装置２０５０及びセキュリティサーバ装置２０６０は、インターネット等のネットワーク２０７０により通信可能なように接続されている。なお、クライアント装置２０２０は、第１の実施の形態で説明したリーダー装置としての機能を備えている。また、第１の実施の形態において、タグ装置、リーダー装置及びバックエンド装置において実現された効果は、タグ装置２０１０、クライアント装置２０２０、バックエンド装置２０５０及びセキュリティサーバ装置２０６０によって実現される。また、説明の簡略化のため、この図では１つのタグ装置２０１０、クライアント装置２０２０、バックエンド装置２０５０及びセキュリティサーバ装置２０６０を例示しているが、通常タグ装置は複数であり、クライアント装置、バックエンド装置及びセキュリティサーバ装置は複数としてもよい。【０１５１】  この例のクライアント装置２０２０は、まず、タグ装置２０１０から秘匿化ＩＤを読取り、これをセキュリティサーバ装置２０６０に送る。セキュリティサーバ装置２０６０は、この秘匿化ＩＤからＩＤを復元し、このＩＤをクライアント装置２０２０に返す。ＩＤを受け取ったクライアント装置２０２０は、バックエンド装置２０５０にアクセスし、ＩＤ、読取り日時、読取り場所、温度等の情報の書き込みや、ＩＤに関連する情報の取得等を要求する。また、クライアント装置２０２０が、秘匿化ＩＤをセキュリティサーバ装置２０６０に送信し、セキュリティサーバ装置２０６０が、直接、バックエンド装置２０５０にアクセスするというプロキシモデルの利用形態も想定できる。そして、本実施例の特徴的な部分は、セキュリティサーバ装置２０６０等のタグ装置２０１０の外部に設けられた装置が、タグ装置２０１０内の秘匿化ＩＤを再秘匿化（秘匿化ＩＤを別の秘匿化ＩＤに更新すること）する点である。【０１５２】  図３０は、本実施例における更新システム１の機能構成を例示したブロック図である。
＜タグ装置＞
この例のタグ装置２０１０は、秘密値メモリ２０１１、読書き部２０１２（「第１の読書き部」に相当）、インタフェース２０１３（「第１の出力部」「第２の入力部」に相当）、メモリ２０１４ａ及び制御部２０１４からなる。
ここで、秘密値メモリ２０１１，メモリ２０１４ａは、例えば、ＥＥＰＲＯＭ（Ｅｌｅｃｔｒｏｎｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  ａｎｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＦｅＲＡＭ（Ｆｅｒｒｏｅｌｅｃｔｒｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、フラッシュメモリ、ＮＶ（Ｎｏｎｖｏｌａｔｉｌｅ）ＲＡＭ等の読書き可能なＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）である。また、読書き部２０１２は、制御部２０１４の制御のもと、秘密値メモリ２０１１の所定のアドレスにデータの読書きするハードウェアである。また、制御部２０１４は、例えば、タグ装置２０１０全体の処理を制御するように構成された集積回路である。【０１５３】  インタフェース２０１３は、無線或いは有線によってクライアント装置２０２０に対してデータを入出力するハードウェアである。具体的には、インタフェース２０１３は、例えば、ＮＲＺ符号やマンチェスター符号化やミラー符号や単極ＲＺ符号化等によって符号化・復号化を行う符号化・復号化回路、ＡＳＫ（Ａｍｐｌｉｔｕｄｅ  Ｓｈｉｆｔ  Ｋｅｙｉｎｇ）やＰＳＫ（Ｐｈａｓｅ  Ｓｈｉｆｔ  Ｋｅｙｉｎｇ）やＦＳＫ（Ｆｒｅｑｕｅｎｃｙ  Ｓｈｉｆｔ  Ｋｅｙｉｎｇ）等によって変・復調を行う変・復調回路、ダイポールアンテナやマイクロストリップアンテナやループコイルやコア入りコイル等のアンテナを有し、長周帯やＩＳＭ帯（Ｉｎｄｕｓｔｒｙ  Ｓｃｉｅｎｃｅ  Ｍｅｄｉｃａｌ  ｂａｎｄ）の周波数を用いて信号の送受信を行う。なお、通信方式は、例えば、電磁誘導方式や電波方式を利用する。【０１５４】  また秘密値メモリ２０１１は、読書き部２０１２と電気的に接続され、読書き部２０１２はインタフェース２０１３と電気的に接続される。また、この図では省略するが、制御部２０１４はタグ装置２０１０の各部と電気的に接続されている。
＜クライアント装置＞
この例のクライアント装置２０２０は、インタフェース２０２２、通信部２０２１、メモリ２０２４ａ及び制御部２０２４を有する。
物流情報メモリ１２１は、例えば、ハードディスク装置、フレキシブルディスク等の磁気記録装置、ＤＶＤ−ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＣＤ−Ｒ（Ｒｅｃｏｒｄａｂｌｅ）／ＲＷ（ＲｅＷｒｉｔａｂｌｅ）等の光ディスク装置、ＭＯ（Ｍａｇｎｅｔｏ−Ｏｐｔｉｃａｌ  ｄｉｓｃ）等の光磁気記録装置、ＥＥＰ−ＲＯＭ（Ｅｌｅｃｔｒｏｎｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  ａｎｄ  Ｐｒｏｇｒａｍｍａｂｌｅ−Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、フラッシュメモリ（ｆｌａｓｈ  ｍｅｍｏｒｙ）等の半導体メモリ等である。インタフェース２０２２は、例えば、インタフェース２０１３の例と同様なハードウェアである。通信部２０２１は、例えば、ＬＡＮカード、モデム、ターミナルアダプター等であり、制御部２０２３は、例えば、メモリ２０２３ａを有するＣＩＳＣ（Ｃｏｍｐｌｅｘ  Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｅｔ  Ｃｏｍｐｕｔｅｒ）方式、ＲＩＳＣ（Ｒｅｄｕｃｅｄ  Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｅｔ  Ｃｏｍｐｕｔｅｒ）方式等のＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）である。【０１５５】  また、インタフェース２２及び通信部２０２１とは電気的に接続され、この図では省略するが、制御部２０２４はクライアント装置２０２０の各部と電気的に接続されている。
＜更新装置＞
セキュリティサーバ装置２０６０は、通信部２０６２（「第１の入力部」「第２の出力部」に相当）、乱数生成部２０６３、読書き部２０６４（「第２の読書き部」に相当）、秘匿化ＩＤメモリ２０６１、メモリ２０６５ａ及び制御部２０６５を有している。なお、乱数生成部２０６３、読書き部２９６４及び秘匿化ＩＤメモリ２０６１は、「更新部」を構成する。具体的には、セキュリティサーバ２０６０は、例えば、ＣＰＵ、ＲＡＭ、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、磁気記録装置や光ディスク装置等の外部記憶装置、ＬＡＮカードやモデムやターミナルアダプター等をバスで接続した公知のノイマン型コンピュータに所定のプログラムを実行させることにより構成される。そしてこのＣＰＵが、ＲＡＭに格納されたプログラムを読み出し、それに従った処理を実行することによって以下に示す各処理機能を実現する。【０１５６】  ＜処理＞
図３１は、本実施例の処理手順を説明するためのフローチャートである。以下、図２９から図３１の図を用いて、本実施例の機能構成及び処理について説明する。なお、タグ装置２０１０、クライアント装置２０２０及びセキュリティサーバ装置２０６０は、それぞれ制御部２０１４、２０２３、２０６５の制御により各処理を実行する。また、処理されるデータは、逐一メモリ２０１４ａ、２０２３ａ或いは２０６５ａに格納され、演算等の処理を行う際に呼び出されるが、以下ではこの説明を省略する。【０１５７】  ＜前処理＞
この例の秘匿化ＩＤ情報は、タグＩＤ情報ｉｄｈに対応付けられたランダム値ｒｈである。タグ装置２０１０の秘密値メモリ２０１１には、このタグ装置２０１０固有のタグＩＤ情報ｉｄｈに対応するランダム値ｒｈが秘匿化ＩＤ情報ｓｉｄｈとして格納されている。また、セキュリティサーバ装置２０６０の秘匿化ＩＤメモリ２０６１には、各タグ装置２０１０に対応するタグＩＤ情報ｉｄ１，…，ｉｄｍと、これら各タグＩＤ情報に対応付けられたランダム値ｒ１，…，ｒｍである秘匿化ＩＤ情報とが格納されている。なお、ｈは１以上ｍ以下の自然数であり、各タグ装置２０１０に対応する番号とする。また、ｍはタグ装置の総数である。
＜秘匿化ＩＤ情報更新処理＞
まず、何らかの認証技術を利用し、クライアント装置２０２０とセキュリティサーバ装置２０６０との間で相互認証を行う。また、クライアント装置２０２０とセキュリティサーバ装置２０６０との通信は、何らかの暗号技術により暗号化されて行われる。【０１５８】  秘匿化ＩＤ情報ｓｉｄｈの更新処理は、例えば、玄関等外出時に必ず通る場所を通過した場合やタグ装置２０１０内に格納された秘匿化ＩＤ情報の使用回数（カウント値が所定値に達した）等をトリガとして開始される。このトリガにより、まず、クライアント装置２０２０は、インタフェース２０２２においてタグ装置２０１０に読取り指示を送信する（ステップＳ３０１）。この読取り指示はタグ装置２０１０のインタフェース２０１３において受信され、これをトリガとして、読書き部２０１２は、秘密値メモリ２０１１から秘匿化ＩＤ情報ｓｉｄｈを抽出する（ステップＳ３０２）。抽出された秘匿化ＩＤ情報ｓｉｄｈは、インタフェース２０１３から、クライアント装置２０２０に送信（出力）される（ステップＳ３０３）。この秘匿化ＩＤ情報ｓｉｄｈは、クライアント装置２０２０のインタフェース２０２２において受信され、秘匿化ＩＤ情報の更新依頼（再秘匿化要求）とともに、通信部２０２１からネットワーク２０７０を通じ、セキュリティサーバ装置２０６０に送信される（ステップ３０４）。【０１５９】  この秘匿化ＩＤ情報（ｓｉｄｈ）等の情報は、セキュリティサーバ装置２０６０の通信部６２において受信され（入力を受け付けられ）（ステップＳ３０５）、読書き部２０６４に送られる。また、これをトリガとして、乱数生成部６３（「ランダム値生成部」に相当）において、ランダム値である乱数ｒｈ’が生成される（ステップＳ３０６）。
なお、この乱数ｒｈ’の生成は、秘匿化ＩＤメモリ２０６１の秘匿化ＩＤ情報と同値とならないように行われる。また、この生成は、例えば、ＳＨＡ−１等の一方向性ハッシュ関数を用いて構成される計算量理論に基づく擬似乱数生成アルゴリズムを用いて行われ、生成された乱数ｒｈ’は、読書き部２０６４に送られる。読書き部２０６４は、秘匿化ＩＤ情報ｓｉｄｈに対応するタグＩＤ情報ｉｄｈを秘匿化ＩＤメモリ２０６１から検索（選択）し、このタグＩＤ情報ｉｄｈに乱数ｒｈ’（「ランダム値」に相当）を新たな秘匿化ＩＤ情報ｓｉｄｈ’として対応付け、秘匿化ＩＤメモリ２０６１に格納する（ステップＳ３０７）。また、読書き部２０６４は、新たな秘匿化ＩＤ情報ｓｉｄｈ’＝ｒｈ’を通信部２０６２に送り、通信部２０６２は、この新たな秘匿化ＩＤ情報ｓｉｄｈ）を、ネットワーク２０７０を通じ、クライアント装置２０２０に送信（「タグ装置に対して出力」に相当）する（ステップＳ３０８）。【０１６０】  送信された新たな秘匿化ＩＤ情報ｓｉｄｈ’は、クライアント装置２０２０の通信部２０２１において受信され、インタフェース２０２２を通じてタグ装置２０１０に送信される（ステップＳ３０９）。タグ装置２０１０は、インタフェース２０１３において、この新たな秘匿化ＩＤ情報ｓｉｄｈ’を受信し（入力を受け付け）、読書き部２０１２に送る。読書き部２０１２は、この新たな秘匿化ＩＤ情報ｓｉｄｈ’を秘密値メモリ２０１１に送り、そこに格納する（ステップＳ３１０）。その後、タグ装置２０１０は、リーダー装置（図示せず）からの読取り要求に対し、この新たな秘匿化ＩＤ情報ｓｉｄｈ’を、リーダー装置を通じバックエンド装置２０５０に送る。バックエンド装置２０５０は、受け取った秘匿化ＩＤ情報ｓｉｄｈ’をデータベースメモリ１１３１に送り、データベースメモリ１１３１は、これを通信部２０６２で受信し、読書き部２０６４に送る。読書き部２０６４は、この秘匿化ＩＤ情報ｓｉｄｈ’と一致するランダム値を秘匿化ＩＤメモリ２０６１から検索し、一致したランダム値ｒｈに対応付けられているタグＩＤ情報ｉｄｈを読出して通信部２０６２に送り、通信部２０６２はこれをバックエンド装置２０５０に送信する。【０１６１】  ＜実施例１４の特徴＞
本実施例では、タグ装置２０１０に格納された秘匿化ＩＤ情報を任意のタイミングで更新できる。そのため、通信履歴等に残された秘匿化ＩＤ情報の共通性をもとにタグ装置２０１０が追跡され、プライバシーが侵害されることを回避できる。また、ランダム値を秘匿化ＩＤ情報としたため、攻撃者が更新前後の秘匿化ＩＤ情報の関連性を知ることはできない。よって、タグ装置２０１０の追跡の防止を強固に実現できる。さらに、複雑な再秘匿化処理を、タグ装置２０１０外部のセキュリティサーバ装置２０６０で行うこととしたため、タグ装置２０１０自体に再秘匿化処理に必要な回路等を設ける必要もない。その結果、タグ装置２０１０自体のコストを低く抑えることができる。
【実施例１５】
【０１６２】  本実施例は、実施例１４の変形例であり、共通鍵暗号方式による暗号文を秘匿化ＩＤ情報とする点が実施例１４と相違する。以下では、実施例１４との相違点を中心に説明する。
図３２は、本実施例における更新システム２１００の機能構成を例示したブロック図であり、図３３は、その処理手順を説明するためのフローチャートである。以下、これらの図を用いて、本実施例の機能構成及び処理について説明する。なお、図３２において実施例１４と共通する構成については、図３０と同じ符号を付した。また、セキュリティサーバ装置２１６０は、制御部２０６５の制御により各処理を実行する。また、鍵メモリ２１６１、読書き部２０６４、ＩＤ抽出部２１６６、暗号化部２１６７及び乱数生成部２０６３が「更新部」を構成する。【０１６３】  ＜前処理＞
この形態の秘匿化ＩＤ情報は、ＡＥＳ等の共通鍵暗号方式による第１の暗号文と、その暗号化に用いた共通鍵に対応する鍵ＩＤ情報とを有する情報である。この例では、タグ装置２１１０の秘匿化ＩＤ情報をｓｉｄｈ＝（ｅｋｊ（ｉｄｈ｜ｒ），ｋｉｄｊ）とする。なお、ｈは１以上ｍ以下の自然数であり、タグ装置２１１０に対応する番号である。また、ｊは１以上ｎ以下の自然数であり、各鍵に対応する番号である。ここでｍはタグ装置の総数を、ｎは鍵の総数をそれぞれ示している。また、ｋｊはｊ番目の共通鍵を、ｋｉｄｊは共通鍵ｋｊに対応する鍵ＩＤ情報を、ｒは乱数をそれぞれ示す、さらにｅｋ（α）は、共通鍵ｋを用い、共通鍵暗号方式によってαを暗号化した暗号文を示し、α｜βはαとβのビット結合を示す。【０１６４】  この例のタグ装置２１１０の秘密値メモリ２１１１には、このタグＩＤ情報ｉｄｈに対応する秘匿化ＩＤ情報ｓｉｄｈ＝（ｅｋｊ（ｉｄｈ｜ｒ），ｋｉｄｊ）が格納されている。また、セキュリティサーバ装置２１６０（「更新装置」に相当）の鍵メモリ２１６１には、各鍵ＩＤ情報（ｋｉｄ１，…，ｋｉｄｎ）と、共通鍵暗号方式の共通鍵（ｋ１，…，ｋｎ）が、対応つけられて格納されている。さらに、ｓｉｄｈ＝（ｅｋｊ（ｉｄｈ｜ｒ），ｋｉｄｊ）における乱数ｒの大きさ（ビット長）とパディング位置に関する情報がメモリ２０６５ａに格納されている。【０１６５】  なお、この例では、タグ装置の総数ｍは鍵の総数ｎよりも十分に大きく（ｍ≫ｎ）、関連性のないタグ装置に、同じ鍵ＩＤ情報が割り当てられているものとする。すなわち、例えば、同じ種類の商品にそれぞれ付されるタグ装置に、同じ鍵ＩＤ情報が割り当てられるのではなく、無関係な商品にそれぞれ付されるタグ装置に、同じ鍵ＩＤ情報が割り当てられる。これにより、鍵ＩＤ情報から商品種別や商品個体が特定されることを防止できる。
＜秘匿化ＩＤ更新処理＞
実施例１４と同様、まず、クライアント装置２０２０がタグ装置２１１０に読取り指示を送信する（ステップＳ３２０）。タグ装置２１１０は秘密値メモリ２１１１から秘匿化ＩＤ情報（ｓｉｄｈ＝（ｅｋｊ（ｉｄｈ｜ｒ），ｋｉｄｊ））を抽出し（ステップＳ３２１）、クライアント装置２０２０に送信する（ステップＳ３２２）。これを受けたクライアント装置３２０は、この秘匿化ＩＤ情報ｓｉｄｈを、更新依頼とともに、セキュリティサーバ装置２１６０に送信する（ステップ３２３）。【０１６６】  この秘匿化ＩＤ情報ｓｉｄｈの情報は、セキュリティサーバ装置２１６０の通信部２０６２において受信され（ステップＳ３２４）、この秘匿化ＩＤ情報ｓｉｄｈを構成する第１の暗号文ｅｋｊ（ｉｄｈ｜ｒ）はＩＤ抽出部２１６６に送られ、鍵ＩＤ情報ｋｉｄｊは読書き部２０６４に送られる。また、ｋｉｄｊはメモリ２０６５ａにも記録される。
鍵ＩＤ情報（ｋｉｄｊ）を受け取った読書き部２０６４は、この鍵ＩＤ情報ｋｉｄｊに対応する共通鍵ｋｊを鍵メモリ２１６１から抽出し、ＩＤ抽出部２１６６に送る（ステップＳ３２５）。これを受け取ったＩＤ抽出部２１６６は、この共通鍵ｋｊを用いて第１の暗号文（ｅｋｊ（ｉｄｈ｜ｒ）を復号し、タグＩＤ情報ｉｄｈを抽出する。すなわち、ＩＤ抽出部２１６６は、ｉｄｈ＝ｄｋｊ（ｅｋｊ（ｉｄｈ｜ｒ））により（ｉｄｈ｜ｒ）を算出し、メモリ２０６５ａに格納された乱数ｒの大きさとそのパディング位置に関する情報を用いてｉｄｈを抽出する（ステップＳ３２６）。ここで、ｄｋ（α）は、共通鍵ｋによる暗号文αの復号を示す。なお、算出されたタグＩＤ情報ｉｄｈは、共通鍵ｋｊとともに暗号化部２１６７に送られる。また、乱数生成部２０６３は、乱数ｒ’を生成し、これを暗号化部２１６７に送る（ステップＳ３２７）。暗号化部２１６７は、送られた共通鍵ｋｊ、タグＩＤ情報ｉｄｈ、乱数ｒ’、及びメモリ２０６５ａに格納された乱数の大きさとそのパディング位置に関する情報を用い、第２の暗号文（ｅｋｊ（ｉｄｈ｜ｒ’））（第１の暗号文との関連性の把握が困難な第２の暗号文）を生成（算出）し、これを通信部２０６２に送る（ステップＳ３２８）。【０１６７】  通信部２０６２は、送られた暗号文（ｅｋｊ（ｉｄｈ｜ｒ’））、及びメモリ２０６５ａ内の鍵ＩＤ情報ｋｉｄｊを、新たな秘匿化ＩＤ情報（ｓｉｄｈ’＝（ｅｋｊ（ｉｄｈ｜ｒ’），ｋｉｄｊ））として送信（出力）する（ステップＳ３２９）。
送信された新たな秘匿化ＩＤ情報ｓｉｄｈ’は、実施例１４と同様、ネットワーク２０７０を介し、クライアント装置２０２０において受信され、タグ装置２１１０に送信される（ステップＳ３３０）。タグ装置２１１０は、この新たな秘匿化ＩＤ情報ｓｉｄｈ’をインタフェース２０１３で受信し、読書き部２０１２で秘密値メモリ２１１１内に格納し（ステップＳ３３１）、その後のリーダー装置からの読取り要求に対し、この新たな秘匿化ＩＤ情報ｓｉｄｈ’を、リーダー装置を通じバックエンド装置２０５０に送る。バックエンド装置２０５０は、受け取った秘匿化ＩＤ情報ｓｉｄｈ’をセキュリティサーバ装置２１６０に送り、セキュリティサーバ装置２１６０は、これを通信部２０６２で受信する。その後、セキュリティサーバ装置２１６０は、ステップＳ３２４，３２５と同様な手順によりタグＩＤ情報を復号し、これを通信部２０６２及びネットワーク２０７０を通じてバックエンド装置２０５０に送る。【０１６８】  ＜実施例１５の特徴＞
本実施例では、共通鍵暗号方式による暗号文を含む情報を秘匿化ＩＤ情報としたため、その共通鍵を知らない攻撃者が更新前後の秘匿化ＩＤ情報の関連性を知ることはできない。よって、タグ装置２０１０の追跡の防止を強固に実現できる。
なお、本実施例では、乱数とＩＤの排他的論理和の暗号文によって秘匿化ＩＤ情報を構成したが、確率暗号の性質（同じＩＤを同じ鍵で暗号化しても異なる暗号文を出力することができる性質）が保たれる限り、その他の方法で秘匿化ＩＤ情報を構成することとしてもよい。この点、実施例１６も同様である。
【実施例１６】
【０１６９】  実施例１６は、実施例１４の変形例であり、公開鍵暗号方式による暗号文を秘匿化ＩＤ情報とする点が実施例１４と相違する。以下では、実施例１４との相違点を中心に説明する。
図３４は、本実施例における更新システム２２００の機能構成を例示したブロック図であり、図３５は、その処理手順を説明するためのフローチャートである。以下、これらの図を用いて、本実施例の機能構成及び処理について説明する。なお、図３４において実施例１４と共通する構成については、実施例１４と同じ符号を付した。また、読書き部２０６４、鍵メモリ２２６１、ＩＤ抽出部２２６６、暗号化部２２６７及び乱数生成部２０６３が「更新部」を構成する。【０１７０】  ＜前処理＞
この形態の秘匿化ＩＤ情報は、ＲＳＡ等の公開鍵暗号方式による第１の暗号文と、その暗号化に用いた公開鍵に対応する鍵ＩＤ情報とを有する情報である。この例では、タグ装置２２１０の秘匿化ＩＤ情報をｓｉｄｈ＝（ｅｐｋｊ（ｉｄｈ｜ｒ），ｋｉｄｊ）とする。なお、ｐｋｊはｊ番目の公開鍵を、ｋｉｄｊは公開鍵ｐｋｊに対応する鍵ＩＤ情報を、ｅｐｋ（α）は、公開鍵ｐｋを用い、公開鍵暗号方式によってαを暗号化した暗号文を、それぞれ示す。【０１７１】  この例のタグ装置２２１０の秘密値メモリ２２１１には、この秘匿化ＩＤ情報（ｓｉｄｈ＝（ｅｐｋｊ（ｉｄｈ｜ｒ），ｋｉｄｊ））が格納されている。また、セキュリティサーバ装置２２６０（「更新装置」に相当）の鍵メモリ２２６１には、各鍵ＩＤ情報（ｋｉｄ１，…，ｋｉｄｎ）と、公開鍵暗号方式の共通鍵（ｓｋ１，…，ｓｋｎ）及び公開鍵（ｐｋ１，…，ｐｋｎ）（鍵ペア（ｓｋｊ，ｐｋｊ））が、対応付けられて格納されている。さらに、この例のメモリ２０６５ａには、ｓｉｄｈ＝（ｅｐｋｊ（ｉｄｈ｜ｒ），ｋｉｄｊ）における乱数ｒの大きさ（ビット長）とパディング位置（ビット位置）に関する情報が格納されている。【０１７２】  なお、実施例１５と同様、この例でも、関連性のないタグ装置に、同じ鍵ＩＤ情報が割り当てられる。これにより、鍵ＩＤ情報から商品種別や商品個体が特定されることを防止できる。
＜秘匿化ＩＤ更新処理＞
実施例１４と同様、まず、クライアント装置２０２０がタグ装置２２１０に読取り指示を送信する（ステップＳ３４０）。タグ装置２２１０は秘密値メモリ２２１１から秘匿化ＩＤ情報（ｓｉｄｈ＝（ｅｐｋｊ（ｉｄｈ｜ｒ），ｋｉｄｊ））を抽出し（ステップＳ３４１）、クライアント装置２０２０に送信する（ステップＳ３４２）。これを受けたクライアント装置２０２０は、この秘匿化ＩＤ情報ｓｉｄｈを、更新依頼とともに、セキュリティサーバ装置２２６０に送信する（ステップ３４３）。【０１７３】  この秘匿化ＩＤ情報ｓｉｄｈ等の情報は、セキュリティサーバ装置２２６０の通信部２０６２において受信され（ステップＳ３４４）、この秘匿化ＩＤ情報ｓｉｄｈを構成する第１の暗号文ｅｐｋｊ（ｉｄｈ｜ｒ）はＩＤ抽出部２６６に送られ、鍵ＩＤ情報ｋｉｄｊは読書き部２０６４に送られる。また、鍵ＩＤ情報ｋｉｄｊはメモリ２０６５ａにも記録される。
鍵ＩＤ情報ｋｉｄｊを受け取った読書き部２０６４は、この鍵ＩＤ情報ｋｉｄｊに対応する秘密鍵ｓｋｊ及び公開鍵ｐｋｊ（鍵ペア）を鍵メモリ２２６１から抽出し、秘密鍵ｓｋｊをＩＤ抽出部２２６６に、公開鍵ｐｋｊを暗号化部２２６７に、それぞれ送る（ステップＳ３４５）。秘密鍵ｓｋｊを受け取ったＩＤ抽出部２２６６は、この秘密鍵ｓｋｊを用いて第１の暗号文（ｅｐｋｊ（ｉｄｈ｜ｒ）を復号し、タグＩＤ情報ｉｄｈを抽出する。すなわち、ｉｄｈ＝ｄｓｋｊ（ｅｐｋｊ（ｉｄｈ｜ｒ））により（ｉｄｈ｜ｒ）を算出し、メモリ２０６５ａの乱数ｒの大きさとそのパディング位置の情報を用い、ｉｄｈを算出する（ステップＳ３４６）。ここで、ｄｓｋ（α）は、秘密鍵ｓｋによる暗号文αの復号を示す。なお、算出されたタグＩＤ情報ｉｄｈは暗号化部２２６７に送られる。また、乱数生成部２０６３は、乱数ｒ’を生成し、これを暗号化部２２６７に送る（ステップＳ３４７）。暗号化部２２６７は、送られた公開鍵ｐｋｊ、タグＩＤ情報ｉｄｈ及び乱数ｒ’、及び乱数の大きさとそのパディング位置の情報を用い、暗号文（ｅｐｋｊ（ｉｄｈ｜ｒ’））（第１の暗号文との関連性の把握が困難な第２の暗号文）を生成（算出）し、これを通信部２０６２に送る（ステップＳ３４８）。【０１７４】  通信部２０６２は、送られた第２の暗号文（ｅｐｋｊ（ｉｄｈ｜ｒ’））、及びメモリ２０６５ａ内の鍵ＩＤ情報ｋｉｄｊを、新たな秘匿化ＩＤ情報ｓｉｄｈ’＝（ｅｐｋｊ（ｉｄｈ｜ｒ’），ｋｉｄｊ）として送信（出力）する（ステップＳ３４９）。
送信された新たな秘匿化ＩＤ情報ｓｉｄｈ’は、実施例１４と同様、ネットワーク２０７０を介し、クライアント装置２０２０において受信され、タグ装置２２１０に送信される（ステップＳ３５０）。タグ装置２２１０は、この新たな秘匿化ＩＤ情報ｓｉｄｈ’を読書き部２０１２において秘密値メモリ２２１１内に格納する（ステップＳ３５１）。そして、その後のリーダー装置からの読取り要求に対し、この新たな秘匿化ＩＤ情報ｓｉｄｈ’を、リーダー装置を通じバックエンド装置２０５０に送る。バックエンド装置２０５０は、受け取った秘匿化ＩＤ情報ｓｉｄｈ’をセキュリティサーバ装置２２６０に送り、セキュリティサーバ装置２２６０は、これを通信部２０６２で受信する。その後、セキュリティサーバ装置２２６０は、ステップＳ３４５，３４６と同様な手順によりタグＩＤ情報を復号し、これを通信部２０６２及びネットワーク２０７０を通じてバックエンド装置２０５０に送る。【０１７５】  ＜実施例１６の特徴＞
本実施例では、公開鍵暗号方式による暗号文を含む情報を秘匿化ＩＤ情報としたため、その秘密鍵を知らない攻撃者が更新前後の秘匿化ＩＤ情報の関連性を知ることはできない。よって、タグ装置２２１０の追跡の防止を強固に実現できる。
【実施例１７】  本実施例は、実施例１４の変形例であり、再暗号化の性質（暗号化されたデータと公開鍵だけを用いて、別の暗号文データを生成できる暗号の性質。復号は同じ秘密鍵を用いて行われる。）を持つ暗号アルゴリズムを用い、秘匿化ＩＤ情報の更新を行う点が実施例１４と相違する。以下では、実施例１４との相違点を中心に説明する。【０１７６】  図３６は、本実施例における更新システム２３００の機能構成を例示したブロック図であり、図３７は、その処理手順を説明するためのフローチャートである。以下、これらの図を用いて、本実施例の機能構成及び処理について説明する。なお、図３６において実施例１４と共通する構成については、実施例１４と同じ符号を付した。また、セキュリティサーバ装置２３６０は、制御部２０６５の制御により各処理を実行する。また鍵メモリ２３６１、読書き部２０６４、乱数生成部２０６３、剰余乗算演算部２３６６及び剰余べき乗演算部２３６７が「更新部」を構成する。【０１７７】  ＜前処理＞
この形態の秘匿化ＩＤ情報は、再暗号化の性質を持つ暗号アルゴリズム（公開鍵暗号方式）による第１の暗号文と、その暗号化に用いた公開鍵に対応する鍵ＩＤ情報とを有する情報である。この例では、ＥｌＧａｍａｌ暗号（例えば、岡本龍明、山本博資、「現代暗号」、１９９８、ｐ１１８〜１１９参照。）を用い、タグ装置２３１０の秘匿化ＩＤ情報をｓｉｄｈ＝（ｇｒ  ｍｏｄ  ｐ，ｉｄｈ・ｐｋｊｒ  ｍｏｄ  ｐ，ｋｉｄｊ）とする。なお、ｇは公開された生成元を、ｐは十分大きな素数を、ｒは０以上ｐ−１未満の任意な整数を、ｐｋｊ＝ｇｘｊ  ｍｏｄ  ｐはｊ番目の公開鍵を、ｓｋｊはｊ番目の秘密鍵を、（ｇｒ  ｍｏｄ  ｐ，ｉｄｈ・ｐｋｊｒ  ｍｏｄ  ｐ）は暗号文を、それぞれ示す。なお、ｐｋｊ＝ｇｓｋｊ  ｍｏｄ  ｐの上付き添え字の「ｓｋｊ」は「ｓｋｊ」を意味する。また、以下の記載、及び図では、「ｍｏｄ  ｐ」を省略して記載する。【０１７８】  この例のタグ装置２３１０の秘密値メモリ２３１１には、この秘匿化ＩＤ情報ｓｉｄｈ＝（ｇｒ，ｉｄｈ・ｐｋｊｒ，ｋｉｄｊ）が格納されている。また、セキュリティサーバ装置２３６０（「更新装置」に相当）の鍵メモリ２３６１には、各鍵ＩＤ情報（ｋｉｄ１，…，ｋｉｄｎ）と、公開鍵（ｐｋ１，…，ｐｋｎ）が、対応付けられて格納されている。さらに、メモリ２０６５ａには生成元ｇが格納されている。
なお、この例でも、関連性のないタグ装置に、同じ鍵ＩＤ情報が割り当てられる。これにより、鍵ＩＤ情報から商品種別や商品個体が特定されることを防止できる。【０１７９】  ＜秘匿化ＩＤ更新処理＞
実施例１４と同様、まず、クライアント装置２０２０がタグ装置２３１０に読取り指示を送信する（ステップＳ３６０）。タグ装置２３１０は秘密値メモリ２３１１から秘匿化ＩＤ情報ｓｉｄｈ＝（ｇｒ，ｉｄｈ・ｐｋｊｒ，ｋｉｄｊ）を抽出し（ステップＳ３６１）、クライアント装置２０２０に送信する（ステップＳ３６２）。これを受けたクライアント装置２０２０は、この秘匿化ＩＤ情報ｓｉｄｈを、更新依頼とともに、セキュリティサーバ装置２２６０に送信する（ステップ３６３）。【０１８０】  この秘匿化ＩＤ情報ｓｉｄｈ等の情報は、セキュリティサーバ装置２３６０の通信部２０６２において受信され（ステップＳ３６４）、この秘匿化ＩＤ情報ｓｉｄｈを構成する（ｇｒ，ｉｄｈ・ｐｋｊｒ）は剰余乗算演算部２３６６（「暗号化部」を構成）に送られ、ｋｉｄｊは読書き部２０６４に送られる。また、ｋｉｄｊはメモリ２０６５ａにも記録される。
鍵ＩＤ情報ｋｉｄｊを受け取った読書き部２０６４は、この鍵ＩＤ情報ｋｉｄｊに対応する公開鍵ｐｋｊを鍵メモリ２３６１から抽出し、これを剰余べき乗演算部２３６７（「暗号化部」を構成）に送る（ステップＳ３６５）。これをトリガに、乱数生成部２０６３は、０以上ｐ−１未満の乱数ｒ’を生成し、これを剰余べき乗演算部２３６７に送る（ステップＳ３６６）。剰余べき乗演算部２３６７は、メモリ２０６５ａ内の生成元ｇ、受け取った公開鍵ｐｋｊ及び乱数ｒ’を用いて（ｇｒ’，ｐｋｊｒ’）の演算を行い、その結果を剰余乗算演算部２３６６に送る（ステップＳ３６７）。剰余乗算演算部２３６６は、受け取った（ｇｒ’，ｐｋｊｒ’）と（ｇｒ，ｉｄｈ・ｐｋｊｒ）を用いて（ｇｒ＋ｒ’，ｉｄｈ・ｐｋｊｒ＋ｒ’）を演算し、その演算結果を新たな暗号文（第２の暗号文）として通信部２０６２に送る（ステップＳ３６８）。【０１８１】  通信部２０６２は、送られた暗号文（ｇｒ＋ｒ’，ｉｄｈ・ｐｋｊｒ＋ｒ’）（第１の暗号文との関連性の把握が困難な第２の暗号文）及びメモリ２０６５ａ内の鍵ＩＤ情報ｋｉｄｊを、新たな秘匿化ＩＤ情報（ｓｉｄｈ’＝（ｇｒ＋ｒ’，ｉｄｈ・ｐｋｊｒ＋ｒ’，ｋｉｄｊ））として送信する（ステップＳ３６９）。
送信された新たな秘匿化ＩＤ情報ｓｉｄｈ’は、実施例１４と同様、ネットワーク２０７０を介し、クライアント装置２０２０において受信され、タグ装置２３１０に送信される（ステップＳ３７０）。そして、タグ装置２３１０は、読書き部２０１２において、この新たな秘匿化ＩＤ情報ｓｉｄｈ’を秘密値メモリ２３１１内に格納する（ステップＳ３７１）。その後、タグ装置２３１０は、読取り要求に対し、この新たな秘匿化ＩＤ情報（ｓｉｄｈ’）を応答する。【０１８２】  ＜実施例１７の特徴＞
本実施例では、再暗号化の性質を持つ暗号アルゴリズムを用いて秘匿化ＩＤ情報を更新することとしたため、平文のＩＤを復号することなく秘匿化ＩＤ情報を更新できる。よって、秘匿化ＩＤ情報の更新処理時にＩＤが盗聴されることもなく、タグ装置２３１０の追跡の防止を強固に実現できる。
なお、本実施例では、セキュリティサーバ装置２３６０の鍵メモリ２３６１に公開鍵（ｐｋ１，…，ｐｋｎ）を格納しておくこととしたが、セキュリティサーバ装置２３６０が公開鍵（ｐｋ１，…，ｐｋｎ）を保持せず、所定の公開鍵サーバから公開鍵（ｐｋ１，…，ｐｋｎ）を取得して使用することとしてもよい。【０１８３】  また、本実施例では、ＥｌＧａｍａｌ暗号を用いたが、再暗号化の性質を持つ暗号アルゴリズムであれば、高次剰余暗号等他のアルゴリズムを用いることとしてもよい。
また、実施例１６及び実施例１７の変形として、共通鍵でタグＩＤ情報を暗号化し、この共通鍵とこのタグＩＤ情報の暗号文を上述の公開鍵暗号方式による公開鍵を用いて暗号化したものを秘匿化ＩＤ情報とすることとしてもよい（ハイブリット暗号）。この場合、セキュリティサーバ装置は、この公開鍵に対応する秘密鍵で秘匿化ＩＤ情報を復号して共通鍵を取得し、その共通鍵を用いてタグＩＤ情報の暗号文を復号してタグＩＤ情報を得る。その後、セキュリティサーバ装置は、共通鍵暗号方式により、このタグＩＤ情報から別の暗号文を生成し、その共通鍵と暗号文を、さらに公開暗号方式で暗号化する。そして、その暗号文を新たな秘匿化ＩＤ情報とし、クライアント装置へ返す。その後、実施例１６等と同様に、タグ装置の秘密値メモリへこの新たな秘匿化ＩＤ情報を格納する。
【実施例１８】
【０１８４】  実施例１８は、秘匿化ＩＤ情報の更新時にセキュリティサーバ装置を変更するものである。以下では、実施例１４との相違点を中心に説明する。
図３８は、本実施例の更新システム２４００の全体構成を例示した概念図である。なお、図３８において実施例１４と共通する構成については、実施例１４と同じ符号を付している。
この図に例示するように、更新システム２４００は、タグ装置２４１０、クライアント装置２０２０（「更新依頼装置」に相当）、複数のセキュリティサーバ装置２４６０−１〜ｖ（「更新装置」に相当）、及びバックエンド装置２０５０を有しており、ネットワーク２０７０により通信可能なように接続されている。【０１８５】  図３９は、本実施例における更新システム２４００の機能構成を例示したブロック図であり、図４０は、その処理手順を説明するためのフローチャートである。以下、これらの図を用いて、本実施例の機能構成及び処理について説明する。なお、図３９において実施例１４と共通する構成については、実施例１４と同じ符号を付した。また、説明の簡略化のため、図３８、３９では、２つのセキュリティサーバ装置２４６０−１、２４６０−２のみを示したが、２つ以上のセキュリティサーバ装置でシステムを構成することとしてもよい。さらに、図３９では、説明に必要な処理機能・データのみを記載することとしたが、セキュリティサーバ装置２４６０−１、２４６０−２それぞれが有する処理機能やデータを、相互が兼ね備えていることとしてもよい。なお、セキュリティサーバ装置２４６０−１，２４６０−２は、制御部２４６５−１，２４６５−２の制御により各処理を実行する。【０１８６】  ＜前処理＞
この形態の秘匿化ＩＤ情報は、公開鍵暗号方式による暗号文と、その暗号化に用いた公開鍵に対応する鍵ＩＤ情報とを有する情報である。この例では、タグ装置２４１０の秘匿化ＩＤ情報をｓｉｄｈ＝（ｅｐｋｊ（ｉｄｈ），ｋｉｄｊ）とする。
この例のタグ装置２４１０の秘密値メモリ２４１１には、この秘匿化ＩＤ情報ｓｉｄｈ＝（ｅｐｋｊ（ｉｄｈ），ｋｉｄｊ）が格納されている。また、セキュリティサーバ装置２４６０−１の鍵メモリ２４６１−１には、各鍵ＩＤ情報（ｋｉｄ１，…，ｋｉｄｎ）と、公開鍵暗号方式の秘密鍵（ｓｋ１，…，ｓｋｎ）が対応付けられて格納されている。さらに、セキュリティサーバ装置２４６０−２の鍵メモリ２４６１−２には、各鍵ＩＤ情報（ｋｉｄ１，…，ｋｉｄｎ）と、公開鍵暗号方式の公開鍵（ｐｋ１，…，ｐｋｎ）が対応付けられて格納されている。【０１８７】  なお、この例でも、関連性のないタグ装置に、同じ鍵ＩＤ情報が割り当てられる。これにより、鍵ＩＤ情報から商品種別や商品個体が特定されることを防止できる。
＜秘匿化ＩＤ更新処理＞
実施例１４と同様、まず、クライアント装置２０２０がタグ装置２４１０に読取り指示を送信する（ステップＳ３８０）。タグ装置２４１０は秘密値メモリ２４１１から秘匿化ＩＤ情報（ｓｉｄｈ＝（ｅｐｋｊ（ｉｄｈ），ｋｉｄｊ））を抽出し（ステップＳ３８１）、クライアント装置２０２０に送信する（ステップＳ３８２）。これを受けたクライアント装置２０２０は、通信部２０２１（「第１のＩＤ出力部」に相当）において、このタグ装置２４１０から抽出した秘匿化ＩＤ情報ｓｉｄｈを、復号依頼とともに、セキュリティサーバ装置２４６０−１に送信（出力）する（ステップ３８３）。なお、セキュリティサーバ装置２４６０−１は、この時点でタグ装置２４１０に格納されている秘匿化ＩＤ情報を管理しているセキュリティサーバ装置である。【０１８８】  この秘匿化ＩＤ情報ｓｉｄｈ等の情報は、セキュリティサーバ装置２４６０−１の通信部２４６２−１（「第１の入力部」に相当）において受信され（ステップＳ３８４）、この秘匿化ＩＤ情報ｓｉｄｈを構成するｅｐｋｊ（ｉｄｈ）はＩＤ抽出部２４６６−１に送られ、ｋｉｄｊは読書き部２４６４−１に送られる。鍵ＩＤ情報ｋｉｄｊを受け取った読書き部２４６４−１は、この鍵ＩＤ情報ｋｉｄｊに対応する秘密鍵ｓｋｊを鍵メモリ２４６１−１から抽出し、この秘密鍵ｓｋｊをＩＤ抽出部２４６６−１に送る（ステップＳ３８５）。秘密鍵ｓｋｊを受け取ったＩＤ抽出部２４６６−１は、この秘密鍵ｓｋｊを用いて暗号文（ｅｐｋｊ（ｉｄｈ）を復号し、タグＩＤ情報ｉｄｈを求める（ｉｄｈ＝ｄｓｋｊ（ｅｐｋｊ（ｉｄ）））（ステップＳ３８６）。求められたタグＩＤ情報ｉｄｈは通信部２４６２−１（「第２の出力部」に相当）に送られ、そこからネットワーク２０７０を通じ、クライアント装置２０２０へ送信（出力）される（ステップＳ３８７）。【０１８９】  セキュリティサーバ装置２４６０−１から出力されたタグＩＤ情報ｉｄｈは、クライアント装置２０２０の通信部２０２１において受信される（入力を受け付けられる）（ステップＳ３８８）。その後、通信部２０２１は、任意に選択されたセキュリティサーバ装置２４６０−２へタグＩＤ情報ｉｄｈを送信（出力）し、秘匿化ＩＤ情報の更新依頼を行う（ステップＳ３８９）。
セキュリティサーバ装置２４６０−２の通信部２４６２−２（「第３の入力部」に相当）は、ネットワーク２０７０を通じて送信されたこのタグＩＤ情報ｉｄｈを受信し（入力を受け付け）、暗号化部２４６７−２に送る（ステップＳ３９０）。また、これをトリガとして、鍵選択部２４６８−２は鍵の選択を行い、その情報を読書き部２４６４−２に送る（ステップＳ３９１）。この例の場合、鍵選択部２４６８−２は、１以上ｎ以下の自然数から任意（乱数等）の鍵番号ｉを選択し、この鍵番号ｉを読書き部２４６４−２に送る。読書き部２４６４−２は、受け取った鍵番号ｉに対応する鍵ＩＤ情報ｋｉｄｉ及び公開鍵ｐｋｉを鍵メモリ２４６１−２から抽出し、暗号化部２４６７−２に送る（ステップＳ３９２）。暗号化部２４６７−２は、受け取った公開鍵ｐｋｉを用いてタグＩＤ情報ｉｄｈを暗号化（秘匿化）し（ｅｐｋｉ（ｉｄｈ））、この暗号文と鍵ＩＤ情報ｋｉｄｉとからなる新たな秘匿化ＩＤ情報（ｓｉｄｈ’＝（ｅｐｋｉ（ｉｄｈ），ｋｉｄｉ））を生成する（ステップＳ３９３）。生成された秘匿化ＩＤ情報ｓｉｄｈ’は、通信部２４６２−２に送られ、通信部２４６２−２（「第３の出力部」に相当）は、この秘匿化ＩＤ情報ｓｉｄｈ’を、ネットワーク２０７０を通じ、クライアント装置２０２０へ送信（出力）する（ステップＳ３９４）。【０１９０】  クライアント装置２０２０は、通信部２０２１（「第２の入力部」に相当）において、この秘匿化ＩＤ情報（ｓｉｄｈ’）を受信し（入力を受け）（ステップＳ３９５）、それを、インタフェース２０２２を介し、タグ装置２４１０に送信する（ステップＳ３９６）。タグ装置２４１０は、この新たな秘匿化ＩＤ情報ｓｉｄｈ’を秘密値メモリ２４１１内に格納し（ステップＳ３９７）、以後の読取り要求に対し、この新たな秘匿化ＩＤ情報ｓｉｄｈ’を応答する。なお、これ以降は、セキュリティサーバ装置２４６０−２が、タグ装置２４１０に格納されている秘匿化ＩＤ情報を管理しているセキュリティサーバ装置となる。従って、この新たな秘匿化ＩＤ情報ｓｉｄｈ’の復号は、以後セキュリティサーバ装置２４６０−２において行われ、その復号結果であるタグＩＤ情報ｉｄｈがクライアント装置２０２０やバックエンド装置２０５０等へ送られることになる。なお、セキュリティサーバ装置２４６０−２における秘匿化ＩＤ情報ｓｉｄｈ’の復号は、鍵メモリ２４６１−２に格納された秘密鍵ｓｋｉ（ｋｉｄｉに対応する秘密鍵：図示せず）を用いて行われる。【０１９１】  ＜実施例１８の特徴＞
実施例１８では、タグ装置２４１０の秘匿化ＩＤ情報を管理しているセキュリティサーバ装置２４６０−１で秘匿化ＩＤ情報を復号し、さらに、他のセキュリティサーバ装置２４６０−２で新たな秘匿化ＩＤ情報を生成して、タグ装置２４１０に格納されている秘匿化ＩＤ情報を更新することとした。つまり、秘匿化ＩＤ情報の更新と、タグ装置２４１０の秘匿化ＩＤ情報を管理するセキュリティサーバ装置の変更を同時に行うこととした。これにより、秘匿化ＩＤ情報の更新履歴情報が１台のセキュリティサーバ装置に集中することを防止し、セキュリティサーバ装置からの情報漏洩や、悪意に設定されたセキュリティサーバ装置による不正行為等の危険を低減できる。さらに、変更後のセキュリティサーバ装置を、公衆がアクセスできないローカルなものとすることにより、さらに高度な安全性を実現することができる。【０１９２】  なお、公開鍵暗号方式の代わりに共通鍵暗号方式を用いて本実施例の更新システムを構成することとしてもよい。
また、実施例１４のようにランダム値を秘匿化ＩＤ情報とする形態を適用して本実施例の更新システムを構成することとしてもよい。この場合、新たなセキュリティサーバ装置では、上記の暗号化の代わりにランダム値を生成し、実施例１４のような秘匿化ＩＤメモリに、生成したランダム値（＝秘匿化ＩＤ）及びＩＤを新たに追加することになる。
【実施例１９】  実施例１９では、クライアント装置が秘匿化ＩＤ情報の再秘匿化処理を行う。すなわち、クライアント装置が更新装置として機能する。この場合、クライアント装置は、直接読取った秘匿化ＩＤ情報の再秘匿化処理を行うことになる。【０１９３】  図４１は、本実施例における更新システム２５００の機能構成を例示したブロック図であり、図４２は、その処理手順を説明するためのフローチャートである。以下、これらの図を用いて、本実施例の機能構成及び処理について説明する。なお、図４１おいて実施例１４と共通する構成については、実施例１４と同じ符号を付した。また、以下では実施例１４との相違点を中心に説明する。
＜前処理＞
本実施例の秘匿化ＩＤ情報は、再暗号化の性質を持つ暗号アルゴリズム（公開鍵暗号方式）による暗号文と、その暗号化に用いた公開鍵に対応する鍵ＩＤ情報とを有する情報である。この例では、ＥｌＧａｍａｌ暗号を用い、タグ装置２５１０の秘匿化ＩＤ情報をｓｉｄｈ＝（ｇｒ，ｉｄｈ・ｐｋｊｒ，ｋｉｄｊ）とする。【０１９４】  この例のタグ装置２５１０のメモリ２５１１には、この秘匿化ＩＤ情報（ｓｉｄｈ＝（ｇｒ，ｉｄｈ・ｐｋｊｒ，ｋｉｄｊ））が格納されている。また、クライアント装置２５２０の（「更新装置」に相当）の鍵メモリ２５２４には、各鍵ＩＤ情報（ｋｉｄ１，…，ｋｉｄｎ）と、公開鍵（ｐｋ１，…，ｐｋｎ）が、対応付けられて格納されている。さらに、剰余べき乗演算部２５２７のメモリには生成元ｇが格納されている。
なお、この例でも、関連性のないタグ装置に、同じ鍵ＩＤ情報が割り当てられる。これにより、鍵ＩＤ情報から商品種別や商品個体が特定されることを防止できる。【０１９５】  ＜秘匿化ＩＤ更新処理＞
クライアント装置２５２０は、制御部２０２３の制御により以下の処理を実行する。
実施例１４と同様、まず、クライアント装置２５２０がタグ装置２５１０に読取り指示を送信する（ステップＳ４００）。タグ装置２５１０はメモリ２５１１から秘匿化ＩＤ情報（ｓｉｄｈ＝（ｇｒ，ｉｄｈ・ｐｋｊｒ，ｋｉｄｊ））を抽出し（ステップＳ４０１）、クライアント装置２５２０に送信する（ステップＳ４０２）。
この秘匿化ＩＤ情報ｓｉｄｈは、クライアント装置２５２０のインタフェース２０２２において受信され（ステップＳ４０３）、この秘匿化ＩＤ情報ｓｉｄｈを構成する暗号文（ｇｒ，ｉｄｈ・ｐｋｊｒ）は剰余乗算演算部２５２８（「暗号化部」を構成）に送られ、ｋｉｄｊは読書き部２５２５に送られる。なお、ｋｉｄｊはメモリ２０２３ａにも記録される。【０１９６】  鍵ＩＤ情報ｋｉｄｊを受け取った読書き部２５２５は、この鍵ＩＤ情報ｋｉｄｊに対応する公開鍵ｐｋｊを鍵メモリ２５２４から抽出し、これを剰余べき乗演算部２５２７（「暗号化部」を構成）に送る（ステップＳ４０４）。これをトリガに、乱数生成部２５２６は、０以上ｐ−１未満の乱数ｒ’を生成し、これを剰余べき乗演算部２５２７に送る（ステップＳ４０５）。剰余べき乗演算部２５２７は、自己のメモリ内の生成元ｇ、受け取った公開鍵（ｐｋｊ）及び乱数ｒ’を用いて（ｇｒ’，ｐｋｉｒ’）の演算を行い、その結果を剰余乗算演算部２５２８に送る（ステップＳ４０６）。剰余乗算演算部２５２８は、受け取った（ｇｒ’，ｐｋｊｒ’）と（ｇｒ，ｉｄｈ・ｐｋｊｒ）を用いて（ｇｒ＋ｒ’，ｉｄｈ・ｐｋｊｒ＋ｒ’）を演算し、その演算結果を新たな暗号文としてインタフェース２０２２に送る（ステップＳ４０７）。そして、インタフェース２０２２は、送られた暗号文（ｇｒ＋ｒ’，ｉｄｈ・ｐｋｊｒ＋ｒ’）及びインタフェース２０２２のメモリ内の鍵ＩＤ情報ｋｉｄｊを、新たな秘匿化ＩＤ情報（ｓｉｄｈ’＝（ｇｒ＋ｒ’，ｉｄｈ・ｐｋｊｒ＋ｒ’，ｋｉｄｊ））として送信（出力）する（ステップＳ４０８）。【０１９７】  送信された新たな秘匿化ＩＤ情報ｓｉｄｈ’は、タグ装置２５１０のインタフェース２０１３において受信され、読書き部２０１２を介し、メモリ２５１１内に格納される（ステップＳ４０９）。その後、タグ装置２５１０は、読取り要求に対し、この新たな秘匿化ＩＤ情報ｓｉｄｈ’を応答する。
＜実施例１９の特徴＞
実施例１９では、クライアント装置２５２０がタグ装置２５１０内の秘匿化ＩＤ情報の再秘匿化を行うこととした。ここで、クライアント装置２５２０が再秘匿化処理を行うのは、インタフェース２０２２において直接読取った秘匿化ＩＤ情報のみである。そのため、第三者への情報の漏洩を抑制でき、より高い安全性を確保できる。【０１９８】  なお、本実施例では、セキュリティサーバ装置２５２０の鍵メモリ２５２４に公開鍵（ｐｋ１，…，ｐｋｎ）を格納しておくこととしたが、セキュリティサーバ装置２５２０が公開鍵（ｐｋ１，…，ｐｋｎ）を保持せず、所定の公開鍵サーバから公開鍵（ｐｋ１，…，ｐｋｎ）を取得して使用することとしてもよい。
また、実施例１４から実施例１６の形態の何れかのセキュリティサーバ装置の構成をクライアント装置２５２０に適用し、本実施例の処理を実行することとしてもよい。
【実施例２０】  次に、実施例２０について説明する。【０１９９】  本実施例では、クライアント装置（「更新依頼装置」に相当）において複数の秘匿化ＩＤ情報を取得しておき、そこから選択した秘匿化ＩＤ情報を用い、タグ装置内の秘匿化ＩＤ情報を更新する。
図４３は、本実施例における更新システム２６００の機能構成を例示したブロック図であり、図４４は、その処理手順を説明するためのフローチャートである。以下、これらの図を用いて、本実施例の機能構成及び処理について説明する。なお、図４３において実施例１４と共通する構成については、実施例１４と同じ符号を付した。また、以下では実施例１４との相違点を中心に説明する。【０２００】  ＜前処理＞
まず、クライアント装置２６２０の通信部２０２１（「秘匿化ＩＤ入力部」に相当）において、ネットワーク２０７０を通じて送られた複数種類の秘匿化ＩＤ情報（ｓｉｄｈ−１，…，ｐ）を受信する（入力を受け付ける）（ステップＳ４１０）。なお、この複数種類の秘匿化ＩＤ情報（ｓｉｄｈ−１，…，ｐ）は、実施例１４から実施例１７の何れかの方法を複数回繰り返す、或いはセキュリティサーバ装置２６６０が複数種類の秘匿化ＩＤ情報を一度に送信することにより得られるものである。また、実施例１４の方法を利用する場合、セキュリティサーバ装置２６６０の秘匿化ＩＤメモリに、１つのタグＩＤ情報に対し、複数の秘匿化ＩＤ情報（ｓｉｄｈ−１，…，ｐ）を保持しておく必要がある。これに対し、実施例１５から実施例１７の方法を利用した場合には、セキュリティサーバ装置２６６０に格納しておく情報は、実施例１５から実施例１７と同様でよい。【０２０１】  通信部２０２１は、これらの秘匿化ＩＤ情報（ｓｉｄｈ−１，…，ｐ）を読書き部２６２４に送り、読書き部２６２４は、それらを秘匿化ＩＤメモリ２６２５に格納する（ステップＳ４１１）。
＜秘匿化ＩＤ更新処理＞
クライアント装置２６２０は、制御部２０２３の制御により以下の処理を実行する。
まず、制御部２３において、秘匿化ＩＤ情報の更新を行う所定のトリガ（契機）があったかを判断する（ステップＳ４１２）。このトリガとしては、例えば、タグ装置２６１０から秘匿化ＩＤ情報が読取られた、タグ装置２６１０内の秘匿化ＩＤ情報の使用回数を示すカウンタ値が所定値に達した等が挙げられる。ここで、所定のトリガがない場合には、ステップＳ４１２の判断を継続し、所定のトリガがあった場合には、読書き部２６２４（「秘匿化ＩＤ抽出部」に相当）において、秘匿化ＩＤメモリ２６２５から１つの秘匿化ＩＤ情報ｓｉｄｈ−ｊを抽出する（ステップＳ４１３）。この１つの秘匿化ＩＤ情報ｓｉｄｈ−ｊの選択は、例えば、ランダムに行うこととしてもよく、また、ｓｉｄｈ−１，ｓｉｄｈ−２，…と配列順に選択していき、ｓｉｄｈ−ｐの後、再びｓｉｄｈ−１に戻るというように行ってもよい。抽出された１つの秘匿化ＩＤ情報ｓｉｄｈ−ｊは、読書き部２６２４からインタフェース２０２２（「秘匿化ＩＤ出力部」に相当）に送られ、そこからタグ装置２６１０に対して送信（出力）される（ステップＳ４１４）。【０２０２】  タグ装置２６１０は、インタフェース２０１３において、この秘匿化ＩＤ情報ｓｉｄｈ−ｊを受信し（ステップＳ４１５）、読書き部２０１２を介して、秘密値メモリ２６１１に格納する（ステップＳ４１６）。その後、タグ装置２６１０は、リーダー装置からの読取り要求に対し、この新たな秘匿化ＩＤ情報ｓｉｄｈ’を応答する。
＜実施例２０の特徴＞
本実施例では、クライアント装置２６２０に予め複数種類の秘匿化ＩＤ情報を格納しておき、それらから選択した秘匿化ＩＤ情報により、タグ装置２６１０の秘匿化ＩＤ情報を更新することとした。ここで、更新に用いる秘匿化ＩＤ情報の選択はクライアント装置２６２０内で行われ、その送信は、クライアント装置２６２０とタグ装置２６１０間でローカルに行われる。そのため、第三者への情報の漏洩を抑制でき、より高い安全性を確保できる。また、セキュリティサーバ装置２６６０からクライアント装置２６２０への複数種類の秘匿化ＩＤ情報の送信を一度に行うこととすれば、セキュリティサーバ装置２６６０へのアクセス回数を低減できるため、秘匿化ＩＤ情報の更新処理に伴うシステムの性能低下を軽減できる。【０２０３】  なお、秘匿化ＩＤ情報の選択・格納の契機は上述したものに限定されず、また、クライアント装置２６２０に格納された秘匿化ＩＤ情報がすべて使い果たされた後、セキュリティサーバ装置２６６０から再び複数種類の秘匿化ＩＤ情報を取得し、クライアント装置２６２０に格納することとしてもよい。
【実施例２１】  次に、実施例２１について説明する。
本実施例は、実施例２０の変形例であり、クライアント装置が、複数のセキュリティサーバ装置（「更新装置」）から出力された秘匿化ＩＤ情報を取得する点が実施例２０と相違する。【０２０４】  図４５は、本実施例における更新システム２７００の機能構成を例示したブロック図である。以下、この図を用いて、本実施例の機能構成及び処理について説明する。なお、図４５において実施例１４或いは実施例２０と共通する構成については、実施例１４或いは実施例２０と同じ符号を付した。また、以下では、実施例２０との相違点のみを説明する。
＜前処理＞
実施例２０との相違点は、クライアント装置２６２０が、複数のセキュリティサーバ装置２７６０−１，２７６０−２，…，２７６０−ｐから送られた複数種類の秘匿化ＩＤ情報（ｓｉｄｈ−１，…，ｐ）を受信する点のみである。なお、複数のセキュリティサーバ装置２７６０−１，２７６０−２，…，２７６０−ｐにおけるＩＤの秘匿化は、例えば、実施例１８の方法を用いる。【０２０５】  ＜秘匿化ＩＤ更新処理＞
実施例２０と同様である。
＜実施例２１の特徴＞
本実施例では、複数のセキュリティサーバ装置２７６０−１，２７６０−２，…，２７６０−ｐで生成された秘匿化ＩＤ情報をクライアント装置２６２０で取得することとした。そのため、秘匿化ＩＤ情報の更新履歴が１つのセキュリティサーバ装置に集中することを防止でき、より高度な安全性を実現できる。【０２０６】  また、前述のように、実施例２０において、実施例１４の方法を利用して秘匿化ＩＤ情報を生成する場合、セキュリティサーバ装置の秘匿化ＩＤメモリに、１つの鍵ＩＤ情報に対して複数の秘匿化ＩＤ情報（ｓｉｄｈ−１，…，ｐ）を保持しておく必要があった。しかし、本実施例では、実施例１４の方法を利用して秘匿化ＩＤ情報を生成する場合であっても、各セキュリティサーバ装置が管理する秘匿化ＩＤ情報は、１つの鍵ＩＤ情報に対して１つの秘匿化ＩＤ情報のみでよい。この点、秘匿化ＩＤ情報の管理を簡易化できる。
【実施例２２】  次に、実施例２２について説明する。【０２０７】  本実施例では、実施例２０及び実施例２１の変形例であり、取得した複数の秘匿化ＩＤ情報をクライアント装置ではなく、タグ装置内に格納しておくものである。
図４６は、本実施例における更新システム２８００の機能構成を例示したブロック図である。以下、この図を用いて、本実施例の機能構成及び処理について説明する。なお、図４６において実施例１４と共通する構成については、実施例１４と同じ符号を付した。また、以下では、実施例１４、実施例２０及び実施例２１との相違点を中心に説明する。
＜前処理＞
まず、クライアント装置２０２０の通信部２０２１において、ネットワーク２０７０を通じて送られた複数種類の秘匿化ＩＤ情報（ｓｉｄｈ−１，…，ｐ）を受信する。受信された複数種類の秘匿化ＩＤ情報（ｓｉｄｈ−１，…，ｐ）は、インタフェース２０２２に送られ、そこからタグ装置２８１０に対して送信される。【０２０８】  タグ装置２８１０は、インタフェース２０１３（「秘匿化ＩＤ入力部」に相当）において、複数種類の秘匿化ＩＤ情報（ｓｉｄｈ−１，…，ｐ）を受信し（入力を受け付け）、これらを読書き部２０１２に送る。読書き部２０１２はこれらを秘匿化ＩＤメモリ２８１１に格納する。なお、秘匿化ＩＤ情報（ｓｉｄｈ−１，…，ｐ）は、１つのセキュリティサーバ装置から出力されたものでも、複数のセキュリティサーバ装置から出力されたものでもよい。
＜秘匿化ＩＤ更新処理＞
タグ装置２８１０の読書き部２０１２（「秘匿化ＩＤ抽出部」に相当）は、制御部２０１４の制御のもと、例えば、読取り装置からの読取り指示をトリガ（契機）として、秘匿化ＩＤメモリ２８１１から１つの秘匿化ＩＤ情報（ｓｉｄｈ−ｊ）を任意（例えば、ランダム）に抽出し、これをインタフェース２０１３から送信する。送信された秘匿化ＩＤ情報（ｓｉｄｈ−ｊ）は、実施例１４で述べたようにバックエンド装置における処理に使用される。【０２０９】  ＜実施例２２の特徴＞
本実施例では、タグ装置２８１０に複数種類の秘匿化ＩＤ情報（ｓｉｄｈ−１，…，ｐ）を格納し、それらから選択した１つの秘匿化ＩＤ情報（ｓｉｄｈ−ｊ）を使用することとした。これにより、ＩＤに関する情報の取得等に使用される秘匿化ＩＤ情報が毎回同じになることがなく、タグ装置２８１０の追跡を抑制できる。また、タグ装置２８１０自体に複数種類の秘匿化ＩＤ情報（ｓｉｄｈ−１，…，ｐ）を格納してあるため、クライアント装置２０２０にアクセスできない場合（例えば、クライアント装置２０２０の機能を有しないタグ読取り装置での読取り処理時）でも、使用する秘匿化ＩＤ情報を更新することができる。
【実施例２３】
【０２１０】  この実施例では、タグ装置に、鍵ＩＤ情報が格納された読取専用領域と、第１の秘匿化ＩＤ情報が格納された書換可能領域と、を有する秘密値メモリを設ける。そして、秘匿化ＩＤ情報の再秘匿化処理の際、この秘匿化ＩＤメモリから鍵ＩＤ情報と第１の秘匿化ＩＤ情報を抽出して出力する。
更新装置は、これらの鍵ＩＤ情報と第１の秘匿化ＩＤ情報の入力を受け付け、この鍵ＩＤ情報に対応する鍵を抽出する。そして、抽出した鍵と、第１の秘匿化ＩＤ情報とを用いて、第１の秘匿化ＩＤ情報との関連性の把握が困難な第２の秘匿化ＩＤ情報を生成し、この第２の秘匿化ＩＤ情報を出力する。【０２１１】  タグ装置は、この第２の秘匿化ＩＤ情報の入力を受け付け、入力された第２の秘匿化ＩＤ情報を、秘匿化ＩＤメモリの書換可能領域に格納する。
ここで、更新装置において更新されるのは秘匿化ＩＤ情報のみである。そして、タグ装置において書き換えられるのは、書換可能領域内の秘匿化ＩＤ情報のみであり、読取専用領域内の鍵ＩＤ情報には変更はない。そのため、書換可能領域内の秘匿化ＩＤ情報が、異なるタグ装置に対応する秘匿化ＩＤ情報に書き換えられた場合であっても、この秘匿化ＩＤ情報の復号処理に用いられる鍵ＩＤ情報は、元の鍵ＩＤ情報のままである。そのため、この書き換えられた秘匿化ＩＤ情報の復号時に選択される復号サーバは、例えば、元の鍵ＩＤ情報を元に選択される復号サーバであり、この書き換えられた秘匿化ＩＤ情報の復号処理を適切にできない場合もある。また、復号サーバが共通していた場合であっても、この書き換えられた秘匿化ＩＤ情報の復号処理に使用される鍵は、元の鍵ＩＤ情報に対応する鍵である。よって、その復号結果も異常となる。【０２１２】  以下、この実施例を図面を参照して説明する。
図４７は、本実施例の更新システム３０００の全体構成を例示した概念図である。
この図に例示するように、更新システム３０００は、商品等に貼り付けられる無線タグ等のタグ装置３０１０、クライアント装置３０２０、平文のＩＤに関連する流通情報等を管理するバックエンド装置３０５０、及び秘匿化ＩＤ情報の再秘匿化処理を行うセキュリティサーバ装置３０６０、ＩＤの復元処理を行うセキュリティサーバ装置３０７０を有している。そして、このクライアント装置３０２０、バックエンド装置３０５０及びセキュリティサーバ装置３０６０、３０７０は、インターネット等のネットワーク３０８０により通信可能なように接続されている。なお、説明の簡略化のため、この図では、タグ装置３０１０、クライアント装置３０２０、バックエンド装置３０５０及びセキュリティサーバ装置３０６０、３０７０を１つずつ例示しているが、通常タグ装置は複数であり、クライアント装置、バックエンド装置及びセキュリティサーバ装置は複数としてもよい。さらに、セキュリティサーバ装置３０６０、３０７０の代わりに、セキュリティサーバ装置３０６０、３０７０の両機能を有するセキュリティサーバ装置を用いることとしてもよい。【０２１３】  この例のクライアント装置３０２０は、タグ装置１０から秘匿化ＩＤ情報を読取り、これをセキュリティサーバ装置３０７０に送る。セキュリティサーバ装置３０７０は、この秘匿化ＩＤ情報からＩＤを復元し、このＩＤをクライアント装置３０２０に返す。ＩＤを受け取ったクライアント装置３０２０は、バックエンド装置３０５０にアクセスし、ＩＤ、読取り日時、読取り場所、温度等の情報の書き込みや、ＩＤに関連する情報の取得等を要求する。また、クライアント装置３０２０が、秘匿化ＩＤ情報をセキュリティサーバ装置３０７０に送信し、セキュリティサーバ装置３０７０が、直接、バックエンド装置３０５０にアクセスするというプロキシモデルの利用形態も想定できる。【０２１４】  また、所定の契機で、タグ装置３０１０内の秘匿化ＩＤ情報は、セキュリティサーバ装置３０６０において再秘匿化処理（秘匿化ＩＤ情報を別の秘匿化ＩＤ情報に更新すること）され、タグ装置３０１０内の秘匿化ＩＤ情報が更新される。なお、秘匿化ＩＤ情報の更新契機を確実に確保するため、例えば、家の玄関にクライアント装置３０２０を設けることとしてもよい。この場合、クライアント装置３０２０は、タグ装置を保持した利用者が玄関を通過するたびに、タグ装置３０１０の秘匿化ＩＤ情報を読取り、それをセキュリティサーバ装置３０６０で再秘匿化し、再びタグ装置に書き込む。【０２１５】  そして、本実施例の特徴的な部分は、タグ装置３０１０が、鍵ＩＤ情報が格納された読取専用領域と秘匿化ＩＤ情報が格納された書換可能領域とを有する秘匿化ＩＤメモリを具備する点、再秘匿化された秘匿化ＩＤ情報は書換可能領域へ書き込まれるが、鍵ＩＤ情報が格納された読取専用領域の更新は行われない点である。なお、書換可能領域に格納される秘匿化ＩＤ情報には鍵ＩＤ情報は含まれない。
＜機能構成・処理＞
図４８は、本実施例における更新システム３０００の機能構成を例示した図であり、図４９及び図５０は、その処理手順を説明するためのフローチャートである。以下、これらの図を用いて、本実施例の機能構成及び処理について説明する。なお、図４８以降、バックエンド装置の記載は省略する。また、タグ装置３０１０、クライアント装置３０２０及びセキュリティサーバ装置３０６０、３０７０は、それぞれ制御部３０１４、３０２３、３０６５、３０７５の制御により各処理を実行する。また、処理されるデータは、逐一メモリ３０１４ａ、３０２３ａ、３０６５ａ或いは３０７５ａに格納され、演算等の処理を行う際に呼び出されるが、以下ではこの説明を省略する。【０２１６】  ＜前処理＞
この形態では、再暗号化の性質を持つ暗号アルゴリズム（公開鍵暗号方式）による暗号文を秘匿化ＩＤ情報として用いる。この例では、楕円ＥｌＧａｍａｌ暗号を用いる。
図４８に例示するように、この例のタグ装置３０１０は、読取専用領域３０１１ａと書換可能領域３０１１ｂを有する秘密値メモリ３０１１を有している。ここで、秘密値メモリ３０１１として、ＥＥＰＲＯＭなどの書換可能ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）等の書換え可能なメモリを用い、その所定の領域を読取専用領域３０１１ａと書換可能領域３０１１ｂに割り当てることとしてもよく、また、ＲＯＭ等の書換不可能なメモリを用いて読取専用領域３０１１ａを構成し、ＥＥＰＲＯＭ等の書換え可能なメモリを用いて書換可能領域３０１１ｂを構成することとしてもよい。そして、この読取専用領域３０１１ａには、秘密鍵ｓｋｊ及び公開鍵ｐｋｊを特定する鍵ＩＤ情報ｋｉｄｊが格納（記録）され、書換可能領域３０１１ｂには、秘匿化ＩＤ情報ｓｉｄｈ＝（ｇｒ，ｉｄｈ・ｐｋｊｒ）が格納される。【０２１７】  また、セキュリティサーバ装置３０６０（「更新装置」）のメモリ３０６５ａには生成元ｇが格納されおり、セキュリティサーバ装置３０７０（「復号装置」に相当）の鍵メモリ３０７１には、各鍵ＩＤ情報（ｋｉｄ１，…，ｋｉｄｎ）と、秘密鍵（ｓｋ１，…，ｓｋｎ）及び公開鍵（ｐｋ１，…，ｐｋｎ）が、対応付けられて格納されている。
なお、この例では、タグ装置の総数ｍは鍵の総数ｎよりも十分に大きく（ｍ≫ｎ）、関連性のないタグ装置に、同じ鍵ＩＤ情報が割り当てられているものとする。すなわち、例えば、同じ種類の商品にそれぞれ付されるタグ装置に、同じ鍵ＩＤ情報が割り当てられるのではなく、無関係な商品にそれぞれ付されるタグ装置に、同じ鍵ＩＤ情報が割り当てられる。これにより、鍵ＩＤ情報からタグ装置、商品種別或いは商品個体等が一意に特定されることを防止できる。【０２１８】  ＜秘匿化ＩＤ復号処理＞
最初に、バックエンド装置５０にＩＤに関連する情報の取得等を要求する際に行われる、秘匿化ＩＤ情報の復号処理について説明する。
まず、何らかの認証技術を利用し、クライアント装置３０２０とセキュリティサーバ装置３０７０との間で相互認証を行う。なお、クライアント装置３０２０とセキュリティサーバ装置３０７０との通信は、何らかの暗号技術により暗号化されて行われる。
次に、クライアント装置３０２０は、インタフェース３０２２においてタグ装置３０１０に読取り指示を送信する（ステップＳ５０１）。この読取り指示はタグ装置３０１０のインタフェース３０１３において受信され、これをトリガとして、読書き部３０１２は、秘密値メモリ３０１１の読取専用領域３０１１ａから鍵ＩＤ情報ｋｉｄｊを抽出し、書換可能領域３０１１ｂから秘匿化ＩＤ情報ｓｉｄｈを抽出する（ステップＳ５０２）。抽出された秘匿化ＩＤ情報ｓｉｄｈ及び鍵ＩＤ情報ｋｉｄｊは、インタフェース３０１３を通じ、クライアント装置３０２０に送信され（ステップＳ５０３）、クライアント装置３０２０のインタフェース３０２２において受信される。クライアント装置３０２０は、例えば、受け取った鍵ＩＤ情報ｋｉｄｊからセキュリティサーバ装置３０７０のアドレスを特定し、このセキュリティサーバ装置３０７０に対し、通信部３０２１からネットワーク３０８０を通じ、秘匿化ＩＤ情報ｓｉｄｈ及び鍵ＩＤ情報ｋｉｄｊを送信する（ステップ５０４）。【０２１９】  送信された秘匿化ＩＤ情報ｓｉｄｈ及び鍵ＩＤ情報ｋｉｄｊは、セキュリティサーバ装置３０７０の通信部３０７２（「秘匿化ＩＤ入力部」に相当）において受信され（入力を受け付けられ）（ステップＳ５０５）、秘匿化ＩＤ情報ｓｉｄｈは復号部７４（「ＩＤ算出部」に相当）に、鍵ＩＤ情報ｋｉｄｊは読取り部３０７３にそれぞれ送られる。読取り部３０７３（「鍵抽出部」に相当）は、送られた鍵ＩＤ情報ｋｉｄｊに対応する秘密鍵ｓｋｊを鍵メモリ３０７１から抽出し、復号部３０７４に送る（ステップＳ５０６）。復号部３０７４は、送られた秘匿化ＩＤ情報ｓｉｄｈと秘密鍵ｓｋｊを用い、秘匿化ＩＤ情報ｓｉｄｈを復号したタグＩＤ情報ｉｄｈを算出する。この例では、ｉｄｈ＝（ｉｄｈ・ｐｋｊｒ）／（ｇｒ）ｓｋｊの演算を行い、タグＩＤ情報ｉｄｈを算出する。なお、この演算式における指数「ｓｋｊ」は「ｓｋｊ」を意味する。算出されたタグＩＤ情報ｉｄｈは通信部３０７２に送られ、そこからネットワーク３０８０を通じ、クライアント装置３０２０に向けて送信される（ステップＳ５０８）。クライアント装置３０２０は、送信されたタグＩＤ情報ｉｄｈを通信部３０２１において受信し（ステップＳ５０９）、このタグＩＤ情報ｉｄｈをその後のバックエンド装置３０５０への問い合わせに利用する。【０２２０】  ＜秘匿化ＩＤ更新処理＞
次に、本実施例における秘匿化ＩＤ情報の更新処理について説明する。
まず、何らかの認証技術を利用し、クライアント装置３０２０とセキュリティサーバ装置３０６０との間で相互認証を行う。なお、クライアント装置３０２０とセキュリティサーバ装置３０６０との通信も、何らかの暗号技術により暗号化して行うものとする。
この例の秘匿化ＩＤ情報の更新処理は、任意の契機、例えば、玄関等外出時に必ず通る場所を通過した場合や、タグ装置３０１０内に格納された秘匿化ＩＤ情報の使用回数（カウント値が所定値に達した）等をトリガとして開始される。このトリガにより、クライアント装置３０２０は、インタフェース３０２２においてタグ装置３０１０に読取り指示を送信する（ステップＳ５１１）。この読取り指示はタグ装置３０１０のインタフェース３０１３において受信され、これをトリガとして、読書き部３０１２（「秘匿化ＩＤ抽出部」に相当）は、秘密値メモリ３０１１の読取専用領域３０１１ａから鍵ＩＤ情報ｋｉｄｊを抽出し、書換可能領域３０１１ｂから秘匿化ＩＤ情報ｓｉｄｈを抽出する（ステップＳ５１２）。抽出された秘匿化ＩＤ情報ｓｉｄｈ及び鍵ＩＤ情報ｋｉｄｊは、インタフェース３０１３（「秘匿化ＩＤ抽出部」に相当）を通じ、クライアント装置３０２０に送信（出力）され（ステップＳ５１３）、クライアント装置３０２０のインタフェース３０２２において受信される。クライアント装置３０２０は、受け取った秘匿化ＩＤ情報ｓｉｄｈ及び鍵ＩＤ情報ｋｉｄｊを、通信部３０２１及びネットワーク３０８０を通じ、セキュリティサーバ装置３０６０へ送信する（ステップ５１４）。【０２２１】  セキュリティサーバ装置３０６０は、通信部３０６１（「秘匿化ＩＤ入力部」に相当）において、この秘匿化ＩＤ情報ｓｉｄｈ及び鍵ＩＤ情報ｋｉｄｊを受信し（入力を受け付け）（ステップＳ５１５）、秘匿化ＩＤ情報（ｓｉｄｈ＝（ｇｒ，ｉｄｈ・ｐｋｊｒ））を剰余乗算演算部３０６４（「秘匿化ＩＤ更新部」を構成）に送る。また、通信部３０６１（「鍵抽出部」に相当）は、この鍵ＩＤ情報ｋｉｄｊを、公開鍵取得要求とともに、ネットワーク３０８０を通じ、セキュリティサーバ装置３０７０に送信する。
セキュリティサーバ装置３０７０は、通信部３０７２においてこれらを受信し、鍵ＩＤ情報ｋｉｄｊを読取り部３０７３に送る。読取り部３０７３は、この鍵ＩＤ情報ｋｉｄｊに対応する公開鍵ｐｋｊを鍵メモリ３０７１から抽出し、抽出した公開鍵ｐｋｊを、通信部３０７２及びネットワーク３０８０を通じてセキュリティサーバ装置３０６０に返す。【０２２２】  セキュリティサーバ装置３０６０は、通信部３０６１において、この公開鍵ｐｋｊを受信（抽出）し、剰余べき乗演算部３０６３（「秘匿化ＩＤ更新部」を構成）に送る（ステップＳ５１６）。また、例えばこれをトリガとして、乱数生成部３０６２は、０以上ｐ−１未満の乱数ｒ’を生成し、これを剰余べき乗演算部３０６３に送る（ステップＳ５１７）。剰余べき乗演算部３０６３は、メモリ３０６５ａ内の生成元ｇ、受け取った公開鍵ｐｋｊ及び乱数ｒ’を用いて（ｇｒ’，ｐｋｊｒ’）の演算を行い、その結果を剰余乗算演算部３０６４に送る（ステップＳ５１８）。剰余乗算演算部３０６４は、受け取った（ｇｒ’，ｐｋｊｒ’）と（ｇｒ，ｉｄｈ・ｐｋｊｒ）を用いて（ｇｒ＋ｒ’，ｉｄｈ・ｐｋｊｒ＋ｒ’）を演算し、その演算結果（暗号文）を新たな秘匿化ＩＤ情報として通信部３０６１に送る（ステップＳ５１９）。通信部３０６１（「秘匿化ＩＤ出力部」に相当）は、送られた秘匿化ＩＤ情報（ｓｉｄｈ’＝（ｇｒ＋ｒ’，ｉｄｈ・ｐｋｊｒ＋ｒ’））（更新前の秘匿化ＩＤ情報（ｓｉｄｈ）との関連性の把握が困難な秘匿化ＩＤ情報（ｓｉｄｈ’）を、ネットワーク３０８０を通じ、クライアント装置３０２０に向けて送信（出力）する（ステップＳ５２０）。【０２２３】  送信された新たな秘匿化ＩＤ情報ｓｉｄｈ’は、クライアント装置３０２０の通信部３０２１において受信され、インタフェース３０２２を通じてタグ装置３０１０に送信される（ステップＳ５２１）。タグ装置３０１０は、インタフェース３０１３（「秘匿化ＩＤ入力部」に相当）において、この新たな秘匿化ＩＤ情報ｓｉｄｈ’を受信し（入力を受け付け）（ステップＳ５２２）、読書き部３０１２（「秘匿化ＩＤ格納部」に相当）において、この新たな秘匿化ＩＤ情報ｓｉｄｈ’をメモリ３０１１の書換可能領域３０１１ｂに格納する（ステップＳ５２３）。その後、タグ装置３０１０は、読取り要求に対し、この新たな秘匿化ＩＤ情報ｓｉｄｈ’を応答する。【０２２４】  ＜実施例２３の特徴＞
本実施例では、タグ装置３０１０に、鍵ＩＤ情報を格納した読取専用領域３０１１ａと秘匿化ＩＤ情報を格納する書換可能領域３０１１ｂを有する秘密値メモリ３０１１を設け、書換可能領域３０１１ｂに格納された秘匿化ＩＤ情報のみを再秘匿化し、更新することとした。そのため、秘匿化ＩＤ情報の再秘匿化処理の際、書換可能領域３０１１ｂに他のタグ装置の秘匿化ＩＤ情報が書き込まれた場合であっても、そのような不正・誤りを検出することが可能となる。【０２２５】  例えば、図４８において、タグ装置３０１０が有する秘密値メモリ３０１１の書換可能領域３０１１ｂに、鍵ＩＤ情報ｋｉｄ１に対応する他のタグ装置の秘匿化ＩＤ情報（ｇｒ，ＩＤ２・ｐｋ１ｒ）が格納された場合を考える。この場合であっても、読取専用領域３０１１ａに格納されている鍵ＩＤ情報は常にｋｉｄｊであり、セキュリティサーバ装置３０７０の復号処理時に、読取り部３０７３において鍵メモリ３０７１から抽出される秘密鍵はｋｉｄｊに対応するｓｋｊである。そのため、復号部３０７４での復号結果は（ｉｄ２・ｐｋ１ｒ）／（ｇｒ）ｓｋｊ＝（ｉｄ２・（ｇｓｋ１）ｒ）／（ｇｒ）ｓｋｊ＝ＩＤ２・ｇｓｋ１／ｇｓｋｊとなり、その演算結果は異常データとなる。よって、この復号結果が異常データとなることをもって、他のタグ装置の秘匿化ＩＤ情報が書き込まれたことを検出することができる。【０２２６】  また、パスワード等による書換可能領域３０１１ｂへのアクセル制御を行うことなく、秘匿化ＩＤ情報の不正書換え等を防止できるため、その制御回路コストも抑えることができ、さらにアクセス制御用の複雑なパスワード管理等も不要となる。
すなわち、秘匿化ＩＤ情報の任意なタイミングでの更新を、より確実・安全・低コストで実行できるようになり、タグ装置３０１０に関するプライバシーの保護が可能となる。
なお、本実施例では、楕円ＥｌＧａｍａｌ暗号を用いて秘匿化ＩＤ情報の生成・更新等を行うこととしたが、再暗号化の性質を持つ暗号、或いは、特願２００３−３５９１５７号に示す再秘匿化方法を用いてもよい。また、セキュリティサーバ装置３０６０、３０７０を一体としてもよく、さらに、セキュリティサーバ装置３０６０が公開鍵のメモリを具備することとしてもよい。
【実施例２４】
【０２２７】  本実施例は、実施例２３の変形例であり、秘匿化ＩＤ情報の復号結果がＩＤのフォーマットに矛盾していないかを確認することによって、タグ装置から出力された秘匿化ＩＤ情報が誤っていないか確認する。以下では、実施例２３との相違点を中心に説明を行い、実施例２３と共通する事項については説明を省略する。
図５１は、本実施例におけるセキュリティサーバ装置３１７０（「復号装置」に相当）の機能構成を例示した図であり、図５２は、本実施例におけるタグＩＤ情報３２００のフォーマットを例示した図である。また、図５３はセキュリティサーバ装置３１７０の処理手順を説明するためのフローチャートである。なお、図５１において実施例２３と共通する機能構成については、実施例２３と同じ符号を付した。【０２２８】  ＜全体構成・ハードウェア構成＞
セキュリティサーバ装置３０７０がセキュリティサーバ装置３１７０に置き換わる以外は、実施例２３と同様である。
＜前処理＞
実施例２３との相違点は、セキュリティサーバ装置３１７０が有する有効値メモリ３１７６にＩＤの各フィールドの有効値を格納しておく点である。その他は実施例２３と同様である。【０２２９】  ＜秘匿化ＩＤ復号処理＞
実施例２３との相違点は、前述したセキュリティサーバ装置３０７０の処理（図４９：ステップＳ５０５〜Ｓ５０８）に代えて、セキュリティサーバ装置３１７０が図５３に例示する処理を行う点である。以下では、セキュリティサーバ装置３１７０の処理についてのみ説明し、その他の処理の説明は省略する。
実施例２３と同様にクライアント装置３０２０から送信された秘匿化ＩＤ情報ｓｉｄｈ及び鍵ＩＤ情報ｋｉｄｊは、セキュリティサーバ装置３１７０の通信部３０７２（「秘匿化ＩＤ入力部」に相当）において受信され（入力を受け付けられ）（ステップＳ５３１）、秘匿化ＩＤ情報ｓｉｄｈは復号部３０７４（「ＩＤ算出部」に相当）に、鍵ＩＤ情報ｋｉｄｊは読取り部３０７３にそれぞれ送られる。読取り部３０７３（「鍵抽出部」に相当）は、送られた鍵ＩＤ情報ｋｉｄｊに対応する秘密鍵ｓｋｊを鍵メモリ３０７１から抽出し、復号部３０７４に送る（ステップＳ５３２）。復号部３０７４は、送られた秘匿化ＩＤ情報ｓｉｄｈと秘密鍵ｓｋｊを用い、秘匿化ＩＤ情報ｓｉｄｈを復号したタグＩＤ情報ｉｄｈを算出する。【０２３０】  算出されたタグＩＤ情報ｉｄｈはＩＤ構造検証部３１７７に送られ、そこでこのタグＩＤ情報ｉｄｈの構造の検証が行われる（ステップＳ５３４）。図５２に例示するように、この例のＩＤ３２００は、ヘッダ（ｈ）３２１０、バージョンコード（ｖｃ）３２０２、製造者コード（ｍｃ）３２０３、商品コード（ｐｃ）３２０４、シリアルコード（ｓｃ）３２０５の各フィールドを有している。有効値メモリ３１７６には、この各フィールドの値がとり得る有効値が格納されており、ＩＤ構造検証部３１７７は、受け取ったタグＩＤ情報ｉｄｈの各フィールドの値と、有効値メモリ３１７６から抽出した有効値とを比較し、受け取ったタグＩＤ情報ｉｄｈの各フィールド値が有効値範囲内であるか否かを検証する。ここで、検証が成功した場合（ステップＳ５３５）、ＩＤ構造検証部１７７は、タグＩＤ情報ｉｄｈを通信部３０７２に送り、通信部３０７２は、タグＩＤ情報ｉｄｈをクライアント装置３０２０に送信する（ステップＳ５３６）。一方、検証が成功しなかった場合（ステップＳ５３５）、ＩＤ構造検証部３１７７は、タグＩＤ情報ｉｄｈを破棄して処理を終了する。【０２３１】  ＜実施例２４の特徴＞
本実施例では、セキュリティサーバ装置３１７０のＩＤ構造検証部３１７７において、復号後のタグＩＤ情報ｉｄｈが所定のＩＤフォーマットと矛盾していないかを検証することとした。これにより、タグ装置の書換可能領域に他のタグ装置の秘匿化ＩＤ情報が書き込まれていたことに起因する、秘匿化ＩＤ情報の復号結果のデータ異常を確実に発見することができる。
【実施例２５】  本実施例は、実施例２３の変形例であり、秘匿化ＩＤ情報の再秘匿化処理を行う際に、鍵ＩＤ情報と再秘匿化された秘匿化ＩＤ情報に秘密鍵を作用させ、デジタル署名、ＭＡＣ等の認証情報を付する点が実施例２３との相違点である。以下では、実施例２３との相違点を中心に説明を行い、実施例２３と共通する事項については説明を省略する。【０２３２】  図５４及び５５は、本実施例における更新システム３３００の機能構成を例示した図であり、図５６及び５７は、その処理手順を説明するためのフローチャートである。なお、図５４及び５５において実施例２３と共通する機能構成については、実施例２３と同じ符号を付した。
＜全体構成・ハードウェア構成＞
タグ装置３０１０がタグ装置３３１０に、セキュリティサーバ装置３０６０がセキュリティサーバ装置３３６０（「更新装置」に相当）に、セキュリティサーバ装置３０７０がセキュリティサーバ装置３３７０（「復号装置」に相当）に、それぞれ置き換わる以外は、実施例２３と同様である。【０２３３】  ＜前処理＞
実施例２３との相違点は、タグ装置３３１０の秘密値メモリ３３１１の書換可能領域３３１１ｂに、秘匿化ＩＤ情報ｓｉｄｈとデジタル署名（「検証情報」に相当）σを格納しておく点、セキュリティサーバ装置３３６０の鍵メモリ３３６６にデジタル署名に用いる秘密鍵ｓｋと公開鍵ｐｋを格納しておく点である。その他は実施例２３と同様である。
＜秘匿化ＩＤ更新処理＞
次に、本実施例における秘匿化ＩＤ情報の更新処理について説明する。【０２３４】  まず、クライアント装置３０２０は、インタフェース３０２２においてタグ装置３３１０に読取り指示を送信する（ステップＳ５４１）。この読取り指示はタグ装置３３１０のインタフェース３０１３において受信され、これをトリガとして、読書き部３０１２は、秘密値メモリ３３１１の読取専用領域３０１１ａから鍵ＩＤ情報ｋｉｄｊを抽出し、書換可能領域３３１１ｂから秘匿化ＩＤ情報ｓｉｄｈを抽出する（ステップＳ５４２）。抽出された秘匿化ＩＤ情報ｓｉｄｈ及び鍵ＩＤ情報ｋｉｄｊは、インタフェース３０１３を通じ、クライアント装置３０２０に送信され（ステップＳ５４３）、クライアント装置３０２０のインタフェース３０２２において受信される。クライアント装置３０２０は、受け取った秘匿化ＩＤ情報ｓｉｄｈ及び鍵ＩＤ情報ｋｉｄｊを、通信部３０２１及びネットワーク３０８０を通じ、セキュリティサーバ装置３３６０へ送信する（ステップ５４４）。【０２３５】  セキュリティサーバ装置３３６０は、通信部３０６１において、この秘匿化ＩＤ情報ｓｉｄｈ及び鍵ＩＤ情報ｋｉｄｊを受信し（ステップＳ５４５）、秘匿化ＩＤ情報（ｓｉｄｈ＝（ｇｒ，ｉｄｈ・ｐｋｊｒ））を剰余乗算演算部３０６４に送る。また、実施例２３と同様、通信部３０６１において、鍵ＩＤ情報ｋｉｄｊをセキュリティサーバ装置３３７０に送信し、そこで抽出された公開鍵ｐｋｊを取得（受信）する（ステップＳ５４６）。この公開鍵ｐｋｊは、剰余べき乗演算部３０６３に送られ、さらに、乱数生成部３０６２で生成された（ステップＳ５４７）乱数ｒ’も剰余べき乗演算部３０６３に送られる。剰余べき乗演算部３０６３は、（ｇｒ’，ｐｋｊｒ’）の演算を行い、その結果を剰余乗算演算部３０６４に送り（ステップＳ５４８）、剰余乗算演算部３０６４は、（ｇｒ＋ｒ’，ｉｄｈ・ｐｋｊｒ＋ｒ’）を演算し、その演算結果を新たな秘匿化ＩＤ情報として、通信部３０６１及び署名生成部３３６８に送る（ステップＳ５４９）。これをトリガとして、読取り部３３６７は、鍵メモリ３３６６から秘密鍵ｓｋを抽出し、これを署名生成部３３６８に送る（ステップＳ５５０）。署名生成部３３６８（「検証情報生成部」に相当）は、さらに通信部３０６１から鍵ＩＤ情報ｋｉｄｊを受け取り、例えば、ｇｒ＋ｒ’、ｉｄｈ・ｐｋｊｒ＋ｒ’、ｋｉｄｊのビット結合データ（ｇｒ＋ｒ’｜ｉｄｈ・ｐｋｊｒ＋ｒ’｜ｋｉｄｊ）を生成し、このビット結合データを秘密鍵ｓｋで暗号化したデジタル署名（「検証情報」に相当）σ’＝Ｅｓｋ（ｇｒ＋ｒ’｜ｉｄｈ・ｐｋｊｒ＋ｒ’｜ｋｉｄｊ）を生成する（ステップＳ５５１）。生成された新たなデジタル署名σ’は、通信部３０６１に送られ、通信部３０６１（「秘匿化ＩＤ出力部」に相当）は、先に送られた新たな秘匿化ＩＤ情報（ｓｉｄｈ’＝（ｇｒ＋ｒ’，ｉｄｈ・ｐｋｊｒ＋ｒ’））と新たなデジタル署名σ’を、ネットワーク３０８０を通じ、クライアント装置３０２０に向けて送信（出力）する（ステップＳ５５２）。【０２３６】  送信された新たな秘匿化ＩＤ情報ｓｉｄｈ’及びデジタル署名σ’は、クライアント装置３０２０の通信部３０２１において受信���れ、インタフェース３０２２を通じてタグ装置３３１０に送信される（ステップＳ５５３）。タグ装置３３１０は、インタフェース３０１３（「秘匿化ＩＤ入力部」に相当）において、この新たな秘匿化ＩＤ情報ｓｉｄｈ’及びデジタル署名σ’を受信し（入力を受け付け）（ステップＳ５５４）、読書き部３０１２（「秘匿化ＩＤ格納部」に相当）において、この新たな秘匿化ＩＤ情報ｓｉｄｈ’及びデジタル署名σ’を秘密値メモリ３３１１の書換可能領域３３１１ｂに格納する（ステップＳ５５５）。その後、タグ装置３３１０は、読取り要求に対し、この新たな秘匿化ＩＤ情報ｓｉｄｈ’及びデジタル署名σ’を応答する。【０２３７】  ＜秘匿化ＩＤ復号処理＞
次に、本実施例における秘匿化ＩＤ情報の復号処理について説明する。
まず、クライアント装置３０２０は、インタフェース３０２２においてタグ装置３３１０に読取り指示を送信する（ステップＳ５６１）。この読取り指示はタグ装置３３１０のインタフェース３０１３において受信され、これをトリガとして、読書き部３０１２は、秘密値メモリ３３１１の読取専用領域３０１１ａから鍵ＩＤ情報ｋｉｄｊを抽出し、書換可能領域３３１１ｂから秘匿化ＩＤ情報ｓｉｄｈ’及びデジタル署名σ’を抽出する（ステップＳ５６２）。抽出された秘匿化ＩＤ情報ｓｉｄｈ’、デジタル署名σ’及び鍵ＩＤ情報ｋｉｄｊは、インタフェース３０１３を通じ、クライアント装置３０２０に送信され（ステップＳ５６３）、クライアント装置３０２０のインタフェース３０２２において受信される。クライアント装置３０２０は、通信部３０２１において、これらの情報を、ネットワーク３０８０を通じて、セキュリティサーバ装置３３７０に送信する（ステップ５６４）。【０２３８】  送信された秘匿化ＩＤ情報ｓｉｄｈ’、デジタル署名σ’及び鍵ＩＤ情報ｋｉｄｊは、セキュリティサーバ装置３３７０の通信部３０７２（「秘匿化ＩＤ入力部」に相当）において受信され（入力を受け付けられ）（ステップＳ５６５）、デジタル署名σ’は署名検証部３３７６に、秘匿化ＩＤ情報ｓｉｄｈは復号部３０７４（「ＩＤ算出部」に相当）及び署名検証部３３７６に、鍵ＩＤ情報ｋｉｄｊは読取り部３０７３及び署名検証部３３７６にそれぞれ送られる。
また、通信部３０７２は、ネットワーク３０８０を通じ、セキュリティサーバ装置３３６０に公開鍵取得要求を送り、これを通信部３０６１で受信したセキュリティサーバ装置３３６０は、読取り部３３６７において鍵メモリ３３６６から公開鍵ｐｋを抽出し、通信部３０６１及びネットワーク３０８０を通じて、この公開鍵ｐｋを返す。この公開鍵ｐｋは、セキュリティサーバ装置３３７０の通信部３０７２において受信され（ステップＳ５６６）、署名検証部３３７６に送られる。【０２３９】  署名検証部３３７６は、受け取ったデジタル署名σ’を、この公開鍵ｐｋを用いて復号し（Ｄｐｋ（σ’））、ｇｒ＋ｒ’、ｉｄｈ・ｐｋｊｒ＋ｒ’、ｋｉｄｊのビット結合データ（ｇｒ＋ｒ’｜ｉｄｈ・ｐｋｊｒ＋ｒ’｜ｋｉｄｊ）を生成する。そして、Ｄｐｋ（σ’）が（ｇｒ＋ｒ’｜ｉｄｈ・ｐｋｊｒ＋ｒ’｜ｋｉｄｊ）と等しくなるか否かによって、デジタル署名σ’の検証を行う（ステップＳ５６７）。ここで、Ｄｐｋ（σ’）＝（ｇｒ＋ｒ’｜ｉｄｈ・ｐｋｊｒ＋ｒ’｜ｋｉｄｊ）でなかった場合には、検証が失敗したとして処理を終了する。一方、Ｄｐｋ（σ’）＝（ｇｒ＋ｒ’｜ｉｄｈ・ｐｋｊｒ＋ｒ’｜ｋｉｄｊ）であった場合には、読取り部３０７３（「鍵抽出部」に相当）は、送られた鍵ＩＤ情報ｋｉｄｊに対応する秘密鍵ｓｋｊを鍵メモリ３０７１から抽出し、復号部３０７４に送る（ステップＳ５６８）。復号部３０７４は、送られた秘匿化ＩＤ情報ｓｉｄｈ）と秘密鍵ｓｋｊを用い、秘匿化ＩＤ情報ｓｉｄｈ’を復号したタグＩＤ情報ｉｄｈを算出する（ｉｄｈ＝（ｉｄｈ・ｐｋｊｒ＋ｒ’）／（ｇｒ＋ｒ’）ｓｋｊ）（ステップＳ５６９）。なお、この演算式における指数「ｓｋｊ」は「ｓｋｊ」を意味する。算出されたタグＩＤ情報ｉｄｈは通信部３０７２に送られ、そこからネットワーク３０８０を通じ、クライアント装置３０２０に向けて送信される（ステップＳ５７０）。クライアント装置３０２０は、送信されたタグＩＤ情報ｉｄｈを通信部３０２１において受信し（ステップＳ５７１）、このタグＩＤ情報ｉｄｈをその後のバックエンド装置３０５０への問い合わせに利用する。【０２４０】  ＜実施例２５の特徴＞
本実施例では、再秘匿化処理時に、セキュリティサーバ装置３３６０において、デジタル署名σ’＝Ｅｓｋ（ｇｒ＋ｒ’｜ｉｄｈ・ｐｋｊｒ＋ｒ’｜ｋｉｄｊ）を生成し、復号処理時に、セキュリティサーバ装置３３７０において、このデジタル署名σ’を検証することとした。そのため、復号処理の際、デジタル署名によっても再秘匿化された秘匿化ＩＤ情報の正当性を検証でき、誤った秘匿化ＩＤ情報がタグ装置３３１０に格納されていることを、より確実に検出することができる。【０２４１】  なお、この形態では、セキュリティサーバ装置３３６０においてデジタル署名σ’を生成することとしたが、セキュリティサーバ装置３３７０や公証機関サーバ等がデジタル署名σ’の生成を代行することとしてもよい。
【実施例２６】  本実施例は、実施例２３の変形例であり、タグＩＤ情報を構成する情報のうち、各タグ装置に固有な情報のみを秘匿化した情報を秘匿化ＩＤ情報とする点が実施例２３と相違する。以下では、実施例２３との相違点を中心に説明を行い、実施例２３と共通する事項については説明を省略する。【０２４２】  図５８は、本実施例におけるタグ装置３４１０の機能構成を例示した図ある。なお、図５８において、実施例２３と共通する機能構成については、実施例２３と同じ符号を付した。
＜全体構成・ハードウェア構成＞
タグ装置３０１０がタグ装置３４１０に置き換わる以外は、実施例２３と同様である。
＜前処理＞
実施例２３との相違点は、タグＩＤ情報を構成する情報のうち、各タグ装置に固有な情報のみを秘匿化した情報を秘匿化ＩＤ情報ｓｉｄｈとする点である。図５２に例示したデータ構成のタグＩＤ情報を用いる場合、シリアルコード（ｓｃ）３２０５が、各タグ装置に固有な情報となり、秘匿化ＩＤ情報はｓｉｄｈ＝（ｇｒ，ｓｃｈ・ｐｋｊｒ）となる。そして、この秘匿化ＩＤ情報（ｓｉｄｈ＝（ｇｒ，ｓｃｈ・ｐｋｊｒ）がタグ装置３４１０の秘密値メモリ３４１１の書換可能領域３４１１ｂに格納される。また、タグＩＤ情報を構成するバージョンコード（ｖｃ）３２０２、製造者コード（ｍｃ）３２０３、商品コード（ｐｃ）３２０４等の商品ごとに共通する情報を、暗号化して（Ｅ（ｖｃ），Ｅ（ｍｃ），Ｅ（ｐｃ））、秘密値メモリ３４１１の読取専用領域３４１１ａに格納しておく点も実施例２３との相違点である。なお、バージョンコード（ｖｃ）３２０２等の商品ごとに共通する情報の暗号化に関しては、同じ商品でも異なる暗号文が得られるように、確率暗号などを用いる。【０２４３】  ＜処理＞
この例の秘匿化ＩＤ復号処理及び秘匿化ＩＤ更新処理等の処理は、秘匿化ＩＤ情報をｓｉｄｈ＝（ｇｒ，ｓｃｈ・ｐｋｊｒ）とする点を除き、実施例２３と同様である。なお、バックエンド装置３０５０への問い合わせ等の際に必要に応じて、読書き部３０１２において、秘密値メモリ３４１１の読取専用領域３４１１ａからＥ（ｖｃ），Ｅ（ｍｃ），Ｅ（ｐｃ）等を抽出し、これらをインタフェース３０１３、クライアント装置３０２０等を通じて、バックエンド装置３０５０に送信する点も第１の実施の形態との相違点である。【０２４４】  ＜実施例２６の特徴＞
本実施例では、各タグ装置に固有な情報のみを秘匿化した情報を秘匿化ＩＤ情報としたため、商品ごとに共通する情報をも秘匿化した秘匿化ＩＤ情報とする場合に比べ、秘匿化処理の対象となるデータ量を削減でき、計算量や通信量を低減できる。
なお、この発明は、上述の各実施の形態や実施例に限定されるものではない。例えば、各実施例を組み合わせた形態で本発明を実施してもよく、また、上述の各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力或いは必要に応じて並列的に或いは個別に実行されてもよい。その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。【０２４５】  また、上述の各構成をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、前記処理機能がコンピュータ上で実現される。
この処理内容を記述したプログラムは、コンピュータで読取り可能な記録媒体に記録しておくことができる。コンピュータで読取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよいが、具体的には、例えば、磁気記録装置として、ハードディスク装置、フレキシブルディスク、磁気テープ等を、光ディスクとして、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ）、ＤＶＤ−ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＣＤ−Ｒ（Ｒｅｃｏｒｄａｂｌｅ）／ＲＷ（ＲｅＷｒｉｔａｂｌｅ）等を、光磁気記録媒体として、ＭＯ（Ｍａｇｎｅｔｏ−Ｏｐｔｉｃａｌ  ｄｉｓｃ）等を、半導体メモリとしてＥＥＰ−ＲＯＭ（Ｅｌｅｃｔｒｏｎｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  ａｎｄ  Ｐｒｏｇｒａｍｍａｂｌｅ−Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）等を用いることができる。【０２４６】  また、このプログラムの流通は、例えば、そのプログラムを記録したＤＶＤ、ＣＤ−ＲＯＭ等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記録媒体に格納されたプログラムを読取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるＡＳＰ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｅｒｖｉｃｅ  Ｐｒｏｖｉｄｅｒ）型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの（コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等）を含むものとする。
【産業上の利用可能性】
【０２４７】  本発明により、例えばＲＦＩＤにおいてタグ装置の出力情報からタグ装置の流通過程が追跡されてしまうことを抑制することができる。
【図１】
2005031579.tif 000003
【図２】
2005031579.tif 000004
【図３】
2005031579.tif 000005
【図４】
2005031579.tif 000006
【図５】
2005031579.tif 000007
【図６】
2005031579.tif 000008
【図７】
2005031579.tif 000009
【図８】
2005031579.tif 000010
【図９】
2005031579.tif 000011
【図１０】
2005031579.tif 000012
【図１１】
2005031579.tif 000013
【図１２】
2005031579.tif 000014
【図１３】
2005031579.tif 000015
【図１４】
2005031579.tif 000016
【図１５】
2005031579.tif 000017
【図１６】
2005031579.tif 000018
【図１７】
2005031579.tif 000019
【図１８】
2005031579.tif 000020
【図１９】
2005031579.tif 000021
【図２０】
2005031579.tif 000022
【図２１】
2005031579.tif 000023
【図２２】
2005031579.tif 000024
【図２３】
2005031579.tif 000025
【図２４】
2005031579.tif 000026
【図２５】
2005031579.tif 000027
【図２６】
2005031579.tif 000028
【図２７】
2005031579.tif 000029
【図２８】
2005031579.tif 000030
【図２９】
2005031579.tif 000031
【図３０】
2005031579.tif 000032
【図３１】
2005031579.tif 000033
【図３２】
2005031579.tif 000034
【図３３】
2005031579.tif 000035
【図３４】
2005031579.tif 000036
【図３５】
2005031579.tif 000037
【図３６】
2005031579.tif 000038
【図３７】
2005031579.tif 000039
【図３８】
2005031579.tif 000040
【図３９】
2005031579.tif 000041
【図４０】
2005031579.tif 000042
【図４１】
2005031579.tif 000043
【図４２】
2005031579.tif 000044
【図４３】
2005031579.tif 000045
【図４４】
2005031579.tif 000046
【図４５】
2005031579.tif 000047
【図４６】
2005031579.tif 000048
【図４７】
2005031579.tif 000049
【図４８】
2005031579.tif 000050
【図４９】
2005031579.tif 000051
【図５０】
2005031579.tif 000052
【図５１】
2005031579.tif 000053
【図５２】
2005031579.tif 000054
【図５３】
2005031579.tif 000055
【図５４】
2005031579.tif 000056
【図５５】
2005031579.tif 000057
【図５６】
2005031579.tif 000058
【図５７】
2005031579.tif 000059
【図５８】
2005031579.tif 000060
【国際調査報告】
2005031579.tif 000061
2005031579.tif 000062
2005031579.tif 000063
2005031579.tif 000064