Lumina Blocks
Güvenlik ve kriptografi
Önizleme · v0.2.0

LM-AES-GCM

AES-GCM kripto motoru

  • Saat başına bir blok
  • Tamamen unrolled şifreleyici
  • Donanımda tag doğrulama
  • Her FPGA'ya taşınabilir

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.

CihazKonfigürasyonMantıkFFBellekDSPFmax
Altera Agilex 3A3CW135BM16AE6S · quartus-pro 26.1.1PIPES=19.927 ALM11.736466 Kb M20K0251,3 MHzhedef 250
AMD Kintex UltraScale+xcku3p-ffva676-1-e · vivado 2026.1PIPES=112.485 LUT7.142114 BRAM0273,6 MHzhedef 250
Efinix Titanium Ti375Ti375N1156 · efinity 2026.1PIPES=124.394 LUT14.915228 RAM0296,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 = 2 konfigü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üzTürGenişlikTaşıdığı
s_axilAXI4-Lite slave32 bitkonfigürasyon, komut, durum, sayaçlar, tag ve IV uzunlukları
s_axis_keyAXI4-Stream sink32 bitanahtar, en anlamlı kelime önce
s_axis_ivAXI4-Stream sink32 bitbaşlatma vektörü
s_axis_dinAXI4-Stream sink128 × PIPES bitgiriş payload'u
m_axis_doutAXI4-Stream source128 × PIPES bitçıkış payload'u
s_axis_tinAXI4-Stream sink32 bitşifre çözmede beklenen tag
m_axis_toutAXI4-Stream source32 bitşifrelemede hesaplanan tag
enc_decgiriş1 bityön; mesaj başında örneklenir
enablegiriş1 bitpayload kapısı
tag_valid, tag_ok, tag_failçıkışher biri 1 bitdoğrulama sonucu, pin olarak
irqseviye1 bittamamlanma 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

ParametreTürEtkisi
PIPESelaboration1 = 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çimielaborationeksiksiz 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
RTLparametrik, üreticiden bağımsız SystemVerilog
Modelbit doğruluğunda C++ modeli
Register'larSystemRDL kaynağı ve üretilmiş altı dışa aktarım
DoğrulamaUVM 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ü
PaketlemeIP-XACT, IEEE 1685-2022
Gerçeklemeher FPGA üreticisi için çalıştırılabilir akış script'i, dosya listesi, SDC
Dokümantasyonentegrasyon kılavuzu

Gizlilik ayarları

Bu sitenin neleri kullanabileceğini seçin. Kararınızı her sayfanın altındaki Gizlilik ayarları bağlantısından dilediğiniz zaman değiştirebilirsiniz.

Sitenin çalışması için gerekenler ve burada yaptığınız seçimin kaydı. Kayıt tarayıcınızda tutulur; çerez kullanılmaz.

Her zaman açık

Ziyaretleri saymamıza ve hangi sayfaların işe yaradığını görmemize olanak tanır; reklam ya da siteler arası takip içermez. Şu anda hiçbir analitik aracı kullanmıyoruz, yani seçiminiz ne olursa olsun hiçbir şey yüklenmez.

Çerez politikası · Gizlilik politikası