SPA-GPT:基于强化学习的公钥密码算法全自动侧信道分析

admin 2026-04-07 00:47:36 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: SPA-GPT是一种基于强化学习的公钥密码算法全自动侧信道分析方法,由北京理工大学团队在CHES2024发表。该方法将能量迹切分建模为强化学习的闯关游戏,通过深度Q网络智能体以相邻能量迹片段的相似度作为奖励信号,仅需密钥长度即可自动完成切分,结合聚类算法可实现全自动化简单能量分析并恢复私钥对应操作序列。在10个数据集上验证了有效性,代码已开源,对未知设备能量迹的初步分析具有较高实用价值,但仍需改进预处理以应对操作区间模糊的情况。 综合评分: 85 文章分类: AI安全,漏洞分析,二进制安全


cover_image

SPA-GPT:基于强化学习的公钥密码算法全自动侧信道分析

王子瑜 王子瑜

数缘信安社区

2026年4月6日 07:01 北京

让AI用玩游戏的方法做侧信道分析

撰文 | 王子瑜

编辑 | 刘梦迪

“前沿导读”系列文章现推出“人工智能专题”,自2026年4月起,每月6号定期发布一篇文章,系统介绍人工智能与侧信道分析交叉方向的代表性研究工作与最新学术进展。欢迎相关领域研究人员踊跃投稿,共同推动学术交流与前沿研究。

人工智能专题前5期内容将介绍北京理工大学原创成果:

(1)基于强化学习的公钥密码算法全自动侧信道分析

(2)基于大语言模型的全自动侧信道分析智能体

(3)基于大语言模型的全自动简单能量分析框架

(4)基于双路残差网络的高精度建模侧信道分析

(5)基于对比学习预训练的通用建模侧信道分析提升

一、背景介绍

对公钥密码算法实施侧信道水平分析通常分为三步——能量迹切分、能量迹片段分类以及密钥恢复。其中,能量迹切分是指从完整能量迹中提取与私钥(平方/乘操作、点加/倍点操作等)相关的片段,其结果直接影响能量迹片段分类的准确性,进而影响密钥恢复。现有大多数基于人工智能的方法聚焦于能量迹片段分类问题,而忽视了前置步骤,致使能量迹分割依然需要大量人工经验。

在侧信道分析领域的最新研究中,Trautmann等人提出了半自动化的能量迹分割方法[1],在已知分组密码算法运行一轮所用时钟周期数的条件下,可自动化定位每一轮算法的运行位置。然而,该方法需要人工输入多个参数,且对于公钥密码算法开展分析的时间复杂度过高。

在对公钥密码算法能量迹进行水平分析时,我们发现其能量迹片段有一定的周期性特征。据此,我们在CHES 2024上提出了一种基于强化学习的能量迹切分方法,命名为SPA-GPT(General Pulse Tailor for Simple Power Analysis)[2],仅需提供密码算法的密钥长度,就可以将完整能量迹准确地切分成片段。与能量迹聚类方法结合后,可实现全自动的简单能量分析,如下图所示。

SPA-GPT应用场景及其与传统SPA效果对比

二、基本思想

我们知道,人工智能很擅长玩闯关类游戏、棋牌类游戏,甚至很多游戏玩的比真人还要好。那么,我们自然可以把公钥密码算法简单能量分析的第一步——能量迹分段看成一个闯关游戏,它应该比玩超级玛丽游戏简单的多。

强化学习玩闯关类游戏的场景

强化学习玩“能量迹切割”游戏的场景

强化学习被广泛应用于闯关游戏、自动驾驶等场景中,开展当前状态的下一步决策。其基本原理是:把当前屏幕上正在显示的关卡定义为“状态”,把下一步决策做出的行为定义为“动作”,把执行该动作之后最终可得到的成绩定义为“奖励”;游戏主角根据每一步动作获得的经验用于训练一个被称为“深度Q网络”的模型,该模型能够帮我们评估下一步动作可能得到的奖励大小。随着游戏主角动作的推进和“多条命”的反复尝试,即强化学习步骤的多次迭代,深度Q网络模型能够逐渐优化,最终达到正确切分能量迹的目标。

我们回到智能体切分能量迹的场景中,将强化学习中的关键概念与本文所研究的问题做如下对应:

  • 动作At:在t时刻从可选区间[F,L]内中选择一个值,作为下一段能量迹的长度,即下一个切分点与当前切分点的距离。本文令F=Ltrace/(2*Lkey),L=Ltrace/Lkey来估计动作区间范围。其中Ltrace代表能量迹长度,Lkey代表密钥长度
  • 状态St:本文使用T表示所要切分的能量迹,pos为当前智能体所在位置,T[pos:pos+L]能量迹段代表t时刻的状态,即深度Q网络的输入。这里将状态长度定为L的目的是让智能体充分了解所能切分到的最远距离
  • 奖励Rt+1:t时刻执行动作后,在t+1时刻得到奖励。前期实验显示公钥密码的能量迹中两段完整操作能量迹之间的相似度会显著高于两段随机截取能量迹之间的相似度,因此考虑将该相似度定义为奖励,它是推进智能体进化的主要动力。

