首页 » 科学 » 浅析FPGA设计的安然性_密钥_器件

浅析FPGA设计的安然性_密钥_器件

南宫静远 2025-01-05 06:03:12 0

扫一扫用手机浏览

文章目录 [+]

  图1 FPGA与微处理器相连的系统  图2展示了同一个设计,但处理器集成在FPGA之中。
图2中采取的软微处理器是LatticeMico32 。
设计师构建理解扰器,因此加扰是机密的。
利用解扰器许可加密的指令存储在外部存储器。
为了加密位流,莱迪思为几款FPGA供应了128位AES密钥。
  

  图2 处理器集成在FPGA之中  首先,工程师运用莱迪思的软件设计工具套件ispLEVER ( 7.0或更高版本)开拓FPGA代码,完成综合、映射、布局布线和仿真后,产生位流,经末了验证后再用ispVM系统( 莱迪思的编程工具)对电路板编程。
当设计师对系统的功能感到满意时,此时就要来做保护设计的事情。
可以用莱迪思的ispLEVER工具或莱迪思的编程工具ispVM System对位流加密,用户可选择128位密钥。
编码的位流可以是十六进制(从0至F ,不区分大小写)或一个ASCII密钥(可用所有字母数字字符和空格,大小写敏感),然后利用任何非加密的文件编码将该位流加载到配置存储器中。
  

浅析FPGA设计的安然性_密钥_器件 浅析FPGA设计的安然性_密钥_器件 科学

  图3 用128位AES密钥保护设计  现在密钥该当已经保存在一个可编程存储区。
编程是通过器件的JTAG端口进行。
该当把稳到,用密钥对位流加了密,现在只能通过加密的位流对FPGA进行配置。
用sysCONFIG接口或JTAG接口可以对莱迪思的FPGA进行编程。
该sysCONFIG接口可以让用户利用集中配置模式,或Flash SPI ,或以并行的办法利用并行配置模式重新输入数据。
符合IEEE 1149.1和IEEE 1532标准的JTAG端口许可以突发位流(或快速编程)模式、或用1532模式对数据进行编程。
JTAG端口用来对器件中的AES 128位密钥编程。
不须要用特殊的模式来保存FPGA中的128位密钥。
  在莱迪思的FPGA中利用一个编码位流可以防止器件的配置被重新读取,但须要一些方法来确保配置能够精确地运作。
位流未加密时,FPGA实行CRC操作。
如果程序禁绝确,DONE旗子暗记保持在0,INITN变为0 。
用户仍旧可以访问JTAG Usercode寄存器。
对FPGA的位流译码时,它存储位流用户码,用来存放FPGA运用程序的版本号。
  图4展示了加密位流的数据路径。
当数据进入FPGA时,解码器读勾引程序,前面所有的数据被忽略。
纵然解码器检测到加密的文件,如果FPGA的密钥未被编程,数据则被阻挡,DONE旗子暗记保持在‘0 ’ (表示配置失落败) 。
如果密钥已被编程,FPGA检讨勾引程序,指出后面所有的数据应通过解码器。
然后FPGA检讨标准勾引程序,得知数据是否已被压缩。
如果数据没有被压缩,则将它直接发送到解码单元。
如果数据已压缩,就先把它送到解压缩引擎,然后再送到解码单元。
一旦通过CRC校验,即对SRAM进行编程。
DONE位被激活时,解压缩和译码擎不事情,许可其它JTAG链元件吸收配置数据。
  

浅析FPGA设计的安然性_密钥_器件 浅析FPGA设计的安然性_密钥_器件 科学
(图片来自网络侵删)

  图4 加密位流的数据路径  莱迪思的经济型ECP2/M FPGA拥有位流加密功能,内置闪存的非易失落LatticeXP2 FPGA也有此功能。
LatticeXP2 FPGA把SRAM映射合并入同一块芯片,设计和含有位流配置的Flash映射都在此芯片上事情。
当设计师重点关注电路板的面积和快速启动韶光时,这类器件特殊有用。
  1 内置闪存的FPGA  非易失落FPGA供应额外的Flash保护安全功能,可以防止内存因意外或未经授权的操作被擦除或重新编程。
