当前位置: 首页 > news >正文

AIM: Symmetric Primitive for Shorter Signatures with Stronger Security

目录

  • 笔记
  • 后续的研究方向
  • 摘要
  • 引言
    • 贡献

AIM: Symmetric Primitive for Shorter Signatures with Stronger Security
CCS 2023

在这里插入图片描述

笔记

后续的研究方向

摘要

基于头部MPC(MPCitH)范式的后量子签名方案最近引起了人们的极大关注,因为它们的安全性仅取决于底层原语的单向性,为后量子密码学中的硬度假设提供了多样性。最近的MPCitH友好密码是使用在大域上操作的简单代数S盒来设计的,以提高所得签名方案的性能。由于其代数结构简单,因此应全面研究其对抗代数攻击的安全性。

在本文中,我们改进了二进制扩展域上基于幂映射的S盒的代数密码分析,以及基于这种S盒的密码原语。特别是,对于F2上的Groübner基攻击,我们通过实验证明,从底层S盒获得的布尔二次方程的确切数量对于正确估计理论复杂性至关重要基于规则性的程度。同样,当从S盒中找到并使用所有可能的二次方程时,XL攻击可能会更快。这种精细的密码分析导致基于代数S盒的密码原语的更精确的代数分析。

考虑到精细的代数密码分析,我们提出了一种新的单向函数,称为AIM,作为一种MPCitH友好的对称原语,具有很高的代数攻击抵抗力。从代数攻击、统计攻击、量子攻击和一般攻击等方面全面分析了AIM的安全性。AIM与BN++证明系统相结合,产生了一种新的签名方案,称为AIMer。我们的实现表明,AIMer在签名大小和签名时间方面优于现有的基于对称基元的签名方案。

引言

近年来,随着对量子计算机的大量研究,量子计算机带来的安全威胁正在迅速成为现实。密码学在量子计算环境中被认为是特别危险的,因为最广泛使用的公钥方案的安全性依赖于因子分解或离散对数的硬度,而这是用量子计算机在多项式时间内解决的[89]。这鼓励密码社区研究对量子攻击具有弹性的后量子密码方案。NIST发起了一场后量子密码术(PQC)标准化竞赛,最近宣布了其选定的算法:CRYSTAL Kyber[87]作为公钥加密方案,CRYSTAL Dilithium[79]、Falcon[83]和SPHINCS+[55]作为数字签名方案。

基于头部的签名中的MPC。Ishai等人[56]提出的头部MPC(MPCitH)是一种从多方计算(MPC)协议构建零知识证明(ZKP)系统的范例。它的实用性通过ZKBoo方案得到了证明,这是Giacomelli等人提出的第一个有效的基于MPCitH的证明方案。[48]。MPCitH范式的主要应用之一是构建如下的后量子签名。给定一个单向函数𝑓和一个输入输出对(𝑥, 𝑦)使得𝑓(𝑥) = 𝑦,可以构造具有密钥的数字签名方案𝑥,公钥𝑦,和秘密的知识的非交互式零知识证明(NIZKPoK)𝑥作为签名。

基于MPCitH的签名方案的主要优点是,它们的安全性仅取决于密钥生成中使用的单向函数的安全性,这使得它们与安全性基于某些数学问题的硬度假设的方案相比更可靠,这些数学问题在安全性降低方面存在潜在差距。例如,多元签名方案Rainbow[34]最近通过利用其硬度假设和实际安全性之间的差距而被打破[19]。此外,基于同源性的密钥交换算法SIKE[60]揭示了其弱点,因为其安全假设不成立[23]。在这种情况下,基于MPCitH的签名方案吸引了人们的极大关注,因为它们为潜在的硬度假设提供了多样性。NIST最近呼吁增加数字签名方案[82],也表达了对非基于结构化格的签名方案的主要兴趣。

Picnic[24]是第一个也是最著名的基于MPCitH范式的签名方案;它结合了MPC友好的分组密码LowMC[3]和称为ZKB++的MPCitH证明系统,ZKB++是ZKBoo的优化变体。Katz等人[62]通过预处理进一步提高ZKB++的效率,提出了一种新的证明系统KKW,并相应地更新了Picnic。Picnic的更新版本是唯一一个晋级NIST PQC第三轮比赛的基于ZKP的方案。

LowMC是一种相对较新的设计,它可以在MPC环境中有效地计算,其中与XOR相比,AND运算非常昂贵。LowMC受到了各种攻击,部分原因是LowMC挑战1,其中一些攻击有效[10,11,38,39,72,75,76,84],LowMC参数也进行了相应的修改。由于针对LowMC的安全问题,有人试图从标准AES分组密码的单向性构建基于MPCitH的签名方案。2这样,从AES的单一评估中恢复密钥的难度降低到了基于签名方案的安全性。BBQ[31]和Banque[15]是基于AES的签名方案,其中BBQ采用KKW证明系统,Banquet通过为中间状态注入份额来改进BBQ。

