数据加密
数据加密,是一门历史悠久的技术,指通过加密算法和加密密钥将明文转变为密文,而解密则是通过解密算法和解密密钥将密文恢复为明文。它的核心是密码学。
数据加密目前仍是计算机系统对信息进行保护的一种最可靠的办法。它利用密码技术对信息进行加密,实现信息隐蔽,从而起到保护信息的安全的作用。
==算法==:属性函数
==秘钥==:可变参数(加密秘钥、解密秘钥)
加密系统中,算法是相对稳定的,而秘钥是可以改变的。
数据加密分类
对称加密
对称加密采用了对称密码编码技术,它的特点是文件加密和解密使用相同的密钥,即加密密钥也可以用作解密密钥
非对称加密
非对称加密需要两个密钥:公开密钥(publickey)和私有密 (privatekey)。公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密
混合加密
对称加密 + 非对称加密
数据加密算法
对称加密算法
常用算法
DES(Data Encryption Standard)
一种对称加密标准,是目前使用最广泛的密钥系统,特别是在保护金融数据的安全中。曾是美国联邦政府的加密标准,但现已被AES所替代
3DES(Triple DES)
基于DES,对一块数据用三个不同的密钥进行三次加密,强度更高
AES(Advanced Encryption Standard)
又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准,有AES-128, AES-192或AES-256算法
PBE(Password Base Encryption)
一种基于口令的加密算法,特点在于口令由用户自己掌握,采用随机数(我们这里叫做
盐
)杂凑多重加密等方法保证数据的安全性
对称加密算法的优点
- 算法公开
- 计算量小
- 加密速度快,加密效率高
对称加密算法的缺点
- 加解密双方需要使用相同的秘钥
- 秘钥管理很不方便,如果用户很多,那么秘钥的管理成几何性增长
- 任何一方秘钥泄露,数据都不安全
非对称加密算法
常用算法
RSA
RSA是目前最有影响力和最常用的公钥加密算法,它能够抵抗到目前为止已知的绝大多数密码攻击,已被ISO推荐为公钥数据加密标准
Elgamal
基于离散对数问题的加密算法,只能单向加解密,能用于数据加密和数字签名
D-H
基于计算离散对数的难度的秘钥交换算法,它使得通信的双方能在非安全的信道中安全的交换密钥,用于加密后续的通信消息,不用于消息的加解密
ECC
Elliptic Curve Cryptography,基于椭圆曲线的一种加密算法
与RSA算法对比,它的安全性更高,处理速度更快,但由于它的数学理论非常深奥和复杂,在工程应用中比较难于实现
非对称加密算法的优点
- 一对公私钥,安全性更高
- 秘钥管理很方便
非对称加密算法的缺点
- 计算量大
- 加密速度慢,比对称加密算法慢1000倍左右
- 不适合大数据量加密
使用
使用分类
在实践中,结合对称加密和非对称加密算法的优缺点,可分为如下两种情况:
小数据量
直接使用非对称加密算法
大数据量
使用对称加密算法对数据加密,使用非对称加密算法加密对称加密算法中的秘钥
算法推荐
- 对称加密算法,推荐使用
AES
- 非对称加密算法,推荐使用
RSA
和DH
秘钥长度根据需求决定
参考
http://ch-tseng.blogspot.jp/
http://liaoph.com/encrytion-and-openssl/
http://deshui.wang/%E6%8A%80%E6%9C%AF/2016/01/10/security-3
http://blog.csdn.net/zhengchao1991/article/details/53483357
http://blog.csdn.net/zuozhiyoulaisam/article/details/54929661
http://blog.csdn.net/zuozhiyoulaisam/article/details/54947402