DPA的执行(下)

步骤

  • 数据收集和准备
  • 使用选择函数生成假设
  • 求平均值
  • 评估

1.DPA:求平均值

分析阶段是执行堆芯DPA计算的阶段。除了计算各记录子集的平均值外,还通常计算所有能量迹上各点的平均落差和方差。

平均性能由处理能力和存储吞吐量决定。在处理大型数据集时,许多性能优化都很有用。基本任务是快速计算多个记录道子集的平均值。一个大型分析可能涉及10^8条能量迹,每条能量迹至少有几百个点,共有10^5个子集求平均值。就能量迹数(N)、能量迹长度(L)和选择函数(M)而言,此任务的原始复杂性为O(N*M*L),内存使用为O(M*L)。

优化可以简化问题。DPA涉及将选择函数为1(A1)的子集的平均值与选择函数为0(A0)的子集的平均值进行比较。如果已知所有记录道的平均值(Aall),则可以使用A1中的能量迹数和记能量迹总数从A1和Aall计算A0。因此,当在同一组能量迹上计算多个选择函数时,从A0开始计算Aall和A1子集通常就足够了A0≈Aall−A1 . 这只导致了两个方面的改进,因此复杂度仍然是O(N*M*L),但CPU和内存使用减少了一半。

在同一组能量迹上计算多个选择函数时,第二个优化是使用缓存。缓存大小为2^8−1一次处理8条能量迹,计算这些能量迹的255个可能组合的总和。然后,可以使用缓存中的一次加法将这些能量迹添加到mth平均任务中,而不是最多添加8次单独的轨迹。一个缓存空间需要O(c·L)和O(2^c*L)操作来设置。使用缓存的性能提高到O(N/c*M*L+2^c)。 

许多分析都存在统计瓶颈。在门派中对AES的攻击。2.3预测第一轮的子字节输出。猜测轮密钥的一个字节可以预测8位中间数据。如果对这些位中的每一位执行DPA测试,则对于密钥字节可能采用的每一个值,将评估2048个选择函数。由于对中间层的预测只依赖于密文的一个字节,因此在L道集上只观察到256个唯一序列。一般来说,如果选择函数输出中存在统计瓶颈,并且在L条能量迹上只生成B个唯一的选择函数序列(和B<<L),则使用带有B条记录项的“输入箱”缓存可以将性能提高到。通过多次重复每条消息,可以引入瓶颈扫描。

因此,能量迹大小的任何减小都会按比例提高平均时间。例如,可以删除加密操作之前或之后的跟踪区域。压缩方法也可以大大减少需要平均的点数。当评估极高数量的选择函数时,选择函数生成和评估阶段可折叠到平均步骤。

虽然DPA测试通常比较平均值的差异,但该测试并非在所有情况下都有效,尤其是在存在对抗措施的情况下,在某些情况下,信号需要在平均值之前进行预处理。在其他情况下,也可以分析如图所示的分布。在这种情况下,如果计算每个点处的子集能量迹的平均值,则该步骤将完全修改每个点处样本的频率分布。

任务本身也是令人尴尬的并行化。数据可以分布在多个驱动器上,以消除I/O瓶颈。计算可以分布在多个线程或机器上。尽管目前很少有设备需要如此大的数据集,但优化可以使处理数十亿甚至万亿条能量迹变得切实可行。

2.DPA:评估

在简单的情况下,DPA的结果可以通过人工目视检查进行评估。正确的关键点猜测会导致差分跟踪中出现较大的峰值,而错误的关键点猜测则会出现较小的峰值。开发自动化工具来测量峰值、列出或绘制其振幅,甚至提出最可能的关键猜测,也很容易。

具有异常高噪声的区域可以在差分记录道中显示虚假尖峰。为了纠正这些影响,并帮助评估结果的统计显著性,差异轨迹中的每个点都被划分为该点所有轨迹的标准偏差。结果是一个标准化轨迹,给出了每个时间点的差异(以标准偏差测量)的极性和显著性。

