首页 > 编程知识 正文

对称数据加密技术包括,对称加密技术的应用

时间:2023-05-03 10:34:01 阅读:215071 作者:1231

对称数据加密技术是当前应用最广泛、使用频率最高的加密技术,对称加密算法是双向可逆的,加密密钥和解密密钥相同是最大的特点。对称加密算法由古典加密算法演变而来,大部分加密算法的解密算法是逆运算。

特点

对称加密算法有20多种,对称加密算法有如下特点:

加密和解密密钥是一致的;安全程度依赖于密钥长度;每种算法对密钥的长度是有一定要求的;大部分是分组加密算法,所以算法需要指定工作模式、填充类型。 一般对称加密算法的加密流程

一般对称加密算法的加密流程大概如下:

1.将要加密的数据进行分组,按照N位为一组这就是分组过程,也就是分组加密的由来;2.以组为单位进行加密处理,这个时候对每块的加密操作就有了不同的工作模式;
不同的工作模式算法效率和产生的密文差别比较大;3.最后一块儿不足N位,则需要填充到N位,这就是填充模式;
不同的填充模式,影响到数据的安全性;

由上可知,对称加密算法中,非常重要的几个概念如下:

密钥:不是随意指定的,是需要计算机计算出来的;算法:选择哪种算法极大程度的决定了加密安全级别;工作模式:算法的工作模式决定了算法的效率和算法安全性;填充模式:使用哪种填充方式,能一定程度上干扰数据的破译工作; 1.密钥长度

对称加密算法的安全程度依赖于密钥长度,而密钥长度不是说变就变得,这需要算法能支持。密码长度越长则加密级别越高,数据内容越安全,JAVA仅仅支持56位长度的DES加密。

2.工作模式

加密算法应用的场景比较复杂,有的强调效率,有的强调安全,有的强调容错,这就出现了不同的工作模式。根据加密时每个密码块儿之间的关联方式分为:

ECB:电子密码本,最基本、最易理解的工作模式,每次加密都产生独立的密码组,每组的加密结果不影响,相同的组产生的密文相同;
优点:易于理解,简单一些,没有误差传递,便于实现并行操作;缺点:不能因此明文模式,有规律可寻用途:时候加密码密码,随机数,也就是明文重复小的数据;CBC:密文链接模式,目前应用最广泛的模式,每组之间互相影响,加密前,明文数据与前一组的密文进行异或运算,需要选择初始化向量;
优点:加密后的密文上下文关联,不会有重复密文,攻击性低;缺点:加密效率低,不利于并行计算,有误差传递问题。用途:可加密任意长度的数据。 CFB:密文反馈模式,比较复杂,也是上下文关联的,按8位分组将密文和明文进行异或运算;
优点:隐藏了明文模式,可以按字节诸葛进行加解密; 缺点:不利于并行计算,错误会扩散,需要初始化向量;用途:可用于检测发现密文的篡改。OFB:输出反馈模式,和CFB类似,不过OFB用前N位密码进行异或运算;
优点:隐藏明文模式,无误差传递;缺点:不利于并行计算;比CFB安全性差;用途:使用与加密冗余性较大的数据,比如语言、图像数据。CRT:计数模式,AES中经常使用CRT和CBC模式,上下文无关联的;
优点:可并行计算,与CBC模式一样的安全性;缺点:没有错误传播,不易确保数据的完整性;用途:各种加密用途。

一般如果数据重复性不高选择CBC模式,重复性高选择CFB或者OFB模式,AES经常用CRT模式。

3.填充模式

DES的分组过程中,最后一块儿不足56位的时候,需要对最后一块进行填充,这个时候就用到了填充模式:

NoPadding:不填充;PKCS5Padding:常用的填充模式。 应用

广泛的应用在各种需要数据加密的场景下,如很多Token则采用这种加密手段加密数据内容。只要需要加密的地方可以优先考虑使用对称加密技术。

算法家族

目前Java中对称加密算法大约有20多种,比较有代表性的算法有5种:

DES:数据加密标准,经典加密算法,由IBM创建提交给美国国家标准局,是对称加密算法的基础;DESede:俗称3DES,又称Triple DES,是对DES的改良,采用多重迭代的方式加密;AES:DES的替代者,更安全,密钥设置快,效率高,支持的密钥长(128、192、256);PBE:基于口令的加密,算是对称加密的特例,属于信息摘要算法和对称加密算法的融合;IDEA:国际数据加密标准,这是脱离了美国政府的限定产生的标准,强加密算法,常用在电子邮件加密中,比如PGP的核心算法。其他:Blowfish、Twofish、Serpent、IDEA 算法供应商

信息摘要算法很多受美国出口的限制,对称加密更是如此,尤其是能支持长密钥加密的对称加密算法,JDK 6仅支持一些密钥长度比较短的加密算法,如56位密钥的DES,112位的3DES,128位的AES。

对于高级的加密算法,可以考虑使用Bouncy Castle的开源Jar包。

算法选择

目前DES已经不安全了,优先考虑使用AES加密,IDEA要根据自己的场景考虑,不建议一般应用,PBE要看和哪种算法融合。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。