本文基于Ubuntu18.04来进行说明
使用的libote库地址 github.com/osu-crypto/…
第一步 克隆libOTe库
第二步 配置libOTe库所需要的一些环境
进入 libOTe/cryptoTools/thirdparty/linux下进行配置
1. 安装配置boost(版本1.69)
有两种方式:
一是通过wget进行下载
wget -c 'https://dl.bintray.com/boostorg/release/1.69.0/source/boost_1_69_0.tar.bz2' -O ./boost_1_69_0.tar.bz2
二是去官网下载拖入(我是通过官网下载拖入的) 然后解压下载好的boost文件压缩包
tar -zxvf boost_1_69_0.tar.gz
这里为了方便我把解压好的文件夹名从 boost_1_69_0 改成了 boost(这里无所谓,我是为了方便改的)
接着进行配置,挨个执行下面的命令
cd boost
./bootstrap.sh
![](https://img-blog.csdnimg.cn/img_convert/3e97c9a73f39ca7da37589e41d946bc9.png)
sudo ./b2 stage --with-system --with-thread link=static -mt
![](https://img-home.csdnimg.cn/images/20230724024159.png?origin_url=https%3A%2F%2Fp1-juejin.byteimg.com%2Ftos-cn-i-k3u1fbpfcp%2F6c92279131b543aaa73e8ee6b004e524~tplv-k3u1fbpfcp-zoom-in-crop-mark%3A4536%3A0%3A0%3A0.image%3F%29%20%E5%88%B0%E6%AD%A4boost%E7%9A%84%E9%85%8D%E7%BD%AE%E5%B0%B1%E5%AE%8C%E6%88%90%E4%BA%86%EF%BC%8C%E5%A6%82%E6%9E%9C%E5%87%BA%E7%8E%B0%E6%8A%A5%E9%94%99%E9%97%AE%E9%A2%98%E8%AF%B7%E8%AF%84%E8%AE%BA%E5%8C%BA%E7%95%99&pos_id=img-wBfE1SW2-1705478658146%29)
2. 配置miracl
同样安装在libOTe/cryptoTools/thirdparty/linux下面 下载方式依然是两种
一是通过命令进行下载
git clone https://github.com/ladnir/miracl
二是通过官网下载,解压步骤和boost一致
解压完成后改不改名随便,依次执行以下代码
cd miracl/miracl/source/
sudo bash linux64
这里会出现这种情况不用理会
![](https://img-blog.csdnimg.cn/img_convert/e46bc9874fa9e41422ec2bc241cb2b4a.png)
至此我们已经简单跑一些协议了
切换到libOTe根目录下
![](https://img-blog.csdnimg.cn/img_convert/5bf8c1c1f2f046fefb64e01569064974.png)
我们先简单跑一下OOS协议吧,KOS、IKNP和RR需要配置完relic之后才能跑
cmake . -D ENABLE_OOS=ON
执行之后你会看到这样的打印输出
![](https://img-blog.csdnimg.cn/img_convert/169e9134080165fc92949b0ed118238a.png)
我这里是配置完成之后显示的全部是ON,首次配置这些OT协议应该都是 OFF 的只有我们刚才执行的OSS协议是 ON
然后我们执行
make
![](https://img-home.csdnimg.cn/images/20230724024159.png?origin_url=https%3A%2F%2Fp6-juejin.byteimg.com%2Ftos-cn-i-k3u1fbpfcp%2Fc63b1340f758416aa6dd6648eeab118c~tplv-k3u1fbpfcp-zoom-in-crop-mark%3A4536%3A0%3A0%3A0.image%3F%29%20%E5%A6%82%E6%9E%9C%E5%87%BA%E7%8E%B0%E6%8A%A5%E9%94%99%E8%AF%B4%E6%98%8EOOS%E5%8D%8F%E8%AE%AE%E4%B8%8D%E8%83%BD%E8%B7%91%EF%BC%8C%E5%8F%AF%E4%BB%A5%E9%80%9A%E8%BF%87%E8%BF%99%E6%9D%A1%E6%8C%87%E4%BB%A4%E5%85%B3%E9%97%ADOOS%E5%8D%8F&pos_id=img-rrayS98P-1705478660140%29)
cmake . -D ENABLE_OOS=OFF
然后打开KKRT协议进行重新 make,大家可以试一下哪些协议的可以没有报错跑的
cmake . -D ENABLE_KKRT=ON
make 完毕之后你可以通过这条指令来跑OT协议
./bin/frontend_libOTe -u
-u 的意思是执行所有可以运行的OT协议
![](https://img-blog.csdnimg.cn/img_convert/d0438914788a9220c4f79eec50140c6a.png)
3. 配置relic
下面我们配置relic来解决所有问题,刚才的配置在执行KOS和IKNP时可能会出现某些.h中的定义引用不到的问题,配置relic后这些问题我就是通过配置完成relic之后迎刃而解的 下载relic依然有两种方式
一是克隆
git clone https://github.com/relic-toolkit/relic.git
二是官网
解压完毕之后执行以下指令
cd relic
cmake . -DMULTI=OPENMP
make
sudo make install
这里可能会遇到bn_init 没有声明的问题 这是relic的一个坑,我们需要修改cmakeList.txt文件
![](https://img-blog.csdnimg.cn/img_convert/15077e8f9d86c141f6b9209e0b2d7fad.png)
加上IF 和 ENDIF 的判断,然后重新执行以上指令就OK了
至此libOTe需要的所有环境全部配置完毕,如果出现报错问题咱们评论区见
第三步 我们切换到libOTe主目录下
讲relic的依赖打开
cmake . -D ENABLE_RELIC=ON
make
./bin/frontend_libOTe -u
这样关于relic的依赖安装完毕,我们可以通过
cmake . -D ENABLE_KOS=ON
cmake . -D ENABLE_IKNP=ON
打开KOS协议和IKNP协议重新make来运行这两个协议,其他为打开的协议同样如此,截至今日配置是没有问题的,随着版本的更新可能又会出现其他问题,两年前配置libOTe并没有这么复杂,拿下来就能跑,现在需要进行这些配置才可以,代码在进步,我们也在不断探讨。
程序员YYDS!!!
番外:
![](https://img-blog.csdnimg.cn/img_convert/c303f1106140fe64fb34b4dbb0ea961e.png)
这需要安装wolfssl依赖才能运行,我的一些协议需要openssl所以没有进行更改,小伙伴们可以试一试,如果有问题咱们评论区见。