A tag privacy protection method for preventing privacy information of a user from being acquired from information which is delivered from a tag device, in which d (d≧1) elements eu, vu (uε{1, . . . , d}) are stored in a confidential value memory of each tag device k (kε{1, . . . , m}, where m represents a total number of tag devices), a manifold value z having t kinds (t≧2) of values is stored in a first manifold value memory of each tag device k, a combination of d initial elements fu, 0 comprising one selected from each of d kinds (d≧1) of subgroups αu (uε{1, . . . , d}) and tag ID information idn (nε{1, . . . , m}) of each tag device are stored in a database memory of a backend apparatus in a manner relating to each other, and the manifold value z is stored in a second manifold value memory of the backend apparatus;
- comprising the steps of
- the tag device
- reading out each element eu, vu from the confidential value memory and reading out either manifold value z from the first manifold value memory and applying a second function F2 which disturbs a relationship between elements of a definition domain and a mapping thereof to a confidential value sk, i which is a bit combination value of the elements and the manifold value to generate tag output information ak, i=F2(sk, i) in a second calculator;
- delivering the tag output information ak, i from an output section;
- and extracting at least part of elements eu′, vu′ (u′ε{1, . . . , d}) from the confidential value memory each time the output section delivers the tag output information ak, i t times, applying a first function F1, an inverse image of which is difficult to obtain, to the extracted elements eu′, vu′, and saving a result of such calculation F1(eu′, vu′) as new elements eu′, vu′+1 in the confidential value memory by overwriting in a first calculator;
- the backend apparatus
- accepting the tag output information ak, i as an input at an input section;
- applying the first function F1 wu times (wuε{1, 2, . . . , max}) to the d initial elements fu, 0 (uε{1, . . . , d}) corresponding to the tag ID information idn and applying the second function F2 to a bit combination value of these values F1wu(fu, 0) and the manifold value z to determine a calculated value c in a third calculator;
- comparing the tag output information ak, i against the calculated value c in a comparator;
- in the event the tag output information ak, i does not match the calculated value c, executing the processings in the third calculator and the comparator again by changing the value of at least part of n, wu and z;
- and in the event the tag output information ak, i matches the calculated value c, extracting the tag ID information idn which is related to the combination of the d initial elements fu, 0 corresponding to the calculated value c from the database memory by a reader.