System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种基于快速数论变换的硬件加速器及硬件加速方法技术_技高网

一种基于快速数论变换的硬件加速器及硬件加速方法技术

技术编号:40034686 阅读:6 留言:0更新日期:2024-01-16 18:47
本发明专利技术涉及一种基于快速数论变换的硬件加速器及硬件加速方法,包括接口单元,使硬件加速器与上层模块连接、通信,接收并传输原始数据序列;存储单元,包括第一、第二存储子单元;控制单元,控制一部分数据信息存储于第一存储子单元并传输至蝶形计算单元;控制扭转因子序列中的扭转因子存储于第二存储子单元;控制另外一部分数据信息及位置信息直接传输至蝶形计算单元,选取目标扭转因子,将运算结果更新至第一存储子单元;控制将运算结果反馈至上层模块;蝶形计算单元,用于进行蝶形计算,得到本次的运算结果。本方案,很大程度上降低了运算的复杂度,降低了运算时间,提高了运算效率。

【技术实现步骤摘要】

本专利技术涉及一种硬件加速器及采用其来加速运算的方法,尤其是一种基于快速数论变换的硬件加速器及硬件加速方法


技术介绍

1、后量子密码学是逐渐兴起的密码学技术,其有许多基于不同困难问题的密码学协议,其中就包括基于环上容错学习(rlwe)困难问题的同态加密技术;此类密码学协议涉及大量多项式运算,其中就包括多项式乘法;为了降低多项式乘法的复杂度,减小资源开销并提高计算效率,现多采用快速数论变换(ntt/fntt)辅助多项式乘法的运算。

2、然而,现有技术方案中采用的快速数论变换模块是先加载全部参数与待计算数据,待所有的参数及待计算数据均被加载完毕后才开始计算,待计算全部完成再读出结果数据。如此导致现有技术方案中的快速数论变换模块存在着较长的输入输出数据等待时间以及较大的短时通信压力。

3、综上所述,现有技术方案中缺少一种具有较短输入输出数据等待时间及较小的通信压力的快速数论变换模块。


技术实现思路

1、为了克服现有技术中存在的不足,本专利技术提供一种基于快速数论变换的硬件加速器及硬件加速方法,有效克服现有技术方案中缺少一种具有较短输入输出数据等待时间及较小的通信压力的快速数论变换模块的技术问题。

2、第一方面,根据专利技术实施例提供一种基于快速数论变换的硬件加速器,包括:

3、接口单元,使硬件加速器与上层模块连接、通信,接收并传输上层模块发送的原始数据序列;

4、存储单元,与控制单元、蝶形计算单元均连接,包括第一存储子单元和第二存储子单元,所述第一存储子单元用于存储所述原始数据序列中的一部分数据信息及对应的位置信息,以及另外一部分数据信息的位置信息及对应的运算结果信息,所述第二存储子单元用于存储扭转因子序列中的数据信息及对应的位置信息;

5、控制单元,与接口单元、存储单元均连接,还与蝶形计算单元连接,用于控制所述一部分数据信息、扭转因子序列中的扭转因子以预设规则传输至蝶形计算单元;以及,

6、控制所述一部分数据信息依据其对应的位置信息存储于第一存储子单元;

7、控制原始数据序列中的另外一部分数据信息及对应的位置信息通过接口单元直接传输至蝶形计算单元,并依照所述预设规则从扭转因子序列中选取目标扭转因子传输至蝶形计算单元,将对应的运算更新至第一存储子单元中的对应位置;

8、所述蝶形计算单元,用于逐次对接收到的原始数据序列中的数据信息、目标扭转因子以及选取的素数进行蝶形计算,得到每次蝶形计算的运算结果。

9、优选地,所述控制单元,用于:

10、控制“将所述原始数据序列中的一部分数据信息依据其对应的位置信息存储于第一存储子单元”与“控制蝶形计算单元对接收到的来自接口单元的原始数据序列中另外一部分数据信息蝶形计算过程”并行执行;和/或

11、在运算过程达到目标条件时,

12、控制“蝶形计算单元对接收到数据信息执行蝶形计算”与“控制通过接口单元将第一存储子单元中存储的运算结果传输至上层模块,以在运算结束时完成运算结果的传输过程”并行执行。

13、优选地,所述控制单元,还用于控制第一存储子单元中存储的原始数据序列中的一部分数据信息及扭转因子序列中的扭转因子数据依据预设规则传输至蝶形计算单元。

14、优选地,所述蝶形计算单元,包括:

15、模乘子单元,以扭转因子序列中的目标扭转因子和原始数据序列中的第一目标数据信息为输入,将目标扭转因子和原始数据序列中的第一目标数据信息做模乘运算,运算结果传输至模加子单元的第一输入端和模减子单元的第一输入端;

16、模加子单元,包括第一输入端和第二输入端,模加子单元的第二输入端以第二目标数据信息为输入,用于将模乘子单元的运算结果和第二目标数据信息做模加运算,以作为偶数序列数据输出;

17、模减子单元,包括第一输入端和第二输入端,模减子单元的第二输入端以第二目标数据信息为输入,用于将模乘子单元的运算结果和第二目标数据信息做模减运算,作为奇数序列数据输出;

