一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种加解密架构、方法、处理器和服务器与流程

2023-01-05 17:30:58 来源:中国专利 TAG:


1.本发明涉及加解密架构设计领域,尤其涉及一种加解密架构、方法、处理器和服务器。


背景技术:

2.现有bmc芯片支持多种对称算法,如aes算法、des算法及rc4算法,支持多种算法工作模式,如ecb、cbc、ctr、ofb模式等,外部接口挂接在ahb总线上,支持算法独立配置,软件在算法运算开始前配置算法所需的相关参数,如密钥、初始向量等,最后启动运算,待运算结束后清除中断、中断状态和相关指令寄存器,待下一次运算开始前在进行同样的操作,每次运算前都需要重复性配置,在参数没有配置完之前不得启动算法运算。现有的bmc芯片内部加解密模块,其理论基础是密码算法,从算法的安全性方面考虑,des算法和rc4算法无法抵御重放攻击,密钥易被破解,从运算效率考虑,des算法和rc4算法的运算速率已低于业界主流水平;国密算法如sm4,算法运算速率和安全性均高于des算法和rc4算法,而现有的bmc芯片并不支持sm4或其它国密算法,若对其进行重放攻击可能会造成隐私数据甚至国家机密泄露,极大的威胁到用户和国家的数据安全。


技术实现要素:

