一种在嵌入式系统中加快线性对运算的实现方法及装置制造方法及图纸

技术编号:28383302 阅读:52 留言:0更新日期:2021-05-08 00:11
本发明专利技术公开一种在嵌入式系统中加快线性对运算的实现方法及装置,涉及信息安全领域。该方法包括:协处理器获取第一预设值、第二预设值、获取第一数据组;将第一数据组存储到第二寄存器中;对第一预设值、第二预设值、第一寄存器中的数据、第二寄存器中的数据、第三寄存器中的数据、第四寄存器中的数据、第五寄存器中的数据、第六寄存器中的数据、第七寄存器中的数据进行计算得到线性对运算结果并保存。本发明专利技术技术方案应用于解密、签名等过程,通过对线性对运算进行拆分,大大减少了运算时间,进一步地提高使用本发明专利技术技术方案的各种安全应用的效率。

【技术实现步骤摘要】
一种在嵌入式系统中加快线性对运算的实现方法及装置
本专利技术涉及信息安全领域,尤其涉及一种在嵌入式系统中加快线性对运算的实现方法及装置。
技术介绍
当前,IBC(标识密码系统)快速发展,该系统理论上可去除CA(证书颁发机构),从而在使用上存在很大的便利性;而SM9是国际标准中唯一的一套标识密码系统。SM9算法不需要申请数字证书,适用于互联网行业的各种新兴应用。如基于云技术的密码服务、电子邮件安全、智能终端保护、物联网安全、云存储安全等各种安全应用中。这些安全应用可采用手机号码或邮件地址作为公钥,实现数据加密、身份认证、通话加密、通道加密等安全应用,并具有使用方便,易于部署的特点。SM9密码系统运算的核心部分为线性对运算,而线性对运算中最耗时部分为FinalExponentiation运算,该运算的表示形式为如果直接强制运算,运算时间特别长,将导致使用SM9的各种安全应用的效率降低。
技术实现思路
本专利技术的目的是为了克服现有技术的不足,提供一种在嵌入式系统中加快线性对运算的实现方法及装置。本专利技术提供了一种在嵌入式系统中加快线性对运算的实现方法,包括:步骤S1:协处理器获取第一预设值、第二预设值、获取第一数据组;分配第一寄存器、第二寄存器、第三寄存器、第四寄存器、第五寄存器、第六寄存器、第七寄存器,并将所述第一数据组存储到所述第二寄存器中;所述第一数据组为12维数据;步骤S2:所述协处理器对所述第二寄存器中的数据和所述第一预设值进行计算并将计算结果存储到所述第六寄存器中,对所述第二寄存器中的数据进行计算并将计算结果存储到第四寄存器中,对所述第四寄存器中的数据、所述第二寄存器中的数据和所述第一预设值进行计算并用计算结果更新所述第六寄存器中的数据;步骤S3:所述协处理器对所述第六寄存器中的数据、所述第二预设值和所述第一预设值进行计算并将计算结果存储到第五寄存器中,根据所述第五寄存器中的数据更新所述第三寄存器中的数据;步骤S4:所述协处理器对所述第三寄存器中的数据进行计算并将计算结果存储到所述第七寄存器中,对所述第五寄存器中的数据、所述第二寄存器中的数据、所述第一预设值进行计算并用计算结果更新所述第三寄存器中的数据;步骤S5:所述协处理器更新所述第六寄存器中的数据,对所述第六寄存器中的数据和所述第一预设值进行计算并用计算结果更新所述第四寄存器中的数据;步骤S6:所述协处理器对所述第六寄存器中的数据、所述第四寄存器中的数据和所述第七寄存器中的数据进行计算并用计算结果更新所述第五寄存器中的数据;步骤S7:所述协处理器更新所述第四寄存器中的数据,对所述第四寄存器中的数据和第二寄存器中的数据进行计算并用计算结果更新所述第五寄存器中的数据;步骤S8:所述协处理器根据所述第四寄存器中的数据和所述第一寄存器中的数据更新所述第四寄存器中的数据,对所述第五寄存器中的数据和所述第四寄存器中的数据进行计算得到线性对运算结果并保存。进一步地,所述步骤S2包括:步骤S2-1:所述协处理器用所述第一预设值作为底数进行6次幂运算得到第一中间值,将所述第二寄存器中的数据作为底数、所述第一中间值作为指数进行幂运算并将运算结果存储到所述第六寄存器中;对所述第二寄存器中的数据进行逆元计算并将计算结果存储到所述第四寄存器中;步骤S2-2:所述协处理器对所述第六寄存器中的数据与所述第四寄存器中的数据进行12次域乘法运算并用运算结果更新第六寄存器中的数据;步骤S2-3:所述协处理器用所述第一预设值作为底数进行2次幂运算得到第二中间值,用所述第六寄存器中的数据作为底数、所述第二中间值作为指数进行幂运算并用运算结果更新所述第四寄存器中的数据;步骤S2-4:所述协处理器对所述第六寄存器中的数据与所述第四寄存器中的数据进行12次域乘法运算并用运算结果更新所述第二寄存器中的数据;步骤S2-5:所述协处理器用所述第二寄存器中的数据作为底数、所述第二预设值作为指数进行幂运算并用运算结果更新所述第四寄存器中的数据;步骤S2-6:所述协处理器用所述第四寄存器中的数据作为底数、所述第二预设值作为指数进行幂运算并用运算结果更新所述第六寄存器中的数据。进一步地,所述步骤S3包括:步骤S3-1:所述协处理器用所述第六寄存器中的数据作为底数、所述第二预设值作为指数进行幂运算并用运算结果更新所述第三寄存器中的数据;步骤S3-2:所述协处理器用所述第三寄存器中的数据作为底数、所述第一预设值作为指数进行幂运算并用运算结果更新所述第五寄存器中的数据;步骤S3-3:所述协处理器对所述第三寄存器中的数据与所述第五寄存器中的数据进行12次域乘法运算并用运算结果更新所述第三寄存器中的数据。进一步地,所述步骤S4包括:步骤S4-1:所述协处理器对所述第三寄存器中的数据进行逆元计算并用计算结果更新所述第七寄存器中的数据;步骤S4-2:所述协处理器用所述第二寄存器中的数据作为底数、第一预设值作为指数进行幂运算并用运算结果更新所述第三寄存器中的数据;步骤S4-3:所述协处理器用所述第一预设值作为底数进行2次幂运算得到第三中间值,用所述第二寄存器中的数据作为底数、所述第三中间值作为指数进行幂运算并用运算结果更新所述第五寄存器中的数据;步骤S4-4:所述协处理器对所述第三寄存器中的数据与所述第五寄存器中的数据进行12次域乘法运算并用运算结果更新所述第三寄存器中的数据;步骤S4-5:所述协处理器用所述第一预设值作为底数进行3次幂运算得到第四中间值,用所述第二寄存器中的数据作为底数、所述第四中间值作为指数进行幂运算并用运算结果更新所述第五寄存器中的数据;步骤S4-6:所述协处理器对所述第三寄存器中的数据与所述第五寄存器中的数据进行12次域乘法运算并将运算结果存储到所述第一寄存器中;步骤S4-7:所述协处理器用所述第六寄存器中的数据作为底数、所述第一预设值作为指数进行幂运算并用运算结果更新所述第三寄存器中的数据;步骤S4-8:所述协处理器对所述第四寄存器中的数据与所述第三寄存器中的数据进行12次域乘法运算并用运算结果更新所述第五寄存器中的数据;步骤S4-9:所述协处理器对所述第五寄存器中的数据进行逆元计算并用计算结果更新所述第五寄存器中的数据;步骤S4-10:所述协处理器用所述第一预设值作为底数进行2次幂运算得到第五中间值,用所述第六寄存器中的数据作为底数、所述第五中间值作为指数进行幂运算并用运算结果更新所述第三寄存器中的数据。进一步地,所述步骤S5包括:步骤S5-1:所述协处理器对所述第六寄存器中的数据进行逆元计算并用计算结果更新所述第六寄存器中的数据;步骤S5-2:所述协处理器用所述第四寄存器中的数据作为底数、所述第一预设值作为指数进行幂运算并用运算结果更新所述第四寄存器中的数据;步骤S5-3:所述协处理器对所述第四寄存器中的数据进行逆元计算并用计算结果更新所述第四寄本文档来自技高网...

