技术新讯 > 电子通信装置的制造及其应用技术 > 一种格签名中拒绝采样的GPU并行加速方法与流程  >  正文

一种格签名中拒绝采样的GPU并行加速方法与流程

  • 国知局
  • 2024-08-02 14:56:39

本发明涉及密码学,特别涉及一种格签名中拒绝采样的gpu并行加速方法。

背景技术:

1、量子计算机的迅速发展对现行加密算法构成了前所未有的挑战,其拥有破解传统加密算法的潜力,从而催生了对后量子密码技术的迫切需求。后量子密码学是一门新兴学科,致力于开发能够抵御量子计算机攻击的加密方法。在这一领域中,基于格的后量子密钥封装与签名技术尤为重要,它已经在多个应用场景中发挥了关键作用。其中,基于格的密钥封装机制kyber与数字签名算法dilithium,由于其出色的安全性能,已经被国际标准化组织正式采纳。

2、在后量子密码学中,该类算法的核心之一是拒绝采样模块,这一模块在整个算法的性能中扮演着关键角色。拒绝采样是一种用于从特定概率分布中生成随机数的方法。它通过反复生成候选样本,并根据定义好的概率分布进行筛选,从而产生符合目标分布的样本。虽然这种方法在理论上是有效的,但在实际应用中,尤其是当需要处理大量数据时,拒绝采样可能成为性能瓶颈。

3、在面对服务器和其他需要高吞吐量的应用场景时,gpu加速成为了解决这一瓶颈的关键技术。gpu由于其并行处理能力,在处理复杂和数据密集型的任务时表现出色。通过利用gpu进行加速,可以显著提高拒绝采样过程的效率,从而满足现代加密系统对速度和性能的高要求。因此,在后量子密码学的实践中,有效地利用gpu加速技术,是提升签名算法性能的关键策略之一。

4、然而,在dilithium的拒绝采样模块中,使用每24bit生成一个系数的方式。这种方式在使用gpu并行实现时存在以下问题:(1)数据加载时只能按照单个字节(8bit)、单个半字(16bit)、单个字(32bit)的方式来进行,无法直接从字节流中加载24bit;若分三次加载三个8bit单元,又会导致对gmem的访存次数过多;(2)拒绝采样过程具有的固有时序性,每次采样所对应的写入地址受到前一个采样结果的影响,很可能遭遇因共享资源访问而引起的冲突和竞争,对并行化实现构成了明显的挑战。

技术实现思路

1、本发明的目的在于提供一种格签名中拒绝采样的gpu并行加速方法,以克服现有技术中的不足。

2、为实现上述目的,本发明提供如下技术方案:

3、本申请公开了一种格签名中拒绝采样的gpu并行加速方法,1.包括如下步骤:

4、s1:对于一个多项式的若干个系数,采用32线程执行循环;

5、s2:对s1的多项式通过字节置换选出四个字节设置掩码;

6、s3:加载数据,获取24位数据,存储在寄存器中;

7、s4:执行拒绝逻辑,计算获取合法数据的正确写入地址;

8、s5:判断循环是否结束,若合法采样数据总数不足256,则返回s2进行下一轮循环。

9、作为优选,所述s3包括如下子步骤:

10、s31:加载两个32位数据,分别为t0和t1;

11、s32:通过字节置换,每个线程得到自身对应的24位数据;

12、s33:将结果存储在寄存器中。

13、作为优选,所述s31包括如下子步骤:

14、s311:确定缓存器中伪随机字符串的起始位置;

15、s312:计算每个线程在缓存器中取数据的偏移量;

16、s313:每个线程分别根据起始地址和各自偏移量进行计算,获取数据t0;

17、s314:每个线程分别在各自偏移量的基础上加1,并再次按照s223进行计算,获取数据t1。

18、作为优选,所述s32包括如下子步骤:

19、s321:调用shuffle函数对数据t0和数据t1进行计算;

20、s322:通过字节置换获取对应的24位数据;

21、s323:将结果和掩码执行与操作,获取最终结果。

22、作为优选,所述s4包括如下子步骤:

23、s41:计算每个线程的采样数据是否合法;

