请教关于椭圆曲线的问题

新用户注册 | 用户登陆 | 刷新
论坛嘉宾: 萍踪浪迹 gauge 季候风

Shunya


发表文章数: 21
内力值: 94/94
贡献度: 267
人气: 106

请教关于椭圆曲线的问题 [文章类型: 原创]

我目前的工作与密码算法相关。有一种基于椭圆曲线上点加法群的离散对数问题的密码学ECC (Elliptic Curve Crypto)。

一般的椭圆曲线定义是(最一般的定义是定义在射影平面上的齐次方程,这里直接把参数z吸收进了x和y。但这样改变之后,就需要引入对应z=0的无穷远点):
y^2 + a1*x*y + a3*y = x^3 + a2*x^2 + a4*x + a6

其中x,y,a1,a2,a3,a4,a6都是代数闭域K'上的元素

可以定义椭圆曲线上两点到一点的“加法”运算:

1.给定两点P和Q,连接P和Q的直线与椭圆曲线交于第三点R。

注:平面上任何一条直线与椭圆曲线都有三个交点(但不一定互不相同,而且有可能包括无穷远点)。如果P=Q,那么过P和Q的连线取过点P的切线。在射影平面上,无穷远点的切线只与无穷远点相交,因此无穷远点是过无穷远点的直线于椭圆曲线的三重交点,而且是惟一的一个三重交点。

2.连接无穷远点与R的直线与椭圆曲线相交于点R',这个R'被我们记作P⊕Q。

于是,我们定义了椭圆曲线上的点和点的加法运算⊕,而且可以证明椭圆曲线上的点对于⊕构成了一个群。

选定一个点(非无穷远点)将该点P和自身相加k次,就定义了点P和数k的乘法。已知k和P求kP可以使用“加倍-求和”算法(好像也叫俄罗斯农民算法)来高效地计算。但已知P和kP两个点的情况下求k是没有高效算法的,所以可以利用这种方式来构造基于离散对数问题的ElGamal加密算法。

当然,定义在实数域上的椭圆曲线是难以在密码学中直接应用的,必须将实数域的椭圆曲线平移到有限域上,点加法定义的表达式也是直接平移的。根据有限域的类型,目前应用较广的ECC有基于GF(2^m)和GF(p)的。在这两类特殊的有限域椭圆曲线上,可以对一般的椭圆曲线方程进行一定的化简,使方程中只剩下两个自由参数。基于一般有限域的椭圆曲线在密码学中尚未得到广泛应用,不过已经有人在研究小素数特征GF(p^m)上的椭圆曲线了。

(注:所谓离散对数,本来是针对乘法群来说的,意思是已知元素x和x^k,求数k。但由于群运算叫做加法还是乘法完全是一个自由约定,所以对于加法群,我们把已知x和kx求k的问题也教离散对数问题。)

虽然目前由于工作的关系我还算了解一点ECC的皮毛,基本上能够看懂所有关于ECC的性能优化的论文以及ECC相关的标准,甚至自己也实现了两类椭圆曲线密码算法的算法库,但是我并不了解椭圆曲线本身。数学家最初是如何发现椭圆曲线上面的点可以定义那种类型的加法并且可以构成群?我能够理解椭圆曲线上点关于点加法构成了群的证明,但是不知道为什么最初会有人证明这个东西,当时是想要做什么?我觉得难以理解的是这种加法的定义相当古怪,并不是随便定义个什么加法就可以构成群的。如果是出于好玩随便定义一些加法,不小心发现了这种古怪的加法构成群好像是不太可能的。除非发现了一种在具有某些属性的集合上寻找或者构造群运算的通用途径,但这个途径又是什么呢?

另外一个问题是,我只知道椭圆曲线最初是用来辅助计算椭圆弧长的方程的,但是我并不知道它具体是怎么和求椭圆弧长联系起来的,后来又经历了怎样的推广。

我在一本讲PKI(Public Key Infrastructure公钥基础设施)的书中看到这样一段话:
...
I was once having lunch with a luminary in the field of cryptography. During the discussions, it came out that while pursuing his doctorate, this person had done work on Elliptic Curve Cryptography (ECC). During various presentations I had made on cryptography, I was occasionally asked to give a simple explanation of ECC. At this point I asked this large-lobed person if he could provide me with a layperson's definition of Elliptic Curve Cryptography. He sat up straight, and his eyes twinkled. He was clearly delighted to have the chance to talk about ECC. He looked me straight in the eye and started, "Imagine a three-dimensional torus rotating in free space. Then imagine an elliptical function that bisects the torus at two points . . ." At this point I burst into laughter. This was the easiest explanation of ECC that he could muster, and I could imagine trying to use that explanation during a presentation on cryptography.

