Standardy ML-KEM a ML-DSA umožňují ukládat soukromý klíč dvěma způsoby. Existuje malé semeno, 64 bajtů pro ML-KEM a 32 bajtů pro ML-DSA, a existuje větší rozšířená forma, která je odvozena z tohoto semene pomocí hashovací funkce(ů). Obě varianty jsou matematicky ekvivalentní a můžete kdykoli přejít ze semene do rozšířené formy, ale zpět se už nevrátíte. Pokud vybíráte, co uložit jako soukromý klíč, uložte semeno. Je to skutečné tajemství, ze kterého vychází vše ostatní. Můžete ji kdykoli rozbalit do plného klíče a zabere to asi 40 mikrosekund, takže není důvod ukládat rozšířenou verzi na disk. Pokud ho potřebujete v paměti pro opakované operace, stačí jednou rozbalit při načítání. Seed jsou jen náhodné bajty, takže jakákoli hodnota je platný klíč. Rozšířená forma má strukturu; koeficienty, které musí být v rozsahu, vložený veřejný klíč, hash, který musí odpovídat, a standard vyžaduje, abyste to všechno zkontrolovali při importu. To je mnohem větší prostor pro problémy, než které se u semene nevyskytuje. V IETF také probíhá problém se serializací, kde současný kompromitační formát umožňuje, aby jak seed, tak rozšířený klíč seděly ve stejné datové struktuře. To znamená, že dvě odpovídající implementace mohou číst různá pole ze stejného klíče a nakonec získat odlišný klíčový obsah, což není něco, co byste od formátu klíče chtěli. Stručně; DR: uložte semena a rozšiřujte ho podle potřeby. Celý text níže.