长期安全时间戳的安全性分析

使用原像感知哈希函数的长期安全时间戳(简短 版)

1 引言

1.1 动机

越来越多的信息以数字形式生成和存储。在许多情况下,确保这些信息的完整性至关重要。例如,在电子健康记录的情况下,必须能够检测到对健康记录的非故意更改。目前,此类敏感信息的完整性通常通过数字签名方案来保护。然而,当今大多数使用的数字签名方案仅能提供有限时间内的安全性。

它们的安全性基于计算假设,即只要攻击者的计算资源不足以解决某个计算问题,安全性就能得到保障。广泛使用的RSA数字签名方案[10],例如,如果大整数的素因子能够被计算出来,则该方案将被破解。使用当前的计算机技术,这似乎不可行,然而,已经证明量子计算机可以高效地分解大整数。

为了降低安全风险,贝耶等人于1993年提出了一种方法,用于延长数字签名在其对应数字签名方案失效后仍保持有效性。他们的思路是对签名和已签名文档一起加盖时间戳。这可以证明在对应的签名方案仍被视为安全时,该文档的签名就已经存在,因此签名必然是真实的。由于时间戳的安全性也依赖于计算假设,因此时间戳也必须通过获取新时间戳来定期更新。

为了理解使用时间戳更新的长期完整性保护的安全性,必须为这类方案提供一个安全模型。然而,直到最近,长期时间戳方案的形式化安全分析才受到较多关注。在[7]中,Geihs 等人分析了使用基于签名的时间戳服务的长期时间戳方案的安全性。他们的分析是在随机预言模型下进行的,结果表明所分析的长期时间戳方案的安全级别会随着时间推移而逐渐降低。另一种时间戳方法使用默克尔哈希树[1,9]而非数字签名,并依赖于可信公共存储库的可用性。然而,基于这种时间戳方法的长期时间戳方案的安全性尚未被研究。

1.2 贡献

在本研究中,我们分析了一种基于贝耶尔等人思想的长期时间戳方案的安全性,该方案在使用默克尔哈希树生成时间戳的场景下进行。我们在理想原模[6]中提出了一种新的安全概念,称为可提取时间戳,用于此类时间戳方案。可提取时间戳融合了现有短期时间戳方案[4]安全概念的重要方面,并自然适用于分析长期时间戳方案的安全性。我们证明了基于哈希的长期时间戳方案的安全级别界限,并揭示其安全性随时间呈立方级退化。我们还提供了一个在实际场景中估算随时间推移安全损失的框架。该框架对于设计用于数字信息长期完整性保护系统的工程师而言具有重要价值。

2 可提取时间戳

下文中,我们正式定义短期时间戳方案(即无需续期的时间戳方案)的可提取时间戳。我们首先开始

基于贝耶尔、哈伯和斯托内塔的思想,描述一种典型的基于哈希的时间戳方案 [1,8]。然后,我们为此方案提出一种基于提取的安全定义。该安全定义涉及现有时间戳方案安全概念的重要方面[4],并将在第3节中用于分析长期时间戳方案的安全性。我们还证明了所描述时间戳方案的安全性在所用哈希函数安全性方面的界限。

2.1 方案描述

我们描述了一种基于拜耳、哈伯和斯托内塔思想的基于哈希的时间戳方案[1,8]。

该方案通过一个哈希函数 H 和一组允许的哈希链形状 S 实例化。它使用一个可信存储库 Rep,具备以下功能:若 Rep 在时间 t 收到一个哈希值 r,则会将 r 与 t 关联存储,以便之后每个人都可以验证 r 是在时间 t 被接收到的。

时间戳生成过程被划分为若干轮次。在每一轮中,时间戳服务器从客户端 C₁,…, Cₙ 接收一组比特串 {x₁,…, xₙ}。在每轮结束时,服务器运行 Stamp 算法为这些比特串生成时间戳,并将时间戳返回给客户端。使用 Verify 算法来验证时间戳。

