RSA攻击

2019-04-13 16:58发布

参加个CTF比赛,发现自己零代码量,什么东西都没有准备,被吊打当然正常,基本的工具常用的代码可以自己提前写好的呀常用的代码有:gcd:求两个数的最大公约数egcd:求满足ax+by=1,当gcd(a,b)=1时,满足式子的x和yhextoflag:很多题目都是给的字母的ord值:两位两位表示一个字母,转化成chr字符就是flag的b64:base64解密b32:base32解密qp:quickpow,快速幂运算modinv:求cd=1(mod m),在已知c,m,且gcd(c,m)=1的时候,求得c的逆元dget_phi_n:求n的欧拉函数(这个是做RSA题专用的分解n,因为n是两个大素数相乘)attacksamen:RSA公模攻击原理:http://www.math1as.com/index.php/archives/360/?utm_source=tuicool&utm_medium=referralhttp://bobao.360.cn/learning/detail/3058.htmlmodequation:求ax=b(mod c)的x,一次同余方程,有解的条件是,b % gcd(a,c)=0
代码如下:#!/usr/bin/env python # coding=utf-8 from pwn import * from gmpy2 import iroot import hashlib import base64   import sys from Crypto.Util.number import bytes_to_long, long_to_bytes import gmpy2 sys.setrecursionlimit(10000000)  def hextonumber(x): #1234567890abcdef #1234567890ABCDEF if x>='0' and x<='9': return int(x) elif x>='A' and x<='F': return ord(x)-55 else: return ord(x)-87 def hextoflag(s): #word='666c61677b7769656e65725f61747461636b5f61747461636b5f796f757d' #flag{wiener_attack_attack_you} flag = '' i = 0 while (i


热门文章