JDK-8333867 : SHA3 performance can be improved
  • Type: Enhancement
  • Component: security-libs
  • Sub-Component: java.security
  • Priority: P4
  • Status: Resolved
  • Resolution: Fixed
  • Submitted: 2024-06-10
  • Updated: 2024-12-13
  • Resolved: 2024-06-21
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 24
24 b04Fixed
Related Reports
Relates :  
Relates :  
Sub Tasks
JDK-8335183 :  
Description
The SHA3 digests currently  keep their internal state in a byte array which is converted to a long array for the state updates and back again after the update. This is unnecessary, conversion is only necessary during update() and final() calls. 
Comments
[OpenJDK 21u] This should go to JDK 23 first. Removed the label. Also, consider not bringing it into 21 as JDK 25 is around the corner.
17-10-2024

[jdk21u-fix-request] Approval Request from Dmitry Chuyko This is a clean backport of multi-platform SHA3 performance improvement. MessageDigests benchmarks show same C2 generated code speedup as for the original change. E.g. +25% on Graviton 2 on long arrays. The patch removes unnecessary conversions between byte arrays and long arrays without changing the computation algorithm, only code related to SHA3 is modified, except the single private->protected blockSize change in DigestBase. Testing: test/jdk/sun/security, tier1, tier2.
23-09-2024

A pull request was submitted for review. Branch: master URL: https://git.openjdk.org/jdk21u-dev/pull/1000 Date: 2024-09-23 12:12:17 +0000
23-09-2024

[~frakoczi] I think it would be useful to write a release note for this change highlighting the significant performance improvement.
21-06-2024

Changeset: 75bea280 Author: Ferenc Rakoczi <ferenc.r.rakoczi@oracle.com> Committer: Weijun Wang <weijun@openjdk.org> Date: 2024-06-21 14:16:23 +0000 URL: https://git.openjdk.org/jdk/commit/75bea280b9adb6dac9fefafbb3f4b212f100fbb5
21-06-2024

A pull request was submitted for review. URL: https://git.openjdk.org/jdk/pull/19632 Date: 2024-06-10 15:01:55 +0000
10-06-2024