发明名称 一种抵抗内存泄漏攻击的密码算法多核实现方法及装置
摘要 本发明涉及一种抵抗内存泄漏攻击的密码算法多核实现方法及装置。该方法将CPU所有核心能够使用的寄存器作为多核寄存器缓存来存储密码计算过程中的敏感信息,交换到内存中的数据都要进行加密,将密码算法能够并行的部分拆分到多个CPU核心上同时运行,各核心的寄存器缓存通过内存交换敏感数据的密文。该装置为抵抗内存泄露攻击的RSA高速计算装置,使用CPU两个核心的寄存器缓存分别计算两个蒙哥马利模幂,而后用其中一个CPU核心的寄存器缓存读取模幂结果并计算RSA结果。该装置在保证抵抗内存泄露攻击的同时,计算速度达到OpenSSL中算法实现的70%以上。
申请公布号 CN106130719A 申请公布日期 2016.11.16
申请号 CN201610580036.0 申请日期 2016.07.21
申请人 中国科学院信息工程研究所;中国科学院数据与通信保护研究教育中心 发明人 林璟锵;赵原;潘无穷;荆继武;郑昉昱;薛聪;王琼霄
分类号 H04L9/06(2006.01)I;H04L9/08(2006.01)I;H04L29/06(2006.01)I 主分类号 H04L9/06(2006.01)I
代理机构 北京君尚知识产权代理事务所(普通合伙) 11200 代理人 邱晓锋
主权项 一种抵抗内存泄漏攻击的密码算法实现方法,其特征在于,包括以下步骤:步骤A:对密码算法的计算过程进行分析,将若干输入和输出没有互相依赖的计算部分作为能够并行计算的部分在不同CPU核心的寄存器缓存中同时进行计算;步骤B:保存要使用的各CPU核心寄存器缓存中原有的数据并清空这些核心的寄存器缓存;步骤C:从内存中读取参数保存到各CPU核心的寄存器缓存中并进行解密;步骤D:进行密码计算,将敏感信息保存在CPU核心的寄存器缓存中;步骤E:将无法保存在寄存器缓存中的敏感信息进行加密保存到内存中;步骤F:将计算过程中需要使用的保存在内存中的敏感信息读取到寄存器缓存中并进行解密;步骤G:若计算结果是敏感信息,进行加密保存到内存中,否则直接保存到内存中;步骤H:执行密码算法的串行部分,将并行计算过程中各CPU核心寄存器缓存保存到内存中的结果读取到一个CPU核心的寄存器缓存中并进行解密;步骤I:清空使用过的各CPU核心的寄存器缓存并恢复数据。
地址 100093 北京市海淀区闵庄路甲89号