当前位置: 首页 > 专利查询>王妍丹专利>正文

一种快速的适用于嵌入式系统的大数求模方法技术方案

技术编号:9667644 阅读:104 留言:0更新日期:2014-02-14 05:47
本发明专利技术公开了一种快速的适用于嵌入式系统的大数求模方法,其特征在于包括如下三个步骤:一、先将大数拆分为高低位段;二、对高位段进行求模;三、重复步骤一和步骤二,直到大数位宽缩减到有效位宽后,完成最后的直接求模。由于嵌入式处理器支持的整数位宽有限,大多数只能支持到32位,本发明专利技术实现正整数域内任意大数对较小数的快速求模,大数位宽可超过处理器支持的最大位宽,但较小数位宽不超过。本发明专利技术将大数拆分为高低位段,并对高位段求模以快速降低大数位宽。在不考虑内存资源限制的情况下,本发明专利技术支持任意位宽的大数求模,运算速度快且节约硬件资源,适用于嵌入式系统。

【技术实现步骤摘要】

本专利技术涉及大数求模在嵌入式系统中的快速实现,属于嵌入式系统数据处理领域。
技术介绍
大数运算在数字信息处理中频繁应用,如加密算法为了保证信息安全便大量采用了大数运算,其中大数求模便是大数运算中的一种。如RSA加密算法的密钥生成便使用了大数求模。但是,目前处理器能力有限,支持的最大整数位宽有限,特别是嵌入式处理器,常见位宽是32位,无法直接实现超过32位位宽的大数求模运算。为了在有限位宽的处理器上实现大数求模,存在若干传统解决方案,本专利技术为一种新的大数求模方法。
技术实现思路
本专利技术所要解决的技术问题是提供。本专利技术的技术问题通过以下技术手段予以解决:,包括如下三个步骤:一、先将大数拆分为高低位段;二、对高位段进行求模;三、重复步骤一和步骤二,直到大数位宽缩减到有效位宽后,完成最后的直接求模。`优选地:所述步骤一包括以下步骤:将大数X拆成高低位段两部分,高位段用xH表示,低位段用&表示,高位段位宽为n,低位段位宽为m,则X = (xH?m)+ &,“〈〈”代表左移。对大数X高位段Xh进行求模,低位段保持不变。与现有技术相比,本专利技术具有以下有益效果:支持任意位宽的大数求模,运算速度快且节约硬件资源,适用于嵌入式系统。【附图说明】图1是快速大数求模方法流程图;图2 (a)和2 (b)是大数比特示意图。【具体实施方式】下面对照附图并结合优选的实施方式对本专利技术作进一步说明。设X和y分别为a位宽和b位宽的正整数,其中b小于嵌入式处理器的整数位宽, 假设该位宽为n bit,即b〈n,那么y可以用该嵌入式系统编译器下的整型表示。在大数应用用,a—般远大于b,显然a不能被编译器下的整型数表示,一般地,a以整型数组存储。大数X对y求模(x%y)的具体实施方法如下,其流程图如图1所示:(I)将X拆成高低位两部分,高位用xH表示,低位用X[表示,高位位宽为n,低位位宽为m,显然a=m+n,示意图如图2 (a),图中x = (xH?m) + Xlj, “〈〈”代表左移。(2)依据原理(a+b) mod n = ((a mod n) + (b mod n) )mod n本专利技术进行了如下推演:x%y= [ (xH《m)+ xL] %y= [ (xH<<m) %y + xL%y] %y= {[ (xH%y) <<m] %y+ xL%y} %y={[ (xH%y) ?m]+ xL}%y设X’ = [ (xH%y) ?m] + xL则x%y = x,%y经观察发现,x,是仅对x高位段求模而低位段保持不变后的结果,X’的比特示意图如图2 (b)。由于y的位宽b小于n,所以x高位段求模后所占位宽将小于b,因此X’的位宽比 X至少减少了 n-b,而b〈n,因此本步骤一定会将一个大数求模问题等价转换为另一个更小位宽的大数求模问题;(3)用X’替换X重复步骤(1),直到X的有效位宽小于n,由于嵌入式处理器支持 n位整型,因此可直接进行x%y的求余计算,即得到最终结果。本说明书以一个具体的大数对7求模为例,阐述本专利技术的具体实施方案,在本例中,嵌入式处理器整型最大位宽是32bit:(I)该大数为512bit的大数x,表示成16进制形式如下:el 77 41 69 b4 d4 76 a0 f6 57 32 Ob d3 63 78 9848 98 cc 8d Of el If Ib ec be 2b 08 fO 9f 36 bd87 24 4e 78 c8 c4 24 39 f9 af 3e a6 3f 04 32 9432 d7 21 de ec d9 a5 3f ae 57 fa 8b 2e 88 37 79将x 拆分成高 32bit xH= 0xe7774169 和低 480bit xL 的形式;(2)高32bit xH对y=7进行求余,低480bit保持不变,xH %7=1,由于处理器整型位宽为32bit,xH %7可直接完成。把计算出的余数I作为最高位,与低480bit组成新的大数 x’,表示成如下16进制形式:01 b4 d4 76 a0 f6 57 32 0b d3 63 78 9848 98 cc 8d Of el If Ib ec be 2b 08 fO 9f 36 bd87 24 4e 78 c8 c4 24 39 f9 af 3e a6 3f 04 32 9432 d7 21 de ec d9 a5 3f ae 57 fa 8b 2e 88 37 79(3)再将新的大数x’拆分成高32 bit和低456 bit的形式;(4)将高32 bit的0x01b4d476再对7求模得到4 ;将此余数4与低456bit组成新的大数;(5)依次重复高低位段拆分和高位段求模,每次都将最高32位取出,对7进行求模,然后将余数与低位段组合,直到整数位宽小于或等于32bit,最后直接对7求模,事实上 该数为0x06883779,对7求模得到最终结果为3。以上内容是结合具体的优选实施方式对本专利技术所作的进一步详细说明,不能认定 本专利技术的具体实施只局限于这些说明。对于本专利技术所属
的技术人员来说,在不脱 离本专利技术构思的前提下,还可以做出若干等同替代或明显变型,而且性能或用途相同,都应 当视为属于本专利技术的保护范围。本文档来自技高网
...

【技术保护点】
一种快速的适用于嵌入式系统的大数求模方法,其特征在于包括如下三个步骤:一、先将大数拆分为高低位段;二、对高位段进行求模;三、重复步骤一和步骤二,直到大数位宽缩减到有效位宽后,完成最后的直接求模。

【技术特征摘要】
1.一种快速的适用于嵌入式系统的大数求模方法,其特征在于包括如下三个步骤:一、先将大数拆分为高低位段;二、对高位段进行求模;三、重复步骤一和步骤二,直到大数位宽缩减到有效位宽后,完成最后的直接求模。2.根据权利要求1所述的大数求模方法,其特征在于:所述步骤...

【专利技术属性】
技术研发人员:王妍丹温伟陈泓
申请(专利权)人:王妍丹温伟陈泓
类型:发明
国别省市:

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

1