Stamp : 在输入比特串 x₁,…, xₙ (n ≤ |S|) 后,根据由 S 描述的结构,从叶节点 x₁,…, xₙ 计算出一个哈希树[9]。令 r 为该哈希树的根,cᵢ 为从叶节点 xᵢ 到根 r 路径对应的哈希链。时间戳服务器将根哈希 r 发布到存储库 Rep,并对请求 i ∈ {1,…, n},发送 cᵢ 作为响应。哈希链 cᵢ 也称为比特串 xᵢ 的时间戳。

验证 : 输入 x、哈希链 c 以及在存储库中发布的哈希值 r,检查 c 是否具有允许的形状(即,shape(c) ∈ S),并且 c 是从 x 到 r 的哈希链(即,x ⇝ c r)。如果这些条件成立,则该算法输出 1,否则该算法输出 0。

2.2 安全定义

我们提出了一种基于提取的安全性概念,用于上述时间戳方案。非正式地说,一个时间戳方案 TS 的可提取性意味着:如果根哈希 r 在时间 t 被发布到存储库中,之后有人提出了一个比特串 x 和一条哈希链 c,使得 TS.Verify(x, c, r) = 1 成立,则 x 必定在时间 t 时就已经可知(即在 r 发布时 x 可被提取)。我们提出的可提取时间戳概念类似于 PrA 哈希函数[6] 和知识绑定承诺[4]。形式上,我们在理想原模[6]中的定义 1 定义了可提取时间戳,其中存在一个理想原语 P(例如,随机预言机),其所有调用均记录在一个建议字符串 adv 中。

算法 1. 可提取时间戳实验 ExpExTsᴾᵀˢ(A, E)。

(x, c, r) ← Aᴾ,Rep;
如果 TS.验证(x, c, r) = 1, r ∈ R, 且 x ∉ L[r] 则
return 1;
else 返回 0;

预言机 P(m):
z ← P(m); adv ← adv || (m, z);
返回 z;

预言机 Rep(r):
X ← E(adv, r)
R ← R ∪ {r};
L[r] ← X
返回 X;

定义1(可提取时间戳) 。令 ε:N³ → [0, 1]。一个使用理想原语 P 的时间戳方案 TSᴾ,如果对于所有整数 pE、pA 和 qE,存在一个 pE 步的提取器 E,使得对于每个最多对 Rep 进行 q 次调用的 pA 步对手 A,该方案是 ε-安全的可提取(ExTs)。

AdvExTsᴾ,ᵀˢ(A, E) = Pr[ExpExTsᴾ,ᵀˢ(A, E) = 1] ≤ ε(pE, pA, q).

2.3 安全分析

我们分析第 2.1 节中描述的时间戳的安全性。为此,我们首先回顾[3]中关于哈希链形状的一些有用性质。

定义2 。我们说,与允许的形状 S 相关联的时间戳方案是 N-有界的,如果 |S| ≤ N。

定义3 。如果允许的哈希链长度不超过 2 log₂ N,则称一个 N-有界时间戳方案是形状紧凑的。

我们现在证明第 2.1 节中基于哈希的时间戳方案在实例化为 N‐有界且结构紧凑时的安全性界限。

定理1 。第 2.1 节中的时间戳方案,若实例化为 N-有界且结构紧凑,并采用 ε-安全的 PrA 哈希函数 Hᴾ,则具有 ε′-安全可提取性

ε′(pE, pA, q) = ε(α · pE / 2N, β · (pA + 2Nq), 2Nq),

对于某些小常数 α 和 β。

定理 1 的证明可在完整论文中找到[2]。

3 可提取的长期时间戳

现在我们开始正式分析长期时间戳方案的安全性。这些方案允许更新保护机制,以便替换即将被攻破的密码学原语。同样,我们首先根据贝耶尔、哈伯和斯托内塔 [1] 的思想描述一种典型的长期时间戳方案构造方法。然后,我们介绍用于长期时间戳的基于提取的安全模型。最后,利用该模型对所描述方案的安全级别得出一个安全性界限。

