数博会期间Dr. M忙于走秀,都没续写密码学故事,开篇之前,先来一下前集概要:
上回说到,奥奥用对称算法加密邮件内容,再用宝宝的公钥加密这个对称算法的密钥。我们先来看看用数字证书来怎么实现的。
第一步,奥奥用随机的对称密钥加密了邮件了,OK,So easy。自己就可以搞定了。
第二步,要用宝宝的公钥来加密这个对称密钥,一起传递,咦!宝宝的公钥呢?于是奥奥就问宝宝,把你的公钥给我呗!

第三步,宝宝的公钥从哪儿来呢?宝宝先要用算法或设备来生成一对钥匙,私钥自己留着,公钥再给宝宝。
看起来好像挺容易的。But,公钥怎么给宝宝呢?总不能派人专门坐飞机送过去吧?

通过互联网传过去吧。于是问题又来了,互联网那么多环节,怎么知道这个公钥就是宝宝的呢?

这个时候,CA登场。就是第三方的认证中心。
于是第四步,宝宝就把自己生成的公钥送去CA认证,形成数字证书。
接下来的问题又变成了:
CA怎么知道宝宝的公钥就是他本人申请的呢?
这就是为什么我们申请数字证书要填写很多信息,如果在网银申请数字证书,还要复印身份证,要去柜台办理。

OK,折腾了半天,宝宝终于有了自己的数字证书,里面有自己的公钥、邮件地址、个人信息等等,他终于可以自由的把证书对外发送了,怎么给奥奥都行。
第五步,奥奥拿到证书了。接下来的问题有变成了:
证书是否是真的?是否有效?

于是,奥奥又去找CA中心了,这个证书有效吗?CA就说,让我看看…
CA就开始了查询和验证的工作,然后告诉奥奥,OK,我看行!
于是,第六步,奥奥开始用宝宝的证书加密对称密钥,愉快的开始了加密之旅….
看起来,好像也是So Easy?But,当奥奥要和宝1、宝2、宝N通讯的时候,麻烦就来了。
第一个麻烦就是奥奥的,奥奥有一百朋友要发邮件,首先要拿到这一百人的数字证书。

OK,要发给宝1时候,他还得去找宝1对应的证书。同时要问问CA,这个证书是否还有效?每个人都要管理那么多证书是非常麻烦的事情。
第二个麻烦就是CA的了,总是不停的人来问,奥奥是谁?宝宝是谁?
可能这个时候你已经被绕糊涂了,那我们用一幅简单漫画来看一下

试想一下,当移动互联网、物联网这些海量的个体要相互通信的时候,或者像电子邮件、加密语音电话这些临时点对点通信的时候,通讯量、管理都是很大的问题。
第三个麻烦就是,不同的CA中心发的证书,要做到互通互认也很麻烦。
所以我国的CA建设已经很多年,有数十个CA中心,但数字证书大多数应用都是用来做身份鉴别。
做身份鉴别就是大家都往一个地方去证明自己,所以不需要像上面那样保存和管理若干证书。
PKI/CA体系的核心算法就是RSA。设计RSA中的一个人就是Adi Shamir。他早在1984年就意识到了这个问题的麻烦性。
Adi Shamir

1984年,他写了一篇文章,《Identity-Based Cryptography》讲述了一个新的方法----IBC。
Dr.M要偷懒一下,未完待续~~



