Eine Studie beschreibt, wie eine eng an einen RISC-V-Prozessor gekoppelte Befehlssatzerweiterung Classic McEliece auf einer FPGA ausführte. Die Forschenden testeten Kapselung und Entkapselung mit stark reduzierten Parametern. Die oft genannten Zyklusgewinne von 87,4 und 86,1 Prozent stammen dagegen aus einer separaten Simulation mit asynchronem Speicher. Die am 26. Oktober 2026 in Discover Computing veröffentlichte Studie trennt diese Messungen klar voneinander.

Inhalt

Was die FPGA-Demonstration zeigt

Die Forschenden setzten ihre Erweiterung auf einem DE1-SoC-Board mit Intel Cyclone V um. Die Testparameter lauteten SYS_T=2, SYS_N=48 und GFBITS=12. Sie eignen sich zur Untersuchung der Architektur, bilden aber keine Produktionsparameter ab.

Das vollständige FPGA-Design belegte 10.531 adaptive Logikmodule (ALMs). Die Synthese ergab eine maximale Taktfrequenz von 118,89 MHz am ungünstigen 85-°C-Eckpunkt. Prozessor und Beschleuniger liefen auf dem Board jedoch mit einem geteilten Takt von 5 MHz. Die 118,89 MHz sind daher nicht die Betriebsfrequenz des ausgeführten Systems.

Simulation und FPGA-Ausführung im Vergleich

Die Prozentwerte stammen aus einem Vergleich mit einer unbeschleunigten Referenz unter passenden Bedingungen mit asynchronem Speicher. Die FPGA-Version verwendete dagegen synchronen Speicher. Ihre Zyklenzahlen beschreiben deshalb eine andere Messkonfiguration.

MesskonfigurationVorgangZyklen oder ErgebnisUmfang und Bedingung
Asynchrone SimulationKapselung1.010 Zyklen, 87,4 % weniger als die unbeschleunigte ReferenzVergleich mit asynchronem Speicher
Asynchrone SimulationEntkapselung1.708.050 Zyklen, 86,1 % weniger als die unbeschleunigte ReferenzVergleich mit asynchronem Speicher
FPGA mit synchronem SpeicherKapselungsoperation1.820 ZyklenFPGA-Ausführung mit hostgenerierten Schlüsseln
FPGA mit synchronem SpeicherVollständige Kapselung13.585 ZyklenEinschließlich SHA-256
FPGA mit synchronem SpeicherEntkapselung3.654.113 ZyklenFPGA-Ausführung mit hostgenerierten Schlüsseln

Auch innerhalb der Studie fallen die Zyklenzahlen je nach Speicher aus: Die synchrone FPGA-Konfiguration benötigt für die Kapselungsoperation 1,80-mal so viele Zyklen wie die asynchrone Konfiguration, für die Entkapselung 2,14-mal so viele. Die 13.585 Zyklen umfassen zusätzlich SHA-256 und bezeichnen damit einen größeren Vorgang als die 1.820-Zyklen-Angabe.

Welche Aufgaben die Zusatzbefehle übernehmen

Die Erweiterung beschleunigte mehrere Rechenschritte direkt im Prozessor. Dazu gehören eine Chien-Suche über eine Liste von Stützstellen, eine feste Gauß-Elimination zur Erzeugung des Minimalpolynoms und eine schrittweise Reduktion der Matrix in systematische Form für die Erzeugung des öffentlichen Schlüssels.

Nicht jede Beschleuniger-Idee lohnte sich im Gesamtablauf. Eine DMA-gestützte Variante für composeinv brachte in der integrierten Messung nur etwa den Faktor 1,0 bis 1,1 für den controlbits-Abschnitt. Wiederholte kleine Sortierungen sowie Start- und Transferaufwand nahmen den Vorteil des einzelnen Rechenkerns weitgehend auf. Nach der Beschleunigung der Decoderstufen beanspruchte die Erzeugung der Stützstellen weiterhin mehr als 99 Prozent der Entkapselungszyklen.

Schlüsselgenerierung und größere Parameter

Die FPGA-Ausführung verwendete Schlüssel, die auf einem Host erzeugt worden waren. Eine vollständige Schlüsselgenerierung auf dem FPGA wurde nicht gezeigt: Der gesamte Ablauf überschritt in der Simulation das Budget von 300 Millionen Zyklen, während controlbits weiterhin in Software lief.

Für das Parameterprofil mceliece348864 nennt die Studie eine gepackte Matrix von 334.848 Byte und einen öffentlichen Schlüssel von 261.120 Byte. Der FPGA verfügt über ungefähr 496 KiB Blockspeicher. Die Matrix passt laut Studie für sich genommen prinzipiell hinein; zusammen mit öffentlichem Schlüssel und Prozessorspeicher reicht der Platz jedoch nicht. Die Forschenden nennen bankierten oder externen Speicher sowie ein Streaming der Matrix als Ansatzpunkte für eine größere Implementierung. Die Messungen mit SYS_N=48 liefern keinen Leistungswert für dieses Produktionsprofil.

Tests, Leistungsaufnahme und Seitenkanäle

Auf Systemebene bestanden ein referenzbasierter Known-Answer-Test und vier gezielte Fehlermuster mit Gewicht zwei. Für die getestete Konfiguration mit SYS_N=48 und SYS_T=2 gibt es 1.128 mögliche Muster dieser Art.

Die Leistungsaufnahme ist eine Schätzung für genau diesen Cyclone-V-Aufbau: Intel Quartus PowerPlay veranschlagte für das vollständige Design bei 5 MHz insgesamt 458,34 mW. Die Studie schätzte außerdem rund 335 mJ pro Entkapselung. Beide Werte hängen von Aufbau und Aktivitätsmodell ab; kurze Messfenster mit simulierten Signalwechseln umfassten keine vollständige Entkapselung.

Die Forschenden führten kein Seitenkanalexperiment durch. Die FPGA-Demonstration liefert daher keinen empirischen Nachweis, dass die Erweiterung gegen Seitenkanalangriffe schützt.