IP Library › Granted Patent US 8,166,308
Granted Patent B2
US 8,166,308 · App. 11/779,651 · Granted Apr 24, 2012

System and method for authenticating a gaming device

Assignee: Certicom Corp.
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,166,308
App. No.
11/779,651
Granted
Apr 24, 2012
Kind
B2
Abstract

A method and system are provided for authenticating and securing an embedded device using a secure boot procedure and a full non-volatile memory encryption process that implements Elliptic Curve Pinstov-Vanstone Signature (ECPV) scheme with message recovery on a personalized BIOS and master boot record. The signature includes code that is recovered in order to unlock a key that is in turn used to decrypt the non-volatile memory. The use of ECPVS provides an implicit verification that the hardware is bound to the BIOS since the encrypted memory is useless unless properly decrypted with the proper key.

Claims (139)

1. A method for securing content for use in operating a device, the method comprising:

designating a first content portion and a second content portion;

storing a first value on said device;

generating a first signature on said first content portion, said first signature comprising a first signature component which encrypts a second value such that said first value is required to decrypt said second value from said first signature component;

generating a second signature on said second content portion, said second signature comprising a second signature component which encrypts said second value such that said second value encrypted in said second signature component is required to decrypt said second value encrypted in said second signature component; and

if a third content portion is added to said device, generating a third signature on said third content portion, said third signature comprising a third signature component which encrypts said second value such that said second value recovered from said signature component is required to decrypt said second value encrypted in said third signature component.

2. The method according to claim 1 wherein each said signature is an Elliptic Curve Pintsov-Vanstone (ECPV) signature with the respective portion being a visible message, and with the respective one of said values being a hidden portion in accordance with an ECPV protocol, wherein the first and second values are sued to generate decryption keys for recovering the hidden portions.

3. The method according to claim 1 wherein said device comprises a hardware board having a BIOS and a hard disk, the hard disk comprising said content portions.

4. The method according to claim 3 comprising storing said first value in said BIOS.

5. The method according to claim 1 , further comprising:

designating said first content portion as an entry module in a component comprising said first and second content portions, wherein said first value is obtained from said device;

designating either said third content portion or another content portion added to said device as an end module in said component, wherein a signature on said end module encrypts an intermediate value such that said second value recovered from a corresponding signature component of a previous signed content portion is required to decrypt said intermediate value; and

providing said intermediate value to be used as a new first value for another component used in operating said device.

6. The method according to claim 1 wherein said device is a gaming machine.

7. The method according to claim 1 , further comprising generating a component manifest indicating in which order content portions other than said first content portion are to be verified, wherein if said third content portion is added, said component manifest is updated.

8. The method according to claim 1 , further comprising generating an authentication code using said content and storing said authentication code in memory for later comparison during a boot-up procedure.

9. The method according to claim 8 , wherein said authentication code is generated by applying a keyed-hash function to said content.

10. A method for authenticating content to be used in operating a device, the method comprising:

obtaining a first value stored on said device;

obtaining a first signature on a first content portion, said first signature comprising a first signature component which encrypts a second value such that said first value is required to decrypt said second value from said first signature component;

recovering said second value by decrypting said first signature component using said first value;

obtaining a second signature on a second content portion, said signature comprising a second signature component which encrypts said second value such that said second value recovered from said first signature component is required to decrypt said second value encrypted in said second signature component;

recovering said second value encrypted in said second signature component by decrypting said second signature component using said second value recovered from said first signature component;

if one or more third content portions have been added to said device, obtaining one or more third signatures comprising respective signature components which encrypt said second value such that said second value recovered from a previous signature component is required to decrypt said second value encrypted in said respective signature component, and recovering said second value encrypted in said respective signature component by decrypting said respective signature component; and

authenticating said content by comparing a final value recovered from a signature component on a last of said second or one or more third content portions with a stored value.

11. The method according to claim 10 wherein each said signature is an Elliptic Curve Pintsov-Vanstone (EPCV) signature with the respective content portion being a visible message, and with the respective one of said values being a hidden portion in accordance with an ECPV protocol, wherein the first and second values are used to generate decryption keys for recovering the hidden portions.

12. The method according to claim 10 wherein said device comprises a hardware board having a BIOS and a hard disk, the hard disk comprising said content portions.

13. The method according to claim 12 obtaining said first value from said BIOS.

14. The method according to claim 10 , further comprising:

obtaining said first value from said device, wherein said first content portion has been designated as a entry module in a component comprising said content portions; and

