基于功率分析的侧信道攻击简介

  • 概念介绍
  • 实现原理
  • 攻击流程

在我们的日常使用的电子产品中,加密是非常普遍的应用,像手机的SIM卡、银行卡、手机、个人电脑等,都需要保密,防止被别有用心的人来窃取财物或资料。常规的攻击是使用软件手段或硬件手段对被攻击对象实施暴力破解,随着现代加密技术的发展,软件暴力破解的时间成本太大,导致破解难度大大提高,成功率不高。在密码学中,功率分析是一种侧信道攻击形式,攻击者在其中研究加密硬件设备(例如智能卡,防篡改 “黑匣子”或集成电路)的功耗。即攻击者可以通过测量加密设备在其操作期间的功耗,然后使用诸如相关功率分析之类的统计技术对其进行分析,非侵入地从设备中提取加密密钥和其他秘密信息。由于功率分析攻击所花费的时间远远少于其他类型攻击所需的时间,因此它已逐渐成为攻击加密算法的流行方法。

概念介绍

  1. 侧信道攻击(SCA)
    针对加密电子设备在运行过程中的时间消耗、功率消耗或电磁辐射之类的侧信道信息泄漏而对加密设备进行攻击的方法,主要特点如下:
     基于能量分析攻击,是一种能够从密码设备中获取秘密信息的密码攻击方法;
     与其他攻击方法不同,利用的是密码设备的能量消耗特征,而非密码算法的数学特性;

  2. 功率分析
    功率分析是一种侧边通道攻击的形式,攻击者研究加密硬件设备的功耗(如智能卡、防篡改的“黑盒”或集成电路)。攻击可以从设备中提取加密密钥和其他机密信息。
     简单功率攻击(SPA);
     差分功率攻击(DPA);
     相关功率分析(CPA);

实现原理

  1. 半导体器件的属性
    由于半导体器件是开关器件,信号的表示只有两种0或者1,这样在不同的状态下功耗就会有所不同。测量芯片的功耗可以知道内部的开关情况。这种攻击方式仅仅依赖于加密协议的具体实现,而不依赖于算法本身。
  2. CMOS电路的通用
    CMOS电路由成对的N沟道和P沟道MOSFET(金属氧化物半导体场效应晶体管)组成。 现代世界中的微处理器,微控制器,静态RAM和许多其他数字逻辑电路使用CMOS(互补金属氧化物半导体)技术。 因此,涉及密码设备的功耗的功率分析可以通过关注CMOS电路的功耗实现。
    CMOS电路的功耗由静态功率和动态功率两部分组成。 静态功率是由晶体管的漏电流引起的,因此它取决于电路的设计;动态功率是由于晶体管的切换引起的,因此它取决于正在处理的数据和正在进行的操作。功率分析利用功耗与正在处理的数据之间的关系,而动态功率是相关的,静态功率大部分是恒定的,因此总功率的变化仅仅是由动态功率引起的,因此总功耗可以直接用于攻击。

芯片在运行的时候,由于数据或者逻辑的不同,内部的晶体管通断是有区别的,可以通过这个区别来确定程序内部的数据或者指令。获取这个区别有很多方法,比如在芯片的GND引脚处获取电压,通过探针去截取芯片辐射的变化等等。我们身边有很多密码学设备,比如银行卡、门禁卡、手机卡等等,基于功率分析的侧信道攻击就是针对这些设备实施的,其示意图如下:

