基于粗粒度可重构计算单元的PRESENT加密算法实现方法及系统与流程

文档序号:18868899发布日期:2019-10-14 19:02阅读:201来源:国知局
基于粗粒度可重构计算单元的PRESENT加密算法实现方法及系统与流程

本发明涉及嵌入式可重构系统领域,尤其涉及一种应用于信息安全领域的基于大规模粗粒度可重构计算系统及其处理方法。



背景技术:

信息领域中密码算法的实现通常采用通用处理器(gpp,generalpurposeprocessor)与专用集成电路(asic,applicationspecificintegratedcircuit)两种方案。其中,asic的实现方案通过对所实现的密码算法进行特定的优化可以取得极高的单位面积性能和单位能量性能,然而该实现方案不具备灵活性,难以满足不同算法的实现需求,不是理想的方案。gpp的实现方案采用指令执行的方式,运算部件采用通用结构,通过指令编程实现不同类型的密码算法,具备较高灵活性,因此,gpp作为密码算法的实现方案能够充分满足其可重构的需求。但是,gpp的运算部件是通用结构,没有针对密码算法做特征优化,密码算法中的核心计算部件,如s盒、置换操作等的计算效率低下,从而导致整体算法性能下降。

粗粒度可重构计算结合了gpp与asic的优点,可以在保证灵活性的前提下,同时具备asic的高效率特性。在粗粒度可重构系统中,计算资源的功能和互连可以通过配置信息改变,通过配置信息的更换完成不同密码算法,并且在运算执行过程中,可重构系统为类似asic的数据驱动形式,因而可以获得较高的计算性能。

目前,国内外科研机构提出了多种基于粗粒度可重构技术的密码算法实现架构,例如针对分组密码算法的cobra,针对与包含或非操作密码算法的coarx,针对分组和杂凑密码算法的cryptoraptor等。但是,上述这些可重构阵列的配置系统与计算阵列较为简单,而在present加密算法方法的运算中,计算较为复杂,且执行轮数较多,运算过程中会产生大量的缓存数据,因此算法的运算性能较低下,可见传统的可重构计算系统在present加密算法的面积效率和能量效率方面存在不足。



技术实现要素:

本发明的目的是在于克服现有技术中存在的不足,提供一种基于粗粒度可重构计算单元的present加密算法系统,利用粗粒度可重构技术计算资源丰富、功能灵活可配置、并行计算能力强等技术特点,通过提高对present加密算法算法在可重构计算阵列上的并行展开,同时优化计算过程中的中间数据缓存,实现present加密算法的高效运算。本发明采用的技术方案是:

一种基于粗粒度可重构计算单元的present加密算法系统,包括可重构配置系统、可重构数据通路及计算模块、主控微处理器、系统总线;

其中,所述可重构配置系统包括配置信息初始化接口、多级配置信息存储单元、配置信息解析模块、配置信息寄存器;

配置信息初始化接口连接多级配置信息存储单元,多级配置信息存储单元连接配置信息解析模块,配置信息解析模块连接配置信息寄存器;

配置信息初始化接口用于对接主控微处理器,以接收配置信息;多级配置信息存储单元用于缓存配置信息;配置信息解析模块用于对接收的配置信息进行格式解析;位置信息寄存器用于缓存格式解析后的配置信息,供可重构数据通路及计算模块读取;

所述配置信息寄存器的输出端连接可重构数据通路及计算模块;

所述可重构数据通路及计算模块包括可重构计算阵列、寄存器通道、中间结果存储单元、输入先进先出寄存器组、输出先进先出寄存器组;

所述可重构计算阵列包括可重构计算单元块,可重构计算单元块包括多行算子、读控制模块、写控制模块;

其中,算子包括逻辑运算、算术运算、移位运算、查表运算功能;

所述读控制模块和写控制模块用于完成可重构计算单元块与输入先进先出寄存器组、输出先进先出寄存器组、寄存器通道、中间结果存储单元的数据读写控制;

所述主控微处理器通过系统总线与配置信息初始化接口、输入先进先出寄存器组、输出先进先出寄存器组相连;所述的输入先进先出寄存器组与可重构计算阵列的输入相连,可重构计算阵列的输出与输出先进先出寄存器相连;所述的寄存器通道、中间结果存储单元与可重构计算阵列相连;

通过分析present加密算法的计算特征,确定加密运算流程如何在可重构架构上实现,将present加密算法中若干轮运算展开成一幅数据流图映射到可重构计算阵列中,通过依次映射多幅数据流图最终完成present加密算法的整个运算;

主控微处理器通过系统总线发送明文数据给可重构数据通路及计算模块,可重构数据通路及计算模块将明文数据存入输入先入先出寄存器组,可重构计算阵列完成加密运算后输出密文数据到输出先入先出寄存器组,并向主控微处理器发送中断信号,微处理器接受到中断信号后,读出存储于输出先入先出寄存器组中的密文数据。

