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

技术编号:28383305 阅读:30 留言:0更新日期:2021-05-08 00:11
本申请涉及信息安全技术领域,特别是涉及一种嵌入式系统中加快SM9双线性对运算的实现方法及装置。本申请中,实现了对SM9密码系统的双线性对的有效运算,减少了双线性对运算过程的时间,也提升了对双线性对运算的速度。

【技术实现步骤摘要】
嵌入式系统中加快SM9双线性对运算的实现方法及装置
本申请涉及信息安全
,特别是涉及一种嵌入式系统中加快SM9双线性对运算的实现方法及装置。
技术介绍
SM9双线性非对称算法(简称SM9算法)是基于双线性对的标识密码算法,它依据用户的身份标识生成用户的公、私密钥对,身份信息与密码算法关联,省去了数字证书、证书库和密钥库管理的流程。SM9算法不需要申请数字证书,适用于互联网应用的各种新兴应用的安全保障。如基于云技术的密码服务、电子邮件安全、智能终端保护、物联网安全、云存储安全等等。这些安全应用可采用手机号码或邮件地址作为公钥,实现数据加密、身份认证、通话加密、通道加密等安全应用,并具有使用方便,易于部署的特点,从而开启了普及密码算法的大门。当前,IBC(Identity-BasedCryptograph,标识密码系统)快速发展,该系统可理论上去除CA证书,从而在使用上存在很大的便利性,作为国标唯一一套标识密码系统的SM9密码系统,其核心在于双线性对的运算,而如何实现加快对双线性对的运算成为了当前亟待解决的技术问题。
技术实现思路
本申请提供了一种嵌入式系统中加快SM9双线性对运算的实现方法及装置,以实现加快对SM9密码系统的双线性对的有效运算。第一方面,提供了一种嵌入式系统中加快SM9双线性对运算的实现方法,包括如下步骤:步骤S1,协处理器根据获取的随机数计算得到第一坐标数据及第二坐标数据,将所述第一坐标数据存储到第一寄存器中及所述第二坐标数据存储到第二寄存器中;>步骤S2,所述协处理器将所述第二寄存器中的数据映射到第三坐标数据,并将映射后的第三坐标数据存储到第三寄存器中;步骤S3,所述协处理器获取第二预设值,按照所述第二预设值的比特数由高到低顺次排列;步骤S4,若当前比特数最高的比特为非特定比特时,转到步骤S5执行处理;若当前比特数最高的比特为特定比特时,转到步骤S9执行处理;若所述第二预设值的所有比特数遍历完成后,基于最后一个比特数对应的数据转到步骤S12进行处理;步骤S5,所述协处理器根据所述第一寄存器中的数据及所述第三寄存器中的数据进行线函数点倍运算,将得到的运算结果存入第四寄存器的第二数据组中;步骤S6,所述协处理器对所述第三寄存器中的数据进行点倍运算,得到运算结果,将运算结果更新所述第三寄存器中的数据;步骤S7,所述协处理器对第五寄存器中的第一数据组做十二次域平方运算,将运算结果更新所述第五寄存器中的数据;步骤S8,所述协处理器对所述第四寄存器中的数据与所述第五寄存器中的数据做十二次域乘法运算,将运算结果更新所述第五寄存器中的数据;若所述比特为非最后一个比特时,顺次选取下一个比特数最高的比特后,根据步骤S5至步骤S8中得到的数据,转到步骤S4进行遍历处理;若所述比特为最后一个比特时,基于前述运算得到的数据转到步骤S12进行处理;步骤S9,所述协处理器根据所述第三寄存器中的数据、所述第一寄存器中的数据及所述第二寄存器中的数据进行线函数点加运算,将运算结果更新所述第四寄存器中的第二数据组中的数据;步骤S10,所述协处理器根据所述第三寄存器中的数据与所述第二寄存器中的数据进行点加运算,将运算结果更新所述第三寄存器中的数据;步骤S11,所述协处理器根据所述第四寄存器中的数据与所述第五寄存器中的数据做十二次域乘法运算,将运算结果更新所述第五寄存器中的数据;顺次选取下一个比特数最高的比特后,根据步骤S9至步骤S11中得到的数据,转到步骤S4进行遍历处理;步骤S12,所述协处理器根据获取的第一预设值、第三预设值及所述第二寄存器中的数据进行二次扩域空间运算,将得到的运算结果存储到第六寄存器及第七寄存器中;步骤S13,所述协处理器根据所述第一寄存器中的数据、所述第六寄存器中的数据、所述第七寄存器中的数据、所述第三寄存器中的数据及所述第四寄存器中的数据执行点加运算,将运算结果更新所述第四寄存器中的数据及所述第三寄存器中的数据,并根据所述第四寄存器中的数据与所述第五寄存器中的数据做十二次域乘法运算,将运算结果更新所述第五寄存器中的数据;步骤S14,所述协处理器对所述第五寄存器中的数据进行运算,得到线性对运算结果并保存。在一个可能地实现方式中,所述步骤S1,包括:所述协处理器计算所述随机数关于第一预设值的逆,将得到的运算结果存储到第八寄存器中;所述协处理器根据所述随机数与所述第一寄存器中的数据进行点乘运算,将运算结果存储到所述第一寄存器中;所述协处理器根据第八寄存器中的数据与所述第二寄存器中的数据进行点乘运算,将运算结果存储到所述第二寄存器。在一个可能地实现方式中,所述步骤S2,包括:所述协处理器将第二寄存器中二维的第二坐标数据映射到第三寄存器中三维的第三坐标数据。在一个可能地实现方式中,所述步骤S3,包括:所述协处理器获取第二预设值6*t+2,确定所述第二预设值6*t+2的比特数,按照比特数由高到低顺次排列,其中,最低比特数为第0比特。在一个可能地实现方式中,所述步骤S4中的特定比特为第1比特。在一个可能地实现方式中,所述步骤S13,包括:所述协处理器根据所述第一寄存器中的数据、所述第六寄存器中的数据、所述第三寄存器中的数据及所述第四寄存器中的数据执行线函数点加运算,将运算结果更新所述第四寄存器中的数据;所述协处理器根据所述第六寄存器中的数据及所述第三寄存器中的数据执行二次扩域点加运算,将运算结果更新所述第三寄存器中的数据;所述协处理器根据所述第四寄存器中的数据与所述第五寄存器中的数据做十二次域乘法运算,将运算结果更新所述第五寄存器中的数据;所述协处理器根据所述第一寄存器中的数据、所述第七寄存器中的数据、所述第三寄存器中的数据及所述第四寄存器中的数据执行线函数点加运算,将运算结果更新所述第四寄存器中的数据;所述协处理器根据所述第七寄存器中的数据及所述第三寄存器中的数据执行二次扩域点加运算,将运算结果更新所述第三寄存器中的数据;所述协处理器根据所述第四寄存器中的数据与所述第五寄存器中的数据做十二次域乘法运算,将运算结果更新所述第五寄存器中的数据。第二方面,提供了一种嵌入式系统中加快SM9双线性对运算的实现装置,包括:第一处理模块,用于根据获取的随机数计算得到第一坐标数据及第二坐标数据,将所述第一坐标数据存储到第一寄存器中及所述第二坐标数据存储到第二寄存器中;第二处理模块,用于将所述第二寄存器中的数据映射到第三坐标数据,并将映射后的第三坐标数据存储到第三寄存器中;第三处理模块,用于获取第二预设值,按照所述第二预设值的比特数由高到低顺次排列;若当前比特数最高的比特为非特定比特时,由第四处理模块执行处理;若当前比特数最高的比特为特定比特时,由第八处理模块执行处理;第四处理模块,用于根据所述第一寄存器中的数据及所述第三寄存器中的数据进行线函数点倍运算,将得本文档来自技高网...

