椭圆曲线加密概览

椭圆曲线配对是各种构造背后的关键密码原语之一,包括确定性阈值签名,zk-SNARK和其他更简单形式的零知识证明。 椭圆曲线配对(或“双线性图”)是使用椭圆曲线进行加密应用(包括加密和数字签名)已有30年历史的最新成果。 配对引入了一种“加密乘法”形式,极大地扩展了基于椭圆曲线的协议的功能。 本文的目的是详细介绍椭圆曲线配对,并解释其工作原理的概述。

基础概念

椭圆曲线本身是一个不容易理解的话题,本文通常假定您知道它们是如何工作的。 如果您不这样做。 作为简要的总结,椭圆曲线密码学涉及称为“点”的数学对象(这些点是具有(x,y)坐标的文字二维点),并具有用于添加和减去它们的特殊公式(即,用于计算R = P + Q),您也可以将一个点乘以整数(即P * n = P + P +…+ P,但是如果n大的话,有一种更快的计算方法)。

存在一个特殊的点,称为“无穷大点”(O),在点算术中等于零。 P + O = P总是这样。此外,曲线具有“顺序”;存在一个数字n,使得任何P都为P * n = O(当然,P *(n + 1)= P,P *(7 * n + 5)= P * 5,依此类推)。也有一些公认的“生成点” G,从某种意义上说,生成点G代表数字1。理论上,曲线上的任何点(O除外)都可以是G;重要的是G是标准化的。

配对更进一步,它们使您可以检查椭圆曲线点上某些更复杂的方程式-例如,如果P = G * p,Q = G * q和R = G * r,则可以检查是否或不是p * q = r,只有P,Q和R作为输入。似乎椭圆曲线的基本安全保证已被破坏,因为关于p的信息只是从知道P而泄漏的,但事实证明泄漏是高度包含的-特别是,决策Diffie Hellman问题很容易,但是计算Diffie Hellman问题(在上面的示例中知道P和Q,计算R = G * p * q)和离散对数问题(从P中恢复p)在计算上仍然不可行(至少在之前是这样)。
查看配对功能的第三种方法,也许对于我们所使用的大多数用例来说,最能说明问题的是,如果您将椭圆曲线点视为单向加密数字(即,encrypt(p) = p * G = P),则传统的椭圆曲线数学使您可以检查数字的线性约束(例如,如果P = G * p,Q = G * q和R = G * r,则检查5 * P + 7 * Q = 11 * R实际上是在检查5 * p + 7 * q = 11 * r),配对使您可以检查二次约束(例如,检查e(P,Q)* e(G,G * 5)= 1确实在检查p * q + 5 = 0)。上升到二次就足以让我们使用确定性阈值签名,二次算术程序和所有其他好东西。

特性扩展

现在,我们上面介绍的这个有趣的e(P,Q)运算符是什么?这是配对。数学家有时也称它为双线性图。这里的“双线性”一词基本上意味着它满足约束条件:

e(P, Q + R) = e(P, Q) * e(P, R)
e(P + S, Q) = e(P, Q) * e(S, Q)

注意+和可以是任意运算符; 当您创建新颖的新型数学对象时,抽象代数并不关心+和的定义,只要它们以通常的方式保持一致即可。 a + b = b + a,(a * b)* c = a (b * c)和(a * c)+(b * c)=(a + b) c。

如果P,Q,R和S是简单数字,那么进行简单配对很容易:我们可以做e(x,y)= 2 ^ xy。 然后,我们可以看到:

e(3, 4+ 5) = 2^(3 * 9) = 2²⁷
e(3, 4) * e(3, 5) = 2^(3 * 4) * 2^(3 * 5) = 2¹² * 2¹⁵ = 2²⁷

但是,这种简单的配对不适合密码术,因为它们处理的对象是简单的整数,并且太容易分析。 整数使除法,计算对数以及进行其他各种计算变得容易。 简单整数没有“公钥”或“单向函数”的概念。 此外,使用上述配对,您可以倒退-知道x和知道e(x,y),您可以简单地计算除法和对数来确定y。 我们希望数学对象尽可能接近“黑匣子”,您可以在其中加,减,乘和除,而无其他操作。 这是椭圆曲线和椭圆曲线配对出现的地方。

