AES.rar

  • 咕咚咕咚
    了解作者
  • Java
    开发工具
  • 1KB
    文件大小
  • rar
    文件格式
  • 0
    收藏次数
  • 10 积分
    下载积分
  • 0
    下载次数
  • 2019-06-03 00:51
    上传日期
AES-128加密流程可以使用如下伪代码表示
AES.rar
  • AES
  • AES解密.txt
    509B
  • AES介绍.txt
    1.8KB
  • AES加密.txt
    420B
内容介绍
AES算法是当前最流行的对称加密算法,也是一种分组加密算法,分组密码就是把明文分为固定长度的一组一组,每次加密一组数据,直到加密完整个明文数据。AES算法根据分组长度可以分为AES128, AES192,AES256,其所要求的秘钥长度和加密轮数也各不相同。鉴于这三种模式的算法在本质上没有区别,所以本文主要介绍AES-128(数据分组为16字节,秘钥长度为16字节,加密轮数为10轮),并给出C语言实现。 确切的说分组密码只是规定了怎么加密一组明文,如果明文数据比较长,其他的组需要怎么进行加密取决于使用何种分组密码工作模式。对于AES-128而言,每次只加密16字节长度的数据,如果明文长度为32字节话,我们很容易想到第2组16字节可以仿照第1组16字节数据进行处理,这就是最简单的分组密码工作模式ECB(电子密码本)模式, 本文主要讲述AES算法实现,对于长数据也是使用这种最简单的ECB分组处理方式,更多其他分组密码工作模式,请参考另一篇文章图解分组密码五大工作模式。 前面讨论的数据长度都是16字节,或者其整倍数长度的加密算法实现,对于数据长度不是分组长度整倍数的情形,通常需要对数据进行填充,使其长度达到分组长度的整倍数再来进行加密。对于数据长度不足分组长度整倍数使用何种格式进行数据填充有多种不同的填充标准,比如在数据后面填充二进制的0x0,直到达到要求的长度,这就是ZeroPadding方式;比如数据缺少几位就填充二进制的几,例如缺少4位填充0x04 0x04 0x04 0x04,这就是PKCS7/PKCS5填充方式。本文提供的实现不涉及数据填充,假定明文数据都是16字节的整倍数长度。 AES算法流程 AES算法主要可以分为秘钥扩展、字节替换、行移位、列混合和轮秘钥加这5个步骤。 秘钥扩展(KeyExpansions:给定的初始秘钥一般比较短,比如16字节,而算法如果进行10轮运算的话就需要16x(10+1)字节长度的秘钥,需要对原始秘钥进行秘钥扩展。 字节替换(SubBytes):一个非线性的替换步骤,根据查表把一个字节替换为另一个字节。 行移位(ShiftRows):将数据矩阵的每一行循环移位一定长度。 列混合(MixColumns):将数据矩阵乘以一个固定的矩阵,增加混淆程度。 轮秘钥加(AddRoundKey):将数据矩阵与秘钥矩阵进行异或操作。 ---------------------
评论
    相关推荐
    • AES.rar
      new algo for sec for lifi with matlab
    • AES.zip
      AES的开源代码,并附有详细注释,适合新人学习
    • AES.zip
      通过verilog来实现aes算法的加密和解密
    • AES.rar
      实现加解密操作,实现基本的aes加解密操作,采用C语言实现aes方式的加解密
    • AES.zip
      对字符进行加解密,实现在C++情况下的字符加解密过程
    • AES algorithm
      AES 算法,有学生编写,非常适合课程设计者
    • AES工具
      AES加解密工具。网上大部分是文本工具,这个是支持16进制加解密,比较方便。
    • AES源码
      AES算法实现的源码,对密码感兴趣的可以看看
    • 基于verilog hdl的AES加密
      包括源码在内完整的quartus2工程都在压缩包内,可以直接再quartus2中运行
    • 3DES加密算法源代码.rar
      DES加密源代码,用3DES加密算法。 加密强度高,到目前为止,还无人能够破解!