【技术保护点】
1.一种在嵌入式系统中加快线性对运算的实现方法,其特征在于,包括:/n步骤S1:协处理器获取第一预设值、第二预设值、获取第一数据组;分配第一寄存器、第二寄存器、第三寄存器、第四寄存器、第五寄存器、第六寄存器、第七寄存器,并将所述第一数据组存储到所述第二寄存器中;所述第一数据组为12维数据;/n步骤S2:所述协处理器对所述第二寄存器中的数据和所述第一预设值进行计算并将计算结果存储到所述第六寄存器中,对所述第二寄存器中的数据进行计算并将计算结果存储到第四寄存器中,对所述第四寄存器中的数据、所述第二寄存器中的数据和所述第一预设值进行计算并用计算结果更新所述第六寄存器中的数据;/n步骤S3:所述协处理器对所述第六寄存器中的数据、所述第二预设值和所述第一预设值进行计算并将计算结果存储到第五寄存器中,根据所述第五寄存器中的数据更新所述第三寄存器中的数据;/n步骤S4:所述协处理器对所述第三寄存器中的数据进行计算并将计算结果存储到所述第七寄存器中,对所述第五寄存器中的数据、所述第二寄存器中的数据、所述第一预设值进行计算并用计算结果更新所述第三寄存器中的数据;/n步骤S5:所述协处理器更新所述第六寄存器中的数据,对所述第六寄存器中的数据和所述第一预设值进行计算并用计算结果更新所述第四寄存器中的数据;/n步骤S6:所述协处理器对所述第六寄存器中的数据、所述第四寄存器中的数据和所述第七寄存器中的数据进行计算并用计算结果更新所述第五寄存器中的数据;/n步骤S7:所述协处理器更新所述第四寄存器中的数据,对所述第四寄存器中的数据和第二寄存器中的数据进行计算并用计算结果更新所述第五寄存器中的数据;/n步骤S8:所述协处理器根据所述第四寄存器中的数据和所述第一寄存器中的数据更新所述第四寄存器中的数据,对所述第五寄存器中的数据和所述第四寄存器中的数据进行计算得到线性对运算结果并保存。/n...

