国密SM4算法的可扩展高吞吐率的实现方法及装置制造方法及图纸

技术编号:9866288 阅读:328 留言:0更新日期:2014-04-03 02:28
本发明专利技术提供一种国密SM4算法的可扩展高吞吐率的实现方法及装置,涉及信息安全技术和集成电路设计领域。该方法包含步骤:S1、处理器将待处理的命令信息、数据信息、密钥信息按预定义的格式封装成数据包;S2、处理器启动DMA,SM4模块自动解析所述数据包;S3、SM4控制单元从所述命令FIFO读取命令信息,启动密钥扩展单元,依据输入数据FIFO发送的密钥信息进行密钥扩展,SM4控制单元依据分组工作模式字段信息启动分组运算单元,对发送的数据信息进行加/解密运算;S4、将分组运算单元进行加/解密运算结果写入输出数据FIFO;DMA通过输出接口从输出数据FIFO读取加/解密运算结果。本发明专利技术通过数据包、双总线接口和并行处理技术,提高了国密SM4算法实现方法的吞吐率。

【技术实现步骤摘要】
国密SM4算法的可扩展高吞吐率的实现方法及装置
本专利技术涉及信息安全技术和集成电路设计领域,具体涉及一种国密SM4算法的可扩展高吞吐率的实现方法及装置。
技术介绍
随着信息技术的发展,政府、企业等对安全通讯以及存储数据的安全要求越来越高。国密算法(如SM4等)正被广泛地应用与经济、军事、行政等各部门,保护信息的安全性。SM4国密算法是我国公开发布的第一个商用密码分组算法,是一种对称的分组密码体制,其密钥长度和分组长度都固定为128位。目前市场上针对安全移动存储、安全通讯的加解密设备主要采用软件实现。这些方法安全度低,容易被攻破,非常不适合金融、涉密机构等安全要求高的用户使用。而采用硬件实现的设备,虽然安全度提高了,但是其速度一般比较低,远远不能满足用户的高速度要求。现有国密SM4算法的实现,通常采用“串行“工作方式,CPU先把数据写入SM4模块,启动SM4运算,CPU等待SM4运算完成中断,CPU再把结果读走;然后重复上述循环。也就是说,下一次SM4运算,必须等候上次完成。这样,SM4模块常常因为等候数据的输入输出而空闲,从而导致吞吐率非常低。并且,分组运算前都进行密钥扩展(不管密钥更新与否),这也降低了吞吐量。可见,为了满足相关领域大批量高速实时加解密的市场要求,国密SM4算法的高速实现显得十分重要。
技术实现思路
(一)解决的技术问题针对现有技术的不足,本专利技术提供一种国密SM4算法的可扩展高吞吐率的实现方法及装置,使得解决了国密SM4算法的吞吐率低的问题。(二)技术方案为实现以上目的,本专利技术通过以下技术方案予以实现:一种国密SM4算法的可扩展高吞吐率的实现方法,其特征在于,包含以下步骤:S1、处理器将待处理的命令信息、数据信息、密钥信息按预定义的格式封装成数据包;S2、处理器启动DMA,DMA将所述数据包通过输入接口写入SM4模块,SM4模块自动解析所述数据包,将所述数据包中的命令信息存入命令FIFO,将所述数据包中的数据信息、密钥信息存入输入数据FIFO ;S3、SM4控制单元从所述命令FIFO读取命令信息,根据所读取的命令信息中的更新密钥字段key_updt信息,启动密钥扩展单元,所述密钥扩展单元依据所述输入数据FIFO所发送的密钥信息进行密钥扩展,密钥扩展完成后,所述SM4控制单元依据所述分组工作模式字段blockjnode信息启动分组运算单元,所述分组运算单元对所述输入数据FIFO发送的数据信息进行加/解密运算;S4、将所述分组运算单元进行加/解密运算结果写入输出数据FIFO ;所述DMA通过输出接口从所述输出数据FIFO读取加/解密运算结果。优选的,所述数据包的命令信息进一步包括承前字段is_cont信息,所述SM4控制单元依据该字段信息,直接启动分组运算单元,对所述输入数据FIFO所传输的数据信息在前一次数据包处理的基础上进行加/解密运算。优选的,当所述分组工作模式字段blockjnode信息为并行处理模式时,SM4控制单元自动分发相应分组到各分组运算单元,分组运算单元进行分组级别的并行运算;当所述分组工作模式字段blockjnode信息为串行处理模式时,SM4控制单元自动分发不同的数据包到不同的分组运算单元,分组运算单元进行数据包级别的并行运算。本专利技术还提供了一种国密SM4算法的可扩展高吞吐率的装置,包括:输入接口、命令FIFO、输入数据FIFO、SM4控制单元、密钥扩展单元、分组运算单元、输出数据FIFO、输出接口,其中,所述输入接口,处理器启动DMA后,DMA将数据包通过输入接口写入SM4模块;所述命令FIF0,接收SM4模块自动解析出数据包中的命令信息;所述输入数据FIF0,接收SM4模块自动解析出数据包中的数据信息和密钥信息;所述SM4控制单元,从所述命令FIFO读取命令信息,根据所读取的命令信息中的更新密钥字段key_updt信息,启动密钥扩展单元;所述密钥扩展单元,依据所述输入数据FIFO所发送的密钥信息进行密钥扩展,密钥扩展完成后,所述SM4控制单元依据所述分组工作模式字段blockjnode信息启动分组运算单元,所述分组运算单元对所述输入数据FIFO发送的数据信息进行加/解密运算;所述输出数据FIF0,接收所述分组运算单元处理完成的数据,并通过输出接口将运算结果发送给所述DMA。优选的,所述数据包的命令信息进一步包括承前字段is_cont信息,所述SM4控制单元依据该字段信息,直接启动分组运算单元,对所述输入数据FIFO所传输的数据信息在前一次数据包处理的基础上进行加/解密运算。优选的,当所述分组工作模式字段blockjnode信息为并行处理模式时,SM4控制单元自动分发相应分组到各分组运算单元,分组运算单元进行分组级别的并行运算;当所述分组工作模式字段blockjnode信息为串行处理模式时,SM4控制单元自动分发不同的数据包到不同的分组运算单元,分组运算单元进行数据包级别的并行运算。(三)有益效果本专利技术提供了一种国密SM4算法的可扩展高吞吐率的实现方法及装置,通过采用双总线接口技术,DMA通过输入接口将数据包传输给SM4模块,SM4模块的将数据包分解为命令信息、数据信息和密钥信息,SM4控制单元接收命令信息后,对密钥扩展单元和运算控制单元进行相应的控制,运算控制单元运算结束通过输出接口再行传输给DMA。本专利技术通过数据包和双总线接口技术能够让SM4模块类似于数据流形式地进行工作,数据输入和输出相互不影响,从而减少了分组处理时间,提高了吞吐率。本专利技术通过定义了数据包的格式,在SM4模块中进行相应的分割,方便了 DMA模块的操作,并且只有在密钥更新时,才进行密钥扩展,进而减少了不需要的密钥扩展,以此减少了总的处理时间,从而提高了吞吐率。本专利技术为了支持大数据的加/解密运算(例如,>1GB数据),将数据拆分多次运算,通过在命令信息中增加承前字段iS_cont信息,所述SM4控制单元依据该字段信息,在该字段为I时,继续在前一次数据包处理的基础上直接启动分组运算单元对所述输入数据FIFO所数传的数据进行运算。本专利技术通过选择合适的分组运算单元数目,进行并行运算,使得本专利技术具有很有的灵活性和扩展性,能够很好的ASIC/FPGA的面积开销和时钟频率的关系。【附图说明】为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1、为本专利技术实施例的一种提高国密SM4算法吞吐率的方法的流程示意图;图2、为本专利技术实施例的一种提高国密SM4算法吞吐率的方法的流程原理图;图3、为本专利技术实施例的运算控制单元并行运算的流程示意图;图4、为本专利技术实施例的SM4系统示意图。【具体实施方式】为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的本文档来自技高网...

