小舍YZ 发表于 2017-7-13 15:29:12

加密模块设计

加密模块设计

目前由很多能实现FPGA加密的方法,如在 Xilinx Virtex-II和 Virtex-4这类的高端FPGA中,支持对配置数据流的加密操作。这样仅当 FPGA中含有相同的密钥时,这些数据流才可以工作。但是这种加密的方法对更为广泛的、对成本比较敏感的应用场合来说不甚合适。因此,这里利用另一种可行的身份识别法来防止意外拷贝。这种方法对所有FPGA家族都使用,包括低端的 Xilinx Spartan-3系列FPGA。

加密模块的原理图设计

唯一识别号及附加数据(常数)在内的 HASH运算结果,运算的结果是 160位的MAC(消息认证码),同时,FPGA内部也会同安全存储器一样进行包含密钥、随机数、附加数据及器件识别号在内的HASH计算并产生一个期望的MAC。然后,在 FPGA内会对这两个 MAC进行比较,如果一样,则 FPGA认为该电路是“合法”电路,因为它拥有正确的密钥。此时 FPGA进入正常工作状态,开启/执行其配置数据中的所有功能,会执行所有的功能。如果 FPGA和DS28EO1两者产生的MAC不匹配,则系统会认为该电路是一个“非法”电路,因为该系统不具有正确的密码。此时 FPGA进入非正常运行状态,只执行有限的功能。

d643189658 发表于 2017-8-11 18:44:11

谢谢楼主的分享
页: [1]
查看完整版本: 加密模块设计