VIFF(Virtual Ideal Functionality Framework)を動かす
マルチパーティ計算(MPC, Multi-Party Computation)の論文で VIFF(Virtual Ideal Functionality Framework)が使用されていることがあります。(Secure Multiparty AES (full paper))
- VIFF is a framework which allows you to specify secure multi-party computations.
- VIFF is Free Software, licensed under the GNU LGPL.
アーカイブ(後述) より
サイト消滅
http://viff.dk/が VIFF の公式サイトとして紹介されることが多いですが(https://github.com/rdragos/awesome-mpc#retired-software)、現在アクセスしても、よくわからないサイトが出現します。
Wayback Machine
Wayback Machine(https://web.archive.org)を使用してサイトのアーカイブを探しました。
以下がおそらく最新のアーカイブです。
https://web.archive.org/web/20220531200136/http://viff.dk/
実行
VIFF のコードでは Python2 を使用していますが、(個人的に)メインの環境に Python2 をインストールしたくないので、ここでは Docker を使用します。
ソースコードを取得、解凍
https://web.archive.org/web/20220120210407/http://hg.viff.dk/viff/archive/tip.zip
https://web.archive.org/web/20220120210407/http://hg.viff.dk/viff/archive/tip.tar.gz
https://web.archive.org/web/20220120210407/http://hg.viff.dk/viff/archive/tip.tar.bz2
ツリー構造
ディレクトリviff-f1d477e94d0b/
- .hg_archival.txt
- .hgignore
- .hgsigs
- .hgtags
- COPYING
- COPYING.LIB
- MANIFEST.in
- NEWS
- README
ディレクトリapps
- aes.py
- aes_inversion.py
- beginner.py
- benchmark.py
- benchutil.py
- compare.py
- divide.py
ディレクトリdouble-auction
- auction-client.glade
- auction-client.gladep
- client.py
- double-auction.py
- server.py
- equality.py
- eval-poly.py
- gc-test.py
- generate-certificates.py
- generate-config-files.py
- int-bit-conversion.py
- millionaires.py
- multiply.py
- online-comparison-benchmark.py
- paillier.py
- prss-and-open.py
- recombine.py
- seq-mul.py
- shamir-share-open.py
- share-open.py
- sort.py
- sum.py
- two-fields.py
- xor-all.py
ディレクトリdoc
- active.txt
- aes.txt
- applications.txt
- authors.txt
- background.txt
- bibliography.txt
- coding-style.txt
- comparison.txt
- conf.py
- config.txt
- constants.txt
- contact.txt
- development.txt
- field.txt
- glossary.txt
- hashbroadcast.txt
- history.txt
- implementation.txt
- index.txt
- install.txt
- matrix.txt
- orlandi.txt
- overview.txt
- paillier.txt
- passive.txt
- preprocessing.txt
- presentations.txt
- program-counters.txt
- prss.txt
- runtime.txt
- shamir.txt
- todo.txt
- unit-testing.txt
- util.txt
- run.py
- setup.py
ディレクトリtwisted
ディレクトリplugins
- viff_reactor.py
ディレクトリviff
- __init__.py
- active.py
- aes.py
ディレクトリbedoza
- __init__.py
- add_macs.py
- bedoza.py
- bedoza_triple.py
- keylist.py
- maclist.py
- modified_paillier.py
- share.py
- share_generators.py
- shares.py
- util.py
- zero_knowledge.py
- comparison.py
- config.py
- constants.py
- equality.py
- field.py
- hash_broadcast.py
ディレクトリlibs
- __init__.py
- configobj.py
- matrix.py
- montgomery_exponentiation.py
- orlandi.py
- paillier.py
- paillierutil.py
- passive.py
- prss.py
- reactor.py
- runtime.py
- shamir.py
- simplearithmetic.py
ディレクトリtest
- __init__.py
ディレクトリbedoza
- __init__.py
- test_bedoza_runtime.py
- test_bedoza_triple.py
- test_test_setup.py
- test_zero_knowledge.py
- util.py
- loopback.py
- rijndael.py
- test_active_runtime.py
- test_aes.py
- test_apps.py
- test_async.py
- test_basic_runtime.py
- test_field.py
- test_hash_broadcast.py
- test_matrix.py
- test_memory.py
- test_orlandi_runtime.py
- test_prss.py
- test_runtime.py
- test_runtime_comp.py
- test_runtime_equal.py
- test_runtime_open.py
- test_runtime_prss.py
- test_shamir.py
- test_signed_field.py
- test_thresholds.py
- test_util.py
- util.py
- triple.py
- util.py