优化ORAM并将其高效用于安全计算
1. 复杂度分析
在进行复杂度分析前,先了解系统中的不同参数:
- 安全参数为 (k)。
- 有一个包含 (N) 个元素的数据库,每个元素大小为 (D) 比特。
- 最大的树有 (\lceil N/k\rceil) 个叶子节点,后续每个树比前一个树小一个常数因子 (\tau),因此第 (i) 个树有 (\lfloor N/(k\tau^i)\rfloor) 个叶子节点,且共有 (\ell = \lceil\log_{\tau}(N/k)\rceil) 个树。
- 树的分支度为 (k),第 (i) 个树的高度为 (\log_{k}(\lfloor N/(k\tau^i)\rfloor)\approx(\log N - i\log\tau)/\log k)。
- 最大树的每个节点包含 (2k) 个条目,每个条目大小为 (D + O(\log N)),总大小为 (O(k(D + \log N)));较小树的每个节点包含 (2k) 个条目,每个条目大小为 (O(\tau\log N)),总大小为 (O(k\tau\log N))。
在协议中,每次访问请求时,双方会在每个树中互相发送两条路径(一条用于访问,另一条用于驱逐)。因此,每次访问的总通信复杂度为:
[
\begin{align }
&O(\log N / \log k)\cdot O(k(D + \log N))+\sum_{i = 1}^{\ell - 1}O((\log N - i\log\tau)/\log k)\cdot O(k\tau\log N)\
=&\frac{k\log N}{\lo
超级会员免费看
订阅专栏 解锁全文
12

被折叠的 条评论
为什么被折叠?



