I.
Entropy
Source
Digitizer
Noise
Post-Processor
ADC
Random Bit
e.g.10110001
I NTRODUCTION
248
behavior, and the noises in the circuit, etc. Among these works,
the most cited one is the design proposed by Sunar et al. [6].
They introduced a TRNG that takes advantage of the jitter from
a RO array which is constructed by an odd number of inverters.
Followed by this work, Schellekens has improved the TRNG
performance with post-processing employed in the design [7].
Schellekens provided a detailed analysis of the performance of
different correctors with RO structured TRNG. However, ROs
often occupy more area and induce less power efficient.
Furthermore, Danger has proposed his work using the
metastability based TRNG structure [8]. As an open-loop
circuit, this scheme used the delay chain to capture the
metastability behavior from the D-latch adopted on the delay
chain. This design has demonstrated a better data speed than
the close-loop design. It is reported as the fastest TRNG with
digital element as 20 Mbps. Before the open-loop architecture,
a typical closed-loop TRNG design with a delay feedback is
reported by Majzoobi [9]. Majzoobi uses the delay tuning
loop to make the DFFs go into a metastability status. The
disadvantage of this RNG is the randomness entropy is relative
low due to the difficulty to generate metastability.
Apart from the architectural design, some works focus
on the development of individual entropy component. These
designs aim at developing the randomness sources with high
entropy, including Hisashis RS-latch, [10] Dichtl and Golics
Golic and Fibonacci type of ring oscillator work [11] and
transition effect ring oscillator (TERO) by Varchola [12]. The
TRNG elements usually takes advantage of the logic conflict
in a FPGA or digital system. This kind of TRNGs can take
much less resources and are very power efficient. The shortage
is that the data rate is limited by the element itself [10].
CLK_IN
Data Path
d(i)
Q0
d(0)
d(1)
D
Coarse Delay
d(2n)
D
Q0
Q1
d(2n+1)
D
Q2n
Q2
Q2n+1
Q4
Clock Path
d(i)
d(c)
d(0)'
d(1)'
d(2n)
Q8
d(2n+1)
Q_XOR
(a)
(b)
Fig. 2: The proposed complementary scheme of TRNG source (a) The hardware architecture, (b) XORed output diagram.
Q1
Q3
Qr
Q2n+1
XOR
1011
P2S
1100
Random Bit
11011010
Q0
Q2
Qf
D
Q2n
XOR
CLK_IN
Parralle to Serial
Convertor
C
CLK_IN x2
II.
synthesize each inverter from the LUT inside the FPGA. Apart
from the inversion function, each of inverters contains the
timing delay essentially. With these two important features, the
inverted based delay chain becomes one of the best candidates
in our design. The delay chain design is the key to determine
the RNG quality. It is here the source of the randomness
generation. The detailed design procedure is discussed in
Section III of the FPGA implementation. Targeting the feature
of the harvest logic unit, the delay combination is typically
to set the d(i) > d(i), consistent with the assumption we have
made in the Section II(A). Meanwhile, there has been a coarse
delay inserted in the clock delay path. It is used to make less
steps to trigger the metastability of the latches. The coarse
delay unit is built by an even number of inverters in this design.
B. Sampler
Random Bit
CLK_IN x2
D-Latch
Clock Path
III.
Data Path
C. Post-processing
Post-processing techniques are commonly used in the
TRNG design. It is because of the bias of the random number
is always existing. The post-processors are used to balance the
bias between 1 and 0. In this work, we have used an XOR
method to eliminate the probability bias [13]. It is built by a
4 bit LFSR which is followed by XORs of the each bit as the
final output. The schematic has been shown in Fig. 4. It can
take the advantage of the LFSR which can keep the same data
rate.
250
C2
14
6
12
8
10
18
13
4
11
11
18
11
7
C3
10
10
11
7
9
7
7
5
10
12
4
12
2
C4
9
5
6
11
7
19
15
14
13
10
3
6
5
C5
10
11
10
4
9
15
6
13
10
13
1
8
10
C6
11
18
8
5
10
4
15
14
8
12
2
8
17
C7
8
8
10
3
7
5
8
13
11
7
0
13
10
C8
12
7
6
4
6
3
9
10
13
6
0
8
14
C9
5
10
14
3
11
8
8
9
14
7
0
12
12
C10
7
14
10
5
14
14
8
14
3
12
0
6
10
P-VALUE
0.574903
0.137282
0.678686
0.000891
0.334538
0.000216
0.366918
0.058984
0.366918
0.779188
0.008879
0.366918
0.040108
PROPORTION
100/100
100/100
100/100
77/100
98/100
99/100
98/100
100/100
99/100
98/100
71/100
99/100
94/100
STATISTICAL
Frequency
BlockFrequency
CumulativeSums
Runs
LongestRun
Rank
FFT
NonOverlappingTemplate
OverlappingTemplate
Universal
ApproximateEntropy
Serial
LinearComplexity
Reference
Device
Throughput[Mbps]
Speed Grade *
DLL
Free-running Ring Oscillator
D Latch
D Flip-flop
RS Latch
Fibonacci Oscillator
Transition Effect Ring Oscillator
Xilinx XC2VP20
Xilinx XC2VP30
Altera EP1S25
Xilinx XC5LX50T
Xilinx XC4VFX20
Xilinx XC2S200
Xilinx XC3S500E
6.05
2.5
20
2
12.5
12.5
0.25
2.4
1
8
0.8
5
5
0.1
D Latch
Complementary Scheme
Xilinx XC6VLX240T
50
20
*, Speed Grade Is Calculated as the Free-Running Ring Oscillator as the Baseline for Reference.
IV.
C ONCLUSIONS
[3]
[6]
[7]
[8]
[10]
[11]
[12]
R EFERENCES
[2]
[5]
[9]
ACKNOWLEDGMENT
[1]
[4]
251
[13]
[14]
[15]