Flash保护功能采取64位密钥。
  对器件进行删除或重新编程时, ispVM System会核查Flash是否被保护。
如果是,就哀求用户输入64位密钥,然后ispVM检讨这个密钥是否与存储在器件中的密钥同等,如果同等就实行操作。
但是,如果丢失了密钥,器件就再也不能被擦除了。
  这些安全性方法不仅保护了用户电路板上的设计,而且也防止了试图修正系统功能的盗版行为。
这些功能还有助于远程的系统更新。
莱迪思FPGA供应这一功能,利用户可以通过对FPGA重复编程来更新他们的系统,而不会中断它与周围元件的联系。
此功能被称为TransFR 。
  FPGA最值得把稳的的特点是设计职员很随意马虎对器件进行重构。
但是,重构常日意味着系统要中断很永劫光。
但是,莱迪思开拓的TransFR技能将重构的影响降至最低。
莱迪思的几个FPGA系列都支持TransFR技能,包括那些含有内置闪存的器件,如MachXO 、LatticeXP和LatticeXP2 ,以及像LatticeECP2 /M那样的SRAM FPGA。
  

  图5 用最短的中断系统韶光进行远程更新  TransFR是一种同时利用基本任务编程和边界扫描单元的技能。
基本任务编程修正非易失落存储器的内容(内部的或外部的) ,以便使FPGA的SRAM部分连续事情。
莱迪思的FPGA拥有可以取样和预加载的边界扫描单元,可以在编程时掌握FPGA的I/O。
  

  图6 实行TransFR的4个步骤  实行TransFR的4个步骤:  1,进行基本任务编程。
系统对FPGA的非易失落性存储器再编程,但不会中断SRAM的功能。
  2,可以锁定I/O的状态,用户可以保持或预先确定I/O的状态。
在全体重新配置过程中,I/O的值保持不变,以防止系统被关闭。
  3, 接着用JTAG命令把新的配置传输至非易失落存储器。
一完成对SRAM就实行全局复位,以便使该器件处于一个已知的状态。
然后开释I/O的状态,并再次锁定PLL。
  4,开释输出,内部逻辑停滞对I/O的监测。
  要利用TransFR,须要用到ispLEVER开拓工具和ispVM。
  用户通过利用128位AES密钥加密文件和Lattice TransFR技能完成了更新过程,但仍有可能由于系统本身的弱点或违法行为引发系统故障。
虽然FPGA的位流是加密的,但是造孽操作或传输中的缺点都可能破坏它,从而导致FPGA被壅塞,使系统无法精确地重启。
为理解决这个问题,莱迪思推出了“双勾引 ”功能。
  2 双勾引配置  在配置存储器中存储两个编程文件。
  

  图7 双勾引配置  激活PROGRAM引脚或启动JTAG刷新指令后,FPGA下载存储在Sector 1的位流 。
如果CRC出错,FPGA自动规复到Sector 0配置。
Lattice XP2非易失落FPGA也有此功能。
该Flash元件拥有主动配置,还有一个用来存放安全( “golden” )配置的SPI Flash。
  莱迪思拥有许多能帮助设计职员保障设计安全的产品。
Lattice ECP2/M FPGA是一款拥有128位AES密钥的高安全性器件。
这些经济的器件供应了大存储容量(高达5.3 Mbit)、高速I/O和SERDES 。
非易失落性LatticeXP2 FPGA是市场上一款很独特的器件,它有着极高的安全性。
由于采取了FlexiFlash技能,位流存储在器件的Flash中, 并由128位AES密钥对它进行保护。
此外, TransFR更是保障了绝对安全的远程系统更新。
  设计的安全性该当是设计过程的一部分,而不是事后再去考虑。
无论选择了哪种技能,最主要的是要防止设计被修改,无论这个修改行为是无意的还是造孽的。

标签:

相关文章