Currently, each PrivateKey
and SecretKey
in the JCEKS keystore is encrypted with a triple triple DES in CBC mode with PKCS # 5 add-on. This has an effective cryptographic strength of 112 bits, although the key is 168 bits plus 24 parity bits for a total of 192 bits.
This key (and initialization vector) is derived from the password using a patented algorithm based on MD5. Usually, deducing an initialization vector from a key will lead to a hit of the target, but each record also has a unique salt for outputting keys. This means that the derived key and initialization vector are unique for each record.
You can study the use of encryption and the cipher itself in the source code.
source share