找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 文档 工具 设计
查看: 66|回复: 0

RSA初学者适用

[复制链接]

1万

主题

989

回帖

2万

积分

超级版主

教育辅助界扛把子

附加身份标识
精华
1
热心
5
听众
1
威望
53
贡献
12183
违规
0
书币
5872
注册时间
2020-4-8

论坛元老灌水之王

发表于 2022-11-24 00:30 | 显示全部楼层 |阅读模式
RSA在软件安全中应用广泛,对于初学者,我总结了一部分知识点。
一、模数分解如果n的大小不太大(不大于512位),可以尝试因式分解。常用方法有:在线因子查询网站factordb,Yafu,SageMath,python第三方库factordb-pycli。
factordb-pycli :  factordb n
Yafu :  如果数比较小可以直接 yafu-x64 factor()如果数比较大,需要将数保存成一个txt,然后使用yafu-x64 "factor(@)" -batchfile n.txt(注意:n为十进制,txt文件结尾必须有一个换行符,该命令会删除这个txt注意保存)可以实现对有缺陷的n(pq相差较大或者较小)快速分解。
原理:     (针对大整数的分解有很多种算法,性能上各有优异,有指数级分解方法:Fermat平方差方法,Pollard 方法(ρ,ρ-1),二次型分解算法,椭圆曲线分解法(ECM)和亚指数级分解方法:连分数分解算法,筛法(二次筛选法(QS),一般数域筛法(GNFS))等等。yafu可以自动化的完成分解,不论n的大小)
sagemath :一般在KALI上使用

公因数攻击(模n不互素攻击)e = 63357较大
如果题目中两次公钥加密给出了n1和n2有相同的素因子,那么可以通过gmpy2.gcd求出素因子p,然后在分别对n1和n2求出q1和q2。这种需要利用公约数的题目,通常情况下给出的n长度都在2048bit,4096bit,无法强行破解。

(遍历所有n的组合对,有非1公约数的n分解,就可得到p)


二、低加密指数攻击
RSA中,e是加密指数,由于e是从(1 , varphi)之间与 varphi 互素的数中任意选取的。为了缩短加密时间,有时可以选取较小的e。
加密指数e = 3较小,明文加密后不是太大。故可以由c = pow(m , e) + kn得


三、共模攻击
共模攻击即用两个及以上的公钥(n,e)来加密同一条信息m
已知有密文:
c1 = pow(m, e1, n)
c2 = pow(m, e2, n)
当e1,e2互质,则有gcd(e1,e2)=1。根据扩展欧几里德算法,对于不完全为 0 的整数 a,b,gcd(a,b)表示 a,b 的最大公约数。那么一定存在整数 x,y 使得 gcd(a,b)=ax+by

所以得到:e1*s1+e2*s2 = 1
四、低解密指数攻击
若提供的公钥e非常大,那么由于ed在乘积时地位对等,d的值很可能较小。尝试本方法




五、dp,dq泄露
m1 ≡ c^dp  mod p     m2 ≡ c^dq  modq (由中国剩余定理可得crt)
m =( (m2 - m1) *p^-1(mod q)) * p + m1(mod n)

((m2 - m1) * invert(p , q) (mod q)) * p + m1(mod n)
Great works are not done by strength, but by persistence! 历尽艰辛的飞升者,成了围剿孙悟空的十万天兵之一。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则 需要先绑定手机号


免责声明:
本站所发布的第三方软件及资源(包括但不仅限于文字/图片/音频/视频等仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢某程序或某个资源,请支持正版软件及版权方利益,注册或购买,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To: admin@cdsy.xyz

QQ|Archiver|手机版|小黑屋|城东书院 ( 湘ICP备19021508号-1|湘公网安备 43102202000103号 )

GMT+8, 2024-5-18 21:48 , Processed in 0.038075 second(s), 27 queries .

Powered by Discuz! CDSY.XYZ

Copyright © 2019-2023, Tencent Cloud.

快速回复 返回顶部 返回列表