As I said, cryptography is based on really hard math.
...

这段话吓了我一跳,因为我原来的视角只是把椭圆曲线点群当作一个难于计算离散对数的群,因此可以可以满足ElGamal的要求构造非对称加密算法,我甚至觉得这个算法并不比RSA复杂。现在才知道原来这个东东如此的邪乎,居然还要让一个“三维的在自由空间中转动的环(三维环面还是三维环体?)被一个椭圆函数在两个点上一分为二(什么叫做在两个点上一分为二?)”……我彻底晕菜。

当然,椭圆曲线密码算法的安全性肯定同时与椭圆曲线本身的性质以及离散对数的安全性相关,而我只粗浅了解一点离散对数算法的安全性,却很不了解椭圆曲线本身。

希望了解椭圆曲线的大拿给我科普一下:

1.为什么最初会有人证明椭圆曲线上的点对于这种古怪的加法构成群,他当时到底想要做什么?

2.是否有某些通用的手段在某些具有特殊属性的集合上构造一种能够构成群的运算,椭圆曲线上的点群就是这样被发现的?

3.椭圆曲线是怎么和求椭圆弧长联系起来的,后来又经历了怎样的推广?

4.代数闭域避域比一般的域增加了什么限制?如何构造一个域K的代数闭域K'?

谢谢!!!

科学==追寻一致性
一致性==内部一致性+外部一致性
内部一致性:逻辑自洽
外部一致性:符合事实

发表时间: 2006-09-13, 15:11:20 个人资料

gauge


发表文章数: 596
内力值: 375/375
贡献度: 8310
人气: 1396

论坛嘉宾学术成员

Re: 请教关于椭圆曲线的问题 [文章类型: 转载]

看来楼主对椭圆曲线已经知道很多了。我想作者留下的几个问题其实可以自己解决。

发表时间: 2006-09-15, 22:58:43 个人资料

萍踪浪迹


发表文章数: 1051
内力值: 453/453
贡献度: 9137
人气: 1200

客栈长老论坛嘉宾学术成员

Re: 请教关于椭圆曲线的问题 [文章类型: 原创]

::3.椭圆曲线是怎么和求椭圆弧长联系起来的,后来又经历了怎样的推广?
===================================================================
其实基本上与椭圆弧长没有直接关系的。
至于后来的推广,基本上是由Jacobi和Abel先完成,然后再被后人发展。

漫漫长夜不知晓 日落云寒苦终宵
痴心未悟拈花笑 梦魂飞度同心桥

发表时间: 2006-09-16, 09:01:24 个人资料

萍踪浪迹


发表文章数: 1051
内力值: 453/453
贡献度: 9137
人气: 1200

客栈长老论坛嘉宾学术成员

Re: 请教关于椭圆曲线的问题 [文章类型: 混合]

::4.代数闭域避域比一般的域增加了什么限制?如何构造一个域K的代数闭域K'?

======================================================
这个基本上是代数数论的问题了。

漫漫长夜不知晓 日落云寒苦终宵
痴心未悟拈花笑 梦魂飞度同心桥

发表时间: 2006-09-16, 09:02:39 个人资料

kanex


发表文章数: 447
内力值: 254/254
贡献度: 2295
人气: 516

学术成员

Re: 请教关于椭圆曲线的问题 [文章类型: 原创]

楼主应该搞清楚椭圆曲线就是圆环面,or,genus = 1的复曲线。

Récoltes et semailles

发表时间: 2006-09-18, 03:14:14 个人资料

Shunya


发表文章数: 21
内力值: 94/94
贡献度: 267
人气: 106

Re: 请教关于椭圆曲线的问题 [文章类型: 原创]

多谢各位!

