IP Library Granted Patent US 7,491,122
Granted Patent B2
US 7,491,122 · App. 10/616,459 · Granted Feb 17, 2009

Gaming machine having targeted run-time software authentication

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 7,491,122
App. No.
10/616,459
Granted
Feb 17, 2009
Kind
B2
Abstract

A gaming machine that authenticates its gaming software substantially continuously and repetitiously while the gaming machine is powered on. A processor, while running the gaming machine's gaming program, determines whether the data in each of a plurality of memories is authentic. The processor may read multiple memories in a parallel fashion while making memory contents authenticity determinations. The processor may also read multiple memories in a serial fashion while making memory contents authenticity determinations. The processor may also read same memories in a parallel fashion and read other memories in a serial fashion while determining the authenticity of each memory's contents. Furthermore, the contents of a memory may be analyzed to decipher between executable data and graphics data such that the executable data's authenticity is determined more often than the graphics data's authenticity.

Claims (50)

1. A method of authenticating memory devices' data within a gaming machine while said gaming machine is operating, said memory devices' data being authenticated substantially in parallel, said method of authenticating comprising:

reading a next predetermined amount of data from a first memory device storing executable code for operating a wagering game on said gaming machine and graphic data accessed by said executable code to display graphics of said wagering game on a display of said gaming machine;

determining if the next predetermined amount of data is executable code or graphic data;

if said next predetermined amount of data is graphic data, then reading a next predetermined amount of data, without authenticating the graphic data;

if said next predetermined amount of data is executable code, then authenticating said executable code; and

wherein the above steps are repeated substantially continuously while said gaming machine is operating.

2. The method of claim 1 , wherein the method of claim 1 is repeated until said executable code cannot be authenticated.

3. The method of claim 1 , wherein said next predetermined amount of data is a file.

4. The method of claim 1 , wherein said first memory device is a volatile memory device containing a gaming machine program.

5. The method of claim 1 , wherein if said next predetermined amount of data is said graphic data then determining whether a predetermined amount of events have passed, and wherein if said predetermined amount of events have passed then overriding reading the next predetermined amount of data without authenticating the graphic data and authenticating said graphic data.

6. The method of claim 1 , further comprising:

reading a next second-predetermined amount of data from a second memory device; and determining whether said next-second predetermined amount of data is authentic;

repeating said reading said next second-predetermined amount of data from the second memory device step and said determining whether said next second-predetermined amount of data step continuously while said gaming machine is operating, wherein said reading said next predetermined amount of data step and said reading said next second-predetermined amount of data step are is performed substantially in parallel.

7. The method of claim 1 , further comprising

reading a next second-predetermined amount of data from a second memory device;

calculating a hash message digest with said next second-predetermined amount of data; and determining whether all data from said second memory device has been read;

if all data from said second memory device has not been reads then repeating said reading a next second-predetermined step, calculating step and determining whether steps again;

if all data from said second memory device has been read, then using said calculated hash message digest to authenticate the data in said second memory;

wherein said reading said next predetermined amount of data and said reading said next second-predetermined amount of data is performed substantially in parallel.

8. The method of claim 1 , wherein authentication of said memory devices' data is performed repetitiously within a predetermined amount of time.

9. The method of claim 8 wherein said predetermined amount of time is an amount of time that is less than 24 hours.

10. A method of authenticating data within at least one memory of a gaming machine while the gaming machine is executing a wagering game, said at least one memory storing executable code for operating said wagering game and graphics data accessed by said executable code to display graphics of said wagering game on a display of said gaming machine, said method comprising:

(a) determining if a next predetermined amount of data from said memory is executable code or graphics data;

(b) if said next predetermined amount of data is executable code, then authenticating said executable code and returning to step (a); and

(c) if said next predetermined amount of data is graphics data and a predetermined condition has been met, then authenticating said graphics data and returning to step (a); and if said next predetermined amount of data is graphics data and said predetermined condition has not been met, then returning to step (a) without authenticating said graphics data.

11. The method of claim 10 , wherein said predetermined condition occurs at predetermined intervals, after a predetermined number of events, or after a predetermined number of times for authenticating said executable code.

12. The method of claim 10 , wherein said next predetermined amount of data is a file.

13. The method of claim 12 , wherein data file has an associated verification code.

14. The method of claim 13 , wherein the associated verification code is a digital signature.

15. The method of claim 10 , wherein said at least one memory device is a volatile memory device.

16. The method of claim 10 , further including reading said next predetermined amount of data prior to said determining step.

17. The method of claim 16 , wherein the authenticating of said executable code includes performing a hash calculation on said read data, said hash calculation providing a result that is used in authenticating said executable code.

