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

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


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

概念介绍

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

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

实现原理

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

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

攻击流程

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

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

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

    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 .

猜你喜欢

转载自blog.csdn.net/weixin_44517247/article/details/86473505