From 99402601ad82e2c80fd840fefa69b7e92911a87b Mon Sep 17 00:00:00 2001 From: six <51x@keemail.me> Date: Thu, 3 Nov 2022 18:47:37 +0100 Subject: [PATCH] Hint for RSA Rust challenge --- Prequalification_Challenges/rust/hint.py | 30 ++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 Prequalification_Challenges/rust/hint.py diff --git a/Prequalification_Challenges/rust/hint.py b/Prequalification_Challenges/rust/hint.py new file mode 100644 index 0000000..a9e1a30 --- /dev/null +++ b/Prequalification_Challenges/rust/hint.py @@ -0,0 +1,30 @@ +#!/usr/bin/env python3 + +from math import lcm +from gensafeprime import * +from Crypto.Util.number import * +from flag import flag + +def keygen(nbit): + p, q = [generate(nbit) for _ in '01'] + n, e, phi = p * q, 65537, lcm(p - 1, q - 1) + d = inverse(e, phi) + return n, e, d + +def encrypt(n, e, d, m): + c1 = pow(n + 1, d >> 3, n ** 2) + c2 = pow(m, e, n) + return (c1, c2) + +flag = bytes_to_long(flag) +print (flag) +n, e, d = keygen(512) +c1, c2 = encrypt(n, e, d, flag) + +print(f'n = {n}') +print(f'c1 = {c1}') +print(f'c2 = {c2}') + +#validity = '[OK]' if (c1 - 1) % n == 0 else '[Not OK!]' +#d3 = (c1 - 1) // n +#....