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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

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

  `% j0 i# b: L/ Z6 ?% I
2 `2 Y* B, E* p动机5 x: ~! e4 t: @" v* }+ y+ q
开发电子产品,包括嵌入式FPGA的配置代码,其成本是相当高的。因此应当防止未经授权的机构对这些设计和配置进行拷贝,以保护设计者的知识产权。有很多种方法能实现这样的保护功能。如在Xilinx Virtex-II®和Virtex-4®这类的高端FPGA中,支持对配置数据流的加密操作。这样仅当FPGA中含有相同的密钥时,这些数据流才可以工作。但是这种加密的方法对更为广泛的、对成本很敏感的应用场合来说不甚合适。因此,这里利用另一种可行的身份识别法来防止意外拷贝。这种方法对所有FPGA家族都适用,包括低端的Xilinx Spartan-3®和Spartan-6® FPGA。7 `" u7 \# V( A0 X2 u: |

6 Y, N8 _0 |' u5 s; X! r
前提, V: F7 X* T' O# j2 i: S
在身份识别的概念中,要求FPGA的设计者实现与一个安全存储器通讯的功能以进行认证工作。图1是实现该设计的一个简化原理图。" s- c' W% `7 }' |% ]

2 C/ S( L- D! [+ ?
+ ~' I4 k/ G* u图1. Maxim的1-Wire存储器件为FPGA提供安全控制和保护的简化框图4 w9 `% Y7 B# Q* g; X! \
7 q3 m0 W* K) H2 ]4 X1 m
安全存储芯片需满足下列要求:
  • 包含用于芯片内部操作的密钥,该密钥对外界不可见。
  • 包含一个唯一的不可改变的识别号。可用该识别号来计算一个与设备绑定的密钥。
  • 能够进行包含密钥、随机数(用做质询机制)、唯一识别号及附加数据(常数)在内的HASH运算。
    ; [4 _0 w) J: {  q% v+ D& q
为了满足应用所需的安全性,该HASH算法应满足:
  • 不可逆—要使从一个HASH结果逆推出与之相关的输入数据在计算上是不可行的。
  • 防“碰撞—使用另外一组输入数据来产生一个相同的HASH结果是不可行的。
  • 具有极高的雪崩效应—输入数据的任何变化,都会极大的影响到HASH运算结果。
      @8 F4 r; Y* W) ~7 C0 U" }% R
SHA-1算法—一个被全面而广泛验证的单向HASH算法可以满足上述需求。该算法由美国国家标准技术局开发,被ISO/IEC 10118-3:2004国际标准所采用。公众可在NIST的网站上获得该算法的数学原理。
, x3 A% L# P" }) T5 p' G' {* A9 A3 x, x/ R
DS28E01-100DS2432是Maxim提供的内置SHA-1算法的安全存储器。这些器件的1-Wire接口非常适合此类应用,因为他们只需FPGA的一根引脚就可实现这些功能。 - n. N. J& T- T6 t  D" F
* d6 Q1 T8 N7 w# l7 l8 {3 b" W
FPGA需实现下述功能,以利用这些器件的安全特性:
  • 产生随机数。
  • 知道一个用于芯片内部运算的密钥,且该密钥对外界不可见。
  • 同安全存储器一样进行包含密钥、随机数、附加数据及器件识别号在内的HASH计算。
  • 比较HASH计算结果。; ~0 e1 v9 S  |3 a! O+ v# s9 i
以上对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%。/ Y7 N! g6 ^9 y+ I5 w2 s
! W8 I- f# u. v( c5 i  o
技术的实现
$ f6 T% u  q0 n  A4 K7 q+ u" a当器件上电后,FPGA从Flash PROM中读取数据对自己进行配置。配置完成后FPGA的微处理器功能被启动并进行认证工作,该认证工作包括下列步骤:
  • 产生一组随机数并作为一个质询机制(Q)发送给安全存储器。
  • 向安全存储器发出指令,要求其计算一个基于密钥、质询机制、唯一识别号和固定附加数据的HASH结果。
  • FPGA本身计算一个基于其自身存储密钥、发送给安全存储器的相同数据和固定附加数据的期望HASH结果(E)。
  • 读取由安全存储器件所计算出的HASH结果作为响应(A)与期望HASH结果(E)做比较。  O! A9 E5 _  g! {# M- b+ x& Z" s
如果A和E相匹配,微控制器认为该电路是“友方”电路,因为它拥有正确的密钥。此时FPGA进入正常工作状态,开启/执行其配置数据中的所有功能。如果A和E不匹配,则该电路被认为是一个“敌方”电路。此时FPGA进入非正常运行状态,只执行有限的功能。
: w# y* Q) _* V$ n+ b" g. v% N9 w" g; w' o
此过程的安全性何在?
! |# l" t+ |" B$ ~" I& l对于每个制造单元,设计所有者(OEM)必须为制造带有嵌入式FPGA产品的一方(制造商或CM)提供一个正确预编程的DS28E01-100或DS2432。这种一对一的关系限制了CM可以制造的授权产品的数量。为防止CM窜改安全存储器(或许CM会以存储器没有被正确编程为由申请需要更多存储器),因此建议对密钥进行写保护。即使不进行写保护,也无需担心1-Wire EEPROM中数据的安全性。在设计上就保证了,只有在知道密钥的情况才可更改存储器中的数据。由此产生一个很有用的附加功能,设计者可以利用此特性实现软特性控制:FPGA可以根据从受SHA-1保护的存储器中读出的数据来开启/关闭FPGA中的相应功能。
: ~% D$ z$ ]+ O8 u9 K1 F
# i- ~8 F7 F, v; N/ @& ~由OEM来对这类器件在分发到CM手上之前进行编程是不方便或不可行的。为了能较好的解决该问题,Maxim为OEM客户提供SHA-1密钥及EEPROM阵列的预编程服务。在这种服务下,Maxim的工厂按照客户的要求对这类器件进行注册和配置,然后Maxim直接把器件运到CM手里。这类服务的优势如下:
  • OEM无需向CM泄漏SHA-1密钥。
  • OEM无需执行系统预编程。
  • 只有经过OEM授权第三方才可以访问登记的器件。
  • Maxim保存发送单元的数量纪录,以备OEM查账之需。
    $ J+ f5 _' f* t" H) U
除了SHA-1本身所具有的安全特性,上述类型的身份识别认证的安全特性依赖于密钥,而该密钥不可能从安全存储器,也不可能从FPGA中读出。更进一步,该密钥不可能在FPGA进行配置时,利用窃听其配置数据流的手段而被发现。如同从一个可执行代码开始,尝试破解Windows®应用程序的C++源代码一样,通过数据流的反向工程(在该过程中会试图略去认证过程)来判断系统设计,将是一个十分艰巨的任务。
8 B6 U# H( G' [) P, Y" S4 u( }( d" _' B
另一个至关重要的安全因素是随机质询机制Q。一个可预测的质询机制(如一个常数)会引发一个可预测的响应结果,因为该结果可被记录,然后由一个微控制器来取代安全存储器。在这种可预测的情况下,微控制器可以让FPGA认为其是一个“友方”电路。而随机的质询机制消除了这种可能性。
7 }! }1 g% y2 w& g8 L4 C% ^, w; f% X7 x9 @3 |! H. w, O7 }" B0 J
如果为每个器件绑定一个唯一密钥就可以进一步提高安全级别。唯一密钥由公共密钥(主密钥)、器件的唯一识别号和由应用所指定的常数计算得来。在这种条件下,如果有一个密钥被破解,则只会有一个器件受到影响,从而不破坏整个系统的安全性。为实现这种功能,FPGA需要知道主密钥,并在计算期望响应(E)之前计算存储器所用的密钥。

5 U/ ?. k% u) H' y- z

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-8-3 04:26 , Processed in 0.140625 second(s), 23 queries , Gzip On.

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

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

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