密码学学习之费马小定理 & 中国剩余定理应用:RSA-CRT 签名算法

文章介绍了RSA算法的传统步骤,并提出使用中国剩余定理和欧拉定理降低解密时的次幂计算阶,通过dp和dq值实现更高效的解密过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 RSA算法

传统方式计算RSA
1.公私钥计算
(1) 计算 n = p x q ;
(2) 计算Φ(n)= (p-1) x (q-1);
(3) 选择 e ,且e与Φ(n)互素 ;
(4) 确定d x e= 1 mod Φ(n);
(5) 确定公钥 PU = {n , d}, 私钥 PR = {n,e}
2.加解密
明文M ;加密Y= M^e mod n;
解密 M = Y^d mod n;

由于原版的RSA算法在解密的时候,需要用到公式c^d = m,若d过大则会导致解密时间过长,因此可以使用中国剩余定理降低解密时次幂计算时的阶。

首先n可以分解成p和q,之后根据中国剩余定理,有m=m1 mod p、m = m2 mod q,这样可以直接把解密的模数从n降为p和q。接着,为了减少次解密时乘法的次幂数,根据我之前写BUUCTF的RSA1的题目的步骤来看,可以令dp = d mod (p-1),dq = d mod (q-1)(注意,这里之所以选p-1作为模数,是因为p-1是Φ(n)的因子之一满足欧拉定理),

1. 根据中国剩余定理,可知m1 = c^d mod p; m2 = c^d mod q,因此c^d = kp + m1, m2= (kp + m1) mod q , m2 - m1= kp mod q 

2. 由于pq互素,因此可以得出(m2-m1)p-1 = k mod q,经过公式转换可以得出k = (m2 - m1) p-1 mod q,将k代入公式cd = kp + m1,得出等式cd =(( (m2-m1)p-1modq)p + m1)mod n 

   3. 由公式5、6得出d = dp mod ( p − 1 ),ddq mod ( q − 1 ) ,将其代入m1 = c^d mod p和m2 = c^d mod q 

4. 最终得到明文表达式m = (((m2−m1) ∗p−1 mod q) p + m1) mod n = (((c^dp mod ( p − 1 ) mod qc^dq mod ( q − 1 ) mod p) ∗p−1 mod q) p + c^dp mod ( p − 1 )mod p) mod n

那么d = k1*(q-1) +dp,带入解密公式,可得c^d mod p =c^(k1(p-1) +dp) mod p=c^dp * c^(k1(p-1)) mod p,因为 c^(p-1) mod p = 1 (欧拉定理)= c^k1 mod p,这样就成功降解密的次幂阶从d降到了k1,这里的k1 = d mod dp,这么看是不是很巧呢?这里不光是dp,还可以用dq(dq = d mod (q-1),即d = dq mod (q-1)),来降低d,总之是个很灵活的事。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值