X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=ChaosKey%2Findex.mdwn;h=31c1a778d158dbda8d507f9a212fe834246ad6b2;hb=e1d0c9ae08742528de026cc1cf1544cf3cfab0c2;hp=5b40316e65a0ed98a006bfd6c7b506ad5b7aa43e;hpb=e2e975d65946d9aeb3b40521425102f298be4b8e;p=web%2Faltusmetrum diff --git a/ChaosKey/index.mdwn b/ChaosKey/index.mdwn index 5b40316..31c1a77 100644 --- a/ChaosKey/index.mdwn +++ b/ChaosKey/index.mdwn @@ -1,9 +1,108 @@ +[[!meta title="ChaosKey"]] # ChaosKey This is a hardware True Random Number Generator that attaches via USB. +The Linux Kernel, starting with version 4.1, includes source for this +driver. It should be built by default in your distribution. If your +using Linux + KVM to host other Linux instances, read the +[VirtualMachine](VirtualMachine.html) page to see how you can configure the guests to share +the host entropy source. + +## Version 1.0 ## + +ChaosKey is now out of production. They work great, but it took several years +to sell our first production run, and shipping them from the US to other +countries one at a time ended up dominating the net cost to most users. We might +make more some day, but no promises! + + + + + +### Reflashing Firmware ### + +To reflash the system firmware on ChaosKey, you first need to get the +device into 'bootloader mode'. To do this, you must power-up ChaosKey +with a jumper between GND and the Boot Loader Select pin. + +Open up ChaosKey by prying the case apart. There's no glue or screws, +so a thin tool or fingernail should suffice to split the case into two +pieces. Once you've opened it up, you'll find the inside that looks +much like this: + + + +Connect a wire between the two red holes in the debug connector and +then plug it in to your computer. It will appear as a USB modem device +called AltosFlash with USB ID fffe:000a. + +Use the 'ao-usbload' program, which is part of the +[AltOS repository](https://altusmetrum.org/AltOS/) +and is packaged for Debian in the 'altos' package: + + $ ao-usbload chaoskey-v1.0-*.elf + +### Version 1.0 Hardware ### + + * [STM32F042](http://www.st.com/web/catalog/mmc/FM141/SC1169/SS1574/LN1823?icmp=stm32f0x2-line_pron_pr_jan2014&sc=stm32f0x2-pr) System-on-Chip + * ARM Cortex-M0 MCU + * 32k Flash + * 6k RAM + * USB 2.0 Full Speed + * Crystal-less operation + * 20V noise source + * AP3015A boost regulator + * back-to-back 3904 transistor noise + * [OPA356](http://www.ti.com/product/opa356) op amp + * 200MHz GBP + +Here's a circuit diagram of the noise source: + + + +### Version 1.0 Bits ### + +Source code for the firmware, flash loader and a utility to pull raw +bits from the noise source are available here: + +[AltOS Git Repository](http://git.gag.com/?p=fw/altos;a=summary) + +[ChaosKey Firmware version 1.6.7](v1.0/chaoskey-v1.0-1.6.7.elf) + +[ChaosKey Boot Loader version 1.6.7](v1.0/chaoskey-v1.0-altos-flash-1.6.7.elf) + +Hardware designs using [gEDA](http://www.geda-project.org/) are +available here: + +[ChaosKey Hardware Design Files](http://git.gag.com/?p=hw/chaoskey;a=summary) + + +## Version 0.3 ## + +This one uses the better noise source coupled with an op amp that +provides 2MHz of bandwidth at a gain of 100, offering linear frequency +response at a million samples per second. + +A photo of prototype version 0.3: + + + +Here's a circuit diagram of the noise source: + + + +Version 0.3 uses the same hardware design as version 1.0, except that +it uses a QFP package version of the processor instead of the QFN used +in 1.0, and hence needs a larger circuit board. + ## Version 0.2 ## +This version uses a better noise source, but the single transistor amp +designed to get from the 20mV noise source to a digital value doesn't +provide enough bandwidth, so the resulting signal seen by the CPU has +poor frequency response. + Here's a photo of prototype version 0.2: @@ -16,7 +115,6 @@ Here's a photo of prototype version 0.2: * 6k RAM * USB 2.0 * Crystal-less operation - * ZXRE1004 zener-diode noise source * 20V noise source * AP3015A boost regulator * back-to-back 3904 transistor noise @@ -51,9 +149,3 @@ These are photos of prototype version 0.1: * Licenses * The hardware is licensed under the [TAPR](http://www.tapr.org) [Open Hardware License](http://www.tapr.org/ohl.html) * The software is licensed [GPL version 2](http://www.gnu.org/licenses/old-licenses/gpl-2.0.html) - -## Artifacts ## - -The hardware design files can be found on [git.gag.com](http://git.gag.com) -in the project [hw/usbtrng](http://git.gag.com/?p=hw/usbtrng;a=summary). -