-
公开(公告)号:CN106130719A
公开(公告)日:2016-11-16
申请号:CN201610580036.0
申请日:2016-07-21
Applicant: 中国科学院信息工程研究所 , 中国科学院数据与通信保护研究教育中心
CPC classification number: H04L9/0631 , H04L9/0894 , H04L63/0428 , H04L63/1441
Abstract: 本发明涉及一种抵抗内存泄漏攻击的密码算法多核实现方法及装置。该方法将CPU所有核心能够使用的寄存器作为多核寄存器缓存来存储密码计算过程中的敏感信息,交换到内存中的数据都要进行加密,将密码算法能够并行的部分拆分到多个CPU核心上同时运行,各核心的寄存器缓存通过内存交换敏感数据的密文。该装置为抵抗内存泄露攻击的RSA高速计算装置,使用CPU两个核心的寄存器缓存分别计算两个蒙哥马利模幂,而后用其中一个CPU核心的寄存器缓存读取模幂结果并计算RSA结果。该装置在保证抵抗内存泄露攻击的同时,计算速度达到OpenSSL中算法实现的70%以上。
-
公开(公告)号:CN105930128B
公开(公告)日:2018-11-06
申请号:CN201610325863.5
申请日:2016-05-17
Applicant: 中国科学院数据与通信保护研究教育中心
IPC: G06F7/487
Abstract: 本发明公开了一种利用浮点数计算指令实现大整数乘法计算加速方法。本方法为:1)将长度为n比特的被乘数A分为N段,长度为m比特乘数B分为M段;每段的长度为w比特,M≥N;2)将被乘数A、乘数B的每段分别转化为一浮点数;3)采用熔加运算对转化后的被乘数A、乘数B进行乘法运算;并将运算结果转化为一定点数;4)将该定点数分为多段,每段长度为w比特;然后对每一段定点数R[u]:R[u]对2w进行求模运算,将求模结果保存到C[u]中;然后对R[u]右移w位,结果保存到Carry1中;然后将Carry1与R[u+1]作和,并保存到R[u+1]中。本发明减少了计算的复杂度,提升了计算速度。
-
公开(公告)号:CN103942028B
公开(公告)日:2017-04-05
申请号:CN201410150320.5
申请日:2014-04-15
Applicant: 中国科学院数据与通信保护研究教育中心
IPC: G06F7/537
Abstract: 本发明公开了一种应用在密码技术中的大整数乘法运算方法及装置,在密码技术中进行大整数乘法运算时,将被乘数和乘数拆分为若干字,利用高低位分离的带进位乘加指令,根据一定次序累加被乘数的一个字和乘数的一个字相乘的高位或低位乘积到结果的对应位置中,指令产生的进位将用于计算高一字结果的下一指令输入中;算法重复此类计算,直到被乘数的每一个字和乘数的每一个字的高低位结果均被累加到结果中。本发明实现的大整数乘法运算,可以减少大整数乘法计算的复杂度,提升计算速度。
-
公开(公告)号:CN103631660A
公开(公告)日:2014-03-12
申请号:CN201310435220.2
申请日:2013-09-23
Applicant: 中国科学院数据与通信保护研究教育中心
IPC: G06F9/50
Abstract: 本发明公开了一种在图形处理器GPU中进行大整数计算时的存储资源分配方法及装置,在采用GPU线程执行各种大整数计算过程中,为每个线程分配寄存器,在线程执行大整数计算过程中,将线程当前执行的大整数计算的操作数和中间计算变量存储在该线程所分配的寄存器中,将线程当前执行的大整数计算的模数和其他数据存储在内存中。这样,GPU线程中的大整数计算要调用操作数和中间计算变量时,都可以直接重复调用已分配的寄存器获得,一方面减少GPU线程的寄存器使用量,提高线程的并行执行效率,另一方面为大整数计算保留必要的寄存器,能更加有效地提高大整数计算的执行速度。
-
公开(公告)号:CN105930128A
公开(公告)日:2016-09-07
申请号:CN201610325863.5
申请日:2016-05-17
Applicant: 中国科学院数据与通信保护研究教育中心
IPC: G06F7/487
CPC classification number: G06F7/4876
Abstract: 本发明公开了一种利用浮点数计算指令实现大整数乘法计算加速方法。本方法为:1)将长度为n比特的被乘数A分为N段,长度为m比特乘数B分为M段;每段的长度为w比特,M≥N;2)将被乘数A、乘数B的每段分别转化为一浮点数;3)采用熔加运算对转化后的被乘数A、乘数B进行乘法运算;并将运算结果转化为一定点数;4)将该定点数分为多段,每段长度为w比特;然后对每一段定点数R[u]:R[u]对2w进行求模运算,将求模结果保存到C[u]中;然后对R[u]右移w位,结果保存到Carry1中;然后将Carry1与R[u+1]作和,并保存到R[u+1]中。本发明减少了计算的复杂度,提升了计算速度。
-
公开(公告)号:CN103942028A
公开(公告)日:2014-07-23
申请号:CN201410150320.5
申请日:2014-04-15
Applicant: 中国科学院数据与通信保护研究教育中心
IPC: G06F7/537
Abstract: 本发明公开了一种应用在密码技术中的大整数乘法运算方法及装置,在密码技术中进行大整数乘法运算时,将被乘数和乘数拆分为若干字,利用高低位分离的带进位乘加指令,根据一定次序累加被乘数的一个字和乘数的一个字相乘的高位或低位乘积到结果的对应位置中,指令产生的进位将用于计算高一字结果的下一指令输入中;算法重复此类计算,直到被乘数的每一个字和乘数的每一个字的高低位结果均被累加到结果中。本发明实现的大整数乘法运算,可以减少大整数乘法计算的复杂度,提升计算速度。
-
公开(公告)号:CN104461449B
公开(公告)日:2018-02-27
申请号:CN201410645961.8
申请日:2014-11-14
Applicant: 中国科学院数据与通信保护研究教育中心
IPC: G06F7/523
Abstract: 一种基于向量指令的大整数乘法实现方法及装置,将大整数乘法的被乘数和乘数分别拆分为一个或多个向量长度整数,计算这些整数相乘,并对所有乘积求和;计算两个向量长度的整数相乘时,将所有向量乘法指令产生的积向量按照指定的次序组成两条加法进位链,利用带进位的向量加法指令,将每次向量相加产生的进位作为下一个向量加法指令的输入,消除链中所有加法进位,只产生两个加法进位,将其加回,得到两个向量长度整数的乘积。特别地,若被乘数和乘数的长度都小于向量长度的1/n,将n组整数相乘合并为一次向量长度整数相乘,计算吞吐量提升n倍。基于以上大整数乘法方法,还公开了一种基于Intel Xeon Phi协处理器的高速大整数乘法装置。本发明减少了大整数乘法需要的指令数,降低了计算延迟,提高了计算吞吐量。
-
公开(公告)号:CN104461449A
公开(公告)日:2015-03-25
申请号:CN201410645961.8
申请日:2014-11-14
Applicant: 中国科学院数据与通信保护研究教育中心
IPC: G06F7/523
Abstract: 一种基于向量指令的大整数乘法实现方法及装置,将大整数乘法的被乘数和乘数分别拆分为一个或多个向量长度整数,计算这些整数相乘,并对所有乘积求和;计算两个向量长度的整数相乘时,将所有向量乘法指令产生的积向量按照指定的次序组成两条加法进位链,利用带进位的向量加法指令,将每次向量相加产生的进位作为下一个向量加法指令的输入,消除链中所有加法进位,只产生两个加法进位,将其加回,得到两个向量长度整数的乘积。特别地,若被乘数和乘数的长度都小于向量长度的1/n,将n组整数相乘合并为一次向量长度整数相乘,计算吞吐量提升n倍。基于以上大整数乘法方法,还公开了一种基于Intel Xeon Phi协处理器的高速大整数乘法装置。本发明减少了大整数乘法需要的指令数,降低了计算延迟,提高了计算吞吐量。
-
-
-
-
-
-
-