伪随机函数共享与图和几何搜索认证数据结构
1. 伪随机函数共享相关研究
在伪随机函数共享领域,研究人员致力于利用累积映射来实现这一目标。初始时,存在 $\alpha_0 = \binom{n}{t}$ 个元素需要被覆盖。根据鸽巢原理,由于存在大小为 $c$ 的最优覆盖,必然存在一个集合至少能覆盖 $\alpha_0/c$ 个元素。贪心算法会选择最大的集合,所以它选择的集合至少能覆盖这么多元素,那么剩余待覆盖的元素数量最多为 $\alpha_1 = \alpha_0 - \alpha_0/c = \alpha_0(1 - 1/c)$。
重复这个过程,每次都能覆盖至少 $(1 - 1/c)$ 比例的剩余元素。经过 $d - 1$ 次操作后,贪心算法选择 $d - 1$ 个集合后,未被覆盖的元素数量最多为 $\alpha_{d - 1} = \alpha_0(1 - 1/c)^{d - 1}$。
考虑最大的 $d$ 值,使得在移除贪心覆盖中除最后一个集合外的所有集合后,仍有元素待覆盖,即满足 $1 \leq \alpha_0(1 - 1/c)^{d - 1}$。通过一系列数学推导,可得到 $d$ 满足 $d - 1 \leq c \ln \alpha_0$。又因为每个 BD 最多能覆盖 $\binom{u}{t}$ 个元素,且 $\alpha_0 \leq \binom{u}{t} \leq 2^u$。
这些技术不仅可以用于共享伪随机函数,还能直接应用于共享其他非同态密码原语,如分组密码和消息认证码(MACs)。累积映射在斜坡访问结构中具有独立的研究价值,也被应用于 MIX 网络的设计。
然而,在最坏情况下,最小 $(t, u, n)$ 累积映射的大小 $d(t, u, n)$ 可能达到 $2^{O(n)}$,这意味着系统需要生成大量的秘密密钥。近期,广义累积数组(GCA)被引入,将密钥数量从 $2^{O(n)}$ 减少到 $O(\log n)$,但该方法似乎不适用于共享伪函数,因为对于相同输入 $x$,不同授权子集计算出的 $f(x)$ 值可能不同。
2. 图和几何搜索认证数据结构
在数据结构和算法的使用中,验证信息的真实性往往被忽视。随着 Web 服务和内容分发网络的出现,数据结构和算法不再仅由单个用户在单机上使用,因此需要新的技术来确保数据结构的认证。
2.1 认证模型
认证模型涉及三个参与方:可信源、不可信目录和用户。可信源持有结构化对象集合 $S$,并定义了一系列查询操作。如果 $S$ 随时间固定,则为静态;否则为动态,并定义了一系列更新操作。不可信目录维护 $S$ 的副本以及结构认证信息,这些信息是由可信源签署的关于 $S$ 的时间戳声明。用户对 $S$ 进行查询,不直接联系可信源,而是查询目录。目录为用户提供查询答案和答案认证信息,结合结构认证信息可提供答案的加密证明,用户随后验证该证明。如果 $S$ 是动态的,目录在每次更新时会收到更新认证信息。
2.2 相关工作
- 认证字典 :Merkle 的哈希树方案可用于实现静态认证字典,通过在平衡二叉树的叶子节点存储元素的哈希值,内部节点存储其子节点的哈希值,根节点的哈希值被签署。还有基于哈希树变体的动态认证字典方案,以及使用跳表、交换哈希、RSA 单向累加器等实现的认证字典。
- 更通用的认证数据结构 :对关系数据库中的操作和多维正交范围查询进行认证,以及对一类特定数据结构(链接形成有界度的有向无环图且有单个源节点,查询对应子图的遍历)进行认证。
2.3 本文成果
本文提出了构建通用图 $G$ 上多个查询问题的认证数据结构的通用技术,包括连通性查询、双连通性查询、三连通性查询和路径查询。同时支持在 $G$ 中插入顶点和边的高效更新操作。
该数据结构使用线性空间,连通性查询和更新操作的时间复杂度为 $O(\log n)$,路径查询的时间复杂度为 $O(\log n + k)$,其中 $k$ 是报告路径的长度。更新认证信息的大小为 $O(1)$,连通性、双连通性和三连通性查询的答案认证信息大小和验证时间均为 $O(\log n)$,路径查询的答案认证信息大小和验证时间为 $O(\log n + k)$。
此外,本文还解决了几个几何搜索问题,实现了对强大的分数级联技术的完整通用版本的认证。可以高效认证分数级联结构中的查询,这可应用于地理信息系统中多个基本二维几何搜索问题的认证。
2.4 安全基础
认证方案的安全性基于标准的密码原语,如抗碰撞哈希和数字签名,具有实际应用价值,无需新的密码学假设。
3. 密码学预备知识
认证模型的信任基础是用户信任可信源,用户拥有可信源的公钥,并相信用该公钥签署的任何内容都是真实的。所有期望的安全结果都通过使用密码哈希函数实现。
密码哈希函数 $h$ 通常对可变长度消息 $M$ 进行操作,生成固定长度的哈希值 $h(M)$。假设对任何数据元素 $e$ 有明确定义的二进制表示,且定义了规则使 $h$ 能对任何有限元素序列进行操作。抗碰撞哈希函数满足:输入任意长度的字符串,输出短字符串;且很难找到两个不同的字符串 $x \neq y$ 使得 $h(x) = h(y)$。
在认证方案中,使用抗碰撞哈希函数对数据源拥有的数据集 $S$ 生成摘要,即对 $S$ 中的数据元素计算加密哈希值。摘要通过定义在 $S$ 上的有向无环图(DAG)系统地计算得出。每个节点 $u$ 存储一个标签 $L(u)$,如果 $u$ 是源节点,则 $L(u) = h(e_1, \ldots, e_p)$;否则 $L(u) = h(e_1, \ldots, e_q, L(z_1), \ldots, L(z_k))$,其中 $(z_1, u), \ldots, (z_k, u)$ 是图 $G$ 的边,$e_1, \ldots, e_q$ 是 $S$ 中的元素。
以下是一个简单的流程图,展示了认证数据结构的基本流程:
graph LR
A[可信源] -->|数据及认证信息| B[不可信目录]
C[用户] -->|查询| B
B -->|答案及认证信息| C
C -->|验证| B
表 1:不同查询类型的复杂度对比
| 查询类型 | 时间复杂度 | 答案认证信息大小 | 验证时间 |
| ---- | ---- | ---- | ---- |
| 连通性查询 | $O(\log n)$ | $O(\log n)$ | $O(\log n)$ |
| 双连通性查询 | $O(\log n)$ | $O(\log n)$ | $O(\log n)$ |
| 三连通性查询 | $O(\log n)$ | $O(\log n)$ | $O(\log n)$ |
| 路径查询 | $O(\log n + k)$ | $O(\log n + k)$ | $O(\log n + k)$ |
总之,伪随机函数共享和图与几何搜索认证数据结构的研究为密码学和数据结构领域带来了新的思路和方法,同时也面临着一些挑战和问题,需要进一步的研究和探索。
伪随机函数共享与图和几何搜索认证数据结构
4. 序列查询认证与路径哈希累加器
在认证序列查询方面,我们需要确保查询结果的真实性。这里会用到之前提到的密码哈希函数和有向无环图(DAG)的概念。
对于一个序列的查询,我们可以将其看作是在一个特定的数据结构中查找某个元素或获取相关信息。为了验证这个查询的结果,我们利用 DAG 来计算序列的哈希值。具体操作步骤如下:
1. 首先,将序列中的每个元素进行二进制表示,以便密码哈希函数能够对其进行操作。
2. 构建一个有向无环图,图中的每个节点代表一个哈希计算步骤。源节点存储序列元素的哈希值,而非源节点则根据其入边节点的哈希值和相关元素计算自身的哈希值。
3. 当进行查询时,目录会提供查询结果以及相关的哈希路径信息。用户可以根据这些信息,结合已知的 DAG 结构和哈希计算规则,重新计算哈希值,并与存储的认证信息进行比对,从而验证查询结果的真实性。
路径哈希累加器是一种特殊的数据结构,用于处理路径相关的查询。它通过累加路径上节点的哈希值,能够高效地验证路径的完整性。例如,在一个图中查询两个节点之间的路径时,路径哈希累加器可以快速计算出该路径的哈希值,与存储的认证信息进行比较。
以下是一个简单的列表,总结了序列查询认证的关键步骤:
1. 元素二进制表示
2. 构建 DAG
3. 目录提供查询结果和哈希路径
4. 用户重新计算哈希值并验证
5. 图的路径和连通性查询认证数据结构
对于图的路径和连通性查询,我们设计了专门的认证数据结构。这个数据结构利用了之前提到的认证模型和密码学技术,确保查询结果的真实性和完整性。
5.1 数据结构设计
该数据结构使用线性空间,主要由图的存储结构和相关的认证信息组成。图的存储可以采用邻接表或邻接矩阵等常见方式,同时为每个节点和边存储相应的哈希值。认证信息包括图的整体哈希值、节点和边的哈希值以及时间戳等。
5.2 查询操作
- 连通性查询 :当用户查询两个节点是否连通时,目录会根据图的存储结构和认证信息进行判断。首先,它会查找两个节点之间的路径,如果存在路径,则进一步验证路径上节点和边的哈希值。验证过程通过重新计算哈希值并与存储的认证信息进行比对来完成。整个过程的时间复杂度为 $O(\log n)$。
- 路径查询 :对于路径查询,目录会返回两个节点之间的路径以及路径的长度。同时,它会提供路径上节点和边的哈希值作为答案认证信息。用户可以根据这些信息重新计算路径的哈希值,验证路径的完整性。路径查询的时间复杂度为 $O(\log n + k)$,其中 $k$ 是路径的长度。
5.3 更新操作
当图中插入顶点或边时,需要更新相应的认证信息。具体步骤如下:
1. 计算新顶点或边的哈希值。
2. 更新受影响的节点和边的哈希值,以及图的整体哈希值。
3. 生成新的时间戳,并将更新信息存储在目录中。
更新认证信息的大小为 $O(1)$,确保了更新操作的高效性。
以下是一个 mermaid 格式的流程图,展示了图的路径查询认证过程:
graph LR
A[用户] -->|路径查询| B[目录]
B -->|路径及哈希信息| A
A -->|重新计算哈希值| C{验证结果}
C -->|通过| D[查询结果有效]
C -->|未通过| E[查询结果无效]
表 2:图查询操作的复杂度总结
| 操作类型 | 时间复杂度 | 认证信息大小 |
| ---- | ---- | ---- |
| 连通性查询 | $O(\log n)$ | $O(\log n)$ |
| 路径查询 | $O(\log n + k)$ | $O(\log n + k)$ |
| 更新操作 | $O(\log n)$ | $O(1)$ |
6. 分数级联技术的认证
分数级联技术是一种用于高效解决几何搜索问题的算法范式。在本文中,我们实现了对其完整通用版本的认证。
6.1 分数级联结构
分数级联结构由多个字典组成,这些字典存储在一个连通图的节点上。每个字典包含一定数量的元素,用于解决特定的几何搜索问题。
6.2 查询认证
当进行查询时,我们需要验证查询结果的真实性。具体步骤如下:
1. 目录根据查询要求,在分数级联结构中进行搜索,并返回查询结果。
2. 同时,目录提供相关的认证信息,包括字典的哈希值、搜索路径的哈希值等。
3. 用户根据这些信息,重新计算哈希值,并与存储的认证信息进行比对,以验证查询结果的真实性。
通过这种方式,我们可以高效地认证分数级联结构中的查询,为地理信息系统等领域的几何搜索问题提供了可靠的解决方案。
以下是一个简单的列表,总结了分数级联技术查询认证的步骤:
1. 目录搜索并返回结果
2. 提供认证信息
3. 用户重新计算哈希值并验证
7. 总结与展望
本文介绍了伪随机函数共享和图与几何搜索认证数据结构的相关技术。在伪随机函数共享方面,我们探讨了累积映射的应用以及存在的问题,如密钥数量过多等。在图和几何搜索认证数据结构方面,我们提出了通用的认证模型和技术,包括序列查询认证、图的路径和连通性查询认证以及分数级联技术的认证。
这些技术为密码学和数据结构领域带来了新的思路和方法,具有重要的实际应用价值。例如,在网络管理系统和地理信息系统中,我们可以利用这些认证数据结构确保信息的真实性和完整性。
然而,目前的研究还存在一些挑战和问题。例如,如何进一步优化认证数据结构的性能,减少计算和存储开销;如何动态化基于分数级联技术的认证数据结构等。未来的研究可以针对这些问题展开,不断完善和拓展相关技术,为更多领域的应用提供支持。
总之,伪随机函数共享和图与几何搜索认证数据结构的研究是一个充满挑战和机遇的领域,值得我们持续关注和深入探索。
伪随机函数共享与图几何搜索认证结构
超级会员免费看

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



