DIY: Hardware-verschlüsselter USB-Stick

Ich möchte mir einen Hardware-verschlüsselten (mindestens AES-128) USB-Stick bauen. Welchen Mikrocontroller und welche Speichertechnologie empfehlen Sie? Ich habe mit einem PIC32 und einem 2 GB SD-Speicher experimentiert, aber der Lese-/Schreibdurchsatz ist nicht gut.

Jeder Vorschlag würde helfen.

Vielen Dank im Voraus!

Vielleicht kein Mikro (es sei denn, es unterstützte Hardwareverschlüsselung), aber vielleicht ein FPGA?
@faken, viele tun es.
Dedizierte Hardware ist schön, aber können Sie die Geschwindigkeiten kommentieren, die Sie erreichen, und wie Sie dies derzeit tun? (Pufferung, Verschlüsselungsverfahren, Speicher-/Abrufverfahren usw.) Vielleicht kann jemand erkennen, wo eine Optimierung vorgenommen werden kann.
@Jon L: Ohne Verschlüsselung erreiche ich 950 KB/s Lesedurchsatz (dies ist, was GNOME beim Kopieren auf mein Ubuntu meldet, ist nicht der Bruttodurchsatz), wenn ich SPI bei 20 MHz verwende. Mit dem POLAR SSL AES-128-Algorithmus erhalte ich 330 KB/s. Auf der Seite der Microchip-Verschlüsselungsbibliothek wird ein Durchsatz von 740 KB / s für die Entschlüsselung angegeben, also würde ich nicht mehr erwarten ...

Antworten (1)

Wenn Sie ein Mikro verwenden möchten (ein kleines FPGA würde auch gut funktionieren), wäre eines mit einem dedizierten Peripheriegerät gut.

Die STM32F407-Serie verfügt über ein kryptografisches Prozessorperipheriegerät, das DES, Triple DES, AES 128, 192 oder 256 unterstützt.

Sie haben auch ein dediziertes SD-Kartenperipheriegerät (für 1-, 4- oder 8-Bit-Schnittstelle), das eine Übertragung mit bis zu 48 MHz ermöglicht.

Sie können das Discovery F4-Entwicklungsboard sehr günstig bei Mouser ergattern (wahrscheinlich auch an einigen anderen Stellen).

Hinweis Ich habe noch keines der Peripheriegeräte verwendet, ich habe sie gerade bemerkt, als ich den Chip verwendet habe (der für den Preis sehr leistungsstark ist). Ich habe auch den PIC32 häufig verwendet, aber dies ist ein Schritt nach oben, mein einziges Murren ist ST bieten keine IDE an (obwohl es eine große Auswahl gibt - Keil, IAR, Rowley, Atollic - wir haben uns für Raisonance entschieden) und ihre Dokumentation/Codebeispiele sind nicht so gut wie die von Microchips.

Schätzen Sie Ihre Antwort. Könnten Sie mir bitte eine Speichertechnologie dafür empfehlen? Ich habe eine SD mit SPI-Schnittstelle verwendet, aber das Protokoll macht die Übertragung im Vergleich zu einem Standard-Stick sehr langsam (ca. 950 KB/s). Ich dachte auch darüber nach, Compact Flash zu verwenden oder direkt einen NAND-Flash-Controller zu schreiben (oder einen Chip zu verwenden, ich weiß es nicht).
Ich würde wahrscheinlich die parallele SD-Schnittstelle verwenden und/oder zu einer schnelleren SD-Karte greifen. Das STMF4 SD-Peripheriegerät verwendet kein SPI (sondern die parallele Schnittstelle), und mit einem kurzen Blick auf das Datenblatt denke ich, dass es das SD-Protokoll für Sie übernimmt. Bei 48 MHz und bis zu 8 Bit pro Taktzyklus ergibt das eine Datenrate von bis zu 48 MB (abzüglich einiger für das Protokoll). Ich würde mir den SDIO-Abschnitt des STM32F07-Referenzhandbuchs ansehen und prüfen, ob ST einen Beispielcode hat ihre Website (höchstwahrscheinlich)