博客
关于我
椭圆曲线密码系统——椭圆曲线
阅读量:355 次
发布时间:2019-03-04

本文共 982 字,大约阅读时间需要 3 分钟。

椭圆曲线密码系统——椭圆曲线

1 椭圆曲线

在这里,椭圆曲线简化为用 y2 = x3 + ax + b表示的点的集合。将其离散化后,得到 y2 mod p= (x3 + ax + b) mod p 。

2、群

数学中的“群”是一个由我们定义了一种二元运算的集合,二元运算我们称之为“加法”,并用符号“+”来表示。为了让一个集合G成为群,必须定义加法运算并使之具有以下四个特性:

  1. 封闭性:如果a和b是集合G中的元素,那么(a + b)也是集合G中的元素。
  2. 结合律:(a + b) + c = a + (b + c);
  3. 存在单位元0,使得a + 0 = 0 + a =a;
  4. 每个元素都有逆元,即:对于任意a,存在b,使得a + b = 0.
    如果我们增加第5个条件:
  5. 交换律: a + b = b + a
    那么,称这个群为阿贝尔(abelian)群。
    配上通常概念的加法时,整数的集合Z就是一个群(同时还是个阿贝尔群)。而自然数的集合(N)就不是群,因为它不满足第4个特性。

3、椭圆群定理

群中的元素都是位于椭圆曲线上的点
单位元为无穷远点O;
点P的逆元是其关于x-轴的对称点;
加法,满足以下规则: 对于3个处在同一直线上的非零点 P, Q 和 R, 它们的和 P + Q + R = 0.这里要求的只是三个点同线,与点的次序无关。

4、几何加法

得益于我们使用的是一个阿贝尔群,我们可以把 P + Q + R = 0 写成P + Q = –R。方程的这一形式,让我们可以推导出计算两点P和Q之和的几何方法:画一条过P和Q点的直线,这条直线与曲线相交得到第3个点R(这一事实意味着P、Q、R必然共线)。如果我们获取了该点的逆元-R,那么我们就得到了P + Q的结果。
存在以下三种特殊情况:
(1)P=0||Q=0 由于0为单位元,我们有P+0=P,Q+0=Q。
(2)P=-Q 存在P+Q=0。
(3)P=Q 此时做点Q上对椭圆曲线的切线,与椭圆曲线另一个交点为点R

5、代数加法

这里只考虑两个非零,非对称的点P(xp,yp),Q(xq,yq)
这两点斜率为k=(yp-yq)/(xp-xq)
设其与椭圆曲线交于第三点R(xr,yr),存在yr-yq=m(xr-xq)
通过该式与椭圆曲线联立,计算得到xr=m2-xq-xp ; yr=yp+m(xr-xp)

转载地址:http://mxug.baihongyu.com/

你可能感兴趣的文章
C 语言顺序表查找和折半查找
查看>>
Windows下Python安装与使用
查看>>
Django-天天生鲜项目
查看>>
Font Awesome图标库使用
查看>>
Node.js 入门第一讲:下载安装
查看>>
程序员应该知道的97件事
查看>>
我编程,我快乐—程序员职业规划之道
查看>>
谷歌浏览器如何设置不阻止弹窗弹出
查看>>
TCP/IP协议头
查看>>
stringstream常见用法介绍
查看>>
剑指 Offer 29. 顺时针打印矩阵
查看>>
电梯,游戏签到,黑板测试点
查看>>
我的CSDN 图床
查看>>
python_遍历操作
查看>>
天池大赛o2o优惠券第一名代码解读_xgboost方式
查看>>
Web基础应用 NFS服务基础 触发挂载
查看>>
DNS服务基础 特殊解析 DNS主从架构 DNS子域授权 DNS查询
查看>>
python_透视表操作unstack
查看>>
端口列表_端口占用问题解决kill_ps_net
查看>>
create-react-app路由的实现原理
查看>>