Hello, I'm very happy to announce the release of VIFF version 0.4:
Tar/GZ: http://viff.dk/release/viff-0.4.tar.gz Tar/BZ2: http://viff.dk/release/viff-0.4.tar.bz2 Zip: http://viff.dk/release/viff-0.4.zip Exe: http://viff.dk/release/viff-0.4.win32.exe The viff-0.4.win32.exe is a Windows installer which contains no examples or documentation, please download viff-0.4.zip to get those. The changes since version 0.3 are: Implemented a reliable Bracha broadcast which is secure against active adversaries. Shamir sharings, pseudo-random as well as standard, can now be asymmetric which means that only a subset of the parties provide input. The open protocol is now also asymmetric, in the sense that only a subset of the parties receive the opened result. The behavior of field elements in Boolean expressions has been fixed. This means that "GF256(0) and GF256(1)" now returns GF256(0) instead of GF256(1). Added a modern implementation of the classic Yao millionaires example from 1982 which started this field of research. Details: * Bracha broadcast, which is a reliable broadcast mechanism against active adversaries, has been implemented. Secure broadcast is a building block that is often used in active security scenarios. * Asymmetric Shamir sharing. It is now possible to specify that just a subset of the players should provide input to a Shamir sharing. This change is not backwards compatible with version 0.3 or earlier. Adapting old programs is easy, simply change: a, b, c = rt.shamir_share(Zp(input)) to a, b, c = rt.shamir_share([1, 2, 3], Zp, input) where Zp is a field and rt is a Runtime. * Asymmetric pseudo-random secret sharing. As the asymmetric Shamir sharing above, this is not backwards compatible. This can be fixed by changing statements such as e.g. a, b, c = rt.prss_share(Zp(input)) to a, b, c = rt.prss_share([1, 2, 3], Zp, input) where Zp is a field and rt is a Runtime. * Asymmetric open protocol, meaning that it is now possible to specify that only a subset of the players should receive the opened secret. This change is not backwards compatible in cases, where threshold is explicitly passed as a parameter. To correct this, name the threshold parameter, e.g. change result = rt.open(sharing, rt.threshold * 2) to result = rt.open(sharing, threshold=rt.threshold * 2) * Overloaded exclusive-or operations on Share instances. Given two shares a and b, one can now do c = a ^ b to obtain the exclusive-or. This works for both GF256 shares and Zp shares, though the two types must not be mixed. -- Martin Geisler
pgptULuhRBgIk.pgp
Description: PGP signature
_______________________________________________ viff-devel mailing list (http://viff.dk/) [email protected] http://lists.viff.dk/listinfo.cgi/viff-devel-viff.dk