“平均值之差”只是两种测量分布不同的一种方式。更一般的统计测试可以比较记录道子集中每个点的测量分布,并计算它们之间观察到的差异的显著性。对于这种分析,“平均”阶段实际上是计算测量值的分布,而不是将分布压缩为平均值。

对于某些算法和特定类型的DPA攻击,评估过程更为复杂,因为除了正确的密钥外,还有多个其他猜测,这些猜测与目标泄漏有显著相关性,因此可能在差分跟踪中显示尖峰。这些猜测被称为正确密钥的“谐波”。

对于某些算法,由于有关密钥的新信息能够生成新的选择函数因此攻击是迭代应用的。在这些情况下,DPA评估阶段不是攻击的最后阶段。迭代过程通常在选择函数生成阶段重新启动,但对于选择明文攻击攻击,评估结果将指导数据收集阶段的下一组输入。AES-256和三重DES等算法也需要迭代,其中必须找到多个轮子密钥或多个加密密钥。

2.预防DPA

防止能量分析的第一步是消除可能产生SPA漏洞的大泄漏。特别是,实现应该使用常量执行路径,并避免在秘密数据上采用条件分支

阻止DPA需要额外的工作。DPA可以利用非常小的信息泄漏率,因为统计测试累积与目标秘密相关的信号,并减少噪声和不相关设备活动的影响。

2.1减少泄露

有些方法通过降低功耗侧信道的信噪比(降低泄漏(信号)或增加噪声),使DPA更具挑战性。信噪比的降低将增加成功攻击所需的跟踪数量。

2.2协议级对策

解决边信道攻击的最有效和最不困难的方法是设计密码协议以避免泄漏。设计者通常无法确保在对手可以观察到的所有操作中,泄露的信息不会接近密钥的大小。即使尝试了广泛的平衡和噪声产生对策,评估过程也不能确保没有微小的侧信道。作为比较,实现传统协议的设备可以直接以每操作10−9比特或更少的泄漏率来破坏,而协议级对策可以以每操作超过10比特的泄漏率来保持安全性——差异超过十个数量级。因此,对泄漏具有弹性的密码协议对于使用不太完美的硬件的实现是至关重要的。

防止泄漏的一般方法是限制可以使用任何给定密钥执行的事务的数量。例如,考虑具有256位密钥的设备的情况,该密钥最多可以操作十次,并且将在第10次事务尝试后销毁其密钥。如果期望的安全级别是192位,则该设计可以在其生命周期内容64位的累积泄漏,如果每个事务的平均泄漏<6.4位,则可以实现这一点。

