張三有一對(duì)RSA秘鑰(公鑰和私鑰)廊驼,他也有兄弟李四和王五灯蝴,他們都在銅鑼灣討生活。
因?yàn)槁殬I(yè)關(guān)系唧喉,不能讓外人知道他們?nèi)齻€(gè)的關(guān)系,所以張三要求李四和王五給他寫(xiě)信的時(shí)候必須要用他的公鑰給信加密,再將加密后的信發(fā)給他欣喧,原文要立即銷(xiāo)毀腌零。
為了做到這點(diǎn)梯找,張三把他的公鑰給了李四和王五唆阿。
從那以后李四和王五都用張三給的公鑰加密發(fā)給張三的信,因?yàn)橹挥袕埲稚系乃借€才能解密加密后的信锈锤,所以只要張三手上的私鑰不泄露驯鳖,那么李四和王五發(fā)給張三的信就是完全的,保密的久免,即是信落入其他人的手里也無(wú)法解密信的內(nèi)容浅辙。
過(guò)了幾年,張三他們的事業(yè)節(jié)節(jié)高升阎姥,但和銅鑼灣的同行趙六一伙的矛盾也日益加深记舆,張三為了解決趙六一伙決定分別派李四王五到趙六處臥底,但是臥底之后張三他們就能再見(jiàn)面了呼巴,見(jiàn)面會(huì)大大增加暴露的風(fēng)險(xiǎn)泽腮,最后張三他們想出了一個(gè)方法:
- 準(zhǔn)備一些只有他們?nèi)齻€(gè)人知道的暗語(yǔ),張三利用這些暗語(yǔ)給李四王五下達(dá)指令
- 利用太陽(yáng)報(bào)的三版廣告來(lái)傳遞信息
- 李四王五利用公鑰將收集到的情報(bào)加密并且將加密后的數(shù)據(jù)在編成二維碼刊登在廣告上
- 張三收集每期的太陽(yáng)報(bào)并掃描三版上的二維碼衣赶,用私鑰對(duì)掃描到的二維碼數(shù)據(jù)進(jìn)行解密诊赊,解密之后成文的即使情報(bào)
- 暗語(yǔ)存在被人誤用的風(fēng)險(xiǎn),所以為了確認(rèn)收到的暗語(yǔ)確實(shí)是張三刊登的府瞄,必須為暗語(yǔ)簽上只有張三才能簽署的簽名
- 將暗語(yǔ)和簽名編程二維碼刊登
張三如何對(duì)暗語(yǔ)進(jìn)行簽名呢碧磅?
其實(shí)簽名也是一種加密,只是它是用私鑰加密遵馆,用公鑰解密鲸郊。
這也符合簽名的目的,難以偽造货邓,便于驗(yàn)證秆撮。簽名的私鑰很難偽造,所以簽名也就難以偽造逻恐,公鑰能夠隨意散播像吻,所以只要有公鑰的人就能對(duì)簽名解密,驗(yàn)證簽名內(nèi)容复隆。
簽名過(guò)程如下:
- 先用Hash算法生成暗語(yǔ)的摘要(Digest)(此步非必須拨匆,但是當(dāng)暗語(yǔ)過(guò)大的時(shí)候可以用摘要減小簽名大小)
- 用私鑰對(duì)摘要進(jìn)行加密挽拂,加密之后的數(shù)據(jù)即是“數(shù)字簽名”
- 將數(shù)據(jù)簽名附加在暗語(yǔ)的最后就是對(duì)暗語(yǔ)進(jìn)行了簽名
最后張三將簽名后的暗語(yǔ)編成二維碼刊登在太陽(yáng)報(bào)上
李四王五掃描二維碼獲取暗語(yǔ)之后惭每,用公鑰解密簽名之后,獲取張三發(fā)送的暗語(yǔ)摘要,然后用Hash算法獲取掃描到的暗語(yǔ)摘要台腥,然后對(duì)比解密簽名獲取的摘要和計(jì)算暗語(yǔ)獲取的摘要進(jìn)行對(duì)比宏赘,如果相同那么這份暗語(yǔ)就是張三發(fā)送的。
又過(guò)了若干年黎侈,因?yàn)槔钏耐跷宓呐P底察署,張三扭轉(zhuǎn)了對(duì)趙六的頹勢(shì),逐漸對(duì)趙六形成壓制峻汉。
但趙六也意識(shí)到他們之中出了內(nèi)鬼贴汪,其中王五的嫌疑最大。
但這些破綻都是王五故意露出來(lái)的休吠,原來(lái)張三李四王五雖然都是兄弟扳埂,但是張三和李四的關(guān)系更加親密,而他王五更像是個(gè)多余的瘤礁。眼看著張三李四兄(基)弟(情)情(滿(mǎn))深(滿(mǎn))阳懂,王五心生怨恨,轉(zhuǎn)而投靠趙六柜思。
王五投靠趙六之后岩调,為他獻(xiàn)上一策——斬?cái)鄰埲钏牡穆?lián)系,然后偽造信息酝蜒,欺騙張三李四誊辉,在關(guān)鍵時(shí)刻坑死張三李四。
王五也做了一對(duì)RSA密鑰亡脑,并且偷偷用自己的公鑰替換掉了李四手中張三的公鑰堕澄。
然后王五用一根棒棒糖??和青梅竹馬的戀人如花的人生安全成功將太陽(yáng)報(bào)三版的小編拉入到他們的陣營(yíng)里,并且要求小編當(dāng)張三和李四來(lái)投稿的時(shí)候截下他們的稿件霉咨,然后通知王五蛙紫。
就這樣,當(dāng)李四要把情報(bào)傳遞給張三的時(shí)候途戒,王五就用假情報(bào)替換掉(也用張三的公鑰加密坑傅,因?yàn)槭前l(fā)給張三的)。當(dāng)張三要下達(dá)指令給李四和王五的時(shí)候喷斋,王五也同樣攔截下指令唁毒,并偽造指令,用自己的私鑰簽名(李四手中公鑰已經(jīng)是王五的了)星爪。
又過(guò)了一段時(shí)間浆西,被坑了幾次之后張三李四也漸漸發(fā)現(xiàn)不對(duì),懷疑他們的情報(bào)傳遞系統(tǒng)出了問(wèn)題顽腾。
冒險(xiǎn)碰頭分析之后近零,認(rèn)為應(yīng)該是李四手上的公鑰被人掉包了,同時(shí)張三也用公鑰驗(yàn)證了“他”刊登在太陽(yáng)報(bào)上的信息,果然是對(duì)不上的久信,而知道這個(gè)情報(bào)傳遞系統(tǒng)的只有他們?nèi)齻€(gè)窖杀,肯定是王五出賣(mài)了他們。
最后張三和李四決定不動(dòng)聲色裙士,繼續(xù)用太陽(yáng)報(bào)傳遞信息以迷惑王五趙六入客,私下里改用另一種傳遞情報(bào)的方式。但是這次為了讓李四能確認(rèn)手上的公鑰究竟是不是張三的潮售,張三決定找道上最中立公正的大佬“證書(shū)中心”(certificate authority痊项,簡(jiǎn)稱(chēng)CA)為自己的公鑰做公正锅风。
證書(shū)中心用自己的私鑰對(duì)張三的公鑰和一些相關(guān)信息一起進(jìn)行加密酥诽,生成“數(shù)字證書(shū)”(Digital Certificate)。
張三 拿到數(shù)字證書(shū)之后皱埠,以后再給李四下達(dá)指令就在指令暗語(yǔ)的后面同時(shí)加上數(shù)字簽名和數(shù)字證書(shū)肮帐。
李四收到張三的信息之后,使用證書(shū)中心的公鑰解密數(shù)字證書(shū)就能拿到真正的張三的公鑰边器,然后就能證明數(shù)字簽名是不是張三簽的训枢,指令是不是張三下達(dá)的。
當(dāng)然這里存在一個(gè)問(wèn)題忘巧,如果李四手上證書(shū)中心大佬的公鑰也是假的呢恒界?這個(gè)問(wèn)題暫時(shí)沒(méi)有好的解決方法,我們這邊就假定大佬很牛B砚嘴,以前凡是假冒過(guò)大佬公鑰的人都已經(jīng)做了潛水艇十酣,現(xiàn)在道上已經(jīng)沒(méi)人敢假冒大佬的公鑰了。
最后的最后际长,張三李四利用假情報(bào)反坑了王五和趙六耸采,把他們送去見(jiàn)關(guān)公了。從此以后公主工育。虾宇。∪绯瘢咳咳嘱朽。。怔接。張三和李四就過(guò)上了幸福的生活搪泳!
(完)