1.首先看一些官网给的解释:
Secret power of two : 确实让人摸不着头脑,头还有点发凉.
2.寻找了大量的博客,论文中,发现了博主大佬
(下面给出了博主链接):博主发布了很多关于SPDZ的文章,对我这个小白的帮助很大,表达一下感谢。奔跑的梅花Luhttps://blog.csdn.net/shengsikandan
在阅读博主对 pow2() 函数解释时,发现总是跟自己的推算演练有些出入,这里并不是说博主错了,个人觉得很大原因是SPDZ 框架不断更新修改的原因,但是官方给出的文档依然没有更多的解释。
3.个人对pow2函数()的推断:
先上代码,在做解释:
a = sint(12)
print_ln("a = %s",a.reveal())
b =a.pow2(6)
print_ln("b = %s",b.reveal())
直接 a.pow2(i) 为例:首先是以 2 为底的幂,幂值为a;
而 i 的为输入比特的长度,即 2^(j-1) + 1 < i < 2^j,进而得出 j 值 ;
在上面的代码中 i = 6 推算出 j = 3 , 则 2^3 = 8,则整体表达式为:b = 2^12 / (2^8)
注:编译时需要指定环数 - R