[ZKP] Fiat–Shamir Heuristic

Fiat-Shamir Heuristic

Fiat, Amos, and Adi Shamir. “How to prove yourself: Practical solutions to identification and signature problems.” Conference on the theory and application of cryptographic techniques. Berlin, Heidelberg: Springer Berlin Heidelberg, 1986.

Trust Setup

f: A pseudo random function
I: Information

  1. Compute the values v j = f ( I , j ) v_j = f(I,j) vj=f(I,j) for small values of j j j.
  2. Pick k k k distinct values of j j j for which v j v_j vj is a quadratic residue (mod n) and compute the smallest square root s j s_j sj, of v j − 1 v_j^{-1} vj1 (mod n).
  3. Issue I I I , the k s j s_j sj values, and their indices.

Interactive Protocol

  1. A sends I I I to B.
  2. B generates v j = f ( I , j ) v_j = f(I, j) vj=f(I,j) for j = 1 , . . . , k j = 1,...,k j=1,...,k.

Repeat steps 3 to 6 for i = 1 , . . . , t i = 1,...,t i=1,...,t:

  1. A picks a random r i ∈ [ 0 , n ) r_i \in [0,n) ri[0,n) and sends x i = r i 2 ( m o d    n ) x_i = r_i^2 (\mod n) xi=ri2(modn) to B.
  2. B sends a random binary vector ( e i 1 , . . . , e i k ) (e_{i1},...,e_{ik}) (ei1,...,eik) to A.
  3. A sends to B :
    y i = r i ∏ e i j = 1 s j m o d    n y_i = r_i \prod_{e_ij=1}s_j\mod n yi=rieij=1sjmodn
  4. B checks that
    x i = y i ∏ e i j = 1 v j m o d    n x_i = y_i \prod_{e_ij=1}v_j\mod n xi=yieij=1vjmodn

Non-interactive Protocol (Signature)

To sign a message m m m:

  1. A picks random r 1 , . . . , r t ∈ [ O , n ) r_1, ...,r_t \in [O,n) r1,...,rt[O,n) and computes x i = r i 2 m o d    n x_i = r_i^2\mod n xi=ri2modn.
  2. A computes f ( m , x 1 , . . . , x t ) f(m, x_1,...,x_t) f(m,x1,...,xt)and uses its first kt bits as e i j e_{ij} eij values.
  3. A computes
    y i = r i ∏ e i j = 1 s j m o d    n y_i = r_i \prod_{e_ij=1}s_j\mod n yi=rieij=1sjmodn
    and sends I I I, m m m, the e i j e_{ij} eij matrix and all the y i y_i yi to B.

To verify A’s signature on m m m:

  1. B computes v j = f ( I , j ) v_j = f(I, j) vj=f(I,j) for j = 1 , . . . , k j = 1,...,k j=1,...,k.
  2. B computes
    x i = y i ∏ e i j = 1 v j m o d    n x_i = y_i \prod_{e_ij=1}v_j\mod n xi=yieij=1vjmodn
  3. B verifies that the first kt bits of f ( m , x 1 , . . . , x t ) f(m, x_1,...,x_t) f(m,x1,...,xt) are e i j e_{ij} eij matrix.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/492835.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Autosar-CanNm、Nm配置详解(免费)-2

3.5NM配置项 3.5.1NmGlobalConstants NmNumberOfChannels Nm管理几个Can通信,通信我们只有智能进入网需要网络管理,因此一般这里只需要填1。 NmNumberOfClusters 如果NM需要与几个CanNm进行协同处理的话,那需要把这些配置为Cluster,即组…

让 AI 帮你写代码,开发提效神器来了

如今,大量程序员已经习惯在 AI 辅助下进行编程。据调研,AI 编码工具将程序员工作效率提升 50% 以上。 通义灵码是目前国内最受开发者喜爱的 AI 编码助手,可以提供行级/函数级实时续写、自然语言生成代码、单元测试生成、代码优化、注释生成、…

设置http响应报文

一、总结: (1)设置响应状态码: response.statusCode (2)设置响应状态描述: response.statusMessage() 使用的极少 (3)设置响应头信息: response.setHeader(头值,头名) (4)设置响应体: response…

一文详解CDGA证书含金量,非常详细!

