用单片机实现SRAM工艺FPGA的加密应用.pdfVIP

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
用单片机实现SRAM工艺FPGA的加密应用.pdf

用单片机实现 SRAM 工艺 FPGA 的加密应用 在现代电子系统设计中,由于可编程逻辑器件的卓越性能、灵活方便的可升级特性,而得到了广泛的应用。 由于大规模高密度可编程逻辑器件多采用SRAM 工艺,要求每次上电,对 FPGA 器件进行重配置,这就使 得可以通过监视配置的位数据流,进行克隆设计。因此,在关键、核心设备中,必须采用加密技术保护设 计者的知识产权。 1 基于 SRAM 工艺 FPGA 的保密性问题 通常,采用 SRAM 工艺的 FPGA 芯片的的配置方法主要有三种:由计算机通过下载电缆配置、用专用配置 芯片(如 Altera 公司的 EPCX 系列芯片)配置、采用存储器加微控制器的方法配置。第一种方法适合调试 设计时要用,第二种和第三种在实际产品中使用较多。第二种方法的优点在于外围电路非常简单,体积较 小,适用于不需要频繁升级的产品;第三种方法的优点在于成本较低,升级性能好。 以上几种方法在系统加电时,都需要将配置的比特流数据按照确定的时序写入SRAM 工艺的 FPGA。因此, 采用一定的电路对配置 FPGA 的数据引脚进行采样,即可得到配置数据流信息。利用记录下来的配置数据 可对另一块 FPGA 芯片进行配置,就实现了对 FPGA 内部设计电路的克隆。典型 的克隆方法见图 1。 2 对 SRAM 工艺 FPGA 进行有效加密的方法 由于SRAM 工艺的 FPGA 上电时的配置数据是可以被复制的,因此单独的一块 FPGA 芯片是无法实现有 效加密的。FPGA 芯片供应商对位数据流的定义是不公开的,因此无法通过外部的配置数据流信息推测内 部电路。也就是说,通过对 FPGA 配置引脚的数据进行采样可得到配置信息。但也不能知道内部电路结构。 如果在配置完成后使 FPGA 处于非工作状态,利用另外一块保密性较强的 CPU 产生密码验证信息与 FPGA 进行通信,仅在验证成功的情况下使能 FPGA 正常工作,则能有效地对设计进行加密。具体电路结构见图 2 。 系统加电时,由单片机对 SRAM 工艺的 FPGA 进行配置。配置完成时,FPGA 内部功能块的使能端为低, 不能正常工作。此时,单片机判断到配置完成后,将 ASET 信号置为高电平,使能 FPGA 内的伪码发生电 路工作;同时,单片机产生一个伪码验证信息,在 FPGA 中将两路伪码进行比较,两者完全匹配时,FPGA 内部电路正常工作,否则不能正常工作。加密电路主要利用了配置完成后处于空闲状态的单片机和 FPGA 内部分逻辑单元,没有增加硬件成本。 由上述讨论可知,系统的加密能力主要由CPU 的加密能力决定。这就要求 CPU 的加密算法要足够复杂, 使得对验证信息的捕获与识别足够困难。最常见的加密算法就是产生两个伪随机序列发生器:一个位于 SRAM 工艺的 FPGA 内;另一个位于CPU 内。当两者匹配时,通过验斑点。对PN 码有两点要求:一方 面,要求伪随机序列的长度足够长,使得要捕获整个序列不太可能;另一方面,伪随机序列的线性复杂度 要足够高,使推测伪随机序列的结构不易实现。 通常采用的伪随机码发生器的反馈电路如图 3 所示。实际中,可采用级数较高的线性反馈移位寄存器来产 生伪随机码。如采用 40 级线性移位寄存器产生的最大序列的周期为 2?40=10?12 。若将所有伪随机码截获 并存储,就需要 1000Gb 的存储空间;若码速率为 50Kbps,捕获时间将长达 5555 小时;当增加移位寄存 器的级数时,所需的存储空间和捕获时间都会呈指数增长,以至于难以实现。采用较为简单的线性反馈电 路被推测出反馈结构的可能性较大,因此实际的系统中,除了级数要较多之外,往往通过对多个线性移位 寄存器产生的伪码进行特定运算产生长码,以增加所产生伪码的线性复杂度。 3 FPGA 内的校验工作电路 在此采用 40 级线性反馈移位寄存器来产生伪随机码,特征多项式为 20000012000005 (八进制表示)。 其移位寄存器表示形式为:Bin=B23?XOR?B21XORB2XORB0,FPGA 内工作电路见图4 。 在上电之后,单片机将图 4 中的电路配置在 FPGA 中。配置完成后,单片机发送的ASET 信号由低电平跳 变为高电平,使得 FPGA 内的PN 码产生电路开始工作,并于 CPU 发送过来的 PN 码进行比较。比较结果 一致就使能 USER_DESIGN 模块正常工作。其中 PLL_BITSYS 模块用来发生 VERIFY_PN 的位同步时钟, 采用微分锁相原理实现。各种参考资料都有较多介绍,在此不再详述。 COMPARE_PN

您可能关注的文档

文档评论(0)

wuyouwulu + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档