美文网首页
2.1 对称加密技术简介

2.1 对称加密技术简介

作者: saillen | 来源:发表于2018-11-29 20:05 被阅读0次

对称数据加密技术简介

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

特点

对称加密算法家族有20多个成员,主要特点:

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

一般对称加密算法的加密流程

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

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

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

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

1.密钥长度

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

2.工作模式

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

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

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

3.填充模式

分组加密过程中,最后一块经常不满足要求的位数,这个时候就需要使用填充模式,将最后一块填充到满足需求的位数,
例如,DES的分组过程中,最后一块儿不足56位时,需要对最后一块进行填充,将最后一块填充至56位。常用的填充模式主要有如下两种:

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

应用

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

NOTE:对称加密算法在加密内容较大时效率也可满足需求,所以通常情况下应该优先考虑使用对称加密,其缺点很明显:密钥泄露则数据会变得极不安全

算法家族

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

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

算法供应商

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

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

算法选择

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

算法流程简图

graph TD
A[输入数据] -->|读取前N位| B(判断填充)
B --> C(分组过程)
C --> D(是否组间关联)
D --> A

相关文章

  • 2.1 对称加密技术简介

    对称数据加密技术简介 对称数据加密技术是当前应用最广泛、使用频率最高的加密技术,对称加密算法是双向可逆的,加密密钥...

  • 3.1 非对称加密简介

    非对称加密技术介绍 对称加密技术被称为初等加密技术,非对称加密技术即为高级数据加密技术,安全性更高。非对称加密算法...

  • 对称加密和非对称加密

    对称加密和非对称加密介绍和区别 什么是对称加密技术? 对称加密采用了对称密码编码技术,它的特点是文件加密和解密使用...

  • 2.2 DES/3DES算法 -- 算法介绍

    对称加密技术 - DES、3DES算法简介 DES算法和DESSede算法统称DES系列算法,是对称加密算法领域的...

  • 科普知识—对称加密和非对称加密

    区块链技术中广泛应用到非对称加密技术,非对称加密技术保证了信息在传输过程中的安全性,非对称加密技术是在对称加密技术...

  • linux c/c++面试知识点整理(六)

    51、对称加密算法和非对称加密算法 对称加密算法 对称加密才用了对称密码编码技术,它的特点是文件加密和解密使用...

  • 安全防护 — 对称加密和非对称加密的简介

    1. 对称加密 - 简介 对称密钥(Symmetric-key algorithm)又称为共享密钥加密,对称密钥在...

  • 信息安全基础知识

    加密技术分为对称加密和非对称加密,区别在于加密和解密是否使用相同的密钥。对称加密使用相同的密钥,非对称加密的密钥则...

  • 我所知道的HTTPS

    加密相关 这里主要介绍对称加密和非对称加密。 对称加密采用对称密码编码技术,也就是编码和解码采用相同的描述字符。既...

  • iOS安全之路--RSA

    一、RSA简介 在介绍RSA之前,先介绍下对称、非对称加密。 对称加密: A选择某一种加密规则,对信息进行加密;B...

网友评论

      本文标题:2.1 对称加密技术简介

      本文链接:https://www.haomeiwen.com/subject/tthqcqtx.html