看来楼主对椭圆曲线已经知道很多了。我想作者留下的几个问题其实可以自己解决。
---------------
gauge兄:我自己实在是解决不了:(

其实基本上与椭圆弧长没有直接关系的。
至于后来的推广,基本上是由Jacobi和Abel先完成,然后再被后人发展。
---------------
萍踪兄:那为什么有人说这个方程一开始是在求椭圆弧长时得到的呢?为什么被命名为“椭圆曲线”?毕竟这个曲线一点都不象椭圆。

另外,域K的代数闭域K'的定义是什么?

楼主应该搞清楚椭圆曲线就是圆环面,or,genus = 1的复曲线。
---------------
kanex兄:椭圆曲线为什么是圆环面?曲线怎么能是环面呢?能否提供一点比较浅显的参考资料?

多谢!

科学==追寻一致性
一致性==内部一致性+外部一致性
内部一致性:逻辑自洽
外部一致性:符合事实

发表时间: 2006-09-18, 07:52:22 个人资料

gauge


发表文章数: 596
内力值: 375/375
贡献度: 8310
人气: 1396

论坛嘉宾学术成员

Re: 请教关于椭圆曲线的问题 [文章类型: 原创]

1.为什么最初会有人证明椭圆曲线上的点对于这种古怪的加法构成群,他当时到底想要做什么?
================
历史问题,估计Dieudonne的书《代数几何历史》中有这个。从群结构的简单证明可以看出这个群结构很自然。

2.是否有某些通用的手段在某些具有特殊属性的集合上构造一种能够构成群的运算,椭圆曲线上的点群就是这样被发现的?
================
和1是相同的问题。没有你想要的那种通用的办法。

3.椭圆曲线是怎么和求椭圆弧长联系起来的,后来又经历了怎样的推广?
=================
同样可以参考1.
我觉得前3个问题都没多大意义。并不能增进对于椭圆曲线的理解。
可以看看谈胜利的一个讲稿,链接为www.math.ecnu.edu.cn/~sltan/luntan.ppt.
谈胜利是目前国内代数几何做得最好的,在华东师大。当然他不做代数数论。

4.代数闭域避域比一般的域增加了什么限制?如何构造一个域K的代数闭域K'?
=================
代数闭域要求所有的多项式都可以分解为一次项的乘积。比如,在实数域中 x^2+1 不可分解,因为实数域不是代数闭域。而在复数域即可分解任意的多项式。
构造一个域的代数闭域很简单,将域K上的多项式的所有根放到一起构成一个集合,证明这个东西可以构成一个代数闭域即可。当然需要记得将其中本质上相同的元素等同起来。任何一本代数教材,只要内容稍稍多一点都可以找到这个结论。

发表时间: 2006-09-18, 08:49:27 个人资料

Shunya


发表文章数: 21
内力值: 94/94
贡献度: 267
人气: 106

Re: 请教关于椭圆曲线的问题 [文章类型: 原创]

多谢gauge兄!

我明白了,代数闭域就是对代数方程的求根封闭的域。

下面这些猜测是否正确:
实数域的代数闭域一定是复数域?
实代数数域的代数闭域就是复代数数域?
实有理数域的代数闭域仍然是复代数数域?

另外,您说:“从群结构的简单证明可以看出这个群结构很自然。”但我的问题不是说这个群的结构很古怪,而是这个群的加法运算的定义很古怪。如果不知道这个加法定义,有什么方法能够很“自然”地发现这个使椭圆曲线上点构成群的加法定义么?或者说很容易找到一些很简单的运算,也使椭圆曲线上的点对于这种运算构成一个很“自然”的群么?

科学==追寻一致性
一致性==内部一致性+外部一致性
内部一致性:逻辑自洽
外部一致性:符合事实

发表时间: 2006-09-18, 09:21:36 个人资料

gauge


发表文章数: 596
内力值: 375/375
贡献度: 8310
人气: 1396

论坛嘉宾学术成员

Re: 请教关于椭圆曲线的问题 [文章类型: 混合]

下面这些猜测是否正确:
实数域的代数闭域一定是复数域?==ok
实代数数域的代数闭域就是复代数数域?==实的代数数构成的域?这个域本身就是代数闭域。
实有理数域的代数闭域仍然是复代数数域?==no.正是刚才那个实代数数域。

另外,您说:“从群结构的简单证明可以看出这个群结构很自然。”但我的问题不是说这个群的结构很古怪,而是这个群的加法运算的定义很古怪。如果不知道这个加法定义,有什么方法能够很“自然”地发现这个使椭圆曲线上点构成群的加法定义么?或者说很容易找到一些很简单的运算,也使椭圆曲线上的点对于这种运算构成一个很“自然”的群么?
====
没搞清楚你的意思。

发表时间: 2006-09-18, 21:37:06 个人资料

Shunya


发表文章数: 21
内力值: 94/94
贡献度: 267
人气: 106

Re: 请教关于椭圆曲线的问题 [文章类型: 原创]

实的代数数构成的域?这个域本身就是代数闭域。
实有理数域的代数闭域仍然是复代数数域?==no.正是刚才那个实代数数域。
---------------
???x^2+1在实的代数数域中能够分解为一次项的乘积么???
代数闭域不是要求所有的多项式都可以分解为一次项的乘积么?


没搞清楚你的意思。
---------------
是这样的,如果把这个加法的定义给出来,证明椭圆曲线对于这个加法构成群是非常简单的。但我想知道的是最初的研究人员是出于什么动机,在椭圆曲线上定义这样一个古怪的加法并且证明椭圆曲线上点对于这个加法构成群。

科学==追寻一致性
一致性==内部一致性+外部一致性
内部一致性:逻辑自洽
外部一致性:符合事实

发表时间: 2006-09-19, 03:16:04 个人资料

gauge


发表文章数: 596
内力值: 375/375
贡献度: 8310
人气: 1396

论坛嘉宾学术成员

Re: 请教关于椭圆曲线的问题 [文章类型: 原创]

说错了。应该是代数数域是闭的。单独谈论实的代数数没多大意义。

发表时间: 2006-09-19, 04:28:45 个人资料

gauge


发表文章数: 596
内力值: 375/375
贡献度: 8310
人气: 1396

论坛嘉宾学术成员

Re: 请教关于椭圆曲线的问题 [文章类型: 转载]

是这样的,如果把这个加法的定义给出来,证明椭圆曲线对于这个加法构成群是非常简单的。但我想知道的是最初的研究人员是出于什么动机,在椭圆曲线上定义这样一个古怪的加法并且证明椭圆曲线上点对于这个加法构成群。
============
不知道那些已经作古的前辈心里是怎么想的。

发表时间: 2006-09-19, 04:30:00 个人资料

Shunya


发表文章数: 21
内力值: 94/94
贡献度: 267
人气: 106

Re: 请教关于椭圆曲线的问题 [文章类型: 混合]

说错了。应该是代数数域是闭的。单独谈论实的代数数没多大意义。
---------------------
但是实的代数数和实的有理数都确实构成了域啊,都对四则运算封闭,只是对代数方程求根不封闭。

所以实的代数数域的代数闭域就是代数数域,对吧:)

