散列函數(shù)
或散列算法嗡综,又稱哈希函數(shù),英語:Hash Function)是一種從任何一種數(shù)據(jù)中創(chuàng)建小的數(shù)字“指紋”的方法蚣旱。 散列函數(shù)把消息或數(shù)據(jù)壓縮成摘要戴陡,使得數(shù)據(jù)量變小,將數(shù)據(jù)的格式固定下來异吻。
常用算法有:MD5诀浪、SHA1
加密算法
對(duì)稱加密
常用算法有:DES、3DES雷猪、Blowfish求摇、IDEA殊者、RC4猖吴、RC5、RC6和AES
非對(duì)稱加密
常用算法有:RSA海蔽、ECC(移動(dòng)設(shè)備用)、Diffie-Hellman拗引、El Gamal寺擂、DSA(數(shù)字簽名用)
PS:哈希算法是不可逆的泼掠,而加密算法是可逆的。
常見的加密算法可以分成三類挡逼,對(duì)稱加密算法腻豌,非對(duì)稱加密算法和Hash算法吝梅。
對(duì)稱加密
指加密和解密使用相同密鑰的加密算法。對(duì)稱加密算法的優(yōu)點(diǎn)在于加解密的高速度和使用長(zhǎng)密鑰時(shí)的難破解性做瞪。假設(shè)兩個(gè)用戶需要使用對(duì)稱加密方法加密然后交換數(shù)據(jù)右冻,則用戶最少需要2個(gè)密鑰并交換使用纱扭,如果企業(yè)內(nèi)用戶有n個(gè),則整個(gè)企業(yè)共需要n×(n-1) 個(gè)密鑰乳蛾,密鑰的生成和分發(fā)將成為企業(yè)信息部門的惡夢(mèng)肃叶。對(duì)稱加密算法的安全性取決于加密密鑰的保存情況,但要求企業(yè)中每一個(gè)持有密鑰的人都保守秘密是不可能的糙及,他們通常會(huì)有意無意的把密鑰泄漏出去——如果一個(gè)用戶使用的密鑰被入侵者所獲得,入侵者便可以讀取該用戶密鑰加密的所有文檔浸锨,如果整個(gè)企業(yè)共用一個(gè)加密密鑰,那整個(gè)企業(yè)文檔的保密性便無從談起迟郎。
常見的對(duì)稱加密算法有DES聪蘸、3DES健爬、Blowfish娜遵、IDEA、RC4设拟、RC5纳胧、RC6和AES
非對(duì)稱加密
指加密和解密使用不同密鑰的加密算法跑慕,也稱為公私鑰加密。假設(shè)兩個(gè)用戶要加密交換數(shù)據(jù)相寇,雙方交換公鑰唤衫,使用時(shí)一方用對(duì)方的公鑰加密绵脯,另一方即可用自己的私鑰解密。如果企業(yè)中有n個(gè)用戶赃承,企業(yè)需要生成n對(duì)密鑰瞧剖,并分發(fā)n個(gè)公鑰抓于。由于公鑰是可以公開的,用戶只要保管好自己的私鑰即可怕品,因此加密密鑰的分發(fā)將變得十分簡(jiǎn)單肉康。同時(shí)灼舍,由于每個(gè)用戶的私鑰是唯一的,其他用戶除了可以可以通過信息發(fā)送者的公鑰來驗(yàn)證信息的來源是否真實(shí)纹安,還可以確保發(fā)送者無法否認(rèn)曾發(fā)送過該信息砂豌。非對(duì)稱加密的缺點(diǎn)是加解密速度要遠(yuǎn)遠(yuǎn)慢于對(duì)稱加密阳距,在某些極端情況下筐摘,甚至能比非對(duì)稱加密慢上1000倍咖熟。
常見的非對(duì)稱加密算法有:RSA馍管、ECC(移動(dòng)設(shè)備用)薪韩、Diffie-Hellman俘陷、El Gamal拉盾、DSA(數(shù)字簽名用)
Hash算法
Hash算法特別的地方在于它是一種單向算法,用戶可以通過Hash算法對(duì)目標(biāo)信息生成一段特定長(zhǎng)度的唯一的Hash值倒得,卻不能通過這個(gè)Hash值重新獲得目標(biāo)信息屎暇。因此Hash算法常用在不可還原的密碼存儲(chǔ)、信息完整性校驗(yàn)等凶异。
常見的Hash算法有MD2挤巡、MD4矿卑、MD5母廷、HAVAL、SHA
加密算法的效能通城倮ィ可以按照算法本身的復(fù)雜程度氓鄙、密鑰長(zhǎng)度(密鑰越長(zhǎng)越安全)、加解密速度等來衡量业舍。上述的算法中抖拦,除了DES密鑰長(zhǎng)度不夠、MD2速度較慢已逐漸被淘汰外舷暮,其他算法仍在目前的加密系統(tǒng)產(chǎn)品中使用态罪。