没有合适的资源?快使用搜索试试~ 我知道了~
基于微控制器的AES激光注入攻击研究.docx
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 51 浏览量
2023-02-23
20:10:49
上传
评论
收藏 520KB DOCX 举报
温馨提示
试读
12页
基于微控制器的AES激光注入攻击研究.docx
资源推荐
资源详情
资源评论
1. 引言
以智能卡为代表的密码芯片广泛应用于通信、金融、交通、政务、社保等领域,是维
持和保障网络信息安全的核心载体之一。一般而言,密码芯片的安全性取决于所采用的密
码体制。然而,自 1996 年 Kocher 提出时间攻击以来,针对密码算法在物理实现上存在的
信息泄露隐患,在密码芯片运算过程中实施各种旁路攻击,就有可能获得其存储的秘密信
息。旁路攻击按攻击方式可分为被动攻击和主动攻击。被动攻击一般不干扰密码芯片的正
常运行,通过收集芯片运行时的功耗、电磁辐射等信息进行分析,主要包括时间攻击、能
量攻击和光辐射分析等
[1]
。主动攻击一般指故障攻击,即在芯片运行时有意诱发故障,通
过故障分析恢复密钥。诱发故障的手段包括电压或时钟毛刺、电磁扰动、温度变化、聚焦
离子束(Focused Ion Beam, FIB)、紫外光辐照、激光注入等
[2]
,其中激光注入因具有较高的
时间和空间分辨性,通常被认为是最有潜力的故障注入手段之一。当前,国际上商业化的
激光注入装置已在密码芯片测评行业中使用,取得了一定的效果。国内激光注入技术的研
究相对较少。因此,自行设计密码芯片的激光攻击安全性测试系统,对国内集成电路和信
息安全领域的研究至关重要。本文依托中国科学院国家空间科学中心自主研制的单粒子效
应脉冲激光实验平台,通过优化设计形成密码芯片激光注入攻击实验装置,具备较高的时
间和空间精准度,并且有一定的自主测试和故障识别的能力,适合开展激光注入攻击实验
研究。
智能卡的核心为微控制器,本文以智能卡常用的 ATMEGA163 型微控制器及 AES-128
为例,详细论述脉冲激光攻击密码芯片的流程和方法,具体从以下几个部分展开:(1)第 2
节介绍 AES 算法及两种故障攻击模型;(2)第 3 节讨论密码芯片的激光故障注入原理,并
介绍激光注入的实验装置;(3)第 4 节介绍微控制器激光攻击的实践以及攻击的结果;(4)
第 5 节为结束语。
2. AES 算法及故障攻击
2.1 AES 算法
高级加密标准(Advanced Encryption Standard, AES)是美国国家标准技术协会(National
Institute of Standards and Technology, NIST)于 2001 年发布的用于取代数据加密标准(DES)的
分组密码算法。其数据分组长度为 128 bit,密钥长度可以为 128, 192 或 256 bit,分别对应
加密轮数为 10 轮、12 轮以及 14 轮,这里关注的是 128 bit 版本。AES 是基于有限域运算
的 SPN 结构迭代分组密码,输入的明文数据被描述为 4×4 状态矩阵(state),首先与初始密
钥执行异或操作,再进行 10 轮迭代运算。AES 以字节或字为单位进行操作,每轮的操作
为:字节变换(SubBytes)、行移位(ShiftRows)、列混淆(MixClumns)以及轮密钥加
(AddRoundKey),最后一轮不执行列混合操作。因其较高的安全性和执行效率,AES 算法
是目前使用最广泛的加密算法之一。
2.2 故障攻击
故障攻击最早在针对 CRT-RSA 的攻击中被研究者提出,之后广泛应用到各类密码算
法的攻击研究中。针对 AES 算法的 DFA 攻击在 2003 年被首次提出,攻击者使用不超过
50 个密文对即可恢复 128 bit 完整密钥
[3]
。同年,另一研究指出在第 8 轮和第 9 轮列混合之
间注入单字节故障,使用 2 个密文对可将密钥候选空间降为[Math Processing Error]240
[4]
。
针对 AES 密钥编排过程的攻击方法在 2008 年被提出,使用 2 个密文对可将密钥搜索空间
降为[Math Processing Error]232;使用 4 个密文对则可以降为 1
[5]
。2009 年,研究者提出在
AES 的第 7 轮和第 8 轮列混合之间注入 1 个字节故障,可将密钥候选空间降为[Math
Processing Error]232,若再用一条同一字节的故障密文,可将候选空间降为 1。2011 年,
研究者又在上述研究的基础上利用第 9 轮和第 10 轮的子密钥之间的关系,仅使用 1 条密文
即可将候选空间降为[Math Processing Error]28
[6]
,这是目前已知针对 AES 效率最高的 DFA
攻击方法。以上的研究为单字节或单比特故障模型,此外还有针对 AES 的多字节故障模型
[7]
。2018 年,文献[8]针对分组密码提出了持久故障攻击(Permanent Fault Attack, PFA)的方
法。对 AES 的 S 盒注入持久错误后使用大约 2000 条密文可恢复完整密钥,对基于双冗余
防护的 AES 算法攻击依然有效。近年来,轻量级算法备受人们关注,一些针对该类算法的
故障攻击方法也被提出
[9-11]
。
故障攻击的第 1 步是通过不同的手段诱导设备产生特定类型的故障并收集信息。毛刺
和电磁脉冲手段产生的故障一般是随机多字节错误,而激光则兼具时空精准度,能产生单
比特或单字节类型的故障
[12]
。故障攻击的第 2 步是通过合适的故障模型来分析取得的信
息,常见的故障模型有差分故障攻击(Differential Fault Attack, DFA)、子密钥编排攻击、碰
撞故障攻击(Collision Fault Attacks, CFA)、无效故障攻击(Invalid Fault Attack, IFA)、代数故
障攻击(Algebra Fault Attack, AFA)等。差分故障攻击和子密钥编排攻击是两种效率较高的
故障模型,本文以这两种故障模型展开了攻击的实验。
2.2.1 差分故障攻击
差分故障攻击利用故障注入后的故障密文对来建立差分方程,通过求解方程来恢复密
钥。图 1 是第 9 轮输入第 1 个字节的故障差分传播模型,设密文第[Math Processing
Error]i 个字节对应第 10 轮输入的差分为[Math Processing Error]δi,以[Math Processing
Error]Ci 和[Math Processing Error]C~i 分别表示正确值和错误值,以[Math Processing
Error]Ki10 表示第 10 轮的子密钥的第[Math Processing Error]i 字节,则可以得到式(1)关于
[Math Processing Error]δ 和[Math Processing Error]Ki10 的关系
图 1 第 9 轮输入的故障差分传播
下载: 全尺寸图片 幻灯片
[Math Processing Error]Sub−1(Ci
⊕
Ki10)
⊕
Sub−1(C~i
⊕
Ki10)=δi,i=0,1,···,15
(1)
攻击者首先需要为式(1)等号右侧建立一个查找表,由[Math Processing Error]δ 取遍
0x01~0xFF 并利用 4 个故障字节在第 9 轮列混合后产生的差分比例关系,进一步筛选得到
4 Byte 的密钥候选值。
2.2.2 子密钥编排攻击
对第 9 轮子密钥编排的过程引入故障,故障将引发第 10 轮子密钥和密文产生多个错
误字节。图 2 展示了 Kim 等人
[5]
的攻击模型,故障引入第 9 轮子密钥的第 1 个字节,将造
成第 10 轮子密钥的 6 个字节出错,密文 8 个字节出错。如图 2 设第 9 轮子密钥第 1 个字
节注入故障产生差分[Math Processing Error]a,经过第 9 轮的密钥扩展后子密钥[Math
Processing Error]K9 及错误值[Math Processing Error]K~9 的第 1 行满足:[Math Processing
Error]K9,1
⊕
K~9,1=[Math Processing Error](a,a,a,a),同时第 9 轮输出的第 1 行的差分也满
足[Math Processing Error](a,a,a,a),经字节变换和行移位操作后差分变为[Math Processing
Error](b1,b2,b3,b4);接下来经过第 10 轮的子密钥扩展,第 10 轮子密钥将产生 6 个故障字
节,密文对[Math Processing Error](C,C~)的差分满足
剩余11页未读,继续阅读
资源评论
罗伯特之技术屋
- 粉丝: 3591
- 资源: 1万+
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Picasso_v3.1 2.ipa
- chromedriver-mac-arm64.zip
- 蓝zapro.apk
- chromedriver-linux64.zip
- UCAS研一深度学习实验-MNIST手写数字识别python源码+详细注释(高分项目)
- 基于Python和PyTorch框架完成的一个手写数字识别实验源码(带MINIST手写数字数据集)+详细注释(高分项目)
- 基于Matlab在MNIST数据集上利用CNN完成手写体数字识别任务,并实现单层CNN反向传播算法+源代码+文档说明(高分项目)
- NVIDIA驱动、CUDA和Pytorch及其依赖
- 基于SVM多特征融合的微表情识别python源码+项目说明+详细注释(高分课程设计)
- html动态爱心代码一(附源码)
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功