- 區塊鏈應用開發指南:業務場景剖析與實戰
- 熊麗兵 董一凡等
- 1078字
- 2022-07-28 20:18:05
2.6.2 比特幣中的公鑰加密
將公鑰加密技術用于比特幣區塊鏈,主要目的是創建關于用戶身份的安全數字參考。有關“誰是誰”以及“誰擁有什么”的安全數字參考是P2P交易的基礎。公鑰加密允許使用一組加密密鑰證明一個人的身份:私鑰和公鑰。兩個鍵的組合創建了數字簽名。這個數字簽名證明了一個人的代幣所有權,并允許通過一個稱為“錢包”的商品來控制代幣。數字簽名證明了一個代幣的所有權,并允許一個人控制一個人的資金。正如我們手工簽署銀行交易或支票,或者我們使用身份驗證進行網上銀行業務一樣,我們使用公鑰加密技術來簽署比特幣交易或其他區塊鏈交易。
在公鑰加密中,雙方分發其公鑰并允許任何人使用其公鑰加密消息。公鑰是從私鑰數學生成的。雖然從私鑰計算公鑰非常容易,反過來卻只能用粗暴的力量來實現。猜測鑰匙是可能的,但是代價非常大。因此,如果知道公鑰,則不是問題,但私鑰必須始終保密。這意味著,即使每個人都知道一個人的公鑰,也沒有人可以從中獲取一個私鑰。現在,消息可以安全地傳送給私鑰所有者,只有該私鑰的所有者能夠使用與公鑰關聯的私鑰解密消息。這種方法也可以反過來。使用私鑰簽名的任何消息都可以使用相應的公鑰進行驗證。該方法也稱為“數字簽名”。
公鑰的模擬示例是掛鎖的示例。讓我們假設,小明和小李想要私下交流,因此他們都購買掛鎖。如果小李想要向小明發送消息,但是害怕有人可能攔截并閱讀它,他會要求小明將掛鎖(解鎖)發送給他。小李現在可以將他的信放在一個小盒子里并用小明發給他的掛鎖鎖上。這封信可以在世界各地發送,而不會被未經授權的人攔截。只有擁有掛鎖鑰匙的小明才能打開這封信。當然,有人可以嘗試打破盒子(蠻力),而不是使用鑰匙。這是可能的,但困難取決于盒子的彈性和鎖的強度。
公鑰加密中的關鍵問題是,增加從公鑰導出私鑰的難度,同時不會導致從私鑰導出公鑰的難度同時增加。通過猜測結果來破解加密有多難、猜測私鑰需要多長時間,以及它有多貴?私鑰由數字表示,這意味著數字越大,不知道該數字的人就越難猜測。隨著計算機變得更快、更高效,我們必須提出更復雜的算法,無論是使用更大的數字還是發明更具彈性的算法。
如果猜測一個隨機數需要幾十年的時間,那么該數字就被認為是安全的。每種加密算法都容易受到所謂的暴力攻擊,這種攻擊是指通過嘗試所有可能的組合來猜測我們的私鑰,直到找到解決方案為止。為了確保難以猜測數字,彈性私鑰具有最低要求:它必須是(1)隨機生成的數字。它需要是一個(2)非常大的數字。它必須使用(3)安全算法來生成密鑰。隨機性非常重要,因為我們不希望任何其他人或機器使用相同的密鑰,并且人類不善于提出隨機性。
- GitHub Essentials
- Voice Application Development for Android
- Oracle RAC 11g實戰指南
- 達夢數據庫性能優化
- 基于OPAC日志的高校圖書館用戶信息需求與檢索行為研究
- Hands-On Mathematics for Deep Learning
- 重復數據刪除技術:面向大數據管理的縮減技術
- 跨領域信息交換方法與技術(第二版)
- 大數據分析:數據倉庫項目實戰
- Python 3爬蟲、數據清洗與可視化實戰
- 數字化轉型實踐:構建云原生大數據平臺
- Oracle 11g數據庫管理與開發基礎教程
- 一類智能優化算法的改進及應用研究
- 數據中心UPS系統運維
- Learning Construct 2