CN114969850A - 一种数据传输方法及存储系统 - Google Patents
一种数据传输方法及存储系统 Download PDFInfo
- Publication number
- CN114969850A CN114969850A CN202210661686.3A CN202210661686A CN114969850A CN 114969850 A CN114969850 A CN 114969850A CN 202210661686 A CN202210661686 A CN 202210661686A CN 114969850 A CN114969850 A CN 114969850A
- Authority
- CN
- China
- Prior art keywords
- encryption
- storage system
- register
- host
- data transmission
- 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.)
- Pending
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/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/72—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
-
- 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
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开一种数据传输方法及存储系统。其中,所述方法包括:在所述存储系统中配置与所述存储系统支持的通信协议相关的加密寄存器组;在所述存储系统初始化过程中,基于所述加密寄存器组与耦接在所述存储系统的主机进行数据加解密协商,使所述主机获得数据传输密钥;基于所述数据传输密钥与所述主机进行数据交互。
Description
技术领域
本发明涉及数据传输安全技术领域,尤其涉及一种数据传输方法及存储系统。
背景技术
当下信息安全越来越重要,大到国家机密,小到个人信息,任何一个漏洞都可能造成信息泄露。信息在存储处理和传输的过程中,都存在着被窃听、篡改和伪造的可能。在存储设备中,随着大数据时代的到来,对于数据存储的要求越来越高,硬盘作为存储数据的媒介之一,得到业界内广泛的关注,尤其是固态硬盘(SSD,Solid State Drives)采用可信任计算机组织(TCG,Trusd Computing Group)存储规范(Storage Opal)来实现数据的密文存储,使得数据存储比较安全,因此得到更广泛的关注。然而,在SSD与主机传输过程中仍会有数据泄露的风险。因此,如何提供主机与SSD进行数据交互的安全性,是本领技术领域人员需要解决的问题。
发明内容
有鉴于此,本发明提供一种数据传输方法及存储系统,在存储系统支持的通信协议层添加加密寄存器组,以此在存储系统初始化过程中,与主机进行加解密协商,以获得与主机数据交互时使用的数据传输密钥,以在与主机以密文方式进行数据交互,从保证传输数据的安全性。
为达到上述目的,本发明的技术方案是这样实现的:
第一方面,本发明实施例提供一种数据传输方法,应用于存储系统,所述方法包括:
在所述存储系统中配置与所述存储系统支持的通信协议相关的加密寄存器组;
在所述存储系统初始化过程中,基于所述加密寄存器组与耦接在所述存储系统的主机进行数据加解密协商,使所述主机获得数据传输密钥;
基于所述数据传输密钥与所述主机进行数据交互。
第二方面,本发明实施例提供一种数据传输方法,应用于与存储系统耦接的主机,所述方法包括:
基于加密寄存器组与所述存储系统进行数据加解密协商,获得数据传输密钥;所述加密寄存器组为在所述存储系统中配置的与所述存储系统支持的通信协议相关的一组与加解密相关的寄存器;
基于所述数据传输密钥与所述存储系统进行数据交互。
第三方面,本发明实施例还提供一种存储系统,所述存储系统包括:存储器;以及耦接在所述存储器且用于控制所述存储器的存储器控制器,其中;
所述存储器控制器被配置为:配置与所述存储系统支持的通信协议相关的加密寄存器组;在所述存储系统初始化过程中,基于所述加密寄存器组与耦接在所述存储系统的主机进行数据加解密协商,使所述主机获得数据传输密钥;基于所述数据传输密钥与所述主机进行数据交互。
本发明实施例提供一种数据传输方法及存储系统。其中,应用于存储系统的方法包括:在所述存储系统中配置与所述存储系统支持的通信协议相关的加密寄存器组;在所述存储系统初始化过程中,基于所述加密寄存器组与耦接在所述存储系统的主机进行数据加解密协商,使所述主机获得数据传输密钥;基于所述数据传输密钥与所述主机进行数据交互。本发明实施例提供的数据传输方法及存储系统,在存储系统支持的通信协议层添加加密寄存器组,以此在存储系统初始化过程中,与主机进行加解密协商,以获得与主机数据交互时使用的数据传输密钥,以在与主机以密文方式进行数据交互,从保证传输数据的安全性。并且这样设置,不仅可以灵活设置传输的加密方式,还可以仅在初始化过程中设置好,以节省后续数据传输时间。
附图说明
图1为相关技术中存储系统中的数据传输的示意图;
图2为采用图1中数据传输方式存在问题的示意图;
图3为本发明实施例提供的存储系统侧的数据传输方法流程示意图;
图4为本发明实施例提供的加密寄存器组的结构示意图;
图5和图6为本发明实施例提供的改进前与改进后存储系统和主机初始化的流程对比示意图;
图7为本发明实施例提供的存储系统侧数据加解密协商的过程的流程示意图;
图8为本发明实施例提供的进行数据加解密协商后数据加密传输的流程示意图;
图9为本发明实施例提供的主机侧的数据传输方法流程示意图;
图10为本发明实施例提供的主机与存储系统进行的数据加解密协商的过程示意图;
图11为本发明实施例提供的写数据时存储系统与主机的工作流程示意图;
图12为本发明实施例提供的读数据时存储系统与主机的工作流程示意图;
图13为本发明实施例提供的存储系统的结构示意图;
图14为本发明实施例的一些方面的具有存储器的示例性存储卡的示意图;
图15为本发明实施例的一些方面的具有存储器的示例性固态驱动器(SSD)的示意图;
图16为本发明实施例提供的存储器的结构示意图;
图17为本发明实施例提供的存储器阵列的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本发明的保护范围。在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互任意组合。在附图的流程图示出了逻辑顺序,但是在某些情况下,可以不同于此处的顺序执行所示出或描述的步骤。
在存储设备(或称之为存储系统)中,SSD通常会使用TCG Storage Pal来实现数据的密文存储。但SSD与耦接的主机之间的数据传输,在传输总线上,数据都是明文,存在被监听的可能性,存在较大的数据泄露风险,具体如图1和图2所示。其中,Host表示主机;在主机中,Application表示应用软件,或者简称为APP;Operation System表示操作系统,如Linux等;NVMe表示所主机支持NVMe通信协议;SATA/PCIe/Fabric表示所述主机支持的与SSD之间通信的接口;plaintext表示明文,纯文件档案,也就是未加密的数据文档,也就是说,在所述主机内部各部件之间传输的数据均是明文。Storage Device表示存储设备或存储系统,比如,SSD;在存储设备中,Madia表示存储介质,可用于存储数据的物理介质,可以以阵列形式排列,而形成存储器阵列;闪存转换层(FTL,Flash Translation Layer)&BE用于将所述主机中的逻辑地址转换成与之对应的存储设备中的物理地址,以便主机从Madia读取数据或写入数据到Madia;Enable Opal ciphertext表示使能可信任计算机组织存储规范密文方式将数据存储到Madia中或以密文的方式从Madia中读出;在存储设备中,在其他部分数据传输仍为明文传输。在这种数据传输形式中,支持NVMe协议的存储设备与主机进行数据传输的过程(Data in Flight)中数据都是明文,如图2中所示,若非法用户事先嵌入协议监听设备(Protocol Monitor Device),在用户不知情的情况下监听数据通讯过程,然后通过事先嵌入的协议分析设备就能够窃取用户的重要数据,目前缺少一种适用于支持NVMe协议的存储设备数据传输的加密方式,以保证主机与存储设备之间的通信安全。
基于此,如图3所示,本发明实施例提供一种数据传输方法,其中,应用于存储系统侧,所述方法可以包括:
S301:在所述存储系统中配置与所述存储系统支持的通信协议相关的加密寄存器组;
S302:在所述存储系统初始化过程中,基于所述加密寄存器组与耦接在所述存储系统的主机进行数据加解密协商,使所述主机获得数据传输密钥;
S303:基于所述数据传输密钥与所述主机进行数据交互。
需要说明的是,这里所说的所述存储系统支持的通信协议可以是非易失性存储系统标准(NVMe,Non-Volatile Memory express)协议,也可以是其他存储系统使用的通信协议。以下仅以通信协议为NVMe为例进行说明,也就是说,在没有特别说明的情况下,以下所说的通信协议即为NVMe协议。
在实际应用中,在所述存储系统中配置与所述存储系统支持的通信协议相关的加密寄存器组也即是在所述存储系统包含的NVMe控制器(存储器控制器的一部分)中添加一组与加解密相关的寄存器,具体如图4所示。在图4中,加密寄存器组可以包括显示加密能力寄存器、重置加密功能寄存器、配置加密功能寄存器、配置加密范围寄存器、协商配置寄存器。其中,各种寄存器的作用,在后续一一介绍,在此不再赘述。应该理解的是,加密寄存器组中定义的寄存器的个数越多,其能够实现的功能也就越多,从而使存储系统具有灵活的配置属性。
可以理解的是,本发明实施例是将存储系统与耦接的主机进行数据加密协商设置在存储系统的存储器控制器的初始化过程中,具体可以如图5和图6所示,其中,图5为本发明实施例提供的存储系统中的存储器控制器的原有初始化过程;图6为本发明实施例提供的将存储系统与耦接的主机进行数据加密协商添加到原有初始化过程后的初始化过程。需要说明的是,在实际运行中,此时,也可以认为是存储系统耦接的主机使用该存储系统的初始化过程,具体来说,如图5所示,原有的初始化过程可以包括:主机等待存储器控制器准备初始化,此时,CSTS.RDY=0;存储器控制器相关功能初始化;最后一步为等待存储器控制器初始化完成,此时,CSTS.RDY=1,表示初始化完成。如图6所示,本发明实施例在存储器控制器相关功能初始化之后,进行存储系统与耦接的主机数据加密协商,然后等待存储器控制器初始化完成。这样设置,可以仅在存储器控制器初始化时,进行数据加密协商,获得数据传输密钥,后续在存储系统与主机之间的数据传输过程,使用该数据传输密钥进行加密传输即可。并且为了数据的安全性,也可以在每次存储系统初始化时,更改加密策略、更改加密传输密钥,以及后述的更改数据加密范围等等比较灵活的设置。
基于此,如何进行存储系统与耦接的主机数据加密协商,具体的,在一些实施例中,所述加密寄存器组可以至少包括:配置加密功能寄存器、协商配置寄存器。
需要说明的是,配置加密功能寄存器,顾名思义,通过该配置加密功能寄存器主机可以为存储系统配置加密策略。其中,所说的加密策略可以是指存储系统所支持的加密策略。所说协商配置寄存器用于放置特定数据,以实现主机与存储系统之间对于特定数据的交互,比如,所说的特定数据可以是后述的数据传输密钥,也可以是后述的公钥。
基于前述的配置加密功能寄存器和协商配置寄存器,在一些实施例中,如图7所示,所述在所述存储系统初始化过程中,基于所述加密寄存器组与耦接在所述存储系统的主机进行数据加解密协商,使所述主机获得数据传输密钥,可以包括:
S701:获取所述主机写入所述配置加密功能寄存器的加密策略;所述加密策略是所述主机为所述存储系统配置的;
S702:获取所述主机写入所述协商配置寄存器的公钥;所述公钥是所述主机基于所述加密策略生成的;
S703:生成数据传输密钥;
S704:使用所述加密策略和所述公钥加密所述数据传输密钥,获得加密的数据传输密钥;
S705:将所述加密的数据传输密钥写入所述协商配置寄存器,使所述主机基于所述协商配置寄存器获得所述数据传输密钥。
需要说明的是,上述图7描述的过程是存储系统与耦接的主机数据加密协商中,在存储系统侧的过程。其中,所述加密策略是所述存储系统支持的。存储系统基于配置加密功能寄存器获取主机配置的加密策略;以及基于协商配置寄存器获取主机写入的公钥。也就是说,所述加密策略可以是指非对称加密策略,其中,非对称加密策略需要两个密钥:公钥(publickey)和私钥(privatekey),公钥和私钥是一对,如果用公钥对数据加密,那么只能用对应的私钥解密。如果用私钥对数据加密,只能用对应的公钥进行解密。因为加密和解密用的是不同的密钥,所以称为非对称加密。非对称加密策略可以采用多种,比如,RSA、Elgamal、背包算法、Rabin、D-H、ECC(椭圆曲线加密算法)等。本发明实施例不限定非对称加密策略所使用的算法,只要存储系统支持的均可。
在一些实施例中,所述加密策略至少包括:加密方式、密钥位数,其中,所述密钥位数包括所述公钥的位数。
需要说明的是,所述加密方式可以为前述的加密算法之一。密钥位数可以根据实际需要进行设置,其中,密钥位数越多,进行暴力破解就越困难,也就是说,密钥位数越多,越安全。所说的密钥位数可以包括公钥的位数和私钥的位数。
之后,存储系统生成数据传输密钥,其中,存储系统生成数据传输密钥的方式也有多种,一种可实施的方式,所述生成数据传输密钥,包括:生成随机数;基于所述随机数生成所述数据传输密钥。
其中,所述随机数可以是动态随机数,其为一组不存在统计学偏差,完全杂乱的数列,可以通过存储系统中设置的生成密码学上的随机数的硬件器件生成。随机数具有不可预测性、不可重现行,利用随机数可以说是生成数据传输密钥的最好办法,因为密钥需求具有不易被别人推测的性质。需要说明的是,该数据传输密钥可以是一种对称加密密钥。
之后,存储系统使用主机配置的加密策略和获取的公钥对所述数据传输密钥进行加密,获得加密的数据传输密钥,并将所述加密的数据传输密钥放置到所述协商配置寄存器,使所述主机基于所述协商配置寄存器获得所述数据传输密钥。主机可以通过读取所述协商配置寄存器以获取所述加密的数据传输密钥,然后,主机在基于自己存储的私钥对所述加密的数据传输密钥进行解密,以获得所述数据传输密钥。
在一些实施例中,在所述加密寄存器组还包括:配置加密范围寄存器时,所述加密策略还包括:加密范围;对应的,所述方法还包括:
获取所述主机写入所述配置加密范围寄存器的所述加密范围;所述加密范围用于指明所述存储系统中的需加密传输的数据所属物理地址的范围。
需要说明的是,这里所说的加密范围也就是体现了本发明实施例对于数据传输的安全的灵活配置。也就是说,利用所述加密范围限定主机与存储系统之间需要加密传输的数据,对于非必要加密的数据传输,可以不设置传输时的数据传输密钥,以节省主机与存储系统之间的数据传输时间。所说的加密范围可以是指明所述存储系统中需要加密传输的数据所属物理地址的范围。应该理解的是,存储系统中的物理地址与主机中的逻辑地址可以通过L2P表进行对应,也就是说,所述加密范围也可以通过主机的逻辑地址体现所述存储系统中需要加密传输的数据所属物理地址的范围,换句话说,所述加密范围也可以是主机存储的逻辑地址范围,以指示存储系统中的物理地址范围。
在一些实施例中,所述加密寄存器组还包括:显示加密能力寄存器,所述方法还包括:
在获取所述主机写入所述配置加密功能寄存器的加密策略之前,基于显示加密能力寄存器使所述主机获取所述存储系统支持的各加密策略。
需要说明的是,这里设置的显示加密能力寄存器用于使主机了解存储系统支持的加密策略。主机通过读取所述显示加密能力寄存器就可以了解所述存储系统支持的加密策略。
在一些实施例中,所述加密寄存器组还包括:重置加密功能寄存器,所述方法还包括:
基于所述重置加密功能寄存器使所述主机将所述存储系统中的加密策略恢复到出厂设置。
需要说明的是,这里设置的重置加密功能寄存器用于使主机将所述存储系统正在使用的加密策略等功能恢复到出厂时默认的可配置的状态。
在进行加解密协商后,存储系统与主机之间的传输通路可以以密文进行传输,具体如图8所示。这里出现的符号在前述图1和图2中已经详细说明,在此不再赘述。
本发明实施例提供一种数据传输方法,在存储系统支持的通信协议层添加加密寄存器组,以此在存储系统初始化过程中,与主机进行加解密协商,以获得与主机数据交互时使用的数据传输密钥,以在与主机以密文方式进行数据交互,从保证传输数据的安全性。并且这样设置,不仅可以灵活设置传输的加密方式,还可以仅在初始化过程中设置好,以节省后续数据传输时间。
基于相同的发明构思,如图9所示,本发明实施例还提供一种数据传输方法,其中,所述方法应用于与存储系统耦接的主机侧,具体流程包括:
S901:基于加密寄存器组与所述存储系统进行数据加解密协商,获得数据传输密钥;所述加密寄存器组为在所述存储系统中配置的与所述存储系统支持的通信协议相关的一组与加解密相关的寄存器;
S902:基于所述数据传输密钥与所述存储系统进行数据交互。
在一些实施例中,所述加密寄存器组至少包括:配置加密功能寄存器、协商配置寄存器。
在一些实施例中,所述基于加密寄存器组与存储系统进行数据加解密协商,获得数据传输密钥,包括:
将加密策略写入所述配置加密功能寄存器;所述加密策略是所述主机为所述存储系统配置的;
基于所述加密策略生成非对称加密的公钥和私钥;
将所述公钥写入所述协商配置寄存器,使所述存储系统基于所述协商配置寄存器获得所述公钥;
读取所述存储系统写入所述协商配置寄存器的加密的数据传输密钥;所述加密的数据传输密钥为所述存储系统使用所述配置加密功能寄存器获得的加密策略和所述公钥加密数据传输密钥获得;所述数据传输密钥是所述存储系统生成的;
使用所述私钥解密所述加密的数据传输密钥,获得所述数据传输密钥。
在一些实施例中,所述加密策略至少包括:加密方式、密钥位数,其中,所述密钥位数包括所述公钥的位数和所述私钥的位数。
在一些实施例中,在所述加密寄存器组还包括:配置加密范围寄存器时,所述加密策略还包括:加密范围;对应的,所述方法还包括:将所述加密范围写入所述配置加密范围寄存器,所述加密范围用于指明所述存储系统中的需加密传输的数据所属物理地址的范围。
在一些实施例中,所述加密寄存器组还包括:显示加密能力寄存器,所述方法还包括:
在获取所述主机写入所述配置加密功能寄存器的加密策略之前,读取所述显示加密能力寄存器,以获取所述存储系统支持的各加密策略。
在一些实施例中,所述加密寄存器组还包括:重置加密功能寄存器,所述方法还包括:
将重置命令写入所述重置加密功能寄存器,使所述存储系统中的加密策略恢复到出厂设置。
需要说明的是,本发明实施例提供的在主机侧的数据传输方法与存储系统侧的数据传输方法为相同构思下,基于不同侧的描述,其中在主机侧出现的各个名词,在前述对于存储系统侧已经描述,其含义相同,可以基于前述描述进行理解,此处不再赘述。
本发明实施例提供的数据传输方法,在存储系统支持的通信协议层添加加密寄存器组,以此在存储系统初始化过程中,与主机进行加解密协商,以获得与主机数据交互时使用的数据传输密钥,以在与主机以密文方式进行数据交互,从保证传输数据的安全性。并且这样设置,不仅可以灵活设置传输的加密方式,还可以仅在初始化过程中设置好,以节省后续数据传输时间。
为了理解本发明,如图10所示,本发明实施例还提供一种主机与SSD在NVMe协议层添加协商数据加解密的机制的流程示意图。需要说明的是,此流程示意图中所涉及的加密寄存器组包括:显示加密能力寄存器、重置加密功能寄存器、配置加密功能寄存器、配置加密范围寄存器及协商配置寄存器。
具体流程如下,如图10所示,在主机侧涉及的主要步骤如下:
写存储系统的重置加密功能寄存器,以使存储系统的加密运算单元恢复到出厂设置;
读取存储系统的显示加密能力寄存器,以获取存储系统支持的加密策略;
通过配置加密功能寄存器设置存储系统的加密策略;加密策略包括加密方式和密钥位数;
设置存储系统的数据加密范围;
生成非对称加密密钥(公钥和私钥),将公钥写入协商配置寄存器,以使存储系统获得该公钥;
读取更新后的协商配置寄存器,以获得加密后的数据传输密钥;
使用私钥对加密后的数据传输密钥进行解密,得到与存储系统中相同的数据传输密钥。
需要说明的是,这里的步骤对应前述主机侧的数据传输方法中的各步骤,具体含义与前述相同,在此不再赘述。
如图10所示,在存储系统侧涉及的主要步骤如下:
基于主机写入重置加密功能寄存器的命令重置加密运算单元,以恢复到出厂设置;
基于主机设置的加密策略重新配置加密运算单元;
使用动态随机数生成数据传输密钥;
使用公钥和主机所配置的加密策略来加密数据传输密钥;
将加密的数据传输密钥写入协商配置寄存器,以使主机获取加密的数据传输密钥,进而获得数据传输密钥。
需要说明的是,这里的步骤对应前述存储系统侧的数据传输方法中的各步骤,具体含义与前述相同,在此不再赘述。
基于本发明实施例提供的数据传输方法,如图11所示,在主机将用户数据写入存储系统时,存储系统与主机的工作流程可以如下:
第一步,主机用户发起写操作;
第二步,主机检查是否开启了NVMe数据链路加解密功能;
第三步,主机检查是否命中加密范围;
第四步,若是,主机使用数据传输密钥加密用户数据;
第五步,主机发送加密的用户数据至传输总线;
第六步,存储系统收取主机加密的用户数据;
第七步,存储系统检查是否开启了NVMe数据链路加解密功能;
第八步,存储系统检查是否命中解密范围;
第九步,若是,存储系统使用数据传输密钥解密加密的用户数据;
第十步,存储系统将用户数据写入存储介质。
如图12所示,在主机读取存储系统存储的用户数据时,存储系统与主机的工作流程可以如下:
第一步,主机用户发起读数据操作;
第二步,主机发送读数据请求至存储系统;
第三步,存储系统收到读数据操作;
第四步,存储系统从存储介质中读取用户数据;
第五步,存储系统检查是否开启了NVMe数据链路加解密功能;
第六步,存储系统检查是否命中加密范围;
第七步,若是,存储系统使用数据传输密钥对用读取的用户数据进行加密;
第八步,存储系统将加密的用户数据写至传输总线;
第九步,主机检查是否开启了NVMe数据链路加解密功能;
第十步,主机检查是否命中加密范围;
第十一步,若是,主机使用数据传输密钥对加密的用户数据进行解密;
第十二步,主机得到用户数据。
需要说明的是,从图11所示的写数据过程和图12所示的读数据过程可以知道,在对传输的数据进行加密之前,主机和存储系统均需要检查是都开启了NVMe数据链路加解密功能(也就是是否支持NVMe数据链路加解密功能),其中,NVMe协议中定义了查看NVMe控制器和它所支持的一些特性的命令,因此,本发明实施例可以通过该命令查看主机及存储系统是否支持NVMe数据链路加解密功能及加密范围。这里NVMe数据链路加解密功能也就是前述描述的是否在主机及存储系统初始化过程中添加了数据加解密协商过程以及加密范围。
本发明实施例还提供一种存储系统,如图13所示,所述存储系统130包括:存储器1301;以及耦接在所述存储器且用于控制所述存储器的存储器控制器1302,其中;
所述存储器控制器被配置为:配置与所述存储系统支持的通信协议相关的加密寄存器组;在所述存储系统初始化过程中,基于所述加密寄存器组与耦接在所述存储系统的主机进行数据加解密协商,使所述主机获得数据传输密钥;基于所述数据传输密钥与所述主机进行数据交互。
需要说明的是,这里仅描述了与本发明实施例相关部分的存储系统结构。实际上,存储系统130可以包括存储器控制器1302和一个或多个存储器1301,比如,在一种实施例中,在如图14中所示的一个示例中,存储器控制器1302和单个存储器1301可以集成到存储器卡140中。存储器卡140可以包括PC卡(PCMCIA,个人计算机存储器卡国际协会)、CF卡、智能媒体(SM)卡、存储器棒、多媒体卡(MMC、RS-MMC、MMCmicro)、SD卡(SD、miniSD、microSD、SDHC)、UFS等。存储器卡140还可以包括将存储器卡140与主机耦接的存储器卡连接器1401。在如图15中所示的另一示例中,存储器控制器1302和多个存储器1301可以集成到SSD 150中。SSD 150还可以包括将SSD 150与主机耦接的SSD连接器1501。在一些实施方式中,SSD150的存储容量和/或操作速度大于存储器卡140的存储容量和/或操作速度。
在一些实施例中,对于某一存储器1301,如图16所示,包含多个单独存储器管芯堆叠的存储器阵列1301-1和耦合到存储器阵列1301-1的外围的控制电路1301-2,其中,所述存储器阵列1301-1可以如二维或三维(3D)进行堆叠,比如,二维或三维(3D)的NAND管芯的堆叠。
需要说明的是,存储器1301中的存储器阵列1301-1具有多个存储块,其示例性的结构如图17所示,存储器阵列被分成BLOCK1-BLOCKT具有多个存储块的存储器阵列,其中T为正整数,并且一般为较大的数。每个存储块包含一组NAND串,该一组NAND串被经由位线BL0-BLM-1和一组公共字线WL0-WLN-1访问,其中,M、N均是大于1整数。NAND串的一个端子经由顶部选择栅极SGD(由顶部选择栅极线SGDL控制)连接至对应的位线,另一端经由底部选择栅极SGS(由底部选择栅极线SGSL控制)连接至源极线。每个存储块被分成多个页面。在一些实施例中,存储块是常规的擦除单元,页面是常规的编程的单位。在另一些实施例中,也可以使用擦除、编程的其他单位。在实例中,图17示出的存储器阵列中的存储单元物理结构不限制本发明的范围。
在一些实施例中,如图16所示的存储器,所述存储器1301还包括读/写电路、行解码器以及列解码器。在一些实施例中,在存储器阵列1301-1的相对侧上以对称的方式实现各种外围电路对存储器阵列1301-1的访问,以使在每侧上的访问先和电路的密度减少一半。读/写电路包括多个感测块SB,用于对存储器阵列1301-1的页面并行地进行读取或者编程。存储器阵列1301-1可通过字线经由行解码器以及位线经由列解码器寻址。在一些实施例中,存储器阵列1301-1、控制电路1301-2、读/写电路、行解码器以及列解码器可以被制造在芯片上,其中图16的虚线框也可以代表芯片。并且通过信号线1301-3在存储器控制器和芯片之间传送。
控制电路1301-2被配置为与读/写电路协作以对存储器阵列1301-1执行存储操作。控制电路包括状态机、片上地址解码器和功率控制模块,其中,状态机被配置为提供存储操作的芯片级控制;片上地址解码器被配置为在主机或存储系统的控制器使用的地址到行解码器以及列解码器使用的硬件地址之间提供地址接口。功率控制模块被配置为在每次存储操作器件控制提供给字线和位线的功率和电压。
对于存储器阵列来说,在3D架构半导体存储器技术中,堆叠竖直结构,从而增加层、物理页的数目,以此增加存储系统的密度。在一种实施例中,存储系统可以为主机的离散存储器或存储器组件。在另一些实施例中,存储系统还可以为集成电路的一部分,如,芯片上系统(SOC,System on Chip)的一部分。此时,存储系统与主机的一个或多个组件堆叠或以其他方式组装在一起。
所说的与存储器耦接的主机可以包括主机处理器和主机RAM,其中,所述主机RAM可以包括DRAM、SDRAM或任何其它合适的易失性或者非易失性存储器。所述存储系统上可以设置一个或者多个通信接口,与主机中的一个或者多个组件进行通信。所说的一个或者多个通信接口可以为串行高级技术附接(SATA)接口、高速外围组件互连(PCIe)接口、PCI接口、PCI-X接口、通用串行总线(USB)接口、通用快闪存储(UFS)接口、eMMCTM接口等等。
其中,主机与存储器组成的数据传输系统的工作原理如下:存储器控制器可从主机接收指令,与所述存储器1301进行通信,如存储器控制器通过执行写入或者擦除指令将数据传送到所述存储器1301中的一个或多个存储器单元、平面、子块、块或页中;或者存储器控制器通过执行读取指令将数据传送给主机。在硬件上,所述存储器控制器可包括一或多个控制器单元、电路或组件,被配置为控制跨越所述存储器1301的访问且提供主机与所述存储系统之间的转换层。存储器控制器还可包括一个或多个输入/输出(I/O)电路、线或接口以将数据传送到所述存储器1301,或者从所述存储器1301中传输数据。
其中,存储器控制器还可包括存储器管理单元和阵列控制单元。所述存储器管理单元可包括电路硬件或固件,比如与各种存储器管理功能相关联的多个组件或集成电路。为了描述本发明的技术方案,将NAND存储器为例进行上下文描述实例存储器操作或管理功能。本领域技术人员应该知道,其他形式的非易失性存储器可具有类似的存储器操作或管理功能。其中,NAND存储器的管理功能可包括磨损均衡,如垃圾收集或回收、错误检测或纠错、块引退或者一个或多个其它存储器管理功能。所述存储器管理单元可将主机的指令处理成所述存储系统可识别的命令,比如,将从主机接收到的指令解析或者格式化成与所述存储器1301的操作相关的命令等;或者所述存储器管理单元还可生成用于所述阵列控制单元或者所述存储系统的一个或多个其他组件的器件命令,如,实现各种存储器管理功能的命令。
所述存储器管理单元可被配置为包含一组管理表,该一组管理表用于维护与所述存储系统的一个或多个组件关联的各种信息,如,与耦合到所述存储器控制器的存储器阵列,或者一个或多个存储器单元相关的各种信息,比如,所述管理表可包含耦合到存储器控制器上的存储器单元一个或多个块的块年龄、块擦除计数、错误历史或一个或多个错误计数等信息。其中,错误计数可以包括操作错误计数、读位错误计数等。在一些实施例中,在检测到的错误计数高于一定阈值的情况下,位错误则是不可纠正的位错误。在一些实施例中,管理表可维护可校正或不可校正位错误的计数等。
管理表还可以包含一个或多个L2P表,其包含一个或多个使用逻辑地址与所述存储器1301的存储器阵列处对的物理地址相关联的L2P指针。在一些实施例中,管理表可以包含未加密L2P表和/或加密L2P表。未加密L2P表可以包括指示未加密逻辑地址和未加密物理地址的L2P指针;加密L2P表可以包含加密物理地址和未加密逻辑地址的加密L2P指针。在实际应用过程中,所述管理表可以在所述存储器管理单元处示出,也即所述管理表可以存储在存储器控制器的RAM。在另一些实施例中,所述管理表还可以存储在所述存储器1301中的存储器阵列中。在使用时,所述存储器管理单元可从存储器控制器的RAM读取缓存的部分或全部管理表;也可以从所述存储器1301中的存储器阵列读取所述管理表。
所述阵列控制单元可以包含电路系统或组件,被配置成控制完成以下相关的存储器操作,比如,所述阵列控制单元控制将数据写入到耦合在所述存储器控制器的存储系统中的一个或多个存储器单元,从所述一个或多个存储器单元读取数据,或擦除所述一个或多个存储器单元。所述阵列控制单元可接收到所述主机发送的命令,或所述存储器管理单元内部生成的主机命令,主机命令可以为与耗损均衡、错误检测或校正等关联的命令。
所述阵列控制单元还可包括错误校正码(ECC)组件,其可包含用于检测或校正与以下相关错误的ECC引擎或其他电路系统,其中相关错误可以为将数据写入到耦合在所述存储器控制器的存储系统中的一个或多个存储器单元或从所述一个或多个存储器单元读取数据过程中可能出现的错误。存储器控制器被配置为有效检测与各种操作或数据存储相关的错误事件,所说错误事件,比如,位错误、操作错误等等,并从所述错误事件中恢复,同时维持在主机与存储系统之间传输数据的完整性,或者维持所存储数据的完整性,比如可以使用冗余RAID存储等,可以移除,如引退发生故障的存储器资源,如,存储器单元、存储器阵列、页、块等,用于防止未来的错误。
在主机与存储系统组成的数据传输系统中,存储器控制器还包括加解密单元,所说的加解密单元被配置为对数据执行密码操作。在一些实施例中,加解密单元可用硬件、软件或者软硬件结合的方式组合实现,比如,加解密单元可以包含在存储器控制器的处理器或者类似硬件组件处执行的指令。在一些实施例中,加解密单元可以包括用于执行密码操作的转用硬件。
所述存储器1301中的存储器阵列可以包括例如布置在一或多个器件、一或多个平面、一或多个子块、一或多个块、一或多个页等中的若干存储器单元。作为一个实例,48GBTLC NAND存储系统可以包括每页18592字节(B)的数据(16384+2208字节)、每块1536页、每平面548块、以及每器件4个或更多个平面。作为另一实例,32GB MLC存储系统(每单元存储两位数据(即,4个可编程状态))可以包括每页18592字节(B)的数据(16384+2208字节)、每块1024页、每平面548块和每器件4个平面,但与对应的TLC存储系统相比,所需的写入时间减少了一半,编程/擦除(P/E)周期增加了两倍。其它实例可以包括其它数目或布置。在一些实例中,存储系统或其一部分可选择性地以SLC模式或以需要的MLC模式(例如TLC、QLC等)操作。
所述存储器1301中的存储器阵列包括一或多个物理地址位置。物理地址位置是所述存储器1301中的存储器阵列上与物理地址唯一地相关联的位置。在操作中,数据通常以页为单位写入存储系统或从其读取,且以块为单位擦除。然而,可根据需要对较大或较小组的存储器单元执行一或多个存储器操作(例如,读取、写入、擦除等)。因此,在一些实例中,物理地址位置包括多于或少于一页。存储系统的数据传送大小通常被称作页,而主机的数据传送大小通常被称作扇区。
尽管一页数据可以包括数个字节的用户数据(例如,包括数个数据扇区的数据有效负载)及其对应元数据,但所述页的大小通常仅指用于存储用户数据的字节的数目。作为实例,页大小为4KB的数据页可以包括4KB用户数据(例如,呈现扇区大小为512B的8个扇区)以及与用户数据相对应的数个字节(例如,32B、54B、224B等)的元数据,诸如完整性数据(例如,错误检测或修正代码数据)、地址数据(例如,逻辑地址数据等)或与用户数据相关联的其它元数据。用于存储元数据等的物理地址位置可以被称为超供应物理地址位置。
不同类型的存储器单元或所述存储器1301可以提供不同的页大小,或者可能需要与其关联的不同数量的元数据。例如,不同的存储系统类型可具有不同的位错误率,其可导致确保数据页的完整性所必需的不同量的元数据(例如,具有较高位错误率的存储系统可比具有较低位错误率的存储系统需要更多字节的错误校正码数据)。例如,多级单元(MLC)NAND快闪器件可具有比对应单级单元(SLC)NAND快闪器件高的位错误率。因而,MLC器件可以比对应的SLC器件需要更多的元数据字节用于错误数据。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
Claims (16)
1.一种数据传输方法,其特征在于,应用于存储系统,所述方法包括:
在所述存储系统中配置与所述存储系统支持的通信协议相关的加密寄存器组;
在所述存储系统初始化过程中,基于所述加密寄存器组与耦接在所述存储系统的主机进行数据加解密协商,使所述主机获得数据传输密钥;
基于所述数据传输密钥与所述主机进行数据交互。
2.根据权利要求1所述的方法,其特征在于,所述加密寄存器组至少包括:配置加密功能寄存器、协商配置寄存器。
3.根据权利要求2所述的方法,其特征在于,所述在所述存储系统初始化过程中,基于所述加密寄存器组与耦接在所述存储系统的主机进行数据加解密协商,使所述主机获得数据传输密钥,包括:
获取所述主机写入所述配置加密功能寄存器的加密策略;所述加密策略是所述主机为所述存储系统配置的;
获取所述主机写入所述协商配置寄存器的公钥;所述公钥是所述主机基于所述加密策略生成的;
生成数据传输密钥;
使用所述加密策略和所述公钥加密所述数据传输密钥,获得加密的数据传输密钥;
将所述加密的数据传输密钥写入所述协商配置寄存器,使所述主机基于所述协商配置寄存器获得所述数据传输密钥。
4.根据权利要求3所述的方法,其特征在于,所述加密策略至少包括:加密方式、密钥位数,其中,所述密钥位数包括所述公钥的位数。
5.根据权利要求4所述的方法,其特征在于,在所述加密寄存器组还包括配置加密范围寄存器时,所述加密策略还包括:加密范围;对应的,所述方法还包括:
获取所述主机写入所述配置加密范围寄存器的所述加密范围;所述加密范围用于指明所述存储系统中的需加密传输的数据所属物理地址的范围。
6.根据权利要求2所述的方法,其特征在于,所述加密寄存器组还包括:显示加密能力寄存器,所述方法还包括:
在获取所述主机写入所述配置加密功能寄存器的加密策略之前,基于显示加密能力寄存器使所述主机获取所述存储系统支持的各加密策略。
7.根据权利要求2所述的方法,其特征在于,所述加密寄存器组还包括:重置加密功能寄存器,所述方法还包括:
基于所述重置加密功能寄存器使所述主机将所述存储系统中的加密策略恢复到出厂设置。
8.根据权利要求3所述的方法,其特征在于,所述生成数据传输密钥,包括:生成随机数;基于所述随机数生成所述数据传输密钥。
9.一种数据传输方法,其特征在于,应用于与存储系统耦接的主机,所述方法包括:
基于加密寄存器组与所述存储系统进行数据加解密协商,获得数据传输密钥;所述加密寄存器组为在所述存储系统中配置的与所述存储系统支持的通信协议相关的一组与加解密相关的寄存器;
基于所述数据传输密钥与所述存储系统进行数据交互。
10.根据权利要求9所述的方法,其特征在于,所述加密寄存器组至少包括:配置加密功能寄存器、协商配置寄存器。
11.根据权利要求10所述的方法,其特征在于,所述基于加密寄存器组与存储系统进行数据加解密协商,获得数据传输密钥,包括:
将加密策略写入所述配置加密功能寄存器;所述加密策略是所述主机为所述存储系统配置的;
基于所述加密策略生成非对称加密的公钥和私钥;
将所述公钥写入所述协商配置寄存器,使所述存储系统基于所述协商配置寄存器获得所述公钥;
读取所述存储系统写入所述协商配置寄存器的加密的数据传输密钥;所述加密的数据传输密钥为所述存储系统使用所述配置加密功能寄存器获得的加密策略和所述公钥加密数据传输密钥获得;所述数据传输密钥是所述存储系统生成的;
使用所述私钥解密所述加密的数据传输密钥,获得所述数据传输密钥。
12.根据权利要求11所述的方法,其特征在于,所述加密策略至少包括:加密方式、密钥位数,其中,所述密钥位数包括所述公钥的位数和所述私钥的位数。
13.根据权利要求12所述的方法,其特征在于,在所述加密寄存器组还包括:配置加密范围寄存器时,所述加密策略还包括:加密范围;对应的,所述方法还包括:将所述加密范围写入所述配置加密范围寄存器,所述加密范围用于指明所述存储系统中的需加密传输的数据所属物理地址的范围。
14.根据权利要求10所述的方法,其特征在于,所述加密寄存器组还包括:显示加密能力寄存器,所述方法还包括:
在获取所述主机写入所述配置加密功能寄存器的加密策略之前,读取所述显示加密能力寄存器,以获取所述存储系统支持的各加密策略。
15.根据权利要求10所述的方法,其特征在于,所述加密寄存器组还包括:重置加密功能寄存器,所述方法还包括:
将重置命令写入所述重置加密功能寄存器,使所述存储系统中的加密策略恢复到出厂设置。
16.一种存储系统,其特征在于,所述存储系统包括:存储器;
以及耦接在所述存储器且用于控制所述存储器的存储器控制器,其中;
所述存储器控制器被配置为:配置与所述存储系统支持的通信协议相关的加密寄存器组;在所述存储系统初始化过程中,基于所述加密寄存器组与耦接在所述存储系统的主机进行数据加解密协商,使所述主机获得数据传输密钥;基于所述数据传输密钥与所述主机进行数据交互。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210661686.3A CN114969850A (zh) | 2022-06-13 | 2022-06-13 | 一种数据传输方法及存储系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210661686.3A CN114969850A (zh) | 2022-06-13 | 2022-06-13 | 一种数据传输方法及存储系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114969850A true CN114969850A (zh) | 2022-08-30 |
Family
ID=82962376
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210661686.3A Pending CN114969850A (zh) | 2022-06-13 | 2022-06-13 | 一种数据传输方法及存储系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114969850A (zh) |
-
2022
- 2022-06-13 CN CN202210661686.3A patent/CN114969850A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9864654B2 (en) | Detecting data indicated as being uncorrectable at a data storage device | |
US10552084B2 (en) | Method of operating data storage device | |
US20140032935A1 (en) | Memory system and encryption method in memory system | |
US8504898B2 (en) | Storage apparatus, controller and data accessing method thereof | |
US10255200B2 (en) | Data storage device and method of operation using multiple security protocols | |
TWI737088B (zh) | 主機型快閃記憶體維護技術 | |
US11748273B2 (en) | Secure data communication with memory sub-system | |
US8886963B2 (en) | Secure relocation of encrypted files | |
US11449244B2 (en) | Method and apparatus for performing access management of memory device in host performance booster architecture with aid of device side table information | |
CN111177807B (zh) | 数据储存装置、操作该装置的方法及具有该装置的储存系统 | |
US20230146149A1 (en) | Homomorphic encryption system for supporting approximate arithmetic operation and method of operating the same | |
CN116112145A (zh) | 支持同态加密操作的装置及其操作方法 | |
CN114969850A (zh) | 一种数据传输方法及存储系统 | |
CN114741094A (zh) | 一种固件更新方法、设备及数据系统 | |
US20200356669A1 (en) | Storage system with separated rpmb sub-systems and method of operating the same | |
US11994985B2 (en) | Method and apparatus for performing access management of memory device in host performance booster architecture with aid of device side table information encoding and decoding | |
US11995349B2 (en) | Method and apparatus for performing access management of memory device in host performance booster architecture with aid of device side table information encoding and decoding | |
TWI764275B (zh) | 隨機存取記憶體上之互斥或引擎 | |
TWI747351B (zh) | 加密和解密實體位址資訊的方法及裝置 | |
US20230353356A1 (en) | Low latency block cipher in memory devices | |
KR20230068945A (ko) | 동형 암호 연산을 지원하는 장치 및 그것의 동작 방법 | |
US20230144135A1 (en) | Trusted computing device and operating method thereof | |
US20230128638A1 (en) | Method of operating storage device and method of operating storage system using the same | |
TW202416133A (zh) | 用來在主機效能增幅器架構中藉助於裝置側表資訊編碼與解碼進行記憶裝置的存取管理的方法及設備 | |
TW202416134A (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 |