淺析加密技術(shù)在現(xiàn)代互聯(lián)網(wǎng)上的應(yīng)用

現(xiàn)代的加密技術(shù)主要有三種:對(duì)稱加密,非對(duì)稱加密,單項(xiàng)加密。

這三種加密解密技術(shù)的組合就是現(xiàn)在電子商務(wù)的基礎(chǔ),它們?nèi)齻€(gè)有各自最適應(yīng)的領(lǐng)域,而且所要完成的功能也是不同的,大家都知道,只要我們連上互聯(lián)網(wǎng),那么我們就相當(dāng)于是大門洞開,我們的一些隱私,跟其他人對(duì)話內(nèi)容等都可能會(huì)被人竊取到,最常見的比如man in the middle(中間人),它主要是因?yàn)殡p方身份無法驗(yàn)證的時(shí)候會(huì)話被劫持造成的,就是說通信雙方都以為是在跟對(duì)方交流,其實(shí)內(nèi)容都可能已經(jīng)被這個(gè)“中間人”修改過了,一些重要的信息也被這個(gè)“中間人”所獲得,這對(duì)于現(xiàn)在的電子商務(wù)來說是致命的,所以我們必須找到一種解決方案來解決這個(gè)問題。

淺析加密技術(shù)在現(xiàn)代互聯(lián)網(wǎng)上的應(yīng)用

對(duì)稱加密:指的是加密方和解密方使用的是同一個(gè)密鑰,其優(yōu)點(diǎn)是加密和解密的速度很快;但是如果兩個(gè)從未通信過的用戶要進(jìn)行通信的時(shí)候,該如何把解密的密鑰傳輸給對(duì)方呢(密鑰仍然要在網(wǎng)絡(luò)上傳輸,所以密鑰還是可能會(huì)被“中間人”截獲),這是對(duì)稱加密最大的缺點(diǎn);常見的對(duì)稱加密算法有:

DES:使用56位的密鑰,2000年的時(shí)候被人破解了,所以現(xiàn)在基本不再使用。

AES:高級(jí)加密標(biāo)準(zhǔn),可以使用128,192,256三種不同長度密鑰。

其他的還有blowfish,Twofish和RC6,IDEA(商業(yè)算法),CAST5等。

非對(duì)稱加密:非對(duì)稱加密方式解決了對(duì)稱加密的“軟肋”,它的加密和解密密鑰是不同的,比如對(duì)一組數(shù)字加密,我們可以用公鑰對(duì)其加密,然后我們想將其還原,就必須用私鑰解密,并且公鑰和私鑰是配對(duì)使用的(讀者可以把其想像成一把鑰匙一把鎖的關(guān)系),常見的非對(duì)稱加密算法有:

RSA:既可以用來加密解密,又可以用來實(shí)現(xiàn)用戶認(rèn)證。

DSA:只能用來加密解密,所以使用范圍沒有RSA廣。

非對(duì)稱加密的長度通常有512,1024,2048,4096位,最常用的就是2048bit,長度固然可以增加安全性但是需要花費(fèi)很長時(shí)間來進(jìn)行加密/解密,和對(duì)稱加密相比來說,加密/解密的時(shí)間差不多是對(duì)稱加密的1000倍,所以我們通常用其作為用戶認(rèn)證,用對(duì)稱加密來實(shí)現(xiàn)數(shù)據(jù)加密/解密。

單項(xiàng)加密:單項(xiàng)加密就是用來計(jì)算一端數(shù)據(jù)的特征碼的(讀者可以把這段特征碼想象成一個(gè)人的身份證),為了防止用戶通過“暴力破解”的方式來解密,所以單項(xiàng)加密一般具有“雪崩效應(yīng)”,就是說:只要被加密內(nèi)容有一點(diǎn)點(diǎn)的不同,加密所得結(jié)果就會(huì)有很大的變化。單項(xiàng)加密還有一個(gè)特點(diǎn)就是無論被加密內(nèi)容多長/短,加密的結(jié)果(就是提取的特征碼)是定長的。用途:用于驗(yàn)證數(shù)據(jù)完整性。常用的單項(xiàng)加密算法:

MD5:message digest 這種加密算法的固定長度為128bit。

SHA1:secure hash algorithm這種解密算法的固定長度是160bit。

下圖是作者為了解釋三種加密算法在我們internet上的使用所作的一個(gè)說明:

解釋如下,先說BOB和ALICE通信階段。

黑框A:表示要傳輸?shù)臄?shù)據(jù)。

黑框B:就是單項(xiàng)加密對(duì)這段數(shù)據(jù)提取的特征碼,這段特征碼同時(shí)運(yùn)用了非對(duì)稱加密,具體過程是用BOB的私鑰加密,傳輸給ALICE,只要到達(dá)后ALICE能解密,表明對(duì)方確實(shí)是BOB。這一過程同時(shí)起到了用戶認(rèn)證和數(shù)據(jù)完整性的校驗(yàn)。黑框B又稱為數(shù)字簽名。

紅框A:這一階段會(huì)生成一段很長的隨機(jī)數(shù)(密鑰)然后配合對(duì)稱加密算法對(duì)黑框A和黑框B加密,但是我們?nèi)绾伟鸭用艿拿荑€傳輸給ALICE呢?這就要用到紅框B了。

紅框B:這一階段是用ALICE的公鑰加密這串隨機(jī)數(shù)(對(duì)稱加密階段的密鑰),ALICE接受到數(shù)據(jù)后如果能用自己私鑰解密,那就證明接受者確實(shí)ALICE。

加密過程:

第一步:用單向加密算法提取數(shù)據(jù)(黑框A)的特征值。

第二步:用自己的私鑰加密這段特征值形成黑框B。

第三步:用對(duì)稱加密算法,對(duì)黑框A和黑框B來加密,得到紅框A。

第四步:用ALICE的公鑰來加密第三步所用的密鑰,得到紅框B。

進(jìn)行完上述內(nèi)容厲害的讀者會(huì)發(fā)現(xiàn)一個(gè)問題就是BOB和ALICE如何獲得對(duì)方的公鑰,或者說如何證明獲得的公鑰就是對(duì)方,這就需要引入另一方證書頒發(fā)機(jī)構(gòu)CA,下面是對(duì)證書頒發(fā)機(jī)構(gòu)跟BOB/ALICE之間的解釋。

黑框C:代表要頒發(fā)給BOB/ALICE的公鑰,組織,地址等信息。

黑框D:是對(duì)黑框C進(jìn)行單向加密后得到的數(shù)字簽名,然后用自己的私鑰對(duì)其加密,傳輸給BOB和ALICE,拿著這個(gè)證書頒發(fā)機(jī)構(gòu)的公鑰(這些證書頒發(fā)機(jī)構(gòu)的公鑰一般已經(jīng)被microsoft事先放在windows里面,當(dāng)然其他操作系統(tǒng)也是一樣的)的BOB和ALICE如果能對(duì)這個(gè)證書進(jìn)行解密,說明這個(gè)證書頒發(fā)機(jī)構(gòu)不是冒充的。

紅框E:表示頒發(fā)給BOB和ALICE的證書。

傳輸階段跟BOB和ALICE之間通信相似,同樣是用到了單向加密,對(duì)稱加密,非對(duì)稱加密技術(shù)。