二、对称加密
对称加密(也叫私钥加密)指加密和解密使用相同(或可推导)密钥的加密算法。
特点
优点是加密效率高(速度快,空间占用小),加密强度高.缺点是需要提前分发密钥,易泄露,不安全,难管理。另外如何在不安全通道下分发密钥也是个问题。
适用于大量数据的加解密,不能用于签名场景
代表算法
DES(不够安全),3DES(不够安全),IDEA,AES
三、非对称加密
非对称加密(也叫公钥加密),顾名思义,加密密钥和解密密钥是不同的,分别称为公钥和私钥。 公钥一般是公开的,人人可获取的,私钥一般是个人自己持有,不能被他人获取。
一个小栗子, x * 13 * 77 % 1000 = x
特点
优点是公私钥分开,不安全通道也可使用;多方通信所需密钥少,维护简单。缺点是加解密速度慢,一般比对称加解密算法慢两到三个数量级;同时加密强度相比对称加密要差。
代表算法
RSA(不够安全),ECC(椭圆曲线系列算法)
四、数字签名
所谓数字签名就是签名人用自己的私钥对待签名数据的摘要进行加密得到的值就是签名值。签名者发送数据签名时需要把待签名数据和签名值一起发送给对方。
注意,签名对象并非待签名数据而是待签名数据的摘要,为什么呢?因为非对称加密的速度通常都比较慢,直接对原始数据私钥加密是很慢的而且也没有必要。
如何验证签名呢?接收方首先使用签名者的公钥对签名值解密即可得到摘要值,然后使用约定的算法对待签名数据进行散列运算后和解密得到的摘要值进行比较即可验证。
从以上数字签名的整个过程描述来看,数字签名的核心在于签名,在于证明这份数据是签名者发出的、不可抵赖的。待签名数据本身的保密不是数字签名方案要考虑的问题。
比特币使用的是 ECDSA(Elliptic Curve Digital Signature Algorithm)算法(即椭圆曲线数字签名算法)来对交易进行签名
代表算法
DSA,ECDSA |