from algo import * def main(): mu = [ 31726849986005826981, 305966565717393601613, 61497322861823383198, 269645690420162032117, 155457162093765938384, 24931468152962121635, 138444967690527010216, 282789589899417404817, 134251529920691060404, 423054566352157178418, 265453042944217161627, 39119050384849643825 ] # encrypted message n = 455649012989940178621 # first element public key e = 5303 # second element public key length = len(mu) # --- private element --- M = [] # decriypted message msg = "" # message (string) p = 0 # fisrt prime number q = 0 # second prime number d = 0 # private key #--- crack RSA --- a, b = fermat_factorization(n) p = a + b q = a - b fi = (p - 1) * (q - 1) d = inverse_modulaire(e, fi) # get private key # --- decode mu & initialise msg --- for i in range(length): M.append(exponentiation_rapide(mu[i], d, n)) for m in M: msg += decode_msg(m) # --- output --- print("p :", p, "\nq :", q, "\nfi :", fi, "\nd :", d, "\nmsg :", msg) if __name__ == "__main__": main()