Key size is an important factor, but it is a single factor (among others). I care how/where to put my private keys, and how I can control crypto computation. Smartcard: better control of crypto computation but... card readers tend to be proprietary implementations card itself tends to be proprietary implementation crypto accelerator(s) tend to require NDA to access tech doc OpenPGP card protocol: Specification is publicly available. Free implementation of driver (in SCDaemon of GnuPG) Dilemma: PAST: Better control v.s. (respecting users') computing freedom | V NOW: Longer key length v.s better control of private key by Free Software | V FUTURE: No dilemma Towards: Ed25519 / Curve25519 Better control *and* computing freedom *and* conform to culture/practice Gnuk, FST-01, and NeuG ====================== Gnuk: USB Token firmware under GPLv3, OpenPGPcard compatible RSA 2048-bit, for STM32F103 FST-01: Reference hardware (PCB design under CC BY-SA 3.0) NeuG: True Random Number Generator for STM32F103, under GPLv3 FSM-55: Happy Hacking Board with 5x5 LED Matrix for fun Code availability ----------------- git.gniibe.org gitorious.org Products availability --------------------- * FST-01 at Seeed Bazzar: www.seeedstudio.com USD35 (bare board) USD36 (transparent tube) USD37 (enclosure, but open) It comes with Gnuk (version 1.0.1), installed. gra cvrprf / zbagu --> fbyq gjb unaqerqf sbhegl be fb * (NeuG 1.0 on FST-01) NeuG standalone device in Japan On-demand production JPY4000.- (November 2013 - June 2014) bar cbvag svir cvrprf / zbagu --> fbyq svsgrra be fb Selling TRNG devices would be difficult. That would be a part of reasons why famous TRNG device is not available these days. You could compare the numbers of Gnuk on FST-01, and NeuG on FST-01. Gnuk ---- Written in C. For STM32F103. NOTE: It's not Crypto "one-time password" Token. It's for OpenPGP Token. By Free Software; Gnuk development requires only Free Software (GNU Toolchain, Python, etc.) For Free Software; Gnuk supports GnuPG Of Free Software; Gnuk is distributed under GPLv3+ Version 1.0: ChibiOS/RT by Giovanni Di Sirio PolarSSL for AES, RSA by Paul Bakker SHA2 by Dr. Brian Gladman Version 1.1.x: Chopstx by me PolarSSL for AES, RSA by Paul Bakker SHA2 by Dr. Brian Gladman Ed25519 / Curve25519 by me NeuG ---- The name of a set of routine for TRNG. Used in Gnuk and NeuG standalone device. Written in C. For STM32F103. (Perhaps it could be STM32???, too). Use A/D converter outputs as a source of entropy. Use Built-in Temperature Sensor and Built-in Voltage reference, unconnected analog inputs (IN0, IN1) as analog inputs. SHA256 conditioning component NIST SP 800-90B (draft): Full Entropy Source Tested by: NIST STS 2.1.1, Dieharder 3.31, Test U01 1.2.3, PractRand 0.90 NeuG standalone device ---------------------- USB CDC (Communication Device Class) /dev/ttyACM0 (plain) byte stream 70KiB/sec Three kinds of output can be selected: raw ADC data after CRC32 filter after SHA256 filter Standard usage of NeuG standalone device on GNU/Linux ----------------------------------------------------- No driver required (it's byte strem from /dev/ttyACM0) Just use rngd of rng-tools Other OpenPGP card implementations ---------------------------------- Different implementations are suported by SCDaemon of GnuPG * OpenPGP card * Gnuk Token * CryptoStick (which use OpenPGP card) * YubiKey's * SmartCard-HSM * Some Java implemention(s) of Free Software is also available Firmware Upgrade by USB ----------------------- Firmware upgrade is always possible by JTAG/SWD debugger. It is also supported by Gnuk/NeuG itself through USB. but if it fails, you will need JTAG/SWD debugger. DIY --- http://www.fsij.org/gnuk/howto-make-gnuk-usb-token-by-stm32-part-of-stm8s-discovery-kit.html History ------- 2004/5?: Got OpenPGP card v1 @Karlsruhe 2008: AtMEGA RSA 1024 5sec @ 20MHz, Talk at FSFS @ Kerala 2009: Talk/Demo at Linux Conference @Tokyo 2010: STM32F103, 2.0sec @ 72MHz ---> Gnuk, Talk/Demo at FOSS ASIA @ Saigon Joined GnuPG development 2011: Discovered good DIY way for Gnuk: STM8S Discovery Kit Talk at LinuxCon @ Yokohama FST-01 designed 2012: Talk at FOSDEM @ Belgium Gnuk version 1.0 released Talk at FISL13 @ Porto Alegre FST-01 manufactured with Gnuk 1.0.1 2013: NeuG version 1.0 released Campaign for better entropy in Japan 2014: Talk/Demo at Debconf @ Portland FSM-55 to be in production * C-u M-x rot13-region helps EOF