经典数字签名
经典的数字签名原理如上图所示:
经典密码学的算法和协议大多是基于求解大数质因子分解问题、离散对数问题、二次剩余问题等数学难题的困难性,无法被严格证明是安全的。而且,量子计算机可以在有限的时间内攻破经典密码学中的基于数学难题的算法。
签名阶段,签名方先将源文件进行数字摘要,并用自己的私钥加密该数字摘要构成自己的签名,然后将签名附在源文件后面发送给验证方;验证阶段,验证方收到签名后,先对源文件进行数字摘要,得到数字摘要 1,再用签名方的公钥对签名进行解密,得到数字摘要 2,比较数字摘要 1 和 2,若相等,则签名通过验证,否则签名无效。由此可以看出,数字签名可以提供消息认证、确保消息的完整性并具有不可否认性的功能。
数字签名的实现大多基于公开密钥算法,所以与经典密码学遭遇的困境类似,数字签名方案也容易受到攻破。随着量子密码学的发展,特别是量子密钥分发协议的提出,人们将目光投向了量子领域。
量子数字签名方案结合了量子密码学和数字签名技术,利用量子力学原理可达到无条件安全性。