18. A method of authenticating data within at least one memory of a gaming machine, said at least one memory storing executable code for operating a wagering game on said gaming machine and graphics data accessed by said executable code to display graphics of said wagering game on a display of said gaming machine, said method comprising:

(a) while said gaming machine is booting up, authenticating both the executable code and the graphics data; and

(b) while said gaming machine is executing said a wagering game after booting up:

(i) determining if a next predetermined amount of data from said memory is executable code or graphics data;

(ii) if said next predetermined amount of data is executable code, then authenticating said executable code and returning to step (i); and

(iii) if said next predetermined amount of data is graphics data and a predetermined condition has been met, then authenticating said graphics data and returning to step (i); and if said next predetermined amount of data is graphics data and said predetermined condition has not been met, then returning to step (i) without authenticating said graphics data.

19. The method of claim 18 , wherein said predetermined condition occurs at predetermined intervals, after a predetermined number of events, or after a predetermined number of times for authenticating said executable code.

20. The method of claim 18 , wherein said at least one memory device is a volatile memory device.

21. The method of claim 18 , further including reading said next predetermined amount of data prior to said determining step.

22. The method of claim 21 , wherein the authenticating of said executable code includes performing a hash calculation on said read data, said hash calculation providing a result that is used in the authenticating of said executable code.

23. The method of claim 22 , wherein the next predetermined amount of data is a file having an associated verification code.

24. The method of claim 23 , wherein the associated verification code is a digital signature.

25. A method of authenticating data within at least one memory of a gaming machine, said at least one memory storing executable code for operating a wagering game on said gaming machine and graphics data accessed by said executable code to display graphics of said wagering game on a display of said gaming machine, said method comprising:

(a) while said gaming machine is booting up, authenticating both the executable code and the graphics data; and

(b) while said gaming machine is executing said a wagering game after booting up, authenticating said executable code at a first frequency and authenticating said graphics data at a second frequency, said first frequency being greater than said second frequency.

26. The method of claim 25 , wherein said second frequency is based on a predetermined condition, said predetermined condition occurring at predetermined intervals, after a predetermined number of events, or after a predetermined number of times for authenticating said executable code.

27. The method of claim 25 , wherein the data file has an associated verification code.

28. The method of claim 27 , wherein the associated verification code is a digital signature.

Assignments (9)
RELEASE OF SECURITY INTEREST Recorded Apr 21, 2022
From: BANK OF AMERICA, N.A.
To: SCIENTIFIC GAMES INTERNATIONAL, INC.; WMS GAMING INC.; BALLY GAMING, INC.; DON BEST SPORTS CORPORATION
Reel/Frame 059756/0397 →
CHANGE OF NAME Recorded Jan 20, 2020
From: BALLY GAMING, INC.
To: SG GAMING, INC.
Reel/Frame 051643/0253 →
RELEASE OF SECURITY INTEREST IN PATENTS (RELEASES REEL/FRAME 034530/0318) Recorded Nov 5, 2018
From: DEUTSCHE BANK TRUST COMPANY AMERICAS
To: SCIENTIFIC GAMES INTERNATIONAL, INC.; BALLY GAMING, INC.; WMS GAMING INC.
Reel/Frame 047924/0701 →
SECURITY AGREEMENT Recorded Apr 11, 2018
From: SCIENTIFIC GAMES INTERNATIONAL, INC.; BALLY GAMING, INC.
To: DEUTSCHE BANK TRUST COMPANY AMERICAS, AS COLLATERAL AGENT
Reel/Frame 045909/0513 →
SECURITY AGREEMENT Recorded Dec 15, 2017
From: SCIENTIFIC GAMES INTERNATIONAL, INC.; BALLY GAMING, INC.
To: DEUTSCHE BANK TRUST COMPANY AMERICAS, AS COLLATERAL AGENT
Reel/Frame 044889/0662 →
MERGER Recorded Jul 29, 2015
From: WMS GAMING INC.
To: BALLY GAMING, INC.
Reel/Frame 036225/0048 →
SECURITY AGREEMENT Recorded Dec 4, 2014
From: BALLY GAMING, INC; SCIENTIFIC GAMES INTERNATIONAL, INC; WMS GAMING INC.
To: DEUTSCHE BANK TRUST COMPANY AMERICAS, AS COLLATERAL AGENT
Reel/Frame 034530/0318 →
SECURITY AGREEMENT Recorded Dec 18, 2013
From: SCIENTIFIC GAMES INTERNATIONAL, INC.; WMS GAMING INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 031847/0110 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 9, 2003
From: RYAN, CHAD A.
To: WMS GAMING INC.
Reel/Frame 014295/0456 →