Badacze uruchomili enkapsulację i dekapsulację Classic McEliece na układzie FPGA z rozszerzeniem instrukcji RISC-V. Test przeprowadzili na płytce DE1-SoC z układem Intel Cyclone V, używając parametrów znacznie mniejszych od produkcyjnych. Podawane w badaniu redukcje liczby cykli o 87,4% i 86,1% pochodzą z osobnej symulacji, a nie z pomiarów na FPGA.
W artykule
- Co zadziałało na FPGA
- Symulacja i FPGA dają różne wyniki
- Gdzie niestandardowe instrukcje pomagają
- Pamięć ogranicza skalowanie
- Zakres testów i oszacowania mocy
Co zadziałało na FPGA
Classic McEliece to oparty na kodach mechanizm enkapsulacji klucza, zaliczany do kryptografii postkwantowej. Badacze połączyli jego wybrane operacje z niestandardowymi instrukcjami rdzenia RISC-V RV32I. Projekt dopasowali do układu Cyclone V 5CSEMA5F31C6 na płytce DE1-SoC.
Ocena wykorzystała parametry SYS_T=2, SYS_N=48 i GFBITS=12, wybrane do analizy architektury. Pełny projekt zajmował 10 531 ALM. Po dopasowaniu układu oszacowana maksymalna częstotliwość wyniosła 118,89 MHz w warunkach slow przy 85°C. Procesor i akceleratory pracowały jednak z zegarem 5 MHz.
Na FPGA badacze wykonali enkapsulację i dekapsulację, korzystając z kluczy wygenerowanych przez komputer-host. Nie ukończyli generowania kluczy na samym urządzeniu: pełna ścieżka przekroczyła budżet symulacji wynoszący 300 milionów cykli, a część controlbits pozostała realizowana programowo.
Symulacja i FPGA dają różne wyniki
Poniższe liczby opisują różne tryby pamięci i zakresy operacji. Wartości procentowe dotyczą porównania w symulacji z pamięcią asynchroniczną, natomiast liczniki FPGA pochodzą z konfiguracji z pamięcią synchroniczną.
| Tryb pomiaru | Operacja | Wynik | Zakres i warunki |
| Symulacja z pamięcią asynchroniczną | Enkapsulacja | 1 010 cykli; o 87,4% mniej cykli | Porównanie z nieprzyspieszoną wersją bazową |
| Symulacja z pamięcią asynchroniczną | Dekapsulacja | 1 708 050 cykli; o 86,1% mniej cykli | Porównanie z nieprzyspieszoną wersją bazową |
| FPGA z pamięcią synchroniczną | Operacja enkapsulacji | 1 820 cykli | Klucze wygenerowane przez hosta |
| FPGA z pamięcią synchroniczną | Pełna enkapsulacja z SHA-256 | 13 585 cykli | Klucze wygenerowane przez hosta |
| FPGA z pamięcią synchroniczną | Dekapsulacja | 3 654 113 cykli | Klucze wygenerowane przez hosta |
Liczby 1 820 i 13 585 nie opisują tego samego zakresu: druga obejmuje pełną enkapsulację wraz z SHA-256. Również wyniki symulacji i FPGA nie są bezpośrednim porównaniem samych akceleratorów. W tej samej pracy konfiguracja synchroniczna wymagała 1,80 raza więcej cykli przy enkapsulacji i 2,14 raza więcej przy dekapsulacji niż konfiguracja asynchroniczna; badacze zastrzegli, że różne reżimy pamięci utrudniają traktowanie tych wyników jako porównania jeden do jednego.
Gdzie niestandardowe instrukcje pomagają
Projekt zachował trzy mapowania obliczeń na sprzęt: przeszukiwanie Chiena na liście nośników, eliminację Gaussa o stałym rozmiarze do generowania wielomianu minimalnego oraz strumieniową redukcję do postaci systematycznej przy generowaniu klucza publicznego. Po przyspieszeniu etapów dekodera generowanie listy nośników, napędzane przez sieć permutacji Bénesa, pochłaniało ponad 99% cykli dekapsulacji w obu badanych reżimach pamięci.
Badacze odrzucili także wariant composeinv wspomagany przez DMA. W zintegrowanym profilu dawał on zaledwie 1,0–1,1 raza poprawy etapu controlbits; koszty transferów i rekurencyjnych sortowań niwelowały korzyść widoczną dla samego jądra obliczeniowego. To przykład, dlaczego przy akceleracji liczy się koszt całego przebiegu, a nie tylko szybkość pojedynczej funkcji.
Pamięć ogranicza skalowanie
Dla zestawu parametrów mceliece348864 badacze podali spakowaną macierz postaci systematycznej o rozmiarze 334 848 bajtów i klucz publiczny o rozmiarze 261 120 bajtów. Docelowy układ FPGA ma około 496 KiB pamięci blokowej. Sama macierz może się w niej zmieścić, ale macierz, klucz publiczny i pamięci procesora nie mieszczą się razem.
Praca nie ekstrapoluje wydajności dla parametrów produkcyjnych. Wskazuje za to na potrzebę zmian w organizacji pamięci, takich jak użycie banków lub pamięci zewnętrznej oraz strumieniowe przetwarzanie prawej części macierzy. Zredukowane parametry testu nie pozwalają więc przeliczyć wyników na osiągi dla mceliece348864.
Zakres testów i oszacowania mocy
Testy systemowe objęły jeden referencyjny test znanej odpowiedzi (KAT) i cztery ukierunkowane wzorce błędu o wadze dwa. Dla testowanego przypadku n=48, t=2 istnieje 1 128 takich wzorców, więc próby systemowe nie były wyczerpujące ani statystyczne. Badacze poprawili też cztery błędy odziedziczonej maszyny stanów Berlekampa–Masseya oraz osobny błąd rejestru transpozycji, który ujawniły testy integracyjne.
Oszacowanie narzędzia Quartus PowerPlay dla pełnego projektu przy zegarze 5 MHz wyniosło 458,34 mW; około 90% tej wartości przypadało na moc statyczną. Badacze oszacowali też około 731 ms i 335 mJ na dekapsulację w tej konfiguracji Cyclone V i przy zastosowanym modelu aktywności. Krótkie okna VCD nie obejmowały całej dekapsulacji, więc te liczby opisują konkretne oszacowanie projektu, a nie uniwersalny pomiar energii.
Badanie nie obejmowało eksperymentu kanałów bocznych. Stała latencja instrukcji sama w sobie nie dowodzi, że oprogramowanie działa w stałym czasie ani że sprzęt pobiera stałą moc.