亚洲AV无码黄色高清网站|欧美最黄a级三级片|91久久偷拍视频|福利在线观看视频|BBBB免费在线|免费特级黄毛片男女拍|少妇三级片淫片在线播放|自拍一区免费av自拍|欧美日韩无码青青草AV电影|黄片高清无码视屏

風(fēng)險(xiǎn)提示:理性看待區(qū)塊鏈,提高風(fēng)險(xiǎn)意識(shí)!

如何為區(qū)塊鏈生成公鑰和私鑰?

2個(gè)回答

屁屁歲8星評(píng)價(jià)

2020-04-24 14:09:05

如何為區(qū)塊鏈生成公鑰和私鑰?

公鑰加密或稱(chēng)非對(duì)稱(chēng)加密體制,是一種使用公鑰和私鑰對(duì)的加密體制。它是加密貨幣協(xié)議中最重要的部分之一,它被用于幾個(gè)地方:加密貨幣錢(qián)包的創(chuàng)建,以確保加密貨幣只能由所有者使用,交易簽名(數(shù)字簽名),這是加密貨幣協(xié)議的核心組件。簡(jiǎn)而言之,如果您將加密貨幣發(fā)送給其他人,則使用您的私鑰(或使用私鑰生成的簽名密鑰)對(duì)該事務(wù)進(jìn)行簽名,并且使用您的公鑰驗(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ùn)算。對(duì)n取余就是x除以n后的余數(shù)。例如,17取余5 = 2。RSA通常由三個(gè)主要部分組成(有時(shí)添加公鑰共享是有意義的):

· 生成公鑰和私鑰

· 使用生成的公鑰加密數(shù)據(jù)

· 使用生成的私鑰解密數(shù)據(jù)

生成公鑰和私鑰

為了生成RSA的公鑰和私鑰,Alice和Bob(這兩個(gè)虛構(gòu)的角色已經(jīng)成為討論密碼學(xué)的行業(yè)標(biāo)準(zhǔn))執(zhí)行以下步驟:

1. 選擇兩個(gè)較大的素?cái)?shù)p和q,數(shù)值越大,RSA越難破解,但編碼解碼的時(shí)間越長(zhǎng)。

2. 計(jì)算n = pq和z = (p - 1)(q - 1)。

3. 選擇一個(gè)小于n的數(shù)e,除1外沒(méi)有公因數(shù),z或它們的最大公約數(shù)(gcd)等于1,gcd(e, z)等于1。在這種情況下,e和z是相對(duì)素?cái)?shù)。e將用于加密。

4. 求一個(gè)數(shù)d,使ed - 1能被z整除,另一種方法是對(duì)z = 1取余。d將用于解密。

5. Bob或Alice提供給世界的公鑰是一對(duì)數(shù)字(n, e),而私有密鑰必須是秘密的,是一對(duì)數(shù)字(n, d)。

使用生成的公鑰加密數(shù)據(jù)

