共享密钥加密算法(对称加密算法)
加密和解密的密钥也一样
公钥加密算法(非对称加密算法)
加密和解密的密钥不一样
共享密钥/对称加密算法
数据加密标准(DES)
一种分组密码,在加密前,先对整个明文进行分组。每一个分组为64位,之后进行16论迭代,产生一组64位密文数据,使用的密钥是56位
3DES
使用两个密钥,执行三次DES算法,密钥长度是112位
国际数据加密算法(IDEA)
使用128位密钥,把明文分成64位的块,进行8轮迭代。IDEA可以使用硬件或软件实现,比DES快
高级加密标准(AES)
AES支持128位、192位、256位三种密钥长度,可通过硬件实现
流加密算法和RC4
加密速度快,可以达到DES的10倍
公钥加密算法/非对称加密算法
每两个实体有两个密钥,公钥公开,私钥自己保存
公钥加密,私钥解密,可实现保密通信
私钥加密,公钥解密,可实现数字签名
典型公钥加密算法:RSA、DH
数字签名
数字签名是用于确认发送者身份和消息完整性的一个加密消息摘要,具体特点如下:
- 接收者能够核实发送者
- 发送者事后不能抵赖对报文的签名
- 接收者不能伪造对报文的签名
数字签名和数据加密联合使用的流程如下:
- 发送者A 使用 A的私钥 对数据进行加密,进行数字签名
- 发送者A 使用 B的公钥 对数据进行加密,进行数据加密
- 接收者B 使用 B的私钥 对数据进行解密,进行数据解密
- 接收者B 使用 A的公钥 对数据进行解密,进行身份核实
报文摘要(哈希/散列)
MD5
对任意长度报文进行运算,先把报文按512位分组,最后得到128位报文摘要
SHA
对512位长的数据进行复杂运算,最终产生160位散列值,比MD5更安全,计算比MD5慢
将一段数据(任意长度)经过一道计算,转换为一段定长的数据
哈希Hash(散列函数)
不可逆性(单向)
几乎无法通过Hash结果推导出原文,即无法通过x的Hash值推导出x
无碰撞性
几乎没有可能找到一个y,使得y的Hash值等于x的Hash值
雪崩效应
输入轻微变化,Hash输出值产生巨大变化
使用场景
- 发布文件的完整性验证,如炒股软件+MD5验证软件完整性
- 下载文件+MD5验证文件完整性
- 服务器中保存用户的密码
- 增加一个key做哈希
HMAC = Hash(文件+key)
需要双方预先知道这个key
HMAC:消除中间人攻击,源认证+完整性校验(数字签名也能实现)
- 数字签名
数字证书与CA
数字证书可类比为身份证的作用,用于证明身份
CA是电子商务认证授权机构
比如:
要证明发送者是否是A
需要得到A的数字证书
要证明得到的数字证书是否真的是A的数字证书
可以得到的A的数字证书是否有CA数字签名(签名用CA的私钥)
证书链
如果用户数量很多,通常由多个CA。每个CA为一部分用户发行和签署证书
如果有两个CA,X1和X2,假设用户A从CA机构X1获得了证书,用户B从X2获得证书。如果两个证书发放机构X1和X2彼此间安全交换了公钥,彼此信任,那么他们的证书可以形成证书链
A通过一个证书链来获取B的公钥,证书链表示为:
X1《X2》X2《B》
B也能通过相反的证书链来获取A的公开密钥:
X2《X1》X1《A》
标签:公钥,加密,数字签名,CA,现代,密钥,加密技术,加密算法 From: https://www.cnblogs.com/zx654042919/p/18093286