[发明专利]SM9算法的实现方法和装置有效
申请号: | 201710885011.6 | 申请日: | 2017-09-26 |
公开(公告)号: | CN107707353B | 公开(公告)日: | 2020-10-23 |
发明(设计)人: | 程朝辉;吴福印;盛莉;周枭淳 | 申请(专利权)人: | 深圳奥联信息安全技术有限公司 |
主分类号: | H04L9/28 | 分类号: | H04L9/28;H04L9/32 |
代理公司: | 深圳市智胜联合知识产权代理有限公司 44368 | 代理人: | 齐文剑 |
地址: | 518000 广东省深圳*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | sm9 算法 实现 方法 装置 | ||
本发明揭示了一种SM9算法的实现方法和装置,其中方法包括:对BN‑12曲线上的双线性对结果域里元素采用塔式扩张表达时,如果初始采用的塔式扩张表达是预设的二次塔式扩张表达,则在单一元素的幂乘运算时采用Lucas阶梯计算方法执行;如果初始采用的塔式扩张表达不是预设的二次塔式扩张表达,则将初始采用的塔式扩张表达转换为所述二次塔式扩张表达,然后在单一元素的幂乘运算时采用Lucas阶梯计算方法执行,再根据需要转换为SM9标准规定的1‑2‑4‑12塔式扩张表达。本发明在保证计算出SM9标准规定的数据结果的同时实现双线性对和上幂乘运算的高速实现。
技术领域
本发明涉及到SM9算法领域,特别是涉及到一种SM9算法的实现方法和装置。
背景技术
SM9算法是中国制定一种标识密码算法标准,包括标识加密、标识签名和标识密钥协商算法。这些算法的计算过程涉及双线性对的计算和双线对映射结果域上元素的幂乘运算。SM9算法标准采用嵌入度数为12的BN曲线实现,其上双线对映射结果域为SM9标准规定上的元素采用的1-2-4-12塔式扩张表达。1-2-4-12塔式扩张表达在幂乘运算时速度相对较慢,降低SM9算法的实现速度。
发明内容
本发明的主要目的为提供一种在保证计算出SM9标准规定的数据结果的同时实现双线性对和上幂乘运算的高速实现的SM9算法的实现方法和装置。
为了实现上述发明目的,本发明提出一种SM9算法的实现方法,包括:
对BN-12曲线上的双线性对结果域里元素采用塔式扩张表达时,如果初始采用的塔式扩张表达是预设的二次塔式扩张表达,则在单一元素的幂乘运算时采用Lucas阶梯计算方法执行;如果初始采用的塔式扩张表达不是预设的二次塔式扩张表达,则将初始采用的塔式扩张表达转换为所述二次塔式扩张表达,然后在单一元素的幂乘运算时采用Lucas阶梯计算方法执行;
根据需要,处理幂乘完成后的结果。
进一步地,所述初始采用的塔式扩张表达包括1-2-4-12塔式扩张表达、1-2-6-12塔式扩张表达或1-3-6-12塔式扩张表达;
所述二次塔式扩张表达包括1-2-6-12塔式扩张表达或1-3-6-12塔式扩张表达。
进一步地,所述如果初始采用的塔式扩张表达是预设的二次塔式扩张表达,则所述根据需要,处理幂乘完成后的结果的步骤,包括:
在SM9算法需将二次塔式扩张表达转换为字节串数据操作时,先将元素转换为1-2-4-12的塔式扩张表达,再转换为字节串数据。
进一步地,所述如果初始采用的塔式扩张表达不是预设的二次塔式扩张表达,则所述根据需要,处理幂乘完成后的结果的步骤,包括:
将幂乘完成后的结果转换为1-2-4-12的塔式扩张表达。
本发明还提供一种SM9算法的实现装置,包括:
执行单元,用于对BN-12曲线上的双线性对结果域里元素采用塔式扩张表达时,如果初始采用的塔式扩张表达是预设的二次塔式扩张表达,则在单一元素的幂乘运算时采用Lucas阶梯计算方法执行;如果初始采用的塔式扩张表达不是预设的二次塔式扩张表达,则将初始采用的塔式扩张表达转换为所述二次塔式扩张表达,然后在单一元素的幂乘运算时采用Lucas阶梯计算方法执行;
处理单元,用于根据需要,处理所述幂乘完成后的结果。
进一步地,所述初始采用的塔式扩张表达包括1-2-4-12塔式扩张表达、1-2-6-12塔式扩张表达或1-3-6-12塔式扩张表达;
所述二次塔式扩张表达包括1-2-6-12塔式扩张表达或1-3-6-12塔式扩张表达。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳奥联信息安全技术有限公司,未经深圳奥联信息安全技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710885011.6/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种无线充电方法及系统
- 下一篇:一种便于充电的光伏电源组件