【区块链与密码学】第8-3讲:AOS环签名算法

环签名技术 AOS/Borromean 环签名技术 环签名是一种签名技术,直白来说,通常是有一组公钥,签名方知道一组公钥中某一公钥所对应的私钥(只需知道一个即可)。这样,他就可以使用这一组公钥和那个对应的私钥生成一个环签名。验证者可以验证确实是这组公钥中某个私钥的拥有者生成的环签名,但是却不知道是哪个公钥对应的私钥。 环签名的一个典型的应用场景是匿名举报。在一个组织内,组织内的举报人可以使用其他成员的公钥联合自己的公私钥对一次举报进行签... 阅读详情

【本课堂内容全部选编自PlatON首席密码学家、武汉大学国家网络安全学院教授、博士生导师何德彪教授的《区块链与密码学》授课讲义、教材及互联网,版权归属其原作者所有,如有侵权请立即与我们联系,我们将及时处理。】

8.3AOS环签名算法

2002年,Abe等基于离散对数问题开发了一种新型的环签名,他们使用因果环来达到效果。与早期的环签名相比,这种因果环的使用使签名的大小显著减少了(50%左右)。Abe等给出了一种通用环签名构造方法,利用该方法可以把任意数字签名转换为环签名,这里只介绍他们提出的基于Schnorr签名的环签名算法。首先回顾一下Schnorr签名算法:

假设p和q是大素数,且q能被p-1整除,q是大于等于160 bit的整数,p是大于等于512 bit的整数,保证GF(p)中求解离散对数困难;g是GF(p)中元素,且g^{q}≡1 mod p

密钥生成

①Alice选择随机数x为私钥,其中1<x<q

②Alice计算公钥y≡g^{x} (mod p)

 

签名算法

①Alice首先随机数k,这里1<k<q

②Alice计算c=h(M,g^{k} mod p) 

③Alice计算s=k - x · c ( mod q) 

④Alice输出签名(c,s)

验证算法

①Bob计算e = g^{s} ·  mod p

②Bob验证c=h(M,e)是否成立,如果成立输出「Accept」,否则输出「Reject」

环签名算法

 

环验证算法

今天的课程就到这里啦,下节课我们将开始学习ZK环签名算法,敬请期待!

同学们可以关注点宽学园,每周持续更新区块链系列课程,小宽带你进入区块链世界。我们下节课见啦。

【区块链与密码学】课堂回顾:

区块链与密码学系列文章合集

区块链的隐私技术——Mimble-Wimble 区块链上的隐私问题 区块链是公开的分布式交易账本,以比特币为例,链上的数据都是公开可见的,包括交易的金额和交易双方的地址信息等。尽管通过使用比特币地址而不是实名账户可以一定程度上保证用户的隐私需求,但是如果有人可以用比特币的地址链接到所有者的真实身份,那么所有者的比特币交易记录——不管是过去的、现在的,还是未来的,都会被暴露。可怕的是,把比特币地址和真实身份链接起来并不困难。虽然一笔交易的发送方和... 阅读详情

相关推荐

区块链技术之环签名

在密码学中,环签名是一种数字签名,其可以由每个具有密钥的一组用户的任何成员完成。因此,使用环签名签名的消息由特定人群中的某一人签署。环签名的一个安全属性是若要确定哪个组成员的密钥用于产生签名在计算上是不可行的。环签名与群签名类似,但在两个关键方面有所不同: 1. 无法撤销单个签名的匿名性; 2. 任何用户组都可以作为一个组使用,无需额外设置。 环签名技术由Ron Rivest, Adi...

yuxinqingge的博客 4538

环签名学习笔记

①一般的数字签名会暴露成员身份。②一般的匿名方式不能确定来自成员。③ 群签名中,如果被控制,成员的身份会被暴露。在传统的数字签名中,签名者使用自己的私钥对消息进行签名,然后其他人可以使用签名者的公钥验证签名的有效性。但是,这种方法会暴露签名者的身份信息。环签名通过引入"环"的概念来解决这个问题。当一个人使用环中的某个成员的私钥来签名时,其他人可以使用该成员的公钥和环签名来验证签名的有效性,但无法确定具体是哪个成员进行了签名。

qq_54223524的博客 3442

学习笔记:DualRing: 一种环签名的通用构造及实例

文献笔记:DualRing: 一种环签名的通用构造及实例ContributionsPreliminaries通用构造AOS通用签名Canonical Identi cation新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入

日常学习记录,随缘更新 2263

学习笔记:DualRing (2):About proof

Type-T AOS ring signature 的安全性未被证明,用Canonical Identification 代替type-T签名定义AOS环签名: (1) (2) 证明:A:\mathcal{A}:A:打破AOS环签名的不可伪造性的PPT敌手,构建一个算法B\mathcal{B}B来破解Type-T签名的主动攻击下的密钥恢复。假设B\mathcal{B}B从挑战者CT\mathcal{C}_TCT​得到公共参数paramparamparam和公钥pk∗pk^*pk∗ Setup.

日常学习记录,随缘更新 774

环签名(Ring signature)