进一步地,所述的可重构数据通路及计算模块包括1个可重构计算阵列、1个中间结果存储单元、1个寄存器通道、1个输入先入先出寄存器组和1个输出先入先出寄存器组;其中,1个可重构计算阵列通过1个中间结果存储单元和1个寄存器通道互相进行数据的储存、读取和传递;所述的1个可重构计算阵列包括m个可重构计算单元块,其中m为正整数。

更进一步地,m=4。

进一步地,所述的可重构计算单元块包含n行计算资源,每n行计算资源共享1个读控制模块和1个写控制模块,其中n为正偶数;其中,奇数行和偶数行的算子类型不同。

更进一步地,所述的n行计算资源中,每行包括p个算子,p为正整数;奇数行的算子包含逻辑运算、算术运算、移位运算、置换运算;偶数行的算子包含逻辑运算、算术运算、移位运算、查表运算;其中,逻辑运算包括一个操作数的直通操作、取反操作,两个操作数的异或操作、与操作、或操作;算术运算包括两个算子的加法操作、带取模的加法操作;移位运算包括算术左移操作、循环左移操作、算术右移操作、循环右移操作;查表运算包括最多4路并行的查表操作,查表操作数据位宽从4比特到32比特;置换运算由1个64比特的无阻塞网络构成,支持64比特数据的任意置换;作为优选方案,所述的可重构计算单元块包含8行计算资源,每行包括4个算子。

进一步地,该系统的present加密算法包括如下步骤,对于密钥长度为80比特,明文数据位宽为64比特,31轮迭代的加密算法,按步骤(1)~(4)顺序操作,其中步骤(1)执行1次,步骤(2)~(4)依次循环执行31次;

(1)初始化:经过扩展后的密钥k依次通过可重构计算单元块中算子的直通操作,存储到中间结果存储单元中;可重构计算单元块中查找表的值由主控微处理器通过配置信息初始化接口写入到可重构计算阵列中;

直通操作如图2a中第0行计算资源所示;逻辑运算、算术运算、移位运算、查表运算的算子支持32位的操作,置换运算的算子支持64位的操作;

(2)计算密钥加结果a[i]:将明文数据p_text[i]读取到可重构计算单元块中,将算子配置成异或功能,将p_text[i]与密钥k进行异或,完成密钥加结果的计算(其中0≤i≤63);

如图2b中第0行计算资源所示;

(3)计算查表结果b[i]:将算子配置成查表操作,将a[i]以4比特为一个组,分成16组,同时查找16个查找表,完成查表操作;

如图2b中第1行计算资源所示;

(4)计算置换结果c[i]:将算子配置成置换功能,将b[63:0]通过置换得到c[63:0],前30轮的c[i]输入到步骤(2)的a[i]进行运算,第31轮的c[i]即密文。

一种基于粗粒度可重构计算单元的present加密算法的实现方法,包括以下步骤:

(1)分析present加密算法的计算特点,并完成数据流图的设计;

(2)确定数据流图之后,针对可重构计算阵列的硬件特点,在了解其配置系统、数据通路、计算阵列各功能模块的作用机制的情况下,将数据流图映射到可重构计算阵列上,并生成配置信息;

(3)由主控微处理器将可重构计算阵列的配置信息以及加密算法的各初始数据发送至可重构计算阵列;

(4)主控微处理器向可重构计算单元块发起开始加密的命令,完成对其的配置,并启动加密过程;

(5)可重构计算阵列完成当前加密任务后,发送中断信号,主控微处理器接受到中断信号,完成加密过程。

本发明的优点:本发明针对present加密算法,通过将加密运算的多轮迭代过程在可重构运算单元中展开并利用数据缓存的方式进行算法实现的性能优化和加速;实现present加密算法的高效运算。

附图说明

图1为本发明的加密算法系统结构示意图。

图2a和图2b为本发明的算法在可重构计算单元块上的运算流程图。

具体实施方式

下面结合具体附图和实施例对本发明作进一步说明。

如图1所示,一种基于粗粒度可重构计算单元的present加密算法系统,包括可重构配置系统、可重构数据通路及计算模块、主控微处理器、系统总线;

其中,所述可重构配置系统包括配置信息初始化接口、多级配置信息存储单元、配置信息解析模块、配置信息寄存器;

配置信息初始化接口连接多级配置信息存储单元,多级配置信息存储单元连接配置信息解析模块,配置信息解析模块连接配置信息寄存器;

可重构配置系统中,配置信息初始化接口用于对接主控微处理器,以接收配置信息;多级配置信息存储单元用于缓存配置信息;配置信息解析模块用于对接收的配置信息进行格式解析;位置信息寄存器用于缓存格式解析后的配置信息,供可重构数据通路及计算模块读取;

所述配置信息寄存器的输出端连接可重构数据通路及计算模块;

所述可重构数据通路及计算模块包括可重构计算阵列、寄存器通道、中间结果存储单元、输入先进先出寄存器组、输出先进先出寄存器组;

所述可重构计算阵列包括可重构计算单元块,可重构计算单元块包括多行算子、读控制模块、写控制模块;

其中,算子包括逻辑运算、算术运算、移位运算、查表运算功能;

