基于仿射行列式程序的多方非交互密钥交换方案解析

立即解锁
发布时间: 2025-08-31 01:29:14 阅读量: 18 订阅数: 35 AIGC
PDF

可证明与实用安全研究

### 基于仿射行列式程序的多方非交互密钥交换方案解析 在密码学领域,密钥交换是一项至关重要的技术。多方非交互密钥交换(NIKE)方案能够让 N 个用户以非交互的方式安全地交换一个秘密密钥 K。传统上,NIKE 方案的构建往往依赖于不可区分混淆(iO)等复杂的概念。本文将介绍一种新的 NIKE 方案实例,它通过使用仿射行列式程序(ADP)来简化原本基于 iO 的构造。 #### 1. 背景知识 在深入探讨新的 NIKE 方案之前,我们需要了解一些必要的背景知识。 - **随机编码**:随机编码方案 RE 用于函数 $f: \{0, 1\}^n \to Y$,由随机分布 R、编码函数 Encode 和译码函数 Decode 组成。它需要满足正确性和安全性要求。正确性指对于任何输入 $M \in \{0, 1\}^n$,$Pr_{R \leftarrow R}[Decode(Encode(M; R)) = C(M)] = 1$;安全性则要求对于所有 $M, M' \in \{0, 1\}^n$ 且 $C(M) = C(M')$,当 $R \leftarrow_R$ 时,$Encode(M; R)$ 和 $Encode(M'; R)$ 的分布相同。安全性定义可以放宽为 $(s, \delta)$ - 安全性,即对于大小至多为 s 的任何电路 $C: \{0, 1\}^{\ell} \to \{0, 1\}$,$Pr_{R \leftarrow_R}[C(Encode(M; R)) = 1] - Pr_{R \leftarrow_R}[C(Encode(M'; R)) = 1] \leq \delta$。 - **多方非交互密钥交换**:NIKE 方案由三个多项式时间算法(Setup、Publish、KeyGen)组成。 - $pars \leftarrow_R Setup(1^{\lambda}, N)$:根据安全参数 $\lambda$ 和参与方数量 N 生成公共参数 pars。 - $(pk(u), sk(u)) \leftarrow_R Publish(pars, u)$:每个参与方 u 生成自己的公钥 $pk(u)$ 和私钥 $sk(u)$,私钥保密,公钥公开。 - $K \leftarrow_R KeyGen(pars, u, sk(u), pk(u), pk(v \in S))$:参与方 u 使用自己的私钥和其他参与方的公钥生成共同密钥 K。 正确性要求任意两个参与方 u 和 v 生成的密钥相同,即 $\forall (u, v) \in [N] \times [N] : Pr[K_u = K_v | K_u \leftarrow_R KeyGen(pars, u, sk(u), pk(v \in [N])) \land K_v \leftarrow_R KeyGen(pars, v, sk(v), pk(u \in [N]))] \in 1 - Negl(\lambda)$。安全性方面,任何概率多项式时间(ppt)有界的对手在特定游戏中获胜的优势是可忽略的。 - **仿射行列式程序**:ADP 由两个 ppt 算法组成。 - $Prog \leftarrow_R ADP.Setup(1^{\lambda}, C)$:根据电路描述 C 输出一个程序 Prog,它由 n + 1 个方阵 $T_i$ 组成,这些矩阵对应于函数 $C: \{0, 1\}^n \to \{0, 1\}$。 - $b \leftarrow ADP.Eval(Prog, M)$:根据程序 Prog 和输入 M,通过计算子集和 $T_0 + \sum_{i = 1}^{n} T_{M_i}^i$ 的行列式得到输出值 b。 ADP 需要满足正确性和安全性要求。正确性指对于所有 $M \in \{0, 1\}^n$,$Pr[C(M) = ADP.Eval(Prog, M) | Prog \leftarrow_R ADP.Setup(1^{\lambda}, C)] = 1$;安全性要求对于特定类别的电路 $C_{\lambda}$ 中的任意 $C_1, C_2$,如果 $\forall M \in \{0, 1\}^{\lambda}, C_1(M) = C_2(M)$,则 $|Pr[b \leftarrow_R A(1^{\lambda}, Prog) | b \leftarrow_R \{0, 1\} \land Prog \leftarrow_R ADP.Setup(1^{\lambda}, C_b)] - \frac{1}{2}| \in Negl(\lambda)$。 #### 2. 先前的 NIKE 工作 Boneh 和 Zhandry 提出的基于 iO 的 NIKE 协议是一个简单的多方非交互密钥交换方案。假设 N 个参与者可以访问一组公共参数 pp。每个参与者计算并发布指定给其余 N - 1 个实体的项。
corwn 最低0.47元/天 解锁专栏
买1年送3月
继续阅读 点击查看下一篇
profit 400次 会员资源下载次数
profit 300万+ 优质博客文章
profit 1000万+ 优质下载资源
profit 1000万+ 优质文库回答
复制全文

