<s>Human: 描述数字签名是如何保护电子文档免受篡改的。
</s><s>Assistant: 数字签名是一种加密技术，用于验证文档的完整性、真实性和来源。它通过使用一种密钥和算法的组合，将文档内容转换成一段不可逆的唯一值，称为“哈希值”。哈希值可以被视为文档的数字指纹，任何对文档进行的更改都将改变其数字指纹，从而导致哈希值不同。

数字签名的过程如下：

1. 生成公钥和私钥：数字签名需要使用一对密钥，即公钥和私钥。公钥可以公开展示，但私钥必须妥善保管，不得泄露。

2. 计算哈希值：使用哈希算法对文档做出计算，并生成一个独特的哈希值。

3. 使用私钥进行签名：将哈希值与私钥加密，生成数字签名。数字签名将与文档一起保存。

4. 使用公钥进行验证：当有人想要验证文档的时候，他们可以使用相同的哈希算法，对文档做出计算，并使用公钥解密数字签名。如果计算出的哈希值与解密的数字签名相匹配，则说明文档没有被篡改过。

数字签名的优势在于，只有私钥的拥有者能够对文档进行签名，而任何人都可以验证签名。这使得文档作者的身份得以验证，并保护了文档免受篡改，以确保其真实性和完整性。
</s>