1、信息安全的基础 - 机密性
-
**明文:**加密前的消息叫“明文”(plain text)
-
**密文:**加密后的文本叫“密文”(cipher text)
-
**密钥:**只有掌握特殊“钥匙”的人,才能对加密的文本进行解密,这里的“钥匙”就叫做“密钥”(key)
“密钥”就是一个字符串,度量单位是“位”(bit),比如,密钥长度是 128,就是 16 字节的二\进制串
- **加密:**实现机密性最常用的手段是“加密”(encrypt)
按照密钥的使用方式,加密可以分为两大类:对称加密和非对称加密。
-
**解密:**使用密钥还原明文的过程叫“解密”(decrypt)
-
**加密算法:**加密解密的操作过程就是“加密算法”
- 所有的加密算法都是公开的,而算法使用的“密钥”则必须保密
2**、对称加密和非对称加密**
2.对称加密和非对称加密
2.1对称加密
-
特点:只使用一个密钥,密钥必须保密,常用的有 AES算法
-
优点:运算速度快
-
缺点:秘钥需要信息交换的双方共享,一旦被窃取,消息会被破解,无法做到安全的密钥交
换
2.2非对称加密
特点:使用两个密钥:公钥和私钥,公钥可以任意分发而私钥保密,常用的有 RSA
优点:黑客获取公钥无法破解密文,解决了密钥交换的问题
缺点:运算速度非常慢
2.3混合加密
实际场景中把对称加密和非对称加密结合起来使用。
3.身份认证
公钥加密,私钥解密的作用就是加密信息
私钥加密,公钥解密的作用就是身份认证
4.摘要算法
摘要算法就是我们常时候的散列函数,哈希函数(Hash Function),他能把任意长度的数据"压缩"成固定长度,而且第一无二的"摘要"字符串,就好像是给这段数据生成一个一个数字指纹
作用:保证信息完整性
特性:
- 不可逆,只有算法,没有秘钥,只能加密,不能解密
- 难题友好性:想要破解,只能暴力枚举
- 发散性:只要对原文发生了一点点的变动,摘要也会发生剧烈变化
- 抗碰撞性:原文不同,计算后的摘要也不同
常见摘要算法
MD5、SHA1、SHA2(SHA224、SHA256、SHA384)
5.数字签名
数字签名是使用私钥对摘要加密生成签名,需要由公钥将签名解密后进行验证实现身份验证
签名和验证签名的流程
6.数字证书
数字证书中包含的信息
数字证书使用哈希摘要算法,使用自身的私钥进行签名,将签名附加到数字证书信息当中,从而生成数字证书,提供给使用者
Bob使用数字证书发送信件,接受放Pat取出证书,对证书进行验签操作(使用相同的算法对证书的信息进行摘要算法处理,比较摘要是否一致),如果验证摘要成功,取出Bob的公钥;
取出Bob的公钥后进行验证信件,对信件进行摘要使用Bob的公钥进行加密,比较摘要是否一致,如果一致确定摘要没有修改并且是Bob发送
数字证书应用场景
数字证书解决"公钥的信任问题",可以防止黑客伪造公钥
不能直接分发公钥,公钥的分发必须使用数字证书,数字证书由CA机构颁发
1.Https网站含有自己的证书,证书由权威的CA机构颁发,CA机构用私钥加密数字证书并签名数字证书中存有网站的公钥
2.网站要发送加密请求时候,需要获取https网站公钥,公钥存在于https网站的数字证书当中,浏览器使用CA机构的公钥(存在于操作系统当中)对数字证书进行验签,验签通过后进行解密,获取到网站的公钥,与服务器交换加密
站要发送加密请求时候,需要获取https网站公钥,公钥存在于https网站的数字证书当中,浏览器使用CA机构的公钥(存在于操作系统当中)对数字证书进行验签,验签通过后进行解密,获取到网站的公钥,与服务器交换加密