针对marlin零知识证明协议的矩阵计算装置、方法及设备制造方法及图纸

技术编号:37438464 阅读:14 留言:0更新日期:2023-05-06 09:10
本发明专利技术公开了一种针对marlin零知识证明协议的矩阵计算装置、方法及设备,装置包括:数据存储器,用于存储marlin零知识证明协议中的第一电路矩阵A、第二电路矩阵B和第三电路矩阵C;矩阵编码器,用于根据电路矩阵A、B、C的稀疏性特点,以及marlin零知识证明协议中的运算需求,分别对电路矩阵A、B、C进行行列位置索引编码,得到电路矩阵A、B、C的行列索引信息,并将每个行列索引信息存入数据存储器;有限域数据计算器,用于根据运算需求,按照每个行列索引信息读取相应电路矩阵中非零元素的位置信息和数值信息,进行有限域的矩阵计算。该装置可提高电路矩阵计算效率,减少电路矩阵计算时间。减少电路矩阵计算时间。减少电路矩阵计算时间。

【技术实现步骤摘要】
针对marlin零知识证明协议的矩阵计算装置、方法及设备


[0001]本专利技术涉及加密计算领域,尤其涉及一种针对marlin零知识证明协议的矩阵计算装置、方法及设备。

技术介绍

[0002]零知识证明,指证明者能够在不向验证者提供任何有用的信息的情况下,使验证者相信某个论断是正确的。零知识证明实质上是一种涉及两方或更多方的协议,即两方或更多方完成一项任务所需采取的一系列步骤。证明者向验证者证明并使其相信自己知道或拥有某一消息,但证明过程不能向验证者泄漏任何关于被证明消息的信息。
[0003]Marlin协议是众多零知识证明协议中的一种,该协议改进了诸多其他协议的证明计算量大、存储空间利用率低的缺点,利用一种有效的代数投影协议实现了对于一阶线性系统的线性长度证据以及常数次的询问交互。然而,该协议中存在大规模矩阵运算,且对于多读者多写者环境,还必须引入原子操作,造成计算效率大幅降低,计算耗时长。

技术实现思路

