数字签名
数字签名是一种可用于验证文档或消息作者的对象。
数字签名通常基于公钥加密,其中密钥作为一对密钥创建,其特性是,如果使用一个密钥加密了某个输入,那么只能使用另一个密钥解密,反之亦然。
密钥对的创建者将一个密钥公开,并将另一个密钥保密。要对文档进行签名,密钥对的所有者会创建一个文档的哈希值,并用私钥对其进行加密。
文档和签名被发送给验证者,验证者对文档进行哈希处理,检索公钥,并解密签名:如果解密结果与哈希值匹配,则签名已得到验证,验证者可以确信该签名是由拥有私钥的实体创建的。
数字签名系统的安全性(除其他因素外)取决于
-
私钥所有者妥善保管私钥:如果其他实体可以访问私钥,他们就可以冒充所有者。
-
验证者使用的公钥是所有者私钥的真正对应公钥:如果攻击者能够欺骗验证者信任错误的公钥,他们就可以冒充所有者。
验证者通常使用数字证书来检查公钥是否真实。