常见加密算法(第一卷)
概述
常见的加密算法分为三类
对称加密
加密和解密使用相同密钥的加密算法。
优点
加/解密的高速度和使用长密钥时的难破解性。
缺点
若企业内有n个用户,则整个企业共需要nx(n-1)个密钥。
常见的对称加密算法
DES,3DES,DESX,Blowfish,IDEA,RC4,RC5,RC6和AES
非对称加密
加密和解密使用不同密钥的加密算法,也称为公私钥加密
优点
若企业中有n个用户,企业需要生成n对密钥,并分发n个公钥。用户只需保管好自己的私钥,密钥分发变得简单。因私钥的唯一性,其他用户可以通过信息发送者的公钥来验证信息来源的真实性,也可以却确保发送者无法否认发送过该信息
缺点
加密速度远低于对称加密
常见的非对称加密
RSA,ECC(移动设备),Diffie-Hellman, EI Gamal,DSA(数字签名)
Hash加密
一种单向算法,对目标信息生成一段特定长度的唯一Hash值,但该值不能让用户重新获得目标信息。
应用场景
不可还原的密码存储
信息完整性校验
常见的Hash算法
MD2,MD4,MD5,HAVAL,SHA,SHA-1,HMAC,HMAC-MD5,HMAC-SHAL
加密算法的选择
数据量大建议采取对称加密算法,非对称算法可以实现签名。而且由于对称加密算法的密钥管理是一个复杂的过程,因此当数据量小时,我们可以考虑非对称加密算法
一般选择
采用非对称加密算法管理对称算法的密钥,然后用对称加密算法加密数据。
既实现了加密速度快的优点,又实现了安全方便管理密钥的优点
密钥采用
密钥越长,运行的速度越慢。
RSA建议采用1024位的数字
ECC建议采用160位
AES采用128位
加密算法介绍
对称加密算法
用于对敏感数据等信息进行加密
DES:
数据加密标准,速度较快,适用于加密大量数据的场合
3DES:
是基于DES,对一块数据用三个不同的密钥进行三次加密
AES:
高级加密标准,是下一代的加密算法标准,速度快,安全级别高
非对称算法
RSA:
支持变长密钥的公共密钥算法,需要加密的文件块的长度也是可变的
DSA:
数字签名算法,是一种标准的DDS(数字签名标准);
ECC:
椭圆曲线密码编码学
ECC和RSA对比
抗攻击性强,计算量小,处理速度快,存储空间占用小(IC卡上的应用有重要意义),短消息ECC加密带宽要求低。
散列算法
对信息的提炼,为一个固定长度。加密性强的散列是不可逆的,是无法通过散列结果,推出任何部分的原始信息。
雪崩效应:
任何输入信息的变化,都将导致散列结果的明显变化,
防冲突
不具有相同散列结果的信息
这些特性的散列结果可以用于验证信息是否被修改
单向散列函数一般用于产生消息摘要,密钥加密
MD5
由RSA数据安全公司开发的一种单向散列算法,非可逆,相同的明文产生相同的密文
SHA
可以对任意长度的数据运算生成一个160位的数值