Wiener’s attack python
题目如下: 在不分解n的前提下,求d。 给定: e = 14058695417015334071588010346586749790539913287499707802938898719199384604316115908373997739604466972535533733290829894940306314501336291780396644520926473 n = 33608051123287760315508423639768587307044110783252538766412788814888567164438282747809126528707329215122915093543085008547092423658991866313471837522758159 说明过程。 这种e很大的,d可能就会比较小,可能会满足Wiener’s attack的条件,介绍如下: 英文: 中文材料参考: 这里有两个概念,连分数和渐进分数,详情自行谷歌百度 连分数概念图: 渐进分数概念: 我的理解: 上面的等式应该比较容易理解,就是等式右边的分母很大,作为整体很小,意味着等式左边的减数和被减数的差距很小很小,并且可以通过被减数的连分数求解不断逼近它本身的一个渐进分数,因此可能会存在某个渐进分数可以满足减数的要求; 当然按照求解的渐进分数的分子分母分别对应减数的分子分母