http://hg.viff.dk/viff/rev/cf4920b3ae72
changeset: 1131:cf4920b3ae72
user: Marcel Keller <[email protected]>
date: Thu Feb 05 17:03:30 2009 +0100
summary: Added the possibility to use square-and-multiply for the inversion
in AES.
diffstat:
1 file changed, 6 insertions(+), 2 deletions(-)
viff/aes.py | 8 ++++++--
diffs (32 lines):
diff -r 006bdec768e6 -r cf4920b3ae72 viff/aes.py
--- a/viff/aes.py Thu Feb 05 16:14:01 2009 +0100
+++ b/viff/aes.py Thu Feb 05 17:03:30 2009 +0100
@@ -71,7 +71,7 @@
"""
def __init__(self, runtime, key_size, block_size=128,
- use_exponentiation=False):
+ use_exponentiation=False, use_square_and_multiply=False):
"""Initialize Rijndael.
AES(runtime, key_size, block_size), whereas key size and block
@@ -87,6 +87,7 @@
self.rounds = max(self.n_k, self.n_b) + 6
self.runtime = runtime
self.use_exponentiation = use_exponentiation
+ self.use_square_and_multiply = use_square_and_multiply
# matrix for byte_sub, the last column is the translation vector
A = Matrix([[1,0,0,0,1,1,1,1, 1],
@@ -148,7 +149,10 @@
return byte_254
if (self.use_exponentiation):
- invert = invert_by_exponentiation
+ if (self.use_square_and_multiply):
+ invert = lambda byte: byte ** 254
+ else:
+ invert = invert_by_exponentiation
else:
invert = invert_by_masking
_______________________________________________
viff-commits mailing list
[email protected]
http://lists.viff.dk/listinfo.cgi/viff-commits-viff.dk