找回密码
 注册
关于网站域名变更的通知
查看: 400|回复: 1
打印 上一主题 下一主题

利用1-Wire®接口的SHA-1安全存储器实现Xilinx® FPGA的识别及防拷贝机制

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2019-5-14 17:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
利用1-Wire®接口的SHA-1安全存储器实现Xilinx® FPGA的识别及防拷贝机制
1 X- B- J% P8 F$ M% H+ o* x7 w) P

0 O' K- z0 K. E9 a) D  j$ F1 j5 e动机
" W7 V- S, h: v0 u开发电子产品,包括嵌入式FPGA的配置代码,其成本是相当高的。因此应当防止未经授权的机构对这些设计和配置进行拷贝,以保护设计者的知识产权。有很多种方法能实现这样的保护功能。如在Xilinx Virtex-II®和Virtex-4®这类的高端FPGA中,支持对配置数据流的加密操作。这样仅当FPGA中含有相同的密钥时,这些数据流才可以工作。但是这种加密的方法对更为广泛的、对成本很敏感的应用场合来说不甚合适。因此,这里利用另一种可行的身份识别法来防止意外拷贝。这种方法对所有FPGA家族都适用,包括低端的Xilinx Spartan-3®和Spartan-6® FPGA。
4 o# H6 J7 v) F7 {* X
# b( T- A) G% u+ o
前提
) t4 y8 S0 X3 F+ r在身份识别的概念中,要求FPGA的设计者实现与一个安全存储器通讯的功能以进行认证工作。图1是实现该设计的一个简化原理图。4 K' m& H: X" {  j. t: u6 C: b
3 X. `  e3 L( A

" @, G- {* n' z/ L8 s5 }' X" W3 h图1. Maxim的1-Wire存储器件为FPGA提供安全控制和保护的简化框图
; l( w) _. |; U) e1 f
5 }# w8 z& K3 X安全存储芯片需满足下列要求:
  • 包含用于芯片内部操作的密钥,该密钥对外界不可见。
  • 包含一个唯一的不可改变的识别号。可用该识别号来计算一个与设备绑定的密钥。
  • 能够进行包含密钥、随机数(用做质询机制)、唯一识别号及附加数据(常数)在内的HASH运算。
    + v& ]. e6 R2 y1 O+ ~" Z
为了满足应用所需的安全性,该HASH算法应满足:
  • 不可逆—要使从一个HASH结果逆推出与之相关的输入数据在计算上是不可行的。
  • 防“碰撞—使用另外一组输入数据来产生一个相同的HASH结果是不可行的。
  • 具有极高的雪崩效应—输入数据的任何变化,都会极大的影响到HASH运算结果。
    + }' a$ k7 V6 o; b9 K5 I3 Y# N
SHA-1算法—一个被全面而广泛验证的单向HASH算法可以满足上述需求。该算法由美国国家标准技术局开发,被ISO/IEC 10118-3:2004国际标准所采用。公众可在NIST的网站上获得该算法的数学原理。
: g! C% s! p4 Q  y  {) j, Q
3 f! L" [& M# d  k5 X. ]& lDS28E01-100DS2432是Maxim提供的内置SHA-1算法的安全存储器。这些器件的1-Wire接口非常适合此类应用,因为他们只需FPGA的一根引脚就可实现这些功能。 5 Y! g- ?' E# U1 \
2 Y% v. n6 `8 V: H1 ^6 [
FPGA需实现下述功能,以利用这些器件的安全特性:
  • 产生随机数。
  • 知道一个用于芯片内部运算的密钥,且该密钥对外界不可见。
  • 同安全存储器一样进行包含密钥、随机数、附加数据及器件识别号在内的HASH计算。
  • 比较HASH计算结果。2 U3 h; v& g: a0 ^5 l
以上对FPGA的功能要求需要FPGA具备微控制器的性能,例如PicoBlaze™,它是Xilinx专用于Spartan-3,Spartan-6,Virtex-II,Virtex-II Pro®,Virtex-4® FPGA和CoolRunner®-II cpld的自由宏。PicoBlaze使用192个逻辑单元,仅为Spartan-3 XC3S200器件的5%。
9 k+ S% H+ R+ Q3 u. \. ~3 P' f: ~2 Y4 v3 _: }' |
技术的实现
" b) S7 `) x) e7 x当器件上电后,FPGA从Flash PROM中读取数据对自己进行配置。配置完成后FPGA的微处理器功能被启动并进行认证工作,该认证工作包括下列步骤:
  • 产生一组随机数并作为一个质询机制(Q)发送给安全存储器。
  • 向安全存储器发出指令,要求其计算一个基于密钥、质询机制、唯一识别号和固定附加数据的HASH结果。
  • FPGA本身计算一个基于其自身存储密钥、发送给安全存储器的相同数据和固定附加数据的期望HASH结果(E)。
  • 读取由安全存储器件所计算出的HASH结果作为响应(A)与期望HASH结果(E)做比较。+ R; B) _* C; k
