加密解密學習筆記

加密解密學習筆記

基礎知識

公鑰密碼體制(public-key cryptography)

公鑰密碼體制分爲三個部分,公鑰、私鑰、加密解密算法,它的加密解密過程如下:

加密:通過加密算法和公鑰對內容(或者說明文)進行加密,得到密文。

解密:通過解密算法和私鑰對密文進行解密,得到明文。

注意,由公鑰加密的內容,只能由私鑰進行解密,也就是說,由公鑰加密的內容,如果不知道私鑰,是無法解密的。公鑰密碼體制的公鑰和算法都是公開的(這是爲什麼叫公鑰密碼體制的原因),私鑰是保密的。大家都以使用公鑰進行加密,但是隻有私鑰的持有者才能解密。在實際的使用中,有需要的人會生成一對公鑰和私鑰,把公鑰發佈出去給別人使用,自己保留私鑰。

對稱加密算法(symmetric key algorithms)

在對稱加密算法中,加密使用的密鑰和解密使用的密鑰是相同的。也就是說,加密和解密都是使用的同一個密鑰。因此對稱加密算法要保證安全性的話,密鑰要做好保密,只能讓使用的人知道,不能對外公開。這個和上面的公鑰密碼體制有所不同,公鑰密碼體制中加密是用公鑰,解密使用私鑰,而對稱加密算法中,加密和解密都是使用同一個密鑰,不區分公鑰和私鑰。        

密鑰,一般就是一個字符串或數字,在加密或者解密時傳遞給加密/解密算法。

非對稱加密算法(asymmetric key algorithms)

在非對稱加密算法中,加密使用的密鑰和解密使用的密鑰是不相同的。前面所說的公鑰密碼體制就是一種非對稱加密算法,他的公鑰和是私鑰是不能相同的。這裏的“非對稱”就是指加密使用的密鑰和解密使用的密鑰不同。RSA密碼體制是一種公鑰密碼體制,公鑰公開,私鑰保密,它的加密解密算法是公開的。 由公鑰加密的內容可以並且只能由私鑰進行解密,並且由私鑰加密的內容可以並且只能由公鑰進行解密。

加密和簽名

我們說加密,是指對某個內容加密,加密後的內容還可以通過解密進行還原。 比如我們把一封郵件進行加密,加密後的內容在網絡上進行傳輸,接收者在收到後,通過解密可以還原郵件的真實內容。

簽名就是在信息的後面再加上一段內容,可以證明信息沒有被修改過,怎麼樣可以達到這個效果呢?一般是對信息做一個hash計算得到一個hash值(稱爲數字摘要),注意,這個過程是不可逆的,也就是說無法通過hash值得出原來的信息內容。在把信息發送出去時,把這個hash值(數字摘要)加密(以保證不被修改)作爲一個簽名,和信息一起發出去。 接收方在收到信息後,會重新計算信息的hash值,並將信息所附帶簽名解密得到一個值,對比這兩個值,如果一致,就說明信息的內容沒有被修改過。不同的明文的hash值(數字摘要)不同,相同的明文的hash值(數字摘要)肯定相同。

數字證書

數字證書就是互聯網通訊中標誌通訊各方身份信息的一串數字,提供了一種在Internet上驗證通信實體身份的方式,它是由權威機構——CA(Certificate Authority 認證中心,認證授權,證書頒發機構)發行的,CA作爲電子商務交易中受信任的第三方,承擔公鑰體系中公鑰的合法性檢驗的責任,人們可以在網上用之來識別對方的身份。

證書的格式遵循ITUT X.509國際標準。一般包括公開密鑰、名稱,證書授權中心的數字簽名,有效日期等:

Issuer : SecureTrust CA

Subject : ABC Company

Valid from : 某個日期

Valid to: 某個日期P

ublic Key : 一串很長的數字……

數字證書可以保證數字證書裏的公鑰確實是這個證書的所有者(Subject,表明這個證書是發佈給誰的)的,或者證書可以用來確認對方的身份。也就是說,我們拿到一個數字證書,我們可以判斷出這個數字證書到底是誰的。

數字證書綁定了公鑰及其持有者的真實身份,是含有證書持有者身份信息並經過認證中心審覈簽發的電子數據(128位的身份碼)。

數字證書頒發過程一般爲:用戶首先產生自己的密鑰對,並將公共密鑰及部分個人身份信息傳送給認證中心。認證中心在覈實身份後,將執行一些必要的步驟,以確信請求確實由用戶發送而來,然後,認證中心將發給用戶一個數字證書,該證書內包含用戶的個人信息和他的公鑰信息,同時還附有認證中心的簽名信息。用戶就可以使用自己的數字證書進行相關的各種活動。數字證書各不相同。

證書,私鑰如何保護

數字證書可以在網上公開,並不怕別人盜用和篡改。因爲證書的盜用者在沒有掌握相應的私鑰的情況下,盜用別人的證書既不能完成加密通信,又不能實現數字簽名,沒有任何實際用處。而且,由於有CA對證書內容進行了數字簽名,在網上公開的證書也不怕黑客篡改。我們說,更該得到保護的是儲存在介質中的私鑰。如果黑客同時盜走了證書和私鑰,危險就會降臨。

 

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