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