概述

常见的加密算法分为三类

对称加密

加密和解密使用相同密钥的加密算法。

优点

加/解密的高速度和使用长密钥时的难破解性。

缺点

若企业内有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位的数值