环签名支持签名者利用其他参与方公钥进行签名,且签名结果不会暴露签名者身份。环签名具备如下特点:
1、正确性:按照正确的算法步骤对消息进行签名,该签名一定会被验证通过;
2、匿名性:签名者隐藏在多个成员之中,任何获得签名的一方,能够正确推断出签名者身份的概率不超过1/n,其中n为环签名中的成员个数;
3、不可伪造:环中成员不能伪造其他成员进行签名,获得签名的人员无法伪造新的合法签名。
基于RSA的环签名算法描述如下:
RSA环签名的golang代码实现如下:
签名算法:
验签算法: