Method and system for controlling a device

Information

  • Patent Grant
  • 8627079
  • Patent Number
    8,627,079
  • Date Filed
    Friday, April 4, 2008
    16 years ago
  • Date Issued
    Tuesday, January 7, 2014
    10 years ago
Abstract
A system and method for controlling a device. Data that was encrypted using a first encryption scheme is decrypted, then re-encrypted using a second encryption scheme. The re-encrypted data is then decrypted.
Description
BACKGROUND

Various electronic devices provide characteristics that can be changed after production, including digital signal processors (DSP), field programmable gate arrays (FPGA), etc. For example, an FPGA is an integrated circuit device containing programmable logic components sometimes referred to as “logic blocks,” and programmable interconnects. Logic blocks can be programmed to perform the function of basic logic gates such as AND, and XOR, or more complex combinational functions such as decoders or simple mathematical functions. In most FPGAs, the logic blocks also include memory elements, which may be simple flip-flops or more complete blocks of memories. The logic blocks and interconnects can be programmed after the FPGA is manufactured (“field programmable”) to implement the desired functions.


Such devices may have a trustworthiness that is limited due to a lack of a root of trust at the start of the device lifecycle and throughout the subsequent lifecycle stages. Encryption is typically disabled in reconfigurable logic devices such as FPGAs when the FPGAs are manufactured. FPGA system integrators or equipment manufacturers have to enable encryption and program the encryption key into the FPGA. Accordingly, monitoring functions or audit mechanisms are lacking. The manufacturing environment is inherently insecure and can be prone to attacks.


For these and other reasons, there is a need for the present invention.


SUMMARY

Embodiments of a system and method for controlling a device are disclosed. Data that was encrypted using a first encryption scheme is decrypted, then re-encrypted using a second encryption scheme. The re-encrypted data is then decrypted.





BRIEF DESCRIPTION OF THE DRAWINGS

Embodiments of the invention are better understood with reference to the following drawings. The elements of the drawings are not necessarily to scale relative to each other. Like reference numerals designate corresponding similar parts.



FIG. 1 is a block diagram conceptually illustrating aspects of a device.



FIG. 2 is a block diagram conceptually illustrating aspects an embodiment of a FPGA system.



FIG. 3 illustrates aspects of the system of FIG. 2.



FIG. 4 is a block diagram conceptually illustrating aspects of another embodiment of a FPGA system.





DETAILED DESCRIPTION

In the following Detailed Description, reference is made to the accompanying drawings, which form a part hereof, and in which is shown by way of illustration specific embodiments in which the invention may be practiced. In this regard, directional terminology, such as “top,” “bottom,” “front,” “back,” “leading,” “trailing,” etc., is used with reference to the orientation of the Figure(s) being described. Because components of embodiments of the present invention can be positioned in a number of different orientations, the directional terminology is used for purposes of illustration and is in no way limiting. It is to be understood that other embodiments may be utilized and structural or logical changes may be made without departing from the scope of the present invention. The following detailed description, therefore, is not to be taken in a limiting sense, and the scope of the present invention is defined by the appended claims.



FIG. 1 is block diagram conceptually illustrating aspects of a device 100. In one embodiment, the device 100 is a integrated circuit device. Many types of integrated circuit devices have characteristics or programs that can be changed or require updating after production, such as various microprocessors or microcontrollers, digital signal processors (DSP), field programmable gate arrays (FPGA), etc.


Certain integrated circuit devices, such as FPGAs, may require updating or upgrading. The embodiments of the system 100 illustrated in FIG. 1 include a device 110 that may require such upgrading. A controller 112 is coupled to the device 110 and provides a trusted core for reconfiguring or upgrading aspects of the device 110, which is especially useful when the system 100 is deployed in an untrusted environment. The controller 112 communicates with and controls the configuration and operation of the device 110. In some embodiments, multiple devices are associated with a single controller 112, though in FIG. 1 and subsequent figures a single device 110 is illustrated for sake of simplicity. The terms “coupled,” “connected,” along with derivatives and other similar terms are meant to indicate that the relevant elements cooperate or interact with each other regardless of whether they are in direct physical or electrical contact.


The provision of the controller 112 enables trusted changes and upgrades for devices 110 on an individual basis. The controller 112 and the device 110 can be implemented on a single die or on multiple die in a suitable package such as a multi-chip module.