为了在宴会证明系统中充分利用大域上的有效乘法,Dobraunig等人提出了MPCitH友好密码LS-AES和Rain。它们是基于大域上的逆S盒的置换置换密码[40]。这种设计策略提高了基于MPCitH的签名方案的效率,同时由于其代数结构简单,应通过对任何可能的代数攻击进行综合分析来仔细确定轮数。Kales和Zaverucha[61]提出了许多优化技术来进一步提高Baum和Nof证明系统的效率[14],他们的变体被称为BN++。当Rain与BN++相结合时,据我们所知,在相同的签名/验证时间水平下(与现有的基于MPCitH的签名相比),得到的签名方案具有最短的签名大小。

最近,在MPCitH范式中考虑了许多计算问题,如综合症解码问题[45]、子集和问题[46]、多元二次问题和格问题[18,20]。还研究了交替模量的PRF[37]。这些方案中的大多数都是基于众所周知的安全假设,而它们的性能通常不具有竞争力,因此我们认为它们与我们的基于对称基元的方案相当正交。

贡献

本文的主要贡献有两个方面。首先,我们改进了二进制扩展域上基于幂映射的S盒的代数密码分析,以及基于这种S盒的密码原语。特别是,我们关注Groübner基和XL(扩展线性化)攻击,因为它们允许人们仅从单向函数的单个求值来求解方程组,这是在基于MPCitH的签名方案中使用的情况。以前关于大域上对称基元的大多数工作仅在大域上分析了它们对Groübner基攻击的安全性[1,4,40,49]。Dobraunig等人考虑了对F2的分析[40],但只处理高次方程。我们使用中间变量将Groübner基攻击应用于F2上的低阶方程组。当谈到F2上的Groübner基攻击时,我们通过实验证明,从底层S盒获得的布尔二次方程的确切数量对于基于正则度正确估计理论复杂度至关重要。同样,当从S盒中找到并使用所有可能的二次方程时,XL攻击可能会更快。这些结果导致了基于代数S盒的密码原语的更精确的代数分析。

其次,根据基于精细代数密码分析的设计原理,我们提出了一种新的单向函数,称为AIM3,作为一种MPCitH友好的对称原语,具有很高的代数攻击抵抗力。AIM使用基于幂映射的梅森S盒,幂映射具有形式2的指数𝑒 −1.与典型的逆S盒相比,Mersenne S盒对代数攻击具有更高的抵抗力。从代数攻击、统计攻击、量子攻击和一般攻击等方面全面分析了AIM的安全性。AIM与BN++证明系统相结合,BN++证明是最先进的MPCitH证明系统之一,适用于大型领域,产生了一种新的签名方案,称为AIMer。AIM函数旨在充分利用BN++证明系统的各种优化技术,在不显著牺牲签名和验证时间的情况下减少整体签名大小。

我们实现了AIMer签名方案,并将其基准与同一机器上现有的后量子签名进行了比较。我们的实施可在https://anonymous.4open.science/r/AMER-CCS23,结果总结在第6节中。与基于BN++证明系统和3轮(分别为4轮)Rain相结合的签名方案相比,AIMer在128位安全级别下,签名大小缩短了8.21%(分别为21.15%),签名性能提高了1.22%(分别为13.41%)𝑁被设置为16。

相关文章:

AIM: Symmetric Primitive for Shorter Signatures with Stronger Security

目录 笔记后续的研究方向摘要引言贡献 AIM: Symmetric Primitive for Shorter Signatures with Stronger Security CCS 2023 笔记 后续的研究方向 摘要 基于头部MPC(MPCitH)范式的后量子签名方案最近引起了人们的极大关注,因为它们的安全性…...

【 Go语言使用xorm框架操作数据库】

Go语言使用xorm框架操作数据库 Xorm 是一个简单而强大的Go语言ORM(对象关系映射)库。它支持自动将结构体映射到数据库表,并提供了一系列便捷的API来执行CRUD(创建、读取、更新和删除)操作。 安装 Xorm 首先&#xf…...

DouyinAPI接口系列丨Douyin商品详情数据接口丨Douyin视频详情数据接口

抖音商品详情API是抖音开放平台提供的一套API接口,用于获取商品详情信息。通过该API,开发者可以获取到商品的详细信息,包括商品ID、名称、描述、价格、销量、评价等信息。 在使用抖音商品详情API之前,需要先注册并登录抖音开放平…...

