LM-PQC-K, FPGA ve SoC tasarımlarında anahtar oluşturmayı donanıma aktarmak için bir post-kuantum kriptografi bloğudur.
Motor, FIPS 203 olarak standartlaştırılan modül kafes tabanlı anahtar kapsülleme mekanizması ML-KEM'i üç parametre setinin tamamında, yani ML-KEM-512, ML-KEM-768 ve ML-KEM-1024'te gerçekler. Anahtar üretimi, kapsülleme ve kapsül açma; sayı teorik dönüşüm (NTT), örnekleme algoritmaları, bayt kodlama ve sıkıştırma ile standardın üzerine kurulduğu Keccak süngeri dahil tamamen donanımda yapılır.
Blok, üreticiden bağımsız SystemVerilog olarak teslim edilir ve AMD, Altera ve Efinix cihazlarında aynı kaynaktan derlenir. Dört AXI4-Stream veri portu ve bir AXI4-Lite register haritası sunar; açık ve gizli materyal iki yönde de hiçbir zaman aynı portu paylaşmaz. Hedef platforma hızlı entegrasyon için bir ANSI C sürücüsü sağlanır.
Ölçülmüş FPGA sonuçları
Ürün top'ı, bağlam dışı (out of context) ve hedef saatte kısıtlanmış olarak. AMD ve Efinix LUT, Altera ALM raporlar; ikisi hiçbir zaman birleştirilmez.
| Cihaz | Konfigürasyon | Mantık | FF | Bellek | DSP | Fmax |
|---|---|---|---|---|---|---|
| Altera Agilex 3A3CW135BM16AE6S · quartus-pro 26.1.1 | KEM_1024=1, KEM_512=1, KEM_768=1 | 7.656 ALM | 7.086 | 174 Kb M20K | 14 | 175,0 MHzhedef 175 |
| AMD Kintex UltraScale+xcku3p-ffva676-1-e · vivado 2026.1 | KEM_1024=1, KEM_512=1, KEM_768=1 | 11.208 LUT | 4.302 | 12 BRAM | 16 | 301,8 MHzhedef 300 |
| Efinix Titanium Ti375Ti375N1156 · efinity 2026.1 | KEM_1024=1, KEM_512=1, KEM_768=1 | 16.481 LUT | 4.726 | 32 RAM | 26 | 213,4 MHzhedef 175 |
Özellikler
Anahtar kapsülleme
- Çalışma zamanında seçilebilen ML-KEM-512, ML-KEM-768, ML-KEM-1024
- Anahtar üretimi, kapsülleme ve kapsül açma
- Kapsül açmada, FIPS 203'ün istediği şekliyle örtük reddetme (implicit rejection)
Standartlar
- Bölüm 7.2 ve 7.3'teki girdi denetimleri dahil FIPS 203'ün tamamı
- Standardın kullandığı biçimiyle FIPS 202 Keccak süngeri, SHA3-256/512 ve SHAKE128/256
Güvenlik
- Sabit zamanlı veri yolu. Çalışma süresi ve kontrol akışı gizli veriye bağlı değildir; blok yapısı gereği zamanlama analizine ve basit güç analizine dirençlidir
- Açık ve gizli materyal iki yönde de ayrı portlarda; böylece gizli bir yol SoC'nin korumalı bir bölgesinden geçirilebilir ve bu pinlerde görülebilir
- Hiçbir register adresinde anahtar materyali bulunmaz
- Her reset bırakılışından sonra çalışma öncesi bilinen cevap öz testi; test geçene kadar veri çıkışı engellenir
- Çalışma bellekleri ve iç tamponlar her işlemin sonunda sıfırlanır
Entegrasyon
- AMBA AXI4-Lite kontrol ve dört AXI4-Stream veri arayüzü
- İki teslim top'ı: eksiksiz AXI ürünü ya da kendi yapınız için yalın motor
- Tek saat alanı, tek reset
- ANSI C sürücüsü, UVM RAL, IP-XACT, SystemRDL register tanımı
Uygulamalar
- Post-kuantum güvenlikli TLS ve IKEv2 anahtar oluşturma
- Klasik ECDH ile birlikte hibrit anahtar değişimi
- Güvenli açılış ve firmware güncellemesi için anahtar taşıma
- Makineler arası ve IoT oturum kurulumu
- "Şimdi topla, sonra çöz" (harvest-now-decrypt-later) saldırılarına açık, uzun ömürlü sistemler
- Güven kökü (root of trust) ve HSM alt sistemleri
Blok diyagramı
Parametre setleri
| Set | Güvenlik kategorisi | Kapsülleme anahtarı | Kapsül açma anahtarı | Şifreli metin | Paylaşılan sır |
|---|---|---|---|---|---|
| ML-KEM-512 | 1 | 800 B | 1.632 B | 768 B | 32 B |
| ML-KEM-768 | 3 | 1.184 B | 2.400 B | 1.088 B | 32 B |
| ML-KEM-1024 | 5 | 1.568 B | 3.168 B | 1.568 B | 32 B |
Üçü de her derlemede bulunur ve çalışma zamanında seçilir. Boyutları bir tablodan değil, donanımdan okuyarak sürücü raporlar; böylece host FIPS 203 için ikinci bir doğruluk kaynağı taşımak zorunda kalmaz.
Arayüzler
Veriyi dört AXI4-Stream portu, kontrolü bir AXI4-Lite arayüzü taşır. Port sayısı bir kolaylık değil, bir güvenlik özelliğidir: açık ve gizli materyal iki yönde de hiçbir zaman aynı teli paylaşmaz.
| Arayüz | Tür | Genişlik | Taşıdığı |
|---|---|---|---|
s_axil | AXI4-Lite slave | 32 bit veri, 7 bit adres | konfigürasyon, komut, durum, sayaçlar, uzunluklar |
s_axis_pub | AXI4-Stream sink | 32 bit | kapsülleme anahtarı, şifreli metin, anahtar denetimi girdisi |
s_axis_sec | AXI4-Stream sink | 32 bit | tohumlar, kapsül açma anahtarı, anahtar çiftinin gizli yarısı |
m_axis_pub | AXI4-Stream source | 32 bit | kapsülleme anahtarı, şifreli metin |
m_axis_sec | AXI4-Stream source | 32 bit | kapsül açma anahtarı, paylaşılan sır |
irq | seviye | 1 bit | tamamlanma ve hata olayları |
enable düşükken motor boşta bekler ve tüm çıkışlar engellenir.
Güvenlik özellikleri
Zamanlama ve basit güç analizi. Veri yolu gizli veriye göre sabit zamanlıdır: hiçbir dallanma, bellek adresi ya da döngü sınırı gizli bir değere bağlı değildir. Dolayısıyla blok yapısı gereği zamanlama analizine ve basit güç analizine dirençlidir; bu, ML-KEM'in kendi yapısının izin verdiği dirençtir.
Diferansiyel güç analizi kapsam dışıdır. Maskeleme, karıştırma (shuffling) ya da rastgeleleştirilmiş adresleme uygulanmamıştır. Çok sayıda iz toplayabilen bir saldırgana karşı korunması gereken bir uygulama, bu bloğun üzerinde ek önlemler gerektirir.
Örtük reddetme korunur. Şifreli metni denetimden geçmeyen bir kapsül açma işlemi, FIPS 203'ün tanımladığı gibi hata yerine reddetme tohumundan türetilmiş bir paylaşılan sır döndürür; böylece saldırgan bir şifreli metnin geçerli olup olmadığı hakkında hiçbir şey öğrenmez. Bunu bilerek hiçbir durum biti raporlamaz.
Rastgelelik entegratöre aittir. Blok bir rastgele bit üreteci içermez. FIPS 203 bölüm 3.3, tohumların parametre setinin güvenlik gücünde onaylı bir RBG'den gelmesini ister; sürücü bunu çağıranın sağladığı bir callback'ten alır. LM-DRBG böyle bir kaynaktır.
Çalışma öncesi öz test. Her reset bırakılışından sonra bir kez bilinen cevap testi çalışır ve test geçene kadar veri çıkışı engellenir. Bu, FIPS 140-3'ün bir kriptografik modüle yüklediği modül seviyesi yükümlülüktür; sertifikanın kendisi bir modülün tamamının bir laboratuvar tarafından akredite edilmesidir ve burada iddia edilmez.
Konfigürasyon
| Parametre | Tür | Etkisi |
|---|---|---|
| parametre seti | çalışma zamanı (cfg) | ML-KEM-512, 768 ya da 1024 |
KEM_512, KEM_768, KEM_1024 | elaboration | gerekmeyen bir seti derlemeden çıkarır |
| top seçimi | elaboration | eksiksiz AXI ürünü ya da yalın motor |
Kaynaklar ve performans
Her hedef cihaz için kaynak kullanımı ve maksimum saat frekansı bağlam dışında (out of context) ölçülür ve bu sayfadaki ölçülmüş sonuçlarda hedef bazında yayımlanır. AMD ve Efinix satırları LUT, Altera satırları ALM raporlar; ikisi hiçbir zaman birleştirilmez. İşlem ve parametre seti başına çevrim sayıları da onlarla birlikte yayımlanır.
Teslimat içeriği
| Öğe | İçerik |
|---|---|
| RTL | parametrik, üreticiden bağımsız SystemVerilog |
| Model | bit doğruluğunda C++ modeli |
| Register'lar | SystemRDL kaynağı ve üretilmiş altı dışa aktarım |
| Doğrulama | UVM RAL, formal property wrapper'ları, ACVP/KAT vektör sürücüleri |
| Yazılım | üretilmiş başlık dosyası ve JSON ile ANSI C referans sürücüsü |
| Paketleme | IP-XACT, IEEE 1685-2022 |
| Gerçekleme | her FPGA üreticisi için çalıştırılabilir akış script'i, dosya listesi, SDC |
| Dokümantasyon | entegrasyon kılavuzu |