Performance measurements for in-depth energy analysis of security algorithms and protocols for the Internet of Things
收藏资源简介:
Performance dataset of cryptographic algorithms running on the following embedded devices (results in ms): nuc The NUCLEO-L073RZ is a STM32 Nucleo-64 Development Board of STMicroelectronics. It features the STM32L073RZT6 32~MHz ARM Cortex-M0+ microcontroller with 192~KB flash memory and 20~KB RAM. msp The TI SimpleLink MSP-EXP432P401R development kit uses the MSP432P401R 48~MHz ARM Cortex-M4F microcontroller with 256~KB flash and 64~KB RAM. max The MAXREFDES\#100 health sensor platform features the MAX32620 96~MHz ARM Cortex-M4F microcontroller with 2~MB flash and 256~KB RAM. It has a wide range of sensors, like a human body temperature sensor and a heart rate sensor. The measured cryptographic operations: The basic arithmetic operations for elliptic curve cryptography (point addition~(PA), point doubling~(PD), point multiplication~(PM), and fixed-point multiplication~(PMG)) The AES symmetric-key cipher in five modes of operations (Electronic Codebook (ECB), Cipher Block Chaining (CBC), Counter (CTR), Counter with CBC-MAC (CCM), and Galois/Counter Mode (GCM)) Hash functions (SHA256 and SHA3-256) The performance of all identified basic operations is measured on the three platforms. 50 time measurements are done for each basic operation using the platforms' available timer. Moreover, the AES cipher operation is an encryption on 256 Bytes of data. We have chosen a multiple of the AES block size, because, longer time periods ensure less influence of potential timing inaccuracies like an early start and late end. For the hash function, the maximum input size of the respective algorithm for one round is chosen as follows: 55~B for SHA256 and 135~B for SHA3-256. The total available internal state size is not used for SHA256 and SHA3-256, as we take into account the minimal padding or suffix that is required for the last block of input data. Note that the most optimal scenario, i.e. the maximum amount of input data to fill up the internal state completely, is used for each of the operations. All basic operations are implemented using software libraries and cross-compiled with the GNU Tools for ARM Embedded Processors version 6-2017-q2-update. Furthermore, the compiler is configured to optimise for size (-Os). The RELIC-toolkit library is used to implement the EC arithmetic and the SHA256 hash function. We use the SECG K-256 prime elliptic curve, BASIC;COMBA;COMBA;MONTY;MONTY;SLIDE configuration for the prime field arithmetic, and PROJC;LWNAF;COMBS;INTER}} configuration for the prime elliptic curve arithmetic. For more information on how to configure RELIC and other examples that use it, we refer to the relic-toolkit wiki. The AES ciphers are implemented using Mbed TLS and SHA3 using wolfCrypt. We use the SHA3-256 hash function as specified in FIPS PUB 202.
本数据集为运行于以下三款嵌入式设备的加密算法性能测试数据集(测试结果单位:毫秒): nuc:NUCLEO-L073RZ是意法半导体(STMicroelectronics)推出的STM32 Nucleo-64开发板,搭载STM32L073RZT6 32MHz ARM Cortex-M0+微控制器,内置192KB闪存与20KB随机存取存储器(RAM)。 msp:TI SimpleLink MSP-EXP432P401R开发套件采用MSP432P401R 48MHz ARM Cortex-M4F微控制器,配备256KB闪存与64KB RAM。 max:MAXREFDES#100健康传感器平台搭载MAX32620 96MHz ARM Cortex-M4F微控制器,内置2MB闪存与256KB RAM,集成人体体温传感器、心率传感器等多种传感器设备。 本次测试涵盖的加密运算包括:椭圆曲线密码学(Elliptic Curve Cryptography)基础算术运算:点加法(PA, Point Addition)、点加倍(PD, Point Doubling)、点乘法(PM, Point Multiplication)与固定点乘法(PMG, Fixed-Point Multiplication);五种工作模式下的高级加密标准(AES)对称密码算法:电子密码本(ECB, Electronic Codebook)、密码块链接(CBC, Cipher Block Chaining)、计数器模式(CTR, Counter)、带CBC-MAC的计数器模式(CCM, Counter with CBC-MAC)以及Galois/计数器模式(GCM, Galois/Counter Mode);哈希函数:SHA256与SHA3-256。 所有上述基础运算的性能均在三款测试平台上完成测试。每个基础运算通过平台内置计时器执行50次计时测量。此外,本次AES密码运算为对256字节数据的加密操作——我们选择了AES块大小的整数倍作为数据长度,因为更长的测试时长可降低诸如计时起始偏早、结束偏晚等潜在计时误差的影响。对于哈希函数,选取各算法单轮的最大输入尺寸如下:SHA256为55字节,SHA3-256为135字节。本次测试未使用SHA256与SHA3-256的全部可用内部状态尺寸,这是因为需考虑输入数据最后一块所需的最小填充或后缀处理。需注意,所有运算均采用最优测试场景,即使用可完全填满内部状态的最大输入数据量。 所有基础运算均通过软件库实现,并使用GNU Tools for ARM Embedded Processors版本6-2017-q2-update进行交叉编译。同时,编译器配置为以代码大小为优化目标(编译选项-Os)。本次测试采用RELIC-toolkit库实现椭圆曲线算术与SHA256哈希函数,其中素数域算术采用SECG K-256素数椭圆曲线,配置为BASIC;COMBA;COMBA;MONTY;MONTY;SLIDE,椭圆曲线算术则配置为PROJC;LWNAF;COMBS;INTER。如需了解RELIC的配置方法及其他使用示例,可参考RELIC-toolkit官方维基。AES密码算法通过Mbed TLS库实现,SHA3算法则通过wolfCrypt库实现,其中SHA3-256哈希函数遵循FIPS PUB 202标准规范。



