AES是一种区块加密标准算法,它的提出是为了升级替换原有的DES加密算法。因此它的安全强度高于DES算法。但不应片面理解,系统和数据的安全不仅与应用的加密算法有关,更与加密应用方案有关。和DES算法一样,AES也属于对称加密算法,对密钥的存储与保护,直接决定了整个系统的安全。

AES最常见的有3种方案,分别是AES-128、AES-192和AES-256,它们的区别在于密钥长度不同,AES-128的密钥长度为16bytes(128bit / 8),后两者分别为24bytes和32bytes。密钥越长,安全强度越高,但伴随运算轮数的增加,带来的运算开销就会更大,所以用户应根据不同应用场合进行合理选择。

用户在应用过程中,除了关注密钥长度外,还应注意确认算法模式。AES算法有五种加密模式,即CBC、ECB、CTR、OCF、CFB,后三种模式因其较为复杂且应用较少,不做详细说明,仅对ECB和CBC模式进行介绍。

ECB模式的全称是Electronic Codebook Book,即电码本模式。这种模式是将整个明文分成若干个长度相同的分组,然后对每一小组进行加密,并将加密结果拼接为最终结果,C = C1C2C3......Cn。它与ECB模式的DES算法加密流程基本一致。

CBC模式的全称是Cipher Block Chaining,这种模式是先将明文切分成若干个长度相同的分组(与ECB模式一样),此时先利用初始向量IV与第一组数据进行异或后再进行加密运算生成C1。将C1作为初始向量与第二组数据进行异或后再进行加密运算生成C2。以此类推,当最后一组数据加密完毕后,将加密结果拼接为最终结果,C = C1C2C3......Cn。

综上,AES192算法与DES算法很相似,均为块加密算法,密文数据以16字节为单位独立存在。若明文长度为16字节,当改变明文的前16字节时,只会影响密文的前16字节,密文后16字节不变。因此,在应用AES算法对线路传输数据加密过程中,若想保证密文的整体变化,要保证每块明文数据都是变化的。

希望本文能让大家对AES的算法特点有个更直观的认识,更安全有效的利用AES算法设计数据加解密的方案,将LKT中自带的AES算法接口高效利用起来。

加密芯片——AES算法特点与应用注意事项相关推荐

  1. 加密芯片——RSA算法特点与应用注意事项

    3DES.AES等对称算法虽有运算速度快.加密强度高等优点,但密钥存储与传递却是其最大的弱点,这也对它的应用场景造成了一定的限制.而RSA非对称算法利用非对称公私钥对,解决了密钥传递中的安全问题.在一 ...

  2. 加密芯片——3DES算法特点与应用注意事项

    3DES是三重数据加密算法的通称.它是DES算法的增强版,相当于对每个数据块应用三次DES运算.因为密钥长度的增加,安全等级和破解难度也要高于DES算法. 3DES算法的加密流程分为3步 1.明文数据 ...

  3. 关于AES算法及JAVA中的实现

    为什么80%的码农都做不了架构师?>>>    什么是AES 密码学中的高级加密标准(Advanced Encryption Standard,AES),又称Rijndael加密法, ...

  4. Delphi与JAVA互加解密AES算法

    搞了半天终于把这个对应的参数搞上了,话不多说,先干上代码: package com.bss.util;import java.io.UnsupportedEncodingException; impo ...

  5. AES算法相关数学知识 - 素域学习

    在AES算法中的MixColumn层中会用到伽罗瓦域中的乘法运算,而伽罗瓦域的运算涉及一些数学知识如下: 素域 有限域有时也称伽罗瓦域,它指的是由有限个元素组成的集合,在这个集合内可以执行加.减.乘和 ...

  6. python base64编码_JS和Python实现AES算法

    1. AES原理 AES算法是典型的对称加密算法,AES原理可以学习这两篇文档: 漫画:什么是AES算法:https://www.toutiao.com/i6783550080784794124/ A ...

  7. 什么是AES算法?(整合版)

    转载自 玻璃猫 程序员小灰 假设有一个发送方在向接收方发送消息.如果没有任何加密算法,接收方发送的是一个明文消息:"我是小灰" 如果消息被中间人截获到,即使中间人无法篡改消息,也可 ...

  8. 使用C++的方式实现AES算法

    aes_file.h #include <iostream> #include <fstream> #include <bitset> #include <s ...

  9. aes key长度_AES加密(1): 基本AES算法

    简介 AES原本指的是一套标准FIPS 197,而AES算法一般指分组大小为128bits的Rijndeal算法,由比利时学者Joan Daemen和Vincent Rijmen提出. AES与Rij ...

最新文章

  1. OCRNet: 目标区域上下文信息的特征表达 | ECCV 2020
  2. 云脑人力资源管理软件EHR选型手记(即时连载)
  3. Django系列:(1)PyCharm下创建并运行我们的第一个Django工程
  4. android 性能优化---(5)Bitmap图片资源优化
  5. UNIX网络编程读书笔记:原始套接口
  6. 我们团队一位Android开发者的故事
  7. day55-负载均衡之lvs
  8. java cad polyline,为AUTOCAD编写系列批量处理程序
  9. latex排版:合并表格的多行多列
  10. 07-SNAP处理Sentinel-1 IW GRD数据
  11. [C#]LambdaTest
  12. Python爬取百思不得姐段子
  13. 后台Base64解码图片变小的坑
  14. Ant Design Charts绘制中国地图并动态添加标记点
  15. 海量数据处理-分而治之和hash映射
  16. 什么是重绘和重排? 如何去避免?
  17. 个人日记-学习究竟是什么读后感3-2020/7/13
  18. Android抓包-Charles弱网环境模拟
  19. AutoCAD命令集
  20. 移动端界面中的版式设计原理(上)

热门文章

  1. 9 年前他用 1 万个比特币买两个披萨, 9 年后他把当年的代码卖给苹果, 成 GPU 挖矿之父...
  2. 面部识别 vs 情绪状态,你还能守住自己的秘密吗?
  3. 315 后,等待失业的程序员
  4. 中兴侵权案败诉需赔 2.89 亿元;HTC 裁员 1500 人;Android P Beta 3 发布 | CSDN 极客头条...
  5. Airbnb 弃用之后,我们还应该用 React Native 吗?
  6. 为什么微信小程序也能做游戏?
  7. 一人编程累,加班何人陪?1024 最好的礼物给最牛掰的你
  8. 服务器link系统命令,可以使用命令(7)来查看网络接口的运行情况。输入该命令后,系统的输出信息如下。...
  9. 什么是Redis缓存雪崩、缓存穿透和缓存击穿
  10. java futuretask 源码解析_Java异步编程——深入源码分析FutureTask