2021-03-02

RSA加密解密理解
RSA是ctf中比较常见的一类题型,但是由于给出数据较为复杂,往往看一眼就放弃,这里主要总结一下ctf中RSA的几种解题方法,如果不是很了解RSA,戳开链接瞧一下: RSA常见解题思路及技巧
一 RSA加密过程
1.随便找出两个整数q和p(q,p互素),求出n=qp;
2.Φ(n)=(p-1)
(q-1) (欧拉公式);
3.公匙e:随机取,要求是e和Φ(n)互素,且1<e<Φ(n);
4.私匙d:ed≡1(mod Φ(n)),表示ed除以Φ(n)的余数为1;
例如:
计算:e=5,Φ(n)=96 (5d)mod(96)=1,d=77满足要求;

在这里插入图片描述得到c=100000 mod 119=40
解密
在这里插入图片描述m=40^77 mod 119=10

加密算法原理:
在这里插入图片描述
解密算法原理:

在这里插入图片描述

常见解题思路:
1.对RSA的共同模数攻击
适用于使用私匙不同,模数N相同加密的同一明文信息。
基本原理:加尔u采用两个或者两个以上的公匙(N,e)来加密同一条信息,可以得到下面的结论:(pow()表示x的y次幂后除以z的余数)
c1=pow(m,e1,N)
c2=pow(m,e2,N)
分别拿对应的私匙来加密,可以得到相同的明文m:
m=pow(c1,d1,N)
m=pow(c2,d2,N)
2.对RSA小指数e攻击
如果RSA系统的公钥e选取较小的值,可以使得加密和验证签名的速度有所提高,但是如果e的选取太小,就容易收到攻击。
有三个分别不同的模数n1,n2,n3,但是都选取e=3,加密同一个明文可以得到:
c1=pow(m,3,n1)
c2=pow(m,3,n2)
c3=pow(m,3,n3)
一般情况下,n1,n2,n3互素,否则会比较容易求出公因子,使得安全性大幅度的减低
3.RSA选择密文攻击
在此种攻击模型中,攻击者需要掌握包括:加密算法、截获的部分密文、自己选择的密文消息以及相应的被解密的明文。
4.直接分解模数N
最直接的攻击方法,也是最难的方法,要进行RSA安全性分析;如果n小于256bit,可以使用本地工具进行暴力破解,例如windwods平台的RSATool,可以在数分钟之内完成256bit的n的分解。如果n大于768bit,可以尝试利用在线网站http://factordb.com,这一类在线网络的工作原理是储存了部分n分解成功的值。
5.利用公约数
思路
如果两次加密的n1,n2具有相同的素因子,可以利用欧几里得算法直接分解n1,n2,即通过欧几里得算法计算出两个n的最大公约数p

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值