正文共:1305字 9图,预计阅读时间:4分钟

导语

本课堂用通俗易懂的系列内容为大家呈现区块链与密码学领域相关知识。这里有知识也有故事,从感兴趣到有乐趣,点宽课堂等你来学。

这个系列中的课程内容首先从比特币着手进行入门介绍,再延伸至区块链的相关技术原理与发展趋势,然后深入浅出地依次介绍在区块链中应用的各类密码学技术。欢迎大家订阅本公众号,持续进行学习。

【本课堂内容全部选编自PlatON首席密码学家、武汉大学国家网络安全学院教授、博士生导师何德彪教授的《区块链与密码学》授课讲义、教材及互联网,版权归属其原作者所有,如有侵权请立即与我们联系,我们将及时处理。】

8.3

AOS环签名算法

2002年,Abe等基于离散对数问题开发了一种新型的环签名,他们使用因果环来达到效果。与早期的环签名相比,这种因果环的使用使签名的大小显著减少了(50%左右)。Abe等给出了一种通用环签名构造方法,利用该方法可以把任意数字签名转换为环签名,这里只介绍他们提出的基于Schnorr签名的环签名算法。首先回顾一下Schnorr签名算法:

假设p和q是大素数,且q能被p-1整除,q是大于等于160 bit的整数,p是大于等于512 bit的整数,保证GF(p)中求解离散对数困难;g是GF(p)中元素,且gq≡1 mod p

密钥生成

①Alice选择随机数x为私钥,其中1

②Alice计算公钥y≡gx (mod p)

签名算法

①Alice首先随机数k,这里1

②Alice计算c=h(M,gk mod p)

③Alice计算s=k - x · c ( mod q)

④Alice输出签名(c,s)

验证算法

①Bob计算e = gs · yc mod p

②Bob验证c=h(M,e)是否成立,如果成立输出「Accept」,否则输出「Reject」

设第i个用户的私钥为 ,公钥为 。签名者π的密钥对为( π , π ),随机生成公钥集L={ , ,…, }(0≤π≤r-1),并执行以下过程产生签名:

环签名算法

①选择随机数 π 并计算 π = π

②选择随机数 并计算 =H(L,M, )这里i=π+1,…,r-1,0,1,…,π-1

③计算 π = π - π · π (mod q) 输出环签名( , , ,…, )

环验证算法

①计算 = 和 =H(L,M, ) ,这里i=0,1,…,r-1

②验证 =h(L,M, )是否成立,如果成立则输出「Accept」,否则输出「Reject」

今天的课程就到这里啦,下节课我们将开始学习ZK环签名算法,敬请期待!

同学们可以关注点宽学园公众号,持续学习哦。我们下节课见啦。

点击回复【入群】加入点宽学园社群

(点点小助手)

关注点宽学园,每周持续更新区块链系列课程,小宽带你进入区块链世界。我们下节课见啦。

【区块链与密码学】课堂回顾:

FOLLOW US

© DigQuant

点击“阅读原文”,登录官网www.digquant.com,一起解锁更多金融科技姿势:涵盖 Python 、 金融基础 、 量化投资 、 区块链 、 大数据 、 人工智能 。 Dig More, Learn More!