第四十个知识点 一般来说SPA和DPA的区别是什么
第四十个知识点 一般来说SPA和DPA的区别是什么
原文地址:http://bristolcrypto.blogspot.com/2015/07/52-things-number-40-what-is-normally.html
电磁(Electronmagnetic, EM)功率分析攻击被划分成两种类型的攻击,简单功率分析(SPA)或者差分功率分析(DPA)。这两种攻击要么使用电磁要么使用能量记录设备,但是它们在分析能量数据的数量和方法上有本质的不同。
在检查这些攻击的不同之处之前值得说明的是power/EM攻击是什么。
功率记录
CMOS(互补式金氧半导体,一种集成电路的设计工艺)电路能量要么是静态的,要么是动态的。静态功耗是指电路静止时损耗的功率(没有发生电路转换)。这时功率是非常小的。动态功率损耗是电路在发生0到1或者1到0转换的时候产生的损耗。动态功率损耗肯定是在电路中最大的能量消耗贡献者,同时能量消耗取决于电路处理的数据。动态能量损耗却决于两个因素。第一个就是电容充电电流,第二个是短路电流。每个CMOS单元都有一个负载电容连接到单元的输出。该负载电容包括连接单元到后续单元的电线,以及单元的输入电容。
一个CMOS单元使得电压上升\(V_{dd}\)需要消耗的能量是\(P = \alpha fC_lV_{dd}^2\),其中\(\alpha\)是每个时钟内发生\(0 \rightarrow 1\)的电路的数量。当存在一个从\(1 \rightarrow 0\)时刻,当然的电压从\(C_l\)到\(gnd\)通过NMOS而不是\(V_{dd}\)。第二部分能量消耗的贡献就是短路电流。这个在\(0 \rightarrow 1\)和\(1 \rightarrow 0\)到会发生当PMOS和NMOS晶体管都导电时刻-尽管这件事发生的很少。此时能量消耗公式是\(P_{sc} = \alpha f V_{dd} I_{peak} t_{sc}\),其中\(I_{peak}\)是当前转换的峰值,\(t_{sc}\)是短路存在的时间。[1]
了解这两个动态功耗点,我们可以看到所有开关\(1 \rightarrow 0\)和\(0 \rightarrow 1\)都会通过短路电流消耗电能,而从\(0 \rightarrow 1\)切换会因为负chegn7.而消耗更多的电能。如果我们能精确测量能量消耗(电磁场作为一种强度变化的电流,将产生一个等方差的电磁场,使电磁场的测量能够给出一个功率消耗的测量。),那么我们就知道设备里面有多少次电路转换。首先,允许我们确定一个特定的操作(例如,乘数可能比x或门需要更多的开关),其次,更重要的是,该操作操作的数据,因为这可能会影响开关。
SPA和DPA攻击
SPA攻击和DPA攻击的主要区别在于所需跟踪的数量。SPA一般来说使用一个或者非常少的跟踪,DPA需要大量的跟踪。他们利用动态设备功耗的方式也不同,SPA攻击表示一组操作,然而它们还可以利用数据依赖关系,例如在模板攻击的情况下。众所周知,RSA在二进制扩展乘法平法的SPA攻击正说明了这点。这里,如果一个二进制值是0,那么结果进行平方,如果是1,结果就平方之后再乘。在单个跟踪中查看它,可以看到正方形操作的形状以及正方形和乘法操作的形状,从而将键的每个位读取为0或1。这个漂亮的攻击只需要一个记录来观察能量消耗,这就是SPA攻击。
另一方面,DPA攻击通过使用多个记录和统计技术仅仅利用数据依赖元素。他们集中在能量消耗的数据依赖上,通过创建多少个开关来工作,那么就会有多少数据。这些假设称为泄漏模型,通常是汉明重量或汉明距离。如果这个泄漏模型是正确的,那么功率轨迹应该显示根据它处理的信息,尽管在现实中,这总是与干扰数据/功率关系的噪声相结合。在DPA攻击中,可以通过估计被操作的秘密数据值,并查看根据泄漏模型对这些值的表示是否与许多不同的功率跟踪相关,从而确定被操作的秘密数据值。因此,DPA攻击需要多个跟踪——根据噪声水平和测量精度的不同,跟踪的数量可以从50到数千不等。
[1] Mangard, Stefan, Elisabeth Oswald, and Thomas Popp. Power analysis attacks: Revealing the secrets of smart cards. Vol. 31. Springer Science & Business Media, 2008.
第四十个知识点 一般来说SPA和DPA的区别是什么的更多相关文章
- Linux新手要了解的十个知识点
Linux对于有的新手来说,感觉无从下手,或者不知道从哪儿学起?怎么学?针对这些问题,我给大家说说新手学习Linux需要了解的十个知识点. 注意大小写 Linux是大小写敏感的系统,举个例子,Mozi ...
- 第二十个知识点:Merkle-Damgaard hash函数如何构造
第二十个知识点:Merkle-Damgaard hash函数如何构造 这里讲的是MD变换,MD变换的全称为Merkle-Damgaard变换.我们平时接触的hash函数都是先构造出一个防碰撞的压缩函数 ...
- SPA与DPA 攻击【转】
转自:http://blog.sina.com.cn/s/blog_6cb58dbf0102v7ym.html SPA SPA是一种直接解释能量消耗测定值的技术.系统消耗能量的大小随微处理器执行的指令 ...
- Ocr答题辅助神器 OcrAnswerer4.x,通过百度OCR识别手机文字,支持屏幕窗口截图和ADB安卓截图,支持四十个直播App,可保存题库
http://www.cnblogs.com/Charltsing/p/OcrAnswerer.html 联系qq:564955427 最新版为v4.1版,开放一定概率的八窗口体验功能,请截图体验(多 ...
- 第五十个知识点:什么是BLS基于对的签名方案?
第五十个知识点:什么是BLS基于对的签名方案? BLS签名方案使用了椭圆曲线上了Weil对,本质上是一个在曲线上除n划分的双线性形式,使用 \(n^{th}\) 个单位根. 假设我们有一个椭圆曲线\( ...
- 第四个知识点 P类复杂问题
第四个知识点 P类复杂问题 原文地址:http://bristolcrypto.blogspot.com/2014/10/52-things-number-4-complexity-class-p.h ...
- 第十个知识点:RSA和强RSA问题有什么区别?
第十个知识点:RSA和强RSA问题有什么区别 这个密码学52件事数学知识的第一篇,也是整个系列的第10篇.这篇介绍了RSA问题和Strong-RSA问题,指出了这两种问题的不同之处. 密码学严重依赖于 ...
- 第二十四个知识点:描述一个二进制m组的滑动窗口指数算法
第二十四个知识点:描述一个二进制m组的滑动窗口指数算法 简单回顾一下我们知道的. 大量的密码学算法的大数是基于指数问题的安全性,例如RSA或者DH算法.因此,现代密码学需要大指数模幂算法的有效实现.我 ...
- 第三十个知识点:大致简述密钥协商中的BR安全定义。
第三十个知识点:大致简述密钥协商中的BR安全定义. 在两方之间建密钥共享是一件密码学中古老的问题.就算只考虑定义也比标准加密困难的多.尽管古典的Diffie-Hellman协议在1976年思路解决了这 ...
随机推荐
- 用python写的推箱子搜索程序
1 # -*- coding: gbk -*- 2 from functools import reduce 3 from copy import deepcopy 4 import re 5 def ...
- 大数据学习day39----数据仓库02------1. log4j 2. 父子maven工程(子spring项目的创建)3.项目开发(埋点日志预处理-json数据解析、清洗过滤、数据集成实现、uid回补)
1. log4j(具体见log4j文档) log4j是一个java系统中用于输出日志信息的工具.log4j可以将日志定义成多种级别:ERROR / WARN / INFO / DEBUG ...
- java中的原子操作类AtomicInteger及其实现原理
/** * 一,AtomicInteger 是如何实现原子操作的呢? * * 我们先来看一下getAndIncrement的源代码: * public final int getAndIncremen ...
- 解决在进行socket通信时,一端输出流OutputStream不关闭,另一端输入流就接收不到数据
输出的数据需要达到一定的量才会向另一端输出,所以在传输数据的末端添加 \r\n 可以保证不管数据量是多少,都立刻传输到另一端.
- HashMap、ConcurrentHashMap对比
1.hashmap的put的原理,hashmap的扩容及计算槽的算法,线程安全的hashtable.ConcurrentHashMap的区别是什么 1.1 hashMap的put原理 什么时候变成红黑 ...
- 【Matlab】xticks/xticklabels的用法
先说一下我自己的理解,这东西就是把原来的有的标签位置换成自己的标签名称,一般都是要手动设置看物理意义. https://ww2.mathworks.cn/help/matlab/ref/xticks. ...
- 【Spark】【设置】关闭INFO提示
目的:关闭INFO提示 方法:通过修改配置文件实现 操作文件:Hadoop/conf/log4j.properties.template 操作1:复制模板文件使用 cp $SPARK_HOME/con ...
- [笔记] Informer: Beyond Efficient Transformer for Long Sequence Time-Series Forecasting
原文地址:https://arxiv.org/abs/2012.07436 源码地址:https://github.com/zhouhaoyi/Informer2020
- YC-Framework版本更新:V1.0.2
分布式微服务框架:YC-Framework版本更新V1.0.2!!! 版本更新,本次版本为V1.0.2 主要更新内容如下所示: 集成ActiveMQ; 集成微信生态(支持微信公众号.微信支付.微信开放 ...
- C++STL标准库学习笔记(三)multiset
C++STL标准库学习笔记(三)multiset STL中的平衡二叉树数据结构 前言: 在这个笔记中,我把大多数代码都加了注释,我的一些想法和注解用蓝色字体标记了出来,重点和需要关注的地方用红色字体标 ...