3.1 方案描述

我们描述了一种基于拜耳、哈伯和斯托内塔思想的长期时间戳方案[1]。该方案使用多个短期时间戳方案来进行保护更新。我们用 TS = {TSᵢ}ᵢ 表示随时间可用的短期时间戳方案集合。对于每个时间戳方案 TSi ∈ TS,我们用 tᵢˢ 表示其相关的开始时间,定义了该方案何时起可用于使用;并用 tᵢᵇ 表示其相关的破裂时间,定义了该方案的时间戳何时不再被视为有效。我们还假设存在一个用于发布根哈希值的存储库 Rep。

长期时间戳方案由用于创建初始时间戳的 Stamp 算法、用于更新时间戳的 Renew 算法以及用于验证时间戳的 Verify 算法定义。

Stamp : 该算法的输入为时间戳方案标识符 i 和一个比特串序列 x₁,…, xₙ。它通过计算 (r, c₁,…, cₙ) ← TSi.Stamp(x₁,…, xₙ),使用方案 TSi 为这些比特串创建时间戳。随后,根哈希 r 与标识符 i 一起发布到存储库 Rep 中。令 t 表示 (r, i) 发布的时间。对于 j ∈ {1,…, n},该算法以长期时间戳 Tⱼ = [(i, cⱼ, r, t)] 响应请求 xⱼ。

Renew : 该算法以时间戳方案标识符 i′ 和一个带有时间戳的比特串序列 (x₁, T₁)…,(xₙ, Tₙ) 作为输入。该算法使用方案 TSi′ 来更新时间戳,具体步骤如下:首先,它为这些比特串及其长期时间戳计算新时间戳 (r′, c′₁,…, c′ₙ) ← TSi′.Stamp(x₁‖T₁,…, xₙ‖Tₙ);然后,将根哈希 r′ 连同时间戳方案标识符 i′ 一起发布到存储库 Rep 中。设 t′ 为 (r′, i′) 被发布的时刻。对于 j ∈ {1,…, n},该算法发送 (i′, c′ⱼ, r′, t′) 作为对请求 (xⱼ, Tⱼ) 的响应。客户端接收到 (i′, c′ⱼ, r′, t′) 后通过追加 (i′, c′ⱼ, r′, t′) 来更新其长期时间戳 Tⱼ。

验证 : 该算法以比特串 x、一个长期时间戳 T = (C₁‖…‖Cₙ)(其中 Cⱼ = (iⱼ, cⱼ, rⱼ, tⱼ))、时间 t、对可信存储库 Rep 的引用 R,以及一组可接受的时间戳方案 TS = {TSᵢ}ᵢ 作为输入。对于 j ∈ {1,…, n},验证 TSiⱼ.Verify((x‖C₁‖…‖Cⱼ₋₁), cⱼ, rⱼ) = 1,(iⱼ, rⱼ) ∈ R[tⱼ],以及 tᵢᵇⱼ > tⱼ₊₁(即检查每个时间戳是否已在先前时间戳仍有效时被正确更新)。若这些条件成立,则该算法输出 1,否则输出 0。

3.2 攻击者模型

我们现在描述分析长寿命系统安全性的基础。用于短寿命系统的常用安全模型考虑了一个固定的对手,该对手被允许在停止之前执行一定量的计算。然而,这种模型对于长寿命系统并不充分,因为在长寿命系统中,对手的计算能力可能会随时间而变化。

实时模型 。为了为长寿命系统实现合适的对手模型,我们必须能够将实时与系统中发生的其他事件(例如,新的计算技术的出现)关联起来。因此,我们必须要指定一种能够捕捉实时概念的形式化方法。

在近期文献中,已考虑了各种对实时建模的方法。施文克[11]和盖斯等人[7]通过定义一个全局时钟来建模实时,该时钟在对手执行工作时推进。另一种实时模型由卡内蒂等人提出,他们在支持并发的计算框架中进行研究。他们将全局时钟定义为一个特殊进程,该进程与其他所有进程并发运行,并以确定的速率滴答前进。

