詳解三種密鑰加密算法
利用密鑰加密算法來(lái)對(duì)通信的過(guò)程進(jìn)行加密是一種常見(jiàn)的安全手段。常見(jiàn)的密鑰加密算法類型大體可以分為三類:對(duì)稱加密、非對(duì)稱加密、單向加密。
對(duì)稱加密算法
對(duì)稱加密算法采用單密鑰加密,在通信過(guò)程中,數(shù)據(jù)發(fā)送方將原始數(shù)據(jù)分割成固定大小的塊,經(jīng)過(guò)密鑰和加密算法逐個(gè)加密后,發(fā)送給接收方;接收方收到加密后的報(bào)文后,結(jié)合密鑰和解密算法解密組合后得出原始數(shù)據(jù)。由于加解密算法是公開(kāi)的,因此在這過(guò)程中,密鑰的安全傳遞就成為了至關(guān)重要的事了。而密鑰通常來(lái)說(shuō)是通過(guò)雙方協(xié)商,以物理的方式傳遞給對(duì)方,或者利用第三方平臺(tái)傳遞給對(duì)方,一旦這過(guò)程出現(xiàn)了密鑰泄露,不懷好意的人就能結(jié)合相應(yīng)的算法攔截解密出其加密傳輸?shù)膬?nèi)容。

對(duì)稱加密算法擁有著算法公開(kāi)、計(jì)算量小、加密速度和效率高得特定,但是也有著密鑰單一、密鑰管理困難等缺點(diǎn)。
常見(jiàn)的對(duì)稱加密算法有:
DES:分組式加密算法,以64位為分組對(duì)數(shù)據(jù)加密,加解密使用同一個(gè)算法。
3DES:三重?cái)?shù)據(jù)加密算法,對(duì)每個(gè)數(shù)據(jù)塊應(yīng)用三次DES加密算法。
AES:高級(jí)加密標(biāo)準(zhǔn)算法,是美國(guó)聯(lián)邦政府采用的一種區(qū)塊加密標(biāo)準(zhǔn),用于替代原先的DES,目前已被廣泛應(yīng)用。
Blowfish:是一個(gè)64位分組及可變密鑰長(zhǎng)度的對(duì)稱密鑰分組密碼算法,可用來(lái)加密64比特長(zhǎng)度的字符串。
非對(duì)稱加密算法
非對(duì)稱加密算法采用公鑰和私鑰兩種不同的密碼來(lái)進(jìn)行加解密。公鑰和私鑰是成對(duì)存在,公鑰是從私鑰中提取產(chǎn)生公開(kāi)給所有人的,如果使用公鑰對(duì)數(shù)據(jù)進(jìn)行加密,那么只有對(duì)應(yīng)的私鑰才能解密,反之亦然。

發(fā)送方Bob從接收方Alice獲取其對(duì)應(yīng)的公鑰,并結(jié)合相應(yīng)的非對(duì)稱算法將明文加密后發(fā)送給Alice;Alice接收到加密的密文后,結(jié)合自己的私鑰和非對(duì)稱算法解密得到明文。這種簡(jiǎn)單的非對(duì)稱加密算法的應(yīng)用其安全性比對(duì)稱加密算法來(lái)說(shuō)要高,但是其不足之處在于無(wú)法確認(rèn)公鑰的來(lái)源合法性以及數(shù)據(jù)的完整性。
非對(duì)稱加密算法具有安全性高、算法強(qiáng)度負(fù)復(fù)雜的優(yōu)點(diǎn),其缺點(diǎn)為加解密耗時(shí)長(zhǎng)、速度慢,只適合對(duì)少量數(shù)據(jù)進(jìn)行加密,其常見(jiàn)算法包括:
RSA:RSA算法基于一個(gè)十分簡(jiǎn)單的數(shù)論事實(shí):將兩個(gè)大素?cái)?shù)相乘十分容易,但那時(shí)想要對(duì)其乘積進(jìn)行因式分解卻極其困難,因此可以將乘積公開(kāi)作為加密密鑰,可用于加密,也能用于簽名。
DSA:數(shù)字簽名算法,僅能用于簽名,不能用于加解密。
DSS:數(shù)字簽名標(biāo)準(zhǔn),技能用于簽名,也可以用于加解密。
ELGamal:利用離散對(duì)數(shù)的原理對(duì)數(shù)據(jù)進(jìn)行加解密或數(shù)據(jù)簽名,其速度是最慢的。
單向加密

單向加密算法常用于提取數(shù)據(jù)指紋,驗(yàn)證數(shù)據(jù)的完整性。發(fā)送者將明文通過(guò)單向加密算法加密生成定長(zhǎng)的密文串,然后傳遞給接收方。接收方在收到加密的報(bào)文后進(jìn)行解密,將解密獲取到的明文使用相同的單向加密算法進(jìn)行加密,得出加密后的密文串。隨后將之與發(fā)送者發(fā)送過(guò)來(lái)的密文串進(jìn)行對(duì)比,若發(fā)送前和發(fā)送后的密文串相一致,則說(shuō)明傳輸過(guò)程中數(shù)據(jù)沒(méi)有損壞;若不一致,說(shuō)明傳輸過(guò)程中數(shù)據(jù)丟失了。單向加密算法只能用于對(duì)數(shù)據(jù)的加密,無(wú)法被解密,其特點(diǎn)為定長(zhǎng)輸出、雪崩效應(yīng)。常見(jiàn)的算法包括:MD5、sha1、sha224等等,其常見(jiàn)用途包括:數(shù)字摘要、數(shù)字簽名等等。




