對(duì)稱加密與非對(duì)稱加密的算法原理以及優(yōu)缺點(diǎn)

在加密算法界,大致將加密算法分為對(duì)稱加密與非對(duì)稱加密兩種形式,那么我們今天來了解一下對(duì)稱加密與非對(duì)稱加密的算法原理以及它們各自都有哪些優(yōu)缺點(diǎn)。

對(duì)稱加密算法

對(duì)稱加密算法在加密傳輸中最初是采用對(duì)稱密鑰方式,也就是加密和解密都用相同的密鑰。

對(duì)稱加密

  • 對(duì)稱加密算法加密過程
  1. 對(duì)稱加密算法采用單密鑰加密,在通信過程中,數(shù)據(jù)發(fā)送方將原始數(shù)據(jù)分割成固定大小的塊,經(jīng)過密鑰和加密算法逐個(gè)加密后,發(fā)送給接收方
  2. 接收方收到加密后的報(bào)文后,結(jié)合解密算法使用相同密鑰解密組合后得出原始數(shù)據(jù)。

對(duì)稱加密算法

  • 優(yōu)點(diǎn)

效率高,算法簡單,系統(tǒng)消耗小,適合加密大量數(shù)據(jù)。

  • 缺點(diǎn)

安全性差

對(duì)稱加密的加解密算法是公開的,因此在這過程中,密鑰的安全傳遞就成為了至關(guān)重要的事了。而密鑰通常來說是通過雙方協(xié)商,以物理的方式傳遞給對(duì)方,或者利用第三方平臺(tái)傳遞給對(duì)方,一旦這過程出現(xiàn)了密鑰泄露,不懷好意的人就能結(jié)合相應(yīng)的算法攔截解密出其加密傳輸?shù)膬?nèi)容。

擴(kuò)展性差

使用對(duì)稱加密,每對(duì)通信用戶之間都需要協(xié)商密鑰,n個(gè)用戶的團(tuán)體就需要協(xié)商n*(n-1)/2個(gè)不同的密鑰,不便于管理;而如果都使用相同密鑰的話,密鑰被泄漏的機(jī)率大大增加,加密也就失去了意義。

  • 常見的對(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)算法,是美國聯(lián)邦政府采用的一種區(qū)塊加密標(biāo)準(zhǔn),用于替代原先的DES,目前已被廣泛應(yīng)用。

Blowfish:Blowfish算法是一個(gè)64位分組及可變密鑰長度的對(duì)稱密鑰分組密碼算法,可用來加密64比特長度的字符串。

非對(duì)稱加密算法

非對(duì)稱加密算法采用公鑰和私鑰兩種不同的密碼來進(jìn)行加解密。公鑰和私鑰是成對(duì)存在,公鑰是從私鑰中提取產(chǎn)生公開給所有人的,如果使用公鑰對(duì)數(shù)據(jù)進(jìn)行加密,那么只有對(duì)應(yīng)的私鑰(不能公開)才能解密,反之亦然。N個(gè)用戶通信,需要2N個(gè)密鑰。

非對(duì)稱加密

  • 非對(duì)稱加密算法加密過程
  1. 甲使用乙的公鑰并結(jié)合相應(yīng)的非對(duì)稱算法將明文加密后發(fā)送給乙,并將密文發(fā)送給乙。
  2. 乙收到密文后,結(jié)合自己的私鑰和非對(duì)稱算法解密得到明文,得到最初的明文。

非對(duì)稱加密算法

  • 優(yōu)點(diǎn)

非對(duì)稱加密算法具有比對(duì)稱密鑰加密方式更高的安全性,因?yàn)榧用芎徒饷苡玫氖遣煌荑€,而且無法從一個(gè)密鑰推導(dǎo)出另一個(gè)密鑰,且公鑰加密的信息只能用同一方的私鑰進(jìn)行解密。

  • 缺點(diǎn)

算法復(fù)雜

非對(duì)稱加密的缺點(diǎn)是算法非常復(fù)雜,導(dǎo)致加密大量數(shù)據(jù)所用的時(shí)間較長,只適合對(duì)少量數(shù)據(jù)進(jìn)行加密。而且由于在加密過程中會(huì)添加較多附加信息,使得加密后的報(bào)文比較長,容易造成數(shù)據(jù)分片,不利于網(wǎng)絡(luò)傳輸。

公鑰安全

非對(duì)稱加密算法無法確認(rèn)公鑰的來源合法性以及數(shù)據(jù)的完整性。

  • 常見算法包括:

RSA:RSA算法基于一個(gè)十分簡單的數(shù)論事實(shí),那就是將兩個(gè)大素?cái)?shù)相乘十分容易,但那時(shí)想要對(duì)其乘積進(jìn)行因式分解卻極其困難,因此可以將乘積公開作為加密密鑰,可用于加密,也能用于簽名。

DSA:數(shù)字簽名算法,僅能用于簽名,不能用于加解密。

DSS:數(shù)字簽名標(biāo)準(zhǔn),技能用于簽名,也可以用于加解密。

ELGamal:利用離散對(duì)數(shù)的原理對(duì)數(shù)據(jù)進(jìn)行加解密或數(shù)據(jù)簽名,其速度是最慢的。

以上就是對(duì)稱加密與非對(duì)稱加密的算法原理和它們各自的優(yōu)缺點(diǎn),以及常見的加密算法。在現(xiàn)實(shí)中很多情況下,對(duì)稱加密與非對(duì)稱加密并非單獨(dú)出現(xiàn),而是相輔相成,這樣才能保證加密的安全性。

免責(zé)聲明:素材源于網(wǎng)絡(luò),如有侵權(quán),請(qǐng)聯(lián)系刪稿。