On the efficiency of software implementations of lightweight block ciphers from the perspective of programming languages - Raza, Abdur Rehman; Mahmood, Khawir; Amjad, Muhammad Faisal; Abbas, Haider; Afzal, Mehreen (Future generation computer systems, 2020)
Lightweight block ciphers are primarily designed for resource constrained devices. However, due to service requirements of large-scale IoT networks and systems, the need for efficient software implementations cannot be ruled out. A number of studies have compared software implementations of different lightweight block ciphers on a specific platform but to the best of our knowledge, this is the first attempt to benchmark various software implementations of a single lightweight block cipher across different programming languages and platforms in the cloud architecture. In this paper, we defined six lookup-table based software implementations for lightweight block ciphers with their characteristics ranging from memory to throughput optimized variants. We carried out a thorough analysis of the two costs associated with each implementation (memory and operations) and discussed possible trade-offs in detail. We coded all six types of implementations for three key settings (64, 80, 128 bits) of LED (a lightweight block cipher) in four programming languages (Java, C#, C++, Python). We highlighted the impact of choice relating to implementation type, programming language, and platform by benchmarking the seventy-two implementations for throughput and software efficiency on 32 & 64-bit platforms for two major operating systems (Windows & Linux) on Amazon Web Services Cloud. The results showed that these choices can affect the efficiency of a cryptographic primitive by a factor as high as 400. •Software Implementations of Lightweight Block Ciphers•Lookup table based implementations of LED block cipher•Impact of choice relating to implementation type, programming language, Operating system and platform on performance of block ciphers•Performance of LED Block Cipher on AWS cloud