【密码学】椭圆曲线密码体制(ECC)

椭圆曲线密码体制(Elliptic Curve Cryptography, ECC)是一种基于椭圆曲线数学特性的公钥密码系统。在介绍椭圆曲线之前,我们先来了解一下椭圆曲线的基本概念。

一、椭圆曲线是什么?

(1)椭圆曲线的数学定义

椭圆曲线是一条由方程 给定的曲线,其中a和b是常数,并满足,以确保曲线没有奇点(即曲线是平滑的)。在无限域(如实数域)上,椭圆曲线看起来像是一条平滑的、不自交的曲线。

椭圆曲线的图像如下:
椭圆曲线图1
椭圆曲线图2

【注】椭圆曲线并不是椭圆,只因为该方程与计算椭圆周长的方程相似。

可以证明如果 没有重复因子,或者满足 那么椭圆曲线上的点集 可构成一个Abel群(阿贝尔群)。椭圆曲线包括所有曲线上的点以及一个特殊的点,我们称为无限远点

(2)椭圆曲线上的算术运算

椭圆曲线上定义了加法运算,这使得椭圆曲线成为一个群。具体来说,对于椭圆曲线上任意两点 P 和 Q,可以定义它们的和 R=P+Q,其计算方法遵循以下规则:

① 加法运算

加法运算(两点不重合)
加法 :如果 P 和 Q 不重合,那么通过连接这两点的直线与椭圆曲线的第三个交点,然后在 y 轴上找到这个点的反射点作为 R
加法运算(两点重合)

二倍点 :如果 P=Q,则使用切线代替直线,找到切线与椭圆的交点,再找到该点关于 y 轴的反射点作为 2P
加法运算(两点是相反数)

无穷远点:椭圆曲线上的加法还定义了一个特殊点,称为无穷远点,它与任何其他点相加都保持不变

② 点乘运算

**点乘:**将一个给定点沿着椭圆曲线进行多次加法操作。点乘运算通常被记作 kP,其中 k 是一个整数,P 是椭圆曲线上的一点。

如上图3P的计算过程,先计算出2P也就是Q,然后再将Q和P连接在一起,找到和椭圆曲线的交点,这个交点关于X轴的对称点就是3P。

二、椭圆曲线密码体制

有限域上的椭圆曲线是椭圆曲线的一个变体,它定义在一个有限域(finite field)上,而不是在实数域或复数域上。有限域上的椭圆曲线在密码学中有重要的应用,特别是用于构建椭圆曲线密码体制(ECC)

(1)有限域上的椭圆曲线

有限域是一个具有有限个元素的域。域意味着在这个集合中定义了加法和乘法操作,并且这些操作满足特定的代数性质,比如加法和乘法的封闭性、结合律、交换律、单位元的存在性、逆元的存在性等。

有限域的一个重要例子是模 p 的剩余类,这个有限域通常记作,当椭圆曲线定义在一个有限域上时,我们考虑的是所有 ,其中 都是 中的元素,并且满足上述椭圆曲线方程。这样的点集构成了有限域上的椭圆曲线。
定义在有限域上的椭圆曲线图像

(2)有限域上的椭圆曲线结论

在有限域上的椭圆曲线上定义的加法运算构成了一个阿贝尔群,这是因为加法运算满足群的四个基本性质:封闭性、结合律、存在单位元、存在逆元,同时加法运算还满足交换律。

  • 封闭性

对于椭圆曲线 E 上的任意两点 P 和 Q,它们的和 R=P+Q 也是一个椭圆曲线上的点。这意味着加法运算的结果仍然属于椭圆曲线 E。

  • 结合律

对于椭圆曲线 E 上的任意三点 P、Q 和 R,有 (P+Q)+R=P+(Q+R)。这意味着加法运算的顺序不影响结果。

  • 单位元

椭圆曲线 E 上定义了一个特殊点 O,称为无穷远点,它是加法的单位元。这意味着对于椭圆曲线上的任意点 P,都有 P+O=P。

  • 逆元

对于椭圆曲线 E 上的每一个点 P,存在一个唯一的点 −P,使得 P+(−P)=O。这里的 −P 称为 P 的加法逆元。

  • 交换律

对于椭圆曲线 E 上的任意两点 P 和 Q,有 P+Q=Q+P。这意味着加法运算满足交换律。

(3)椭圆曲线上的离散对数问题(ECDLP)

椭圆曲线上的离散对数问题 (ECDLP) 是椭圆曲线密码学 (ECC) 安全性的基础。ECDLP 是指在给定的椭圆曲线上,找到一个点的倍数所需的秘密倍数的问题。它的定义如下:

ECDLP 的难度在于,虽然给定一个点 P 和一个整数 k,很容易计算出 Q=kP,但是反过来,给定 Q 和 P,找到 k 是非常困难的。这种问题的难解性是椭圆曲线密码学安全性的核心。
正向计算简单

ECDLP 的难度确保了椭圆曲线密码系统的安全性。由于目前没有已知的有效算法可以在多项式时间内解决 ECDLP,因此只要选择合适的椭圆曲线和密钥长度,就可以实现高度的安全性。
反向计算困难

三、椭圆曲线密码学体制的应用

椭圆曲线密码学利用 ECDLP 的难解性来构建安全的密码协议,例如:

  • 椭圆曲线数字签名算法 (ECDSA):用于创建数字签名。
  • 椭圆曲线密钥交换协议 (ECDH):用于安全地交换密钥。
  • 椭圆曲线集成加密方案 (ECIES):用于加密数据。

(1)椭圆曲线上的DH密钥交换算法(ECDH)举例说明

① 准备阶段

第一步: 首先取一个素数 ,以及参数,则椭圆曲线上的点构成Abel群

第二步:上的一个生成元,要求的阶是一个非常大的数的阶是满足的最小正整数。

第三步:和生成元作为公钥密码体制的公开参数对外公布,不保密。

② 密钥交换阶段

通过上面密钥交换算法,A和B共同拥有密钥K,攻击者如果想获得密钥K,他就必须由求出,或者由求出,而这等价于求椭圆曲线上的离散对数问题ECDLP,因此是不可行的,所以确保了安全。

③ 带入具体数字举例说明

相关推荐
网安詹姆斯2 小时前
网络安全(黑客技术)2024年三个月自学手册
网络·python·sql·安全·web安全
程序员古德3 小时前
《系统安全架构设计及其应用》写作框架,软考高级系统架构设计师
安全·系统架构·系统安全
极小狐4 小时前
极狐GitLab DevSecOps 功能合集(七大安全功能)
安全·gitlab·devsecops·极狐gitlab·安全合规
PwnGuo4 小时前
Frida 脚本抓取 HttpURLConnection 请求和响应
安全
lv1级小菜鸟6 小时前
【网络安全】-ssrf服务器请求伪造攻击-burp
安全·网络安全
Agazigi10 小时前
Java开发安全及防护
安全
guowu66612 小时前
medium_socnet
运维·开发语言·网络·安全
白808012 小时前
Nginx 文件名逻辑漏洞(CVE-2013-4547)
安全
网络研究院16 小时前
微软九月补丁星期二发现了 79 个漏洞
windows·安全·微软·系统·漏洞·版本·更新