Standar ML-KEM dan ML-DSA keduanya memungkinkan Anda menyimpan kunci pribadi dengan dua cara. Ada benih kecil, 64 byte untuk ML-KEM dan 32 byte untuk ML-DSA, dan ada bentuk yang diperluas yang lebih besar yang berasal dari benih itu melalui fungsi hash. Keduanya secara matematis setara dan Anda dapat beralih dari benih ke bentuk yang diperluas kapan pun Anda mau, tetapi Anda tidak dapat kembali. Jika Anda memilih antara apa yang akan disimpan sebagai kunci pribadi, simpan benihnya. Ini adalah rahasia sebenarnya dari mana segala sesuatu yang lain berasal. Anda dapat memperluasnya ke kunci penuh kapan pun Anda membutuhkannya, dan dibutuhkan sekitar 40 mikrodetik, jadi tidak ada alasan nyata untuk menyimpan versi yang diperluas di disk. Jika Anda membutuhkannya di memori untuk operasi berulang, cukup perluas sekali pada waktu muat. Benih hanya byte acak sehingga nilai apa pun adalah kunci yang valid. Bentuk yang diperluas memiliki struktur; koefisien yang harus berada dalam jangkauan, kunci publik yang disematkan, hash yang harus cocok, dan standar mengharuskan Anda untuk memeriksa semua itu saat impor. Itu jauh lebih banyak permukaan untuk hal-hal yang salah yang tidak Anda miliki dengan benih. Ada juga masalah serialisasi yang sedang berlangsung di IETF di mana format kompromi saat ini memungkinkan benih dan kunci yang diperluas untuk berada dalam struktur data yang sama. Itu berarti dua implementasi yang sesuai dapat membaca bidang yang berbeda dari kunci yang sama dan berakhir dengan materi kunci yang berbeda, yang bukan hal yang Anda inginkan dari format kunci. TL; DR: simpan benih dan perluas saat digunakan sesuai kebutuhan. Tulis lengkap di bawah ini.