golang[34]-區塊鏈-對稱加密與非對稱加密

對稱加密

對稱密鑰加密(英語:Symmetric-key algorithm)又稱爲對稱加密、私鑰加密、共享密鑰加密,是密碼學中的一類加密算法。這類算法在加密和解密時使用相同的密鑰,或是使用兩個可以簡單地相互推算的密鑰。事實上,這組密鑰成爲在兩個或多個成員間的共同祕密,以便維持專屬的通信聯繫。與公開密鑰加密相比,要求雙方獲取相同的密鑰是對稱密鑰加密的主要缺點之一。

常見的對稱加密算法有DES、3DES、AES、Blowfish、IDEA、RC5、RC6。

對稱加密的速度比公鑰加密快很多,在很多場合都需要對稱加密。

非對稱加密

公開密鑰加密(英語:Public-key cryptography),也稱爲非對稱加密(英語:asymmetric cryptography),是密碼學的一種算法,它需要兩個密鑰,一個是公開密鑰,另一個是私有密鑰;一個用作加密的時候,另一個則用作解密。使用其中一個密鑰把明文加密後所得的密文,只能用相對應的另一個密鑰才能解密得到原本的明文;甚至連最初用來加密的密鑰也不能用作解密。由於加密和解密需要兩個不同的密鑰,故被稱爲非對稱加密;不同於加密和解密都使用同一個密鑰的對稱加密。雖然兩個密鑰在數學上相關,但如果知道了其中一個,並不能憑此計算出另外一個;因此其中一個可以公開,稱爲公鑰,任意向外發布;不公開的密鑰爲私鑰,必須由用戶自行嚴格祕密保管,絕不透過任何途徑向任何人提供,也不會透露給要通信的另一方,即使他被信任。

基於公開密鑰加密的特性,它還提供數字簽名的功能,使電子文件可以得到如同在紙本文件上親筆簽署的效果。

公開密鑰基礎建設透過信任數字證書認證機構的根證書、及其使用公開密鑰加密作數字簽名核發的公開密鑰認證,形成信任鏈架構,已在TLS實現並在萬維網的HTTP以HTTPS、在電子郵件的SMTP以STARTTLS引入。

非對稱加密過程

在數學上,d(c(x))=x,讓我們使用典型的愛麗絲與鮑伯假設來解釋:

愛麗絲與鮑伯事先互不認識,也沒有可靠安全的溝通渠道,但愛麗絲現在卻要透過不安全的互聯網向鮑伯發送信息
愛麗絲撰寫好原文,原文在未加密的狀態下稱之爲明文 x
鮑伯使用密碼學安全僞隨機數生成器產生一對密鑰,其中一個作爲公鑰爲 c,另一個作爲私鑰 d
鮑伯可以用任何方法發送公鑰c 給愛麗絲,即使伊夫在中間竊聽到 c 也沒問題
愛麗絲用公鑰c 把明文 x 進行加密,得到密文c(x)
愛麗絲可以用任何方法傳輸密文c(x) 給鮑伯,即使伊夫在中間竊聽到密文 c(x)也沒問題
鮑伯收到密文,用私鑰d 對密文進行解密 d(c(x)),得到愛麗絲撰寫的明文x
由於伊夫沒有得到鮑伯的私鑰d,所以無法得知明文 x
如果愛麗絲丟失了她自己撰寫的原文x,在沒有得到鮑伯的私鑰d 的情況下,她的處境將等同伊夫,即無法透過鮑伯的公鑰c 和密文c(x)重新得到原文x

對比

對稱密鑰加密牽涉到密鑰管理的問題,尤其是密鑰交換,它需要作者和讀者在通信之前先透過另一個安全的渠道交換共享的密鑰,纔可以安全地把密文透過不安全的渠道發送;對稱密鑰一旦被竊,其所作的加密將即時失效;而在互聯網,如果通信雙方分隔異地而素未謀面,則對稱加密事先所需要的“安全渠道”變得不可行;非對稱加密則容許加密公鑰隨便散佈,解密的私鑰不發往任何用戶,只在單方保管;如此,即使公鑰在網上被截獲,如果沒有與其匹配的私鑰,也無法解密,極爲適合在互聯網上使用。
另一方面,公鑰解密的特性可以形成數字簽名,使數據和文件受到保護並可信賴;如果公鑰透過數字證書認證機構籤授成爲電子證書,更可作爲數字身份的認證,這都是對稱密鑰加密無法實現的。
不過,公鑰加密在在計算上相當複雜,性能欠佳、遠遠不比對稱加密;因此,在一般實際情況下,往往通過公鑰加密來隨機創建臨時的對稱祕鑰,亦即對話鍵,然後才通過對稱加密來傳輸大量、主體的數據

image.png

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