AES加解密效率测试(纯软件AES128/256)
软件测试:理解黑盒测试与白盒测试 #生活技巧# #工作学习技巧# #专业技能培训#
目录 AES256/128 纯软件加解密时间效率测试--以Cortex-M0与M3 MCU为例一、测试环境与方法:二、测试代码介绍(以AES256为例)三、测试结果与抓包截图1、主频统一设置为24M附部分I2C抓包截图: 2、主频设置为48M附部分I2C抓包截图:由此可见,AES(Advanced Encryption Standard) 加密算法相比于RSA等对称加密算法是非常快的。。 四、参考:官方数据AES硬件与软件加密效率 博主热门文章推荐:AES256/128 纯软件加解密时间效率测试–以Cortex-M0与M3 MCU为例
一、测试环境与方法二、测试代码介绍(以AES256为例)三、测试结果与抓包截图AES软件源码库(C语言),包含全部CBC/CTR等模式,见链接:
http://download.csdn.net/download/howiexue/9978483
SHA、HMAC软件源码库(C语言)见链接:
http://download.csdn.net/download/howiexue/9978474
常见加密/签名/哈希算法性能比较 (多平台 AES/DES, DH, ECDSA, RSA等)
https://blog.csdn.net/howiexue/article/details/79283008
另一篇基于STM32L0x平台 **《SHA/HMAC/AES-CBC/CTR算法执行效率以及RAM消耗测试》**请见链接: http://blog.csdn.net/howiexue/article/details/78700694
一、测试环境与方法:
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, 以下省略, 想测多少就输入多少数据 。。。} 1234567
执行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);}
12345678910111213141516171819202122三、测试结果与抓包截图
1、主频统一设置为24M
附部分I2C抓包截图:1024byte时M3工作在24M主频:
1024byte时M0工作在24M主频:
2、主频设置为48M
基于STM32F030C8(Cortex-M0)芯片,工作在48M主频:
1024 – AES256 :
128 – AES256:
16 - AES256:
由此可见,AES(Advanced Encryption Standard) 加密算法相比于RSA等对称加密算法是非常快的。。四、参考:官方数据AES硬件与软件加密效率
4.1 飞思卡尔单片机(M4)
4.2 STM32单片机(M3)
博主热门文章推荐:
一篇读懂系列:
一篇读懂无线充电技术(附方案选型及原理分析)一篇读懂:Android/iOS手机如何通过音频接口(耳机孔)与外设通信一篇读懂:Android手机如何通过USB接口与外设通信(附原理分析及方案选型)LoRa Mesh系列:
LoRa学习:LoRa关键参数(扩频因子,编码率,带宽)的设定及解释LoRa学习:信道占用检测原理(CAD)LoRa/FSK 无线频谱波形分析(频谱分析仪测试LoRa/FSK带宽、功率、频率误差等)网络安全系列:
ATECC508A芯片开发笔记(一):初识加密芯片SHA/HMAC/AES-CBC/CTR 算法执行效率及RAM消耗 测试结果常见加密/签名/哈希算法性能比较 (多平台 AES/DES, DH, ECDSA, RSA等)AES加解密效率测试(纯软件AES128/256)–以嵌入式Cortex-M0与M3 平台为例嵌入式开发系列:
嵌入式学习中较好的练手项目和课题整理(附代码资料、学习视频和嵌入式学习规划)IAR调试使用技巧汇总:数据断点、CallStack、设置堆栈、查看栈使用和栈深度、Memory、Set Next Statement等Linux内核编译配置(Menuconfig)、制作文件系统 详细步骤Android底层调用C代码(JNI实现)树莓派到手第一步:上电启动、安装中文字体、虚拟键盘、开启SSH等Android/Linux设备有线&无线 双网共存(同时上内、外网)AI / 机器学习系列:
AI: 机器学习必须懂的几个术语:Lable、Feature、Model…AI:卷积神经网络CNN 解决过拟合的方法 (Overcome Overfitting)AI: 什么是机器学习的数据清洗(Data Cleaning)AI: 机器学习的模型是如何训练的?(在试错中学习)数据可视化:TensorboardX安装及使用(安装测试+实例演示)网址:AES加解密效率测试(纯软件AES128/256) https://www.yuejiaxmz.com/news/view/364371
相关内容
加密与安全学习笔记Oracle的AES加密与解密用法
HarmonyOS Next 加密文件存储实战:保障数据安全
远程软件哪个好用?15个靠谱软件,建议收藏!
远程软件都有哪些?8款软件带你解锁高效办公新姿态!
软件测试之压力测试详解
远程控制软件:让远程协作更加流畅无阻
软件测试之压力测试
远程控制软件:探究云计算和人工智能的融合
效率软件评测:解锁新时代生产力的终极武器