Movatterモバイル変換


[0]ホーム

URL:


JEP 164: Leverage CPU Instructions for AES Cryptography

OwnerVladimir Kozlov
TypeFeature
ScopeImplementation
StatusClosed / Delivered
Release8
Discussionhotspot dash compiler dash dev at openjdk dot java dot net
EffortXS
DurationXS
Reviewed byMikael Vidstedt
Endorsed byMikael Vidstedt
Created2012/08/22 20:00
Updated2017/06/15 18:21
Issue8046154

Summary

Improve the out-of-box AES Crypto performance by using x86 AESinstructions when available, and by avoiding unnecessary re-expansion ofthe AES key.

Motivation

AES encryption is common in applications and such applications expectgood performance. We should make it easy to get that good performanceout of the box for processors that support AES instructions in hardware.

Description

The intent of this change is to improve the out-of-the-box performance ofapplications that use AES cryptography. The hotspot compiler change(7184394) and the security library change (7185471) are actuallycompletely independent except for the fact that they are both related toAES performance.

The hotspot compiler AES instruction generation happens automatically ifthe x86 processor supports such instructions (there is a flag to turnthis off if desired). These instructions can be generated on either64-bit or 32-bit x86 systems. Other CPU types are not affected.

The library change helps applications which use the same key butre-initialize the Cipher object, switching between encrypting anddecrypting. Avoiding re-expansion of the key (7185471) changes onlyprivate variables within thecom.sun.crypto.provider.AESCrypt class.No other classes are affected.

Testing

This change can be tested by standard benchmarks and application servertest suites, either on systems that support x86 AES instructions or onsystems that do not support x86 AES instructions to ensure there are nounintended side effects.

Impact

OpenJDK logo
Installing
Contributing
Sponsoring
Developers' Guide
Vulnerabilities
JDK GA/EA Builds
Mailing lists
Wiki ·IRC
Mastodon
Bluesky
Bylaws ·Census
Legal
Workshop
JEP Process
Source code
GitHub
Mercurial
Tools
Git
jtreg harness
Groups
(overview)
Adoption
Build
Client Libraries
Compatibility & Specification Review
Compiler
Conformance
Core Libraries
Governing Board
HotSpot
IDE Tooling & Support
Internationalization
JMX
Members
Networking
Porters
Quality
Security
Serviceability
Vulnerability
Web
Projects
(overview,archive)
Amber
Babylon
CRaC
Code Tools
Coin
Common VM Interface
Developers' Guide
Device I/O
Duke
Galahad
Graal
IcedTea
JDK 8 Updates
JDK 9
JDK (…,24,25,26)
JDK Updates
JMC
Jigsaw
Kona
Lanai
Leyden
Lilliput
Locale Enhancement
Loom
Memory Model Update
Metropolis
Multi-Language VM
Nashorn
New I/O
OpenJFX
Panama
Penrose
Port: AArch32
Port: AArch64
Port: BSD
Port: Haiku
Port: Mac OS X
Port: MIPS
Port: Mobile
Port: PowerPC/AIX
Port: RISC-V
Port: s390x
SCTP
Shenandoah
Skara
Sumatra
Tsan
Valhalla
Verona
VisualVM
Wakefield
Zero
ZGC
Oracle logo
© 2025 Oracle Corporation and/or its affiliates
Terms of Use · License:GPLv2 ·Privacy ·Trademarks

[8]ページ先頭

©2009-2025 Movatter.jp