首页
社区
课程
招聘
[原创]守株待兔
发表于: 2020-5-12 14:07 6038

[原创]守株待兔

xym 活跃值
4
2020-5-12 14:07
6038
1. 由题目给出两个定值求两个值猜测可能是椭圆曲线
2. 发现重构代码里有一部分用于求取类似斜率的值,理解了题目是要求取点key的两个坐标值,其中(2^8+1)key=point,point是点,有两个坐标值且已知
2.0 椭圆曲线更多知识参考695K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6%4N6%4N6Q4x3X3g2U0L8X3u0D9L8$3N6K6i4K6u0W2j5$3!0E0i4K6u0r3M7h3y4T1L8r3!0Y4i4K6u0r3M7q4)9J5c8U0R3&6z5e0R3H3y4o6g2Q4x3X3g2Z5N6r3#2D9
2.1 查找 椭圆曲线(Elliptic curve)的加法定义,最先发现python实现的Elliptic curve代码如下(ref:735K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4y4@1i4K6u0W2k6$3W2@1K9s2g2T1i4K6u0W2j5$3!0E0i4K6u0r3j5X3g2D9L8r3u0A6L8X3c8Q4x3V1j5I4y4o6p5@1z5o6j5%4i4@1g2r3i4@1u0o6i4K6S2o6i4@1f1^5i4@1u0r3i4K6V1&6i4@1f1&6i4K6R3%4i4K6S2o6i4@1f1^5i4@1u0r3i4K6V1^5i4@1f1$3i4K6W2o6i4K6R3&6L8i4g2D9i4@1f1%4i4K6W2m8i4K6R3@1i4@1f1#2i4@1q4q4i4K6W2m8i4@1f1@1i4@1t1&6i4K6R3&6i4@1g2r3i4@1u0o6i4K6S2o6i4@1f1#2i4K6V1H3i4K6S2q4i4@1f1%4i4@1u0n7i4@1q4p5i4@1f1$3i4@1t1I4i4K6R3J5i4@1f1^5i4@1p5%4i4@1p5K6K9$3g2&6i4@1f1^5i4@1p5$3i4K6R3I4i4@1f1%4i4K6V1@1i4@1p5^5i4@1f1#2i4K6R3^5i4@1t1H3i4@1g2r3i4@1u0o6i4K6R3&6i4@1g2r3i4@1u0o6i4K6W2m8
        if p1.x == p2.x:
            # p1 + p1: use tangent line of p1 as (p1,p1) line
            l = (3 * p1.x * p1.x + self.a) * inv(2 * p1.y, self.q) % self.q#点p1==p2时,椭圆曲线定义的加法是该点切线与曲线的另一交点的对称点(或叫逆元)
            pass
        else:
            l = (p2.y - p1.y) * inv(p2.x - p1.x, self.q) % self.q#点p1!=p2时,椭圆曲线定义的加法是p1与p2做直线与曲线的另一交点的对称点
            pass
        x = (l * l - p1.x - p2.x) % self.q
        y = (l * (p1.x - x) - p1.y) % self.q
2.2 再利用重构代码通过两种方法实现4倍点的计算,一种是做两次倍点运算,一种是做一次倍点运算,再加两次本来的点,若相等,则可从另一个角度验证了就是椭圆曲线上的加法
3. 虽然以上都说明该题目是椭圆曲线上的问题,但是该题目的模数p并不是素数,那么为求取key=((2^8+1)^(-1))*point有两个思路,一个是分解模数p,然后按照一般方法求取椭圆曲线的阶,另一个是尝试实现Schoof-Elkies-Atkin Algorithm,直接求取阶,可参考94eK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6H3k6h3!0H3L8r3g2Q4x3X3g2U0M7#2)9J5k6h3&6U0N6s2g2Q4x3X3g2W2k6s2g2Q4x3X3g2@1N6#2)9J5c8W2)9%4c8i4u0B7j5$3S2W2L8W2)9J5c8V1g2o6b7K6t1H3x3o6W2Q4x3V1j5K6x3q4)9#2k6W2y4U0K9r3!0G2k6V1g2D9K9$3W2W2M7@1q4@1K9$3W2F1i4K6u0W2M7r3c8X3i4@1f1K6i4K6R3H3i4K6R3J5
幸运的是,在factdb.com网址里直接把320比特长的大数p给分解了。分解了p后,可以在sage上直接求取有限域下的Weierstrass equation的阶(ref:193K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6V1L8$3y4Q4x3X3g2K6j5h3N6W2L8h3q4@1K9q4)9J5k6h3!0J5k6#2)9J5c8Y4m8V1k6W2)9J5c8X3g2F1i4K6u0r3M7X3g2X3k6i4u0W2L8X3y4W2i4K6u0r3j5%4g2J5N6X3g2K6i4K6u0r3j5%4g2J5N6X3g2K6i4K6u0W2M7r3c8X3 page:103;581K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6W2L8W2)9J5k6i4N6A6K9$3W2H3k6h3c8A6j5g2)9J5k6h3!0J5k6#2)9J5c8Y4N6A6K9$3W2Q4x3V1k6q4L8r3I4A6M7s2c8A6j5#2)9#2k6X3y4#2M7Y4k6W2i4@1g2r3i4@1u0o6i4K6R3&6i4@1g2r3i4@1u0o6i4K6S2o6i4@1f1$3i4@1t1I4i4K6R3J5i4@1f1#2i4K6S2r3i4K6V1$3i4@1f1@1i4@1t1^5i4@1p5@1i4@1f1@1i4@1t1^5i4@1q4m8i4@1f1&6i4K6V1^5i4@1t1$3i4@1f1%4i4K6W2m8i4K6R3@1i4@1f1$3i4K6W2o6i4K6R3H3i4@1f1#2i4@1t1H3i4K6S2r3i4@1f1#2i4K6R3#2i4@1q4o6i4@1f1#2i4K6R3H3i4K6S2p5i4@1f1$3i4K6V1#2i4@1t1H3i4@1f1^5i4@1p5%4i4K6R3$3i4@1f1@1i4@1u0p5i4K6W2o6i4@1f1$3i4K6R3^5i4K6V1I4i4@1f1@1i4@1u0n7i4@1q4o6i4@1f1^5i4@1u0r3i4K6V1&6i4@1f1@1i4@1t1^5i4@1q4m8i4@1f1&6i4@1p5J5i4K6V1^5i4@1f1%4i4K6W2n7i4@1q4q4i4@1f1%4i4K6W2m8i4K6R3@1i4@1f1&6i4K6V1^5i4@1t1$3i4@1f1#2i4K6S2p5i4@1t1K6i4@1f1#2i4K6S2r3i4@1q4r3i4@1f1$3i4@1t1I4i4K6R3J5i4@1f1#2i4K6S2r3i4K6V1$3i4K6t1^5x3W2)9#2c8e0S2Q4x3V1t1I4i4K6t1&6i4K6g2q4i4K6t1^5i4K6u0V1x3g2)9J5z5g2!0q4c8W2!0n7b7#2)9^5b7#2!0q4y4g2)9^5y4W2)9^5c8q4!0q4z5q4!0m8c8g2!0m8x3g2!0q4y4#2!0m8c8g2)9&6y4#2)9J5z5q4)9J5z5o6u0Q4y4f1f1^5i4K6u0n7x3g2)9J5z5g2)9#2c8g2)9J5z5q4)9J5k6o6q4Q4x3U0W2Q4x3U0W2Q4x3V1q4H3L8$3W2F1N6q4!0q4y4g2!0n7x3q4!0n7x3g2!0q4y4g2)9^5c8W2!0m8c8W2!0q4y4g2!0n7c8g2)9&6y4#2!0q4y4g2)9^5z5q4!0n7x3r3E0W2P5g2!0q4c8W2!0n7b7#2)9^5b7#2!0q4z5q4!0n7c8W2)9&6z5g2!0q4z5g2)9^5y4#2)9^5b7#2!0q4y4#2)9&6y4q4!0m8z5q4!0q4y4g2)9^5z5q4!0n7x3q4!0q4y4q4!0n7b7g2)9^5y4X3W2F1N6q4!0q4y4q4!0n7z5q4)9^5c8g2!0q4y4#2)9^5x3W2!0n7z5g2!0q4y4#2)9&6b7g2)9^5y4q4!0q4y4q4!0n7z5g2)9&6z5q4!0q4y4W2!0n7x3#2)9&6y4g2!0q4c8W2!0n7b7#2)9^5b7#2!0q4y4q4!0n7z5q4)9^5b7g2!0q4y4W2)9&6y4W2)9^5y4#2!0q4y4W2)9^5c8W2)9&6x3q4!0q4y4g2)9^5z5q4!0n7x3q4!0q4y4q4!0n7b7g2)9^5y4W2!0q4y4q4!0n7z5q4)9^5x3q4!0q4y4#2!0m8y4#2)9^5c8q4!0q4y4g2!0m8c8g2)9&6c8g2!0q4y4#2)9^5c8g2!0n7x3q4!0q4y4W2)9&6y4W2!0n7z5g2!0q4y4g2!0n7b7#2)9^5c8W2!0q4c8W2!0n7b7#2)9^5b7#2!0q4z5q4!0n7c8W2)9&6z5g2!0q4z5g2)9^5y4#2)9^5b7#2!0q4y4q4!0n7z5g2)9&6c8W2!0q4y4g2)9^5c8W2!0m8c8W2!0q4y4q4!0n7b7W2!0m8y4g2!0q4z5q4)9^5y4#2!0m8b7g2!0q4y4g2!0n7y4#2!0n7x3g2!0q4y4g2!0m8c8g2)9&6c8g2!0q4y4#2)9^5c8g2!0n7x3q4!0q4y4W2!0m8y4q4!0m8c8q4!0q4y4g2)9&6b7#2)9^5y4W2!0q4y4W2)9&6b7W2!0n7x3W2!0q4y4#2!0n7b7g2!0n7c8W2!0q4y4q4!0n7z5q4)9^5b7W2!0q4y4#2)9&6b7g2)9^5y4q4!0q4y4g2)9^5x3q4)9^5c8q4!0q4y4q4!0n7z5g2)9&6z5q4!0q4y4#2!0m8z5q4)9^5b7W2!0q4y4g2!0n7b7g2)9^5c8W2!0q4c8W2!0n7b7#2)9^5z5q4!0q4y4g2)9^5c8g2)9&6c8W2!0q4y4#2)9&6x3q4)9^5y4W2!0q4y4q4!0n7z5q4)9^5c8g2!0q4y4g2!0n7c8W2!0m8b7W2!0q4z5g2)9^5x3q4)9&6c8W2!0q4y4g2!0n7z5g2)9^5x3W2!0q4y4q4!0n7z5g2)9&6z5q4!0q4y4q4!0n7z5q4)9^5x3q4!0q4y4W2!0m8x3q4!0n7y4#2!0q4c8W2!0n7b7#2)9^5z5g2!0q4x3#2)9^5x3q4)9^5x3R3`.`.
第二种方法暂时还没有实现。

[培训]科锐逆向工程师培训第53期2025年7月8日开班!

收藏
免费 0
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回