''' n = 6969872410035233098344189258766624225446081814953480897731644163180991292913719910322241873463164232700368119465476508174863062276659958418657253738005689 e = 3331016607237504021038095412236348385663413736904453330557803644384818257225138777641344877202234881627514102078530507171735156112302207979925588113589669 c = 1754994938947260364311041300467524420957926989584983693004487724099773647229373820465164193428679197813476633649362998772470084452129370353136199193923837 '''
至此我们需要知道的是,当发现 d 比较小时可以使用wiener攻击,但有些时候我们并不知道 d 的大小,不过我们能够知道此时 e 会很大 (因为ed - 1 = k⋅ϕ(n), 一个小另一个就会大) 。所有当我们发现 e 很大或者说接近于 n 时,便可以考虑使用连分数展开的方式, 遍历每一个逼近分数, 测试是否是解题中需要用到的关键因子
from Crypto.Util.number import * from gmpy2 import *
n = 6969872410035233098344189258766624225446081814953480897731644163180991292913719910322241873463164232700368119465476508174863062276659958418657253738005689 e = 3331016607237504021038095412236348385663413736904453330557803644384818257225138777641344877202234881627514102078530507171735156112302207979925588113589669 c = 1754994938947260364311041300467524420957926989584983693004487724099773647229373820465164193428679197813476633649362998772470084452129370353136199193923837