如果A和E相匹配,微控制器认为该电路是“友方”电路,因为它拥有正确的密钥。此时FPGA进入正常工作状态,开启/执行其配置数据中的所有功能。如果A和E不匹配,则该电路被认为是一个“敌方”电路。此时FPGA进入非正常运行状态,只执行有限的功能。
* `2 W# \' P! b3 U- m+ e4 S. o9 I; u* X1 M% i0 S! x
此过程的安全性何在?
1 h+ `1 u+ D" i; s对于每个制造单元,设计所有者(OEM)必须为制造带有嵌入式FPGA产品的一方(制造商或CM)提供一个正确预编程的DS28E01-100或DS2432。这种一对一的关系限制了CM可以制造的授权产品的数量。为防止CM窜改安全存储器(或许CM会以存储器没有被正确编程为由申请需要更多存储器),因此建议对密钥进行写保护。即使不进行写保护,也无需担心1-Wire EEPROM中数据的安全性。在设计上就保证了,只有在知道密钥的情况才可更改存储器中的数据。由此产生一个很有用的附加功能,设计者可以利用此特性实现软特性控制:FPGA可以根据从受SHA-1保护的存储器中读出的数据来开启/关闭FPGA中的相应功能。
" w# D6 K+ F& `7 V
2 s; w3 |0 J2 X( b) I由OEM来对这类器件在分发到CM手上之前进行编程是不方便或不可行的。为了能较好的解决该问题,Maxim为OEM客户提供SHA-1密钥及EEPROM阵列的预编程服务。在这种服务下,Maxim的工厂按照客户的要求对这类器件进行注册和配置,然后Maxim直接把器件运到CM手里。这类服务的优势如下:
  • OEM无需向CM泄漏SHA-1密钥。
  • OEM无需执行系统预编程。
  • 只有经过OEM授权第三方才可以访问登记的器件。
  • Maxim保存发送单元的数量纪录,以备OEM查账之需。
    . c$ N/ E: {6 c
除了SHA-1本身所具有的安全特性,上述类型的身份识别认证的安全特性依赖于密钥,而该密钥不可能从安全存储器,也不可能从FPGA中读出。更进一步,该密钥不可能在FPGA进行配置时,利用窃听其配置数据流的手段而被发现。如同从一个可执行代码开始,尝试破解Windows®应用程序的C++源代码一样,通过数据流的反向工程(在该过程中会试图略去认证过程)来判断系统设计,将是一个十分艰巨的任务。3 c( i. T, j3 R  p$ ^
/ t1 W5 I$ Q( C4 i
另一个至关重要的安全因素是随机质询机制Q。一个可预测的质询机制(如一个常数)会引发一个可预测的响应结果,因为该结果可被记录,然后由一个微控制器来取代安全存储器。在这种可预测的情况下,微控制器可以让FPGA认为其是一个“友方”电路。而随机的质询机制消除了这种可能性。
  S, K- O$ H% H( M
9 z. a0 S1 }5 e: T如果为每个器件绑定一个唯一密钥就可以进一步提高安全级别。唯一密钥由公共密钥(主密钥)、器件的唯一识别号和由应用所指定的常数计算得来。在这种条件下,如果有一个密钥被破解,则只会有一个器件受到影响,从而不破坏整个系统的安全性。为实现这种功能,FPGA需要知道主密钥,并在计算期望响应(E)之前计算存储器所用的密钥。

$ v( Z6 S1 Y2 i

该用户从未签到

2#
发表于 2019-5-14 18:08 | 只看该作者
感谢楼主的分享
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-8-3 02:16 , Processed in 0.109375 second(s), 23 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表