MILITARY ANTI-TAMPERING SOLUTIONS USING PROGRAMMABLE LOGIC

Similar documents
FPGA Design Security Solution Using MAX II Devices

DSP Development Kit, Stratix II Edition

AN 547: Putting the MAX II CPLD in Hibernation Mode to Achieve Zero Standby Current

Using the Nios Development Board Configuration Controller Reference Designs

Active Serial Memory Interface

Using MAX II & MAX 3000A Devices as a Microcontroller I/O Expander

White Paper The Need for a High-Bandwidth Memory Architecture in Programmable Logic Devices

FPGAs Provide Reconfigurable DSP Solutions

White Paper Low-Cost FPGA Solution for PCI Express Implementation

Implementing the Top Five Control-Path Applications with Low-Cost, Low-Power CPLDs

White Paper Taking Advantage of Advances in FPGA Floating-Point IP Cores

Design Tools for 100,000 Gate Programmable Logic Devices

Using MAX 3000A Devices as a Microcontroller I/O Expander

How FPGAs Enable Automotive Systems

AN 549: Managing Designs with Multiple FPGAs

Introduction. Design Hierarchy. FPGA Compiler II BLIS & the Quartus II LogicLock Design Flow

Enhanced Configuration Devices

White Paper Configuring the MicroBlaster Passive Serial Software Driver

ByteBlaster II Parallel Port Download Cable

Estimating Nios Resource Usage & Performance

Stratix II vs. Virtex-4 Performance Comparison

RLDRAM II Controller MegaCore Function

Implementing LED Drivers in MAX Devices

Stratix vs. Virtex-II Pro FPGA Performance Analysis

White Paper Assessing FPGA DSP Benchmarks at 40 nm

FPGA Co-Processing Architectures for Video Compression

White Paper Performing Equivalent Timing Analysis Between Altera Classic Timing Analyzer and Xilinx Trace

Table 1 shows the issues that affect the FIR Compiler v7.1.

White Paper Understanding 40-nm FPGA Solutions for SATA/SAS

Practical Hardware Debugging: Quick Notes On How to Simulate Altera s Nios II Multiprocessor Systems Using Mentor Graphics ModelSim

Benefits of Embedded RAM in FLEX 10K Devices

POS-PHY Level 4 MegaCore Function

Power Optimization in FPGA Designs

Using the Serial FlashLoader With the Quartus II Software

Nios II Embedded Design Suite 6.1 Release Notes

Increasing Productivity with Altera Quartus II to I/O Designer/DxDesigner Interface

CORDIC Reference Design. Introduction. Background

Video and Image Processing Suite

Simple Excalibur System

SONET/SDH Compiler. Introduction. SONET/SDH Compiler v2.3.0 Issues

RapidIO MegaCore Function

Enhanced Configuration Devices

Cyclone II FPGA Family

Simulating the ASMI Block in Your Design

Exercise 1 In this exercise you will review the DSSS modem design using the Quartus II software.

Arria II GX FPGA Development Board

December 2002, ver. 1.3 Application Note 191. Six individual interrupts Six-bit priority scheme Five-bit priority scheme plus one individual interrupt

Nios Soft Core Embedded Processor

UTOPIA Level 2 Slave MegaCore Function

Implementing LED Drivers in MAX and MAX II Devices. Introduction. Commercial LED Driver Chips

Logic Optimization Techniques for Multiplexers

Design Verification Using the SignalTap II Embedded

Design Guidelines for Optimal Results in High-Density FPGAs

PCI Express Multi-Channel DMA Interface

Nios II Embedded Design Suite 7.1 Release Notes

USB BitJetLite Download Cable

White Paper AHB to Avalon & Avalon to AHB Bridges

Table 1 shows the issues that affect the FIR Compiler, v6.1. Table 1. FIR Compiler, v6.1 Issues.

Excalibur Solutions DPRAM Reference Design

White Paper Enabling Quality of Service With Customizable Traffic Managers

DSP Builder. DSP Builder v6.1 Issues. Error When Directory Pathname is a Network UNC Path

