IP Library › Granted Patent US 8,769,301
Granted Patent B2
US 8,769,301 · App. 13/193,575 · Granted Jul 1, 2014

Product authentication based upon a hyperelliptic curve equation and a curve pairing function

Inventor: Ning Shang (Encinitas, CA)
Assignee: QUALCOMM Incorporated
G06F21/10
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,769,301
App. No.
13/193,575
Granted
Jul 1, 2014
Kind
B2
Abstract

Disclosed is a method, system, and device to authenticate a product. A plurality of public parameters and a secret master key are selected. The public parameters include a hyperelliptic curve equation and a curve pairing function. A public product activation code and a private product activation code are generated based upon the public parameters and the secret master key. The public parameters and the public product activation code are stored with the product. Further, the private product activation code is associated with the product. The product is authenticated if the private product activation code entered to a client device satisfies a mathematical formula implemented with the public parameters and the public product activation code.

Claims (62)

1. 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.

2. The method of claim 1 , wherein the product is a software product purchased by a user or provided to the user and the private product activation code is provided to the user.

3. The method of claim 1 , wherein the product is a software product and the software product and the private product activation code are transmitted to a user.

4. The method of claim 1 , wherein the product is a storage media product that stores software that is purchased or provided to a user and the private product activation code is displayed in packaging associated with the storage media product.

5. The method of claim 1 , wherein the private product activation code is a reduced activation code.

6. The method of claim 1 , wherein the hyperelliptic curve equation is determined such that an efficiently computable curve pairing function is defined for the Jacobian of the curve.

7. The method of claim 1 , wherein the secret master key is a randomly chosen number.

8. The method of claim 1 , wherein the public product activation code is an encoding of information of 2N bits, where the level of security provided by the method is equivalent to an N-bit symmetric key.

9. A non-transitory computer-readable storage medium to store code executable by a computer to authenticate a product comprising code for:

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.

10. The non-transitory computer-readable storage medium of claim of 9 , wherein the product is a software product purchased by a user or provided to the user and the private product activation code is provided to the user.

11. The non-transitory computer-readable storage medium of claim of 9 , wherein the product is a software product and the software product and the private product activation code are transmitted to a user.

12. The non-transitory computer-readable storage medium of claim of 9 , wherein the product is a storage media product that stores software that is purchased or provided to a user and the private product activation code is displayed in packaging associated with the storage media product.

13. The non-transitory computer-readable storage medium of claim of 9 , wherein the private product activation code is a reduced activation code.

14. The non-transitory computer-readable storage medium of claim of 9 , wherein the hyperelliptic curve equation is determined such that an efficiently computable curve pairing function is defined for the Jacobian of the curve.

15. The non-transitory computer-readable storage medium of claim of 9 , wherein the secret master key is a randomly chosen number.

16. The non-transitory computer-readable storage medium of claim of 9 , wherein the public product activation code is an encoding of information of 2N bits, where the level of security provided by the method is equivalent to an N-bit symmetric key.

17. A product authenticator machine comprising:

a hardware processor to implement:

a system initiator to select 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; and

a code generator to:

generate 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;

store the public parameters and the public product activation code with the product; and

associate the private product activation code with the product, wherein the curve pairing function is utilized in authenticating the product and the curve pairing function is not secret.

18. The product authenticator machine of claim 17 , wherein a client device including a code verifier authenticates the product if the private product activation code entered satisfies a mathematical formula implemented with the public parameters and the public product activation code.

19. The product authenticator machine of claim 17 , wherein the product is a software product purchased by a user or provided to the user and the private product activation code is provided to the user.

20. The product authenticator machine of claim 17 , wherein the product is a software product and the software product and the private product activation code are transmitted to a user.

21. The product authenticator machine of claim 17 , wherein the product is a storage media product that stores software that is purchased or provided to a user and the private product activation code is displayed in packaging associated with the storage media product.

22. The product authenticator machine of claim 17 , wherein the private product activation code is a reduced activation code.

23. The product authenticator machine of claim 17 , wherein the hyperelliptic curve equation is determined such that an efficiently computable curve pairing function is defined for the Jacobian of the curve.

24. The product authenticator machine of claim 17 , wherein the secret master key is a randomly chosen number.

25. A product authenticator comprising:

means for 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;

means for 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;

means for storing the public parameters and the public product activation code with the product; and

means for associating the private product activation code with the product, wherein the curve pairing function is utilized in authenticating the product and the curve pairing function is not secret.

26. The product authenticator of claim 25 , wherein a client device includes means for authenticating the product if the private product activation code entered satisfies a mathematical formula implemented with the public parameters and the public product activation code.

27. The product authenticator of claim 25 , wherein the product is a software product purchased by a user or provided to the user and the private product activation code is provided to the user.

28. The product authenticator of claim 25 , wherein the product is a software product and the software product and the private product activation code are transmitted to a user.

29. The product authenticator of claim 25 , wherein the product is a storage media product that stores software that is purchased or provided to a user and the private product activation code is displayed in packaging associated with the storage media product.

30. The product authenticator of claim 25 , wherein the hyperelliptic curve equation is determined such that an efficiently computable curve pairing function is defined for the Jacobian of the curve.

31. A non-transitory computer-readable storage medium to store code executable by a computer to authenticate a product comprising code for:

reading a public product activation code and public parameters; and

authenticating the product if a private product activation code satisfies a mathematical formula implemented with the public parameters and the public product activation code, 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;

wherein the public parameters include a hyperelliptic curve equation and a curve pairing function, wherein the curve pairing function is not secret,

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.

32. The non-transitory computer-readable storage medium-of claim 31 , wherein the product is a software product purchased by the user or provided to the user and the private product activation code is entered by the user.

33. The non-transitory computer-readable storage medium of claim 31 , wherein the product is a software product and the software product and the private product activation code are transmitted to the user.

34. The non-transitory computer-readable storage medium of claim 31 , wherein the product is a storage media product that stores software that is purchased or provided to the user and the private product activation code is displayed in packaging associated with the storage media product.

35. The non-transitory computer-readable storage medium of claim 31 , wherein the private product activation code is a reduced activation code.

36. The non-transitory computer-readable storage medium of claim 31 , wherein the hyperelliptic curve equation is determined such that an efficiently computable curve pairing function is defined for the Jacobian of the curve.

37. The non-transitory computer-readable storage medium of claim 31 , wherein the public product activation code is an encoding of information of 2N bits, where the level of security provided by the method is equivalent to an N-bit symmetric key.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 12, 2011
From: SHANG, NING
To: QUALCOMM INCORPORATED
Reel/Frame 026745/0346 →
Continuity (1)
Related Publication 20130031373A1 · Jan 31, 2013