相关推荐

史东来

安全技术专家
复旦大学计算机硕士,资深安全技术专家,曾在知名的大型科技公司担任安全技术工程师,负责公司整体安全架构设计和实施。
最低0.47元/天 解锁专栏
买1年送3月
百万级 高质量VIP文章无限畅学
千万级 优质资源任意下载
千万级 优质文库回答免费看
立即解锁

专栏目录

最新推荐

数据库持久化:从基础到高级应用

# 数据库持久化:从基础到高级应用 ## 1. 数据库系统概述 数据库系统能够持久化存储数据以及数据之间的关系。关系数据库管理系统(RDBMS)是常见的数据库类型之一,它具备创建、读取、更新和删除存储在其中的表的功能。这些表类似于之前示例中使用的 CSV 文件所代表的二维表。 RDBMS 系统还可以通过跨表边界连接唯一 ID 值来创建和更新表之间的关系。与使用文件持久化信息相比,数据库系统的一个优势在于,数据的创建、更新和维护由数据库处理,而不是由应用程序代码处理。 ### 1.1 表的概念 表代表数据库维护的数据。从概念上讲,数据库中的表是行和列的二维集合。与之前介绍的 CSV 文件类

创建可演进的软件架构

# 创建可演进的软件架构 ## 1. 应对需求变化的挑战 在软件开发项目中,需求的波动性,即客户需求的不断变化,是不可避免的挑战。随着时间推移,产品需求和上下文都会改变,应用程序也必须随之改变。然而,需求的变化可能导致软件不稳定,甚至使开发脱轨。为了应对需求的波动性,管理者通常会采用迭代开发流程,如敏捷开发。而开发者可以通过构建可演进的架构来适应需求的变化。可演进的架构应避免复杂性,因为复杂性是可演进性的敌人。 ## 2. 理解软件复杂性 复杂性是指与系统结构相关的、使系统难以理解和修改的因素。复杂系统通常具有高依赖性、高模糊性和高惯性这三个特征: ### 2.1 高依赖性 软件依赖其他代

敏捷项目管理:从团队到组织的全面实践

### 敏捷项目管理:从团队到组织的全面实践 #### 1. 风险管理策略选择 在项目管理中,风险管理策略的选择至关重要。以下是选择传统风险管理和专注于敏捷内置风险管理的标准对比: | 选择传统风险管理 | 专注于敏捷内置风险管理 | | --- | --- | | 大范围新产品或功能 | 现有产品的持续功能发布 | | 高度规模化的长期交付物(例如,七个到九个或更多团队,超过六个冲刺) | 较小规模的交付物(少于七个团队,少于六个冲刺) | | 合规性和其他监管要求 | 组织环境外无特定合规或监管要求 | #### 2. 敏捷组织中的采购管理 采购管理是项目管理中的重要环节,从敏捷的角度

网络自动化中的持续集成:构建自动化与部署策略

