首页> 中国专利> 一种3DES加密解密算法可重构计算实现装置及其可重构计算方法

一种3DES加密解密算法可重构计算实现装置及其可重构计算方法

摘要

本发明提出一种3DES加密解密算法可重构计算实现装置及其可重构计算方法,包括3DES加解密控制器,通过有限状态机控制算法流程的执行,接收来自调度器的配置字,对运算单元配置,形成相应的计算电路功能;源数据地址产生和数据分发模块,从源数据保存单元按顺序读取源数据,并送入计算单元;子密钥生成模块,将初始密钥进行处理,得出三重加解密计算轮函数中需要48个的子密钥;三重加解密计算模块,用于完成3DES加密解密运算;结果数据地址产生和数据分发模块,接收算法模块的计算结果按顺序存入结果存储单元;可重构加解密S盒,根据计算模块的需求,通过ROM完成算法中S盒映射;SRAM存储模块,存储待计算的源数据和计算完成的结果数据。

著录项

  • 公开/公告号CN112199325A

    专利类型发明专利

  • 公开/公告日2021-01-08

    原文格式PDF

  • 申请/专利权人 南京大学;

    申请/专利号CN202011165615.1

  • 申请日2020-10-27

  • 分类号G06F15/78(20060101);G06F21/60(20130101);

  • 代理机构32360 南京泰普专利代理事务所(普通合伙);

  • 代理人张磊

  • 地址 210023 江苏省南京市栖霞区仙林大道163号

  • 入库时间 2023-06-19 09:30:39

说明书

技术领域

本发明涉及一种3DES加密解密算法可重构计算实现装置及其可重构计算方法,属于SoC数字电路设计中加密解密算法硬件实现的技术领域。

背景技术

3DES是DES加密算法的扩展,通过对每个数据块应用3次DES加密,将有效密钥长度从56位扩展到168位,极大的扩展了密钥空间,加密的安全性大大提高,所以在安全加密领域应用十分广泛。

可重构计算是一种计算机体系结构,与常见微处理器的区别在于,这种结构既具有软件的灵活性又具有硬件的高速计算速度。可重构计算可以将计算阵列构建成专门执行一项运算,计算速度与专用集成电路相当,并且在一项运算完成后,还可以将计算阵列构建成专门执行另一项工作。

现有技术中3DES加解密电路往往通过专用集成电路或FPGA的方式实现,前者电路在生产确定后便不可更改,后者虽然具有一定的灵活性但是芯片成本较高。使用可重构计算实现3DES加解密电路可以在保证高计算速度的同时,大大提高3DES加解密算法和其他算法的集成度。

发明内容

发明目的:一个目的是提供一种3DES加密解密算法可重构计算实现装置,在保证高效率的运算的同时,通过可重构的方式实现对其他加解密算法的兼容,提高加解密芯片的应用范围。进一步目的是提供一种基于上述装置的可重构计算方法。

技术方案:一种3DES加密解密算法可重构计算实现装置,包括如下模块:

用于控制算法流程执行的3DES加解密控制器;

用于从源数据保存单元按顺序读取源数据并送入计算单元的源数据地址产生和数据分发模块;

用于对初始密钥进行处理并得出子密钥的子密钥生成模块;

用于将数据进行加密或解密运算的三重加解密计算模块;

用于接收算法模块的计算结果、并按顺序存入结果存储单元的结果数据地址产生和数据分发模块;

可重构加解密S盒、以及存储待计算的源数据和计算完成的结果数据的SRAM存储模块。

在进一步的实施例中,3DES加解密控制器的核心为有限状态机FSM,控制算法流程的执行,接收来自调度器的配置字,对运算单元配置,形成相应的计算电路功能;根据算法执行阶段参数,启动并控制读取源数据或启动并控制写结果数据;该模块与源数据地址产生和数据分发模块、子密钥生成模块、三重加解密计算模块、结果数据地址产生和数据分发模块相连接。

在进一步的实施例中,所述源数据地址产生和数据分发模块从源数据保存单元按顺序读取源数据,读取数据送入计算单元;该模块与3DES加解密控制器、SRAM存储模块、子密钥生成模块、三重加解密计算模块相连接。

