RSA★★★

Really Secure Algorithm!
n = 16547070520914666367481944159053275529434584410142411
e = 65537
c = 13179845332334938411787150462748287916268892414709429
답은 plain message의 hex representation을 ascii로 인코딩 한 값.

n, e, c값을 주었다. 일단, n을 통해서 p와 q값을 구해보면 173, 95647806479275528135733781266203904794419563064407가 나오게 된다. 그렇게 p와 q를 이용하면 d값이 10183580522135815425951707624793108040776999367017921가 나오므로 c ^ d % n 을 하게되면 평문을 구할 수 있다.

n = 16547070520914666367481944159053275529434584410142411
c = 13179845332334938411787150462748287916268892414709429
d = 0x1b37e377e766547d6f62cb180328d6d345db261705c1

def modpow(x, y, z):
    number = 1
    while y:
        if y & 1:
            number = number * x % z
        y >>= 1
        x = x * x % z
    return number

plain = modpow(c, d, n)

print hex(plain)[2:-1].decode('hex')

Flag : GoN{easy_factoring}

results matching ""

    No results matching ""