在我们的工作中,我们考虑顺序计算模型,并遵循 Schwenk[11] 和盖斯等人[7] 所使用的时间形式化方法。也就是说,我们使用一个全局时钟 Clock,它持有一个状态时间,初始值为 0。我们允许对手通过调用 Clock(t) 作为预言机来推进时间,如果 t > 时间,则时钟被设置为时间 = t(算法 2)。我们指出,通过对时间的推进,对手将消耗计算能力并触发其环境中的事件。

计算模型 。我们考虑与全局时钟 Clock 相关联的对手 Aᶜˡᵒᶜᵏ。我们根据 Clock 定义的时间来限制对手 A 的计算能力。对于 ρ: N → N,我们称 A 是 ρ 步有界的,如果在任意时刻 t,它执行的计算步骤少于 ρ(t)。我们称 A 是 ρ 调用有界的,如果在任意时刻 t,它执行的预言机调用少于 ρ(t)。

我们通过定义对手 Aᶜˡᵒᶜᵏ 为一个机器序列 (Aᶜˡᵒᶜᵏ₀, Aᶜˡᵒᶜᵏ₁, Aᶜˡᵒᶜᵏ₂, …) 来建模计算技术的进步,其中 Aᵗ ∈ Mᵗ,而 Mᵗ 表示在时间 t 可用的计算机器类别(即 Mᵗ 反映了在时间 t 可用的计算技术)。在时间 = t 执行 Aᶜˡᵒᶜᵏ 意味着执行组件 Aᶜˡᵒᶜᵏₜ。然后对手 Aᶜˡᵒᶜᵏₜ 运行直到调用 Clock(t′),之后控制权交给 Aᶜˡᵒᶜᵏₜ′。这里,Aᶜˡᵒᶜᵏₜ′ 可以访问 Aᶜˡᵒᶜᵏₜ 的内部状态。提取器 E 也被定义为一个序列 (E₀, E₁, E₂, …),使得 Eᵗ ∈ Mᵗ,但这些组件无法访问时钟预言机。在时间 = t 调用提取器 E 意味着调用 Eᵗ。

3.3 安全定义

我们通过一个实验 ExpExLTs(算法 2)来定义可提取的长期时间戳的安全性。与可提取(短期)时间戳的定义类似,可提取的长期时间戳的安全定义是在理想原模[6]中给出的。此外,还使用了第 3.2 节中描述的全局时钟 Clock。

实验 ExpExLTs 考虑了一个对手 A 和一个提取器 E。对手 A 可以通过调用 Rep(r) 在任意时刻向存储库 Rep 发布根哈希值 r。当在时间 t 以根哈希 r 调用 Rep 时,它会将 r 与 t 关联记录在全局表 R 中,并且还使用输入 adv 和 r 调用提取器 E。提取器 E 提取一组比特串 X,并将它们与时间 t 关联存储在表 L 中。

一个长期时间戳方案被认为是安全的,如果存在一个提取器 E,使得对于任意可能的对手,只要该对手输出一个对比特串 x 和时间 t 有效的长期时间戳 T(即,Verify(x, T, t, R, TS) = 1),提取器就能在时间 t 提取出 x(即,x ∈ L[t])。

定义4(可提取的长期时间戳) 。设 M 描述可用的机器类别,TS 描述可用的时间戳方案。设 ε: N⁴ → [0, 1]。一个使用理想原语 P 的长期时间戳方案 LTSᴾ,若对于所有界限 ρE、ρA 和 q,均存在一个 ρE 受限的提取器 E ∈ M,使得对于每个 ρA 步数受限且 q 调用次数受限的对手 A ∈ M 以及每一个时间 t,该方案关于 M 和 TS 是 ε-安全可提取的,则称其为 ε-安全可提取的(针对 M 和 TS)。

