Java進階 八 Java加密技術之對稱加密 非對稱加密 不可逆加密算法
對稱加密 非對稱加密 不可逆加密算法
根據密鑰類型不同可以將現代密碼技術分為兩類:對稱加密算法(私鑰密碼體系)和非對稱加密算法(公鑰密碼體系)。
1 對稱加密算法
原理
對稱加密算法中,數據加密和解密采用的都是同一個密鑰,因而其安全性依賴於所持有密鑰的安全性。
優點
加密和解密速度快,加密強度高,且算法公開.
缺點
實現密鑰的秘密分發困難,在大量用戶的情況下密鑰管理復雜,而且無法完成身份認證等功能,不便於應用在網絡開放的環境中。
特點
算法公開、計算量小、加密速度快、加密效率高。
著名算法
目前最著名的對稱加密算法有數據加密標準DES,但傳統的DES由於只有56位的密鑰,因此已經不適應當今分布式開放網絡對數據加密安全性的要求。歐洲數據加密標準
過程
對稱加密算法過程是將數據發信方將明文(原始數據)和加密密鑰一起經過特殊加密算法處理後,使其變成復雜的加密密文發送出去。收信方收到密文後,若想解讀原文,則需要使用加密用過的密鑰及相同算法的逆算法對密文進行解密,才能使其恢復成可讀明文。在對稱加密算法中,使用的密鑰只有一個,發收信雙方都使用這個密鑰對數據進行加密和解密,這就要求解密方事先必須知道加密密鑰。
不足之處是,交易雙方都使用同樣鑰匙,安全性得不到保證。假設兩個用戶需要使用對稱加密方法加密然後交換數據,則用戶最少需要2
2 非對稱加密算法
原理
非對稱加密算法使用兩把完全不同但又是完全匹配的一對鑰匙(即一把公開密鑰或加密密鑰和專用密鑰或解密密鑰)—公鑰和私鑰。在使用不對稱加密算法加密文件時,只有使用匹配的一對公鑰和私鑰,才能完成對明文的加密和解密過程。加密明文時采用公鑰加密,解密密文時使用私鑰才能完成,而且發信方(加密者)知道收信方的公鑰,只有收信方(解密者)才是唯一知道自己私鑰的人。非對稱加密算法的基本原理是,如果發信方想發送只有收信方才能解讀的加密信息,發信方必須首先知道收信方的公鑰,然後利用收信方的公鑰來加密原文;收信方收到加密密文後,使用自己的私鑰才能解密密文。
優點
非對稱加密算法的保密性比較好,它消除了最終用戶交換密鑰的需要。
缺點
加密和解密花費時間長、速度慢,它不適合於對文件加密而只適用於對少量數據進行加密。
著名算法
廣泛應用的非對稱加密算法有RSA算法和美國國家標準局提出的DSA。
3 不可逆加密算法
原理
不可逆加密算法的特征是加密過程中不需要使用密鑰,輸入明文後由系統直接經過加密算法處理成密文,這種加密後的數據是無法被解密的,只有重新輸入明文,並再次經過同樣不可逆的加密算法處理,得到相同的加密密文並被系統重新識別後,才能真正解密。顯然,在這類加密過程中,加密是自己,解密還得是自己,而所謂解密,實際上就是重新加一次密,所應用的“密碼”也就是輸入的明文。
優點
不可逆加密算法不存在密鑰保管和分發問題,非常適合在分布式網絡系統上使用。
缺點
因加密計算復雜,工作量相當繁重,通常只在數據量有限的情形下使用,如廣泛應用在計算機系統中的口令加密,利用的就是不可逆加密算法。近年來,隨著計算機系統性能的不斷提高,不可逆加密的應用領域正在逐漸增大。
著名算法
在計算機網絡中應用較多不可逆加密算法的有RSA公司發明的MD5算法和由美國國家標準局建議的不可逆加密標準SHS(Secure Hash Standard:安全雜亂信息標準)等。
註:
對稱加密算法、非對稱加密算法和不可逆加密算法可以分別應用於數據加密、身份認證和數據安全傳輸。
再分享一下我老師大神的人工智能教程吧。零基礎!通俗易懂!風趣幽默!還帶黃段子!希望你也加入到我們人工智能的隊伍中來!http://www.captainbed.net
Java進階 八 Java加密技術之對稱加密 非對稱加密 不可逆加密算法