基于进位保留加法器的模加模减加速装置及加密设备
文献发布时间:2024-04-18 19:52:40
技术领域
本发明属于信息安全技术领域和电子技术领域,具体涉及一种基于进位保留加法器的模加模减加速装置及加密设备。
背景技术
在加密设备中,特别是在加密运算的椭圆曲线算法运算过程中,用到了大量的模加模减操作,而传统的带进位链的加法器求解模加,其多级加法链会导到同步电路的频率很低,降低了算法运算效率。为了提高算法运算效率,必须要提高电路的频率。
发明内容
鉴于上述的分析,本发明旨在公开了一种基于进位保留加法器的模加模减加速装置及加密设备,解决传统的带进位链的加法器求解的问题。
本发明公开了一种基于进位保留加法器的模加模减加速装置,在加密设备的数据处理中,实现对加密数据的模加和模减的加速处理,包括:模加加速模块和模减加速模块;
所述模加加速模块,通过三级级联的数据压缩电路,对输入的加数X(Sx,Cx)和加数Y(Sy,Cy)进行以数值P为模的相加,输出模加结果(S
所述模减加速模块;对减数Y(Sy,Cy)进行按位取反后得到~Y(~Sy,~Cy);再通过四级级联的数据压缩电路,对输入的被减数X(Sx,Cx)和~Y(~Sy,~Cy)进行以数值P为模的相加,输出模减结果(S—z,C—z),其中,第一级数据压缩电路采用四输入CSA单元进行模加压缩处理,第二、三、四级数据压缩电路采用三输入CSA单元进行模加压缩处理。
进一步地,所述三输入CSA单元为三输入的N位加数进位保留加法器,用于对前一级的输出结果和根据模的数值P预设的常数组成的三个N位数进行相加,输出进位部分和和数部分;
具体包括:
三组N位的加数输入端,每一组对应输入一个N位的加数;用于分别接入三个N位的加数P1、P2和P3;
一组N位的和数输出端,用于输出三个N位加数相加后的和数部分S
一组N+1位的进位输出端;用于输出三个N位加数相加后的进位部分C
N个CSA32模块,用于进行并行的数据相加;每个CSA32模块为三输入的一位加数进位保留加法器,均包括三个加数输入端、一个和输出端和一个进位输出端;
其中,在CSA32模块i的三个加数输入端X
进一步地,所述四输入CSA单元为四输入的N位加数进位保留加法器,用于对输入的四个N位数进行相加,输出进位部分和和数部分;
具体包括:
四组N位的加数输入端,每一组对应输入一个N位的加数;用于分别接入四个N位的加数P1、P2、P3和P4;
一组N+1位的和数输出端,用于输出四个N位加数相加后的和数部分S
一组N+1位的进位输出端;用于输出四个N位加数相加后的进位部分C
N个CSA42模块,用于进行并行数据相加;每个CSA42模块为四输入的一位加数进位保留加法器,均包括四个加数输入端、一个Cin数据输入端、一个和输出端、一个进位输出端、一个Cout数据输出端、标志输出端和两个CSA32模块;每个CSA32模块为三输入的一位加数进位保留加法器;
其中,在CSA42模块i中,
第一CSA32模块的三个加数输入端分别输入四个加数的前三个N位加数的第i位P1
第二CSA32模块的三个加数输入端分别输入第一CSA32模块的和输出、第四个N位加数的第i位P4
其中,第CSA42模块0中的Cin数据输入端通过置0电路置0;CSA42模块N-1的输出的Cout数据作为四输入CSA单元输出和数部分的最高位S
标志输出端,用于输出标志位F;所述标志位F为四输入CSA单元输出的和数部分和进位部分的最高位数据之和;F=S
进一步地,所述模加加速模块包括:
模加常数预设电路,用于根据模的数值P,生成第一模加常数PS和第二模加常数P2S;
模加第一级压缩电路,用于将四个加数Sx,Cx,Sy,Cy输入到四输入CSA单元中进行模加数据压缩运算,输出一级模加压缩数据(S
模加第二级压缩电路,用于根据F
模加第三级压缩电路,用于根据C
模加输出电路,用于将去除最高位的第三级模加压缩数据(S
进一步地,在模加常数预设电路中所述第一模加常数PS和所述第二模加常数P2S的计算式为:
所述第一模加常数PS=(2
所述第二模加常数P2S=(2*PS)mod P。
进一步地,在模加第二级压缩电路中,
当F
执行运算{S
当F
执行运算{S
当F
执行运算{S
在模加第三级压缩电路中,
当C
执行运算{S
当C
执行运算{S
所述CSA32()运算为三输入CSA单元所执行的进位保留相加运算。
进一步地,所述模减运算模块包括:
模减常数预设电路,用于根据模的数值P、第一模加常数PS和第二模加常数P2S,生成第一模减常数T1、第二模减常数T2和第三模减常数T3;
取反电路,用于对减数Y(Sy,Cy)进行按位取反后得到~Y(~Sy,~Cy);
模减第一级压缩电路,用于将Sx,Cx,~Sy,~Cy输入到四输入CSA单元中进行模加数据压缩运算,输出一级模减压缩数据(S
模减第二级压缩电路,用于根据标志F
模减第三级压缩电路,用于根据C
模减第四级压缩电路,用于根据C
模减输出电路,用于将去除最高位的四级模加压缩数据(S
进一步地,在模减常数预设电路中,所述第一模减常数T1、所述第二模减常数T2和所述第三模减常数T3的计算式为:
所述第一模减常数T1=(2*((P*2-2
所述第二模减常数T2=(2*((P*2-2
所述第三模减常数T3=(2*((P*2-2
进一步地,在模减第二级压缩电路中,
当F
执行运算{S
当F
执行运算{S
当F
执行运算{S
在模减第三级压缩电路中,
当C
执行运算{S
当C
执行运算{S
在模加第四级压缩电路中,
当C
执行运算{S
当C
执行运算{S
本发明还公开了一种加密设备,所述加密设备包含如上所述的基于进位保留加法器的模加模减加速装置,在密码数据处理中,实现模加和模减的加速处理。
本发明至少可实现以下有益效果之一:
本发明的一种基于进位保留加法器的模加模减加速装置及加密设备,在密码运算(例如椭圆曲线密码算法)的实现中很高效。传统的加法做模加减运算,用到了多级加法链,会导到同步电路的频率很低。使用了本发明后,中间结果全部使用(S,C)数据对的方式,使中间数据的存储更加方便,所有同步电路中不再出现加法链,大幅度提高了电路频率,实现了模加模减运算的加速,是大规模高速椭圆曲线硬件实现的关键技术之一。
附图说明
附图仅用于示出具体实施例的目的,而并不认为是对本发明的限制,在整个附图中,相同的参考符号表示相同的部件。
图1为本发明实施例中的模加模减加速装置示意框图;
图2为本发明实施例中的三输入CSA单元原理框图;
图3为本发明实施例中的四输入CSA单元原理框图;
图4为本发明实施例中的模加加速模块组成连接示意图
图5为本发明实施例中的模减加速模块组成连接示意图。
具体实施方式
下面结合附图来具体描述本发明的优选实施例,其中,附图构成本申请一部分,并与本发明的实施例一起用于阐释本发明的原理。
本发明的一个实施例公开了一种基于进位保留加法器的模加模减加速装置,在加密设备的密码数据处理中,实现对加密数据的模加和模减的加速处理,如图1所示,包括:模加加速模块和模减加速模块;
所述模加加速模块,通过三级级联的数据压缩电路,对输入的加数X(Sx,Cx)和加数Y(Sy,Cy)进行以数值P为模的相加,输出模加结果(S
其中,第一级数据压缩电路采用四输入CSA单元进行模加压缩处理,第二、三级数据压缩电路利用三输入CSA单元进行模加压缩处理;
所述模减加速模块;对减数Y(Sy,Cy)进行按位取反后得到~Y(~Sy,~Cy);再通过四级级联的数据压缩电路,对输入的被减数X(Sx,Cx)和~Y(~Sy,~Cy)进行以数值P为模的相加,输出模减结果(S—z,C—z),实现了模减算法(S
其中,第一级数据压缩电路采用四输入CSA单元进行模加压缩处理,第二、三、四级数据压缩电路采用三输入CSA单元进行模加压缩处理。
具体的,如图2所示,所述三输入CSA单元为三输入的N位加数进位保留加法器,用于对前一级的输出结果和根据模的数值P预设的常数组成的三个N位数进行相加,输出进位部分和和数部分;
具体包括:
三组N位的加数输入端,每一组对应输入一个N位的加数;用于分别接入三个N位的加数P1、P2和P3;例如,P1、P2为前一级输出的和部分和进位部分,P3为根据模的数值P预设的模加或模减常数。
一组N位的和数输出端,用于输出三个N位加数相加后的和数部分S
一组N+1位的进位输出端;用于输出三个N位加数相加后的进位部分C
N个CSA32模块,用于进行并行的数据相加;每个CSA32模块为三输入的一位加数进位保留加法器,均包括三个加数输入端、一个和输出端和一个进位输出端;
其中,在CSA32模块i的三个加数输入端X
本实施例中,三输入CSA单元中进位保留加法的函数表示为{S,C}=CAS32(a,b,c);a、b、c分别为三个加数,S为和数部分,C为进位部分。
如图3所示,所述四输入CSA单元为四输入的N位加数进位保留加法器,用于对输入的四个N位数进行相加,输出进位部分和和数部分;
具体包括:
四组N位的加数输入端,每一组对应输入一个N位的加数;用于分别接入四个N位的加数P1、P2、P3和P4;
一组N+1位的和数输出端,用于输出四个N位加数相加后的和数部分S
一组N+1位的进位输出端;用于输出四个N位加数相加后的进位部分C
N个CSA42模块,用于进行并行数据相加;每个CSA42模块为四输入的一位加数进位保留加法器,均包括四个加数输入端、一个Cin数据输入端、一个和输出端、一个进位输出端、一个Cout数据输出端、标志输出端和两个CSA32模块;每个CSA32模块为三输入的一位加数进位保留加法器;
其中,在CSA42模块i中,
第一CSA32模块的三个加数输入端分别输入四个加数的前三个N位加数的第i位P1
第二CSA32模块的三个加数输入端分别输入第一CSA32模块的和输出、第四个N位加数的第i位P4
其中,第CSA42模块0中的Cin数据输入端通过置0电路置0;CSA42模块N-1的输出的Cout数据作为四输入CSA单元输出和数部分的最高位S
标志输出端,用于输出标志F;所述标志F为四输入CSA单元输出的和数部分和进位部分的最高位数据之和;F=S
本实施例中,四输入CSA单元中进位保留加法的函数表示为{S,C}=CAS42(a,b,c,d);a、b、c、d分别为四个加数;S为和数部分,C为进位部分。
具体的,如图4所示,所述模加加速模块包括:
模加常数预设电路,用于根据模的数值P,生成第一模加常数PS和第二模加常数P2S;
具体的,所述模数P以及Sx,Cx,Sy,Cy的位数均为N;在模加常数预设电路中所述第一模加常数PS和所述第二模加常数P2S的计算式为:
所述第一模加常数PS=(2
所述第二模加常数P2S=(2*PS)mod P。
模加第一级压缩电路,用于将四个加数Sx,Cx,Sy,Cy输入到四输入CSA单元中进行模加数据压缩运算,输出一级模加压缩数据S
具体的,在模加第一级压缩电路中,
执行运算{S
所述四输入CSA单元的标志F
四个加数的位数为N,输出的和数部分S
模加第二级压缩电路,用于根据F
在模加第二级压缩电路中,
当F
执行运算{S
当F
执行运算{S
当F
执行运算{S
模加第三级压缩电路,用于根据C
在模加第三级压缩电路中,
当C
执行运算{S
当C
执行运算{S
模加输出电路,用于将去除最高位的第三级模加压缩数据S
在模加输出电路中,
执行运算{S
具体的,如5所示,所述模减运算模块包括:
模减常数预设电路,用于根据模的数值P、第一模加常数PS和第二模加常数P2S,生成第一模减常数T1、第二模减常数T2和第三模减常数T3;
具体的,所述模数P以及Sx,Cx,Sy,Cy的位数均为N;在模减常数预设电路中所述第一模减常数T1、第二模减常数T2和第三模减常数T3的计算式为:
所述第一模减常数T1=(2*((P*2-2
所述第二模减常数T2=(2*((P*2-2
所述第三模减常数T3=(2*((P*2-2
取反电路,用于对减数Y(Sy,Cy)进行按位取反后得到~Y(~Sy,~Cy)。
模减第一级压缩电路,用于将Sx,Cx,~Sy,~Cy输入到四输入CSA单元中进行模加数据压缩运算,输出一级模减压缩数据S
具体的,在模减第一级压缩电路中,
执行运算{S
所述四输入CSA单元的标志F
四个加数的位数为N,输出的和数部分S
模减第二级压缩电路,用于根据F
在模减第二级压缩电路中,
当F
执行运算{S
当F
执行运算{S
当F
执行运算{S
模减第三级压缩电路,用于根据C
在模减第二级压缩电路中,
当C
执行运算{S
当C
执行运算{S
模减第四级压缩电路,用于根据C
在模加第四级压缩电路中,
当C
执行运算{S
当C
执行运算{S
模减输出电路,用于将去除最高位的四级模加压缩数据S
在模减输出电路中,执行运算{S
综上所述,本发明实施例公开的的基于进位保留加法器的模加模减加速装置,在密码运算(例如椭圆曲线密码算法)的实现中很高效。传统的加法做模加减运算,采用多级加法链,带进位链的加法器求解2个N位数模加,至少进行2次加法,最长路径是2N级全加器,电路整体频率会变低。使用了本发明后,使得模加和模减的路径压缩到最多5级CSA32电路,所有同步电路中不再出现加法链,大幅度提高了电路频率,实现了模加模减运算的加速,是大规模高速椭圆曲线硬件实现的关键技术之一。并且中间结果全部使用(S,C)数据对的方式,使中间数据的存储更加方便。
本发明的另一个实施例还公开了一种加密设备,所述加密设备包含如上一实施例中所公开的基于进位保留加法器的模加模减加速装置,在密码数据处理中,实现模加和模减的加速处理。
采用本实施例的模加模减加速装置,使得模加和模减的路径压缩到最多5级CSA32电路,从而大大提升了算法的运行频率。
本实施例中,更具体的技术细节和效果请参照上一实施例,在此就不一一赘述了。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。
- 动力电池模组中框及动力电池模组结构
- 动力电池用PET和硅胶框封装结构
- 动力电池用PET和硅胶框封装隔热棉的组合结构