# [2021 LineCTF] crypto - babycrypto3 문제에서 ciphertext.txt와 public key가 주어진다. public key에는 N, e 값이 들어있기 때문에, pycryptodome의 importKey로 값을 빼와보면 N값이 꽤 작은것을 볼 수 있다. factordb에 돌려 간단히 소인수분해 할 수 있고, decrypt 하면되는 쉬운 문제이다. ```python= from Crypto.PublicKey import RSA from Crypto.Util.number import * f = open('pub.pem', 'r') key = RSA.importKey(f.read()) f.close() f = open('ciphertext.txt', 'rb') ct = bytes_to_long(f.read()) N = 31864103015143373750025799158312253992115354944560440908105912458749205531455987590931871433911971516176954193675507337 p = 291664785919250248097148750343149685985101 q = 109249057662947381148470526527596255527988598887891132224092529799478353198637 e = 65537 phi = (p - 1) * (q - 1) d = pow(e, -1, phi) print(long_to_bytes(pow(ct, d, N))) ```