暗码学中的高档加密规范(Advanced Encryption Standard,AES),又称Rijndael加密法,是美国联邦政府选用的一种区块加密规范。
对称暗码体系的发展趋势将以分组暗码为关键。分组暗码算法一般由密钥扩展算法和加密(解密)算法两部分组成。密钥扩展算法将b字节用户主密钥扩展成r个子密钥。加密算法由一个暗码学上的弱函数f与r个子密钥迭代r次组成。紊乱和密钥分散是分组暗码算法规划的基本原则。抵挡已知明文的差分和线性进犯,可变长密钥和分组是该体系的规划关键。
AES是美国国家规范技能研究所NIST旨在替代DES的21世纪的加密规范。
AES的基本要求是,选用对称分组暗码体系,密钥长度的最少支撑为128、192、256,分组长度128位,算法应易于各种硬件和软件完成。1998年NIST开端AES第一轮剖析、测验和搜集,共产生了15个候选算法。1999年3月完成了第二轮AES2的剖析、测验。2000年10月2日美国政府正式宣告选中比利时暗码学家Joan Daemen和Vincent Rijmen提出的一种暗码算法RIJNDAEL作为AES.
在运用方面,虽然DES在安全上是软弱的,但由于快速DES芯片的大量生产,使得DES仍能暂时持续运用,为进步安全强度,一般运用独立密钥的三级DES。可是DES早晚要被AES替代。流暗码体系较之分组暗码在理论上老练且安全,但未被列入下一代加密规范。
AES加密数据块和密钥长度可所以128比特、192比特、256比特中的恣意一个。AES加密有许多轮的重复和改换。大致过程如下:1、密钥扩展(KeyExpansion),2、初始轮(Initial Round),3、重复轮(Rounds),每一轮又包含:SubBytes、ShiftRows、MixColumns、AddRoundKey,4、终究轮(Final Round),终究轮没有MixColumns。
STM8L选用的是128比特的AES加密数据块和密钥长度。
今日咱们测验下面加密与解密,运用板上两个LED显现是否成功。
uint8_t PlainText[16] = “STM32L and STM8L”;//需求加密的内容
/* encryption key used to encrypt PlainText */
uint8_t EncryptionKey[16] = “ultra-low power.”;//密钥