LM-AES-XTS, FPGA ve SoC tasarımlarında depolama şifrelemesini donanıma aktarmak için bir kriptografi bloğudur.
Motor, AES'i IEEE Std 1619-2007'ye göre XTS modunda, FIPS 197 AES blok şifreleyicisiyle 128 ve 256 bit anahtar boyutlarında gerçekler. Her uzunluktaki veri birimini şifreler ve şifresini çözer; tam blok sayısına denk gelmeyen birimler için ciphertext stealing uygular ve electronic codebook modunu da sunar.
Şifreleyici tamamen unrolled yapıdadır: her saat çevriminde bir 128 bit blok girer, bir blok çıkar. Tweak şifreleyicisi kendi motorunda çalışır; ardışık sektörler arada boşluk olmadan pipeline'a girer. Blok, üreticiden bağımsız SystemVerilog olarak teslim edilir, AMD, Altera ve Efinix cihazlarında aynı kaynaktan derlenir ve 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 | DU_BLOCKS_W=32, PIPES=2 | 12.665 ALM | 18.695 | 1.838 Kb M20K | 0 | 250,8 MHzhedef 250 |
| AMD Kintex UltraScale+xcku3p-ffva676-1-e · vivado 2026.1 | DU_BLOCKS_W=32, PIPES=2 | 17.604 LUT | 13.655 | 234 BRAM | 0 | 261,6 MHzhedef 250 |
| Efinix Titanium Ti375Ti375N1156 · efinity 2026.1 | DU_BLOCKS_W=32, PIPES=2 | 28.804 LUT | 21.260 | 468 RAM | 0 | 300,3 MHzhedef 250 |
Özellikler
Depolama şifrelemesi
- IEEE Std 1619-2007 AES-XTS şifreleme ve şifre çözme
- 16 baytın katı olmayan veri birimleri için ciphertext stealing
- Her uzunlukta veri birimi
- Anahtar sarmalama ve test için ECB modu
Anahtar boyutları
- XTS-AES-128 ve XTS-AES-256; yani iki adet 128 bit ya da iki adet 256 bit şifreleme anahtarı
- İki anahtar genişletmesi de donanımda, her anahtar değişiminde bir kez 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- Ayrı tweak motoru: sektör hazırlığı pipeline'dan yuva çalmaz
- İki yön için ortak MixColumns ağı
Entegrasyon
- AMBA AXI4-Lite kontrol ve dört AXI4-Stream veri arayüzü
- Anahtarlar kendi stream'lerinden gelir; hiçbir register anahtar materyali tutmaz
- Register haritasında başlatma strobe'u yoktur: tamamlanan bir tweak veri birimini başlatır
- Yön bir register'da değil, bir portta
- İki teslim top'ı: eksiksiz AXI ürünü ya da kendi yapınız için yalın şifreleyici
- ANSI C sürücüsü, UVM RAL, IP-XACT, SystemRDL register tanımı
Uygulamalar
- Kendi kendini şifreleyen sürücüler ve depolama denetleyicileri
- NVMe, SATA ve SAS üzerinde satır içi (inline) şifreleme
- Gömülü ve endüstriyel sistemlerde durağan veri koruması
- Şifreli dosya sistemleri ve birim yöneticileri
- Güvenli kayıt tutma ve arşivleme
Blok diyagramı
Arayüzler
| Arayüz | Tür | Genişlik | Taşıdığı |
|---|---|---|---|
s_axil | AXI4-Lite slave | 32 bit veri, 6 bit adres | yetenekler, kontrol, uzunluk, durum, sayaç, kesmeler |
s_axis_key | AXI4-Stream sink | 32 bit | önce Key1 sonra Key2, en anlamlı kelime önce |
s_axis_tweak | AXI4-Stream sink | 32 bit | tweak, en az anlamlı kelime önce; tlast veri birimini başlatır |
s_axis | AXI4-Stream sink | 128 × PIPES bit | giriş payload'u |
m_axis | AXI4-Stream source | 128 × PIPES bit | çıkış payload'u |
enc_dec | giriş | 1 bit | yön; veri birimi başında örneklenir |
enable | giriş | 1 bit | payload kapısı |
status | çıkış | 7 bit | durum register'ının bitleri; polling yapmak istemeyen bir denetleyici için |
irq | seviye | 1 bit | tamamlanma ve hata olayları |
Sektör üstüne sektör gönderen bir depolama denetleyicisi, aralarda hiçbir register'a yazmaz. Birimi tweak stream'inin tamamlanması başlatır, yön de bir porttan gelir; böylece AXI4-Lite arayüzü konfigürasyon sırasında kullanılır, sonra kenara bırakılır.
Bant genişliği
throughput = 128 x PIPES x f_clk bits per second
250 MHz'te PIPES = 1 32 Gbit/s, PIPES = 2 64 Gbit/s verir.
Sektör hazırlığı gizlenir. Tweak şifreleyicisi unrolled pipeline'dan yuva ödünç almak yerine kendi motorunda çalışır; bu yüzden mevcut sektör stream edilirken bir sonraki sektörün tweak'ini vermek hiçbir payload çevrimine mal olmaz.
Güvenlik özellikleri
Anahtar materyali okunamaz. Anahtarlar kendi AXI4-Stream'lerinden gelir ve hiçbir register anahtar tutmaz; anahtarı tutacak bir register olmadığı için, onun geri okunabileceği bir adres de yoktur. Bir işlemcinin bus üzerinden on altı kelime yazması yerine bir DMA motoru anahtarı veri yolu üzerinden teslim edebilir.
Bir anahtar yalnızca tamamı geldiyse devreye girer. Beklenen kelime sayısı,
yapılandırılan anahtar boyutundan ve moddan çıkar; tlast'ı başka bir yere denk gelen
bir anahtar kullanılmaz, atılır. Böylece anahtar stream'ini erken bitiren bir üretici,
yarısı yeni yarısı eski bir anahtarı sessizce yükleyemez.
Güç analizi saldırılarına karşı önlem yoktur. Maskeleme, rastgeleleştirilmiş çizelge ya da sabit güçlü yerine koyma uygulanmamıştır. 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ı | şifreleme anahtarı başına 128 ya da 256 bit |
| mod | çalışma zamanı | XTS ya da ECB |
| veri birimi uzunluğu | çalışma zamanı | herhangi bir uzunluk, ciphertext stealing ile |
| top seçimi | elaboration | eksiksiz AXI ürünü ya da yalın şifreleyici |
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. Gecikme üç uç noktası da belirtilerek yayımlanır: başlangıçtan ilk girişin kabulüne, ilk girişten ilk çıkışa ve başlangıçtan ilk çıkışa; çünkü anahtar genişletici ilk iki nokta arasında çalışı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ı, IEEE 1619 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 |