• 四川郎酒股份有限公司获第十二届人民企业社会责任奖年度环保奖 2019-05-13
  • 银保监会新规剑指大企业多头融资和过度融资 2019-05-12
  • 韩国再提4国联合申办世界杯 中国网友无视:我们自己来 2019-05-11
  • 中国人为什么一定要买房? 2019-05-11
  • 十九大精神进校园:风正扬帆当有为 勇做时代弄潮儿 2019-05-10
  • 粽叶飘香幸福邻里——廊坊市举办“我们的节日·端午”主题活动 2019-05-09
  • 太原设禁鸣路段 设备在测试中 2019-05-09
  • 拜耳医药保健有限公司获第十二届人民企业社会责任奖年度企业奖 2019-05-08
  • “港独”没出路!“梁天琦们”该醒醒了 2019-05-07
  • 陈卫平:中国文化内涵包含三方面 文化复兴表现在其中 2019-05-06
  • 人民日报客户端辟谣:“合成军装照”产品请放心使用 2019-05-05
  • 【十九大·理论新视野】为什么要“建设现代化经济体系”?   2019-05-04
  • 聚焦2017年乌鲁木齐市老城区改造提升工程 2019-05-04
  • 【专家谈】上合组织——构建区域命运共同体的有力实践者 2019-05-03
  • 【华商侃车NO.192】 亲!楼市火爆,别忘了买车位啊! 2019-05-03
    • / 19
    • 下载费用:30 金币  

    重庆时时彩后二玩法稳赚: 基于蒙哥马利模乘运算的数据加解密处理方法及装置.pdf

    关 键 词:
    基于 马利 运算 数据 解密 处理 方法 装置
      专利查询网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    摘要
    申请专利号:

    CN201110116480.4

    申请日:

    2011.05.06

    公开号:

    CN102207847A

    公开日:

    2011.10.05

    当前法律状态:

    授权

    有效性:

    有权

    法律详情: 授权|||实质审查的生效IPC(主分类):G06F 7/72申请日:20110506|||公开
    IPC分类号: G06F7/72 主分类号: G06F7/72
    申请人: 广州杰赛科技股份有限公司
    发明人: 梁鹏飞; 张永强
    地址: 510310 广东省广州市海珠区新港中路381号31分箱
    优先权:
    专利代理机构: 广州三环专利代理有限公司 44202 代理人: 郝传鑫
    PDF完整版下载: PDF下载
    法律状态
    申请(专利)号:

    CN201110116480.4

    授权公告号:

    102207847B||||||

    法律状态公告日:

    2013.12.04|||2011.11.23|||2011.10.05

    法律状态类型:

    授权|||实质审查的生效|||公开

    摘要

    本发明公开了一种基于蒙哥马利模乘运算的数据加解密处理方法及装置,在对数据加密或解密时,将模幂运算转换为蒙哥马利模乘运算。所述蒙哥马利模乘运算分解成为外循环和内循环两部分,其中内循环主要做乘法的处理工作,而外循环主要做约减部分工作;在外循环和内循环运算结束后,对运算结果进行判断,若运算结果大于模数P,则将所述运算结果归约到小于P的范围内,否则直接输出所述运算结果。在硬件实现上,将内外循环设计成并行处理流水线架构,能够降低一次模乘运算所使用的时钟周期,提高整体模乘效率的效果,从而提高数据加解密的效率和速度。

    权利要求书

    权利要求书
    1.  一种基于蒙哥马利模乘运算的数据加解密处理方法,其特征在于,包括:
    获取由待处理的数据构成的模幂运算;
    将所述模幂运算转换为模乘运算,根据所述模乘运算的结果获取所述模幂运算的结果;
    根据所述模幂运算的结果获得处理后的数据;
    所述待处理的数据为待加密的明文,所述处理后的数据为密文;或者所述待处理的数据为待解密的密文,所述处理后的数据为明文;
    所述模乘运算的实现方法如下:
    输入被乘数A、乘数B、模数P和模数P的逆q,按照蒙哥马利模乘算法进行运算,输出模乘结果C;其中,C=AB2-nmodP;
    以基底2k来表示整数,按照从数据的低位开始、每k位为一段的拆分方式,分别将A、B、P和q转换为m维数组,则其中,k是处理器的运算字长;
    设置外循环变量i、内循环变量j、中间变量z、ti和s,所述蒙哥马利模乘运算的步骤如下:
    S01、令C为0;
    S02、令外循环变量i为0,开始外循环;
    S03、令z为0;
    S04、将c0加上ai与b0的乘积,再与q相乘后,求其对模2k的余数,将结果赋给ti;
    S05、令内循环变量j为0,开始内循环;
    S06、将cj加上ai与bj的乘积,再加上ti与pj的乘积,再加上z,将结果赋给s;
    S07、若内循环变量j不等于0,则求s对模2k的余数,将结果赋给cj-1;
    S08、令内循环变量j加1,重复内循环直到j等于m,退出内循环;
    S09、将s除以2k,将结果赋给z,再将z的值赋给cm-1;
    S10、令外循环变量i加1,重复外循环直到i等于m,退出外循环;
    S11、若C大于P,则将C与P的差值赋给C,否则C值不变;
    S12、返回C。

    2.  一种蒙哥马利模乘运算装置,其特征在于,所述装置的运算字长为k,包括:
    输入控制器,用于输入被乘数A、乘数B、模数P和模数P的逆q;按照从数据的低位开始、每k位为一段的拆分方式,将A、B、P和q转换为4个m维数组;
    数据存储器,用于存储已转换成m维数组的A、B、P和q;
    时序控制器,用于控制所述数据存储器的数据输入和输出;
    数据通路,用于从所述数据存储器中输入A、B、P和q,按照蒙哥马利模乘算法进行运算,输出模乘结果C;其中,C=AB2-nmodP;
    输出单元,用于对所述数据通路的输出波形进行整形,并作为最终模乘输入的接口;
    以基底2k来表示整数,按照从数据的低位开始、每k位为一段的拆分方式,分别将A、B、P和q转换为m维数组,则设置外循环变量i、内循环变量j、中间变量z、ti和s,则所述数据通路实现蒙哥马利模乘运算的步骤如下:
    S01、令C为0;
    S02、令外循环变量i为0,开始外循环;
    S03、令z为0;
    S04、将c0加上ai与b0的乘积,再与q相乘后,求其对模2k的余数,将结果赋给ti;
    S05、令内循环变量j为0,开始内循环;
    S06、将cj加上ai与bj的乘积,再加上ti与pj的乘积,再加上z,将结果赋给s;
    S07、若内循环变量j不等于0,则求s对模2k的余数,将结果赋给cj-1;
    S08、令内循环变量j加1,重复内循环直到j等于m,退出内循环;
    S09、将s除以2k,将结果赋给z,再将z的值赋给cm-1;
    S10、令外循环变量i加1,重复外循环直到i等于m,退出外循环;
    S11、若C大于P,则将C与P的差值赋给C,否则C值不变;
    S12、返回C。

    3.  如权利要求2所述的蒙哥马利模乘运算装置,其特征在于,所述数据存储器包括:
    A寄存器,用于存储被乘数A;
    B寄存器,用于存储乘数B;
    P寄存器,用于存储模数P;
    Q寄存器,用于存储模数P的逆,即数据q;
    其中,B寄存器和P寄存器采用串入并出的模式,A寄存器和Q寄存器采用串进串出的模式,由所述时序控制器控制四个寄存器的数据输入和输出。

    4.  如权利要求3所述的蒙哥马利模乘运算装置,其特征在于,所述数据通路包括1个PU_A运算单元、m-1个PU_B运算单元和1个约减运算单元;
    所述PU_A运算单元用于实现蒙哥马利模乘运算外循环部分中的ti=(c0+aib0)qmod2k的运算;并且,当内循环变量j等于0时,实现蒙哥马利模乘运算内循环部分中的s=(c0+aib0+tip0+z)的运算;
    所述PU_B运算单元用于实现蒙哥马利模乘运算内循环部分中的当j=1到j=m-1时,s=(cj+aibj+tipj+z)的运算;
    所述约减运算单元用于蒙哥马利模乘运算的内外循环全部结束后,对循环运算结果进行判断,若所述运算结果大于模数P,则将所述运算结果归约到小于P的范围内,否则直接输出所述运算结果。

    5.  如权利要求4所述的蒙哥马利模乘运算装置,其特征在于,所述PU_A运算单元包括:
    AI_IN输入端,用于从所述A寄存器中读入被乘数A;
    B_IN输入端,用于从所述B寄存器中读入乘数B;
    Q_IN输入端,用于从所述Q寄存器中读入数据q;
    P_IN输入端,用于从所述P寄存器中读入模数P;
    CJ_IN输入端,用于输入从PU_B运算单元反馈的中间数据;
    “0”输入端,用于输入0;
    当外循环变量i=0时,所述PU_A运算单元从所述“0”输入端输入0,计算获得c0=0;
    当外循环变量i>0时,所述PU_A运算单元从所述CJ_IN输入端输入从PU_B运算单元反馈的中间数据,作为后续计算的输入;
    所述PU_A运算单元还包括TI_OUT输出端、Z_OUT输出端和AI_OUT输出端,分别输出中间变量ti、z和ai,作为下一级PU_B运算单元的输入。

    6.  如权利要求5所述的蒙哥马利模乘运算装置,其特征在于,所述m-1个PU_B运算单元依次连接成运算链,且第1个PU_B运算单元与所述PU_A运算单元相连接;
    所述PU_B运算单元包括:
    TI_IN输入端,用于输入所述PU_A运算单元输出的中间变量ti;
    Z_IN输入端,用于输入所述PU_A运算单元输出的中间变量z;
    AI_IN输入端,用于输入上一级运算单元输出的中间变量ai;
    CJ_IN输入端,用于输入上一级PU_B运算单元输出的中间变量cj;当j=1时,C=0;当j>1时,C等于所述CJ_IN输入端输入的数值;
    所述PU_B运算单元还包括TI_OUT输出端、Z_OUT输出端、AI_OUT输出端和CJ_OUT输出端,分别输出中间变量ti、z、ai和cj,作为下一级PU_B运算单元的输入。

    7.  如权利要求6所述的蒙哥马利模乘运算装置,其特征在于,所述约减运算单元包括比较??楹图醴??;所述比较??橛糜诮鯬U_A运算单元、PU_B运算单元的运算结果C和模数P作比较,并输出比较结果,作为减法??榈目刂菩藕?;当所述运算结果C大于模数P时,控制所述减法??榻蠧减P的操作。

    8.  一种基于蒙哥马利模乘运算的数据加解密处理装置,其特征在于,包括:
    数据输入???,用于获取由待处理的数据构成的模幂运算;
    模乘处理???,将所述模幂运算转换为模乘运算,根据所述模乘运算的结果获取所述模幂运算的结果;
    数据输出???,根据所述模幂运算的结果获得处理后的数据;
    所述待处理的数据为待加密的明文,所述处理后的数据为密文;或者所述待处理的数据为待解密的密文,所述处理后的数据为明文;
    所述模乘处理??榘ㄈ缛ɡ?~7任一项所述的蒙哥马利模乘运算装置,用于实现蒙哥马利模乘运算。

    说明书

    说明书基于蒙哥马利模乘运算的数据加解密处理方法及装置
    技术领域
    本发明涉及计算机技术领域,尤其涉及一种基于蒙哥马利模乘运算的数据加解密处理方法及装置。
    背景技术
    随着无线网络通信技术的迅速发展,人们对信息安全的要求不断提高,相关的网络安全协议不断产生,如国家无线局域网委员会提出的WAPI(Wireless LAN Authentication and Privacy Infrastructure,无线局域网鉴别和保密基础结构)网络安全协议;网络安全方面的产品也不断推出;因此,开发一种高效而安全的加密算法是势在必行的。
    目前所流行的加密算法有对称加密算法和非对称加密算法,而在非对称加密算法当中,RSA和ECC加密算法的应用普及率最高。在WAPI无线局域网技术文件里面就有提到,WAPI的安全协议采用的就是ECC(椭圆曲线密码算法)加密算法。ECC加密算法中的底层运算基本上是依靠模乘来完成的,而模乘的运算速度和效率也决定了整个ECC加密算法的效率和速度。
    在目前的大整数模乘算法的硬件实现中,蒙哥马利(Montgomery)模乘算法被认为是最高效的,也是最适合用硬件实现的一种算法。Montgomery算法设计了一个剩余类系统,将普通模乘的计算过程转换到Montgomery剩余类(余数域)里面进行,在这个剩余类里面,所有的数的计算过程中产生的大数都会被规约到剩余类里,它的计算会显得更加简洁,特别是在硬件实现上面,能够提供更加迅速的计算速度和更简单的硬件结构。Montgomery算法理论的基础是下面的定理1。
    定理1:假设N和R是互素的两个整数,N′=-N-1 modR,则对于所有的整数T,当M=T×N′modR时,是一个整数,而且满足:其中N′是N的逆,T是乘数A和被乘数B的乘积。
    为了让Montgomery模乘算法在实际应用中(软件、硬件)能更方便地使用,可以根据计算机或者芯片精度的要求,把每个大数分解成为2n为基底的数,按照字节的处理方式来实现Montgomery算法。
    设q是2为基底的数,利用q来表示多精度的大数A如下:
    A=an-1qn-1+an-2qn-2++a1q+a0
    根据上述定理1所推导的Montgomery模乘算法转换成代码在FPGA(Field-Programmable Gate Array,现场可编程门阵列)上实现时,不具备并行运算的可能性,几个乘法的实现形式是串行进行的,它们的运算结果都需要依赖前面计算所得的值,因此在FPGA上实现起来的运算速度慢,导致整个ECC加密算法的效率低,速度低。
    发明内容
    本发明所要解决的技术问题是,提供一种高效的蒙哥马利模乘算法,以达到降低系统运行的周期、提高整体模乘效率的效果,使其应用于数据加密算法中时,能够提高数据加解密的效率和速度。
    为解决以上技术问题,本发明实施例提供一种基于蒙哥马利模乘运算的数据加解密处理方法,包括:
    获取由待处理的数据构成的模幂运算;
    将所述模幂运算转换为模乘运算,根据所述模乘运算的结果获取所述模幂运算的结果;
    根据所述模幂运算的结果获得处理后的数据;
    所述待处理的数据为待加密的明文,所述处理后的数据为密文;或者所述待处理的数据为待解密的密文,所述处理后的数据为明文;
    所述模乘运算的实现方法如下:
    输入被乘数A、乘数B、模数P和模数P的逆q,按照蒙哥马利模乘算法进行运算,输出模乘结果C;其中,C=AB2-nmodP;
    以基底2k来表示整数,按照从数据的低位开始、每k位为一段的拆分方式,分别将A、B、P和q转换为m维数组,则其中,k是处理器的运算字长;
    设置外循环变量i、内循环变量j、中间变量z、ti和s,所述蒙哥马利模乘运算的步骤如下:
    S01、令C为0;
    S02、令外循环变量i为0,开始外循环;
    S03、令z为0;
    S04、将c0加上ai与b0的乘积,再与q相乘后,求其对模2k的余数,将结果赋给ti;
    S05、令内循环变量j为0,开始内循环;
    S06、将cj加上ai与bj的乘积,再加上ti与pj的乘积,再加上z,将结果赋给s;
    S07、若内循环变量j不等于0,则求s对模2k的余数,将结果赋给cj-1;
    S08、令内循环变量j加1,重复内循环直到j等于m,退出内循环;
    S09、将s除以2k,将结果赋给z,再将z的值赋给cm-1;
    S10、令外循环变量i加1,重复外循环直到i等于m,退出外循环;
    S11、若C大于P,则将C与P的差值赋给C,否则C值不变;
    S12、返回C。
    相应地,本发明实施例还提供一种蒙哥马利模乘运算装置,其运算字长为k,包括:
    输入控制器,用于输入被乘数A、乘数B、模数P和模数P的逆q;按照从数据的低位开始、每k位为一段的拆分方式,将A、B、P和q转换为4个m维数组;
    数据存储器,用于存储已转换成m维数组的A、B、P和q;
    时序控制器,用于控制所述数据存储器的数据输入和输出;
    数据通路,用于从所述数据存储器中输入A、B、P和q,按照蒙哥马利模乘算法进行运算,输出模乘结果C;其中,C=AB2-nmodP;
    输出单元,用于对所述数据通路的输出波形进行整形,并作为最终模乘输入的接口;
    其中,所述数据通路进行蒙哥马利模乘运算的步骤与上述的S01~S12相同。
    进一步的,本发明实施例还提供一种基于蒙哥马利模乘运算的数据加解密处理装置,包括:
    数据输入???,用于获取由待处理的数据构成的模幂运算;
    模乘处理???,将所述模幂运算转换为模乘运算,根据所述模乘运算的结果获取所述模幂运算的结果;
    数据输出???,根据所述模幂运算的结果获得处理后的数据;
    所述待处理的数据为待加密的明文,所述处理后的数据为密文;或者所述待处理的数据为待解密的密文,所述处理后的数据为明文;
    所述模乘处理??榘ㄉ鲜龅拿筛缏砝3嗽怂阕爸?,用于实现蒙哥马利模乘运算。
    实施本发明实施例,具有如下有益效果:
    本发明实施例提供的基于蒙哥马利模乘运算的数据加解密处理方法及装置,使用FIOS(finely integrated operand scanning)技术,将蒙哥马利模乘算法分解成为外循环和内循环两部分,其中内循环主要做乘法的处理工作,而外循环主要做约减部分工作;在外循环和内循环运算结束后,对循环运算结果进行判断,若运算结果大于模数P,则将所述运算结果归约到小于P的范围内,否则直接输出所述运算结果。在硬件实现上,将内外循环设计成并行处理流水线架构,能够大大降低一次模乘运算所使用的时钟周期,提高整体模乘效率的效果。该蒙哥马利模乘算法应用于ECC加密算法中时,能够提高数据加解密的效率和速度。
    附图说明
    图1是本发明实施例提供的基于蒙哥马利模乘运算的数据加解密处理方法的流程示意图;
    图2是本发明实施例提供的蒙哥马利模乘运算装置的结构示意图。
    图3是本发明实施例提供的输入控制??橥?;
    图4是本发明实施例提供的数据通路的结构示意图;
    图5是本发明实施例提供的PU_A运算单元的结构示意图;
    图6是本发明实施例提供的PU_B运算单元的结构示意图;
    图7是本发明实施例提供的约减运算单元的结构示意图;
    图8是本发明实施例提供的蒙哥马利模乘运算装置的流水线结构数据流向图;
    图9是本发明实施例提供的基于蒙哥马利模乘运算的数据加解密处理装置的结构示意图。
    具体实施方式
    下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例?;诒痉⒚髦械氖凳├?,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明?;さ姆段?。
    本发明实施例使用FIOS技术,将Montgomery模乘算法分解成为内外循环两部分,其中内循环主要做乘法的处理工作,而外循环主要做约减部分工作;并且,在外循环和内循环运算结束后,对循环运算结果进行判断,若运算结果大于模数P,则将所述运算结果归约到小于P的范围内,否则直接输出所述运算结果。
    基于FIOS的Montgomery模乘算法如下:
    Input:A=(am-1,···,a1,a0)2k,]]>B=(bm-1,···,b1,b0)2k,]]>
    P=(pm-1,···,p1,p0)2k,]]>q=-p-1mod2k=-p0-1mod2k]]>
    Output:C=AB2-nmodP
    1.C=0
    2.for i=0 to m-1
    3.z=0
    4.ti=(c0+aib0)qmod2k
    5.for j=0 to m-1
    6.S=cj+aibj+tipj+z
    7.if(j≠0)then cj-1=S mod2k
    8.z=s/2k,cm-1=z
    9.if(C>P)thenC=C-P else C=C
    10.return C
    其中,A为被乘数,B为乘数,P为模数,q是模数P的逆;并以基底2k来表示整数,按照从数据的低位开始、每k位为一段的拆分方式,将A、B、P和q转换为4个m维数组;k是处理器的运算字长,i是外循环变量,j是内循环变量,z、ti和s是中间变量,
    需要说明的是,可以利用软件平台计算得出模数P的逆q。对于应用在WAPI无线局域网络的标准,模数P是一个恒定的值,因此可以通过C语言等工具把q预先计算出来。当然,除了使用软件的方法来获取q值,还可以直接使用硬件的方法来求q,这是本领域的常规技术,在此不予详细描述。
    本发明实施例提供的基于FIOS的Montgomery模乘算法,在硬件实现上,内外循环可以设计成为并行处理流水线架构,能够大大降低一次模乘运算所使用的时钟周期,提高整体模乘效率的效果。
    参见图1,是本发明实施例提供的基于蒙哥马利模乘运算的数据加解密处理方法的流程示意图;该方法包括以下步骤:
    S101、获取由待处理的数据构成的模幂运算;
    S102、将所述模幂运算转换为模乘运算,根据所述模乘运算的结果获取所述模幂运算的结果;
    S103、根据所述模幂运算的结果获得处理后的数据;
    其中,所述待处理的数据为待加密的明文,所述处理后的数据为密文;或者所述待处理的数据为待解密的密文,所述处理后的数据为明文;
    上述步骤S102中的模乘运算的实现方法如下:
    输入被乘数A、乘数B、模数P和模数P的逆q,按照蒙哥马利模乘算法进行运算,输出模乘结果C;其中,C=AB2-n modP;
    以基底2k来表示整数,按照从数据的低位开始、每k位为一段的拆分方式,分别将A、B、P和q转换为m维数组,则其中,k是处理器的运算字长;
    设置外循环变量i、内循环变量j、中间变量z、ti和s,所述蒙哥马利模乘运算的步骤如下:
    S01、令C为0;
    S02、令外循环变量i为0,开始外循环;
    S03、令z为0;
    S04、将c0加上ai与b0的乘积,再与q相乘后,求其对模2k的余数,将结果赋给ti;
    S05、令内循环变量j为0,开始内循环;
    S06、将cj加上ai与bj的乘积,再加上ti与pj的乘积,再加上z,将结果赋给s;
    S07、若内循环变量j不等于0,则求s对模2k的余数,将结果赋给cj-1;
    S08、令内循环变量j加1,重复内循环直到j等于m,退出内循环;
    S09、将s除以2k,将结果赋给z,再将z的值赋给cm-1;
    S10、令外循环变量i加1,重复外循环直到i等于m,退出外循环;
    S11、若C大于P,则将C与P的差值赋给C,否则C值不变;
    S12、返回C。
    本发明实施例提供的基于蒙哥马利模乘运算的数据加解密处理方法,使用到FIOS技术,将蒙哥马利模乘算法分解成为外循环和内循环两部分,其中内循环主要做乘法的处理工作,而外循环主要做约减部分工作;并且,在外循环和内循环运算结束后,对循环运算结果进行判断,若运算结果大于模数P,则将所述运算结果归约到小于P的范围内,否则直接输出所述运算结果。在硬件实现上,将内外循环设计成为并行处理流水线架构,能够大大降低一次模乘运算所使用的时钟周期,提高整体模乘效率的效果,从而提高数据加解密的效率和速度。
    相应地,本发明实施例还提供一种蒙哥马利模乘运算装置,是基于FPGA(例如Xilinx芯片)设计的硬件电路系统,能够实施上述的基于FIOS的Montgomery模乘算法。
    参见图2,是本发明实施例提供的蒙哥马利模乘运算装置的结构示意图。
    所述装置的运算字长为k,包括:
    输入控制器,用于输入被乘数A、乘数B、模数P和模数P的逆q;按照从数据的低位开始、每k位为一段的拆分方式,将A、B、P和q转换为4个m维数组;
    数据存储器,用于存储已转换成m维数组的A、B、P和q;
    时序控制器,用于控制所述数据存储器的数据输入和输出;
    数据通路,用于从所述数据存储器中输入A、B、P和q,按照蒙哥马利模乘算法进行运算,输出模乘结果C;其中,C=AB2-nmodP;
    输出单元,用于对所述数据通路的输出波形进行整形,并作为最终模乘输入的接口;
    其中,所述数据通路进行蒙哥马利模乘运算的步骤与上述的S01~S12相同,在此不再赘述。
    下面仅以采用32位的处理器(即k=32),被乘数A、乘数B、模数P是192位的整数为例,结合图3~图8对本发明实施例提供的蒙哥马利模乘运算装置的结构及工作原理进行详细描述。
    参见图3,是本发明实施例提供的输入控制??橥?。数据存储器包括:
    A寄存器,用于存储被乘数A;
    B寄存器,用于存储乘数B;
    P寄存器,用于存储模数P;
    Q寄存器,用于存储模数P的逆,即数据q;
    其中,B寄存器和P寄存器采用串入并出的模式,A寄存器和Q寄存器采用串进串出的模式,由时序控制器控制四个寄存器的数据输入和输出。在时序控制器的控制下,输入控制器输入被乘数A、乘数B、模数P和模数P的逆q,并按照从数据的低位开始、每32位为一段的拆分方式,将A、B、P和q转换为4个32位的6维数组,采用串行输入的方式分别存入A寄存器、B寄存器、P寄存器和q寄存器中。并且,B寄存器和P寄存器以并行输出方式输出数据,A寄存器和Q寄存器以串行输出方式输出数据,例如A寄存器并行输出被乘数A的0-31位数据。
    参见图4,是本发明实施例提供的数据通路的结构示意图;所述数据通路包括1个PU_A运算单元、m-1个PU_B运算单元和1个约减运算单元;
    PU_A运算单元用于实现蒙哥马利模乘运算外循环部分中的ti=(c0+aib0)qmod2k的运算;并且,当内循环变量j等于0时,实现蒙哥马利模乘运算内循环部分中的s=(c0+aib0+tip0+z)的运算;
    PU_B运算单元用于实现蒙哥马利模乘运算内循环部分中的当j=1到j=m-1时,s=(cj+aibj+tipj+z)的运算;
    约减运算单元用于蒙哥马利模乘运算的内外循环全部结束后,对循环运算结果进行判断,若所述运算结果大于模数P,则将所述运算结果归约到小于P的范围内,否则直接输出所述运算结果。
    m-1个PU_B运算单元依次连接成运算链,且第1个PU_B运算单元与所述PU_A运算单元相连接。
    具体实施时,当被乘数A、乘数B、模数P是192位的整数时,如果采用32位的处理器(即k=32),则数据通路中需要1个PU_A运算单元和5个PU_B运算单元;如果采用16位的处理器(即k=16),则数据通路中需要1个PU_A运算单元和11个PU_B运算单元。本发明实施例仅以k=32为例进行说明。
    需要说明的是,外循环中的约减部分,以及循环运算结束后所述约减运算单元所执行的约减,都是属于Montgomery域约减;但两者是两个不同的运算过程,其中,“外循环的约减”是在循环运算数据通路中进行,而“约减运算单元的约减”是在完成了循环运算数据通路的运算后做的最后处理,是在所有循环外进行的,其实施的目的是一样,不过实施的软硬件结构不相同。
    参见图5,是本发明实施例提供的PU_A运算单元的结构示意图;所述PU_A运算单元包括:
    AI_IN输入端,用于从所述A寄存器中读入被乘数A;
    B_IN输入端,用于从所述B寄存器中读入乘数B;
    Q_IN输入端,用于从所述Q寄存器中读入数据q;
    P_IN输入端,用于从所述P寄存器中读入模数P;
    CJ_IN输入端,用于输入从PU_B运算单元反馈的中间数据;
    “0”输入端,用于输入0;
    当进行外循环第一次运算时,即当外循环变量i=0时,PU_A运算单元从所述“0”输入端输入0,计算获得c0=0;
    当外循环变量i>0时,此时已经在内循环中计算出c0的新值,则PU_A运算单元从所述CJ_IN输入端输入从PU_B运算单元反馈的中间数据,作为后续计算的输入。
    所述PU_A运算单元还包括TI_OUT输出端、Z_OUT输出端和AI_OUT输出端,分别输出中间变量ti、z和ai,作为下一级PU_B运算单元的输入。
    数据通路里面的PU_A运算单元实现Montgomery模乘算法中外循环部分中的di=(c0+aib0)mod2k和ti=(di×q)mod2k(这里是将ti=(c0+aib0)qmod2k分解成为两步以方便说明问题),同时,当内循环j=0时,即s=(c0+aib0+tip0+z),通过分析外循环中的di和ti的表达式可知,可直接调用di和ti作为s表达式子右边的部分,PU_A??榭梢酝蓖瓿赡3怂惴ㄖ衧=(c0+aib0+tip0+z)的内容,因此本发明实施例将式子s=(c0+aib0+tip0+z)放在PU_A??橹惺迪?,能够达到节省更多的硬件资源的目的。进一步的,为了节省整个设计的周期和更大地利用到Xilinx芯片经过优化的资源,加法器和乘法器可使用Virtex II自带的IP核,芯片里的乘法器IP核将会直接调用Virtex II的18×18bit的乘法器??樽槔创?。如图5所示,执行一次PU_A运算单元的计算,需要花费5个系统的时钟周期,本实施例设计每个乘法器和加法器的执行周期都是1。
    参见图6,是本发明实施例提供的PU_B运算单元的结构示意图;所述PU_B运算单元包括:
    TI_IN输入端,用于输入所述PU_A运算单元输出的中间变量ti;
    Z_IN输入端,用于输入所述PU_A运算单元输出的中间变量z;
    AI_IN输入端,用于输入上一级运算单元输出的中间变量ai;
    CJ_IN输入端,用于输入上一级PU_B运算单元输出的中间变量cj;当j=1时,C=0;当j>1时,C等于所述CJ_IN输入端输入的数值;
    所述PU_B运算单元还包括TI_OUT输出端、Z_OUT输出端、AI_OUT输出端和CJ_OUT输出端,分别输出中间变量ti、z、ai和cj,作为下一级PU_B运算单元的输入。
    具体的,PU_B运算单元实现Montgomery模乘算法中内循环里面当j=1到j=m-1的部分;即s=(cj+aibj+tipj+z),1≤j≤m-1。如图6所示,其中接口T_IN和Z_IN是PU_A输出的中间变量。CJ_IN是由上一级的PU_B运算单元输出的中间变量,当j=1时,C=0;当j>1时,C=CJ_IN。C的值由控制信号CTRL_C来确定。PU_B运算单元的输出TI_OUT、Z_OUT、CJ_OUT,作为下一级PU_B运算单元的输入。当时序控制器向数据通路发出数据输入完毕后的第10个周期,第一个PU_B运算单元开始输出c1,然后每隔5个周期,后面的PU_B运算单元将分别输出c2到c4,直到最后一个PU_B输出c5和c6,数据通路的工作完成,其中c6是从最后一个PU_B运算单元的端口Z_OUT输出的。
    参见图7,是本发明实施例提供的约减运算单元的结构示意图;所述约减运算单元包括比较??楹图醴??;所述比较??橛糜诮鯬U_A运算单元、PU_B运算单元的运算结果C和模数P作比较,并输出比较结果,作为减法??榈目刂菩藕?;当所述运算结果C大于模数P时,控制所述减法??榻蠧减P的操作。
    Montgomery模乘算法的最后一步是在所有的循环完成后,对运算结果进行判断,如果运算结果比模数P大,则把结果归约到小于P的范围内,即下面的算法步骤:
    If(C>P)then C=C-P else C=C
    根据Montgomery模乘算法的运算步骤,约减过程首先使用比较器,把循环数据通路输出的结果和模数P做比较,输出判断结果c_Result。然后,根据c_Result的值作出是否需要做减法运算的决定。如图7所示,comp1~comp6是6个32位的比较器,数据a是数据通路的输出c。其中,数据a是来自于数据通路的输出C,两者都是192位的数据,a={a6,a5,a4,a3,a2,a1}。数据b是模数p,每一个comp??榫艿绞敝有藕臗LK和时序控制器信号Out_En的控制。经过比较可以得到每一段的比较结果re1~re6,并且送进compare??榻姓肀冉虾?,得到最终的判断结果c_Result。c_Result经过选通控制信号Sub_En,得到一组控制信号S_En。该S_En信号作为是否需要做约减的判断依据,并且作为减法器组的控制信号输入。在进行大小比较的同时,减法器组进行了C=C-P的操作,最终模乘运算结果将会根据判断信号S_En的值来确定,如果S_En=1,表示C>P,即选择减法器组输出的数据作为模乘运算结果;如果S_En=0,则表示C<P,即结果在Montgomery域里面,可以不做约减,直接输出C=C。
    下面结合图8对本发明实施例提供的蒙哥马利模乘运算装置的数据流向进行详细描述。
    数据通路??橹饕瓿蒑ontgomery模乘运算部分内容,通过从寄存器输入A、B、P、Q等数据,输出模乘结果C=AB2-nmodP。数据通路采用了流水线设计结构,通过??橹涞氖荽莺头蠢?,并行处理输入数据和中间数据,大大缩减一次模乘所花费的周期数。其中PU_A、PU_B是模乘的运算单元,数据通路通过将6个PU相互连接来实现模乘的运算。当寄存器开始加载数据到数据通路上时,数据先从PU_A运算单元开始处理,然后把中间结果传递到第一级的PU_B运算单元上。同时,由于是流水线的设计特点,第一级PU_B运算单元的计算结果也会反馈给PU_A运算单元,如是反复,待寄存器的数据全部装载到数据通路后的第10个周期,第一个PU_B运算单元输出c1,然后连续的每5个周期,从PU_B运算单元上输出一个结果,到最后输出c6完成了PU单元间的输出工作。PU输出的结果经过选择判断后输入到约减运算单元进行约减处理,然后输出最终结果。
    数据通路采用流水线结构,流水线的使用可以让更多的运算单元在同一个周期内同时进行操作,减少运算单元空闲的情况。参见图8,是流水线结构数据流向图;其中,横向数字表示数据通路运算的周期数(是指PU周期,即PU_A、PU_B运算单元的周期,1个PU周期等于5个时钟周期),纵向数字表示模乘行进的步数,每一个圆圈表示一个运算单元,其中实线同心黑圈是PU_A运算单元,实线实心黑圈都是PU_B运算单元。
    在数据输入过程中,根据Montgomery模乘算法,数据B和P在内循环中会根据下标j的变化发生改变,因此需要每一个PU周期刷新一次,每次输入32位,例如当j=0时,输入最低的32位。而A只有在外循环的时候发生改变(即PU_A运行时),Q是恒定不变的值,同时由于蒙哥马利模乘装置采用流水线的结构,从图8中可以看到,每隔两个PU周期(10个时钟周期),A的数据刷新一次,Q则直接作为不变的32位常量在PU_A阶段输入。在图8所示的第一组模乘数据中,从第一个PU周期开始,PU_A运算单元开始运行时,输入A、B、P的0-31位数据和Q;第二个PU周期开始,第一个PU_B运算单元开始输入B、P第32-63位数据;第三个PU周期开始,第二个PU_B运算单元开始输入B、P第64-95位数据,与此同时,PU_A运算单元再次开始运行,输入数据A的32-63位数据;第四个PU周期开始,第三个PU_B运算单元和第二个PU_B运算单元同时运行,在第三个PU_B运算单元输入中B、P第96-127位数据,同时在第二个PU_B运算单元中输入第64-95位数据。依次类推,形成一种流水线的输入方式,在第六个PU周期开始时,一个内循环结束;在十一个PU周期开始时,数据A输入完毕;第十二个周期开始时,第一个PU_B运算单元开始输出模乘结果的低32位,以后每隔一个PU周期输出一组结果,直到第十六个PU周期,最后一个PU_B运算单元输出模乘结果的高64位(此时最后一个PU_B运算单元中的Z_OUT也作为结果的输出,但只取低32位结果作为输出)。在这个过程中,数据A在外循环刷新,并且在第十一个PU周期的时候输入完毕;数据B和P在内循环刷新,每一次内循环开始都需要从j=0开始重新输入,直到第十六个周期,也就是整个模乘数据通路要结束的时候,所有的数据B输入完毕;数据Q是一个32位的常量,它只在PU_A运算单元中使用到,因此输入的方式跟数据A相同。
    如图8所示,第一个周期时,PU_A运算单元开始运行,第二个周期时,第一个PU_B运算单元开始运行,第三个周期时,PU_A运算单元又开始工作,同时,第二个PU_B运算单元也在运算处理中,即同一时间有两个运算单元在跑。在一次的192位模乘运算当中,最多同时存在3个PU同时运作的情况,达到一种并行的流水线效果。
    具体实施时,对于多次并行模乘的处理,其流水线的优势更为明显。图8中所示的虚线圆表示第二组数据模乘运行的情况,在第一组模乘运行的过程中,仍然会有部分的运行单元处在空闲状态,经过观察可以发现,如果同时进行两次或者两次以上的并行的模乘时,那么可以利用到这部分空闲的运行单元来提高整体模乘的运行效率。从图8中可以看出这种优势,对于一次的模乘,一共需要16次的PU周期(1个PU周期等于5个时钟周期),而如果将两次模乘并行来处理,第二组数据的模乘结果在第一组数据输出后6个PU周期即可输出,比单次模乘的效率提高了31%。
    本发明实施例提供的蒙哥马利模乘运算装置,将Montgomery模乘算法的内外循环设计成为并行处理流水线架构,能够大大降低一次模乘运算所使用的时钟周期,提高整体模乘效率的效果。该蒙哥马利模乘运算装置可以直接作为ECC加密算法中点加和倍点的模乘???,能够提高数据加解密的效率和速度。此外,该蒙哥马利模乘运算装置还可以应用到涉及信息安全的各种签名验证方法中。
    进一步的,本发明实施例还提供一种基于蒙哥马利模乘运算的数据加解密处理装置,能够实现上述实施例中的基于蒙哥马利模乘运算的数据加解密处理方法的所有步骤。
    参见图9,是本发明实施例提供的基于蒙哥马利模乘运算的数据加解密处理装置的结构示意图。所述装置包括:
    数据输入???1,用于获取由待处理的数据构成的模幂运算;
    模乘处理???2,将所述模幂运算转换为模乘运算,根据所述模乘运算的结果获取所述模幂运算的结果;
    数据输出???3,根据所述模幂运算的结果获得处理后的数据;
    所述待处理的数据为待加密的明文,所述处理后的数据为密文;或者所述待处理的数据为待解密的密文,所述处理后的数据为明文;
    模乘处理???2包括上述实施例所述的蒙哥马利模乘运算装置,用于实现蒙哥马利模乘运算。具体实施时,该蒙哥马利模乘运算装置可以直接作为ECC加密算法中点加和倍点的模乘???,能够提高数据加解密的效率和速度。
    本发明实施例提供的基于蒙哥马利模乘运算的数据加解密处理方法及装置,使用FIOS技术,将蒙哥马利模乘算法分解成为外循环和内循环两部分,其中内循环主要做乘法的处理工作,而外循环主要做约减部分工作;在外循环和内循环运算结束后,对循环运算结果进行判断,若运算结果大于模数P,则将所述运算结果归约到小于P的范围内,否则直接输出所述运算结果。在硬件实现上,将内外循环设计成并行处理流水线架构,能够大大降低一次模乘运算所使用的时钟周期,提高整体模乘效率的效果。该蒙哥马利模乘算法应用于ECC加密算法中时,能够提高数据加解密的效率和速度。
    以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的?;し段?。

    关于本文
    本文标题:基于蒙哥马利模乘运算的数据加解密处理方法及装置.pdf
    链接地址://www.4mum.com.cn/p-5865943.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    [email protected] 2017-2018 www.4mum.com.cn网站版权所有
    经营许可证编号:粤ICP备17046363号-1 
     


    收起
    展开
  • 四川郎酒股份有限公司获第十二届人民企业社会责任奖年度环保奖 2019-05-13
  • 银保监会新规剑指大企业多头融资和过度融资 2019-05-12
  • 韩国再提4国联合申办世界杯 中国网友无视:我们自己来 2019-05-11
  • 中国人为什么一定要买房? 2019-05-11
  • 十九大精神进校园:风正扬帆当有为 勇做时代弄潮儿 2019-05-10
  • 粽叶飘香幸福邻里——廊坊市举办“我们的节日·端午”主题活动 2019-05-09
  • 太原设禁鸣路段 设备在测试中 2019-05-09
  • 拜耳医药保健有限公司获第十二届人民企业社会责任奖年度企业奖 2019-05-08
  • “港独”没出路!“梁天琦们”该醒醒了 2019-05-07
  • 陈卫平:中国文化内涵包含三方面 文化复兴表现在其中 2019-05-06
  • 人民日报客户端辟谣:“合成军装照”产品请放心使用 2019-05-05
  • 【十九大·理论新视野】为什么要“建设现代化经济体系”?   2019-05-04
  • 聚焦2017年乌鲁木齐市老城区改造提升工程 2019-05-04
  • 【专家谈】上合组织——构建区域命运共同体的有力实践者 2019-05-03
  • 【华商侃车NO.192】 亲!楼市火爆,别忘了买车位啊! 2019-05-03
  • eos摇骰子稳赚 超级七星彩开奖直播 pk10计划准的计划 其其准49组七星彩头尾 皇冠彩票网一现金投注 极速赛车稳赚图片 ssc精准人工稳赚计划群 幸运飞艇精准实用7码公式 幸运飞艇助赢计划软件官网 大乐透近100期走势图 pk10内部走势技巧 免费老时时票软件 49码出特无错规律 五星定位胆稳赚技巧方法 云南时时开奖时间表 北京时时开奖记录