[0004]本专利技术旨在至少在一定程度上解决相关技术中的技术问题之一。为此,本专利技术的目的在于提出一种针对marlin零知识证明协议的矩阵计算装置、方法及设备,以提高电路矩阵的计算效率,减少电路矩阵的计算时间。
[0005]第一方面,本专利技术提出了一种针对marlin零知识证明协议的矩阵计算装置,所述装置包括:数据存储器,用于存储marlin零知识证明协议中的第一电路矩阵A、第二电路矩阵B和第三电路矩阵C;矩阵编码器,用于根据电路矩阵A、B、C的稀疏性特点,以及所述marlin零知识证明协议中的运算需求,分别对电路矩阵A、B、C进行行列位置索引编码,得到电路矩阵A、B、C的行列索引信息,并将每个所述行列索引信息存入所述数据存储器;有限域数据计算器,用于根据所述运算需求,按照每个所述行列索引信息读取相应电路矩阵中非零元素的位置信息和数值信息,进行有限域的矩阵计算。
[0006]另外,本专利技术上述实施例的针对marlin零知识证明协议的矩阵计算装置还可以具有如下附加的技术特征:
[0007]根据本专利技术的一个实施例,所述矩阵编码器具体用于:遍历电路矩阵M每一行、每一列的非零元素个数,其中,M∈{A,B,C};根据遍历结果构建第一存储表、行指针数组、第二存储表和列指针数组,其中,所述第一存储表存储所述电路矩阵M每一行非零元素的列号和非零数值,所述行指针数组中的指针指向所述第一存储表中存储的所述电路矩阵M对应行的首个非零元素,所述第二存储表存储所述电路矩阵M每一列非零元素的行号和指向所述第一存储表中对应非零数值的指针,所述列指针数组中的指针指向所述第二存储表中存储的所述电路矩阵M对应列的首个非零元素;基于所述第一存储表、所述行指针数组、所述第二存储表和所述列指针数组得到所述电路矩阵M的行列索引信息。
[0008]根据本专利技术的一个实施例,所述矩阵编码器具体用于:遍历电路矩阵M每一行、每
一列的非零元素个数,其中,M∈{A,B,C};根据遍历结果构建第一存储表、行指针数组、第二存储表和列指针数组,其中,所述第一存储表存储所述电路矩阵M每一行非零元素的列号和指向所述第二存储表中对应非零数值的指针,所述行指针数组中的指针指向所述第一存储表中存储的所述电路矩阵M对应行的首个非零元素,所述第二存储表存储所述电路矩阵M每一列非零元素的行号和非零数值,所述列指针数组中的指针指向所述第二存储表中存储的所述电路矩阵M对应列的首个非零元素;基于所述第一存储表、所述行指针数组、所述第二存储表和所述列指针数组得到所述电路矩阵M的行列索引信息。
[0009]根据本专利技术的一个实施例,所述有限域数据计算器的数量为多个,且多个所述有限域数据计算器并行设置。
[0010]根据本专利技术的一个实施例,针对电路矩阵点乘输入向量的情况,每个所述有限域数据计算器负责所述电路矩阵的多行与所述输入向量的点乘计算,所述有限域数据计算器在进行所述电路矩阵的第u1行与所述输入向量的点乘计算时,具体用于:初始化第一结果向量的每个位置值为0,根据所述行指针数组和所述第一存储表得到所述电路矩阵第u1行每个非零元素的列号和非零数值,并根据所述第u1行每个非零元素的列号得到所述输入向量对应的数值,以及将非零数值与对应的输入向量数值进行有限域乘法计算,并与初始化的所述第一结果向量中对应位置值进行有限域加法计算。
[0011]根据本专利技术的一个实施例,针对输入向量点乘电路矩阵的情况,每个所述有限域数据计算器负责所述输入向量与所述电路矩阵的多列的点乘计算,所述有限域数据计算器在进行所述输入向量与所述电路矩阵的第u2列的点乘计算时,具体用于:初始化第二结果向量的每个位置值为0,根据所述列指针数组、所述第二存储表和所述第一存储表得到所述电路矩阵第u2列每个非零元素的行号和非零数值,并根据所述第u2列每个非零元素的列号得到所述输入向量对应的数值,以及将非零数值与对应的输入向量数值进行有限域乘法计算,并与初始化的所述第二结果向量中对应位置值进行有限域加法计算。
[0012]第二方面,本专利技术提出了一种针对marlin零知识证明协议的矩阵计算方法,所述方法包括以下步骤:获取marlin零知识证明协议中的第一电路矩阵A、第二电路矩阵B和第三电路矩阵C;根据电路矩阵A、B、C的稀疏性特点,以及所述marlin零知识证明协议中的运算需求,分别对电路矩阵A、B、C进行行列位置索引编码,得到电路矩阵A、B、C的行列索引信息;根据所述运算需求,按照每个所述行列索引信息读取相应电路矩阵中非零元素的位置信息和数值信息,进行有限域的矩阵计算。
[0013]另外,本专利技术上述实施例的针对marlin零知识证明协议的矩阵计算方法还可以具有如下附加的技术特征:
[0014]根据本专利技术的一个实施例,所述根据电路矩阵A、B、C的稀疏性特点,以及所述marlin零知识证明协议中的运算需求,分别对电路矩阵A、B、C进行行列位置索引编码,得到电路矩阵A、B、C的行列索引信息,包括:遍历电路矩阵M每一行、每一列的非零元素个数,其中,M∈{A,B,C};根据遍历结果构建第一存储表、行指针数组、第二存储表和列指针数组,其中,所述第一存储表存储所述电路矩阵M每一行非零元素的列号和非零数值,所述行指针数组中的指针指向所述第一存储表中存储的所述电路矩阵M对应行的首个非零元素,所述第二存储表存储所述电路矩阵M每一列非零元素的行号和指向所述第一存储表中对应非零数值的指针,所述列指针数组中的指针指向所述第二存储表中存储的所述电路矩阵M对应列
的首个非零元素;基于所述第一存储表、所述行指针数组、所述第二存储表和所述列指针数组得到所述电路矩阵M的行列索引信息。
[0015]根据本专利技术的一个实施例,针对输入向量点乘电路矩阵的情况,在进行所述输入向量与所述电路矩阵的第u2列的点乘计算时,所述有限域的矩阵计算包括:初始化第二结果向量的每个位置值为0;根据所述列指针数组、所述第二存储表和所述第一存储表得到所述电路矩阵第u2列每个非零元素的行号和非零数值;根据所述第u2列每个非零元素的列号得到本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种针对marlin零知识证明协议的矩阵计算装置,其特征在于,所述装置包括:数据存储器,用于存储marlin零知识证明协议中的第一电路矩阵A、第二电路矩阵B和第三电路矩阵C;矩阵编码器,用于根据电路矩阵A、B、C的稀疏性特点,以及所述marlin零知识证明协议中的运算需求,分别对电路矩阵A、B、C进行行列位置索引编码,得到电路矩阵A、B、C的行列索引信息,并将每个所述行列索引信息存入所述数据存储器;有限域数据计算器,用于根据所述运算需求,按照每个所述行列索引信息读取相应电路矩阵中非零元素的位置信息和数值信息,进行有限域的矩阵计算。2.如权利要求1所述的针对marlin零知识证明协议的矩阵计算装置,其特征在于,所述矩阵编码器具体用于:遍历电路矩阵M每一行、每一列的非零元素个数,其中,M∈{A,B,C};根据遍历结果构建第一存储表、行指针数组、第二存储表和列指针数组,其中,所述第一存储表存储所述电路矩阵M每一行非零元素的列号和非零数值,所述行指针数组中的指针指向所述第一存储表中存储的所述电路矩阵M对应行的首个非零元素,所述第二存储表存储所述电路矩阵M每一列非零元素的行号和指向所述第一存储表中对应非零数值的指针,所述列指针数组中的指针指向所述第二存储表中存储的所述电路矩阵M对应列的首个非零元素;基于所述第一存储表、所述行指针数组、所述第二存储表和所述列指针数组得到所述电路矩阵M的行列索引信息。3.如权利要求1所述的针对marlin零知识证明协议的矩阵计算装置,其特征在于,所述矩阵编码器具体用于:遍历电路矩阵M每一行、每一列的非零元素个数,其中,M∈{A,B,C};根据遍历结果构建第一存储表、行指针数组、第二存储表和列指针数组,其中,所述第一存储表存储所述电路矩阵M每一行非零元素的列号和指向所述第二存储表中对应非零数值的指针,所述行指针数组中的指针指向所述第一存储表中存储的所述电路矩阵M对应行的首个非零元素,所述第二存储表存储所述电路矩阵M每一列非零元素的行号和非零数值,所述列指针数组中的指针指向所述第二存储表中存储的所述电路矩阵M对应列的首个非零元素;基于所述第一存储表、所述行指针数组、所述第二存储表和所述列指针数组得到所述电路矩阵M的行列索引信息。4.如权利要求2或3所述的针对marlin零知识证明协议的矩阵计算装置,其特征在于,所述有限域数据计算器的数量为多个,且多个所述有限域数据计算器并行设置。5.如权利要求4所述的针对marlin零知识证明协议的矩阵计算装置,其特征在于,针对电路矩阵点乘输入向量的情况,每个所述有限域数据计算器负责所述电路矩阵的多行与所述输入向量的点乘计算,所述有限域数据计算器在进行所述电路矩阵的第u1行与所述输入向量的点乘计算时,具体用于:初始化第一结果向量的每个位置值为0,根据所述行指针数组和所述第一存储表得到所述电路矩阵第u1行每个非零元素的列号和非零数值,并根据所述第u1行每个非零元素的列号得到所述输入向量对应的数值,以及将非零数值与对应的输入向量数值进行有限域乘
法计算,并与初始化的所述第...

【专利技术属性】
技术研发人员:汪福全刘明
申请(专利权)人:声龙新加坡私人有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1