X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=ChaosKey%2Findex.mdwn;h=8f1f416b4629704ff8ddd719e23533bb54c38f39;hb=04564a6530d7f38dca73a492b55a4e8cacd59a76;hp=fe22a4347a8c526bf89f06fe93917cc6aeb02a76;hpb=7e2e5c4c8e97535710ed4942b552751b9205b0a6;p=web%2Faltusmetrum diff --git a/ChaosKey/index.mdwn b/ChaosKey/index.mdwn index fe22a43..8f1f416 100644 --- a/ChaosKey/index.mdwn +++ b/ChaosKey/index.mdwn @@ -1,22 +1,48 @@ +[[!meta title="ChaosKey"]] # ChaosKey This is a hardware True Random Number Generator that attaches via USB. -## Version 0.3 ## +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. -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. +## Version 1.0 ## -A photo of prototype version 0.3: +ChaosKey is now out of production, but some units may still be available through our +European distributor +[vikings](https://store.vikings.net/chaoskey). - + -Here's a circuit diagram of the noise source: + - +### Reflashing Firmware ### -### Version 0.2 Hardware ### +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 @@ -30,6 +56,45 @@ Here's a circuit diagram of the noise source: * [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 @@ -83,9 +148,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). -