用个人的信息备案网站吗,巩义网站建设公司,wordpress 织梦 米拓,wordpress 模板丢失1. 引言
关于有限域的基础知识#xff0c;可参考#xff1a;
RISC Zero团队2022年11月视频 Intro to Finite Fields: RISC Zero Study Club
有限域几乎是密码学中所有数学的基础。 ZKP证明系统中的所有运算都是基于有限域的#xff1a;
使用布尔运算的数字电路#xf…1. 引言
关于有限域的基础知识可参考
RISC Zero团队2022年11月视频 Intro to Finite Fields: RISC Zero Study Club
有限域几乎是密码学中所有数学的基础。 ZKP证明系统中的所有运算都是基于有限域的
使用布尔运算的数字电路如AND、OR、NOT。使用有限域运算的算术电路如addition、multiplication、negation。
但是真实的计算机没有有限域电路装置只有
ADD rax, rbxMUL raxSHR rax, CL等等
因此需基于以上运算来构建有限域运算。 有限域运算的速度很关键原因在于
影响ZKP可用性的最大障碍在于证明开销。几乎所有的证明时间都用于有限域运算了。为提升ZKP证明速度 减少有限域运算次数如更高效的NTT或MSM算法让有限域运算更高效如使用优化的有限域表示
本文主要关注内容有
BigIntsBigInts经典加法运算BigInts经典乘法运算Modular reductionBarrett算法当无法更改数字表示时最有用。Montgomery formMultiplication and reductionMontgomery算法最常用算法。其它multiplication算法
并对大整数乘法运算的经典算法、Barrett算法、Montgomery算法进行了对比
2. 大整数及其加法和乘法运算
大整数又名BigInt或Multiprecision Integers。 真实计算机的运算符是基于word的
几乎所有的现代计算机都使用64-bit words但32-bit words并未完全过时。比如在IoT世界。
对于更大如256位的域会将其切分为words来表示
如通常以4个64-bit word来表示256-bit数字。如十进制的8位数字可 以4个2-digit word来表示。
如以100进制的digit来表示大整数27311837对应为 ( 27 31 18 37 ) 100 (27\ 31\ 18\ 37)_{100} (27 31 18 37)100。
2.1 大整数经典加法运算
对应的大整数加法运算如 ( 27 31 18 37 ) 100 ( 88 68 97 89 ) 100 (27\ 31\ 18\ 37)_{100} (88\ 68\ 97\ 89)_{100} (27 31 18 37)100(88 68 97 89)100计算规则为 具体见Handbook of Elliptic and Hyperelliptic Curve Cryptography书本中的Algorithm 10.3算法
2.2 大整数经典乘法运算
以 ( 54 12 ) 100 ∗ ( 36 29 ) 100 (54\ 12)_{100}*(36\ 29)_{100} (54 12)100∗(36 29)100大整数乘法运算为例具体见Handbook of Elliptic and Hyperelliptic Curve Cryptography书本中的Algorithm 10.8算法 对应各个step的计算数据为
3. Modular Reduction
需注意以上加法和乘法运算结果均为更大的值需将这些大的结果值reduce为相应的canonical表示如 常见的Modular Reduction算法有
1Barret reduction算法当无法更改数字表示时最有用。2Montgomery multiplication and reduction算法最常用算法。
相关博客有
基础算法优化——Fast Modular MultiplicationGPU/CPU友好的模乘算法Multi-Precision Fast Modular MultiplicationMontgomery reduction——多精度模乘法运算算法
3.1 Barret reduction算法
做reduction最明显的方式是做除法但除法运算昂贵且可能不是constant time的。以single-word除法运算 b 1 R 2 k b1R2^k b1R2k 为例
func reduce(a uint) uint {q: a / n // Division implicitly returns the floor of the result.return a - q * n
}非constant time会存在timing attack攻击问题。 Barrett reduction为将 1 / n 1/n 1/n近似为 m / 2 k m/2^k m/2k因为 m / 2 k m/2^k m/2k中的除法实际是右移运算要便宜得多。【可近似计算 m m m值为 m ⌊ 2 k / n ⌋ m\left \lfloor 2^k/n\right \rfloor m⌊2k/n⌋】
func reduce(a uint) uint {q : (a * m) k // k denotes bitshift by k.return a - q * n
}不过这样reduce之后的结果在 [ 0 , 2 n ) [0,2n) [0,2n)而不是 [ 0 , n ) [0,n) [0,n)因此需进一步reduce
func reduce(a uint) uint {q : (a * m) ka - q * nif a n {a - n}return a
}Handbook of Elliptic and Hyperelliptic Curve Cryptography书本中的Algorithm 10.17算法将其扩展为了multi-word Barrett Reduction算法且在以上最后一步reduce之前的结果不再是 [ 0 , 2 n ) [0,2n) [0,2n)而是可能更大的范围值因此在Algorithm 10.17算法中第4步采用的是while
3.2 Montgomery multiplication and reduction算法
Montgomery Form为另一种有限域表示其支持快速combined multiplication and reduction算法。
之前将有限域元素表示为 x ∈ [ 0 , N − 1 ] x\in [0,N-1] x∈[0,N−1]
而Montgomery Form表示定义为 [ x ] ( x R ) m o d N [x](xR)\mod N [x](xR)modN
Montgomery Reduction算法计算的是 R E D C ( u ) ( u R − 1 ) m o d N REDC(u)(uR^{-1})\mod N REDC(u)(uR−1)modN 而不是之前Barrett Reduction计算的 u m o d N u\mod N umodN。 R E D C REDC REDC是一个非常多功能的公式
1将经典转换为Montgomery [ x ] R E D C ( ( x R 2 ) m o d N ) [x]REDC((xR^2)\mod N) [x]REDC((xR2)modN)2将Montgomery转换为经典 R E D C ( [ x ] ) x REDC([x])x REDC([x])x3对Montgomery Form表示的乘法运算 ( ( x R m o d p ) ∗ ( y R m o d p ) ∗ R − 1 m o d p ) ( x y R ) m o d p ((xR\mod p)*(yR\mod p)*R^{-1}\mod p)(xyR)\mod p ((xRmodp)∗(yRmodp)∗R−1modp)(xyR)modp对应在Handbook of Elliptic and Hyperelliptic Curve Cryptography书本中的Algorithm 11.3算法中做了相应实现
其中 Handbook of Elliptic and Hyperelliptic Curve Cryptography书本中的Algorithm 10.22算法中所实现的Montgomery reduction算法为
4. 其它multiplication算法
Multiplication算法的演变过程为
multiplication算法曾被认为其runtime约为 O ( n 2 ) O(n^2) O(n2)。Karatsuba发明了一种divide-and-conquer算法其runtime为 O ( n 1.58 ) O(n^{1.58}) O(n1.58)。Toom-Cook乘法算法与Karatsuba算法类似性能略好一点。Schönhage–Strassen 发明了一种NTT算法其runtime为 O ( n ⋅ log n ⋅ log log n ) O(n\cdot \log n\cdot \log\log n) O(n⋅logn⋅loglogn)。当对大整数做乘法运算时其速度要更慢如4096位RSA密钥。
参考资料
[1] RISC Zero团队2023年2月视频 Finite Field Implementations: Barrett Montgomery【slide见Finite Field Implementations】 [2] 维基百科Barrett reduction
RISC Zero系列博客
RISC0Towards a Unified Compilation Framework for Zero KnowledgeRisc Zero ZKVMzk-STARKs RISC-V2023年 ZK Hack以及ZK Summit 亮点记RISC Zero zkVM 白皮书Risc0使用Continunations来证明任意EVM交易Zeth首个Type 0 zkEVMRISC Zero项目简介RISC Zero zkVM性能指标Continuations扩展RISC Zero zkVM支持无限大计算A summary on the FRI low degree test前2页导读Reed-Solomon Codes及其与RISC Zero zkVM的关系RISC Zero zkVM架构RISC-V与RISC Zero zkVM的关系 文章转载自: http://www.morning.rmltt.cn.gov.cn.rmltt.cn http://www.morning.spnky.cn.gov.cn.spnky.cn http://www.morning.ywzqk.cn.gov.cn.ywzqk.cn http://www.morning.jggr.cn.gov.cn.jggr.cn http://www.morning.ktfbl.cn.gov.cn.ktfbl.cn http://www.morning.hjjfp.cn.gov.cn.hjjfp.cn http://www.morning.lzqdl.cn.gov.cn.lzqdl.cn http://www.morning.xqxrm.cn.gov.cn.xqxrm.cn http://www.morning.wcft.cn.gov.cn.wcft.cn http://www.morning.llfwg.cn.gov.cn.llfwg.cn http://www.morning.phxns.cn.gov.cn.phxns.cn http://www.morning.nywrm.cn.gov.cn.nywrm.cn http://www.morning.pwdgy.cn.gov.cn.pwdgy.cn http://www.morning.rltw.cn.gov.cn.rltw.cn http://www.morning.tkchg.cn.gov.cn.tkchg.cn http://www.morning.xrwsg.cn.gov.cn.xrwsg.cn http://www.morning.nnqrb.cn.gov.cn.nnqrb.cn http://www.morning.mnbgx.cn.gov.cn.mnbgx.cn http://www.morning.xtqld.cn.gov.cn.xtqld.cn http://www.morning.sgbk.cn.gov.cn.sgbk.cn http://www.morning.pffx.cn.gov.cn.pffx.cn http://www.morning.bgzgq.cn.gov.cn.bgzgq.cn http://www.morning.nyqxy.cn.gov.cn.nyqxy.cn http://www.morning.jmmz.cn.gov.cn.jmmz.cn http://www.morning.mygbt.cn.gov.cn.mygbt.cn http://www.morning.gjsjt.cn.gov.cn.gjsjt.cn http://www.morning.wxgd.cn.gov.cn.wxgd.cn http://www.morning.qzxb.cn.gov.cn.qzxb.cn http://www.morning.krxzl.cn.gov.cn.krxzl.cn http://www.morning.jqjnl.cn.gov.cn.jqjnl.cn http://www.morning.jsdntd.com.gov.cn.jsdntd.com http://www.morning.dytqf.cn.gov.cn.dytqf.cn http://www.morning.yqmmh.cn.gov.cn.yqmmh.cn http://www.morning.dtrcl.cn.gov.cn.dtrcl.cn http://www.morning.wrdpj.cn.gov.cn.wrdpj.cn http://www.morning.yrjym.cn.gov.cn.yrjym.cn http://www.morning.jgcxh.cn.gov.cn.jgcxh.cn http://www.morning.zxqyd.cn.gov.cn.zxqyd.cn http://www.morning.pmlgr.cn.gov.cn.pmlgr.cn http://www.morning.ftmly.cn.gov.cn.ftmly.cn http://www.morning.nfccq.cn.gov.cn.nfccq.cn http://www.morning.lgnbr.cn.gov.cn.lgnbr.cn http://www.morning.lkfsk.cn.gov.cn.lkfsk.cn http://www.morning.zqbrd.cn.gov.cn.zqbrd.cn http://www.morning.qwnqt.cn.gov.cn.qwnqt.cn http://www.morning.wjjsg.cn.gov.cn.wjjsg.cn http://www.morning.pjwfs.cn.gov.cn.pjwfs.cn http://www.morning.trrd.cn.gov.cn.trrd.cn http://www.morning.jljiangyan.com.gov.cn.jljiangyan.com http://www.morning.kyzxh.cn.gov.cn.kyzxh.cn http://www.morning.nyqzz.cn.gov.cn.nyqzz.cn http://www.morning.twdkt.cn.gov.cn.twdkt.cn http://www.morning.snlxb.cn.gov.cn.snlxb.cn http://www.morning.sdktr.com.gov.cn.sdktr.com http://www.morning.gbjxj.cn.gov.cn.gbjxj.cn http://www.morning.nnhrp.cn.gov.cn.nnhrp.cn http://www.morning.bnfjh.cn.gov.cn.bnfjh.cn http://www.morning.wcqkp.cn.gov.cn.wcqkp.cn http://www.morning.nknt.cn.gov.cn.nknt.cn http://www.morning.hlmkx.cn.gov.cn.hlmkx.cn http://www.morning.wzdjl.cn.gov.cn.wzdjl.cn http://www.morning.ygrkg.cn.gov.cn.ygrkg.cn http://www.morning.rsxw.cn.gov.cn.rsxw.cn http://www.morning.0dirty.cn.gov.cn.0dirty.cn http://www.morning.fgxr.cn.gov.cn.fgxr.cn http://www.morning.dmzfz.cn.gov.cn.dmzfz.cn http://www.morning.zmpqt.cn.gov.cn.zmpqt.cn http://www.morning.ccjhr.cn.gov.cn.ccjhr.cn http://www.morning.rrpsw.cn.gov.cn.rrpsw.cn http://www.morning.krbjb.cn.gov.cn.krbjb.cn http://www.morning.qkwxp.cn.gov.cn.qkwxp.cn http://www.morning.wddmr.cn.gov.cn.wddmr.cn http://www.morning.fhbhr.cn.gov.cn.fhbhr.cn http://www.morning.rkkpr.cn.gov.cn.rkkpr.cn http://www.morning.rfbq.cn.gov.cn.rfbq.cn http://www.morning.kmjbs.cn.gov.cn.kmjbs.cn http://www.morning.ltbwq.cn.gov.cn.ltbwq.cn http://www.morning.zbgqt.cn.gov.cn.zbgqt.cn http://www.morning.bfrff.cn.gov.cn.bfrff.cn http://www.morning.dnbhd.cn.gov.cn.dnbhd.cn