Patent ID: 8769301

Claim:
A method to authenticate a product comprising: selecting a secret master key and a plurality of public parameters including a hyperelliptic curve equation and a curve pairing function, wherein the hyperelliptic curve equation is over a finite field and is chosen such that the curve pairing function is of the form G 1 ×G 2 →G T with G 1 and G 2 being related to the Jac(hyperelliptic curve equation, finite field) and G T being related to the finite field; generating a public product activation code and a private product activation code based upon the public parameters and the secret master key, wherein the private product activation code is chosen a priori as an encoding of information of N bits, and the public product activation code is derived from the private product activation code; storing the public parameters and the public product activation code with the product; associating the private product activation code with the product; and authenticating the product if the private product activation code entered satisfies a mathematical formula implemented with the public parameters including the hyperelliptic curve equation and the curve pairing function and the public product activation code, wherein the curve pairing function is not secret.