旺店通对接中国南方电网,打破跨系统连接,让数据轻易互通成为现实

接入系统:旺店通企业版 旺店通是北京掌上先机网络科技有限公司旗下品牌,国内的零售云服务提供商,基于云计算SaaS服务模式,以体系化解决方案,助力零售企业数字化智能化管理升级。为零售电商企业的订单管理及仓储管理提供…...

简介Kadane算法及相关的普通动态规划

简介Kadane算法及相关的普通动态规划 本文详细论述Kadane算法的经典题目,并通过“首先列出动态规划解法,再改为Kadane算法解法”的方式,讲解二者的不同。最后给出一道Kadane算法变体的题目,解法极为简洁优美。 Kadane算法也是一…...

校园教务管理系统

学年论文(课程设计) 题目: 信息管理系统 校园教务管理系统 摘要:数据库技术是现代信息科学与技术的重要组成部分,是计算机数据处理与信息管理系统的核心,随着计算机技术的发展,数据库技…...

【LeetCode热题100】【双指针】接雨水

给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。 示例 1: 输入:height [0,1,0,2,1,0,1,3,2,1,2,1] 输出:6 解释:上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] …...

软件工程-(可行性分析、需求分析)

目录 一.可行性研究 1.1定义 1.2项目背景 1.3三方面研究目标系统的可行性 1.3.1技术可行性分析 1.3.2 经济可行性分析 1.3.3 市场可行性分析 1.4. 数据流图 数据字典(DD) 1.5风险评估 1.6结论与建议 二、需求分析 引言 项目概述 利益相关者分析…...

HuggingFace学习笔记--BitFit高效微调

1--BitFit高效微调 BitFit,全称是 bias-term fine-tuning,其高效微调只去微调带有 bias 的参数,其余参数全部固定; 2--实例代码 from datasets import load_from_disk from transformers import AutoTokenizer, AutoModelForCaus…...

阅读笔记|A Survey of Large Language Models

阅读笔记 模型选择:是否一定要选择参数量巨大的模型?如果需要更好的泛化能力,用于处理非单一的任务,例如对话,则可用选更大的模型;而对于单一明确的任务,则不一定越大越好,参数小一…...

JSP 设置静态文件资源访问路径

这里 我们先在 WEB目录webapp 下创建一个包 叫 static 就用它来存静态资源 然后 我们扔一张图片进去 我们直接这样写 如下图 找到父级目录 然后寻找下面的 static 下的 img.png 运行代码 很明显 它没有找到 这边 我们直接找到 webapp目录下的 WEB-INF目录下的 web.xml 加入…...

【Pytorch】Visualization of Feature Maps(4)——Saliency Maps

学习参考来自 Saliency Maps的原理与简单实现(使用Pytorch实现)https://github.com/wmn7/ML_Practice/tree/master/2019_07_08/Saliency%20Maps Saliency Maps 原理 《Deep Inside Convolutional Networks: Visualising Image Classification Models and Saliency Maps》&…...

java第三十课

电商项目(前台): 登录接口 注册接口后台: 注册审核:建一个线程类 注意程序中的一个问题。 这里是 5 条记录,2 条记录显示应该是 3 页,实际操作过程 有审核机制,出现了数据记录动态变…...

Scala--2

