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

Attachment: pgptULuhRBgIk.pgp
Description: PGP signature

_______________________________________________
viff-devel mailing list (http://viff.dk/)
[email protected]
http://lists.viff.dk/listinfo.cgi/viff-devel-viff.dk

Reply via email to