加密算法和协议
对称加密
简介:加密和解密使用同一个密钥
常见的算法:
- DES:Data Encryption Standard;
- 3DES:Triple DES;
- AES:Advanced Encryption Standard; (128bits, 192bits, 256bits, 384bits)
- Blowfish
- Twofish
- IDEA
- RC6
- CAST5
过程:
A主机将要发送的数据,用密钥加密得到密文。将密文发送至B主机,B主机用相同的密钥解密得到明文
特性:
加密、解密使用同一个密钥;
将原始数据分割成为固定大小的块,逐个进行加密;
缺陷:
密钥过多;
密钥分发困难;
单向加密
简介:即提出数据指纹;只能加密,不能解密;主要用来验证数据是否完整
过程:
A主机将要传输的数据进行一次单向加密,得到数据指纹。当接收方收到数据之后,也进行一次单向加密,如果得到的数据指纹相同,则可以认为数据在传输过程中没有被篡改。
特性
- 定长输出
- 雪崩效应;
算法
- md5:Message Digest 5, 128bits
- sha1:Secure Hash Algorithm 1, 160bits
- sha224, sha256, sha384, sha512
非对称加密:
简介:非对称性加密,也叫公钥加密,加密解密的过程使用不同的密钥。
密钥分为公钥与私钥:
- 公钥:从私钥中提取产生;可公开给所有人;pubkey
- 私钥:通过工具创建,使用者自己留存,必须保证其私密性;secret key;
特点:用公钥加密的数据,只能使用与之配对儿的私钥解密;私钥加密的数据只能使用与之配对的公钥解密。而私钥一般只有一个,而公钥可以有多个主机同时拥有。
用途
数字签名:一是能确定消息确实是由发送方签名并发出来的,因为别人假冒不了发送方的签名。二是数字签名能确定消息的完整性。因为数字签名的特点是它代表了文件的特征,文件如果发生改变,数字摘要的值也将发生变化。不同的文件将得到不同的数字摘要。 一次数字签名涉及到一个哈希函数、发送者的公钥、发送者的私钥。”;
过程:将发送的数据进行一次hash,再用私钥对hash后的数据摘要加密,对方收到密文之后用公钥解密,然后再对数据进行一次hash比对。如果与数字摘要值相同,则数据是完整的。
密钥交换:发送方用对方公钥加密一个对称密钥,并发送给对方;
过程:对称加密中有一个问题,就是如果密钥被截获了,这时候就算传输是密文,第三方也很容易就可以解密成。所以非对称加密也可以用来传送密钥,这样就可以保证密钥的安全。具体如下:
数据加密:可以做到数据加密但是一般不用来传输数据,因为非对称加密过程,速度要比对称加密慢3个数量级。
常用算法:
- RSA
- DSA
- ELGamal
密钥交换: IKE(Internet Key Exchange)
公钥加密
公钥加密,也就是非对称加密方式交换密钥,这种方式交换密钥有一个问题就是。假如有一个主机C,他截获了A和B的通信。C可以生成密钥对,当A向B请求B的公钥的时候,C伪装成B将自己的公钥给他,这时候A发送的密文,可以被C解开。因为A加密的公钥是C的公钥,这时候C还能冒充A去与B通信。所以A以为是在与B进行通信,但是其实是A和B同时与C进行通信,这时候C就可以对会话内容进行修改。这就是中间人攻击,解决的办法一般要依赖pki体系。后面会介绍。
PKI(Public Key Infrastructure)
简介:PKI(Public Key Infrastructure)公钥基础设施。
原理
解决上述身份验证问题的关键是确保获取的公钥途径是合法的,能够验证服务器的身份信息,为此需要引入权威的第三方机构CA(如沃通CA)。CA 负责核实公钥的拥有者的信息,并颁发认证”证书”,同时能够为使用者提供证书验证服务,即PKI体系(PKI基础知识)。
基本的原理为,CA负责审核信息,然后对关键信息利用私钥进行”签名”,公开对应的公钥,客户端可以利用公钥验证签名。CA也可以吊销已经签发的证书。具体的流程如下
DH(Deffie-Hellman)
简介
需要安全通信的双方可以用这个方法确定对称密钥。然后可以用这个密钥进行加密和解密。但是注意,这个密钥交换协议/算法只能用于密钥的交换,而不能进行消息的加密和解密。双方确定要用的密钥后,要使用其他对称密钥操作加密算法实际加密和解密消息。
原理
1. 有两个全局公开的参数,一个素数q和一个整数a,a是q的一个原根.
2. 假设用户A和B希望交换一个密钥,用户A选择一个作为私有密钥的随机数XA
参考:
[1] https://blog.csdn.net/L835311324/article/details/81540641