加密算法記錄

加密算法的原文地址

常見(jiàn)加密算法

  1. 對(duì)稱(chēng)加密算法
  2. 非對(duì)稱(chēng)加密算法
  3. Hash算法

對(duì)稱(chēng)加密

對(duì)稱(chēng)加密算法,就是使用同一個(gè)秘鑰進(jìn)行加密和解密。

  • 優(yōu)點(diǎn)是速度較快,適合對(duì)數(shù)據(jù)量比較大的數(shù)據(jù)進(jìn)行加密。
  • 缺點(diǎn)是密鑰的保存方式需要保證安全,一旦加密或者解密的哪一方泄漏了密鑰,都會(huì)導(dǎo)致信息的泄漏。

常用的對(duì)稱(chēng)加密算法有:DES、3DES、DESX、Blowfish、IDEA、RC4、RC5、RC6、AES。

DES

DES加密算法是一種分組加密算法,以64位為分組對(duì)數(shù)據(jù)進(jìn)行加密,他的密鑰長(zhǎng)度為56位,速度較快,適合用于大量數(shù)據(jù)加密的場(chǎng)合。

3DES

基于DES加密,對(duì)一塊數(shù)據(jù)使用三個(gè)不同的密鑰進(jìn)行加密三次,強(qiáng)度更高。

AES

高級(jí)加密標(biāo)準(zhǔn),是新一代加密算法標(biāo)準(zhǔn),取代DES,速度快,安全級(jí)別高。密鑰長(zhǎng)度最少支持128、192、256,分租長(zhǎng)度128位。

非對(duì)稱(chēng)加密

與對(duì)稱(chēng)加密相對(duì)的,非對(duì)稱(chēng)加密需要兩個(gè)密鑰,一個(gè)公開(kāi)密鑰(Public Key),一個(gè)私有密鑰(Private Key)。公鑰和私鑰是一對(duì),如果使用公鑰進(jìn)行加密的數(shù)據(jù),只有對(duì)應(yīng)的私鑰才能解密。相對(duì)的,如果是使用私鑰加密的數(shù)據(jù),只有對(duì)應(yīng)的公鑰才能解密。

優(yōu)點(diǎn)是公鑰可以被任何人知道,而公鑰的泄漏也不會(huì)導(dǎo)致信息泄漏,但是一旦私鑰泄漏了就會(huì)導(dǎo)致信息泄漏。

常用的非對(duì)稱(chēng)加密算法有:RSA、ECC(移動(dòng)設(shè)備用)、Diffie-Hellman、El Gamal、DSA(數(shù)字簽名用)。

RSA

RSA加密算法是目前最有影響力的公鑰加密算法,并且被普遍任務(wù)是最優(yōu)秀的公鑰方案之一。RSA是第一個(gè)能同時(shí)加密和數(shù)字簽名的算法,它能夠抵抗到目前為止已知的所有密碼攻擊。

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

ECC

ECC使用的是橢圓曲線(xiàn)編碼學(xué),相對(duì)于RSA,ECC的抗攻擊性更強(qiáng),并且計(jì)算量小,處理速度快,存儲(chǔ)空間占用小,所以適用于移動(dòng)設(shè)備使用。

Hash算法

Hash算法(哈希散列算法)特別之處在于它是一種單向算法,即不可逆,用戶(hù)可以通過(guò)Hash算法對(duì)目標(biāo)信息生成一段特定長(zhǎng)度的唯一的Hash值,但是卻不能通過(guò)這個(gè)Hash值重新獲得目標(biāo)信息。

因?yàn)榇颂攸c(diǎn),Hash算法通常用在存儲(chǔ)不可還原的密碼存儲(chǔ),信息完整校驗(yàn)等地方。

常用的Hash算法有:MD2、MD4、MD5、HAVAL、SHA、SHA-1、HMAC、HMAC-MD5、HMAC-SHA1。

MD5

MD5加密算法可以簡(jiǎn)單的分析為以512位分組來(lái)處理輸入的信息,且每一個(gè)分組又被劃分為16個(gè)32位的子分組,經(jīng)過(guò)一系列的處理之后,算法的輸出由4個(gè)32位分組組成,將這4個(gè)32位分組級(jí)聯(lián)后就會(huì)生成一個(gè)128位散列值。

MD5大多被用于軟件的密碼認(rèn)證和鑰匙識(shí)別上。

SHA1

SHA1和MD5一樣是流行的信息摘要算法。對(duì)于長(zhǎng)度小于2’64位的消息,SHA1會(huì)生成一個(gè)160位的信息摘要,當(dāng)接收到消息的時(shí)候,這個(gè)消息摘要可以用來(lái)驗(yàn)證數(shù)據(jù)的完整性,在傳輸?shù)倪^(guò)程中,數(shù)據(jù)很可能發(fā)生變化,那么這時(shí)候就會(huì)生成不同的信息摘要。SHA1不可以從消息摘要中復(fù)原信息,而兩個(gè)不同的消息不會(huì)產(chǎn)生同樣的信息摘要。這樣,SHA1就可以用來(lái)驗(yàn)證數(shù)據(jù)的完整性。

算法選擇

對(duì)稱(chēng)加密的算法相較于非對(duì)稱(chēng)加密算法會(huì)快很多,如果需要對(duì)大量的數(shù)據(jù)進(jìn)行加密時(shí),建議采用對(duì)稱(chēng)加密算法,加快加密解密速度。

而對(duì)于需要簽名的情況,只能使用非對(duì)稱(chēng)加密。

當(dāng)數(shù)據(jù)量很小,而密鑰的管理用來(lái)決定數(shù)據(jù)安全時(shí),最好使用非對(duì)稱(chēng)加密。

在選定了算法之后,選擇多少位的密鑰也是一個(gè)難題,一般情況下,密鑰越長(zhǎng),運(yùn)行的速度越慢,所以我們要根據(jù)實(shí)際需要選擇加密的位數(shù),一般來(lái)說(shuō),RSA采用1024位,ECC采用160位,AES采用128位。

加密算法的原文地址

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀(guān)點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容