三、SPA-GPT方法整体流程

基于强化学习的能量迹切分方法流程如下图所示。流程开始时,智能体站在待切分能量迹开头的位置,观察当前的状态。

SPA-GPT方法核心流程

首先,将状态At输入到神经网络中,根据输出选择Q值最大的动作。为了能学习到更多的切分种类,这里采用ϵ-greedy方法以概率ϵ选择Q值最大的动作,以1-ϵ的概率随机选取动作执行。

然后,根据奖励值执行不同分支:如果奖励Rt+1为负值,代表切分失败,进入左分支结束本回合并从起始处重新开始切分,即pos←0,episode←episode+1(智能体对游戏的一次尝试称为episode,类似游戏里的一条命);否则,奖励Rt+1为正值,进入右分支,继续目前回合并从该动作选定的切分点开始继续切分,即pos←pos+At。

特别地,若待切分的能量迹结尾有冗余部分(非加密操作),也会使奖励为负值,因此判定奖励为负后会检测本回合切分点个数,如果在合法范围内,则视此次切分为一个可行结果存储起来。循环执行上述操作,直到达到回合数上限,算法结束。

值得注意的是,公钥密码的能量迹中,两个操作之间的可切分位置往往不是一个点而是一个区间,所以对一条能量迹可有多种切分方式,当episode

达到预设的上限时,算法输出所有可行的切分方式。

在论文中,我们对本方法进行了一次升级,分别从升级工具、升级环境、优化能量迹、提高精度四个角度进行改进,升级后的方法可直接得到密钥敏感值对应的操作序列,并全面提高了方法的普适性,详见论文。

四、实验结果

我们在10个数据集上对本方法进行了验证并和传统方法进行了对比,得到的切分及操作序列恢复结果如下表,其中大部分数据集已经上传至开源平台(https://github.com/pilipili520/SPA-GPT)。相比于传统方法,我们的方法可以良好完成切分任务,并直接得到正确的私钥对应操作序列。

SPA-GPT实验结果总结

下图是对于SAKURA-G平台上采集得到的RSA能量迹(该开源案例由数缘科技设计,见本公众号2022年10月21日文章)的切段结果。

SAKURA-G平台RSA能量迹切分结果

在完成上述能量迹切段的基础上,我们基于K-means聚类恢复出了完全正确的私钥对应的操作序列。使用主成分分析对上述能量迹分段进行可视化聚类的结果如下图,共有三类操作,私钥比特1对应的模平方操作、私钥比特0对应的模平方操作、以及私钥比特1对应的模乘法操作。

SAKURA-G平台RSA能量迹用SPA-GPT切分后的聚类结果

值得注意的是,对于另一个采集于智能卡的RSA on smart card数据集,由于其平台的电气特性,导致能量迹中会有纵向和横向上的双重抖动,使得直接恢复的操作序列无法完全正确。如下图所示,黑色能量迹段为模平方操作,蓝色能量迹段为模乘法操作,红色能量迹段为恢复错误的操作。恢复错误的能量迹段由于其几何特性与正常能量迹段差异较大,故这些段对应的奖励值较低。通过对奖励值由低到高遍历这些操作,我们能够在可接受时间复杂度内恢复出正确的操作序列。

对于RSA on smart card数据集切分及私钥对应操作序列恢复结果

五、总结

当采集未知设备的能量迹时,若已知密钥长度,可以使用本方法进行初步分析。得益于人工智能算法和当前计算机能力的提升,本方法可以提供更多种对能量迹的分段方式,为后续分析提供更多思路。在结合水平攻击后,还可直接得到私钥所对应的操作序列。

本领域的研究人员可以配置环境来更好地适配目标能量迹,如改变奖励、增加状态特征、选择更适应数据集分布的聚类算法等。对于某些能量迹,用于区分操作的可切分区间可能相对模糊,计算得到的动作区间下限较小,智能体可能会选择并非可切分区间的点作为切分点,最终仍然可以获得较高的奖励。针对这类能量迹,需要更好的预处理方法来提高切分效果。

参考资料

[1] Trautmann J, Beckers A, Wouters L, et al. Semi-automatic locating of cryptographic operations in side-channel traces[J]. IACR Transactions on Cryptographic Hardware and Embedded Systems, 2022: 345-366.

[2] Wang Z, Ding Y, Wang A, et al. SPA-GPT: general pulse tailor for simple power analysis based on reinforcement learning[J]. IACR Transactions on Cryptographic Hardware and Embedded Systems, 2024, 2024(4): 40-83.


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:数缘信安社区 王子瑜 王子瑜《SPA-GPT:基于强化学习的公钥密码算法全自动侧信道分析》

评论:0   参与:  0