一种在嵌入式系统中实现乘法运算的方法和装置制造方法及图纸

技术编号:7446133 阅读:223 留言:0更新日期:2012-06-20 12:58
本发明专利技术公开了一种在嵌入式系统中实现乘法运算的方法和装置,涉及密码学领域。解决了现有技术执行乘法运算的运算速度比较低的问题。所述方法包括:(1)获取第一待处理数据和第二待处理数据;(2)判断比特位位数之和是否大于运算装置支持的比特位位数;(3)生成第三待处理数据,生成第四待处理数据;(4)生成第一参数;(5)将最低位对齐;(6)将第三待处理数据进行划分;(7)生成第二参数,并生成第三参数;(8)得到第一数据;(9)得到第二数据;(10)得到第三数据;(11)替换当前迭代数据;(12)判断当前偏移单元是否为最后一个单元;(13)将偏移单元指向下一个单元,返回(8);(14)判断当前迭代数据是否小于第一参数;(15)将当前迭代数据自减第一参数;(16)存储或输出当前迭代数据。

【技术实现步骤摘要】

本专利技术涉及密码学领域,尤其涉及一种在嵌入式系统中实现乘法运算的方法和装置
技术介绍
许多已知的计算机算法都需要进行乘法运算,如公钥加密等算法。现有技术中可以通过中央处理器(Central Processing Unit,CPU)实现乘法运算。但是当乘法运算中的数据为大数时,CPU执行乘法运算时的运算速度比较低。
技术实现思路
本专利技术的实施例提供一种在嵌入式系统中实现乘法运算的方法和装置,能够提高乘法运算的运算速度。一方面,提供一种在嵌入式系统中实现乘法运算的方法,包括(1).接收到乘法运算指令时,获取所述乘法运算指令中第一待处理数据和第二待处理数据;(2).判断所述第一待处理数据的比特位位数与所述第二待处理数据的比特位位数之和是否大于运算装置支持的比特位位数;如果是,返回错误信息;如果否,执行(3);(3).对所述第一待处理数据进行补位,生成比特位位数与所述运算装置支持的比特位位数相同的第三待处理数据,对所述第二待处理数据的进行补位,生成比特位位数与所述运算装置支持的比特位位数相同的第四待处理数据;(4).根据所述运算装置支持的比特位位数生成第一参数;(5).将所述第三待处理数据的最低位、所述第四待处理数据的最低位分别与所述第一参数的最低位对齐;(6).将所述第三待处理数据按预设位长由最低位到最高位进行划分;(J).根据所述预设位长对应的比特位位数生成第二参数,并根据所述第一参数和所述第二参数生成第三参数;(8).将当前偏移单元中的数据和所述第四待处理数据的乘积与当前迭代数据相加,得到第一数据;偏移单元的初始单元为对所述第三待处理数据进行划分得到的第一个单元,迭代数据的初始值为0 ;(9).将所述第二参数作为模数,对所述第一数据与所述第三参数进行模乘运算, 得到第二数据;(10).将所述第一参数和所述第二数据的乘积与所述第一数据进行加法运算,得到第三数据;(11).将所述第三数据右移所述预设位长,并将移位后得到的数据替换当前迭代5数据;(12).判断当前偏移单元是否为最后一个单元;如果是,执行(14);如果否,执行(13);(13).将偏移单元指向当前偏移单元的下一个单元,返回(8);(14).判断当前迭代数据是否小于所述第一参数;如果是,执行(16);如果否,执行(15);(15).将当前迭代数据自减所述第一参数;(16).存储或输出指示所述第一待处理数据与所述第二待处理数据乘积的当前迭代数据。其中,所述对所述第一待处理数据进行补位,生成比特位位数与所述运算装置支持的比特位位数相同的第三待处理数据,对所述第二待处理数据的进行补位,生成比特位位数与所述运算装置支持的比特位位数相同的第四待处理数据,包括在所述第一待处理数据的最高位前补零生成第三待处理数据,在所述第二待处理数据的最高位前补零生成第四待处理数据,所述第三待处理数据与所述第四待处理数据的比特位位数与所述运算装置支持的比特位位数相同。其中,所述根据所述运算装置支持的比特位位数生成第一参数,包括生成各个比特位均置1的第一参数,所述第一参数的比特位位数与所述运算装置支持的比特位位数相同。其中,所述预设位长对应的比特位位数,具体为能整除所述运算装置支持的比特位位数的整数。其中,所述根据所述预设位长对应的比特位位数生成第二参数,包括以2为底数,以所述预设位长对应的比特位位数为幂数生成所述第二参数。其中,所述根据所述第一参数和所述第二参数生成第三参数,包括生成所述第二参数的值减去所述第一参数关于所述第二参数的乘法逆元的差值;生成值与所述差值相同的第三参数。另一方面,提供一种在嵌入式系统中实现乘法运算的装置,包括待处理数据获取模块,用于接收到乘法运算指令时,获取所述乘法运算指令中第一待处理数据和第二待处理数据;第一判断模块,用于判断所述第一待处理数据的比特位位数与所述第二待处理数据的比特位位数之和是否大于运算装置支持的比特位位数;所述补位模块,用于在所述第一判断模块判断结果为是时对所述第一待处理数据进行补位,生成比特位位数与所述运算装置支持的比特位位数相同的第三待处理数据,对所述第二待处理数据的进行补位,生成比特位位数与所述运算装置支持的比特位位数相同的第四待处理数据;第一参数生成模块,用于根据所述运算装置支持的比特位位数生成第一参数;对齐模块,用于将所述第三待处理数据的最低位、所述第四待处理数据的最低位分别与所述第一参数的最低位对齐;划分模块,用于将所述第三待处理数据按预设位长由最低位到最高位进行划分;6第二参数生成模块,用于根据所述预设位长对应的比特位位数生成第二参数,并根据所述第一参数和所述第二参数生成第三参数;第一数据生成模块,用于将当前偏移单元中的数据和所述第四待处理数据的乘积与当前迭代数据相加,得到第一数据;所述偏移单元的初始单元为所述第一单元,所述迭代数据的初始值为0 ;第二数据生成模块,用于将所述第二参数作为模数,对所述第一数据与所述第三参数进行模乘运算,得到第二数据;第三数据处理模块,用于将所述第一参数和所述第二数据的乘积与所述第一数据进行加法运算,得到第三数据;数据替换模块,用于将所述第三数据右移所述预设位长后得到的数据替换当前迭代数据;第二判断模块,用于判断当前偏移单元是否为最后一个单元;所述移位模块,用于在所述第二判断模块判断结果为否时将偏移单元指向当前偏移单元的下一个单元,返回第一数据生成模块;所述第三判断模块,用于在所述第二判断模块判断结果为是时判断当前迭代数据是否小于所述第一参数;所述自减模块,用于在所述第三判断模块判断结果为否时将当前迭代数据自减所述第一参数;所述输出模块,用于在所述第三判断模块判断结果为是时存储或输出指示所述第一待处理数据与所述第二待处理数据乘积的当前迭代数据。其中,所述补位模块,包括补位子模块,用于在所述第一待处理数据的最高位前补零生成第三待处理数据, 在所述第二待处理数据的最高位前补零生成第四待处理数据,所述第三待处理数据与所述第四待处理数据的比特位位数与所述运算装置支持的比特位位数相同。其中,所述第一参数生成模块,包括第一生成子模块,用于生成各个比特位均置1的第一参数,所述第一参数的比特位位数与所述运算装置支持的比特位位数相同。其中,所述预设位长对应的比特位位数,具体为能整除所述运算装置支持的比特位位数的整数。其中,所述第二参数生成模块,包括第二生成子模块,以2为底数,以所述预设位长对应的比特位位数为幂数生成第二参数的值。其中,所述第二参数生成模块,包括第三生成子模块,用于生成所述第二参数的值减去所述第一参数关于所述第二参数的乘法逆元的差值;第四生成子模块,用于生成值与所述差值相同的第三参数。本专利技术实施例提供的在嵌入式系统中实现乘法运算的方法和装置,在乘法运算指令中第一待处理数据比特位位数和第二待处理数据的比特位位数之和小于运算装置支持的比特位位数时,可以首先将该第一待处理数据和第二待处理数据进行补位,得到第三待处理数据和第四待处理数据;然后在第三待处理数据的最低位、第四待处理数据的最低位分别与第一参数的最低位对齐时,将第三待处理数据按预设位长进行划分,并分别生成第一参数、第二参数和第三参数;最后通过该第一参数、第二参数和第三参数对当前偏移单元中的数据和第四待处理数据进行处理,直到当前偏本文档来自技高网...

【技术保护点】

【技术特征摘要】

【专利技术属性】
技术研发人员:陆舟于华章
申请(专利权)人:飞天诚信科技股份有限公司
类型:发明
国别省市:

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

1
相关领域技术