System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种随机数生成方法及装置制造方法及图纸_技高网

一种随机数生成方法及装置制造方法及图纸

技术编号:39952274 阅读:6 留言:0更新日期:2024-01-08 23:23
本申请公开了一种随机数生成方法及装置,将64字节待加密信息分为16个块,每个块表示4个字节,将每4个块作为一基础块得到第一基础块、第二基础块、第三基础块和第四基础块;基于基础块和256位寄存器,完成流式对称加密算法中对块进行混合运算的一次基础操作;以块为单位,对第二基础块循环左移一个块,对第三基础块循环左移两个块,对第四基础块循环左移三个块;基于基础块和256位寄存器,完成流式对称加密算法中对重排后的块进行混合运算的一次基础操作。

【技术实现步骤摘要】
【国外来华专利技术】

本申请涉及但不限于信息安全技术,尤指一种随机数生成方法及装置


技术介绍

1、零知识证明(zkp,zero—knowledge proof),是由s.goldwasser、s.micali及c.rackoff在20世纪80年代初提出的。零知识证明指的是证明方能够在不向验证方提供任何有用的信息的情况下,使验证方相信某个论断是正确的。零知识证明实质上是一种涉及两方或更多方的协议,换句话讲,也即两方或更多方完成一项任务所需采取的一系列步骤。在零知识证明中,证明方向验证方证明并使其相信自己知道或拥有某一消息,但证明过程不能向验证方泄漏任何关于被证明消息的信息。

2、流式对称加密算法,在zkp系统中作为随机数生成器,可以保证证明方和验证方生成相同的随机数,同时随机数无法事先预测。相关技术中,流式对称加密算法在采用软件实现时,其运算数据量大,会频繁调用内存,从而增加了cpu的负担;而且,在执行zkp加密过程中,也会使得加密时间过长。


技术实现思路

0、专利技术概述

1、本申请提供一种随机数生成方法及装置,能够降低运算量,提升随机数生成速度,从而缩短执行zkp加密过程的时长。

2、本申请实施例提供一种随机数生成方法,包括:

3、将64字节待加密信息分为16个块,每个块表示4个字节,将每4个块作为一基础块得到第一基础块、第二基础块、第三基础块和第四基础块;所述四个基础块分别存储到四个256位寄存器中;

4、基于四个基础块和四个256位寄存器,完成流式对称加密算法中对块进行混合运算的一次基础操作;

5、以块为单位,对第二基础块循环左移一个块,对第三基础块循环左移两个块,对第四基础块循环左移三个块;

6、基于四个基础块和四个256位寄存器,完成流式对称加密算法中对重排后的块进行混合运算的一次基础操作。

7、在一种示例性实例中,还包括:

8、预设轮数加一,并返回所述对块进行混合运算的一次基础操作的步骤,直到轮数到达预设轮数阈值;

9、对经过预设轮数阈值迭代运算后的结果和未更新前的待加密信息进行加法运算,将运算结果作为随机数。

10、在一种示例性实例中,所述混合运算包括:256位单指令多数据simd加法指令,用于实现对两个256位simd寄存器的加法操作;256位simd异或,用于实现对两个256位simd寄存器的异或操作,其中一个256位寄存器表示所述加法操作的结果;以及,第一simd循环左移指令,用于实现以32位为独立单元对表示所述异或操作的结果的256位simd寄存器进行n1位第一循环左移。

11、在一种示例性实例中,所述第一基础块包括所述16个块中的块block0,block1,block2和block3;所述第二基础块包括所述16个块中的block4,block5,block6和block7;所述第三基础块包括所述16个块中的block8,block9,block10和block11;所述第四基础块包括所述16个块中的block12,block13,block14和block15;

12、所述对第二基础块循环左移一个块,对第三基础块循环左移两个块,对第四基础块循环左移三个块,包括:

13、针对所述对块进行混合运算的一次基础操作后的结果,将所述第二基础块的block5循环左移到block4处,将所述第三基础块的block10循环左移到block8处,将所述第四基础块的block15循环左移到block12处。

14、在一种示例性实例中,所述循环左移为第二simd循环左移;所述第二simd循环左移通过simd128_rol指令实现;

15、所述simd128_rol指令的格式包括:simd128_rol(s,n2,r),用于实现对s进行128位的n2位循环左移后得到r;其中,s表示执行循环左移运算的256位simd寄存器,n2表示循环左移的位数,且n2为32的整数倍。

16、本申请实施例还提供一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令用于执行上述任一项所述随机数生成方法。

17、本申请实施例再提供一种计算机设备,包括存储器和处理器,其中,存储器中存储有以下可被处理器执行的指令:用于执行上述任一项所述的随机数生成方法的步骤。

18、本申请实施例又提供一种随机数生成装置,包括:控制单元、预处理单元、256位寄存器堆、迭代处理单元,以及尾处理单元;其中,

19、预处理模块,用于在控制单元的控制下,从内存中读取数据,对读取的数据进行如下预处理后存入256位寄存器堆,其中,在256位寄存器堆中存储两份预处理后的结果:将64字节待加密信息分为16个块,每个块表示4个字节,将每4个块作为一基础块得到第一基础块、第二基础块、第三基础块和第四基础块;所述四个基础块分别存储到四个256位寄存器中;

