上回說到,Alic用對稱算法加密郵件內容,再用Bob的公鑰加密這個對稱算法的密鑰。我們先來看看用數字證書來怎么實現的。
第一步,Alic用隨機的對稱密鑰加密了郵件了;
第二步,要用Bob的公鑰來加密這個對稱密鑰,一起傳遞;
第三步,Bob先要用算法或設備來生成一對鑰匙,私鑰自己留著,公鑰再給Alic。
看起來好像挺容易的。But,公鑰怎么給Alic呢?總不能派人專門坐飛機送過去吧?
通過互聯網傳過去吧。于是問題又來了,互聯網那么多環節,怎么知道這個公鑰就是Bob的呢?
這個時候,CA登場。就是第三方的認證中心。
于是第四步,Bob就把自己生成的公鑰送去CA認證,形成數字證書。
接下來的問題又變成了:
CA怎么知道Bob的公鑰就是他本人申請的呢?
這就是為什么我們申請數字證書要填寫很多信息,如果在網銀申請數字證書,還要復印身份證,要去柜臺辦理。
折騰了半天,Bob終于有了自己的數字證書,里面有自己的公鑰、郵件地址、個人信息等等,他終于可以自由的把證書對外發送了,怎么給Alic都行。
第五步,Alic拿到證書了。接下來的問題有變成了:證書是否是真的?是否有效?
于是,Alic又去找CA中心了,CA就開始了查驗工作,然后告訴Alic,OK,我看行!
于是,第六步,Alic開始用Bob的證書加密對稱密鑰,看起來,好像也是So Easy?
But,當Alic要和B1、B2、BN通訊的時候,麻煩就來了。
第一個麻煩就是Alic的,Alic有一百朋友要發郵件,首先要拿到這一百人的數字證書。
要發給B1時候,他還得去找B1對應的證書。同時要問問CA,這個證書是否還有效?每個人都要管理那么多證書是非常麻煩的事情。
第二個麻煩就是CA的了,總是不停的人來問,Alic是誰?
Bob是誰?
可能這個時候你已經被繞糊涂了,那我們用一幅簡單漫畫來看一下。
試想一下,當移動互聯網、物聯網這些海量的個體要相互通信的時候,或者像電子郵件、加密語音電話這些臨時點對點通信的時候,通訊量、管理都是很大的問題。
第三個麻煩就是,不同的CA中心發的證書,要做到互通互認也很麻煩。
所以我國的CA建設已經很多年,有數十個CA中心,但數字證書大多數應用都是用來做身份鑒別。做身份鑒別就是大家都往一個地方去證明自己,所以不需要像上面那樣保存和管理若干證書。
PKI/CA體系的核心算法就是RSA。設計RSA中的一個人就是Adi Shamir。他早在1984年就意識到了這個問題的麻煩性。
1984年,他寫了一篇文章,《Identity-BasedCryptography》講述了一個新的方法----IBC。
---未完待續---