当前位置:首页 > EDA > 电子设计自动化
[导读]随着FPGA的容量、性能以及可靠性的提高及其在消费电子、汽车电子等领域的大规模应用,FPGA设计的安全性问题越来越引起人们的关注。相比其他工艺FPGA而言,处于主流地位的SRAM工艺FPGA有一些优势,但是由于SRAM的易失

随着FPGA的容量、性能以及可靠性的提高及其在消费电子、汽车电子等领域的大规模应用,FPGA设计的安全性问题越来越引起人们的关注。相比其他工艺FPGA而言,处于主流地位的SRAM工艺FPGA有一些优势,但是由于SRAM的易失性,掉电以后芯片中的配置信息将丢失,所以每次系统上电时都需要重新配置。这就使得剽窃者可以通过对FPGA的配置数据引脚进行采样,得到该FPGA的配置数据流,实现对FPGA内部设计电路的克隆。为了保护设计者的知识产权以及推动SRAM工艺FPGA更大规模的应用,产业界和学术界从加密算法的角度对SRAM工艺FPGA的设计安全性提出了多种解决方案 [1~2]。

异步电路的竞争和险象问题所导致的不确定性,是数字电路设计中令人头疼的问题。但是,如果把这种不确定性应用在本安全方案中,同样可以困扰剽窃者,从而更有效地保护设计。为此,本文提出了利用异步采样电路的不确定性提高SRAM工艺FPGA设计安全性的方法,以提高系统的安全性。

1 方案简介

1.1 设计方案的指导思想

(1) CPLD是难以用反向工程等物理手段进行破解的,而且用这些方法破解CPLD的成本和设计的开发成本相近。Xilinx公司声称其CoolRunner- II系列CPLD的安全性完全可以达到ASIC相当的等级[3]。并且,CPLD也可以用抗攻击性强的小规模反熔丝FPGA来代替[4]。

(2) CPLD中触发器资源较少,因此应尽量降低CPLD中的电路复杂度。

本方案借助了跳频的理念,在FPGA和CPLD中分别保存两个密钥表,在一开始同步之后,FPGA中的密钥选择状态机根据异步采样电路输出的状态跳转指示信号进行跳转。同时CPLD接收FPGA送来的状态跳转信号,其中的密钥状态机也进行相应的跳转,并将密钥传回给FPGA。在没有差错的情况下,这两个状态机将一致地跳转。FPGA通过对CPLD送来的密钥进行确认来验证CPLD的合法性:检验是否和自己的密钥状态机所选择的密钥一致,如果一致,则说明所连接的CPLD为合法的CPLD,FPGA电路正常工作;否则认为所连接的CPLD为非法,停止FPGA电路工作。由以上指导思想设计的系统框图如图1所示。

 


此外,CPLD向FPGA传递的密钥先利用M序列进行加密,这样使得对系统的破解首先需要对M序列加密算法进行破解,从而进一步提高了系统的抗攻击能力。

1.2 异步采样电路

温度的变化、电压的波动等因素都会使晶振所输出的时钟发生抖动。因此,用一个时钟去采样另一个时钟驱动的信号,其采样值是不可预测的。异步采样电路的机理就是利用两个时钟之间相位和频率的不确定性,产生一个不可预测的序列。单比特异步采样电路的示意图如图2所示。图中有4个触发器(FF1、FF2、FF3、 FF4)和两个时钟(clk、clks)。FF1、FF2由clks信号驱动,其中FF1是用于防止亚稳态出现的触发器,它的输入信号同步于clk的信号,FF2的输出信号则同步于clks的信号。FF3、FF4由clk信号驱动,其中FF3的作用和FF1类似,用于防止亚稳态的出现,它的输入信号同步于clks的信号;FF4的输出信号则同步于clk的信号。通过上述处理后,FF4的输出产生了一个随机序列,这个随机序列不同于同步电路产生的伪随机序列,其状态的转移同温度、电压等外界因素有关,是一个完全不可预测的随机序列。此外,异步采样电路对两个时钟之间的相位敏感,所以在电路板每次上电时所生成的序列也是不同的。

 


异步采样模块的VHDL实现如下:

--this process is triggered by clks

process(rst, clks)

begin

if rst=‘0’ then

ff1 <= (others=>‘0’);

ff2 <= (others=>‘0’);

elsif clks‘event and clks=‘1’ then

ff1 <= din; --din is the signal triggered by clk

ff2 <= ff1;

end if;

end process;

-- this process is triggered by clk

process(rst, clk)

begin

if rst=‘0’ then

ff3 <= (others=>‘0’);

ff4 <= (others=>‘0’);

elsif clk′event and clk=‘1’ then

ff3 <= ff2;

ff4 <= ff3;

end if;

end process;

dout <= ff4; -- dout is output random signal

其中:din为同步于clk的输入序列,dout为输出的随机序列。