package scala02object Scala07_typeCast {def main(args: Array[String]): Unit {// TODO 隐式转换// 自动转换val b: Byte 10var i: Int b 10val l: Long b 10 100Lval fl: Float b 10 100L 10.5fval d: Double b 10 100L 10.5f 20.00println(d.getClass…...

【SQL SERVER】定时任务

oracle是定时JOB,sqlserver是创建作业,通过sqlserver代理实现 先看SQL SERVER代理得服务有没有开 选择计算机右键——>管理——>服务与应用程序——>服务——>SQL server 代理 然后把SQL server 代理(MSSQLSERVER)启…...

MyBatis-Plus学习笔记(无脑cv即可)

1.MyBatis-Plus 1.1特性 无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑损耗小:启动即会自动注入基本 CURD,性能基本无损耗,直接面向对象操作强大的 CRUD 操作:内置通用 M…...

【VUE】watch 监听失效

如果你遇见了这个问题,那么尝试在 watch 函数中设置 { deep: true } 选项。这告诉 Vue 监听对象或数组内部的变化,就像下面这样: watch(()>chatStore.dataSources,(oldValue, newValue)>{// 监听执行逻辑 }, { deep: true })嗯&#x…...

python的异常处理批量执行网络设备的巡检命令

前言 在网络设备数量超过千台甚至上万台的大型企业网中,难免会遇到某些设备的管理IP地址不通,SSH连接失败的情况,设备数量越多,这种情况发生的概率越高。 这个时候如果你想用python批量配置所有的设备,就一定要注意这…...

react native 环境准备

一、必备安装 1、安装node 注意 Node 的版本应大于等于 16,安装完 Node 后建议设置 npm 镜像(淘宝源)以加速后面的过程(或使用科学上网工具)。 node下载地址:Download | Node.js设置淘宝源 npm config s…...

PGSQL(PostgreSQL)数据库安装教程

安装包下载 下载地址 下载后点击exe安装包 设置的data存储路径 设置密码 设置端口 安装完毕,配置PGSQL的ip远程连接,pg_hba.conf,postgresql.conf,需要更改这两个文件 pg_hba.conf 最后增加一行 host all all …...

Flask RESTful 示例

目录 1. 环境准备2. 安装依赖3. 修改main.py4. 运行应用5. API使用示例获取所有任务获取单个任务创建新任务更新任务删除任务 中文乱码问题: 下面创建一个简单的Flask RESTful API示例。首先,我们需要创建环境,安装必要的依赖,然后…...

多场景 OkHttpClient 管理器 - Android 网络通信解决方案

下面是一个完整的 Android 实现&#xff0c;展示如何创建和管理多个 OkHttpClient 实例&#xff0c;分别用于长连接、普通 HTTP 请求和文件下载场景。 <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas…...

【位运算】消失的两个数字(hard)

消失的两个数字&#xff08;hard&#xff09; 题⽬描述&#xff1a;解法&#xff08;位运算&#xff09;&#xff1a;Java 算法代码&#xff1a;更简便代码 题⽬链接&#xff1a;⾯试题 17.19. 消失的两个数字 题⽬描述&#xff1a; 给定⼀个数组&#xff0c;包含从 1 到 N 所有…...

pam_env.so模块配置解析

在PAM&#xff08;Pluggable Authentication Modules&#xff09;配置中&#xff0c; /etc/pam.d/su 文件相关配置含义如下&#xff1a; 配置解析 auth required pam_env.so1. 字段分解 字段值说明模块类型auth认证类模块&#xff0c;负责验证用户身份&am…...

工程地质软件市场:发展现状、趋势与策略建议

一、引言 在工程建设领域&#xff0c;准确把握地质条件是确保项目顺利推进和安全运营的关键。工程地质软件作为处理、分析、模拟和展示工程地质数据的重要工具&#xff0c;正发挥着日益重要的作用。它凭借强大的数据处理能力、三维建模功能、空间分析工具和可视化展示手段&…...

Linux云原生安全:零信任架构与机密计算

Linux云原生安全&#xff1a;零信任架构与机密计算 构建坚不可摧的云原生防御体系 引言&#xff1a;云原生安全的范式革命 随着云原生技术的普及&#xff0c;安全边界正在从传统的网络边界向工作负载内部转移。Gartner预测&#xff0c;到2025年&#xff0c;零信任架构将成为超…...

ardupilot 开发环境eclipse 中import 缺少C++

目录 文章目录 目录摘要1.修复过程摘要 本节主要解决ardupilot 开发环境eclipse 中import 缺少C++,无法导入ardupilot代码,会引起查看不方便的问题。如下图所示 1.修复过程 0.安装ubuntu 软件中自带的eclipse 1.打开eclipse—Help—install new software 2.在 Work with中…...

CMake 从 GitHub 下载第三方库并使用

有时我们希望直接使用 GitHub 上的开源库,而不想手动下载、编译和安装。 可以利用 CMake 提供的 FetchContent 模块来实现自动下载、构建和链接第三方库。 FetchContent 命令官方文档✅ 示例代码 我们将以 fmt 这个流行的格式化库为例,演示如何: 使用 FetchContent 从 GitH…...

Caliper 配置文件解析:config.yaml

Caliper 是一个区块链性能基准测试工具,用于评估不同区块链平台的性能。下面我将详细解释你提供的 fisco-bcos.json 文件结构,并说明它与 config.yaml 文件的关系。 fisco-bcos.json 文件解析 这个文件是针对 FISCO-BCOS 区块链网络的 Caliper 配置文件,主要包含以下几个部…...

【开发技术】.Net使用FFmpeg视频特定帧上绘制内容

目录 一、目的 二、解决方案 2.1 什么是FFmpeg 2.2 FFmpeg主要功能 2.3 使用Xabe.FFmpeg调用FFmpeg功能 2.4 使用 FFmpeg 的 drawbox 滤镜来绘制 ROI 三、总结 一、目的 当前市场上有很多目标检测智能识别的相关算法&#xff0c;当前调用一个医疗行业的AI识别算法后返回…...