Home GnuPG

Add armv8/pmull accelerated POLYVAL for GCM-SIV

Description

Add armv8/pmull accelerated POLYVAL for GCM-SIV

* cipher/cipher-gcm-armv8-aarch32-ce.S
(_gcry_polyval_armv8_ce_pmull): New.
* cipher/cipher-gcm-armv8-aarch64-ce.S
(_gcry_polyval_armv8_ce_pmull): New.
* cipher/cipher-gcm.c (_gcry_polyval_armv8_ce_pmull)
(polyval_armv8_ce_pmull): New.
(setupM) [GCM_USE_ARM_PMULL]: Setup 'polyval_armv8_ce_pmull' as POLYVAL
function.

Benchmark on Cortex-A53 (aarch64):

Before:
AES | nanosecs/byte mebibytes/sec cycles/byte auto Mhz

GCM-SIV auth |      1.74 ns/B     547.6 MiB/s      2.01 c/B      1152

After (76% faster):
AES | nanosecs/byte mebibytes/sec cycles/byte auto Mhz

GCM-SIV auth |     0.990 ns/B     963.2 MiB/s      1.14 c/B      1152
  • Signed-off-by: Jussi Kivilinna <jussi.kivilinna@iki.fi>

Details

Provenance
jukiviliAuthored on Jan 5 2022, 3:46 PM
Parents
rC859b6ac7fbdb: Use 'vmov' and 'movi' for vector register clearing in ARM assembly
Branches
Unknown
Tags
Unknown