将本文所设计的方法应用到Altera公司的Cyclone[5]系列FPGA中,利用Quartus II中的SignalTapII Logical Analyzer工具,两次采样复位后FPGA内异步采样电路的输入输出信号,得到如图3所示的波形,其中两个时钟:clk为2.000MHz,clks 为2.048MHz。观察系统复位后异步采样电路输出序列的随机性可以发现,每次将系统复位后,采用同步电路设计的伪随机序列发生器产生相同的伪随机序列 (din);但是,将这个伪随机序列(din)输入异步采样电路后,在输出(dout)却得到不同的随机序列。这说明同一块电路板每次上电时都将生成不同的随机序列。

 


1.3 密钥选择状态机

FPGA 和CPLD中各有一个完全相同的密钥选择状态机,该状态机根据异步采样电路输出的随机序列进行跳转,其跳转规则可以自定义。在本文设计的系统中,密钥表中存放有8个32位长的密钥,密钥状态机共有8个状态,记为状态0~状态7,每个状态分别对应一个密钥,记为密钥0~密钥7。

假设当前状态为状态i,异步采样电路的输出为j,其中i、j∈N,且0≤i, j≤7。那么可以采用如下简单的跳转规则:当采样电路的输出为0时,跳转到状态0;否则,跳转到状态(i+j)mod8。为了提高系统的安全性,也可以采用各种无序的跳转规则,通过改变跳转规则和密钥表,可以得到不同的系统。

1.4 M序列加密解密电路

由于CPLD向 FPGA传递密钥之前,先利用M序列进行加密,使得对系统的破解首先需要对M序列加密算法进行破解,这样既防止了密钥的明文传输,又提高了系统的安全性。之所以采用M序列作为加密算法,主要考虑的是解密的自同步特性。此外根据本设计的假设即CPLD的破解是不可行的,考虑到CPLD触发器资源紧张,对 FPGA向CPLD之间的跳转指示信号的传输没有进行加密,为此而节省了CPLD中的电路。

M序列的级数越大,生成的随机序列的周期越长,破解的难度也越大。这里采用20阶的M序列,其本原多项式为x20+x3+1。

1.5 密钥校验

CPLD 将其密钥状态机所对应的密钥回送给FPGA,FPGA则通过对CPLD送来的密钥进行确认来验证CPLD的合法性。为了不至于多占用引脚,32位密钥是串行传输的。串行传输给剽窃者的破解也增加了难度,但同时带来的问题是:FPGA需要先进行同步和串并转换之后才能进行密钥校验。

 


密钥校验的状态机如图4所示。状态机共有失步、预同步、同步和保护四种状态。预同步状态的设置是为了防止假同步,只有连续三次校验正确才认为找到了同步。保护状态的设置是为了防止误码引起不必要的失步,使得偶尔的误码并不会导致校验状态机失步。下面分别介绍密钥校验电路在这四种状态的具体工作方式:

(1)失步状态:系统刚启动时,FPGA的密钥校验状态机处于失步状态,此时异步采样电路不工作,输出为0,CPLD一直发送密钥0。密钥校验电路在M序列解密电路输出的串行密钥流里搜索密钥0的码型,在搜索到密钥0的码型后,密钥校验状态机跳转到预同步状态。

(2)预同步状态:当密钥校验状态机处于预同步状态时,异步采样电路仍然不工作,输出跳转指示为0,CPLD仍发送密钥0。密钥校验电路进行密钥0校验,如果连续三次密钥校验正确,则进入同步态;否则返回失步态重新进行密钥搜索。

(3)同步状态:此时异步采样电路开始工作,输出随机序列指示FPGA和CPLD中两个密钥状态机进行跳转。此时密钥校验电路将CPLD送来的密钥和FPGA内部选择的密钥进行对比,如果发生校验错误则跳转至保护状态;否则继续进行密钥校验工作。

(4)保护状态:异步采样电路依然工作,密钥校验电路继续进行密钥校验,如果连续三次密钥校验错误则跳转到失步状态重新进行密钥搜索;否则返回同步状态。

在密钥校验电路中设有错误计数器,该计数器在失步状态下计数。一旦错误计数器的计数超过设定的阈值,则认为密钥检验失败,停止FPGA电路的工作使能。

2 安全性分析

这里列举几种常见的攻击方法,并简要分析本方案在这些攻击下的安全性。由于本设计假设CPLD的破解是不可行的,所以不考虑对CPLD进行反向工程直接破解等方法。

2.1 对配置数据流进行采样

剽窃者通过对FPGA的配置数据引脚(图1中的位置①)进行采样,得到该FPGA的配置数据流,实现对FPGA内部设计电路的克隆。

这种方法显然是不可行的,因为FPGA只有在确认了所连接的为合法CPLD以后才能正常工作,也就是说,需要同时克隆一份CPLD内的设计才能使得FPGA正常工作。

2.2 对密钥数据流进行采样

剽窃者利用2.1中所述方法对FPGA内部设计电路进行克隆以后,又对密钥数据流(图1中的位置②)进行采样,用存储器将这些密钥数据流存起来,在FPGA上电后将这个密钥数据流发送给FPGA,企图模拟一个合法的CPLD。

