古語(yǔ)有云“君不密則失臣,臣不密則失身,機(jī)事不密則害成.是以君子慎密而不出也”,將信息進(jìn)行加密和解密的必要性是顯而易見(jiàn)的。它貫穿于整個(gè)人類的歷史。
在現(xiàn)代密碼學(xué)誕生以前,就已經(jīng)有很多的加密方法了。例如,最古老的斯巴達(dá)加密棒,廣泛應(yīng)用于公元前7世紀(jì)的古希臘。16世紀(jì)意大利數(shù)學(xué)家卡爾達(dá)諾發(fā)明的柵格密碼,基于單表代換的凱撒密碼、豬圈密碼,基于多表代換的維吉尼亞密碼,二戰(zhàn)中德軍廣泛使用的恩格瑪加密機(jī)….但最終都找到了有效的破解算法。
現(xiàn)代密碼學(xué)的誕生標(biāo)志是1977年1月由美國(guó)國(guó)家標(biāo)準(zhǔn)局公布的數(shù)據(jù)加密標(biāo)準(zhǔn)(Data Encryption Standard,DES)。 在經(jīng)過(guò)20多年之后,為適應(yīng)現(xiàn)代的安全要求,2000年美國(guó)國(guó)家和標(biāo)準(zhǔn)技術(shù)協(xié)會(huì)篩選和評(píng)測(cè)出了被稱為AES(Advanced Encryption Standard)的加密算法作為新的加密標(biāo)準(zhǔn)。目前,AES已被廣泛使用,且未發(fā)現(xiàn)致命缺陷。到目前為止,AES是一個(gè)安全的加密算法。
然而,在加密算法之外,面臨一個(gè)問(wèn)題,那就是:秘鑰的分發(fā)。就是說(shuō),解密方如何獲得加密方的秘鑰呢? 從而出現(xiàn)了:對(duì)稱加密和非對(duì)稱加密。
對(duì)稱加密指的就是加密和解密使用同一個(gè)秘鑰,所以叫做對(duì)稱加密。對(duì)稱加密只有一個(gè)秘鑰,作為私鑰。 常見(jiàn)的對(duì)稱加密算法:DES,AES,3EDS等等。
非對(duì)稱加密指的是:加密和解密使用不同的秘鑰,一把作為公開(kāi)的公鑰,另一把作為私鑰。公鑰加密的信息,只有私鑰才能解密。 常見(jiàn)的非對(duì)稱加密算法:RSA,ECC
對(duì)稱加密算法相比非對(duì)稱加密算法來(lái)說(shuō),加解密的效率要高得多。但是缺陷在于對(duì)于秘鑰的管理上,以及在非安全信道中通訊時(shí),密鑰交換的安全性不能保障。所以在實(shí)際的網(wǎng)絡(luò)環(huán)境中,會(huì)將兩者混合使用
例如針對(duì)C/S模型, 1. 服務(wù)端計(jì)算出一對(duì)秘鑰pub/PRi。將私鑰保密,將公鑰公開(kāi)。 2. 客戶端請(qǐng)求服務(wù)端時(shí),拿到服務(wù)端的公鑰pub。 3. 客戶端通過(guò)AES計(jì)算出一個(gè)對(duì)稱加密的秘鑰X。 然后使用pub將X進(jìn)行加密。 4. 客戶端將加密后的密文發(fā)送給服務(wù)端。服務(wù)端通過(guò)pri解密獲得X。 5. 服務(wù)端告知客戶端已成功獲得X。 6. 然后兩邊的通訊內(nèi)容就使用對(duì)稱加密,使用X作為秘鑰來(lái)解密。
RSA是一種非對(duì)稱加密。它的整個(gè)基礎(chǔ)就建立在一個(gè)世界性的數(shù)學(xué)難題上。兩個(gè)大質(zhì)數(shù)的積的質(zhì)因子分解。具體是為什么呢?
后面再補(bǔ)
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注