加密演算法,簡而言之就是一種能夠把原始內容加密,然後再解密獲得原始內容的演算法。
加密演算法可以劃分為如下兩類:
1.對稱加密
對稱加密可以理解為加密與解密都使用同一套演算法(即金鑰)。
上圖是乙個經典對稱加密演算法。採用字母移位的辦法對原始字串進行轉換,解密時再根據之前的移位,轉換為原始字串。可以根據此種演算法,設計乙個密碼機,輸入移位n,自動進行編碼與解碼。
在諜戰電視劇集中經常出現你爭我搶的密碼本,加密與解密雙方使用同乙個密碼本對要傳遞的內容進行加解密,這也是一種對稱加密演算法。
對於對稱加密在實際使用中的問題,可以通過如下樣例來說明。
假如**網的登入密碼傳輸部分使用的是對稱加密演算法。此時,張
三、李四、還有王五同學需要訪問**。那麼,伺服器就需要生成3個不同的金鑰,比如張三的金鑰為移5位,李四的金鑰為移6位。如果全部都用乙個金鑰,顯然張三用自己的金鑰可以解密其它人加密後的密碼。對於伺服器來講,有多少個使用者就得維護多少組金鑰,這樣做顯然是不合理的。
常用的對稱加密演算法有:des、3des、tdea、blowfish、rc2、rc4、rc5、idea、skipjack、aes等。2.非對稱加密
針對於對稱加密存在的問題,使用非對稱加密即可完美的解決。
由上圖可以看出,左側的對稱加密為a、b、c、d四個使用者分別分配了乙個金鑰,而右側的非對稱加密(也叫公開金鑰加密技術)為a、b、c、d四個使用者分配了相同的金鑰。
非對稱加密的金鑰分為公鑰
和私鑰
,其中公鑰和私鑰都可以加密與解密。特別的是,公鑰所加密的內容只有私鑰能夠解密。這樣,對於伺服器來講,只需要把公鑰分發給所有客戶,自己儲存好私鑰即可。
常用的非對稱加密演算法有:rsa、elgamal、揹包演算法、rabin、d-h、ecc(橢圓曲線加密演算法)等。首先需要指明的是,摘要演算法不屬於加解密演算法。
對摘要兩字可以理解為對資訊主體的濃縮。這種濃縮是乙個不可逆的過程。
可以在這些地方使用摘要演算法:明文密碼取摘要後把摘要存入資料庫、檔案斷點續傳與秒傳(用檔案摘要確定唯一性)、不在網路中傳輸密碼(密碼做摘要後傳輸,在伺服器端取出密碼用相同的摘要演算法計算摘要後再跟客戶端傳過來的摘要比對)
常用的摘要演算法有:md5、sha1、sha256、sha384、sha512數字簽名可以理解為
摘要演算法
與非對稱加密
的綜合使用。
數字簽名可以對應為經常見到的騎縫章(經常有人喜歡把名字寫在書的側面)。數字簽名需要說明是誰編寫的報文,同時證明報文未被篡改過。
通過上圖,可以清楚的看出,使用摘要演算法
來證明報文未被篡改過,使用非對稱加密
來說明是誰寫的報文。
我們可以通過非對稱加密可以解決報文裸奔的問題。
試想,有這麼乙個場景,伺服器a分發乙個公鑰給客戶端b,正常情況下很ok。此時a和b之前有個中間**c,a和b之間的所有資料傳輸都要經過c來中轉。c被黑客控制,c把自己的公鑰發給b(b誤以為是a的),c收到b傳輸給a的訊息,先用自己的私鑰解密,獲得明文。然後用a的公鑰加密密文再**給a。
這裡就牽涉到乙個問題,b怎麼確定收到的公鑰的確是a的,而不是別人偽造的?現實中的身份證,要想確定身份證是否是真實的,去權威機構(也就是公安局)查一下就行了。
數字證書也是這個原理,需要乙個權威機構來頒發。以此來證明這個公鑰到底是誰的。
資料:「數字簽名」(digital signature)和」數字證書」(digital certificate)到底是什麼?
加密演算法 摘要演算法 數字簽名 數字證書
加密演算法,簡而言之就是一種能夠把原始內容加密,然後再解密獲得原始內容的演算法。加密演算法可以劃分為如下兩類 1.對稱加密 對稱加密可以理解為加密與解密都使用同一套演算法 即金鑰 上圖是乙個經典對稱加密演算法。採用字母移位的辦法對原始字串進行轉換,解密時再根據之前的移位,轉換為原始字串。可以根據此種...
加密演算法與數字簽名
將一些我們可以理解的內容通過演算法轉化為我們無法理解的內容,這一過程就是加密演算法所做的。電報報文 二戰時期,著名的中途島海戰,由於美軍破譯了日軍的大量報文而獲得了太平洋戰爭的關鍵性勝利。af 中途島 編碼解決的問題?用位元組去表示文字 符號 編碼其實也可以理解為是一種加密演算法 2 對於n位元組的...
加密演算法 雜湊函式與數字簽名
加密金鑰 解密金鑰 指加密時每次加密一位或乙個位元組的明文 同步流密碼 自同步性 錯誤傳遞有限性 主動攻擊性 明文統計擴散性 rc4 seal 指加密時將明文分成固定長度的組,用同一金鑰和演算法對每一塊加密,輸出也是固定長度的密文 常用於網路加密 ecb 電子密碼本模式 cbc 密碼鏈結模式 cfb...