本发明专利技术提供一种基于CPU+FPGA的加解密方法及系统,其中,CPU上电配置FPGA;FPGA根据CPU发送的算法模式、加/解密指令、算法参数和使能信号对待处理数据进行加/解密处理并向CPU返回处理结果;本发明专利技术通过CPU+FPGA模式的处理方式将复杂运算放入DSP完成,拓展了算法可重构能力;本发明专利技术利用FPGA的可重构特点,将加密算法移植到FPGA上实现,相比CPU大大提高了算法的处理速度,同时避免了使用IP核或者算法专用芯片,实现了算法的可重构性;并且FPGA配置文件先由加密程序加密,加密后的文件由CPU烧写进Flash,上电时采用CPU上电配置FPGA,保证了FPGA程序不能被配置芯片回读,确保了加密的可靠性。
An encryption and decryption method and system based on CPU + FPGA
【技术实现步骤摘要】
一种基于CPU+FPGA的加解密方法及系统
本专利技术涉及加解密领域,具体的说,涉及了一种基于CPU+FPGA的加解密方法及系统。
技术介绍
目前实现国密算法的技术很成熟,既多种满足SM3杂凑算法或SM4对称算法需求的国密专用算法芯片,也存在多种SM3杂凑算法或SM4对称算法的软算法核以及基于FPGA的算法加速实现方式。其中,基于硬件实现的国密算法专用芯片有高性能、高稳定性的特点,但存在算法不能更改,集成多种算法时占用硬件空间大等问题,很容易造成资源浪费;基于纯软件的国密算法比较灵活,但是性能上完全不能跟专用芯片相比。基于FPGA的算法加速方法是结合FPGA的高速并行运算能力,提高算法性能,目前基于FPGA的处理一般为利用算法IP核或者专用芯片进行国密运算,这种方法极大提高了算法性能,但当前基于FPGA的算法处理存在以下问题:(1)单独基于FPGA的处理方式不能解决复杂的算法问题;(2)算法固定不能随意更改,目前基于FPGA的算法处理一般调用IP核或者算法专用芯片,如需改变算法,需换IP核或者算法芯片;(3)基于FPGA的处理方式在使用配套的FLASH或ROM芯片进行配置时,容易利用FLASH或ROM芯片回读程序,造成算法泄露,具有一定的安全隐患。为了解决以上存在的问题,人们一直在寻求一种理想的技术解决方案。
技术实现思路
本专利技术的目的是针对现有技术的不足,从而提供了一种基于CPU+FPGA的加解密方法及系统。为了实现上述目的,本专利技术所采用的技术方案是:一种基于CPU+FPGA的加解密方法,包括以下步骤:步骤1,CPU上电配置FPGA;步骤2,FPGA根据CPU发送的算法模式、加/解密指令、算法参数和使能信号对待处理数据进行加/解密处理并向CPU返回处理结果。基于上述,步骤1中CPU上电配置FPGA的具体步骤为:步骤1.1,上电初始化;步骤1.2,读取FLASH中内置的二进制FPGA配置文件,调用内置解密算法解密二进制FPGA配置文件,得到配置数据;步骤1.3,驱动FPGA的配置管脚,根据FPGA配置时序将配置数据写入FPGA;步骤1.4,判断FPGA配置DONE信号是否为高电平,若否,则返回执行步骤1.2,否则完成PFGA配置。基于上述,将二进制FPGA配置文件内置于FLASH中的步骤为:FPGA开发工具生成配置数据;上位机端的加密程序对配置数据加密后生成二进制FPGA配置文件;CPU将二进制FPGA配置文件烧写至FLASH中。基于上述,步骤2的具体分为:CPU端步骤2.1,CPU接收上位机下发的算法模式、算法参数、加/解密指令、密钥和待处理数据,判断中断是否响应,若响应,则通过GPIO口向FPGA发送算法模式、加/解密指令和使能信号;步骤2.2,CPU通过数据总线将待处理数据、密钥、算法参数发送给FPGA;步骤2.3,等待中断响应,并在检测到中断响应时通过数据总线从FPGA中读取加/解密结果;FPGA端步骤2.4,FPGA接收算法模式、加/解密指令和使能信号;步骤2.5,FPGA通过数据总线接收待处理数据、密钥和算法参数,根据加解密指令、密钥和算法参数采用算法模式对待处理数据进行加/解密算法处理,获得加/解密结果。基于上述,所述算法模式为SM4对称算法,该算法模式下,步骤2.2中,CPU通过数据总线将待处理数据、密钥、算法参数发送给FPGA;步骤2.5中,FPGA通过数据总线接收待处理数据、密钥和算法参数并存入FIFO中;算法模块从FIFO中读出SM4对称算法的算法参数、密钥和待处理数据,通过轮函数同时对密钥及待处理数据进行迭代处理,获得加/解密结果;FPGA将加/解密结果存入FIFO中,并通过GPIO口告知CPU已处理完成,待CPU通过数据总线从FIFO中读出加/解密结果基于上述,所述算法模式为SM3杂凑算法,该算法模式下,步骤2.2中,CPU将杂凑算法参数传给FPGA,并将要进行杂凑处理的数据填充打包处理后和密钥一起发送给FPGA,填充数据长度为512的倍数;步骤2.5中,FPGA通过数据总线接收SM3杂凑算法参数、填充数据和密钥存入FIFO中;FPGA从FIFO读取SM3杂凑算法参数存入RAM模块,将填充数据每512比特分组读出,并进行消息扩展及压缩运算;算法处理完成后,FPGA将加/解密结果和杂凑值存入FIFO中,通过GPIO口告知CPU,待CPU通过数据总线从FIFO中读出加/解密结果。本专利技术还提供一种基于CPU+FPGA的加解密系统,包括:CPU与FLASH连接,读取FLASH中内置的二进制FPGA配置文件,并调用内置解密算法解密二进制FPGA配置文件,得到配置数据;CPU与FPGA连接,驱动FPGA的配置管脚,根据FPGA配置时序将配置数据写入FPGA,并在FPGA配置DONE信号为高电平时结束配置,在FPGA配置DONE信号为低电平时重新进行FPGA的配置;FPGA包括GPIO口、FIFO模块、算法运算模块和RAM模块,所述GPIO口与CPU相连,用于接收CPU下发的算法模式、加/解密指令和使能信号;所述FIFO模块通过数据总线与CPU连接,在FPGA接收到使能信号后被激活,以接收CPU发送的待处理数据、密钥、算法参数以及向CPU发送加/解密结果;所述RAM模块,用于存储算法参数;所述算法运算模块,用于存储CPU下发的算法模式、加/解密指令,并根据加/解密指令采用算法模式对待处理数据进行加/解密处理。基于上述,所述算法模式包括SM3杂凑算法或SM4对称算法。基于上述,还包括上位机,所述上位机内置有FPGA开发工具和加密程序,所述FPGA开发工具用于生成配置数据;所述加密程序用于对配置数据加密以生成二进制FPGA配置文件;所述上位机通过PCIE接口与CPU上位机相连,接收上位机发送的算法模式、算法参数、加/解密指令、密钥和待处理数据以及向上位机发送加/解密结果。本专利技术相对现有技术具有突出的实质性特点和显著的进步,具体的说,针对FPGA没有复杂的算法处理能力,本专利技术通过CPU+FPGA模式的处理方式将复杂运算放入DSP完成,拓展了算法可重构能力;针对算法固定不可重构性,本专利技术利用FPGA的可重构特点,将加密算法移植到FPGA上实现,相比CPU大大提高了算法的处理速度,同时避免了使用IP核或者算法专用芯片,实现了算法的可重构性;针对FPGA使用配套FLASH或ROM烧写程序容易被回读问题,FPGA配置文件先由加密程序加密,加密后的文件由CPU烧写进Flash,上电时采用CPU上电配置FPGA,保证了FPGA程序不能被配置芯片回读,确保了加密的可靠性。附图说明图1是本专利技术的流程示意图。图2是本专利技术FPGA上电过程示意图。图3是本专利技术FPGA算法处理过程示意图。具体实施方式下面本文档来自技高网...
【技术保护点】
1.一种基于CPU+FPGA的加解密方法,其特征在于,包括以下步骤:/n步骤1,CPU上电配置FPGA;/n步骤2,FPGA根据CPU发送的算法模式、加/解密指令、算法参数和使能信号对待处理数据进行加/解密处理并向CPU返回处理结果。/n
【技术特征摘要】
1.一种基于CPU+FPGA的加解密方法,其特征在于,包括以下步骤:
步骤1,CPU上电配置FPGA;
步骤2,FPGA根据CPU发送的算法模式、加/解密指令、算法参数和使能信号对待处理数据进行加/解密处理并向CPU返回处理结果。
2.根据权利要求1所述的国密算法实现方法,其特征在于,步骤1中CPU上电配置FPGA的具体步骤为:
步骤1.1,上电初始化;
步骤1.2,读取FLASH中内置的二进制FPGA配置文件,调用内置解密算法解密二进制FPGA配置文件,得到配置数据;
步骤1.3,驱动FPGA的配置管脚,根据FPGA配置时序将配置数据写入FPGA;
步骤1.4,判断FPGA配置DONE信号是否为高电平,若否,则返回执行步骤1.2,否则完成PFGA配置。
3.根据权利要求2所述的国密算法实现方法,其特征在于,将二进制FPGA配置文件内置于FLASH中的步骤为:
FPGA开发工具生成配置数据;
上位机端的加密程序对配置数据加密后生成二进制FPGA配置文件;
CPU将二进制FPGA配置文件烧写至FLASH中。
4.根据权利要求1-3任一项所述的国密算法实现方法,其特征在于:步骤2的具体分为:
CPU端
步骤2.1,CPU接收上位机下发的算法模式、算法参数、加/解密指令、密钥和待处理数据,判断中断是否响应,若响应,则通过GPIO口向FPGA发送算法模式、加/解密指令和使能信号;
步骤2.2,CPU通过数据总线将待处理数据、密钥、算法参数发送给FPGA;
步骤2.3,等待中断响应,并在检测到中断响应时通过数据总线从FPGA中读取加/解密结果;
FPGA端
步骤2.4,FPGA接收算法模式、加/解密指令和使能信号;
步骤2.5,FPGA通过数据总线接收待处理数据、密钥和算法参数,根据加解密指令、密钥和算法参数采用算法模式对待处理数据进行加/解密算法处理,获得加/解密结果。
5.根据权利要求4所述的国密算法实现方法,其特征在于,所述算法模式为SM4对称算法,该算法模式下,步骤2.2中,CPU通过数据总线将待处理数据、密钥、算法参数发送给FPGA;
步骤2.5中,FPGA通过数据总线接收待处理数据、密钥和算法参数并存入FIFO中;算法模块从FIFO中读出SM4对称算法的算法参数、密钥和待处理数据,通过轮函数同时对密钥及待处理数据进行迭代处理,获得加/解密结果;
【专利技术属性】
技术研发人员:唐智强,易凡,吴光珩,鲁艳,柯德营,汪淼,焦少波,陈鑫,王鹏,
申请(专利权)人:郑州信大先进技术研究院,
类型:发明
国别省市:河南;41
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。