事实证明,可以在椭圆曲线点上绘制双线性图,即得出一个函数e(P,Q),其中输入P和Q是椭圆曲线点,而输出就是所谓的F_p²²元素(至少在特定情况下,我们将在此处进行介绍;具体细节取决于曲线的细节,稍后将对此进行详细说明),但是这样做的背后的数学运算非常复杂。

首先,让我们介绍主要字段和扩展字段。如果您假设曲线方程式是使用规则的实数定义的,则本文前面图片中的漂亮椭圆曲线看起来就是这样。但是,如果我们实际上在密码学中使用规则的实数,则可以使用对数“倒退”,并且一切都会中断。此外,实际存储和表示数字所需的空间量可以任意增加。因此,我们改为在质数字段中使用数字。

素数字段由数字集0、1、2 ... p-1组成,其中p是素数,各种运算定义如下:

a + b:  (a + b) % p
a * b:  (a * b) % p
a - b:  (a - b) % p
a / b:  (a * b^(p-2)) % p

基本上,所有数学运算都是以p为模的(有关模块化数学的介绍,请参见此处)。 除法是一种特殊情况; 通常,3/2不是整数,在这里我们只想处理整数,因此我们尝试查找x使得x * 2 = 3,其中*当然是指上面定义的模乘。 由于费马定理,上面显示的幂运算可以完成这项工作,但是使用扩展的欧几里得算法还有一种更快的方法。 假设p = 7; 这里有一些例子:

2 + 3 = 5 % 7 = 5
4 + 6 = 10 % 7 = 3
2 - 5 = -3 % 7 = 4
6 * 3 = 18 % 7 = 4
3 / 2 = (3 * 2^5) % 7 = 5
5 * 2 = 10 % 7 = 3

如果您进行这种数学运算,您会发现它是完全一致的,并且满足所有常规规则。上面的最后两个示例显示(a / b)* b = a;您还可以看到(a + b)+ c = a +(b + c),(a + b)* c = a * c + b * c,并且您知道并热爱的所有其他高中代数身份也是如此。实际上,在椭圆曲线中,通常在质数域中计算点和方程。

现在,让我们谈谈扩展字段。您可能之前已经看过扩展字段。在数学教科书中遇到的最常见的示例是复数字段,其中实数字段被“扩展”并带有附加元素sqrt(-1)= i。基本上,扩展字段的工作方式是采用一个现有字段,然后“发明”一个新元素并定义该元素与现有元素之间的关系(在这种情况下,i²+ 1 = 0),请确保该等式对于原始字段中的任何数字,并查看原始字段元素和刚刚创建的新元素的所有线性组合的集合。

我们也可以扩展素数字段。 例如,我们可以用i扩展我们上面描述的素数场mod 7,然后我们可以这样做:

(2 + 3i) + (4 + 2i) = 6 + 5i
(5 + 2i) + 3 = 1 + 2i
(6 + 2i) * 2 = 5 + 4i
4i * (2 + i) = 3 + i

最后的结果可能很难确定。 发生的事情是,我们首先将乘积分解为4i * 2 + 4i * i,得到8i-4,然后因为我们正在用mod 7运算而成为i + 3,因此,除法:

a / b:  (a * b^(p^2-2)) % p

请注意,费马定理的指数现在是p²而不是p,但是如果我们再次想提高效率,也可以扩展扩展欧几里得算法来完成这项工作。请注意,对于该字段中的任何x,x ^(p²-1)= 1,因此我们将p²-1称为“该字段中乘法组的阶”。

对于实数,代数基本定理可确保我们称为复数的二次扩展是“完整的”-您不能进一步扩展它,因为对于任何数学关系(至少是由代数公式定义的任何数学关系),您可以在一些新元素j和现有的复数之间得出一个结论,有可能至少提出一个已经满足该关系的复数。但是,对于素数场,我们没有这个问题,因此我们可以进一步进行三次扩展(其中一些新元素w与现有场元素之间的数学关系是三次方程,因此1,w和w²都是线性地彼此独立),高阶扩展,扩展的扩展等。椭圆曲线对正是基于这些增压的模复数。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,744评论 6 502
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,505评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,105评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,242评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,269评论 6 389
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,215评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,096评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,939评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,354评论 1 311
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,573评论 2 333
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,745评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,448评论 5 344
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,048评论 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,683评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,838评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,776评论 2 369
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,652评论 2 354