提示
提示 1查看
gcd(e1, e2) = 1。用扩展欧几里得算法求出满足 `s1×e1 + s2×e2 = 1` 的整数 s1、s2
提示 2查看
于是 `c1^s1 × c2^s2 ≡ m^(s1×e1 + s2×e2) = m (mod n)`
提示 3查看
负指数用模逆计算。Python 3.8 及以上可直接使用 `pow(c, -k, n)`
两个系统共用同一个 RSA 模数 n,只改变了公开指数。同一条消息分别用 e1 和 e2 加密得到的密文 c1、c2 已经泄露(`public_keys.txt`、`ciphertexts.txt`)。n 无法分解,但请在没有私钥的情况下恢复消息并提交旗标。
gcd(e1, e2) = 1。用扩展欧几里得算法求出满足 `s1×e1 + s2×e2 = 1` 的整数 s1、s2
于是 `c1^s1 × c2^s2 ≡ m^(s1×e1 + s2×e2) = m (mod n)`
负指数用模逆计算。Python 3.8 及以上可直接使用 `pow(c, -k, n)`