24、s42:计算当前循环中合法的采样数据的数量,获取其累加值,作为每个线程当前写地址的偏移;

25、s43:获取每个线程的写地址,并根据第31个线程的计数器以及s42中的偏移,获取每个线程的写入地址;

26、s44:将合法数据写入全局内存。

27、作为优选,所述s41包括如下子步骤:

28、s411:设定阈值一;

29、s412:将寄存器中存储的24位数据与阈值一相减;

30、s413:右移31位后,与1执行逻辑与操作,获取符号位;

31、s414:若获得数据位1,则合法;若为0,则非法。

32、其中,阈值一dilithium_q为8480317。

33、作为优选,所述s43包括如下内容:由于每轮循环中只有第31个线程的计数器计算了合法采样数据的总数,因此将上一轮循环的第31个线程的计数器作为当前采样循环的起始地址;在该起始地址上加上s42中获取的每个线程的偏移,进而得到每个线程的写入地址。

34、一种格签名中拒绝采样的gpu并行加速装置,包括存储器和一个或多个处理器,所述存储器中存储有可执行代码,所述一个或多个处理器执行所述可执行代码时,用于实现上述的一种格签名中拒绝采样的gpu并行加速方法。

35、一种计算机可读存储介质,其上存储有程序,该程序被处理器执行时,实现上述的一种格签名中拒绝采样的gpu并行加速方法。

36、本发明的有益效果:

37、(1)、针对格签名dilithium中的拒绝采样,设计了基于warp shuffle(线程束置换)的gpu并行实现方案;这种方式不仅实现了该过程的并行计算,同时数据交互基本在寄存器中进行,保持了计算与访存的高效性。

38、本发明的特征及优点将通过实施例结合附图进行详细说明。

技术特征:

1.一种格签名中拒绝采样的gpu并行加速方法,其特征在于:包括如下步骤:

2.如权利要求1所述的一种格签名中拒绝采样的gpu并行加速方法,其特征在于:所述s3包括如下子步骤:

3.如权利要求1所述的一种格签名中拒绝采样的gpu并行加速方法,其特征在于:所述s31包括如下子步骤:

4.如权利要求1所述的一种格签名中拒绝采样的gpu并行加速方法,其特征在于:所述s32包括如下子步骤:

5.如权利要求1所述的一种格签名中拒绝采样的gpu并行加速方法,其特征在于:所述s4包括如下子步骤:

6.如权利要求1所述的一种格签名中拒绝采样的gpu并行加速方法,其特征在于:所述s41包括如下子步骤:

7.如权利要求1所述的一种格签名中拒绝采样的gpu并行加速方法,其特征在于:所述s43包括如下内容:由于每轮循环中只有第31个线程的计数器计算了合法采样数据的总数,因此将上一轮循环的第31个线程的计数器作为当前采样循环的起始地址;在该起始地址上加上s42中获取的每个线程的偏移,进而得到每个线程的写入地址。

8.一种格签名中拒绝采样的gpu并行加速装置,其特征在于:包括存储器和一个或多个处理器,所述存储器中存储有可执行代码,所述一个或多个处理器执行所述可执行代码时,用于实现权利要求1~7任一项所述的一种格签名中拒绝采样的gpu并行加速方法。

9.一种计算机可读存储介质,其特征在于:其上存储有程序,该程序被处理器执行时,实现权利要求1~7任一项所述的一种格签名中拒绝采样的gpu并行加速方法。

技术总结本发明公开了一种格签名中拒绝采样的GPU并行加速方法,包括如下步骤:S1:对于一个多项式的若干个系数,采用32线程执行循环;S2:对S1的多项式通过字节置换选出四个字节设置掩码;S3:加载数据,获取24位数据,存储在寄存器中;S4:执行拒绝逻辑,计算获取合法数据的正确写入地址;S5:判断循环是否结束,若合法采样数据总数不足256,则返回S2进行下一轮循环。技术研发人员:石建,方凯俊,李中魁,吴潇受保护的技术使用者:杭州后量子密码科技有限公司技术研发日:技术公布日:2024/7/29

本文地址:https://www.jishuxx.com/zhuanli/20240801/244410.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。