AN 556: Using the Design Security Features in Intel FPGAs
                    
                        ID
                        683269
                    
                
                
                    Date
                    5/21/2021
                
                
                    Public
                
            
                        
                        
                            
                                Overview of the Design Security Feature
                            
                            
                        
                            
                                Hardware and Software Requirements
                            
                            
                        
                            
                                Steps for Implementing a Secure Configuration Flow
                            
                            
                        
                            
                            
                                Steps to Enable Tamper-Protection Bit Programming
                            
                        
                            
                            
                                Supported Configuration Schemes
                            
                        
                            
                                Security Mode Verification
                            
                            
                        
                            
                            
                                Serial Flash Loader Support with Encryption Enabled
                            
                        
                            
                            
                                Serial Flash Loader Support with Encryption Enabled for Single FPGA Device Chain
                            
                        
                            
                                JTAG Secure Mode for 28-nm and 20-nm FPGAs
                            
                            
                        
                            
                            
                                Document Revision History for AN 556: Using the Design Security Features in Intel® FPGAs
                            
                        
                    
                
                                                
                                                
                                                    
                                                    
                                                        Generating Single-Device .ekp File and Encrypting Configuration File using Intel® Quartus® Prime Software
                                                    
                                                    
                                                
                                                    
                                                    
                                                        Generating Single-Device .ekp File and Encrypting Configuration File using Command-Line Interface in Intel® Quartus® Prime Software
                                                    
                                                    
                                                
                                                    
                                                    
                                                        Generating Multi-Device .ekp File and Encrypting Configuration File using Intel® Quartus® Prime Software
                                                    
                                                    
                                                
                                            
                                        
                                                
                                                
                                                    
                                                    
                                                        Programming Volatile or Non-Volatile Key using Intel® FPGA Ethernet Cable and Intel® Quartus® Prime Software
                                                    
                                                    
                                                
                                                    
                                                    
                                                        Programming Single-Device Volatile or Non-Volatile Key using Intel® Quartus® Prime Software
                                                    
                                                    
                                                
                                                    
                                                    
                                                        Programming Single-Device Volatile or Non-Volatile Key using the Command-Line Interface in Intel® Quartus® Prime Software
                                                    
                                                    
                                                
                                                    
                                                    
                                                        Programming Multi-Device Volatile or Non-Volatile Key using Intel® Quartus® Prime Software
                                                    
                                                    
                                                
                                                    
                                                    
                                                        Programming Multi-Device Volatile or Non-Volatile Key using the Command-Line Interface in Intel® Quartus® Prime Software
                                                    
                                                    
                                                
                                                    
                                                    
                                                        Programming Key using JTAG Technologies
                                                    
                                                    
                                                
                                            
                                        Step 3: Configuring the 40-nm, 28-nm, or 20-nm FPGAs with Encrypted Configuration Data
The final step is to configure the protected 40-nm, 28-nm, or 20-nm FPGAs with the encrypted configuration file.
During configuration, the encrypted configuration data is sent to the 40-nm, 28-nm, or 20-nm FPGAs. Using the previously stored key, the FPGA decrypts the configuration data and uses the unencrypted data to configure itself. Only configuration files encrypted using the correct key are accepted by the FPGA for successful configuration. Without a correct key, a stolen encrypted file is useless.