LM-AES-GCM, FPGA ve SoC tasarımlarında kimlik doğrulamalı şifrelemeyi donanıma aktarmak için bir kriptografi bloğudur.
Motor, AES'i NIST SP 800-38D'ye göre Galois/Counter Mode'da, FIPS 197 AES blok şifreleyicisiyle 128 ve 256 bit anahtar boyutlarında gerçekler. Kimlik doğrulamalı şifreleme, tag doğrulamalı şifre çözme, yalnızca kimlik doğrulama yapan GMAC, counter mode ve electronic codebook mode desteklenir; ek kimlik doğrulama verisi (AAD) her uzunlukta olabilir.
Şifreleyici tamamen unrolled yapıdadır: her saat çevriminde bir 128 bit blok girer, bir blok çıkar ve GHASH doğrulayıcısı bu hıza ayak uydurur. Blok, üreticiden bağımsız SystemVerilog olarak teslim edilir ve AMD, Altera ve Efinix cihazlarında aynı kaynaktan derlenir. AMBA AXI arayüzleri ve bir register haritası içerir; hedef platforma hızlı entegrasyon için ANSI C sürücüleri 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 | PIPES=1 | 9.927 ALM | 11.736 | 466 Kb M20K | 0 | 251,3 MHzhedef 250 |
| AMD Kintex UltraScale+xcku3p-ffva676-1-e · vivado 2026.1 | PIPES=1 | 12.485 LUT | 7.142 | 114 BRAM | 0 | 273,6 MHzhedef 250 |
| Efinix Titanium Ti375Ti375N1156 · efinity 2026.1 | PIPES=1 | 24.394 LUT | 14.915 | 228 RAM | 0 | 296,9 MHzhedef 250 |
Özellikler
Kimlik doğrulamalı şifreleme
- AES-GCM kimlik doğrulamalı şifreleme ve şifre çözme
- GMAC: payload olmadan ek verinin kimlik doğrulaması
- 128, 120, 112, 104 ve 96 bit tag uzunlukları
- Her uzunlukta ek kimlik doğrulama verisi; çıkışa iletilir ya da atılır
- 96 bit ve keyfi uzunlukta başlatma vektörleri (IV)
Blok şifreleme modları
- CTR: counter mode
- ECB: electronic codebook, şifreleme
Anahtar boyutları
- 128 bit ve 256 bit; anahtar genişletme donanımda yapılır
Motor
- Tamamen unrolled şifreleyici: sürekli olarak saat başına bir 128 bit blok
PIPES = 2konfigürasyonu saat başına iki blok işler- GHASH şifreleyicinin hızını korur; doğrulayıcı darboğaz değildir
- Tag karşılaştırması donanımda yapılır, sonuç ayrı çıkış pinlerinde verilir
Entegrasyon
- AMBA AXI4-Lite kontrol ve altı AXI4-Stream veri arayüzü
- Anahtar, başlatma vektörü, payload ve tag'in her biri kendi portunda
- Hiçbir register adresinde anahtar materyali bulunmaz
- İki teslim top'ı: eksiksiz AXI ürünü ya da kendi yapınız için yalın motor
- ANSI C sürücüsü, UVM RAL, IP-XACT, SystemRDL register tanımı
Uygulamalar
- IPsec, MACsec ve TLS kayıt koruması
- NVMe ve kendi kendini şifreleyen depolama sürücüleri
- Yüksek bant genişlikli ağ şifrelemesi
- Güvenli firmware ve konfigürasyon imajları
- Veri merkezi bağlantı şifrelemesi
Blok diyagramı
Arayüzler
Veriyi altı AXI4-Stream portu, kontrolü bir AXI4-Lite arayüzü taşır. Anahtar materyali, başlatma vektörü, payload ve tag'in her birinin yaşam süresi farklıdır; bu yüzden her birinin kendi portu vardır.
| Arayüz | Tür | Genişlik | Taşıdığı |
|---|---|---|---|
s_axil | AXI4-Lite slave | 32 bit | konfigürasyon, komut, durum, sayaçlar, tag ve IV uzunlukları |
s_axis_key | AXI4-Stream sink | 32 bit | anahtar, en anlamlı kelime önce |
s_axis_iv | AXI4-Stream sink | 32 bit | başlatma vektörü |
s_axis_din | AXI4-Stream sink | 128 × PIPES bit | giriş payload'u |
m_axis_dout | AXI4-Stream source | 128 × PIPES bit | çıkış payload'u |
s_axis_tin | AXI4-Stream sink | 32 bit | şifre çözmede beklenen tag |
m_axis_tout | AXI4-Stream source | 32 bit | şifrelemede hesaplanan tag |
enc_dec | giriş | 1 bit | yön; mesaj başında örneklenir |
enable | giriş | 1 bit | payload kapısı |
tag_valid, tag_ok, tag_fail | çıkış | her biri 1 bit | doğrulama sonucu, pin olarak |
irq | seviye | 1 bit | tamamlanma ve hata olayları |
Sonuç register'ın yanı sıra pinlerde de verilir; böylece aşağı akıştaki bir alıcı, bus erişimine gerek kalmadan ve yarış koşulu olmadan tag doğrulamasına göre kendini kapılayabilir.
Bant genişliği
Bant genişliği doğrudan mimariden gelir:
throughput = 128 x PIPES x f_clk bits per second
250 MHz'te PIPES = 1 32 Gbit/s, PIPES = 2 64 Gbit/s verir.
Yavaş bir yol ya da anahtara bağlı zamanlama yoktur: şifreleyici unrolled olduğu için anahtar boyutundan bağımsız olarak her saatte bir blok girer; GHASH de bu hızı kısıtlamaz, korur.
Güvenlik özellikleri
Doğrulaması başarısız olan şifre çözme hiçbir şey döndürmez. SP 800-38D madde 5.2.2, doğrulamayı geçemeyen bir şifre çözmenin FAIL dışında hiçbir şey döndürmemesini ister; bu blok bunu harfiyen uygular: tag doğrulanmazsa düz metin çıkışa verilmez. Tag şifreli metnin tamamının bir fonksiyonu olduğundan, sonuçtan önce düz metne ihtiyaç duyan bir entegratör onu bu bloğun dışında tamponlamak zorundadır ve bu durumda maddenin önlemek istediği riski üstlenmiş olur.
Anahtar materyali okunamaz. Anahtarlar kendi stream'leri üzerinden gelir ve hiçbir register adresinde görünmez. Sıfırlama (zeroization), talep üzerine anahtar genişletmesini ve hash alt anahtarını temizler.
Güç analizi saldırılarına karşı önlem yoktur. Maskeleme, rastgeleleştirilmiş çizelge, sabit güçlü yerine koyma ya da sahte turlar uygulanmamıştır; yerine koyma belleği, erişim enerjisi veriye bağlı olan bir blok RAM'dir. Fiziksel erişimi ve iz toplama imkânı olan bir saldırgana karşı korunması gereken bir uygulama, bu bloğun üzerinde ek önlemler gerektirir.
Konfigürasyon
| Parametre | Tür | Etkisi |
|---|---|---|
PIPES | elaboration | 1 = saat başına bir blok; 2 = saat başına iki blok |
| anahtar boyutu | çalışma zamanı | 128 ya da 256 bit |
| mod | çalışma zamanı | GCM, CTR ya da ECB |
| tag uzunluğu | çalışma zamanı | 128, 120, 112, 104 ya da 96 bit |
| AAD iletimi | çalışma zamanı | ek veriyi çıkışa ilet ya da at |
| 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. Uçtan uca gecikme, iki uç noktası da belirtilerek anahtar boyutu bazında 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ı, CAVP 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 |