summaryrefslogtreecommitdiff
path: root/raw-wiki-dump/GitRepositories%2Fcore%2Frng%2Frosc_entropy
diff options
context:
space:
mode:
Diffstat (limited to 'raw-wiki-dump/GitRepositories%2Fcore%2Frng%2Frosc_entropy')
-rw-r--r--raw-wiki-dump/GitRepositories%2Fcore%2Frng%2Frosc_entropy51
1 files changed, 51 insertions, 0 deletions
diff --git a/raw-wiki-dump/GitRepositories%2Fcore%2Frng%2Frosc_entropy b/raw-wiki-dump/GitRepositories%2Fcore%2Frng%2Frosc_entropy
new file mode 100644
index 0000000..c3cd05d
--- /dev/null
+++ b/raw-wiki-dump/GitRepositories%2Fcore%2Frng%2Frosc_entropy
@@ -0,0 +1,51 @@
+{{{
+#!htmlcomment
+
+This page is maintained automatically by a script. Don't modify this page by hand,
+your changes will just be overwritten the next time the script runs. Talk to your
+Friendly Neighborhood Repository Maintainer if you need to change something here.
+
+}}}
+
+{{{
+#!html
+<h1>rosc_entropy</h1>
+
+<p>Digital entropy source based on on jitter between multiple, digital ring
+oscillators. The entropy source is used in the TRNG as one of several
+entropy sources feeding the mixer.</p>
+
+<h2>Functionality</h2>
+
+<p>The digital oscillators are created using adders. The carry out from the
+adder are inverted and fed back into the adder as carry in. In
+combination with operand values we basically get an inverted signal (the
+carry out) that toggles reapeatedly. By having the operands externally
+defined, synthesis tools in general will not optimize them away.</p>
+
+<p>The carry out signal is sampled with a clock that toggles at a much
+slower rate than the intrinsic toggle rate of the carry out signal. In a
+modern FPGA, the toggle rate may be 400+ MHz while the sample rate might
+be 10 kHz. This sample time allows the differences in intrinsic toggle
+frequency between separate oscillators to drift apart after sampling.</p>
+
+<p>The entropy source contains 32 separate oscillators. The outputs from
+the oscillators are XOR-combined to create a single entropy bit. Entropy
+bits are collected into 32-bit words which are provided to entropy
+consumers.</p>
+
+<h2>Implementation Results</h2>
+
+<p>The entropy source has been implemented, tested and shown to produce
+good quality entropy (using the ent estimation tool etc) in Altera
+Cyclone-IV and Cyclone-V devices as well as in Xilinx Spartan-6.</p>
+
+<p>The Xilinx synthesis tool will try to optimize the combinational loop
+away. (More specifically, it claims that the oscillator sample registers
+will have a fixed value.). There is therefore an attribute in the source
+code to force the tool to preserve the register.</p>
+}}}
+
+[[RepositoryIndex(format=table,glob=core/rng/rosc_entropy)]]
+
+|| Clone `https://git.cryptech.is/core/rng/rosc_entropy.git` ||