Patent ID: 7729539

Claim:
A method, preformed by a computer having a memory and a processor, of determining a position of a bit s in a pattern formed from a binary sequence array m of order n, comprising: capturing an image of a portion of the pattern such that the captured image includes at least n bits b of the array m; with a processor, solving for r where b=rM, M ^ = ( m t σ ⁡ ( m t ) ⋮ σ n - 1 ⁡ ( m t ) ) , σ x (m t )_is the x th _cyclic shift of m t , and M is a subset of {circumflex over (M)} by: (a) randomly selecting n bits b (0) from the set of bits b so as to leave remaining bits b (0) , (b) determining a number of different bits d (0) where d (0) is the number of different bits between ([b (0) ] t ,[ b (0) ] t ) and [r (0) ] t (M (0) , M (0) ), (c) if the number of different bits d (0) is not zero, changing J bits of the n bits b (0) with J bits of b (0) to obtain n bits b (1) from the set of bits b so as to leave remaining bits b (1) and bits b (1) are different from bits b (0) , (d) updating r according to the following formula: [ r (1) ] t =[r (0) ] t +[e (0) ] t E l−n [P R J (0) ] −1 E k t [M (0) ] −1 , (e) determining a number of different bits d (1) where d (1) =HammingWeight([e (0) ] t +E j P (0) )+J, (f) repeating (a)˜(d) an estimated number of times in order to ensure a high probability of successful decoding, and (g) outputting r that corresponds to the smallest value of d; and with a processor, employing a discrete logarithm technique to obtain the location of s in r.