RSA-CRT 故障注入攻击

文章介绍了如何通过故障攻击来破解使用中国剩余定理加速的RSA算法,详细阐述了RSA的加解密过程以及CRT如何加速解密。同时,提出了RSA-CRT的故障注入攻击方法,以及通用的防御措施,包括在计算后进行故障检验和使用传感器检测异常情况。
摘要由CSDN通过智能技术生成

简介

故障攻击注入故障的方式有多种,如电压变化、改变时钟周期、温度变化、激光和X射线、等等。这些方式都是为了使攻击对象在执行计算时出错,导致输出错误结果。这些错误信息可能被攻击者用来破解密钥。这里简单介绍对使用中国剩余定理(CRT)的RSA算法的攻击,即RSA-CRT,通过故障攻击可以完全破解密钥。

RSA加解密过程

  1. 选择两个大素数,p、q (这里的p和q不能太小,太小容易被破解,太大计算时间比较长)

  2. n=p*q。Φ(n) = (p-1)(q-1)(这里的Φ(n)是欧拉函数:Φ(n)的值为小于n且与n互质的个数)

  3. 选择一个公钥e(1<e<Φ(n)),e不是p-1与q-1的因子。gcd(e,(p-1)(q-1)) = 1(e与Φ(n)互素)

  4. 私钥d:(d*e) mod (p-1)(q-1) = 1

  5. 加密(密文:c,明文:p):

    c = p^e mod n。公钥(n,e)

  6. 解密:

    p=c^d mod n。私钥(p,q,d)

CRT加速RSA解密

在使用RSA算法对密文进行解密时,私钥指数d和模数n的位数一般比较大,计算起来比较困难。可以使用中国剩余定理对其进行解密。

  1. 可以将 m = c^d mod n 写成

    m1=c^d mod p

    m2=c^d mod q

  2. n得到降低,d位数还是很大,继续降低d的位数,可得:

    c ^ d mod p = c ^ ( d mod Φ ( p ) ) mod p = c ^ ( d mod (p-1) ) mod p

  3. 最终求解为:

    S = CRT(m1, m2) = m2 + ((m1–m2) (q^(–1) mod p) mod p)⋅q

RSA-CRT故障注入攻击

一般的RSA-CRT计算过程为:

  1. 计算 m1 = c ^dp mod p
  2. 计算 m2 = c ^dq mod q
  3. 计算 h = q^(-1)⋅(m1 - m2) mod p
  4. 计算 m = m2 + h⋅q

一个有效的错误和一个合理的攻击窗口即可恢复秘钥。

输出错误解密密文 m* = m2 + h*⋅q

m - m* = (h - h*)⋅q

gcd(m - m*, n) = q

通用防御:

通用防御的方法包括且不限于以下几种:

  1. 最终签名结果的计算在故障检验步骤之后进行,具体为:首先在组合步骤之前产生随机数
  2. 多次随机冗余操作
  3. 传感器检测:电压变化、改变时钟周期、温度变化传感器等
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值