### 网络自动化中的持续集成:构建自动化与部署策略 #### 1. 构建自动化 构建自动化是一个极其重要的话题,它主要源于使用持续集成(CI)工具自动编译或安装软件以进行测试。例如,用C语言编写的程序在测试环境中运行之前必须先进行编译。 在我们的流程中,不一定是在编译软件,但可以复用软件开发人员希望对仓库中每个提议的更改自动执行的许多任务。例如,Python项目的流程可能会执行静态代码分析,以确保代码符合Python的风格指南PEP 8。在网络自动化环境中,我们可能只是对YAML文件进行更改,但也可以执行类似的检查,以自动处理一些我们不希望人工审核人员处理的简单事情,比如验证文件是否为有

基于模型的系统工程验证与验证框架解析

# 基于模型的系统工程验证与验证框架解析 ## 1. 过程视图映射与合规性分析 在系统工程中,源和目标过程模型里的过程行为视图会映射到过程内容视图。过程实例视图展示了按特定顺序执行流程,以验证过程上下文视图中的原始用例。通常,这类视图仅存在于源过程模型中,因其包含特定过程的详细信息,不过也可用于验证源模型是否满足目标模型的上下文要求。 在进行映射时,能识别出目标和源过程模型的合规情况以及合规差距。解决合规差距通常有两种方式: - **提供不合规理由**:例如目标过程模型中的某个过程超出范围。 - **修改源过程模型**:若无法为不合规提供理由,则需更新源模型,如添加新过程、工件或活动来消除

功能点:软件开发全方位度量的利器

### 功能点:软件开发全方位度量的利器 在软件开发领域,准确的度量指标对于评估软件质量、成本和性能至关重要。功能点作为一种关键的度量指标,在软件质量分析、维护、增强以及项目管理等多个方面都发挥着重要作用。 #### 1. 功能点用于软件质量分析 功能点是软件质量分析的最佳度量指标。传统的“每个缺陷成本”度量方法不仅不利于质量提升,还违背了标准的经济假设。使用功能点度量来分析质量经济情况,比其他任何方法都更为有效。 功能点在质量分析方面的一个关键优势是,它能够预测需求、设计以及代码中的缺陷。在大型应用程序中,需求和设计缺陷的数量往往超过代码缺陷。以下是一个瀑布式项目(1000 功能点,C

法律合规下的遥测数据管理

# 法律合规下的遥测数据管理 ## 1. 法律保留数据的存储考量 在处理法律保留数据时,若数据量较大,为法律保留数据单独运行一个集群是合理的。如果你已经在使用开源 Kibana 并这样做了,将第二个集群保持在旧版本会更容易。这样做可以避免询问律师索引升级是否会破坏数据。 ## 2. 基于 Sumo Logic 的集中日志系统分析 ### 2.1 架构概述 生产环境通过两种方式将所有遥测数据发送到 Sumo Logic:直接发送到 SaaS 或使用本地代理发送。遥测数据最终进入路由器,路由器决定数据将存储在哪些分区。分区是定义保留策略的地方,也是计费的关键。一个遥测数据可能会落在多个分区,落

Java编程实用知识与代码解析

### Java编程实用知识与代码解析 #### 1. BeatBoxFinal客户端程序 BeatBoxFinal是一个完整版本的BeatBox程序,它能连接到简单的MusicServer,实现与其他客户端收发节奏模式的功能。当点击“sendIt”按钮时,你的消息和当前节奏模式会发送给其他玩家。点击收到的消息可加载对应的节奏模式,再点击“Start”即可播放。 以下是BeatBoxFinal类的代码: ```java import javax.sound.midi.*; import javax.swing.*; import javax.swing.event.*; import ja

数据库设计与操作全解析

### 数据库设计与操作全解析 #### 1. 数据库用户权限与安全 - **权限限制**:用户权限应严格受限,仅赋予系统实际需要的操作权限。例如,若系统无需删除数据或表,就不应给予用户相应删除权限,且绝不能让二级用户名拥有更改权限的权限。 - **IP 地址关联**:可将用户名与 IP 地址关联,限定用户从特定位置、区域或国家连接数据库服务器,但此方法并非万无一失。 #### 2. 数据库关键概念 - **主键**:每个表都应有主键,它是每行中唯一的标识符。数据库管理系统(DBMS)通常提供自动递增键来生成基于整数的主键,但使用不当可能引发安全问题,因为可猜测的主键可能被恶意利用。主键经