AES加密算法及其差分故障分析 。

本文详细介绍了AES加密算法的原理,包括字节代换、行移位、列混淆和轮密钥加等操作,并探讨了AES的DFA攻击原理,通过故障传播分析和攻击过程揭示了如何利用差分故障推导密钥。
摘要由CSDN通过智能技术生成

 

1

 AES算法加密原理

AES算法的数据分组长度为128位,密钥长度可指定为128位、192位或256位,不同的密钥长度分别对应不同的加密轮数:10、12、14轮。本文以密钥长度128位,加密10轮为例展开介绍。图1为AES算法的加密流程图。

图1 AES算法加密流程图

AES每一轮加密包含4个操作:字节代换(SubBytes,SB)、行移位(ShiftRows, SR)、列混淆(MixColumns, MC)和轮密钥加(AddRoundKey)。最后一轮同其它轮变换基本相同,唯一的不同是移除了列混淆变换。解密过程为对应的逆操作。由于每一步操作都是可逆的,按照相反的顺序进行解密即可恢复明文。加解密中每轮的密钥由初始密钥扩展得到。

AES的一个特性是将称为状态(state)的密码中间结果用一个具有四行四列的二维字节数组来表示。图2为AES算法加密一轮的流程图。

图2 AES算法加密一轮流程图

1.1字节代换

字节代换是一个非线性函数(S盒、逆S盒),用查找表的方式将中间状态的每个字节替换成对应的字节。S盒用于加密操作,逆S盒用于解密操作。它们都是由16*16字节组成的矩阵,即矩阵共有256个元素。每个元素的内容是1个字节(8bit)的值,且每个元素各不相同。状态矩阵中的元素映射为一个新字节的规则为:把该字节的高4位作为行值,低四位作为列值,取出S盒或者逆S盒中对应行列的元素作为输出。表1为S盒查找表,表2为逆S盒查找表。

表1 S盒查找表

表2 逆S盒查找表

1.2行移位

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值