RSA对抗措施的实用分析与温度侧信道攻击
1. RSA对抗措施中的CEMA分析
在RSA加密算法的安全防护领域,相关电磁分析(Correlation EM Analysis,CEMA)是一种重要的攻击手段。CEMA旨在通过分析电路的电磁辐射与对密钥的猜测之间的相关性,来揭示电路所操作的密钥。相关性越强,猜测正确的可能性就越大。
要对RSA实施CEMA攻击,攻击者需要具备随机生成被攻击RSA实现的输入数据x或观察密文的能力,同时要测量在时间t时的电磁场变化Vem(t, x)。之后,攻击者进入CEMA流程,首先要选择一个选择函数。
-
密钥猜测与选择函数
:
- 假设攻击者知道所涉及的算法是蒙哥马利幂阶梯算法,那么他可以从最高有效位(MSB)开始生成8位的密钥猜测。这样就能得到一组易于处理的子密钥猜测。
- 对于每个猜测k,攻击者使用汉明权重模型W(x, k)计算算法过程中选定时间的功耗变化。这个时间通常对应于算法计算依赖于子密钥的中间值的时刻。对于任何RSA,这些中间值可能是蒙哥马利乘法的结果。
- 对于RNS - RSA,攻击者必须知道基集A和B。如果不知道,就需要先对正向转换(基数到RNS转换)进行冗长繁琐的CEMA攻击来恢复它们。此时,选择函数的猜测就是RNS基本身的值,而不是经典CEMA中使用的私钥位。
- 假设已知RNS基,攻击者就可以预测每个密钥猜测k下操作数据x的功耗变化(进而预测电磁场变化)。由于蒙哥马利乘法结果是并行获得的,攻击者需要选择一个RNS通道来计算汉明权重。假设寄存器宽度为n,选择函数遵循线性模型d(x, k) = W(x, k) - n/2,对8位子密钥的每个猜测都进行这样的计算。
-
相关性计算与密钥估计
:CEMA期望通过识别在算法过程中导致最高相关值的猜测,返回密钥的估计值 k。相关性是根据d(x, k)和单次测量的EM轨迹Vem(t, x)作为时间t的函数来计算的,公式如下:
[c(t, k) = \frac{\sum_{i}(d(x_i, k) - \overline{d(x_i, k)})(V_{em}(t, x_i) - \overline{V_{em}(x_i, t)})}{\sqrt{\sum_{i}(d(x_i, k) - \overline{d(x_i, k)})^2 \sum_{i}(V_{em}(t, x_i) - \overline{V_{em}(t, x_i)})^2}}]
为了说明RSA对抗措施对CEMA的影响,我们评估了EM轨迹数量与子密钥正确猜测相对于错误猜测的峰值裕度之间的关系。当架构执行具有固定RNS模的模幂运算时,在没有对抗措施的情况下,处理500条EM轨迹后就有可能猜对正确假设。而采用LRA对抗措施并确保RAM安全访问后,即使处理了10000条轨迹,与密钥相关的相关曲线仍然淹没在其他相关曲线中。
下面是CEMA攻击的流程mermaid图:
graph LR
A[随机生成输入数据或观察密文] --> B[测量电磁场变化Vem(t, x)]
B --> C[选择选择函数]
C --> D[生成8位子密钥猜测]
D --> E[计算功耗变化]
E --> F[计算相关性]
F --> G[识别最高相关值的猜测,估计密钥]
2. RAM内存随机化
LRA对抗措施为内部变量提供了高度的随机化,使得碰撞和CEMA攻击难以得逞,因为无法通过估计内部变量的汉明权重来找到密钥。
在RSA硬件设计中,通常由算术块(ALU)、控制单元(CPU)、总线和存储器(RAM、ROM)组成,其中存在一些信息泄露源。控制单元和存储器的执行也依赖于指数位,主要涉及内存地址的值。在蒙哥马利阶梯算法中,RAM泄露是由乘法或平方结果的读写操作的不同寻址值引起的。
攻击者可以采取以下步骤进行攻击:
1. 假设指数运算始终使用固定指数,攻击者向设备发送随机消息x,并收集表示指数位为1时乘法的平均EM轨迹[EM(TM, x, 1)]和指数位为0时乘法的平均EM轨迹[EM(TM, x, 0)]。
2. 攻击者计算差分轨迹Ediff = EM(TM, x, 0) - EM(TM, x, 1),这可能揭示控制和RAM访问的泄露情况。泄露表现为RAM读取(r)和写入(w)执行期间的较高幅度。
3. 具体操作步骤如下:
- 考虑EM(TE, x, e)为完整模幂运算的轨迹样本。
- 考虑{EM(TM, x, ei)}为对应于指数位ei的所有大小为TM的乘法轨迹样本集。
- 将EM(TM, x, en - 1)(其中en - 1 = 1)设为参考轨迹,并计算差分轨迹Ediff = EM(TM, x, en - 1) - EM(TM, x, en - 1 - i),其中i = 0 : n - 1。
- 具有较高幅度(较高方差)的差分轨迹Ediff表示减法EM(TM, x, 1) - EM(TM, x, 0)。
当RAM寻址未随机化时,通过减去模平方的EM轨迹也可以验证相同的过程。差分轨迹的第一个样本的幅度表示在两个RNS基A和B中的乘法s = x.y,并且需要访问RAM来读取值x和y。模乘法结果wA和wB也必须存储在RAM中,这在差分轨迹中表现为较高幅度的RAM写入操作。而在随机化RAM地址后,这些泄露就被抑制了。
如果指数被随机化(er = e + r.φ(N)),攻击就可以处理单条轨迹。模板攻击和单执行(SE)攻击假设对于每个乘法EM(TM, x, 0)或EM(TM, x, 1),在时间ti至少有一个采样点,其EM辐射幅度遵循正态分布。在内存访问期间,采样点ti的EM辐射幅度对于EM(TM, x, 0)遵循N(μM0, σM0),对于EM(TM, x, 1)遵循N(μM1, σM1)。
通过对FPGA上映射的RSA设计获取10000条EM轨迹(已知私钥),可以发现内存访问期间的采样点ti遵循具有不同均值μM0、μM1和标准差σM0、σM1的正态分布。而在随机化RAM寻址后,EM(TM, x, 0)和EM(TM, x, 1)的相同点ti呈现相似的分布,这意味着信噪比降低,SE攻击变得更加困难。
下面是攻击者针对RAM泄露的攻击步骤表格:
|步骤|操作|
|----|----|
|1|发送随机消息x,收集EM(TM, x, 1)和EM(TM, x, 0)|
|2|计算差分轨迹Ediff = EM(TM, x, 0) - EM(TM, x, 1)|
|3|考虑EM(TE, x, e)为完整模幂运算轨迹样本|
|4|考虑{EM(TM, x, ei)}为乘法轨迹样本集|
|5|设EM(TM, x, en - 1)为参考轨迹,计算差分轨迹Ediff|
|6|根据差分轨迹幅度判断泄露情况|
综上所述,RSA的安全防护需要综合考虑算法、算术和硬件层面的对抗措施。蒙哥马利幂阶梯算法可以抵御简单的侧信道分析,但碰撞攻击仍然对RNS - RSA有效。通过随机化RNS基和RAM内存地址,可以有效抵御复杂的SPA和碰撞攻击,且对抗措施带来的时间开销约为1%。
3. 温度侧信道与加热故障攻击
在密码学领域,除了常见的功率和电磁侧信道,温度侧信道也是一个值得关注的研究方向。温度侧信道攻击通过被动测量设备散发的热量来获取处理数据的泄露信息,而加热故障攻击则是通过使设备在超出指定温度额定值的条件下运行来实施攻击。
3.1 温度侧信道的研究现状
自20世纪90年代末以来,人们就知道密码算法的实现会通过不同的侧信道泄露信息。功率和电磁侧信道由于其简单、低成本和高效的特点,在学术界和工业界得到了广泛应用。而温度侧信道虽然在文献中经常被提及,但大多数出版物只是提到了其存在和利用的可能性,缺乏进一步的研究。
例如,H. Bar - El曾表示,据他所知,智能卡的温度攻击在公开文献中从未有过记录。直到2009年,J. Brouchier等人的研究才明确指出了温度侧信道的存在。他们通过实验展示了如何从CPU散发的热量中间接提取秘密密码或可能的RSA密钥的比特信息。此外,还有一些与温度相关的攻击,如利用SRAM数据保留特性的低温攻击。
3.2 温度侧信道的原理
温度泄露与功率泄露模型呈线性相关,但受到热导率和电容等物理特性的限制。设备在处理数据时会消耗功率,功率消耗会产生热量,而热量的散发会导致设备温度的变化。通过测量这种温度变化,就有可能获取设备处理数据的相关信息。
3.3 加热故障攻击
加热故障攻击是通过使设备在超出指定温度额定值的条件下运行,从而导致设备出现故障,进而获取敏感信息。例如,在对RSA实现的实际攻击中,通过加热设备可以改变其正常的运算结果,攻击者可以利用这些异常结果来推断密钥信息。
3.4 数据残留攻击
数据残留攻击利用了AVR微控制器内部SRAM单元的负偏置温度不稳定性(NBTI)特性。NBTI会导致SRAM单元的阈值电压发生变化,从而使得在设备断电后,部分内存数据仍然可以被恢复。研究人员通过实验展示了如何在ATmega162上恢复部分内部内存。
下面是温度侧信道相关攻击的类型和特点列表:
|攻击类型|特点|
|----|----|
|温度侧信道攻击|被动测量设备散发的热量,获取处理数据的泄露信息,受物理特性限制|
|加热故障攻击|使设备超出指定温度额定值运行,导致故障以获取敏感信息|
|数据残留攻击|利用AVR微控制器SRAM单元的NBTI特性,恢复部分内部内存数据|
下面是温度侧信道攻击流程的mermaid图:
graph LR
A[测量设备温度变化] --> B[分析温度与数据的相关性]
B --> C[提取处理数据的信息]
C --> D[推断敏感信息(如密钥)]
4. 其他侧信道简介
除了上述提到的功率、电磁和温度侧信道,还有一些其他不太为人所知但同样具有潜在威胁的侧信道,如声学和光学侧信道。
4.1 声学侧信道
声学侧信道最早由A. Shamir和E. Tromer在2004年提出。热量会导致机械应力,从而产生声学噪声,这种噪声包含了CPU功率使用的信息,进而包含了处理数据的信息。例如,他们在2013年的研究中展示了对GnuPG的RSA实现的声学攻击。此外,D. Asonov和R. Agrawal利用PC键盘发出的不同声音进行攻击,L. Zhuan等人在2009年对该攻击进行了改进。
4.2 光学侧信道
光学侧信道的研究包括J. Ferrigno和M. Hlavác以及A. Schlosser等人对AES实现的研究,S. Skorobogatov使用低成本CCD相机分析SRAM、EEPROM和闪存存储器发出的光子泄漏。
下面是不同侧信道的比较表格:
|侧信道类型|发现时间|特点|应用示例|
|----|----|----|----|
|功率侧信道|1999年|简单、低成本、高效|广泛应用于密码分析|
|电磁侧信道|有相关研究以来|简单、低成本、高效|在密码分析中常用|
|温度侧信道|2009年明确指出存在|受物理特性限制,研究相对较少|对RSA实现的攻击、数据残留攻击|
|声学侧信道|2004年|通过声学噪声获取数据信息|对GnuPG的RSA实现攻击|
|光学侧信道|有相关研究以来|通过分析光子泄漏获取信息|对AES实现的研究|
综上所述,密码系统面临着多种侧信道攻击的威胁。在设计和实现密码系统时,需要综合考虑各种可能的侧信道,并采取相应的对抗措施来提高系统的安全性。同时,对于一些新兴的、研究较少的侧信道,也需要进一步深入研究,以更好地应对潜在的安全风险。
RSA侧信道攻击与防御策略
超级会员免费看
87

被折叠的 条评论
为什么被折叠?



