CISCN 2023


Crypto

badkey1

import string
from Crypto.Util.number import *
from gmpy2 import *
from pwn import *
from hashlib import *
from string import *
from tqdm import *
from Crypto.PublicKey import RSA
from random import choice


# ------------ 交互部分 ------------
host = '39.107.137.13'
port = 35786
conn = remote(host, port)
conn.interactive()
import string
from Crypto.Util.number import *
from gmpy2 import *
from pwn import *
from hashlib import *
from string import *
from tqdm import *
# ------------ sha256 ------------
c = 'XXXX+kj1UXEX0q7Jlm052'
h = 'c714e09e3911b5228059b9060b85f7f67f31f9552643d31f786530a7523681e8'
h = h[:10]

str = string.ascii_letters + string.digits

s = ''
c1 = c
for i in tqdm(range(62)):
    for j in range(62):
        for m in range(62):
            for n in range(62):
                c2 = c1
                s = str[i] + str[j] + str[m] + str[n]
                c2 = c2.replace('XXXX+',s)
                # print(c2)
                c3 = sha256(c2.encode()).hexdigest()
                if(c3[:10] == h):
                    print(s)
                    print(c2)
                    break
import string
from Crypto.Util.number import *
from gmpy2 import *
from pwn import *
from hashlib import *
from string import *
from tqdm import *
# ------------ badkey1 ------------
nbits = 512
e = 65537

def findq():
    for i in range(2,e):
        g,x,y = gcdext(e*p,-i*(p-1))
        if g!=1:
            continue
        q = y + 1
        if(q.bit_length() == 512 and isPrime(q)):
            return q
    return None

for i in tqdm(range(1000)):
    p = getPrime(nbits)
    q = findq()
    if q is not None:
        phi = (p-1)*(q-1)
        d = inverse(e,phi)
        print(f'p = {p}')
        print(f'q = {q}')
# p = 6808804090250581861304484745846179535528639885380168116154935977229617363141797545503975645443648531898762365723853687773977709016086358239395190534730421
# q = 9401212886100179253312746506286504073874846790497783647589832346202878428619645350645742213931508511272902889563648719413135670236720238295045803829662397
# NSSCTF{21cd32bd-e79c-415f-bcf5-65f68bb1a1a6} 

文章作者: hengxinyan
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 hengxinyan !
  目录