Kriptografi pasca-kuantum memasuki penerapan. ICICLE by @Ingo_zk sekarang mendukung ML-KEM (Kyber) dengan set parameter penuh, batching, dan operasi asinkron. Mari kita bongkar yang ini! 👇
@Ingo_zk ML-KEM (Module-Lattice Key Encapsulation Mechanism) adalah varian Kyber standar di bawah FIPS 203, yang dirancang untuk kriptografi pasca-kuantum. NIST menyetujui tiga level: Kyber512 (Level 1), Kyber768 (Level 3), dan Kyber1024 (Level 5).
@Ingo_zk ICICLE v3.9.0 mengimplementasikan ML-KEM di C++ dengan dukungan penuh untuk ketiga set parameter. Operasi kunci—pembuatan kunci, enkapsulasi, dekapsulasi—dibuat dalam templat melalui Kyber{512,768,1024}Params.
@Ingo_zk Ukuran byte per set param: - Kyber512: PK=800B, SK=1632B, CT=768B - Kyber768: PK=1184B, SK=2400B, CT=1088B - Kyber1024: PK=1568B, SK=3168B, CT=1568B
@Ingo_zk Struct MlKemConfig mendukung operasi asinkron, petunjuk residensi perangkat (misalnya public_keys_on_device), dan batching (batch_size). Penyetelan kait melalui ConfigExtension* ext tersedia untuk pengoptimalan khusus backend.
@Ingo_zk tanda tangan API: - keygen(entropi, konfigurasi, public_keys, secret_keys) - enkapsulasi(pesan, public_keys, konfigurasi, ciphertexts, shared_secrets) - dekapsulasi(secret_keys, teks sandi, konfigurasi, shared_secrets)
@Ingo_zk Batching memungkinkan paralelisme dalam pertukaran kunci—penting untuk aplikasi yang dapat diskalakan seperti pesan aman dan VPN PQ. Bendera sisi perangkat mengisyaratkan runtime ICICLE tentang lokasi memori yang sudah ada sebelumnya untuk meminimalkan transfer.
@Ingo_zk ICICLE menyertakan contoh penggunaan untuk Kyber768: alokasi, generasi entropi, pembuatan pasangan kunci, enkapsulasi, dan dekapelasi. Polanya terstruktur dan konsisten di seluruh kumpulan parameter.
@Ingo_zk Implementasi ini sejalan dengan spesifikasi akhir NIST FIPS 203 (Juni 2025). Ini disesuaikan untuk integrasi dalam aplikasi C++ sadar PQC, terutama yang memanfaatkan akselerasi perangkat keras.
1,78K