如何為區塊鏈生成公鑰和私鑰

買賣虛擬貨幣
公鑰加密或稱非對稱加密體制,是一種使用公鑰和私鑰對的加密體制。它是加密貨幣協議中最重要的部分之一,它被用於幾個地方:加密貨幣錢包的建立,以確保加密貨幣只能由所有者使用,交易簽名(數字簽名),這是加密貨幣協議的核心元件。簡而言之,如果您將加密貨幣傳送給其他人,則使用您的私鑰(或使用私鑰生成的簽名金鑰)對該事務進行簽名,並且使用您的公鑰驗證事務。所以,如果駭客獲得了你的私鑰,他們就可以把你的加密貨幣發給自己。
生成公鑰和私鑰有兩種演算法。例如,比特幣協議使用橢圓曲線數字簽名演算法(ECDSA)。在本文中,我將解釋rivests - shamir - adleman (RSA),並與ECDSA進行比較。RSA是最早、應用最廣泛的公鑰密碼系統之一。它以其創始人Ron Rivest、AdiShamir和Leonard Adleman的名字命名,幾乎成為公鑰密碼的同義詞。RSA演算法RSA使用模-n (mod n)演算法廣泛地使用算術運算。對n取餘就是x除以n後的餘數。例如,17取餘5 = 2。RSA通常由三個主要部分組成(有時新增公鑰共享是有意義的):· 生成公鑰和私鑰
· 使用生成的公鑰加密資料· 使用生成的私鑰解密資料生成公鑰和私鑰為了生成RSA的公鑰和私鑰,Alice和Bob(這兩個虛構的角色已經成為討論密碼學的行業標準)執行以下步驟:1. 選擇兩個較大的素數p和q,數值越大,RSA越難破解,但編碼解碼的時間越長。2. 計算n = pq和z = (p - 1)(q - 1)。
3. 選擇一個小於n的數e,除1外沒有公因數,z或它們的最大公約數(gcd)等於1,gcd(e, z)等於1。在這種情況下,e和z是相對素數。e將用於加密。4. 求一個數d,使ed - 1能被z整除,另一種方法是對z = 1取餘。d將用於解密。5. Bob或Alice提供給世界的公鑰是一對數字(n, e),而私有金鑰必須是秘密的,是一對數字(n, d)。使用生成的公鑰加密資料假設Alice想傳遞一個訊息給Bob,由“位”模式表示整數m(明文訊息),其中m < n。加密的明文訊息m c m ^ = e mod n密文c將傳送給Bob。注意,Alice使用的是Bob的公鑰加密訊息。使用生成的私鑰解密資料
要解密收到的密文,Bob計算m =c^d mod這需要使用他的私鑰(N,d)。RSA的安全性依賴於這樣一個事實:對於快速分解(素因子分解)數字,沒有已知的演算法。在本例中,公共值n放入p和q中。RSA與ECDSA的比較在ECDA中,私鑰是隨機生成的整數。在比特幣協議中,它是256位(32位元組)整數。ECDSA還可以使用相同的演算法,使用不同的橢圓曲線生成公鑰。比特幣協議使用Secp256k1。在RSA中,金鑰(公鑰、私鑰和簽名)很大,金鑰生成很慢。另一方面,RSA易於實現,而ECDSA難以實現。2010年12月,PlayStation 3遭到駭客攻擊,原因是索尼沒有正確實施該演算法。這就是為什麼建議使用已經測試過的庫(如OpenSSL)來生成ECDSA金鑰對的原因。大約一年前,我實現了一個名為eccpem的開源庫,並安裝了GitHub,它生成ECDSA金鑰對,並使用OpenSSL庫將它們儲存在.pem檔案中。
結論大多數加密貨幣協議使用ECDSA(我認為這是有意義的)而不是RSA。至少有兩個原因:· ECDSA使用的記憶體比RSA少得多。

· ECDSA比RSA快。


更多區塊鏈資訊:www.qukuaiwang.com.cn/news

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;