【技术特征摘要】
1.一种在嵌入式系统中加快线性对运算的实现方法,其特征在于,包括:
步骤S1:协处理器获取第一预设值、第二预设值、获取第一数据组;分配第一寄存器、第二寄存器、第三寄存器、第四寄存器、第五寄存器、第六寄存器、第七寄存器,并将所述第一数据组存储到所述第二寄存器中;所述第一数据组为12维数据;
步骤S2:所述协处理器对所述第二寄存器中的数据和所述第一预设值进行计算并将计算结果存储到所述第六寄存器中,对所述第二寄存器中的数据进行计算并将计算结果存储到第四寄存器中,对所述第四寄存器中的数据、所述第二寄存器中的数据和所述第一预设值进行计算并用计算结果更新所述第六寄存器中的数据;
步骤S3:所述协处理器对所述第六寄存器中的数据、所述第二预设值和所述第一预设值进行计算并将计算结果存储到第五寄存器中,根据所述第五寄存器中的数据更新所述第三寄存器中的数据;
步骤S4:所述协处理器对所述第三寄存器中的数据进行计算并将计算结果存储到所述第七寄存器中,对所述第五寄存器中的数据、所述第二寄存器中的数据、所述第一预设值进行计算并用计算结果更新所述第三寄存器中的数据;
步骤S5:所述协处理器更新所述第六寄存器中的数据,对所述第六寄存器中的数据和所述第一预设值进行计算并用计算结果更新所述第四寄存器中的数据;
步骤S6:所述协处理器对所述第六寄存器中的数据、所述第四寄存器中的数据和所述第七寄存器中的数据进行计算并用计算结果更新所述第五寄存器中的数据;
步骤S7:所述协处理器更新所述第四寄存器中的数据,对所述第四寄存器中的数据和第二寄存器中的数据进行计算并用计算结果更新所述第五寄存器中的数据;
步骤S8:所述协处理器根据所述第四寄存器中的数据和所述第一寄存器中的数据更新所述第四寄存器中的数据,对所述第五寄存器中的数据和所述第四寄存器中的数据进行计算得到线性对运算结果并保存。


