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. The root of trust is where the trustworthiness begins in a process. Attempts to address this shortcoming include programming a global secret into FPGAs during production. These FPGAs are then broadly distributed in the marketplace. However, there is no single root of trust available for programming the FPGAs or for subsequent lifecycle management to securely validate integrity. If one key (secret) is compromised, a large number of FPGAs (an entire production run) could be compromised.
For these and other reasons, there is a need for the present invention.
Embodiments of a system and method for transferring information to a device include assigning a unique identifier to a device. A unique key for the device for the device is generated, and the device is located at a first site. The unique identifier is sent from the device to a second site. The unique key is obtained at the second site and used for encrypting information, which is sent from the second site to the device.
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.
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.
With certain integrated circuit devices, such as an FPGA, it may be necessary to send information, such as an updated program file generated at a trusted site, to the device 100 located at an untrusted site. In the illustrated embodiment, this information is sent over an unsecure public network. In various embodiments, the network is a local area network (LAN), a network utilizing TCP/IP (Transmission Control Protocol/Internet Protocol), or a private network such as an intranet or an extranet. The system illustrated in
Prior to being located at the untrusted site 110, a unique identifier 120 is assigned to the device 100 and a unique key 122 is generated for the device 100. This occurs, for example, at a production site such as a chip factory. The unique identifier may include any suitable information that is compatible with a cryptographic algorithm. The unique key 122 is associated with the unique identifier 120. The unique identifier 120 and the unique key 122 can be stored in the device 100, for example, in a nonvolatile memory of the device 100.
After production, the device 100 with the unique identifier 120 and the unique key 122 is shipped to the first, or untrusted site 110. To securely send information such as a program file to the device 100, the unique identifier 120 is sent from the device 100 to the second, trusted site 112. A suitable computing system with memory, etc. is located at the second site 112. In one embodiment, the unique identifier 120 is sent over a public unsecured network. In the illustrated embodiment, the unique key 122 is obtained at the second site, for example, by using the unique identifier 120, and is used to encrypt the information to be sent to the device 100 at the untrusted site 110. After encryption at the trusted site 112, the encrypted information 124 is sent to the device 100 at the untrusted site 110. In the illustrated embodiment, the encrypted information 124 is sent over the public, unsecure network 126. The received encrypted information 124 can then be decrypted by the device 100 at the untrusted site.
The unique key 122 is also generated and stored in the FPGA 100, for example, in nonvolatile memory such as the FPGA flash memory 210. The unique identifier 120 and unique key 122 can transmitted to the FPGA 100 via any suitable interface, such as a JTAG interface 212. In the embodiment illustrated in
In
As illustrated in
In another implementation illustrated in
After the production phase, the FPGA 100 is shipped to the untrusted site 110. Information 218, such program files are generated via design software at a trusted site, such as the trusted site 112.
A second certificate, a site certificate 224, is signed by a trusted certificate authority 226. The site certificate 224 is used to authenticate the trusted site 112 to the FPGA 100. The chip certificate 222 and a chip challenge (e.g. a random number) from the FPGA 100 are sent to the trusted site 112. The trusted site 112 verifies the chip certificate 222 using a certificate from a certificate authority and/or certificates chain, and optionally verifies other unique information such as the serial number and/or the expiration date.
For site authentication of the trusted site 112, the trusted site 112 sends a chip challenge response, a site challenge (such as a random number) and the site certificate 224. The chip challenge response is generated by the trusted site 112 by signing the chip challenge using the trusted site private key. The FPGA 100 verifies the site certificate 224 confirming that the site certificate is signed by the chip factory certificate authority 226. The FPGA 100 verifies the chip challenge response using the public key received from the site certificate 224. The FPGA 100 signs the site challenge using the chip private key.
The FPGA 100 encrypts the unique key 122 using the trusted site public key that was extracted from the site certificate 224. The FPGA 100 signs the site challenge using the chip private key and sends the challenge response and the encrypted unique key 122 to the trusted site 112. The trusted site 112 verifies the challenge response using public key from the chip certificate 222 received earlier.
In the illustrated embodiment, the mutual trust is established when the FPGA 100 and the trusted site 112 both verify the challenges (the chip challenge and the site challenge). In other embodiments, the mutual trust is established when the FPGA 100 verifies the challenges (the chip challenge and the site challenge), or when the trusted site 112 verifies the challenges (the chip challenge and the site challenge). In other embodiments, the mutual trust is established when the FPGA 100 verifies the chip challenge or the site challenge, or when the trusted site 112 verifies the chip challenge or the site challenge. In the illustrated embodiment, the trusted site 112 decrypts the encrypted unique key 122 using the trusted site private key.
The unique key 122 can then be used to encrypt the programming file 218, and encrypted programming file 124 is sent to the untrusted site 110 over the public network 126 to be loaded into the FPGA 100. The FPGA 100 decrypts the encrypted programming files using a suitable decryption core, such as an AES decryption core or any other suitable symmetric decryption core.
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.
This application claims the benefit of U.S. Provisional Application No. 60/984,559, filed on Nov. 1, 2007, which is incorporated by reference. This application is related to U.S. patent application Ser. No. 12/062,937 “METHOD AND SYSTEM FOR CONTROLLING 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, now U.S. Pat. No. 8,065,517 “METHOD AND SYSTEM FOR TRANSFERRING INFORMATION TO A DEVICE”; all filed the same day as the present application and all incorporated by reference.
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, Jr. 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 |
6970565 | Rindsberg | Nov 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 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 |
20090144526 | Cizas et al. | Jun 2009 | A1 |
20090144553 | Stafford et al. | Jun 2009 | A1 |
20090172392 | Cizas et al. | Jul 2009 | A1 |
20090172401 | 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 |
Number | Date | Country |
---|---|---|
1170868 | Jan 2002 | EP |
03034199 | Apr 2003 | WO |
Entry |
---|
Kean, Cryptographic Rights Management of FPGA Intellectual Property Cores, Paper, 7 pages. |
Simpson et al., Offline HW/SW Authentication for Reconfigurable Platforms, Paper, 13 pages. |
Schneier, B, “Applied Cryptography, Protocols, Algorithms, and Source Code in C,” Applied Cryptography, Second Edition, XP-002121376, pp. 53-54, (Jan. 1, 1996). |
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. |
The 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. |
The Office Action for U.S. Appl. No. 11/948,952 mailed Dec. 10, 2010 (17 pgs.). |
The Final Office Action for U.S. Appl. No. 11/948,952 mailed May 26, 2011 (15 pgs.). |
The Examiner Interview Summary for U.S. Appl. No. 11/948,952 mailed Jul. 26, 2011 (3 pgs.). |
The Office Action for U.S. Appl. No. 11/948,952 mailed Aug. 9, 2011 (14 pgs.). |
The Final Office Action for U.S. Appl. No. 11/948,952 mailed Jan. 18, 2012 (19 pgs.). |
The Notice of Allowance for U.S. Appl. No. 11/948,952 mailed Mar. 30, 2012 (5 pgs.). |
The Office Action for U.S. Appl. No. 11/948,962 mailed Aug. 20, 2009 (12 pgs.). |
The Final Office Action for U.S. Appl. No. 11/948,962 mailed Feb. 2, 2010 (11 pgs.). |
The Advisory Action for U.S. Appl. No. 11/948,962 mailed Apr. 15, 2010 (3 pgs.). |
The Office Action for U.S. Appl. No. 11/948,962 mailed Mar. 28, 2011 (9 pgs.). |
The Office Action for U.S. Appl. No. 12/062,937 mailed Apr. 12, 2012 (18 pgs.). |
The Final Office Action for U.S. Appl. No. 12/062,937 mailed Aug. 23, 2012 (15 pgs.). |
The Advisory Action for U.S. Appl. No. 12/062,937 mailed Oct. 25, 2012 (3 pgs.). |
The Office Action for U.S. Appl. No. 12/062,937 mailed May 8, 2013 (16 pgs.). |
The Office Action for U.S. Appl. No. 12/062,987 mailed Dec. 28, 2011 (36 pgs.). |
The Office Action for U.S. Appl. No. 12/098,011 mailed Jan. 19, 2011 (25 pgs.). |
The Notice of Allowance for U.S. Appl. No. 12/098,011 mailed Jun. 30, 2011 (5 pgs.). |
Number | Date | Country | |
---|---|---|---|
20090116650 A1 | May 2009 | US |
Number | Date | Country | |
---|---|---|---|
60984559 | Nov 2007 | US |