第四十个知识点 一般来说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年思路解决了这 ...
随机推荐
- 学习java 7.4
学习内容:遍历字符串要点:for(int i = 0;i < line.length();i++) { System.out.println(line.chatAt(i)); } 字符串拼接: ...
- Android 开源框架Universal-Image-Loader加载https图片
解决方案就是 需要 android https HttpsURLConnection 这个类忽略证书 1,找到 Universal-Image-Loader的library依赖包下面com.nostr ...
- Java Spring 自定义事件监听
ApplicationContext 事件 定义一个context的起动监听事件 import org.springframework.context.ApplicationListener; imp ...
- contrller层的编码设设计流程以及详细配置
/** 实际开发中遵循一个规律:自己写的类使用注解,系统提供的类使用配置文件 1.书写controller类----->配置springmvc.xml-------->配置web ...
- binlog浅析
binlog浅析 一.基础知识 什么是binlog? (图一) 全称:Binary Log (二进制日志),包含描述数据库更改的" 事件 ",例如表创建操作或对表数据的更改.二进制 ...
- C#获取Windows10屏幕的缩放比例
现在1920x1080以上分辨率的高分屏电脑渐渐普及了.我们会在Windows的显示设置里看到缩放比例的设置.在Windows桌面客户端的开发中,有时会想要精确计算窗口的面积或位置.然而在默认情况下, ...
- 什么是内容分发CDN
一.简介 CDN全称:Content Delivery Network或Content Ddistribute Network,即内容分发网络 基本思路: 尽可能避开互联网上有可能影响数据传输速度和稳 ...
- thinkPHP跨数据库访问/数据库切换
在项目的开发中会遇到访问多个数据库的问题这里讲的是:访问同一地址下的多个数据库 第一步:在配置文件中配置你要连接的其他的数据库 例如:我现在默认的数据库是back 现在我要设置第二个数据库travel ...
- Spring中基于注解方式管理bean
操作步骤 第一步:导入相关jar包 spring IoC的基本包 Spring支持注解的Jar包 第二步:创建Spring配置文件,ApplicationContext.xml 引入约束和开启注解扫描 ...
- SWPUCTF 2019 pwn writeup
来做一下以前比赛的题目,下面两个题目都可以在buu复现(感谢赵总). SWPUCTF_2019_login 32位程序,考点是bss段上的格式化字符串.用惯onegadgets了,而对于32位程序来说 ...