aboutsummaryrefslogtreecommitdiffstats
path: root/crypto
diff options
context:
space:
mode:
authorJussi Kivilinna <jussi.kivilinna@mbnet.fi>2011-11-09 09:26:31 -0500
committerHerbert Xu <herbert@gondor.apana.org.au>2011-11-21 03:13:23 -0500
commit251496dbfc1be38bc43b49651f3d33c02faccc47 (patch)
treee17a6704b90b94d0da126eba603fe20cb7ca822c /crypto
parent937c30d7f560210b0163035edd42b2aef78fed9e (diff)
crypto: serpent - add 4-way parallel i586/SSE2 assembler implementation
Patch adds i586/SSE2 assembler implementation of serpent cipher. Assembler functions crypt data in four block chunks. Patch has been tested with tcrypt and automated filesystem tests. Tcrypt benchmarks results (serpent-sse2/serpent_generic speed ratios): Intel Atom N270: size ecb-enc ecb-dec cbc-enc cbc-dec ctr-enc ctr-dec 16 0.95x 1.12x 1.02x 1.07x 0.97x 0.98x 64 1.73x 1.82x 1.08x 1.82x 1.72x 1.73x 256 2.08x 2.00x 1.04x 2.07x 1.99x 2.01x 1024 2.28x 2.18x 1.05x 2.23x 2.17x 2.20x 8192 2.28x 2.13x 1.05x 2.23x 2.18x 2.20x Full output: http://koti.mbnet.fi/axh/kernel/crypto/atom-n270/serpent-generic.txt http://koti.mbnet.fi/axh/kernel/crypto/atom-n270/serpent-sse2.txt Userspace test results: Encryption/decryption of sse2-i586 vs generic on Intel Atom N270: encrypt: 2.35x decrypt: 2.54x Encryption/decryption of sse2-i586 vs generic on AMD Phenom II: encrypt: 1.82x decrypt: 2.51x Encryption/decryption of sse2-i586 vs generic on Intel Xeon E7330: encrypt: 2.99x decrypt: 3.48x Signed-off-by: Jussi Kivilinna <jussi.kivilinna@mbnet.fi> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Diffstat (limited to 'crypto')
-rw-r--r--crypto/Kconfig17
1 files changed, 17 insertions, 0 deletions
diff --git a/crypto/Kconfig b/crypto/Kconfig
index 2df61e458f06..16e0c1304c3a 100644
--- a/crypto/Kconfig
+++ b/crypto/Kconfig
@@ -783,6 +783,23 @@ config CRYPTO_SERPENT_SSE2_X86_64
783 See also: 783 See also:
784 <http://www.cl.cam.ac.uk/~rja14/serpent.html> 784 <http://www.cl.cam.ac.uk/~rja14/serpent.html>
785 785
786config CRYPTO_SERPENT_SSE2_586
787 tristate "Serpent cipher algorithm (i586/SSE2)"
788 depends on X86 && !64BIT
789 select CRYPTO_ALGAPI
790 select CRYPTO_SERPENT
791 help
792 Serpent cipher algorithm, by Anderson, Biham & Knudsen.
793
794 Keys are allowed to be from 0 to 256 bits in length, in steps
795 of 8 bits.
796
797 This module provides Serpent cipher algorithm that processes four
798 blocks parallel using SSE2 instruction set.
799
800 See also:
801 <http://www.cl.cam.ac.uk/~rja14/serpent.html>
802
786config CRYPTO_TEA 803config CRYPTO_TEA
787 tristate "TEA, XTEA and XETA cipher algorithms" 804 tristate "TEA, XTEA and XETA cipher algorithms"
788 select CRYPTO_ALGAPI 805 select CRYPTO_ALGAPI