发明名称 基于蒙哥马利模乘运算的数据加解密处理方法及装置
摘要 本发明公开了一种基于蒙哥马利模乘运算的数据加解密处理方法及装置,在对数据加密或解密时,将模幂运算转换为蒙哥马利模乘运算。所述蒙哥马利模乘运算分解成为外循环和内循环两部分,其中内循环主要做乘法的处理工作,而外循环主要做约减部分工作;在外循环和内循环运算结束后,对运算结果进行判断,若运算结果大于模数P,则将所述运算结果归约到小于P的范围内,否则直接输出所述运算结果。在硬件实现上,将内外循环设计成并行处理流水线架构,能够降低一次模乘运算所使用的时钟周期,提高整体模乘效率的效果,从而提高数据加解密的效率和速度。
申请公布号 CN102207847A 申请公布日期 2011.10.05
申请号 CN201110116480.4 申请日期 2011.05.06
申请人 广州杰赛科技股份有限公司 发明人 梁鹏飞;张永强
分类号 G06F7/72(2006.01)I 主分类号 G06F7/72(2006.01)I
代理机构 广州三环专利代理有限公司 44202 代理人 郝传鑫
主权项 1.一种基于蒙哥马利模乘运算的数据加解密处理方法,其特征在于,包括:获取由待处理的数据构成的模幂运算;将所述模幂运算转换为模乘运算,根据所述模乘运算的结果获取所述模幂运算的结果;根据所述模幂运算的结果获得处理后的数据;所述待处理的数据为待加密的明文,所述处理后的数据为密文;或者所述待处理的数据为待解密的密文,所述处理后的数据为明文;所述模乘运算的实现方法如下:输入被乘数A、乘数B、模数P和模数P的逆q,按照蒙哥马利模乘算法进行运算,输出模乘结果C;其中,C=AB2<sup>-n</sup>modP;以基底2<sup>k</sup>来表示整数,按照从数据的低位开始、每k位为一段的拆分方式,分别将A、B、P和q转换为m维数组,则<img file="FDA0000059627350000011.GIF" wi="510" he="61" /><img file="FDA0000059627350000012.GIF" wi="481" he="61" /><img file="FDA0000059627350000013.GIF" wi="509" he="61" /><img file="FDA0000059627350000014.GIF" wi="711" he="62" /><img file="FDA0000059627350000015.GIF" wi="478" he="61" />其中,k是处理器的运算字长;设置外循环变量i、内循环变量j、中间变量z、t<sub>i</sub>和s,所述蒙哥马利模乘运算的步骤如下:S01、令C为0;S02、令外循环变量i为0,开始外循环;S03、令z为0;S04、将c<sub>0</sub>加上a<sub>i</sub>与b<sub>0</sub>的乘积,再与q相乘后,求其对模2<sup>k</sup>的余数,将结果赋给t<sub>i</sub>;S05、令内循环变量j为0,开始内循环;S06、将c<sub>j</sub>加上a<sub>i</sub>与b<sub>j</sub>的乘积,再加上t<sub>i</sub>与p<sub>j</sub>的乘积,再加上z,将结果赋给s;S07、若内循环变量j不等于0,则求s对模2<sup>k</sup>的余数,将结果赋给c<sub>j-1</sub>;S08、令内循环变量j加1,重复内循环直到j等于m,退出内循环;S09、将s除以2<sup>k</sup>,将结果赋给z,再将z的值赋给c<sub>m-1</sub>;S10、令外循环变量i加1,重复外循环直到i等于m,退出外循环;S11、若C大于P,则将C与P的差值赋给C,否则C值不变;S12、返回C。
地址 510310 广东省广州市海珠区新港中路381号31分箱