providing said final value to be used as a new first value for another component used in operating said device, wherein said last of said content portions has been designated as an end module in said component, wherein said signature component on said last of said content portions encrypts said final value such that said second value recovered from a corresponding signature component of a previous signed content portion is required to decrypt said final value.

15. The method according to claim 14 , further comprising utilizing a selected one of said values to derive a key for a keyed hash function, and applying said keyed hash function to one of said components to obtain an authentication code to be used to authenticate said one of said components subsequently.

16. The method according to claim 10 , further comprising utilizing a selected one of said values to derive a key for a keyed hash function, and applying said keyed hash function to one of said components to obtain an authentication code to be used to authenticate said one of said components subsequently.

17. The method according to claim 10 wherein said device is a gaming machines.

18. The method according to claim 10 , further comprising using a component manifest to determine in which order content portions other than said first content portion are to be verified, wherein if said one or more third content portions have been added, said component manifest is updated.

19. The method according to claim 10 , further comprising generating an authentication code on said content and comparing said authentication code to a stored authentication code.

20. The method according to claim 19 , wherein said authentication code is generated by applying a keyed-hash function to said content.

21. A method for downloading a new content portion to be added to content used in operating a device, said method comprising:

obtaining a first signature on a first content portion used in operating said device, said first signature comprising a signature component which encrypts an intermediate value such that said intermediate value can be recovered using a value stored on said device;

recovering said intermediate value from said first signature on said first content portion using said value stored on said device;

obtaining a second signature on said new content portion, said second signature comprising a second signature component which encrypts said intermediate value such that said intermediate value encrypted in said first content portion is required to decrypt said intermediate value encrypted in said second signature component;

using said intermediate value recovered from said first signature to decrypt said intermediate value encrypted in said second signature component;

obtaining a third signature on a second content portion, said third signature comprising a third signature component which encrypts a next value such that said intermediate value encrypted in said second content portion is required to decrypt said next value encrypted in said third signature component;

using said intermediate value recovered from said second signature component to decrypt said next value from said third signature component;

using said next value as a key for a keyed hash function, and applying keyed hash function to another content portion to obtain an authentication code; and

comparing said authentication code to a stored authentication code previously generated using said other component to authenticate said new content portion.

22. A non-transitory computer readable medium comprising computer executable instruction for securing content for use in operating a device, the computer executable instruction comprising instructions for:

designating a first content portion and a second content portion;

storing a first value on said device;

generating a first signature on said first content portion, said signature comprising a first signature component which encrypts a second value such that said first value is required to decrypt said second value from said first signature component;

generating a second signature on said second content portion, said second signature comprising a second signature component which encrypts said second value such that said second value encrypted in said second signature component is required to decrypt said second value encrypted in said second signature component; and

if a third content portion is added to said device, generating a third signature on said third content portion, said third signature comprising a third signature component which encrypts said second value such that said second value recovered from said signature component is required to decrypt said second value encrypted in said third signature component.

23. The non-transitory computer readable medium according to claim 22 , wherein each signature is an Elliptic Curve Pintsov-Vanstone (ECPV) signature with the respective content portion being a visible message, and the respective one of said values being a hidden portion in accordance with an ECPV protocol, wherein the first and second values are used to generate decryption keys for recovering the hidden portions.

24. The non-transitory computer readable medium according to claim 22 , wherein said device comprises a hardware board having a BIOS and a hard disk, the hard disk comprising said content portions.

25. The non-transitory computer readable medium according to claim 24 , further comprising instructions for storing said first value in said BIOS.

26. The non-transitory computer readable medium according to claim 22 , further comprising instructions for:

designating said first content portion as an entry module in component comprising said first and second content portions, wherein said first value is obtained from said device;

designating either said third content portion or another content portion added to said device as an end module in said component, wherein a signature on said end module encrypts an intermediate value such that said second value recovered from a corresponding signature component of a previous signed content portion is required to decrypt said intermediate value; and

providing said intermediate value to be used as a new first value for another component used in operating said device.

27. The non-transitory computer readable medium according to claim 22 , wherein said device is a gaming machine.

28. The non-transitory computer readable medium according to claim 22 , further comprising instructions for generating a component manifest indicating in which order content portions other than said first content portion are to be verified, wherein if said third content portion is added, said component manifest is updated.

29. The non-transitory computer readable medium according to claim 22 , further comprising instructions for generating an authentication code using said content and storing said authentication code in memory for later comparison during a boot-up procedure.

