差分能量分析介绍(二)
差分功率分析
1、基本分析方法
差分功率分析DPA是一种统计方法,用于分析测量集,以确定数据相关的相关性。基本方法包括将一组记录道划分为子集,然后计算这些子集的平均值之差。如果将哪个记录道分配给每个子集的选择与记录道中包含的测量值不相关,则随着记录道数量的增加,子集平均值的差异将接近零。否则,如果划分为子集与跟踪测量相关,则平均值将接近非零值。如果有足够的记录道,无论测量中存在多少噪声,都可以分离出极小的相关性。
图6典型DPA结果(从上到下)显示第1轮中第一个S盒输出的LSB为1的能量迹平均值、LSB为0的记录道平均值、顶部两条记录道之间的差值以及Y轴放大系数为15的差值
2、举例分析
图6显示了典型成功DPA结果的组成部分。在这种情况下,目标设备是执行AES的同一智能卡,并且子集基于第一轮中第一个S盒输出的LSB的实际值。图中显示了四道。最上面的一道是整个过程中LSB为1的记录道的平均值覆盖前两轮AES加密的时间间隔。第二条记录道是LSB为0的记录道的平均值。前两条记录道似乎是相同的,因为平均值之间的差异远小于总功耗变化。第三条记录道显示了前两条记录道的差异,并且看起来几乎相同yflat-再次,因为差异很小。第四条(最低)轨迹显示Y轴比例增加15倍的平均值差异,DPA结果清晰可见。
泄漏区域在最低记录道中以尖峰形式可见。当目标设备首次计算S盒输出位时,出现第一个尖峰。当在第一轮剩余时间进一步处理该位时,会出现更多尖峰。到第一轮结束时,AES中间产物不再与S盒输出的LSB相关e表示与其他位混合以及密码的雪崩。因此,在第二轮或之后的差分记录道中未发现尖峰。图6显示尖峰之间的噪声相对较小,因为使用的记录道数(4000)与单个记录道内的噪声相比,噪声较高。虽然更多的记录道产生更清晰的结果,但通常没有理由使用更多的数据来区分所需的信号。
DPA测试显示的信息由选择函数决定。选择函数用于将跟踪分配给子集,通常基于加密计算中一个或多个中间产物的可能值的经过教育的猜测。如果最终的DPA跟踪显示显著峰值,密码分析员将ws选择函数输出与(或等于)目标设备实际计算的值相关。如果未观察到相关,则选择函数输出不相关(或相关性太小,无法观察)。选择函数可以是单个位的预测值,例如S盒或乘法器的输出位。也可以使用更复杂的函数,例如寄存器中某位的值与覆盖该位的位的值之间的预测差。选择函数也可以是多个位的函数。例如,如果预测多位中间值等于常数(或不同的中间值),则选择函数可能输出1以及其他输出0。
选择函数的选择是DPA过程的关键部分,因为它封装了关于设备中可能存在的泄漏的工程直觉。DPA中使用的选择函数通常是二进制值函数。
3、典型的DPA攻击包括以下阶段
- 该初步阶段涉及开发与设备通信的方法,以调用加密操作并记录其响应。测量设备(如由PC驱动的数字示波器)也连接到目标设备。根据设备的可用性和可用性,可以使用与设备电源线或地线串联的电阻器或电流探针。在加密组件附近进行的测量通常具有更好的质量,尽管也可以使用更多质量较低的记录道。如果无法插入电阻器(例如,如果设备使用内部电池),则设备的内阻通常足够。E-field和M-field探测器也可用于对设备进行EM攻击,方法与DPA相同。对于触发,测量系统通常连接到设备的I/O线。
- 这是数据收集阶段。在目标设备执行加密操作时记录电源跟踪。每个捕获的跟踪与相关的加密数据(例如,明文或密文)一起存储在PC上。根据需要,可通过添加模拟滤波器、调整带宽或采样率以及探索SPA信号特征以去除不相关区域来改善跟踪质量和捕获效率信号处理这一可选阶段涉及在软件中处理轨迹,以消除对准误差、隔离感兴趣的特征、突出显示信号和降低噪声。在许多情况下,只需要简单的时间对齐,或者可以完全忽略此步骤。
- 在此阶段,关于形成的部分键的不同假设用于定义用于分析的选择函数。然后将每个选择函数应用于与每个跟踪相关联的加密数据,从而得出关于下一个测试阶段的中间状态的预测。预测和选择函数生成
- 平均阶段为每个选择函数计算由选择函数输出定义的输入子集的平均值。这一步通常是计算最密集的阶段。
- 分析DPA测试结果,以确定最可能的候选关键点猜测。这个过程可以通过可视化或使用自动化工具来完成。
最后三个步骤(预测、平均和评估)通常是迭代的。例如,对于AES-256,第一轮密钥通常在第二轮密钥开始攻击之前找到。在其他情况下,例如,如果正在使用自适应选择的输入消息,则还可以重复附加步骤。
差分能量分析介绍(二)相关推荐
- 差分能量分析介绍(一)
一.背景 由于涉及多个系统层的攻击难以预测和建模,因此安全漏洞通常是由组件和层之间的意外交互造成的.如果算法设计者.软件开发人员和硬件工程师不合作,不了解彼此的工作,在系统的一个层中进行的安全性假设可 ...
- 差分能量分析介绍(五)
DPA的执行(下) 步骤 数据收集和准备 使用选择函数生成假设 求平均值 评估 1.DPA:求平均值 分析阶段是执行堆芯DPA计算的阶段.除了计算各记录子集的平均值外,还通常计算所有能量迹上各点的平均 ...
- 差分能量分析介绍(三)
简单功率分析--SPA(Simple Power Analysis) 简单功率分析是一组用于检查功率跟踪的方法,以深入了解设备的操作,包括识别与数据相关的功率变化.SPA侧重于检查在单个能量迹中直接可 ...
- 差分能量分析介绍(四)
DPA的执行(上) 步骤 数据收集和准备 使用选择函数生成假设 求平均值 评估 1.数据收集和准备 DPA利用的泄漏可能比一组能量迹中的噪声水平小得多,但更好的信噪比需要更少的能量迹.在评估实验室或对 ...
- DPA——差分能量分析(Differential Power Analysis)
1 能量分析技术 1.1 能量分析概述 密码设备在进行加解密运算时,其内部结点电平高低变换完成运算,电平变换过程中电容不断地充放电进而从电源源源不断的获取电流.由于内部电阻的存在,此时设备不断地产生能 ...
- python包怎么做双重差分did分析_【研究方法】双重差分法(DID)介绍
双重差分法,英文名Differences-in-Differences,别名"倍差法",小名"差中差".作为政策效应评估方法中的一大利器,双重差分法受到越来越多 ...
- 差分——(2)二维差分
前面部分我们介绍了一维差分,https://blog.csdn.net/justidle/article/details/103761632.下面我们扩展一下,来介绍二维差分. 什么是二维差分 我们有 ...
- YOLOV4知识点分析(二)
YOLOV4知识点分析(二) 数据增强相关-mixup 论文名称:mixup: BEYOND EMPIRICAL RISK MINIMIZATION 论文地址:https://arxiv.org/ab ...
- Spring Cloud源码分析(二)Ribbon(续)
因文章长度限制,故分为两篇.上一篇:<Spring Cloud源码分析(二)Ribbon> 负载均衡策略 通过上一篇对Ribbon的源码解读,我们已经对Ribbon实现的负载均衡器以及其中 ...
最新文章
- ida pro学习笔记2022.3.19
- SAP 生产订单结算
- plotly使用mapbox实现地图可视化
- mysql accountlevel1_mysql---修改表结构
- 七种设计原则(二)单一职责原则
- vue-cli webpack 打包报错:Unexpected token: punc (()
- 【白皮书分享】2020中国硬科技创新白皮书.pdf(附下载链接)
- Android替换view父节点,android – issue:指定的子节点已经有父节点.您必须首先在孩子的父母上调用removeView()...
- 线程同步与互斥:POSIX无名信号量
- asp.net Code学习二(使用vs 2015 update 3)
- Shell脚本 批量修改目录下若干文件名
- 【图像融合】基于matlab泊松彩色图像融合【含Matlab源码 1830期】
- Raytrace学习的阶段性总结
- android--GooglePay 谷歌支付内购接入(1)
- sqlserver with ties
- java smack 例子_关于JAVA利用smack连接openfire的jar依赖问题
- linux I2c设备注册
- openldap 匿名访问
- 6. 修改docker端口 (映射宿主机和docker容器中的端口)
- Django 之验证码实现
热门文章
- php重置指针,PHP数组指针函数 current,end,next,prev,reset,each
- 机器人扫地机吸狗毛最好的_狗狗掉毛扫地机不好使?看看人家美国人的评测
- 关于无管网气体消防系统之你不知道的事
- 全面解析RS232、RS485、RS422、RJ45接口的区别和各自的应用
- js 获取屏幕高宽_JS获取屏幕的宽高。
- DL之RBM:基于RBM实现手写数字图片识别提高准确率
- HDFS的读文件、写文件过程
- Silverlight学习(一) 创建Silverlight项目,构建一个简单的Silverlight Demo
- 51Nod --1133 不重叠的线段
- leetcode Number of 1 Bits