前言
在很多情况下,都涉及文件传输的安全性。如何保证文件在网络中传播的安全性和完整性,是保证文件不被窃取、安全到达的必要方面。
文件在互联网中是以二进制方式传输的,无论是从一个客户端到另一个客户端,还是说从服务器到客户端都是需要经过很多路由器的转发。那如果不加密,期间任何一个路由器都可以读取二进制文件得取相应信息或是对其进行篡改,使接收方不能获取正确信息。
由此可见,对信息进行相应处理以达到安全完整的在互联网中传输至关重要。
加密算法
对称加密
概念: 加密和解密使用同一个秘钥
算法: DES、3DES、AES、Blowfish、Twofish、IDEA、RC6、CAST5等
优点:
1.效率高;
2.将数据分割成固定大小的块,逐个进行加密
缺点:
1.每一个通信就需要一个秘钥;
2.秘钥传递不安全;
3.无法确定数据来源
非对称加密
概念:
1.公钥与私钥:公钥是公开给所有人的;私钥是只有自己知道;
2.通过私钥可以推算出公钥,但是通过公钥无法推出私钥;
3.使用公钥加密必须使用私钥解密,或者使用私钥加密必须使用公钥解密;公私钥必须成对出现
算法: RSA、DSA、ELGamal
优点:
1.可以实现数字签名来验证数据来源;
2.可以安全的交换对称秘钥;
缺点:
可以实现时间加密,但是对应大的数据解密时效率太低,适合加密少量数据
单向散列
特性:
1.雪崩效应:数据不同,摘要一定大不同
2.单向:不可反推数据
3.摘要长度固定大小
算法: md5:128、sha1:160、sha224、sha256、sha384、sha512
功能: 用来验证数据的完整性
秘钥交换算法
- A和B协商生成公开的整数a,大素数p
- A:生成隐私数据 :x(x<p),计算得出 a^x%p,发送给B;
B:生成隐私数据 :y(y<p),计算得出 a^y%p,发送给A - A:计算得出 [(ay%p)x] %p = a^xy%p,生成为密钥;
B:计算得出 [(ax%p)y] %p = a^xy%p,生成为密钥
安全通信过程
爱丽丝:
1)原数据通过hash算法得出一个摘要;
2)用爱丽丝的私钥加密摘要;
3)将加密的摘要和原数据一块使用对称秘钥加密;
4)再用鲍勃的公钥将对称秘钥加密;
5)密文数据发送————>
鲍勃:
1)<————接受密文数据;
2)使用鲍勃的私钥解密对称秘钥;