3.为了解决上述技术问题或者至少部分地解决上述技术问题,本发明提供一种加解密架构、方法、处理器和服务器。
4.第一方面,本发明提供一种加解密架构,包括:控制器,所述控制器通过总线与外部连接,用于通过总线实现与外部通信;数据流控制模块,所述数据流控制模块连接所述控制器;算法引擎核模块,所述算法引擎核模块连接所述数据流控制模块;以及寄存器堆模块,所述寄存器堆模块通过总线与外部连接,且所述寄存器堆模块还与所述数据流控制模块连接;其中,所述算法引擎核模块利用所述数据流控制模块提供的分组待运算数据和所述寄存器堆模块中配置的加解密运算所需要的密钥和初始向量进行加解密运算并将所述加解密运算的运算结果数据反馈给所述数据流控制模块,所述数据流控制模块通过所述控制器将所述运算结果数据输出。
5.更进一步地,算法引擎核模块内部集成了能独立完成各自的算法运算的sm4算法引擎与aes算法引擎。
6.更进一步地,sm4算法引擎内部包括sm4字节替换单元、sm4加密/解密运算单元和sm4密钥扩展单元,sm4字节替换单元用来做字节替换操作,通过查找第一查找表将输入数据以字节为单位替换为对应的数据并输出;sm4加密/解密运算单元内部集成了32级流水的轮函数,可实现单个时钟周期的输入输出,sm4密钥扩展模块产生的轮密钥供sm4加密/解密运算单元使用;aes算法引擎单元集成了aes-128、aes-192、aes-256这3种算法独立的aes加密/解密运算单元和aes密钥扩展单元,aes列混淆单元、aes字节替换单元,aes字节替换单元主要用来做字节替换操作,通过查找第二查找表将输入数据以字节为单位替换为对应的
数据并输出,aes列混淆单元经行移位后的状态矩阵与固定的矩阵相乘,得到混淆后的状态矩阵来实列混淆变换。
7.更进一步地,所述控制器内部集成包括dma寄存器和dma读写数据流控制单元;dma寄存器经一ahb从接口连接ahb总线;dma读写数据流控制单元经一ahb主接口连接ahb总线,dma读写数据流控制单元连接数据流控制模块;dma读写数据流控制单元根据dma寄存器中的配置通过ahb总线获取待运算数据并传输给数据流控制模块。
8.更进一步地,所述寄存器堆模块通过一ahb从接口连接对外连接的ahb总线,所述寄存器堆模块经内部总线连接数据流控制模块;寄存器堆模块针对算法引擎核模块实现的aes算法配置第一密钥寄存器、第一初始向量寄存器,寄存器堆模块针对算法引擎核模块实现的sm4算法配置第二密钥寄存器、第二初始向量寄存器;寄存器堆模块配置多组通道状态寄存器,用于记录运算状态;寄存器堆模块配置一组指令寄存器。
9.更进一步地,对应寄存器堆模块和dma寄存器的ahb从接口经ahb总线连接设置相应ahb主接口的cpu。
10.更进一步地,所述数据流控制模块包括内部缓存和流控制单元;其中,内部缓存包括输入fifo缓存和输出fifo缓存,输入fifo缓存用于缓存控制器利用总线读取的待运算数据,输出fifo用于缓存算法引擎核模块输出到待运算数据的运算结果数据;流控制单元包括:用于将输入fifo缓存中数据串并转换的串并转换逻辑电路,用于将运算结果数据进行并串转换的并串转换逻辑电路,用于对指令寄存器中指令进行译码的指令译码器,用于对指令进行解析的指令解析器,用于根据内部缓存中数据缓存状态控制控制器数据读写的流量控制器,用于与算法引擎核模块交互的数据下发回收接口,连接到所述寄存器堆模块的调试追踪信号输出接口、状态机fsm状态输出接口和通道状态监控器,用于对待运算数据中不足一个分组的数据进行暂存的数据暂存器,用于检测内部缓存中等待一个分组长度的数据是否超时的超时检测器。
11.更进一步地,流控制单元实现状态机fsm,状态机fsm根据算法种类启动算法引擎核模块相应的算法引擎,状态机fsm控制读取输入fifo缓存中的数据,并经过串并转换逻辑电路串并转换后通过数据下发回收接口写入到算法引擎核模块中进行加解密业务运算,运算完成后状态机fsm获取运算结果数据经数据下发回收接口回收到流控制单元,并经过并串转换后写入到输出fifo缓存中等待控制器从输出fifo缓存中读取。
12.更进一步地,流量控制器在输出fifo缓存有数据时请求控制器读输出fifo缓存,并根据控制器的响应信号产生输出fifo缓存的读使能;流控制单元在输入fifo缓存非空时产生一个脉冲用来启动输入fifo缓存的读使能,读取输入fifo缓存的数据;在输入fifo缓存中数据满时,流量控制器向控制器的dma读写数据流控制单元发送停止数据读入的信息。
13.更进一步地,流控制单元收到的数据无法实现一个分组时,数据暂存器将不足一个分组的数据进行暂存,流控制单元收到后续数据时,提取暂存的数据与后续数据组合成一个分组。
14.第二方面,本发明提供一种加解密控制方法,应用于所述的加解密架构,包括:对控制器和寄存器堆模块进行配置;检测加解密架构是否空闲;空闲则启动控制器,控制器根据控制器的配置获取待运算数据传输给数据流控制模块;
数据流控制模块根据寄存器堆模块的配置确定算法类型,数据流控制模块控制对待运算数据进行串并转换后通过数据下发回收接口写入到算法引擎核模块中进行对应相应算法类型的加解密业务运算;数据流控制模块回收算法引擎核模块的运算结果数据并经并串转换后发送给控制器,控制器根据控制器的配置将运算结果数据输出到相应的存储位置。
15.更进一步地,对控制器的配置包括:配置控制器的dma寄存器中的数据起始地址寄存器、数据长度寄存器、数据标志位寄存器,运算结果起始地址寄存器和dma启动寄存器;控制器根据dma启动寄存器的启动指示而启动,控制器根据数据起始地址寄存器的数据起始地址和数据长度寄存器的数据长度通过总线获取待运算数据;当运算结束,控制器根据运算结果起始地址寄存器的地址将从数据流控制模块获取运算后的运算结果数据通过ahb主接口输出通道写回到对应的存储地址。
16.更进一步地,对寄存器堆模块的配置包括:配置寄存器堆模块的第一密钥寄存器、第一初始向量寄存器,第二密钥寄存器、第二初始向量寄存器和指令寄存器,在第一密钥寄存器、第一初始向量寄存器,第二密钥寄存器、第二初始向量寄存器配置sm4算法和aes算法所需的密钥和初始向量;在指令寄存器配置加解密运算次数、使用的算法类型、算法模式和算法启动比特位。
17.更进一步地,检测加解密架构是否空闲包括:数据流控制模块配置连接到寄存器堆模块中通道状态寄存器的调试追踪信号输出接口、状态机fsm状态输出接口和通道状态监控器,将调试追踪信号状态机fsm状态和通道状态输出到通道状态寄存器中,获取通道状态寄存器中的通道状态监控器数据检测加解密架构是否空闲。
18.更进一步地,数据流控制模块的流控制单元基于寄存器堆模块的配置判断算法是否需要进行密钥拓展,若需要进行密钥拓展则先进行密钥拓展再进行加解密处理。
19.更进一步地,数据流控制模块的流控制单元的流量控制器在输出fifo缓存有数据时请求控制器读输出fifo缓存,并根据控制器的响应信号产生输出fifo缓存的读使能;流控制单元在输入fifo缓存非空时产生一个脉冲用来启动输入fifo缓存的读使能,读取输入fifo缓存的数据;在输入fifo缓存中数据满时,流量控制器向控制器的dma读写数据流控制单元发送停止数据读入的信息。
20.更进一步地,数据流控制模块的流控制单元按设定数据长度对待运算数据进行分组,对无法组成完整分组的数据通过数据暂存器暂存以等待后续数据,并通过超时检测器对等待分组数据进行计时。
21.更进一步地,数据流控制模块的流控制单元对待运算数据和密钥处理过程中错误和分组数据等到超时进行监测并产生相应中断。
22.第三方面,本发明提供一种处理器,所述处理器配置包括所述的加解密架构。
23.第四方面,本发明提供一种服务器,所述服务器包括:至少一cpu,至少一配置所述的加解密架构的处理器,所述处理器通过ahb总线连接cpu。
24.本发明实施例提供的上述技术方案与现有技术相比具有如下优点:本发明控制器连接数据流控制模块,控制器根据dma寄存器中配置启动并将待运算数据传输给数据流控制模块;数据流控制模块按aes和/或sm4加密算法的分组方式将待运算数据分组发送给算法引擎核模块,算法引擎核模块内部集成了能独立完成各自的算法
运算的sm4算法引擎与aes算法引擎,数据流控制模块判断执行算法种类后控制算法引擎核模块启动相应算法引擎,算法引擎核模块利用数据流控制模块提供的待运算数据和寄存器堆模块中配置的加解密运算所需要的密钥和初始向量进行加解密运算,并将运算结果数据反馈给数据流控制模块,数据流控制模块通过控制器将运算结果数据输出,控制器根据dma寄存器中配置将运算结果数据输出到指定存储位置。加解密架构能够在cpu配置下自动对待运算数据进行加解密处理,既支持sm4算法又支持aes算法。本技术加解密架构与cpu连接时,cpu仅仅对加解密架构进行配置即可进行计算,无需cpu参与计算过程,解放cpu的算力,增强产品的竞争力。
附图说明
25.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
26.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
27.图1为本发明实施例提供的一种加解密架构的架构示意图;图2为本发明实施例提供的控制器的架构示意图;图3为本发明实施例提供的寄存器堆模块的架构示意图;图4为本发明实施例提供的数据流控制模块的架构的示意图;图5为本发明实施例提供的算法引擎核模块的架构示意图;图6为本发明实施例提供的一种状态机fsm的状态、状态转换以及状态转换条件的示意图。
具体实施方式
28.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
29.需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
30.实施例1参阅图1所示,本发明提供一种加解密架构包括:控制器、寄存器堆模块、算法引擎核模块和数据流控制模块。控制器通过总线连接外部且控制器连接数据流控制模块,控制器将待运算数据传输给数据流控制模块;数据流控制模块按aes和/或sm4加密算法的分组方式将待运算数据分组发送给算法引擎核模块,算法引擎核模块内部集成了能独立完成各自的算法运算的sm4算法引擎与aes算法引擎,数据流控制模块判断执行算法种类后控制算
法引擎核模块启动相应算法引擎,算法引擎核模块利用数据流控制模块提供的待运算数据和寄存器堆模块中配置的加解密运算所需要的密钥和初始向量进行加解密运算并将运算结果反馈给数据流控制模块,数据流控制模块通过控制器将运算结果数据输出。
31.其中,参阅图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主接口输出通道将运算结果数据写回到对应的存储地址。
32.参阅图3所示,所述寄存器堆模块基于ahb从接口连接ahb总线,且cpu对应寄存器堆模块的ahb从接口配置相应的ahb主接口,用于cpu在寄存器堆模块配置加解密运算所需要的密钥、初始向量,cpu从寄存器堆模块获取运算状态。为满足单次配置运行aes算法和sm4算法的需求,寄存器堆模块针对aes算法配置第一密钥寄存器、第一初始向量寄存器,寄存器堆模块针对sm4算法配置第二密钥寄存器、第二初始向量寄存器;寄存器堆模块提供了多组通道状态寄存器,用于记录运算状态,cpu可通过ahb总线访问通道状态寄存器获取运算状态,所述运算状态包括加解密业务完成状态、中断状态、通道异常状态和调试追踪状态信息;寄存器堆模块提供了一组共用的指令寄存器,指令寄存器用于给数据流控制模块提供区分算法类型的算法指令,数据流控制模块根据识别的算法类型控制算法引擎核模块启动相应算法引擎。具体的,指令寄存器配置加解密运算次数、使用的算法类型、算法模式并通过算法启动比特位启动加解密业务。
33.参阅图4所示,所述数据流控制模块包括内部缓存和流控制单元。内部缓存包括输入fifo缓存和输出fifo缓存,输入fifo缓存用于缓存控制器从ahb总线读取的待运算数据,输出fifo用于缓存待运算数据运算结果。流控制单元包括用于将输入fifo缓存中数据串并转换的串并转换逻辑电路,用于将输出fifo缓存中运算结果数据进行并串转换的并串转换逻辑电路,用于对指令寄存器中指令进行译码的指令译码器,用于对指令进行解析的指令解析器,用于根据内部缓存中数据缓存状态控制控制器数据读写的流量控制器,用于与算法引擎核模块交互的数据下发回收接口,连接到通道状态寄存器的调试追踪信号输出接口、状态机fsm状态输出接口和通道状态监控器,用于对待运算数据中不足一个分组的数据进行暂存的数据暂存器,用于检测内部缓存中等待一个分组长度的数据是否超时的超时检
测器。
34.具体实施过程中,流量控制器在输出fifo缓存有数据时请求控制器读输出fifo缓存,并根据控制器的响应信号产生输出fifo缓存的读使能;在输入fifo缓存中数据满时,流量控制器向控制器的dma读写数据流控制单元发送停止数据读入的信息;流控制单元在输入fifo缓存非空时产生一个脉冲用来启动输入fifo缓存的读使能,读取输入fifo缓存的数据。数据流控制模块的流控制单元按设定数据长度对待运算数据进行分组,对无法组成完整分组的数据通过数据暂存器暂存以等待后续数据,并通过超时检测器对等待分组数据进行计时。数据流控制模块的流控制单元对待运算数据和密钥处理过程中错误和分组数据等到超时进行监测并产生相应中断。
35.为实现上述控制过程,参阅图6所示,流控制单元实现状态机fsm,状态机fsm控制读取输入fifo缓存中的数据,并经过串并转换逻辑电路串并转换后通过数据下发回收接口写入到算法引擎核模块中进行加解密业务运算,运算完成后状态机fsm获取运算结果数据经数据下发回收接口回收到流控制单元,并经过并串转换后写入到输出fifo缓存中等待控制器从输出fifo缓存中读取。状态机fsm的控制下通过流量控制器监测输入fifo缓存中数据存储情况,在输入fifo缓存中数据满时,流量控制器向控制器的dma读写数据流控制单元发送停止数据读入的信息,控制器的dma读写数据流控制单元响应停止数据读入的信息停止待运算数据的读入,从而实现流量控制。sm4算法和aes算法是分组密码算法,如:sm4算法的分组长度为128bit,sm4加密算法与密钥扩展算法均采用32轮非线性迭代结构,以字(32位)为单位进行加密运算,每一次迭代运算均为一轮变换函数f。sm4算法加/解密算法的结构相同,只是使用轮密钥相反,其中解密轮密钥是加密轮密钥的逆序,数据下发回收接口将分组数据下发给算法引擎核模块,在状态机fsm控制下,数据暂存器将不足一个分组的数据进行暂存,流控制单元收到后续数据时,提取暂存的数据与后续数据组合成一个分组。
36.具体实施过程中,所述状态机fsm的状态、状态转换以及状态转换条件如下所示:
当前状态跳转条件下一状态当前状态描述s0_idlestart_crypto=1,表示软件配置了算法启动比特位s0_get初始状态,等待算法启动
s0_sm4_dksm4算法密钥扩展完成s0_sm4_data该状态进行sm4密钥扩展运算,运算完成后跳转到sm4算法的数据处理状态s0_aes128_dkaes128算法密钥扩展完成s0_aes_data该状态进行aes128密钥扩展运算,运算完成后跳转到算法的数据处理状态s0_aes192_dkaes192算法密钥扩展完成s0_aes_data该状态进行aes192密钥扩展运算,运算完成后跳转到算法的数据处理状态s0_aes256_dkaes256算法密钥扩展完成s0_aes_data该状态进行aes256密钥扩展运算,运算完成后跳转到算法的数据处理状态
s0_sm4_data直接跳转s0_chk_len该状态直接跳转到数据长度检查状态,在一个周期内,数据流控制模块内部完成数据长度是否是16字节的整数倍的检测,若不是则计算出余数并将余数对应的数据暂存待使用s0_aes_data直接跳转s0_chk_len与状态s0_sm4_data跳转到s0_chk_len的描述相同s0_rd_fifo输入fifo缓存非空wait_result当输入fifo缓存非空时跳转,期间内部逻辑会产生一个脉冲用来启动输入fifo缓存的读使能wait_result当数据全部通过控制器读走后跳转s0_idle该状态下主要完成:读取输入fifo缓存数据进行串转并,即将32bit输入fifo缓存的数据转128bit的数据后输入算法引擎核模块;对运算结果进行并转串,即将128bit数据转32bit数据后写入输出fifo缓存中当输出fifo缓存有数据时请求控制器读输出fifo缓存,并根据控制器的响应信号产生输出fifo缓存的读使能
s0_timeout_err直接跳转s0_err_end该状态下产生通道异常中断,并将错误类型定义为等待数据超时,并上报cpus0_err_end直接跳转s0_idle一个周期内即产生错误中断,并将错误码写入寄存器堆模块
具体实施过程中,参阅图5所示,sm4算法引擎内部包括sm4字节替换单元、sm4加密/解密运算单元和sm4密钥扩展单元,sm4字节替换单元用来做字节替换操作,通过查找第一查找表将输入数据以字节为单位替换为对应的数据并输出;sm4加密/解密运算单元内部集成了32级流水的轮函数,可实现单个时钟周期的输入输出,sm4密钥扩展模块产生的轮密钥供sm4加密/解密运算单元使用;aes算法引擎单元集成了aes-128、aes-192、aes-256这3种算法独立的aes加密/解密运算单元和aes密钥扩展单元,aes列混淆单元、aes字节替换单元,aes字节替换单元主要用来做字节替换操作,通过查找第二查找表将输入数据以字节为单位替换为对应的数据并输出,aes列混淆单元经行移位后的状态矩阵与固定的矩阵相乘,得到混淆后的状态矩阵来实列混淆变换。
37.实施例2本发明实施例提供一种加解密控制方法,应用于所述的加解密架构,包括:对控制器和寄存器堆模块进行配置。具体实施过程中,对控制器的配置包括:配置控制器的dma寄存器中的数据起始地址寄存器、数据长度寄存器、数据标志位寄存器,运算结果起始地址寄存器和dma启动寄存器;控制器根据dma启动寄存器的启动指示启动,控制器根据数据起始地址寄存器的数据起始地址和数据长度寄存器的数据长度通过总线获取待运算数据;当运算结束,控制器根据运算结果起始地址寄存器的地址将从数据流控制模
块获取运算后的加密或解密数据通过ahb主接口输出通道将运算结果数据写回到对应的存储地址。对寄存器堆模块的配置包括:配置寄存器堆模块的第一密钥寄存器、第一初始向量寄存器,第二密钥寄存器、第二初始向量寄存器和指令寄存器,在第一密钥寄存器、第一初始向量寄存器,第二密钥寄存器、第二初始向量寄存器配置sm4算法和aes算法所需的密钥和初始向量;在指令寄存器配置加解密运算次数、使用的算法类型、算法模式和算法启动比特位。
38.检测加解密架构是否空闲;空闲则启动控制器,控制器根据控制器的配置获取待运算数据传输给数据流控制模块。具体实施过程中,检测加解密架构是否空闲包括:数据流控制模块配置连接到寄存器堆模块中通道状态寄存器的调试追踪信号输出接口、状态机fsm状态输出接口和通道状态监控器,将调试追踪信号状态机fsm状态和通道状态输出到通道状态寄存器中,获取通道状态寄存器中的通道状态监控器数据检测加解密架构是否空闲。
39.数据流控制模块根据寄存器堆模块的配置确定算法类型,数据流控制模块控制对待运算数据进行串并转换后通过数据下发回收接口写入到算法引擎核模块中进行对应相应算法类型的加解密业务运算;具体实施过程中,数据流控制模块的流控制单元基于寄存器堆模块的配置判断算法是否需要进行密钥拓展,若需要进行密钥拓展则先进行密钥拓展再进行加解密处理。
40.数据流控制模块处理待运算数据过程中,数据流控制模块的流控制单元的流量控制器在输出fifo缓存有数据时请求控制器读输出fifo缓存,并根据控制器的响应信号产生输出fifo缓存的读使能;流控制单元在输入fifo缓存非空时产生一个脉冲用来启动输入fifo缓存的读使能,读取输入fifo缓存的数据;在输入fifo缓存中数据满时,流量控制器向控制器的dma读写数据流控制单元发送停止数据读入的信息。数据流控制模块的流控制单元按设定数据长度对待运算数据进行分组,对无法组成完整分组的数据通过数据暂存器暂存以等待后续数据,并通过超时检测器对等待分组数据进行计时。数据流控制模块的流控制单元对待运算数据和密钥处理过程中错误和分组数据等到超时进行监测并产生相应中断。
41.具体实施过程中,数据流控制模块通过实施例1所述的状态机fsm实现待运算数据和/或密钥处理。
42.数据流控制模块回收算法引擎核模块的运算结果数据并经并串转换后发送给控制器,控制器根据控制器的配置将运算结果数据输出到相应的存储位置。
43.实施例3本发明实施例提供一种处理器,所述处理器配置所述的加解密架构,对设定存储位置的数据进行sm4算法或和aes算法加解密运算并将结果返回。具体实施过程中,本实施例所述处理器可以为bmc,可以为fpga。
44.实施例4一种兼容aes和sm4加密算法的服务器,包括至少一cpu,至少一配置所述的加解密架构的处理器,在服务器中,一种可行的所述处理器采用bmc。
45.具体实施过程中,所述处理器通过ahb总线连接cpu,具体的,cpu通过ahb总线连接控制器的dma寄存器,cpu通过ahb总线连接寄存器堆模块的第一密钥寄存器、第二密钥寄存
器、第一初始向量寄存器、第二初始向量寄存器和指令寄存器。cpu控制处理器实现加解密业务运算:cpu查询通道状态寄存器,若在通道状态寄存器中的通道状态监控器监测的数据显示通道状态为空闲状态则执行:cpu配置dma寄存器,配置包括dma寄存器中的数据起始地址寄存器、数据长度寄存器、数据标志位寄存器,运算结果起始地址寄存器,最后配置dma启动寄存器启动控制器。配置第一密钥寄存器和或第二密钥寄存器、第一初始向量寄存器和或第二初始向量寄存器,准备好运算所需的密钥或初始向量。cpu配置指令寄存器,确定加解密运算次数、使用的算法类型、算法模式并启动加解密业务。控制器根据数据起始地址寄存器和数据长度寄存器的值获取待运算数据,数据流控制模块根据指令寄存器提供的适用算法类型控制算法引擎核模块执行相应的运算,并回收算法引擎核模块计算的运算结果数据,进而传输给控制器,加解密业务运算结果数据传输到控制器后,控制器根据之前配置的运算结果起始地址将数据写到相应位置,回写完成后发出中断告知cpu。cpu收到中断后清除中断,并在对应地址取到运算结果数据。
46.在本发明所提供的几个实施例中,应该理解到,所揭露的模块和单元,可以通过其它的方式实现。例如,以上所描述的结构实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,系统或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
47.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
48.另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
49.尽管通过参考附图并结合优选实施例的方式对本发明进行了详细描述,但本发明并不限于此。在不脱离本发明的精神和实质的前提下,本领域普通技术人员可以对本发明的实施例进行各种等效的修改或替换,而这些修改或替换都应在本发明的涵盖范围内/任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献