zoukankan      html  css  js  c++  java
  • 用现实生活的例子解释非对称加密

     

     
    通讯条件
    我有两把锁和两把对应的钥匙:
    私钥A、私锁B
    公锁A、公钥B
    私钥A可以开公锁A,公钥B可以开公锁B
    公锁A和公钥B放到了门外,所有人都可以拿
    私钥A和私锁B,我自己藏着不让人知道
     
    你也有两把锁和两把对应的钥匙:
    私钥C、私锁D
    公锁C、公钥D
    公锁C和公钥D放到了门外,所有人都可以拿
    私钥C和私锁D,你自己藏着不让人知道
     
    通讯过程
      为了给你传递消息,我拿了你的公锁C来锁住我的消息,这时只有你能用私钥C来打开查看消息。为了让你知道这个消息是我发的,而不是别人发的,我拿了自己的私锁B,又在外面加了锁。
    消息到你那以后,你先拿我的公钥B打开了我的私锁B,然后就看到了用你的公锁C锁住的消息,因为只有你自己有私钥C,所以只有你才能看到里面的消息。
     
      轮到你给我发消息了,你先拿我的公锁A锁住了消息,保证只有我能看到消息,然后为了证明消息是你发的,你就拿了你的私锁D在外面又加了一把锁,这把锁大家可用你的私钥D来开。
    我收到消息后,去拿你的公钥D开了你外面的私锁D,然后用我的私钥A开了里面的公锁A,然后我就可以看到里面的消息了。
     
     
    上面的例子对应于私钥公钥加密体制的公钥、私钥如下:
     
    我的公钥:公锁A和公钥B
    我的私钥:私钥A和私锁B
     
    你的公钥:公锁C和公钥D
    你的私钥:私钥C和私锁D
     
    事实上每人都有两把锁和对应的钥匙。
  • 相关阅读:
    wireshark抓包 TCP 字段详解
    youget使用教程
    JavaScript操作Oracle数据库
    WinForm导出文件,你懂的……
    Docker数据存储原理
    Dockerfile之CMD与ENTRYPOINT使用要点
    DevOps实战(Docker+Jenkins+Git)
    Python和Django web开发工具pycharm介绍
    连出两次
    python2.7发邮件小程序
  • 原文地址:https://www.cnblogs.com/shoshana-kong/p/10934545.html
Copyright © 2011-2022 走看看