FIG. 2 illustrates aspects of an embodiment where the device 110 is a field programmable gate array (FPGA). In other embodiments, the device 110 could include other types of integrated circuit devices. In FIG. 2, information for programming or upgrading the device 110 is controlled by the secure microcontroller 112. Examples of suitable secure microcontrollers include a model SLE88CFX4002P microcontroller available from Infineon Technologies AG. The secure microcontroller 112 supports the secure operation of individual processes, enables convenient use for secure applications and allows secure encapsulation of a running process from other processes. For example, the secure microcontroller 112 provides execution of applications in compliance with specific trust criteria for different linked libraries. Specific features can include memory management and the provision of secure firewalls between security-sensitive partitions in an application.


Example embodiments of the secure microcontroller 112 include a central processing unit (CPU) 130 and memories such as ROM, RAM, Flash, etc. An operating system 132 is stored in a ROM, and a secure memory 134 is included in the illustrated embodiment. The secure microcontroller 112 also includes peripherals 136, such as a random number generator, interrupt module, crypto coprocessor, DES accelerator, UART, configurable internal control oscillator, and a suitable number of timers such as three timers. The CPU 130, operating system 132, secure memory 134, peripherals 136, and one or more interfaces (JTAG, USB, PCMCIA, ISO 7816, etc.) are coupled together via a bus system 138. The example secure microcontroller illustrated in FIG. 2 includes a first interface 150, such as an ISO7816 standard smartcard interface, and a second interface 152 such as a JTAG interface.


The FPGA 110 includes a user programmable area 140 and secure storage, such as a hardwired area 142. A secure microcontroller interface 150 is connectable to the corresponding interface in the secure microcontroller 112 via an appropriate link. FIG. 3 illustrates further aspects of the hardwired area 142 of the FPGA 110. An encryption/decryption engine 144 and a programming interface 146 are provided in the hardwired area 142, among other things. The hardwired area 142 further includes a JTAG interface 152 connected to the JTAG interface 152 of the secure microcontroller 112.


The secure microcontroller 112 generates and stores one or more keys 160 in exemplary embodiments. In this disclosure, a “key” is intended to include one or more keys and can refer to any suitable data that can be used to control access to the relevant device. In certain embodiments, the format of the key is compatible with a symmetrical cryptography algorithm, such as the Advanced Encryption Standard (AES) or the Triple Data Encryption Standard (TDES). In other embodiments, the key includes a block of any suitable predetermined data or random data. For example, an FPGA programming key 160 is stored in the secure memory 134 of the secure microcontroller 112. The FPGA programming key 160 is further stored in the hardwired area 142 of the FPGA 110 in some embodiments.


To program or reconfigure the FPGA 110, a secure or trusted communication channel is established between the external system 114 and the secure microcontroller 112 via mutual authentication. In the system of FIG. 2, the external system is an external host system. After establishing a communication channel via the interface 150 of the secure microcontroller 112, the host 114 sends encrypted data, such as an encrypted image, to the FPGA system 100. More specifically, the encrypted data are sent to the secure microcontroller 112 of the FPGA system 100 in exemplary embodiments. The data sent from the host 114 to the secure microcontroller 112 is encrypted using a first encryption scheme, for example, an asymmetric encryption scheme. In embodiments where the first encryption scheme is an asymmetric scheme, the decrypting the data includes using a private key of the secure microcontroller 112.


The secure microcontroller 112 decrypts the encrypted image received from the host 114, and then re-encrypts the data using the FPGA key 160. In certain embodiments, the data is re-encrypted using a second encryption scheme, such as a symmetric encryption scheme wherein the FPGA key 160 would be a symmetric key. In other embodiments, the first encryption scheme is a symmetric encryption scheme and the second encryption scheme is an asymmetric encryption scheme. In still further embodiments, both the first and second encryption schemes are asymmetric, or both the first and second encryption schemes are symmetric encryption schemes.


In the embodiment illustrated in FIG. 2, the re-encrypted data is sent to the FPGA encryption/decryption engine 144 via the JTAG interface 152. In one embodiment, the image is received by the secure microcontroller in small pieces of data, or records. The decryption engine 144 decrypts the encrypted data using the key 160 stored in the secure memory 134 and/or within the hardwired area 142 of the FPGA 110.