30. The non-transitory computer readable medium according to claim 29 , wherein said authentication code is generated by applying a keyed-hash function to said content.

31. A non-transitory computer readable medium comprising computer executable instructions for authenticating content to be used in operating a device, said computer executable instructions comprising instructions for:

obtaining a first value stored on said device;

obtaining a first signature on a first content portion, said signature comprising a first signature component which encrypts a second value such that said first value is required to decrypt said second value from said first signature component;

recovering said second value by decrypting said first signature component using said first value;

obtaining a second signature on a second content portion, said second signature comprising a second signature component which encrypts said second value such that said second value recovered from said fist signature component is required to decrypt said second value encrypted in said second signature component;

recovering said second value encrypted in said second signature component by decrypting said second signature component using said second value recovered from said first signature component;

if one or more third content portion have been added to said device, obtaining one or more third signatures comprising respective signature components which encrypt said second value such that said second value recovered from a previous signature component is required to decrypt said second value encrypted in said respective signature component, and recovering said second value encrypted in said respective signature component by decrypting said respective signature component; and

authenticating said content by comparing a final value recovered from a signature component on a last of said second or one or more third content portions with a stored value.

32. The non-transitory computer readable medium according to claim 31 , wherein each signature is an Elliptic Curve Pintsov-Vanstone (ECPV) signature with the respective content portion being a visible message, and with the respective one of said values being a hidden portion in accordance with an ECPV protocol, wherein the first and second values are used to generate decryption keys for recovering the hidden portions.

33. The non-transitory computer readable medium according to claim 31 , wherein said device comprises a hardware board having a BIOS and a hard disk, the hard disk comprising said content portions.

34. The non-transitory computer readable medium according to claim 33 , further comprising instructions for obtaining said first value from said BIOS.

35. The non-transitory computer readable medium according to claim 31 , further comprising instructions for:

obtaining said first value from said device, wherein said first content portion has been designated as an entry module in a component comprising said content portions; and

providing said final value to be used as a new first value for another component used in operating said device, wherein said last of said content portions has been designated as an end module in said component, wherein said signature component on said last of said content portions encrypts said final value such that said second value recovered from corresponding signature component of a previous singed content portion is required to decrypt said final value.

36. The non-transitory computer readable medium according to claim 35 , further comprising instructions for utilizing a selected one of said values to derive a key for a keyed hash function, and applying said keyed hash function to one or said components to obtain an authentication code to be used to authenticate said one of said components subsequently.

37. The non-transitory computer readable medium according to claim 31 , further comprising instructions for utilizing a selected one of said values to derive a key for a keyed hash function, and applying said keyed hash function to one of said components to obtain an authentication code to be used to authenticate said one of said components subsequently.

38. The non-transitory computer readable medium according to claim 31 , wherein said device is a gaming machine.

39. The non-transitory computer readable medium according to claim 31 , further comprising instructions for using a component manifest to determine in which order content portions other than said first content portion are to be verified, wherein if said one or more third content portions have been added, said component manifest is updated.

40. The non-transitory computer readable medium according to claim 31 , further comprising instructions for generating an authentication code on said content and comparing said authentication code to a stored authentication code.

41. The non-transitory computer readable medium according to claim 40 , wherein said authentication code is generated by applying a keyed-hash function to said content.

42. A non-transitory computer readable medium comprising computer executable instructions for:

downloading a new content portion to be added to content used in operating a device, said computer executable instructions comprising instructions for:

obtaining a first signature on a first content portion used in operating said device, said first signature comprising a signature component which encrypts an intermediate value such that said intermediate value can be recovered using a value stored on said device;

recovering said intermediate value from said first signature on said first content portion using said value stored on said device;

obtaining a second signature on said new content portion, said second signature comprising a second signature component which encrypts said intermediate value such that said intermediate value encrypted in said first content portion is required to decrypt said intermediate value encrypted in said second signature component;

using said intermediate value recovered from said first signature to decrypt said intermediate value encrypted in said second signature component;

obtaining a third signature on a second content portion, said third signature comprising a third signature component which encrypts a next value such that said intermediate value encrypted in said second content portion is required to decrypt said next value encrypted in said third signature component;

using said intermediate value recovered from said second signature component to decrypt said next value from said third signature component;

using said next value as a key for a keyed hash function, and applying said keyed hash function to another content portion to obtain an authentication code; and

comparing said authentication code to a stored authentication code previously generated using said other component to authenticate said new content portion.

