Abstract

Traditional encryption algorithms cannot be implemented on Internet of Things (IoT) devices due to their constrained computational resources. This necessitates the search and development of cryptographic solutions for securing data processed and transmitted by such devices. When encrypting data on devices with limited computational resources, simple encryption algorithms based on elementary bitwise operations, such as bitwise modulo-2 addition (XOR), can be utilized since these operations execute in a single processor cycle and do not require complex computations. However, a drawback of such operations is their invertibility—knowing the encryption key enables easy decryption by applying the same operation to the ciphertext. Ensuring the reliability of such ciphers requires continuous generation of random encryption keys.This work explores the functionality of the linear congruential method for generating sequences of random numbers. Several entropy sources available on microcontrollers are presented for the initial generator value, along with proposed algorithms for collecting initial data from these sources. The use of noise from unconnected pins of the analog-to-digital converter is suggested as the primary entropy source, while the uninitialized area of the microcontroller’s random-access memory serves as an additional source. A method for generating random sequences using the specified entropy sources is implemented and the algorithm’s performance is evaluated, specifically the key characteristic—randomness of the encryption key. The NIST STS 800-22 test suite is employed for evaluation. In all tests, the random sequence generation algorithm demonstrated results confirming the hypothesis that the sequence can be considered random.

Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call