STM32
直播中

h1654155275.5669

7年用户 1028经验值
私信 关注
[问答]

如何对AES加解密效率进行测试呢

如何对AES加解密效率进行测试呢?
怎样去测试AES的加解密效率呢?

回帖(1)

杨文英

2021-11-11 15:07:24
  一、测试环境与方法:
  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等对称加密算法是非常快的。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分