人工智能算法,特别是建立在神经网络基础上的各类深度学习算法,其核心在于通过迭代确定最终参数:在训练神经网络模型过程中,根据不同的训练数据进行迭代,寻找最优的网络参数;在神经网络推导过程中,根据输入的数据逐层地迭代数据,最后得出推测的数值,并依此分析预测结果。对于神经网络而言,参数决定了该网络能够实现的任务、预测的准确度等一系列指标。若商用的神经网络中的结构和参数遭到泄露,不法分子能够很容易地仿制相关的产品,给企业单位造成经济上的损失,这也是领域学者对人工智能的物理实现安全进行研究的一个重要原因。
密码算法与神经网络存在某些共性,使得我们能够利用旁路分析方法恢复神经网络的参数。以AES这一典型密码算法为例,根据算法中使用的密钥长度,AES将整个加密过程分成了数轮,输入的明文信息经过多轮运算,转换为对应的密文信息。每一轮的运算由轮函数定义,轮函数是特定的四类运算的组合,除第一轮和最后一轮外,所有中间轮的运算组合是相同的。同时,每一轮的输出数据作为下一轮的输入数据,直到最后一轮产生对应的密文。AES中每一轮所使用的某些运算操作与神经网络中神经元的计算也存在相似点:两者都有固定成分和随机成分参与运算。以SubBytes为例,该运算接受一个输入,并经由固定的映射得到对应的输出;而神经元通过线性运算和激活函数(在神经网络推导过程中,这两者是固定的),也能根据一个输入产生对应的输出。这一特点是让大家能够利用旁路分析方法攻击神经网络的本质原因。
其中,AES算法中的K是第i轮运算时根据密钥计算出的子密钥(轮密钥),N表示轮运算的总次数, AddRoundKey、SubBytes、ShiftRows、MixColumns代表轮函数中四类不同运算。神经网络中N表示网络的总层数,Weight、Bias、Activation function则表示神经网络中神经元对应的三要素:权重、偏置以及激活函数。经过上述对比不难发现人工智能尤其是深度学习算法的实现与加密算法的实现具有较高的相似度,利用旁路分析技术获取人工智能算法的输入或是逆向推断出敏感参数是有理可依的。
针对人工智能硬件的物理实现安全方面的研究目前正处于起步阶段。最早的针对神经网络的旁路分析攻击于2018年提出,该研究对一个在微控制器上实现的多层感知器模型(Multi-Layer Perception,MLP)的参数进行了逆向构建,恢复出了神经网络的层数以及神经元的信息。另一个研究团队在现场可编程门阵列(FPGA)的卷积神经网络特定实现上,针对第一个卷积层进行泄露信息的建模,并对其进行了攻击,恢复了输入图像的轮廓与像素信息。针对人工智能算法的旁路分析攻击虽然取得了一定的成果,但人工智能算法在微控制器或是FPGA上的实现与商用的AI芯片仍存在显著的差距。专用AI芯片会使用并行计算的框架加速算法的执行,芯片上的数据流对应的物理泄露信息相互耦合,进一步增加了旁路分析的难度。如何有效地从耦合信息中提取出有效的信息,刻画合理的特征泄露模型,将会是人工智能算法物理实现安全性研究的一个重点和难点。
人工智能技术在旁路分析领域的发展方兴未艾。对于传统旁路分析技术难以解决的问题,可以结合人工智能技术改进相关的算法,提高分析的效率;对于传统旁路技术无法解决的问题,可以尝试使用人工智能技术构建黑盒,避开对应用场景的统计学假设,以期填补领域研究的空白。相信人工智能技术巨大的潜力能够成为旁路分析领域发展的强大助力。同时应警惕旁路分析技术对人工智能硬件可能造成的潜在威胁。
领取专属 10元无门槛券
私享最新 技术干货