Lo studio di Haridhayal Maheswaran, Samuel Kennedy e Basel Halak descrive un’estensione RISC-V che esegue incapsulamento e decapsulamento di Classic McEliece su una FPGA, usando parametri ridotti. Le riduzioni dell’87,4% e dell’86,1% citate per queste operazioni arrivano invece da una simulazione con memoria asincrona, non dalle misure sulla scheda. Lo studio è stato pubblicato il 26 ottobre 2026 su Discover Computing (articolo scientifico).

In questo articolo

Che cosa ha eseguito la FPGA

Il progetto integra istruzioni personalizzate in un processore RISC-V RV32I e le collega a blocchi che accelerano alcune operazioni crittografiche. I ricercatori lo hanno implementato su una scheda DE1-SoC con FPGA Intel Cyclone V 5CSEMA5F31C6. L’esecuzione ha coperto l’incapsulamento e il decapsulamento, usando chiavi generate da un host.

La valutazione ha adottato SYS_T=2, SYS_N=48 e GFBITS=12, valori ridotti scelti per studiare l’architettura. Il progetto completo occupava 10.531 ALM. La frequenza massima risultante dal fit era 118,89 MHz nella condizione lenta a 85 °C, mentre il processore e gli acceleratori funzionavano a 5 MHz sulla scheda.

Simulazione ed esecuzione FPGA hanno conteggi diversi

Le percentuali di riduzione confrontano la simulazione con memoria asincrona con una versione non accelerata. Sulla FPGA, invece, la memoria era sincrona e i conteggi descrivono operazioni specifiche. Ecco i valori distinti riportati dallo studio:

Regime e ambitoOperazioneCicli e confrontoCondizioni
Simulazione con memoria asincronaIncapsulamento1.010 cicli; riduzione dell’87,4%Confronto con la versione non accelerata
Simulazione con memoria asincronaDecapsulamento1.708.050 cicli; riduzione dell’86,1%Confronto con la versione non accelerata; miglioramento complessivo di 7,18×
FPGA con memoria sincronaOperazione di incapsulamento1.820 cicliLe chiavi erano generate da un host
FPGA con memoria sincronaIncapsulamento completo, inclusa SHA-25613.585 cicliAmbito più ampio dell’operazione di incapsulamento conteggiata separatamente
FPGA con memoria sincronaDecapsulamento3.654.113 cicliLe chiavi erano generate da un host

Il passaggio dalla simulazione asincrona alla configurazione FPGA sincrona porta i conteggi dell’incapsulamento da 1.010 a 1.820 cicli e quelli del decapsulamento da 1.708.050 a 3.654.113. Lo studio attribuisce la differenza alla maggiore latenza delle letture con memoria sincrona. Perciò le riduzioni percentuali descrivono il confronto simulato, non una riduzione misurata sulla FPGA. Anche i due conteggi dell’incapsulamento sulla scheda hanno ambiti diversi: 1.820 cicli per l’operazione e 13.585 per quella completa, che include SHA-256.

Le istruzioni personalizzate accelerano fasi specifiche

I ricercatori hanno mantenuto tre acceleratori: la ricerca di Chien per individuare la lista di supporto, un’eliminazione gaussiana a dimensione fissa per generare il polinomio minimo e una riduzione in streaming alla forma sistematica per la chiave pubblica. Dopo queste ottimizzazioni, la generazione della lista di supporto, basata sulla rete di permutazione di Bénes, assorbiva oltre il 99% dei cicli di decapsulamento nei due regimi di memoria analizzati.

Un candidato assistito da DMA per la fase composeinv è stato escluso: nel profiling integrato migliorava controlbits soltanto di 1,0–1,1×. I costi di trasferimento e avvio, insieme ai piccoli ordinamenti ricorsivi, riducevano il vantaggio osservato sul singolo kernel.

Generazione delle chiavi e memoria a scala di produzione

La generazione completa delle chiavi sul dispositivo non è stata dimostrata. La fase controlbits è rimasta in software e l’esecuzione completa ha superato il limite di simulazione di 300 milioni di cicli. Sulla FPGA, i ricercatori hanno quindi usato chiavi generate da un host.

Per mceliece348864, lo studio considera n=3488 e t=64: la matrice sistematica impacchettata occupa 334.848 byte e la chiave pubblica 261.120 byte. La FPGA dispone di circa 496 KiB di memoria a blocchi. La matrice, da sola, può entrarvi; matrice, chiave pubblica e memorie del processore non vi entrano insieme. Lo studio non ricava da questa analisi stime di prestazioni o area per i parametri completi.

Portata dei test e della stima di potenza

I test di sistema hanno superato un test di risposta nota di riferimento e quattro pattern mirati di errore con peso due. Per i parametri ridotti usati, esistono 1.128 pattern di questo tipo. Il test dei componenti per l’inverso nel campo finito ha invece verificato tutti i 4.096 elementi. Questi controlli coprono componenti e casi specifici, ma non equivalgono a una verifica esaustiva del sistema.

Per il progetto completo a 5 MHz, Quartus PowerPlay ha stimato un assorbimento totale di 458,34 mW. La stima dell’energia per un decapsulamento era circa 335 mJ, per una durata calcolata di circa 731 ms; circa il 90% dell’energia stimata era associato alla potenza statica. I valori si riferiscono a quella configurazione Cyclone V e al relativo modello di attività. Le brevi finestre di analisi VCD non coprivano un decapsulamento completo.

Lo studio non ha svolto esperimenti side-channel, cioè misure delle informazioni che un dispositivo può rivelare attraverso segnali fisici come consumo energetico o tempi di esecuzione. Non fornisce quindi una valutazione empirica della resistenza del progetto a questo tipo di attacco.