AES加密算法

这篇具有很好参考价值的文章主要介绍了AES加密算法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

AES(Advanced Encryption Standard)加密算法

参考 “【AES加密算法】| AES加密过程详解| 对称加密| Rijndael-128| 密码学| 信息安全” https://www.bilibili.com/video/BV1i341187fK?from=search&seid=14609524973320441322
参考 《密码编码与信息安全——C++实践》

基本原理

  • AES属于分组加密算法,属于对称加密,故在传递密钥途中有密钥泄露的风险
  • 明文plainText和密文cipherText固定长度为128bit(16B)
  • 密钥长度为128,192,256bit,密钥长度会改变算法循环次数,分别对应10/12/14轮循环
    AES加密算法

加密过程

AES加密算法

  • 先将16Byte(一个字节是一个0xFF)数据合成一个矩阵,再进行后续计算
    AES加密算法

  • 以密钥为128bit为例,进行10轮循环,包含9轮循环运算和1轮最终轮运算,在最终轮运算中只进行1,2,4步骤(不进行列混合步骤)
    AES加密算法

  • 初始变换。将明文矩阵和密钥矩阵按字节中每一位异或。
    AES加密算法
    AES加密算法

  • 9轮循环中1.字节代换。这是一个S盒代换,是一个非线性代换。
    如将(0, 0)处19查S盒后替换。
    AES加密算法
    AES加密算法

  • 9轮循环中2.行移位。将每一行字节按照字节循环左移。
    AES加密算法
    AES加密算法

  • 9轮循环中3.列混合。将上一步得到的矩阵左乘一个矩阵(不是矩阵点乘的相乘相加)。而是相特殊乘(01相乘就是本身,无需管)再相互异或。
    AES加密算法
    AES加密算法

  • 9轮循环中4.轮密钥加。即将上一步得到的矩阵的每一列和与子密钥矩阵异或操作。
    AES加密算法

密钥生成

使用密钥扩展得到10轮的密钥。将原初始密钥矩阵逐字节列向右边列扩展,根据该列是否是4的倍数扩展方式不同。如果是4的倍数则比较麻烦,如果不是4的倍数则需要进行异或操作。
AES加密算法

  • 若不是4的倍数
    AES加密算法
  • 若是4的倍数,则要进行字循环;字节代换;轮常量异或。上面三步称为T函数,再将T函数得到的结果和W[i-4]异或。细节来说,就是先对W[i-1]即前一列数据循环左移一个字节;再对字循环结果使用S盒进行字节代换;再同轮常量进行异或。将得到的结果再和W[i-4]异或。
    AES加密算法

AES加密算法
AES加密算法
AES加密算法文章来源地址https://www.toymoban.com/news/detail-446168.html

到了这里,关于AES加密算法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 安全:AES算法及其加密模式

    AES(高级加密标准)是一种对称密钥加密算法,被广泛用于保护数据的机密性。 AES算法: 结构: AES算法使用替代(SubBytes)、置换(ShiftRows)、混淆(MixColumns)和轮密钥加(AddRoundKey)等四种基本操作来处理数据块。 密钥长度: AES支持128位、192位和256位三种密钥长度,分别

    2024年01月23日
    浏览(51)
  • 加密算法 AES和RSA

    通过互联网发送数据,数据可能会被第三者恶意窃听,造成损失。因此需要给重要的数据进行加密,加密后的数据被称为“密文”。接收方通过解除加密或得原本的数据,把密文恢复为原本数据的操作叫做“解密”。像这样就减少了数据被恶意窃听的风险。 那么加密是怎么操

    2024年02月06日
    浏览(59)
  • 信息安全4——AES加密算法

    ①算法简介 AES( Advanced Encryption Standard) 算法即高级加密标准,在密码学中又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准。在微信小程序的数据传输过程中用到的加密算法。AES算法是用来替代原先的DES,目前已经被全世界广泛使用,同时AES已经成为对称密钥加密

    2024年01月22日
    浏览(40)
  • C# 实现对称加密算法(AES)与非对称加密算法(RSA),包含前端加密对应算法实现

    一种既简单速度又快的加密方式,加密与解密使用的都是同一个密钥,别名又叫做:单密钥加密;对称加密有很多公开算法,并且因为它效率很高,所以适用于加密大量数据的场合;但其密钥的传输过程是不安全的,并且容易被破解,密钥管理起来也相对麻烦。 需要两个密钥

    2024年02月09日
    浏览(68)
  • AES与DES加密解密算法

    AES(Advanced Encryption Standard,高级加密标准)的出现,是因为以前使用的DES算法密钥长度较短,已经不适应当今数据加密安 全性的要求,因此2000年10月2日,美国政府宣布将比利时密码学家Joan Daemen和Vincent Rijmen提出的密码算法RIJNDAEL作为高级加密标准。2001年11月26日,美国政府

    2024年04月28日
    浏览(53)
  • AES算法:加密通信的新选择

    AES(Advanced Encryption Standard)算法是一种对称密钥加密算法,由比利时密码学家Joan Daemen和Vincent Rijmen设计,于2001年被美国国家标准技术研究所(NIST)确定为新的数据加密标准。AES算法取代了DES算法,成为当前最流行的对称加密算法之一。 密钥扩展 :根据初始密钥生成多个轮

    2024年03月18日
    浏览(43)
  • 适合于物联网通信的数据加密AES算法

            AES加密算法全称是Advanced Encryption Standard(高级加密标准),是最为常见的对称加密算法之一。AES支持三种长度的密钥:128位、192位、256位。         在物联网通信应用中通常传输的是十六进制的数据,需要考虑数据的加密问题。         AES数据加密算法可

    2024年01月22日
    浏览(56)
  • php常用加密算法大全aes、3des、rsa等

    目录 一、可解密加解密算法 1、aes 加解密算法 2、旧3des加解密方法  3、新3des加解密方法 4、rsa公私钥加解密、签名验签方法 5、自定义加密算法1  6、自定义加密算法2 7、自定义加密算法3 二、不可解密加密算法  1、md5算法  2、crypt算法 3、sha1算法 5、hash 算法 6、 password_ha

    2024年02月09日
    浏览(50)
  • Java 中常见的加密算法,DES、3DES、AES、RSA

    加密算法是一种将数据转换为不可读形式的算法,以保护数据的机密性和完整性。加密算法被广泛应用于计算机网络、数据库、电子商务等领域,用于保护敏感数据的安全性,如用户密码、信用卡信息、医疗记录等。在 Java 中,有许多常见的加密算法,本文将对加密算法的基

    2024年02月03日
    浏览(56)
  • 实现 MyBatis-Plus 中的配置加密功能(使用 AES 算法)

    在项目开发过程中,为了增强数据安全性,我们常常需要对敏感信息进行加密处理。MyBatis-Plus 提供了方便的配置加密功能,使我们能够对配置文件中的敏感信息进行加密和解密操作。本文将详细介绍如何实现 MyBatis-Plus 中的配置加密功能,并给出相应的代码示例。 首先,我们

    2024年02月07日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包