/rev/444954db1fc9
changeset: 1328:444954db1fc9
user:      Marcel Keller <[email protected]>
date:      Fri Oct 23 14:59:34 2009 +0200
summary:   aes: Masked exponentiation without preprocessing works again.

diffstat:

 viff/aes.py |  12 +++++++-----
 1 files changed, 7 insertions(+), 5 deletions(-)

diffs (30 lines):

diff -r 75fbb52aea09 -r 444954db1fc9 viff/aes.py
--- a/viff/aes.py       Fri Oct 23 14:56:38 2009 +0200
+++ b/viff/aes.py       Fri Oct 23 14:59:34 2009 +0200
@@ -155,19 +155,21 @@
         return result
 
     def invert_by_masked_exponentiation(self, byte):
-        def add_and_multiply(masked_powers, random_powers):
-            byte_powers = [Share(self.runtime, GF256, value) for value in
-                           map(operator.add, masked_powers, random_powers)[1:]]
+        def add_and_multiply(masked_powers, random_powers, prep):
+            byte_powers = map(operator.add, masked_powers, random_powers)[1:]
+            if prep:
+                byte_powers = [Share(self.runtime, GF256, value)
+                               for value in byte_powers]
             while len(byte_powers) > 1:
                 byte_powers.append(byte_powers.pop(0) * byte_powers.pop(0))
             return byte_powers[0]
 
-        random_powers = self.runtime.prss_powerchain()
+        random_powers, prep = self.runtime.prss_powerchain()
         masked_byte = self.runtime.open(byte + random_powers[0])
         masked_powers = self.runtime.schedule_callback(masked_byte,
             lambda masked_byte: self.runtime.powerchain(masked_byte, 7))
         return self.runtime.schedule_callback(
-            masked_powers, add_and_multiply, random_powers)
+            masked_powers, add_and_multiply, random_powers, prep)
 
     def invert_by_exponentiation(self, byte):
         byte_2 = byte * byte
_______________________________________________
viff-commits mailing list
[email protected]
http://lists.viff.dk/listinfo.cgi/viff-commits-viff.dk

Reply via email to