【密码学】
1、对称加密
2、非对称加密
3、DES
4、分组密码
5、公钥密码学
6、Hash
7、MD5
8、RSA 密码体制
9、椭圆曲线签名算法
10、SHA256
11、数字签名
12、零知识证明
13、PKI体系
我们谈谈公钥密码学。
这关系到两件事情:
1.如何秘密地发送信息给某人?
2.如何验证这信息的发送者是谁?
算法:
哈希算法
对称加密
非对称加密=公钥密码学=》椭圆曲线算法
基本数学原理
比特币的数学原理,主要涉及到两个方面,一是数字签名及不对称加密技术,二是数字指纹技术
1,数字签名机制
数字签名是现代计算机密码学的一个重要概念,比特币的数字签名是基于不对称加密算法来完成的,具体示例如下:假如小明想向小红发送一条信息,但是这条信息可能被小张监听到,于是他俩想到一个好办法,就是通过一套商量好的加密规则,将信息加密,这样即使小张监听到内容,由于他不知道加密规则,还是破译不了这条信息内容,这叫对称加密。
【对称加密场景】
但是对称加密有个明显缺点是,小明需要把加密规则告知小红,小张要是能截取到加密规则,那以后小明和小红的信息交流就可以被破解,并且小张也可以假冒小明向小红发送假冒信息,因此我们需要另一套通讯规则来避免这种情况。
非对称加密可以有效解决上述问题。首先,小明需要一对公钥和私钥,公钥和私钥是成对存在的,公钥由私钥通过一个不可逆的数学公式生成,公钥和私钥遵循以下规则:
1,用公钥加密的信息,可以用私钥解密,但反过来不可以;
2,用私钥签名的信息,可以用公钥验证,即验证签名;
有了上述规则我们就可以设计如下的信息交互场景:
使用私钥签名、公钥验证场景
我们从上图可以看出,在这种情况下,整个系统没有人可以假冒小明发信息,因为只有小明知道自己的秘钥,这种设计可以有效保证发信人的不被恶意伪冒。
当然,这套机制也可以进行加密的信息传输:
公钥加密、私钥解密示例
比特币使用的是椭圆曲线数字签名算法(SECP256K1),该算法可以很大程度保证该交易过程不被破解,我们在平时使用时完全不必担心。比特币钱包地址的生成也是基于该算法,首先由随机字符串产生一个秘钥,再通过秘钥使用算法产生公钥,该公钥经过一定变换生成比特币钱包地址,也就是说,我们只要知道随机种子或者秘钥,就可以推算出钱包的地址,但该过程不可逆,因此保护好自己的秘钥非常重要。