Frage:
Welche Konfiguration sollte ich für ein System verwenden, das einen ARM und ein FPGA enthält?
samoz
2010-06-30 22:07:56 UTC
view on stackexchange narkive permalink

Ich habe ein Design, das ein Altera Cyclone FPGA verwendet, um eine PUF (Physically Unclonable Function) zu implementieren, und ein ARM-Gerät, um kryptografische Arbeit und E / A mit dem PUF auszuführen. Das PUF ist sehr groß und nimmt ziemlich viel Platz ein (nur etwa 1/4 passt auf den Cyclone).

Meine Frage ist, ob ich am besten bedient werden kann, wenn ich ein FPGA bekomme, das groß genug ist, um beide aufzunehmen der PUF und der ARM-Kern oder ein kleineres FPGA für den PUF und einen zweiten externen ARM-Chip? Können Sie einige Vorschläge machen?

Wenn ich zwei Chips verwenden würde, würden diese mit SPI kommunizieren. Es gibt nicht viel Kommunikation zwischen den beiden, noch muss es schnell sein.

Vier antworten:
#1
+9
davr
2010-06-30 22:28:55 UTC
view on stackexchange narkive permalink

Ich kann Ihre spezifische Anwendung nicht kommentieren (kein Kryptografieexperte), aber es ist äußerst üblich, einen Prozessor mit einem FPGA an Bord zu bringen. Der Hauptgrund ist, dass Sie jetzt FPGA-Speicherplatz freigeben, um das zu tun, was FPGA kann, während Sie den kostengünstigeren separaten Prozessor verwenden, um das zu tun, was er kann, möglicherweise sogar schneller als dies mit einer im FPGA laufenden Soft-CPU möglich wäre. Darüber hinaus können größere FPGAs im Vergleich zu schnelleren ARMs, die recht günstig sind, recht teuer werden.

Grundsätzlich denke ich, dass Sie die beiden Chips verwenden sollten, aber es ist schwierig, eine Proklamation sicher zu machen, ohne Details über Ihren spezifischen Bereich zu kennen.

#2
+5
Michael Kohne
2010-07-01 02:31:25 UTC
view on stackexchange narkive permalink

Ich denke, die richtige Antwort von zwei Chips gegen großes FPGA hängt davon ab, welchen Angriffen das Gerät ausgesetzt ist. Das bedeutet, dass Sie etwas über Ihre möglichen Angriffsszenarien und Sicherheitsanforderungen wissen müssen.

Was schadet es, wenn der Angreifer diese SPI-Kommunikation prüft? Bekommt er Schlüssel? Klartext? Zwischenstufen des Verschlüsselungsprozesses? Wenn der Angreifer diese Sonde in Klartext umwandeln kann, was ist der Schaden? Illegaler Zugang zu einem kostenpflichtigen Satellitenfernsehkanal? Finanzdaten? Militärische Geheimnisse? Dies ist das Wichtigste zu verstehen. Es informiert Sie über alle anderen Fragen (denn je sensibler die Daten sind, desto mehr lohnt es sich, sie zu schützen).

Befindet sich das Gerät an einem Ort, an dem der Angreifer ohne Erkennung damit herumspielen kann?

Wenn es sich beispielsweise um ein Sicherheitssystem in einem Blu-ray-Player handelt, müssen Sie davon ausgehen, dass der Angreifer das Objekt öffnen wird, während es irgendwann ausgeführt wird. Wenn es sich jedoch um ein militärisches Kommunikationssystem handelt, das nur vom Präsidenten der Vereinigten Staaten verwendet wird, kann davon ausgegangen werden, dass der Angreifer keine Zeit alleine mit dem Gerät hat.

Wie motiviert ist der Angreifer? Welche Art von Ressourcen hat der Angreifer wahrscheinlich?

Dürfen Sie das Ding in einer speziellen Box versiegeln, die das Brett zerstören kann, wenn es verletzt wird?

Sie benötigen ein gutes Profil von was Sie erwartet, um diese Entscheidung zu treffen.

#3
+4
Mark
2010-06-30 22:27:41 UTC
view on stackexchange narkive permalink

