本发明专利技术公开了一种基于蒙哥马利模乘的数据处理方法,属于计算机技术领域。本发明专利技术的方法包括:CPU初始化第五随机存储器,对第二随机存储器中内容按字为单位执行以下操作:1)调用乘加模块将第二随机存储器中内容的一个字与第一随机存储器的内容相乘后与第五随机存储器的内容相加,2)从1)的运算结果中提取一个字和常数寄存器的内容相乘,并将相乘结果的低位字写入第四寄存器,3)调用乘加模块将第四寄存器的内容与第三随机存储器的内容相乘后与第五随机存储器的内容相加;最后根据第三存储器中内容长度输出第五随机存储器的内容。
【技术实现步骤摘要】
本专利技术属于计算机
,尤其涉及。技术背景在目前的大整数模乘算法的硬件实现中,蒙哥马利(Montgomery)模乘算法被认 为是最高效的,也是最适合用硬件实现的一种算法。目前,实现大整数模乘的模乘器的设计中大多采用Montgomery算法及其变形,现 有的模乘器的设计是对中间结果进行储存,下一循环需要用到时再读取,需要对存储设备 进行频繁的读写,而对存储设备的读写是需要花费时钟周期的,从而影响了模乘器的工作 效率,降低基于蒙哥马利模乘的数据处理速率,比如现有的Montgomery算法存在的在硬件 上实现起来运算速度慢的缺陷,会导致RSA、ECC等加密算法的效率低,速度低。
技术实现思路
为解决现有技术中存在的问题,本专利技术提出了一种高效的基于蒙哥马利模乘的数 据处理方法。本专利技术采取的技术方案是,第一随机存 储器用于存储乘数,第二随机存储器用于存储被乘数,第三随机存储器用于存储模数,所述 方法包括以下步骤步骤1:CPU初始化第五随机存储器,初始化第一偏移量、第二偏移量;其中,所述 第一偏移量用于表示所述第二随机存储器中相对于基地址的偏移地址,所述第二偏移量用 于表示所述第五随机存储器中相对于基地址的偏移地址。步骤2 =CPU根据第一偏移量从所述第二随机存储器中读取一个字写入第一运算 寄存器;步骤3 =CPU调用乘加模块执行第一运算寄存器的内容与所述第一随机存储器的 内容相乘后与所述第五随机存储器的内容相加的运算,根据第二偏移量将得到的运算结果 从低位到高位写入所述第五随机存储器;步骤4 =CPU根据第二偏移量从所述第五随机存储器中读取一个字写入第二运算 寄存器,将所述第二运算寄存器的内容和常数寄存器的内容相乘,并将相乘结果的低位字 写入第四寄存器;步骤5 =CPU读取所述第四寄存器、所述第三随机存储器和所述第五随机存储器的 内容,调用乘加模块执行所述第四寄存器的内容与所述第三随机存储器的内容相乘后与所 述第五随机存储器的内容相加的运算,将第二偏移量加1,根据第二偏移量将得到的运算结 果从低位到高位写入所述第五随机存储器;步骤6 :CPU判断第一偏移量是否等于预设步长,是则执行步骤8,否则执行步骤 7 ;步骤7 :第一偏移量加I,返回执行步骤2 ;步骤8 =CPU读取所述第五随机存储器和所述第三随机存储器的内容,判断所述第 五随机存储器的内容的值是否大于等于第三随机存储器的内容的值,是则执行步骤9,否则 执行步骤10 ;步骤9 :CPU用读取到的所述第五随机存储器的内容与第三随机存储器的内容相 减,并根据第二偏移量将相减结果从低位到高位写入所述第五随机存储器,执行步骤10 ;步骤10 =CPU输出所述第五随机存储器的内容。所述步骤2具体为读取从第二随机存储器的基地址起向左移动第一偏移量后对 应的字写入第一运算寄存器。所述乘加模块用于实现CPU支持的乘法和加法运算。步骤3所述CPU调用乘加模块执行第一运算寄存器的内容与所述第一随机存储 器的内容相乘后与所述第五随机存储器的内容相加的运算具体包括以下步骤步骤201 CPU判断第一偏移量是否为0,是则执行步骤210,否则执行步骤202 ;步骤202 :初始化进位寄存器,初始化索引变量;步骤203 =CPU根据索引变量从第一随机存储器和第五随机存储器中各获取一个 字分别写入第三运算寄存器和第四运算寄存器;步骤204 :CPU将第一运算寄存器的内容和第三运算寄存器的内容相乘,相乘结果 与第四运算寄存器的内容相加得到第一计算结果;步骤205 =CPU将第一计算结果与进位寄存器的内容相加得到第二计算结果;步骤206 =CPU将第二计算结果的高位起第一个字写入进位寄存器,其余字根据索 引变量写入第五随机存储器;步骤207 =CPU判断索引变量是否等于预设字长,是则执行步骤209,否则执行步骤 208 ;步骤208 :索引变量加1,然后返回执行步骤203 ;步骤209 =CPU读取进位寄存器的内容,并根据索引变量将进位寄存器的内容写入 第五随机存储器;步骤210 :CPU输出第五随机存储器的内容作为步骤3所述运算结果。所述步骤203具体为从第一随机存储器和第五随机存储器中获取与当前索引变 量对应的存储位置上的字分别写入第三运算寄存器和第四运算寄存器。步骤206所述其余字根据索引变量写入第五随机寄存器具体为CPU将第二计算 结果中除高位起第一个字之外的其余字按照从低位到高位的顺序从第五随机存储器中与 当前索引变量对应的存储位置开始依次写入。步骤3和步骤5所述根据第二偏移量将得到的运算结果从低位到高位写入第五随 机存储器具体为将运算结果按照从低位到高位的顺序从第五随机存储器中基地址起向左 移第二偏移量的位置开始依次写入。步骤4所述CPU根据第二偏移量从第五随机存储器中读取一个字写入第二运算寄 存器具体为读取从第五随机存储器的基地址起向左移动第二偏移量后对应的字写入第二 运算寄存器。步骤5所述调用乘加模块执行所述第四寄存器的内容与所述第三随机存储器的 内容相乘后与所述第五随机存储器的内容相加的运算,具体包括以下步骤步骤301 =CPU判断第一偏移量是否为0,是则执行步骤310,否则执行步骤302 ;步骤302 :初始化进位寄存器,初始化索引变量;步骤303 =CPU根据索引变量从第三随机存储器和第五随机存储器中各获取一个字分别写入第三运算寄存器和第四运算寄存器;步骤304 :CPU将第三运算寄存器的内容与第四寄存器的内容相乘,相乘结果与第四运算寄存器的内容相加得到第三计算结果;步骤305 :CPU将第三计算结果与进位寄存器的内容相加得到第四计算结果;步骤306 :CPU将第四计算结果的高位起第一个字 写入进位寄存器,其余字根据索引变量写入第五随机存储器;步骤307 =CPU判断索引变量是否等于预设字长,是则执行步骤309,否则执行步骤 308 ;步骤308 :索引变量加1,然后返回执行步骤303 ;步骤309 =CPU读取进位寄存器的内容,并根据索引变量将进位寄存器的内容写入第五随机存储器;步骤310 :CPU输出第五随机存储器的内容作为步骤5所述运算结果。步骤9所述根据第二偏移量将相减结果从低位到高位写入第五随机存储器具体为将相减结果按照从低位到高位的顺序从第五随机存储器中基地址起向左移第二偏移量的位置开始依次写入。本专利技术提供的一种高效的基于蒙哥马利模乘的数据处理方法,能够达到降低系统运行的周期和通过提高模乘效率提高数据处理速率的效果,尤其使其应用于数据加密算法中时,能够提高数据加解密的效率和速度。附图说明图1是本专利技术提出的流程图2是图1中步骤103所述调用乘加模块进行运算过程示意图3是图1中步骤106所述调用乘加模块进行运算的过程示意图。具体实施方式为使本专利技术的目的、技术方案和优点更加清楚,下面将结合附图对本专利技术实施方式作进一步地详细描述。本实施例提供了,以计算机的CPU处理器对数据进行的模乘运算处理过程为例进行介绍,本实施例中,第一随机存储器用于存储模乘运算中的乘数,第二随机存储器用于存储模乘运算中的被乘数,第三随机存储器用于存储模乘运算中的模数,第四寄存器用于存储中间操作数,第五随机存储器用于存储模乘运算的运算结果和模乘运算过程中的乘加模块的运算结果,常本文档来自技高网...
【技术保护点】
一种基于蒙哥马利模乘的数据处理方法,其特征在于:第一随机存储器用于存储乘数,第二随机存储器用于存储被乘数,第三随机存储器用于存储模数,所述方法包括:步骤1:CPU初始化第五随机存储器,初始化第一偏移量、第二偏移量;步骤2:CPU根据第一偏移量从所述第二随机存储器中读取一个字写入第一运算寄存器;步骤3:CPU调用乘加模块执行第一运算寄存器的内容与所述第一随机存储器的内容相乘后与所述第五随机存储器的内容相加的运算,根据第二偏移量将得到的运算结果从低位到高位写入所述第五随机存储器;步骤4:CPU根据第二偏移量从所述第五随机存储器中读取一个字写入第二运算寄存器,将所述第二运算寄存器的内容和常数寄存器的内容相乘,并将相乘结果的低位字写入第四寄存器;步骤5:CPU读取所述第四寄存器、所述第三随机存储器和所述第五随机存储器的内容,调用乘加模块执行所述第四寄存器的内容与所述第三随机存储器的内容相乘后与所述第五随机存储器的内容相加的运算,将第二偏移量加1,根据第二偏移量将得到的运算结果从低位到高位写入所述第五随机存储器;步骤6:CPU判断第一偏移量是否等于预设步长,是则执行步骤8,否则执行步骤7;步骤7:第一偏移量加1,返回执行步骤2;步骤8:CPU读取所述第五随机存储器和所述第三随机存储器的内容,判断所述第五随机存储器的内容的值是否大于等于第三随机存储器的内容的值,是则执行步骤9,否则执行步骤10;步骤9:CPU用读取到的所述第五随机存储器的内容与第三随机存储器的 内容相减,并根据第二偏移量将相减结果从低位到高位写入所述第五随机存储器,执行步骤10;步骤10:CPU输出所述第五随机存储器的内容。...
【技术特征摘要】
【专利技术属性】
技术研发人员:陆舟,于华章,
申请(专利权)人:飞天诚信科技股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。