详细介绍:公钥和私钥的应用

​公钥和私钥的核心关系是:用公钥加密的信息,只能用对应的私钥解密;用私钥签名的信息,可用对应的公钥验证。

核心原则:不可逆的操作

想象一对数学上紧密关联的钥匙:

  • 公钥通过: 能够比作一个打开的挂锁。任何人都可以拿到它来“锁上”箱子。
  • 私钥: 则是这把挂锁唯一的钥匙。只有持有者才能用它来“打开”箱子。

基于该比喻,我们来详细讲解它们的用法。

主要用途一:加密通信(保证机密性)

这个场景的目的是:确保只有预期的接收者才能阅读信息内容。
目标:Alice想发送一条机密信息给Bob,确保即使被他人截获,也无法阅读。

步骤

  1. 密钥准备:Bob生成自己的公钥和私钥对。他将公钥公开给所有人(比如放在个人网站上),并严格保管好自己的私钥
  2. 加密:Alice获取Bob的公钥,并用它来加密要发送的明文信息。加密后得到密文。
  3. 发送:Alice将密文发送给Bob。
  4. 解密:Bob收到密文后,使用自己保管的私钥进行解密,还原出原始信息。

在这里插入图片描述

关键点:即使攻击者截获了密文,并且也拥有Bob的公钥,他依然无法解密,基于解密必须使用Bob的私钥。这就解决了对称加密中密钥分发的难题。

主要用途二:数字签名(保证真实性、完整性和不可否认性)

这个场景的目的是:验证信息的来源是否可信,以及信息在传输过程中是否被篡改。

目标他发布的,且内容未被修改。就是:Bob想发布一份公告,并让所有人都能验证这份公告确实

步骤

  1. 生成签名:Bob先对公告原文计算一个哈希值(一种数字指纹),然后使用自己的私钥对这个哈希值进行加密,生成的东西就是数字签名
  2. 发布:Bob将公告原文数字签名一起发布出去。
  3. 验证:任何人(比如Alice)收到公告和签名后,进行以下管理:
    • a. 用Bob公开的公钥去解密那种数字签名,得到一个新的哈希值(H1)。
    • b. 对收到的公告原文计算同样的哈希值,得到另一个哈希值(H2)。
    • 两者完全相同,则验证通过。就是c. 比较H1和H2。要

过程图解与特点
在这里插入图片描述

验证通过意味着什么?

  1. 真实性: 信息确实来自Bob,基于只有Bob的私钥才能生成能用其公钥解开的签名。
  2. 完整性: 信息在传输中未被篡改,因为哪怕改动一个标点,计算出的H2也会与H1不同。
  3. 不可否认性: Bob事后无法否认他发送过这条信息,缘于只有他拥有生成该签名的私钥。

总结对比表

用途操作目的类比
加密通信用接收方的公钥加密 -> 用接收方的私钥解密保证机密性用对方的挂锁锁上箱子,只有对方有钥匙打开。
数字签名用发送方的私钥签名 -> 用发送方的公钥验证保证真实性、完整性、不可否认性在文件上盖一个独特的蜡封印章,任何人都能够用公开的印模来验证印章的真伪。

实际应用举例

  • HTTPS/SSL: 网站将其公钥放在证书中。你的浏览器用该公钥加密一个会话密钥,网站用私钥解密,从而建立安全连接。同时,浏览器用证书颁发机构的公钥验证网站证书的签名,确认你访问的是真实网站。
  • 比特币/加密货币: 你的比特币地址是公钥的衍生品。当你发起转账时,用你的私钥对交易进行签名。矿工用你的公钥验证签名,确认交易高效。
  • 软件更新: 软件开发商用私钥对更新包签名。你的电脑用内置的公钥验证签名,确保下载的更新包来自官方且未被植入恶意代码。

posted on 2025-11-08 17:42  wgwyanfs  阅读(5)  评论(0)    收藏  举报

导航