關于錢包的基礎密碼學

O3實驗室
O3實驗室
密碼學由于和數(shù)學關系密切,而數(shù)學課往往又是我們最容易走神打瞌睡的課程,所以我們似乎習慣了本能地拒絕學習密碼學,了解與密碼學相關的知識。

關于私鑰如何備份、錢包轉賬等知識點,我們每周的O3 Q&A TIME都有介紹。今天主要來看下區(qū)塊鏈背后的基礎技術「密碼學」是如何工作,它是如何保障數(shù)字資產安全的?

錢包的生成過程:

首先,通過隨機數(shù)發(fā)生器生成一個私鑰。誰擁有了這串私鑰,誰就擁有了對應錢包地址里的資產。

然后,私鑰經過橢圓曲線算法生成公鑰。通過私鑰可以得出公鑰,但是通過公鑰是無法計算出私鑰的。

最后,公鑰經過單向散列函數(shù)推導出地址。

1.jpg

整個過程涉及到了三個密碼學知識:隨機數(shù)、非對稱加密,單向散列函數(shù)。

1、隨機數(shù)

在數(shù)字錢包中隨機數(shù)與安全指數(shù)息息相關,因此隨機數(shù)用于生成私鑰,且必須具備以下特性:

· 隨機性:不存在統(tǒng)計學偏差,完全雜亂的數(shù)列;

· 不可預測性:不能從過去數(shù)列推測到下一個出現(xiàn)的數(shù);

· 不可重復性:除非將數(shù)列本身保存下來,否則不能重現(xiàn)相同的數(shù)列。

上述三個特性按順序分別命名為“弱偽隨機數(shù)”、“強偽隨機數(shù)”和“真?zhèn)坞S機數(shù)”。關于這三個的詳細解釋,建議通過這篇專業(yè)文章來了解:

https://www.jianshu.com/p/e0d7fbfe6d2a

2、非對稱加密

非對成加密是相對對稱加密而言,在非對稱加密中,將密鑰分為加密密鑰和解密密鑰,也就是我們常說的公鑰和私鑰,其最根本的原理:就是利用信息的不對稱性。

用公鑰對數(shù)據(jù)進行加密,只有用對應的私鑰才能解密;如果用私鑰對數(shù)據(jù)進行加密,那么只有用對應的公鑰才能解密。因為加密和解密使用的是兩個不同的密鑰,所以這種算法叫作非對稱加密算法。

非對稱加密經典算法有:RSA、Elgamal、背包算法、Rabin、D-H、ECC(橢圓曲線加密算法)。

區(qū)塊鏈中主要使用的就是非對稱加密的橢圓曲線算法。

橢圓曲線加密:深奧解釋能力有限,也怕大家看不懂,就用曾經看過文章里,一句記憶非常深刻的話老解釋:無非是找到了會乘法不會除法的場景。

也就是正向求值比較簡單,但是逆向卻是幾乎不能完成的任務。在這個的基礎上,科學家選取了一條曲線,并命名為secp256k1,如下圖所示:

2.jpg

3、單向散列函數(shù)

單向散列函數(shù),也稱哈希函數(shù)。是一種將任意長度的消息壓縮到某一固定長度(消息摘要)的函數(shù)(該過程不可逆)。哈希函數(shù)可用于數(shù)字簽名、消息的完整性檢測、消息起源的認證檢測等。

一個合格的哈希函數(shù)往往具備以下幾個特點:

· 可以根據(jù)任意長度的消息輸出固定長度的散列值;

· 能夠快速計算出散列值;

· 具備單向性,散列值倒推輸入是不可能的;

· 具備唯一性,消息不同散列值也不同。

總結:

密碼學由于和數(shù)學關系密切,而數(shù)學課往往又是我們最容易走神打瞌睡的課程,所以我們似乎習慣了本能地拒絕學習密碼學,了解與密碼學相關的知識。

但是區(qū)塊鏈背后的基礎技術卻與密碼學緊緊相關,希望通過這篇文章,能夠讓大家了解一些密碼學的基礎知識,以免再問一些關于“私鑰如何找回”這種無法讓人回答的問題。

THEEND

最新評論(評論僅代表用戶觀點)

更多
暫無評論