Patent ID: 8677144

Claim:
A method of authenticating boot code of a semiconductor product, the method comprising: in a hardware processor: retrieving a public asymmetric encryption key, the public key associated with an original equipment manufacturer (OEM), the public key stored in memory by a provider of the semiconductor product; loading the boot code from boot code memory, the boot code signed by a private key associated with the public key, the boot code identifying a secure location associated with the OEM storing encrypted program code; authenticating the boot code by using the public key associated with the OEM during a first power-on sequence of the semiconductor product following installation of the semiconductor product, the authentication being performed internally with respect to the semiconductor product; establishing a secure connection to the secure location; receiving a command from the secure location signed by a private asymmetric encryption key associated with the OEM, the command requesting generation of a chip identifier token (ChipID token), the private asymmetric encryption key paired with the public key associated with the OEM; generating the ChipID token by encrypting a chip identifier (ChipID) stored in memory by using the public key associated with the OEM; transmitting the ChipID token to the secure location to be verified by the OEM by matching the ChipID against a plurality of ChipIDs stored in a database in the secure location; receiving encrypted program code signed by the private key associated with the OEM if the ChipID is a match; authenticating the encrypted program code by using the public key associated with the OEM; and decrypting the encrypted program code by using a code encryption key (CEK) stored in memory; wherein the encrypted program code is software.