This invention relates generally to a fault-tolerant embedded root of trust architecture implemented on a field programmable gate array (FPGA) and, more particularly, to an embedded root of trust architecture implemented on an FPGA, where the architecture employs a lock-step fault-tolerant processor including two or more lock-step cores that provide command and control for a separate but integrated embedded cryptography processing core or sub-system and that also support communications with other system components.
Modern aircraft, both manned and unmanned, employ a vehicle management system that includes the necessary controllers and other hardware for flight operation of the aircraft. The various sub-systems in the vehicle management system often include safety critical systems that if they were to fail, could cause a catastrophic failure of the aircraft. Therefore, these systems must be designed to have a high degree of reliability against failure. However, because of the vast number of calculations and processes that occur in the vehicle management system, a component generally having a high degree of reliability may still be considered too unreliable. Therefore, safety critical systems on an aircraft typically require some type of fault tolerant system.
For many of the systems on an aircraft, fault tolerance is satisfied by providing redundant systems. However, for the digital processing often employed in the safety critical systems, such redundant applications were previously not possible at the processor. For digital computing systems, it is known to employ various algorithms that obtain the same information, where the data is compared and data that does not match is considered faulty.
Embedded root of trust architectures are increasingly being used in computing and embedded systems to provide the ability to perform trusted system boot procedures and other trusted functions. An embedded root of trust architecture is defined as a hardware component that facilitates the execution of digitally authenticated software and firmware loading that securely and persistently maintains cryptographic keys and/or that supports secure processing capabilities. Special components that support the embedded root of trust architecture in its operation include cryptographic function blocks, non-volatile memory blocks, physically unclonable functions, and fuse blocks, such as e-fuses and battery-backed random access memories. One such application is to store cryptographic keys or provide cryptography accelerated functions for resource-constrained processors.
Current root of trust architectures typically do not consider safety and generally do not contain fault-tolerant functionality. If the non-fault tolerant root of trust architecture is placed on a computing board that contains or is used in flight critical or safety-critical systems, the potential for single-point failure could lower the reliability of the flight critical hardware and make the hardware unsuitable for flight. In addition, if a non-fault-tolerant root of trust architecture is used in conjunction with a fault-tolerant main processor, then the use of the conventional root of trust architecture could violate the safety guarantees of the fault-tolerant processor if used in support of critical processes.
The following discussion of the embodiments of the invention directed to an embedded fault-tolerant root of trust architecture implemented on a field programmable gate array (FPGA) is merely exemplary in nature, and is in no way intended to limit the invention or its applications or uses. For example, the discussion herein refers to the fault-tolerant root of trust architecture being provided in flight critical systems on an aircraft. However, the fault-tolerant root of trust architecture of the invention may have other applications.
The present invention proposes an embedded fault-tolerant root of trust architecture implemented on an FPGA that includes a lock-step fault-tolerant processor including two or more soft lock-step cores that provide command and control for a separate but integrated embedded cryptography processing core or sub-system, as well as to support communications with other system components. An FPGA is an integrated circuit that can be configured and programmed in a certain manner for a certain application after it is fabricated, and will typically have an array of programmable logic blocks and reconfigurable interconnects that allow the logic blocks to be interconnected. A soft lock-step core is a processor designed to provide redundancy and increase assurance in trust at the logical component level. Lock-step cores are physically and logically isolated from each other with their own dedicated resources, and each core reads the same instructions and performs the same operations in lock-step with each other. The resulting outputs from all of the cores are then either compared in a comparator or voted in voting logic, where the true output is then sent to external components and system resources.
The use of two or more lock-step cores for the invention as described herein provides an approach to symmetric high integrity processing that exploits the well-known safety-critical redundancy architectures used at the system and sub-system levels, such as flight control computers, but implements those principles at the component and sub-component level. The lock-step cores provide assurance of correct processing using redundancy in environments subject to errors occurring due to natural phenomena as well as possible nefarious actors. Thus, the root of trust architecture increases the reliability of the particular system without sacrificing the trust of the system. This allows the FPGA to be suitable for flight-critical and safety-critical applications, where current root of trust implementations are not suitable.
Upon receiving a command from the system processor 14, the system controllers 20 will send a message to the processor 22 to obtain certain cryptography keys for a certain operation. For example, the system controllers 20 may receive a command from the system processor 14 to determine whether the FPGA 16 can boot up in a safe manner. The processor 22 will then send a message to a cryptography processor 24 that includes accelerated functions and will perform some type of hash function or symmetric or asymmetric key operation to provide, for example, a digital signature for authentication of controller-embedded software for the FPGA 16. The process for providing asymmetric key cryptography employing private keys and public keys to encrypt and decrypt messages is well understood by those skilled in the art. The various keys employed for key cryptography are stored in a non-volatile memory (NVN) 26. Further, a physically unclonable function (PUF) 28 is employed to generate the necessary keys. The keys are provided by the NVM 26 or the PUF 28 as cipher data or plain text data to a user logic block 30 to determine if the keys are authentic, for example, do they match. The decision as to whether the keys are authentic determined by the user logic 30 is then sent to the processor 22 to analyze data from the system controllers 20 using multiple lock-step cores as described herein. Once the processor 22 performs its specific operation for the particular application, it will send a message to the system controller 20 to notify the system processor 14.
The fault-tolerant lock-step soft processor cores in the processor 22 act as a state machine coordinating the interactions between the cryptography processor 24, the system controllers 20 and the user logic 30, and is responsible for providing fault tolerance guarantees on root of trust operations. The processor 22 provides instructions to cryptography processors and brokers for all processing with external system resources. The cryptography processor 24 performs hash, symmetric and asymmetric key operations for root of trust, and provides additional cryptography processing capability to resource constrained system resources. The user logic 30 can contain digital logic to perform specific actions based on results from the cryptography processor 24, digital logic to perform authentication and attestation processing as directed by the processor 22, digital logic to handle signal and commands to external entities not handled by the system controllers 20, and digital logic to perform additional security related functions.
As mentioned, the present invention proposes multiple soft lock-step cores in the fault-tolerant processor 22 that simultaneously and in parallel operate on the various messages, instructions, commands and data received from the user logic 30 to provide a root of trust implementation in an embedded system at the sub-system level.
The present invention contemplates any suitable number of parallel cores in the processor 22 to obtain the desired level of safety for the particular application. In order to represent this,
As will be well understood by those skilled in the art, the several and various steps and processes discussed herein to describe the invention may be referring to operations performed by a computer, a processor or other electronic calculating device that manipulate and/or transform data using electrical phenomenon. Those computers and electronic devices may employ various volatile and/or non-volatile memories including non-transitory computer-readable medium with an executable program stored thereon including various code or executable instructions able to be performed by the computer or processor, where the memory and/or computer-readable medium may include all forms and types of memory and other computer-readable media.
The foregoing discussion discloses and describes merely exemplary embodiments of the present invention. One skilled in the art will readily recognize from such discussion and from the accompanying drawings and claims that various changes, modifications and variations can be made therein without departing from the spirit and scope of the invention as defined in the following claims.
Number | Name | Date | Kind |
---|---|---|---|
4168396 | Best | Sep 1979 | A |
4817140 | Chandra | Mar 1989 | A |
6065135 | Marshall et al. | May 2000 | A |
7290289 | Janke | Oct 2007 | B2 |
7496786 | Graham et al. | Feb 2009 | B2 |
8006100 | King et al. | Aug 2011 | B2 |
8516551 | Smith et al. | Aug 2013 | B2 |
8631247 | O'Loughlin et al. | Jan 2014 | B2 |
8738932 | Lee et al. | May 2014 | B2 |
9071446 | Kreft | Jun 2015 | B2 |
10089194 | Jain | Oct 2018 | B2 |
10244043 | Sato | Mar 2019 | B1 |
10417153 | Rota | Sep 2019 | B2 |
20010037450 | Metlitski | Nov 2001 | A1 |
20040186979 | Janke | Sep 2004 | A1 |
20050273602 | Wilson et al. | Dec 2005 | A1 |
20080082772 | Savagaonkar | Apr 2008 | A1 |
20100262811 | Moyer | Oct 2010 | A1 |
20110254602 | Steiner | Oct 2011 | A1 |
20120102334 | O'Loughlin | Apr 2012 | A1 |
20120272006 | Moyer | Oct 2012 | A1 |
20130019083 | Cain | Jan 2013 | A1 |
20130262917 | Takemori | Oct 2013 | A1 |
20150338835 | Holler | Nov 2015 | A1 |
20160046265 | Heise | Feb 2016 | A1 |
20170277898 | Powell | Sep 2017 | A1 |
20170357557 | Jain | Dec 2017 | A1 |
20180039544 | Scobie | Feb 2018 | A1 |
20180165224 | Brown | Jun 2018 | A1 |
20180285296 | Rota | Oct 2018 | A1 |
20180349214 | Johnson | Dec 2018 | A1 |
20190004582 | Rotem | Jan 2019 | A1 |
20190012242 | Ozer | Jan 2019 | A1 |
20190087575 | Sahita | Mar 2019 | A1 |
20190098072 | Sato | Mar 2019 | A1 |
Entry |
---|
Raytheon, “MYJK-185A, NSA-Certified Root of Trust Cryptographic Processor for Embedded Applications” www.raytheon.com/capabilites/cybersecurity/sis, copyright 2013, Raytheon Company, 2pgs. |