AIRbus Interface. Features Fixed width (8-, 16-, or 32-bit) data transfers (dependent on the width. Functional Description. General Arrangement

Stratix FPGA Family. Table 1 shows these issues and which Stratix devices each issue affects. Table 1. Stratix Family Issues (Part 1 of 2)

Matrices in MAX II & MAX 3000A Devices

MAX 10 User Flash Memory User Guide

DDR & DDR2 SDRAM Controller Compiler

ByteBlaster II Download Cable User Guide

FPGA Power Management and Modeling Techniques

Altera ASMI Parallel II IP Core User Guide

White Paper. Floating-Point FFT Processor (IEEE 754 Single Precision) Radix 2 Core. Introduction. Parameters & Ports

Mixed Signal Verification of an FPGA-Embedded DDR3 SDRAM Memory Controller using ADMS

Simulating the PCI MegaCore Function Behavioral Models

DDR & DDR2 SDRAM Controller

Error Correction Code (ALTECC_ENCODER and ALTECC_DECODER) Megafunctions User Guide

White Paper Using the MAX II altufm Megafunction I 2 C Interface

ZBT SRAM Controller Reference Design

Signal Integrity Comparisons Between Stratix II and Virtex-4 FPGAs

Simultaneous Multi-Mastering with the Avalon Bus

Using Verplex Conformal LEC for Formal Verification of Design Functionality

For Quartus II Software. This Quick Start Guide will show you how to set up a Quartus

DDR & DDR2 SDRAM Controller Compiler

24K FFT for 3GPP LTE RACH Detection

Stratix II FPGA Family

DDR & DDR2 SDRAM Controller

AN423: Configuring the MicroBlaster Passive Serial Software Driver

RapidIO MegaCore Function

DDR & DDR2 SDRAM Controller Compiler

Introduction. Synchronous vs. Asynchronous Memory. Converting Memory from Asynchronous to Synchronous for Stratix & Stratix GX Designs

Nios Embedded Processor Development Board

EFEC20 IP Core. Features

Introduction to the Altera SOPC Builder Using Verilog Design

FFT MegaCore Function

Transient Voltage Protection for Stratix GX Devices

DDR and DDR2 SDRAM Controller Compiler User Guide

White Paper Compromises of Using a 10-Gbps Transceiver at Other Data Rates

System-on-a-Programmable-Chip (SOPC) Development Board

Introduction to Simulation of VHDL Designs Using ModelSim Graphical Waveform Editor. 1 Introduction. For Quartus Prime 16.1

Configuration via Protocol (CvP) Implementation in Altera FPGAs User Guide

Simulating the Reed-Solomon Model

Converting.srec Files to.flash Files for Nios Embedded Processor Applications

Transcription:

MILITARY ANTI-TAMPERING SOLUTIONS USING PROGRAMMABLE LOGIC Charlie Jenkins (Altera, San Jose, California, chjenkin@altera.com) Christian Plante (Altera, San Jose, California, cplante@altera.com) ABSTRACT Military applications are becoming increasingly complex. Major programs such as Future Combat Systems (FCS), Joint Strike Fighter F-35 (JSF), and the Joint Tactical Radio System (JTRS) are pushing technological capabilities to their limits. Due to the technology requirements and environments to which they are exposed, these military systems rely on programmable logic (FPGAs) to provide extreme flexibility plus protection from tampering. As FPGAs become an integral part of leading-edge architectural design replacing ASICs and ASSPs, the security of the FPGA design and configuration bitstream is of utmost importance. This paper describes two techniques configuration bitstream encryption and handshaking tokens for securing designers intellectual property (IP) within SRAM-based FPGAs. 1. INTRODUCTION Anti-tampering capabilities are imperative for today s varied military scenarios and applications. The exploitation of system vulnerabilities by enemies, former allies, and counterintelligence personnel can have serious military impacts, including faulty/compromised operations, reverseengineered technology for superior devices, and premature system obsolescence. Applications areas include: Missiles and munitions: To meet the long shelf life required by these applications, anti-tampering capabilities require non-volatile encryption key storage that eliminates the need for batteries. Electronic warfare: Non-volatile encryption key storage is ideal in applications where limited space, low maintenance, and ultimate reliability are required, and that necessitate the elimination of extra components like batteries. Secure communication: With the need to secure communication on the battlefield, the encryption of FPGA configuration bitstreams provides an additional security level above and beyond current methods used. Remote sensors and surveillance: The ability of FPGAs to protect critical IP is important for applications that are exposed to harsh environments throughout the battlefield. 2. ISSUE OF DESIGN SECURITY WITH FPGAS In order for an FPGA to accomplish a certain function, source code must be generated first. For SRAM-based FPGAs, the compiled version of this source code is called a programming file or, more simply, a configuration bitstream. Similar to standard microprocessors, the configuration bitstream, stored in external FLASH or other memory, must be programmed into the FPGA before it can start operating. Unfortunately hackers or rogue entities interested in capturing the source code for reverseengineering, tampering, or disabling purposes can try to read the content of the configuration memory, intercept the bitstream while it is being transferred to the FPGA, or read back the bitstream from the FPGA. The solution to this problem is the use of encryption. To protect the intellectual property (IP) implemented in the original code, designers need to encrypt the bitstream before access is granted to external parties, such as external contractors or contract manufacturers. Once the bitstream is encrypted, the target FPGA must implement internal circuitry to reliably and safely decrypt the encoded data, while preventing read-back or tampering. 3. METHODS FOR PROTECTING FPGA IP Two techniques, configuration bitstream encryption and handshaking tokens, can be used to secure IP within SRAM-based FPGAs. Bitstream encryption is better supported using the Advanced Encryption Standard (AES) (FIPS-197). AES is compatible with key lengths of 128, 192, and 256 bits. AES keys provide more stringent protection than other methods such as the 56-bit key size Data Encryption Standard (DES) and triple DES (112-bit effective key size). To understand the increased security level of AES, studies have shown that if a machine could discover a DES key every second, it would take approximately 149 trillion years to discover a 128-bit AES key. In order to enable encryption, keys are required to encode the bitstream generated by the design software tool (such as Altera Quartus II development software).

Figure 1. Design Security With FPGA-Based Key Figure 1 shows a diagram depicting the use of encryption keys. The chosen key must also be known by the AES decryptor inside in the FPGA. This key may be programmed permanently on the FPGA (non-volatile) or can be stored in a special memory location (volatile). The non-volatile key is stored in the FPGA using onetime programmable polyfuses and retains its information when the power is off, eliminating the need for unreliable battery backup in harsh military environments. The key is programmed into the FPGA during regular manufacturing flow, either before or after assembly onto the printed circuit board. Keys stored in volatile memory require an external backup battery when there is no power to the device. Keys can also be easily reprogrammed on the manufacturing line or in the field. For systems designed around FPGAs that do not offer on-board AES key support, the handshaking tokens method offers a valid alternative. With this method, the FPGA communicates with an external secure device, such as a CPLD, which includes a non-volatile encrypted token. The FPGA design must read this token and compare it with a matching token, otherwise the design will shut down. With these methods, the decryption key is securely stored inside the FPGA. Even if the configuration bitstream is captured, it is virtually impossible to decrypt without the appropriate key and therefore cannot be used to configure another FPGA. Further read-back of a decrypted configuration file is not allowed by some FPGA vendors. Reverse engineering of any FPGA design through the configuration bitstream is very difficult and timeconsuming, even without encryption. For high-density devices, the configuration file may contain millions of bits. Some FPGA vendors configuration file formats are proprietary and confidential, providing another layer of security. With the addition of configuration bitstream encryption, it might be easier and quicker to build a competitive design from scratch rather than trying to reverse engineer such a design. Tampering cannot be prevented if a volatile key is used because the key is erasable; once the key is erased, the device can be configured with any configuration file. For the non-volatile key solution, the device can be set to only accept configuration files encrypted with the stored key. A configuration failure signals possible tampering with the configuration file, whether in the external memory, during transmission between the external memory and the FPGA, or during remotely communicated system upgrades. This is another advantage of a non-volatile key. 4. TOKEN-BASED ENCRYPTION Configuration bitstream encryption is only available in high-density, high-performance, SRAM-based FPGAs. The following solution allows any FPGA design to remain secure even if the configuration bitstream is captured. This is accomplished by disabling the functionality of a user design within the FPGA until handshaking tokens are passed to the FPGA from a secure external device. The secure external device generates continuous handshaking tokens to the FPGA to ensure continuous operation. This concept is similar to the software license scheme shown in Figure 2. Configuring the FPGA is similar to installing software onto a computer; the configuration bitstream is not protected. The external secure device is similar to the license file. The software will only operate when a valid license file is present. Likewise, the user design within the FPGA will only operate when the handshaking tokens sent from the external secure device are valid. Figure 3 shows a simplified hardware implementation for this solution, where a CPLD is used as the secure external device because it is non-volatile and retains its configuration data during power down.

1. Install Software 1. Configure FPGA SRAM-Based FPGA... Configuration Data... Configuration or Flash Device 2. Software Operation 2. Device Operation...License... SRAM-Based FPGA...Handshaking Tokens... Secure Device Figure 2. Comparison of Software License Scheme and FPGA Security Scheme FPGA CPLD System Clock Clock RNG Random Number Counter Counter Encryptor Encryptor User Design Enable Comparator Handshaking Tokens Figure 3. Simplified Hardware Implementation of the FPGA Design Security Solution Once the FPGA is configured, its user design functionality is disabled. Then, after properly handshaking tokens with the external CPLD, the enable signal is asserted by the security block within the FPGA. The random number generator (RNG) generates and sends the initial counter value to the CPLD, which encrypts the counter value and sends the resulting handshaking token to the FPGA. If the handshaking token matches the data generated inside the FPGA, the enable signal is asserted, and the user design starts functioning. This process continues during the entire operation of the FPGA. A mismatch will cause the enable signal to go low and disable the functionality of the user design. Figure 4 shows an example of how the enable signal is used with a simple AND gate.

Clock Enable Clock FPGA Design With Security Scheme Clock Enable Clock User User Enable Figure 4. Design With Security Scheme The FPGA user design works only when the handshaking tokens from the external secure device and the data generated inside the FPGA are identical. Even if the FPGA configuration bitstream is stolen, it is useless, similar to software without a license. Therefore, the FPGA user design is secure from copying. This solution does not provide additional protection against reverse engineering (though difficult) and tampering. The security of the solution relies on the external device to be secure and the handshaking tokens to be unpredictable. A secure external device needs to be nonvolatile and to retain its configuration during power-down (e.g., CPLDs or security processors). The RNG in the solution is critical. It ensures that every time the device starts up, it uses a different initial value. This prevents anyone from storing the handshaking tokens in a storage device. To prevent someone from detecting the pattern in the handshaking tokens, a proven encryption algorithm such as AES should be used. To ensure the security scheme works properly, the system clock feeding the FPGA user design should be the same as the system clock feeding the security block. This prevents someone from disabling the security block when the enable signal is asserted. To further increase security, the comparator block can be duplicated several times to produce more enable signals to feed different portions of the user designs. 5. DESIGN SECURITY AND OUTSOURCING OF MANUFACTURING For cost reasons, manufacturers of military equipment are increasingly outsourcing the manufacturing of certain modules to foreign contractors. There is a growing concern that sensitive IP can be leaked to non-authorized entities. Thus, in some cases, FPGA-based IP has to be kept secret from the manufacturing subcontractor. Therefore, encryption keys should only be known by the original equipment manufacturer (OEM). From a development perspective, this is easily controlled by restricting access to the key inside the OEM s organization. Bitstreams can be encrypted and then easily and safely shared with outside contractors. On the hardware side of things, design security schemes based on non-volatile keys need to rely on a trusted entity being responsible for programming the key into the FPGA. Once programmed, the FPGA can be provided to the manufacturing company safely. Another approach has the subcontractor build the board and then send it to a trusted party for on-board programming of the non-volatile encryption key. This means that final system testing has to be done by this trusted partner, or requires the system to be shipped back to the original manufacturer. The use of a volatile key also requires the system be shipped to a trusted partner. This partner will have access to the key and the equipment needed to program it. Additionally, volatile keys can be programmed in the field. For such systems, a nonencrypted bitstream that does not include any sensitive IP can be generated to test the hardware system. The final key can then be programmed in the field by the trusted owner of the final equipment. 6. CONCLUSION Building on the success of the Stratix II design security implementation, Stratix III devices are the industry s first

FPGAs to support configuration bitstream encryption using AES and a 256-bit key with the option of volatile or nonvolatile on-chip storage. Other FPGA vendors only support encryption using a battery to power up or back up a volatile key. Only Stratix III FPGAs provide the choice between the flexibility of a battery-backed-up volatile key or the ultimate security of a non-volatile scrambled key. Moreover, Stratix III devices do not allow read-back of configuration data, thus providing an additional level security against reverse engineering. The following points summarize some of the key features of Altera s latest antitampering solutions: Both non-volatile encryption key storage (no battery backup required) and volatile (for field programmability) are supported. The encryption key is stored securely inside the FPGA, using internal circuit techniques virtually impossible to jeopardize. Once inside Altera FPGAs, the configuration file (encrypted or unencrypted) cannot be read back, adding another layer of security. Supports 128-bit and 256-bit AES encryption keys. FIPS-197 certified. In an era of ever-increasing security concerns, enhanced anti-tampering capabilities of Altera FPGAs provide military application designers the assurance that their IP within these systems is secure against copying, reverse engineering, and tampering. 7. REFERENCES [1] Altera, Design Security Using MAX II CPLDs, September 2004, http://www.altera.com/literature/wp/wp_m2dsgn.pdf. [2] Altera, Design Security in Stratix II Devices, http://www.altera.com/products/devices/stratix2/features/secu rity/st2-security.html

101 Innovation Drive San Jose, CA 95134 (408) 544-7000 http://www.altera.com Copyright 2006 Altera Corporation. All rights reserved. Altera, The Programmable Solutions Company, the stylized Altera logo, specific device designations, and all other words and logos that are identified as trademarks and/or service marks are, unless noted otherwise, the trademarks and service marks of Altera Corporation in the U.S. and other countries. All other product or service names are the property of their respective holders. Altera products are protected under numerous U.S. and foreign patents and pending applications, maskwork rights, and copyrights. Altera warrants performance of its semiconductor products to current specifications in accordance with Altera's standard warranty, but reserves the right to make changes to any products and services at any time without notice. Altera assumes no responsibility or liability arising out of the application or use of any information, product, or service described herein except as expressly agreed to in writing by Altera Corporation. Altera customers are advised to obtain the latest version of device specifications before relying on any published information and before placing orders for products or services.