在进一步的实施例中,所述子密钥生成模块将初始密钥进行处理,得出三重加解密计算轮函数中需要48个的子密钥;该模块与源数据地址产生和数据分发模块、三重加解密计算模块相连接。

在进一步的实施例中,所述三重加解密计算模块将数据进行加密或解密运算;该模块与源数据地址产生和数据分发模块、三重加解密计算模块、可重构加解密S盒、结果数据地址产生和数据分发模块相连接。

在进一步的实施例中,所述结果数据地址产生和数据分发模块,接收算法模块的计算结果按顺序存入结果存储单元。该模块与三重加解密计算模块、SRAM存储模块相连接。

在进一步的实施例中,所述可重构加解密S盒根据计算模块的需求,通过ROM完成算法中S盒映射。该模块与三重加解密计算模块相连接。

一种3DES加密解密算法可重构计算方法,包括如下步骤:

步骤1、3DES加解密控制器接收到来自调度器的计算开始信号、加密解密选择信号和分组模式配置信号以及数据总长度参数,输出源数据读取信号。分组模式配置信号可以选择两种源数据的分组模式:使用电码本(ECB)和密码分组链接(CBC);

步骤2、源数据地址生成模块接收到来自加解密控制器的源数据读取信号,生成读取地址与SRAM存储模块使能信号;SRAM存储模块每次输出64bit读取数据与数据有效信号,传给源数据分发模块;源数据分发模块根据输入的数据有效信号每次将64bit数据和加解密计算开始信号输出;

步骤3、子密钥生成模块将初始密钥进行处理,得出三重加解密计算轮函数中需要48个的子密钥。

在进一步的实施例中,子密钥生成模块在工作时,64位初始密钥先去除第8、16、24、32、40、48、56、64共8位奇偶校验位,剩下56位进行PC-1置换,得到新的56位数据按照高低28位分为左右两部分,进入16轮迭代。在每轮迭代中,先根据轮次将数据进行循环左移,再经过PC-2压缩置换得出每轮的48位子密钥Ki。这样,3个64位初始密钥将得到48个子密钥;

在进一步的实施例中,三重加解密计算模块每次接收64bit源数据与计算开始信号,在加密过程中,64位明文先进行初始置换,得到按一定规律打乱的新64位数据,根据高低32位分为L0和R0,接下来进入48轮迭代。每一轮都将上一轮的Ri-1作为本轮的Li,将上一轮的Li-1作为本轮的Ri,输入到轮函数F(Ki-1,Ri-1)中进行运算,得到32位输出。在1~15轮每次运算后都左右交换,第16轮左右不进行交换。得到的两个32位结果拼接成64位结果,进行逆初始置换,得到3DES加密的结果。其中48轮迭代通过重复调用1~16轮迭代计算完成。

在进一步的实施例中,可重构加解密S盒负责完成轮函数F(Ki-1,Ri-1)=P(S(E(Ri-1)⊕Ki))中S函数的部分,计算模块输出S盒源数据,可重构加解密S盒根据源数据生成读取地址和ROM使能信号,随后将ROM读取结果输出给三重加解密计算模块,可重构加解密S盒8路并行,48位地址数据分为8个6位地址数据。

有益效果:本发明提出了一种3DES加密解密算法可重构计算实现装置及其可重构计算方法,在具备专用集成电路超高速计算特点的同时,采用可重构计算的方式可以实现与其他算法尤其是使用非线性S盒加解密算法的兼容,大大提高了芯片的集成度和应用范围。

附图说明

图1是3DES加密解密算法可重构计算实现中整体架构的示意图。

图2是3DES加密解密算法可重构计算实现中3DES算法实现流程图。

图3是3DES加密解密算法可重构计算实现中3DES算法计算流程图,图中以加密过程为例。

具体实施方式

在下文的描述中,给出了大量具体的细节以便提供对本发明更为彻底的理解。然而,对于本领域技术人员而言显而易见的是,本发明可以无需一个或多个这些细节而得以实施。在其他的例子中,为了避免与本发明发生混淆,对于本领域公知的一些技术特征未进行描述。