The decrypted data can then be used to program the device 110. For example, the decrypted data is used to reconfigure desired portions of the FPGA 110 in certain embodiments. Further, the secure microcontroller 112 can be programmed to create a digital signature or CRC using the configuration data. The digital signature or CRC can be stored in the secure microcontroller 112, for example, in the secure memory 134. The next time the FPGA 110 is reconfigured, the digital signature or CRC may be verified by the secure microcontroller 112. The digital signature ensures the integrity of the FPGA image and ensures that the device has not been reconfigured during the intervening period. In response to verifying the signature, the FPGA 110 is programmed. If the digital signature cannot be verified, the secure microcontroller 112 can report back to the host system 114 that the trust level of the system 100 has been changed. In this situation, the host 114 can decide whether to complete the reconfiguration.


The secure microcontroller 112 can control the reconfiguration of any suitable number of logic cells in the FPGA 110, the reconfiguration of two or more FPGAs 110, or the reconfiguration of two or more partitions within an FPGA 110.



FIG. 4 illustrates another embodiment where the external system 114 includes a generic microcontroller 115, which includes an external interface 170 for coupling to an external host or other system as desired. In FIG. 4, the programming, updating, etc. is controlled through the generic microcontroller 115. The secure microcontroller 112 of the embodiment illustrated in FIG. 4 is similar to that illustrated in FIG. 2, but it does not include a JTAG interface. Instead, the generic microcontroller 115 has a JTAG interface 152 that is connectable to the corresponding interface of the FPGA 110.


Accordingly, the trusted communication channel is established between the external host 114, through the generic microcontroller 115, and the secure microcontroller 112 via mutual authentication. The generic microcontroller 115 forwards the encrypted data, or image from an external system connected to the interface 170, to the secure microcontroller 112.


In some embodiments, the FPGA 110 does not include the secure storage 142. If the FPGA 110 uses volatile memory, such as an SRAM FPGA, to store programming code, the programming code needs to be loaded into the FPGA 110 each time the FPGA 110 is powered up. In this case, the microcontroller 112 stores the programming code in the secure memory 134, and securely transfers the programming code to the FPGA 110 in the manner disclosed above when it is powered up.


Although specific embodiments have been illustrated and described herein, it will be appreciated by those of ordinary skill in the art that a variety of alternate and/or equivalent implementations may be substituted for the specific embodiments shown and described without departing from the scope of the present invention. This application is intended to cover any adaptations or variations of the specific embodiments discussed herein. Therefore, it is intended that this invention be limited only by the claims and the equivalents thereof.

