https數字證書基礎概念(一)

密鑰

密鑰,一般是一個字符串或數字,在加密或解密時傳遞給加密或解密算法。下面公鑰密碼體制中提到的公鑰和私鑰都是密鑰,只是公鑰是加密時使用的密鑰,私鑰是解密時使用的密鑰。

公鑰密碼體制

公鑰密碼體制(public-key cryptography)由公鑰、私鑰、加密算法三部分組成,其中由公鑰加密的內容只能由私鑰解密,也就是說除了私鑰之外,由公鑰加密的內容無法被解密。公鑰密碼體制的加解密過程如下:

  1. 加密 :使用加密算法公鑰對明文進行加密,得到密文。
  2. 解密:使用解密算法私鑰對密文進行解密,得到明文。

公鑰密碼體制的公鑰和算法都是公開的,只有私鑰是保密的。所以在實際使用中,都是生成一對公鑰和私鑰,把公鑰發佈出去,自己保留私鑰。

對稱加密算法

在對稱加密算法(symmetric key algorithms)中,加密和解密時使用的密鑰是相同的。在安全通信之前,會要求通信雙方商定一個密鑰,泄漏密鑰就意味着任何人都可以對發送或接收的消息解密;因此對稱加密算法要保證安全性的話,密鑰只能讓使用的人知道,不能對外公開。

對稱加密算法的特點:
算法公開、計算量小、加密速度快、加密效率高

非對稱加密算法

在非對稱加密算法(asymmetric key algorithms)中,加密和解密使用的密鑰是不相同的,共需要兩個密鑰。一個是對外公開的密鑰稱爲公鑰(public key),一個不公開的密鑰爲私鑰(private key)。上述中的公鑰密碼體制就是一種非對稱加密算法。

非對稱加密的特性:

  1. 對於一個公鑰,有且只有一個對應的私鑰
  2. 公鑰是公開的,並且不能通過公鑰反推出私鑰
  3. 通過私鑰加密的密文只能通過公鑰解密,通過公鑰加密的密文也只能通過私鑰解密

非對稱加密算法的主要用途:

  1. 對信息保密,防止中間人攻擊:一般用於交換對稱密鑰
  2. 身份驗證和防止信息篡改:一般用於數字簽名

CA

CA是Certificate Authority的縮寫,也叫證書授權中心,是負責管理和簽發證書的第三方機構,作用是檢查證書持有者身份的合法性,並簽發證書,以防止證書被僞造或篡改。一般來說,CA必須是所有行業和所有公衆都信任的、認可的、具有一定的權威性。

所以CA實際上是一種機構,負責證書的簽發,就像頒發身份證的公安局、發放駕駛證的車管所一樣。

數字證書

數字證書是由CA頒發的證書,也叫CA證書,通常包含證書擁有者的身份信息、CA機構的簽名、公鑰和私鑰。其中身份信息用於驗證證書持有者的身份,CA簽名用於保證身份的真實性,公鑰和私鑰用於通信過程中的加解密,保證通信的安全。

所以數字證書可以保證數字證書中的公鑰確實是這個證書的所有者持有的,或者是可以用來確認對方身份的

摘要

摘要也叫做指紋,可以唯一的標識一段數據。通過摘要算法對數據處理後得到的一串哈希值就是摘要。這個過程是不可逆的,也就是說無法通過hash值得到原來的數據內容,且保證不同的內容一定會得到不同的hash值;其中信息是任意長度的,摘要是固定長度的。

所以只要內容一旦被修改,根據信息得到的摘要也會發生變化。

摘要算法

摘要算法也成爲散列或散列值,是一種與基於密鑰(對稱密鑰或公鑰)的加密不同的數據轉換類型。散列就是通過散列算法的單向數學函數應用於數據,將任意長度的一塊數據轉換成一個定長的、不可逆轉的數字,長度通過在128~256位之間。即所產生的散列值的長度應該足夠長,這樣不同的數據的散列值的相同的概率就會很小。

摘要算法的特性:
只要源文本不同,計算得到的結果必然不同,或者是概率很小。
無法從結果反推出源數據。

常見的摘要算法:
MD5、SHA-1、MAC(Message Authentication Code 消息認證代碼)、CRC(Cyclic Redundancy Check 循環冗餘校驗碼)。

數字簽名

數字簽名是非對稱加密和摘要算法的一種應用,確保信息在發佈後不會被篡改(摘要算法特性),保證數據的完整性和可信性;同時也防止數據被他人僞造(非對稱加密算法特性)。即在對信息的內容通過摘要算法得到摘要後,爲防止信息和摘要同時被黑客修改,導致信息有誤,一般都會對摘要進行加密,然後再和信息一起發送。

對摘要加密後得到的值被稱爲數字簽名

驗證過程如下:
通過數字證書驗證公鑰是否是發佈者的公鑰 --> 用公鑰解密密文,得到摘要 --> 使用發佈者的摘要算法得到摘要 --> 對比摘要是否一致即可確定信息是否被修改

參考資料

https://zhuanlan.zhihu.com/p/32754315
https://zhuanlan.zhihu.com/p/26859843
https://blog.csdn.net/hp910315/article/details/77685139
http://www.enkichen.com/2016/02/26/digital-certificate-based/
https://www.cnblogs.com/JeffreySun/archive/2010/06/24/1627247.html

後記

該文章爲自己研究https通信期間涉及到的相關基礎概念,想通過自己的方式記錄方便後續查找。若有描述有誤之處,還請讀者見諒;歡迎廣大讀者指出文章不足或描述有誤之處。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章