RFR: 8267319: Use larger default key sizes and algorithms based on CNSA

Anthony Scarpino ascarpino at openjdk.java.net
Wed Mar 2 04:06:00 UTC 2022


On Wed, 2 Mar 2022 00:13:41 GMT, Valerie Peng <valeriep at openjdk.org> wrote:

> It's been several years since we increased the default key sizes. Before shifting to PQC, NSA replaced its Suite B cryptography recommendations with the Commercial National Security Algorithm Suite which suggests:
> 
> - SHA-384 for secure hashing
> - AES-256 for symmetric encryption
> - RSA with 3072 bit keys for digital signatures and for key exchange
> - Diffie Hellman (DH) with 3072 bit keys for key exchange
> - Elliptic curve [P-384] for key exchange (ECDH) and for digital signatures (ECDSA)
> 
> So, this proposed changes made the suggested key size and algorithm changes. The changes are mostly in keytool, jarsigner and their regression tests, so @wangweij Could you please take a look?
> 
> Thanks!

I have some compatibility concerns about the AES change breaking code that expects a SecretKeySpec of 16 bytes. I can see situations where '.getEncoded()' returns a byte[32] when user code expects a byte[16]. Also, I'm pretty sure passing a 32 byte SecretKeySpec into an AES_128_GCM op will throw an exception.  I haven't looked at other modes.

-------------

PR: https://git.openjdk.java.net/jdk/pull/7652



More information about the security-dev mailing list