快捷搜索:  汽车  科技

对称密钥密码体制有什么优点(密码体系四-非对称密钥)

对称密钥密码体制有什么优点(密码体系四-非对称密钥)回到今天内容中来,既然对称密钥存在这样那样的问题。那么就引出了非对称密钥。现实世界中,这个问题如何解决呢? 以银行金融业为例,通常需要下发密钥的时候,会同时通过两个渠道发送两个信封。 这两个信封是由两组人走不同的路线到达同一个地点。 只有将两个信封内的数据放到一起才是完整的密钥。否则单纯拿到其中一封并不能解决任何问题。那么是不是 Alice 使用对称密钥将加密数据通过邮件传输给 Bob 就可以高枕无忧了? 必须不是! 加密一时爽,解密火葬场。 Alice 加密的数据,Bob 需要解开才行。也就是说,Alice 需要将加密密钥告诉 Bob。 那问题就来了:如果 Alice 可以通过安全通道将密钥传递给 Bob,那么还有啥必要搞加密呢? 如果没有这样的安全通道,那么 Bob 又如何接受密钥呢?这就是密钥配送问题的由来。 这个问题可以说是对称密钥的死穴。

前两节中,我们介绍了什么是对称密钥以及常用的对称密钥算法。 本节我们来聊一聊非对称密钥。 某位哲学家说:"存在即合理"。非对称密钥存在一定是为了解决某些问题。那么非对称密钥究竟是为了解决什么问题而诞生的呢?

经典的密钥配送问题

这个问题可以说是对称密钥的死穴。 虽然从名字上面来看,这个问题好像并不是什么严重的问题。但这个问题却很难从根本上得到解决。

我们仍然假设 Alice 和 Bob 两个人需要相互发送消息。 这次两个人相隔万里,Alice 想给 Bob 发送邮件(假设跨洋电话费非常贵)。这封邮件里面的信息比较私密,因此不想让第三人知道(即便不私密,我们好像也不愿意让第三人知道邮件内容)。Alice 思来想去,觉得有必要对内容做个加密。

对称密钥密码体制有什么优点(密码体系四-非对称密钥)(1)

这样即便被 Eve 窃取了,他也无法知道内容。

那么是不是 Alice 使用对称密钥将加密数据通过邮件传输给 Bob 就可以高枕无忧了? 必须不是! 加密一时爽,解密火葬场。 Alice 加密的数据,Bob 需要解开才行。也就是说,Alice 需要将加密密钥告诉 Bob。 那问题就来了:

如果 Alice 可以通过安全通道将密钥传递给 Bob,那么还有啥必要搞加密呢? 如果没有这样的安全通道,那么 Bob 又如何接受密钥呢?

对称密钥密码体制有什么优点(密码体系四-非对称密钥)(2)

这就是密钥配送问题的由来。 这个问题可以说是对称密钥的死穴。

现实世界中,这个问题如何解决呢? 以银行金融业为例,通常需要下发密钥的时候,会同时通过两个渠道发送两个信封。 这两个信封是由两组人走不同的路线到达同一个地点。 只有将两个信封内的数据放到一起才是完整的密钥。否则单纯拿到其中一封并不能解决任何问题。

对称密钥密码体制有什么优点(密码体系四-非对称密钥)(3)

回到今天内容中来,既然对称密钥存在这样那样的问题。那么就引出了非对称密钥。

何为非对称密钥

非对称密钥就是为了解决密钥配送问题,通常采用的方案有四个

  • 共享密钥
  • 密钥分配中心
  • Diffie-Hellman 密钥交换
  • 公钥密码
共享密钥

共享密钥是最简单的一种解决方案。 简而言之,就是事先通过安全通道将密钥送达到对方。上面银行的例子就是共享密钥的一种实现。 但这种方案有个天生缺陷,不能有太多的参与者。 仍以银行为例,如果只是银行内部需要下发密钥,那么这个方案是可行的。 但如果要为银行的每个储户通过这种方法下发密钥,啊,我的天,这不就疯了么?

