最近程序員二狗子臉上總是洋溢著幸福的笑容。
嘿嘿僻他,沒錯宵距,因為二狗子戀愛了。
戀愛對象是二狗子的好朋友雷霆給介紹的中姜,也是一名程序員消玄。要說程序員與程序員的戀愛,那可不得了丢胚,簡直是情投意合翩瓜、心心相印。最近又恰巧碰上二狗子新開發(fā)了個聊天軟件携龟,本來兩人共同話題就多兔跌,這下可好了,現(xiàn)在用聊天軟件白天夜里聊個不停的峡蟋,一點點小事都要告訴對方坟桅。
對稱加密
有一天,二狗子和女朋友正用著聊天軟件議論下周去哪旅游蕊蝗,在哪個網(wǎng)站買機票便宜仅乓。
二狗子陷入了沉思。女朋友說得沒錯蓬戚,聊天軟件的用戶對于加密通信安全的需求十分強烈夸楣。想實現(xiàn)消息加密傳輸則需要雙方知曉密鑰,但是密鑰又無法安全通過網(wǎng)絡發(fā)送子漩。唉豫喧,這可真頭疼。
RSA:非對稱加密
自從二狗子和女朋友知道對話消息無法加密后幢泼,雙方在聊天時謹慎了不少紧显。直到有天,他們聽說了一種新的加密算法缕棵,叫做 RSA 加密孵班。
RSA 加密是一種非對稱加密涉兽,可以在不直接傳遞密鑰的情況下完成解密。它不像對稱加密使用的是同一個秘鑰重父,而是由一對密鑰來進行加解密的過程花椭,分別稱為公鑰和私鑰忽匈。其中最有趣的是房午,用私鑰加密的明文,只能用公鑰解密丹允。反之用公鑰加密的明文郭厌,則只有對應的私鑰才能解密。
二狗子和女朋友在了解 RSA 加密后雕蔽,都認為這個算法很強折柠,因為它能夠完美解決對稱加密傳輸信息時的缺陷。我們可以通過以下這張圖批狐,來具體了解該算法的加密過程扇售。
從圖中可以看出,當二狗子想給女朋友發(fā)消息時嚣艇,首先需要女朋友生成一對密鑰承冰,并將其中的公鑰傳輸給二狗子(女朋友的公鑰是公開的,任何人都知道)食零。得到公鑰的二狗子再使用該密鑰給女朋友發(fā)送加密信息困乒,女朋友用自己的私鑰對加密信息進行解密(私鑰是保密的,只有女朋友才能解開)贰谣。反之女朋友給二狗子發(fā)加密消息也同理娜搂。如此一來,雙方只需交換彼此的公鑰就能夠?qū)崿F(xiàn)消息加密吱抚。
非對稱加密+對稱加密
非對稱加密+對稱加密
這天百宇,二狗子和久違不見的雷霆約了吃火鍋,飯桌上兩人相談甚歡秘豹。雷霆問起二狗子的戀愛狀況携御,二狗子就一五一十把和女友聊天加密的事情告訴了雷霆。
如何安全保護密鑰
趁著二狗子思考的間隙憋肖,雷庭狂涮毛肚瘋狂吃因痛。而二狗子還在思考:這又回到了最初的問題,到底該如何安全地分發(fā)密鑰呢岸更?不過現(xiàn)在問題的重點在于身份驗證上鸵膏,得有個辦法證明這個公鑰是女朋友的。那要怎么去證明呢…
討論完此事怎炊,二狗子驚訝地發(fā)現(xiàn)桌上的一整盤毛肚已經(jīng)消失了谭企,也就草草吃了幾筷就回家了廓译。
回家的二狗子一進門,就迫不及待的跟女朋友打電話分享起與雷霆討論的事情债查,女朋友聽完很是開心非区,立馬讓二狗子去給他的聊天軟件安裝證書,二狗子打開官網(wǎng)挑選起了 SSL 證書來盹廷。聊天軟件的問題終于可以解決了征绸,二狗子也不用再擔心戀愛中出現(xiàn)中間人了。