2.如权利要求1所述的方法,其特征在于,所述步骤S2包括:
步骤S2-1:所述协处理器用所述第一预设值作为底数进行6次幂运算得到第一中间值,将所述第二寄存器中的数据作为底数、所述第一中间值作为指数进行幂运算并将运算结果存储到所述第六寄存器中;对所述第二寄存器中的数据进行逆元计算并将计算结果存储到所述第四寄存器中;
步骤S2-2:所述协处理器对所述第六寄存器中的数据与所述第四寄存器中的数据进行12次域乘法运算并用运算结果更新第六寄存器中的数据;
步骤S2-3:所述协处理器用所述第一预设值作为底数进行2次幂运算得到第二中间值,用所述第六寄存器中的数据作为底数、所述第二中间值作为指数进行幂运算并用运算结果更新所述第四寄存器中的数据;
步骤S2-4:所述协处理器对所述第六寄存器中的数据与所述第四寄存器中的数据进行12次域乘法运算并用运算结果更新所述第二寄存器中的数据;
步骤S2-5:所述协处理器用所述第二寄存器中的数据作为底数、所述第二预设值作为指数进行幂运算并用运算结果更新所述第四寄存器中的数据;
步骤S2-6:所述协处理器用所述第四寄存器中的数据作为底数、所述第二预设值作为指数进行幂运算并用运算结果更新所述第六寄存器中的数据。


3.如权利要求2所述的方法,其特征在于,所述步骤S3包括:
步骤S3-1:所述协处理器用所述第六寄存器中的数据作为底数、所述第二预设值作为指数进行幂运算并用运算结果更新所述第三寄存器中的数据;
步骤S3-2:所述协处理器用所述第三寄存器中的数据作为底数、所述第一预设值作为指数进行幂运算并用运算结果更新所述第五寄存器中的数据;
步骤S3-3:所述协处理器对所述第三寄存器中的数据与所述第五寄存器中的数据进行12次域乘法运算并用运算结果更新所述第三寄存器中的数据。


4.如权利要求3所述的方法,其特征在于,所述步骤S4包括:
步骤S4-1:所述协处理器对所述第三寄存器中的数据进行逆元计算并用计算结果更新所述第七寄存器中的数据;
步骤S4-2:所述协处理器用所述第二寄存器中的数据作为底数、第一预设值作为指数进行幂运算并用运算结果更新所述第三寄存器中的数据;
步骤S4-3:所述协处理器用所述第一预设值作为底数进行2次幂运算得到第三中间值,用所述第二寄存器中的数据作为底数、所述第三中间值作为指数进行幂运算并用运算结果更新所述第五寄存器中的数据;
步骤S4-4:所述协处理器对所述第三寄存器中的数据与所述第五寄存器中的数据进行12次域乘法运算并用运算结果更新所述第三寄存器中的数据;
步骤S4-5:所述协处理器用所述第一预设值作为底数进行3次幂运算得到第四中间值,用所述第二寄存器中的数据作为底数、所述第四中间值作为指数进行幂运算并用运算结果更新所述第五寄存器中的数据;
步骤S4-6:所述协处理器对所述第三寄存器中的数据与所述第五寄存器中的数据进行12次域乘法运算并将运算结果存储到所述第一寄存器中;
步骤S4-7:所述协处理器用所述第六寄存器中的数据作为底数、所述第一预设值作为指数进行幂运算并用运算结果更新所述第三寄存器中的数据;
步骤S4-8:所述协处理器对所述第四寄存器中的数据与所述第三寄存器中的数据进行12次域乘法运算并用运算结果更新所述第五寄存器中的数据;
步骤S4-9:所述协处理器对所述第五寄存器中的数据进行逆元计算并用计算结果更新所述第五寄存器中的数据;
步骤S4-10:所述协处理器用所述第一预设值作为底数进行2次幂运算得到第五中间值,用所述第六寄存器中的数据作为底数、所述第五中间值作为指数进行幂运算并用运算结果更新所述第三寄存器中的数据。


