암호학
RSA-개인키 d를 알 때 N을 소인수분해 하는 알고리즘
import random import math d='' e='' N='' def factorize(N, e, d): k = d*e - 1 while True: g = random.randint(2, N-1) t = k while True: if t % 2 == 0: t //= 2 x = pow(g, t, N) if x > 1: y = math.gcd(x - 1, N) if y > 1: p = y q = N // y return p, q else: break p, q = factorize(N, e, d) print("p:", p) print("q:", q) input: N,e,d output: p and q where pq=N. 1.set k
2023. 7. 1.