关于钱包的基础密码学

O3实验室
O3实验室
密码学由于和数学关系密切,而数学课往往又是我们最容易走神打瞌睡的课程,所以我们似乎习惯了本能地拒绝学习密码学,了解与密码学相关的知识。

关于私钥如何备份、钱包转账等知识点,我们每周的O3 Q&A TIME都有介绍。今天主要来看下区块链背后的基础技术「密码学」是如何工作,它是如何保障数字资产安全的?

钱包的生成过程:

首先,通过随机数发生器生成一个私钥。谁拥有了这串私钥,谁就拥有了对应钱包地址里的资产。

然后,私钥经过椭圆曲线算法生成公钥。通过私钥可以得出公钥,但是通过公钥是无法计算出私钥的。

最后,公钥经过单向散列函数推导出地址。

1.jpg

整个过程涉及到了三个密码学知识:随机数、非对称加密,单向散列函数。

1、随机数

在数字钱包中随机数与安全指数息息相关,因此随机数用于生成私钥,且必须具备以下特性:

· 随机性:不存在统计学偏差,完全杂乱的数列;

· 不可预测性:不能从过去数列推测到下一个出现的数;

· 不可重复性:除非将数列本身保存下来,否则不能重现相同的数列。

上述三个特性按顺序分别命名为“弱伪随机数”、“强伪随机数”和“真伪随机数”。关于这三个的详细解释,建议通过这篇专业文章来了解:

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

2、非对称加密

非对成加密是相对对称加密而言,在非对称加密中,将密钥分为加密密钥和解密密钥,也就是我们常说的公钥和私钥,其最根本的原理:就是利用信息的不对称性。

用公钥对数据进行加密,只有用对应的私钥才能解密;如果用私钥对数据进行加密,那么只有用对应的公钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。

非对称加密经典算法有:RSA、Elgamal、背包算法、Rabin、D-H、ECC(椭圆曲线加密算法)。

区块链中主要使用的就是非对称加密的椭圆曲线算法。

椭圆曲线加密:深奥解释能力有限,也怕大家看不懂,就用曾经看过文章里,一句记忆非常深刻的话老解释:无非是找到了会乘法不会除法的场景。

也就是正向求值比较简单,但是逆向却是几乎不能完成的任务。在这个的基础上,科学家选取了一条曲线,并命名为secp256k1,如下图所示:

2.jpg

3、单向散列函数

单向散列函数,也称哈希函数。是一种将任意长度的消息压缩到某一固定长度(消息摘要)的函数(该过程不可逆)。哈希函数可用于数字签名、消息的完整性检测、消息起源的认证检测等。

一个合格的哈希函数往往具备以下几个特点:

· 可以根据任意长度的消息输出固定长度的散列值;

· 能够快速计算出散列值;

· 具备单向性,散列值倒推输入是不可能的;

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

总结:

密码学由于和数学关系密切,而数学课往往又是我们最容易走神打瞌睡的课程,所以我们似乎习惯了本能地拒绝学习密码学,了解与密码学相关的知识。

但是区块链背后的基础技术却与密码学紧紧相关,希望通过这篇文章,能够让大家了解一些密码学的基础知识,以免再问一些关于“私钥如何找回”这种无法让人回答的问题。

THEEND

最新评论(评论仅代表用户观点)

更多
暂无评论