AdvExLTsᴾ,ᴸᵀˢ,ᵀˢ(A, E, t) = Pr[ExpExLTsᴾ,ᴸᵀˢ,ᵀˢ(A, E, t) = 1] ≤ ε(ρE, ρA, q, t).

算法2。可提取的长期时间戳实验 ExpExLTsᴾ,ᴸᵀˢ,ᵀˢ(A, E, t∗)。

(x, T, t) ← Aᶜˡᵒᶜᵏ, ᴾ, ᴿᵉᵖ;
如果 LTS.验证(x, T, t, R, TS) = 1, x ∉ L[t], 时间 ≤ t∗ 那么
返回 1; else 返回 0;

预言机 Clock(t):
如果 t > 时间 那么
时间 ← t;

预言机 P(m):
z ← P(m); adv ← adv || (m, z);
返回 z;

预言机 Rep(r):
X ← E(adv, r); t ← 时间
R[t] ← R[t] || r
L[t] ← L[t] || X
返回 X;

3.4 安全性分析

在分析第 3.1 节所述长期时间戳方案的安全性之前,我们将第 2 节中(短期)可提取时间戳的概念扩展到考虑不同类别的计算设备的场景。

定义5(可提取时间戳(针对机器类)) 。设 ME 和 MA 为机器类,且 ε: N³ → [0, 1]。我们称一个不可续期的时间戳方案 TS 对于属于 MA 的对手和属于 ME 的提取器是 ε-安全可提取的,如果对于所有整数 pE、pA 和 qE,均存在一个 pE 步的提取器 E ∈ ME,使得对于每个最多向 Rep 发出 q 次调用的 pA 步对手 A ∈ MA:

AdvExTsᴾ,ᵀˢ(A, E) ≤ ε(pE, pA, q).

我们现在证明第 3.1 节中描述的长期时间戳方案的安全级别相对于可用的(短期)时间戳方案的安全级别的界限。

定理2 。设 M 描述可用的计算机器类别,TS = {TSᵢᴾ}ᵢ 描述可用的时间戳方案,这些方案使用理想原语 P。如果对于每个 i,TSᵢᴾ 对 Mtᵢᵇ 的对抗者和 Mtᵢˢ 的提取器是 εᵢ-安全可提取的,则第 3.1 节所述的长期时间戳方案是 ε-安全可提取的,其中

ε(ρE, ρA, q, t) = ∑ᵢ ∈ {i : tᵢᵇ ≤ t} εᵢ(α · ρE(tᵢᵇ), β · (ρA(tᵢᵇ) + q(tᵢᵇ)ρE(tᵢᵇ)), q(tᵢᵇ)),

对于某些小常数 α 和 β。

我们建议读者参考完整论文[2]以获取定理 2 的证明。

4 评估

我们评估第 3.1 节所述的长期时间戳方案在实际场景中提供的保护级别。在我们的评估中,考虑了数据在 Y 年的时间段内受到保护的场景。该长期时间戳方案的安全级别根据用于实例化可用(短期)时间戳方案的哈希函数的安全级别进行评估。此处,我们假设所有使用的哈希函数在其有效期限内具有相同的安全级别。

4.1 场景

我们假设 TS = {TSᵢ}ᵢ 是可用的(短期)时间戳方案集合,并且对于每个 i,用 Hᵢ 表示 TSi 所使用的哈希函数。我们假设哈希函数的 PrA 安全性来源于对手能力 pA 与提取器能力 pE 之间的比率,并受到存储库调用次数 q 和基础安全级别 δ 的影响。具体而言,我们假设每个哈希函数 Hᵢ 在破裂时间 tᵢᵇ 之前是 ε‐安全的 PrA,其中 ε(pE, pA, q) = pA / (pE qδ)。此外,我们假设每个(短期)时间戳方案 TSi 是 N‐有界的且结构紧凑,这意味着每轮时间戳最多生成 N 个时间戳。在我们的实际安全分析中,我们忽略了定理 1 和定理 2 中推导出的常数 α 和 β,因为我们预计它们在大多数情况下接近于 1。