【技术保护点】
1.一种嵌入式系统中加快SM9双线性对运算的实现方法,其特征在于,包括如下步骤:/n步骤S1,协处理器根据获取的随机数计算得到第一坐标数据及第二坐标数据,将所述第一坐标数据存储到第一寄存器中及所述第二坐标数据存储到第二寄存器中;/n步骤S2,所述协处理器将所述第二寄存器中的数据映射到第三坐标数据,并将映射后的第三坐标数据存储到第三寄存器中;/n步骤S3,所述协处理器获取第二预设值,按照所述第二预设值的比特数由高到低顺次排列;/n步骤S4,若当前比特数最高的比特为非特定比特时,转到步骤S5执行处理;若当前比特数最高的比特为特定比特时,转到步骤S9执行处理;/n步骤S5,所述协处理器根据所述第一寄存器中的数据及所述第三寄存器中的数据进行线函数点倍运算,将得到的运算结果存入第四寄存器的第二数据组中;/n步骤S6,所述协处理器对所述第三寄存器中的数据进行点倍运算,得到运算结果,将运算结果更新所述第三寄存器中的数据;/n步骤S7,所述协处理器对第五寄存器中的第一数据组做十二次域平方运算,将运算结果更新所述第五寄存器中的数据;/n步骤S8,所述协处理器对所述第四寄存器中的数据与所述第五寄存器中的数据做十二次域乘法运算,将运算结果更新所述第五寄存器中的数据;若所述比特为非最后一个比特时,顺次选取下一个比特数最高的比特后,根据步骤S5至步骤S8中得到的数据,转到步骤S4进行遍历处理;若所述比特为最后一个比特时,基于前述运算得到的数据转到步骤S12进行处理;/n步骤S9,所述协处理器根据所述第三寄存器中的数据、所述第一寄存器中的数据及所述第二寄存器中的数据进行线函数点加运算,将运算结果更新所述第四寄存器中的第二数据组中的数据;/n步骤S10,所述协处理器根据所述第三寄存器中的数据与所述第二寄存器中的数据进行点加运算,将运算结果更新所述第三寄存器中的数据;/n步骤S11,所述协处理器根据所述第四寄存器中的数据与所述第五寄存器中的数据做十二次域乘法运算,将运算结果更新所述第五寄存器中的数据;顺次选取下一个比特数最高的比特后,根据步骤S9至步骤S11中得到的数据,转到步骤S4进行遍历处理;/n步骤S12,所述协处理器根据获取的第一预设值、第三预设值及所述第二寄存器中的数据进行二次扩域空间运算,将得到的运算结果存储到第六寄存器及第七寄存器中;/n步骤S13,所述协处理器根据所述第一寄存器中的数据、所述第六寄存器中的数据、所述第七寄存器中的数据、所述第三寄存器中的数据及所述第四寄存器中的数据执行点加运算,将运算结果更新所述第四寄存器中的数据及所述第三寄存器中的数据,并根据所述第四寄存器中的数据与所述第五寄存器中的数据做十二次域乘法运算,将运算结果更新所述第五寄存器中的数据;/n步骤S14,所述协处理器对所述第五寄存器中的数据进行运算,得到线性对运算结果并保存。/n...

