【探讨以太坊关键技术之一的椭圆曲线密码原理】| 猿创征文

以太坊关键技术之一的椭圆曲线密码,几个核心的概念必须弄清楚了,才有可能更好的设计算法。

    一、公匙、私匙

           要产生公匙、私匙,有一种常用的方法:

           1、首先要理解素数的概念:

                 素数是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数。

           2、知道了素数的概念后,就要找两个大素数。

                 要找大素数的理由是,通过大素数产生的公匙、私匙不容易出现重复值。

           3、所谓大素数,就是要找至少大于100的素数,即从素数101开始的素数,当然越大就越好,但算法的复杂度就更高。

            4、随机产生两个大素数A、B,由此得到 C = (A-1) X (B-1) ;

            5、找到一个整数D,使得C、D互为素数(就是C和D公约数只有1的意思),这个 D 就是公匙;

            6、再找一个整数P,使得(PxD)除以C余1,那么 P 就是私匙;

    二、椭圆曲线密码设计

            1、椭圆上随机一点M,得到新公匙1: S10 = M x D;

            2、再找 新私匙1: S11 = [(N*C)+1] / (M x D);(N是自然数)

            3、新公匙2:  S20 = M x (M x D);

            4、新私匙2: S21 = [(N*C)+1] /  [M x (M x D)];(N是自然数)

            5、... ... 递归

   三、椭圆曲线的密码的整数原理:

            1、假设你考察的自然数的范围是: 1,2,3,...,n.  对应椭圆曲线上的外接圆上的 n 等份点,连接这些点到圆心的直线,经过椭圆的交点A、B、C、...  代表1,2,3,...,n

            2、以上选到的椭圆曲线上的任意点到椭圆的两个焦点的距离之和总等于定长(椭圆定义)

            3、随机选取椭圆曲线上的点,就是1,2,3,...,n

            4、随机取得的椭圆上的任意三点,对应于外接圆上的三个点构成的三角形,均为钝角三角形的概率为  75%,任意随机取了一个点,那么下一个随机点,如果要保证在大概率范围内,就要取钝角三角形的另外两个点中的一个。

            5、钝角三角形的三个顶点就是在椭圆的外接圆上的三个点。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页
评论

打赏作者

watsonbu

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值