椭圆曲线配对是各种构造背后的关键密码原语之一,包括确定性阈值签名,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是标准化的。
配对更进一步,