Thomas P Jakobsen
2010-08-12 10:04:01 UTC
Hi all,
As you may or may not know, running the same VIFF program more than
once using the same set of player configuration files is insecure when
the runtime relies on pseudo-random secret sharing. This is the case
for e.g. the PassiveRuntime.
This is not a bug, but rather a consequence of the way in which we use
pseudo-random secret sharing. In order to maintain security, a new set
of player configuration files has to be generated for each run.
In some practical settings this turns out to be inconvenient. So we
recently added a changeset (1538:9d4f9551644c) that fixes this. It
means that one no longer has to use fresh configuration files for each
run. Instead, there's now a command line option called computation-id,
e.g.
python my_viff_program.py --computation-id=42 player-1.ini
When using runtimes based on pseudo-random secret sharing, like
PassiveRuntime, one can then safely reuse the configuration files as
long as the computation ids are unique. That is, for each run with a
given set of configuration files, the players should agree on a
computation id that has not been used before for that set of
configuration files.
A consequence of this is that the length of all program counters are
increased by one. This means that the data that needs to be sent
across the network increases a bit, but we expect it to have only
negligible impact on performance.
Regards,
Thomas
As you may or may not know, running the same VIFF program more than
once using the same set of player configuration files is insecure when
the runtime relies on pseudo-random secret sharing. This is the case
for e.g. the PassiveRuntime.
This is not a bug, but rather a consequence of the way in which we use
pseudo-random secret sharing. In order to maintain security, a new set
of player configuration files has to be generated for each run.
In some practical settings this turns out to be inconvenient. So we
recently added a changeset (1538:9d4f9551644c) that fixes this. It
means that one no longer has to use fresh configuration files for each
run. Instead, there's now a command line option called computation-id,
e.g.
python my_viff_program.py --computation-id=42 player-1.ini
When using runtimes based on pseudo-random secret sharing, like
PassiveRuntime, one can then safely reuse the configuration files as
long as the computation ids are unique. That is, for each run with a
given set of configuration files, the players should agree on a
computation id that has not been used before for that set of
configuration files.
A consequence of this is that the length of all program counters are
increased by one. This means that the data that needs to be sent
across the network increases a bit, but we expect it to have only
negligible impact on performance.
Regards,
Thomas