5

I would like to build a hardware encrypted (at least AES-128) pen drive for myself. Which micro controller and which storage technology do you recommend? I've been experimenting with a PIC32 and a 2GB SD memory, but the reading/writing throughput is not good.

Any suggestion would help.

Thanks in advance!

Federico
  • 274
  • 2
  • 7
  • Maybe not a micro (unless it supported hardware encryption) but maybe an fpga? – Faken Jan 26 '12 at 15:11
  • @faken, many do. – Kortuk Jan 26 '12 at 16:14
  • Dedicated hardware is nice, but can you comment on the speeds you're achieving and how you're currently doing this? (Buffering, encryption method, storage/retrieval procedure, etc) Maybe someone can spot where an optimization can be made. – Jon L Jan 26 '12 at 23:56
  • @Jon L: Without encryption I'm achieving 950 KB/s of reading throughput (this is what GNOME reports when copying to my Ubuntu, is not the gross throughput), using SPI at 20MHz. Using the POLAR SSL AES-128 algorithm I get 330 KB/s. The Microchip encryption library page says 740 KB/s of throughput for decryption, so I would not expect more than that... – Federico Jan 27 '12 at 16:38

1 Answers1

7

If you want to use a micro (a small FPGA would work well also) then one with a dedicated peripheral would be good.

The STM32F407 series have a cryptographic processor peripheral capable of DES, Triple DES, AES 128, 192 or 256.

They also have a dedicated SD card peripheral (for 1, 4 or 8-bit interface) which allows transfer at up to 48MHz.

You can grab hold of the discovery F4 dev board very cheaply on Mouser (probably a few other places too)

Note I haven't used either of the peripherals yet, I've just noticed them whilst using the chip (which is very powerful for the price) I have used the PIC32 plenty also but this is a step up, my only grumble is ST don't provide an IDE (plenty to choose from though - Keil, IAR, Rowley, Atollic - we went for Raisonance) and their documentation/code examples are not as good as Microchips.

Oli Glaser
  • 54,990
  • 3
  • 76
  • 147
  • Appreciate your answer. Could you please recommend me some storage technology for this? I was using an SD, interfaced with SPI, but the protocol makes the transfer really slow (around 950 KB/s), in comparison to a standard pendrive. I was thinking also on using compact flash or directly writing (or using a chip, I don't know) a NAND flash controller. – Federico Jan 26 '12 at 23:19
  • I'd probably use the parallel SD interface and/or grab a faster SD card. The STMF4 SD peripheral doesn't use SPI (rather the parallel interface), and having a quick glance at the datasheet I think it takes care of the SD protocol for you. At 48MHz and up to 8-bits per clock cycle, that gives you up to 48MB data rate (minus some for protocol) I would have a look at the SDIO section of the STM32F07 reference manual, and check if ST have some example code on their site (most likely) – Oli Glaser Jan 27 '12 at 01:58