對稱加密,顧名思義就是公鑰和私鑰都是同乙個,只有一把金鑰,那麼金鑰的共享就需要特別注意,容易洩露。但是由於它的加密效率高(速度快、占用空間小),主要用在大量資料的加密,往往需要提前分發金鑰。
對稱密碼從實現上可以分為兩種:分組密碼和序列密碼。前者將明文切分為定長資料塊作為基本加密單位,應用最為廣泛。後者則每次只對乙個位元組或字元進行加密處理,且密碼不斷變化,只用在一些特定領域,如數字媒介的加密等。
分組密碼其中代表演算法有des、aes等。aes目前尚未出現有效的破解手段。
位元幣中使用的對稱加密演算法為aes演算法,具體來說是aes256。用於位元幣錢包的私鑰加密。採用使用者設定的密碼通過aes對錢包私鑰進行加密,確保客戶端私鑰的安全。下面從原始碼使用來看看,位址為:
secret_key是用來加密的金鑰,位元幣使用的非對稱加密的私鑰,為了方便,上面是我隨意寫的。
public_key_hash_first_half是用來混合加密的,位元幣中使用的是serialize後的公鑰,經過sha256後,取前128位。
上面的**是對 msg 加密,加密結果儲存在vchciphertext。 下面來看看如何解密:
解密時,同樣需要傳入secret_key和public_key_hash_first_half。對vchciphertext進行解密,揭秘結果放在quondam_msg中。顯而易見,quondam_msg的內容為1,2,3。
至此,aes256如何加密解密使用介紹完畢。密碼學這塊,是無數「密碼朋克」的心血結晶,密碼學這塊比較特殊,極其嚴謹,需要經過大量使用驗證的。即使知道原理,也不見得可以對它進行修改,因為你無法保證「你搗鼓出來的」安全性如何。所以筆者覺得,如果你不是專門研究密碼學的高手,知道核心細節和不知道核心細節區別不大。密碼學這塊還是選用出名的、成熟的加密演算法為上上策。以太坊和eos也是選用了和位元幣一樣的secp256k1。原因恐怕也是如此。
區塊鏈技術 密碼學
1 對稱加密 用相同金鑰對原文進行加密和解密 加密過程 金鑰 原文 密文 解密過程 密文 金鑰 原文 缺點 無法確保金鑰被安全傳遞 2 非對稱加密 公鑰 私鑰,ras演算法 公鑰用於加密,私鑰用於解密。私鑰簽名,公鑰解簽名。公鑰由私鑰生產,私鑰可以推導出公鑰 從公鑰無法推導出私鑰 優點 解決了金鑰傳...
區塊鏈與密碼學
在學完大概了密碼學的知識,其實也只是看完了dan boneh的那本密碼學的書,現在開始密碼學與區塊鏈的結合學習,因為我自己是主要針對密碼學和區塊鏈的,但是去學習密碼學在區塊鏈上面的一些應用,就可以使得對密碼學有更深刻的了解,因為密碼學擁有很龐大的體系,所以我只能這樣去慢慢摸索。因為我有很多學習的內容...
區塊鏈的密碼學基礎
1 雜湊函式的三個重要的性質 a.collision resistance 什麼是collision?當x y但h x h y 這時就稱為乙個collision。什麼是collision resistance?比方說有個x1,他的雜湊值是h x1 但我們很難找出乙個x2來,使他的h x2 h x1 ...