学习网络课程总结如下,欢迎批评指正,😊
一.安全需要解决的几种需求
1.安全 加密
2.鉴别和认证 确保对端是你需要的对端
3.完整性 确保传输过程中数据的完整性,未被更改过
4.不可否认性 文件或者什么可以证明由你产生的
二.算法和密钥
1.概念:
算法是一种规则,为共性,是公开的(需要被验证是安全的)
密钥是个性化的可变的存在差异性,是不公开的
eg:
算法:让一个字母替换另一个字母。密钥:让a替换b
2.一个好的密码术是 算法公开,密钥保密
3.算法和密钥是可分离的
三.典型的加密模型
1.对称加密
概念:加密密钥和解密密钥相同 k=k'
使用场景:本地数据保密、邮件保密
2.算法:
置换加密:原始的字符顺序不发生变化,但是用另外的字符替换
转置加密:原始的字符不替换,但是顺序变换
乘积密码:置换加密和转置加密的综合
3.非对衬加密(公钥密码术)
概念:加密密钥(公钥)和解密密钥(私钥)不同k!=k'
公钥和私钥由一方同时产生,但是公钥会被公开,解密的key自己保管。
RSA :非对称加密的一种算法
理论基础:分解大数的困难度
特点:公钥私钥长度1024bit,保密性强
四.对称加密和非对称加密的比较
1.对称加密的优缺点
优:高效
缺:安全性低一些
2.非对称加密的优缺点
优:安全性高
缺:加密的效率很低
3.加密传输方式
利用公钥密码来交换会话密钥
1>实时随机地产生会话密钥
2>使用对端的公钥对产生的会话密钥进行加密并传输给对方
3>对端使用私钥进行解秘获得会话密钥
4>双方开始基于共享的会话密钥进行对称加密的保密会话通信
Diffe-Hellman密钥交换协议
1>图中变换是指基于以大素数为模计算离散对数大困难度
2>变换完两端拿到一个相同的值作为会话密钥
3>此过程可见没有任何明文传递
Diffe-Hellman密钥交换协议.jpeg
五.HASH(散列)
1.定义:变长的输入变为定长的输出
2.常见HASH算法:MD5(输出长度128bit) SHA!(输出长度160bit)
3.特点:
易变性:即便原始信息发生1bit的变化,HASH的输出将会有不可预知的巨大变化
不可逆:变化后不能变回去
4.别名:数字指纹、消息摘要
5.应用场景:
1>完整性,基于易变性的特征
2>防损坏,基于易变性的特征
传输消息的时候:消息体追加hash(消息摘要),验证hash是否相同
3>鉴别认证,基于不可逆性,别人无法更改
6.HMAC
防止攻击
原理:service和client两端传输数据的时候,消息体经过key加密后生成hash值附在消息体后传给服务端,服务端拿到数据后解密然后以相同的方式计算hash值,比对数据是否完整。这样子就防止第三方拦截拿到数据后,修改数据,然后生成自己的hash值附到消息体中,使得数据被修改。
六.电子签名
签名的内容的完整性收到了保护,签完后存在不可否认性
公钥密码术的两面性
1.公钥加密,私钥解密(加密场景)
2.私钥加密,公钥解密(签名场景)不是所有的算法都支持,rsa支持,但是实际不会这么做,因为低效
HASH+公钥密码术成就了电子签名
作用:确保文件的完整性,和确保消息发送方是本人
步骤:
1.利用HASH生成消息摘要
2.利用私钥对消息摘要进行加密,之后附在消息体后进行传输。
3.接收方利用公钥解密确定对端是需要的对端,之后验证hash值是否一致,确定数据发送中没有被篡改
七.数字证书和PKI
1.数字证书是一个特定格式的文件
作用:交换存储公钥(公钥作为一个字段存储在证书中),还有很多 。
一旦证书生成后,里面任何信息都不可改(利用私钥对hash值进行签名)。
2.可信任列表 可以被信任的一系列证书
3.信任链:间接信任的原则,一直往上回溯,只要根证书在可信任列表中,则可信任。
比如:
根证书(孔子)-->生成新的证书(孔子的徒弟)-->又生成新的证书(孔子的徒弟的徒弟)
孔子可被信任,孔子的徒弟跟孔子直接关联则被信任,那孔子的徒弟的徒弟,同理也被信任。原因:以下的签名方式和约束
4.证书签名:
根证书:证书的ower利用自己的私钥进行签名
非根证书:颁发者的私钥进行签名
5.子证书有一定的约束
基本约束:可否继续往下颁发证书
有效期:在有效期内可用
密钥用法:限制证书中的私钥公钥只能做什么
6.PKI
一套加密系统
喵印~~~
网友评论