18、其中,控制单元将偶数序列数据输出更新至原始数据序列中第二目标数据信息对应的位置,将奇数序列数据输出更新至原始数据序列中第一目标数据信息对应的位置,第二目标数据信息来自第一存储子单元或者接口单元,第一目标数据信息来自第一存储子单元或接口单元。

19、优选地,所述控制单元,包括:

20、奇偶数据序列划分单元,用于将原始数据序列划分成奇数数据序列和偶数数据序列;奇偶数据序列划分单元,用于:

21、将原始数据序列an拆分成{aq}序列和{aq+n/2};q=0,1,...,n/2;

22、将数据序列{aq}确定为奇数数据序列,将数据序列{aq+n/2}确定为偶数数据序列;

23、所述控制单元,还用于从奇数数据序列中选取第一目标数据信息,及从偶数数据序列中选取第二目标数据信息,以及从扭转因子序列中选取目标扭转因子。

24、优选地,从奇数数据序列中选取第一目标数据信息,及从偶数数据序列中选取第二目标数据信息,以及从扭转因子序列中选取目标扭转因子,包括:

25、根据寄存器i、j和k的值从偶数数据序列中选取第二目标数据信息、从奇数数据序列中选取第一目标数据信息、从扭转因子序列中选取目标扭转因子;

26、所述蝶形计算单元,用于以第一目标数据信息、第二目标数据信息及目标扭转因子作为输入;

27、所述控制单元,还用于根据蝶形计算单元执行蝶形运算的次数更新寄存器i、j和k的值;

28、其中,初始化时寄存器i、j和k的值均为0。

29、优选地,所述预设规则为:所述控制单元基于第一数学模型、第二数学模型和第三数学模型,根据寄存器i、j和k的值从偶数数据序列选取第二目标数据信息和从奇数数据序列中选取第一目标数据信息;

30、所述第一数学模型为:

31、din_even=mem_data[2i*j+k];

32、所述第二数学模型为:

33、din_odd=mem_data[2i*(j+1)+k];

34、所述第三数学模型为:

35、w=mem_w[k*2m-i-1];

36、din_even为第二目标数据信息,din_odd为第一目标数据信息,w为目标扭转因子,mem_data[2i*j+k]为原始数据序列中地址为[2i*j+k]的数据,mem_data[2i*(j+1)+k]为原始数据序列中地址为[2i*(j+1)+k]的数据,mem_w[k*2m-i-1]为本次选取的目标扭转因子,为扭转因子序列中地址为[k*2m-i-1]的数据。

37、优选地,所述控制单元,还用于确定当前循环中i、j及k的值;

38、当前循环中i、j及k的确定方法为:

39、在蝶形计算单元每执行一次蝶形计算,k值加1;

40、当本文档来自技高网...

【技术保护点】

1.一种基于快速数论变换的硬件加速器,其特征在于,包括:

2.根据权利要求1所述的硬件加速器,其特征在于,所述控制单元,用于:

3.根据权利要求1所述的硬件加速器,其特征在于,所述控制单元,还用于控制第一存储子单元中存储的原始数据序列中的一部分数据信息及扭转因子序列中的扭转因子依据预设规则传输至蝶形计算单元。

4.根据权利要求1所述的硬件加速器,其特征在于,所述蝶形计算单元,包括:

5.根据权利要求4所述的硬件加速器,其特征在于,所述控制单元,包括:

6.根据权利要求5所述的硬件加速器,其特征在于,所述控制单元,从奇数数据序列中选取第一目标数据信息,及从偶数数据序列中选取第二目标数据信息,以及从扭转因子序列中选取目标扭转因子,包括:

7.根据权利要求6所述的硬件加速器,其特征在于,所述预设规则为:所述控制单元基于第一数学模型、第二数学模块和第三数学模型,根据寄存器i、j和k的值从偶数数据序列选取第一目标数据信息和从奇数数据序列中选取第一目标数据信息;

8.根据权利要求6所述的硬件加速器,其特征在于,所述控制单元,还用于确定当前循环中i、j及k的值;

9.一种基于快速数论变换的硬件加速方法,其特征在于,包括:

10.根据权利要求9所述的硬件加速方法,其特征在于,所述方法,还包括:

...

【技术特征摘要】

1.一种基于快速数论变换的硬件加速器,其特征在于,包括:

2.根据权利要求1所述的硬件加速器,其特征在于,所述控制单元,用于:

3.根据权利要求1所述的硬件加速器,其特征在于,所述控制单元,还用于控制第一存储子单元中存储的原始数据序列中的一部分数据信息及扭转因子序列中的扭转因子依据预设规则传输至蝶形计算单元。

4.根据权利要求1所述的硬件加速器,其特征在于,所述蝶形计算单元,包括:

5.根据权利要求4所述的硬件加速器,其特征在于,所述控制单元,包括:

6.根据权利要求5所述的硬件加速器,其特征在于,所述控制单元,从奇数数据序列中选取第一...

【专利技术属性】
技术研发人员:汪涛段焕利
申请(专利权)人:芯光智网集成电路设计无锡有限公司
类型:发明
国别省市:

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

1