当配置好了SPDZ安全框架之后,首先使用
./compile.py -F 64 tutorial
编译一个tutorial程序,这个两方程序用来实现整数之间的加减乘除运算。
如果想要两方交互输入来执行,开两个终端,使用以下命令:
./mascot-party.x -N 2 -I -p 0 tutorial
./mascot-party.x -N 2 -I -p 1 tutorial
这里
−
I
-I
−I的作用就是激活交互模式。
执行完成后会出现以下情景:
提示需要输入数据。
如果不加
−
I
-I
−I,程序默认从Player-Data/Input-P-0中读取输入。
如何在Player-Data/Input-P-0创建输入呢?
可以在编译程序之前,使用以下命令创建输入:
echo 1 2 3 4 > Player-Data/Input-P0-0
echo 1 2 3 5 > Player-Data/Input-P1-0
执行完运行命令之后,会得到如下信息
里面包含参与方的通信量和计算时间。
如果想要执行一个三方的tutorial程序该怎么办呢?
假设三方中诚实参与方占据大多数,也就是说至少两方是诚实的。
因为第三个参与方,可能会恶意的窃听信道,那么一旦它收集到足够多的秘密信息,那么就可以重构出秘密,这是不允许的。
所以在编译程序之前,需要先生成一下三方的证书。
Scripts/setup-ssl.sh 3
这条命令代表生成三方证书。
接下里编译命令:
./compile.py -R 64 tutorial
补充一点;-R表示环上的运算(ring)。-B表示二进制比特长度。 -F 有限域位长。
然后开三个终端,使用以下命令输入:
./replicated-ring-party.x -I 0 tutorial
./replicated-ring-party.x -I 1 tutorial
./replicated-ring-party.x -I 2 tutorial
运行结果如下:
今天先学这么多。