互聯(lián)網(wǎng)就是個(gè)公開演講的廣場(chǎng)尤蒿。意思是任何人說任何話必逆,其實(shí)別人都是能聽見的吗氏。這個(gè)認(rèn)為是互聯(lián)網(wǎng)的天性了芽偏,那么在這個(gè)前提下如果我和我一個(gè)朋友說點(diǎn)機(jī)密的事情,同時(shí)不想讓別人偷聽到弦讽,這個(gè)就成了一個(gè)有點(diǎn)挑戰(zhàn)性的技術(shù)問題污尉,也就是今天我們要討論的加密通信。
對(duì)稱加密
幾千年來坦袍,我們?nèi)祟惗荚谟靡环N“對(duì)稱性加密“的形式來進(jìn)行秘密信息的傳遞十厢,”對(duì)稱“指的是加密用一個(gè)密碼,那解密是用的還是這個(gè)密碼捂齐。但是“對(duì)稱性加密”為啥不能用在互聯(lián)網(wǎng)上的加密通信中呢蛮放?說說這個(gè)過程,我有一個(gè)文件奠宜,用一定的加密方式來進(jìn)行加密(比如用一些文件壓縮程序)包颁,然后可以把加密后的這個(gè)包,傳遞給我的朋友压真,到目前為止一切都好娩嚼。但是接下來的問題是,我朋友如何才能解密我給他的文件呢滴肿,顯然我必須安全的把我加密時(shí)輸入的密碼安全的傳遞給他岳悟,這樣才能完成這個(gè)加密通信過程。所以這就有了一個(gè)雞和蛋的問題泼差。最終我可能就不得不借助互聯(lián)網(wǎng)以外的工具贵少,例如打電話,來把密碼給我朋友了堆缘。所以滔灶,對(duì)稱性加密是不適合用于互聯(lián)網(wǎng)上的加密通信的。
非對(duì)稱加密的原理
那我們就可以想一下吼肥,是不是有一種“非對(duì)稱加密”的方法能解決雞和蛋的問題呢录平?恭喜你,答對(duì)了缀皱!非對(duì)稱加密用一句話來描述就是斗这,加密是用一個(gè)密碼 key,而解密則會(huì)用另外一個(gè)密碼 key啤斗。安裝好相應(yīng)地程序之后表箭,任何人都可以在自己的計(jì)算機(jī)上來生產(chǎn)這一對(duì)密碼。其中用于加密的這個(gè)叫公鑰争占,是可以公開給別人的燃逻,所以叫”密碼“這個(gè)不嚴(yán)密,還是英文好臂痕,就叫 key伯襟。另外一個(gè)是絕對(duì)自己要保密好的,叫”私鑰“握童,這個(gè)是用來解密的姆怪,真的是”密碼“。
這兩個(gè) key 是一對(duì)澡绩,意思是他們?cè)跀?shù)學(xué)角度是有著聯(lián)系的稽揭,但是如果想要從公鑰計(jì)算出私鑰也是不可能的。加密通信的過程是這樣的肥卡,收信人溪掀,比如說我,先生成這一對(duì) key步鉴,然后我想跟我的朋友秘密通話揪胃,那我就把我的公鑰傳給他,這個(gè)反正有人得到也沒關(guān)系氛琢。我朋友拿到公鑰之后喊递,就把他想要跟我說的話進(jìn)行加密,然后把加密后的信息通過互聯(lián)網(wǎng)傳給我阳似,整個(gè)互聯(lián)網(wǎng)上骚勘,即使有其他人得到了這些加密數(shù)據(jù)也沒用,因?yàn)橹挥形覔碛懈莻€(gè)公鑰配對(duì)的這個(gè)私鑰撮奏,所以也就只有我俏讹,才可以解密這個(gè)信息。
非對(duì)稱加密的類比和應(yīng)用
我們?cè)賮泶騻€(gè)比方挽荡。我家門口有個(gè)信箱藐石,那么凡是知道我家地址的人就可以給我發(fā)信了,所以我家的地址就相當(dāng)于公鑰定拟,但是由于只有我自己有信箱的鑰匙于微,所以也只有我能看到信。那這個(gè)信箱的鑰匙當(dāng)然就相當(dāng)于私鑰了青自。
打另一個(gè)比方株依。我和朋友要秘密的通信。首先朋友寄給我一把她的打開的鎖延窜,這樣我把信放到一個(gè)盒子里恋腕,鎖上,給她寄過去逆瑞。拿到盒子之后荠藤,朋友拿出自己的鑰匙就可以打開箱子了伙单。反過來,如果我想從她那里得到回信哈肖,那我就給她寄我的鎖就行了吻育。這種通信方式的好處是,任何一把鎖的鑰匙都沒有郵寄過淤井。
最后說實(shí)際的一個(gè)應(yīng)用布疼。我在北京,如果我有一臺(tái)服務(wù)器在美國(guó)币狠,那么我如何讓信息從我的服務(wù)器上安全的傳遞到我這里呢游两?首先,我先生成一對(duì) key漩绵,然后我就把公鑰傳到我的服務(wù)器上贱案。這樣,我的服務(wù)器就可以把信息加密渐行,然后傳遞給我了轰坊,聽起來可能比較麻煩,但是實(shí)際中有 ssh 這樣的程序幫忙祟印,其實(shí)加密和解密過程都是自動(dòng)完成的肴沫。 下面是生產(chǎn)秘鑰的具體操作過程:
$> ssh-keygen
Generating public/private rsa key pair.
$> ls .ssh/
id_rsa id_rsa.pub
好,加密通信就說這么多蕴忆,以后有機(jī)會(huì)我們會(huì)談一個(gè)相關(guān)的話題:數(shù)字簽名颤芬。