[发明专利]一种适合SM2算法的快速模约减方法和介质有效

专利信息
申请号: 201711383428.9 申请日: 2017-12-20
公开(公告)号: CN108418687B 公开(公告)日: 2022-02-08
发明(设计)人: 何德彪;陈泌文;谢翔;李升林;孙立林 申请(专利权)人: 矩阵元技术(深圳)有限公司
主分类号: H04L9/30 分类号: H04L9/30
代理公司: 上海专利商标事务所有限公司 31100 代理人: 施浩
地址: 518054 广东省深圳*** 国省代码: 广东;44
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 适合 sm2 算法 快速 模约减 方法 介质
【权利要求书】:

1.一种适合SM2算法的快速模约减方法,其特征在于,针对SM2椭圆曲线公钥算法推荐参数计算模约减,用于SM2算法的快速实现,方法包括:

通过数据转换得到转换数据,将512比特数模SM2椭圆曲线推荐参数问题转化为计算若干个256比特数的线性组合;

通过拆分负数项和多倍项将转换数据拆分,并用拆分数据表示转换数据,以使每个256比特数易于表示;

通过重组整合拆分数据,降低加法或减法个数;

通过计算若干个256比特数的和,完成512比特数模SM2椭圆曲线推荐参数模约减的计算;

其中,数据转换的步骤进一步包括:

步骤1.1,将c modp256进行转化,

其中p256=2256-2224-296+264-1,输入整数且可表示为c=(c2t-1,...,c2,c1,c0),

其中t=8

步骤1.2,将步骤1.1中的I2modp256进行转化,

I2modp256=([(c15,c14,c13,c12,c11,c10,c9,0,0,0,0,0,0,0,0,0)]modp256+[(0,0,0,0,0,0,0,c8,0,0,0,0,0,0,0,0)]modp256-c8p256modp256)modp256

=([(c15,c14,c13,c12,c11,c10,c9,0,0,0,0,0,0,0,0,0)]modp256+[(c8,0,0,0,c8,-c8,0,c8)]modp256)modp256

=(I3modp256+R2modp256)modp256

步骤1.3,将步骤1.2中的I3modp256进行转化,

I3modp256=([(c15,c14,c13,c12,c11,c10,0,0,0,0,0,0,0,0,0,0)]modp256+[(0,0,0,0,0,0,c9,0,0,0,0,0,0,0,0,0)]modp256-232c9p256modp256-c9p256modp256)modp256

=([(c15,c14,c13,c12,c11,c10,0,0,0,0,0,0,0,0,0,0)]modp256+[(c9,0,0,c9,0,-c9,c9,c9)]modp256)modp256

=(I4modp256+R3modp256)modp256

步骤1.4,将步骤1.3中的I4modp256进行转化,

I4modp256=([(c15,c14,c13,c12,c11,0,0,0,0,0,0,0,0,0,0,0)]modp256+[(0,0,0,0,0,c10,0,0,0,0,0,0,0,0,0,0)]modp256-264c10p256modp256-232c10p256modp256-c10p256modp256)modp256

=([(c15,c14,c13,c12,c11,0,0,0,0,0,0,0,0,0,0,0)]modp256+[(c10,0,c10,0,0,0,c10,c10)]modp256)modp256

=(I5modp256+R4modp256)modp256

步骤1.5,将步骤1.4中的I5modp256进行转化,

I5modp256=([(c15,c14,c13,c12,0,0,0,0,0,0,0,0,0,0,0,0)]modp256+[(0,0,0,0,c11,0,0,0,0,0,0,0,0,0,0,0)]modp256-296c11p256modp256-264c11p256modp256-232c11p256modp256-c11p256modp256)modp256

=([(c15,c14,c13,c12,0,0,0,0,0,0,0,0,0,0,0,0)]modp256+[(c11,c11,0,0,c11,0,c11,c11)]modp256)modp256

=(I6modp256+R5modp256)modp256

步骤1.6,将步骤1.5中的I6modp256进行转化,

