DeviceDNA允许设备生产商将一个独一无二的非易失工厂序列号直接写入到FPGA器件中。每个器件的ID都不同,因此可以将设计绑定到特定的FPGA器件中。DeviceDNA可以作为接收设备的独特序列号,一个唯一的许可代码,或者与用户定义的写在FPGA构造中的认证算法配合使用,从而将特定的设计与特定FPGA器件紧密绑定在一起。如果某些人试图克隆或拷贝认证过的设计,或者将位流写入另一片不同的FPGA器件,那么由于器件的ID号码变化,设计就不会通过认证。DeviceDNA是一个57位长的序列号,可以通过器件内部的逻辑构造读取。
DeviceDNA与用户定义认证算法紧密结合能够以合理的系统成本实现所需要的安全度。在采用认证算法的方法中,安全性的关键是算法本身。在本方法中,安全过程中必须有某些部分要保密,在本案例中则是用户定义的算法本身。由于算法在PPGA逻辑构造中实现,因此成为FPGA数百万配置位中的少数位。除非知道这些位如何组合在一起,或者知道算法本身,否则参于任何试图拷贝设计的人来说,看起来都仅仅是一堆数字。
用户定义的算法可以如系统所需要的一样简单或复杂 - 例如:可以是简单的哈希算法,或者更为复杂的三次DES、AES6?、128或256位,甚至是完全定制的算法。同时还可以将用户定义的认证算法集成到接收器的认证流程内部。这样可以进一步将接收单元与视频流系统、设计与特定的接收单元捆绑在一起,从而进一步提高抵抗克隆的安全能力。此外,算法可以改变以支持不同的视频解密协议配置,甚至在不同型号或不同代产品间采用不同的算法,从而进一步保证安全性。
安全性提高对生产的影响
硬件安全性问题同样适用于生产流程,特别是板级测试和验证。因此,设计中经常将JTAG功能移除,因为JTAG功能易使设计导致反向工程。许多企业都采用JTAG来缩短测试时间并提高测量和验证流程中的系统测试覆盖范围。然而,没有JTAG,就需要更多的测试,特别是系统级测试来保证一定的测试覆盖范围。不使用JTAG技术会提高生产成本,并最终影响到系统总成本。
JTAG的问题在于INTEST命令,用于检查设计的内部逻辑功能。反向工程时,这一命令可用来判断设计的功能。图3给出了一个简单的例子,其中数据移入寄存器,执行INTEST命令,这样数据会在时钟作用下移入逻辑构造,进入下一寄存器,结果可以被读出。由于可将总体设计的复杂度缩小到更小的逻辑模块,因此这一命令可使反向工程的工作更容易。
一些FPGA平台可帮助防止发生这一过程,同时仍然允许生产商完成其管脚至管脚(pin-to-pin)功能。例如,在Xilinx? Spartan?-3A 平台中, 可在设计中使用BSCAN_SPARTAN3A宏模块,其检测逻辑可监控FPGA构造中的JTAG控制信号,如图4所示。如果检测到JTAG控制信号的活动,用户在设计可以立即绕过关键逻辑或关断关键功能,不再执行正确的功能。这样反向工程人员读到的将是不正确的功能模块,在不能完成预期功能的解决方案上浪费时间和资源。
支持DeviceDNA的FPGA平台可保证视频接收机的设计安全,同时还可为测试和验证流程提供支持,从而能够提供成本经济的高质量安全解决方案,支持多种不同的视频流加密协议。