Profile Image
vishnupriya

What is JVM startup parameter: -XX:[+|-]UseAESIntrinsics?

What is JVM startup parameter: -XX:[+|-]UseAESIntrinsics? Have you used this JVM arguement before? What are the pros & cons of using this Java argument? Can you share your perspective/experience in using this JVM argument?

  • jvmargument

  • xx-useaesintrinsics

  • x-useaesintrinsics

  • JVM startup parameter

Please Sign In or to post your comment or answer

Profile Image

Pavel Khodakovsky

Usage:                                                    

 

The option “-XX:[+|-]UseAESIntrinsics” Use intrinsics for AES versions of crypto.

 

Since:

 

Starting from JDK 7.

 

Syntax:

 

java -XX:[+|-]UseAESIntrinsics MainClass

 

Examples:

  • To enable the use of hardware-based AES intrinsics: java -XX:+UseAES -XX:+UseAESIntrinsics MainClass
  • To disable the use of hardware-based AES intrinsics: java -XX:-UseAES -XX:-UseAESIntrinsics MainClass

 

Description:

 

Before introducing the flag “UseAESIntrinsics”, we should explain what is AES?

 

AES is a specification for the encryption of electronic data established based on a design principle known as a substitution–permutation network, and is efficient in both software and hardware. Unlike its predecessor DES, AES does not use a Feistel network. AES is a variant of Rijndael, with a fixed block size of 128 bits, and a key size of 128, 192, or 256 bits. By contrast, Rijndael per se is specified with block and key sizes that may be any multiple of 32 bits, with a minimum of 128 and a maximum of 256 bits.

 

AES operates on a 4 × 4 column-major order array of bytes, termed the state. Most AES calculations are done in a particular finite field.

 

While most modern hardware systems (2010 and newer) enable AES Intrinsics by default for better performance. A good example would be databases which uses SSL/TLS encryption, they take advantages of hardware acceleration intrinsic on its machine. Java introduced two parameters “UseAES” & “UseAESIntrinsics” to also take advantage of AES hardware acceleration, this flag “UseAESIntrinsics” allows you to enable/disable he use of hardware-based AES intrinsics for Intel, AMD, and SPARC hardware. The “-XX:+UseAESIntrinsics” is used in conjunction with “-XX:+UseAES”.

 

The supported hardwares are Intel Westmere (2010 and newer), AMD Bulldozer (2011 and newer), or SPARC (T4 and newer).

 

This option enables hardware-based AES intrinsics for Intel, AMD, and SPARC hardware. Intel Westmere (2010 and newer), AMD Bulldozer (2011 and newer), and SPARC (T4 and newer) are the supported hardware.

 

Default Value:

 

This option is disabled by default.

 

Errors:

 

None.

 

Arguments related:

 

UseAES.

 

Related Posts:

 

Got something else on mind? Post Your Question

Not the answer you're looking for? Browse other questions tagged
  • jvmargument

  • xx-useaesintrinsics

  • x-useaesintrinsics

  • JVM startup parameter