椭圆曲线复习
椭圆曲线复习
参考:https://blog.csdn.net/m0_54743939/article/details/121441004
椭圆曲线算法可以看作是定义在特殊集合下数的运算,满足一定的规则。
椭圆曲线在如下两个域中定义:
-
域,素数域, 为素数; -
域:特征为2的有限域,称之为二元域或者二进制扩展域。该域中元素的个数为 个。
椭圆曲线标准文档如下:
- X9.62
Public Key Cryptography For The Financial Services Industry: The Elliptic Curve Digital Signature Algorithm (ECDSA);
- SEC 1
SEC 1:Elliptic Curve Cryptography;
- SEC 2
SEC 2: Recommended Elliptic Curve Domain Parameters;
- NIST
(U.S.) National Institute of Standards and Technology,美国国家标准;
- SM2
SM2椭圆曲线公钥密码算法第1部分:总则
这些标准一般都描述了
术语说明#
- 椭圆曲线的阶(order of a curve)
椭圆曲线所有点的个数,包含无穷远点;
如何确定一条曲线上的点数,即椭圆曲线的阶:
定理:
域上的椭圆曲线 在第象限中的整数点(包括无穷远点)共有: 个;若是在 域上,则曲线的阶数为 例如:
,则 ,所以 上的椭圆曲线 上的点数在2~10之间, 上的椭圆曲线的阶数为25~41之间。
- 椭圆曲线上点的阶(order of a point)
P为椭圆曲线上的点,
- 基点(base point)
椭圆曲线参数之一,用
从数学上看:基点是椭圆曲线有限加法群的大素因子子群的一个随机选取的生成元。基点虽是随机产生的,但为保证系统安全性,一般要求所选取的基点必须具有大素数阶。
- 余因子(cofactor)
椭圆曲线的余因子,用
- 椭圆曲线参数
(1)素数域:
其中,
(2)二进制扩展域:
其中,
- 椭圆曲线公钥和私钥
椭圆曲线的私钥是一个随机整数,小于
椭圆曲线的公钥是椭圆曲线上的一个点:
在线生成曲线,即点:https://graui.de/code/elliptic2/
- 点的逆
对于一个点
计算#
点加#
对于曲线
点乘#
点乘(倍点)支持重复加法,即
另外还有其他的计算方法:计算
参考:GMT 0003.1-2012 SM2椭圆曲线公钥密码算法第1部分:总则
以下给出三种方法:
- 二进制展开法
- 加减法
- 滑动窗口法
SM2#
SM2使用的是素数域256位的椭圆曲线,即:
作者:Hang Shao
出处:https://www.cnblogs.com/pam-sh/p/16564541.html
版权:本作品采用「知识共享」许可协议进行许可。
声明:欢迎交流! 原文链接 ,如有问题,可邮件(mir_soh@163.com)咨询.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)