实施例一

3DES加密解密算法可重构计算实现如图1所示,包括3DES加解密控制器,源数据地址产生和数据分发模块,子密钥生成模块,三重加解密计算模块,结果数据地址产生和数据分发模块,可重构加解密S盒,SRAM存储模块。所述3DES加解密控制器分别与源数据地址产生和数据分发模块、子密钥生成模块、三重加解密计算模块、结果数据地址产生和数据分发模块相连接,实现计算流程的整体控制;所述源数据地址产生和数据分发模块与3DES加解密控制器、SRAM存储模块、子密钥生成模块、三重加解密计算模块相连接,实现源数据的读取和分发;所述子密钥生成模块与源数据地址产生和数据分发模块、三重加解密计算模块相连接,根据初始密钥计算得出3DES计算过程所需子密钥;所述三重加解密计算模块与源数据地址产生和数据分发模块、三重加解密计算模块、可重构加解密S盒、结果数据地址产生和数据分发模块相连接,接收源数据与子密钥,对源数据进行加密解密计算;所述结果数据地址产生和数据分发模块与三重加解密计算模块、SRAM存储模块相连接,将计算完成的数据根据一定的地址按顺序存入SRAM存储模块中;所述可重构加解密S盒与三重加解密计算模块相连接,根据计算模块的需求从ROM中读取并返回数据;所述SRAM存储模块与源数据地址产生和数据分发模块,结果数据地址产生和数据分发模块相连接,负责存储源数据与结果数据。

实施例二

3DES加密解密算法可重构计算实现分为以下步骤:

(1)3DES加解密控制器接收到来自调度器的计算开始信号、加密解密选择信号和分组模式配置信号以及数据总长度参数,输出源数据读取信号。分组模式配置信号可以选择两种源数据的分组模式:使用电码本(ECB)和密码分组链接(CBC);

(2)源数据地址生成模块接收到来自加解密控制器的源数据读取信号,生成读取地址与SRAM存储模块使能信号;SRAM存储模块每次输出64bit读取数据与数据有效信号,传给源数据分发模块;源数据分发模块根据输入的数据有效信号每次将64bit数据和加解密计算开始信号输出;

(3)子密钥生成模块将初始密钥进行处理,得出三重加解密计算轮函数中需要48个的子密钥。64位初始密钥先去除第8、16、24、32、40、48、56、64共8位奇偶校验位,剩下56位进行PC-1置换,得到新的56位数据按照高低28位分为左右两部分,进入16轮迭代。在每轮迭代中,先根据轮次将数据进行循环左移,再经过PC-2压缩置换得出每轮的48位子密钥Ki。这样,3个64位初始密钥将得到48个子密钥;

(3)三重加解密计算模块每次接收64bit源数据与计算开始信号,此模块的基本迭代算法过程如图3所示,以加密过程为例,64位明文先进行初始置换,得到按一定规律打乱的新64位数据,根据高低32位分为L0和R0,接下来进入48轮迭代。每一轮都将上一轮的Ri-1作为本轮的Li,将上一轮的Li-1作为本轮的Ri,输入到轮函数F(Ki-1,Ri-1)中进行运算,得到32位输出。在1~15轮每次运算后都左右交换,第16轮左右不进行交换。得到的两个32位结果拼接成64位结果,进行逆初始置换,得到3DES加密的结果。其中48轮迭代通过重复调用1~16轮迭代计算完成。

如图3所示,这是3DES计算流程的示意图,其主体结构是轮函数F(Ki-1,Ri-1)=P(S(E(Ri-1)⊕Ki))中8路并行的S盒部分计算模块输出S盒源数据,可重构加解密S盒根据源数据生成读取地址和ROM使能信号,随后将ROM读取结果输出给三重加解密计算模块。

如上所述,尽管参照特定的优选实施例已经表示和表述了本发明,但其不得解释为对本发明自身的限制。在不脱离所附权利要求定义的本发明的精神和范围前提下,可对其在形式上和细节上做出各种变化。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号