请描述数字签名的完整流程,并说明验证数字签名的具体步骤和原理。
考察说明
考查对数字签名机制及其验证过程的理解,包括公钥密码学、哈希函数和信任链。
回答思路
- 【回答框架 1】数字签名基于非对称加密和哈希函数。发送方使用私钥对消息的哈希值进行加密,生成签名;接收方用公钥解密签名得到哈希值,并与自己计算的哈希值比对。
- 【回答框架 2】完整流程包括:1) 发送方对消息计算哈希值(如SHA-256);2) 使用私钥加密哈希值生成签名;3) 将消息和签名发送给接收方;4) 接收方用公钥解密签名得到哈希值;5) 对接收到的消息重新计算哈希值;6) 比较两个哈希值,一致则验证通过。
- 【回答框架 3】数字签名提供完整性、认证性和不可否认性,但需要公钥的真实性,因此依赖证书颁发机构(CA)颁发的数字证书。
- 【关键点 1】数字签名是用私钥对消息摘要加密,验证时用公钥解密并比对摘要。
- 【关键点 2】哈希函数保证消息完整性,签名保证来源真实性。
- 【关键点 3】公钥分发依赖PKI体系,CA证书确保证书可信。
- 【易错点 1】不能直接用无私钥加密的密文作为签名,必须对哈希值签名。
- 【易错点 2】验证时不能只解签,必须重新计算哈希并比对,否则消息可能被篡改。
- 【易错点 3】公钥本身可能被伪造,需通过证书链验证公钥真实性。