43. A device comprising a processor and a memory, said processor operable for securing content stored in said memory for use in operating said device by executing computer executable instructions comprising instruction for:

designating a first content portion and a second content portion;

storing a first value on said device;

generating a first signature on said first content portion, said first signature comprising a first signature component which encrypts a second value such that said first value is required to decrypt said second value from said first signature component;

generating a second signature on said second content portion, said second signature comprising a second signature component with encrypts said second value such that said second value encrypted in said second signature component is required to decrypt said second value encrypted in said second signature component; and

if a third content portion is added to said device, generating a third signature on said third content portion, said third signature comprising a third signature component which encrypts said second value such that said second value recovered from said signature component is required to decrypt said second value encrypted in said third signature component.

44. The device according to claim 43 , wherein each signature is an Elliptic Curve Pintsov-Vanstone (ECPV) signature with the respective content portion being a visible message, and the respective one of said values being a hidden portion in accordance with and ECPV protocol, wherein the first and second values are used to generate decryption keys for recovering the hidden portions.

45. The device according to claim 43 , wherein said device further comprises a hardware board having a BIOS and a hard disk, the hard disk comprising said content portions.

46. The device according to claim 45 , wherein the device is further operable to execute instructions comprising instructions for storing said first value in said BIOS.

47. The device according to claim 43 , wherein the device is further operable to execute instructions comprising instructions for:

designating said first content portion as an entry module in a component comprising said first and second content portions, wherein said first value is obtained from said device;

designating either said third content portion or another content portion added to said device as an end module in said component, wherein a signature on said end module encrypts an intermediate value such that said second value recovered from a corresponding signature component of a previous signed content portion is required to decrypt said intermediate value; and

providing said intermediate value to be used as a new first value for another component used in operating said device.

48. The device according to claim 43 , wherein said device is a gaming machine.

49. The device according to claim 43 , wherein the device is further operable to execute instructions comprising instructions for generating a component manifest indicating in which order content portions other than said first content portion are to be verified, wherein if said third content portion is added, said component manifest is updated.

50. The device according to claim 43 , wherein the device is further operable to execute instructions comprising instructions for generating an authentication code using said content and storing said authentication code in memory for later comparison during a boot-up procedure.

51. The device according to claim 50 , wherein said authentication code is generated by applying a keyed-hash function to said content.

52. A device comprising a processor and a memory, said processor operable for authenticating content to be used in operating said device by executing computer executable instructions comprising instructions for:

obtaining a first value stored on said device;

obtaining a first signature on a first content portion, said first signature comprising a first signature component which encrypts a second value such that said first value is required to decrypt said second value from said first signature component;

recovering said second value by decrypting said first signature component using said first value;

obtaining a second signature on a second content portion, said second signature comprising a second signature component which encrypts said second value such that said second value recovered from said first signature component is required to decrypt said second value encrypted in said second signature component;

recovering said second value encrypted in said signature component by decrypting said second signature component using said second value recovered from said first signature component;

if one or more third content portions have been added to said device, obtaining one or more third signatures comprising respective signature components which encrypt said second value such that said second value recovered from a previous signature component is required to decrypt said second value encrypted is said respective signature component, and recovering said second value encrypted in said respective signature component by decrypting said respective signature component; and

authenticating said content by comparing a final value recovered from a signature component on a last of said second or one or more third content portions with a stored value.

53. The device according to claim 52 , wherein each signature is an Elliptic Curve Pintsov-Vanstone (ECPV) signature with the respective content portion being a visible message, and with the respective one of said values being a hidden portion in accordance with an ECPV protocol, wherein the first and second values are used to generate decryption keys for recovering the hidden portions.

54. The device according to claim 52 , wherein said device further comprises a hardware board having a BIOS and a hard disk, the hard disk comprising said content portions.

55. The device according to claim 54 , wherein the device is further operable to execute instructions comprising instructions for obtaining said first value from said BIOS.

56. The device according to claim 52 , wherein the device is further operable to execute instructions comprising instructions for:

obtaining said first value from said device, wherein said first content portion has been designated as an entry module in a component comprising said content portions; and

providing said final value to be used as a new first value for another component used in operating said device, wherein said last of said content portions has been designated as an end module in said component, wherein said signature component on said last of said content portions encrypts said final value such that said second value recovered from a corresponding signature component of a previous signed content portion is required to decrypt said final value.