参考自 环签名指的是在n个公钥中隐藏自己拥有私钥的那个公钥,具体应用就在于区块链上隐藏交易发送人(地址/公钥)。 准备 首先定义以下函数,其中EkE_{k}Ek​为对称加密算法,k为EkE_{k}Ek​对应的对称密钥 Ck,v(y1,y2,…,yn)=Ek(yn⊕Ek(yn−1⊕Ek(⋯⊕Ek(y1⊕v)…&amp;ThinSpace;)))=v{\displaystyle C_{k,v}(y_...

jason_cuijiahui的博客 1万+

【源码阅读】用Go语言实现环签名的签名和验证(一)

环签名是区块链中保护用户隐私的方法之一,今天起更新环签名的实现,顺带讲一下原理。源码是MIT的开源代码,用go语言编写,由于我也是go语言小白,所以一边读一边学语法。 import ( "bytes" "crypto/elliptic" "crypto/sha256" "fmt" "io" "math/big" "syn

反之亦然 4605

环签名

环签名(ring signature)是一种数字签名方案,最初由Rivest等人提出,环签名是一种简化的群签名,环签名中只有环成员没有管理者,不需要环成员间的合作。 中文名 环签名 外文名 ring signature 关键词 数字签名、匿名 目录 1 环签名的定义 2 环签名的安全性要求与特性 3 环签名满足的性质 4 环签名的发展及其分类 环签名的定义 编辑 假定有...

bjzhaoxiao的专栏 4330

基于SM2密码算法的环签名方案的研究与设计

Bresson等提出了门限环签名,即环中签名者达到所设置的阈值时,就能验证方案的正确性,使用了公平拆分的方法,证明是安全可行的。与传统的基于双线性对的环签名相比较,它同时满足签名的强不可伪造性和签名者的匿名性,提高了签名效率。为大素数且是模的运算,是由整数组成的整数集合,是椭圆曲线加法群的倍点运算即元素G的k倍,N是椭圆曲线基点G的阶次。本文是根据SM2的签名算法上进行改进的环签名方案,攻击者可由签名者的公钥和系统参数计算出签名者私钥的困难性相当于解决椭圆曲线离散对数问题的困难性,此概率能够忽略不记。

weixin_70923796的博客 622

环签名:AOS & Borromean

MP15] 指出 AOS 实际上实现了关于私钥的 OR 谓词的知识证明。[MP15] 将其扩展为包含多个基本独立的环,并且将它们的。范式的签名,给出了基于 Hash 连接各个 PK 的环。下面仅给出基于 ECDL 问题的 Schnorr 环签名。[RST01] 最早提出了环签名概念,并给出了基于 RSA 问题和对称加密的构造。但是其签名大,速度慢。的椭圆曲线的生成元,AOS 环签名是如下的 PPT 算法三元组,(chameleon hash)的环。的情况下,可以计算新的随机带。[AOS02] 分别针对。

weixin_44885334的博客 1177

基于Borromean 环签名的隐私数据认证方案

在区块链系统中, 隐私保护是一个非常重要的问题. 事实上, 如果交易的金额比较大, 那么交易 的发起者和接收者都不希望将这笔金额公开.利用Borromean 环签名得到对金额承诺消息的最终签名, 则该签名是对隐藏金额的范围证明.

solcrypto:固态加密库,环形签名,知识证明,打包签名等,以及适用于secp256k1和(alt)BN-256的匹配Python实现

SolCrypto 该存储库包含几种加密原语的Solidity和Python实现,它们旨在协同工作,并使得使用可组合原语构建新颖的密码系统更加容易。 这些实现可以轻松切换到secp256k1或alt_bn128曲线。 演算法 Schnorr知识证明: , AOS环签名: , 可链接的AOS环签名: , 打包的ECDSA签名(2个256位字,无v ): , Merkle树: , 使用ecrecover快速的AOS环形签名: , ,请参阅 去做 Pedersen的承诺 安全加固 文献资料 白皮书

环签名原理详解

环签名原理详解 预备阶段 ​ 假设签名者拥有某私钥 sk 和公钥 pk,其中 pk = sk·g,这里 g 是 椭圆曲线上的 基点(base point),也被称为生成元(generator)。而 “ · ” 这里是倍乘,sk · g 表示 sk 个 g 点在椭圆曲线上进行加法运算。 ​ 首先定义一个 hash 函数,这个 hash 函数的输入是 待签名的消息 m 和 椭圆曲线上的一个点 A,即 Hash(m, A)。该 hash 函数和椭圆曲线一样,是这个签名和验签体系的前提。 第一步: ​ 签名

MG 5711

基于schnorr算法的数字签名系统的研究与应用

基于schnorr算法的数字签名系统的研究与应用

群签名、环签名、盲签名

群签名方案是算法组ΠGS=(Gen,Sign,Ver,Open)ΠGS​=(Gen,Sign,Ver,Open),Gen(1λ,n)Gen(1λ,n):密钥生成算法,nnn为群成员数,输出gvkgvkgvk:群公钥,用于验签gmskgmskgmsk:主私钥,由管理员持有,用于追踪成员身份gsk=(gsk[1],⋯,g。

weixin_44885334的博客 4662

Lossless-Claw 插件实战:告别上下文截断,让 OpenClaw 永不遗忘

本文介绍了OpenClaw的Lossless-Claw插件,这是一个基于LCM论文的DAG摘要系统,能有效解决上下文截断问题。文章包含10个部分,从插件原理到实操指南: 核心原理:通过DAG结构持久化存储所有原始消息,将旧消息分块摘要并形成层级结构,保持上下文在模型Token限制内。 性能优势:在OOLONG基准测试中得分74.8,优于Claude Code的70.3,尤其在长上下文场景表现更佳。 功能特点: 提供lcm_grep、lcm_describe等工具主动回忆历史 摘要始终链接回原文,实现真正无损

u014798858的博客 2617

别再一个个BAPI调了!用CVI_EI_INBOUND_MAIN一次性搞定SAP BP主数据(附完整ABAP代码)

本文详细介绍了如何使用SAP标准函数CVI_EI_INBOUND_MAIN高效维护业务伙伴(BP)主数据,替代传统的多BAPI调用方式。通过完整ABAP代码示例,展示了如何一站式处理供应商、客户、公司代码等所有视图的创建与更新,提升数据一致性和开发效率。

weixin_29204205的博客 289

隐私交易基本原则

1. 引言 ZCash, Monero, 以及所有基于CryptoNote的coins,都支持confidential transactions 隐私交易。 1.1 Bitcoin transaction Bitcoin transaction的结构为:({ai},{bi},{vi})(\{a_i\},\{b_i\},\{v_i\})({ai​},{bi​},{vi​}),其中{ai}\{a_i\}{ai​}为input addresses,{bi}\{b_i\}{bi​}为output addresses

mutourend2010@gmail.com 1642

2026软考中级-软件设计师笔记(送最新视频教程)

核心口诀:运控存输输(运算器、控制器、存储器、输入、输出)例题(2019年上半年):核心公式:数字签名流程:数字证书作用:死锁4个必要条件:死锁判断公式:处理策略:程序设计语言的四大核心成分:顺序表操作(时间复杂度):链表操作(时间复杂度):核心思想:频率高的字符用短编码,频率低的用长编码 → 最小化总编码长度构造步骤(贪心算法):前提:有序表(升序/降序) 步骤:时间复杂度:O(log₂n) 例:查找中核心思想:用哈希函数将关键字映射到存储位置 哈希冲突:不同关键字映射到同一位置 → 用链地址法或开放定址

36万+

基于SM2算法的环签名

基于SM2算法的环签名原理讲解以及Python实现

m0_74043383的博客 1926

揭秘大厂智能生产调度AI系统架构:架构师拆解中台化设计3大优势

智能生产调度AI系统是基于AI算法(如遗传算法、强化学习、深度学习),结合生产数据(如订单、设备、库存、人员),自动生成最优生产计划与调度方案的系统。最大化设备利用率(减少停机时间);最小化生产周期(快速交付订单);优化库存水平(降低积压与短缺);提升准时交货率(满足客户需求)。维度传统调度系统智能调度AI系统决策逻辑规则引擎+人工经验AI算法(预测+优化)数据处理手工汇总+静态数据实时数据整合+动态更新适应能力固定场景(如单一产品、单一工厂)

AI Python 编程之道的博客 759

【面试系列】数据工程师高频面试题及详细解答

本文针对数据工程师岗位,提供了详尽的面试题库和解答,分为初级、中级和高级三个层次。初级面试题主要涉及基本的数据处理和ETL工具的使用,如SQL查询、数据清洗和基本的数据建模。中级面试题重点考察数据管道设计、数据库优化和大数据平台的应用。高级面试题则深入探讨高级数据处理技术、分布式系统架构和数据湖的实现。通过这些问题和解答,候选人可以全面了解数据工程师岗位所需的技能,帮助其更好地准备面试。常考知识点总结部分则系统归纳了数据工程师岗位的关键技能领域。

在路上的专栏 2375

群签名与环签名

啊,好久没有写博客了,都长草了,最近在看论文,想记录一下自己看到、学到的东西。 关于群签名 http://en.wikipedia.org/wiki/Group_signature  维基百科 群签名的安全性要求 1) 完整性(Soundness and completeness)      有效的签名能够被正确验证 2) 不可伪造性(Unfo

一名路过的小码农啊 1万+

芯片原厂linux驱动开发的分享

大家好,我是XX,来自湖南XX学院,电子信息18级,也曾在创新基地控制组学习过两三年,毕业后就职于一家芯片原厂的解决方案部,担任驱动工程师的职位,算上实习期,我的工作时长已有两年。在此我想将这两年期间学习与积累到的一些经验输出出来,与大家一同分享。知识面有限,只能简单介绍一些驱动开发方向的一些经验,且由于经验尚浅,文中难免会有一些疏漏和错误之处,还请大家积极地批评指正。

嵌入式技术开发 847
上一篇: 【区块链与密码学】第8-2讲:RST环签名算法
下一篇: 【区块链与密码学】第8-5讲:基于SM2签名算法的环签名
Dig Quant
博客等级 码龄7年 124粉丝 53原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值