我的主要问题是:


是否有一种简单的方法可以创建从椭圆曲线E(在有限域上)上的点到整数(最好是$ \ mathbb { Z} ^ * _ q $,其中$ q $是E的阶数?在某个间隔(或组)中的均匀随机整数?我也对统计上接近统一的映射感兴趣。

(我想到使用随机提取器,但这通常需要输入2m位的最小熵来产生m位几乎均匀的随机性)
在阅读Telex论文时,他们想到了这个问题。他们的解决方案是使用两条特别选择的曲线,一条曲线及其扭曲,并且仅映射x坐标。

次要问题:


使用曲线和扭曲,是否有一种方法可以使用y坐标选择哪个曲线,从而使映射为一对一?
如果有一种方法,它也可以用于配对友好的曲线吗?


评论

您的意思是要求一个易于双向计算的映射,对吗? $ F(x)= xG $,其中$ G $是生成器点,$ 0 <= x
这不是Elligator的整个前提,更广义地说,不是Elligator-Squared的全部前提吗?当曲线满足特定条件时,映射完成,尤其是当q mod 4 = 1时。

#1 楼

我不知道有什么通用的方法可以创建想要的映射(如果有的话,它可能会变成一种有效的点计数算法,这会很棒),但是您可以在某些曲线上进行此操作。

考虑一个质数$ p $等于$ 2 $取模$ 3 $。在$ \ mathbb {Z} _p $中,每个值都有一个多维数据集根(因为$ 3 $然后是$ p-1 $的可逆模)。然后,查看曲线$ y ^ 2 = x ^ 3 + 1 $。对于$ y $的任何值,$ y ^ 2-1 $具有唯一的立方根$ x $,因此该曲线上的非无限点与其在$中的$ y $坐标之间存在一对一的映射。 \ mathbb {Z} _p $。为了完整起见,将“无穷大点”映射到整数$ p $,就可以设置好:在$ p + 1 $曲线元素和以模数$ p + 1 $进行整数之间的简单双射映射。 >
此外,该曲线是配对友好的,嵌入度仅为$ 2 $(因为$ p + 1 $除以$ p ^ 2-1 $)。它还允许使用失真图,这样您就可以进行对称配对:如果$ \ mu $是$ 1 $的立方根,与$ 1 $不同(所以$ GF(p ^ 2)$的元素,字段扩展),那么从$(x,y)$到$(\ mu x,y)$的映射$ m $是曲线上的一个态射。然后,您可以定义一个配对$ e(P,Q)$,其中$ P $和$ Q $都是原始曲线上的点(在$ \ mathbb {Z} _p $中),作为计算的Tate(或Weil)配对超过$ P $和$ m(Q)$。这使您可以尽可能多地停留在基本曲线上。

本·林恩(Ben Lynn)在其博士学位论文中展示了一些细节(他称该曲线为“ B型”)。请注意,由于存在一对嵌入度$ 2 $,因此曲线上的离散对数会“减少”为$ GF(p ^ 2)$字段中的离散对数。因此,为了获得适当的安全性,$ p $必须至少为512位长。


编辑:类似的技巧适用于等式为$ y ^ 2 = x的“ A型”曲线$ \ mathbb {Z} _p $中的^ 3 + ax $ for $ p = 3 \ mod 4 $和一个常数$ a $。对于给定的$ x $,则恰好出现以下三种情况之一:


有两个不同的值$ y $使得$(x,y)$是一个有效点,并且它们彼此相对,因此一个值小于$ p / 2 $而一个值较大。不是有效的$(x,y)$点,但是对于两个不同的$ y $值有两个有效的$(-x,y)$点。
$(x,0)$是有效点,因此$(-x,0)$也是如此(仅当$ -a $是平方模$ p $时才可能发生)。

因此可以映射点$(x, y)$ to:


$ x $ if $ 1 \ leq y \ lt p / 2 $
$ -x $ if $ p / 2 \ lt y \ lt p $
$ x $如果$ y = 0 $

然后将无穷大点映射到$ p $,就可以了。

评论


$ \ begingroup $
谢谢!这很有用。希望接受该答案不会阻止其他类型曲线的其他答案(例如,不是超奇曲线的曲线,例如Telex依赖DDH。)
$ \ endgroup $
–PulpSpy
2011年8月4日在1:04



$ \ begingroup $
这可能是一个愚蠢的问题,但是常规点压缩几乎不能做到吗?当然,输出不在$ Z_p $中,但保证在$ Z /(2p + 1)Z $中。
$ \ endgroup $
–塞缪尔·内维斯(Samuel Neves)
2011年9月9日在16:53

$ \ begingroup $
@Samuel:点压缩不是双射的:从点$(x,y)$可以得到$(x,b)$,其中$ b $是单个位,但不是所有对$(x, b)$是有效曲线点的压缩。这个问题的难点是要映射到模块化整数,其中每个模块化整数值都可以映射回去。
$ \ endgroup $
–托马斯·波宁(Thomas Pornin)
2011年9月9日19:13