【技术实现步骤摘要】
一种基于MuSig2的多重数据签名加速方法及系统
[0001]本专利技术公开一种基于MuSig2的多重数据签名加速方法及系统,涉及密码学数字签名
技术介绍
[0002]多重签名协议,允许一组签名者(每个人拥有自己的私钥/公钥对)在消息m 上产生一个单独的签名σ。Schnorr是一种非常优秀的数字签名算法,这得益于它的线性特性,可以利用这一特性将多个数字签名聚合为一个签名和将多个公钥聚合为一个公钥,然后用聚合后的公钥验证聚合后的签名。利用Schnorr 算法(相对于ECDSA等)设计多重签名协议相对容易,通信轮次比较少。比特币和以太坊社区都在讨论利用基于Schnorr的多重签名算法提高数字签名验证效率、减少区块存储对磁盘空间的占用。
[0003]MuSig2([论文参考JTY2020])是一种基于Schnorr算法实现的、目前为止最高效的多重签名方案。MuSig2方案是第一个具备以下特性的多重签名方案, i)在并发签名会话下是安全的,ii)支持密钥聚合,iii)输出普通Schnorr签名, iiv)只需要两轮 ...
【技术保护点】
【技术特征摘要】
1.一种基于MuSig2的多重数据签名加速方法,其特征是所述的方法的具体步骤如下:S1将MuSig2的实现函数Sign'进行拆分;S2批量建立MuSig2随机数缓存;S3利用缓存进行MuSig2签名;S4利用索引计数器对中间数据的缓存状态进行更新同步。2.根据权利要求1所述的方法,其特征是所述S1将MuSig2的实现函数Sign'进行拆分的具体步骤如下:S101将函数Sign'拆分为Sign1'和Sign2'两个函数;S102利用Sign1'函数提前执行并将执行结果缓存;S103收到待签名消息m时,执行Sign2'和Sign"函数计算签名结果。3.根据权利要求2所述的方法,其特征是所述S2批量建立MuSig2随机数缓存的具体步骤如下:S201重复执行MuSig2多重数字签名的第一轮,计算出中间数据并本地存储;S202利用待签名消息提前计算中间结果并缓存;S203利用当前节点执行Setup、KenGen函数建立基本运行环境。4.根据权利要求3所述的方法,其特征是所述S3利用缓存进行MuSig2签名即受到签名请求时执行MuSig2数字签名算法的第二轮次,其具体步骤如下:S301从本地缓存中取出state1,msg,a1,调用函数Sign2'(state1,m,msg,a1),函数返回state1',msg1',发送msg1'给其他n
‑
1个节点;S302等待其他节点的msgi',调用函数Sign"(state1',(msg2',...,msgn')),函数返回多重Schnorr签名σ=(R,s);S303将本地缓存的索引计数器加1,等待下一次的签名请求。5.根据权利要求4所述的方法,其特征是所述S4利用索引计数器对中间数据的缓存状态进行更新同步的具体步骤如下:S401利用各节点对中间数据进行批量缓存;S402各节点通过相互发送自己的索引计数器值进行缓存状态的一致性更新和同步;S403当发生局部性计数器不一致时,对计数器进行初始化并放弃当前中间数据;S404对中间数据重新进行批量计算。6.一种基于MuSig2的多重数据签名加速系统,其特征是所述的系统具体包括函数拆分模块、数据缓存模块、多重签名模块和状态处理模块:函数拆分...
【专利技术属性】
技术研发人员:王伟兵,宋明明,杨海勇,张岚,李翔,孟奇,
申请(专利权)人:浪潮云信息技术股份公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。