Secured verification of configuration data for field programmable gate array devices
First Claim
1. A method of authenticating configuration data within or about a gaming machine with respect to a gaming machine boot process, the method comprising:
- configuring a central processing unit to execute executable programming instructions to generate a wager-based game on the gaming machine;
storing the executable programming instructions in a memory device for generating the wager-based game;
connecting a volatile programmable electronic device comprising a plurality of logic elements programmable to form logic gates in a communication path between the central processing unit and the memory device;
monitoring a communication between the central processing unit and at least one of an input device and an output device by using the volatile programmable electronic device;
storing instructions for configuring the volatile programmable electronic device to enable communications between the central processing unit and the memory device, wherein said storing instructions comprises storing the instructions within a read only configuration file included within a configurator;
accessing a separate read only custodial file, wherein at least a substantial portion of said custodial file is identical to at least a substantial portion of said configuration file when said configuration file is authentic, said custodial file residing in a location separate from said configurator;
determining whether to hold said volatile programmable electronic device in a reset mode;
if the reset mode is held, holding a plurality of operating contents of said volatile programmable electronic device as substantially empty upon a shut down phase of said gaming machine to disable communication between the central processing unit and the memory device;
booting up said gaming machine after said shut down phase;
transferring said configuration file from said configurator to said volatile programmable electronic device;
comparing at least a representative portion of data from said configuration file with at least a representative portion of data from said custodial file;
confirming whether said configuration file has been successfully compared to said custodial file;
continuing to hold said volatile programmable electronic device in the reset mode until said confirming of said successful comparison is completed;
configuring said volatile programmable electronic device with said configuration file;
permitting a substantial amount of regular gaming machine operations only after confirming that said configuration file has been successfully compared to said custodial file; and
facilitating communication between said memory device and said central processing unit upon said confirming that said configuration file has been successfully compared to said custodial file.
1 Assignment
0 Petitions
Accused Products
Abstract
A method and apparatus for providing automated and secured verification of configuration data for a volatile progrannmable electronic device, such as an FPGA, is disclosed. A configurator including at least one memory unit, such as a ROM or EEPROM, contains a configuration file, which file is transferred to the volatile programmable electronic device or FPGA on demand. Data from the configuration file is compared with data from a separate custodial file, which custodial file is substantially identical to the configuration file and resides in a location separate from the memory unit or units that store the actual configuration file. In some instances the comparison is made before any actual loading of the configuration file into the FPGA occurs, whereby loading is prohibited if no match is confirmed, while in other instances the FPGA is configured using the configuration file and is then shut down if no match is later confirmed.
-
Citations
25 Claims
-
1. A method of authenticating configuration data within or about a gaming machine with respect to a gaming machine boot process, the method comprising:
-
configuring a central processing unit to execute executable programming instructions to generate a wager-based game on the gaming machine; storing the executable programming instructions in a memory device for generating the wager-based game; connecting a volatile programmable electronic device comprising a plurality of logic elements programmable to form logic gates in a communication path between the central processing unit and the memory device; monitoring a communication between the central processing unit and at least one of an input device and an output device by using the volatile programmable electronic device; storing instructions for configuring the volatile programmable electronic device to enable communications between the central processing unit and the memory device, wherein said storing instructions comprises storing the instructions within a read only configuration file included within a configurator; accessing a separate read only custodial file, wherein at least a substantial portion of said custodial file is identical to at least a substantial portion of said configuration file when said configuration file is authentic, said custodial file residing in a location separate from said configurator; determining whether to hold said volatile programmable electronic device in a reset mode; if the reset mode is held, holding a plurality of operating contents of said volatile programmable electronic device as substantially empty upon a shut down phase of said gaming machine to disable communication between the central processing unit and the memory device; booting up said gaming machine after said shut down phase; transferring said configuration file from said configurator to said volatile programmable electronic device; comparing at least a representative portion of data from said configuration file with at least a representative portion of data from said custodial file; confirming whether said configuration file has been successfully compared to said custodial file; continuing to hold said volatile programmable electronic device in the reset mode until said confirming of said successful comparison is completed; configuring said volatile programmable electronic device with said configuration file; permitting a substantial amount of regular gaming machine operations only after confirming that said configuration file has been successfully compared to said custodial file; and facilitating communication between said memory device and said central processing unit upon said confirming that said configuration file has been successfully compared to said custodial file. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. A microprocessor based gaming machine, comprising:
-
a central processing unit designed or configured to execute executable programming instructions used to generate a wager-based game on the microprocessor based gaming machine; at least one of an input device and an output device; a memory device used in conjunction with the microprocessor based gaming machine, said memory device configured to store the executable programming instructions for generating the wager-based game; a volatile programmable electronic device, said volatile programmable electronic device comprising a plurality of logic elements programmable to form logic gates, said volatile programmable volatile programmable electronic device disposed in a communication path between the central processing unit and the memory device, said volatile programmable electronic device configured to monitor a communication between the central processing unit and said at least one of said input device and said output device, wherein said central processing unit is configured to determine whether to hold said volatile programmable electronic device in a reset mode; a configurator; a read only configuration file located within said configurator and adapted to be used in configuring said volatile programmable electronic device, said read only configuration file comprising instructions for configuring the volatile programmable electronic device to enable communications between the central processing unit and the memory device; a separate custodial file located within the microprocessor based gaming machine and separate from said configurator, wherein at least a substantial portion of said separate custodial file is identical to at least a substantial portion of said configuration file; and a comparator designed to compare at least a representative portion of data from said configuration file with at least a representative portion of data from said custodial file to authenticate said configuration file, said comparator adapted to provide a signal to said central processing unit regarding the results of said comparison, said central processing unit configured to continue to determine whether to hold said volatile programmable electronic device in the reset mode until the authentication is completed, said volatile programmable electronic device configured to facilitate communication between said memory device and said central processing unit based on the results of said comparison. - View Dependent Claims (15, 16, 17, 18, 19, 20, 21)
-
-
22. A method of authenticating configuration data in a microprocessor based machine during a machine boot process, comprising:
-
configuring a central processing unit to execute executable programming instructions for generating a wager-based game on the microprocessor based machine; storing the executable programming instructions in a memory device to generate the wager-based game; determining whether to hold said primary volatile programmable electronic device in a reset mode; holding a plurality of operating contents of a primary volatile programmable electronic device associated with the microprocessor based machine as substantially empty upon a shut down phase of the microprocessor based machine, wherein said holding the operating contents comprises holding the operating contents of the primary volatile programmable electronic device including a plurality of logic elements programmable to form logic gates; disposing the primary volatile programmable electronic device in a communication path between the central processing unit and the memory device; monitoring a communication between the central processing unit and at least one of an input device and an output device by using the primary volatile programmable electronic device; disabling communication between the central processing unit and the memory device by performing said holding of the operating contents of the primary volatile programmable electronic device; booting up the microprocessor based machine after said shut down phase; transferring a read only configuration file to said volatile programmable electronic device, said read only configuration file comprising instructions for configuring the volatile programmable electronic device to enable communications between the central processing unit and the memory device; comparing at least a representative portion of data from said configuration file with at least a representative portion of data from a separate custodial file, wherein at least a substantial portion of said separate custodial file is identical to at least a substantial portion of said configuration file, and wherein said separate custodial file resides in a location separate from said memory device; confirming whether said configuration file has been successfully compared to said custodial file; determining to continue said holding of said volatile programmable electronic device in the reset mode until said confirming of said successful comparison is completed; configuring said volatile programmable electronic device with said configuration file; permitting a substantial amount of regular microprocessor based machine operations only after said confirming that said configuration file has been successfully compared to said custodial file; and facilitating communication between said memory device and said central processing unit upon said confirming that said configuration file has been successfully compared to said custodial file. - View Dependent Claims (23)
-
-
24. A method of authenticating data in a microprocessor based machine, comprising:
-
configuring a central processing unit (CPU) within the microprocessor based machine to execute executable programming instructions for generating a wager-based game on the microprocessor based machine; storing the executable programming instructions in a memory device within the microprocessor based machine to generate the wager-based game; disposing a field programmable gate array (FPGA) in a communication path between the CPU and the memory device, said FPGA located within the microprocessor based machine, and said FPGA comprising a plurality of logic elements programmable to form logic gates; monitoring a communication between the CPU and at least one of an input device and an output device by using the FPGA; storing a configuration file within a configurating EEPROM located within the microprocessor based machine, said configuration file comprising instructions for configuring the FPGA to enable communications between the CPU and the memory device; storing a separate custodial file within the microprocessor based machine and separate from said EEPROM, wherein at least a substantial portion of said separate custodial file is identical to at least a substantial portion of said configuration file; determining whether to hold said FPGA in a reset mode; holding a plurality of operating contents of said FPGA as substantially empty upon a shut down phase of the microprocessor based machine to disable communication between the CPU and the memory device; booting up the microprocessor based machine; initiating a request to transfer said configuration file from said EEPROM to said FPGA; utilizing said CPU to compare at least a representative portion of data from said configuration file with at least a representative portion of data from a separate custodial file; confirming whether said configuration file has been successfully compared to said custodial file satisfaction; determining to continue said holding of said FPGA in the reset mode until said confirming of said successful comparison is completed; configuring said FPGA with said configuration file; and facilitating communication between said memory device and said CPU upon said confirming that said configuration file has been successfully compared to said custodial file. - View Dependent Claims (25)
-
Specification