Claims
  • 1. A method for controlling a device, comprising: providing a controller having a processor, a memory, and a first interface;providing a programmable device having a user programmed area and a hardwired area, the user programmed area coupled to the first interface, the hardwired area coupled to a second interface;providing a generic controller directly connected to the first interface and the second interface;receiving data that was encrypted using a first encryption scheme via the first interface;decrypting the data that was encrypted using a first encryption scheme by the controller;re-encrypting the data using a second encryption scheme by the controller;sending the re-encrypted data from the controller to the generic controller via the first interface;sending the re-encrypted data from the generic controller to the hardwired area of the programmable device via the second interface of the controller; anddecrypting the re-encrypted data by a decryption engine in the hardwired area of the programmable device.
  • 2. The method of claim 1, further comprising: sending the re-encrypted data to a plurality or the programmable devices.
  • 3. The method of claim 1, wherein the re-encrypted data are sent to the hardwired area of the programmable device on each start-up of the programmable device.
  • 4. The method of claim 1, further comprising storing the data within the memory of the controller.
  • 5. The method of claim 1, further comprising: programming the user programmed area of the programmable device using the data.
  • 6. The method of claim 1, wherein the first encryption scheme is an asymmetric encryption scheme and the second encryption scheme is a symmetric encryption scheme.
  • 7. The method of claim 6, wherein decrypting the data comprises using a private key, and wherein re-encrypting the data comprises using a symmetric key that is stored in the memory of the controller.
  • 8. The method of claim 6, wherein decrypting the data comprises using a private key stored in the memory of the controller, and wherein re-encrypting the data comprises using one or more symmetric keys stored in the memory of the controller and a memory in the hardwired area of the programmable device.
  • 9. The method of claim 1, wherein the first encryption scheme is a symmetric encryption scheme and the second encryption scheme is an asymmetric encryption scheme.
  • 10. The method of claim 1, wherein the first and second encryption schemes are symmetric encryption schemes.
  • 11. The method of claim 1, wherein the first and second encryption schemes are asymmetric encryption schemes.
  • 12. The method of claim 1, further comprising: establishing a secure communications channel between the hardwired area of the device and an external system.
  • 13. The method of claim 12, wherein establishing a secure communications channel includes authentication between the device and the external system.
  • 14. The method of claim 1, further comprising: verifying a digital signature of the data.
  • 15. The method of claim 14, further comprising: programming the device in response to verifying the digital signature.
  • 16. The method of claim 14, further comprising: storing the data and/or the digital signature in the memory of the controller.
  • 17. The method of claim 1, wherein receiving the encrypted data comprises receiving a plurality of records.
  • 18. The method of claim 1, wherein sending the re-encrypted data to the programmable device comprises sending the re-encrypted data via the second interface of the controller that is a JTAG interface.
  • 19. A system, comprising: a programmable device including a user programmed area coupled to a first interface, and a hardwired area having a decryption engine and a memory, the hardwired area coupled to a second interface; anda controller coupled to the user programmed area of the programmable device via the first interface and coupled to the hardwired area of the programmable device via the second interface, the controller having a processor, and a memory, the first interface configured to receive data that was encrypted using a first encryption scheme;a generic controller coupled to the controller and the user programmed area of the programmable device via the first interface;wherein the controller is configured to decrypt the data that was encrypted using the first encryption scheme, re-encrypt the data using a second encryption scheme, and send the re-encrypted data to the hardwired area of the programmable device via the generic controller and the second interface.
  • 20. The system of claim 19, wherein the controller memory is configured to store one or more keys corresponding to the first encryption scheme and/or the second encryption scheme.
  • 21. The system of claim 19, wherein the programmable device comprises two or more programmable devices, and wherein the memory of each one of the two or more programmable devices is configured to store one or more keys.
  • 22. The system of claim 19, wherein the first encryption scheme is an asymmetric encryption scheme and the second encryption scheme is a symmetric encryption scheme.
  • 23. The system of claim 19, wherein the first encryption scheme is a symmetric encryption scheme and the second encryption scheme is an asymmetric encryption scheme.
  • 24. The system of claim 19, wherein the first and second encryption schemes are symmetric encryption schemes.
  • 25. The system of claim 19, wherein the first and second encryption schemes are asymmetric encryption schemes.
  • 26. The system of claim 19, wherein the memory of the programmable device is configured to store one or more keys corresponding to the second encryption scheme.
  • 27. The system of claim 19, wherein the decryption engine decrypts the re-encrypted data, and wherein the decrypted data is used to reconfigure one or more portions of the user programmed area of the programmable device.
  • 28. A secure FPGA system, comprising: a FPGA device including a user programmed area, and a hardwired area having a decryption engine and a memory; anda secure microcontroller coupled to the FPGA, wherein the secure microcontroller includes a processor, a memory, an external interface connecting the secure microcontroller to the user programmed area and to an external system, and a JTAG interface connecting the secure microcontroller to the hardwired area, and wherein: the secure microcontroller is programmed to decrypt encrypted information received from the external system via the external interface using a first encryption scheme with a first key stored in the memory of the secure microcontroller, re-encrypt the information using a second encryption scheme with a second key stored in the memory of the secure microcontroller, and send the re-encrypted information to the hardwired area of the FPGA via the JTAG interface; andthe decryption engine of the FPGA is programmed to decrypt the re-encrypted information using the second key stored in the memory of the hardwire area, and program the user programmed area of the FPGA using the decrypted with the second key.
  • 29. The secure FPGA system of claim 28, wherein the first encryption scheme is an asymmetric encryption scheme and the second encryption scheme is a symmetric encryption scheme.
CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims the benefit of U.S. Provisional Application No. 60/984,534, filed on Nov. 1, 2007, which is incorporated by reference. This application is related to U.S. patent application Ser. No. 12/062,961, “METHOD AND SYSTEM FOR TRANSFERRING INFORMATION TO A DEVICE”; U.S. patent application Ser. No. 12/062,987, “METHOD AND SYSTEM FOR TRANSFERRING INFORMATION TO A DEVICE”; and U.S. patent application Ser. No. 12/098,011, “METHOD AND SYSTEM FOR TRANSFERRING INFORMATION TO A DEVICE”; all filed the same day as the present application and all incorporated by reference.

