现代加密技术
共享密钥加密算法(对称加密算法)
加密和解密的密钥也一样
公钥加密算法(非对称加密算法)
加密和解密的密钥不一样
共享密钥/对称加密算法
数据加密标准(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》
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)