關於對稱加密和非對稱加密以及簽名,認證和證書的理解

2021-08-18 15:15:56 字數 1438 閱讀 2355

1.對稱加密演算法

對稱加密演算法的加密和解密使用的密匙是相同的,也就是說如果通訊兩方如果使用對稱加密演算法來加密通訊資料,那麼通訊雙方就需要都知道這個密匙,收到通訊資料後用這個密匙來解密資料。

2.非對稱演算法

非對稱演算法中用到的密匙有兩個,分別是公匙和私匙,要求通訊雙方都有自己的公匙和私匙,自己公匙加密的資料只有自己的私匙才能解開,自己私匙加密的資料也只有自己的公匙才能解開。公匙是可以公布在網路上的,相當於乙個公共的**簿,可以被其他人獲取到的。

以乙個通訊的例子來說明非對稱演算法:

a 要和 b 進行通訊,a在網路上獲取到b的公匙,然後把資料用b的公匙進行加密傳送給b,b收到了資料後就用自己的私匙進行解密資料,然後就可以看到資料內容了,即使在網路傳輸中加密資料被黑客擷取,由於黑客沒有對應的私匙,他也無法解密資料進行檢視。

在通訊中對稱加密演算法比較高效,但是需要告知對方加密鑰匙,在實際運用時比較麻煩,所以一般都是用非對稱加密演算法來加密對稱加密演算法的鑰匙,然後傳送給對方,對方收到對稱加密演算法的鑰匙後,後續通訊就用對稱加密演算法來加密訊息內容了

3.簽名和認證

在兩個人進行通訊,b如何確保收到的a的資料就一定是a自己發出來的而不是黑客偽裝成a傳送的資料,以及怎麼確定資料是否被黑客篡改,這裡就用到簽名和認證來確認發件人和資料是否被篡改。

a準備給b傳送一段資訊,a先將訊息進行雜湊運算,得到訊息摘要(md5),然後用自己的私匙對摘要進行加密,然後再用b的公鑰對訊息內容和已經加密過的摘要進行加密,這樣當b收到這條訊息時,先用自己的私匙來解密,得到訊息內容和加密的資訊摘要,再用a的公匙來解密這段加密摘要(能正確解密就說明這段訊息是a傳送的,因為只有a的公匙才能解開a的私匙),解密摘要後得到資訊內容的摘要a,然後在用同樣的雜湊演算法來對已經解密好的資訊內容進行運算,得到乙個資訊摘要b,再把a和b進行對比,一致則說明資料沒有被篡改過。(資訊摘要是根據對訊息內容進行雜湊運算得到乙個唯一的標識碼,除非資料相同,否則幾乎不可能由其他資料運算得到此標識碼,所以它是唯一的,只要資訊內容有一點改變,再次進行雜湊運算時得到標識碼就會改變,所以可以對解密後的資訊進行雜湊運算得到摘要然後和傳送過來的資訊摘要進行對比判斷資料是否被修改)

4.證書

與數字簽名相關的乙個概念就是證書機制了,證書是用來做什麼呢?在上面的各種模式中,我們一直使用了這樣乙個假設,就是接收方或者傳送方所持有的、對方的公鑰總是正確的(確實是對方公布的)。而實際上除非對方手把手將公鑰交給我們,否則如果不採取措施,雙方在網路中傳遞公鑰時,一樣有可能被篡改。那麼怎樣解決這個問題呢?這時就需要證書機制了:可以引入乙個公正的第三方,當某一方想要發布公鑰時,它將自身的身份資訊及公鑰提交給這個第三方,第三方對其身份進行證實,如果沒有問題,則將其資訊和公鑰打包成為證書(certificate)。而這個公正的第三方,就是常說的證書頒發機構(certificate authority)。當我們需要獲取公鑰時,只需要獲得其證書,然後從中提取出公鑰就可以了。

對稱加密和非對稱加密!

主要是對稱加密和非對稱加密兩種。可供各位參考 using system using system.collections.generic using system.linq using system.text using system.security.cryptography using syst...

對稱加密和非對稱加密!

對稱加密演算法 對稱加密演算法是應用較早的加密演算法,技術成熟。在對稱加密演算法中,資料發信方將明文 原始資料 和加密金鑰一起經過特殊加密演算法處理後,使其變成複雜的加密密文傳送出去。收信方收到密文後,若想解讀原文,則需要使用加密用過的金鑰及相同演算法的逆演算法對密文進行解密,才能使其恢復成可讀明文...

對稱加密和非對稱加密

對稱加密是最快速 最簡單的一種加密方式,加密 encryption 與解密 decryption 用的是同樣的金鑰 secretkey 對稱加密有很多種演算法,由於它效率很高,所以被廣泛使用在很多加密協議的核心當中。非對稱加密為 資料的加密 與解密提供了乙個非常安全的方法,它使用了一對金鑰,公鑰 p...