如何实现基于McEliece的数字签名方案
1. 系统安全基础
某些系统的安全性基于两个假设:
- 解决解码问题的实例很困难。
- 恢复代码的底层结构很困难。
第一个假设由复杂性理论结果以及对通用解码器的广泛研究来支撑。第二个假设受到的关注较少,但McEliece中使用的Goppa码已被编码理论家知晓三十年,到目前为止,还没有已知的多项式可计算属性能够区分置换后的Goppa码和随机线性码。
2. 数字签名的生成
为了获得高效的数字签名,需要两个要素:一个能为任何文档计算唯一标识其作者的签名算法,以及一个可供所有人使用的快速验证算法。
可以将公钥加密函数用作签名方案,步骤如下:
1. 使用公共哈希算法对要签名的文档进行哈希处理。
2. 像解密密文实例一样解密此哈希值。
3. 将解密后的消息作为签名附加到文档中。
验证时,只需对签名应用公钥加密函数,并验证结果是否确实是文档的哈希值。但在Niederreiter或任何其他基于纠错码的密码系统中,步骤2会失败。原因是随机综合征通常对应权重大于t的错误模式,即很难生成随机密文,除非它是加密算法的明确输出。
解决此问题的一种方法是为代码找到一种解码任何综合征(或至少大部分综合征)的算法。
3. 完全解码
完全解码是指找到与空间中任何给定单词最接近的码字,用综合征语言来说,就是能够找到与任何给定综合征对应的错误模式,这意味着要解码对应权重大于t的错误的综合征。
一种尝试进行完全解码的方法是尝试纠正固定数量的额外错误(设为δ)。要解码对应权重为t +
超级会员免费看
订阅专栏 解锁全文
37

被折叠的 条评论
为什么被折叠?



