Physically unclonable functions (PUFs) have been gained attention in many
applications. Low-cost random numbers generation is one important application of PUF.
PUFs are a special type of circuits that influence the inherent variations in the
manufacturing process to create unique unclonable random numbers. Physical random
number generators aim to extract randomness directly from physical systems. In this paper
microcontroller, PUF using the chip (PIC32MX795F512L) with Ring Oscillator PUF
(ROPUF) is used in order to create outputs (random numbers) without requiring any seed
inputs. The output created by the proposed random number generator (RNG) is
successfully passed most NIST tests.
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
Random Numbers Generator Using Microcontroller PUF
1.
1
Random Numbers Generator Using Microcontroller PUF
By
Saja Talib Ahmed, * Dhahir Abdulhade Abdullah,* Ziyad Tariq Mustafa Al Ta’i
* Department of Computer Science - College of Science - University of Diyala
Abstract
Physically unclonable functions (PUFs) have been gained attention in many
applications. Low-cost random numbers generation is one important application of PUF.
PUFs are a special type of circuits that influence the inherent variations in the
manufacturing process to create unique unclonable random numbers. Physical random
number generators aim to extract randomness directly from physical systems. In this paper
microcontroller, PUF using the chip (PIC32MX795F512L) with Ring Oscillator PUF
(ROPUF) is used in order to create outputs (random numbers) without requiring any seed
inputs. The output created by the proposed random number generator (RNG) is
successfully passed most NIST tests.
Keywords:
Physical Unclonable Function (PUF), Random Number Generator (RNG), microcontroller
chip (PIC32MX795F512L).
1- Introduction
In security, a Physical Unclonable Function (PUF) is a hardware circuit that is easy
to create but practically hard to copy, even the exact manufacturing process is giving. The
important characteristic of PUFs is that even untrusted creator cannot make a copy of the
circuit as it is impossible to control the manufacturing process variations. PUF works on
the basic of fundamental differences which exist in the manufacture of the electronic parts.
The output of PUF is a function of all these differences. Therefore, the produced stream by
PUF seems to be randomized [1]. Random numbers are very important because many
things in real life are so complex that they appear random. Also, good random numbers are
essential to almost all secure computer systems [2]. Therefore, the main purpose of this
paper is to design and implement a cheap PUF-based architecture to generate a sequence
of random numbers. This paper is organized as follows. In section (2) the PUF function
and its characteristics are presented. In section (3) a brief review of the related literature is
given. The proposed system is explained in section (4). Experimental results and analyses
are shown in section (5). Finally, the conclusions are remarked in section (6).
International Journal of Computer Science and Information Security (IJCSIS),
Vol. 15, No. 9, September 2017
93 https://sites.google.com/site/ijcsis/
ISSN 1947-5500
2.
2. Physical Unclonable Function (PUF)
PUF (also called Physical Random Function) is a new class of security, in which it
has attracted a great deal of attention. The modern cryptographic scheme depends on the
use of one-way functions. These are functions that are simple to work in the forward
direction but infeasible to compute in the reverse direction without additional information
[3].
PUFs are one-way functions, which are easy to evaluate but difficult to invert. These
hardware one-way functions are inexpensive to fabricate, difficult to duplicate, grant no
compact mathematical representation [3]. PUFs are innovative primitives to deduce
secrets from complex hardware characteristics of ICs rather than storing the secrets in
digital memory [4].
The use of PUFs for the secret key generation was first proposed in [5]. The
proposed PUF in this paper based on internal Ring Oscillator (RO). A ROPUF is
composed of an odd series of inverters. The RO frequency is generated from the inverted
signal that travels through the RO loop as shown in Figure (1) [5]. The presence of process
variations inside logic gates and wires causes an uneven delay across the chip.
Figure (1) Ring Oscillator Physical Unclonable Function (ROPUF)
A pair of ROs could produce two different frequencies because of the presence of
process variations.
3. Related Work
- J.-W. Lee et.al. (2004), have put forward one candidate methodology which uses
silicon physical random functions to create random numbers without the need of a secret
seed. This hardware random number generator is depended on the meta-stability inherent
in Silicon PUFs (SPUFs) and has been shown to make outputs which pass most statistical
tests for randomness [4].
- B. Sunar et.al. (2007), used many distinct ring oscillators arranged on a chip design.
Each ring oscillator is composed of some inverters. The outputs of these ring oscillators
International Journal of Computer Science and Information Security (IJCSIS),
Vol. 15, No. 9, September 2017
94 https://sites.google.com/site/ijcsis/
ISSN 1947-5500
3.
are fed to an XOR tree and then sampled at a regular clock frequency [6].
- Ali Sadr and Mostafa Zolfaghari-Nejad (2012), proposed a new architecture in
which an arbiter based PUF has been employed as a nonlinear function in nonlinear
feedback shift register (NFSR) to generate true random numbers. The rate of producing the
output bit streams is 10 million bits per second. The proposed RNG is able to pass all NIST
tests and the entropy of the output stream is 7.999837 bits per byte. The proposed circuit
has very low resource usage of 193 slices that makes it suitable for lightweight applications
[7].
- Mehdi Ayat, Reza Ebrahimi Atani, and Sattar Mirzakuchaki (2011) proposed a new
architecture Physical Random Functions (or Physical Unclonable Functions, PUFs) to
create a candidate hardware random number generator. So far several random number
generators based on ring oscillators were introduced [8].
- Roel Maes et. al. (2012), developed and successfully evaluated on a substantial set
of FPGA devices. It uses a highly optimized ring oscillator PUF (ROPUF) design [9].
4. Design of the Proposed System: Random Number Generator using
Microcontroller PUF
A Physical Random Function or PUF is a function that maps a set of challenges to a
set of responses based on an intractably complex physical system. Hence, this static
mapping is a “random” assignment. The function can only be evaluated with the physical
system and is unique for each physical instance. While PUFs can be implemented with
various physical systems, this paper focuses on ROPUF using microcontroller chip
PIC32MX795F512L.
4.1 Hardware Design
Initially, the data is received from PIC microcontroller by MICRO-BUS technique
using the program which written in Microchip. These data are sent to Static Data (SD)
memory card and to Personal Computer (PC) at the same time as a file. The file of data
in SD looks like data text but on PC is written as a binary numbers code. Figure (2) shows
the complete hardware of the design.
Figure (2) Block Diagram of the Proposed System
International Journal of Computer Science and Information Security (IJCSIS),
Vol. 15, No. 9, September 2017
95 https://sites.google.com/site/ijcsis/
ISSN 1947-5500
4.
Figure (3) consists of the programmable power supply (TC1262) which is used to
give the variable voltage approximately (1.5-5 v) for the microcontroller and 3.3v to
signalization LED.
Figure (3) Power supply of the original circuit
The MICRO-BUS technique is used for variable way to send data to SD and PC
which connects (8) pins. These pins have three variable types to send data: I2C, SPI, and
UART as shown in figure (4).
Figure (4) the internal block diagram of microcontroller and the Micro BUS
-I2C: means the data are sent and received using (2) wires and it is called (inter to the
integrated circuit).
-SPI: means the data are sent and received using (3) wires and it is called (Serial
Peripherals interfacing).
-UART: means the data are sent and received asynchronously using (2) wires and it is
called (Universal Asynchronous receiver and transmitter).
International Journal of Computer Science and Information Security (IJCSIS),
Vol. 15, No. 9, September 2017
96 https://sites.google.com/site/ijcsis/
ISSN 1947-5500
5.
4.2Software Design
The flowchart of the written program inside microcontroller chip
PIC32MX795F512L is shown in figure (5). This program is written in High-level Micro-
C language. The steps of the proposed algorithm are:
1. The first step: is calling the library of SD, SPI, and UART. Then a variable (x) is
chosen to be as a counter for counting the binary numbers. In this paper, the
maximum value of (x) is 99393. Of course, this value can be changed as required.
2. The second step: is using the Real Time Clock (RTC) system in order to serially
writing data on PC and in SD.
3. The third step: is checking the data that must be written on SD when these data
are displayed on PC. Otherwise, go to step (2).
4. The fourth step: is repeating the condition of step (3) for 24 times which equal to
a number of binary bits in the proposed system.
5. The fifth step: is stopping write data on PC and SD card when x >99393.
International Journal of Computer Science and Information Security (IJCSIS),
Vol. 15, No. 9, September 2017
97 https://sites.google.com/site/ijcsis/
ISSN 1947-5500
6.
Figure (5) Flowchart of Microcontroller Program
International Journal of Computer Science and Information Security (IJCSIS),
Vol. 15, No. 9, September 2017
98 https://sites.google.com/site/ijcsis/
ISSN 1947-5500
7.
4. Results
A stream of random numbers is generated using hardware and software design in
subsections (4.1) and (4.2) sequentially. An implementation of the microcontroller
PIC32MX795F512L contains a PUF circuit which is accessible through software running
on the chip.
The NIST statistical test suite is a set of algorithmic tests which attempt to identify
sequences of binary numbers which do not behave in a truly random manner. To do this,
these tests derive a p-value for every sequence of bits, which is, basically, the probability
that the given sequence could have been generated by running a truly random number
generator once.
Each test “passes” if the p-value is greater than some fixed confidence level, and
“fail” if the p-value is less than the fixed confidence level. A thorough explanation of
these testing algorithms can be found in a NIST Special Publication [10].
The statistical test suite also separates a given input string into many smaller
substrings and performs the tests on each of these strings. Since it is possible for a truly
random number generator to fail a given test sometimes, it is useful to discuss success in
terms of the proportion of successful tests.
Table (1) shows the results of the tests, and the lowest proportion of successful tests
found after running the test suite many times on the output of the proposed system. The
proportion of successful tests is high enough to consider this a reasonably good random
number generator.
Table (1) Results of NIST Statistical Test Suite on the Output of the Proposed System
Test name Result Lowest success ratio
Frequency Test Successful 99%
Approximate Entropy test Successful 100%
Block Frequency Test Successful 100%
Serial Test Successful 98%
Cumulative Sums Test (Forward) Successful 100%
Runs Test Successful 98%
Longest Run of One's test Successful 100%
FFT Test Successful 100%
Rank Test Successful 100%
Nonperiodic Templates Test Successful 79%
Overlapping Template of all One’s
Test
Successful 100%
Lempel-Ziv compression Test Successful 100%
International Journal of Computer Science and Information Security (IJCSIS),
Vol. 15, No. 9, September 2017
99 https://sites.google.com/site/ijcsis/
ISSN 1947-5500
8.
6. Conclusions
In this research, a proposed random numbers generator is designed and implemented
using ROPUF inside microcontroller chip PIC32MX795F512L. The results indicate that
the output of the proposed system is as follows:
1- Has true randomness.
2- Does not need seed value.
Also, the proposed system itself is:
1- True random generator.
2- Low-cost generator in comparison with huge generated random numbers.
3- The proposed system can be used in many different applications.
References
1- Srivathsa Sudheendra, "Secure and energy efficient physical unclonable functions",
MSc thesis, University of Massachusetts, 2012.
2- John Graham-Cumming, “Why secure systems require random numbers ", Internet
survey, https://blog.cloudflare.com/why-randomness-matters, 13 Sep 2013.
3-Pappu Srinivasa Ravikanth, "Physical one-way functions", Ph.D. thesis, Massachusetts
Institute of Technology, march 2001.
4-J.-W. Lee, D. Lim, B. Gassend, G. E. Suh, M. van Dijk, and S. Devadas, " A technique
to build a secret key in integrated circuits with identification and authentication
applications", In Proceedings of the IEEE LSI Circuits Symposium, June 2004.
5-Suh, G. Edward, and Srinivas Devadas, "Physical unclonable functions for device
authentication and secret key generation.” Proceedings of the 44th annual Design
Automation Conference. ACM, 2007.
6-B. Sunar, W. J. Martin and D. R. Stinson, "A provably secure true random number
generator with built-in tolerance to active attacks", IEEE Trans. Computer. VOL.
56, No. 1, pp. 109-119, 2007.
7-Ali Sadr and Mostafa Zolfaghari-Nejad, “Physical Unclonable Function (PUF) Based
International Journal of Computer Science and Information Security (IJCSIS),
Vol. 15, No. 9, September 2017
100 https://sites.google.com/site/ijcsis/
ISSN 1947-5500
9.
Random Number Generator", Advanced Computing: An International Journal
(ACIJ), Vol.3, No.2, March 2012.
8-Ayat Mehdi, Reza Ebrahimi Atani, and Sattar Mirzakuchaki, "On design of PUF-
based random number generators”, International Journal of Network Security
Applications, Vol. 3 No.3, PP. 30-40, 2011.
9-Maes Roel, Anthony Van Herrewege, and Ingrid Verbauwhede, "PUFKY: A fully
functional PUF-based cryptographic key generator.” International Workshop on
Cryptographic Hardware and Embedded Systems, Springer Berlin Heidelberg,
2012.
10- Rukhin, Andrew et. al., "A statistical test suite for random and pseudorandom
number generators for cryptographic applications", Booz-Allen and Hamilton Inc
McLean Va, 2001.
International Journal of Computer Science and Information Security (IJCSIS),
Vol. 15, No. 9, September 2017
101 https://sites.google.com/site/ijcsis/
ISSN 1947-5500