使用AWS KMS和ML-DSA创建后量子签名指南
使用AWS KMS和ML-DSA创建后量子签名
随着量子计算能力的发展,AWS致力于帮助客户应对公钥密码学面临的新威胁。我们宣布将FIPS 204模块化格基数字签名标准(ML-DSA)集成到AWS密钥管理服务(KMS)中。客户现在可以通过熟悉的AWS KMS API(包括CreateKey、Sign和Verify操作)创建和使用ML-DSA密钥。此新功能已正式发布,您可以在以下AWS区域使用ML-DSA:美国西部(北加州)和欧洲(米兰),其他商业区域将在未来几天跟进。
新增功能
AWS KMS提供三种新的密钥规格:
- ML_DSA_44:相当于128位经典加密安全级别
- ML_DSA_65:相当于192位安全级别
- ML_DSA_87:相当于256位安全级别
这些密钥规格与新的签名算法ML_DSA_SHAKE_256配合使用,该算法采用NIST标准化的SHAKE256哈希函数。
密钥规格 | NIST安全等级 | 公钥大小(B) | 私钥大小(B) | 签名大小(B) |
---|---|---|---|---|
ML_DSA_44 | 1 (128位) | 1312 | 2560 | 2420 |
ML_DSA_65 | 3 (192位) | 1952 | 4032 | 3309 |
ML_DSA_87 | 5 (256位) | 2592 | 4896 | 4627 |
创建ML-DSA密钥
使用AWS CLI创建非对称KMS密钥:
aws kms create-key --key-spec ML_DSA_65 --key-usage SIGN_VERIFY
签名操作示例
RAW签名模式(消息小于4096字节)
aws kms sign \
--key-id <your-key-id> \
--message 'eyJ0eXAiOiJKV1QiLA0KICJhbGciOiJNTC1EU0EtNjUifQ...' \
--message-type RAW \
--signing-algorithm ML_DSA_SHAKE_256 \
--output text \
--query Signature | base64 --decode > ExampleSignature.bin
EXTERNAL_MU签名模式(大消息处理)
- 获取公钥:
aws kms get-public-key --key-id <your-key-id> --output text --query PublicKey | base64 --decode > public_key.der
- 生成mu摘要:
{
openssl asn1parse -inform DER -in public_key.der -strparse 17 -noout -out - 2>/dev/null |
openssl dgst -provider default -shake256 -xoflen 64 -binary;
printf '\x00\x00';
echo -n "your_message_here"
} | openssl dgst -provider default -shake256 -xoflen 64 -binary > mu.bin
- 使用KMS签名:
aws kms sign \
--key-id <your-key-id> \
--message fileb://mu.bin \
--message-type EXTERNAL_MU \
--signing-algorithm ML_DSA_SHAKE_256 \
--output text \
--query Signature | base64 --decode > ExampleSignature.bin
签名验证
使用AWS KMS验证
aws kms verify \
--key-id <your-key-id> \
--message "your_message_here" \
--message-type RAW \
--signing-algorithm ML_DSA_SHAKE_256 \
--signature fileb://ExampleSignature.bin
本地使用OpenSSL验证
echo -n "your_message_here" | \
openssl dgst -verify public_key.der -signature ExampleSignature.bin
结论
AWS KMS对ML-DSA的支持标志着我们在后量子密码学承诺中的重要里程碑。通过三种安全级别的ML-DSA和两种签名模式,您可以根据安全需求灵活选择,为量子计算时代做好准备。此功能特别适合需要:
- 满足使用后量子密码学时的FIPS 140-3合规要求
- 对需要长期保持可信验证的代码、文档等数据进行签名
- 开始将后量子密码学测试纳入应用开发流程
更多精彩内容 请关注我的个人公众号 公众号(办公AI智能小助手)
公众号二维码