一、加密
1、对称加密与非对称加密的区别
- 对称加密。同一把钥匙进行加密和解密
- 非对称加密,公钥加密,私钥解密。
对称加密:
常见算法:AES、DES、3DES、TDEA、Blowfish、RC2、RC4、RC5、IDEA、SKIPJACK
AES:高级加密标准(Advanced Encryption Standard)
DES:数据加密标准(Data Encryption Standard)
案例一:
对称加密相对于非对称加密不安全(key被得到,就可以被破解)
非对称加密
常见算法:RSA、Elgamal、背包算法、Rabin、D-H、ECC(椭圆曲线加密算法)等
应用场景:银行和电商网站,他就采用非对称加密,将公钥给所有人,你们就用这个公钥加密,私钥我自己留着,谁也不知道,所以除了我,谁也解密不了。
二、篡改风险
摘要算法(HASH算法)
Hash算法的特点是单向不可还原,用户可以通过hash算法对目标信息生成一段特定长度的唯一hash值,却不能通过这个hash值重新获得目标信息。因此Hash算法常用在不可还原的密码存储、信息完整性校验等。只要源数据不同,算法得到的摘要必定不同。
常见算法有:MD5、RIPEMD、SHA、MAC和国密的SM3。【MD5不建议使用,已经被爆】。
数字签名
一般来说,不直接对消息进行签名,而是对消息的哈希值进行签名,步骤如下。
(1)对消息进行哈希计算,得到哈希值
(2)利用私钥对哈希值进行加密,生成签名
(3)将签名附加在消息后面,一起发送过去
(4)验证签名
(5)收到消息后,提取消息中的签名
(6)用公钥对签名进行解密,得到哈希值1。
(7)对消息中的正文进行哈希计算,得到哈希值2。
(8)比较哈希值1和哈希值2,如果相同,则验证成功。
(2)利用私钥对哈希值进行加密,生成签名
(3)将签名附加在消息后面,一起发送过去
(4)验证签名
(5)收到消息后,提取消息中的签名
(6)用公钥对签名进行解密,得到哈希值1。
(7)对消息中的正文进行哈希计算,得到哈希值2。
(8)比较哈希值1和哈希值2,如果相同,则验证成功。