【技术特征摘要】
1.一种嵌入式系统中加快SM9双线性对运算的实现方法,其特征在于,包括如下步骤:
步骤S1,协处理器根据获取的随机数计算得到第一坐标数据及第二坐标数据,将所述第一坐标数据存储到第一寄存器中及所述第二坐标数据存储到第二寄存器中;
步骤S2,所述协处理器将所述第二寄存器中的数据映射到第三坐标数据,并将映射后的第三坐标数据存储到第三寄存器中;
步骤S3,所述协处理器获取第二预设值,按照所述第二预设值的比特数由高到低顺次排列;
步骤S4,若当前比特数最高的比特为非特定比特时,转到步骤S5执行处理;若当前比特数最高的比特为特定比特时,转到步骤S9执行处理;
步骤S5,所述协处理器根据所述第一寄存器中的数据及所述第三寄存器中的数据进行线函数点倍运算,将得到的运算结果存入第四寄存器的第二数据组中;
步骤S6,所述协处理器对所述第三寄存器中的数据进行点倍运算,得到运算结果,将运算结果更新所述第三寄存器中的数据;
步骤S7,所述协处理器对第五寄存器中的第一数据组做十二次域平方运算,将运算结果更新所述第五寄存器中的数据;
步骤S8,所述协处理器对所述第四寄存器中的数据与所述第五寄存器中的数据做十二次域乘法运算,将运算结果更新所述第五寄存器中的数据;若所述比特为非最后一个比特时,顺次选取下一个比特数最高的比特后,根据步骤S5至步骤S8中得到的数据,转到步骤S4进行遍历处理;若所述比特为最后一个比特时,基于前述运算得到的数据转到步骤S12进行处理;
步骤S9,所述协处理器根据所述第三寄存器中的数据、所述第一寄存器中的数据及所述第二寄存器中的数据进行线函数点加运算,将运算结果更新所述第四寄存器中的第二数据组中的数据;
步骤S10,所述协处理器根据所述第三寄存器中的数据与所述第二寄存器中的数据进行点加运算,将运算结果更新所述第三寄存器中的数据;
步骤S11,所述协处理器根据所述第四寄存器中的数据与所述第五寄存器中的数据做十二次域乘法运算,将运算结果更新所述第五寄存器中的数据;顺次选取下一个比特数最高的比特后,根据步骤S9至步骤S11中得到的数据,转到步骤S4进行遍历处理;
步骤S12,所述协处理器根据获取的第一预设值、第三预设值及所述第二寄存器中的数据进行二次扩域空间运算,将得到的运算结果存储到第六寄存器及第七寄存器中;
步骤S13,所述协处理器根据所述第一寄存器中的数据、所述第六寄存器中的数据、所述第七寄存器中的数据、所述第三寄存器中的数据及所述第四寄存器中的数据执行点加运算,将运算结果更新所述第四寄存器中的数据及所述第三寄存器中的数据,并根据所述第四寄存器中的数据与所述第五寄存器中的数据做十二次域乘法运算,将运算结果更新所述第五寄存器中的数据;
步骤S14,所述协处理器对所述第五寄存器中的数据进行运算,得到线性对运算结果并保存。


