椭圆曲线上点的表示分成仿射坐标系表示和射影坐标表示形式,首先来看看仿射坐标表示形式。

素域Fp上的椭圆曲线E由(仿射)方程y2=x3+ax+b决定,设曲线上的两个点为P1=(x1,y1),P2=(x2,y2),并且记椭圆曲线加法群的单位元为,称为无穷远点或者零点。如果P1≠-P2,则P3=P1+P2=(x3,y3),可以由如下公式计算出来:

当P1≠P2时,计算P3需要1次逆运算、2次乘法运算和1次平方运算,简记为1I+2M+1S(这里的I表示逆运算,M表示乘法运算,S表示平方运算,下同)。由于素域上的加法和减法比逆、乘法和平方快的多(参见[3],表2),所以可以忽略加法和减法的时耗,甚至小常数(比如2、3)与大整数的乘法也可以忽略不计。

当P1=P2时,计算P3需要1I+2M+2S。

然而,计算素域Fp上的逆是很耗时的(参见[3],§3.6),所以采用射影坐标以尽量避免做逆运算。

OpenSSL密码库算法笔记——第5.4.1章 椭圆曲线上点的仿射坐标表示相关推荐

  1. OpenSSL密码库算法笔记——第5.4.2章 椭圆曲线上点的射影坐标表示

    射影坐标又分成好几种--标准射影坐标.Jacobi射影坐标.Chudnovsky射影坐标. 在标准射影坐标中,射影点(x, y, z),z≠0,对应仿射点(x/z, y/z),椭圆曲线的射影方程为y2 ...

  2. OpenSSL密码库算法笔记——第5.1.2章 椭圆曲线算法集

    在定义椭圆曲线点群时出现了描述曲线所用算法的参数const EC_METHOD *meth,这一节就来看看这个参数有什么用处. 椭圆曲线算法集的定义如下. typedef struct ec_meth ...

  3. OpenSSL密码库算法笔记——第5.1.1章 椭圆曲线点群的定义

    下面定义的椭圆曲线点群不仅包含了域的信息和曲线的信息,甚至还包括了很多别的有利于实现的信息. 椭圆曲线点群的定义如下. typedef struct ec_group_st   EC_GROUP; s ...

  4. OpenSSL密码库算法笔记——第5.3.1章 椭圆曲线点群的算法集

    在使用椭圆曲线之前,必需先设定好曲线上的算法集,只有这样在应用中才知道应该使用哪些函数. 下面就来看看怎样设定好曲线上的方法集. ─────────────────────────────────── ...

  5. OpenSSL密码库算法笔记——第5.4.6章 椭圆曲线的无穷远点

    前面已经提到无穷远点为椭圆曲线加法群的单位元,记为O.这个无穷远点在仿射坐标系下是无法表示的,在Jacobi射影坐标系下为,.为了实现起来方便,在代码中将无穷远点简化为Z分量为0,而不再去考虑X坐标和 ...

  6. OpenSSL密码库算法笔记——第5.1.3章 椭圆曲线点的定义

    有了椭圆曲线后,自然就得考虑曲线上的点.点的表示有很多种,最简单最常见的是用仿射坐标(x, y)表示,但使用仿射坐标会使得点的运算速度很慢,所以出现了多种射影坐标.在代码中选择使用的是仿射坐标和Jac ...

  7. OpenSSL密码库算法笔记——第5.4.9章 椭圆曲线点的加法

    先来回忆下前面提到的仿射点的加法. 曲线上的两个放射点P1=(x1,y1)和P2=(x2,y2)做加法P3=P1+P2=(x3,y3),当P1=P2时,称此时的加法运算为二倍点运算.如果P1≠-P2, ...

  8. OpenSSL密码库算法笔记——第5.3.3章 椭圆曲线点群信息的基本操作

    新的群建好之后,就可以开始对这个群进行一些基本得操作了,如需要把很多必要的信息(如特征p.Weierstrass方程参数a.b.基点和阶等)添加进群里面去,同时在必要时还需要将这些信息读出来. 先来看 ...

  9. OpenSSL密码库算法笔记——第5.3.4章 椭圆曲线点群的补充说明

    在§5.3.3设置椭圆曲线特征等函数中会遇到编码函数ec_GFp_mont_field_encode和解码函数ec_GFp_mont_field_decode,其实这两个函数是在做大整数和Montgo ...

最新文章

  1. 山东人为什么爱用倒装句?没有吧我觉得。
  2. 物联网细分领域-车联网(OBD)市场分析
  3. stm32 不断的重新启动的原因
  4. c语言memset函数用法,深入学习C语言中memset()函数的用法
  5. StyleAI:白度-物理上,怎样才算白?
  6. GS使用HTTPS登录的设置过程
  7. 使用Java EE安全性和JBoss AS 7.x保护JSF应用程序的安全
  8. 【整理】fiddler不能监听 localhost和 127.0.0.1的问题
  9. linux的基础知识——全局变量异步I/O
  10. 32岁妈妈适合转行做软件测试吗,32+大龄妈妈,AMH偏低,可丽蓝助力好孕一次就中...
  11. java:去除字符串中空格 、 oracle (+) 、 mysql中数值运算符和函数
  12. Python成绩单雷达图
  13. [分享].Net脱壳利器de4dot介绍
  14. 技术胖--前端学习html5表单美化部分笔记
  15. VB.NET实现文件上传下载
  16. php目录结构 modules,目录结构
  17. 树莓派4B-连接Air720U模块抓取数据日志
  18. Jieba库与wordcloud库的学习汇总
  19. .Net core----使用容联云短信推送
  20. E - EXCEL排序

热门文章

  1. Linux shell: 文件查找命令find,xargs详述 转载
  2. Java--foreach循环
  3. [Ubuntu 更换java版本]警告: 链接组 java 已损坏,故强制重新安装候选项 的解决方案
  4. KVM虚机添加磁盘或删除磁盘
  5. oracle 突然报12505错误,ORACLE数据库 ORA-12505报错处理方法
  6. SpringBoot Elasticsearch组合查询封装
  7. 详细图解:在新浪服务器上开淘宝客的步骤(类似于美丽说的那种)
  8. 2023青岛大学计算机考研信息汇总
  9. BZOJ4770 图样(概率期望+动态规划)
  10. 微信小程序快速建立列表