Claims
- 1. A method of authenticating a memory devices contents within a gaming machine during a boot-up operation or after a reset operation, said method of authenticating comprising:
reading a next predetermined amount of data from a memory device; calculating a data hash value using said next predetermined amount of data; emulating an operating system's file system and determining to which file, of a plurality of files, said next predetermined amount of data belongs; calculating a file hash value, using said next predetermined amount of data, for the file to which said next predetermined amount of data belongs; determining whether said file to which said next predetermined amount of data belongs is valid when said predetermined amount of data completes the calculating of said file hash value for said file; determining whether all data in said memory device is valid after a last predetermined amount of data from said memory device is read and the calculating of said data hash value is completed.
- 2. The method of claim 1, wherein the method of claim 1 is repeated until said last predetermined amount of data is read from said memory device.
- 3. The method of claim 1, wherein the method of claim 1 is repeated until one of said plurality of files is determined to not be valid.
- 4. The method of claim 1, wherein said predetermined amount of data is a byte of data.
- 5. The method of claim 1, wherein said memory device is a flash memory.
- 6. The method of claim 1, wherein after calculating said data hash value said method further comprises determining whether said predetermined amount of data belongs to one of said plurality of files.
- 7. The method of claim 1, further comprising repeating the steps of reading the next predetermined amount of data and calculating a data hash value until it is determined that said next predetermined amount of data belongs to one of said plurality of files.
- 8. The method of claim 1, wherein said plurality of files are stored contiguously in said memory device.
- 9. In a gaming machine, a method of authenticating a media device including media data, said method comprising:
performing a raw media read of said media device, said raw media read comprising a read of at least one next bit of data stored in said media device; updating a media hash using said at least one next bit of data, said media hash being associated with substantially all the data stored on said media device; determining to which one file, of a plurality of files, that said at least one next bit of data belongs; updating a file hash using said at least one next bit of data, said file hash being associated with said one file, of said plurality of files, that said at least one next bit of data belongs; using said file hash to determine whether said one file, of said plurality of files, has a valid file signature after a last bit of said one file is used in said updating of a file hash step; and using said media hash to determine whether said media data has a valid media signature after a last bit of said media data is used in said updating of a media hash step.
- 10. The method of claim 9, further comprising authenticating said media device and its contents based, at least in part, on said valid media signature and said valid file signature.
- 11. The method of claim 9, further comprising mapping and copying said at least one next bit of data to executable memory after said step of updating said file hash.
- 12. The method of claim 9, further comprising loading said one file into executable memory after said step of using said file hash to determine whether said one file, of said plurality of files, has a valid signature.
- 13. The method of claim 9, wherein said media device is a non-volatile memory.
- 14. The method of claim 13, wherein said non-volatile memory is a flash memory.
- 15. The method of claim 9, where said plurality of files are stored contiguously in said media device.
- 16. A gaming machine comprising:
a user interface; and a central processing unit (CPU) coupled to said user interface, said CPU comprising:
a processor; a boot memory coupled to said processor; a non-volatile memory coupled to said processor, said non-volatile memory storing data and a plurality of files; and a plurality of instructions wherein at least a portion of said plurality of instructions are storable in said boot memory, and further wherein said plurality of instructions are configured to cause said processor to determine the authenticity of said data and said plurality of files stored in said non-volatile memory, said plurality of instructions being configured to cause the processor to perform:
reading a next predetermined amount of data from said non-volatile memory; calculating a data hash value using said next predetermined amount of data from said non-volatile memory; determining to which file, of said plurality of files, said next predetermined amount of data belongs; calculating a file hash value for the file, using said next predetermined amount of data; determining whether the file, of said plurality of files, is a valid file after said next predetermined amount of data is a last amount of data for the file; determining whether said data in said non-volatile memory is valid data after said next predetermined amount of data is a last amount of data read from said non-volatile memory; repeating said above plurality of instructions until at least one of said plurality of files is determined to be invalid, the data in the non-volatile memory is determined to be invalid, or both the data in the non-volatile memory and all said plurality of files are determined to be valid.
- 17. The gaming machine of claim 16, wherein said plurality of instructions are further configured to identify said plurality of files and said data stored in said non-volatile memory as being authentic when all said plurality of files and the data in said non-volatile memory are valid.
- 18. The gaming machine of claim 16, wherein said plurality of instructions are performed by said processor at boot-up.
- 19. The gaming machine of claim 16, wherein said plurality of instructions are performed by said processor after said gaming machine performs a soft or hard reset.
- 20. The gaming machine of claim 16, wherein said plurality of files are stored contiguously in said non-volatile memory.
- 21. The gaming machine of claim 16, wherein said non-volatile memory is at least one of a high capacity storage memory and a serial read-write memory.
- 22. The gaming machine of claim 16, wherein said next predetermined amount of data is bit of data.
- 23. The gaming machine of claim 16, wherein said next predetermined amount of data is a byte of data.
- 24. An article of manufacture for authenticating a media device's contents during boot-up or after reset of a gaming machine, said article of manufacture comprising:
a first non-volatile memory device; a plurality of instructions wherein at least a portion of said plurality of instructions are storable in said first non-volatile memory, and further wherein said plurality of instructions are configured to cause a processor to perform:
reading a next predetermined amount of data from a second memory device; calculating a data hash value using said next predetermined amount of data from said second memory device; determining to which file, of said plurality of files, said next predetermined amount of data belongs; calculating a file hash value for the file, using said next predetermined amount of data; determining whether the file, of said plurality of files, is a valid file after said next predetermined amount of data is a last amount of data for the file; determining whether said data in said second memory device is valid data after said next predetermined amount of data is a last amount of data read from said second memory device; repeating said above plurality of instructions until at least one of said plurality of files is determined to be invalid, the data in the non-volatile memory is determined to be invalid, or both the data in the second memory device and all said plurality of files are determined to be valid.
- 25. The gaming machine of claim 24, wherein said plurality of instructions are further configured to identify said plurality of files and said data stored in said second memory device as being authentic when all said plurality of files and the data in said second memory device are valid.
- 26. The gaming machine of claim 24, wherein said plurality of instructions are performed by said processor at boot-up.
- 27. The gaming machine of claim 24, wherein said plurality of instructions are performed by said processor after said gaming machine performs a soft or hard reset.
- 28. The gaming machine of claim 24, wherein said plurality of files are stored contiguously in said second memory device.
- 29. The gaming machine of claim 24, wherein said second memory device is at least one of a high capacity storage memory and a serial read-write memory.
- 30. The gaming machine of claim 24, wherein said next predetermined amount of data is bit of data.
- 31. The gaming machine of claim 24, wherein said next predetermined amount of data is a byte of data.
- 32. The gaming machine of claim 24, further comprising loading said plurality of files into a main memory after said plurality of files are validated.
- 33. The gaming machine of claim 24, further comprising loading the file, of said plurality of files into a main memory after the file is validated.
- 34. The gaming machine of claim 25, further comprising loading said plurality of files into a main memory after authenticating.
- 35. A gaming machine comprising:
a processor; a bus connected to said processor a boot memory connected to said bus; and a non-volatile memory connected to said bus, said non-volatile memory comprising data bits and a plurality of files wherein at least a portion of said data bits make up said plurality of files; said boot memory being adapted to provide said processor instructions for validating said data bits and said plurality of files after substantially a single read of each of said data bits.
- 36. The gaming machine of claim 35, further comprising a main memory wherein after said single read of each of said data bits, said processor loads said data bits into said main memory.
- 37. The gaming machine of claim 35, further comprising a main memory wherein after each one of said plurality of files is validated said processor loads each one of said plurality of files into said main memory.
- 38. The gaming machine of claim 35, wherein after said processor validates said data bits and said plurality of files, said processor provides a signal indicating that the combination of said data bits and said plurality of files are authenticated.
- 39. The gaming machine of claim 35, wherein said boot memory provides said instructions to said processor during a boot-up operation or after a reset operation
- 40. A method for authenticating gaming software in a gaming machine at boot-up or after a reset, said method comprising:
reading a boot memory using a processor; reading bits of data and a plurality of files from a non-volatile memory by said processor, said plurality of files being made up of said bits of data, said processor reading each said bit of data once; and validating each file while validating said bits of data.
REFERENCE TO RELATED APPLICATIONS
[0001] This application is related to U.S. patent application Ser. No. 10/119,663 filed Apr. 10, 2002, entitled “Gaming Software Authentication,” and incorporated herein by reference in its entirety.