导语:本课堂用通俗易懂的系列内容为大家呈现区块链与密码学领域相关知识。这里有知识也有故事,从感兴趣到有乐趣,全民课堂等你来学。这个系列中的课程内容首先从比特币着手进行入门介绍,再延伸至区块链的相关技术原理与发展趋势,然后深入浅出地依次介绍在区块链中应用的各类密码学技术。欢迎大家订阅本公众号,持续进行学习。
【本课堂内容全部选编自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<x<q
②Alice计算公钥y≡gx (mod p)
– 签名算法 –
①Alice首先随机数k,这里1<k<q
②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个用户的私钥为xi,公钥为y1=gximodp。签名者π的密钥对为(xπ,yπ),随机生成公钥集L={y0,y1,…,yr-1}(0≤π≤r-1),并执行以下过程产生签名:
– 环签名算法 –
– 环验证算法 –
同学们可以关注PlatONWorld,持续学习哦。我们下节课见啦。
本文转载自https://mp.weixin.qq.com/s?__biz=MzUzNTg2ODg5MQ==&mid=2247494658&idx=1&sn=06eb3f1acc1fb51cdf1d2bd8e190e0f7&chksm=fafc48b6cd8bc1a09146f1e19577a3fdf46012af5a57ae49acab9380ba0d6eac66f62ff88faf&scene=178&cur_album_id=1411898566347735044#rd