存档一些未解的RSA
2021/11/3 6:10:14
本文主要是介绍存档一些未解的RSA,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
1
from Crypto.Util.number import * import random rp = getPrime(int(22)) rq = getPrime(int(22)) expo = 2 def gen_prime(expo, r): while True: temp = random.getrandbits(512) prime = temp ** expo + r if isPrime(prime) and prime.bit_length() == 1024 and r < 2*temp**(expo//2): return prime p = gen_prime(expo, rp) q = gen_prime(expo, rq) N = p * q e = 65537 print(2**512) p = 2**512 print(int(22)) """ rp = 2761901 rq = 3521341 N = 8173429571237662356174233212574237281236998322542031650592594000891217669517413120500967497159244942348919067278693976689821859501087450019648230509709850347452324917093790301921127612493160209440437151319899297108532561169489425336409144924829832598843960688066486385145035210137687912003224734049803067433867707061772684826069508323572784775026848012706590657701751696891266472810511785676911545335741922767714438974823662929237575578695019172902410190335369556100506389008308623507470571466550018151809818826697222772408182010868119265594161444787149236612545056615010167331621709873102985291078241888304225882829 c = 6554138766974173272710144648183504398065698784167774773317718988434462828799287233285624061164660513258962823179912342327844671108808332129449156312310273679584167590425419252200727139421539687306609425624304225214120321941886252869436713943300790736667897627797614987266193848818485307859417445578102219563876798765702350608858252252678318853952926930729175117874307966329617938829619268459168088842722041471147579581400725208411779803070123511693579859690831873136147414357525140485188770396726712964444601480021916230402939070817964700309571887644154422478649510166353979404316364679398748317299695684951369875031 """
exp
from Crypto.Util.number import * import random import gmpy2 from z3 import * from tqdm import tqdm rp = 2761901 rq = 3521341 N = 8173429571237662356174233212574237281236998322542031650592594000891217669517413120500967497159244942348919067278693976689821859501087450019648230509709850347452324917093790301921127612493160209440437151319899297108532561169489425336409144924829832598843960688066486385145035210137687912003224734049803067433867707061772684826069508323572784775026848012706590657701751696891266472810511785676911545335741922767714438974823662929237575578695019172902410190335369556100506389008308623507470571466550018151809818826697222772408182010868119265594161444787149236612545056615010167331621709873102985291078241888304225882829 C = 6554138766974173272710144648183504398065698784167774773317718988434462828799287233285624061164660513258962823179912342327844671108808332129449156312310273679584167590425419252200727139421539687306609425624304225214120321941886252869436713943300790736667897627797614987266193848818485307859417445578102219563876798765702350608858252252678318853952926930729175117874307966329617938829619268459168088842722041471147579581400725208411779803070123511693579859690831873136147414357525140485188770396726712964444601480021916230402939070817964700309571887644154422478649510166353979404316364679398748317299695684951369875031 e = 65537 x = N - (rp * rq) tptq = int(gmpy2.iroot(N, 2)[0]) for i in (range(rp, rq + 1)): alpha = (tptq - i) ** 2 beta = N - alpha - (rp * rq) a = rq b = -beta c = alpha * rp delta = (b ** 2) - (4 * a * c) if delta >= 0: sq_delta = gmpy2.iroot(delta, 2) if sq_delta[1]: fenz = sq_delta[0] - b if fenz % (2 * a) == 0: x = fenz // (2 * a) y = alpha // x if (x + rp) * (y + rq) != N: x, y = y, x p = x + rp q = y + rq assert p * q == N phi = (p - 1) * (q - 1) d = inverse(e, phi) m = pow(C, d, N) print(long_to_bytes(m)) exit()
这篇关于存档一些未解的RSA的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-15鸿蒙生态设备数量超8亿台
- 2024-05-13TiDB + ES:转转业财系统亿级数据存储优化实践
- 2024-05-09“2024鸿蒙零基础快速实战-仿抖音App开发(ArkTS版)”实战课程已上线
- 2024-05-09聊聊如何通过arthas-tunnel-server来远程管理所有需要arthas监控的应用
- 2024-05-09log4j2这么配就对了
- 2024-05-09nginx修改Content-Type
- 2024-05-09Redis多数据源,看这篇就够了
- 2024-05-09Google Chrome驱动程序 124.0.6367.62(正式版本)去哪下载?
- 2024-05-09有没有大佬知道这种数据应该怎么抓取呀?
- 2024-05-09这种运行结果里的10.100000001,怎么能最快改成10.1?