對稱加密和非對稱加密

鏈客,專爲開發者而生,有問必答!算法

此文章來自區塊鏈技術社區,未經容許拒絕轉載。瀏覽器

圖片描述

對稱加密
對稱密鑰是雙方使用相同的密鑰 。
對稱加密的要求
  (1)須要強大的加密算法。算法至少應該知足:即便分析人員知道了算法並能訪問一些或者更多的密文,也不能譯出密文或得出密匙。一般,這個要求以更強硬的形式表達出來,那就是:即便分析人員擁有一些密文和生成密文的明文,也不能譯出密文或者發現密匙。即,加密算法應足以抵抗已知明文類型的破譯。
  (2)發送方和接收方必須用安全的方式來得到保密密匙的副本,必須保證密匙的安全。若是有人發現了密匙,並知道了算法,則使用此密匙的全部通訊便都是可讀取的。
從數學角度理解
  以一個具體例子來講明有助於真正理解對稱加密這概念。假設A須要把一份明文爲M的資料發給B,可是由於怕資料在傳輸的中途被竊聽或者篡改,A用了對稱加密法將M通過一個加密函數Fk處理後生成M'加密文,而B接受到加密文後經過事先商定好的Fk再次處理M'即可以還原成明文M,從而達到安全傳輸信息的目的。安全

  A處: M' = Fk(M)
  B處: M = Fk(M')
對於普通的對稱密碼學,加密運算與解密運算使用一樣的密鑰。一般,使用的對稱加密算法比較簡便高效,密鑰簡短,破譯極其困難,因爲系統的保密性主要取決於密鑰的安全性,因此,在公開的計算機網絡上安全地傳送和保管密鑰是一個嚴峻的問題。正是因爲對稱密碼學中雙方都使用相同的密鑰,所以沒法實現數據簽名和不能否認性等功能。網絡

非對稱加密
非對稱加密爲數據的加密與解密提供了一個很是安全的方法,它使用了一對密鑰,公鑰(public key)和私鑰(private key)。私鑰只能由一方安全保管,不能外泄,而公鑰則能夠發給任何請求它的人。非對稱加密使用這對密鑰中的一個進行加密,而解密則須要另外一個密鑰。
好比,你向銀行請求公鑰,銀行將公鑰發給你,你使用公鑰對消息加密,那麼只有私鑰的持有人--銀行才能對你的消息解密。與對稱加密不一樣的是,銀行不須要將私鑰經過網絡發送出去,所以安全性大大提升。
簽名證書:
簽名證書的用途:加入有A用戶向B用戶發送了信息「A love you」,B接收到以後怎麼肯定就是A發送的呢(由於中間人攻擊中,假如C截獲了A發送的信息後,改爲「C love you」,B是沒法肯定這兩個信息的發送者,因他她們都一樣用B的工要加密),因而產生了簽名證書技術。
簽名證書是由CA用本身的私鑰對用戶的信息進行加密,並把發給用戶的,用戶能夠在發送信息的過程當中附加上本身的簽名證書,讓接受者驗證信息的來源。當接受者接受到發送者的簽名證書後便可用ca的公鑰解密驗證發送者的身份信息。函數

信息傳輸:
  過程:區塊鏈

(1) Alice須要在銀行的網站作一筆交易,她的瀏覽器首先生成了一個隨機數做爲對稱密鑰。
(2) Alice的瀏覽器向銀行的網站請求公鑰。
(3) 銀行將公鑰發送給Alice。
(4) Alice的瀏覽器使用銀行的公鑰將本身的對稱密鑰加密。
(5) Alice的瀏覽器將加密後的對稱密鑰發送給銀行。
(6) 銀行使用私鑰解密獲得Alice瀏覽器的對稱密鑰。
(7) Alice與銀行可使用對稱密鑰來對溝通的內容進行加密與解密了。
採用數字簽名,能完成這些功能:
(1)確認信息是由簽名者發送的;
(2)確認信息自簽名後到收到爲止,未被修改過;
(3)簽名者沒法否定信息是由本身發送的。網站

總結
(1) 對稱加密加密與解密使用的是一樣的密鑰,因此速度快,但因爲須要將密鑰在網絡傳輸,因此安全性不高。
(2) 非對稱加密使用了一對密鑰,公鑰與私鑰,因此安全性高,但加密與解密速度慢。
(3) 解決的辦法是將對稱加密的密鑰使用非對稱加密的公鑰進行加密,而後發送出去,接收方使用私鑰進行解密獲得對稱加密的密鑰,而後雙方可使用對稱加密來進行溝通。加密

相關文章
相關標籤/搜索