モジュール格子ベースの電子署名アルゴリズム(ML-DSA)とは、量子コンピュータの脅威を防ぐ格子ベースの署名です。CRYSTALS(Cryptographic Suite for Algebraic Lattices)ファミリーの耐量子コンピュータ暗号(PQC)アルゴリズムです。選択メッセージ攻撃に対する防御に特に適しています。ML-DSA は、開発およびテストの過程では「CRYSTALS-Dilithium」という名称でした。Dilithium は、2024 年に NIST 標準として承認されたのち「ML-DSA」と名称が変更されました。
ML-DSA は、RSA ベースや ECC ベースの電子署名に代わる汎用の電子署名方式と考えられています。パフォーマンスは現時点でも既存の方式と同等であり、今後さらに向上する見込みです。ただし、量子脆弱性のある方式に比べると、署名と公開鍵のサイズがかなり大きくなってしまうため、リソース上の問題が生じる可能性があり、その点はシステムの設計および導入時に考慮する必要があります。

ML-DSA には、3 つのパラメータセットがあります。
このセットごとに、対応するセキュリティレベルがあります。セキュリティレベルと、それに相当する RSA 方式は次の表のとおりです。
Dilithium は、その基盤として Lyubashevsky システムを利用しています。ML-DSA を使うときに考慮する最も重要な観点は、サイズが増大してもシームレスにプロトコルと連携するかどうかです。以下の表に、ML-DSA のサイズと、RSA および ECC で対応するサイズとの比較を示しました。比較対象としては、RSA 2048 と Ed25519 を選びました。証明書で最も広く利用されている RSA および ECC 署名方式だからです。
他の PQC 署名スキームとは違い、最新バージョンの Dilithium は SHAKE ではなく AES-256 を使用します。そのため行列とベクトル生成が拡張されます。AES-256 は、秘密の多項式のサンプリングにも利用されます。
Dilithium には以下の種類があります。

Dilithium2-AES

Dilithium3-AES

Dilithium5-AES
Dilithium の考案者は Dilithium 3-AES を推奨しています。従来の攻撃と量子コンピュータ攻撃のどちらに対しても、128 ビット以上のセキュリティを達成できるからです。