具有 1024 位密钥的证书执行 SHA2 签名

Certificate with 1024 bit key performing a SHA2 signing

我当前的设置是我有一个带有 1024 位 RSA 密钥的中间 CA。 我将利用这个中间 CA 在我的企业中签署客户端证书,我希望为这些证书提供 SHA2 RSA 签名。 一位同事建议使用 1024 位私钥执行 SHA2 RSA 签名是不可能的。 但是我似乎无法在网上找到与此相关的任何文档。 这可能吗?

1024 位 RSA 可以使用 PKCS#1v1.5 填充和 PSS 填充进行 SHA-256 签名。

PSS 填充需要 2 * hashSize + 2 字节或 2 * hashSize + 16 位。因此,对于 SHA-256 签名(256 位输出),最小 RSA 密钥大小为 512+16 => 528 位。

PKCS#1 v1.5 签名填充至少需要 tLen + 11 字节,其中 tLen 是散列大小(以字节为单位)加上根据算法不同的固定开销(tLenT 的长度,包含散列的 DER 编码 DigestInfo)。对于 SHA-256 tLen 是 51,所以最小密钥大小是 (51 + 11) * 8 => (62 * 8) => 496 位。

安全注意事项:

496 位和 528 位在 2019 年都被认为非常低。

1024 位也被认为处于规模的低端(它提供大约 80 位的安全性)。

NIST SP 800-57 Part 3 推荐使用 RSA-2048 进行 CA 操作。