AES加解密效率测试(纯软件AESCBC-128/256)--以嵌入式Cortex-M0与M3 平台为例
来源:互联网 发布:明星二手淘宝店铺 编辑:程序博客网 时间:2024/05/17 10:40
AES256/128 纯软件加解密时间效率测试–以Cortex-M0与M3 MCU为例
- 一、测试环境与方法
- 二、测试代码介绍(以AES256为例)
- 三、测试结果与抓包截图
另一篇基于STM32L0x平台 《SHA/HMAC/AES-CBC/CTR算法执行效率以及RAM消耗测试》请见链接: http://blog.csdn.net/howiexue/article/details/78700694
AES软件实现源代码(C语言)见链接:
http://download.csdn.net/download/howiexue/9978483
SHA、HMAC软件实现源代码(C语言)见链接:
http://download.csdn.net/download/howiexue/9978474
一、测试环境与方法:
1、测试环境:MCU 为STM32F030(Cortex-M0)、STM32F103(Cortex-M3),主频分别统一设置为24M、48M
2、加解密算法:AESCBC-256以及128
3、测试方法:输入不同数据量,通过GPIO翻转法获取软件执行AES加解密所耗的时间
二、测试代码介绍(以AES256为例)
测试代码很简单,就是将一个GPIO拉高,在AES加解密时拉低,并用逻辑分析仪进行抓包或者示波器查看低电平的间隔。
这里以AESCBC256代码为例:(所有数据仅供测试所用)
准备AES 参数(key、iv、testdata等)
const unsigned char AES_key[32] = {0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f};const unsigned char AES_iv[16] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};unsigned char testdata[]= {0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 以下省略, 想测多少就输入多少数据 。。。}
执行AES加解密 ,同时反转IO电平
void AesTest(void){ int testdata_Len; testdata_Len=sizeof(testdata); Aes enc; for(int i=0; i<100;i++) { /******** 加密过程 ************/ HAL_GPIO_WritePin(LED1_GPIO_Port,LED1_Pin,GPIO_PIN_SET); AesSetKey(&enc, AES_key, sizeof(AES_key), AES_iv, AES_ENCRYPTION);//初始化AES加密参数,IO电平为高 HAL_Delay(1);//delay 1 ms为加密,2ms为解密 HAL_GPIO_WritePin(LED1_GPIO_Port,LED1_Pin,GPIO_PIN_RESET); AesCbcEncrypt(&enc, (byte *)testdata, (byte *)testdata, testdata_Len);//执行加密函数,此时电平为低 HAL_GPIO_WritePin(LED1_GPIO_Port,LED1_Pin,GPIO_PIN_SET); HAL_Delay(2); /******** 解密过程 ************/ AesSetKey(&enc, AES_key, sizeof(AES_key), AES_iv, AES_DECRYPTION);//初始化AES解密参数,IO电平为高 HAL_GPIO_WritePin(LED1_GPIO_Port,LED1_Pin,GPIO_PIN_RESET); AesCbcDecrypt(&enc, (byte *)testdata, (byte *)testdata, testdata_Len);////执行解密函数,此时电平为低 HAL_GPIO_WritePin(LED1_GPIO_Port,LED1_Pin,GPIO_PIN_SET); }
三、测试结果与抓包截图
1、主频统一设置为24M
附部分I2C抓包截图:
1024byte时M3工作在24M主频:
1024byte时M0工作在24M主频:
2、主频设置为48M
基于STM32F030C8(Cortex-M0)芯片,工作在48M主频:
附部分I2C抓包截图:
1024 – AES256 :
128 – AES256:
16 - AES256:
由此可见,AES(Advanced Encryption Standard) 加密算法相比于RSA等对称加密算法是非常快的。。
欢迎转载,Howie原创作品,本文地址:
http://blog.csdn.net/HowieXue/article/details/76549487
谢谢
阅读全文
0 0
- AES加解密效率测试(纯软件AESCBC-128/256)--以嵌入式Cortex-M0与M3 平台为例
- AES与XOR加解密效率比较
- ARM Cortex-M3,Cortex-M0,Cortex-A8的主要区别
- ARM Cortex-M3,Cortex-M0,Cortex-A8的主要区别
- cortex-m3/m0汇编启动代码分析
- AES加解密(java)
- AES加密与Base64编码(加解密、签名系列)
- GDB嵌入式调试(以st7162平台为例)
- VC与JAVA互通AES加解密
- AES加解密-IOS与ANR对比
- Cortex-M3(1)
- 一次内存错误调试总结(平台Cortex-M3)
- 一次内存错误调试总结(平台Cortex-M3)
- 新唐Cortex—M0学习之PC编程与嵌入式编程的差别
- C# AES-256-CBC 加解密
- android平台上AES,DES加解密及问题
- AES加解密(支持中文)
- 对称加解密(DES+DES+AES)
- thinkPhp 使用composer安装第三方插件(SDK)
- Dede织梦验证码不显示,织梦后台登陆验证码不显示解决方法
- idea spring configuration check
- HDU 6063 RXD and math (打表)
- HDU 2819 Swap 二分匹配 (思路题)
- AES加解密效率测试(纯软件AESCBC-128/256)--以嵌入式Cortex-M0与M3 平台为例
- 最简洁的SQLSERVER取当前月第一天和最后一天
- 如何返回多个数值
- 打印unity界面并保存
- 保证分布式系统数据一致性的6种方案(转载)
- 刷题之统计兔子的个数
- 电脑换系统怎么备份?
- linux初学者-网络管理篇
- gd 添加freetype支持 。Call to undefined function Think\imagettftext() 错误解决