ASIC芯片 计算板卡 整机设备 软件系统 破译服务
密码学笔记---公开密码体制的应用
2019-01-02 19:09:01              [技术资料 ]

小蓝和大家一起回顾上期最后出现的问题:Alice将敏感数据用高强度的对称算法加密了,就是要算好多好多好多年的那种!这个算法对应的有一个密钥,问题来了:Alic如何将密钥安全的送给Bob呢?

  我们有以下办法!

  第一种“预先共享”,就是有一个密钥是Alice和Bob事先协商好的,两个人都先拿着了,别人不知道。但这种方式,当有1000Alice \Bob通讯的时候,这些人累计要管理的密钥就太多了(将近50万把钥匙,别问我怎么算出来的) 

  第二种,由一个老板(管理中心)来统一分配,这也容易懂。但如果通讯的用户来数越多,密钥也会越来越多,而且如果要解开之前的加密信息,每次分配的密钥都要保留好,这样下去,和第一种样累死了……

  我们再来说说第三种--这就是著名的DH协议(Diffie-Hellman协议)DH协议的功能简单来说就是协商一个密钥。

我们用这个图来解释:

下载.png

  这个背景是:AliceBob在不同两地。Alice要给Bob发一张自己的私房照,但又不想被快递公司打开看到,于是想了这样一个办法。

第一步,Alice用自己的锁把装着相片的箱子锁起来发给Bob,钥匙自己留着;

第二步,Bob把收到带锁的箱子,再加锁一次,再发给Alice

第三步,Alice用自己的钥匙把原来的锁取了,剩下Bob的锁,再发给Bob

第四步,Bob解开带自己锁的箱子,就可以拿到照片。

perfect

But

  黑客发现这个过程中的问题了。于是他在箱子到达Bob之前拦截了,也加了自己的锁给AliceAlice并不知道是黑客干的,还是老老实实的完成上面的过程,导致黑客拿到了隐私照片。这就是著名的“中间人攻击”的原理。

下载 (1).png

  

  这里出现了密码学中一个重大的问题就是身份鉴别,这个可以单独开一篇,留着以后再细说。

接下来就有Dr.M介绍第四种方法吧---回到我们的公钥私钥了。

  通用的做法是,使用对称密钥算法加密数据,速度快,使用非对称算法加密对称算法的密钥。公钥密码算法有著名的就RSA,还有现在我们国家推行的SM2SM9

下载.jpg

  公钥密钥算法同样也涉及到身份鉴别的问题,由于SA/SM2生成的公私钥都无法和用户身份进行捆绑,所以需要有专门的管理机构(CA中心)来干这个事情:颁发和管理用户身份对应的数字证书。


  Ok,说到这里,AliceBob的信息安全传递的事情已经有眉目了。那就是用公开密码技术,Alice生成随机的对称密钥将敏感数据进行加密,再用Bob的公钥加密这个对称算法的密钥,一起打包了发给Bob。那么问题来了,具体应该怎么实现呢?