使用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签名模式(大消息处理)

  1. 获取公钥:
aws kms get-public-key --key-id <your-key-id> --output text --query PublicKey | base64 --decode > public_key.der
  1. 生成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
  1. 使用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智能小助手)
    公众号二维码
posted @ 2025-07-20 10:01  qife  阅读(44)  评论(0)    收藏  举报