delta-mpc/python-psi

关于源码的两点问题

SeaCSKY opened this issue · 1 comments

1、codewords的长度是集合数据条目的数量吗?例如在server上有10条待求交集的数据,那么codewords的长度就是10?
2、server的prepare中的t_col_bytes和u_col_bytes 是不是就是为每一条数据每一位生成的两个随机二进制?

  1. 不是的,codewords是ot extension中矩阵的宽度,在源码里,psi用的codewords长度是512,这是为了保证安全。一般ot extension的codewords长度是128,codewords越长,ot extension的开销就越大。待求交集的数据数量,其实决定的是ot extension矩阵的高度。
  2. t_col_bytes和u_col_bytes 是T矩阵和U矩阵的每一列,T矩阵是随机生成的,U矩阵不是,U矩阵的每一行是T矩阵的每一行与一个输入的异或。

想要对原理了解的更清楚,建议阅读原文章
Kolesnikov V, Kumaresan R, Rosulek M, et al. Efficient batched oblivious PRF with applications to private set intersection[C]//Proceedings of the 2016 ACM SIGSAC Conference on Computer and Communications Security. 2016: 818-829.