概率合约签署协议的计算可靠分析
1 引言
合约签署协议(CSPs)是一类具有复杂安全目标的加密协议,需要明确考虑参与主体的策略。CSPs 的核心安全要求是平衡性,即不应出现一方既拥有解决协议(获得合约)的策略,又拥有中止协议(阻止另一方获得合约)的策略的情况。为实现平衡,通常需要一个可信第三方(TTP),但 TTP 也可能成为潜在瓶颈,因此 CSPs 还期望具备乐观性,即在双方正常遵循协议且无网络问题时,TTP 无需参与协议运行。
此前提出的一些平衡且乐观的 CSPs 协议,仅在特定假设下实现平衡,例如假设一方无法确保其消息先到达 TTP。而本文提出的协议放宽了这一假设,允许一方任意延迟与 TTP 之间的消息传递,但不能完全阻止消息传递。该协议实现了一种概率意义上的平衡:在 (n + 1) 轮版本中,若一方有以概率 pr 解决协议的策略,那么其中止协议的策略成功概率不大于 1 + 1/n - pr。
此外,本文还提出了一个形式化框架,用于证明使用签名方案的一类概率协议的安全属性。该模型是 Dolev - Yao 风格的符号模型,并基于 [BR93] 赋予其计算语义。主要结果是,一类特定公式的有效性在从符号设置转换到计算设置时得以保留,即符号设置在计算上是可靠的。结合协议在符号设置下的平衡性以及平衡可以用交替时间时态逻辑表达,可得出协议在计算设置下(单会话)也是平衡的。
1.1 相关工作
- 在 [KKW05] 中,引入了 CSPs 平衡性的符号定义,并证明了判断 CSP 是否平衡的问题是可判定的。
- [KKT07] 证明了用 μ - 演算(ATL 的扩展)指定的安全属性的可判定性。
- 平衡性的概念最早在 [CKS01] 中定义,[CMSS05] 建立了关于平衡性的一个不可能结果。
- [KR03] 和 [KR02] 展示了如何使用 ATL 公式指定加密协议的安全属性,特别是处理了 CSPs。
- [CKW07] 提出了一个用于分析分支时间安全属性的计算模型,包括平衡性的计算定义。
1.2 协议对比
本文协议与 Ben - Or 等人的 CSP 有相似之处,双方签署者都交换消息,这些消息使他们从 TTP 获得替换合约的能力逐渐增强。但 TTP 的行为有很大不同:在本文协议中,若诚实的一方从 TTP 得到拒绝响应,可确定 TTP 不会再处理另一方的请求;而在 [BOGMR90] 的协议中并非如此,例如当一方发送第一条消息后,无法阻止另一方在后续尝试解决合约,导致状态对该方既不及时也不平衡。在 [BOGMR90] 中,解决和中止协议的概率之和可能为 2,而本文协议为 1 + 1/n。
2 渐进承诺协议(GCP)
2.1 不平衡度的概率度量
非正式地说,若在某些情况下,不诚实方既有中止协议运行(阻止诚实方获得有效合约)的策略,又有解决协议运行(获得有效合约)的策略,则合约签署协议是不平衡的。本文定义了不平衡度的概率度量:若不诚实方有以概率 ϵa 从某状态导致中止,且有以概率 ϵr 从该状态导致解决的策略,且 ϵa + ϵr ≥ 1 + ϵ,则该状态的不平衡度至少为 ϵ。可以观察到:
- 对于一方已获得合约的每个状态,不平衡度至少为 0。
- 对于无随机性的不平衡协议,不平衡度至少(且至多)为 1。
本文协议旨在保证低不平衡度,参数为 n 的版本中,任何可达状态的不平衡度不大于 1/n。
2.2 协议流程
协议基于“渐进承诺”的思想,参数为 n 的版本进行 n + 1 轮,确保轮次越靠后,解决协议运行的概率越高,而中止协议运行的概率越低,从而使任何状态的不平衡度都较低。
在协议的正常运行中,签约双方交换 2n + 2 个承诺,记为 CMTiX,其中 X ∈ {O, R},i ∈ {1, …, n + 1}。首先,发起方 O 发送 CMT1O,然后响应方 R 发送 CMT1R,依此类推,最后一个承诺是 CMTn + 1R。最后两个承诺的对 ⟨CMTn + 1O, CMTn + 1R⟩ 是有效合约。承诺的定义为:
CMTiX = [text, O, R, T, i]X
其中 text 是双方要签署的文档,O 和 R 是双方的标识符,T 是可解决冲突的可信第三方(TTP)的标识符,i 是轮数。符号 [·]X 表示消息及其签名。
对于 i ∈ {1, …, n},承诺 CMTiO 可由 R 用于向 TTP 形成解决请求 RRiR,类似地,CMTiR 可由 O 形成解决请求 RRiO,具体格式为:
RRiO = [CMTi + 1O, CMTiR]O
RRiR = [CMTiO, CMTiR]R
此外,O 始终可以形成一个解决请求(无需收到 R 的任何承诺):RR0O = [CMT1O, abort]O,其中 abort 是一个固定令牌。
T 对 m = RRiX 的可能回复是替换合约 R - CTRiX = [m]T,被识别为有效合约,或拒绝 RTiX = [m, rejected]T,其中 rejected 是如 abort 一样的固定令牌。
2.3 TTP 处理规则
为了制定 T 处理传入解决请求的规则,定义了解决请求之间的关系 <:若 i < j,则 RRiR < RRjO;若 i + 1 < j,则 RRiO < RRjR。这意味着若 m < m′ 且 m 是 X 的解决请求,则 m 包含的 X 的承诺比 m′ 弱。当 T 收到消息 m = RRiX 时,按以下规则反应:
1. 若 m 是第一个请求,以概率 i/n 解决 m(即发送替换合约),以概率 (n - i)/n 拒绝(即发送拒绝)。
2. 若之前收到过 X 的任何请求,忽略 m。
3. 若之前收到过 ¯X 的请求,设为 m′,则:
- 若 m′ 已解决,则解决 m。
- 若 m′ 被拒绝且 m′ < m,则以概率 i/n 解决 m,以概率 (n - i)/n 拒绝。
- 若 m′ 被拒绝且 m′ ̸< m,则拒绝 m。
需要注意的是,若 TTP 拒绝一个解决请求,仍可能接受后续请求,但前提是发送第一个请求的一方“作弊”。
2.4 协议流程总结
| 步骤 | 操作 |
|---|---|
| 1 | 发起方 O 发送 CMT1O |
| 2 | 响应方 R 发送 CMT1R |
| … | … |
| 2n + 1 | 发起方 O 发送 CMTn + 1O |
| 2n + 2 | 响应方 R 发送 CMTn + 1R,形成有效合约 ⟨CMTn + 1O, CMTn + 1R⟩ |
| 解决请求 | 响应方 R 用 CMTiO 形成 RRiR,发起方 O 用 CMTiR 形成 RRiO 等 |
| TTP 处理 | 根据上述规则处理请求 |
下面是协议流程的 mermaid 流程图:
graph LR
classDef startend fill:#F5EBFF,stroke:#BE8FED,stroke-width:2px
classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px
classDef decision fill:#FFF6CC,stroke:#FFBC52,stroke-width:2px
A([开始]):::startend --> B(O 发送 CMT1O):::process
B --> C(R 发送 CMT1R):::process
C --> D(循环发送承诺):::process
D --> E(O 发送 CMTn + 1O):::process
E --> F(R 发送 CMTn + 1R):::process
F --> G{是否有解决请求}:::decision
G -- 是 --> H(形成解决请求):::process
H --> I{TTP 处理请求}:::decision
I -- 解决 --> J(发送替换合约):::process
I -- 拒绝 --> K(发送拒绝):::process
G -- 否 --> L([结束]):::startend
J --> L
K --> L
3 符号协议模型
3.1 变量、项和消息
- 身份和角色 :固定一个有限的身份集 Ids 和参与协议会话的角色数量 k,对手用 A 表示。
- 变量和项 :固定一个类型化的变量集 V,有对主体接受的传入消息中项的最大深度的限制。项由随机数和常量以通常的方式构造,每个主体(包括对手)都有唯一的随机数集。相关操作是配对和签名,项 t1 和 t2 的配对表示为 ⟨t1, t2⟩,项 t′ 用 A 的密钥签名表示为 sig(A, N, t′),其中 N 是用于明确捕获随机性的随机化随机数。
- 消息和替换 :消息是无变量的项,记消息集为 M。替换是部分函数 σ: V → M,用 dom(σ) 表示其定义域。对于项 t 和替换 σ,tσ 表示用 σ(x) 替换 t 中每个 x ∈ dom(σ) 出现的变量后得到的项。对于项 t、替换 σ 和 σ′ 以及消息 m,若 tσ′ = m 且对于每个 x ∈ dom(σ) 有 σ′(x) = σ(x)(并满足自然的深度和类型限制),则称 m 通过 σ′ 与 t 和 σ 匹配。
- 对手推导消息 :对于消息集 I 和(受损)主体集 C,从 I 中受损 C 可推导的消息集 d(I, C) 包含所有常量、对手生成的随机数,以及可以通过配对、解配对和用受损主体的密钥签名消息从 I 中获得的消息。
3.2 协议
3.2.1 协议规则类型
- 战略规则 :形式为 r −→d s,其中 r 和 s 是项,d ∈ N ∪ {A},表示 s 作为对 r 的反应发送给 d。
- 随机规则 :形式为 ϵ −→pd s,其中 p 是规则的概率。
3.2.2 角色定义
角色 Π = (V, E, v0, ℓ) 是一个有限的有向边标记树,其中 (V, E) 是以 v0 为根的树,ℓ 将每个边 (v, v′) ∈ E 标记为协议规则 ℓ(v, v′)。树 (V, E) 是角色树,其顶点是角色的(局部)状态。要求对于角色 Π,最多有一个身份 A 使得 Πi 使用属于 A 的随机数或以 A 的名义签署项,称 A 为 Π 的身份。
3.2.3 局部状态类型
-
随机局部状态
:顶点 v 满足:
- 所有出边都标记为形式为 ϵ −→pd s 的概率规则。
- 出边的概率之和为 1。
- 所有入边都标记为形式为 r −→d ϵ 的战略规则。
- 战略局部状态 :所有出边都标记为战略规则的状态。
3.2.4 角色分类
将角色分为网络接受角色和网络忽略角色,前者接受来自网络(即对手)的传入消息,后者忽略所有传入网络消息。在协议执行定义中,对手只能向网络接受规则发送消息。一个 k 角色协议是元组 Pr = (Π1, …, Πk, I0),其中每个 Πi 是协议角色,I0 是有限的消息集,即初始对手知识。假设不同的协议规则使用不相交的局部状态和变量集。
为使协议“现实”,角色只能创建自己的签名(但可以发送之前收到的签名),并且在签署不同项时必须使用不同的随机化。
3.3 符号协议执行
协议 Pr = (Π1, …, Πk, I0) 的全局状态是元组 q = (a, σ, v1, …, vk, I, C, m),其中:
- a ∈ {1, …, k} ∪ {A, S, K} 是活动角色,S 表示调度器,确定协议运行中的激活顺序,K 表示密钥生成器。
- σ 是替换。
- vi 是 Πi 的局部状态。
- I 是消息集。
- C ⊆ Ids ∪ {A},对于身份 a ∈ C,称 a 在 q 中受损。
- m 是当前等待处理的消息。
用 d(q) 表示 d(I, C)。定义一个包含 Pr 所有全局状态的图,Pr 的初始状态是 (K, ∅, v10, …, vk0, I0, {A}, ϵ),其中 vi0 是 Πi 的根。对于状态 q = (a, σ, v1, …, vk, I, C, m),其后续状态如下:
1.
密钥生成和初始化
:若 q 是初始状态,则有后续状态 (A, ∅, v10, …, vk0, I0, {A}, ϵ)。
2.
身份受损
:若 a = A 且 C = {A},则对于每个集合 C′ ⊆ Ids,q 有后续状态 (S, ∅, v10, …, vk0, I0, C′, ϵ),表示密钥生成后,对手可以使身份受损。
3.
对手发送
:假设 a = A 且 m = ϵ,设 m′ ∈ d(q) 是消息,且 i ≤ k 使得 Πi 是网络接受角色,则有后续状态 (i, σ, v1, …, vk, I, C, m′),模拟对手可以将消息 m′ 传递给任何网络接受角色,该角色接下来被激活。
4.
对手接收
:假设 a = A 且 m ̸= ϵ,则 q 有唯一的后续状态 (S, σ, v1, …, vk, I ∪ {m}, C, ϵ),模拟主体通过网络发送消息后,下一步是将该消息添加到对手知识中,在对手可以执行任何进一步操作之前,控制权返回给调度器。
5.
主体接收和发送
:若 a = i ∈ {1, …, k},则对于 vi 的每个后续 v′i,使得 ℓ(vi, v′i) 包含规则 r →d s 或 r −→pd s,且存在替换 σ′ 使得 m 通过 σ′ 与 r 和 σ 匹配,则有 q 的后续状态 (d, σ′, v1, …, vi - 1, v′i, vi + 1, …, vk, I, C, sσ′),前提是 d ̸= A 或 sσ′ ̸= ϵ。若 d = A 且 sσ′ = ϵ 或不存在上述 v′i,则 q 有后续状态 (S, σ′, v1, …, vk, I, C, ϵ),模拟角色发送的非空消息的接收者接下来被激活以处理该消息。
6.
激活调度
:若 a = S,则对于所有 a′ ∈ {A} ∪ {1, …, k} 有后续状态 (a′, σ, v1, …, vk, I, C, ϵ),模拟调度器可以激活任何角色(或对手)。
有一个例外规则:在唯一的 a = A 且 C = {A} 的状态(密钥生成后的状态),只允许通过“受损规则”获得的后续状态。
由于篇幅限制,上述协议模型的描述省略了一些重要细节,特别是避免“死循环”和无限协议运行的规则。
下面是符号协议执行流程的 mermaid 流程图:
graph LR
classDef startend fill:#F5EBFF,stroke:#BE8FED,stroke-width:2px
classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px
classDef decision fill:#FFF6CC,stroke:#FFBC52,stroke-width:2px
A([开始]):::startend --> B(密钥生成和初始化):::process
B --> C{身份受损?}:::decision
C -- 是 --> D(身份受损操作):::process
C -- 否 --> E{对手发送?}:::decision
D --> E
E -- 是 --> F(对手发送消息):::process
E -- 否 --> G{对手接收?}:::decision
F --> H{主体接收和发送?}:::decision
G -- 是 --> I(对手接收消息):::process
G -- 否 --> J{激活调度?}:::decision
I --> H
H -- 是 --> K(主体处理消息):::process
H -- 否 --> J
K --> J
J -- 是 --> L(调度激活角色):::process
J -- 否 --> M([结束]):::startend
L --> E
综上所述,本文提出的概率合约签署协议在放宽假设的情况下实现了平衡,同时提供的形式化框架为分析协议的安全属性提供了有力工具。通过符号协议模型,可以更清晰地理解协议的执行过程和状态转换。在后续部分,将进一步探讨协议在计算设置下的相关性质以及如何利用符号设置和计算设置之间的联系来证明协议的安全性。
4 计算设置下的协议分析
4.1 计算语义的引入
为了在计算设置下分析协议,我们基于 [BR93] 为符号模型赋予计算语义。这意味着我们要将符号模型中的抽象概念和操作转化为实际的计算过程,以便能够评估协议在现实计算环境中的安全性。
在计算语义中,消息的签名、加密等操作都对应着具体的密码学算法。例如,符号模型中的签名操作 sig(A, N, t′) 在计算语义中可能对应着使用 A 的私钥对 t′ 进行数字签名的具体算法,如 RSA 签名算法。这样,我们就可以模拟协议在实际计算环境中的运行,考虑到计算资源的限制、随机数的生成等实际因素。
4.2 概率交替时间时态公式的解释
我们使用概率交替时间时态逻辑(PATL)来描述协议的安全属性。PATL 公式可以表达协议中各方的策略和协议的时态性质,例如“在某个状态下,一方有至少 0.8 的概率在未来某个时刻获得有效合约”。
在符号模型和计算模型中,PATL 公式的解释有所不同。在符号模型中,我们基于状态转换和规则来判断公式的有效性;而在计算模型中,我们需要考虑实际的计算过程和概率分布。例如,对于一个表示平衡性质的 PATL 公式,在符号模型中我们可以通过分析状态和策略来判断其是否成立;在计算模型中,我们需要模拟协议的多次运行,统计各方策略的成功概率,从而验证公式的有效性。
4.3 符号设置到计算设置的转换
本文的一个重要结果是证明了一类特定的 PATL 公式的有效性在从符号设置转换到计算设置时得以保留。这意味着,如果一个协议在符号设置下满足某个安全属性(用 PATL 公式表示),那么在计算设置下该协议也大概率满足这个属性。
证明这个结果的关键在于建立符号模型和计算模型之间的对应关系。我们通过定义合适的映射,将符号模型中的状态、操作和策略映射到计算模型中的相应概念。例如,符号模型中的消息推导操作对应着计算模型中的密码学算法执行和数据处理过程。
为了更直观地理解这个转换过程,我们可以用以下表格来总结符号模型和计算模型的对应关系:
| 符号模型概念 | 计算模型对应概念 |
| ---- | ---- |
| 消息 | 二进制数据 |
| 签名操作 | 具体的数字签名算法 |
| 策略 | 程序代码或算法 |
| 状态 | 计算系统的状态(内存、寄存器等) |
4.4 协议在计算设置下的平衡性证明
结合协议在符号设置下的平衡性以及符号设置到计算设置的转换结果,我们可以证明协议在计算设置下(单会话)也是平衡的。
具体来说,我们首先在符号模型中证明协议满足表示平衡性质的 PATL 公式。然后,利用上述的转换结果,得出该公式在计算模型中也大概率成立。这就意味着,在实际的计算环境中,协议也能实现平衡,即一方不能同时拥有高概率的解决协议和中止协议的策略。
以下是证明协议在计算设置下平衡性的步骤总结:
1. 在符号模型中,使用符号协议模型分析协议的状态和策略,证明协议满足平衡性质的 PATL 公式。
2. 建立符号模型和计算模型之间的映射,证明一类特定的 PATL 公式在转换过程中有效性得以保留。
3. 根据上述结果,得出协议在计算设置下(单会话)满足平衡性质的结论。
4.5 计算设置下的策略分析
在计算模型中,我们可以更深入地分析各方的策略。例如,我们可以考虑策略的复杂度、执行时间等实际因素。
对于不诚实方的策略,我们可以分析其在计算资源有限的情况下是否能够有效执行。如果一个策略需要大量的计算资源或时间才能实现,那么在实际计算环境中可能并不可行。
我们还可以研究策略的适应性,即策略在不同的协议状态和环境下的表现。例如,在某些状态下,一方的策略可能非常有效,但在其他状态下可能效果不佳。通过分析策略的适应性,我们可以更好地评估协议的安全性和鲁棒性。
5 协议的优势与应用场景
5.1 协议的优势
- 放宽假设下的平衡 :本文协议放宽了之前协议中关于消息传递的假设,允许一方任意延迟与 TTP 之间的消息传递,但仍能实现平衡。这使得协议在更复杂的网络环境中具有更好的适用性。
- 低不平衡度 :协议通过渐进承诺的方式,使得任何可达状态的不平衡度不大于 1/n。这意味着在协议运行过程中,各方的权益得到了更好的保障,减少了一方利用不平衡状态获取不当利益的可能性。
- 计算可靠性 :符号设置在计算上是可靠的,即符号模型中证明的安全属性在计算设置下也大概率成立。这为协议在实际计算环境中的应用提供了坚实的理论基础。
5.2 应用场景
- 电子商务 :在电子商务交易中,合约签署是一个重要的环节。本文协议可以用于保障买卖双方的权益,确保交易的公平性和安全性。例如,在在线购物中,买卖双方可以使用该协议签署购买合同,避免一方在交易过程中恶意中止或解决合同。
- 金融领域 :在金融交易中,如贷款协议、投资合同等的签署,也需要保障各方的权益。该协议可以应用于这些场景,防止一方利用信息优势或策略优势获取不当利益。
- 分布式系统 :在分布式系统中,不同节点之间的协作和交互也需要安全的合约签署机制。本文协议可以为分布式系统提供一种可靠的合约签署解决方案,确保节点之间的合作是公平和安全的。
6 总结与展望
6.1 总结
本文提出了一种概率合约签署协议,该协议在放宽假设的情况下实现了平衡,并且通过渐进承诺的方式降低了不平衡度。同时,我们提供了一个形式化框架,包括符号协议模型和计算语义,用于分析协议的安全属性。通过证明符号设置到计算设置的转换结果,我们得出协议在计算设置下(单会话)也是平衡的结论。
6.2 展望
- 多会话情况的研究 :本文主要研究了协议在单会话情况下的安全性。未来可以进一步研究协议在多会话情况下的表现,考虑多个会话之间的交互和影响,以及如何确保协议在多会话环境下的安全性和平衡性。
- 与其他协议的结合 :可以探索将本文协议与其他安全协议相结合,以实现更复杂的安全目标。例如,将合约签署协议与密钥交换协议相结合,提供更全面的安全保障。
- 实际应用的验证 :虽然本文从理论上证明了协议的安全性,但还需要在实际应用中进行验证。未来可以开展实际的实验和测试,评估协议在实际网络环境中的性能和安全性。
| 研究方向 | 具体内容 |
|---|---|
| 多会话情况研究 | 考虑多个会话交互和影响,确保多会话环境下的安全性和平衡性 |
| 与其他协议结合 | 将合约签署协议与密钥交换协议等结合,实现更复杂安全目标 |
| 实际应用验证 | 开展实际实验和测试,评估协议在实际网络环境中的性能和安全性 |
下面是协议研究方向的 mermaid 流程图:
graph LR
classDef startend fill:#F5EBFF,stroke:#BE8FED,stroke-width:2px
classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px
A([当前协议研究]):::startend --> B(多会话情况研究):::process
A --> C(与其他协议结合):::process
A --> D(实际应用验证):::process
B --> E([未来研究成果]):::startend
C --> E
D --> E
综上所述,本文的研究为概率合约签署协议的设计和分析提供了新的思路和方法。通过不断的研究和改进,我们有望将该协议应用于更多的实际场景,为保障信息安全和公平交易做出贡献。
超级会员免费看
883

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



