[发明专利]一种用于智能卡的Montgomery模乘器的数据处理方法及系统有效

专利信息
申请号: 201510006990.4 申请日: 2015-01-07
公开(公告)号: CN104598199B 公开(公告)日: 2018-06-01
发明(设计)人: 龚宗跃;王振;顾申 申请(专利权)人: 大唐微电子技术有限公司
主分类号: G06F7/72 分类号: G06F7/72
代理公司: 北京安信方达知识产权代理有限公司 11262 代理人: 李红爽;栗若木
地址: 100094*** 国省代码: 北京;11
权利要求书: 查看更多 说明书: 查看更多
摘要: 发明公开了一种用于智能卡的Montgomery模乘器的数据处理方法及系统,包括:通过4s2+7s次乘法运算获得Montgomery模乘器的运算结果的低位2s个字;采用32x32位的乘法器分别计算出axb和mxn的w位结果;通过4s2‑4s次乘法运算获得Montgomery模乘器的运算结果的高位2s个字;采用32x32位的乘法器分别计算出axb和mxn的w位结果。通过本发明的方案,能够在硬件规模和功耗基本不变的情况下,使算法执行速度大幅提高。
搜索关键词: 模乘器 乘法运算 运算结果 数据处理 乘法器 智能卡 算法执行 硬件规模 低位 功耗
【主权项】:
1.一种用于智能卡的Montgomery模乘器的数据处理方法,其特征在于,所述方法由两个大循环组成,当完成第一个大循环之后,进入第二个大循环,所述两个大循环中分别嵌套一个内循环;包括:所述第一个大循环通过4s2+7s次乘法运算获得所述Montgomery模乘器的运算结果的低位2s个字;第一个内循环采用32×32位的乘法器分别计算出a×b和m×n的w位结果;所述第二个大循环通过4s2-4s次乘法运算获得所述Montgomery模乘器的运算结果的高位2s个字;第二个内循环采用32×32位的乘法器分别计算出a×b和m×n的w位结果;其中,a、b、n为2s位的232进制数;s=k/64,k是要运算的模数的长度,s向上取整;m=t·n’mod r;gcd(n,r)=1,t=a·b,r为2的整数次幂,n’满足r·r-1-n·n’=1;所述w为64位;a=(a[2s-1],a[2s-2],…,a[1],a[0]);b=(b[2s-1],b[2s-2],…,b[1],b[0]);n=(n[2s-1],n[2s-2],…,n[1],n[0]);m=(m[2s-1],m[2s-2],…,m[1],m[0]);所述采用32×32位的乘法器计算出a×b的w位结果包括以下四个步骤:11、将a[2j]*b[2(i-j)]的结果的低32位和高32位分别存储在中间结果寄存器MOL和MOH中,将中间结果寄存器t1、t0中存储的w位数据分别和MOH、MOL中存储的w位数据相加,其中t1存储所述w位数据的高32位,t0存储所述w位数据的低32位;将相加结果的高32位与低32位分别存储在所述中间结果寄存器t1,t0中;所述相加结果的进位存储在进位保存寄存器C0中;12、将a[2j+1]*b[2(i-j)]的结果的高32位和低32位分别存储在所述中间结果寄存器MOH和MOL中,将中间结果寄存器t2、t1中存储的w位数据分别和所述中间结果寄存器MOH、MOL中存储的w位数据相加,其中t2存储所述w位数据的高32位,t1存储所述w位数据的低32位;将相加结果的高32位与低32位分别存储在所述中间结果寄存器t2、t1中;所述相加结果的进位存储在进位保存寄存器C1中;13、a[2j]*b[2(i-j)+1]的过程与步骤12相同;14、将a[2j+1]*b[2(i-j)+1]的结果的高32位和低32位分别存储在所述中间结果寄存器MOH和MOL中,将中间结果寄存器t3、t2中存储的w位数据分别和所述中间结果寄存器MOH、MOL中存储的w位数据相加获得第一相加结果,其中t3存储所述w位数据的高32位,t2存储所述w位数据的低32位;将所述第一相加结果与进位保存寄存器C0中存储的数据相加获得第二相加结果,将所述第二相加结果的高32位与低32位分别存储在所述中间结果寄存器t3、t2中;两次相加结果的进位存储在进位保存寄存器C2中;其中,i的取值范围为:0到s-1;j的取值范围为:0到i-1;所述MOH、MOL、t3、t2、t1、t0是6个w/2位的所述中间结果寄存器,所述C2、C1分别为不小于log2(3s)、log2(4s)位的所述进位保存寄存器,所述C0为1位的所述进位保存寄存器,所述中间结果寄存器与所述进位保存寄存器的初始值均为0;在获得所述Montgomery模乘器的运算结果的高位2s个字的运算过程中,所述i的取值范围为:0到s-1;所述j的取值范围为:i+1到s-1;所述第一个大循环每次需要计算{a[2i+1],a[2i]}×{b[1],b[0]}和{m[2i+1],m[2i]}×{n[1],n[0]},并且计算出下次运算所需的m[2i+1]和m[2i],存储在m的m[2i+1]、m[2i]位置;所述第一个大循环每执行一次运算,运算结果的高w位存储在所述中间结果寄存器t3、t2中,其中,所述t3存储所述高w位中的高32位,所述t2存储所述高w位中的低32位;所述运算结果的低w位存储在所述中间结果寄存器t1、t0中,其中,所述t1存储所述低w位中的高32位,所述t0存储所述低w位中的低32位;所述运算结果的进位存储在所述进位保存寄存器C2中,并且将所述运算结果右移w位;所述第二个大循环每执行一次运算,将所述第二个内循环产生的w位的运算结果保存在数据m的m[2i+1]、m[2i]存储位置,其中m[2i+1]存储所述运算结果的高32位,m[2i]存储所述运算结果的低32位;所述第二个大循环每执行一次运算,运算结果的高w位存储在所述中间结果寄存器t3、t2中,其中,所述t3存储所述高w位中的高32位,所述t2存储所述高w位中的低32位;所述运算结果的低w位存储在所述中间结果寄存器t1、t0中,其中,所述t1存储所述低w位中的高32位,所述t0存储所述低w位中的低32位;所述运算结果的进位存储在所述进位保存寄存器C2中,并且所述运算结果右移w位,并将m[2i+1]、m[2i]存储的w位数据和n[2i+1]、n[2i]存储的w位数据相减,其中,n[2i+1]存储所述w位数据的高32位,n[2i]存储所述w位数据的低32位;将所述相减的结果的高32位存储在b[2i+1]中,低32位存储在b[2i]中,所述相减的结果的借位存储在借位寄存器B中;其中,所述m×n与所述a×b的计算方法相同。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

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

本文链接:http://www.vipzhuanli.com/patent/201510006990.4/,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

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

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

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

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

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

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

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

钻瓜专利网在线咨询

400-8765-105周一至周五 9:00-18:00

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