一
前言
在《林海雪原》里,楊子榮為了能夠假裝胡彪,打入虎穴,學(xué)習(xí)了些黑話,題記里楊子榮正跟土匪對著暗號,驗(yàn)明自己身份的合法性。這是在提到洋氣的A和B之前,能想到密碼學(xué)里身份校驗(yàn)的故事,當(dāng)然前提是山寨里的人都沒見過胡彪,只是有所耳聞,故事里土匪一直在想法設(shè)法試探楊子榮的身份,感興趣大家可以看看《智取威虎山》中的電影片段。 話說回來,土匪和楊子榮的對話并不涉及加解密的過程,只是憑著行話,核驗(yàn)身份,與我們正常輸入登錄賬號密碼一樣,那最多稱之為口令,那什么是密碼學(xué)呢?我們簡單看下維基百科的定義。 Cryptography is about constructing and analyzing protocols that prevent third parties or the public from reading private messages. (密碼學(xué)是關(guān)于構(gòu)建和分析防止第三方或公眾讀取私人消息的方法體系)。
二
信息安全的屬性
在密碼學(xué)世界里有兩個(gè)虛擬的人物Alice和Bob以擬人化A和B,假如Alice和Bob是同班同學(xué)且互有好感,有一天Alice終于鼓起勇氣要以情書的形式向Bob表白,正常來講他會有些擔(dān)心,最理想的情況下,是情書安全的送到了Bob那里,萬一情書被人發(fā)現(xiàn),也沒有關(guān)系,只有Bob能看懂,同時(shí)要確保Bob收到情書之后,還得確定是Bob發(fā)來的,不然搞錯(cuò)了對象也會很尷尬。 Alice確實(shí)是個(gè)心思縝密的人,他的擔(dān)心涉及到了信息傳遞的幾個(gè)安全屬性。 機(jī)密性:自己的真實(shí)意圖只能讓Bob知道,不能讓公眾曉得,他可以把情書放到密碼箱里,把鑰匙給到Bob,或者也不怕別人看到,對于情書內(nèi)容進(jìn)行加密,也只有Bob知道密鑰。 完整性:情書中途被人掉包,或者內(nèi)容被篡改,明明是表白I love you 結(jié)果換成 I hate you那就壞了好事了。 真實(shí)性:Bob收到情書之后,得知道是Alice寫的,當(dāng)然寫匿名情書搞暗戀又另說了。此時(shí)就需要Alice簽字,或者做個(gè)人的特殊標(biāo)記,比如加上自己的俄語一段話,因?yàn)榘嗌现挥蠥lice會俄語。 Alice的想法也是人之常情,不僅要有勇氣將重要的信息傳遞出去,同時(shí)也要有足夠的智慧保證信息的傳遞準(zhǔn)確到位。其實(shí)在密碼學(xué)在這里就可以派上用場了。
三
加密與解密
Alice可以將情書放到有密碼鎖的筆記本里,然后將本子和鑰匙一起送給Bob,這也是一種方式,鑰匙上鎖和解鎖的過程,暫且換上專業(yè)的說法,加密和解密,同時(shí)發(fā)送者和接受者用的同一把鑰匙,也就是我們說的對稱加密,當(dāng)然密鑰只有Alice和Bob知道,同時(shí)消息和密鑰要同時(shí)發(fā)給對方。其邏輯如下:
在介紹加解密之前,簡單普及下基礎(chǔ)的概念,在現(xiàn)代的計(jì)算機(jī)和依賴計(jì)算機(jī)的設(shè)備里都用到了二進(jìn)制,每個(gè)數(shù)字稱為一個(gè)比特(bit),一個(gè)字節(jié)由8個(gè)比特構(gòu)成,儲存的數(shù)值范圍為0-255。 既然二進(jìn)制是計(jì)算機(jī)的語言,那么消息都必須得轉(zhuǎn)化為二進(jìn)制才能進(jìn)行計(jì)算,很多問題就變成了數(shù)學(xué)問題,此時(shí)密碼學(xué)就成功成了數(shù)學(xué)家的天地,這也是我們普通大眾對密碼學(xué)望而卻步的原因。(順便提一句,目前國內(nèi)在密碼學(xué)造詣最深的是山東大學(xué)數(shù)學(xué)系出身的王小云院士。) 再回到Alice和Bob的小秘密,經(jīng)過仔細(xì)考慮,情書的關(guān)鍵信息如下: I LOVE YOU 現(xiàn)在為了確保消息只有Bob看得懂,而別人看不懂,暫且假設(shè)只有Alice和Bob知道密鑰,此時(shí)正常來說他三種操作方式. 首先是字母替換,每個(gè)字母按照制定規(guī)則逐一替換,此時(shí)Bob收到加密消息的同時(shí),還會收到的字符關(guān)系表,逐個(gè)解密得出明文消息。正經(jīng)的說,也就是利用預(yù)先設(shè)計(jì)的固定代替規(guī)則,對明文逐個(gè)進(jìn)行替換,這個(gè)代替規(guī)則又稱為代替函數(shù),代替表或者代替函數(shù),所以相同的明文字符組一定會產(chǎn)生相同的密文字符,此時(shí)可以采用頻率分析基本可以得到找到對應(yīng)關(guān)系。 然后是行移位,I LOVE YOU 按照26個(gè)字母順序依次向后移一位,那么變化如下: I LOVE YOU-> J MPWF ZPV 如此解密時(shí),J MPWF ZPV 各字母向前移動一位就解決問題,得到答案里。 最后就是加減密碼,將明文逐個(gè)字符或逐字符組與亂數(shù)相加或相減的密碼,在這里就不贅述了。
四
對稱密鑰
Alice和Bob的小秘密大部分情況下要通過密碼技術(shù)來保證,順著Alice面對安全威脅的擔(dān)憂,接下來我們還是有必要整體介紹,密碼學(xué)的常用要點(diǎn)。
在之前,其實(shí)我們簡要介紹過了對稱密鑰,也就是加密和解密用的是同一套密鑰。關(guān)于具體的對稱密鑰算法,還是有必要介紹AES, 一般會將明文分成128bit的明文塊,密鑰長度有128,192,256bit三種選擇,對于128而言,加密輪數(shù)為10輪。分別用到了XOR運(yùn)算,字母替換,行移位,列混淆一套組合拳,然后經(jīng)過10輪加密計(jì)算得到密文。
聽起來挺復(fù)雜的,其實(shí)邏輯很簡單,通過一堆騷操作之后,讓你看不懂密文,除非拿到密鑰解密得到消息。但對于Alice想跟Bob表白這件事情來說,也最好不要這樣,除非你確定Bob對密碼學(xué)很感興趣。即使Bob拿到了密鑰,你手把手教他解密,把最后的I LOVE YOU的信息給解出來也不是件容易的事。
五
非對稱密鑰
對稱密鑰有個(gè)問題,情書發(fā)送的時(shí)候,要順帶把鑰匙也給對方,不然對方是解不開的,此時(shí)不僅要保護(hù)情書不落入情敵手中,同時(shí)也要確保密鑰的安全。也就是說對稱密鑰存在密鑰配送的問題。 1976年,美國學(xué)者Dime和Henman為解決信息公開傳送和密鑰管理問題,提出一種新的密鑰交換協(xié)議,允許在不安全的媒體上的通訊雙方交換信息,安全地達(dá)成一致的密鑰,這就是“公開密鑰系統(tǒng)”。 也就是我們經(jīng)常提到的非對稱加密,咋個(gè)理解法?在《圖解密碼技術(shù)》里面提了個(gè)非常有意思的說法解釋公鑰和私鑰的關(guān)系。 假如Alice到超市購物要存包,先投一枚硬幣,此后空箱子彈開,你放上你的私人物品后,合上寄存柜的門,然后自動彈出一個(gè)小紙條,那個(gè)小紙條你得拿好,上面的條形碼是唯一的,到時(shí)拿著紙條對著掃碼機(jī)掃一下,解鎖后寄存柜打開,然后完成這個(gè)過程。
這樣一套自動化系統(tǒng)成功的解決存包管理的問題,同時(shí)將寄存柜變成了公共設(shè)施,同時(shí)還能收一筆使用費(fèi)用。其中硬幣相當(dāng)于公鑰,誰都可以有,你有了一塊錢就可以鎖上柜子,然后你的柜子只有你自己的紙條能打開,相當(dāng)于私鑰。 也就是說公鑰加密,私鑰解密。非對稱加密盡管增加了一套密鑰分發(fā)系統(tǒng),但是相對于對稱加密每次都要隨帶密鑰,不僅提高了安全性,還省了內(nèi)存。 關(guān)于非對稱密碼的算法實(shí)現(xiàn),不得不提到RSA,其邏輯如下:
密文=明文^E mod N, 密文等于明文的E次方,然后除以N的余數(shù)。 E和N構(gòu)成公鑰,D和N構(gòu)成私鑰,中間的數(shù)學(xué)算法在此就不細(xì)展開了,如果大家感興趣查閱相關(guān)的資料。 不管是對稱加密,還是非對稱加密,解決的核心問題還是機(jī)密性,不希望別人看到個(gè)人的隱私信息,密鑰本身也同等重要,比如利用隨機(jī)數(shù)加密數(shù)據(jù),也就是一次性密碼,只是長度與明文一樣長,保護(hù)明文與密鑰成本相同,那就脫離加密本身的初衷,但那也是唯一無法破解的密碼,不過沒有實(shí)用的價(jià)值,此時(shí)說世界上沒有絕對的安全,一點(diǎn)也不為過。
六
單向散列函數(shù)
如果加密和解密的渠道都是正常進(jìn)行的,萬一有人篡改了消息的內(nèi)容,又該如何保證呢? 每次發(fā)來的文件消息數(shù)據(jù)量巨大,不可能挨個(gè)原文比對驗(yàn)證完整性,那工作量太大了。此時(shí)單向散列函數(shù)就出現(xiàn)了。 單向散列函數(shù),首先是單向不可逆的,你無法通過散列值計(jì)算出明文,另外是壓縮數(shù)據(jù),不管多大的數(shù)據(jù),都可以計(jì)算出固定長度的散列值。最后就是消息不同,散列值也不同,消息稍微有點(diǎn)變化,散列值本身就會有很大的變化。 如果說消息傳遞時(shí)空間的有效性,你可以通過安全傳輸協(xié)議來保證其安全,如果消息時(shí)間的有效性,你可以通過前后對比計(jì)算散列值得到結(jié)果,針對昨天和今天的校驗(yàn)值,你如何校驗(yàn)?zāi)兀看藭r(shí)計(jì)算消息的散列值,然后對比,這問題就可以解決了,其邏輯步驟如下:
七
消息認(rèn)證碼
Bob怎么確定發(fā)送者是Alice呢?這就要驗(yàn)證消息的合法性,剛才只是按照消息原文計(jì)算了散列值,比對內(nèi)容是否有篡改,主要應(yīng)用的是昨天跟今天消息的對比,不涉及到消息傳輸。今天Bob收到情書了,想確定是Alice發(fā)來的,此時(shí)就要考慮密鑰問題了。 其實(shí)消息認(rèn)證碼就是一種與密鑰相關(guān)聯(lián)的單向散列函數(shù),有了共享密鑰的參與就可以驗(yàn)證消息來源的合法性了,共享密鑰只有發(fā)送者和接收者知道,Alice和Bob的小秘密才足以捍衛(wèi)。其工作流程如下:
八
數(shù)字簽名
通過消息認(rèn)證碼可以識別消息是否被篡改或者發(fā)送者身份是否被偽裝,也就可以校驗(yàn)消息的完整性,還可以對消息進(jìn)行認(rèn)證。如果Alice向Bob借了1000塊錢,借錢過程都是合理合法,萬一有天Alice否認(rèn)沒有找Bob借過錢呢? 對稱加密里面,密鑰是雙方都知曉,非對稱里面公鑰是公開大家都知道的,私鑰只有Bob知道,真正屬于Alice的個(gè)人信息并沒有,也就是內(nèi)容沒毛病,就是沒有簽字畫押,對了抗抵賴性,此時(shí)數(shù)字簽名就派上了用場。 在非對稱密鑰里面,公鑰加密,私鑰解密。 在數(shù)字簽名里面,私鑰簽名,公鑰驗(yàn)簽,對于初學(xué)者來說容易弄混,但是從邏輯上可以這么理解,簽名是具有個(gè)人屬性獨(dú)一無二的,當(dāng)然得用Alice得私鑰簽名,而驗(yàn)簽則是任何需要驗(yàn)簽得人都可以持有。 驗(yàn)證簽名就是檢查該消息的簽名是否真的屬于Alice,驗(yàn)證的結(jié)果可以是成功或者失敗,成功則以為著這個(gè)簽名是屬于Alice的,失敗則意味著這個(gè)簽名不是屬于Alice的。
九
總結(jié)
密碼學(xué)真是為了保護(hù)Alice 和Bob的小秘密操碎心,對稱密鑰只有一個(gè)密鑰,加解密便捷快速,但密鑰同消息一起傳輸又不太安全,非對稱密鑰解決了密鑰管理的問題,可又擔(dān)心別人篡改了Alice情書的內(nèi)容,費(fèi)盡心思設(shè)計(jì)單向散列函數(shù)實(shí)現(xiàn)了數(shù)據(jù)比對的輕量化,Bob擔(dān)心Alice借錢不承認(rèn),特意設(shè)置了數(shù)字簽名,真的是太難了。 安全的本質(zhì)就是信任,當(dāng)你不信任對方時(shí),會千方百計(jì)的校驗(yàn)對方的身份,設(shè)置各種密碼措施,如果不表白似乎就沒這么多事了,但為了人類的繁衍的,科技的進(jìn)步,你總歸是要走下去的。
責(zé)任編輯:lq
-
二進(jìn)制
+關(guān)注
關(guān)注
2文章
805瀏覽量
42205 -
信息安全
+關(guān)注
關(guān)注
5文章
677瀏覽量
39641 -
加密
+關(guān)注
關(guān)注
0文章
317瀏覽量
24329
原文標(biāo)題:談?wù)凙lice和Bob之間的小秘密
文章出處:【微信號:QCDZYJ,微信公眾號:汽車電子工程知識體系】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
聯(lián)合電子開發(fā)模塊化信息安全平臺方案

筑牢人臉信息安全防線|安全芯片如何賦能《人臉識別技術(shù)應(yīng)用安全管理辦法》落地

電磁兼容與信息安全測試平臺
深入探索GCC的attribute屬性
Chart FX-使用API傳輸數(shù)據(jù) 使用Value屬性傳輸數(shù)據(jù)

龍芯3A5000網(wǎng)絡(luò)安全整機(jī),助力保護(hù)網(wǎng)絡(luò)信息安全
思看科技獲ISO/IEC 27001信息安全和ISO/IEC 27701隱私信息管理體系標(biāo)準(zhǔn)認(rèn)證

OpenHarmony屬性信息怎么修改?觸覺智能RK3566鴻蒙開發(fā)板來演示

digiPCBA元件庫下載(轉(zhuǎn)化)本地,下載后的集成庫信息無法批量隱藏屬性信息
藍(lán)牙AES+RNG如何保障物聯(lián)網(wǎng)信息安全
網(wǎng)御星云榮獲信息安全服務(wù)數(shù)據(jù)安全類一級資質(zhì)!

評論