假設(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的安全性依賴(lài)于這樣一個(gè)事實(shí):對(duì)于快速分解(素因子分解)數(shù)字,沒(méi)有已知的算法。在本例中,公共值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遭到黑客攻擊,原因是索尼沒(méi)有正確實(shí)施該算法。這就是為什么建議使用已經(jīng)測(cè)試過(guò)的庫(kù)(如OpenSSL)來(lái)生成ECDSA密鑰對(duì)的原因。

大約一年前,我實(shí)現(xiàn)了一個(gè)名為eccpem的開(kāi)源庫(kù),并安裝了GitHub,它生成ECDSA密鑰對(duì),并使用OpenSSL庫(kù)將它們存儲(chǔ)在.pem文件中。

結(jié)論

大多數(shù)加密貨幣協(xié)議使用ECDSA(我認(rèn)為這是有意義的)而不是RSA。至少有兩個(gè)原因:

· ECDSA使用的內(nèi)存比RSA少得多。

· ECDSA比RSA快。


洋洋.3星評(píng)價(jià)

2020-04-24 14:09:51

私鑰是怎么來(lái)的?

原始的私鑰格式是256位的二進(jìn)制(2的256次方),大概長(zhǎng)下面這樣:

1 1 1 0 1 1 0 1 0 0 0 1 0 0 1 0 0 1 1 1 1 0 1 1 0 1 0 0 01 0 0 1 0 0 1 1 1 1 0 1 1 0 1 0 0 0 1 0 0 1 0 0 1 1 1 1 0 1 1 0 1 0 0 01 0 0 1 0 0 1 1 1 1 0 1 1 0 1 0 0 0 1 0 0 1 0 0 1 1 1 1 0 1 1 0 1 0 0 01 0 0 1 0 0 1 1 1 1 0 1 1 0 1 0 0 0 1 0 0 1 0 0 1 1 1 1 0 1 1 0 1 0 0 01 0 0 1 0 0 1 1 1 1 0 1 1 0 1 0 0 0 1 0 0 1 0 0 1 1 1 1 0 1 1 0 1 0 0 01 0 0 1 0 0 1 1 1 1 0 1 1 0 1 0 0 0 1 0 0 1 0 0 1 1 1 1 0 1 1 0 1 0 0 01 0 0 1 0 0 1 1 1 1 0 1 1 0 1 0 0 0 1 0 0 1 0 0 1 1 1 1 0 1 1 0 1 0 0 01 0 0 1 0 0 1 1 1 1 0

私鑰本質(zhì)上是數(shù)字,相當(dāng)于從1 到2^256(2的256次方)之間選一個(gè)數(shù)字。

硬幣正面為1,反面為0,拋硬幣256次,記錄下來(lái)全過(guò)程就相當(dāng)于生成了一個(gè)私鑰。但是大家的時(shí)間是寶貴的,肯定不能通過(guò)拋硬幣來(lái)生成私鑰。

私鑰都是由錢(qián)包來(lái)生成的,而不是人設(shè)定的

由于私鑰的原始格式非常長(zhǎng),直接由用戶(hù)設(shè)定是非常麻煩的。所以這個(gè)工作由錢(qián)包來(lái)完成了。為了保證私鑰的安全性,錢(qián)包會(huì)“非常隨機(jī)”的來(lái)生成私鑰。

所以大家在創(chuàng)建錢(qián)包的時(shí)候,是不需要設(shè)定私鑰的,而是設(shè)定“轉(zhuǎn)賬密碼”或者“開(kāi)啟APP的PIN碼”之類(lèi)的密碼,他們并不是私鑰!

目前很多錢(qián)包都是HD錢(qián)包(什么是HD錢(qián)包?)只需要備份助記詞即可,簡(jiǎn)化了創(chuàng)建新私鑰和備份私鑰的方式。

公鑰是怎么來(lái)的?

我們已經(jīng)講了:

公鑰:由私鑰生成的。公鑰的作用是跟簽名配合用來(lái)證明“我就是私鑰的主人。

公鑰是需要公開(kāi)出去的,所以公鑰需要具備幾個(gè)特性

公鑰必須由私鑰生成,這樣才能證明“我就是私鑰的主人”

公鑰不能倒推得出私鑰,不然相當(dāng)于把私鑰告訴別人

私鑰通過(guò)橢圓曲線加密生成了公鑰。

之所以用橢圓曲線,是因?yàn)樗麧M足了上面提到的2個(gè)特性:

私鑰可以通過(guò)橢圓曲線加密非常容易的創(chuàng)建公鑰,他倆具有一一對(duì)應(yīng)的關(guān)系。

通過(guò)公鑰來(lái)求出私鑰是非常困難的。

橢圓曲線加密有多安全呢?

RSA加密算法是生活中常用的加密手段,大家登陸網(wǎng)銀,支付寶的時(shí)候就會(huì)用到。這種加密算法已經(jīng)用了很多年,歷史證明RSA是非常安全的(至少到目前為止)。

如果把兩者進(jìn)行比較的話:

假如破解RSA算法需要的能量只夠燒開(kāi)一瓢水,

那么破解橢圓曲線密碼需要的能量夠把整個(gè)地球上的水都燒開(kāi)。