1.数据加密简介
数据加密是一种用于对信息进行保密处理的技术。加密的目的是为了防止信息被不应该获取的人获取。
数据加密是指通过加密算法和加密密钥将明文转变成密文,而解密则是指通过解密算法和解密密钥将密文恢复为明文。
数据加密的核心是密码学。
2.数据加密术语
明文:原始的或未加密的数据。
密文:明文加密后的数据。
密钥:是由数字、字母或特殊符号组成的字符串,用它控制数据加密、解密的过程。加密密钥是将明文加密成密文的,解密密钥是将密文解密成明文的。
加密算法:加密所采用的变换方法,加密算法的输入信息为明文和密钥,输出信息为密文。
加密:通过加密算法和加密密钥将明文转换成密文的过程。
解密算法:解密所采用的变换方法
解密:通过解密算法和解密密钥将密文恢复为明文的过程。
3.加密算法
3.1 可逆加密
指可以通过特定密钥从加密后的密文推算出明文的加密算法,这个加密的可逆的。
3.1.1 对称加密技术
对称加密是指加密和解密使用相同的密钥,即加密密钥也可以用作解密密钥,这种方法在密码学中叫做对称加密算法。

特点:
-
算法简单,效率高,系统开销小,适合加解密大量数据。
-
安全性不高。加密算法是公开的,因此密钥的安全传递就成了至关重要的事,一旦密钥泄露就会导致信息破解。
常用算法:
DES:Data Encryption Standard(数据加密标准),计算速度快,适合应用于加密大量数据。1977年成为美国官方加密标准。
AES:Advanced Encryption Standard(高级加密标准),计算速度快,安全级别高,支持128、192、256位密钥的加密。
3.1.2非对称加密技术
非对称加密是指用来加密和解密的密钥是不同的。用来加密的密钥称为公钥,也就是说可以公开的密钥;用来解密的密钥称为私钥,是不能公开的密钥,只有解密人才会持有。公钥和私钥协同工作,只有特定的私钥才能解开由特点公钥加密过的数据。因此,只知道如何加密数据并不意味着就能成功解密数据,必须拥有正确的私钥才能解密,这样就很好的避免了密钥的传输安全性问题。

特点:
-
安全性高,因为加密和解密用的是不同的密钥,而且无法从一个密钥推导出另一个密钥,且公钥加密的信息只能用对应的私钥解密
-
算法复杂,导致加密大量数据耗时长,只适合对少了数据进行加密。
-
无法确认公钥的来源合法性以及数据的一致完整性。
常用算法:
RSA:
应用中的问题:
假设有一个中间人 C,在A想发消息给B获取B公钥的时候,被C拦截后把假公钥给了A并获取B的公钥;A根据假公钥加密并发送信息给B,C再次拦截后用假公钥对应的私钥破解消息后把消息根据B公钥加密发送给B。这个中间人的关键问题在于,A怎么确定B就是B?B怎么证明我就是我? 也就是身份验证问题。除了身份验证问题,带来的还有内容泄露问题、数据完整性问题,那么该如何解决这些问题?答案是采用 混合加密、消息摘要、数字签名的方法,想了解这些方法还得先了解不可逆加密。(见后文)

3.2 不可逆加密
指只能对数据进行加密,无法对密文解密。该算法常用于提取数据摘要和用于验证数据完整性,常见的算法有哈希算法(摘要算法)。

常见算法:
MD4、MD5:MD5生成128位固定长度的hash值,已经被破解
SHA-1:生成 164 位固定长度的 hash 值,已经被破解
SHA-2:生成 224、256、384、512 位的 hash 值
3.3 混合加密、消息摘要和数字签名
混合加密:
结合非对称加密和对称加密技术,发送方使用对称加密对传输数据进行加密,然后使用非对称加密的公钥再对密钥进行加密。所以网络上传输的数据是被对称加密密钥加密的密文和用非对称加密公钥加密后的密钥,因此即使被黑客截取,由于没有私钥,无法获取到加密明文的秘钥,便无法获取到明文数据。
消息摘要(数字摘要):
通过单向hash函数对原文进行哈希,将需加密的明文“摘要”成一串固定长度(如128bit)的密文,不同的明文摘要成的密文其结果总是不相同,同样的明文其摘要必定一致,并且即使知道了摘要也不能反推出明文。
数字签名:
数字签名建立在公钥加密体制基础上,是公钥加密技术的另一类应用。它把公钥加密技术和数字摘要结合起来,形成了实用的数字签名技术。
4. 总结
对称加密算法计算速度快,适合应用于加密大量数据的场景;但加密和解密使用相同的密钥,所以容易密钥泄漏导致信息泄露。
非对称加密算法加密和解密使用一对密钥对(公钥和私钥)进行加密和解密,所以加密等级高;但算法计算量大,不适合加密大量数据的场景。非对称加密算法存在无法验证公钥合法性(即身份验证问题),所以存在密钥和数据被中间窃取的可能。
不可逆加密只能加密不能解密,所以可以很好保重数据一致性。
数据加密技术需要确保:
-
数据安全性,即数据信息不被泄漏;
-
数据一致性,即数据不被篡改;
-
数据合法性,即数据属于发送方发送的,而不是第三方发送的;
混合加密算法使用对称加密和非对称加密,确保数据安全性;
消息摘要使用哈希算法,确保数据一致性;
数字签名技术确保数据合法性。