基于SRAM的FPGA设计IP的解决方案
性
为了检验MAC发送方的真实性,MAC接收方产生一个随机数字并将其作为质询发送到发送方。然后,MAC发送方必须根据密钥、信息和接收方的质询计算新的 MAC。随后,发送方将计算结果返回给接收方。如果发送方被证实能够计算任何质询码的有效MAC,则可以确认其已知密码并被视为可靠。这个过程称为质询- 响应认证(参见图1)。
用于计算MAC的算法有多种,例如Gost-Hash、HAS-160、HAVAL、MDC-2、MD2、 MD4、MD5、RIPEMD、SHA系列、Tiger和WHIRLPOOL。经过仔细审议并被国际认可的一种单向散列算法是SHA-1,这种算法由美国国家标准技术研究所(NIST)开发。SHA-1已经纳入国际标准ISO/IEC 10118-3:2004。
通过NIST网站可以查询SHA-1算法的数学依据2,SHA-1算法具有以下显著特征:
不可逆:确定与MAC对应的输入在计算上是不可行的。
防冲突:不能找出多个可产生给定MAC的输入消息。
高雪崩效应:输入的任何改变都将导致MAC结果的重大改变。
由于上述原因,以及国际上对该算法的认定,SHA-1成为安全存储器质询-响应认证的最佳选择。
硬件实现
质询-响应认证方案可以作为基于SRAM的FPGA系统设计的一部分实施,这种方式成本低廉(图2)。该例中,安全存储器件仅通过一个引脚连接到配置为双向(开漏)通信的FPGA引脚。连
接至VDD的电阻为安全存储器供电并为漏极开路通信提供偏置。Maxim的DS28E01 1Kb保护型1-Wire EEPROM带有SHA-1引擎,非常适合这种设计。该器件包含一个SHA-1引擎、128字节用户存储器、可用于芯片内部操作但不能从外部读取的密钥以及唯一的、不可更改的识别码。
图2. 该简化框图中,利用一片1-Wire安全存储器保护FPGA。
DS28E01的1-Wire接口将通信通道减少至单个FPGA引脚,用于质询-响应认证。因为FPGA的I/O引脚常常受限,这种安全方案对系统的影响最小。另一种可构建的实施方案是利用FPGA实现通用I²C接口,通过DS28CN01 (等效于DS28E01的I²C器件)进行认证,或通过在小规模ASIC或CPLD中实现SHA-1引擎和其它功能。但是,如果安全保护是器件的唯一功能,使用ASIC会大大增加成本。
为了加强DS28E01的安全特性,FPGA必须能够进行以下操作:
产生质询随机数(片上随机数发生器通常产生伪随机数,不具备和真随机数同等的安全性)。
已知用于内部操作的安全密钥,但不能从外部侦测。
计算包括密匙、随机数及附加数据在内的SHA-1 MAC,类似于安全存储器。
逐字节比较数据,使用FPGA实现CPU的异或功能。
关于SHA-1 MAC计算的详细信息,请查询安全散列标准2。应用笔记3675:"保护您的研发成果—双向认证及软件功能保护"给出了安全存储器架构及其原理的技术细节。
一些主要的FPGA供应商提供类似于微控制器功能的宏。Xilinx®微控制器功能占用192个逻辑单元,这仅仅是一片Spartan®-3 XC3S50器件的11%。Altera®器件中相似的微处理器占用850个逻辑单元,相当于EP2C5 (Cyclone® II系列的最小规模)的18.5%。
工作原理
上电时,FPGA从其配置存储器开始自行配置。当前的FPGA微控制器功能生效并执行质询-响应认证,也称为敌我识别(IFF),这个识别过程包含以下步骤:
产生一个随机数,将其作为质询(Q)发送至安全存储器。
通知安全存储器根据其密匙、质询、唯一识别码及其它固定数据计算SHA-1 MAC。
根据相同输入、安全存储器使用的常数以及FPGA密钥计算SHA-1 MAC,即所预期的响应(MAC1)。
将安全存储器计算的SHA-1 MAC (读取认证MAC)作为响应(MAC2)与所预期的响应(MAC1)进行比较。
如果MAC1、MAC2一致,FPGA将其环境认定为"朋友",因为它显然知道密钥。FPGA转变为正常工作,激活/执行所有配置编码定义的功能。但是,如果两个MAC不同,环境则必被认定为"敌人"。这种情况下,FPGA执行应用相关的操作而不是正常工作。
为什么该过程是安全的?
除了SHA-1提供的固有安全性以外,上述IFF认证过程的主要安全单元是密钥,安全存储器或FPGA都不能对其进行读取。并且,因为比特流中的数据杂乱无章,当FPGA自我配置时,对配置流的窃听不会泄露密钥。考虑到数据字节的尺寸,对比特流进行逆向工程以推测设计架构非常耗时,几乎不可能完成该项任务。
另一个至关重要的安全措施是质询的随机性。可预测的质询(常数)产生可预测的响应,该过程可以记录一次,随后由模拟安全存储器的微控制器重放。利用可预测的质询码,微控制器可以成功地让FPGA将其认定为"朋友"。IFF方法中质询码的随机性
- 一种消防应急灯具专用控制芯片的设计(11-02)
- 基于FPGA的8段数码管动态显示IP核设计(02-03)
- 基于FPGA和IP Core的定制缓冲管理的实现(08-14)
- 基于Altera ASI IP核的ASI发送卡实现(02-25)
- FPGA的高速多通道数据采集控制器IP核设计(04-22)
- 基于EDA或FPGA的IP保护的实现(09-16)