Age | Commit message (Collapse) | Author | Files | Lines |
|
* cipher/gost28147.c (_gcry_gost_enc_data): New.
* cipher/gostr3411-94.c: Rewrite implementation to use u32 mathematic
internally.
* cipher/gost28147.c (_gcry_gost_enc_one): Remove.
--
On my box (Core2 Duo, i386) this highly improves GOST R 34.11-94 speed.
Before:
GOSTR3411_94 | 55.04 ns/B 17.33 MiB/s - c/B
After:
GOSTR3411_94 | 36.70 ns/B 25.99 MiB/s - c/B
Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
|
|
* src/gcrypt.h.in (GCRY_MD_GOSTR3411_CP): New.
* src/cipher.h (_gcry_digest_spec_gost3411_cp): New.
* cipher/gost28147.c (_gcry_gost_enc_one): Differentiate between
CryptoPro and Test S-Boxes.
* cipher/gostr3411-94.c (_gcry_digest_spec_gost3411_cp,
gost3411_cp_init): New.
* cipher/md.c (md_open): GCRY_MD_GOSTR3411_CP also uses B=32.
--
RFC4357 defines only two S-Boxes that should be used together with
GOST R 34.11-94 - a testing one (from standard itself, for testing only)
and CryptoPro one. Instead of adding a separate gcry_md_ctrl() function
just to switch s-boxes, add a separate MD algorithm using CryptoPro
S-box.
Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
|
|
* cipher/gost-s-box.c: New. Outputs optimized expanded representation of
s-boxes (4x256) from compact 16x8 representation.
* cipher/Makefile.am: Add gost-sb.h dependency to gost28147.lo
* cipher/gost.h: Add sbox to the GOST28147_context structure.
* cipher/gost28147.c (gost_setkey): Set default s-box to test s-box from
GOST R 34.11 (this was the only one S-box before).
* cipher/gost28147.c (gost_val): Use sbox from the context.
Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
|
|
* 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>
|
|
* cipher/gost.h (_gcry_gost_enc_one): Change return type to
'unsigned int'.
* cipher/gost28147.c (max): New macro.
(gost_encrypt_block, gost_decrypt_block): Return burn stack depth.
(_gcry_gost_enc_one): Return burn stack depth from gost_encrypt_block.
--
Return type for block cipher functions was lately changed from 'void' to
'unsigned int' to pass burn stack depth to cipher mode code. Patch fixes
gost28147 to return stack burn value.
Signed-off-by: Jussi Kivilinna <jussi.kivilinna@iki.fi>
|
|
* src/gcrypt.h.in (GCRY_CIPHER_GOST28147): New.
* cipher/gost.h, cipher/gost28147.c: New.
* configure.ac (available_ciphers): Add gost28147.
* src/cipher.h: Add gost28147 definitions.
* cipher/cipher.c: Register gost28147.
* tests/basic.c (check_ciphers): Enable simple test for gost28147.
* doc/gcrypt.texi: document GCRY_CIPHER_GOST28147.
--
Add a very basic implementation of GOST 28147-89 cipher: from modes
defined in standard only ECB and CFB are supported, sbox is limited
to the "test variant" as provided in GOST 34.11-94.
Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
|
|
|
|
|
|
|
|
|
|
|