• 对于“公钥加密,私钥解密”有在 ssh 的 authorized_keys 这种常见的应用场景,那么“私钥签名,公钥验证”有什么常见的应用场景?
  • 发布于 2个月前
  • 162 热度
    4 评论
个人目的只是想从 应用使用的角度来理解,非对称加密、公钥私钥这些概念。

对于 ssh 的`authorized_keys`的应用使用过程为:
● 服务器检查 `authorized_keys` 文件,找到与客户端提供的公钥匹配的条目。
● 服务器生成一个随机数,并使用公钥对其进行加密,然后将加密后的消息发送给客户端。
● 客户端使用私钥解密该消息,并将解密后的随机数返回给服务器。

● 服务器验证返回的随机数是否正确。如果正确,服务器接受客户端的连接请求。


从这个过程,理解了"正因为客户端使用了私钥来解密,所以才能证明客户端的身份。",而且反过来,“私钥加密,公钥解密”是无法证明身份的。
自己也去 ssh 连接了多个服务器,查看了`authorized_keys`的内容。也看了客户端自己`~/.ssh/id_rsa.pub`。

那对于“私钥签名,公钥验证”,有什么应用场景是平时接触得到的?
- 而且最好有实物可以查看,帮助理解。
- 而且要是能有一个和我上面差不多的简单分析,就更好了。
用户评论
  • 那一抹残阳
  • 数字签名的主要作用是保护信息的完整性和防止抵赖。
    数字签名的过程:A ----> B 发送一条数据,数据和签名是分开发的。
    1. A 先使用摘要算法算出摘要;
    2. A 使用自己的私钥对摘要进行加密;
    3. A 发送数据给 B ;
    4. A 发送签名给 B ;
    5. B 收到签名后先使用 A 的公钥进行解密;(体现了防止抵赖的特性)
    6. B 收到数据后进行摘要计算,和签名解密出来的摘要进行对比;(验证数据的完整性)

    需要注意的是,出于保密性需求,数据发送前也可以使用某种算法进行加密,密钥及算法协商涉及其它过程。
    这是书本上学习理解到的知识,没有验证过。
  • 2024/9/22 22:44:00 [ 0 ] [ 0 ] 回复
  • 有种想念
  • 这个顾名思义就知道了啊,签名的作用就是让别人知道某段信息是只有我能发出的,譬如我是某机构,我要发一篇公告,我把公钥公开出去,再用私钥加密这篇公告的内容发出去,别人用公钥解密成功的文本就说明是本机构发出的,任何其他人都伪造不了。应用场景么像是软件分发时候在 manifesto 里加上私钥信息表明分发源可靠之类,公钥加密的作用是对密文本身保密,私钥签名对密文本身是不保密的,仅仅是证明密文发出者的身份可靠。
  • 2024/9/22 22:38:00 [ 0 ] [ 0 ] 回复
  • 牵线木偶
  • 区块链,证明我持有这把公钥对应的私钥
    1. 用私钥签名一段数据哈希(如转账)
    2. 网络节点还原哈希对应的公钥(椭圆曲线)验证公钥所有者,以及检查公钥所有者记账的金额余额
    区块链上的账目实际上是记录在公钥上,即某个公钥持有对应资产数量
  • 2024/9/22 22:22:00 [ 0 ] [ 0 ] 回复
  • 受阻的自由
  • 公钥加密->私钥解密 别人发给你信息,确保这个信息只有你能解密
    私钥签名->公钥验证 你发一条信息出去,任何知道你公钥的人都能验证这条信息是来自于你
  • 2024/9/22 22:20:00 [ 0 ] [ 0 ] 回复