CN102411489B - 一种嵌入式系统中的数据处理方法及装置 - Google Patents
一种嵌入式系统中的数据处理方法及装置 Download PDFInfo
- Publication number
- CN102411489B CN102411489B CN201110317272.0A CN201110317272A CN102411489B CN 102411489 B CN102411489 B CN 102411489B CN 201110317272 A CN201110317272 A CN 201110317272A CN 102411489 B CN102411489 B CN 102411489B
- Authority
- CN
- China
- Prior art keywords
- data
- high position
- result
- data segment
- pending
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Design And Manufacture Of Integrated Circuits (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开一种嵌入式系统中的数据处理方法及装置,该方法包括:获取第一待处理数据和第二待处理数据,根据所述第一待处理数据生成多个位长为第二位长的数据段,根据所述第二待处理数据和所述第二位长,对所有的高位数据段分别进行处理,得到与各个高位数据段对应的数据段处理结果,并根据所述数据段处理结果、所述第二待处理数据和最低位数据段,生成数据处理结果;或者,根据所述第二待处理数据、所述第二位长和最低位数据段,依次处理各个高位数据段以及该高位数据段对应的数据段处理结果,得到数据处理结果。本发明技术方案能够有效地缩短数据处理的时间,提高数据处理的速度。
Description
技术领域
本发明涉及密码学领域,特别涉及一种嵌入式系统中的数据处理方法及装置。
背景技术
大数的运算涉及领域多,应用范围广,大数运算不仅仅运用在密码学中,还运用在物理学、生物学,化学等科目中。大数运算,意味着通常参加运算的值和计算结果是上百位数,上千位数以及更大长度之间的整数运算。例如大家所熟知圆周率π的值,在一般的数值计算中用到圆周率的不需要太高的精度,但在计算一些星球或是星系上的体积或面积时便显得误差很大了,这就要求π值计算的精度达到几百万位甚至更高,才能缩小误差。人工计算效率太低,而且误差也无法估计,只有在计算机中用大数运算求π值。
一般地,大数运算可以通过在计算机中从高位向低位减,减时以被除数长度为单位,从高位取出大于被除数的字符串,和被除数相减,减的次数为结果,余数从剩下的除数高位再取出几位做补位,直到余数大于被除数,再减,循环减到被减数大于余数加上补位,那么这个新的余数作为结果返回。但是,这样的运算往往耗时都很长,从而降低了技术人员的工作效率。
发明内容
本发明实施例提供一种嵌入式系统中的数据处理方法及装置,用于解决现有技术中数据处理耗时较长的问题。
一方面,提供一种嵌入式系统中的数据处理方法,包括:
获取第一待处理数据和第二待处理数据,所述第一待处理数据的位长为第一位长,所述第二待处理数据的位长为第二位长,所述第一位长大于所述第二位长;
根据所述第一待处理数据生成多个位长为所述第二位长的数据段,所述数据段按照各自包含的数据在所述第一待处理数据中的高低顺序进行排列,包括最低位数据段和高位数据段,所述最低位数据段为包含所述第一待处理数据的最低位数据的数据段,所述高位数据段为所述生成的数据段中除所述最低位数据段之外的其他数据段;
根据所述第二待处理数据和所述第二位长,对所有的高位数据段分别进行处理,得到与各个高位数据段对应的数据段处理结果,并根据所述数据段处理结果、所述第二待处理数据和最低位数据段,生成数据处理结果;或者,根据所述第二待处理数据、所述第二位长和最低位数据段,依次对各个高位数据段以及该高位数据段对应的数据段处理结果进行处理,得到数据处理结果。
优选地,所述根据所述第二待处理数据、所述第二位长和最低位数据段,依次处理各个高位数据段以及该高位数据段对应的数据段处理结果,得到数据处理结果,包括:
①、根据所述第二待处理数据和所述第二位长,对当前高位数据段进行处理,得到当前数据段处理结果,所述当前高位数据段的初始值为预先设定的高位数据段或者任意高位数据段;
②、对所述当前数据段处理结果与当前迭代数据,执行模数为所述第二待处理数据的加法运算,得到模加运算结果,并将所述当前迭代数据更新为所述模加运算结果,所述当前迭代数据的初始值为所述最低位数据段;
③、判断是否存在未处理的高位数据段,如果存在,则将所述当前高位数据段更新为所述未处理的高位数据段,并返回①;否则,执行④;
④、确定所述当前迭代数据为所述数据处理结果。
优选地,所述根据所述第二待处理数据和所述第二位长,对当前高位数据段进行处理,得到当前数据段处理结果,具体为:
当所述当前高位数据段与所述最低位数据段相邻时,对2的第二位长次幂执行模数为所述第二待处理数据的平方运算,并对得到的模平方运算结果与所述当前高位数据段,执行模数为所述第二待处理数据的模乘运算,得到所述数据段处理结果;
当所述当前高位数据段与所述最低位数据段之间的数据段的个数大于或等于1时,执行以下流程:
⑤、对2的第二位长次幂执行模数为所述第二待处理数据的平方运算,并对得到的模平方运算结果与所述当前高位数据段,执行模数为所述第二待处理数据的模乘运算,得到中间值;
⑥、对所述中间值与所述模平方运算结果,执行模数为所述第二待处理数据的模乘运算,得到模乘运算结果,将运算次数自加1,所述运算次数的初始值为0;
⑦、判断所述运算次数是否小于所述当前高位数据段与所述最低位数据段之间的数据段的个数加1,如果是,则将所述中间值更新为所述模乘运算结果,并返回⑥;否则,执行⑧;
⑧、确定所述模乘运算结果为所述数据段处理结果。
优选地,所述预先设定的高位数据段为与所述最低位数据段相邻的高位数据段或者最高位数据段,所述最高位数据段为包含所述第一待处理数据的最高位数据的数据段;
所述判断是否存在未处理的高位数据段,具体为:
判断是否存在与所述当前数据段相邻的未处理的高位数据段。
优选地,所述当前高位数据段的初始值为与所述最低位数据段相邻的高位数据段时,判断是否存在未处理的高位数据段之后,还包括:
当存在未处理的高位数据段时,对计数器的计数值自加1,所述计数值的初始值为1;
所述根据所述第二待处理数据和所述第二位长,对当前高位数据段进行处理,得到当前数据段处理结果,具体为:当所述当前高位数据段与所述最低位数据段相邻时,对2的第二位长次幂执行模数为所述第二待处理数据的平方运算,并对得到的模平方运算结果与所述当前高位数据段,执行模数为所述第二待处理数据的模乘运算,得到所述数据段处理结果;
当所述当前高位数据段与所述最低位数据段之间的数据段的个数大于或等于1时,执行以下流程:
a、对2的第二位长次幂执行模数为所述第二待处理数据的平方运算,并对得到的模平方运算结果与所述当前高位数据段,执行模数为所述第二待处理数据的模乘运算,得到中间值;
b、对所述中间值与所述模平方运算结果,执行模数为所述第二待处理数据的模乘运算,得到模乘运算结果,将运算次数自加1,所述运算次数的初始值为0;
c、判断所述运算次数是否小于所述计数器的当前计数值,如果是,则将所述中间值更新为所述模乘运算结果,并返回b;否则,执行d;
d、确定所述模乘运算结果为所述数据段处理结果。
优选地,所述根据所述第二待处理数据和所述第二位长,对根据所述第一待处理数据生成的数据段中除最低位数据段之外的高位数据段分别进行处理,得到对应的数据段处理结果,具体为:
当所述高位数据段与所述最低位数据段相邻时,对2的第二位长次幂执行模数为所述第二待处理数据的平方运算,并对得到的模平方运算结果与所述高位数据段,执行模数为所述第二待处理数据的模乘运算,得到所述数据段处理结果;
当所述高位数据段与所述最低位数据段之间的数据段的个数大于或等于1时,执行以下流程:
A、对2的第二位长次幂执行模数为所述第二待处理数据的平方运算,并对得到的模平方运算结果与所述高位数据段,执行模数为所述第二待处理数据的模乘运算,得到中间值;
B、对所述中间值与所述模平方运算结果,执行模数为所述第二待处理数据的模乘运算,得到模乘运算结果,将运算次数自加1,所述运算次数的初始值为0;
C、判断所述运算次数是否小于所述高位数据段与所述最低位数据段之间的数据段的个数加1,如果是,则将所述中间值更新为所述模乘运算结果,并返回B;否则,执行D;
D、确定所述模乘运算结果为所述数据段处理结果;
所述根据所述数据段处理结果、所述第二待处理数据和所述最低位数据段,生成数据处理结果,具体为:对所述最低位数据段与所有高位数据段对应的数据段处理结果,执行模数为所述第二待处理数据的加法运算,得到所述数据处理结果。
优选地,所述根据第一待处理数据生成多个位长为所述第二位长的数据段,具体为:
当所述第一位长是所述第二位长的整数倍时,将所述第一待处理数据划分为多个位长为所述第二位长的数据段;
当所述第一位长不是所述第二位长的整数倍时,在第一待处理数据的高位补零,得到补零数据,将所述补零数据划分为多个位长为所述第二位长的数据段,所述补零数据的位长为大于所述第一位长的所述第二位长的最小整数倍。
另一方面,提供一种嵌入式系统中的数据处理装置,包括:
获取模块,用于获取第一待处理数据和第二待处理数据,所述第一待处理数据的位长为第一位长,所述第二待处理数据的位长为第二位长,所述第一位长大于所述第二位长;
生成模块,用于根据所述第一待处理数据生成多个位长为所述第二位长的数据段,所述数据段按照各自包含的数据在所述第一待处理数据中的高低顺序进行排列,包括最低位数据段和高位数据段,所述最低位数据段为包含所述第一待处理数据的最低位数据的数据段,所述高位数据段为所述生成的数据段中除所述最低位数据段之外的其他数据段;
处理模块,用于根据所述第二待处理数据和所述第二位长,对所有的高位数据段分别进行处理,得到与各个高位数据段对应的数据段处理结果,并根据所述数据段处理结果、所述第二待处理数据和最低位数据段,生成数据处理结果;
或者,根据所述第二待处理数据、所述第二位长和最低位数据段,依次处理各个高位数据段以及该高位数据段对应的数据段处理结果,得到数据处理结果。
优选地,所述处理模块,包括:
处理子模块,用于根据所述第二待处理数据和所述第二位长,对当前高位数据段进行处理,得到当前数据段处理结果,所述当前高位数据段的初始值为预先设定的高位数据段或者任意高位数据段;
模加子模块,用于对所述当前数据段处理结果与当前迭代数据,执行模数为所述第二待处理数据的加法运算,得到模加运算结果,所述当前迭代数据的初始值为所述最低位数据段;
第一更新子模块,用于将所述当前迭代数据更新为所述模加运算结果;
判断子模块,用于判断是否存在未处理的高位数据段;
第二更新子模块,用于当存在未处理的高位数据段时,将所述当前高位数据段更新为所述未处理的高位数据段,并触发所述处理子模块对所述当前高位数据段进行处理;
确定子模块,用于当不存在未处理的高位数据段时,确定所述当前迭代数据为所述数据处理结果。
优选地,所述处理子模块,具体用于在所述当前高位数据段与所述最低位数据段相邻时,对2的第二位长次幂执行模数为所述第二待处理数据的平方运算,并对得到的模平方运算结果与所述当前高位数据段,执行模数为所述第二待处理数据的模乘运算,得到所述数据段处理结果;
在所述当前高位数据段与所述最低位数据段之间的数据段的个数大于或等于1时,执行以下流程:
⑤、对2的第二位长次幂执行模数为所述第二待处理数据的平方运算,并对得到的模平方运算结果与所述当前高位数据段,执行模数为所述第二待处理数据的模乘运算,得到中间值;
⑥、对所述中间值与所述模平方运算结果,执行模数为所述第二待处理数据的模乘运算,得到模乘运算结果,将运算次数自加1,所述运算次数的初始值为0;
⑦、判断所述运算次数是否小于所述当前高位数据段与所述最低位数据段之间的数据段的个数加1,如果是,则将所述中间值更新为所述模乘运算结果,并返回⑥;否则,执行⑧;
⑧、确定所述模乘运算结果为所述数据段处理结果。
优选地,所述预先设定的高位数据段为与所述最低位数据段相邻的高位数据段,或者最高位数据段,所述最高位数据段为包含所述第一待处理数据的最高位数据的数据段;
所述判断子模块,具体用于判断是否存在与所述当前数据段相邻的未处理的高位数据段。
优选地,计数模块,用于在所述当前高位数据段的初始值为与所述最低位数据段相邻的高位数据段,且所述判断子模块判断存在未处理的高位数据段时,对计数器的计数值自加1,所述计数值的初始值为1;
所述处理子模块,具体用于在所述当前高位数据段与所述最低位数据段相邻时,对2的第二位长次幂执行模数为所述第二待处理数据的平方运算,并对得到的模平方运算结果与所述当前高位数据段,执行模数为所述第二待处理数据的模乘运算,得到所述数据段处理结果;
在所述当前高位数据段与所述最低位数据段之间的数据段的个数大于或等于1时,执行以下流程:
a、对2的第二位长次幂执行模数为所述第二待处理数据的平方运算,并对得到的模平方运算结果与所述当前高位数据段,执行模数为所述第二待处理数据的模乘运算,得到中间值;
b、对所述中间值与所述模平方运算结果,执行模数为所述第二待处理数据的模乘运算,得到模乘运算结果,将运算次数自加1,所述运算次数的初始值为0;
c、判断所述运算次数是否小于所述计数器的当前计数值,如果是,则将所述中间值更新为所述模乘运算结果,并返回b;否则,执行d;
d、确定所述模乘运算结果为所述数据段处理结果。
优选地,所述处理模块,具体用于在所述高位数据段与所述最低位数据段相邻时,对2的第二位长次幂执行模数为所述第二待处理数据的平方运算,并对得到的模平方运算结果与所述高位数据段,执行模数为所述第二待处理数据的模乘运算,得到所述数据段处理结果;
在所述高位数据段与所述最低位数据段之间的数据段的个数大于或等于1时,执行以下流程:
A、对2的第二位长次幂执行模数为所述第二待处理数据的平方运算,并对得到的模平方运算结果与所述高位数据段,执行模数为所述第二待处理数据的模乘运算,得到中间值;
B、对所述中间值与所述模平方运算结果,执行模数为所述第二待处理数据的模乘运算,得到模乘运算结果,将运算次数自加1,所述运算次数的初始值为0;
C、判断所述运算次数是否小于所述高位数据段与所述最低位数据段之间的数据段的个数加1,如果是,则将所述中间值更新为所述模乘运算结果,并返回B;否则,执行D;
D、确定所述模乘运算结果为所述数据段处理结果;
所述根据所述数据段处理结果、所述第二待处理数据和所述最低位数据段,生成数据处理结果,具体为:
对所述最低位数据段与所有高位数据段对应的数据段处理结果,执行模数为所述第二待处理数据的加法运算,得到所述数据处理结果。
优选地,所述生成模块,具体用于在所述第一位长是所述第二位长的整数倍时,将所述第一待处理数据划分为多个位长为所述第二位长的数据段;
当所述第一位长不是所述第二位长的整数倍时,在第一待处理数据的高位补零,得到补零数据,将所述补零数据划分为多个位长为所述第二位长的数据段,所述补零数据的位长为大于所述第一位长的所述第二位长的最小整数倍。
附图说明
图1为本发明实施例1提供的一种嵌入式系统中的数据处理方法流程图;
图2为本发明实施例2提供的一种嵌入式系统中的数据处理方法流程图;
图3为本发明实施例3提供的一种嵌入式系统中的数据处理方法流程图;
图4为本发明实施例3中步骤305的细化流程图;
图5为本发明实施例3中步骤305-5的细化流程图;
图6为本发明实施例3中步骤305-6的细化流程图;
图7为本发明实施例4提供的一种嵌入式系统中的数据处理装置图;
图8为本发明实施例5提供的一种嵌入式系统中的数据处理装置图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了解决现有技术中大数做除法运算时间较长的问题,本发明实施例提供了一种嵌入式系统中的数据处理方法和装置。
实施例1
实施例1公开了一种嵌入式系统中的数据处理方法,参见图1,具体步骤如下:
步骤101:接收第一待处理数据和第二待处理数据,判断所述第二待处理数据是否为奇数,是则执行步骤102,否则结束操作;
步骤102:判断所述第一待处理数据的位长是否大于第二待处理数据的位长,是则执行步骤103,否则结束操作;
步骤103:根据所述第二待处理数据生成第一参数,由最低位开始,根据所述第二待处理数据的位长对所述第一待处理数据进行划分,顺序得到多个数据单元;
具体地,所述第一参数是以2为底数,以第二待处理数据的位长为幂计算得到的结果;
优选地,在本实施例中,所述位长以字节(8比特)为单位。如果待处理数据的比特数不为8的整数倍,则在高位补0;
例如,在本实施例中,接收到的所述第一待处理数据为十六进制数:
B4050A850C04B3ABF54132565044B0B7D7BFD8BA270B39432355FFB4B70ECBD6BB4BF7F321390B94A03C1DA56C23C264E280D3
相应地,所述第一待处理数据的位长为51字节;
所述第二待处理数据为十六进制数:
4A03C1D356C21122343280D6115C1D21
相应地,所述第二待处理数据的位长为16字节;
则,所述第一参数为十六进制数:
100000000000000000000000000000000
对所述第一代待处理数据划分后得到4个数据单元,分别为:
B4050A
850C04B3ABF54132565044B0B7D7BFD8
BA270B39432355FFB4B70ECBD6BB4BF7
F321390B94A03C1DA56C23C264E280D3
其中,第1数据单元为:
F321390B94A03C1DA56C23C264E280D3
第2数据单元为:
BA270B39432355FFB4B70ECBD6BB4BF7
第3数据单元为:
850C04B3ABF54132565044B0B7D7BFD8
第4数据单元为:
00000000000000000000000000B4050A。
步骤104:设置迭代数据的初始值为第1数据单元(即所述第一待处理数据的最低位所在的数据单元),设置中间值的初始值为与当前数据单元相邻的未处理的数据单元(即第2数据单元)的值;
步骤105:对当前中间值和所述第一参数进行模乘操作,用计算结果更新所述中间值,将第一计数器的值自加1;
优选地,在本实施例中,设置第一计数器的初始值为0。
步骤106:判断所述第一计数器的当前值是否小于所述第二计数器的当前值,是则返回步骤105,否则执行步骤107;
优选地,在本实施例中,第二计数器的初始值为1。
步骤107:设置所述第一计数器当前值为0,对当前迭代数据和当前中间值进行模加操作,用计算结果更新所述迭代数据;
步骤108:判断是否存在与当前数据单元相邻的未处理的数据单元,是则执行步骤109,否则执行步骤110;
步骤109:将第二计数器的值自加1,将中间值设为与当前数据单元相邻的未处理的数据单元,返回步骤105:
步骤110:输出当前迭代数据。
需要说明的是,在本发明上述实施例中,对数据段(即数据单元)的处理顺序为由低位向高位依次处理;在本发明的其它实施例中,还可以按照预设的顺序或者任意顺序处理各个数据段,根据数据段进行模乘和迭代的次数可以为该数据段与最低位数据段之间的数据段的个数加1次。
本发明实施例提供的技术方案,通过对待处理数据进行划分,再依次对划分得到的数据段分别进行处理,得到数据处理结果,缩短了数据处理的时间,提高了数据处理的速度。
实施例2
实施例2公开了一种嵌入式系统中的数据处理方法,在所述嵌入式系统中,预设第一存储区用于存储被除数,第二存储区用于存储除数,第三存储区用于存储运算结果,预设运算次数变量,所述运算次数变量的初始值为0。参见图2,具体步骤如下:
步骤201:嵌入式系统接收第三待处理数据和第四待处理数据;
具体地,所述第三待处理数据的位长为第一位长,所述第四待处理数据的位长为第二位长;
优选地,在本实施例中,所述第一位长和所述第二位长为8的整数倍,所述第三待处理数据存储在第一存储区中,所述第四待处理数据存储在第二存储区中;
步骤202:判断所述第三待处理数据的位长是否大于第四待处理数据的位长,是则执行步骤203,否则结束操作;
步骤203:判断所述第四待处理数据是否为奇数,是则执行步骤204,否则结束操作;
步骤204:根据所述第四待处理数据生成第一数据;
优选地,在本实施例中,所述生成第一数据的方法为:以所述第二位长为幂,2为底数,对2的第二位长次幂进行模平方运算,并将运算结果赋给所述第一数据,其中,模数为所述第四待处理数据。
步骤205:将所述第三待处理数据划分为多个位长为所述第二位长的数据段,所述数据段由低位到高位依次为:第0数据段、第1数据段、第2数据段、第3数据段……;
优选地,在本实施例中,相应的每个数据段对应的值为第0数据段值、第1数据段值、第2数据段值、第3数据段值……;
优选地,在本实施例中,当所述第一位长是所述第二位长的整数倍时,将所述第三待处理数据划分为多个位长为所述第二位长的数据段,当所述第一位长不是所述第二位长的整数倍时,在第三待处理数据的高位补零,得到位长为所述第二位长的最小整数倍且位长最小的补零数据,并将所述补零数据划分为多个位长为所述第二位长的数据段。
需要说明的是,在本实施例中,上述步骤204和步骤205的顺序可以互换。
步骤206:将当前偏移单元指向第1数据段;
步骤207:将当前运算次数变量值置为0;
步骤208:将当前偏移单元对应的数据段的值赋给当前第一迭代数据;
需要说明的是,在本实施例中,上述步骤207和步骤208的顺序可以互换,也可以同时进行。
步骤209:对当前第一迭代数据、所述第一数据、所述第四待处理数据执行模乘运算;
步骤210:当前运算次数变量值自加1;
步骤211:判断当前运算次数变量值是否小于数据段的序列号,是则执行步骤212,否则执行步骤213;
步骤212:将当前运算结果赋给当前第一迭代数据,返回执行步骤209;
步骤213:将当前运算结果存储在第四存储区中;
优选地,在本实施例中,所述第四存储区为计算机的内存空间。
步骤214:判断当前偏移单元是否为最后一个数据段,是则执行步骤216,否则执行步骤215;
步骤215:将当前偏移单元指向当前数据段的下一个数据段,返回执行步骤207;
步骤216:对所述第四存储区中每个数据段对应的运算结果与所述第0数据段执行模数为所述第四待处理数据的加法运算,并将运算结果赋给第一运算值;
优选地,在本实施例中,所述第一运算值存储于第三存储区中。
步骤217:所述嵌入式系统输出所述第一运算值。
优选地,在本实施例中,所述第一运算值即为所述第三待处理数据和所述第四待处理数据做除法的运算结果。
本发明实施例提供的技术方案,通过对待处理数据进行划分,再对划分得到的数据段分别进行处理,根据得到的数据段处理结果获得数据处理结果,缩短了数据处理的时间,提高了数据处理的速度。
实施例3
实施例3公开了一种嵌入式系统中的数据处理方法,在所述嵌入式系统中,预设第五存储区用于存储被除数,第六存储区用于存储除数,第七存储区用于存储运算结果,且所述第五存储区的容量为所述第六存储区容量的两倍。参见图3,具体步骤如下:
步骤301:嵌入式系统接收第五待处理数据和第六待处理数据;
具体地,所述第五待处理数据的位长为第三位长,所述第六待处理数据的位长为第四位长,所述第三位长和所述第四位长为8的整数倍,且所述第三位长大于所述第四位长;
所述第五待处理数据存储在第五存储区中,所述第六待处理数据存储在第六存储区中;
优选地,在本实施例中,所述第三位长大于所述第四位长且小于或等于两倍的所述第四位长,但不作为对本发明的限定。
例如,在本实施例中,所述第五待处理数据为十六进制数11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111;
所述第六待处理数据为十六进制数8542D69E4C044F18E8B92435BF6FF7DD297720630485628D5AE74EE7C32E79B7
步骤302:判断所述第六待处理数据是否为奇数,是则执行步骤303,否则结束操作;
步骤303:根据所述第六待处理数据生成第二数据;
优选地,在本实施例中,所述生成第二数据的方法为:以所述第四位长为幂,2为底数,对2的第四位长次幂进行模平方运算,并将运算结果赋给所述第二数据,其中,模数为所述第六待处理数据。
步骤304:根据所述第五待处理数据生成第三数据和第四数据;
优选地,在本实施例中,所述第三位长大于所述第四位长且小于或等于两倍的所述第四位长,则在第五存储区中对所述第五待处理数据的高位补0,直至所述第五待处理数据的位长等于两倍的所述第六待处理数据的位长,将所述第五待处理数据划分为2个位长为所述第四位长的数据段,并将所述第五待处理数据的高位数据段赋给所述第三数据,低位数据段赋给所述第四数据;
相应地,在本实施例中,高位补0后的第五待处理数据为:00000000000000000000000000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111;
所述第三数据为:0000000000000000000000000000001111111111111111111111111111111111;
所述第四数据为:1111111111111111111111111111111111111111111111111111111111111111;
优选地,在本实施例中,上述步骤303和步骤304的顺序可以互换,也可以合并成为一个步骤。
步骤305:对所述第三数据、所述第二数据、所述第六待处理数据执行模乘运算,并将运算结果赋给第二运算值;
优选地,在本实施例中,执行模乘运算的具体过程参见步骤305-1至步骤305-11的流程,即图4。
步骤306:对所述第二运算值与所述第四数据执行模数为所述第六待处理数据的加法运算,并将运算结果赋给第三运算值;
优选地,在本实施例中,所述第三运算值存储于第七存储区中。
步骤307:所述嵌入式系统输出所述第三运算值。
优选地,在本实施例中,所述第三运算值即为所述第五待处理数据和所述第六待处理数据做除法的运算结果;
相应地,在本实施例中,所述第三运算值为:26CB1D870D03FB60679782BA5C4171263BD1C5833C95C46285B302E9C4513649。
本发明实施例提供的技术方案,通过将待处理数据划分为两个数据段,再对两个数据段分别进行处理,根据得到的数据段处理结果获得数据处理结果,缩短了数据处理的时间,提高了数据处理的速度。
本发明上述实施例3中涉及到的对所述第三数据、所述第二数据、所述第六待处理数据执行模乘运算的方法,参见图4,具体步骤如下:
步骤305-1:将所述第三数据划分为预设比特位位数的小数据段;
优选地,在本实施例中,所述预设比特位位数为8的整数倍,得到的每个小数据段由低位到高位依次为第1小数据段,第2小数据段,第3小数据段……,相应的每个小数据段对应的值为第1小数据段值,第2小数据段值,第3小数据段值……;
相应地,在本实施例中,得到的第三数据的位长为64,设所述预设比特位的值为8,相应的最后一个小数据段为第8小数据段,则对所述第三数据进行划分的结果为:
0000000000000000000000000000001111111111111111111111111111111111。
步骤305-2:根据所述预设比特位位数生成第五数据;
优选地,在本实施例中,根据所述预设比特位位数生成第五数据的方法为:以所述预设比特位位数的值为幂,2为底数,获取2的预设比特位位数次幂的值,并将运算结果赋给所述第五数据。
步骤305-3:根据所述第六待处理数据、所述第五数据,生成第六数据;
优选地,在本实施例中,所述生成第六数据的方法为:获取所述第五数据减去所述第六待处理数据关于所述第五数据的逆的差值。
步骤305-4:将当前小偏移单元的初始位置指向第1小数据段,将当前第二迭代数据的初始值置为0;
步骤305-5:对当前小偏移单元对应的小数据段值、当前第二迭代数据、所述第二数据、所述第六数据、所述第五数据进行处理,并将处理的结果赋给当前中间变量值;
优选地,在本实施例中,对当前小偏移单元值、当前第二迭代数据、所述第二数据、所述第六数据、所述第五数据进行处理的过程参见图5,具体为:
步骤A:获取当前小偏移单元值与所述第二数据的乘积,并将乘积与当前第二迭代数据求和;
步骤B:获取求和得到的结果与所述第六数据的乘积,并将乘积结果对所述第五数据进行取模运算,将取模运算的结果赋给当前中间变量值;
步骤305-6:对当前小偏移单元对应的小数据段值、当前第二迭代数据、所述第二数据、所述第六待处理数据、当前中间变量值、所述第五数据进行处理,并将处理的结果赋给当前第二迭代数据;
优选地,在本实施例中,对当前小偏移单元对应的小数据段值、当前第二迭代数据、所述第二数据、所述第六待处理数据、当前中间变量值、所述第五数据进行处理的过程参见图6,具体为:
步骤A’:获取当前小偏移单元对应的小数据段值与所述第二数据的乘积,并将乘积结果与当前第二迭代数据求和;
步骤B’:获取所述第六待处理数据与当前中间变量值的乘积;
步骤C’:将求和结果与乘积结果进行相加,并将相加的结果对所述第五数据求商,将求商结果赋给当前第二迭代数据;
步骤305-7:判断当前小偏移单元是否为最后一个小数据段,是则执行步骤305-9,否则执行步骤305-8;
步骤305-8:将当前小偏移单元指向当前小数据段的下一个小数据段,返回步骤305-5;
步骤305-9:判断当前第二迭代数据是否大于或等于所述第六待处理数据,是则执行步骤305-10,否则执行步骤305-11;
步骤305-10:将当前第二迭代数据自减所述第六待处理数据;
步骤305-11:将当前第二迭代数据的值赋给所述第二运算值。
本发明实施例提供的技术方案,通过对处理过程中的数据执行模乘运算,根据得到的数据段处理结果获得数据处理结果,缩短了数据处理的时间,提高了数据处理的速度。
实施例4
实施例4公开了一种嵌入式系统中的数据处理的装置,如图7所示,所述装置包括:
获取模块410,用于获取第一待处理数据和第二待处理数据;
其中,所述第一待处理数据的位长为第一位长,所述第二待处理数据的位长为第二位长,所述第一位长大于所述第二位长,且所述第一位长和所述第二位长为8的整数倍,所述第一待处理数据存储在第一存储区中,所述第二待处理数据存储在第二存储区中;
判断模块420,用于判断根据所述获取模块410获取的第二待处理数据是否为奇数;
第一生成模块430,用于根据所述获取模块410获取的第一待处理数据生成多个位长为所述第二位长的数据段;
具体地,所述第一生成模块430用于当所述第一位长是所述第二位长的整数倍时,将所述第一待处理数据划分为多个位长为所述第二位长的数据段;当所述第一位长不是所述第二位长的整数倍时,在第一待处理数据的高位补零,得到位长为所述第二位长的整数倍且位长最小的补零数据,并将所述补零数据划分为多个位长为所述第二位长的数据段;
优选地,在本实施例中,所述根据所述第一待处理数据生成的数据段按照各自包含的数据在所述第一待处理数据中的高低顺序进行排列,所述数据段由低位到高位依次为:第0数据段、第1数据段、第2数据段、第3数据段……;
处理模块440,用于根据所述第二待处理数据和所述第二位长,对所述第一生成模块430生成的数据段中除最低位数据段之外的高位数据段分别进行处理,得到对应的数据段处理结果,所述最低位数据段为包含所述第一待处理数据的最低位数据的数据段;
上述处理模块440,包括:
模平方子模块441,用于对2的第二位长次幂进行模平方运算,得到模平方运算结果;
模乘子模块442,用于在所述高位数据段与所述最低位数据段相邻时,对所述高位数据段与所述模平方运算结果执行模数为所述第二待处理数据的模乘运算,得到所述数据段处理结果;
在所述高位数据段与所述最低位数据段之间的数据段的个数大于等于1时,基于第一生成模块430生成的多个数据段,模乘子模块442可以将当前偏移单元指向第1数据段,将当前运算次数变量值置为0,将当前偏移单元对应的数据段的值赋给当前第一迭代数据,对当前第一迭代数据、所述第一数据、所述第二待处理数据执行模乘运算,将当前运算次数变量值自加1,并判断当前运算次数变量值是否小于数据段的序列号,如果是,则将当前运算结果赋给当前第一迭代数据;否则,将当前运算结果存储在第四存储区中,优选地,在本实施例中,所述第四存储区为计算机的内存空间。之后,模乘子模块442还可以用于判断当前偏移单元是否为最后一个数据段,如果不是,则将当前偏移单元指向当前数据段的下一个数据段,并对下一个数据段进行模乘运算。
第二生成模块450,用于根据所述第二待处理数据、所述最低位数据段和所述处理模块得到的数据段处理结果,生成数据处理结果。
具体地,上述第二生成模块450可以对第一生成模块430生成的多个数据段中的第0数据段与所述数据段处理结果,执行模数为所述第二待处理数据的加法运算,得到所述数据处理结果。
优选地,在本实施例中,所述处理结果存储在第三缓冲区中。
输出模块460:用于输出第二生成模块450生成的数据处理结果。
优选地,在本实施例中,所述数据处理结果即为本发明装置的输出结果。
本发明实施例提供的技术方案,通过对第一待处理数据进行划分,再对划分得到的数据段分别进行处理,根据得到的数据段处理结果获得数据处理结果,缩短了数据处理的时间,提高了数据处理的速度。
实施例5
实施例5公开了一种嵌入式系统中的数据处理的装置,如图8所示,所述装置包括:
获取模块510,用于获取第一待处理数据和第二待处理数据,所述第一待处理数据的位长为第一位长,所述第二待处理数据的位长为第二位长,所述第一位长大于所述第二位长,且所述第二待处理数据为奇数;
生成模块520,用于根据所述第一待处理数据生成多个位长为所述第二位长的数据段,所述数据段按照各自包含的数据在所述第一待处理数据中的高低顺序进行排列,包括最低位数据段和高位数据段,所述最低位数据段为包含所述第一待处理数据的最低位数据的数据段,所述高位数据段为所述生成的数据段中除所述最低位数据段之外的其他数据段;
具体地,所述生成模块520,具体用于在所述第一位长是所述第二位长的整数倍时,将所述第一待处理数据划分为多个位长为所述第二位长的数据段;
当所述第一位长不是所述第二位长的整数倍时,在第一待处理数据的高位补零,得到补零数据,将所述补零数据划分为多个位长为所述第二位长的数据段,所述补零数据的位长为大于所述第一位长的所述第二位长的最小整数倍。
处理模块530,用于根据所述第二待处理数据、所述第二位长和最低位数据段,依次处理各个高位数据段以及该高位数据段对应的数据段处理结果,得到数据处理结果。
上述处理模块530,包括:
处理子模块531,用于根据所述第二待处理数据和所述第二位长,对当前高位数据段进行处理,得到当前数据段处理结果,所述当前高位数据段的初始值为预先设定的高位数据段或者任意高位数据段;
在本实施例中,上述处理子模块531,具体用于在所述当前高位数据段与所述最低位数据段相邻时,对2的第二位长次幂执行模数为所述第二待处理数据的平方运算,并对得到的模平方运算结果与所述当前高位数据段,执行模数为所述第二待处理数据的模乘运算,得到所述数据段处理结果;
在所述当前高位数据段与所述最低位数据段之间的数据段的个数大于或等于1时,执行以下流程:
⑤、对2的第二位长次幂执行模数为所述第二待处理数据的平方运算,并对得到的模平方运算结果与所述当前高位数据段,执行模数为所述第二待处理数据的模乘运算,得到中间值;
⑥、对所述中间值与所述模平方运算结果,执行模数为所述第二待处理数据的模乘运算,得到模乘运算结果,将运算次数自加1,所述运算次数的初始值为0;
⑦、判断所述运算次数是否小于所述当前高位数据段与所述最低位数据段之间的数据段的个数加1,如果是,则将所述中间值更新为所述模乘运算结果,并返回⑥;否则,执行⑧;
⑧、确定所述模乘运算结果为所述数据段处理结果。
模加子模块532,用于对所述当前数据段处理结果与当前迭代数据,执行模数为所述第二待处理数据的加法运算,得到模加运算结果,所述当前迭代数据的初始值为所述最低位数据段;
第一更新子模块533,用于将所述当前迭代数据更新为所述模加运算结果;
判断子模块534,用于判断是否存在未处理的高位数据段;
其中,上述预先设定的高位数据段为与所述最低位数据段相邻的高位数据段,或者最高位数据段,所述最高位数据段为包含所述第一待处理数据的最高位数据的数据段。
相应地,上述判断子模块534,具体用于判断是否存在与所述当前数据段相邻的未处理的高位数据段。
第二更新子模块535,用于当判断子模块534判断存在未处理的高位数据段时,将所述当前高位数据段更新为所述未处理的高位数据段,并触发所述处理子模块对所述当前高位数据段进行处理;
确定子模块536,用于当判断子模块534判断不存在未处理的高位数据段时,确定所述当前迭代数据为所述数据处理结果。
上述装置,还可以进一步包括:
计数模块540,用于在所述当前高位数据段的初始值为与所述最低位数据段相邻的高位数据段,且所述判断子模块534判断存在未处理的高位数据段时,对计数器的计数值自加1,所述计数值的初始值为1;
相应地,上述处理子模块531,具体用于在所述当前高位数据段与所述最低位数据段相邻时,对2的第二位长次幂执行模数为所述第二待处理数据的平方运算,并对得到的模平方运算结果与所述当前高位数据段,执行模数为所述第二待处理数据的模乘运算,得到所述数据段处理结果;
在所述当前高位数据段与所述最低位数据段之间的数据段的个数大于或等于1时,执行以下流程:
a、对2的第二位长次幂执行模数为所述第二待处理数据的平方运算,并对得到的模平方运算结果与所述当前高位数据段,执行模数为所述第二待处理数据的模乘运算,得到中间值;
b、对所述中间值与所述模平方运算结果,执行模数为所述第二待处理数据的模乘运算,得到模乘运算结果,将运算次数自加1,所述运算次数的初始值为0;
c、判断所述运算次数是否小于所述计数器的当前计数值,如果是,则将所述中间值更新为所述模乘运算结果,并返回b;否则,执行d;
d、确定所述模乘运算结果为所述数据段处理结果。
本发明实施例提供的技术方案,通过对第一待处理数据进行划分,再对划分得到的数据段分别进行处理,根据得到的数据段处理结果获得数据处理结果,缩短了数据处理的时间,提高了数据处理的速度。
Claims (10)
1.一种嵌入式系统中的数据处理方法,其特征在于,包括:
获取第一待处理数据和第二待处理数据,所述第一待处理数据的位长为第一位长,所述第二待处理数据的位长为第二位长,所述第一位长大于所述第二位长;
当所述第二待处理数据为奇数时,根据所述第一待处理数据生成多个位长为所述第二位长的数据段,所述数据段按照各自包含的数据在所述第一待处理数据中的高低顺序进行排列,包括最低位数据段和高位数据段,所述最低位数据段为包含所述第一待处理数据的最低位数据的数据段,所述高位数据段为所述生成的数据段中除所述最低位数据段之外的其他数据段;
根据所述第二待处理数据和所述第二位长,对所有的高位数据段分别进行处理,得到与各个高位数据段对应的数据段处理结果,并根据所述数据段处理结果、所述第二待处理数据和最低位数据段,生成数据处理结果;或者,根据所述第二待处理数据、所述第二位长和最低位数据段,依次对各个高位数据段以及该高位数据段对应的数据段处理结果进行处理,得到数据处理结果;
其中,所述根据所述第二待处理数据、所述第二位长和最低位数据段,依次处理各个高位数据段以及该高位数据段对应的数据段处理结果,得到数据处理结果,包括:
①、根据所述第二待处理数据和所述第二位长,对当前高位数据段进行处理,得到当前数据段处理结果,所述当前高位数据段的初始值为预先设定的高位数据段或者任意高位数据段;
②、对所述当前数据段处理结果与当前迭代数据,执行模数为所述第二待处理数据的加法运算,得到模加运算结果,并将所述当前迭代数据更新为所述模加运算结果,所述当前迭代数据的初始值为所述最低位数据段;
③、判断是否存在未处理的高位数据段,如果存在,则将所述当前高位数据段更新为所述未处理的高位数据段,并返回①;否则,执行④;
④、确定所述当前迭代数据为所述数据处理结果;
所述根据所述第二待处理数据和所述第二位长,对所有的高位数据段分别进行处理,得到与各个高位数据段对应的数据段处理结果,具体为:
当所述高位数据段与所述最低位数据段相邻时,对2的第二位长次幂执行模数为所述第二待处理数据的平方运算,并对得到的模平方运算结果与所述高位数据段,执行模数为所述第二待处理数据的模乘运算,得到所述数据段处理结果;
当所述高位数据段与所述最低位数据段之间的数据段的个数大于或等于1时,执行以下流程:
A、对2的第二位长次幂执行模数为所述第二待处理数据的平方运算,并对得到的模平方运算结果与所述高位数据段,执行模数为所述第二待处理数据的模乘运算,得到中间值;
B、对所述中间值与所述模平方运算结果,执行模数为所述第二待处理数据的模乘运算,得到模乘运算结果,将运算次数自加1,所述运算次数的初始值为0;
C、判断所述运算次数是否小于所述高位数据段与所述最低位数据段之间的数据段的个数加1,如果是,则将所述中间值更新为所述模乘运算结果,并返回B;否则,执行D;
D、确定所述模乘运算结果为所述数据段处理结果;
所述根据所述数据段处理结果、所述第二待处理数据和最低位数据段,生成数据处理结果,具体为:对所述最低位数据段与所有高位数据段对应的数据段处理结果,执行模数为所述第二待处理数据的加法运算,得到所述数据处理结果。
2.如权利要求1所述的方法,其特征在于,所述根据所述第二待处理数据和所述第二位长,对当前高位数据段进行处理,得到当前数据段处理结果,具体为:
当所述当前高位数据段与所述最低位数据段相邻时,对2的第二位长次幂执行模数为所述第二待处理数据的平方运算,并对得到的模平方运算结果与所述当前高位数据段,执行模数为所述第二待处理数据的模乘运算,得到所述数据段处理结果;
当所述当前高位数据段与所述最低位数据段之间的数据段的个数大于或等于1时,执行以下流程:
⑤、对2的第二位长次幂执行模数为所述第二待处理数据的平方运算,并对得到的模平方运算结果与所述当前高位数据段,执行模数为所述第二待处理数据的模乘运算,得到中间值;
⑥、对所述中间值与所述模平方运算结果,执行模数为所述第二待处理数据的模乘运算,得到模乘运算结果,将运算次数自加1,所述运算次数的初始值为0;
⑦、判断所述运算次数是否小于所述当前高位数据段与所述最低位数据段之间的数据段的个数加1,如果是,则将所述中间值更新为所述模乘运算结果,并返回⑥;否则,执行⑧;
⑧、确定所述模乘运算结果为所述数据段处理结果。
3.如权利要求1所述的方法,其特征在于,所述预先设定的高位数据段为与所述最低位数据段相邻的高位数据段或者最高位数据段,所述最高位数据段为包含所述第一待处理数据的最高位数据的数据段;
所述判断是否存在未处理的高位数据段,具体为:
判断是否存在与所述当前数据段相邻的未处理的高位数据段。
4.如权利要求3所述的方法,其特征在于,所述当前高位数据段的初始值为与所述最低位数据段相邻的高位数据段时,判断是否存在未处理的高位数据段之后,还包括:
当存在未处理的高位数据段时,对计数器的计数值自加1,所述计数值的初始值为1;
所述根据所述第二待处理数据和所述第二位长,对当前高位数据段进行处理,得到当前数据段处理结果,具体为:当所述当前高位数据段与所述最低位数据段相邻时,对2的第二位长次幂执行模数为所述第二待处理数据的平方运算,并对得到的模平方运算结果与所述当前高位数据段,执行模数为所述第二待处理数据的模乘运算,得到所述数据段处理结果;
当所述当前高位数据段与所述最低位数据段之间的数据段的个数大于或等于1时,执行以下流程:
a、对2的第二位长次幂执行模数为所述第二待处理数据的平方运算,并对得到的模平方运算结果与所述当前高位数据段,执行模数为所述第二待处理数据的模乘运算,得到中间值;
b、对所述中间值与所述模平方运算结果,执行模数为所述第二待处理数据的模乘运算,得到模乘运算结果,将运算次数自加1,所述运算次数的初始值为0;
c、判断所述运算次数是否小于所述计数器的当前计数值,如果是,则将所述中间值更新为所述模乘运算结果,并返回b;否则,执行d;
d、确定所述模乘运算结果为所述数据段处理结果。
5.如权利要求1所述的方法,其特征在于,所述根据第一待处理数据生成多个位长为所述第二位长的数据段,具体为:
当所述第一位长是所述第二位长的整数倍时,将所述第一待处理数据划分为多个位长为所述第二位长的数据段;
当所述第一位长不是所述第二位长的整数倍时,在第一待处理数据的高位补零,得到补零数据,将所述补零数据划分为多个位长为所述第二位长的数据段,所述补零数据的位长为大于所述第一位长的所述第二位长的最小整数倍。
6.一种嵌入式系统中的数据处理装置,其特征在于,包括:
获取模块,用于获取第一待处理数据和第二待处理数据,所述第一待处理数据的位长为第一位长,所述第二待处理数据的位长为第二位长,所述第一位长大于所述第二位长;
生成模块,用于根据所述第一待处理数据生成多个位长为所述第二位长的数据段,所述数据段按照各自包含的数据在所述第一待处理数据中的高低顺序进行排列,包括最低位数据段和高位数据段,所述最低位数据段为包含所述第一待处理数据的最低位数据的数据段,所述高位数据段为所述生成的数据段中除所述最低位数据段之外的其他数据段;
处理模块,用于根据所述第二待处理数据和所述第二位长,对所有的高位数据段分别进行处理,得到与各个高位数据段对应的数据段处理结果,并根据所述数据段处理结果、所述第二待处理数据和最低位数据段,生成数据处理结果;
其中,所述根据所述第二待处理数据和所述第二位长,对所有的高位数据段分别进行处理,得到与各个高位数据段对应的数据段处理结果,具体为:
在所述高位数据段与所述最低位数据段相邻时,对2的第二位长次幂执行模数为所述第二待处理数据的平方运算,并对得到的模平方运算结果与所述高位数据段,执行模数为所述第二待处理数据的模乘运算,得到所述数据段处理结果;
在所述高位数据段与所述最低位数据段之间的数据段的个数大于或等于1时,执行以下流程:
A、对2的第二位长次幂执行模数为所述第二待处理数据的平方运算,并对得到的模平方运算结果与所述高位数据段,执行模数为所述第二待处理数据的模乘运算,得到中间值;
B、对所述中间值与所述模平方运算结果,执行模数为所述第二待处理数据的模乘运算,得到模乘运算结果,将运算次数自加1,所述运算次数的初始值为0;
C、判断所述运算次数是否小于所述高位数据段与所述最低位数据段之间的数据段的个数加1,如果是,则将所述中间值更新为所述模乘运算结果,并返回B;否则,执行D;
D、确定所述模乘运算结果为所述数据段处理结果;
所述根据所述数据段处理结果、所述第二待处理数据和所述最低位数据段,生成数据处理结果,具体为:
对所述最低位数据段与所有高位数据段对应的数据段处理结果,执行模数为所述第二待处理数据的加法运算,得到所述数据处理结果;
或者,所述处理模块,用于根据所述第二待处理数据、所述第二位长和最低位数据段,依次处理各个高位数据段以及该高位数据段对应的数据段处理结果,得到数据处理结果;
其中,所述处理模块,具体包括:
处理子模块,用于根据所述第二待处理数据和所述第二位长,对当前高位数据段进行处理,得到当前数据段处理结果,所述当前高位数据段的初始值为预先设定的高位数据段或者任意高位数据段;
模加子模块,用于对所述当前数据段处理结果与当前迭代数据,执行模数为所述第二待处理数据的加法运算,得到模加运算结果,所述当前迭代数据的初始值为所述最低位数据段;
第一更新子模块,用于将所述当前迭代数据更新为所述模加运算结果;
判断子模块,用于判断是否存在未处理的高位数据段;
第二更新子模块,用于当存在未处理的高位数据段时,将所述当前高位数据段更新为所述未处理的高位数据段,并触发所述处理子模块对所述当前高位数据段进行处理;
确定子模块,用于当不存在未处理的高位数据段时,确定所述当前迭代数据为所述数据处理结果。
7.如权利要求6所述的装置,其特征在于,
所述处理子模块,具体用于在所述当前高位数据段与所述最低位数据段相邻时,对2的第二位长次幂执行模数为所述第二待处理数据的平方运算,并对得到的模平方运算结果与所述当前高位数据段,执行模数为所述第二待处理数据的模乘运算,得到所述数据段处理结果;
在所述当前高位数据段与所述最低位数据段之间的数据段的个数大于或等于1时,执行以下流程:
⑤、对2的第二位长次幂执行模数为所述第二待处理数据的平方运算,并对得到的模平方运算结果与所述当前高位数据段,执行模数为所述第二待处理数据的模乘运算,得到中间值;
⑥、对所述中间值与所述模平方运算结果,执行模数为所述第二待处理数据的模乘运算,得到模乘运算结果,将运算次数自加1,所述运算次数的初始值为0;
⑦、判断所述运算次数是否小于所述当前高位数据段与所述最低位数据段之间的数据段的个数加1,如果是,则将所述中间值更新为所述模乘运算结果,并返回⑥;否则,执行⑧;
⑧、确定所述模乘运算结果为所述数据段处理结果。
8.如权利要求6所述的装置,其特征在于,所述预先设定的高位数据段为与所述最低位数据段相邻的高位数据段,或者最高位数据段,所述最高位数据段为包含所述第一待处理数据的最高位数据的数据段;
所述判断子模块,具体用于判断是否存在与所述当前数据段相邻的未处理的高位数据段。
9.如权利要求8所述的装置,其特征在于,还包括:
计数模块,用于在所述当前高位数据段的初始值为与所述最低位数据段相邻的高位数据段,且所述判断子模块判断存在未处理的高位数据段时,对计数器的计数值自加1,所述计数值的初始值为1;
所述处理子模块,具体用于在所述当前高位数据段与所述最低位数据段相邻时,对2的第二位长次幂执行模数为所述第二待处理数据的平方运算,并对得到的模平方运算结果与所述当前高位数据段,执行模数为所述第二待处理数据的模乘运算,得到所述数据段处理结果;
在所述当前高位数据段与所述最低位数据段之间的数据段的个数大于或等于1时,执行以下流程:
a、对2的第二位长次幂执行模数为所述第二待处理数据的平方运算,并对得到的模平方运算结果与所述当前高位数据段,执行模数为所述第二待处理数据的模乘运算,得到中间值;
b、对所述中间值与所述模平方运算结果,执行模数为所述第二待处理数据的模乘运算,得到模乘运算结果,将运算次数自加1,所述运算次数的初始值为0;
c、判断所述运算次数是否小于所述计数器的当前计数值,如果是,则将所述中间值更新为所述模乘运算结果,并返回b;否则,执行d;
d、确定所述模乘运算结果为所述数据段处理结果。
10.如权利要求6所述的装置,其特征在于,
所述生成模块,具体用于在所述第一位长是所述第二位长的整数倍时,将所述第一待处理数据划分为多个位长为所述第二位长的数据段;
当所述第一位长不是所述第二位长的整数倍时,在第一待处理数据的高位补零,得到补零数据,将所述补零数据划分为多个位长为所述第二位长的数据段,所述补零数据的位长为大于所述第一位长的所述第二位长的最小整数倍。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110317272.0A CN102411489B (zh) | 2011-10-18 | 2011-10-18 | 一种嵌入式系统中的数据处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110317272.0A CN102411489B (zh) | 2011-10-18 | 2011-10-18 | 一种嵌入式系统中的数据处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102411489A CN102411489A (zh) | 2012-04-11 |
CN102411489B true CN102411489B (zh) | 2014-06-04 |
Family
ID=45913578
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110317272.0A Active CN102411489B (zh) | 2011-10-18 | 2011-10-18 | 一种嵌入式系统中的数据处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102411489B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102831347B (zh) * | 2012-07-31 | 2015-04-15 | 飞天诚信科技股份有限公司 | 一种数据处理方法和装置 |
CN102929705B (zh) * | 2012-10-31 | 2015-06-17 | 飞天诚信科技股份有限公司 | 一种在嵌入式系统中快速生成坐标点的方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN2507064Y (zh) * | 2001-10-18 | 2002-08-21 | 深圳市中兴集成电路设计有限责任公司 | 一种蒙哥马利模乘器 |
CN1717653A (zh) * | 2002-11-29 | 2006-01-04 | 皇家飞利浦电子股份有限公司 | 带有查询表的乘法器 |
CN101216754A (zh) * | 2007-12-27 | 2008-07-09 | 广州杰赛科技股份有限公司 | 模乘运算的处理方法、数据加解密处理的方法、装置 |
CN101470598A (zh) * | 2007-12-28 | 2009-07-01 | 航天信息股份有限公司 | 提高大整数Montgomery模乘运算速度的方法 |
CN101697116A (zh) * | 2009-10-27 | 2010-04-21 | 北京飞天诚信科技有限公司 | 数据变换方法及装置 |
-
2011
- 2011-10-18 CN CN201110317272.0A patent/CN102411489B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN2507064Y (zh) * | 2001-10-18 | 2002-08-21 | 深圳市中兴集成电路设计有限责任公司 | 一种蒙哥马利模乘器 |
CN1717653A (zh) * | 2002-11-29 | 2006-01-04 | 皇家飞利浦电子股份有限公司 | 带有查询表的乘法器 |
CN101216754A (zh) * | 2007-12-27 | 2008-07-09 | 广州杰赛科技股份有限公司 | 模乘运算的处理方法、数据加解密处理的方法、装置 |
CN101470598A (zh) * | 2007-12-28 | 2009-07-01 | 航天信息股份有限公司 | 提高大整数Montgomery模乘运算速度的方法 |
CN101697116A (zh) * | 2009-10-27 | 2010-04-21 | 北京飞天诚信科技有限公司 | 数据变换方法及装置 |
Non-Patent Citations (4)
Title |
---|
一种基于分治法的快速多精度乘法;罗永龙等;《吉林化工学院学报》;20040108;第20卷(第2期);76-78 * |
刘宇东.基于数组的大整数运算的实现.《计算机与现代化》.2008,(第3期),21-22. |
基于数组的大整数运算的实现;刘宇东;《计算机与现代化》;20080521(第3期);21-22 * |
罗永龙等.一种基于分治法的快速多精度乘法.《吉林化工学院学报》.2004,第20卷(第2期),76-78. |
Also Published As
Publication number | Publication date |
---|---|
CN102411489A (zh) | 2012-04-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11042358B2 (en) | Secure computation system, secure computation method, secure computation apparatus, distribution information generation apparatus, and methods and programs therefor | |
CN105022961B (zh) | 一种计算机数据的保护方法及装置 | |
CN105988771B (zh) | 模逆运算器 | |
CN109284083A (zh) | 一种乘法运算装置及方法 | |
CN102521211B (zh) | 一种求解有限域上线性方程组的并行装置 | |
CN109814838A (zh) | 获取加解密运算中的中间结果组的方法、硬件装置和系统 | |
KR102399200B1 (ko) | 연상 메모리 내의 장비트 가산 및 장비트 승산을 위한 시스템 및 방법 | |
CN102411489B (zh) | 一种嵌入式系统中的数据处理方法及装置 | |
US6763366B2 (en) | Method for calculating arithmetic inverse over finite fields for use in cryptography | |
CN110069237B (zh) | 一种基于查找表的基-8除法器信号处理方法 | |
CN113721988A (zh) | 基于芯片的工作量证明方法和用于工作量证明的芯片 | |
KR101794807B1 (ko) | 몽고메리 역원 계산 장치 및 이를 이용한 몽고메리 역원 계산 방법 | |
Seo et al. | Consecutive operand-caching method for multiprecision multiplication, revisited | |
CN106547620B (zh) | 一种任务处理方法及装置 | |
CN108228135A (zh) | 一种运算多种超越函数的装置 | |
CN104731551B (zh) | 基于fpga进行除法操作的方法及装置 | |
CN114879934B (zh) | 一种高效的零知识证明加速器及方法 | |
CN102508632B (zh) | 一种在嵌入式系统中实现乘法运算的方法和装置 | |
CN103389965A (zh) | 一种实现sm2密码体制的大整数求乘逆方法 | |
CN209560522U (zh) | 获取加解密运算中的中间结果组的硬件装置 | |
US7068785B2 (en) | Table driven method for calculating arithmetic inverse for use in cryptography | |
CN105988772B (zh) | 模逆运算器 | |
JPS6155691B2 (zh) | ||
CN102929705B (zh) | 一种在嵌入式系统中快速生成坐标点的方法 | |
CN104750457B (zh) | 一种基于模幂运算的数据处理方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20230712 Address after: Room 1505, Building B, Huizhi Building, No. 9 Xueqing Road, Haidian District, Beijing, 100085 Patentee after: BEIJING HONGSI ELECTRONIC TECHNOLOGY Co.,Ltd. Address before: 100085 17th floor, block B, Huizhi building, No.9 Xueqing Road, Haidian District, Beijing Patentee before: Feitian Technologies Co.,Ltd. |
|
TR01 | Transfer of patent right |