- 區(qū)塊鏈應(yīng)用開發(fā)指南:業(yè)務(wù)場景剖析與實(shí)戰(zhàn)
- 熊麗兵 董一凡等
- 1078字
- 2022-07-28 20:18:05
2.6.2 比特幣中的公鑰加密
將公鑰加密技術(shù)用于比特幣區(qū)塊鏈,主要目的是創(chuàng)建關(guān)于用戶身份的安全數(shù)字參考。有關(guān)“誰是誰”以及“誰擁有什么”的安全數(shù)字參考是P2P交易的基礎(chǔ)。公鑰加密允許使用一組加密密鑰證明一個人的身份:私鑰和公鑰。兩個鍵的組合創(chuàng)建了數(shù)字簽名。這個數(shù)字簽名證明了一個人的代幣所有權(quán),并允許通過一個稱為“錢包”的商品來控制代幣。數(shù)字簽名證明了一個代幣的所有權(quán),并允許一個人控制一個人的資金。正如我們手工簽署銀行交易或支票,或者我們使用身份驗證進(jìn)行網(wǎng)上銀行業(yè)務(wù)一樣,我們使用公鑰加密技術(shù)來簽署比特幣交易或其他區(qū)塊鏈交易。
在公鑰加密中,雙方分發(fā)其公鑰并允許任何人使用其公鑰加密消息。公鑰是從私鑰數(shù)學(xué)生成的。雖然從私鑰計算公鑰非常容易,反過來卻只能用粗暴的力量來實(shí)現(xiàn)。猜測鑰匙是可能的,但是代價非常大。因此,如果知道公鑰,則不是問題,但私鑰必須始終保密。這意味著,即使每個人都知道一個人的公鑰,也沒有人可以從中獲取一個私鑰。現(xiàn)在,消息可以安全地傳送給私鑰所有者,只有該私鑰的所有者能夠使用與公鑰關(guān)聯(lián)的私鑰解密消息。這種方法也可以反過來。使用私鑰簽名的任何消息都可以使用相應(yīng)的公鑰進(jìn)行驗證。該方法也稱為“數(shù)字簽名”。
公鑰的模擬示例是掛鎖的示例。讓我們假設(shè),小明和小李想要私下交流,因此他們都購買掛鎖。如果小李想要向小明發(fā)送消息,但是害怕有人可能攔截并閱讀它,他會要求小明將掛鎖(解鎖)發(fā)送給他。小李現(xiàn)在可以將他的信放在一個小盒子里并用小明發(fā)給他的掛鎖鎖上。這封信可以在世界各地發(fā)送,而不會被未經(jīng)授權(quán)的人攔截。只有擁有掛鎖鑰匙的小明才能打開這封信。當(dāng)然,有人可以嘗試打破盒子(蠻力),而不是使用鑰匙。這是可能的,但困難取決于盒子的彈性和鎖的強(qiáng)度。
公鑰加密中的關(guān)鍵問題是,增加從公鑰導(dǎo)出私鑰的難度,同時不會導(dǎo)致從私鑰導(dǎo)出公鑰的難度同時增加。通過猜測結(jié)果來破解加密有多難、猜測私鑰需要多長時間,以及它有多貴?私鑰由數(shù)字表示,這意味著數(shù)字越大,不知道該數(shù)字的人就越難猜測。隨著計算機(jī)變得更快、更高效,我們必須提出更復(fù)雜的算法,無論是使用更大的數(shù)字還是發(fā)明更具彈性的算法。
如果猜測一個隨機(jī)數(shù)需要幾十年的時間,那么該數(shù)字就被認(rèn)為是安全的。每種加密算法都容易受到所謂的暴力攻擊,這種攻擊是指通過嘗試所有可能的組合來猜測我們的私鑰,直到找到解決方案為止。為了確保難以猜測數(shù)字,彈性私鑰具有最低要求:它必須是(1)隨機(jī)生成的數(shù)字。它需要是一個(2)非常大的數(shù)字。它必須使用(3)安全算法來生成密鑰。隨機(jī)性非常重要,因為我們不希望任何其他人或機(jī)器使用相同的密鑰,并且人類不善于提出隨機(jī)性。
- 同步:秩序如何從混沌中涌現(xiàn)
- 計算機(jī)綜合設(shè)計實(shí)驗指導(dǎo)
- 云計算環(huán)境下的信息資源集成與服務(wù)
- SQL Server 2012數(shù)據(jù)庫技術(shù)與應(yīng)用(微課版)
- 計算機(jī)信息技術(shù)基礎(chǔ)實(shí)驗與習(xí)題
- 新型數(shù)據(jù)庫系統(tǒng):原理、架構(gòu)與實(shí)踐
- UDK iOS Game Development Beginner's Guide
- 數(shù)據(jù)架構(gòu)與商業(yè)智能
- Python金融數(shù)據(jù)分析(原書第2版)
- 數(shù)字IC設(shè)計入門(微課視頻版)
- 數(shù)據(jù)賦能
- 企業(yè)級大數(shù)據(jù)項目實(shí)戰(zhàn):用戶搜索行為分析系統(tǒng)從0到1
- 數(shù)據(jù)之美:一本書學(xué)會可視化設(shè)計
- MySQL性能調(diào)優(yōu)與架構(gòu)設(shè)計
- AI Crash Course