发明名称 一种在嵌入式系统中实现大数预计算的方法
摘要 本发明公开一种在嵌入式系统中实现大数预计算的方法,根据模长的数据格式以及模长对应的二进制数的各个数据位的取值,调用取模模块、模加模块和蒙哥马利模乘器进行迭代运算,能够在模长为任意值时,得到大数预计算结果,从而提高了数据处理速度。
申请公布号 CN103207770A 申请公布日期 2013.07.17
申请号 CN201310132081.6 申请日期 2013.04.16
申请人 飞天诚信科技股份有限公司 发明人 陆舟;于华章
分类号 G06F7/50(2006.01)I;G06F7/523(2006.01)I 主分类号 G06F7/50(2006.01)I
代理机构 代理人
主权项 一种在嵌入式系统中实现大数预计算的方法,其特征在于,包括以下步骤:S1、读取第一寄存器中的数据,将读取到的数据写入到第一随机存储器;读取第二寄存器中的数据,将读取到的数据写入到第二随机存储器;所述第一寄存器用于存储第一数据,所述第二寄存器用于存储第二数据,所述第二数据的取值为以2为底数,以第三数据的取值为指数的幂,所述第三数据为整数;S2、调用取模模块,对所述第一随机存储器和所述第二随机存储器中的数据进行运算,将运算结果分别写入到第三寄存器和第四寄存器;所述取模模块用于将所述第一随机存储器中的数据作为模数,将所述第二随机存储器中的数据作为被模数,进行取模运算;S3、读取所述第三寄存器中的数据,将读取到的数据分别写入到第三随机存储器和第四随机存储器;读取所述第一寄存器中的数据,将读取到的数据写入到第五随机存储器;S4、调用模加模块,对所述第三随机存储器、所述第四随机存储器和所述第五随机存储器中的数据进行运算,使用运算结果更新所述第三寄存器中的数据;所述模加模块用于将所述第三随机存储器中的数据和所述第四随机存储器中的数据作为加数,将所述第五随机存储器中的数据作为模数,进行模加运算;S5、根据第五寄存器中的数据,从第六寄存器中读取位于最低位的数据,将读取到的数据作为当前位数据,所述第五寄存器中的数据的初始值为预设值,所述第六寄存器用于存储所述第三数据;S6、对所述当前位数据的取值进行判断,如果所述当前位数据的取值为零,则执行步骤S7;如果所述当前位数据的取值为1,则执行步骤S10;S7、读取所述第三寄存器中的数据,将读取到的数据分别写入到第六随机存储器和第七随机存储器;读取所述第一寄存器中的数据,将读取到的数据写入到第八随机存储器;S8、调用蒙哥马利模乘器,对所述第六随机存储器、所述第七随机存储器和所述第八随机存储器中的数据进行模乘运算,使用运算结果更新所述第三寄存器中的数据;所述蒙哥马利模乘器用于将所述第六随机存储器中的数据、所述第七随机存储器中的数据和所述第八随机存储器中的数据分别作为第一输入参数、第二输入参数和第三输入参数,进行模乘运算;S9、对所述第五寄存器中的数据进行更新,根据更新后的所述第五寄存器中的数据,从所述第六寄存器中读取比所述当前位数据高一位的数据,将读取到数据作为更新后的当前位数据,并返回步骤S6; S10、读取所述第四寄存器中的数据,使用读取到的数据更新所述第六随机存储器中的数据;读取所述第三寄存器中的数据,使用读取到的数据更新所述第七随机存储器中的数据;读取所述第一寄存器中的数据,使用读取到的数据更新所述第八随机存储器中的数据;S11、调用所述蒙哥马利模乘器,对所述第六随机存储器、所述第七随机存储器和所述第八随机存储器中的数据进行模乘运算,使用运算结果更新所述第四寄存器中的数据;S12、判断所述当前位数据是否为所述第六寄存器中位于最高位的数据,如果是,则执行步骤S13;否则,返回步骤S7;S13、将所述第四寄存器中的数据输出。
地址 100085 北京市海淀区学清路9号汇智大厦B楼17层