根据定理 1 我们得出,每个短期时间戳方案 TSi 是 ε′‐安全可提取的,直到时间 tᵢᵇ 为止,且具有

ε′(pE, pA, q) ≤ ε(pE / 2N, pA + 2Nq, 2Nq) = (pA + 2Nq) / (pE (2N)² qδ).

此外,利用定理 2 我们得出该长期时间戳方案是 ε′′‐安全的长期可提取的,具有

ε′′(ρE, ρA, q, t) ≤ ∑ᵢ ∈ Iₜ (ρA(tᵢᵇ)/ρE(tᵢᵇ) + (2N/ρE(tᵢᵇ) + 1) q(tᵢᵇ))(2N)² q(tᵢᵇ) δ.

现在我们假设对手和提取器具有相同的计算能力,并观察到任何合理的提取器 E 应在方案的破裂时间之前至少提取 2N 个比特串(即,ρA(t)/ρE(t) = 1, ρE(tᵢᵇ) ≥ 2N)。设时间 t 表示实验运行的年数,并假设每年最多有 L 个新的时间戳方案可用,且在存储库中最多发布 R 个根哈希,即 |Iₜ| = |{i : tᵢᵇ ≤ t}| ≤ tL 和 q(t) ≤ tR。我们得到长期时间戳方案安全性级别的如下界限:

ε′′(ρE, ρA, q, t) ≤ 12t³(NR)²Lδ.

4.2 结果

假设 L = 10, N = 2³², R = 365, 以及 −log₂(δ) = 192,我们在图 1 中展示了所分析的长期时间戳方案的安全级别 −log₂(ε′′) 随时间的降级情况。该图表显示,安全级别在 100 年的时间内从 104 降至 84。我们强调,即使所使用的所有哈希函数在其相应的有效期限内的安全性至少为 192,这种降级仍然会发生。

5 结论与未来工作

我们已对基于贝耶尔等人思想的长期时间戳方案进行了形式化的安全性分析[1],并表明,即使所使用密码学原语的安全级别保持不变,该方案的安全性也会随着时间呈立方级下降。这表明长寿命系统需要使用特定的安全裕度设计。我们在安全分析中提供的技术可用于分析其他长期使用的密码系统。对于未来的工作,研究我们证明的安全界限是否可以得到改进,从而减少随时间推移的安全损失,将是一个有趣的方向。此外,在标准模型中(即不使用理想原语)建立长期时间戳的安全模型也将是值得关注的课题。

【四轴飞行器】非线三自由度四轴飞行器模拟器研究(Matlab代码实现)内容概要:本文围绕非线三自由度四轴飞行器模拟器的研究展开,重点介绍了基于Matlab的建模与仿真方法。通过对四轴飞行器的动力学特进行分析,构建了非线状态空间模型,并实现了姿态与位置的动态模拟。研究涵盖了飞行器运动方程的建立、控制系统设计及数值仿真验证等环节,突出非线系统的精确建模与仿真优势,有助于深入理解飞行器在复杂工况下的行为特征。此外,文中还提到了多种配套技术如PID控制、状态估计与路径规划等,展示了Matlab在航空航天仿真中的综合应用能力。; 适合人群:具备一定自动控制理论基础和Matlab编程能力的高校学生、科研人员及从事无人机系统开发的工程技术人员,尤其适合研究生及以上层次的研究者。; 使用场景及目标:①用于四轴飞行器控制系统的设计与验证,支持算法快速原型开发;②作为教学工具帮助理解非线动力学系统建模与仿真过程;③支撑科研项目中对飞行器姿态控制、轨迹跟踪等问题的深入研究; 阅读建议:建议读者结合文中提供的Matlab代码进行实践操作,重点关注动力学建模与控制模块的实现细节,同时可延伸学习文档中提及的PID控制、状态估计等相关技术内容,以全面提升系统仿真与分析能力。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值