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
     
    事实上每人都有两把锁和对应的钥匙。
  • 相关阅读:
    DP大作战—状态压缩dp
    DP大作战—组合背包
    DP大作战——多重背包
    单链表的使用——计算多项式加法
    单链表逆置
    钢条切割问题
    哈夫曼树及解码
    双“11”的抉择
    矩阵链相乘助教版代码
    abs()函数的返回值问题
  • 原文地址:https://www.cnblogs.com/pathrough/p/4344229.html
Copyright © 2011-2022 走看看