sdk-hwV1.3/lichee/xr806/appos/project/example/ce
梁志勇 09427e37ea chore(other):sdk 裁减 2024-05-07 18:09:20 +08:00
..
gcc chore(other):sdk 裁减 2024-05-07 18:09:20 +08:00
main.c chore(other):sdk 裁减 2024-05-07 18:09:20 +08:00
prj_config.h chore(other):sdk 裁减 2024-05-07 18:09:20 +08:00
readme.md chore(other):sdk 裁减 2024-05-07 18:09:20 +08:00

readme.md

硬件加解密模块(CE)示例工程

硬件加解密模块示例工程展示了XRadio SDK中CE模块中常用的加解密接口使用方法。

本工程中提供了以下几种加解密示例:

  1. AES、CRC、MD5、伪随机数获取。

适用平台

本工程适用以下芯片类型:

  1. XR806系列芯片

本工程适用以下评估板类型:

  1. 底板XR806_EVB
  2. 模组XR806_MD01

本工程在基于"XR806_MD01"的“XR806_EVB”板上测试通过。 若需要在其他适用芯片和评估板上运行本工程请根据快速指南《XRadio_Quick_Start_Guide-CN》的提示进行相关配置修改。

XRadio Wireless MCU芯片和评估板的更多信息可在以下地址获取 https://docs.xradiotech.com

工程配置

localconfig.mk

  • N/A

Makefile

  • N/A

board_config.h

  • N/A

board_config.c

  • N/A

prj_config.h

  • PRJCONF_CE_EN: 可选项PRJCONF_CE_EN为1时系统初始化时会自动初始化CE模块应用层要用CE模块时可直接用不必初始化为0时系统初始化时不会自动初始化CE模块应用层要用CE模块时则需要先初始化CE模块。

模块依赖

必选项

可选项

工程说明

本工程为CE模块的使用用例使用CE模块前需要对常用的加解密算法或哈希算法有一定了解比如AESDES3DES、CRC、SHA、MD5等。

CE模块支持常用的AES、DES、3DES加解密支持的模式有ECB、CBC。支持的哈希算法有CRC、MD5、SHA1、SHA256。支持的随机数发生器有伪随机发生器、真随机发生器。

本工程只演示了AES加解密、CRC、MD5、伪随机发生器的用法其他算法的接口用法可参考头文件也可参考project/common/cmd/cmd_ce.c中的代码。

操作说明

  1. 编译工程,烧录镜像,重启即可
  2. 打开串口调试工具,并连接串口
  3. 系统启动后,会自动打印加密结果

代码结构

#本工程
.
├── gcc
│   ├── defconfig          # 本工程的配置规则,用于覆盖默认配置
│   └── Makefile           # 本工程的编译规则如ld文件、image.cfg等文件指定可覆盖默认配置
├── main.c                 # 本工程的入口,工程示例
├── prj_config.h           # 本工程的配置选项,主要用于功能的选择。
└── readme.md              # 本工程的说明文档

#本程用到XRadio SDK的其他配置文件
.
└── project
    └── common
        └── board
            └── xr806_dig_ver          #在project/Kconfig默认指定使用xr806_dig_ver的板级配置
                ├── board_config.h     #本工程的板级配置
                └── board_config.c     #本工程的板级pin mux的配置。

性能资源

各加解密算法加解密数据长度及所需时间数据如下:

在AES、DES和3DES中在ce启动后每增加一个block加解密增加的时间是固定的。

加密模式及秘钥长度 16 bytes 32 bytes 48 bytes 64 bytes 80 bytes
AES_ECB_128 4.1us 5.1us 6.2us 7.4us 8.5us
AES_ECB_192 4.2us 5.6us 6.8us 8.0us 9.2us
AES_ECB_256 4.8us 6.1us 7.4us 8.7us 10.1us
AES_CBC_128 4.9us 6.0us 7.1us 8.2us 9.3us
AES_CBC_192 5.5us 6.5us 7.7us 8.9us 10.1us
AES_CBC_256 5.6us 6.9us 8.2us 9.6us 10.9us
加密模式 8 bytes 16 bytes 24 bytes 32 bytes 40 bytes
DES_ECB 3.2us 3.6us 4.2us 4.7us 5.2us
DES_CBC 3.5us 4.0us 4.5us 5.0us 5.8us
3DES_ECB 4.1us 4.8us 5.2us 6.5us 7.3us
3DES_CBC 4.5us 5.3us 6.1us 7.0us 7.8us
加密模式 50 bytes 100 bytes 150 bytes 200 bytes 250 bytes
SHA1 5.6us 6.4us 7.3us 8.1us 9.1us
SHA256 5.5us 6.3us 7.2us 8.0us 8.9us
MD5 5.4us 6.2us 7.1us 7.9us 8.7us

注意事项

AES、DES、3DES的填充方式为zeropadding如果需要其他填充方式需要自行修改ce驱动代码。

常见问题

参考文档