時(shí)間:2022-02-19|瀏覽:529
公鑰加密或非對稱加密系統(tǒng)是一種使用公鑰和私鑰的加密系統(tǒng)。它是加密貨幣協(xié)議中最重要的組成部分之一,用于幾個(gè)地方:創(chuàng)建加密貨幣錢包,以確保加密貨幣只能由所有者使用,交易簽名(數(shù)字簽名),這是加密貨幣協(xié)議的核心組成部分。簡而言之,如果您將加密貨幣發(fā)送給他人,請使用您的私鑰(或使用私鑰生成的簽名密鑰)簽署事務(wù),并使用您的公鑰驗(yàn)證事務(wù)。所以,如果黑客得到了你的私鑰,他們可以把你的加密貨幣發(fā)給自己。
生成公鑰和私鑰有兩種算法。例如,比特幣協(xié)議使用橢圓曲線數(shù)字簽名算法(ECDSA)。我將在本文中解釋rivests - shamir - adleman (RSA),并與ECDSA進(jìn)行比較。RSA它是最早、應(yīng)用最廣泛的公鑰密碼系統(tǒng)之一。它的創(chuàng)始人Ron Rivest、AdiShamir和Leonard Adleman名稱命名幾乎成為公鑰密碼的同義詞。
RSA算法
RSA使用模-n (mod n)算術(shù)操作應(yīng)用廣泛。n取余就是x除以n后余數(shù)。例如,17取余5 = 2。RSA通常由三個(gè)主要部分組成(有時(shí)添加公鑰共享是有意義的):
· 生成公鑰和私鑰
· 使用生成的公鑰加密數(shù)據(jù)
· 使用生成的私鑰解密數(shù)據(jù)
生成公鑰和私鑰
為了生成RSA公鑰和私鑰,Alice和Bob實(shí)施以下步驟:
1. 選擇兩個(gè)較大的素?cái)?shù)p和q,數(shù)值越大,RSA解碼越難,解碼時(shí)間越長。
2. 計(jì)算n = pq和z = (p - 1)(q - 1)。
3. 選一個(gè)小于n的數(shù)e,除1外,沒有公因數(shù),z或者它們的最大公約數(shù)(gcd)等于1,gcd(e,z)等于1。在這種情況下,e和z是相對素?cái)?shù)。e將用于加密。
4. 求一個(gè)數(shù)d,使ed - 1能被z另一種方法是對的z = 1取余。d將用于解密。
5. Bob或Alice為世界提供的公鑰是一對數(shù)字(n,e),私鑰必須是一對數(shù)字的秘密(n,d)。
假設(shè)Alice想傳遞一個(gè)訊息給Bob,由“位”模式表示整數(shù)m(明文消息),其中m < n。加密的明文消息m c m ^ = e mod n密文c將發(fā)送給Bob。注意,Alice使用的是Bob的公鑰加密消息。
使用生成的私鑰解密數(shù)據(jù)
要解密收到的密文,Bob計(jì)算m =c^d mod這需要使用他的私鑰(N,d)。
RSA的安全性依賴于這樣一個(gè)事實(shí):對于快速分解(素因子分解)數(shù)字,沒有已知的算法。在本例中,公共值n放入p和q中。
RSA與ECDSA的比較
在ECDA中,私鑰是隨機(jī)生成的整數(shù)。在比特幣協(xié)議中,它是256位(32字節(jié))整數(shù)。ECDSA還可以使用相同的算法,使用不同的橢圓曲線生成公鑰。比特幣協(xié)議使用Secp256k1。在RSA中,密鑰(公鑰、私鑰和簽名)很大,密鑰生成很慢。
另一方面,RSA易于實(shí)現(xiàn),而ECDSA難以實(shí)現(xiàn)。2010年12月,PlayStation 3遭到黑客攻擊,原因是索尼沒有正確實(shí)施該算法。這就是為什么建議使用已經(jīng)測試過的庫(如OpenSSL)來生成ECDSA密鑰對的原因。
熱點(diǎn):加密貨幣 數(shù)據(jù) 比特幣 比特幣 比特幣協(xié)議 錢包