科学==追寻一致性
一致性==内部一致性+外部一致性
内部一致性:逻辑自洽
外部一致性:符合事实

发表时间: 2006-09-19, 05:01:30 个人资料

道德


发表文章数: 56
内力值: 124/124
贡献度: 709
人气: 138

学术成员

Re: 请教关于椭圆曲线的问题 [文章类型: 原创]

是这样的,如果把这个加法的定义给出来,证明椭圆曲线对于这个加法构成群是非常简单的。但我想知道的是最初的研究人员是出于什么动机,在椭圆曲线上定义这样一个古怪的加法并且证明椭圆曲线上点对于这个加法构成群。
-----------------
据我所知,这个加法来源于欧拉的椭圆积分加法公式。众所周知,椭圆曲线和椭圆积分最早发源于椭圆曲线的求弧长公式,确切地说,椭圆的一段弧长可以表示为一个椭圆积分,积分上界是椭圆的参数表达式的参数theta,所以我们可以用I(\theta)来表示这个积分。欧拉在很早的时候就发现两个这样的积分的和,即I(\theta_1)+I(\theta_2),可以表达为另一个椭圆积分I(\theta_3)。事实上,他写出了\theta_3作为\theta_1和\theta_2的函数的表达式。这就是加法运算的由来。

发表时间: 2006-09-21, 03:55:36 个人资料

grouplee


发表文章数: 11
内力值: 80/80
贡献度: 119
人气: 4

学术成员

Re: 请教关于椭圆曲线的问题 [文章类型: 原创]

to 楼主:关于椭圆曲线的群结构

椭圆曲线 E 同构于 其Pic0, 作为集合, 而后者有群结构,
这个群结构反过去体现在椭圆曲线上面,就是你所说的那个几何点的加法结构。

发表时间: 2007-01-11, 05:46:24 个人资料
您尚未登陆 | 用户登陆