57. The device according to claim 56 , wherein the device is further operable to execute instructions comprising instructions for utilizing a selected one of said values to derive a key for a keyed hash function, and applying said keyed hash function to one of said components to obtain an authentication code to be used to authenticate said one of said components subsequently.

58. The device according to claim 52 , wherein the device is further operable to execute instructions comprising instructions for utilizing a selected one of said values to derive a key for a keyed hash function, and applying said keyed hash function to one of said components to obtain an authentication code to be used to authenticate said one of said components subsequently.

59. The device according to claim 52 , wherein said device is a gaming machine.

60. The device according to claim 52 , wherein the device is further operable to execute instructions comprising instructions for using a component manifest to determine in which order content portions other than said first content portion are to be verified, wherein if said one or more third content portions have been added, said component manifest is updated.

61. The device according to claim 52 , wherein the device is further operable to execute instructions comprising instructions for generating an authentication code on said content and comparing said authentication code to a stored authentication code.

62. The device according to claim 61 , wherein said authentication code is generated by applying a keyed-hash function to said content.

63. A device comprising a processor and a memory, said processor operable for downloading a new content portion to be added to content used in operating said device by executing computer executable instructions comprising instructions for:

obtaining a first signature on a first content portion used in operating said device, said first signature comprising a signature component which encrypts an intermediate value such that said intermediate value can be recovered using a value stored on said device;

recovering said intermediate value from said first signature on said first content portion using said value stored on said device;

obtaining a second signature on said new content portion, said second signature comprising a second signature component which encrypts said intermediate value such that said intermediate value encrypted in said first content portion is required to decrypt said intermediate value encrypted in said second signature component;

using said intermediate value recovered from said first signature to decrypt said intermediate value encrypted in said second signature component;

obtaining a third signature on a second content portion, said third signature comprising a third signature component which encrypts a next value such that said intermediate value encrypted in said second content portion is required to decrypt said next value encrypted in said third signature component;

using said intermediate value recovered from said second signature component to decrypt said next value from said third signature component;

using said next value as a key for a keyed hash function, and applying said keyed hash function to another content portion to obtain an authentication code; and

comparing said authentication code to be stored authentication code previously generated using said other component to authenticate said new content portion.

Assignments (8)
CORRECTIVE ASSIGNMENT TO CORRECT THE ADDED PATENT NUMBER TO REMOVE PATENT NO. 8,873,407 AT PREVIOUSLY RECORDED ON REEL 64066 FRAME 1. ASSIGNOR(S) HEREBY CONFIRMS THE NUNC PRO TUNC ASSIGNMENT EFFECTIVE DATE MARCH 20, 2023. Recorded Feb 2, 2026
From: BLACKBERRY LIMITED
To: MALIKIE INNOVATIONS LIMITED
Reel/Frame 074921/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT 12817157 APPLICATION NUMBER PREVIOUSLY RECORDED AT REEL: 064015 FRAME: 0001. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Sep 5, 2023
From: OT PATENT ESCROW, LLC
To: MALIKIE INNOVATIONS LIMITED
Reel/Frame 064807/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE COVER SHEET AT PAGE 50 TO REMOVE 12817157 PREVIOUSLY RECORDED ON REEL 063471 FRAME 0474. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Sep 5, 2023
From: BLACKBERRY LIMITED
To: OT PATENT ESCROW, LLC
Reel/Frame 064806/0669 →
NUNC PRO TUNC ASSIGNMENT Recorded Jun 19, 2023
From: BLACKBERRY LIMITED
To: MALIKIE INNOVATIONS LIMITED
Reel/Frame 064066/0001 →
NUNC PRO TUNC ASSIGNMENT Recorded Jun 16, 2023
From: OT PATENT ESCROW, LLC
To: MALIKIE INNOVATIONS LIMITED
Reel/Frame 064015/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 27, 2023
From: BLACKBERRY LIMITED
To: OT PATENT ESCROW, LLC
Reel/Frame 063471/0474 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 2, 2019
From: CERTICOM CORP.
To: BLACKBERRY LIMITED
Reel/Frame 050610/0937 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 27, 2007
From: SMITH, KEELAN; VANSTONE, SOCTT A.; BROWN, DANIEL R.; PARISIEN, DARRYL L.; VADEKAR, ASHOK; NEILL, BRIAN
To: CERTICOM CORP.
Reel/Frame 019885/0337 →
Continuity (3)
Provisional Application 60831472 · Jul 18, 2006
Provisional Application 60885073 · Jan 16, 2007
Related Publication 20080028235A1 · Jan 31, 2008