在《想要安全地保管資產(chǎn),先要知道錢包的這些知識》中,我們可以了解到在區(qū)塊鏈的這些錢包中,公鑰可以比作是銀行賬戶,而賬戶地址類似于銀行卡號,私鑰可以被看成銀行卡號以及銀行卡密碼的組合。
這樣一類比似乎對區(qū)塊鏈中的私鑰、公鑰、地址這些名詞有了比較清晰的認(rèn)識,但是其實在這些名詞的背后的理論支撐是非對稱加密技術(shù),它是什么樣的技術(shù)呢,今天大白就給大家科普一下。
01對稱加密是什么?
首先,在講非對稱加密之前,先簡單講一下對稱加密。
對稱加密也叫做單密鑰加密,指的是用同一個密鑰對信息進(jìn)行加密和解密。簡單講就是上鎖和開鎖都是一把鑰匙。
比如在現(xiàn)實生活中,你想寄一封信給你的朋友,為了信的內(nèi)容不被他人剽竊,你會想著用一把鑰匙把信件鎖在安全的柜子里,然后再將物品連同柜子一起寄給朋友,而你的朋友只能用你這把鑰匙才能打開這個柜子進(jìn)而取出信件。
這樣一來就保證了信件在郵寄過程中不被他人看到。在密碼學(xué)中以上過程可以理解為如下:
在上圖的過程中,"上鎖"和"開鎖"都用的同一把鑰匙,這把鑰匙就相當(dāng)于對稱加密中的"私鑰",而"上鎖"和"開鎖"過程就相當(dāng)于"加密"和"解密"過程,"信件"則是我們要加密的信息,信息加密后則是"密文",解密后則是"明文"。
但是細(xì)心的小伙伴可能會想到,信件上鎖放入柜子固然安全,但是開這個柜子必須要用上鎖的那把鑰匙,那么問題是這把鑰匙怎么給朋友?
鑰匙一旦選擇郵寄,那就存在安全隱患,除非親手把鑰匙給朋友,那這樣的話干嘛不親手把信件直接給朋友。所以對稱加密的一個問題是密鑰配送困難問題。
針對密鑰配送這一難題,密碼學(xué)史上偉大的發(fā)明——非對稱加密出現(xiàn)了。
02非對稱加密是什么?
非對稱加密有一對密鑰,分別是私鑰和公鑰,公鑰和私鑰一一對應(yīng),私鑰需要保密,而公鑰則是可以公開的。加密和解密不是用同一個密鑰。
回到之前的例子,你朋友去配了一對鑰匙(鑰匙A和鑰匙B),鑰匙A上鎖柜子之后,必須要鑰匙B才能開鎖柜子。
你朋友把鑰匙A郵寄給你,你用這把鑰匙把信件鎖到柜子中,然后將柜子郵寄給你朋友,你朋友用鑰匙B打開柜子取出信件。
細(xì)心的小伙伴又想到了,朋友把鑰匙A寄給自己的時候,可能會被快遞人員偷配鑰匙,但是快遞人員即使持有鑰匙A,他也不能打開柜子,因為鑰匙A上鎖柜子之后,只有鑰匙B才能開鎖,整個過程,鑰匙B一直在朋友手上,只要朋友不把鑰匙B弄丟,這個柜子就只能由朋友打開。
在非對稱加密中,鑰匙A就相當(dāng)于公鑰,它被人知道也沒有關(guān)系,鑰匙B相當(dāng)于私鑰,它需要持有人小心保存,不能丟失。
"上鎖柜子"和"開鎖柜子"相對于"加密過程"和"解密過程",而且在非對稱加密中,最重要的是加密和解密用的不是同一把密鑰,而是一對密鑰,即私鑰和公鑰。
比特幣公鑰就是通過私鑰推導(dǎo)而來,公鑰繼續(xù)轉(zhuǎn)換變成賬戶地址,而且是不能反向推導(dǎo)出私鑰的,私鑰和公鑰是一對,用戶需要妥善保管好自己的私鑰,而公鑰和賬戶地址都是可以公開的。
上述過程體現(xiàn)的是公鑰加密,私鑰解密。區(qū)塊鏈中當(dāng)別人給你轉(zhuǎn)賬的時候,你的收款地址(公鑰)是公開給他人的,而轉(zhuǎn)入的資產(chǎn)只有持有私鑰的你才可以"解密"它,對它自由支配。
還有一種情況是私鑰加密,公鑰解密。典型的應(yīng)用場景就是數(shù)字簽名,A采用自己的私鑰加密文件信息后發(fā)送給B,并將公鑰也發(fā)送給B,B利用這個公鑰對信息解密。
如果C和D也有這個公鑰,那C和D也可以解密這個文件信息,但是只有持有私鑰的A才能加密這個信息,因此可以確保這個文件信息確確實實是由A發(fā)出的,這就比較適用于一些公司老總做電子簽名,以確保簽名是老總簽的。
在區(qū)塊鏈中,你的收款地址就相當(dāng)于公鑰,人人可以看到,但是如果你要轉(zhuǎn)移你的資產(chǎn)給朋友,你需要輸入密碼(私鑰)進(jìn)行數(shù)字簽名,來表示這個資產(chǎn)確確實實是由你發(fā)出的。
通過上述講解,相信大家已經(jīng)認(rèn)識到私鑰的重要性了吧,你一般是如何保存自己私鑰的呢?歡迎在留言區(qū)分享你的觀點(diǎn)。