http://hg.viff.dk/viff/rev/64052822e204
changeset: 1074:64052822e204
user: Marcel Keller <[email protected]>
date: Sun Jan 11 13:55:47 2009 +0100
summary: Repeat random sharing in byte_sub if masked byte is zero.
diffstat:
1 file changed, 14 insertions(+), 4 deletions(-)
viff/aes.py | 18 ++++++++++++++----
diffs (28 lines):
diff -r 936ce049980f -r 64052822e204 viff/aes.py
--- a/viff/aes.py Fri Jan 09 15:29:40 2009 +0100
+++ b/viff/aes.py Sun Jan 11 13:55:47 2009 +0100
@@ -89,10 +89,20 @@
# b == 1 if byte is 0, b == 0 else
b = bits[0]
- r = self.runtime.prss_share_random(GF256)
- c = self.runtime.open((byte + b) * r)
-
- c.addCallback(lambda c: ~c)
+ r = Share(self.runtime, GF256)
+ c = Share(self.runtime, GF256)
+
+ def get_masked_byte(c_opened, r_related, c, r, byte):
+ if (c_opened == 0):
+ r_trial = self.runtime.prss_share_random(GF256)
+ c_trial = self.runtime.open((byte + b) * r_trial)
+ c_trial.addCallback(get_masked_byte, r_trial,
+ c, r, byte)
+ else:
+ r_related.addCallback(r.callback)
+ c.callback(~c_opened)
+
+ get_masked_byte(0, None, c, r, byte)
inverted_byte = c * r - b
bits = bit_decompose(inverted_byte)
_______________________________________________
viff-commits mailing list
[email protected]
http://lists.viff.dk/listinfo.cgi/viff-commits-viff.dk