UC 安全

由 Canetti 提出 UC 框架(Universally Composable security framework)可以保证协议的通用可组合安全,即在与其他协议并发运行的情况下,或者作为一个系统的组件时,仍能保证协议的安全性。

UC 框架定义了两个组件

  • real model,真实的运行环境模型,包括运行协议的实体,其它并行的协议、攻击者等
  • ideal functionality,理想函数,表示系统的预期行为,该函数可为系统提供各种输入(合法输入和对抗输入)并被对手用于收集信息。预期行为既与目标输出的正确属性有关,也与不从外边观察到内部值的保密性有关

UC 框架还提供了一个基本的形式模型,用于表示通信计算元素的系统、协议或分布式程序。

  • $\pi$:protocol,真实环境中的协议
  • $F$:ideal functionality,理想函数
  • $Z$:environment,环境,如其它并行的协议、攻击者等
  • $P$:party,参与方
  • $A$:adversary,真实环境中的敌手
  • $S$:simulator,理想环境中的敌手

真实环境:$n$ 个参与方运行 $\pi$。假设有 $n+2$ 个机器,每个机器上运行一个程序 $\pi$,这些机器是 $P_1, ..P_n$,有一个机器是 $A$,还有一个机器是 $Z$。所有的机器都初始化了一个安全参数 $k$。$Z$ 先运行,其输入为 $z$。然后 $Z$ 激活了 $P_1, ..P_n$,为其设置了输入并读取它们的输出。$A$ 可以破坏 $P$ 并使其将信息泄露给自己。$A$ 和 $Z$ 可互相通信。让 $REAL_{\pi, A, Z}(1^k, z)$ 来表示输出。

在建模网络上机器之间的通信时,为简单起见,假设各方通过经过认证但有损的广播信道进行连接:假设所有 $P$ 都有一个通道子机 $C$,当 $P_i$ 将消息输给 $C$ 时,$C$ 会记录 $(P_i, m)$,并报告给 $A$。当 $P_j$ 向 $C$ 查询新消息时,$C$ 会通知 $A$,并等待 $A$ 来决定将哪些消息子集 $s$ 返回给 $P_j$。

理想环境:$P$ 不运行 $\pi$,而是将所有的输入都交给 $F$,$F$ 在本地处理输入并将输出返回给 $P$。让 $IDEAL_{F, S, Z}(1^k, z)$ 表示输出。

1.png

定义:称 $\pi$ 实现了 $F$,当且仅当对于任意 $A$,都存在 $S$,使得任意 $Z$,都会得到 $REAL_{\pi, A, Z}(1^k, z) = IDEAL_{F, S, Z}(1^k, z)$。即 $Z$ 无法区分真实世界和理想世界。

在 UC 框架下设计协议的困难所在和核心内容就在于形式化和抽象一个完美的并且可以安全实现的理想函数 $F$。

更详细的解释可查看 https://www.cnblogs.com/pam-sh/p/16383012.html

CMP20 UC 安全分析

以为 keygen 为例,设计的理想函数 $F$ 为

22.png

模拟:
23.png

参考

Ran Canetti. UC Non-Interactive, Proactive, Threshold ECDSA

张俊伟, 马建峰, 杨超. 安全定位协议的 UC 模型