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
- Simulation und FPGA-Ausführung im Vergleich
- Welche Aufgaben die Zusatzbefehle übernehmen
- Schlüsselgenerierung und größere Parameter
- Tests, Leistungsaufnahme und Seitenkanäle
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.
| Messkonfiguration | Vorgang | Zyklen oder Ergebnis | Umfang und Bedingung |
| Asynchrone Simulation | Kapselung | 1.010 Zyklen, 87,4 % weniger als die unbeschleunigte Referenz | Vergleich mit asynchronem Speicher |
| Asynchrone Simulation | Entkapselung | 1.708.050 Zyklen, 86,1 % weniger als die unbeschleunigte Referenz | Vergleich mit asynchronem Speicher |
| FPGA mit synchronem Speicher | Kapselungsoperation | 1.820 Zyklen | FPGA-Ausführung mit hostgenerierten Schlüsseln |
| FPGA mit synchronem Speicher | Vollständige Kapselung | 13.585 Zyklen | Einschließlich SHA-256 |
| FPGA mit synchronem Speicher | Entkapselung | 3.654.113 Zyklen | FPGA-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.