第1关:高级加密标准
任务描述
密码学中的高级加密标准(Advanced Encryption Standard,AES),又称 Rijndael 加密法,是美国联邦政府采用的一种区块加密标准。
本关任务:实现 AES 过程中的 SubBytes 过程。
相关知识
为了完成本关任务,你需要掌握:AES 的基本原理。
AES
AES具有128比特的分组长度,三种可选的密钥长度,即128比特、192比特和256比特。AES是一个迭代型密码;轮数Nr依赖于密钥长度。如果密钥长度为128比特,则Nr=10;如果密钥长度为192比特,则Nr=12;如果密钥长度为256比特,则Nr=14。首先我们给出一个AES的总体描述。该算法的执行过程如下:
1.给定一个明文x,将State初始化为x,并进行AddRoundKey操作,将RoundKey与State异或。
2.对前Nr−1轮中的每一轮,用S盒进行一次代换操作,称为SubBytes;对State做一置换ShiftRows;再对State做一次操作MixColumns;然后进行AddRoundKey操作。
3.依次进行SubBytes、ShiftRows和AddRoundKey操作。<