说到硬件加密,一些硬件工程师首先想到的方法是磨掉芯片丝印、灌黑胶,甚至在接口处增加防爆拆方案,这些方法虽然十分有效,但是作为一个技术人员,我觉得我们应该可以找到更体现技术思维的方式来解决这个问题,至少应该文雅一些。
在我阐述自己的观点之前,我想分享一个工作中的实例,是我接触过的一个项目,有一个朋友要做一个设备,由于这个设备需要测量的指标范围比较宽,所以只能采取分段式设计的方案,打个比方0-1V我用放大电路来完成,1-2V我直接进行数据采样,以此类推共5档,设计完成后需要对每个档位进行细调,而细调的精度决定了整个的产品价格。在设计的过程中,我意识到这样设计的复杂度对于后续的批量生产有一定的影响,所以我和客户提出,是否需要增加一部分的投入做一个自动校准调试功能,一个按键操作,自动完成所有步骤,结果客户给我的答复是保留原有的设计,调试步骤只需要教会客户即可,起初我很不理解,但是当客户告诉我原因之后,我豁然开朗,不经意间我实现了一种硬件加密的方法,而且十分有效。
大家也许猜出了客户的想法,他的想法很简单,通过复杂的调试方式实现产品加密,生产时每个人只需要知道一个参数怎么调节即可。这种硬件加密方式,其实就是利用调试的复杂度来实现加密,这个过程大致需要调整10个参数,要按照一定的顺序来操作,如果其中的某一个顺序被打乱,那么会造成某个或多个测量段的输出误差变得很大而无法使用,这样即便有人破解了程序代码和硬件图纸,如果不知道如何调试也没有办法完全破解产品功能,除此之外,每出一套产品设置一个唯一的配置密钥,只能匹配本机硬件,这样即便有人抄袭了设计图纸也无法使用,做到了双重硬件加密功能。
坦率的说,我一直不赞成对硬件做过分的加密,因为对于一个有经验的工程师来说他不需要了解你的设计细节,只需要明白产品功能和使用场景和方法就可以大致构想整个的产品设计框架,并且他会分析出你的产品不足,从而采用更有竞争力的设计方案来超越原有设计,一个产品的精髓不在于硬件或软件的细节,而在于设计者的思维方式,你可以窃取所有有形的实物,但是无法复制设计者的灵魂,这也是技术创新的动力来源。
上面的例子只是说明了实现硬件加密方式的一种思路,不代表它是最优选择,或是最高明的设计,我只是想说作为一个技术人员,设计产品是本职工作,做好每一个产品的规划和细节方案,实现创新型产品是一件很值得骄傲的事情,同样我们应该把硬件加密作为一项开发工作,注入更有创造力的想法,我们本就具有这方面的潜力,何不让他发挥更大的价值。
以上是我关于硬件加密方式的一些自己的理接,可能不是每个人同意我的观点,也有可能大家有自己更合理的加密方案,也欢迎提供建议和交流心得。