在信息技术飞速发展的今天,数据已成为企业宝贵的资产。正确地管理和治理这些数据,对于企业实现数据价值最大化、保障数据安全和合规至关重要。这也使得数据治理领域的专业人才需求持续增长。CDGA(Certified Data Governance Architect&#x…

【并发】第三篇 Hash冲突的解决方法

导航 一. 简介二. 解决Hash冲突的方法1. 开放地址法1.1 线性探测再散列1.2 二次探测再散列1.3 伪随机探测再散列2. 链地址法3. 再哈希法一. 简介 哈希(hash)是将任意长度的输入数据转化为固定长度的输出数据的算法。哈希函数会将输入数据压缩并映射为一个固定长度的哈希值,…

Trello国内替代工具有哪些?分享5款

盘点5款类似Trello的本地部署项目管理工具:1.PingCode;2.Worktile;3.Teambition;4.redmine;5.TAIga.io。 Trello是一款杰出的协作与工作管理应用,专为追踪团队项目、凸显当前活动任务、分配责任人&#xff…

面试题 之 webpack

1.说说你对webpack理解?解决什么问题? Webpack 是实现前端项目的模块化,用于现代 JavaScript 应用程序的静态模块打包工具,被webpack 直接引用的资源打包进 bunde.js的资源,当webpack 处理应用程序时,它会在内部构建一…

Charles for Mac 强大的网络调试工具

Charles for Mac是一款功能强大的网络调试工具,可以帮助开发人员和测试人员更轻松地进行网络通信测试和调试。以下是一些Charles for Mac的主要特点: 软件下载:Charles for Mac 4.6.6注册激活版 流量截获:Charles可以截获和分析通…

CANalyzer使用_04 使用CAN报文发送数据

本文手把手介绍使用CAN来发送数据。分为创建工程,创建CAN报文,运行效果,参考文献。 1 创建工程 双击“CANalyzer->单击“I accept”->等一会等软件打开后,单击“File”->单击"New"->双击"CAN 500kBa…

2G-3G-4G-5G 语音方案

1.2G、3G时代,语音业务采用CS(Circuited Switched,电路交换)技术,即手机在通话前需在网络中建立一条独占资源的线路,直到通话结束才拆除。这种古老的技术存在耗资源、组网复杂、效率低等缺点。 2. 进入4…

每日学习笔记:C++ STL迭代器特性(Iterator Trait)、自定义迭代器

迭代器特性(Iterator Trait) 注意不同的迭代器种类类型之前有继承关系: 为迭代器编写泛型函数 自定义迭代器 实例

【Functional Affordances】机器人manipulation

文章目录 1. Robo-ABC: Affordance Generalization Beyond Categories via Semantic Correspondence for Robot Manipulation摘要和结论引言相关工作模型框架实验 2. Click to Grasp: Zero-Shot Precise Manipulation via Visual Diffusion Descriptors摘要和结论引言模型框架实…

电子商务营销中大数据分析的应用|大数据分析在B2C中的应用案例【抖音/京东/淘宝商品数据采集API接口的应用】

文章围绕对大数据分析在电子商务营销中的应用开展,研究了什么是大数据分析和电子商务的营销,以及对于电子商务的营销与大数据分析的结合目前是一个什么样的趋势,分析了大数据分析在电子商务营销中的作用,希望能帮助到大家。抖音/京…

码上时刻|通过逻辑视图 Logic View 快速实现批流一体

近年来,随着商业环境的竞争日益激烈,企业对于实时数据服务的需求急剧增加。Kyligence 在服务众多客户的过程中,很多企业对数据平台的要求越来越高,都希望能即时获取、处理数据,以便快速响应市场变化,加快决…

业界首次!搭载英伟达GPU,50倍性能提升!Zilliz发布Milvus 2.4向量数据库

在上周在美国硅谷圣何塞召开的NVIDIA GTC大会上,Zilliz[1] 发布了 Milvus 2.4 [2]版本。这是一款革命性的向量数据库系统,它在业界首次采用了英伟达 GPU 的高效并行处理能力和 RAPIDS cuVS 库中新推出的 CAGRA[3]( CUDA-Accelerated Graph In…

SpringBoot+ElasticSearch实现文档内容抽取、高亮分词、全文检索

需求 产品希望我们这边能够实现用户上传PDF、WORD、TXT之内得文本内容,然后用户可以根据附件名称或文件内容模糊查询文件信息,并可以在线查看文件内容。 一、环境 项目开发环境: 后台管理系统springbootmybatis_plusmysqles 搜索引擎&#…

c++AVL树

cAVL树 1. 前言 map/multimap、set/multiset这几个容器的共同点是:它们的底层都是按照搜索二叉树来实现的,但是搜索二叉树存在一个缺陷:如果往树中插入的元素有序或接近有序,二叉树搜索就会退化成单支树,时间复杂度会…

Java入门之数据类型

一、数据类型 基本数据类型 (1)如果要定义“long类型的变量要在数值后面加一个L作为后缀” (2)如果要定义float类型的变量的时候数据值也要加一个作为后缀 小结: 练习 内容: 姓名:巴巴托斯 &…

centos7二进制安装openstack train版本双网口五节点

这里写目录标题 材料准备宿主机安装KVM 网络规划硬件规划本案例局限性密码规划虚拟机准备网络准备centos7模板机准备 数据库安装安装rabbitMQ消息队列安装memcached服务安装Etcd安装keystone身份服务创建数据库用户keystone安装keystone组件创建admin并启动keystone监听验证key…

第3章:角色提示,强化Chatgpt输出新篇章!

角色提示技术 角色提示技术(role prompting technique),是通过模型扮演特定角色来产出文本的一种方法。用户为模型设定一个明确的角色,它就能更精准地生成符合特定上下文或听众需求的内容。 比如,想生成客户服务的回复…
最新文章