所述读控制模块和写控制模块用于完成可重构计算单元块与输入先进先出寄存器组、输出先进先出寄存器组、寄存器通道、中间结果存储单元的数据读写控制;

所述主控微处理器通过系统总线与配置信息初始化接口、输入先进先出寄存器组、输出先进先出寄存器组相连;所述的输入先进先出寄存器组与可重构计算阵列的输入相连,可重构计算阵列的输出与输出先进先出寄存器相连;所述的寄存器通道、中间结果存储单元与可重构计算阵列相连;

通过分析present加密算法的计算特征,确定加密运算流程如何在可重构架构上实现,将present加密算法中若干轮运算展开成一幅数据流图映射到可重构计算阵列中,通过依次映射多幅数据流图最终完成present加密算法的整个运算;

主控微处理器通过系统总线发送明文数据给可重构数据通路及计算模块,可重构数据通路及计算模块将明文数据存入输入先入先出寄存器组,可重构计算阵列完成加密运算后输出密文数据到输出先入先出寄存器组,并向主控微处理器发送中断信号,微处理器接受到中断信号后,读出存储于输出先入先出寄存器组中的密文数据。

所述的可重构数据通路及计算模块包括1个可重构计算阵列、1个中间结果存储单元、1个寄存器通道、1个输入先入先出寄存器组和1个输出先入先出寄存器组;其中,1个可重构计算阵列通过1个中间结果存储单元和1个寄存器通道互相进行数据的储存、读取和传递;所述的1个可重构计算阵列包括m个可重构计算单元块,其中m为正整数;作为优选方案,1个可重构计算阵列包括4个可重构计算单元块;

所述的可重构计算单元块包含n行计算资源,每n行计算资源共享1个读控制模块和1个写控制模块,其中n为正偶数;其中,奇数行和偶数行的算子类型不同;

所述的n行计算资源中,每行包括p个算子,p为正整数;奇数行的算子包含逻辑运算、算术运算、移位运算、置换运算;偶数行的算子包含逻辑运算、算术运算、移位运算、查表运算;其中,逻辑运算包括一个操作数的直通操作、取反操作,两个操作数的异或操作、与操作、或操作;算术运算包括两个算子的加法操作、带取模的加法操作;移位运算包括算术左移操作、循环左移操作、算术右移操作、循环右移操作;查表运算包括最多4路并行的查表操作,查表操作数据位宽从4比特到32比特;置换运算由1个64比特的无阻塞网络构成,支持64比特数据的任意置换;作为优选方案,所述的可重构计算单元块包含8行计算资源,每行包括4个算子。

如图2a、图2b所示为加密算法在可重构计算阵列上的执行流图,该系统的present加密算法包括如下步骤,对于密钥长度为80比特,明文数据位宽为64比特,31轮迭代的加密算法,按步骤(1)~(4)顺序操作,其中步骤(1)执行1次,步骤(2)~(4)依次循环执行31次;

(1)初始化:经过扩展后的密钥k依次通过可重构计算单元块中算子的直通操作,存储到中间结果存储单元中;可重构计算单元块中查找表的值由主控微处理器通过配置信息初始化接口写入到可重构计算阵列中;

直通操作如图2a中第0行计算资源所示;逻辑运算、算术运算、移位运算、查表运算的算子支持32位的操作,置换运算的算子支持64位的操作;

(2)计算密钥加结果a[i]:将明文数据p_text[i]读取到可重构计算单元块中,将算子配置成异或功能,将p_text[i]与密钥k进行异或,完成密钥加结果的计算(其中0≤i≤63);

如图2b中第0行计算资源所示;

(3)计算查表结果b[i]:将算子配置成查表操作,将a[i]以4比特为一个组,分成16组,同时查找16个查找表,完成查表操作;

如图2b中第1行计算资源所示;

(4)计算置换结果c[i]:将算子配置成置换功能,将b[63:0]通过置换得到c[63:0],前30轮的c[i]输入到步骤(2)的a[i]进行运算,第31轮的c[i]即密文。

基于粗粒度可重构计算单元的present加密算法的实现方法,包括以下步骤:

(1)分析present加密算法的计算特点,并完成数据流图的设计;

(2)确定数据流图之后,针对可重构计算阵列的硬件特点,在了解其配置系统、数据通路、计算阵列各功能模块的作用机制的情况下,将数据流图映射到可重构计算阵列上,并生成配置信息;

(3)由主控微处理器将可重构计算阵列的配置信息以及加密算法的各初始数据发送至可重构计算阵列;

(4)主控微处理器向可重构计算单元块发起开始加密的命令,完成对其的配置,并启动加密过程;

(5)可重构计算阵列完成当前加密任务后,发送中断信号,主控微处理器接受到中断信号,完成加密过程。

以上实现present加密算法方法,需要根据算法特点将其转化为数据流图;然后根据数据流图和可重构系统的硬件特征,将数据流图映射到可重构计算阵列上,并生成相应的配置信息;由主控微处理器进行对可重构计算阵列的配置及数据传输,由此实现present加密算法方法。

最后应说明的是,以上具体实施方式仅用以说明本发明的技术方案而非限制,尽管参照实例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1