导语:本课堂用通俗易懂的系列内容为大家呈现区块链与密码学领域相关知识。这里有知识也有故事,从感兴趣到有乐趣,全民课堂等你来学。这个系列中的课程内容首先从比特币着手进行入门介绍,再延伸至区块链的相关技术原理与发展趋势,然后深入浅出地依次介绍在区块链中应用的各类密码学技术。欢迎大家订阅本公众号,持续进行学习。
【本课堂内容全部选编自PlatON首席密码学家、武汉大学国家网络安全学院教授、博士生导师何德彪教授的《区块链与密码学》授课讲义、教材及互联网,版权归属其原作者所有,如有侵权请立即与我们联系,我们将及时处理。】
8.1 环签名的概念
– 问题的提出 –
2001年,Rivest、Shamir和Tauman在How to Leak a Secret一文中提出了如下问题:
Bob是一个内阁成员,他想向记者揭露首相贪污的情况,他要使记者确信此消息来自一个内阁成员,同时又不想泄露自己的身份(保证匿名性),以免遭到首相报复。
Bob不能通过用一般的数字签名把消息传给记者,因为虽然记者会相信这个消息来自内阁成员,但同时会暴露B的身份。
Bob也不能通过一般的匿名方式把消息传给记者,因为虽然Bob的身份不会暴露,但记者不能确信消息来自一个内阁成员,没有理由相信消息是真实的。
群签名也不能解决这个问题,因为群签名的生成需要群成员的合作, 群管理者可以打开签名。如果群管理者受到首相的控制, Bob的身份就会暴露。
在此背景下,Rivest, Shamir和Tauman提出了环签名的概念,并提出一种新型的基于RSA的环签名算法,通常被视为第一个环签名算法。
环签名可以很好地解决以上问题,所有的内阁成员构成一个环,Bob把消息经过环签名后传给记者,在不暴露Bob身份的前提下记者可以通过验证环签名的正确性,确信签名来自一个内阁成员。
– 环签名的定义 –
环签名的概念是2001年Rivest,Shamir和Tauman三人提出的签名者模糊的数字签名。
在环签名生成过程中,真正的签名者任意选取一组成员(包含它自身)作为可能的签名者,用自己的私钥和其他成员的公钥对文件进行签名。签名者选取的这组成员称作环(Ring),生成的签名称作环签名(Ring Signature) .环签名主要包含以下三个算法:
密钥生成Gen(PPT算法):输入安全参数κ,为每一用户生成公私钥对(xi,yi),1 ≤ i ≤n;
签名Sign (PPT算法):输入消息m,一组公钥L={y1,y2,…,yn}及签名者的私钥xs,输出对m的签名R;
验证Verify (确定性算法):输入(m,R),输出「True」或「False」。
– 环签名特点 –
- 签名者利用自己的私钥可以将签名中的一系列值首尾相连,环签名因其签名值由一定的规则组成一个环而得名;
- 没有群体建立过程,也无特殊的管理者;
- 不需要预先加入和撤出单个群体,群体的形成根据需要在签名前由签名人自己指定,是一种自组织结构;
- 不能追踪签名人身份,能通过验证确定签名者是其中某一人,但无人能指出具体是哪一位成员。
– 环签名的安全性-
正确性:按照正确的签名步骤对消息进行签名,并且传播过程签名不被篡改,则环签名满足验证等式。
无条件匿名性:攻击者即便非法获取了所有环成员的私钥,他能确定出真正签名者的概率不超过1⁄r,r是环中成员(可能的签名者)的个数。
不可伪造性:环中其他成员不能伪造真实签名者的签名,攻击者即使在获得某个有效环签名的基础上也不能以不可忽略的优势成功伪造一个新消息的合法签名。
– 环签名与群签名的比较 –
管理系统:环签名中没有管理者,环中成员地位平等;群签名有一个群管理者,为群中其他成员分发密钥。
匿名性:两者都是一种个体代表群体签名的体制,达到签名者匿名的作用。环签名具有无条件匿名性,任何人都不知道真正的签名者是谁;群签名中,签名可以由群管理者打开,确定真正的签名者,保证了签名的可追踪性。
组织结构:环签名是一种自组织结构,真实签名者使用其他环成员的公钥时不需要他们的同意,环成员可以任意离开、加入;群签名中成员相对固定,群成员离开、加入群时密钥需要改变。
今天的课程就到这里啦,下节课我们将开始学习经典的环签名算法,敬请期待!
同学们可以关注PlatONWorld,持续学习哦。我们下节课见啦。
本文转载自https://mp.weixin.qq.com/s?__biz=MzUzNTg2ODg5MQ==&mid=2247494121&idx=1&sn=5d6547fbd2753c682ac23daa4894aa8f&chksm=fafc4d5dcd8bc44bcbed2f2cf6b85e466af937defbac587fd9527be3a8eeafd9e645570ee837&scene=178&cur_album_id=1411898566347735044#rd