hängt von der Größe / Komplexität des ARM-Kerns und des benötigten FPGA ab.

Die einzigen technischen Probleme sind der Stromverbrauch (das einzelne große FPGA ist wahrscheinlich höher) und die Datenintegrität auf der SPI-Leitung. Das heißt, kann die Sicherheit Ihres Systems durch jemanden beeinträchtigt werden, der die auf der SPI-Leitung gesendeten Daten erfasst.

Ansonsten ist der Preis das Problem. Vergessen Sie nicht, den Leiterplattenplatz und die erforderlichen externen Komponenten für jeden IC zu berücksichtigen, wenn Sie die Preisunterschiede berücksichtigen.

Für die erste Version habe ich sie mit einem ARM7TDMI-S-Prozessor fertiggestellt. Sie haben die Integrität der SPI-Leitung erwähnt. Dies ist tatsächlich wichtig. Wie kann ich die Übertragung sichern? (Das könnte allerdings eine ganz andere Frage sein)
Nun, ich glaube nicht, dass es etwas gibt, das perfekt ist, um die Leute von diesen Spuren abzuhalten. Wenn die Daten in der Leitung nicht verschlüsselt sind, wird Ihr SOL. Sie können BGA-Chip-Pakete verwenden und die Signalspuren auf internen Schichten in der Leiterplatte ausführen. Das würde zumindest diejenigen ohne wirkliche Motivation fernhalten. Aber wenn einer der ICs sie nicht intern hat, benötigen SPI Pull-up-Widerstände, damit immer noch Oberflächenzugriff auf das Signal besteht.
+1 für den Vorschlag der BGA-internen Schichtverfolgung, außer dass SPI meines Wissens keine Pull-up-Widerstände erfordert, da SPI Punkt-zu-Punkt-Verkettung anstelle einer gemeinsam genutzten Bustopologie ist.
Ich hätte nicht "brauchen" sagen sollen, sondern "oft brauchen". SPI kann ein gemeinsam genutzter Bus sein, dafür sind Chipauswahlleitungen gedacht. Dies hat nichts mit dem Vorhandensein von Pull-up-Widerständen zu tun. Die Notwendigkeit von Pull-up-Widerständen hängt von der Art der E / A-Pins am Mikrocontroller (oder anderen Geräten am Bus) ab. Wenn sie Open-Collector sind, auch bekannt als Open-Drain in Mosfets, haben sie möglicherweise sehr schwache Klimmzüge (~ 100 kOhm). Der Bus funktioniert bei höheren Geschwindigkeiten nicht, sodass ein externes Klimmzug mit geringerem Widerstand erforderlich ist. Sie haben möglicherweise auch überhaupt kein Hochziehen. In diesem Fall sind sie nicht in der Lage, die Leitung hoch zu fahren.
#4
+2
ajs410
2010-07-02 01:13:42 UTC
view on stackexchange narkive permalink

Aus praktischer Sicht sind die separaten Chips eine gute Idee. Sicherheitsbedenken würden jedoch entweder eine verschlüsselte Kommunikation auf dem Bus, sorgfältige Maßnahmen, um sicherzustellen, dass keine wichtigen Daten über den Bus übertragen werden, oder die Verwendung eines einzelnen monolithischen Chips erfordern.

Es gibt auch andere Probleme. FPGAs werden normalerweise aus dem Flash-Speicher programmiert (außer in einigen seltenen Fällen, in denen beispielsweise Sicherungsschutz verwendet wird). Sie müssen sich auch Sorgen machen, dass die Anwendung während der Konfiguration abgehört wird.

Auch nach der Konfiguration verfügen viele FPGAs und andere Mikrocontroller über JTAG-Pins, mit denen das Programm wieder aus dem Gerät gelesen oder überprüft werden kann andere Aspekte der Programmierung!



Diese Fragen und Antworten wurden automatisch aus der englischen Sprache übersetzt.Der ursprüngliche Inhalt ist auf stackexchange verfügbar. Wir danken ihm für die cc by-sa 2.0-Lizenz, unter der er vertrieben wird.
Loading...