攻击流程

  1. 信息的截取
    首先,示波器设备是必须的,而且示波器一定要有把数据传输给电脑的能力,之后的处理使用Matlab进行。具体来说,针对芯片,主要有以下几种获取泄露的方法:
     在GND引脚处串联一个小电阻,大概是1~50欧姆,之后使用示波器测量电阻上的电压;
     使用电场探针或者磁场探针获取芯片的电磁泄露;
     其他方法,如表面扫面法,工作台法拉第笼法等;

  2. 信息的恢复
    基于功率分析的侧信道攻击的信息恢复,主要有简单功率攻击、差分功率攻击、相关功率分析等。

    1. 简单功率攻击(SPA)
      对设备随时间消耗的电流的曲线进行目视检查。当设备执行不同的操作时,会发生功耗变化。例如,由微处理器执行的不同指令将具有不同的功耗曲线。因此,在使用DES加密的智能卡的电源跟踪中,可以清楚地看到十六次迭代的波形。类似地,RSA实现中的平方和乘法运算也很容易辨别出来,这使得黑客能够计算出密钥。即使功耗变化幅度很小,标准数字示波器也是可以很容易地显示数据引起的变化。内置于示波器中的频率滤波器和平衡电路通常可以用于滤除高频分量。

    2. 差分功率攻击(DPA)
      对密码系统的功耗测量使用统计分析方法,攻击利用在使用密钥执行操作时使用微处理器或其他硬件的不同功耗。DPA攻击具有信号处理的纠错属性,可以从包含过多噪声的测量中提取秘密,以便使用简单的功率分析进行分析。具体说,我们要使用已知的明文或者密文对加密算法的一个步骤进行匹配(也可以说成只针对一个步骤的密钥的爆破),因此即使泄露较小,也可以有效识别,有天然的对噪音的过滤,缺点是需要的能量轨迹很多(DPA的基本想法就是,通过大量的能量轨迹计算能量轨迹和数据的依赖性)。使用DPA,攻击者可以通过分析易受攻击的智能卡或其他设备执行的多个加密操作的功耗测量来获得密钥。

    3. 相关功率分析(CPA)
      也是一种统计类型的攻击,并使用Pearson相关系数来关联数据。 CPA是最新的,与其他算法(如DPA)相比,它具有许多优点,例如需要更少的功率跟踪。Pearson相关系数是介于-1和1之间的值。如果该值为1,则意味着比较的两个数据集(假设功耗值和实际功耗值)具有最佳相关性。如果为0则表示根本没有相关性。由于这里用于找到相关系数的两个数据集是假设的功耗数据和实际功耗数据,因此相关系数描述了它们的相关程度。因此,当使用正确的密钥计算样本的假设功耗值时,将获得最大相关系数。相关功率分析包括获取能量轨迹、生成能量模型、比较两个能量轨迹三个过程。

[1]: Introduction to Differential Power Analysis and Related attacks, 1998, P Kocher, J Jaffe, B Jun.
[2]: Power Analysis Based Side Channel Attack, arXiv:1801.00932 [cs.CR], Hasindu Gamaarachchi, Harsha Ganegoda.
[3]: https://en.wikipedia.org/wiki/Power_analysis .
[4]: https://www.anquanke.com/post/id/87199 .

