Measurements of Cryptographic Primitives Execution on Android Devices

Citation Author(s):
Tampere University
Brno University of Technology
Brno University of Technology
National Research University Higher School of Economics
Submitted by:
Aleksandr Ometov
Last updated:
Fri, 03/26/2021 - 10:52
Data Format:
0 ratings - Please login to submit your rating.


This dataset is a supplementary material for paper "A Comprehensive and Reproducible Comparison of Cryptographic Primitives Execution on Android Devices"  with the measurements collected from 17 mobile devices and the code for reproducibility.

It provides the results of the analysis of the security mechanisms in the Android OS. The main paper aims to examine these mechanisms and evaluate which cryptographic methods and procedures are most advantageous in terms of energy efficiency derived from execution time. After analyzing the collected data, specific cryptographic algorithms are recommended to implement an application that utilizes native cryptographic operations on modern Android devices. In particular, selected algorithms for symmetric encryption are AES256 / GCM / No Padding; for digital signature - SHA512 with RSA2048 / PSS, and for asymmetric encryption - RSA3072 / OAEP with SHA512 and MGF1 Padding.


The primary data related to the collected data is located in folder Measurement and each device has the corresponding subfolder with the measurement file. The dataset consists of JSON files, each containing measurements of available devices' security primitives execution times. The data was gathered in a span of multiple 250 iterations. Each measurement was taken with a 50 repetitions interval for every primitive. We define the main components of the dataset in the following:


1)    context[] – provides the details about the device and OS including device name, model, battery-related information, Software Development Kit~(SDK) version, and basic technical specification.

2)    benchmarks[] – provides entries per primitive, such as:

i)      name – the overall identification title of the primitive, including paddung and other optional fields;

ii)     params – additional parameters unilized for the execution if any;

iii)   totalRunTimeNs – the overall time of the primitive's execution time;

iv)   metrics[] – provides entries per execution, such as:

(a)   timeNs[] – the collected/processed information of the collected data inluding entries per execution in runs[] and statistical parameters in maximumminimum, and median.

(b)  warmupIterations – number of iterations of warmup before measurements started;

(c)   repeatIterations – the number of iterations;

(d)  thermalThrottleSleepSeconds – the duration of sleep due to thermal throttling.


An example of the dataset entry:



    "context": {

        "build": {

            "device": "mooneye",

            "fingerprint": "mobvoi/mooneye/mooneye:8.0.0/OWDR.180307.020/5000261:user/release-keys",

            "model": "Ticwatch E", 

            "version": {

                "sdk": 26



        "cpuCoreCount": 2, 

        "cpuLocked": true, 

        "cpuMaxFreqHz": -1,

        "batteryCapacity, mAh": 300,

        "memTotalBytes": 514560000,

        "sustainedPerformanceModeEnabled": false


    "benchmarks": [


            "name": "benchmarkRsa4096EcbOaepSHA1AndMgf1Padding",

            "params": {},

            "className": "cz.vutbr.benchmark.AsymmetricDecryptionBenchmark",

            "totalRunTimeNs": 20873248463,

            "metrics": {

                "timeNs": {

                    "minimum": 242466000, 

                    "maximum": 284698307, 

                    "median": 245293231,

                    "runs": [







            "warmupIterations": 33,

            "repeatIterations": 1,

            "thermalThrottleSleepSeconds": 0








Note: Project group was supported by the Graduate School of Business National Research University Higher School of Economics.