数据处理方法、装置、终端及存储介质制造方法及图纸

技术编号:38264803 阅读:18 留言:0更新日期:2023-07-27 10:22
本申请提供了一种数据处理方法、装置、终端及存储介质,方法包括:接收N个输入数据;针对M个子线程中的每个子线程,从N个输入数据中获取与每个子线程对应的N/M个输入数据;对N/M个输入数据进行第一处理,得到每个子线程对应的N/M个输出数据;将每个子线程对应的N/M个输出数据进行汇总,得到输出结果。本发明专利技术中的M个子线程中的各个子线程可根据输入数据的数据量,从N个输入数据中主动所要处理的N/M个输入数据,并采用预设算法对N/M个输入数据进行一系列运算,直至得到对应的N/M个输出数据,实现一个完整的NTT计算或INTT计算。一个完整的NTT计算或INTT计算。一个完整的NTT计算或INTT计算。

【技术实现步骤摘要】
【国外来华专利技术】数据处理方法、装置、终端及存储介质


[0001]本申请涉及计算机
,具体而言,涉及一种数据处理方法、装置、终端及存储介质。

技术介绍

[0002]零知识证明领域作为密码学协议在通信行业中的应用越来越广泛,快速数论变换(NTT,Number Theoretic Transforms)和快速数论逆变换(INTT,Number Theoretic Transforms)是在零知识证明领域中的关键运算。
[0003]目前,针对NTT和INTT的相关计算,需要通过主线程和子线程交互实现,即主线程控制不同的子线程处理不同的运算,如NTT计算中的蝶形运算和逆序运算,主线程先开设一个子线程,从存储器中获取输入数据,并进行蝶形运算后,需要退出此子线程,之后再次开启另一个子线程来进行逆行运算。
[0004]但是,在零知识证明领域中,NTT和INTT计算的数据量,每次主线程开启子线程时,均需与存储器进行数据调度,导致主线程和各个子线程的调度复杂,子线程分配不合理,数据传输的开销大、计算效率低。
[0005]技术问题
[0006]本申请的主要目的在于提供一种数据处理方法、装置、终端及存储介质,以解决线程不合理,数据传输的开销大、计算效率低的问题。
[0007]技术解决方案
[0008]为了实现上述目的,第一方面,本申请提供了一种数据处理方法,包括:
[0009]接收N个输入数据,其中,N个输入数据对应M个子线程,其中,N为2的幂次方,M为大于1的整数;
[0010]针对M个子线程中的每个子线程,从N个输入数据中获取与每个子线程对应的N/M个输入数据,其中,每个子线程对应的N/M个输入数据不相同;
[0011]对N/M个输入数据进行第一处理,得到每个子线程对应的N/M个输出数据;
[0012]将每个子线程对应的N/M个输出数据进行汇总,得到输出结果,其中,输出结果包括N个输出数据。
[0013]在一些实现方式中,第一处理为快速数论变换,每个子线程中包括多级蝶形运算单元和倒序运算单元;
[0014]对N/M个输入数据进行第一处理,得到每个子线程对应的N/M个输出数据,包括:
[0015]基于N/M个输入数据确定多级蝶形运算单元所需的参数;
[0016]基于多级蝶形运算单元所需的参数对N/M个输入数据进行多级蝶形运算,得到蝶形运算结果;
[0017]利用倒序运算单元对蝶形运算结果进行处理,得到每个子线程对应的N/M个输出数据。
[0018]在一些实现方式中,N/M个输入数据对应N/M个蝶形运算单元,N/M个蝶形运算单元
中的每个蝶形运算包括第一输入数据和第二输入数据;
[0019]基于N/M个输入数据确定多级蝶形运算单元所需的参数,包括:
[0020]针对N/M个蝶形运算单元中的每个蝶形运算,定义第一输入数据和第二输入数据之间的间隔,其中,间隔用于表征两个数据的位置间隔;
[0021]将多级蝶形运算的坐标除以间隔,得到多级蝶形运算的次数;
[0022]基于多级蝶形运算的坐标、间隔和多级蝶形运算的次数,分别计算第一输入数据的坐标和原根的坐标;
[0023]将第一输入数据的坐标和间隔进行和计算,得到第二输入数据的坐标;
[0024]将每个蝶形运算单元所需的参数包括第一输入数据的坐标、第二输入数据的坐标和原根的坐标进行汇总,得到多级蝶形运算单元所需的参数。
[0025]在一些实现方式中,基于多级蝶形运算的坐标、间隔和多级蝶形运算的次数,分别计算第一输入数据的坐标和原根的坐标,包括:
[0026]将多级蝶形运算的坐标与间隔和多级蝶形运算的次数的乘积进行和计算,得到第一输入数据的坐标;
[0027]将多级蝶形运算的坐标与间隔和多级蝶形运算的次数的乘积进行差计算,得到原根的种类数目;
[0028]将原根的增量和原根的种类数目的乘积作为指数,并对原根和指数进行幂运算,得到原根的坐标。
[0029]在一些实现方式中,利用倒序运算单元对蝶形运算结果进行处理,得到每个子线程对应的N/M个输出数据,包括:
[0030]倒序运算单元按照结果序号对蝶形运算结果进行排序,得到每个子线程对应的排序后的N/M个输出数据。
[0031]在一些实现方式中,第一处理为快速数论逆变换,每个子线程包括多级蝶形运算单元、倒序运算单元和固定值乘法运算单元;
[0032]对N/M个输入数据进行第一处理,得到每个子线程对应的N/M个输出数据,包括:
[0033]基于N/M个输入数据确定多级蝶形运算单元所需的参数;
[0034]基于多级蝶形运算单元所需的参数对N/M个输入数据进行多级蝶形运算,得到蝶形运算结果;
[0035]利用倒序运算单元对蝶形运算结果进行处理,得到排序后的蝶形运算结果;
[0036]固定值乘法运算单元将排序后的蝶形运算结果中的每个数据乘以预设值,得到每个子线程对应的N/M个输出数据。
[0037]在一些实现方式中,多级蝶形运算的级数由N确定。
[0038]在一些实现方式中,M个子线程中的每个子线程通过主线程的时钟控制,实现多级蝶形运算中的各级蝶形运算单元、倒序运算单元和固定值乘法运算单元的时钟同步。
[0039]第二方面,本专利技术实施例提供了一种数据处理装置,包括:
[0040]接收模块,用于接收N个输入数据,其中,N个输入数据对应M个子线程,其中,N为2的幂次方;
[0041]获取模块,用于针对M个子线程中的每个子线程,从N个输入数据中获取与每个子线程对应的N/M个输入数据,其中,每个子线程对应的N/M个输入数据不相同;
[0042]计算模块,用于对N/M个输入数据进行第一处理,得到每个子线程对应的N/M个输出数据;
[0043]汇总模块,用于将每个子线程对应的N/M个输出数据进行汇总,得到输出结果,其中,输出结果包括N个输出数据。
[0044]第三方面,本专利技术实施例提供了一种终端,包括存储器、处理器以及存储在存储器中并可在处理器上运行的计算机程序,处理器执行计算机程序时实现如上任一种数据处理方法的步骤。
[0045]第四方面,本专利技术实施例提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时实现如上任一种数据处理方法的步骤。
附图说明
[0046]为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0047]图1是本专利技术实施例提供的一种数据处理方法的实现流程图;
[0048]图2是本专利技术实施例提供的一种数据处理方法的应用场景示意图;
[0049]图3是本专利技术实施例提供的一种数据处理装置的结构示意图本文档来自技高网
...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】1.一种数据处理方法,其中,包括:接收N个输入数据,其中,所述N个输入数据对应M个子线程,其中,N为2的幂次方,M为大于1的整数;针对所述M个子线程中的每个子线程,从所述N个输入数据中获取与所述每个子线程对应的N/M个输入数据,其中,所述每个子线程对应的N/M个输入数据不相同;对所述N/M个输入数据进行第一处理,得到所述每个子线程对应的N/M个输出数据;将所述每个子线程对应的N/M个输出数据进行汇总,得到输出结果,其中,所述输出结果包括N个输出数据。2.如权利要求1所述数据处理方法,其中,所述第一处理为快速数论变换,每个子线程中包括多级蝶形运算单元和倒序运算单元;所述对所述N/M个输入数据进行第一处理,得到所述每个子线程对应的N/M个输出数据,包括:基于所述N/M个输入数据确定所述多级蝶形运算单元所需的参数;基于所述多级蝶形运算单元所需的参数对所述N/M个输入数据进行多级蝶形运算,得到蝶形运算结果;利用所述倒序运算单元对所述蝶形运算结果进行处理,得到所述每个子线程对应的N/M个输出数据。3.如权利要求2所述数据处理方法,其中,所述N/M个输入数据对应N/M个蝶形运算单元,所述N/M个蝶形运算单元中的每个蝶形运算包括第一输入数据和第二输入数据;所述基于所述N/M个输入数据确定所述多级蝶形运算单元所需的参数,包括:针对所述N/M个蝶形运算单元中的每个蝶形运算,定义所述第一输入数据和第二输入数据之间的间隔,其中,间隔用于表征两个数据的位置间隔;将所述多级蝶形运算的坐标除以所述间隔,得到所述多级蝶形运算的次数;基于所述多级蝶形运算的坐标、所述间隔和所述多级蝶形运算的次数,分别计算所述第一输入数据的坐标和原根的坐标;将所述第一输入数据的坐标和所述间隔进行和计算,得到所述第二输入数据的坐标;将所述每个蝶形运算单元所需的参数包括所述第一输入数据的坐标、第二输入数据的坐标和原根的坐标进行汇总,得到所述多级蝶形运算单元所需的参数。4.如权利要求3所述数据处理方法,其中,所述基于所述多级蝶形运算的坐标、所述间隔和所述多级蝶形运算的次数,分别计算所述第一输入数据的坐标和原根的坐标,包括:将所述多级蝶形运算的坐标与所述间隔和所述多级蝶形运算的次数的乘积进行和计算,得到所述第一输入数据的坐标;将所述多级蝶形运算的坐标与所述间隔和所述多级蝶形运算的次数的乘积进行差计算,得到所述原根的种类数目;将所述原根的增量和所述原根的种类数目的乘积作为指数,并对所述...

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

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

1