20、核心处理单元,用于执行如下预设轮数迭代运算:从256位寄存器堆中读取待加密信息,基于四个基础块和四个256位寄存器,完成流式对称加密算法中对块进行混合运算的一次基础操作;以块为单位,对第二基础块循环左移一个块,对第三基础块循环左移两个块,对第四基础块循环左移三个块,并更新256位寄存器堆中待加密信息对应的16个块;基于更新后的四个基础块和四个256位寄存器,完成流式对称加密算法中对重排后的块进行混合运算的一次基础操作;

21、尾处理单元,用于在控制单元的控制下,对经过预设轮数阈值迭代运算后的结果和未更新前的待加密信息进行加法运算,将结果作为随机数最为得到的随机数写入内存。

22、在一种示例性实例中,所述256位寄存器堆包括八个256bit寄存器simd_reg0至simd_reg7;其中,

23、simd_reg0用于保存所述第一基础块,simd_reg1用于保存所述第二基础块,simd_reg2用于保存所述第三基础块,simd_reg3用于保存所述第四基础块;

24、simd_reg4用于保存所述第一基础块,simd_reg5用于保存所述第二基础块,simd_reg6用于保存所述第三基础块,simd_reg7用于保存所述第四基础块。

25、在一种示例性实例中,所述尾处理单元中读取的未更新前的待加密信息为从所述256位寄存器堆中的simd_reg4至simd_reg7中读取的数据。

26、在一种示例性实例中,所述核心处理单元可以包括:迭代控制模块、第一处理模块、重排模块、第二处理模块;其中,

27、第一处理模块,用于在迭代处理模块的控制下,从所述256位寄存器堆中的simd_reg0至simd_reg3中读取的待加密信息,基于基础块和256位寄存器,完成流式对称加密算法中对块进行混合运算的一次基础操作;在一种实施例中,从256位寄存器堆中读取待加密信息为从;

28、重排模块,用于以块本文档来自技高网...

【技术保护点】

1.一种随机数生成方法,包括:

2.根据权利要求1所述的随机数生成方法,还包括:

3.根据权利要求1或2所述的随机数生成方法,其中,所述混合运算包括:256位单指令多数据SIMD加法指令,用于实现对两个256位寄存器的加法操作;256位SIMD异或,用于实现对两个256位寄存器的异或操作,其中一个256位寄存器表示所述加法操作的结果;以及,第一SIMD循环左移指令,用于实现以32位为独立单元对表示所述异或操作的结果的256位SIMD寄存器进行N1位第一循环左移。

4.根据权利要求1或2所述的随机数生成方法,其中,所述第一基础块包括所述16个块中的块block0,block1,block2和block3;所述第二基础块包括所述16个块中的block4,block5,block6和block7;所述第三基础块包括所述16个块中的block8,block9,block10和block11;所述第四基础块包括所述16个块中的block12,block13,block14和block15;

5.根据权利要求4所述的随机数生成方法,其中,所述循环左移为第二SIMD循环左移;所述第二SIMD循环左移通过SIMD128_ROL指令实现;

6.一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令用于执行权利要求1~5任一项所述随机数生成方法。

7.一种计算机设备,包括存储器和处理器,其中,存储器中存储有以下可被处理器执行的指令:用于执行权利要求1~5任一项所述的随机数生成方法的步骤。

8.一种随机数生成装置,包括:控制单元、预处理单元、256位寄存器堆、迭代处理单元,以及尾处理单元;其中,

9.根据权利要求8所述的随机数生成装置,其中,所述256位寄存器堆包括八个256bit寄存器SIMD_reg0至SIMD_reg7;其中,

10.根据权利要求8所述的随机数生成装置,其中,所述尾处理单元中读取的未更新前的待加密信息为从所述256位寄存器堆中的SIMD_reg4至SIMD_reg7中读取的数据。

11.根据权利要求8所述的随机数生成装置,其中,所述核心处理单元可以包括:迭代控制模块、第一处理模块、重排模块、第二处理模块;其中,

12.根据权利要求10所述的随机数生成装置,其中,所述迭代处理模块的控制用于:将预设轮数加一,并通知第一处理模块执行一次基础操作,直到轮数到达预设轮数阈值,将运算结果作为随机数。

...

【技术特征摘要】
【国外来华专利技术】

1.一种随机数生成方法,包括:

2.根据权利要求1所述的随机数生成方法,还包括:

3.根据权利要求1或2所述的随机数生成方法,其中,所述混合运算包括:256位单指令多数据simd加法指令,用于实现对两个256位寄存器的加法操作;256位simd异或,用于实现对两个256位寄存器的异或操作,其中一个256位寄存器表示所述加法操作的结果;以及,第一simd循环左移指令,用于实现以32位为独立单元对表示所述异或操作的结果的256位simd寄存器进行n1位第一循环左移。

4.根据权利要求1或2所述的随机数生成方法,其中,所述第一基础块包括所述16个块中的块block0,block1,block2和block3;所述第二基础块包括所述16个块中的block4,block5,block6和block7;所述第三基础块包括所述16个块中的block8,block9,block10和block11;所述第四基础块包括所述16个块中的block12,block13,block14和block15;

5.根据权利要求4所述的随机数生成方法,其中,所述循环左移为第二simd循环左移;所述第二simd循环左移通过simd128_rol指令实现;...

【专利技术属性】
技术研发人员:易峰闫超王沛然
申请(专利权)人:声龙新加坡私人有限公司
类型:发明
国别省市:

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

1