EFM32片内外设--AES ECB例程

作为AES,总共可以实现如下几种加密模式:

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);
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值