加密、算法、證書、密鑰和密鑰格式

加密

加密有兩種目的:

簽名

只需要加密后的密文,用來做驗證,確保提供的原始文本在傳遞或者保存過程中沒有被修改過,但是原始的明文文本是什么它不關心或者沒有隱藏的必要。這在現(xiàn)實中用途很廣泛,比如老板說“明天放假一天”,這條文本本身沒有加密的必要,但是需要確保的是內(nèi)容沒有被修改,一天不會被改成兩天。

實現(xiàn)這一目的的加密算法,一般是使用被稱為單向散列函數(shù)加密的算法,但也有使用非對稱加密的算法,比如DSA

解密

加密后的密文,需要可以被解密成明文。這是我們一般意義上的加密的目的,在傳遞或者保存中,第三方看不到原始的明文文本,不知道內(nèi)容是什么。

實現(xiàn)這一目的的加密算法有兩種:對稱加密非對稱加密。

比較

哈希要達到的效果是:不能由密文推導出明文;而解密要達到的效果是:沒有密碼或者密鑰,不能推導出明文。

算法

加密算法可以分成三個種類:單向散列函數(shù)加密、對稱加密和非對稱加密。第一種一般用來處理簽名和消息驗證,后面兩種一般用來進行加密解密,但這不是絕對的區(qū)分。

單向散列函數(shù)加密

哈希:散列,又稱為雜湊,哈希,其實都是英文 hash 的翻譯。散列函數(shù)又被稱為散列算法。最常用的是以下兩種算法:
  1. MD5(Message-Digest Algorithm,即信息摘要算法),由MD2、MD3、MD4改進而來。
  2. SHA(Secure Hash Algorithm,即安全散列算法),包含SHA-0,SHA-1,SHA-2(SHA-224、SHA-256、SHA-512等)和SHA-3(SHA3-224、SHA3-256和SHA3-512等)。

對稱加密

對稱加密,是指加密和解密使用相同的密鑰。最常用的有以下兩種算法。

  1. DES(Data Encryption Standard,即數(shù)據(jù)加密標準)和 3DES(即三重數(shù)據(jù)加密算法)
  2. AES(Advanced Encryption Standard,即高級加密標準)

非對稱加密

非對稱加密,是指加密和解密使用的是兩個不相同的密鑰。通常這兩個密鑰其中一個是公開的,所以這一加密方法也被稱為公開密鑰加密。

  1. RSA(三個人名的首字母),它的核心是質(zhì)因數(shù)分解。這個算法可以用來對文本進行加密和解密。
  2. DSA(Digital Signature Algorithm,即數(shù)字簽名算法),它的核心是模算數(shù)和離散對數(shù)問題。它僅用于簽名而不能用戶解密。算法中使用的散列函數(shù)是SHA家族。

實際實現(xiàn)中還有使用 ECC(Elliptic Curve Cryptography,即橢圓曲線密碼學)的ECDSA等算法,是ECC和DSA的結合。

證書

X.509是密碼學里公鑰證書的格式標準。

X.509證書里含有公鑰、身份信息(比如網(wǎng)絡主機名,組織的名稱或個體名稱等)和簽名信息,還附帶了證書吊銷列表和用于從最終對證書進行簽名的證書簽發(fā)機構直到最終可信點為止的證書合法性驗證算法。

格式標準

格式標準用于指定保存證書或者是公鑰和密鑰的容器格式。

  • DER(Distinguished Encoding Rules,即唯一編碼規(guī)則),是一種二進制格式。
  • PEM(Privacy-Enhanced Mail,即隱私增強型郵件),是一種被編碼成base64的文本格式。
  • PKCS(Public Key Cryptography Standards,即公鑰加密標準),這是有RSA信息安全公司制定的一系列公開密鑰密碼編譯標準。包含 PKCS#1~PKCS#15

參考:

Certificate and Key Formats
X.509 - 維基百科,自由的百科全書

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

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

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