公开密钥密码学(英语:Public-key cryptography)也称非对称式密码学(英语:Asymmetric cryptography)是密码学的一种算法,它需要两个密钥,一个是公开密钥,另一个是私有密钥。
公私秘钥对的两个典型使用场景:
- 加密
- 签名
总结就是:
公钥加密、私钥解密。
私钥签名、公钥验签。
加密
公钥加密、私钥解密流程:

-
准备阶段——初始化秘钥对
生成一对公、私密钥,公钥用作加密,私钥则用作解密,公钥可以公开,可任意向外发布;私钥不可以公开,必须由用户自行严格秘密保管,绝不透过任何途径向任何人提供,也不会透露给被信任的要通信的另一方。
公钥分给A,私钥分给B。
-
加密流程
A拿着公钥对消息进行加密,加密后的信息为密文,密文可以在任意地方传输,并且这是安全的。 -
解密流程
B拿到密文,使用私钥解密,得到明文。
签名
物理签名,主要是用来确认这个文件是谁签署的。
数字签名过文件,1是可以保证完整性,2是数字签名具有不可抵赖性(即不可否认性)。
在数字签名中,则将上述加密反过来,使用私钥加密(相当于生成签名),公钥解密(相当于验证签名)。
签名流程:

-
准备阶段——初始化秘钥对
生成一对公、私密钥,- 私钥(Private Key):由用户秘密保存,用于生成签名,私钥不可泄露!
- 公钥(Public Key):公钥可以公开发布,供他人验证签名。
公钥分给Bob(接受方),私钥给Alice(发送方)。
Alice用私钥签名一份合同,Bob 用 Alice 的公钥验证签名,确认合同未被修改且是Alice签署的。 -
签名生成(发送方操作)
- 计算数据哈希
对原始数据(如文件、消息)进行哈希运算(如 SHA-256),生成固定长度的摘要(Digest)。 - 私钥加密摘要
用发送方的私钥对摘要进行加密,生成数字签名(Signature)。 - 发送数据与签名
将原始数据和签名一起发送给接收方。
- 计算数据哈希
-
签名验证(接收方操作)
-
接收数据与签名
获取发送方的原始数据和签名。 -
重新计算数据哈希
对收到的原始数据使用相同的哈希算法,生成新的摘要。 -
解密签名
用发送方的公钥解密签名,得到发送方生成的原始摘要。 -
比对摘要
- 一致:验证成功,说明数据未被篡改且由私钥持有者签发。
- 不一致:验证失败,数据可能被篡改或签名无效。
-
扩展
公开密钥基础建设通过信任数字证书认证机构的根证书、及其使用公开密钥加密作数字签名核发的公开密钥认证,形成信任链架构,这些后续文章讲解。
浙公网安备 33010602011771号