Method and apparatus for protecting designs in SRAM-based programmable logic devices and the like
First Claim
1. A method comprising:
- receiving at a configurable device a configuration of a protection circuit, wherein the protection circuit is a portion of the configurable device after the configurable device is configured;
receiving at the configurable device a plurality of secure device encrypted sequence values, the secure device encrypted sequence values generated by a secure device authorization code generator that is separate from the configurable device;
generating a plurality of configurable device encrypted sequence values, wherein said generating is performed by the protection circuit of the configured configurable device; and
comparing the plurality of secure device encrypted sequence values with the plurality of configurable device encrypted sequence values; and
further comprising enabling operation of an electronic design when the plurality of secure device encrypted sequence values are identical to the plurality of configurable device encrypted sequence values.
1 Assignment
0 Petitions
Accused Products
Abstract
Use of an electronic design in a configurable device is controlled by a secure device. The configurable device includes an authorization code generator having a sequence generator and an encryption core implementing an encryption algorithm. The secure device uses the same sequence generator and encryption core in its own authorization code generator. The sequence generators in the configurable device and secure device generate identical streams of values that are encrypted using the encryption algorithm. The encrypted values are compared in the configurable device by a comparator. When the streams of encrypted values are not identical, the electronic design is prevented from operating. Where the period of the sequence generated by the sequence generators is long, such as 264, the output of the encryption cores will contain that many different encrypted values, a substantial amount of highly randomized output used as authorization code for the protection of the electronic design.
223 Citations
18 Claims
-
1. A method comprising:
-
receiving at a configurable device a configuration of a protection circuit, wherein the protection circuit is a portion of the configurable device after the configurable device is configured; receiving at the configurable device a plurality of secure device encrypted sequence values, the secure device encrypted sequence values generated by a secure device authorization code generator that is separate from the configurable device; generating a plurality of configurable device encrypted sequence values, wherein said generating is performed by the protection circuit of the configured configurable device; and comparing the plurality of secure device encrypted sequence values with the plurality of configurable device encrypted sequence values; and further comprising enabling operation of an electronic design when the plurality of secure device encrypted sequence values are identical to the plurality of configurable device encrypted sequence values. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A configurable device comprising:
-
a protection circuit configurable using configuration data received from a memory device, wherein the protection circuit is operable to generate a plurality of configurable device encrypted sequence values; and a comparator operable to compare a plurality of secure device encrypted sequence values with the plurality of configurable device encrypted sequence values generated by the protection circuit of the configured configurable device, wherein the plurality of secure device encrypted sequence values are generated by a secure device authorization code generator that is separate from the configurable device; and further comprising; an electronic design; and an enabling circuit operable to enable an operation of the electronic design when the plurality of secure device encrypted sequence values is identical to the plurality of configurable device encrypted sequence values. - View Dependent Claims (7, 8, 9, 10, 11, 12)
-
-
13. A system comprising:
-
a protection circuit of a configurable device configurable using configuration data received from a memory device, wherein the protection circuit is operable to generate a plurality of configurable device encrypted sequence values; a secure device authorization code generator operable to generate a plurality of secure device encrypted sequence values, wherein the secure device authorization code generator is separate from the configurable device; and a comparator operable to compare the plurality of secure device encrypted sequence values with the plurality of configurable device encrypted sequence values; and wherein the configurable device comprises; an electronic design; and an enabling circuit operable to enable an operation of the electronic design when the plurality of secure device encrypted sequence values is identical to the plurality of configurable device encrypted sequence values. - View Dependent Claims (14, 15, 16, 17, 18)
-
Specification