区块链与密码学第6-4讲:椭圆曲线的数字签名算法
Posted Dig Quant
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了区块链与密码学第6-4讲:椭圆曲线的数字签名算法相关的知识,希望对你有一定的参考价值。
【本课堂内容全部选编自PlatON首席密码学家、武汉大学国家网络安全学院教授、博士生导师何德彪教授的《区块链与密码学》授课讲义、教材及互联网,版权归属其原作者所有,如有侵权请立即与我们联系,我们将及时处理。】
6.4 椭圆曲线简介
椭圆曲线的定义
1985年,Koblitz和Miller独立地提出了椭圆曲线公钥密码体制(ECC),安全性基于椭圆曲线群上的离散对数问题的难解性,该问题目前最好的解法是指数级时间的算法。
一般认为,RSA和DH密钥交换协议需用1024比特以上的模数才安全,但对ECC,只要160比特的模数就可达到同样级别的安全性。
![](https://image.cha138.com/20220427/8a79ce7ae30342d897ca6923606d717d.jpg)
![](https://image.cha138.com/20220427/05287edd37084476b3546467a7a4db44.jpg)
椭圆曲线指的是由Weierstrass方程
![](https://image.cha138.com/20220427/f51ea6719a2444469dbd9135ca7df12a.jpg)
所确定的曲线
椭圆曲线图形
有限域Fp上的椭圆曲线是由满足Fp上的方程
![](https://image.cha138.com/20220427/02cecf13c839487a962bbda557ecaec4.jpg)
的所有点和无穷远点O构成的集合
![](https://image.cha138.com/20220427/e49209813e8946c3a13541068d7118f7.jpg)
有时也记作E。
椭圆曲线上的加法运算
设P,Q是E上的任意两点,连接P,Q交E于R’,则称R’关于x轴的对称点R为P与Q的和,记为:
P + Q = R
![](https://image.cha138.com/20220427/d2674f98c020442cacc7d350b3251bee.jpg)
椭圆曲线加法运算示意图
当P与Q重合时
R = P+Q = P+P = 2P
此时称之为点倍运算
![](https://image.cha138.com/20220427/50c1d93670554f0e93893558f31885cb.jpg)
椭圆曲线点倍运算示意图
当P与Q关于x轴对称时,
定义P与Q的和为O,即:
P + Q = O
并称O为无穷远点
![](https://image.cha138.com/20220427/da0b960dab7846fea4d7ce8a051a21f3.jpg)
椭圆曲线无穷远点示意图
可以证明,有限域上的椭圆曲线在我们定义的加法运算下构成群。
既然构成群,就必然有零元和负元,这里的零元就为无穷远点O,P的负元就是它关于x轴的对称点,记为–P。
显然有
P+O =O+P=P
若P=(x, y),则 –P=(x, –y) 且 P+(–P)=O
加法运算的代数表示
已知E(F)上两点P=(x1, y1), Q=(x2, y2), 求P+Q。
解:设P+Q=R =(x3, y3),
![](https://image.cha138.com/20220427/6b5d6cda8d90488988133f1323268544.jpg)
解得
![](https://image.cha138.com/20220427/4c3a795b58604cbd877060c7741a0d9d.jpg)
![](https://image.cha138.com/20220427/b5b88eeead024d2bbb72ada27b808da0.jpg)
椭圆曲线点加运算代数表示
当P≠Q时,
![](https://image.cha138.com/20220427/42ff471f7a3e4ffcb19aec08adec90d0.jpg)
当P=Q时,
![](https://image.cha138.com/20220427/5eebc394ccca48ef81a89c3a7e4e021f.jpg)
![](https://image.cha138.com/20220427/f4574d041ccd434bb8e5f8d472b0b1a5.jpg)
椭圆曲线点加运算代数表示
k(k>2)个相同的点P相加为
![](https://image.cha138.com/20220427/43b6f93002e54967ae4ce971f8b3302c.jpg)
此时称之为点乘运算
![](https://image.cha138.com/20220427/12f43ecb590a4b10b888af1b4e586070.jpg)
椭圆曲线点乘运算示意图
椭圆曲线离散对数问题
设
![](https://image.cha138.com/20220427/279a528da4e04d63b4e5c475fa3da6ba.jpg)
称n为点P的阶,记为n=ord(P)。
由阶为n的点P在上述加法定义下生成的循环群<P>是椭圆曲线群(E(F), +)的一个n阶子群。
设E是有限域F上的椭圆曲线,G是E的一个循环子群,点P是G的一个生成元,即G=kP: k≥1,在已知P,Q的条件下,求解整数n,使得nP=Q的问题,称为椭圆曲线E上的离散对数问题。
今天的课程就到这里啦,下一堂课我们将学习基于椭圆曲线的数字签名算法中的SM2算法,带大家继续了解数字签名,敬请期待!
![](https://image.cha138.com/20220427/235e1d636e394f2fb24bbacb82be8ae6.jpg)
-- 完 --
关注点宽学园,每周持续更新区块链系列课程,小宽带你进入区块链世界。我们下节课见啦。
【区块链与密码学】课堂回顾:
以上是关于区块链与密码学第6-4讲:椭圆曲线的数字签名算法的主要内容,如果未能解决你的问题,请参考以下文章