摘要:
研究背景
在当前芯片设计流程中,硬件安全已经成为一个重要的考量因素。为此,逻辑块加密被提出并被采用为一种简单但有效的保护方法。通常,它以简单的加密门电路或是存储单元混淆在原始电路中,从而达到对恶意伪造、反向工程和硬件木马等攻击的防范。然而,随着机器学习技术的发展,这一被视为有效的防控手段愈来愈受到严厉的挑战。在旁路分析领域,机器学习被首先应用于攻击。攻击者利用功耗曲线在错误和正确密钥时不同的情况,借助机器学习工具分析内在的数学特征,从而达到破解的目的。另一方面,在逻辑分析领域,已有的方法包括基于错误率分析和布尔可满足性分析的方法等,这些方法有的已经设计了机器学习的基本概念,但尚未形成完备的机器学习攻击策略。
目的
本文旨在将机器学习引入到基于逻辑分析的密钥攻击领域,利用经典的机器学习算法如神经网络、线性回归等方法执行对密钥的破解。同时本文也力求探索机器学习破解逻辑加密的内在数学原理,发掘其暴露出的硬件安全问题,从而有针对性地改良硬件保护策略。
方法
本文提出了基于机器学习的逻辑攻击基本范式,即在攻击者拥有加密网表和激活电路的前提下,通过对两块电路施加相同的输入激励,收集不同的输出响应。由于两块电路输出的不同是由逻辑加密产生的,在输出端生成的向量蕴含了对加密密钥的潜在数学信息。因此我们使用经典的全连接神经网络来执行对加密网表的破解,通过将电路输出端、密钥端分别作为神经网络的输入层、输出层,可以构建在最大似然概率下的最佳拟合。我们将在激活电路下产生的正确输出向量送入训练好的神经网络,网络的输出结果就是对密钥的数学期望。这一系列数学期望随后被送入朴素贝叶斯分类器,将其归类为逻辑1和逻辑0,这样就确定了所有密钥的最终值。
结果
本文首先将机器学习攻击应用于C432电路作为示例,成功在3次迭代之后破解所有20位密钥。针对不同的加密策略,如随机加密,最大FI加密,异或同或门加密、多路选择器加密等,本文提出的攻击取得了不同的攻击效果,其中尤以最大FI多路器加密的攻击效果最好。我们将攻击范式应用于ISCAS’85/’89及ITC’99基准电路,尝试对组合和时序电路进行攻击,结果显示,在逐次迭代中,都能有部分密钥被破解,在短短3次迭代之内,所有电路能够破解20%~60%不等的密钥(取决于不同的电路拓扑结构)。
结论
本文提出了一种机器学习辅助的密钥猜测攻击范式,它作用于逻辑分析领域而非其他工作的旁路分析领域。在神经网络、贝叶斯分类器等机器学习工具的辅助下,该攻击范式能够在逐次迭代中,优先破解那些暴露信息最充分的密钥。由于相比传统暴力破解,我们使用了较为轻量的计算资源,因此能够大幅缩短用于破解密钥的时间。而且该攻击范式与传统逻辑分析攻击方法也能够兼容,结合起来可以充分加速密钥破解流程。此外,本文还分析了机器学习执行逻辑分析攻击的内在数学原理,指出皮尔森相关系数在暴露密钥信息上的重要作用。在未来的硬件防护策略中,设计者应该考虑尽可能消除引入的密钥端与电路输出端各种可能的统计相关性。