【技术保护点】
一种国密SM4算法的可扩展高吞吐率的实现方法,其特征在于,包含以下步骤:S1、处理器将待处理的命令信息、数据信息、密钥信息按预定义的格式封装成数据包;S2、处理器启动DMA,DMA将所述数据包通过输入接口写入SM4模块,SM4模块自动解析所述数据包,将所述数据包中的命令信息存入命令FIFO,将所述数据包中的数据信息、密钥信息存入输入数据FIFO;S3、SM4控制单元从所述命令FIFO读取命令信息,根据所读取的命令信息中的更新密钥字段key_updt信息,启动密钥扩展单元,所述密钥扩展单元依据所述输入数据FIFO所发送的密钥信息进行密钥扩展,密钥扩展完成后,所述SM4控制单元依据所述分组工作模式字段block_mode信息启动分组运算单元,所述分组运算单元对所述输入数据FIFO发送的数据信息进行加/解密运算;S4、将所述分组运算单元进行加/解密运算结果写入输出数据FIFO;所述DMA通过输出接口从所述输出数据FIFO读取加/解密运算结果。

【技术特征摘要】
1.一种国密SM4算法的可扩展高吞吐率的实现方法,其特征在于,包含以下步骤: 51、处理器将待处理的命令信息、数据信息、密钥信息按预定义的格式封装成数据包; 52、处理器启动DMA,DMA将所述数据包通过输入接口写入SM4模块,SM4模块自动解析所述数据包,将所述数据包中的命令信息存入命令FIFO,将所述数据包中的数据信息、密钥信息存入输入数据FIFO ; 53、SM4控制单元从所述命令FIFO读取命令信息,根据所读取的命令信息中的更新密钥字段key_updt信息,启动密钥扩展单元,所述密钥扩展单元依据所述输入数据FIFO所发送的密钥信息进行密钥扩展,密钥扩展完成后,所述SM4控制单元依据所述分组工作模式字段blockjnode信息启动分组运算单元,所述分组运算单元对所述输入数据FIFO发送的数据信息进行加/解密运算; 54、将所述分组运算单元进行加/解密运算结果写入输出数据FIFO;所述DMA通过输出接口从所述输出数据FIFO读取加/解密运算结果。2.如权利要求1所述的方法,其特征在于,所述数据包的命令信息进一步包括承前字段iS_cont信息,所述SM4控制单元依据该字段信息,直接启动分组运算单元,对所述输入数据FIFO所传输的数据信息在前一次数据包处理的基础上进行加/解密运算。3.如权利要求1所述的方法,其特征在于,当所述分组工作模式字段blockjnode信息为并行处理模式时,SM4控制单元自动分发相应分组到各分组运算单元,分组运算单元进行分组级别的并行运算;当所述分组工作模式字段blockjnode信息为串行处理模式时,SM4控制单元自动分发不同的数据包到不同的分组运算单元,分组运算单元进行数据包级别的并行运算。4.一种国密SM...

【专利技术属性】
技术研发人员:冷祥纶俞伟卢鼎何勇
申请(专利权)人:北京民芯科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1