System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及信息安全领域,尤其涉及一种在嵌入式系统中实现加速数论变化的方法及装置。
技术介绍
1、随着科技的发展和进步,用户对隐私信息越来越重视,进行隐私信息传输时需对该隐私信息进行一些操作,例如签名和验签,具体流程包括:一方生成密钥对并将密钥对中的公钥发送给另一方,生成方使用该密钥对中的私钥进行签名,另一方使用密钥对中的公钥进行验签。
2、当前,在量子计算应用的生成密钥对、签名、验签等操作中会使用抗量子攻击的后量子密码算法,这些后量子密码算法通常会涉及到多项式乘法运算,如何加速多项式乘法运算,进而提高生成密钥对、签名、验签等操作的效率,成为亟待解决的问题。
技术实现思路
1、本专利技术的目的是为了克服现有技术的不足,提供一种在嵌入式系统中实现加速数论变化的方法及装置。
2、第一方面,本专利技术实施例提供了一种在嵌入式系统中实现加速数论变化的方法,包括:
3、步骤s1:cpu获取原始数组并缓存至第一结果寄存器中,获取所述原始数组中的数据的个数值并缓存至第二结果寄存器中,计算以2为底、所述第二结果寄存器中的个数值的对数得到对数值并缓存至第三结果寄存器中,判断所述第三结果寄存器中的对数值是否为整数,是则执行步骤s2,否则报错;
4、步骤s2:所述cpu启动第一计数器和第二计数器并开始计时,根据所述第一计数器的值和所述第二计数器的值从旋转因子列表中获取对应的旋转因子并缓存至第四结果寄存器中;
5、步骤s3:所述cpu将所述第一
6、步骤s4:所述cpu判断所述第六结果寄存器中的数据的位长与预设模数的位长的差值、所述第四结果寄存器中的数据的位长与所述预设模数的位长的差值,如差值均等于1则执行步骤s5,如至少一个差值大于1则报错,否则在所述第六结果寄存器中的数据的高位补0使其位长比所述预设模数的位长大1和/或在所述第四结果寄存器中的数据的高位补0使其位长比所述预设模数的位长大1,执行步骤s5;
7、步骤s5:所述cpu通过模乘器和所述预设模数对所述第四结果寄存器中的数据和所述第六结果寄存器中的数据进行运算得到第一中间值并缓存至第七结果寄存器中;
8、步骤s6:所述cpu判断所述第五结果寄存器中的数据的位长与所述预设模数的位长的差值,如差值等于1则执行步骤s7,如差值小于1则在所述第五结果寄存器中的数据的高位补0使其位长比所述预设模数的位长大1,执行步骤s7,如差值大于1则报错;
9、步骤s7:所述cpu分别对所述第七结果寄存器中的第一中间值和所述第五结果寄存器中的数据进行模加和模减运算得到第一结果和第二结果并顺序存储到临时存储区中;
10、步骤s8:所述cpu判断所述第五结果寄存器中和所述第六结果寄存器中的数据是否均处理完成,是则执行步骤s10,否则执行步骤s9;
11、步骤s9:所述cpu更新所述第二计数器的值,根据所述第一计数器的值和所述第二计数器的值从所述旋转因子列表中获取对应的旋转因子,用获取的所述旋转因子更新所述第四结果寄存器中的数据,分别将所述第一数组和所述第二数组中的下一个数据作为当前数据并用其更新所述第五结果寄存器中的数据和所述第六结果寄存器中的数据,返回步骤s4;
12、步骤s10:所述cpu判断所述第一计数器的值是否与所述第三结果寄存器中的对数值一致,是则将所述临时存储区中的数据作为输出结果数组,否则分别更新所述第一计数器的值和所述第二计数器的值,用所述临时存储区中的数据更新第一结果寄存器中的数据,根据所述第一计数器的值和所述第二计数器的值从所述旋转因子列表中获取对应的旋转因子,用获取的所述旋转因子更新所述第四结果寄存器中的数据,返回步骤s3。
13、第二方面,本专利技术实施例又提供一种在嵌入式系统中实现加速数论变化的装置,包括:
14、获取计算判断模块,用于获取原始数组并缓存至第一结果寄存器中,获取所述原始数组中的数据的个数值并缓存至第二结果寄存器中,计算以2为底所述第二结果寄存器中的个数值的对数得到对数值并缓存至第三结果寄存器中,判断所述第三结果寄存器中的对数值是否为整数,是则触发启动生成获取模块,否则报错;
15、所述启动生成获取模块,用于启动第一计数器和第二计数器并开始计时,根据所述第一计数器的值和所述第二计数器的值从旋转因子列表中获取对应的旋转因子并缓存至第四结果寄存器中;
16、分组缓存模块,用于将所述第一结果寄存器中的原始数组等分成第一数组和第二数组,分别将所述第一数组和所述第二数组中的第一个数据作为当前数据并缓存至第五结果寄存器中和第六结果寄存器中;
17、第一判断补位模块,用于判断所述第六结果寄存器中的数据的位长与预设模数的位长的差值、所述第四结果寄存器中的数据的位长与所述预设模数的位长的差值,如差值均等于1则触发第一运算缓存模块,如至少一个差值大于1则报错,否则在所述第六结果寄存器中的数据的高位补0使其位长比所述预设模数的位长大1和/或在所述第四结果寄存器中的数据的高位补0使其位长比所述预设模数的位长大1,触发第一运算缓存模块;
18、所述第一运算缓存模块,用于通过模乘器和所述预设模数对所述第四结果寄存器中的数据和所述第六结果寄存器中的数据进行运算得到第一中间值并缓存至第七结果寄存器中;
19、第二判断补位模块,用于判断所述第五结果寄存器中的数据的位长与所述预设模数的位长的差值,如差值等于1则触发计算存储模块,如差值小于1则在所述第五结果寄存器中的数据的高位补0使其位长比所述预设模数的位长大1,触发计算存储模块,如差值大于1则报错;
20、所述计算存储模块,用于分别对所述第七结果寄存器中的第一中间值和所述第五结果寄存器中的数据进行模加和模减运算得到第一结果和第二结果并顺序存储到临时存储区中;
21、第一判断模块,用于判断所述第五结果寄存器中和所述第六结果寄存器中的数据是否均处理完成,是则触发第一判断更新模块,否则触发更新获取模块;
22、所述更新获取模块,用于更新所述第二计数器的值,根据所述第一计数器的值和所述第二计数器的值从所述旋转因子列表中获取对应的旋转因子,用获取的所述旋转因子更新所述第四结果寄存器中的数据,分别将所述第一数组和所述第二数组中的下一个数据作为当前数据并用其更新所述第五结果寄存器中的数据和所述第六结果寄存器中的数据,触发所述第一判断补位模块;
23、所述第一判断更新模块,用于判断所述第一计数器的值是否与所述第三结果寄存器中的对数值一致,是则将所述临时存储区中的数据作为输出结果数组,否则分别更新所述第一计数器的值和所述第二计数器的值,用所述临时存储区中的数据更新第一结果寄存器中的数据,根据所述第一计数器的值和所述第二计数器的值从所述旋转因子列表中获取对应的旋本文档来自技高网...
【技术保护点】
1.一种在嵌入式系统中实现加速数论变化的方法,其特征在于,包括:
2.如权利要求1所述在嵌入式系统中实现加速数论变化的方法,其特征在于,所述根据所述第一计数器的值和所述第二计数器的值从旋转因子列表中获取对应的旋转因子,包括:
3.如权利要求2所述在嵌入式系统中实现加速数论变化的方法,其特征在于,所述步骤B2之前包括:
4.如权利要求3所述在嵌入式系统中实现加速数论变化的方法,其特征在于,所述CPU根据所述第一中间寄存器中的数据与所述中间树形图的第1层的节点数据生成元素值,包括:所述CPU对2与所述中间树形图的第1层的节点数据进行乘法运算得到第一结果并缓存至第三中间寄存器中,对所述第三中间寄存器中的第一结果与1进行加法运算得到第二结果并缓存至第四中间寄存器中,对所述第三结果寄存器中的对数值与1进行减法运算得到第三结果并缓存至第五中间寄存器中,对所述第五中间寄存器中的第三结果与所述第一中间寄存器中的数据进行减法运算得到第四结果并缓存至第六中间寄存器中,以2为底数、所述第六中间寄存器中的第四结果为指数进行运算得到第五结果并缓存至第七中间寄存器中,对所
5.如权利要求3所述在嵌入式系统中实现加速数论变化的方法,其特征在于,所述CPU根据所述第一中间寄存器中的数据与所述第二中间寄存器中的数据进行计算,包括:将以2为底数、所述第一中间寄存器中的数据为指数进行运算的结果与所述第二中间寄存器中的数据进行加法运算得到计算结果。
6.如权利要求3所述在嵌入式系统中实现加速数论变化的方法,其特征在于,所述步骤A1还包括:初始化树形图计算次数;
7.如权利要求1所述在嵌入式系统中实现加速数论变化的方法,其特征在于,所述步骤S5包括:
8.如权利要求7所述在嵌入式系统中实现加速数论变化的方法,其特征在于,所述对所述第十二中间寄存器中的数据和获取的预设常数进行乘法运算得到第二乘法结果之前还包括:判断获取的所述预设常数的位长与所述第十一中间寄存器中的第一加法结果是否一致,是则继续,否则在所述预设常数的高位补0使其位长达到所述第一加法结果。
9.如权利要求1所述在嵌入式系统中实现加速数论变化的方法,其特征在于,所述步骤S10中,将所述临时存储区中的数据作为输出结果数组替换为:
10.一种在嵌入式系统中实现加速数论变化的装置,其特征在于,包括:
11.一种电子设备,其特征在于,所述电子设备包括至少一个处理器、存储器及存储在所述存储器上并可被所述至少一个处理器执行的指令,所述至少一个处理器执行所述指令以实现权利要求1至9任一项所述的在嵌入式系统中实现加速数论变化的方法。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括计算机程序,当所述计算机程序在电子设备上运行时,使得所述电子设备执行如权利要求1至9任一项所述的在嵌入式系统中实现加速数论变化的方法。
13.一种芯片系统,其特征在于,包括芯片,所述芯片与存储器耦合,用于执行所述存储器中存储的计算机程序,以执行权利要求1至9任一项所述的在嵌入式系统中实现加速数论变化的方法。
...【技术特征摘要】
1.一种在嵌入式系统中实现加速数论变化的方法,其特征在于,包括:
2.如权利要求1所述在嵌入式系统中实现加速数论变化的方法,其特征在于,所述根据所述第一计数器的值和所述第二计数器的值从旋转因子列表中获取对应的旋转因子,包括:
3.如权利要求2所述在嵌入式系统中实现加速数论变化的方法,其特征在于,所述步骤b2之前包括:
4.如权利要求3所述在嵌入式系统中实现加速数论变化的方法,其特征在于,所述cpu根据所述第一中间寄存器中的数据与所述中间树形图的第1层的节点数据生成元素值,包括:所述cpu对2与所述中间树形图的第1层的节点数据进行乘法运算得到第一结果并缓存至第三中间寄存器中,对所述第三中间寄存器中的第一结果与1进行加法运算得到第二结果并缓存至第四中间寄存器中,对所述第三结果寄存器中的对数值与1进行减法运算得到第三结果并缓存至第五中间寄存器中,对所述第五中间寄存器中的第三结果与所述第一中间寄存器中的数据进行减法运算得到第四结果并缓存至第六中间寄存器中,以2为底数、所述第六中间寄存器中的第四结果为指数进行运算得到第五结果并缓存至第七中间寄存器中,对所述第四中间寄存器中的第二结果与所述第七中间寄存器中的第五结果进行乘法运算得到元素值。
5.如权利要求3所述在嵌入式系统中实现加速数论变化的方法,其特征在于,所述cpu根据所述第一中间寄存器中的数据与所述第二中间寄存器中的数据进行计算,包括:将以2为底数、所述第一中间寄存器中的数据为指数进行运算的结果与所述第二中间寄存器中的数据进行加法运算得到计算结果。
6.如权利要求3...
【专利技术属性】
技术研发人员:王磊,张贺,王亚伟,张文婧,孙博文,
申请(专利权)人:北京宏思电子技术有限责任公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。