US Referenced Citations (177)
Number Name Date Kind
5455863 Brown et al. Oct 1995 A
5552776 Wade et al. Sep 1996 A
5628028 Michelson May 1997 A
5686904 Bruwer Nov 1997 A
5771287 Gilley et al. Jun 1998 A
5862339 Bonnaure et al. Jan 1999 A
5970142 Erickson Oct 1999 A
6069647 Sullivan et al. May 2000 A
6111953 Walker et al. Aug 2000 A
RE36946 Diffie et al. Nov 2000 E
6167137 Marino et al. Dec 2000 A
6191701 Bruwer Feb 2001 B1
6209091 Sudia et al. Mar 2001 B1
6216265 Roop et al. Apr 2001 B1
6230267 Richards et al. May 2001 B1
6237054 Freitag, Jr. May 2001 B1
6259908 Austin Jul 2001 B1
6367010 Venkatram et al. Apr 2002 B1
6385723 Richards May 2002 B1
6386451 Sehr May 2002 B1
6393564 Kanemitsu et al. May 2002 B1
6424718 Holloway Jul 2002 B1
6438235 Sims, III Aug 2002 B2
6457125 Matthews et al. Sep 2002 B1
6460023 Bean et al. Oct 2002 B1
6496928 Deo et al. Dec 2002 B1
6560665 Resler et al. May 2003 B1
6565000 Sehr May 2003 B2
6587842 Watts Jul 2003 B1
6609197 Ketcham et al. Aug 2003 B1
6684198 Shimizu et al. Jan 2004 B1
6715078 Chasko et al. Mar 2004 B1
6769060 Dent et al. Jul 2004 B1
6810406 Schlabach et al. Oct 2004 B2
6836805 Cook Dec 2004 B1
6848047 Morikawa et al. Jan 2005 B1
6907126 Inada Jun 2005 B2
6915434 Kuroda et al. Jul 2005 B1
7014120 Al Amri Mar 2006 B2
7162644 Trimberger Jan 2007 B1
7203842 Kean Apr 2007 B2
7225339 Asano et al. May 2007 B2
7269738 Kivimaki Sep 2007 B1
7475812 Novozhenets et al. Jan 2009 B1
7546455 Kakii Jun 2009 B2
7590860 Leporini et al. Sep 2009 B2
7697691 Sutton, II et al. Apr 2010 B2
7757294 Simkins Jul 2010 B1
7783884 Nakano et al. Aug 2010 B2
7788502 Donlin et al. Aug 2010 B1
7971072 Donlin et al. Jun 2011 B1
8065517 Cizas et al. Nov 2011 B2
8234501 Stafford et al. Jul 2012 B2
20010016836 Boccon-Gibod et al. Aug 2001 A1
20010029581 Knauft Oct 2001 A1
20010032878 Tsiounis et al. Oct 2001 A1
20010037452 Go et al. Nov 2001 A1
20010037457 Inada Nov 2001 A1
20010037458 Kean Nov 2001 A1
20010056404 Kuriya et al. Dec 2001 A1
20020001386 Akiyama Jan 2002 A1
20020004784 Forbes et al. Jan 2002 A1
20020007454 Tarpenning et al. Jan 2002 A1
20020013898 Sudia et al. Jan 2002 A1
20020013940 Tsukamoto et al. Jan 2002 A1
20020023223 Schmidt et al. Feb 2002 A1
20020046175 Bleumer Apr 2002 A1
20020069361 Watanabe et al. Jun 2002 A1
20020114452 Hamilton Aug 2002 A1
20020114454 Hamilton Aug 2002 A1
20020118837 Hamilton Aug 2002 A1
20020150243 Craft et al. Oct 2002 A1
20020199110 Kean Dec 2002 A1
20030016826 Asano et al. Jan 2003 A1
20030016827 Asano et al. Jan 2003 A1
20030023858 Banerjee et al. Jan 2003 A1
20030051151 Asano et al. Mar 2003 A1
20030056107 Cammack et al. Mar 2003 A1
20030059051 Hatano et al. Mar 2003 A1
20030074564 Peterson Apr 2003 A1
20030086571 Audebert et al. May 2003 A1
20030095664 Asano et al. May 2003 A1
20030097558 England et al. May 2003 A1
20030120611 Yoshino et al. Jun 2003 A1
20030126430 Shimada et al. Jul 2003 A1
20030126450 Master et al. Jul 2003 A1
20030185396 Asano et al. Oct 2003 A1
20030221011 Shitano Nov 2003 A1
20040006713 Minemura Jan 2004 A1
20040030891 Kurihara Feb 2004 A1
20040030918 Karamchedu et al. Feb 2004 A1
20040086127 Candelore May 2004 A1
20040125402 Kanai et al. Jul 2004 A1
20040168063 Revital et al. Aug 2004 A1
20040247128 Patariu et al. Dec 2004 A1
20040247129 Patariu et al. Dec 2004 A1
20040259529 Suzuki Dec 2004 A1
20050021539 Short et al. Jan 2005 A1
20050049886 Grannan et al. Mar 2005 A1
20050071631 Langer Mar 2005 A1
20050123141 Suzuki Jun 2005 A1
20050149758 Park Jul 2005 A1
20050160476 Kakii Jul 2005 A1
20050172154 Short et al. Aug 2005 A1
20050195975 Kawakita Sep 2005 A1
20050228994 Kasai et al. Oct 2005 A1
20050240778 Saito Oct 2005 A1
20060018474 Hori et al. Jan 2006 A1
20060059368 Fayad et al. Mar 2006 A1
20060059369 Fayad et al. Mar 2006 A1
20060059372 Fayar et al. Mar 2006 A1
20060059373 Fayad et al. Mar 2006 A1
20060059574 Fayad et al. Mar 2006 A1
20060069737 Gilhuly et al. Mar 2006 A1
20060080464 Kozuki Apr 2006 A1
20060107059 Lewis et al. May 2006 A1
20060116890 Nakamura et al. Jun 2006 A1
20060155990 Katsube et al. Jul 2006 A1
20060177064 Holtzman et al. Aug 2006 A1
20060182282 Negahdar Aug 2006 A1
20060191009 Ito et al. Aug 2006 A1
20060242465 Cruzado et al. Oct 2006 A1
20060242696 Cruzado et al. Oct 2006 A1
20060259965 Chen Nov 2006 A1
20060265603 McLean et al. Nov 2006 A1
20060277414 Kotani et al. Dec 2006 A1
20070030974 Ishibashi et al. Feb 2007 A1
20070043978 Cruzado et al. Feb 2007 A1
20070044158 Cruzado et al. Feb 2007 A1
20070074045 Van Essen et al. Mar 2007 A1
20070101157 Faria May 2007 A1
20070101434 Jevans May 2007 A1
20070124603 Yamamichi et al. May 2007 A1
20070130294 Nishio Jun 2007 A1
20070168676 Fayad et al. Jul 2007 A1
20070200661 Blum Aug 2007 A1
20070204170 Oren et al. Aug 2007 A1
20070250649 Hickey et al. Oct 2007 A1
20070263872 Kirkup et al. Nov 2007 A1
20070266247 Kirkup et al. Nov 2007 A1
20070274520 Ogata Nov 2007 A1
20070274525 Takata et al. Nov 2007 A1
20070276765 Hazel et al. Nov 2007 A1
20070282749 Nonaka et al. Dec 2007 A1
20070283151 Nakano et al. Dec 2007 A1
20080010449 Holtzman et al. Jan 2008 A1
20080010450 Holtzman et al. Jan 2008 A1
20080010451 Holtzman et al. Jan 2008 A1
20080010452 Holtzman et al. Jan 2008 A1
20080010455 Holtzman et al. Jan 2008 A1
20080010458 Holtzman et al. Jan 2008 A1
20080022395 Holtzman et al. Jan 2008 A1
20080040284 Hazel et al. Feb 2008 A1
20080044029 Gilhuly et al. Feb 2008 A1
20080046528 Gilhuly et al. Feb 2008 A1
20080046529 Gilhuly et al. Feb 2008 A1
20080101613 Brunts et al. May 2008 A1
20080155260 Perez et al. Jun 2008 A1
20080186052 Needham et al. Aug 2008 A1
20080209012 Abujbara et al. Aug 2008 A1
20080219449 Ball et al. Sep 2008 A1
20080260155 Kasahara et al. Oct 2008 A1
20080263224 Gilhuly et al. Oct 2008 A1
20080282087 Stollon et al. Nov 2008 A1
20080288410 Nino Nov 2008 A1
20080319823 Ahn et al. Dec 2008 A1
20090116650 Cizas et al. May 2009 A1
20090144526 Cizas et al. Jun 2009 A1
20090144553 Stafford et al. Jun 2009 A1
20090172392 Cizas et al. Jul 2009 A1
20090274297 Cho et al. Nov 2009 A1
20090276627 Cho et al. Nov 2009 A1
20100017599 Sellars et al. Jan 2010 A1
20100031026 Cizas et al. Feb 2010 A1
20100088515 Nishimoto et al. Apr 2010 A1
20100235624 Candelore Sep 2010 A1
20110176675 Hughes et al. Jul 2011 A1
Foreign Referenced Citations (2)
Number Date Country
1170868 Jan 2002 EP
03034199 Apr 2003 WO
Non-Patent Literature Citations (26)
Entry
Kean, Cryptographic Rights Management of FPGA Intellectual Property Cores, Paper, 7 pages, 2002.
Simpson et al., Offline HW/SW Authentication for Reconfigurable Platforms, Paper, 13 pages, 2006.
European Search Report for European Patent Application No. EP 08 01 9115.8 dated Mar. 10, 2009 (6 pages).
Menezes et al., “Handbook of Applied Cryptography: Ch. 10 Identification and Entity Authentication,” (Jan. 1, 1997), pp. 400-405, XP002143934 ISBN: 978-0-8493-8523-0.
Communication for European Patent Application No. EP 08 019 115.8 dated Dec. 2, 2009. (4 pgs.).
B. Schneier, “Applied Cryptography, Second Edition, Protocols, Algorithms, and Source Code in C: Ch. 24 Example Implementations,” (Jan. 1, 1996), pp. 574-577, XP002922914 ISBN: 978-0-471-11709-4.
Office Action for U.S. Appl. No. 11/948,952 mailed Dec. 10, 2010 (17 pgs.).
Final Office Action for U.S. Appl. No. 11/948,952 mailed May 26, 2011 (15 pgs.).
Examiner Interview Summary for U.S. Appl. No. 11/948,952 mailed Jul. 26, 2011 (3 pgs.).
Office Action for U.S. Appl. No. 11/948,952 mailed Aug. 9, 2011 (14 pgs.).
Final Office Action for U.S. Appl. No. 11/948,952 mailed Jan. 18, 2012 (19 pgs.).
Notice of Allowance for U.S. Appl. No. 11/948,952 mailed Mar. 30, 2012 (5 pgs.).
Office Action for U.S. Appl. No. 11/948,962 mailed Aug. 20, 2009 (12 pgs.).
Final Office Action for U.S. Appl. No. 11/948,962 mailed Feb. 2, 2010 (11 pgs.).
Advisory Action for U.S. Appl. No. 11/948,962 mailed Apr. 15, 2010 (3 pgs.).
Office Action for U.S. Appl. No. 11/948,962 mailed Mar. 28, 2011 (9 pgs.).
Office Action for U.S. Appl. No. 12/062,961 mailed Jan. 24, 2012 (19 pgs.).
Final Office Action for U.S. Appl. No. 12/062,961 mailed Jun. 15, 2012 (18 pgs.).
Office Action for U.S. Appl. No. 12/062,961 mailed Aug. 21, 2012 (19 pgs.).
Office Action for U.S. Appl. No. 12/062,961 mailed Dec. 13, 2012 (13 pgs.).
Final Office Action for U.S. Appl. No. 12/062,961 mailed Apr. 9, 2013 (24 pgs.).
Advisory Action for U.S. Appl. No. 12/062,961 mailed Jul. 19, 2013 (3 pgs.).
Office Action for U.S. Appl. No. 12/062,987 mailed Dec. 28, 2011 (36 pgs.).
Office Action for U.S. Appl. No. 12/098,011 mailed Jan. 19, 2011 (25 pgs.).
Notice of Allowance for U.S. Appl. No. 12/098,011 mailed Jun. 30, 2011 (5 pgs.).
Schneier, B, “Applied Cryptography, Protocols, Algorithms, and Source Code in C,” Applied Cryptography, Second Edition, XP-002121376, pp. 53-54, (Jan. 1, 1996).
Related Publications (1)
Number Date Country
20090172401 A1 Jul 2009 US
Provisional Applications (1)
Number Date Country
60984534 Nov 2007 US