
零知识证明 – 椭圆曲线基础
对椭圆曲线的学习,个人推荐如下的链接,没有太多的术语,解释的比较清楚。
https://andrea.corbellini.name/2015/05/17/elliptic-curve-cryptography-a-gentle-introduction/
https://andrea.corbellini.name/2015/05/23/elliptic-curve-cryptography-finite-fields-and-discrete-logarithms/
本文也是在上述链接的基础上的总结。
1. 实数域上的椭圆曲线
1.1 定义
椭圆曲线的数学定义可以查看Wolfram MathWorld:http://mathworld.wolfram.com/EllipticCurve.html。不是密码学或者数学专业的小伙伴,看的是一头雾水。便于工程理解,椭圆曲线是一系列满足如下方程的点: 并且
。该方程称为椭圆曲线的Weierstrass方程。
如下是b=1, a从2到-3的椭圆曲线:
从方程可以看出,椭圆曲线是关于x坐标对称的曲线。除了坐标系上曲线的点,椭圆曲线额外定义一个点(无穷远处),记为 0。
也就是说,椭圆曲线是由如下的点组成:
1.2 基于椭圆曲线的群定义
在椭圆曲线的基础上,可以定义一个加法群:
-
所有椭圆曲线上的点,就是这个群里的元素
-
单位元就是0
-
点P的逆元是点P相对x坐标的对称点
-
加法定义如下:在椭圆曲线上,和一条直线相交的3个点P,Q以及R,三点相加满足
。也就说,椭圆曲线上的两点相加的结果,还在椭圆曲线上。
结合群的定义,可以证明定义的这个加法群,就是阿贝尔群。
-
封闭性:因为椭圆曲线上的点相加,还是椭圆曲线上的点。
-
结合律:
-
单位元: 单位元是0
-
逆元: 一个椭圆曲线上的点P的逆元,是相对x坐标的对称点
-
交换律:
1.3 椭圆曲线加法计算
因为,也就是说
。计算
的方法就比较直观了:连接P和Q划一条线,该线和椭圆曲线交的另外一个点为R。
的结果就是R的逆。
考虑几种特殊情况,对加法计算进行“修正”:
-
或者
:因为定义0为无穷远处,不能基于无穷远处划线。但是因为定义了0为单位元,所以
以及
。
-
:因为两个点是对称的,所以基于这两个点划的线垂直于x轴,不再相交于其他点。
。
-
:如果P和Q是同一个点的话, 那存在多条线穿过这“两个”点。如果把Q看作是无限接近P的过程,可以看出,穿过P和Q的是椭圆曲线在P点的切线。如果切线和椭圆曲线相交的点为R,则
,
。
-
,并且不存在第三个点相交:这种情况和上一种情况有点类似,也就是说,P/Q的连线是椭圆曲线的切线。如果P点是切点,
。也就是说,
。
1.4 加法计算推导
加法的定义是完备的。针对最普通的情况,就是在椭圆曲线上一条直线能穿过三个点,分别是P,Q。。这条直线有个斜率:
可以推导出:
或者
当然,如果P/Q是同一个点的话,斜率的计算公式不同。
1.5 标量乘法(Scalar Multiplication)
在加法的基础上,定义了标量乘法,同一个点相加多次:
计算标量乘法,最简单的方法是一个个P点相加。如果n是k位的话,算法复杂度是:。
有个快速的计算方法:double后相加。假设n=151,二进制表示为:。
还是用n=151举个例子:
"Double"主要是依次获得某个位对应的变量的结果。如果该位是1,就加到最后的结果中。这种算法的复杂度是:。
1.6 对数问题
已知n和P,Q=nP的计算比较容易。但是,在Q和P已知的情况下,求解n非常困难,没有多项式时间求解算法。
2. 有限域上的椭圆曲线
上面介绍的是基于实数的椭圆曲线的点,可以构造一个群。考虑特征数为的有限域, 为素数。该有限域是由模 的结果组成,记。因为有限域中的元素都有逆元,也就是
,则
。
2.1 扩展欧几里得定理
给予二整数 a 与 b, 必存在有整数 x 与 y 使得ax + by = gcd(a,b)。gcd(a,b)是最大公约数。
2.2 模p运算下的乘法逆
假设元素a,在模运算下,有逆元x。满足,。也就是说,
。
通过扩展欧几里得定理,可以求得x和y。x就是a的乘法逆。
2.3 在F_p定义椭圆曲线
在上椭圆曲线定义如下:
定义和实数上的定义类似。如下是,p分别是19,97,127,487对应的椭圆曲线的点。
椭圆曲线是关于对称,因为在模p的情况下,这两个等式相等。
2.4 点加
和实数上椭圆曲线的点加类似,定义在一条“线”上的三点相加等于0:。在
有限域
上,一条直线定义为:
。
上图是的椭圆曲线,其中
。图中的黄色的一系列的斜线是
的直线。R就在其中一条斜线上,-R就是图中标出的R的对称点,也就是P+Q的结果。
点加性质:
-
-
, 也就是,-Q是横坐标相同但纵坐标相反的点,也就是,相对p/2对称的点。
-
2.5 点加计算
假设三个点在一条线上,
,
。如果P和Q不是同一个点:
从而,推导出:
其他条件下的推导,涉及的公式比较多。有兴趣的小伙伴可以自行推导。
2.6 在有限群上的椭圆曲线有多少点?
椭圆曲线上的点的个数,称为“阶”。如果枚举0~p-1,查看点的个数,不太现实,因为p是一个非常大的质数。Schoof算法能在多项式时间确定椭圆曲线阶:https://en.wikipedia.org/wiki/Schoof%27s_algorithm。
2.7 标量乘法
和实数域上一样,可以使用double后相加的方法计算。在有限域上,有额外的特性,举个例子:
已知以及点
。点P的标量乘法的结果是循环的,只有五个点。
…
很容易看出,在有限域上的椭圆曲线中一个点标量乘法的结果,组成一个在加法操作下的循环子群。在子群中的点,所有的加法的结果都还在子群中。而且,存在一个点,幂次(加法操作)能生成子群中的所有点。这样的点,称为“生成元”。
绕了一大圈,在有限域上的椭圆曲线上,存在很多个循环子群。子群是基于加法操作。
2.8 循环子群的阶
Schoof算法能确定整个基于有限域上的椭圆曲线上的点的个数,但是不能确定循环子群的个数。
拉格朗日定理指出,对于任何有限群G,G的每个子群H的阶次(元素数)都会被G的阶次整除。
https://en.wikipedia.org/wiki/Lagrange%27s_theorem_(group_theory)
该定理给寻找循环子群的阶n,提供了一个思路:
1/ 利用Schoof算法,计算出整个椭圆曲线的阶
2/ 找出其所有的约数
3/ 找出最小的约数n,满足
2.9 寻找生成元
通常使用椭圆曲线算法,先选择曲线,计算椭圆曲线的阶,然后在这条曲线上找到最大的子群。找子群,就是寻找子群对应的生成元。
假设椭圆曲线的阶为N,子群的阶为n,由拉格朗日定理,。
又因为椭圆曲线的阶为N,P为椭圆曲线上的随机的点,存在。也就是说
。
则为子群的生成元。
2.10 离散对数问题
已知两个在子群上的点P和Q,求解是非常难的问题。目前该问题没有多项式时间求解算法。
2.11 同态
如果子群的阶为r,则。
-
同态加法:
总结:
有限域上的椭圆曲线是零知识证明的基础。零知识的实现是基于离散对数问题。从计算的角度来看,F_p是个有限域,在之基础上建立的椭圆曲线点的运算都是在这个域范围内。有限域上的椭圆曲线上有很多循环子群F_r,具有加法同态的特性。离散对数问题指的是,在循环子群上已知两点,却很难知道两点的标量。
作者:Star Li
比推快讯
更多 >>- 美国参议员:对伊朗的袭击显然是为了破坏美伊谈判
- MicroStrategy 董事 Carl Rickertsen 清仓 MSTR 股票,套现逾 1000 万美元
- Anthony Pompliano 即将领导上市公司 ProCapBTC 拟融资 7.5 亿美元用于购买比特币
- 分析:以色列空袭伊朗后,比特币和其他加密货币大幅贬值
- 伊朗伊斯兰共和国通讯社:伊朗武装部队参谋长依然存活
- 某鲸鱼地址加仓买入 77,353 枚 HYPE,总持仓达 799,698 枚
- Maple 与 Lido 达成合作,提供以 stETH 为抵押的稳定币信贷额度
- 特朗普将于今晚参加美国国家安全委员会会议
- The Blockchain Group 完成 970 万欧元融资,加码比特币金库战略
- 疑似 ConsenSys 关联地址 4 小时前通过 OTC 再次买入 2825 枚 ETH
- 伊朗国家电视台:以色列或已杀害伊朗革命卫队总司令萨拉米
- 美国资深民主党人谴责以色列对伊朗袭击的“鲁莽升级”
- 某巨鲸通过 Aave 循环贷加仓做多 ETH,共持有 23,786 枚 AETHWETH
- 以太坊支持者称 ETH“定价严重错误”,机构“看涨案例”推动价格上涨
- Coinbase CEO:国会应该将 CLARITY 法案和 GENIUS 法案一起通过
- FTX/Alameda 地址 7 小时前再次分发 18.8 万枚 SOL,多数收款地址或将卖出
- 某合约交易者在冲突爆发时 40 倍做空 BTC,目前已浮盈超 500 万美元
- Meta 拟对 Scale AI 进行超 100 亿美元投资,估值超 290 亿美元
- 伊朗高官及科学家在首次空袭中遇难的可能性正在增加
- 人民币兑美元中间价升至 2025 年 3 月 28 日以来最高,达 7.1772
- 美国股指期货跌幅扩大,纳指期货跌幅达 2%
- 以军空袭伊朗纳坦兹核设施
- 特朗普和白宫已预计以色列将发动袭击,美国采取预防措施
- 据比推数据,ETH现报2511.76美元,1小时跌幅为5.02%,价格波动较大,请谨慎交易,控制风险。
- 以色列消息人士:这不是一天就结束的袭击
- SEC 与 Ripple 提交联合动议,请求解除禁令并分摊 1.25 亿美元罚款
- Hyperliquild 50 倍内幕巨鲸加仓 40 倍比特币空单,总仓位价值 1.15 亿美元
- 央视:伊朗武装部队总参谋长遭到暗杀
- 伊拉克关闭领空
- 数据:24 小时内 21.4 万名交易者被清算,包括多头巨鲸,总金额达 10.2 亿美元
- 现货黄金日内涨幅扩大至 1.00%
- 以色列:此次行动将持续到完成为止,不论需要多长时间
- 山寨币普遍跌超 10%,以太坊系代币跌幅较大
- 数据:某三战 ETH 全胜的巨鲸目前所持 4 万枚 ETH 空单浮盈 942 万美元
- 美国参议院将于 6 月 17 日对 GENIUS 法案进行最终表决
- 某在 Hyperliquild 15 倍做空 ETH 的交易员已浮盈超 950 万美元
- 美国官员:美国未介入或协助以色列打击伊朗
- 美 SEC 正式废除扩大定义范围的“托管规则”提案以及 DeFi 相关监管规则 3b-16
- CNN:美国总统特朗普召集内阁级别会议
- 以色列空袭伊朗导致全球市场波动,原油价格大幅上涨
- AguilaTrades 正割肉平仓其 20 倍 BTC 多单,已亏损 1172 万美元
- 市场消息:以色列对伊朗发动先发制人的打击
- 华创证券:未来两至三个月是美联储观察通胀的重要窗口期
- GameStop 将计划发行的可转换优先票据规模提高至 22.5 亿美元
- Coinbase 上币路线图新增 Sonic (S)
- Polygon 公布“Gigagas”扩容路线图:分三阶段逐步实现 10 万 TPS
- Galaxy Digital 创始人: 如果采用趋势持续下去,比特币可能会达到 100 万美元
- 特朗普:鲍威尔是个“蠢货”,降息200个基点每年可省6000亿美元
- SEC推迟对 Dogecoin、Hedera和 Avalanche ETF 的上市申请做出决议
- 过去 4 小时全网爆仓 4.40 亿美元,主爆多单
比推专栏
更多 >>观点
比推热门文章
- 特朗普将于今晚参加美国国家安全委员会会议
- The Blockchain Group 完成 970 万欧元融资,加码比特币金库战略
- 疑似 ConsenSys 关联地址 4 小时前通过 OTC 再次买入 2825 枚 ETH
- 伊朗国家电视台:以色列或已杀害伊朗革命卫队总司令萨拉米
- 美国资深民主党人谴责以色列对伊朗袭击的“鲁莽升级”
- 闪电审批!SEC开启30天Solana现货ETF倒计时,加密市场“第三极”呼之欲出
- 某巨鲸通过 Aave 循环贷加仓做多 ETH,共持有 23,786 枚 AETHWETH
- 以太坊支持者称 ETH“定价严重错误”,机构“看涨案例”推动价格上涨
- Coinbase CEO:国会应该将 CLARITY 法案和 GENIUS 法案一起通过
- FTX/Alameda 地址 7 小时前再次分发 18.8 万枚 SOL,多数收款地址或将卖出