CN115344881B - 一种硬盘加密解密装置、方法、硬盘及i/o接口 - Google Patents
一种硬盘加密解密装置、方法、硬盘及i/o接口 Download PDFInfo
- Publication number
- CN115344881B CN115344881B CN202211276219.5A CN202211276219A CN115344881B CN 115344881 B CN115344881 B CN 115344881B CN 202211276219 A CN202211276219 A CN 202211276219A CN 115344881 B CN115344881 B CN 115344881B
- Authority
- CN
- China
- Prior art keywords
- data
- module
- encryption
- hard disk
- decryption
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/78—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0032—Serial ATA [SATA]
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
本申请公开了一种硬盘加密解密装置、方法、硬盘及I/O接口。所述装置包括:第一接口模块,与第一存储模块电连接,用于连接上位机;第二接口模块,与第二存储模块电连接,用于连接目标硬盘;第一存储模块,分别与第一接口模块和加密解密模块连接,用于存储待加密数据;第二存储模块,分别与第二接口模块和加密解密模块电连接,用于存储对待加密数据加密后得到的已加密数据;加密解密模块,用于对待加密数据执行加密操作;控制模块,用于初始化接口模块和加密解密模块;其中,第一存储模块和第二存储模块均包括FIFO存储器。数据流控由硬件通过总线控制,可传输任意长度的数据,减少了拷贝次数,提高了操作效率和传输速度,控制器占用率低。
Description
技术领域
本申请涉及计算机硬盘技术领域,特别地涉及一种硬盘加密解密装置、硬盘加密方法、硬盘解密方法、存储介质、电子设备、硬盘以及I/O接口。
背景技术
硬盘(Hard Disk Driver,简称HDD)是计算机系统中存储数据的重要部件,系统和用户数据默认都以明文形式都存储在硬盘中,如果硬盘丢失,那么将会导致用户的数据泄漏。
现有技术下,通常是通过缓冲区方式实现硬盘桥接加密,但是这种加密方式存在有以下缺陷:
需要数据切片:由于硬件限制,缓冲区不可能无限大,尤其是对于微处理器构成的片上系统(System-on-a-chip,简称SoC)SRAM(静态随机存取存储器Static Random-AccessMemory,简称SRAM)一般也就几十到几百KB(KiloByte);而SATA(串行高级技术附件SerialAdvanced Technology Attachment,简称SATA)一次命令最大可以传输几十兆字节的数据,这样就需要将数据切片,多次传输,会影响传输速率;
生产成本高:缓冲区大小、种类、传输速率的选择,对硬件成本有很大的影响;
多次拷贝数据:缓冲区方式,相当于数据传输了2次,即使缓冲区足够大,对速率也有影响;
控制器占用率高:缓冲区方式,要求控制器参与度高;由于缓冲区方式,无法做自动流控,所以每次读写,都需要控制器多次参与,极大的影响了系统的整体效率。
因此,亟需一种新的硬盘加密解密装置,以至少解决现有技术中存在的上述缺陷。
发明内容
针对上述问题,本申请提出一种硬盘加密解密装置装置、硬盘加密方法、硬盘解密方法、存储介质、电子设备、硬盘以及I/O接口,至少解决了通过缓冲区方式实现硬盘桥接加密的需要数据切片、生产成本高、速度慢以及控制器占用率高等缺陷。
本申请的第一个方面,提供了一种硬盘加密解密装置,所述装置包括:
第一接口模块,与第一存储模块电连接,用于连接上位机;
第二接口模块,与第二存储模块电连接,用于连接目标硬盘;
第一存储模块,分别与所述第一接口模块和加密解密模块电连接,用于存储所述上位机发送的待加密数据,在所述第一存储模块存储待加密数据的情况下,第二存储模块用于存储对所述待加密数据执行加密操作后得到的已加密数据;
第二存储模块,分别与所述第二接口模块和加密解密模块电连接,还用于存储从所述目标硬盘中读取的待解密数据,在所述第二存储模块存储所述待解密数据的情况下,第一存储模块还用于存储对所述待解密数据执行解密操作后得到的已解密数据;
加密解密模块,分别与所述第一存储模块和所述第二存储模块电连接,用于在检测到所述第一存储模块中接收到待加密数据的情况下对所述待加密数据执行加密操作;或,用于在检测到所述第二存储模块中接收到待解密数据的情况下对所述待解密数据执行解密操作;
控制模块,分别与所述第一接口模块和所述第二接口模块以及所述加密解密模块电连接,用于在所述加密解密模块执行加密或解密操作之前,对所述第一接口模块和所述第二接口模块以及所述加密解密模块进行初始化操作;
其中,所述第一存储模块和所述第二存储模块均包括FIFO存储器。
进一步的,所述第一接口模块和所述第二接口模块均包括SATA接口。
进一步的,所述第一接口模块与所述第一存储模块之间以及所述第二接口模块与所述第二存储模块之间均通过AXI总线连接。
进一步的,所述控制模块,包括:
接收单元,用于在所述上位机执行写操作时,从所述第一接口模块中读取待写数据的FIS信息;
解析单元,用于根据预设解析规则对所述待写数据的FIS信息进行解析,以得到所述待写数据在硬盘中的存储信息;
配置单元,用于将所述存储信息发送给所述第二接口模块,以保证所述待写数据成功写入到所述硬盘中。
进一步的,所述配置单元还用于配置所述第一接口模块和所述第二接口模块的传输寄存器,以及,用于配置所述加密解密模块的密钥。
本申请的第二个方面,提供了一种硬盘加密方法,基于如上所述的硬盘加密解密装置实现,所述方法包括:
响应于上位机发送的写数据指令,通过第一接口模块将待加密数据写入至第一存储器;
在检测到所述第一存储器接收到所述待加密数据的情况下,通过加密解密模块对所述待加密数据执行加密操作,获得已加密数据;
将所述已加密数据从所述第一存储器移动至第二存储器;
在检测到所述第二存储器接收到所述已加密数据的情况下,将所述已加密数据写入至所述硬盘中。
进一步的,还包括:
在所述第一存储器发出满信号的情况下,对所述第一接口模块执行反压操作,以控制所述上位机停止写入数据操作。
本申请的第三个方面,提供了一种硬盘解密方法,基于如上所述的硬盘加密解密装置实现,所述方法包括:
响应于上位机发送的读数据指令,通过第二接口模块将硬盘中的已加密数据读取至第二存储器;
在检测到所述第二存储器接收到所述已加密数据的情况下,通过加密解密模块对所述已加密数据执行解密操作,获得已解密数据;
将所述已解密数据从所述第二存储器移动至第一存储器;
在检测到所述第一存储器接收到所述已解密数据的情况下,将所述已解密数据读取至所述上位机中。
进一步的,还包括:
在所述第二存储器发出空信号的情况下,对所述第二接口模块执行阻塞操作,以停止对所述硬盘执行读取数据操作。
本申请的第四个方面,提供了一种计算机可读存储介质,该计算机可读存储介质存储的计算机程序,可被一个或多个处理器执行,用以实现如上所述的方法。
本申请的第五个方面,提供了一种电子设备,包括存储器和一个或多个处理器,所述存储器上存储有计算机程序,所述存储器和所述一个或多个处理器之间互相通信连接,该计算机程序被所述一个或多个处理器执行时,实现如上所述的方法。
本申请的第六个方面,提供了一种硬盘,包括:如上所述的装置,或如上所述的电子设备。
本申请的第七个方面,提供了一种I/O接口,配置于计算机或移动终端中,所述I/O接口包括:如上所述的装置,或如上所述的电子设备。
与现有技术相比,本申请的技术方案具有以下优点或有益效果:
数据无需切片:SATA DMA(直接存储器存取Direct Memory Access,简称DMA)将数据写入管道一侧,从另一侧直接读取加密/解密后的数据。加密管道是芯片内部设计的硬件逻辑,内部集成了加密解密模块,并且仅需要一个小容量的FIFO(先进先出First In FirstOut,简称FIFO),数据流控由硬件通过总线控制,可以传输任意长度的数据;
节约成本:无需缓冲区,仅需要一个小容量的FIFO,生产成本会大大降低;
无需多次拷贝:加密管道方式下,SATA数据直接写入FIFO,加密解密模块也是直接读写FIFO,不存在数据拷贝的需要无需来回拷贝到缓存区,减少了拷贝次数,节约了操作的时间;
控制器占用率低:缓冲区方式,由于控制器参与高了,需要中断、配置很多寄存器等过程,操作耗时会严重变高。而我们的方式,由于控制器占用率低,所以传输速度高;
传输速度快:数据传输、加密解密过程都是硬件控制的,两侧SATA控制器的DMA可以同时启动,一个命令只有一次DMA传输,相当于不通过桥接SATA直连的方式,可以实现接近SATA协议的最高传输速度。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于所属领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为一种SATA体系结构示意图。
图2为一种FIS ID示意图。
图3为一种硬盘桥接方式加密的整体架构示意图。
图4为一种缓存区方式实现硬盘桥接加密架构示意图。
图5为本申请实施例提供的一种硬盘加密解密装置的结构示意图。
图6为本申请实施例提供的一种加密管道实现桥接加密装置的工作流程图。
图7为本申请实施例提供的一种硬盘加密方法的流程图。
图8为本申请实施例提供的一种硬盘解密方法的流程图。
图9为本申请实施例提供的一种电子设备的连接框图。
附图标记:
图5中,501-控制模块,502-加密解密模块,503-第一存储模块,504-第二存储模块,505-第一接口模块,506-第二接口模块,507-AXI总线。
具体实施方式
以下将结合附图及实施例来详细说明本申请的实施方式,借此对本申请如何应用技术手段来解决技术问题,并达到相应技术效果的实现过程能充分理解并据以实施。本申请实施例以及实施例中的各个特征,在不相冲突的前提下可以相互结合,所形成的技术方案均在本申请的保护范围之内。
为了使本申请实施例的目的、技术方案和有益效果更加清楚,下面将结合说明书附图以及具体的实施方式对本申请实施例中的技术方案进行详细的说明。
以下,先对本申请实施例和现有技术中的部分技术用语进行解释说明,以便于所属领域技术人员理解本申请的技术方案。
桥接芯片:桥接芯片Bridge Chip是一种辅助芯片,主要功能是用来连接两种不同介质、电子设备,进行的信号转换与传递。
SATA:SATA,即Serial ATA(串行ATA),全称是串行高级技术附件Serial AdvancedTechnology Attachment,是由Intel、IBM、Maxtor和Seagate等公司共同提出的硬盘接口新规范,因为采用串行连接方式,所以使用SATA接口的硬盘又叫串口硬盘,SATA规范将硬盘的外部传输速率理论值提高到了150MB/s,SATA组成部分包括两种类型:SATA宿主(SATAhost)和SATA设备(SATA device)。
SATA协议:是一种高速串行传输协议,数据传输速率最高能够达到6.0Gb/s,取代了PATA(并行ATA)作为硬盘与PC机通信的标准;SATA接口具有传输带宽大,物理结构简单,支持热插拔,检错能力强等特点,能够满足绝大多数大容量存储设备对接口功能的需求,因此当前主流的大容量存储设备都使用SATA接口;SATA体系结构如图1所示,图1为一种SATA体系结构示意图,自底向上分别是物理层、链路层、传输层以及应用命令层,物理层负责数据的串行化和解串、时钟恢复、OOB(带外信号)通信以及K码检测等工作,链路层负责8b/10b编解码、加解扰、CRC校验、FIS的接收与发送等工作,传输层负责组帧与解帧、FIFO控制等工作,应用命令层负责命令的执行与寄存器信息的维护等工作。
硬盘:计算机硬盘是计算机最主要的存储设备,硬盘(全称温彻斯特式硬盘HardDisk Drive,简称HDD)由一个或者多个铝制或者玻璃制的碟片组成,其中这些碟片外覆盖有铁磁性材料;是计算机系统中存储数据的重要部件,系统和用户数据默认都以明文形式都存储在硬盘中,如果硬盘丢失,那么将会导致用户的数据泄漏。
IP:Integrate Packet,集成包。
SATA主机接口:(SATA Host IP,SATA主机端集成包),用于操作硬盘的接口,SATAHost IP不仅实现了SATA协议的PHY(物理层)、Link(链路层)和TRN(传输层),并且实现了CMD(命令层)和APP(应用层),SATA Host IP给用户使用SATA存储设备提供一种高效且易于使用的接口。
SATA设备接口:(SATA Device IP,SATA设备端集成包)用于操作主机端的接口。
MCU:微控制单元(Micro Controller Unit,简称MCU),又称单片微型计算机(Single Chip Microcomputer)或者单片机,是把中央处理器(Central Process Unit,简称CPU)的频率与规格做适当缩减,并将内存(memory)、计数器(Timer)、USB、A/D转换器(analog to digital converter,简称A/D转换器或adc)、UART(通用异步收发传输器Universal Asynchronous Receiver/Transmitter,简称UART)、PLC(可编程逻辑控制器Programmable logic Controller,简称PLC)、DMA(直接存储器存取,Direct MemoryAccess,简称DMA)等周边接口,甚至LCD(液晶显示器Liquid Crystal Display,简称LCD)驱动电路都整合在单一芯片上,形成芯片级的计算机,为不同的应用场合做不同组合控制;诸如手机、PC外围、遥控器,至汽车电子、工业上的步进马达、机器手臂的控制等,都可见到MCU的身影。
UART:通用异步收发传输器(Universal Asynchronous Receiver/Transmitter,简称UART),是一种异步收发传输器,是电脑硬件的一部分。它将要传输的资料在串行通信与并行通信之间加以转换。作为把并行输入信号转成串行输出信号的芯片,UART通常被集成于其他通讯接口的连结上。UART作为异步串口通信协议的一种,工作原理是将传输数据的每个字符一位接一位地传输。
DMA:直接存储器访问(Direct Memory Access,简称DMA) 是所有现代电脑的重要特色,它允许不同速度的硬件装置来沟通,而不需要依赖于 CPU 的大量中断负载。否则,CPU 需要从来源把每一片段的资料复制到暂存器,然后把它们再次写回到新的地方。在这个时间中,CPU 对于其他的工作来说就无法使用。DMA 传输将数据从一个地址空间复制到另外一个地址空间。当CPU 初始化这个传输动作,传输动作本身是由 DMA 控制器来实行和完成。典型的例子就是移动一个外部内存的区块到芯片内部更快的内存区。像是这样的操作并没有让处理器工作拖延,反而可以被重新排程去处理其他的工作。DMA 传输对于高效能嵌入式系统算法和网络是很重要的。
总线:总线(Bus)是计算机各种功能部件之间传送信息的公共通信干线,它是由导线组成的传输线束,按照计算机所传输的信息种类,计算机的总线可以划分为数据总线、地址总线和控制总线,分别用来传输数据、数据地址和控制信号;总线是一种内部结构,它是cpu、内存、输入、输出设备传递信息的公用通道,主机的各个部件通过总线相连接,外部设备通过相应的接口电路再与总线相连接,从而形成了计算机硬件系统;在计算机系统中,各个部件之间传送信息的公共通路叫总线,微型计算机是以总线结构来连接各个功能部件的。
AXI总线:AXI(Advanced eXtensible Interface,简称AXI)是一种总线协议,该协议是ARM公司提出的AMBA(高级微控制器总线架构Advanced Microcontroller BusArchitecture,简称AMBA)3.0协议中最重要的部分,是一种面向高性能、高带宽、低延迟的片内总线;它的地址/控制和数据相位是分离的,支持不对齐的数据传输,同时在突发传输中,只需要首地址,同时分离的读写数据通道、并支持Outstanding传输访问和乱序访问,并更加容易进行时序收敛;AXI是AMBA中一个新的高性能协议,AXI技术丰富了现有的AMBA标准内容,满足超高性能和复杂的片上系统(SoC)设计的需求。
对称加密:采用单钥密码系统的加密方法,同一个密钥可以同时用作信息的加密和解密,这种加密方法称为对称加密,也称为单密钥加密;需要对加密和解密使用相同密钥的加密算法;由于其速度快,对称性加密通常在消息发送方需要加密大量数据时使用,对称性加密也称为密钥加密,所谓对称,就是采用这种加密方法的双方,使用方式用同样的密钥进行加密和解密;密钥是控制加密及解密过程的指令,算法是一组规则,规定如何进行加密和解密。
FIS:(架信息结构Frame Information Structure,简称FIS)FIS是一种用于Host和device之间信息传输的机制,每个FIS的格式都是固定的,并且对应唯一的ID,SATA Spec定义了14类FIS ID,如图2所示,图2为一种FIS ID示意图。
SRAM:静态随机存取存储器(Static Random-Access Memory,简称SRAM)是随机存取存储器的一种;所谓的“静态”,是指这种存储器只要保持通电,里面储存的数据就可以恒常保持;相对之下,动态随机存取存储器(DRAM)里面所储存的数据就需要周期性地更新;然而,当电力供应停止时,SRAM储存的数据还是会消失(被称为volatile memory),这与在断电后还能储存资料的ROM或闪存是不同的,SRAM不需要刷新电路即能保存它内部存储的数据,而DRAM(Dynamic Random Access Memory,简称DRAM)每隔一段时间,要刷新充电一次,否则内部的数据即会消失,因此SRAM具有较高的性能,但是SRAM也有它的缺点,即它的集成度较低,功耗较DRAM大,相同容量的DRAM内存可以设计为较小的体积,但是SRAM却需要很大的体积,同样面积的硅片可以做出更大容量的DRAM,因此SRAM显得更贵。
片上系统:片上系统(System-on-a-chip,简称SoC)指的是在单个芯片上集成一个完整的系统,对所有或部分必要的电子电路进行包分组的技术,所谓完整的系统一般包括中央处理器(CPU)、存储器、以及外围电路等;SoC是与其它技术并行发展的,如绝缘硅(绝缘衬底上的硅Silicon-On-Insulator,简称SOI),它可以提供增强的时钟频率,从而降低微芯片的功耗。
握手与反压:(Handshake & Back-pressure)芯片设计中,进行流水设计的流量控制时,采用的两个操作;当入口流量大于出口流量,这时候就需要反压,或者,当后级未准备好时,如果本级进行数据传递,那么它就需要反压前级,所以此时前级需要将数据保持不动,直到握手成功才能更新数据。
FIFO:FIFO是英文First In First Out的缩写,是一种先进先出的数据缓存器,他与普通存储器的区别是没有外部读写地址线,这样使用起来非常简单,但缺点就是只能顺序写入数据,顺序的读出数据,其数据地址由内部读写指针自动加1完成,不能像普通存储器那样可以由地址线决定读取或写入某个指定的地址。FIFO存储器是系统的缓冲环节,如果没有FIFO存储器,整个系统就不可能正常工作,它主要有几方面的功能:
(1)对连续的数据流进行缓存,防止在进机和存储操作时丢失数据;
(2)数据集中起来进行进栈和存储,可避免频繁的总线操作,减轻CPU的负担;
(3)允许系统进行DMA操作,提高数据的传输速度。这是至关重要的一点,如果不采用DMA操作,数据传输将达不到传输要求,而且大大增加CPU的负担,无法同时完成数据的存储工作。
FIFO的几个重要参数:
FIFO的宽度:FIFO一次读写操作的数据位N;
FIFO的深度:FIFO可以存储多少个宽度为N位的数据;
空标志:对于双时钟FIFO又分为读空标志rdempty和写空标志wrempty,FIFO已空或将要空时由FIFO的状态电路送出的一个信号,以阻止FIFO的读操作继续从FIFO中读出数据而造成无效数据的读出;
满标志:对于双时钟FIFO又分为读满标志rdfull和写满标志wrfull,FIFO已满或将要写满时由FIFO的状态电路送出的一个信号,以阻止FIFO的写操作继续向FIFO中写数据而造成溢出;
读时钟:读FIFO时所遵循的时钟,在每个时钟的上升沿触发;
写时钟:写FIFO时所遵循的时钟,在每个时钟的上升沿触发。
下面,对本领域当前常用的两种硬盘加密方法进行简单说明。
SATA硬盘加密的桥接方式简介:图3为一种硬盘桥接方式加密的整体架构示意图,如图3所示的桥接方式的硬盘加密架构,加密桥接芯片需要对写入硬盘设备的数据进行加密,对从硬盘设备中读出的数据进行解密,因此需要对串行的数据流进行逐步的解析,得到写入或者读出的数据,要得到这些数据,就必须按照SATA协议实现物理层和链路层。
缓冲区方式实现硬盘桥接加密简介:图4为一种缓存区方式实现硬盘桥接加密架构示意图,如图4所示的桥接方式的加密架构,可以通过多芯片或者单芯片实现,需要包含以下功能:
(1)SATA主机接口:SATA Host IP,即SATA主机控制器,用于连接硬盘,将硬盘读写数据,封装成SATA的标准接口;
(2)SATA设备接口:SATA Device IP,即SATA设备控制器,用于连接主机,将与主机传输数据,封装成SATA的标准接口;
(3)MCU:用于处理SATA命令的微处理器;
(4)密码模块:用于加密和解密数据的电路模块;
(5)缓冲区:图中的两块SRAM,这两个SRAM其实可以合并成一个SRAM,用于存储被加密和解密的数据。
其中,SRAM是一块片上的内存,由于片上的内存大小有限的,一般从几十到上百KB,所以有时候必须对数据进行切片处理。
通过缓冲区方式实现硬盘桥接加密的方法在进行写入硬盘数据时,包括以下步骤:
(1)MCU接收主机下发的SATA命令;
(2)MCU处理SATA命令,得到要写入的数据长度;
(3)MCU配置和启动SATA Device DMA,从主机接收明文数据到缓冲区;
(4)MCU调用密码模块对数据进行加密;
(5)MCU发送SATA命令给硬盘;
(6)MCU配置和启动SATA Host DMA(位于SATA主机接口和硬盘之间的DMA)从缓冲区将加密数据写入硬盘。
通过缓冲区方式实现硬盘桥接加密的方法在进行读取硬盘数据时,包括以下步骤:
(1)MCU接收主机下发的SATA命令;
(2)MCU处理SATA命令,得到要读取的数据长度;
(3)MCU配置和启动SATA Host DMA,将加密数据从硬盘读入缓冲区;
(4)MCU调用密码模块对数据解密;
(5)MCU发送SATA命令给主机;
(6)MCU配置和启动SATA Device DMA(位于SATA设备接口主机之间的DMA)从缓冲区将明文数据发送给主机。
所属领域技术人员由此可获知,现有技术下对硬盘加密的架构所存在的一些缺陷如下:
(1)需要数据切片:由于硬件限制,缓冲区不可能无限大,尤其是对于微处理器构成的片上系统(SoC)SRAM一般也就几十到几百KB,而SATA一次命令最大可以传输几十M字节的数据,这样就需要将数据切片,多次传输,会影响传输速率;
(2)生产成本高:缓冲区大小、种类、传输速率的选择,对硬件成本有很大的影响;
(3)多次拷贝数据:缓冲区方式,相当于数据传输了2次,即使缓冲区足够大,对速率也有影响;
(4)控制器占用率高:缓冲区方式,要求控制器参与度高,由于缓冲区方式,无法做自动流控,所以每次读写,都需要控制器多次参与,极大的影响了系统的整体效率。
基于此,本申请实施例提供一种硬盘加密解密装置,通过密码管道(对称加密算法模块和两个FIFO),以数据流方式对硬盘数据进行加密和解密,至少解决了如上所述的缺陷。
实施例一
本实施例提供一种装置,图5为本申请实施例提供的一种硬盘加密解密装置的结构示意图,如图5所示,本实施例提供的装置500包括:
第一接口模块505,与第一存储模块503电连接,用于连接上位机;
第二接口模块506,与第二存储模块504电连接,用于连接目标硬盘;
第一存储模块503,分别与所述第一接口模块505和加密解密模块502电连接,用于存储所述上位机发送的待加密数据,在所述第一存储模块存储待加密数据的情况下,第二存储模块用于存储对所述待加密数据执行加密操作后得到的已加密数据;
第二存储模块504,分别与所述第二接口模块506和加密解密模块502电连接,还用于存储从所述目标硬盘中读取的待解密数据,在所述第二存储模块存储所述待解密数据的情况下,第一存储模块还用于存储对所述待解密数据执行解密操作后得到的已解密数据;
加密解密模块502,分别与所述第一存储模块503和所述第二存储模块504电连接,用于在检测到所述第一存储模块503中接收到待加密数据的情况下对所述待加密数据执行加密操作;或,用于在检测到所述第二存储模块504中接收到待解密数据的情况下对所述待解密数据执行解密操作;
控制模块501,分别与所述第一接口模块505和所述第二接口模块506以及所述加密解密模块502电连接,用于在所述加密解密模块502执行加密或解密操作之前,对所述第一接口模块505和所述第二接口模块506以及所述加密解密模块502进行初始化操作;
其中,所述第一存储模块和所述第二存储模块均包括FIFO存储器。
可选的,在加密解密模块502中设置有相应的加密解密算法,比如,加密方式可采用对称加密方式,另外可硬件实现加密解密,并支持国密SM4、AES等国际通用加密算法等多种算法,具体的加密解密方式可根据用户的实际需求进行选择。
需要说明的是,在本装置中可预设一种或多种加密解密算法以供用户进行选择。
在一些可能的实施例中,在本装置的基础上,用户也可根据自己的实际需求,向本装置中烧入自定义的加密解密算法以满足用户的个性化需求。
可选的,硬盘包括SATA硬盘,上位机包括主机(包括计算机等)和/或搭载智能OS(操作系统Operating System,简称OS)的移动智能终端等。
可选的,控制模块501包括微控制器,微控制器可用于运行相关固件,初始化各硬件模块,配置加密算法和密钥,解析和处理SATA协议。
可选的,控制模块501在所述加密解密模块502执行加密或解密操作之前,对所述第一接口模块505和所述第二接口模块506以及所述加密解密模块502进行初始化操作,包括:配置所述第一接口模块505和所述第二接口模块506(包括配置接受的数据长度以及数据存放的位置等),配置完毕后并启动两个接口模块;配置加密解密模块502中的相应算法并启动。
举例说明,控制模块501可具备以下功能:
(1)接收FIS信息:主机端当写数据时,微处理器从SATA设备接口中读取要写数据的的FIS信息;
(2)解析FIS信息:微处理器按照FIS的定义规范,解析出数据在硬盘中的位置、长度等信息;
(3)配置FIS信息:微处理器将解析出来的数据在硬盘中的存储信息,下发给SATA主机接口,确保硬盘可以正常写数据;
(4)配置SATA设备接口:用于配置位于SATA设备接口的传输寄存器,设定好DMA的工作、传输数据的源地址、目的地址、传输的数据的总长度,然后启动DMA操作;
(5)配置SATA主机接口:用于配置位于SATA主机接口的传输寄存器,设定好DMA的工作、传输数据的源地址、目的地址、传输的数据的总长度,然后启动DMA操作;
(6)配置密钥:微处理还可以用于控制加密算法模块工作,如配置加密算法模块的密钥KEY。
在一些实施例中,所述第一接口模块505和所述第二接口模块506均包括SATA接口。
可选的,第一接口模块505包括SATA设备接口,第二接口模块506包括SATA主机接口,SATA设备接口用户连接上位机,SATA主机接口用于连接硬盘,上位机相当于直接连接到硬盘。
在一些实施例中,所述第一接口模块505与所述第一存储模块503之间以及所述第二接口模块506与所述第二存储模块504之间均通过AXI总线507连接。
可选的,FIFO存储器(包括第一存储模块503和第二存储模块504)分别连接AXI总线507和加密解密模块502,它们之间相互协同工作,实现了加密/解密数据的传输。
进一步的,FIFO存储器在存储数据时,无需对数据进行分片,由于FIFO可以通过反压、阻塞等手段控制流量,相当于一条可控制流量的管道,存储大小相当于无限大小,所以读写数据不需要分片。
更进一步的,FIFO存储器可控制AXI总线507的反压和阻塞,通过FIFO的空信号(读空标志rdempty和写空标志wremtpy)、满信号(读满标志rdfull和写满标志wrfull)控制对相关接口的反压和阻塞中断。可以实现自动的流控,不需要控制模块501或微控制器参与。
可选的,加密管道在SATA设备接口和主机接口间转发硬盘数据,以数据流方式实时进行加密和解密,装置在总线上实现硬件流控,相当于无限深度的缓存,可以传输任意长度数据。加密管道就是用一个FIFO缓存一段数据,同时FIFO两边的硬件总线(AXI总线)做流控。在硬盘进行读写数据时,FIFO一边往里边写数据,另一边不停的收数据,这样缓存就相当于无限大的,就相当于没有缓存,即只是有一个延迟而已。
在一些实施例中,所述控制模块501,包括:
接收单元,用于在所述上位机执行写操作时,从所述第一接口模块505中读取待写数据的FIS信息;
解析单元,用于根据预设解析规则对所述待写数据的FIS信息进行解析,以得到所述待写数据在硬盘中的存储信息;
配置单元,用于将所述存储信息发送给所述第二接口模块506,以保证所述待写数据成功写入到所述硬盘中。
在一些实施例中,所述配置单元还用于配置所述第一接口模块505和所述第二接口模块506的传输寄存器,以及,用于配置所述加密解密模块502的密钥。
可选的,控制模块501和第一接口模块505之间,以及控制模块501和第二接口模块506之间均可通过AHB总线进行通讯。
可选的,本实施例所公开的装置的工作流程包括以下步骤:
(1)当装置上电复位后,微控制器初始化各硬件模块,加载密钥和配置加密算法和模式;
(2)微控制器初始化SATA主机接口,连接硬盘;
(3)微控制器初始化SATA设备接口,连接主机;
(4)微控制器接收主机下发的SATA命令,转发给硬盘;
(5)微控制器接收硬盘发送的SATA应答,转发给主机;
(6)对于带有数据的SATA命令,微控制器通过加密管道转发,实时进行加密或解密;
(7)微控制器监控并处理SATA硬盘通讯的异常事件(包括:FIS传输错误、SATA链路传输error、HBA(Host Bus Adapter)错误以及命令无法正常完成等异常)。
关于本实施例所公开的装置的工作流程也可参考图6,图6为本申请实施例提供的一种加密管道实现桥接加密装置的工作流程图。其中,在图6中,Crypta模块为加密解密模块,AHSATA控制器为SATA的主机控制器SATA Host,DSATA控制器为SATA的设备控制器SATADevice。
举例说明,请参考图5,以上位机(可为主机)往硬盘中写数据为例:主机发送写命令,响应于所述写命令完成对两个SATA接口模块(第一接口模块505和第二接口模块506)以及加密解密模块502的配置,并启动两个SATA接口模块以及加密解密模块502;主机通过第一接口模块505向第一存储模块503中写入待加密数据,加密解密模块502实时的对待加密数据进行加密,并将加密后的加密数据移动到第二存储模块504;第二接口模块506通过AXI总线507从第二存储模块504中读取已加密数据,在第二存储模块504中无已加密数据的情况下所述第二接口模块506处于阻塞状态,在第二存储模块504中有已加密数据的情况下读取所述已加密数据;然后将读取的已加密数据写入到硬盘中。
所属领域技术人员可以理解,图5中示出的结构并不构成对本申请实施例装置的限定,可以包括比图示更多或更少的模块/单元,或者组合某些模块/单元,或者不同的模块/单元布置。
本实施例提供的装置包括:第一接口模块505,与第一存储模块503电连接,用于连接上位机;第二接口模块506,与第二存储模块504电连接,用于连接目标硬盘;第一存储模块503,分别与所述第一接口模块505和加密解密模块502电连接,用于存储所述上位机发送的待加密数据,在所述第一存储模块存储待加密数据的情况下,第二存储模块用于存储对所述待加密数据执行加密操作后得到的已加密数据;第二存储模块504,分别与所述第二接口模块506和加密解密模块502电连接,还用于存储从所述目标硬盘中读取的待解密数据,在所述第二存储模块存储所述待解密数据的情况下,第一存储模块还用于存储对所述待解密数据执行解密操作后得到的已解密数据;控制模块501,分别与所述第一接口模块505和第二接口模块506电连接,用于发出加密指令使加密解密模块502对所述待加密数据执行加密操作得到已加密数据,并将所述已加密数据发送到所述第二存储模块504;或,用于发出解密指令使加密解密模块502对所述待解密数据执行解密操作以得到已解密数据,并将所述已解密数据发送到所述第一存储模块503;加密解密模块502,与所述控制模块501通信连接,用于响应于所述加密指令对所述第一存储模块503中的所述待加密数据执行加密操作;或,用于响应于所述解密指令对所述第二存储模块504中的所述待解密数据执行解密操作;其中,所述第一存储模块和所述第二存储模块均包括FIFO存储器。在对硬盘进行加密解密的过程中,SATA DMA(直接存储器存取Direct Memory Access,简称DMA)将数据写入管道一侧,从另一侧直接读取加密/解密后的数据,内部集成了加密解密模块,并且仅需要一个小容量的FIFO,数据流控由硬件通过总线控制,可以传输任意长度的数据;无需缓冲区,仅需要一个小容量的FIFO,生产成本会大大降低;加密管道方式下,SATA数据直接写入FIFO,加密解密模块也是直接读写FIFO,不存在数据拷贝的需要无需来回拷贝到缓存区,减少了拷贝次数,节约了操作的时间;由于控制器占用率低,所以传输速度高;数据传输、加密解密过程都是硬件控制的,两侧SATA控制器的DMA可以同时启动,一个命令只有一次DMA传输,相当于不通过桥接SATA直连的方式,可以实现接近SATA协议的最高传输速度。
实施例二
本实施例提供一种硬盘加密方法,图7为本申请实施例提供的一种硬盘加密方法的流程图,如图7所示,本实施例的方法包括:
S710、响应于上位机发送的写数据指令,通过第一接口模块将待加密数据写入至第一存储器;
S720、在检测到所述第一存储器接收到所述待加密数据的情况下,通过加密解密模块对所述待加密数据执行加密操作,获得已加密数据;
S730、将所述已加密数据从所述第一存储器移动至第二存储器;
S740、在检测到所述第二存储器接收到所述已加密数据的情况下,将所述已加密数据写入至所述硬盘中。
在一些实施例中,还包括:
在所述第一存储器发出满信号的情况下,对所述第一接口模块执行反压操作,以控制所述上位机停止写入数据操作。
具体的,FIFO有满信号,可以对靠近它一端的AXI总线的写入操作进行反压。
举例说明,当主机向硬盘写数据时,通过SATA接口和AXI总线,向第一存储模块(称之为FIFO-1)中写入数据请求。但是可能此时加密算法模块的数据还没有处理完,导致FIFO-1满了。FIFO-1就会将AXI总线反压住,AXI总线会继续将SATA设备接口给反压住。这种当后面的模块未能及时处理上级模块的输入数据时,通过一个Ready信号的拉低,告诉自己前面的模块暂停数据传输。这种方法被称之为‘反压’。这样FIFO就起到一个流控制作用,通过满信号进行反压。
可选的,可以对FIFO-1中写入的数据实时进行加密,比如当一次写入16byte的数据时,便开始对这16byte的写入数据实时的进行加密操作。
需要说明的是,一次向FIFO-1中写入多少byte的数据,具体可以根据用户的实际需求或者连接的总线的规格进行确定。
可选的,向硬盘写入数据包括以下步骤:
1、MCU接收主机下发的SATA命令;
2、MCU转发SATA命令给硬盘;
3、MCU同时配置和启动SATA Host和SATA Device DMA,明文从加密管道一侧写入,密文从另一侧读出直接写入硬盘,详细过程包括(无反压、无阻塞的情况,以下步骤是流水线并行进行的):
(1)主机通过SATA设备接口,向AXI总线写入数据;
(2)AXI总线将数据写入第一存储模块;
(3)一旦FIFO-1中有数据信号,加密算法就会启动,并对FIFO-1中的数据进行加密操作;
(4)加密算法将加密完成的数据写入第二存储模块(可称之为FIFO-2);
(5)SATA主机接口,收到FIFO-2中的数据信号,就通过AXI总线将FIFO-2中的数据写入到硬盘。
本实施例提供的硬盘加密方法包括:响应于上位机发送的写数据指令,通过第一接口模块将待加密数据写入至第一存储器;在检测到所述第一存储器中存在所述待加密数据的情况下,通过加密解密模块对所述待加密数据执行加密操作,获得已加密数据;将所述已加密数据从所述第一存储器移动至第二存储器;在检测到所述第二存储器中存在所述已加密数据的情况下,将所述已加密数据写入至所述硬盘中。在对硬盘进行加密解密的过程中,SATA DMA(直接存储器存取Direct Memory Access,简称DMA)将数据写入管道一侧,从另一侧直接读取加密/解密后的数据,内部集成了加密解密模块,并且仅需要一个小容量的FIFO,数据流控由硬件通过总线控制,可以传输任意长度的数据;无需缓冲区,仅需要一个小容量的FIFO,生产成本会大大降低;加密管道方式下,SATA数据直接写入FIFO,加密解密模块也是直接读写FIFO,不存在数据拷贝的需要无需来回拷贝到缓存区,减少了拷贝次数,节约了操作的时间;由于控制器占用率低,所以传输速度高;数据传输、加密解密过程都是硬件控制的,两侧SATA控制器的DMA可以同时启动,一个命令只有一次DMA传输,相当于不通过桥接SATA直连的方式,可以实现接近SATA协议的最高传输速度。
实施例三
本实施例提供一种硬盘解密方法,图8为本申请实施例提供的一种硬盘解密方法的流程图,如图8所示,本实施例的方法包括:
S810、响应于上位机发送的读数据指令,通过第二接口模块将硬盘中的已加密数据读取至第二存储器;
S820、在检测到所述第二存储器接收到所述已加密数据的情况下,通过加密解密模块对所述已加密数据执行解密操作,获得已解密数据;
S830、将所述已解密数据从所述第二存储器移动至第一存储器;
S840、在检测到所述第一存储器接收到所述已解密数据的情况下,将所述已解密数据读取至所述上位机中。
在一些实施例中,还包括:
在所述第二存储器发出空信号的情况下,对所述第二接口模块执行阻塞操作,以停止对所述硬盘执行读取数据操作。
具体的,当FIFO是空信号时,会导致对靠近它一端的AXI总线和SATA接口的读取操作阻塞,即在很小的时间片间隔下,进行轮转查询,等待处理数据。
可选的,读取硬盘数据包括以下步骤:
1、MCU接收主机下发的SATA命令;
2、MCU转发SATA命令给硬盘;
3、MCU同时配置和启动SATA Host和SATA Device DMA,密文从加密管道一侧写入,明文从另一侧读出直接发送给主机,具体的可包括(其中,以下步骤是流水线并行进行的):
(1)硬盘通过SATA主机接口,向AXI总线写入数据;
(2)AXI总线将数据写入的FIFO-2;
(3)一旦FIFO-2中有数据信号,解密算法就会启动,并对FIFO-2中的数据进行解密操作;
(4)解密算法将解密完成的数据写入FIFO-1中;
(5)SATA设备接口,收到FIFO-1中的数据信号,就通过AXI总线将FIFO-1中已解密的数据读取到主机。
本实施例提供的硬盘解密方法包括:响应于上位机发送的读数据指令,通过第二接口模块将硬盘中的已加密数据读取至第二存储器;在检测到所述第二存储器中存在所述已加密数据的情况下,通过加密解密模块对所述已加密数据执行解密操作,获得已解密数据;将所述已解密数据从所述第二存储器移动至第一存储器;在检测到所述第一存储器中存在所述已解密数据的情况下,将所述已解密数据读取至所述上位机中。在对硬盘进行加密解密的过程中,SATA DMA(直接存储器存取Direct Memory Access,简称DMA)将数据写入管道一侧,从另一侧直接读取加密/解密后的数据,内部集成了加密解密模块,并且仅需要一个小容量的FIFO,数据流控由硬件通过总线控制,可以传输任意长度的数据;无需缓冲区,仅需要一个小容量的FIFO,生产成本会大大降低;加密管道方式下,SATA数据直接写入FIFO,加密解密模块也是直接读写FIFO,不存在数据拷贝的需要无需来回拷贝到缓存区,减少了拷贝次数,节约了操作的时间;由于控制器占用率低,所以传输速度高;数据传输、加密解密过程都是硬件控制的,两侧SATA控制器的DMA可以同时启动,一个命令只有一次DMA传输,相当于不通过桥接SATA直连的方式,可以实现接近SATA协议的最高传输速度。
实施例四
本实施例还提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,该计算机程序被处理器执行时可以实现如前述方法实施例中的方法步骤,本实施例在此不再重复赘述。
其中,计算机可读存储介质还可单独包括计算机程序、数据文件、数据结构等,或者包括其组合。计算机可读存储介质或计算机程序可被计算机软件领域的技术人员具体设计和理解,或计算机可读存储介质对计算机软件领域的技术人员而言可以是公知和可用的。计算机可读存储介质的示例包括:磁性介质,例如硬盘、软盘和磁带;光学介质,例如,CDROM盘和DVD;磁光介质,例如,光盘;和硬件装置,具体被配置以存储和执行计算机程序,例如,只读存储器(ROM)、随机存取存储器(RAM)、闪存;或服务器、app应用商城等。计算机程序的示例包括机器代码(例如,由编译器产生的代码)和包含高级代码的文件,可由计算机通过使用解释器来执行高级代码。所描述的硬件装置可被配置为用作一个或多个软件模块,以执行以上描述的操作和方法,反之亦然。另外,计算机可读存储介质可分布在联网的计算机系统中,可以分散的方式存储和执行程序代码或计算机程序。
实施例五
图9为本申请实施例提供的一种电子设备的连接框图,如图9所示,该电子设备900可以包括:一个或多个处理器901,存储器902,多媒体组件903,输入/输出(简称I/O)接口904,以及通信组件905。
其中,一个或多个处理器901用于执行如前述方法实施例中的全部或部分步骤。存储器902用于存储各种类型的数据,这些数据例如可以包括电子设备中的任何应用程序或方法的指令,以及应用程序相关的数据。
一个或多个处理器901可以是专用集成电路(Application Specific IntegratedCircuit,简称ASIC)、数字信号处理器(Digital Signal Processor,简称DSP)、数字信号处理设备(Digital Signal Processing Device,简称DSPD)、可编程逻辑器件(ProgrammableLogic Device,简称PLD)、现场可编程门阵列(Field Programmable Gate Array,简称FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行如前述方法实施例中的方法。
存储器902可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(Static Random Access Memory,简称SRAM),电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,简称EEPROM),可擦除可编程只读存储器(Erasable Programmable Read-Only Memory,简称EPROM),可编程只读存储器(Programmable Read-Only Memory,简称PROM),只读存储器(Read-Only Memory,简称ROM),磁存储器,快闪存储器,磁盘或光盘。
多媒体组件903可以包括屏幕和音频组件,该屏幕可以是触摸屏,音频组件用于输出和/或输入音频信号。例如,音频组件可以包括一个麦克风,麦克风用于接收外部音频信号。所接收的音频信号可以被进一步存储在存储器或通过通信组件发送。音频组件还包括至少一个扬声器,用于输出音频信号。
I/O接口904为一个或多个处理器901和其他接口模块之间提供接口,上述其他接口模块可以是键盘,鼠标,按钮等。这些按钮可以是虚拟按钮或者实体按钮。
通信组件905用于该电子设备900与其他设备之间进行有线或无线通信。有线通信包括通过网口、串口等进行通信;无线通信包括:Wi-Fi、蓝牙、近场通信(Near FieldCommunication,简称NFC)、2G、3G、4G、5G,或它们中的一种或几种的组合。因此相应的该通信组件905可以包括:Wi-Fi模块,蓝牙模块,NFC模块。
实施例六
本实施例还公开一种硬盘,包括:
如前述实施例所述的硬盘加密解密装置;或
如前述实施例所述的电子设备。
可选的,所述硬盘包括SATA硬盘,还可包括支持SATA协议的硬盘或U盘(USB盘,USBflash disk,简称U盘)。
所属领域技术人员可以理解的是,在本申请实施例中,硬盘加密解密装置的第二接口模块用于连接本实施例所公开的硬盘。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,所述硬盘中所包括的各模块以及这些模块的具体工作过程,可以参考前述装置实施例和方法实施例中的对应过程,本实施例在此不再进行重复赘述。
实施例七
本实施例还公开一种I/O接口,配置于计算机或移动终端中,所述I/O接口包括:
如前述实施例所述的硬盘加密解密装置;或
如前述实施例所述的电子设备。
可选的,计算机包括个人电脑以及其他生产制造领域所用的主机设备等;移动终端包括搭载智能OS的移动智能设备或可穿戴设备等。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,所述I/O接口中所包括的各模块以及这些模块的具体工作过程,可以参考前述装置实施例和方法实施例中的对应过程,本实施例在此不再进行重复赘述。
综上,本申请提供的一种硬盘加密解密装置、硬盘加密方法、硬盘解密方法、存储介质、电子设备、硬盘以及I/O接口,所述硬盘加密解密装置包括:第一接口模块,与第一存储模块电连接,用于连接上位机;第二接口模块,与第二存储模块电连接,用于连接目标硬盘;第一存储模块,分别与所述第一接口模块和加密解密模块电连接,用于存储所述上位机发送的待加密数据,在所述第一存储模块存储待加密数据的情况下,第二存储模块用于存储对所述待加密数据执行加密操作后得到的已加密数据;第二存储模块,分别与所述第二接口模块和加密解密模块电连接,还用于存储从所述目标硬盘中读取的待解密数据,在所述第二存储模块存储所述待解密数据的情况下,第一存储模块还用于存储对所述待解密数据执行解密操作后得到的已解密数据;控制模块,分别与所述第一接口模块和第二接口模块电连接,用于发出加密指令使加密解密模块对所述待加密数据执行加密操作得到已加密数据,并将所述已加密数据发送到所述第二存储模块;或,用于发出解密指令使加密解密模块对所述待解密数据执行解密操作以得到已解密数据,并将所述已解密数据发送到所述第一存储模块;加密解密模块,与所述控制模块通信连接,用于响应于所述加密指令对所述第一存储模块中的所述待加密数据执行加密操作;或,用于响应于所述解密指令对所述第二存储模块中的所述待解密数据执行解密操作;其中,所述第一存储模块和所述第二存储模块均包括FIFO存储器。在对硬盘进行加密解密的过程中,SATA DMA(直接存储器存取DirectMemory Access,简称DMA)将数据写入管道一侧,从另一侧直接读取加密/解密后的数据,内部集成了加密解密模块,并且仅需要一个小容量的FIFO,数据流控由硬件通过总线控制,可以传输任意长度的数据;无需缓冲区,仅需要一个小容量的FIFO,生产成本会大大降低;加密管道方式下,SATA数据直接写入FIFO,加密解密模块也是直接读写FIFO,不存在数据拷贝的需要无需来回拷贝到缓存区,减少了拷贝次数,节约了操作的时间;由于控制器占用率低,所以传输速度高;数据传输、加密解密过程都是硬件控制的,两侧SATA控制器的DMA可以同时启动,一个命令只有一次DMA传输,相当于不通过桥接SATA直连的方式,可以实现接近SATA协议的最高传输速度。
另外应该理解到,在本申请所提供的实施例中所揭露的方法或系统,也可以通过其它的方式实现。以上所描述的方法或系统实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的方法和装置的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、计算机程序段或计算机程序的一部分,模块、计算机程序段或计算机程序的一部分包含一个或多个用于实现规定的逻辑功能的计算机程序。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生,实际上也可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机程序的组合来实现。
在本申请中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、装置或者设备中还存在另外的相同要素;如果有描述到“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量或者隐含指明所指示的技术特征的先后关系;在本申请的描述中,除非另有说明,术语“多个”、“多”的含义是指至少两个;如果有描述到服务器,需要说明的是,服务器可以是独立的物理服务器或终端,也可以是多个物理服务器构成的服务器集群,可以是能够提供云服务器、云数据库、云存储和CDN等基础云计算服务的云服务器;在本申请中如果有描述到智能终端或移动设备,需要说明的是,智能终端或移动设备可以是手机、平板电脑、智能手表、上网本、可穿戴电子设备、个人数字助理(Personal Digital Assistant,PDA)、增强现实技术设备(Augmented Reality,AR)、虚拟现实设备(Virtual Reality,VR)、智能电视、智能音响、个人计算机(Personal Computer,PC)等,但并不局限于此,本申请对智能终端或移动设备的具体形式不做特殊限定。
最后需要说明的是,在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“一个示例”或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式进行结合。
尽管上面已经示出和描述了本申请的实施例,可以理解的是,上述实施例都是示例性的,所述的内容只是为了便于理解本申请而采用的实施方式,并非用以限定本申请。任何本申请所属技术领域内的技术人员,在不脱离本申请所公开的精神和范围的前提下,可以在实施的形式上及细节上作任何的修改与变化,但本申请的保护范围,仍须以所附的权利要求书所界定的范围为准。
Claims (9)
1.一种硬盘加密解密装置,其特征在于,所述装置包括:
第一接口模块,与第一存储模块电连接,用于连接上位机,其中所述第一接口模块包括SATA接口;
第二接口模块,与第二存储模块电连接,用于连接目标硬盘,其中所述第二接口模块包括SATA接口;
第一存储模块,分别与所述第一接口模块和加密解密模块电连接,用于存储所述上位机发送的待加密数据,在所述第一存储模块存储待加密数据的情况下,第二存储模块用于存储对所述待加密数据执行对称加密操作后得到的已加密数据;其中,所述第一接口模块与所述第一存储模块之间通过AXI总线连接;
第二存储模块,分别与所述第二接口模块和加密解密模块电连接,还用于存储从所述目标硬盘中读取的待解密数据,在所述第二存储模块存储所述待解密数据的情况下,第一存储模块还用于存储对所述待解密数据执行对称解密操作后得到的已解密数据;其中,所述第二接口模块与所述第二存储模块之间通过AXI总线连接;
加密解密模块,分别与所述第一存储模块和所述第二存储模块电连接,用于在检测到所述第一存储模块中接收到待加密数据的情况下对所述待加密数据执行对称加密操作;或,用于在检测到所述第二存储模块中接收到待解密数据的情况下对所述待解密数据执行对称解密操作;
控制模块,包括微控制器;所述控制模块分别与所述第一接口模块和所述第二接口模块以及所述加密解密模块电连接,用于在所述加密解密模块执行对称加密或对称解密操作之前,对所述第一接口模块和所述第二接口模块以及所述加密解密模块进行初始化操作;其中,所述初始化操作包括:配置所述第一接口模块和所述第二接口模块接受的数据长度以及数据存放的位置,配置所述加密解密模块的算法,解析SATA协议;其中,所述控制模块,还包括:接收单元,用于在所述上位机执行写操作时,从所述第一接口模块中读取待写数据的FIS信息;解析单元,用于根据预设解析规则对所述待写数据的FIS信息进行解析,以得到所述待写数据在硬盘中的存储信息;配置单元,用于将所述存储信息发送给所述第二接口模块,以保证所述待写数据成功写入到所述硬盘中;其中,所述配置单元还用于配置所述第一接口模块和所述第二接口模块的传输寄存器,以及,用于配置所述加密解密模块的密钥;
其中,所述第一存储模块和所述第二存储模块均包括FIFO存储器,通过所述加密解密模块、所述第一存储模块和所述第二存储模块以数据流方式实时进行加密和解密。
2.一种硬盘加密方法,其特征在于,基于权利要求1所述的硬盘加密解密装置实现,所述方法包括:
响应于上位机发送的写数据指令,通过第一接口模块将待加密数据写入至第一存储器;
在检测到所述第一存储器接收到所述待加密数据的情况下,通过加密解密模块对所述待加密数据执行对称加密操作,获得已加密数据;
将所述已加密数据从所述第一存储器移动至第二存储器;
在检测到所述第二存储器接收到所述已加密数据的情况下,将所述已加密数据写入至所述硬盘中。
3.根据权利要求2所述的硬盘加密方法,其特征在于,还包括:
在所述第一存储器发出满信号的情况下,对所述第一接口模块执行反压操作,以控制所述上位机停止写入数据操作。
4.一种硬盘解密方法,其特征在于,基于权利要求1所述的硬盘加密解密装置实现,所述方法包括:
响应于上位机发送的读数据指令,通过第二接口模块将硬盘中的已加密数据读取至第二存储器;
在检测到所述第二存储器接收到所述已加密数据的情况下,通过加密解密模块对所述已加密数据执行对称解密操作,获得已解密数据;
将所述已解密数据从所述第二存储器移动至第一存储器;
在检测到所述第一存储器接收到所述已解密数据的情况下,将所述已解密数据读取至所述上位机中。
5.根据权利要求4所述的硬盘解密方法,其特征在于,还包括:
在所述第二存储器发出空信号的情况下,对所述第二接口模块执行阻塞操作,以停止对所述硬盘执行读取数据操作。
6.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储的计算机程序,当被一个或多个处理器执行时,实现如权利要求2~3或4~5中任一项所述的方法。
7.一种电子设备,其特征在于,包括存储器和一个或多个处理器,所述存储器上存储有计算机程序,所述存储器和所述一个或多个处理器之间互相通信连接,当所述计算机程序被所述一个或多个处理器执行时,执行如权利要求2~3或4~5中任一项所述的方法。
8.一种硬盘,其特征在于,包括:
权利要求1所述的硬盘加密解密装置;或
权利要求7所述的电子设备。
9.一种I/O接口,其特征在于,配置于计算机或移动终端中,所述I/O接口包括:
权利要求1所述的硬盘加密解密装置;或
权利要求7所述的电子设备。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211276219.5A CN115344881B (zh) | 2022-10-19 | 2022-10-19 | 一种硬盘加密解密装置、方法、硬盘及i/o接口 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211276219.5A CN115344881B (zh) | 2022-10-19 | 2022-10-19 | 一种硬盘加密解密装置、方法、硬盘及i/o接口 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115344881A CN115344881A (zh) | 2022-11-15 |
CN115344881B true CN115344881B (zh) | 2023-07-04 |
Family
ID=83957515
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211276219.5A Active CN115344881B (zh) | 2022-10-19 | 2022-10-19 | 一种硬盘加密解密装置、方法、硬盘及i/o接口 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115344881B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115795519B (zh) * | 2023-01-18 | 2023-05-09 | 苏州浪潮智能科技有限公司 | 数据加解密处理方法、装置、电子设备及存储介质 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105229592B (zh) * | 2013-03-15 | 2018-04-10 | 马维尔国际贸易有限公司 | 用于生成用以由于错误而重新访问存储驱动器的非易失性半导体存储器的描述符的装置和方法 |
CN106169041B (zh) * | 2016-07-06 | 2019-05-28 | 于哲 | 一种基于usbkey鉴权的安全加密移动硬盘及其数据传输方法 |
CN112084138A (zh) * | 2020-08-21 | 2020-12-15 | 杭州电子科技大学 | 一种用于可信存储的SoC安全盘控芯片架构设计方法 |
CN113220498A (zh) * | 2021-05-08 | 2021-08-06 | 青芯半导体科技(上海)有限公司 | 一种支持加密存储的嵌入式Flash控制器 |
CN114546914B (zh) * | 2022-02-23 | 2024-04-26 | 北京奕斯伟计算技术股份有限公司 | 用于对多个通道信息执行数据处理的处理装置及系统 |
CN114546277A (zh) * | 2022-02-23 | 2022-05-27 | 北京奕斯伟计算技术有限公司 | 用于存取数据的装置、方法、处理装置及计算机系统 |
CN114564234A (zh) * | 2022-02-23 | 2022-05-31 | 北京奕斯伟计算技术有限公司 | 用于对多个通道执行数据处理的处理装置、方法及系统 |
-
2022
- 2022-10-19 CN CN202211276219.5A patent/CN115344881B/zh active Active
Non-Patent Citations (1)
Title |
---|
谭帆.可配置加密算法的SATA桥接器的设计与实现.《微电子学与计算机》.2013,第22-30页. * |
Also Published As
Publication number | Publication date |
---|---|
CN115344881A (zh) | 2022-11-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4698982B2 (ja) | 暗号処理を行うストレージシステム | |
US20020071450A1 (en) | Host-fabric adapter having bandwidth-optimizing, area-minimal, vertical sliced memory architecture and method of connecting a host system to a channel-based switched fabric in a data network | |
US9929972B2 (en) | System and method of sending data via a plurality of data lines on a bus | |
TWI620093B (zh) | 用於保全電腦大容量儲存資料的方法和裝置 | |
US8788726B2 (en) | Data transmission system, storage medium and data transmission program | |
CN101840306B (zh) | VxWorks操作系统中实现驱动SATA设备的方法和系统 | |
KR20030087025A (ko) | Ngio/infiniband 어플리케이션용 리모트 키검증을 위한 방법 및 메커니즘 | |
US5958024A (en) | System having a receive data register for storing at least nine data bits of frame and status bits indicating the status of asynchronous serial receiver | |
CN115344881B (zh) | 一种硬盘加密解密装置、方法、硬盘及i/o接口 | |
US7827386B2 (en) | Controlling memory access devices in a data driven architecture mesh array | |
KR20170133235A (ko) | 재구성 가능한 멀티 포트들을 구비한 PCIe 스토리지 시스템을 위한 서비스 품질을 인식하는 입출력 관리 | |
US20190278477A1 (en) | Adaptive transaction layer packet for latency balancing | |
JP4347351B2 (ja) | データ暗号化装置、データ復号化装置、データ暗号化方法、データ復号化方法およびデータ中継装置 | |
CN115549911B (zh) | 一种加解密系统、方法、处理器和服务器 | |
US7191262B2 (en) | High-throughput UART interfaces | |
KR20170133236A (ko) | PCIe 장치들에서의 고속 입출력을 위한 스토리지 시스템, 방법 및 장치 | |
US8086879B2 (en) | Powering on devices via intermediate computing device | |
JP3989376B2 (ja) | 通信システム | |
CN106970889B (zh) | 一种sata桥接芯片及其工作方法 | |
CN115543882B (zh) | 不同位宽总线间的数据转发装置及数据传输方法 | |
JP2003050788A (ja) | 高レベル・データ・リンク・コントローラから多数個のディジタル信号プロセッサ・コアに信号を分配するための装置と方法 | |
CN111083104A (zh) | 一种实现主机同时接入内外网络的方法和系统 | |
CN114547663B (zh) | 基于usb接口的高速芯片实现数据加解密及读取的方法 | |
CN210836072U (zh) | 一种流加密usb接口转fifo接口的桥片 | |
CN113190490A (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 |