2.如权利要求1所述的方法,其特征在于,所述步骤S1,包括:
所述协处理器计算所述随机数关于第一预设值的逆,将得到的运算结果存储到第八寄存器中;
所述协处理器根据所述随机数与所述第一寄存器中的数据进行点乘运算,将运算结果存储到所述第一寄存器中;
所述协处理器根据第八寄存器中的数据与所述第二寄存器中的数据进行点乘运算,将运算结果存储到所述第二寄存器。


3.如权利要求2所述的方法,其特征在于,所述步骤S2,包括:
所述协处理器将第二寄存器中二维的第二坐标数据映射到第三寄存器中三维的第三坐标数据。


4.如权利要求1所述的方法,其特征在于,所述步骤S3,包括:
所述协处理器获取第二预设值6*t+2,确定所述第二预设值6*t+2的比特数,按照比特数由高到低顺次排列,其中,最低比特数为第0比特。


5.如权利要求1所述的方法,其特征在于,所述步骤S4中的特定比特为第1比特。


6.如权利要求3所述的方法,其特征在于,所述步骤S13,包括:
所述协处理器根据所述第一寄存器中的数据、所述第六寄存器中的数据、所述第三寄存器中的数据及所述第四寄存器中的数据执行线函数点加运算,将运算结果更新所述第四寄存器中的数据;
所述协处理器根据所述第六寄存器中的数据及所述第三寄存器中的数据执行二次扩域点加运算,将运算结果更新所述第三寄存器中的数据;
所述协处理器根据所述第四寄存器中的数据与所述第五寄存器中的数据做十二次域乘法运算,将运算结果更新所述第五寄存器中的数据;
所述协处理器根据所述第一寄存器中的数据、所述第七寄存器中的数据、所述第三寄存器中的数据及所述第四寄存器中的数据执行线函数点加运算,将运算结果更新所述第四寄存器中的数据;
所述协处理器根据所述第七寄存器中的数据及所述第三寄存器中的数据执行二次扩域点加运算,将运算结果更新所述第三...

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

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

1