这种方法也是不可行的。因为异步采样电路对两个时钟之间的相位敏感,所以在电路板每次上电时所生成的随机序列是不同的,也就是说,每次上电后产生的密钥数据流是不同的。因此,经过这次采样得到的密钥数据流,下次上电时能用的可能性很小。

2.3 CPLD工作原理分析

由以上分析可以发现,本方案能够很好地抵抗克隆攻击。所以,要破解本方案,剽窃者只有同时对FPGA和CPLD之间的数据进行采样(图1中的位置②和③),根据CPLD的输入输出分析CPLD的工作原理,从算法层面上破解CPLD,但很难成功破解。因为:

(1)由于FPGA和CPLD之间的密钥数据流经过M序列加密以后再进行传输,所以破解M序列加密算法是分析CPLD的第一步。同时加密时因采用了20阶M序列,并且每32个周期改变一下密钥,提高了序列综合进行分析的难度。

(2)有8个32位的密钥,而密钥的长度和个数对于剽窃者来说都是未知的。

(3)在破解了M序列加密算法和获得所有的密钥以后,还需要破解毫无规律的密钥选择状态机。即使一个8状态的状态机,因每个状态有8种转移的可能性,总的转移关系就有88=16 777 216种。

因此,想要破解本系统所需的精力和成本都相当高。剽窃者需要知道足够的系统设计参数,例如M序列生成多项式、密钥个数、密钥长度、密钥状态机个数以及密钥选择状态机转移规则等,才能对本方案成功破解。

对 FPGA设计安全性的思考源于所采用的Xilinx公司的Spartan3系列和Altera公司的Cyclone系列FPGA进行产品的开发。本文所提出的方案是利用异步采样电路的不确定性使得系统不易被克隆。将该方案融合到其他加密方案中,可进一步提高这些方案的安全性。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

在数字化浪潮席卷全球的今天,FPGA技术正成为驱动创新的核心引擎。2025年8月21日,深圳将迎来一场聚焦FPGA技术与产业应用的盛会——2025安路科技FPGA技术沙龙。本次沙龙以“定制未来 共建生态”为主题,汇聚行业...

关键字: FPGA 核心板 开发板

在现代电子系统中,现场可编程门阵列(FPGA)凭借其开发时间短、成本效益高以及灵活的现场重配置与升级等诸多优点,被广泛应用于各种产品领域。从通信设备到工业控制,从汽车电子到航空航天,FPGA 的身影无处不在。为了充分发挥...

关键字: 可编程门阵列 FPGA 数字电源

2025年8月4日 – 提供超丰富半导体和电子元器件™的业界知名新品引入 (NPI) 代理商贸泽电子 (Mouser Electronics) 即日起开售Altera®的Agilex™ 3 FPGA C系列开发套件。此开...

关键字: FPGA 边缘计算 嵌入式应用

内窥镜泛指经自然腔道或人工孔道进入体内,并对体内器官或结构进行直接观察和对疾病进行诊断的医疗设备,一般由光学镜头、冷光源、光导纤维、图像传感器以及机械装置等构成。文章介绍了一款基于两片图像传感器和FPGA组成的微型3D内...

关键字: 微创 3D内窥镜 OV6946 FPGA

运用单片机和FPGA芯片作为主控制器件 , 单片机接收从PC机上传过来的显示内容和显示控制命令 , 通过命令解释和数据转换 , 生成LED显示屏所需要的数据信号和同步的控制信号— 数据、时钟、行同步和面同步 。FPGA芯...

关键字: 单片机 FPGA LED显示屏

在异构计算系统中,ARM与FPGA的协同工作已成为高性能计算的关键架构。本文基于FSPI(Fast Serial Peripheral Interface)四线模式,在150MHz时钟频率下实现10.5MB/s的可靠数据...

关键字: ARM FPGA FSPI

在全球FPGA市场被Xilinx(AMD)与Intel垄断的格局下,国产FPGA厂商高云半导体通过构建自主IP核生态与智能时序约束引擎,走出差异化高端化路径。本文深入解析高云半导体FPGA工具链的两大核心技术——全栈IP...

关键字: FPGA 高云半导体

2025年6月12日,由安路科技主办的2025 FPGA技术沙龙在南京正式召开,深圳市米尔电子有限公司(简称:米尔电子)作为国产FPGA的代表企业出席此次活动。米尔电子发表演讲,并展出米尔基于安路飞龙派的核心板和解决方案...

关键字: FPGA 核心板 开发板

高 I/O、低功耗及先进的安全功能,适用于成本敏感型边缘应用

关键字: FPGA I/O 机器视觉

本文讨论如何为特定应用选择合适的温度传感器。我们将介绍不同类型的温度传感器及其优缺点。最后,我们将探讨远程和本地检测技术的最新进展如何推动科技进步,从而创造出更多更先进的温度传感器。

关键字: 温度传感器 CPU FPGA
关闭