1. ECB模式:
ECB(Electronic Code Book)是最基本的模式,如下图所示,他将明文切为4块,每块都以对称密钥加密,产生密文。
它的优点是简单,而且可以并行处理。另外一个优点是其中1块发生错误时,不会影响其他3块。但是缺点是它只适合较短信息,由于每块都是用相同的密钥,因此容易因为信息
重复而被人破解.
(此图片源自潘天佑博士的《資訊安全概論與實務》)
例程(以128bit为例):
#include <stdint.h>
#include <stdio.h>
#include <stdbool.h>
#include "efm32.h"
#include "efm32_chip.h"
#include "efm32_cmu.h"
#include "efm32_aes.h"
/***************************************************
该demo主要是使用EFM32片内的AES加解密硬件加速器来实现对
特定字符的加密和解密。
1.使用128bit进行加解密
2.使用ECB方式进行加密
***************************************************/
//初始明文
unsigned char AES_PlantTest1[16] = "This aaaaa text";
//使用该变量来查看加密之后的密文
unsigned char AES_PlantTest2[16];
//使用该变量来查看解密之后的明文
unsigned char AES_PlantTest3[16];
//密钥
unsigned char g_ucKey[16] =
{
0x12, 0x23, 0x34, 0x45, 0x56, 0x67, 0x78, 0x89,
0x9A, 0xAB, 0xBC, 0xCD, 0xDE, 0xEF, 0xF0, 0x00
};
void AES_ECB_128bit_Encrypt(void)
{
AES_ECB128(AES_PlantTest2,AES_PlantTest1,16,g_ucKey,true);
AES_DecryptKey128(g_ucKey,g_ucKey);
AES_ECB128(AES_PlantTest3,AES_PlantTest2,16,g_ucKey,false);
}