即便不是银行,如果是支付网站,为每个 C 端用户通过共享密钥下发密钥,那这个成本足够拖垮它的现金流。 所以共享密钥只能再小范围内使用。

密钥分配中心

密钥分配中心可以再一定程度内扩大使用范围。这个方案的流程是:

  1. 建立密钥分配中心数据库,并且为每个用户生成一个密钥
  2. 当 Alice 需要和 Bob 通讯时,Alice 向中心申请临时密钥
  3. 密钥中心生成一个临时密钥,并分别使用 Alice 和 Bob 的密钥对临时密钥进行加密
  4. 密钥中心将加密后的密钥分别发给 Alice 和 Bob
  5. Alice 和 Bob 分别使用自己的密钥进行解密,取出临时密钥
  6. Alice 使用临时密钥对内容进行加密并发给 Bob
  7. Bob 使用临时密钥对密文进行解密
  8. 通讯结束后,销毁临时密钥。

密钥分配中心尽管有效,但仍然有局限性。 最大的问题也是用户数量存在天花板。同时密钥分配中心也是一个逻辑大单点,如果分配中心崩溃,那么全部用户将无法进行正常通讯了。

Diffie-Hellman 密钥交换体系

Diffie-Hellman 密钥交换体系是非对称密钥可以广泛推广的重要理论支持。 在这个体系中,Alice 和 Bob 可以相互交换数据,即便这些数据被 Eve 窃听了也没有关系。 Eve 无法通过截取的这些数据反向推到出密钥。 也就是说 Diffie-Hellman 将可以公开的数据进行相互交换,而私有数据只保存在本地。

具体如何实现,我们在后面详述

公钥密钥体系

密钥配送问题痛点在于加解密使用的是相同的密钥,所以才需要交换。 如果 Alice 和 Bob 使用的不同的密钥呢? 那是不是就不需要交换了呢? 这正是公钥体系的核心: 双方使用不同的密钥进行加解密。

再公钥密钥体系中,密钥分为两类:

  • 公钥
  • 私钥

私钥加密,公钥解密。

举例来说,

对称密钥密码体制有什么优点(密码体系四-非对称密钥)(4)

  1. Alice 和 Bob 通过公开途径交换各自的公钥,即便 Eve 截获也无妨。
  2. Alice 使用自己的私钥进行数据加密,然后将密文传递给 Bob
  3. Bob 使用 Alice 公钥进行解密,然后使用自己的私钥对回复数据进行加密,并传递给 Alice
  4. Alice 使用 Bob 的公钥进行解密。

在这个过程中,公钥可以任意传递,而私钥决定不能外泄。

公钥体系可以正常运行的前提是:公钥和私钥必须是一一对应的

这种对应关系准确来说是数学上的不可逆关系,也就是 可以根据 A 推导出 B,而无法根据 B 推导出 A。

举个简单的例子:

13(X) mod 12 = 1 但我们无法根据 1 反推出 X = 13. 因为 25 mod 12 = 1 也同样成立

公钥密钥的代表算法 RSA 公钥和私钥就是典型的一一对应关系。

RSA 加密公式为:

对称密钥密码体制有什么优点(密码体系四-非对称密钥)(5)

x 表示明文,y 表示密文。 e 和 N 组合起来就是公钥。

反过来再看 RSA 的解密公式:

对称密钥密码体制有什么优点(密码体系四-非对称密钥)(6)

d 和 N 组合起来就是私钥。

加解密时 N 都是相同的,所以 RSA 的核心就是找到一组合适的e和d。(求 e 和 d 的过程就是找大质数的过程,这里略过不述)

RSA 是公钥密码体系中一种算法,除此之外还有 EIGamal 、 Rabin 算法和椭圆曲线,但本质都是利用数学上面的大数问题,找到一组不容易反推的数字组合。

对称密钥密码体制有什么优点(密码体系四-非对称密钥)(7)

猜您喜欢: