椭圆曲线密码学 入门篇: 实数上的椭圆曲线和群定律
开始鼓捣之前,我希望我知道的。 近年来,椭圆曲线BLS12-381逐渐火了起来。许多协议都将其应用到了数字签名和零知识证明中:Zcash、Ethereum 2.0、Skale、Algorand、Dfinity、Chia 等等。 不幸的是,现有的关于 BLS12-381 的资料里充满着晦涩的咒语,比如
蒙哥马利模乘算法关键是依赖于一种称为蒙哥马里形式(Montgomery form)的数字的特殊表示。效率高主要是因为避免了昂贵的除法运算。蒙哥马利形式采用一个常数R>N(N是要模的数),该常数与N互素,蒙哥马利乘法中唯一需要的除法是除以R。可以选择常数R,实际上R总是选2的次方,因为2的次方的除法可
哈希到曲线函数的技术现状,在secp256k1椭圆曲线上的应用,以及一般的哈希到曲线算法背后的一些安全考虑和性能优化。
介绍一点配对的性质,其在密码学的应用和历史。
本文主要介绍plookup算法的思路
本文介绍的这些知识点是理解plookup的基础
环签名,目前在隐私Monero项目中有所应用
盲签名可以看成结合普通签名的变种,实现特殊的应用。RSA方案简单易解,实际代码工程是要有额外一些处理的,可能需要填充等。
本文继续讲sigma协议相关的引申和应用!
本文介绍Sigma协议的交互和非交互性质,简单明了,介绍了零知识证明中常用的Fiat-Shamir变换
RSA Accumulator非成员证明,能够进行假如用Accumulator纪录一个UTXO 集合,证明某个UTXO不存在等场景。
本文描述了累加器的概念和性质,具体说明RSA累加器实现过程。可以看出Accumulator具有一些比merkle证明有优势的地方,比如聚合证明,证明大小不随着集合元素的增加而增加等。 实际应用实现中RSA累加器还会有一些前置处理操作,比如将原始数据映射到选定素数域上的值等。
Merkle树如果说有其不足之处的话,当叶子节点的数量级非常大,树层级数变多,在打开验证节点需要的merkle树证明路径也就越长,数据量就越大
本文介绍了Kate承诺在多点披露验证的情况,当然还有一种就是多个多项式在多个不同点打开验证,相信如果本文理解的话,是可以自己推出来的,不在详述了。
与上一篇初步方案相比,Kate承诺实现了多项式的隐藏和部分打开验证,实际上方法1生成的结果在zk-snark项目中称为SRS(structure reference string)或者CRS(common reference string),是承诺方P和验证方V所共有,实际选择曲线配对不是对称的,而是非对称两个群,以后说到具体的项目代码可以看得比较清楚。
目前为止的方案中, 承诺方造假的问题依然存在,仔细研究会发现问题关键在于承诺方P知道计算的输入变量r,z, 这样就有机会构造出新的多项式在r,z处取特定的值。如果P不知道r,z,就不能这样作弊了。于是Kate承诺选择在密文空间中进行计算。
Pedersen基于门限的秘密分享方案实际上采用了Pedersen承诺来构建多项式系数承诺,这一点很容易从对比其他秘密分享方案得出!
Pedersen承诺产生方式,有些类似加密,签名之类的算法。但是,作为密码学承诺重在“承诺”,并不提供解密算法,即如果只有r,无法有效地计算出隐私数据v。
本文介绍密码学承诺的含义及性质,并对哈希承诺做了说明,关于hash函数的内在机制实际是比较复杂的,我们以黑盒的角度来学习了解它的性质,在区块链&密码学中,哈希函数占据了基础且重要的位置。 比如区块链中常用的sha256,keccak等哈希算法。
扫一扫 - 使用登链小程序
38 篇文章,358 学分
61 篇文章,346 学分
108 篇文章,260 学分
22 篇文章,231 学分
12 篇文章,151 学分