[openssl-dev] [openssl.org #3850] [PATCH] Improved performance Multi Block CBC-SHA1 and CBC-SHA256

Gueron, Shay via RT rt at openssl.org
Thu May 14 11:17:25 UTC 2015


Hello all,

This patch is a contribution to OpenSSL.

It concerns the Multi Block (MB) CBC SHA1/SHA256 implementations
(the function "tls1_1_multi_block_encrypt" in "e_aes_cbc_hmac_sha1.c"
and "e_aes_cbc_hmac_sha256.c").

The patch addresses a slow derivation of the multiple random IV's for the CBC encryption
(~12,000 Cycles on architecture Codename Haswell (HSW),
11,500 Cycles on architecture Codename Broadwell (BDW) ).
This multiple IV's derivation impacts the performance gains from the parallelized encryption (and hashing).

The new code extracts (only) 16 bytes with a Rand-bytes invocation, which are used as an auxiliary key,
and then generates the required number of pseudorandom IV's by applying the decryption primitive.

The effect is speedup on multi-block aes-128-cbc-hmac-sha*, and it is more pronounced for the shorter buffers
(8192 bytes is the shortest length reported by openssl speed utility).

Results: speedup (patch over current) for 8192 bytes size block

                CBC-SHA1            CBC-SHA256
HSW:      1.59x                    1.36x
BDW:      1.53x                    1.33x


Developers and authors:
***************************************************************************
Shay Gueron (1, 2), Regev Shemy (2), Tal Uliel (2)
(1) University of Haifa, Israel
(2) Intel Corporation, Israel Development Center, Haifa, Israel
***************************************************************************



---------------------------------------------------------------------
Intel Israel (74) Limited

This e-mail and any attachments may contain confidential material for
the sole use of the intended recipient(s). Any review or distribution
by others is strictly prohibited. If you are not the intended
recipient, please contact the sender and delete all copies.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: MB_IV_Patch_V01.patch
Type: application/octet-stream
Size: 14423 bytes
Desc: not available
URL: <http://mta.openssl.org/pipermail/openssl-dev/attachments/20150514/a286d113/attachment-0001.obj>


More information about the openssl-dev mailing list