Home GnuPG

cipher/gost28147: optimization: use precomputed S-box tables
51501b638546Unpublished

Unpublished Commit · Learn More

Not On Permanent Ref: This commit is not an ancestor of any permanent ref.

Description

cipher/gost28147: optimization: use precomputed S-box tables

* cipher/gost.h (GOST28147_context): Remove unneeded subst and
subst_set members.
* cipher/gost28147.c (max): Remove unneeded macro.
(test_sbox): Replace with new precomputed tables.
(gost_set_subst): Remove function.
(gost_val): Use new S-box tables.
(gost_encrypt_block, gost_decrypt_block): Tweak to use new ctx and
S-box tables.

Use generated 8->8 S-boxes with precomputed bitwise shifts and
bitwise rotations. So in the round function gost_val() we no need
to do this operations.

Before this patch:

GOST28147 | nanosecs/byte mebibytes/sec cycles/byte

ECB enc |     24.00 ns/B     39.74 MiB/s         - c/B
ECB dec |     26.41 ns/B     36.11 MiB/s         - c/B
CBC enc |     24.57 ns/B     38.81 MiB/s         - c/B
CBC dec |     26.58 ns/B     35.88 MiB/s         - c/B
CFB enc |     24.79 ns/B     38.46 MiB/s         - c/B
CFB dec |     24.72 ns/B     38.57 MiB/s         - c/B
OFB enc |     24.38 ns/B     39.12 MiB/s         - c/B
OFB dec |     24.35 ns/B     39.16 MiB/s         - c/B
CTR enc |     24.83 ns/B     38.41 MiB/s         - c/B
CTR dec |     25.27 ns/B     37.73 MiB/s         - c/B

After:

GOST28147 | nanosecs/byte mebibytes/sec cycles/byte

ECB enc |     16.29 ns/B     58.55 MiB/s         - c/B
ECB dec |     16.30 ns/B     58.50 MiB/s         - c/B
CBC enc |     16.94 ns/B     56.29 MiB/s         - c/B
CBC dec |     16.81 ns/B     56.72 MiB/s         - c/B
CFB enc |     17.13 ns/B     55.66 MiB/s         - c/B
CFB dec |     16.84 ns/B     56.63 MiB/s         - c/B
OFB enc |     16.69 ns/B     57.13 MiB/s         - c/B
OFB dec |     16.71 ns/B     57.08 MiB/s         - c/B
CTR enc |     17.01 ns/B     56.06 MiB/s         - c/B
CTR dec |     17.05 ns/B     55.93 MiB/s         - c/B
  • Signed-off-by: Sergey V <sftp.mtuci@gmail.com>

Details

Provenance
Sergey V <sftp.mtuci@gmail.com>Authored on Nov 9 2013, 5:10 PM
wernerCommitted on Nov 9 2013, 9:17 PM
Parents
rC60ed0abbbc7c: Fix tail handling for AES-NI counter mode
Branches
Unknown
Tags
Unknown

Event Timeline

Werner Koch <wk@gnupg.org> committed rC51501b638546: cipher/gost28147: optimization: use precomputed S-box tables (authored by Sergey V <sftp.mtuci@gmail.com>).Nov 9 2013, 9:17 PM