Skip to content

crypto: improve performance of XTS cipher mode

Daniel P. Berrangé qemu-devel 3 versions – In review

Get series with b4
b4 am [email protected]

Versions newest first · linked by author and title

  1. v3 Latest8 patches 1 replyIn review
  2. v28 patches 8 repliesSuperseded
  3. v16 patches 20 repliesSuperseded

Changes in v3 from the cover letter

- Swap order of byteswapping calls in xts_mult_x
- Clarify arithmetic ops in xts_mult_x
- Do in-place encryption in some xts_tweak_encdec calls

Patches in v3 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/8crypto: expand algorithm coverage for cipher benchmarktests/benchmark-crypto-cipher.c+126 -230 replies
2/8crypto: remove code duplication in tweak encrypt/decryptcrypto/xts.c+15 -490 replies
3/8crypto: introduce a xts_uint128 data typecrypto/xts.c+26 -200 replies
4/8crypto: convert xts_tweak_encdec to use xts_uint128 typecrypto/xts.c+58 -261 reply
5/8crypto: convert xts_mult_x to use xts_uint128 typecrypto/xts.c+28 -120 replies
6/8crypto: annotate xts_tweak_encdec as inlineablecrypto/xts.c+5 -50 replies
7/8crypto: refactor XTS cipher mode test suitetests/test-crypto-xts.c+80 -600 replies
8/8crypto: add testing for unaligned buffers with XTS cipher modetests/test-crypto-xts.c+86 -00 replies

Reviews trailers per patch

All 8 patches have a Reviewed-by or Acked-by.

PatchMarc-André LureauAlberto Garcia
1/8R-b R-b
2/8R-b R-b
3/8R-b
4/8R-b
5/8R-b
6/8R-b
7/8R-b
8/8R-b

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes.

Read the v3 thread

Cover letter [Qemu-devel] [PATCH v3 0/8] crypto: improve performance of XTS cipher mode

v1: https://lists.gnu.org/archive/html/qemu-devel/2018-10/msg01601.html
v2: https://lists.gnu.org/archive/html/qemu-devel/2018-10/msg03159.html

The XTS cipher mode is significantly slower than CBC mode. This series approximately doubles the XTS performance which will improve the I/O rate for LUKS disks.

Changed in v3:

- Swap order of byteswapping calls in xts_mult_x
- Clarify arithmetic ops in xts_mult_x
- Do in-place encryption in some xts_tweak_encdec calls

Changed in v2:

- Use union for xts_uint128 to allow bytewise access without casts
- Use byteswapping for endian correct bit gf128 shifting
- Optimize for aligned buffers, with fallback for unaligned buffers
- Add tests for unaligned buffer usage

Daniel P. Berrangé (8):
crypto: expand algorithm coverage for cipher benchmark
crypto: remove code duplication in tweak encrypt/decrypt
crypto: introduce a xts_uint128 data type
crypto: convert xts_tweak_encdec to use xts_uint128 type
crypto: convert xts_mult_x to use xts_uint128 type
crypto: annotate xts_tweak_encdec as inlineable
crypto: refactor XTS cipher mode test suite
crypto: add testing for unaligned buffers with XTS cipher mode

 crypto/xts.c                    | 200 +++++++++++++++-------------
 tests/benchmark-crypto-cipher.c | 149 +++++++++++++++++----
 tests/test-crypto-xts.c         | 226 +++++++++++++++++++++++---------
 3 files changed, 402 insertions(+), 173 deletions(-)
Signature · 1 line
2.17.2