player_embedded&v= xGhj_lLNtd0 Hacker-in-Residence Program Super collaborative environment. Kid-in-a-candy-store: Um, I really need digital calipers. Most EAGLE CAD knowledge per capita! Josh Datko Developing the CryptoCape January 21, 2014 3 / 37
Bob as two people who want to communicate securely. Basic Encryption Given a message, m, an encryption algorithm, E, and a key Ke, produce a ciphertext, c, such that: c = E(Ke, m) Meet Eve. Eve is an eavesdropper. If Eve knows only c, she can’t recover m without Ke. Basic Decryption Given a ciphertext, c, decryption algorithm, D, and a key Ke, produce a message, m, such that: m = D(Ke, c) Josh Datko Developing the CryptoCape January 21, 2014 7 / 37
One-way. Given a function, h, it’s easy to find h(m), but not possible calculate m given x where h(m) = x. Collision Resistant. For a message m1, it is difficult to find another message m2, such that h(m1) = h(m2) The mapping for all possible inputs to the set of outputs should be random https://en.wikipedia.org/wiki/File:Cryptographic_Hash_Function.svg Josh Datko Developing the CryptoCape January 21, 2014 13 / 37
5 Volt power supply. Small, 4-5 port switch (NetGear FS105) USB to Serial cable. Powered, USB 2.0 Hub (Plugable 7 port hub) SOIC and TSSOP to DIP breakout boards are your friend Breadboard first, but then quickly move to a soldered proto-board. Let me tell you about Emacs... TRAMP mode FTW! Use Emacs Prelude https://github.com/bbatsov/prelude Nice binary calculators Josh Datko Developing the CryptoCape January 21, 2014 16 / 37
etc. . . ) 32 byte board name 4 byte version (up to manufacturer) 16 Byte part number 12 Byte Serial number. WWYY&&&&nnnn An open source EEPROM generator exists: https://github.com/picoflamingo/BBCape_EEPROM Important Board name and version should match your DTS file! Josh Datko Developing the CryptoCape January 21, 2014 19 / 37
= <&am33xx pinmux >; o v e r l a y { p i n c t r l u a r t 5 : p i n c t r l u a r t 5 p i n s { p i n c t r l −s i n g l e , pins = < 0x070 0x26 /∗ P9 11 = GPIO0 30 = GPMC WAIT0 , MODE6 ∗/ 0x074 0x06 /∗ P9 13 = GPIO0 31 = GPMC WPN, MODE6 ∗/ Where did those numbers come from??? https://github.com/derekmolloy/boneDeviceTree/tree/ master/docs Josh Datko Developing the CryptoCape January 21, 2014 22 / 37
your first child: Start talking about Open source Crypto Hardware. Quit Job. Start company. Goal Get open source hardware crypto tools in the hands of makers. Josh Datko Developing the CryptoCape January 21, 2014 26 / 37
keys Key isolation vs acceleration RTC w/ Battery Device authentication to remote webservice AtMega328P for User Crypto Libs Josh Datko Developing the CryptoCape January 21, 2014 27 / 37
Key Store (wallet). If it talks on the Internet: weather station, GPS location, vital signs. AVR projects are harder: IC code is proprietary. NaCl (crypto lib) looks good. Might need two AVRs. . . Josh Datko Developing the CryptoCape January 21, 2014 28 / 37
ECCN: 5A002A1. (Onboard Crypto Accelerator). Publicly available software generally has an exception Posting encryption source code and corresponding object code on the Internet (e.g., FTP or World Wide Web site) where it may be downloaded by anyone neither establishes “knowledge” of a prohibited export or reexport for purposes of this paragraph, nor triggers any red flags necessitating the affirmative duty to inquire http://www.bis.doc.gov/index.php/policy-guidance/ encryption/identifying-encryption-items Josh Datko Developing the CryptoCape January 21, 2014 29 / 37
https://www.youtube.com/watch?v=CgaBKNus1n0 Hardware Attacks, Advanced ARM Exploitation @ 30c3: https://www.youtube.com/watch?v=2fYPtByBY-s Tutorial on BBB Cape EEPROM. https://github.com/jbdatko/eeprom_tutorial Jason Kridner on Device Tree https://github.com/jadonk/validation-scripts/tree/ master/test-capemgr Josh Datko Developing the CryptoCape January 21, 2014 31 / 37