区块链密码学
1、 群签名:以太坊使用BLS群签名
只有群中成员能够代表群体签名(群特性);
接收者可以用公钥验证群签名(验证简单性);
接收者不能知道由群体中哪个成员所签(无条件匿名保护);
发生争议时,群体中的成员或可信赖机构可以识别签名者(可追查性)
2、环签名:门罗币使用环签名实现发送方不可追踪
签名者首先选定一个临时的签名者集合,集合中包括签名者自身。然后签名者利用自己的私钥和签名集合中其他人的公钥就可以独立的产生签名,而无需他人的帮助。签名者集合中的其他成员可能并不知道自己被包含在其中。
简化版群签名,无管理者,不可追查。
3、盲签名:
签名者需要在无法看到原始内容的前提下对信息进行签名,
盲签名可以实现对所签名内容的保护,防止签名者看到原始内容,
盲签名还可以实现防止追踪,签名者无法将签名内容和签名结果进行对应
典型的实现包括 RSA 盲签名算法等
4、多重签名:Zilliqa使用EC-Schnorr多重签名改进PBFT
n 个持有人中,收集到至少 m 个(n≥1)的签名,即认为合法。
5、代理签名: 代理人代替签名人行使签名权力
1)不可伪造性:除了代理人,其他人不能生成有效签名
2)可验证性:接收方可以验证代理人签名的有效性
3)可区分性:可以区分代理签名和原始签名
4)不可否认性:代理人不能否认他建立的代理签名
5)可识别性:原始签名者可以识别代理签名者的身份
6、确定性门限签名:少数群体联盟利用的随机数生成方式
不管给定的一组参与者中的哪一个向算法提供其数据,只要至少⅔的参与者诚实地参与,值就保证相同。
7、抵抗量子计算:
1)基于Hash函数:较为成熟,满足工程使用
CMSS方案、DMSS方案、XOR树
2)基于纠错码(NPC问题):安全性强,计算效率低,公钥体积较大
McEliece密码和Niederreiter密码
3)多变量密码(NPC问题):安全性较弱,计算简单、运行效率高、可并性
MIOV,三角形体制,Polly Cracker、简单矩阵加密体制
4)格密码:简单,高效,计算复杂度低,大部分密钥很长
NTRU系列密码所需密钥长度不长。
8、零知识验证