基于功率分析的侧信道攻击简介相关推荐

  1. 基于RF算法的侧信道攻击方法研究

    摘要 目前,随机森林(RF)算法在侧信道分析领域的潜力还没有得到充分利用.文章提出一种基于RF算法的侧信道攻击方法,分别从输入数据处理和参数控制两方面进行模型优化,在特征点选择和RF算法参数调优两方面 ...

  2. 头歌-信息安全技术-Spectre侧信道攻击过程验证

    头歌-信息安全技术-Spectre侧信道攻击过程验证 一.第1关:Cache vs Memory 1.编程要求 2.评测代码 二.第2关:基于Flush+Reload的侧信道实现 1.编程要求 2.评 ...

  3. 基于Montgomery算法的高速、可配置 RSA密码IP核硬件设计系列(五)——模幂模块(抵抗侧信道攻击)模块的设计实现方案

    基于Montgomery算法的高速.可配置RSA密码IP核硬件设计系列(五) 2.2 模幂模块设计(抵抗测信道攻击模块) 2.2.1 模幂模块及内部模块的功能 2.2.3 模幂各模块的实现方案 2.2 ...

  4. [密码学基础][每个信息安全博士生应该知道的52件事][Bristol52]43 为AES 对抗侧信道攻击的防御

    这是一系列博客文章中最新的一篇,该文章列举了"每个博士生在做密码学时应该知道的52件事":一系列问题的汇编是为了让博士生们在第一年结束时知道些什么. 为AES描述一些基础的(可能无 ...

  5. 简单来看看什么是侧信道攻击

    前言 之前在看逻辑层面的安全,其中有个旁路攻击,书里面说这玩意就是防范侧信道攻击. 旁路攻击又被称为旁路信道攻击或侧信道攻击.这种硬件层面的攻击通常以从电子设备获取机密信息为目标.对于密码算法,加密是 ...

  6. [密码学基础][每个信息安全博士生应该知道的52件事][Bristol Cryptography][第39篇]侧信道攻击和故障攻击有什么区别

    这是一系列博客文章中最新的一篇,该文章列举了"每个博士生在做密码学时应该知道的52件事":一系列问题的汇编是为了让博士生们在第一年结束时知道些什么. 侧信道攻击(Side-chan ...

  7. Intel CPU 易受新型的 SGAxe 和 CrossTalk 侧信道攻击

     聚焦源代码安全,网罗国内外最新资讯! 编译:奇安信代码卫士团队 网络安全研究员发现了两种针对当代 Intel 处理器的攻击,可泄露CPU 可新执行环境 (TEE) 中的敏感信息. 第一种攻击名为 & ...

  8. 【安全硬件】Chap.6 IC和半导体产业的全球化;芯片生产猜疑链与SoC设计流程;可能会存在的安全威胁: 硬件木马、IP盗版、逆向工程、侧信道攻击、伪造

    [安全硬件]Chap.6 IC和半导体产业的全球化:芯片生产猜疑链与SoC设计流程:可能会存在的安全威胁: 硬件木马.IP盗版.逆向工程.侧信道攻击.伪造 背景 1. IC和半导体产业的全球化 2. ...

  9. CATalyst——针对末级缓存侧信道攻击的防御技术

    CATalyst: Defeating Last-Level Cache Side Channel Attacks inCloud Computing, HPCA'16 (A类), 2016年3月[1 ...

  10. Spectre侧信道攻击过程验证【头歌教学实践平台】

    第1关:Cache vs Memory // 补全下方代码,完成array[0*4096]至array[9*4096]数据的缓存驱逐 /******************************** ...

最新文章

  1. 使用KNN进行缺失值填补详解及实践
  2. CF232C Doe Graphs
  3. Python列表对象的sort()方法排序
  4. The Security Learning
  5. 【建议收藏】IntelliJ IDEA 常用的快捷键 提高开发效率
  6. 59-混沌操作法感悟2.(2015.2.25)
  7. 1、CSS height 属性,2、Flex 布局教程:实例篇,3、CSS 链接,4、CSS display 属性,5、表格,
  8. CAD将图形输出成png图片的三种方法
  9. 根据消费定额生成菜单的算法(原创)
  10. 蒙特卡罗模拟(python实现)
  11. 表白代码收藏馆,谁说程序猿不懂浪漫
  12. js仿百度文库文档上传页面的分类选择器_第二版
  13. html 通知页面,消息通知页面.html
  14. lwip --- (十六)TCP建立流程
  15. 证明 可逆矩阵A的各列线性无关
  16. MAC通过ZOC远程访问Linux
  17. 电脑多久重装一次系统?这几点不注意亏大了!
  18. 一台电脑怎么安装32位和64位的jdk,怎么配置环境变量
  19. Python matplotlib绘图,使用鼠标滚轮放大/缩小图像
  20. 如何建设IDC数据中心机房?需要办理哪些许可证和资质【技术篇】华信网通帮您解答!

热门文章

  1. MES系统之生产管理系统功能介绍(源码)
  2. mysql查询市区县_通过数据库获取省份城市区县的名字
  3. 学习微积分60年有感(III)
  4. 终极成语接龙,谁能继续往下接,哈哈!!!
  5. 自动化检测工具助力GJB 8114-2013 C/C++语言编程安全子集标准落地应用
  6. GooFlow有后门代码
  7. Linux源码包安装的详细教程
  8. 在线JSON转Excel工具
  9. Linux快捷键的使用
  10. 教你写页游自动化Python脚本,取色,大漠识别和后台点击