diff options
author | Rik Snel <rsnel@cube.dyndns.org> | 2006-11-29 02:59:44 -0500 |
---|---|---|
committer | David S. Miller <davem@sunset.davemloft.net> | 2006-12-06 21:38:55 -0500 |
commit | c494e0705d670c51ac736c8c4d92750705fe3187 (patch) | |
tree | 9f00826afc317f976c03ef4e77284b13204c0c9d /crypto/Kconfig | |
parent | aec3694b987900de7ab789ea5749d673e0d634c4 (diff) |
[CRYPTO] lib: table driven multiplications in GF(2^128)
A lot of cypher modes need multiplications in GF(2^128). LRW, ABL, GCM...
I use functions from this library in my LRW implementation and I will
also use them in my ABL (Arbitrary Block Length, an unencumbered (correct
me if I am wrong, wide block cipher mode).
Elements of GF(2^128) must be presented as u128 *, it encourages automatic
and proper alignment.
The library contains support for two different representations of GF(2^128),
see the comment in gf128mul.h. There different levels of optimization
(memory/speed tradeoff).
The code is based on work by Dr Brian Gladman. Notable changes:
- deletion of two optimization modes
- change from u32 to u64 for faster handling on 64bit machines
- support for 'bbe' representation in addition to the, already implemented,
'lle' representation.
- move 'inline void' functions from header to 'static void' in the
source file
- update to use the linux coding style conventions
The original can be found at:
http://fp.gladman.plus.com/AES/modes.vc8.19-06-06.zip
The copyright (and GPL statement) of the original author is preserved.
Signed-off-by: Rik Snel <rsnel@cube.dyndns.org>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Diffstat (limited to 'crypto/Kconfig')
-rw-r--r-- | crypto/Kconfig | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/crypto/Kconfig b/crypto/Kconfig index 4495e46660bf..f941ffb2a087 100644 --- a/crypto/Kconfig +++ b/crypto/Kconfig | |||
@@ -139,6 +139,16 @@ config CRYPTO_TGR192 | |||
139 | See also: | 139 | See also: |
140 | <http://www.cs.technion.ac.il/~biham/Reports/Tiger/>. | 140 | <http://www.cs.technion.ac.il/~biham/Reports/Tiger/>. |
141 | 141 | ||
142 | config CRYPTO_GF128MUL | ||
143 | tristate "GF(2^128) multiplication functions (EXPERIMENTAL)" | ||
144 | depends on EXPERIMENTAL | ||
145 | help | ||
146 | Efficient table driven implementation of multiplications in the | ||
147 | field GF(2^128). This is needed by some cypher modes. This | ||
148 | option will be selected automatically if you select such a | ||
149 | cipher mode. Only select this option by hand if you expect to load | ||
150 | an external module that requires these functions. | ||
151 | |||
142 | config CRYPTO_ECB | 152 | config CRYPTO_ECB |
143 | tristate "ECB support" | 153 | tristate "ECB support" |
144 | select CRYPTO_BLKCIPHER | 154 | select CRYPTO_BLKCIPHER |