对称加密
通信双方使用同一个密钥( secret )加密解密
密钥(Secret)
对称加密中双方共同使用的密码
非对称加密
通信中的密钥是成对的:公钥A和私钥B。用A加密的密文只能用B解密,同样,用B加密的密文也只能用A解密
在非对称加密算法中,如果一个“密钥对”中的两个密钥满足以下两个条件:
1、对信息用其中一个密钥加密后,只有用另一个密钥才能解开;
2、其中一个密钥公开后,根据公开的密钥别人也无法算出另一个。
那么我们就称这个密钥对为非对称密钥对,公开的密钥称为公钥,不公开的密钥称为私钥。
常见的非对称加密算法包括RSA、Elgamal、D-H、ECC(椭圆曲线加密算法)等。
公钥(Public Key) & 私钥(Private Key)
公钥与私钥一一对应。
公钥自由发布给外部通信方。
私钥需要自己秘密存储,一旦泄漏则可能导致身份被伪造,机密信息泄漏。
加密 & 解密
发方用收方的公钥加密,收方用自己的私钥解密,防止信息被第三方获取。
当发方向收方通信时发方用收方的公钥对原文进行加密,收方收到发方的密文后,用自己的私钥进行解密,其中他人是无法解密的,因为他人不拥有自己的私钥,这就是用公钥加密,私钥解密用于通信;
签名 & 验证
发方用自己的私钥签名,收方用发方公钥验证,用来验证发方的身份,防止信息被第三方伪造。
发出的签名一般并非是对原文本身进行加密,而是要对原文进行所谓的“哈希”(Hash)运算,即对原文作数字摘要。该密码算法也称单向散列运算,其运算结果称为哈希值,或称数字摘要,也有人将其称为“数字指纹”。哈希值有固定的长度,运算是不可逆的,不同的明文其哈希值是不同的,而同样的明文其哈希值是相同并且是唯一的,原文的任何改动,其哈希值就要发生变化。
签名验证与加密解密的原理相同,签名即是用私钥对数字摘要进行加密,将原文和密文同时发给收方,收方用公钥对密文进行解密,然后与原文的摘要进行比对验证。
非对称密钥的基本使用场景有两种:1、公钥对交易信息加密,私钥对交易信息解密。私钥持有人解密后,可以使用收到的