密码学
《加密与解密》
暮w光
这个作者很懒,什么都没留下…
展开
-
【buuctf】RSA4(低加密指数广播攻击)
1.首先可以看出三组n与c,其次两者都是5进制,需要转换。2.对于低指数攻击,之前那篇总结博客也写过,需要着重了解下中国剩余定理:3.exp:# -*- coding: UTF-8 -*-import gmpy2import libnumdef CRT(data): sum = 0 m = 1 for n in data: m = m*n[0] for n,c in data: m1 = m/n mr = gmpy2.invert(m1,n) sum = sum+mr原创 2021-12-19 00:56:43 · 1721 阅读 · 0 评论 -
【buuctf】RSA5(低指数加密广播攻击)
1.描述:即如本题一样有多个n,c但m,e相同。2.思路:试图找到每个n的最大公因式,从而分解n,得到p,q。3.exp(python2环境):import gmpy2e=65537n1 = 20474918894051778533305262345601880928088284471121823754049725354072477155873778848055073843345820697886641086842612486541250183965966001591342031562953原创 2021-12-19 00:42:20 · 767 阅读 · 0 评论 -
【buuctf】rsa2(e很大的指数攻击)
1.根据题目解出d然后求其md5值即可,直接rsawienerattack尝试分解e得到d:2.exp(python2环境下):import hashlibN = 10199180977755325347027675139926474013115768232925267350179215450700615843443200914199536724196252570595004625340018888465826249653470643879151507188586089755273665689956原创 2021-12-19 00:23:56 · 1651 阅读 · 0 评论 -
[GUET-CTF2019]BabyRSA(p,q灵活应用)
1.首先可以推算:n=p*q=(p+1)(q+1)-(p+q)-1欧拉函数:φ(n)=(p-1)(q-1)=phi=(p+1)(q+1)-2*(p+q)2.exp:import libnuma=0x1232fecb92adead91613e7d9ae5e36fe6bb765317d6ed38ad890b4073539a6231a6620584cea5730b5af83a3e80cf30141282c97be4400e33307573af6b25e2eab=0x5248becef1d925d4原创 2021-12-18 23:53:49 · 478 阅读 · 0 评论 -
【buu】Dangerous RSA(小指数攻击)
1.e为16进制3,小指数攻击:2.exp:#python3## -*- coding: utf-8 -*-#from gmpy2 import irootimport libnume = 0x3n = 0x52d483c27cd806550fbe0e37a61af2e7cf5e0efb723dfc81174c918a27627779b21fa3c851e9e94188eaee3d5cd6f752406a43fbecb53e80836ff1e185d3ccd7782ea846c2e91a7b0原创 2021-12-18 23:33:59 · 1757 阅读 · 0 评论 -
【BUU】RSA (n+e+c+p+q=m+公钥提取)
下载下来得到:2.在线公钥解析或yahu:3.在线分解n:4.5.exp(需要改文件路径):import rsae= 65537n= 86934482296048119190666062003494800588905656017203025617216654058378322103517p= 285960468890451637935629440372639283459q= 304008741604601924494328155975272418463d= 8117616...原创 2021-12-18 23:16:52 · 794 阅读 · 0 评论 -
【BUU】RSA1(dp、dq泄露)
1.数学知识见由p,q,dp,dq,c求明文的算法2.import gmpy2q=12640674973996472769176047937170883420927050821480010581593137135372473880595613737337630629752577346147039284030082593490776630572584959954205336880228469 p=86376337672570085670996534865410911713204915094336154原创 2021-12-16 23:22:09 · 931 阅读 · 1 评论 -
【BUUCTF】 RSA2(dp泄露)
参考:https://www.freesion.com/article/26551439803/https://www.it610.com/article/1289100237083844608.htm原创 2021-12-18 22:42:14 · 1139 阅读 · 0 评论 -
RSA算法总结(数学知识/CTF题型)
1.RSA简介原创 2021-12-18 00:42:30 · 6308 阅读 · 1 评论 -
RSA:由p,q,dp,dq,c求明文的算法
1.例题:【BUUCTF】RSA12.python解密:import gmpy2I = gmpy2.invert(q,p)mp = pow(c,dp,p)mq = pow(c,dq,q) #求幂取模运算m = (((mp-mq)*I)%p)*q+mq #求明文公式print(hex(m)) #转为十六进制3.数学原理分析:转载:https://blog.csdn.net/MikeCoke/article/deta转载 2021-12-16 23:11:00 · 1953 阅读 · 3 评论 -
BUU 【rsarsa】
1.题目描述:2.先用工具求出秘钥d(Number Base 设置为十进制,Public Exponent这里要使用16进制的数,将十进制e:65537改为十六进制形式:10001)3.python脚本(p+q+c+d+e=m)import libnumc = 832082989951746041747735902982036393605400248712561268928896613457424033149298619391004926666056473166465764865262174原创 2021-12-15 00:06:19 · 2082 阅读 · 0 评论 -
BUU 【Alice与Bob】
1.利用工具接解出p、q:2.再拼接利用脚本加密:import hashlib string = '101999966233' def md5value(key): input_name = hashlib.md5() input_name.update(key.encode("utf-8")) print("大写的32位" + (input_name.hexdigest()).upper()) print("大写的16位"+(input_name.hexdig原创 2021-12-14 23:36:27 · 734 阅读 · 0 评论 -
BUU 【丢失的md5】
1.题目:import hashlib for i in range(32,127): for j in range(32,127): for k in range(32,127): m=hashlib.md5() m.update('TASC'+chr(i)+'O3RJMV'+chr(j)+'WDJKX'+chr(k)+'ZM') des=m.hexdigest() if '原创 2021-12-14 23:22:19 · 1541 阅读 · 0 评论