Add an explanation about high speed hub
authorNIIBE Yutaka <gniibe@fsij.org>
Wed, 10 Oct 2012 00:58:10 +0000 (09:58 +0900)
committerNIIBE Yutaka <gniibe@fsij.org>
Wed, 10 Oct 2012 00:58:10 +0000 (09:58 +0900)
README

diff --git a/README b/README
index 5f36480..a2707e0 100644 (file)
--- a/README
+++ b/README
@@ -41,10 +41,8 @@ FAQ
 
 Q0: How NeuG device is good?
 A0: I believe it's good enough if we compare to other hardware RNGs.
-    If its usage is as an entropy source for RNG-tools, or use for
-    computer simulations, I think that it's good enough.  I evaluated
-    it with rngtest of RNG-tools, NIST STS test suite and Dieharder.
-    See the directory neug/test-results/.
+    I evaluated it with rngtest of RNG-tools, NIST STS test suite and
+    Dieharder.  See the directory neug/test-results/.
 A0-dash: For better entropy device with embedded test, you could get
          EntropyKey.  See http://www.entropykey.co.uk/
 A0-double-dash: STM32F2xx and STM32F4xx have built-in TRNG, it would
@@ -52,7 +50,12 @@ A0-double-dash: STM32F2xx and STM32F4xx have built-in TRNG, it would
                 looks not that good).
 
 Q1: How fast is NeuG device?
-A1: It's more than 50 Ki-byte/second.
+A1: It's more than 50 Ki-byte/second.  Please note that the NeuG
+    device is USB "full-speed" device.  If you connect it to
+    full-speed hub or root hub which runs at full-speed, you just get
+    about 30 Ki-byte/second.  That's because host submits a frame to
+    device once per 1ms frame with full-speed hub.  When you connect
+    it to high-speed hub, you get higher performance.
 
 Q2: Should we check condition of noise sources?
 A2: Yes, we should.  Three continuous tests are implemented, following
@@ -62,6 +65,15 @@ A2: Yes, we should.  Three continuous tests are implemented, following
     is really rare, but it could occur even for normal condition), the
     generation of random bits restart again.
 
+Q3: Conditioning with SHA-256 sounds over-kill.  Why not simpler?
+A3: It is because NIST SP 800-90B mandates something like that for
+    "full entropy source".  If your usage is as an entropy source for
+    RNG-tools to feed entropy to your kernel, or use for computer
+    simulations, I think that CRC32 filter would be good enough.  You
+    can configure NeuG device by "stty -F /dev/ttyACM0 parenb parodd"
+    to get raw data before SHA-256 conditioning component.  Then,
+    you'll get more than 350 Ki-byte/second (with high speed hub).
+
 
 Targets
 =======
@@ -205,7 +217,8 @@ When you want to get raw output (not conditioned), you can configure:
 
   $ stty -F /dev/ttyACM0 parenb parodd
 
-for raw data after filter.  For direct raw data of samples, configure:
+for raw data after filter.  For direct raw data of ADC samples,
+configure:
 
   $ stty -F /dev/ttyACM0 parenb -parodd