Patent ID: 8539254

Claim:
A method for protecting against attacks on security of a programmable integrated circuit (IC), comprising: prior to initiating decryption of an encrypted bitstream input to the programmable IC, adjusting a tracking number in a non-volatile memory to indicate failure to decrypt the encrypted bitstream, the non-volatile memory retaining the number across on-off power cycles of the programmable IC; attempting to decrypt at least a portion of an encrypted bitstream input to the programmable IC with a cryptographic key stored in the programmable IC; in response to completing decryption of the encrypted bitstream: calculating a first checksum of the decrypted bitstream; comparing the first checksum to a second checksum in the decrypted bitstream; in response to the first checksum matching the second checksum, adjusting the tracking number in the non-volatile memory to indicate successful decryption of the encrypted bitstream; and in response to the first checksum not matching the second checksum, bypassing adjustment of the tracking number in the non-volatile memory to indicate unsuccessful decryption of the encrypted bitstream; and in response to the number of failures exceeding a threshold, storing data that prevents the cryptographic key from being used for a subsequent decryption of the encrypted bitstream in the programmable IC.