ML-KEM(Module Lattice Key Encapsulation Mechanism)は安全な鍵交換を行うアルゴリズムです。ML-KEM により、二者が安全でないチャネル上で共有秘密鍵を確立することが可能になります。
ML-DSA(Module Lattice Digital Signature Algorithm)は認証を行うアルゴリズムです。ML-DSA により、署名者がデジタル署名を生成し、他者がそれを検証できるようになり、メッセージの真正性と完全性を保証します。
ML-KEM と ML-DSA はどちらも公開鍵アルゴリズムです。つまり、どちらも公開鍵と秘密鍵を生成する鍵生成操作を含んでいます。
ML-KEM では、まず公開鍵を使用して秘密と暗号文を生成するカプセル化を行います。そして暗号文と秘密鍵を使用してデカプセル化を行い、共有秘密を生成します。
ML-DSA では、メッセージに秘密鍵を使用して署名を生成します。そして公開鍵、メッセージ、署名の3つを使用して、署名が対応する秘密鍵によって生成されたことを検証します。
両者の最も重要な共通点は、どちらも NIST によってすでに標準化されており、現在使用できる耐量子アルゴリズムであることです。
要約すると、ML-KEM と ML-DSA は暗号領域において異なる目的を果たします。ML-KEM は安全な鍵転送に焦点を当て、ML-DSA はデジタル署名と認証に焦点を当てています。どちらもNISTによる標準化が行われた、量子耐性を有するアルゴリズムです。
wolfSSL/wolfCryptはML-KEM/ML-DSAの両方に対応しています。
ML-KEMとHQC KEMの違いについてはこちらをご参照ください。
ご質問がございましたら、ぜひ info@wolfssl.jp までお問い合わせください。