5.如权利要求4所述的方法,其特征在于,所述步骤S5包括:
步骤S5-1:所述协处理器对所述第六寄存器中的数据进行逆元计算并用计算结果更新所述第六寄存器中的数据;
步骤S5-2:所述协处理器用所述第四寄存器中的数据作为底数、所述第一预设值作为指数进行幂运算并用运算结果更新所述第四寄存器中的数据;
步骤S5-3:所述协处理器对所述第四寄存器中的数据进行逆元计算并用计算结果更新所述第四寄存器中的数据。


6.如权利要求5所述的方法,其特征在于,所述步骤S6包括:
步骤S6-1:所述协处理器对所述第二寄存器中的数据进行逆元计算并用计算结果更新所述第二寄存器中的数据;
步骤S6-2:所述协处理器对所述第六寄存器中的数据与所述第五寄存器中的数据进行12次域乘法运算并用运算结果更新所述第五寄存器中的数据;
步骤S6-3:所述协处理器对所述第六寄存器中的数据与所述第四寄存器中的数据进行12次域乘法运算并用运算结果更新所述第四寄存器中的数据;
步骤S6-4:所述协处理器对所述第七寄存器中的数据与所述第七寄存器中的数据进行12次域乘法运算并用运算结果更新所述第七寄存器中的数据;
步骤S6-5:所述协处理器对所述第七寄存器中的数据与所述第五寄存器中的数据进行12次域乘法运算并用运算结果更新所述第五寄存器中的数据;
步骤S6-6:所述协处理器对所述第四寄存器中的数据与所述第五寄存器中的数据进行12次域乘法运算并用运算结果更新所述第四寄存器中的数据;
步骤S6-7:所述协处理器对所述第四寄存器中的数据与所述第五寄存器中的数据进行12次域乘法运算并用运算结果更新所述第四寄存器中的数据;
步骤S6-8:所述协处理器对所述第三寄存器中的数据与所述第五寄存器中的数据进行12次域乘法运算并用运算结果更新所述第五寄存器中的数据。


7.如权利要求6所述的方法,其特征在于,所述步骤S7包括:
步骤S7-1:所述协处理器对所述第四寄存器中的数据与所述第四寄存器中的数据进行12次域乘法运算并用运算结果更新所述第四寄存器中的数据;
步骤S7-2:所述协处理器对所述第四寄存器中的数据与所述第五寄存器中的数据进行12次域乘法运算并用运算结果更新所述第四寄存器中的数据;
步骤S7-3:所述协处理器对所述第四寄存器中的数据与所述第四寄存器中的数据进行12次域乘法运算并用运算结果更新所述第四寄存器中的数据;
步骤S7-4:所述协处理器对所述第四寄存器中的数据与所述第二寄存器中的数据进行12次域乘法运算并用运算结果更新所述第五寄存器中的数据。


8.如权利要求7所述的方法,其特征在于,所述步骤S8包括:
步骤S8-1:所述协处理器对所述第四寄存器中的数据与所述第一寄存器中的数据进行12次域乘法运算并用运算结果更新所述第四寄存器中的数据;
步骤S8-2:所述协处理器对所述第五寄存器中的数据与所述第五寄存器中的数据进行12次域乘法运算并用运算结果更新所述第五寄存器中的数据;
步骤S8-3:所述协处理器对所述第四寄存器中的数据与所述第五寄存器中的数据进行12次域乘法运算并用运算结果更新所述第二寄存器中的数据,将所述第二寄存器中的数据作为线性对运算结果进行保存。


9.一种在嵌入...

【专利技术属性】
技术研发人员:王亚伟司明王磊雷艳
申请(专利权)人:北京宏思电子技术有限责任公司
类型:发明
国别省市:北京;11

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

1