Lightweight Cryptography for IoT by Yosi Hendarsjah
What is Internet of Things? It’s basically collection of devices that are connected to the Internet and communicate with other devices. The term was coined by Kevin Ashton in 1999. A Coke vending machine at Carnegie Mellon U. is considered as the first IoT device (1982).
IoT Applications Smart Homes Wearables Retail Smart Cities Healthcare Transportation Industry
Why Lightweight Cryptography Typical IoT devices are resource-constrained. They generally have lower computational power, smaller memory size, lower power consumption, smaller physical size, lower price than full-fledged devices such as PCs, laptops, or tablets. We need cryptography algorithms that have small footprints and consume low power without sacrificing security.
ISO/IEC 29192 Is about standards on lightweight cryptography. Lightweight cryptography is classified by a combination of the constraints on chip area, energy consumption, program code and RAM size, communication bandwidth, and execution time. Defines 80 bits security as the minimum security strength for lightweight cryptography. Specifies a number of block ciphers, stream ciphers, and hash functions as standards. Not yet completed. Work still in progress for standards on MAC.
Block Ciphers Block ciphers specified by ISO/IEC 29192: PRESENT: 64 bits block size and 80 or 128 bits key size CLEFIA: 128 bits block size and 128, 192, and 256 bits key size SIMON: 48 – 128 bits block size, 96 – 256 bits key size SPECK: 48 – 128 bits block size, 96 – 256 bits key size
PRESENT Block Cipher Designed for some very specific applications for which AES is unsuitable. Designed to conform these characteristics: To be implemented on hardware For applications that only need moderate security level For applications that unlikely to encrypt large amount of data Where physical size, power consumption, and execution time are the primary concerns (after security). For some applications it is possible that the key will be fixed at the time when the device is manufactured. For some applications the cipher will be used to perform encryption only. Hardware implementation of PRESENT has much higher throughput and requires a half of gates compared to the implementation of AES with similar key size.
SIMON and SPECK Block Ciphers Flexible secure block ciphers, can perform well on any platform. 64-256 bits key size, 32-128 bits block size SIMON is more hardware oriented, SPECK is more software oriented. Hardware implementation requires less gates than other algorithms.
Stream Ciphers ISO/IEC 29192 specifies two stream ciphers: Enocoro: 80 or 128 bits key size Trivium: 80 bits key size Both of them are hardware oriented. The literatures do not really explain much about why these algorithms are considered ‘lightweight’ and do not compare them to other algorithms.
Hash Functions ISO/IEC 29192 specifies three hash functions: PHOTON: permutation size 100-288 bits and output size 80-256 bits SPONGENT: permutation size 88-272 bits and output size 88-256 bits Lesamnta-LW: permutation size 384 bits and outputs size 256 bits
SPONGENT Hash Function Five different hash sizes: 88, 128, 160, 224, 256 Three types pre-image and second pre-image security level: Full pre-image and second pre-image security level Reduced second pre-image security level Reduced pre-image and second pre-image security level
Lesamnta-LW Hash Function Lightweight 256 bits hash function Has collision, pre-image, and second pre-image security level of at least 2120. Hardware implementation only requires 8240 gates. Software implementation only requires 50 bytes of RAM and runs fast on short messages on 8-bit CPUs.
Comparison Cryptography algorithms designed for IoT are ‘lightweight’ because: Designed specifically for constrained devices such as RFID tags and networked sensors (hardware oriented). Have several security levels that are sufficient to different types of applications. Designed to process only small amount of data. Existing popular cryptography algorithms are ‘heavy’ because: Designed as general-purpose algorithms. Generally software-oriented. High security level. Can process large amount of data.
The End Questions?