



下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 利用异步采样电路提高SRAM工艺FPGA的设计安全性 陈文涛, 金德鹏, 曾烈光 时间:2008年05月07日 字 体: 大 中 小 关键词: 摘要:关键词: SRAM工艺FPGA 设计安全性 异步采样电路 M序列12。异
2、步电路的竞争和险象问题所导致的不确定性,是数字电路设计中令人头疼的问题。但是,如果把这种不确定性应用在本安全方案中,同样可以困扰剽窃者,从而更有效地保护设计。为此,本文提出了利用异步采样电路的不确定性提高SRAM工艺FPGA设计安全性的方法,以提高系统的安全性。1 方案简介1.1 设计方案的指导思想(1) CPLD是难以用反向工程等物理手段进行破解的,而且用这些方法破解CPLD的成本和设计的开发成本相近。Xilinx公司声称其CoolRunner-II系列CPLD的安全性完全可以达到ASIC相当的等级3。并且,CPLD也可以用抗攻击性强的小规模反熔丝FPGA来代替4。(2) CPLD中触发器资
3、源较少,因此应尽量降低CPLD中的电路复杂度。本方案借助了跳频的理念,在FPGA和CPLD中分别保存两个密钥表,在一开始同步之后,FPGA中的密钥选择状态机根据异步采样电路输出的状态跳转指示信号进行跳转。同时CPLD接收FPGA送来的状态跳转信号,其中的密钥状态机也进行相应的跳转,并将密钥传回给FPGA。在没有差错的情况下,这两个状态机将一致地跳转。FPGA通过对CPLD送来的密钥进行确认来验证CPLD的合法性:检验是否和自己的密钥状态机所选择的密钥一致,如果一致,则说明所连接的CPLD为合法的CPLD,FPGA电路正常工作;否则认为所连接的CPLD为非法,停止FPGA电路工作。由以上指导思想
4、设计的系统框图如图1所示。此外,CPLD向FPGA传递的密钥先利用M序列进行加密,这样使得对系统的破解首先需要对M序列加密算法进行破解,从而进一步提高了系统的抗攻击能力。1.2 异步采样电路异步采样模块的VHDL实现如下:-this process is triggered by clksprocess(rst, clks)beginif rst=0 thenff1 <= (others=>0);ff2 <= (others=>0);elsif clksevent and clks=1 thenff1 <= din; -din is the signal trig
5、gered by clkff2 <= ff1;end if;end process;- this process is triggered by clkprocess(rst, clk)beginif rst=0 thenff3 <= (others=>0);ff4 <= (others=>0);elsif clkevent and clk=1 thenff3 <= ff2;ff4 <= ff3;end if;end process;dout <= ff4; - dout is output random signal其中:din为同步于clk的
6、输入序列,dout为输出的随机序列。将本文所设计的方法应用到Altera公司的Cyclone5系列FPGA中,利用Quartus II中的SignalTapII Logical Analyzer工具,两次采样复位后FPGA内异步采样电路的输入输出信号,得到如图3所示的波形,其中两个时钟:clk为2.000MHz,clks为2.048MHz。观察系统复位后异步采样电路输出序列的随机性可以发现,每次将系统复位后,采用同步电路设计的伪随机序列发生器产生相同的伪随机序列(din);但是,将这个伪随机序列(din)输入异步采样电路后,在输出(dout)却得到不同的随机序列。这说明同一块电路板每次上电时都
7、将生成不同的随机序列。1.3 密钥选择状态机FPGA和CPLD中各有一个完全相同的密钥选择状态机,该状态机根据异步采样电路输出的随机序列进行跳转,其跳转规则可以自定义。在本文设计的系统中,密钥表中存放有8个32位长的密钥,密钥状态机共有8个状态,记为状态0状态7,每个状态分别对应一个密钥,记为密钥0密钥7。假设当前状态为状态i,异步采样电路的输出为j,其中i、jN,且0i, j7。那么可以采用如下简单的跳转规则:当采样电路的输出为0时,跳转到状态0;否则,跳转到状态(i+j)mod8。为了提高系统的安全性,也可以采用各种无序的跳转规则,通过改变跳转规则和密钥表,可以得到不同的系统。1.4 M序
8、列加密解密电路由于CPLD向FPGA传递密钥之前,先利用M序列进行加密,使得对系统的破解首先需要对M序列加密算法进行破解,这样既防止了密钥的明文传输,又提高了系统的安全性。之所以采用M序列作为加密算法,主要考虑的是解密的自同步特性。此外根据本设计的假设即CPLD的破解是不可行的,考虑到CPLD触发器资源紧张,对FPGA向CPLD之间的跳转指示信号的传输没有进行加密,为此而节省了CPLD中的电路。M序列的级数越大,生成的随机序列的周期越长,破解的难度也越大。这里采用20阶的M序列,其本原多项式为x20+x3+1。1.5 密钥校验2 安全性分析这里列举几种常见的攻击方法,并简要分析本方案在这些攻击
9、下的安全性。由于本设计假设CPLD的破解是不可行的,所以不考虑对CPLD进行反向工程直接破解等方法。2.1 对配置数据流进行采样剽窃者通过对FPGA的配置数据引脚(图1中的位置)进行采样,得到该FPGA的配置数据流,实现对FPGA内部设计电路的克隆。这种方法显然是不可行的,因为FPGA只有在确认了所连接的为合法CPLD以后才能正常工作,也就是说,需要同时克隆一份CPLD内的设计才能使得FPGA正常工作。2.2 对密钥数据流进行采样剽窃者利用2.1中所述方法对FPGA内部设计电路进行克隆以后,又对密钥数据流(图1中的位置)进行采样,用存储器将这些密钥数据流存起来,在FPGA上电后将这个密钥数据流
10、发送给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序列生成多项式、密钥个数、密钥长度、密钥状态机个数以及密钥选择状态机转移规则
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 电器具生产过程中的能源管理考核试卷
- 稀土金属冶炼与冶炼设备出口策略考核试卷
- 设备噪声控制与振动分析考核试卷
- 如何设计整个系统架构
- 环保职业卫生课件
- 企业资产管理软件操作教程课件
- 医院病案管理模板
- 2019-2025年标准员之专业管理实务提升训练试卷B卷附答案
- 2025年特种装备电缆合作协议书
- 2025年年快手短视频合作协议书
- 个人阅兵申请书
- 颈椎病课件完整版
- 2025年国家药监局医疗器械技术审评检查大湾区分中心事业编制人员招聘5人历年高频重点提升(共500题)附带答案详解
- 巡逻盘查培训课件
- GB/T 39733-2024再生钢铁原料
- 《工业机器人现场编程》课件-任务3.涂胶机器人工作站
- 程序设计高级应用(Java程序设计)知到智慧树章节测试课后答案2024年秋山东劳动职业技术学院
- 2025年教师资格考试高级中学学科知识与教学能力物理试题与参考答案
- 安徽工业大学《工程经济与项目管理》2022-2023学年第一学期期末试卷
- 西华师范大学《景观生态学》2022-2023学年第一学期期末试卷
- 肠瘘 课件教学课件
评论
0/150
提交评论