FPGA AES加密IP

AES算法是一种数据加密标准,具有强安全性和高效性。它使用128/192/256位密钥,10轮加密迭代,包括字节替换、行移位、列混合和轮密钥加步骤。解密过程是加密的逆向操作。有限域GF(28)用于字节运算,加法是异或,乘法运算较为复杂。在FPGA中,256位模式的ECB模式耗时14个时钟周期。
摘要由CSDN通过智能技术生成
1.1

AES算法原理AES算法分组长度为128bit,密钥长度可为128/196/256bit.AES作为新一代的数据加密标准,汇集了强安全性,高性能,高效率,易用和灵活等优点。AES算法的加密和解密过程分别有10轮迭代,加密过程的每一轮迭代包括字节代换(ByteSubtitute),行移位(ShiftRow),列混合(MixColumn),轮密钥加(RoundKey)四个步骤,最后一轮没有列混合。解密过程的每一轮迭代包括行移位求逆,字节替换求逆,轮密钥加求逆,列混合求逆四个步骤,最后一轮不包括列混合。密钥扩展为轮迭代所需要的11组子密钥
1.2
有限域GF(28 )AES中的运算一部分是按字节(有限域GF(28 )的元素)定义的,另一部分是按四个字节组成的字定义的,一个字为32bit,可看成系数在有限域GF(28 )上的次数小于4的多项式。有限域GF(28 )是由不可约多项式m(x)=x8 +x4 +x3 +x +1 (对应二进制100011011),其中的元素可以表示成GF(28 )的多项式形式,也可以表示成字节的形式,还可以表示成16进制的形式。例如一个由01010111组成的字节可以表示成多项式x6+x4 +x2+x +1 ,也可以是16进制57。在实际的操作过程中,是具体清苦那个采用相应的表示方法,这里所选的m(x)是所有次数为8的不可约多项式列表中的一个,AES算法用到的GF(28 )域的运算,该域中的加法定义为简单的bit位异或,乘法运算相对复杂一些,用x乘以一个多项式简称为X乘,由此得出X(16进制表示为02)乘可以用字节内左移一位和紧接着的一个与16进制数1B的按位模2加来实现,该计算记为X time(),X乘运算定义如下: X time(b)={b<<1, if b7 =0 or b<<1 ^ 0x1B, if b7 =1}
1.3
加密解密过程轮密钥相加是将128bit密钥ki 同状态中的数据及进行逐位异或操作,该过程可以看成是字逐位异或的结果,也可以看成字节级别的操作。迭代轮数Nr 是由密钥长度Nk决定的,密钥长度不同,那么迭代轮数就不同。在AES算法中,加解密过程需要表示很多次的数据变换,每次变换后的结果称为状态,状态可以用一个二维矩阵表示,该矩阵有4行NB列,其中NB等于明文或密文分组长度除以32.它是按照优先的原则,从上到下,从左到右依次映射到矩阵中
1.4 FPGA实现
在这里插入图片描述
标准256模式ECB模式耗时14个CLOCK
在这里插入图片描述

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值