密码学关键技术:X.509 与零知识证明解析
1. X.509 标准概述
X.509 标准由国际电信联盟(ITU)制定,最初用于数据库记录的授权读写访问,如今是电子商务领域广为人知的公钥基础设施(PKI)标准。该标准定义了认证机构(CA),由其为用户颁发证书。这些证书基于 ASN1 语法,包含多个记录,部分为必填项,部分为可选项。最初的规范范围有限,当前常用版本为版本 3。
认证机构为离线机构,每个认证机构连接一个或多个注册机构(RA),证书可在目录中获取。最初的设置是 X.500 分布式数据库,预期实现全球设置,CA 之间通过证书路径相互识别。这样,若两个注册用户的证书并非由同一 CA 颁发,他们可通过适当的证书路径访问对方的公钥。
然而,该标准存在一定弱点,即使用黑名单或撤销列表。这些撤销列表仅在离散时间点更新,用户在收到其他用户的有效证书时,无法确定该证书是否已被撤销,即便证书看起来仍然有效。
此外,不可否认性的实现依赖于架构提供独立的时间戳。若签名消息基于有效的数字签名和证书被接受,但相关公钥随后被其所有者撤销,除非验证者能证明在公钥撤销之前收到了有效的签名和证书,否则该签名消息对验证者可能不再有价值。例如,验证者可在撤销之前的任意时间,从时间戳机构获取该消息哈希值的签名,并附上时间戳。
2. 零知识证明概念
零知识是交互式证明、交互式论证和非交互式证明所具备的属性。健全性属性保护验证者的利益,而零知识属性则保护证明者的利益。通过零知识证明,证明者能够在不泄露除陈述有效性之外的任何知识的情况下,使验证者相信给定陈述的有效性。(需注意,见证隐藏证明的概念为零知识证明提供了一种替代方案。)
换