I6modp256=([(c15,c14,c13,0,0,0,0,0,0,0,0,0,0,0,0,0)]modp256+[(0,0,0,c12,0,0,0,0,0,0,0,0,0,0,0,0)]modp256-2128c12p256modp256-296c12p256modp256-264c12p256modp256-232c12p256modp256-c12p256modp256)modp256

=([(c15,c14,c13,0,0,0,0,0,0,0,0,0,0,0,0,0)]modp256+[(2c12,0,0,c12,c12,0,c12,c12)]modp256)modp256

=(I7modp256+R6modp256)modp256

步骤1.7,将步骤1.6中的I7modp256进行转化,

I7modp256=([(c15,c14,0,0,0,0,0,0,0,0,0,0,0,0,0,0)]modp256+[(0,0,c13,0,0,0,0,0,0,0,0,0,0,0,0,0)]modp256-2160c13p256modp256-2128c13p256modp256-296c3p256modp256-264c13p256modp256-232c13p256modp256-c13p256modp256)modp256

=([(c15,c14,0,0,0,0,0,0,0,0,0,0,0,0,0,0)]modp256+[(2c13,0,c13,c13,2c13,-c13,c13,2c13)]modp256)modp256

=(I8modp256+R7modp256)modp256

步骤1.8,将步骤1.7中的I8modp256进行转化,

I8modp256=([(c15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)]modp256+[(0,c14,0,0,0,0,0,0,0,0,0,0,0,0,0,0)]modp256-2192c14p256modp256-2160c14p256modp256-2128c14p256modp256-296c14p256modp256-264c14p256modp256-232c14p256modp256-c14p256modp256)modp256

=([(c15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)]modp256+[(2c14,c14,c14,2c14,c14,-c14,2c14,2c14)]modp256)modp256

=(I9modp256+R8modp256)modp256

步骤1.9,将步骤1.8中的I9modp256进行转化,

I9modp256=([(c15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)]modp256-2224c15p256modp256-2192c15p256modp256-2160c15p256modp256-2128c15p256modp256-296c15p256modp256-264c15p256modp256-232c15p256modp256-c15p256modp256)modp256

=[(3c15,c15,2c15,c15,c15,0,2c15,2c15)]modp256

=R9modp256

根据上述步骤1.1至步骤1.9的转换过程,最后用转换数据(R1,R2,...,R9)表示c modp256

c modp256=(R1+R2+R3+R4+R5+R6+R7+R8+R9)modp256

其中,重组整合拆分数据的过程中确保对应位置相的和不发生变化,其步骤进一步包括:

c modp256=(R1+t2+t3+R4+R5+T1+T2+T3+T4+T5+T6+T7+T8-s2-s3-s7-s8)modp256

=[(c7,c6,c5,c4,c3,c2,c1,c0)+(c8,0,0,0,c8,0,0,c8)+(c9,0,0,c9,0,0,c9,c9)+(c10,0,c100,0,0,c10,c10)+(c11,c11,0,0,c11,0,c11,c11)++2(c14,0,c15,c14,c13,0,c15,c14)+2(c12,0,0,0,0,0,c14,c13)+(0,0,0,c12,c120,c12,c12)+(c13,0,c13,c13,0,0,c13,0)+(c13,c14,c14,0,c14,0,0,0)+(c15,c15,0,c15,c15,0,0,0)+(c15,0,0,0,0,0,0,c15)+(c15,0,0,0,0,0,0,c15)-(0,0,0,0,0,c8,0,0)-(0,0,0,0,0,c9,0,0)-(0,0,0,0,0,c13,0,0)-(0,0,0,0,0,c14,0,0)]modp256

=[s0+s1+s4+s5+s6+2s9+2s10+s11+s12+s13+s14+2s15-s2-s3-s7-s8]modp256

根据上述拆分过程,最后用重组整合数据表示c modp256

c modp256=[s0+s1+s4+s5+s6+2s9+2s10+s11+s12+s13+s14+2s15-s2-s3-s7-s8]modp256

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于矩阵元技术(深圳)有限公司,未经矩阵元技术(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201711383428.9/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top