椭圆曲线公钥密码体制
1.椭圆曲线的加法
1.1依据
如果在椭圆曲线上有3个点存在于一条直线上,则它们的和为无穷远点。其中无穷远点即为.
1.2 点P和点-P相加
点P和点-P相加的和为无穷远点。
1.3 点P和点Q相加
设连接点P和Q的直线,交椭圆曲线于点R,则点P和点Q的和为点-R.
1.4 求点P的2倍
通过点P作曲线的切线,交曲线于另一点R,则2P = -R.
1.4.1求点P的2倍的特例
若点P的切线的斜率是0(我不知道这里为什么说是0,我觉得应该是不存在),则2P = O, 3P = P, 4P = O, 5P = P…
2.有限域上的椭圆曲线
2.1 定义
对于曲线,a,b为小于p的整数。当不为零时,构成有限域上的椭圆曲线群。记为
2.2 补充知识:平方剩余
https://chenglinyu.blog.csdn.net/article/details/89081707
2.3 有限域上的椭圆曲线的点的构造
- 对于每一个,计算; (该等式的右半部分恰恰就是椭圆曲线方程的右半部分,左侧是$y^2 $)
- 若z不是模p有限域的平方剩余(也称为模p的平方根),则没有具有x值的点。
- 若z是模p的平方根,则存在满足条件的两个点
2.3.1 椭圆曲线的点的构造
这一句话透露了三个信息
- p = 23
- a = 1
- b = 0
所以椭圆曲方程为:
所以对没有每一个,开始遍历。
x = 0, 计算 $ z= 0 + 0(mod 23) = 0$,计算
所以存在两个平方根。一个y是5,一个y则是-5(mod 23) $\equiv $ 18(mod 23).
我们学习密码学,一定要时刻装着有限域的概念,不要还停留在实数的角度去思考问题
所以对应的两个点是(1,5),(1,18)
依次类推。
3.有限域上两个点的加法
注意:所有运算都是在模23上的有限域上的运算,所以除法就是求模23的乘法逆元,求乘法逆元的方法是扩展的欧几里得算法,另外不要轻易约分,一定要是与23互素的公因子才能约分,具体参加出《初等数论及其应用》推论4.4.1