你必須知道的 5 個重要的密碼學(xué)知識

引言
密碼學(xué)用于將輸入(明文)轉(zhuǎn)換為加密的輸出(密文)。因此,使用不同的算法將輸入轉(zhuǎn)換為輸出,大多數(shù)情況下需要使用密鑰來加密和解密。密碼學(xué)中的密鑰是用于算法的字符序列。然后,密文可用在世界各地的安全存儲和傳輸數(shù)據(jù),只有發(fā)送者和接收者才能解密和讀取明文。
加密分為三種不同的方法:
對稱加密(Symmetric Encryption) 非對稱加密(Asymmetric Encryption) 散列(Hashing)
對稱加密

對 “FILM” 單詞的加密和解密:

對稱加密的主要優(yōu)點是速度快。在速度很重要的用例(VPN、數(shù)據(jù)流等)中,主要使用對稱加密。因此,目前主要使用兩種對稱加密算法:
AES DES

密鑰交換
在對稱加密中,有一個主要問題必須解決,然后才能夠安全地使用它:如何獲取彼此的密鑰?
Diffie Hellmann
1976 年,該問題的第一個解決方案由 Whitfield Diffie 和 Martin Hellmann ?提出,同時該算法被命名為 Diffie Hellmann。Diffie Hellmann 會對通信的兩個成員生成相同的密鑰,而不需要預(yù)先共享密鑰。此過程的步驟是:
約定公有值 選擇私有(秘密)值 交換由公有值和秘密值計算出來的值 用步驟 3 得出的值和自己的秘密值計算密鑰,對于兩個通信員來說該密鑰的值是相同的。
這個過程在下圖中用顏色(而非數(shù)字)進行了可視化,以便理解:

混合系統(tǒng)
混合系統(tǒng)是使用對稱和非對稱加密的密碼系統(tǒng)。大多數(shù)情況下,非對稱加密系統(tǒng)用于加密對稱加密系統(tǒng)的密鑰。因為前者更安全,而后者更快速。
非對稱加密
在非對稱加密中,需要一個密鑰對來進行加密和解密。密鑰對由公鑰和私鑰組成。公鑰用于加密數(shù)據(jù),然后只能用私鑰解密密文。公鑰可以公開共享,但私鑰必須保密,才能擁有安全的密碼系統(tǒng)。轉(zhuǎn)換過程包括以下步驟:
接收者共享公鑰 發(fā)送者用公鑰加密數(shù)據(jù) 密文被傳送至接收者 接收者用私鑰解密密文

該系統(tǒng)的優(yōu)點是,可以在沒有任何安全措施和密鑰交換系統(tǒng)的情況下共享公鑰。缺點是非對稱加密的速度慢。最常見的非對稱加密算法有:
RSA ECC
散列
散列算法用于生成唯一且固定長度的字符串,也叫做哈希。其要求如下:
輸出長度固定(Fixed-Length-Output):輸出的長度始終相同 單向函數(shù)(One-Way-Function):很容易從輸入計算哈希,反向則幾乎不可。 碰撞阻力(Collision resistance):不容易找到兩個能產(chǎn)生相同輸出的輸入
當(dāng)今最流行的散列算法:
SHA-2(Secure Hash Algorithm 2) SHA-3(Secure Hash Algorithm 3) MD5(Message-Digest Algorithm 5)→ 不應(yīng)該再被使用 bcrypt → 主要用于密碼散列

輸入 Foo 的哈希值示例:
SHA-3
195e5c2ddf90d08e0c12357a75fd11180c85b989a9d3b6bc3327aa23a98f278a
bcrypt
$2a$12$.LJ6zlZXAZ2iRIyzRMcvpeQsPJ6pJ0/zb0daxnhxeGXNqN4KmJ9ny
MD5
1356c67d7ad1638d816bfb822dd2c25d
數(shù)字簽名
數(shù)字簽名是一個不同的密碼學(xué)概念的用例,用于驗證數(shù)據(jù)和文檔的真實性。因此使用了非對稱加密和散列函數(shù)。簽名過程的步驟如下:
計算要被簽名文檔的哈希值 用非對稱密碼系統(tǒng)的私鑰來加密哈希值 創(chuàng)建由文檔和加密哈希值組成的簽名文檔
此過程在下圖中可視化:

要驗證已簽名的文檔,必須執(zhí)行以下步驟:
使用公鑰來解密被附加到文檔的哈希值 計算該文檔的哈希值 將被解密(被傳輸)的哈希值與根據(jù)該文檔計算的哈希值進行比較
若這兩值匹配,則簽名有效,否則簽名無效。

鏈接:https://medium.com/nerd-for-tech/5-cryptography-concepts-you-should-know-9b2681067a35
(版權(quán)歸原作者所有,侵刪)
