具有 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
是散列大小(以字节为单位)加上根据算法不同的固定开销(tLen
是 T
的长度,包含散列的 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 操作。
我当前的设置是我有一个带有 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
是散列大小(以字节为单位)加上根据算法不同的固定开销(tLen
是 T
的长度,包含散列的 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 操作。