哈希摘要算法
好的哈希摘要算法需要具备
一是易变性,这是指算法的输入端发生了任何一点细微变动,都会引发雪崩效应,使得输出端的结果产生极大的变化
常常被用来校验数据是否被篡改
二是不可逆性,摘要的过程是单向的,不可能从摘要的结果中逆向还原出输入值来
对称加密和非对称加密
对称加密 对称加密指的就是加密和解密使用同一个秘钥,所以叫做对称加密。对称加密只有一个秘钥,作为私钥。 常见的对称加密算法:DES,3DES,AES等等。
非对称加密 非对称加密指的是:加密和解密使用不同的秘钥,一把作为公开的公钥,另一把作为私钥。公钥加密的信息,只有私钥才能解密。私钥加密的信息,只有公钥才能解密。 常见的非对称加密算法:RSA,ECC
区别 对称加密算法相比非对称加密算法来说,加解密的效率要高得多。但是缺陷在于对于秘钥的管理上,以及在非安全信道中通讯时,密钥交换的安全性不能保障。所以在实际的网络环境中,会将两者混合使用.
对称加密传输大量数据
非对称加密永远对称加密的密钥协商,传输。
例如针对C/S模型,
服务端计算出一对秘钥pub/pri。将私钥保密,将公钥公开。 客户端请求服务端时,拿到服务端的公钥pub。 客户端通过AES计算出一个对称加密的秘钥X。 然后使用pub将X进行加密。 客户端将加密后的密文发送给服务端。服务端通过pri解密获得X。 然后两边的通讯内容就通过对称密钥X以对称加密算法来加解密。
三种密码学算法的对比
类型 | 特点 | 常见实现 | 主要用途 | 主要局限 |
---|---|---|---|---|
哈希摘要 | 不可逆,即不能解密,所以并不是加密算法,只是一些场景把它当作加密算法使用。 易变性,输入发生 1 Bit 变动,就可能导致输出结果 50%的内容发生改变。 无论输入长度多少,输出长度固定(2 的 N 次幂)。 | MD2/4/5/6、SHA0/1/256/512 | 摘要 | 无法解密 |
对称加密 | 加密是指加密和解密是一样的密钥。 设计难度相对较小,执行速度相对较块。 加密明文长度不受限制。 | DES、AES、RC4、IDEA | 加密 | 要解决如何把密钥安全地传递给解密者。 |
非对称加密 | 加密和解密使用的是不同的密钥。 明文长度不能超过公钥长度。 | RSA、BCDSA、ElGamal | 签名、传递密钥 | 性能与加密明文长度受限。 |
数字证书
解决公钥被劫持篡改的问题。由权威机构颁发保证
HTTPS: HTTP over SSL/TLS
TLS处于会话层
客户端和服务端均通过握手过程协商出了许多信息,譬如一个只有双方才知道的随机产生的密钥(非对称加密算法比如RSA进行密钥协商)、传输过程中要采用的对称加密算法(比如AES128)、压缩算法等,此后该连接的通信将使用此密钥和加密算法进行加密、解密和压缩。
保障所有信息都是第三方无法窃听(加密传输:对称加密算法)、无法篡改(一旦篡改通信算法会立刻发现)、无法冒充(证书验证身份)