差分能量分析介绍(五)相关推荐

  1. 差分能量分析介绍(二)

    差分功率分析 1.基本分析方法 差分功率分析DPA是一种统计方法,用于分析测量集,以确定数据相关的相关性.基本方法包括将一组记录道划分为子集,然后计算这些子集的平均值之差.如果将哪个记录道分配给每个子 ...

  2. 差分能量分析介绍(一)

    一.背景 由于涉及多个系统层的攻击难以预测和建模,因此安全漏洞通常是由组件和层之间的意外交互造成的.如果算法设计者.软件开发人员和硬件工程师不合作,不了解彼此的工作,在系统的一个层中进行的安全性假设可 ...

  3. 差分能量分析介绍(三)

    简单功率分析--SPA(Simple Power Analysis) 简单功率分析是一组用于检查功率跟踪的方法,以深入了解设备的操作,包括识别与数据相关的功率变化.SPA侧重于检查在单个能量迹中直接可 ...

  4. 差分能量分析介绍(四)

    DPA的执行(上) 步骤 数据收集和准备 使用选择函数生成假设 求平均值 评估 1.数据收集和准备 DPA利用的泄漏可能比一组能量迹中的噪声水平小得多,但更好的信噪比需要更少的能量迹.在评估实验室或对 ...

  5. DPA——差分能量分析(Differential Power Analysis)

    1 能量分析技术 1.1 能量分析概述 密码设备在进行加解密运算时,其内部结点电平高低变换完成运算,电平变换过程中电容不断地充放电进而从电源源源不断的获取电流.由于内部电阻的存在,此时设备不断地产生能 ...

  6. 华为——OSPF单区域实验配置,实验抓包分析,五种报文分析,六种LSA介绍,以及如何建立邻接关系的七种状态

    华为--OSPF单区域实验配置,实验抓包分析,五种报文分析,六种LSA介绍,以及如何建立邻接关系的七种状态 前言 一:OSPF简介 1.1:工作原理 1.1.1:架构介绍 1.1.2:信息传递 1.1 ...

  7. Flutter框架分析(五)-- 动画

    Flutter框架分析分析系列文章: <Flutter框架分析(一)-- 总览和Window> <Flutter框架分析(二)-- 初始化> <Flutter框架分析(三 ...

  8. python学会了能做什么-学会Python后都能做什么?介绍五种Python的实用场景

    如今,越来越多的人加入到学习Python的队伍当中. 有的学习者是设计师,学习Python可以帮助他们查找更多的海报案例;有的学习者是大学生,学习Python可以帮助他们更好地查阅论文资料;还有的学习 ...

  9. Hive分析窗口函数(五) GROUPING SETS,GROUPING__ID,CUBE,ROLLUP

    GROUPING SETS 该关键字可以实现同一数据集的多重group by操作.事实上GROUPING SETS是多个GROUP BY进行UNION ALL操作的简单表达,它仅仅使用一个stage完 ...

最新文章

  1. 【转】android电池(四):电池 电量计(MAX17040)驱动分析篇
  2. AutoML综述更新 【AutoML:Survey of the State-of-the-Art】
  3. linux下查看监听端口对应的进程
  4. Java异常类(Throwable)
  5. c# AutoMapper 使用方式和再封装
  6. html3D效果可以在手机打开吗,手机怎么打开HTML
  7. 邮箱批量登录接验证码_记一次莫名的需求(临时邮箱|企业邮箱)
  8. 如何理解在数据类型中元素不能修改?
  9. 常见文件扩展名和它们的说明
  10. 【项目实训】实验八 数据处理
  11. 【122天】尚学堂高琪Java300集视频精华笔记(43-46)
  12. 知识图谱从入门到应用——知识图谱的应用
  13. 脱颖而出:为您的独立游戏扩大客户群 游戏运营
  14. CentOS7 配置搭建安装LNMP
  15. daimayuan每日一题#810 最短路计数
  16. 怎么把图片转换成Tikz图片
  17. 【AUTOSAR】:功能安全(HSM与HOST的配置)
  18. ubuntu16.04+intel无线网卡无法连接WiFi解决方法,下载驱动,升级内核(亲测有效)
  19. 撑不下去的时候,仰望,星空。
  20. 超有爱的并查集 ------ 转

热门文章

  1. vue项目-点击添加或者修改按钮浏览器的屏幕变黑,再次点击屏幕之后浏览器恢复正常(火狐浏览器、ChromeCoreLauncher双核浏览器)
  2. 计算机基础及ms office应用,全国计算机等级考试一级计算机基础及MS Office应用模拟练习系统...
  3. java derby连接_JAVA-Derby连接
  4. get vue 和set 用法_深入剖析Vue源码 - 数据代理,关联子父组件
  5. 西藏打造云计算数据中心 2020年中国数据中心规模约2000亿元
  6. 刚刚,国家新型互联网交换中心(以及新公司)正式成立!不止于降低网间结算费用...
  7. 13张图看懂综合类数据中心机房建设标准!
  8. python battleship_codecademy_python_Battleship!
  9. python资源百度云_Python Selenium 百度云分享链接资源 批量保存
  10. 成功解决TypeError: 'float' object cannot be interpreted as an integer