20 research outputs found
A Simple PLL-Based True Random Number Generator for Embedded Digital Systems
The paper presents a simple True Random Number Generator (TRNG) which can be embedded in digital Application Specific Integrated Circuits (ASICs) and Field Programmable Logic Devices (FPLDs). As a source of randomness, it uses on-chip noise generated in the internal analog Phase-Locked Loop (PLL) circuitry. In contrast to traditionally used free-running oscillators, it uses a novel method of randomness extraction based on two rationally related synthesized clock signals. The generator has been developed for embedded cryptographic applications, where it significantly increases the system security, but it can be used in a wide range of other applications. The functionality of the proposed solution is demonstrated for the Altera Apex FPLD family, but the same principle can be used for all recent ASICs or FPLDs that include an on-chip reconfigurable analog PLL. The quality of the TRNG output is confirmed by applying special DIEHARD and NIST statistical tests, which pass even for high output bit-rates of several hundreds of Kbits/s
Number-Theoretic Transform with Constant Time Computation for Embedded Post-Quantum Cryptography
In this article, we describe the principles and advantages of using the Number-Theoretic Transform (NTT) in post-quantum cryptography. We deal with usages of NTT in post-quantum algorithms included in the competition announced by the National Institute of Standards and Technology. Attention is paid to the fast multiplication of polynomials using NTT and negacyclic convolution. We also focus on the existing implementation of NTT and its modifications to analyze the effectiveness of individual modifications. Separate attention is paid to the Constant Time implementation of NTT because the constant computation time of the transformation decreases a possibility of side channel attack. We describe measurements performed on OS Linux Ubuntu 20.04 LTS environment in Linux kernel mode, with the highest attention to the measurement executed on a microcontroller with an ARM 32-bit core. Measurements performed on microcontroller units are done using 32-bit and 16-bit arithmetic to demonstrate how to achieve constant computation time of the transformation. We present the results and analysis of measurements performed using modified implementations