浪子归家|密码学学习笔记之Coppersmith’s Method (三)( 五 )

第六关:Boneh Durfee Attack已知n,e,c , d只有1024 * 0.27bit
[+]Generating challenge 6[+]n=0xbadd260d14ea665b62e7d2e634f20a6382ac369cd44017305b69cf3a2694667ee651acded7085e0757d169b090f29f3f86fec255746674ffa8a6a3e1c9e1861003eb39f82cf74d84cc18e345f60865f998b33fc182a1a4ffa71f5ae48a1b5cb4c5f154b0997dc9b001e441815ce59c6c825f064fdca678858758dc2cebbc4d27L[+]d=random.getrandbits(1024*0.270)[+]e=invmod(d,phin)[+]hex(e)=0x11722b54dd6f3ad9ce81da6f6ecb0acaf2cbc3885841d08b32abc0672d1a7293f9856db8f9407dc05f6f373a2d9246752a7cc7b1b6923f1827adfaeefc811e6e5989cce9f00897cfc1fc57987cce4862b5343bc8e91ddf2bd9e23aea9316a69f28f407cfe324d546a7dde13eb0bd052f694aefe8ec0f5298800277dbab4a33bbL[+]m=random.getrandbits(512)[+]c=pow(m,e,n)=0xe3505f41ec936cf6bd8ae344bfec85746dc7d87a5943b3a7136482dd7b980f68f52c887585d1c7ca099310c4da2f70d4d5345d3641428797030177da6cc0d41e7b28d0abce694157c611697df8d0add3d900c00f778ac3428f341f47ecc4d868c6c5de0724b0c3403296d84f26736aa66f7905d498fa1862ca59e97f8f866cL[-]long_to_bytes(m).encode('hex')=
浪子归家|密码学学习笔记之Coppersmith’s Method (三)但具体怎么去求解这个方程呢?这就涉及多元coppersmith’s method了 , 超纲了吖 , 所以这里先用了github上的一个脚本boneh_durfee.sage 。 这里的适用条件是d < N^0.292?
思考&总结在coppersmith’s method的边界计算中 , 由于推理中存在的不等式 , 各基规约算法在不同情况有不同的表现等问题 , 导致coppersmith’s method的边界其实比较模糊 , 而构造不同的格也会计算出不同的边界值 , 有不同的效果 。 所以 , 在考虑时间和空间复杂度的情况下 , 是否会存在某种最优的构造方法呢?
好了 , 这里大概是大部分的对单元coppersmith’s method的应用实例了 。 最后一手Boneh Durfee Attack利用了多元coppersmith‘s method , 这算是埋了一手伏笔么?
本文由V原创发布 转载 , 请参考转载声明 , 注明出处:


推荐阅读