第四十个知识点 一般来说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年思路解决了这 ...
随机推荐
- SQLITE_BTREE_H
sqlite3.c, 237436行 = 全部源文件,找东西比多文件查找方便多了:-),字符串查找一点都不慢. 不要太害怕,SQLite说它的代码里有非常多是用来做数据完整性检查和测试的.但愿B树,虚 ...
- Docker快速上手入门
Docker 什么是Docker? Docker就是一种虚拟化的技术 可以通过Docker快速的下载使用第三方技术,方便搭建环境 目的:Securely build,share and run any ...
- 02-爬取http://www.allitebooks.org/网站,获取图片url,书名,简介,作者
import requests from lxml import etree from bs4 import BeautifulSoup import json class BookSpider(ob ...
- Oracle——概要文件profile
profile文件详解 一.目的 Oracle系统中的profile可以用来对用户所能使用的数据库资源进行限制,使用Create Profile命令创建一个Profile,用它来实现对 ...
- Templates and Static variables in C++
Function templates and static variables: Each instantiation of function template has its own copy of ...
- python pandas 中文件的读写——read_csv()读取文件
read_csv()读取文件1.python读取文件的几种方式read_csv 从文件,url,文件型对象中加载带分隔符的数据.默认分隔符为逗号read_table 从文件,url,文件型对象中加载带 ...
- MyBatis一对多映射简单查询案例(嵌套Mapper映射文件中的sql语句)
一.案例描述 书本类别表和书本信息表,查询书本类别表中的某一记录,连带查询出所有该类别书本的信息. 二.数据库表格 书本类别表(booktypeid,booktypename) 书本信息表(booki ...
- java配置文件的使用 —— 设置一个类为单例模式
阅读本文章前建议先阅读:java通过JDBC访问sqlserver数据库 一.使用原因:通过JDBC连接数据库时有时会需要连接不同的数据库,而jar包.连接url.用户名和密码等都是写定在程序中,不便 ...
- h5文件下载
// type1 await getFile(fileUrl).then((res) => { console.log('download',res); let bFile = window.U ...
- GIT基本使用理解
基本区域介绍 git是一种代码管理工具,所以我们需要知道代码所在位置.分为4个区域: Workspace:工作区 Index / Stage:暂存区 Repository:本地仓库 Remote:远程 ...