CN115549911B - 一种加解密系统、方法、处理器和服务器 - Google Patents

一种加解密系统、方法、处理器和服务器 Download PDF

Info

Publication number
CN115549911B
CN115549911B CN202211496168.7A CN202211496168A CN115549911B CN 115549911 B CN115549911 B CN 115549911B CN 202211496168 A CN202211496168 A CN 202211496168A CN 115549911 B CN115549911 B CN 115549911B
Authority
CN
China
Prior art keywords
data
register
flow control
encryption
controller
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202211496168.7A
Other languages
English (en)
Other versions
CN115549911A (zh
Inventor
赵新宇
孙旭
周玉龙
刘刚
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Suzhou Inspur Intelligent Technology Co Ltd
Original Assignee
Suzhou Inspur Intelligent Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Suzhou Inspur Intelligent Technology Co Ltd filed Critical Suzhou Inspur Intelligent Technology Co Ltd
Priority to CN202211496168.7A priority Critical patent/CN115549911B/zh
Publication of CN115549911A publication Critical patent/CN115549911A/zh
Application granted granted Critical
Publication of CN115549911B publication Critical patent/CN115549911B/zh
Priority to PCT/CN2023/128627 priority patent/WO2024114264A1/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

本发明涉及一种加解密系统、方法、处理器和服务器。加解密系统中,控制器连接数据流控制模块,将待运算数据传输给数据流控制模块;数据流控制模块将待运算数据分组发送给算法引擎核模块,算法引擎核模块内部集成了能独立完成各自的算法运算的SM4算法引擎与AES算法引擎,数据流控制模块判断执行算法种类后控制算法引擎核模块启动相应算法引擎,算法引擎核模块利用数据流控制模块提供的待运算数据和寄存器堆模块中配置的加解密运算所需要的密钥和初始向量进行加解密运算并将运算结果反馈给数据流控制模块,数据流控制模块通过控制器将运算结果数据输出,实现对SM4算法和AES算法兼容的加解密处理。

Description

一种加解密系统、方法、处理器和服务器
技术领域
本发明涉及加解密系统设计领域,尤其涉及一种加解密系统、方法、处理器和服务器。
背景技术
现有BMC芯片支持多种对称算法,如AES算法、DES算法及RC4算法,支持多种算法工作模式,如ECB、CBC、CTR、OFB模式等,外部接口挂接在AHB总线上,支持算法独立配置,软件在算法运算开始前配置算法所需的相关参数,如密钥、初始向量等,最后启动运算,待运算结束后清除中断、中断状态和相关指令寄存器,待下一次运算开始前在进行同样的操作,每次运算前都需要重复性配置,在参数没有配置完之前不得启动算法运算。现有的BMC芯片内部加解密模块,其理论基础是密码算法,从算法的安全性方面考虑,DES算法和RC4算法无法抵御重放攻击,密钥易被破解,从运算效率考虑,DES算法和RC4算法的运算速率已低于业界主流水平;国密算法如SM4,算法运算速率和安全性均高于DES算法和RC4算法,而现有的BMC芯片并不支持SM4或其它国密算法,若对其进行重放攻击可能会造成隐私数据甚至国家机密泄露,极大的威胁到用户和国家的数据安全。
发明内容
为了解决上述技术问题或者至少部分地解决上述技术问题,本发明提供一种加解密系统、方法、处理器和服务器。
第一方面,本发明提供一种加解密系统,包括:控制器,所述控制器通过总线与外部连接,用于通过总线实现与外部通信;数据流控制模块,所述数据流控制模块连接所述控制器;算法引擎核模块,所述算法引擎核模块连接所述数据流控制模块;以及寄存器堆模块,所述寄存器堆模块通过总线与外部连接,且所述寄存器堆模块还与所述数据流控制模块连接;其中,所述算法引擎核模块利用所述数据流控制模块提供的分组待运算数据和所述寄存器堆模块中配置的加解密运算所需要的密钥和初始向量进行加解密运算并将所述加解密运算的运算结果数据反馈给所述数据流控制模块,所述数据流控制模块通过所述控制器将所述运算结果数据输出。
更进一步地,算法引擎核模块内部集成了能独立完成各自的算法运算的SM4算法引擎与AES算法引擎。
更进一步地,SM4算法引擎内部包括SM4字节替换单元、SM4加密/解密运算单元和SM4密钥扩展单元,SM4字节替换单元用来做字节替换操作,通过查找第一查找表将输入数据以字节为单位替换为对应的数据并输出;SM4加密/解密运算单元内部集成了32级流水的轮函数,可实现单个时钟周期的输入输出,SM4密钥扩展模块产生的轮密钥供SM4加密/解密运算单元使用;AES算法引擎单元集成了AES-128、AES-192、AES-256这3种算法独立的AES加密/解密运算单元和AES密钥扩展单元,AES列混淆单元、AES字节替换单元,AES字节替换单元主要用来做字节替换操作,通过查找第二查找表将输入数据以字节为单位替换为对应的数据并输出,AES列混淆单元经行移位后的状态矩阵与固定的矩阵相乘,得到混淆后的状态矩阵来实现列混淆变换。
更进一步地,所述控制器内部集成包括DMA寄存器和DMA读写数据流控制单元;DMA寄存器经一AHB从接口连接AHB总线;DMA读写数据流控制单元经一AHB主接口连接AHB总线,DMA读写数据流控制单元连接数据流控制模块;DMA读写数据流控制单元根据DMA寄存器中的配置通过AHB总线获取待运算数据并传输给数据流控制模块。
更进一步地,所述寄存器堆模块通过一AHB从接口连接对外连接的AHB总线,所述寄存器堆模块经内部总线连接数据流控制模块;寄存器堆模块针对算法引擎核模块实现的AES算法配置第一密钥寄存器、第一初始向量寄存器,寄存器堆模块针对算法引擎核模块实现的SM4算法配置第二密钥寄存器、第二初始向量寄存器;寄存器堆模块配置多组通道状态寄存器,用于记录运算状态;寄存器堆模块配置一组指令寄存器。
更进一步地,对应寄存器堆模块和DMA寄存器的AHB从接口经AHB总线连接设置相应AHB主接口的CPU。
更进一步地,所述数据流控制模块包括内部缓存和流控制单元;其中,内部缓存包括输入FIFO缓存和输出FIFO缓存,输入FIFO缓存用于缓存控制器利用总线读取的待运算数据,输出FIFO用于缓存算法引擎核模块输出到待运算数据的运算结果数据;流控制单元包括:用于将输入FIFO缓存中数据串并转换的串并转换逻辑电路,用于将运算结果数据进行并串转换的并串转换逻辑电路,用于对指令寄存器中指令进行译码的指令译码器,用于对指令进行解析的指令解析器,用于根据内部缓存中数据缓存状态控制控制器数据读写的流量控制器,用于与算法引擎核模块交互的数据下发回收接口,连接到所述寄存器堆模块的调试追踪信号输出接口、状态机FSM状态输出接口和通道状态监控器,用于对待运算数据中不足一个分组的数据进行暂存的数据暂存器,用于检测内部缓存中等待一个分组长度的数据是否超时的超时检测器。
更进一步地,流控制单元实现状态机FSM,状态机FSM根据算法种类启动算法引擎核模块相应的算法引擎,状态机FSM控制读取输入FIFO缓存中的数据,并经过串并转换逻辑电路串并转换后通过数据下发回收接口写入到算法引擎核模块中进行加解密业务运算,运算完成后状态机FSM获取运算结果数据经数据下发回收接口回收到流控制单元,并经过并串转换后写入到输出FIFO缓存中等待控制器从输出FIFO缓存中读取。
更进一步地,流量控制器在输出FIFO缓存有数据时请求控制器读输出FIFO缓存,并根据控制器的响应信号产生输出FIFO缓存的读使能;流控制单元在输入FIFO缓存非空时产生一个脉冲用来启动输入FIFO缓存的读使能,读取输入FIFO缓存的数据;在输入FIFO缓存中数据满时,流量控制器向控制器的DMA读写数据流控制单元发送停止数据读入的信息。
更进一步地,流控制单元收到的数据无法实现一个分组时,数据暂存器将不足一个分组的数据进行暂存,流控制单元收到后续数据时,提取暂存的数据与后续数据组合成一个分组。
第二方面,本发明提供一种加解密控制方法,应用于所述的加解密系统,包括:
对控制器和寄存器堆模块进行配置;
检测加解密系统是否空闲;空闲则启动控制器,控制器根据控制器的配置获取待运算数据传输给数据流控制模块;
数据流控制模块根据寄存器堆模块的配置确定算法类型,数据流控制模块控制对待运算数据进行串并转换后通过数据下发回收接口写入到算法引擎核模块中进行对应相应算法类型的加解密业务运算;数据流控制模块回收算法引擎核模块的运算结果数据并经并串转换后发送给控制器,控制器根据控制器的配置将运算结果数据输出到相应的存储位置。
更进一步地,对控制器的配置包括:配置控制器的DMA寄存器中的数据起始地址寄存器、数据长度寄存器、数据标志位寄存器,运算结果起始地址寄存器和DMA启动寄存器;控制器根据DMA启动寄存器的启动指示而启动,控制器根据数据起始地址寄存器的数据起始地址和数据长度寄存器的数据长度通过总线获取待运算数据;当运算结束,控制器根据运算结果起始地址寄存器的地址将从数据流控制模块获取运算后的运算结果数据通过AHB主接口输出通道写回到对应的存储地址。
更进一步地,对寄存器堆模块的配置包括:配置寄存器堆模块的第一密钥寄存器、第一初始向量寄存器,第二密钥寄存器、第二初始向量寄存器和指令寄存器,在第一密钥寄存器、第一初始向量寄存器,第二密钥寄存器、第二初始向量寄存器配置SM4算法和AES算法所需的密钥和初始向量;在指令寄存器配置加解密运算次数、使用的算法类型、算法模式和算法启动比特位。
更进一步地,检测加解密系统是否空闲包括:数据流控制模块配置连接到寄存器堆模块中通道状态寄存器的调试追踪信号输出接口、状态机FSM状态输出接口和通道状态监控器,将调试追踪信号状态机FSM状态和通道状态输出到通道状态寄存器中,获取通道状态寄存器中的通道状态监控器数据检测加解密系统是否空闲。
更进一步地,数据流控制模块的流控制单元基于寄存器堆模块的配置判断算法是否需要进行密钥拓展,若需要进行密钥拓展则先进行密钥拓展再进行加解密处理。
更进一步地,数据流控制模块的流控制单元的流量控制器在输出FIFO缓存有数据时请求控制器读输出FIFO缓存,并根据控制器的响应信号产生输出FIFO缓存的读使能;流控制单元在输入FIFO缓存非空时产生一个脉冲用来启动输入FIFO缓存的读使能,读取输入FIFO缓存的数据;在输入FIFO缓存中数据满时,流量控制器向控制器的DMA读写数据流控制单元发送停止数据读入的信息。
更进一步地,数据流控制模块的流控制单元按设定数据长度对待运算数据进行分组,对无法组成完整分组的数据通过数据暂存器暂存以等待后续数据,并通过超时检测器对等待分组数据进行计时。
更进一步地,数据流控制模块的流控制单元对待运算数据和密钥处理过程中错误和分组数据等到超时进行监测并产生相应中断。
第三方面,本发明提供一种处理器,所述处理器配置包括所述的加解密系统。
第四方面,本发明提供一种服务器,所述服务器包括:至少一CPU,至少一配置所述的加解密系统的处理器,所述处理器通过AHB总线连接CPU。
本发明实施例提供的上述技术方案与现有技术相比具有如下优点:
本发明控制器连接数据流控制模块,控制器根据DMA寄存器中配置启动并将待运算数据传输给数据流控制模块;数据流控制模块按AES和/或SM4加密算法的分组方式将待运算数据分组发送给算法引擎核模块,算法引擎核模块内部集成了能独立完成各自的算法运算的SM4算法引擎与AES算法引擎,数据流控制模块判断执行算法种类后控制算法引擎核模块启动相应算法引擎,算法引擎核模块利用数据流控制模块提供的待运算数据和寄存器堆模块中配置的加解密运算所需要的密钥和初始向量进行加解密运算,并将运算结果数据反馈给数据流控制模块,数据流控制模块通过控制器将运算结果数据输出,控制器根据DMA寄存器中配置将运算结果数据输出到指定存储位置。加解密系统能够在CPU配置下自动对待运算数据进行加解密处理,既支持SM4算法又支持AES算法。本申请加解密系统与CPU连接时,CPU仅仅对加解密系统进行配置即可进行计算,无需CPU参与计算过程,解放CPU的算力,增强产品的竞争力。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种加解密系统的硬件结构示意图;
图2为本发明实施例提供的控制器的硬件结构示意图;
图3为本发明实施例提供的寄存器堆模块的硬件结构示意图;
图4为本发明实施例提供的数据流控制模块的硬件结构的示意图;
图5为本发明实施例提供的算法引擎核模块的硬件结构示意图;
图6为本发明实施例提供的一种状态机FSM的状态、状态转换以及状态转换条件的示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
实施例1
参阅图1所示,本发明提供一种加解密系统包括:控制器、寄存器堆模块、算法引擎核模块和数据流控制模块。控制器通过总线连接外部且控制器连接数据流控制模块,控制器将待运算数据传输给数据流控制模块;数据流控制模块按AES和/或SM4加密算法的分组方式将待运算数据分组发送给算法引擎核模块,算法引擎核模块内部集成了能独立完成各自的算法运算的SM4算法引擎与AES算法引擎,数据流控制模块判断执行算法种类后控制算法引擎核模块启动相应算法引擎,算法引擎核模块利用数据流控制模块提供的待运算数据和寄存器堆模块中配置的加解密运算所需要的密钥和初始向量进行加解密运算并将运算结果反馈给数据流控制模块,数据流控制模块通过控制器将运算结果数据输出。
其中,参阅图2所示,控制器内部集成了包括DMA寄存器和DMA读写数据流控制单元;DMA寄存器经一AHB从接口连接AHB总线;DMA读写数据流控制单元经一AHB主接口连接AHB总线。待DMA启动后,控制器的DMA读写数据流控制单元根据DMA寄存器中的配置通过AHB主接口输入通道将对应存储地址到数据读到数据流控制模块的内部缓存,当运算结束,控制器的DMA读写数据流控制单元从内部缓存获取运算后的加密或解密数据后,通过AHB主接口输出通道将运算后的加密或解密数据写回到对应的存储地址。DMA寄存器包括用于记录待运算数据起始位的数据起始地址寄存器、记录待运算数据长度的数据长度寄存器、数据标志位寄存器,记录运算结果数据起始位的运算结果起始地址寄存器和用于启动控制器的DMA 启动寄存器。具体实施过程中,CPU对应DMA寄存器的AHB从接口配置相应的AHB主接口,CPU通过AHB总线配置DMA寄存器的来控制控制器。CPU对控制器的配置包括:在控制器的DMA寄存器中配置数据起始地址寄存器、数据长度寄存器、数据标志位寄存器,运算结果起始地址寄存器和DMA启动寄存器启动控制器;控制器根据DMA启动寄存器的启动指示启动,控制器根据数据起始地址寄存器的数据起始地址和数据长度寄存器的数据长度通过总线获取待运算数据;当运算结束,控制器根据运算结果起始地址寄存器的地址将从数据流控制模块获取运算后的加密或解密数据通过AHB主接口输出通道将运算结果数据写回到对应的存储地址。
参阅图3所示,所述寄存器堆模块基于AHB从接口连接AHB总线,且CPU对应寄存器堆模块的AHB从接口配置相应的AHB主接口,用于CPU在寄存器堆模块配置加解密运算所需要的密钥、初始向量,CPU从寄存器堆模块获取运算状态。为满足单次配置运行AES算法和SM4算法的需求,寄存器堆模块针对AES算法配置第一密钥寄存器、第一初始向量寄存器,寄存器堆模块针对SM4算法配置第二密钥寄存器、第二初始向量寄存器;寄存器堆模块提供了多组通道状态寄存器,用于记录运算状态,CPU可通过AHB总线访问通道状态寄存器获取运算状态,所述运算状态包括加解密业务完成状态、中断状态、通道异常状态和调试追踪状态信息;寄存器堆模块提供了一组共用的指令寄存器,指令寄存器用于给数据流控制模块提供区分算法类型的算法指令,数据流控制模块根据识别的算法类型控制算法引擎核模块启动相应算法引擎。具体的,指令寄存器配置加解密运算次数、使用的算法类型、算法模式并通过算法启动比特位启动加解密业务。
参阅图4所示,所述数据流控制模块包括内部缓存和流控制单元。内部缓存包括输入FIFO缓存和输出FIFO缓存,输入FIFO缓存用于缓存控制器从AHB总线读取的待运算数据,输出FIFO用于缓存待运算数据运算结果。流控制单元包括用于将输入FIFO缓存中数据串并转换的串并转换逻辑电路,用于将输出FIFO缓存中运算结果数据进行并串转换的并串转换逻辑电路,用于对指令寄存器中指令进行译码的指令译码器,用于对指令进行解析的指令解析器,用于根据内部缓存中数据缓存状态控制控制器数据读写的流量控制器,用于与算法引擎核模块交互的数据下发回收接口,连接到通道状态寄存器的调试追踪信号输出接口、状态机FSM状态输出接口和通道状态监控器,用于对待运算数据中不足一个分组的数据进行暂存的数据暂存器,用于检测内部缓存中等待一个分组长度的数据是否超时的超时检测器。
具体实施过程中,流量控制器在输出FIFO缓存有数据时请求控制器读输出FIFO缓存,并根据控制器的响应信号产生输出FIFO缓存的读使能;在输入FIFO缓存中数据满时,流量控制器向控制器的DMA读写数据流控制单元发送停止数据读入的信息;流控制单元在输入FIFO缓存非空时产生一个脉冲用来启动输入FIFO缓存的读使能,读取输入FIFO缓存的数据。数据流控制模块的流控制单元按设定数据长度对待运算数据进行分组,对无法组成完整分组的数据通过数据暂存器暂存以等待后续数据,并通过超时检测器对等待分组数据进行计时。数据流控制模块的流控制单元对待运算数据和密钥处理过程中错误和分组数据等到超时进行监测并产生相应中断。
为实现上述控制过程,参阅图6所示,流控制单元实现状态机FSM,状态机FSM控制读取输入FIFO缓存中的数据,并经过串并转换逻辑电路串并转换后通过数据下发回收接口写入到算法引擎核模块中进行加解密业务运算,运算完成后状态机FSM获取运算结果数据经数据下发回收接口回收到流控制单元,并经过并串转换后写入到输出FIFO缓存中等待控制器从输出FIFO缓存中读取。状态机FSM的控制下通过流量控制器监测输入FIFO缓存中数据存储情况,在输入FIFO缓存中数据满时,流量控制器向控制器的DMA读写数据流控制单元发送停止数据读入的信息,控制器的DMA读写数据流控制单元响应停止数据读入的信息停止待运算数据的读入,从而实现流量控制。SM4算法和AES算法是分组密码算法,如:SM4算法的分组长度为128bit,SM4加密算法与密钥扩展算法均采用32轮非线性迭代结构,以字(32位)为单位进行加密运算,每一次迭代运算均为一轮变换函数F。SM4算法加/解密算法的结构相同,只是使用轮密钥相反,其中解密轮密钥是加密轮密钥的逆序,数据下发回收接口将分组数据下发给算法引擎核模块,在状态机FSM控制下,数据暂存器将不足一个分组的数据进行暂存,流控制单元收到后续数据时,提取暂存的数据与后续数据组合成一个分组。
具体实施过程中,所述状态机FSM的状态、状态转换以及状态转换条件如下所示:
当前状态 跳转条件 下一状态 当前状态描述
s0_idle start_crypto=1,表示软件配置了算法启动比特位 s0_get 初始状态,等待算法启动
Figure SMS_1
s0_sm4_dk sm4算法密钥扩展完成 s0_sm4_data 该状态进行sm4密钥扩展运算,运算完成后跳转到sm4算法的数据处理状态
s0_aes128_dk aes128算法密钥扩展完成 s0_aes_data 该状态进行aes128密钥扩展运算,运算完成后跳转到算法的数据处理状态
s0_aes192_dk aes192算法密钥扩展完成 s0_aes_data 该状态进行aes192密钥扩展运算,运算完成后跳转到算法的数据处理状态
s0_aes256_dk aes256算法密钥扩展完成 s0_aes_data 该状态进行aes256密钥扩展运算,运算完成后跳转到算法的数据处理状态
s0_sm4_data 直接跳转 s0_chk_len 该状态直接跳转到数据长度检查状态,在一个周期内,数据流控制模块内部完成数据长度是否是16字节的整数倍的检测,若不是则计算出余数并将余数对应的数据暂存待使用
s0_aes_data 直接跳转 s0_chk_len 与状态 s0_sm4_data跳转到s0_chk_len的描述相同
Figure SMS_2
Figure SMS_3
具体实施过程中,参阅图5所示,SM4算法引擎内部包括SM4字节替换单元、SM4加密/解密运算单元和SM4密钥扩展单元,SM4字节替换单元用来做字节替换操作,通过查找第一查找表将输入数据以字节为单位替换为对应的数据并输出;SM4加密/解密运算单元内部集成了32级流水的轮函数,可实现单个时钟周期的输入输出,SM4密钥扩展模块产生的轮密钥供SM4加密/解密运算单元使用;AES算法引擎单元集成了AES-128、AES-192、AES-256这3种算法独立的AES加密/解密运算单元和AES密钥扩展单元,AES列混淆单元、AES字节替换单元,AES字节替换单元主要用来做字节替换操作,通过查找第二查找表将输入数据以字节为单位替换为对应的数据并输出,AES列混淆单元经行移位后的状态矩阵与固定的矩阵相乘,得到混淆后的状态矩阵来实列混淆变换。
实施例2
本发明实施例提供一种加解密控制方法,应用于所述的加解密系统,包括:
对控制器和寄存器堆模块进行配置。具体实施过程中,对控制器的配置包括:配置控制器的DMA寄存器中的数据起始地址寄存器、数据长度寄存器、数据标志位寄存器,运算结果起始地址寄存器和DMA启动寄存器;控制器根据DMA启动寄存器的启动指示启动,控制器根据数据起始地址寄存器的数据起始地址和数据长度寄存器的数据长度通过总线获取待运算数据;当运算结束,控制器根据运算结果起始地址寄存器的地址将从数据流控制模块获取运算后的加密或解密数据通过AHB主接口输出通道将运算结果数据写回到对应的存储地址。对寄存器堆模块的配置包括:配置寄存器堆模块的第一密钥寄存器、第一初始向量寄存器,第二密钥寄存器、第二初始向量寄存器和指令寄存器,在第一密钥寄存器、第一初始向量寄存器,第二密钥寄存器、第二初始向量寄存器配置SM4算法和AES算法所需的密钥和初始向量;在指令寄存器配置加解密运算次数、使用的算法类型、算法模式和算法启动比特位。
检测加解密系统是否空闲;空闲则启动控制器,控制器根据控制器的配置获取待运算数据传输给数据流控制模块。具体实施过程中,检测加解密系统是否空闲包括:数据流控制模块配置连接到寄存器堆模块中通道状态寄存器的调试追踪信号输出接口、状态机FSM状态输出接口和通道状态监控器,将调试追踪信号状态机FSM状态和通道状态输出到通道状态寄存器中,获取通道状态寄存器中的通道状态监控器数据检测加解密系统是否空闲。
数据流控制模块根据寄存器堆模块的配置确定算法类型,数据流控制模块控制对待运算数据进行串并转换后通过数据下发回收接口写入到算法引擎核模块中进行对应相应算法类型的加解密业务运算;具体实施过程中,数据流控制模块的流控制单元基于寄存器堆模块的配置判断算法是否需要进行密钥拓展,若需要进行密钥拓展则先进行密钥拓展再进行加解密处理。
数据流控制模块处理待运算数据过程中,数据流控制模块的流控制单元的流量控制器在输出FIFO缓存有数据时请求控制器读输出FIFO缓存,并根据控制器的响应信号产生输出FIFO缓存的读使能;流控制单元在输入FIFO缓存非空时产生一个脉冲用来启动输入FIFO缓存的读使能,读取输入FIFO缓存的数据;在输入FIFO缓存中数据满时,流量控制器向控制器的DMA读写数据流控制单元发送停止数据读入的信息。数据流控制模块的流控制单元按设定数据长度对待运算数据进行分组,对无法组成完整分组的数据通过数据暂存器暂存以等待后续数据,并通过超时检测器对等待分组数据进行计时。数据流控制模块的流控制单元对待运算数据和密钥处理过程中错误和分组数据等到超时进行监测并产生相应中断。
具体实施过程中,数据流控制模块通过实施例1所述的状态机FSM实现待运算数据和/或密钥处理。
数据流控制模块回收算法引擎核模块的运算结果数据并经并串转换后发送给控制器,控制器根据控制器的配置将运算结果数据输出到相应的存储位置。
实施例3
本发明实施例提供一种处理器,所述处理器配置所述的加解密系统,对设定存储位置的数据进行SM4算法或和AES算法加解密运算并将结果返回。具体实施过程中,本实施例所述处理器可以为BMC,可以为FPGA。
实施例4
一种兼容AES和SM4加密算法的服务器,包括至少一CPU,至少一配置所述的加解密系统的处理器,在服务器中,一种可行的所述处理器采用BMC。
具体实施过程中,所述处理器通过AHB总线连接CPU,具体的,CPU通过AHB总线连接控制器的DMA寄存器,CPU通过AHB总线连接寄存器堆模块的第一密钥寄存器、第二密钥寄存器、第一初始向量寄存器、第二初始向量寄存器和指令寄存器。CPU控制处理器实现加解密业务运算:CPU查询通道状态寄存器,若在通道状态寄存器中的通道状态监控器监测的数据显示通道状态为空闲状态则执行:CPU配置DMA寄存器,配置包括DMA寄存器中的数据起始地址寄存器、数据长度寄存器、数据标志位寄存器,运算结果起始地址寄存器,最后配置DMA启动寄存器启动控制器。配置第一密钥寄存器和或第二密钥寄存器、第一初始向量寄存器和或第二初始向量寄存器,准备好运算所需的密钥或初始向量。CPU配置指令寄存器,确定加解密运算次数、使用的算法类型、算法模式并启动加解密业务。控制器根据数据起始地址寄存器和数据长度寄存器的值获取待运算数据,数据流控制模块根据指令寄存器提供的适用算法类型控制算法引擎核模块执行相应的运算,并回收算法引擎核模块计算的运算结果数据,进而传输给控制器,加解密业务运算结果数据传输到控制器后,控制器根据之前配置的运算结果起始地址将数据写到相应位置,回写完成后发出中断告知CPU。CPU收到中断后清除中断,并在对应地址取到运算结果数据。
在本发明所提供的几个实施例中,应该理解到,所揭露的模块和单元,可以通过其它的方式实现。例如,以上所描述的结构实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,系统或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
尽管通过参考附图并结合优选实施例的方式对本发明进行了详细描述,但本发明并不限于此。在不脱离本发明的精神和实质的前提下,本领域普通技术人员可以对本发明的实施例进行各种等效的修改或替换,而这些修改或替换都应在本发明的涵盖范围内/任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

Claims (19)

1.一种加解密系统,其特征在于,包括:
控制器,所述控制器通过总线与外部连接,所述控制器连接数据流控制模块;所述控制器内部集成包括DMA寄存器和DMA读写数据流控制单元,DMA寄存器经一AHB从接口连接AHB总线;DMA读写数据流控制单元经一AHB主接口连接AHB总线,DMA读写数据流控制单元连接数据流控制模块;DMA读写数据流控制单元根据DMA寄存器中的配置通过AHB总线获取待运算数据并传输给所述数据流控制模块;
所述数据流控制模块连接算法引擎核模块及寄存器堆模块,所述算法引擎核模块内部集成了能独立完成各自的算法运算的SM4算法引擎与AES算法引擎,所述寄存器堆模块通过总线与外部连接,其中,所述数据流控制模块按AES和/或SM4加密算法的分组方式将待运算数据分组发送给所述算法引擎核模块;所述数据流控制模块判断执行算法种类后控制所述算法引擎核模块启动相应算法引擎,所述算法引擎核模块利用所述数据流控制模块提供的待运算数据和所述寄存器堆模块中配置的加解密运算所需要的密钥和初始向量进行加解密运算并将运算结果反馈给所述数据流控制模块,所述数据流控制模块通过所述控制器将运算结果数据输出。
2.根据权利要求1所述的加解密系统,其特征在于,所述DMA寄存器包括用于记录待运算数据起始位的数据起始地址寄存器、记录待运算数据长度的数据长度寄存器、数据标志位寄存器、记录运算结果数据起始位的运算结果起始地址寄存器和用于启动控制器的DMA启动寄存器;控制器根据DMA启动寄存器的启动指示启动,控制器根据数据起始地址寄存器的数据起始地址和数据长度寄存器的数据长度通过总线获取待运算数据;当运算结束,控制器根据运算结果起始地址寄存器的地址将从数据流控制模块获取运算后的加密或解密数据通过AHB主接口输出通道将运算结果数据写回到对应的存储地址。
3.根据权利要求1所述的加解密系统,其特征在于,SM4算法引擎内部包括SM4字节替换单元、SM4加密/解密运算单元和SM4密钥扩展单元,SM4字节替换单元用来做字节替换操作,通过查找第一查找表将输入数据以字节为单位替换为对应的数据并输出;SM4加密/解密运算单元内部集成了32级流水的轮函数,可实现单个时钟周期的输入输出,SM4密钥扩展模块产生的轮密钥供SM4加密/解密运算单元使用;AES算法引擎集成了AES-128、AES-192、AES-256这3种算法独立的AES加密/解密运算单元和AES密钥扩展单元,AES列混淆单元、AES字节替换单元,AES字节替换单元主要用来做字节替换操作,通过查找第二查找表将输入数据以字节为单位替换为对应的数据并输出,AES列混淆单元经行移位后的状态矩阵与固定的矩阵相乘,得到混淆后的状态矩阵来实现列混淆变换。
4.根据权利要求1所述的加解密系统,其特征在于,所述寄存器堆模块通过一AHB从接口连接对外连接的AHB总线,所述寄存器堆模块经内部总线连接数据流控制模块;寄存器堆模块针对算法引擎核模块实现的AES算法配置有第一密钥寄存器、第一初始向量寄存器,寄存器堆模块针对算法引擎核模块实现的SM4算法配置有第二密钥寄存器、第二初始向量寄存器;寄存器堆模块配置有多组通道状态寄存器,用于记录运算状态;寄存器堆模块配置有一组指令寄存器。
5.根据权利要求4所述的加解密系统,其特征在于,对应寄存器堆模块和DMA寄存器的AHB从接口经AHB总线连接设置有相应AHB主接口的CPU。
6.根据权利要求1所述的加解密系统,其特征在于,所述数据流控制模块包括内部缓存和流控制单元;其中,内部缓存包括输入FIFO缓存和输出FIFO缓存,输入FIFO缓存用于缓存控制器利用总线读取的待运算数据,输出FIFO用于缓存算法引擎核模块输出到待运算数据的运算结果数据;流控制单元包括:用于将输入FIFO缓存中数据串并转换的串并转换逻辑电路,用于将运算结果数据进行并串转换的并串转换逻辑电路,用于对指令寄存器中指令进行译码的指令译码器,用于对指令进行解析的指令解析器,用于根据内部缓存中数据缓存状态控制控制器数据读写的流量控制器,用于与算法引擎核模块交互的数据下发回收接口,连接到所述寄存器堆模块的调试追踪信号输出接口、状态机FSM状态输出接口和通道状态监控器,用于对待运算数据中不足一个分组的数据进行暂存的数据暂存器,用于检测内部缓存中等待一个分组长度的数据是否超时的超时检测器。
7.根据权利要求6所述的加解密系统,其特征在于,流控制单元实现状态机FSM,状态机FSM根据算法种类启动算法引擎核模块相应的算法引擎,状态机FSM控制读取输入FIFO缓存中的数据,并经过串并转换逻辑电路串并转换后通过数据下发回收接口写入到算法引擎核模块中进行加解密业务运算,运算完成后状态机FSM获取运算结果数据经数据下发回收接口回收到流控制单元,并经过并串转换后写入到输出FIFO缓存中等待控制器从输出FIFO缓存中读取。
8.根据权利要求6所述的加解密系统,其特征在于,流量控制器在输出FIFO缓存有数据时请求控制器读输出FIFO缓存,并根据控制器的响应信号产生输出FIFO缓存的读使能;流控制单元在输入FIFO缓存非空时产生一个脉冲用来启动输入FIFO缓存的读使能,读取输入FIFO缓存的数据;在输入FIFO缓存中数据满时,流量控制器向控制器的DMA读写数据流控制单元发送停止数据读入的信息。
9.根据权利要求6所述的加解密系统,其特征在于,流控制单元收到的数据无法实现一个分组时,数据暂存器将不足一个分组的数据进行暂存,流控制单元收到后续数据时,提取暂存的数据与后续数据组合成一个分组。
10.一种加解密控制方法,应用于如权利要求1-9任一所述的加解密系统,其特征在于,包括:
对控制器和寄存器堆模块进行配置;
检测加解密系统是否空闲;空闲则启动控制器,控制器根据控制器的配置获取待运算数据传输给数据流控制模块;
数据流控制模块根据寄存器堆模块的配置确定算法类型,数据流控制模块控制对待运算数据进行串并转换后通过数据下发回收接口写入到算法引擎核模块中进行对应相应算法类型的加解密业务运算;数据流控制模块回收算法引擎核模块的运算结果数据并经并串转换后发送给控制器,控制器根据控制器的配置将运算结果数据输出到相应的存储位置。
11.根据权利要求10所述的加解密控制方法,其特征在于,对控制器的配置包括:配置控制器的DMA寄存器中的数据起始地址寄存器、数据长度寄存器、数据标志位寄存器,运算结果起始地址寄存器和DMA启动寄存器;控制器根据DMA启动寄存器的启动指示而启动,控制器根据数据起始地址寄存器的数据起始地址和数据长度寄存器的数据长度通过总线获取待运算数据;当运算结束,控制器根据运算结果起始地址寄存器的地址将从数据流控制模块获取运算后的运算结果数据通过AHB主接口输出通道写回到对应的存储地址。
12.根据权利要求10所述的加解密控制方法,其特征在于,对寄存器堆模块的配置包括:配置寄存器堆模块的第一密钥寄存器、第一初始向量寄存器,第二密钥寄存器、第二初始向量寄存器和指令寄存器,在第一密钥寄存器、第一初始向量寄存器,第二密钥寄存器、第二初始向量寄存器配置SM4算法和AES算法所需的密钥和初始向量;在指令寄存器配置加解密运算次数、使用的算法类型、算法模式和算法启动比特位。
13.根据权利要求10所述的加解密控制方法,其特征在于,检测加解密系统是否空闲包括:数据流控制模块配置连接到寄存器堆模块中通道状态寄存器的调试追踪信号输出接口、状态机FSM状态输出接口和通道状态监控器,将调试追踪信号状态机FSM状态和通道状态输出到通道状态寄存器中,获取通道状态寄存器中的通道状态监控器数据检测加解密系统是否空闲。
14.根据权利要求10所述的加解密控制方法,其特征在于,数据流控制模块的流控制单元基于寄存器堆模块的配置判断算法是否需要进行密钥拓展,若需要进行密钥拓展则先进行密钥拓展再进行加解密处理。
15.根据权利要求10所述的加解密控制方法,其特征在于,数据流控制模块的流控制单元的流量控制器在输出FIFO缓存有数据时请求控制器读输出FIFO缓存,并根据控制器的响应信号产生输出FIFO缓存的读使能;流控制单元在输入FIFO缓存非空时产生一个脉冲用来启动输入FIFO缓存的读使能,读取输入FIFO缓存的数据;在输入FIFO缓存中数据满时,流量控制器向控制器的DMA读写数据流控制单元发送停止数据读入的信息。
16.根据权利要求10所述的加解密控制方法,其特征在于,数据流控制模块的流控制单元按设定数据长度对待运算数据进行分组,对无法组成完整分组的数据通过数据暂存器暂存以等待后续数据,并通过超时检测器对等待分组数据进行计时。
17.根据权利要求16所述的加解密控制方法,其特征在于,数据流控制模块的流控制单元对待运算数据和密钥处理过程中错误和分组数据等到超时进行监测并产生相应中断。
18.一种处理器,其特征在于,所述处理器包括如权利要求1-9任一所述的加解密系统。
19.一种服务器,其特征在于,所述服务器包括:至少一CPU,至少一如权利要求1-9任一所述的加解密系统的处理器,所述处理器通过AHB总线连接CPU。
CN202211496168.7A 2022-11-28 2022-11-28 一种加解密系统、方法、处理器和服务器 Active CN115549911B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202211496168.7A CN115549911B (zh) 2022-11-28 2022-11-28 一种加解密系统、方法、处理器和服务器
PCT/CN2023/128627 WO2024114264A1 (zh) 2022-11-28 2023-10-31 一种加解密架构、方法、处理器和服务器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211496168.7A CN115549911B (zh) 2022-11-28 2022-11-28 一种加解密系统、方法、处理器和服务器

Publications (2)

Publication Number Publication Date
CN115549911A CN115549911A (zh) 2022-12-30
CN115549911B true CN115549911B (zh) 2023-03-14

Family

ID=84722599

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211496168.7A Active CN115549911B (zh) 2022-11-28 2022-11-28 一种加解密系统、方法、处理器和服务器

Country Status (2)

Country Link
CN (1) CN115549911B (zh)
WO (1) WO2024114264A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115549911B (zh) * 2022-11-28 2023-03-14 苏州浪潮智能科技有限公司 一种加解密系统、方法、处理器和服务器
CN115994106B (zh) * 2023-02-17 2023-09-05 广州万协通信息技术有限公司 一种海量数据加解密方法、数据安全装置以及电子设备
CN116070292B (zh) * 2023-03-07 2023-06-16 苏州宏存芯捷科技有限公司 一种基于fpga的sm4加密异构加速系统
CN116204911B (zh) * 2023-04-27 2023-08-04 苏州浪潮智能科技有限公司 加解密系统、加解密控制方法、计算机设备及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105243344A (zh) * 2015-11-02 2016-01-13 上海兆芯集成电路有限公司 具有硬盘加密功能的芯片组以及主机控制器
CN108092760A (zh) * 2016-11-22 2018-05-29 北京同方微电子有限公司 一种分组密码的协处理器装置和非线性变换方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101431407B (zh) * 2008-12-15 2012-03-28 西安电子科技大学 支持线程级加解密的密码处理器及其密码运算操作方法
CN103679061A (zh) * 2013-11-22 2014-03-26 北京民芯科技有限公司 国密sm4算法的可扩展高吞吐率的实现方法及装置
GB201808834D0 (en) * 2018-05-30 2018-07-11 Nordic Semiconductor Asa Memory-efficient hardware cryptographic engine
CN113722702A (zh) * 2021-09-01 2021-11-30 上海兆芯集成电路有限公司 具备分组密码算法的处理器及其处理方法
CN114969849A (zh) * 2022-05-30 2022-08-30 无锡沐创集成电路设计有限公司 一种信息安全芯片
CN115549911B (zh) * 2022-11-28 2023-03-14 苏州浪潮智能科技有限公司 一种加解密系统、方法、处理器和服务器

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105243344A (zh) * 2015-11-02 2016-01-13 上海兆芯集成电路有限公司 具有硬盘加密功能的芯片组以及主机控制器
CN108092760A (zh) * 2016-11-22 2018-05-29 北京同方微电子有限公司 一种分组密码的协处理器装置和非线性变换方法

Also Published As

Publication number Publication date
WO2024114264A1 (zh) 2024-06-06
CN115549911A (zh) 2022-12-30

Similar Documents

Publication Publication Date Title
CN115549911B (zh) 一种加解密系统、方法、处理器和服务器
US6101255A (en) Programmable cryptographic processing system and method
EP3274850B1 (en) Protecting a memory
CN111400732B (zh) 一种基于usb通道的加解密模块及设备
CN1878055B (zh) 一种分离式大数据量加/解密设备及实现方法
CN112329038B (zh) 一种基于usb接口的数据加密控制系统及芯片
CN206712810U (zh) 一种基于pci‑e总线的高速密码卡
CN109447225B (zh) 一种高速安全加密Micro SD卡
CN209980248U (zh) 电路和电子设备
CN102844762A (zh) 在多核系统的不同模式之间的切换期间的安全环境管理
US20100128874A1 (en) Encryption / decryption in parallelized data storage using media associated keys
CN104160407A (zh) 利用存储控制器总线接口以确保存储设备和主机之间的数据传输安全
US20230071723A1 (en) Technologies for establishing secure channel between i/o subsystem and trusted application for secure i/o data transfer
CN102882856A (zh) 一种基于SoC的终端密码装置
CN115022076A (zh) 一种数据加/解密方法、装置、系统及介质
CN201051744Y (zh) 一种安全的加密网卡装置
CN103077362B (zh) 具有安全机制的gpio ip核
CN105049203A (zh) 一种支持多工作模式的可配置3des加解密算法电路
CN105721139B (zh) 一种适用于有限io资源的fpga的aes加解密方法及电路
KR101642211B1 (ko) 프로세서와 디바이스들 사이에 안전한 데이터 채널을 구현하기 위한 방법
CN210836072U (zh) 一种流加密usb接口转fifo接口的桥片
KR100420555B1 (ko) 고속 세션 변경이 가능한 블록 암호화 장치 및 그 구동 방법
JPS6363232A (ja) 暗号化通信方式
CN113127901B (zh) 一种数据加密传输的处理方法、装置及芯片
CN110598403B (zh) 一种进程数据保护方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant