加密芯片——AES算法特点与应用注意事项
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算法特点与应用注意事项相关推荐
- 加密芯片——RSA算法特点与应用注意事项
3DES.AES等对称算法虽有运算速度快.加密强度高等优点,但密钥存储与传递却是其最大的弱点,这也对它的应用场景造成了一定的限制.而RSA非对称算法利用非对称公私钥对,解决了密钥传递中的安全问题.在一 ...
- 加密芯片——3DES算法特点与应用注意事项
3DES是三重数据加密算法的通称.它是DES算法的增强版,相当于对每个数据块应用三次DES运算.因为密钥长度的增加,安全等级和破解难度也要高于DES算法. 3DES算法的加密流程分为3步 1.明文数据 ...
- 关于AES算法及JAVA中的实现
为什么80%的码农都做不了架构师?>>> 什么是AES 密码学中的高级加密标准(Advanced Encryption Standard,AES),又称Rijndael加密法, ...
- Delphi与JAVA互加解密AES算法
搞了半天终于把这个对应的参数搞上了,话不多说,先干上代码: package com.bss.util;import java.io.UnsupportedEncodingException; impo ...
- AES算法相关数学知识 - 素域学习
在AES算法中的MixColumn层中会用到伽罗瓦域中的乘法运算,而伽罗瓦域的运算涉及一些数学知识如下: 素域 有限域有时也称伽罗瓦域,它指的是由有限个元素组成的集合,在这个集合内可以执行加.减.乘和 ...
- python base64编码_JS和Python实现AES算法
1. AES原理 AES算法是典型的对称加密算法,AES原理可以学习这两篇文档: 漫画:什么是AES算法:https://www.toutiao.com/i6783550080784794124/ A ...
- 什么是AES算法?(整合版)
转载自 玻璃猫 程序员小灰 假设有一个发送方在向接收方发送消息.如果没有任何加密算法,接收方发送的是一个明文消息:"我是小灰" 如果消息被中间人截获到,即使中间人无法篡改消息,也可 ...
- 使用C++的方式实现AES算法
aes_file.h #include <iostream> #include <fstream> #include <bitset> #include <s ...
- aes key长度_AES加密(1): 基本AES算法
简介 AES原本指的是一套标准FIPS 197,而AES算法一般指分组大小为128bits的Rijndeal算法,由比利时学者Joan Daemen和Vincent Rijmen提出. AES与Rij ...
最新文章
- OCRNet: 目标区域上下文信息的特征表达 | ECCV 2020
- 云脑人力资源管理软件EHR选型手记(即时连载)
- Django系列:(1)PyCharm下创建并运行我们的第一个Django工程
- android 性能优化---(5)Bitmap图片资源优化
- UNIX网络编程读书笔记:原始套接口
- 我们团队一位Android开发者的故事
- day55-负载均衡之lvs
- java cad polyline,为AUTOCAD编写系列批量处理程序
- latex排版:合并表格的多行多列
- 07-SNAP处理Sentinel-1 IW GRD数据
- [C#]LambdaTest
- Python爬取百思不得姐段子
- 后台Base64解码图片变小的坑
- Ant Design Charts绘制中国地图并动态添加标记点
- 海量数据处理-分而治之和hash映射
- 什么是重绘和重排? 如何去避免?
- 个人日记-学习究竟是什么读后感3-2020/7/13
- Android抓包-Charles弱网环境模拟
- AutoCAD命令集
- 移动端界面中的版式设计原理(上)
热门文章
- 9 年前他用 1 万个比特币买两个披萨, 9 年后他把当年的代码卖给苹果, 成 GPU 挖矿之父...
- 面部识别 vs 情绪状态,你还能守住自己的秘密吗?
- 315 后,等待失业的程序员
- 中兴侵权案败诉需赔 2.89 亿元;HTC 裁员 1500 人;Android P Beta 3 发布 | CSDN 极客头条...
- Airbnb 弃用之后,我们还应该用 React Native 吗?
- 为什么微信小程序也能做游戏?
- 一人编程累,加班何人陪?1024 最好的礼物给最牛掰的你
- 服务器link系统命令,可以使用命令(7)来查看网络接口的运行情况。输入该命令后,系统的输出信息如下。...
- 什么是Redis缓存雪崩、缓存穿透和缓存击穿
- java futuretask 源码解析_Java异步编程——深入源码分析FutureTask