CN112256602A - PCIe SSD控制器、数据存储系统及数据传输方法 - Google Patents

PCIe SSD控制器、数据存储系统及数据传输方法 Download PDF

Info

Publication number
CN112256602A
CN112256602A CN202011135037.7A CN202011135037A CN112256602A CN 112256602 A CN112256602 A CN 112256602A CN 202011135037 A CN202011135037 A CN 202011135037A CN 112256602 A CN112256602 A CN 112256602A
Authority
CN
China
Prior art keywords
key
data
module
encryption
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.)
Pending
Application number
CN202011135037.7A
Other languages
English (en)
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.)
Fangyi Information Technology Shanghai Co ltd
Original Assignee
Fangyi Information Technology Shanghai 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 Fangyi Information Technology Shanghai Co ltd filed Critical Fangyi Information Technology Shanghai Co ltd
Priority to CN202011135037.7A priority Critical patent/CN112256602A/zh
Publication of CN112256602A publication Critical patent/CN112256602A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4063Device-to-bus coupling
    • G06F13/4068Electrical coupling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0442Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply asymmetric encryption, i.e. different keys for encryption and decryption
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0637Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
    • 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
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • 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
    • H04L9/0877Generation of secret information including derivation or calculation of cryptographic keys or passwords using additional device, e.g. trusted platform module [TPM], smartcard, USB or hardware security module [HSM]
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Storage Device Security (AREA)

Abstract

本申请提供了PCIe SSD控制器、数据存储系统及数据传输方法,所述PCIe SSD控制器包括SM2算法模块、SM4密钥分发模块、SM4密钥存储模块和SM4加解密模块,所述数据存储系统包括PCIe switch和至少一个所述的PCIe SSD控制器,其中PCIe switch的上行端口与主机相连,PCIe switch的下行端口与至少一个PCIe SSD控制器相连,每个所述PCIe SSD控制器分别与不超过16个闪存通道的NAND FLASH相连。本申请实现了并行数据加解密以及密钥的传输认证,减少了闪存通道之间的竞争,解决了数据存储领域加解密的吞吐率问题。

Description

PCIe SSD控制器、数据存储系统及数据传输方法
技术领域
本发明涉及计算机数据存储和安全领域,尤其涉及一种PCIe SSD控制器、数据存储系统及数据传输方法。
背景技术
当前的数据加密技术主要采用加密机的方式,该数据加密方案对于传统的信息系统安全起到重要作用,但是,在云计算和大数据业务场景下,无法满足性能、可扩展性、可靠性、可维护性等需求。
在一些软件定义的分布式存储系统中,比如开源的Ceph社区软件,引入了软件数据加密(AES算法)的模块,以Ceph为基础的分布式存储系统可以支持数据加密功能,但是由于该方案是以软件实现的加密算法,安全度低,容易被攻破,其性能和健壮性远远达不到要求。加密性能不高,成为整个信息系统的瓶颈。
随着计算机存储技术的快速发展,SSD(Solid State Drives,固态硬盘)已逐渐取代了传统的机械硬盘,SSD具有超大容量、超高速等特性。国内的一些固态硬盘厂家自主研发的支持SM4的数据加密算法的加密固态硬盘,加密盘的性能较弱,吞吐能力小于每秒200MB,单核SM4加密模块性能不足,也会成为整个硬盘的性能瓶颈。
可见,如何为数据传输提高加密保护,同时解决数据存储领域加解密的吞吐率问题,提高加密效率,是本领域技术人员亟待解决的问题。
发明内容
本发明的目的在于提供一种PCIe SSD控制器、数据存储系统及数据传输方法,以解决上述技术背景中提出的问题。
为实现上述目的,本发明采用以下技术方案:
本申请第一个方面提供了一种PCIe SSD控制器,其作为固态硬盘控制器,优选地,应用于存储服务器的固态硬盘中。
本申请所述的PCIe SSD控制器,一端通过PCIe接口连接主机,另一端与多个NANDFLASH分别连接,所述PCIe SSD控制器包括:
SM2算法模块,用于产生数字签名用的随机数、产生分别对SM4密钥进行加解密的公钥和私钥,以及运算加解密过程中的SM2算法;
SM4密钥分发模块,用于接收SM2算法模块解密后的密钥明文,并将密钥明文进行复制,生成至少两个内容相同的分组密钥;
SM4密钥存储模块,其数量与分组密钥的个数相对应,用于存储所述SM4 密钥分发模块复制后的分组密钥;
SM4加解密模块,内置于闪存多通道控制器的每一路闪存通道上,每个SM4 加解密模块独立连接一个SM4密钥存储模块,用于读取其闪存通道对应的SM4 密钥存储模块中存储的分组密钥;每个SM4加解密模块还与闪存多通道控制器和每一路闪存通道上的闪存控制器进行双向数据传输,并采用其读取的分组密钥对其闪存通道传输的数据进行加解密处理。
优选地,所述SM2算法模块,包括:
随机数发生器,用于产生数字签名用的随机数、产生分别对SM4密钥进行加密和解密的公钥和私钥;
运算模块,用于运算加解密过程中的SM2算法。
优选地,每个SM4密钥存储模块对应一个闪存通道。
优选地,所述SM4加解密模块,包括:
密钥控制单元,用于读取所述SM4加解密模块对应的SM4密钥存储模块中存储的分组密钥;
数据加密单元,使用密钥控制单元读取的分组密钥对闪存通道传输的数据进行加密处理;
数据解密单元,使用密钥控制单元读取的分组密钥对闪存通道传输的数据进行解密处理。
优选地,所述SM4加解密模块采用双工模式。
优选地,所述SM4加解密模块支持CBC(Cipher Block Chaining,密码分组链接模式)、ECB(Electronic Codebook Book,电码本模式)两种数据加解密模式。
优选地,所述闪存通道共有16个,每个闪存通道均内置有独立的所述SM4 加解密模块,每个SM4加解密模块配置有独立的SM4密钥存储模块。
优选地,所述PCIe SSD控制器还包括:错误校正码ECC电路,所述ECC 电路内置于每个所述闪存通道,所述ECC电路在所述闪存通道中的数据读写操作期间检测并校正错误数据。
更优选地,所述ECC电路包括:
ECC编码器,所述ECC编码器被配置为在数据写入操作期间对所述SM4 加解密模块输出的密文数据添加校验码;
ECC解码器,所述ECC解码器被配置为在数据读取操作期间对自外置 NAND FLASH中读取的已编码的数据进行解码的同时纠正错误。
一种数据存储系统,包括:
PCIe switch和至少一个上述所述的PCIe SSD控制器,其中PCIe switch 的上行端口与主机相连,PCIe switch的下行端口与至少一个PCIe SSD控制器相连,每个所述PCIeSSD控制器分别与不超过16个闪存通道的NAND FLASH 相连。
优选地,PCIe SSD控制器的闪存多通道控制器的每一路闪存通道,分别一一对应连接4~5片NAND FLASH。
优选地,所述数据存储系统还包括:管理节点,所述PCIe SSD控制器设置于存储服务器中,所述管理节点分别与主机和多个所述存储服务器连接。
更优选地,所述数据存储系统包括一个所述存储服务器,所述管理节点为所述存储服务器本身;所述数据存储系统包括至少两个所述存储服务器,所述管理节点为多个所述存储服务器中的一个。
更优选地,所述管理节点与所述存储服务器之间采用SSL协议握手并建立连接。
更优选地,所述管理节点包括:
第一接收单元,用于接收所述PCIe SSD控制器发送的公钥;
第一发送单元,连接所述第一接收单元,用于将所述公钥发送至插入所述主机的U盾;
第二接收单元,用于接收所述U盾根据所述公钥处理得到的密文;
第二发送单元,连接所述第二接收单元,用于将所述密文发送至对应的所述 PCIeSSD控制器。
优选地,所述数据存储系统还包括:DMA模块,所述DMA模块用于通过 PCIe接口读取所述主机中的数据,和/或,将所述NAND FLASH中的数据写入所述主机中。
一种数据传输方法,基于上述的一种数据存储系统,包括:
主机上插入U盾;
在检测到U盾插入的情况下,主机通过PCIe接口向PCIe SSD控制器的SM2 算法模块发送公私钥生成指令;
密钥生成:
SM2算法模块产生分别对SM4密钥进行加密和解密的公钥和私钥,其中,私钥不导出,公钥从PCIe SSD控制器导出后通过主机发送至U盾;
U盾采用所述公钥对其内部预存的SM4密钥进行加密,生成密文;
密文通过主机传输至PCIe SSD控制器的SM2算法模块,SM2算法模块采用预先生成的所述私钥对所述密文进行解密,生成密钥明文;
密钥分发:
PCIe SSD控制器的SM4密钥分发模块接收所述SM2算法模块生成的密钥明文,将密钥明文进行复制,生成至少两个内容相同的分组密钥,分别独立地写入各闪存通道对应的SM4密钥存储模块中;
使用存储至多个SM4密钥存储模块中的分组密钥对多个闪存通道传输的数据独立地进行加/解密操作。
优选地,在数据传输过程中,所述密钥明文存储在所述PCIe SSD控制器的多个SM4密钥存储模块中,掉电即丢失。
优选地,所述数据存储系统还包括管理节点,所述PCIe SSD控制器设置于存储服务器中,所述管理节点分别与主机和多个所述存储服务器连接;所述数据传输方法,还包括:
在密钥生成的过程中,管理节点先与所述存储服务器之间建立SSL(SecureSockets Layer)连接;
存储服务器上的所述PCIe SSD控制器将生成的公钥发送至所述管理节点;
所述管理节点收到所述公钥后,将所述公钥发送至插入所述主机的U盾;
所述管理节点接收所述U盾根据所述公钥处理得到的密文,并将所述密文发送至对应的所述PCIe SSD控制器进行解密。
优选地,在检测到U盾插入的情况下,主机通过PCIe接口向PCIe SSD控制器的SM2算法模块发送公私钥生成指令之前,所述数据传输方法,还包括:对用户进行身份认证,包括签名加密过程和验签解密过程,其中,
签名加密过程包括:
PCIE SSD控制器的SM2算法模块生成数字签名用的随机数;
随机数发送至与主机连接的U盾,以供所述U盾根据预存的U盾私钥对所述随机数进行签名,生成数字签名;
生成的数字签名通过主机返回至所述PCIE SSD控制器的SM2算法模块;
验签解密过程包括:
SM2算法模块接收主机发送的数字签名后,采用SM2解密算法对数字签名进行解密,得到原来的随机数;
对两个随机数进行对比,若相同则验签通过。
优选地,在所述SM4密钥分发模块将密钥明文分发存入各闪存通道对应的 SM4密钥存储模块中之后,所述数据传输方法,还包括数据写入操作,包括:
接收主机发送的NAND FLASH写命令;
每个闪存通道通过DMA模块从主机内存搬移数据到第一先进先出FIFO存储单元;
待闪存通道对应的闪存控制器准备好,PICE SSD控制器的SM4加解密模块读取其闪存通道对应的SM4密钥存储模块内存储的分组密钥;
闪存通道从其对应的第一先进先出FIFO存储单元读取数据,送入SM4加解密模块进行加密处理,加密后的密文数据通过闪存控制器写入NAND FLASH。
更优选地,每个所述闪存通道还内置有ECC编码器,所述ECC编码器分别连接所述SM4加解密模块与所述闪存控制器,所述SM4加解密模块输出的密文数据经ECC编码器添加校验码后,通过所述闪存控制器写入NAND FLASH。
优选地,在所述SM4密钥分发模块将密钥明文分发存入各闪存通道对应的 SM4密钥存储模块中之后,所述数据传输方法,还包括数据读取操作,包括:
接收主机发送的NAND FLASH读命令;
闪存通道通过闪存控制器向NAND FLASH读取数据;
读取的数据送至SM4加解密模块之前,SM4加解密模块读取其闪存通道对应的SM4密钥存储模块内存储的分组密钥;
读取的数据送至SM4加解密模块进行解密处理,解密后的明文存储至第二先进先出FIFO存储单元;
每个闪存通道通过DMA模块从第二先进先出FIFO存储单元搬移数据到主机内存。
更优选地,每个所述闪存通道还内置有ECC解码器,所述ECC解码器分别连接所述SM4加解密模块与所述闪存控制器,从NAND FLASH中读取的已编码的数据经ECC解码器进行解码的同时纠正错误后,发送至所述SM4加解密模块。
本申请上下文内容中,英文符号技术术语含义说明如下:
PCIe:高速总线接口标准。
NAND FLASH:一种闪存存储介质。
DMA:Direct Memory Access,直接内存存取,通常用来进行大量数据的搬移。
FIFO:First In First Out,先进先出队列,在本发明中指进行先进先出管理的数据缓存。
PCIe switch:PCIe扩展器,可以把路PCIe接口扩展为多路PCIe接口。
ECC:Error Correcting Code,错误校正码。
CBC:Cipher Block Chaining,密码分组链接模式,是一种循环模式,前一个分组的密文和当前分组的明文异或操作后再加密。
ECB:Electronic Codebook Book,电码本模式,是一种基础的加密方式,密文被分割成分组长度相等的块(不足补齐),然后单独一个个加密,一个个输出组成密文。
与现有技术相比,本发明的技术方案具有以下有益效果:
本申请提供了一种PCIe SSD控制器、数据存储系统及数据传输方法,所述 PCIeSSD控制器包括SM2算法模块、SM4密钥分发模块、SM4密钥存储模块和SM4加解密模块,所述数据存储系统包括PCIe switch和至少一个所述的 PCIe SSD控制器,其中PCIe switch的上行端口与主机相连,PCIe switch的下行端口与至少一个PCIe SSD控制器相连,每个所述PCIe SSD控制器分别与不超过16个闪存通道的NAND FLASH相连。本申请实现了并行数据加解密以及密钥的传输认证,减少了闪存通道之间的竞争,解决了数据存储领域加解密的吞吐率问题。
附图说明
构成本申请的一部分附图用来提供对本申请的进一步理解,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是本发明优选实施例的一种PCIe SSD控制器加解密的结构示意图;
图2是本发明优选实施例的一种数据存储系统的总体结构示意图;
图3是本发明优选实施例的一种数据存储系统的管理节点的结构示意图。
具体实施方式
为使本发明的目的、技术方案及效果更加清楚、明确,以下参照附图并举实例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序,应该理解这样使用的数据在适当情况下可以互换。此外,术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
SM4.0(原名SMS4.0)是中华人民共和国政府采用的一种分组密码标准,由国家密码管理局于2012年3月21日发布。相关标准为“GM/T 0002-2012 《SM4分组密码算法》(原SMS4分组密码算法)”。
SM2是国家密码管理局于2010年12月17日发布的椭圆曲线公钥密码算法。椭圆曲线公钥密码算法所基于的曲线性质:椭圆曲线多倍点运算构成一个单向函数。在多倍点运算中,已知多倍点与基点,求解倍数的问题称为椭圆曲线离散对数问题。对于一般椭圆曲线的离散对数问题,目前只存在指数级计算复杂度的求解方法。与大数分解问题及有限域上离散对数问题相比,椭圆曲线离散对数问题的求解难度要大得多。因此,在相同安全程度要求下,椭圆曲线密码较其他公钥密码所需的秘钥规模要小得多。
本申请的PCIe SSD控制器支持并行高速的国密算法,主要针对全新的存储服务器应用开发,应用在存储服务器中,为存储服务器的数据提供加密保护。
(一)PCIe SSD控制器
参阅图1,根据加密存储服务的需求,本申请所述的PCIe SSD控制器,实现了SM2算法的认证验签,密钥加密传输的公私钥对生成、私钥解密,以及对闪存数据流的SM4加解密。本申请所述的PCIe SSD控制器,一端通过PCIe 接口连接主机(客户终端),另一端与多个NAND FLASH分别连接,所述PCIe SSD控制器在普通控制器的架构上增加了SM2算法模块、SM4密钥分发模块、 SM4密钥存储模块、16个SM4加解密模块,主机通过PCIe接口访问PCIeBAR 寄存器,从而配置所有的内部模块。其中:
SM2算法模块,用于产生数字签名用的随机数、产生分别对SM4密钥进行加解密的公钥和私钥,以及运算加解密过程中的SM2算法;
SM4密钥分发模块,用于接收SM2算法模块解密后的密钥明文,并将密钥明文进行复制,生成至少两个内容相同的分组密钥;
SM4密钥存储模块,其数量与分组密钥的个数相对应,用于存储所述SM4 密钥分发模块复制后的分组密钥;
SM4加解密模块,内置于闪存多通道控制器的每一路闪存通道上,每个SM4 加解密模块独立连接一个SM4密钥存储模块,用于读取其闪存通道对应的SM4 密钥存储模块中存储的分组密钥;每个SM4加解密模块还与闪存多通道控制器和每一路闪存通道上的闪存控制器进行双向数据传输,并采用其读取的分组密钥对其闪存通道传输的数据进行加解密处理。
其中,所述SM2算法模块,包括:
随机数发生器,用于产生数字签名用的随机数、产生分别对SM4密钥进行加密和解密的公钥和私钥;以及运算模块,用于运算加解密过程中的SM2算法。
所述SM4密钥存储模块,其数量与分组密钥的个数相对应,用于存储所述 SM4密钥分发模块复制后的分组密钥,每个SM4密钥存储模块对应一个闪存通道。
所述SM4加解密模块,包括:
密钥控制单元,用于读取所述SM4加解密模块对应的SM4密钥存储模块中存储的分组密钥;
数据加密单元,使用密钥控制单元读取的分组密钥对闪存通道传输的数据进行加密处理;
数据解密单元,使用密钥控制单元读取的分组密钥对闪存通道传输的数据进行解密处理。
本申请的所述SM4加解密模块支持CBC(Cipher Block Chaining,密码分组链接模式)、ECB(Electronic Codebook Book,电码本模式)两种数据加解密模式。PCIe SSD控制器完全工作在ECB模式下,所述SM4加解密模块的加解密的速度与闪存通道的数据传输速率匹配,即读速率大于4GB/s、写速率大于 3.5GB/s;PCIe SSD控制器完全工作在CBC模式下,所述SM4加解密模块的加解密的速度会下降。所述SM4加解密模块是双工模式,也保证了每个闪存通道可以并行处理加密和解密,提升了并发速度。
本申请的所述闪存通道共有16个,每个闪存通道均内置有独立的所述SM4 加解密模块,每个SM4加解密模块配置有独立的SM4密钥存储模块,可以保证 16个闪存通道可以独立并行加/解密数据。
在一种优选实施例中,所述PCIe SSD控制器还包括:错误校正码ECC电路,所述ECC电路内置于每个所述闪存通道,所述ECC电路在所述闪存通道中的数据读写操作期间检测并校正错误数据。
其中,所述ECC电路包括:
ECC编码器,所述ECC编码器被配置为在数据写入操作期间对所述SM4 加解密模块输出的密文数据添加校验码;
ECC解码器,所述ECC解码器被配置为在数据读取操作期间对自外置 NAND FLASH中读取的已编码的数据进行解码的同时纠正错误。
(二)基于PCIe SSD控制器的数据存储系统
参阅图1~图2所示,一种数据存储系统,包括:PCIe switch和至少一个上述所述的PCIe SSD控制器,其中PCIe switch的上行端口与主机(用户终端) 相连,PCIe switch的下行端口与至少一个PCIe SSD控制器相连,每个所述PCIe SSD控制器分别与16个闪存通道的NAND FLASH相连,其中,每一路闪存通道,分别一一对应连接4~5片NAND FLASH。例如每一路闪存通道分别一一对应连接4片NAND FLASH,则每个所述PCIe SSD控制器分别与16×4片NAND FLASH相连。
所述数据存储系统还包括:管理节点,所述PCIe SSD控制器设置于存储服务器中,所述管理节点分别与主机和多个所述存储服务器连接。优选地,所述管理节点与所述存储服务器之间采用SSL(Secure Sockets Layer)协议握手并建立连接。当所述数据存储系统仅包括一个所述存储服务器时,所述管理节点可以是所述存储服务器本身;当所述数据存储系统包括两个或两个以上的所述存储服务器时,多个所述存储服务器中的一个可以配置为所述管理节点。
如图3所示,所述管理节点包括:
第一接收单元,用于接收所述PCIe SSD控制器发送的公钥;
第一发送单元,连接所述第一接收单元,用于将所述公钥发送至插入所述主机的U盾;
第二接收单元,用于接收所述U盾根据所述公钥处理得到的密文;
第二发送单元,连接所述第二接收单元,用于将所述密文发送至对应的所述 PCIeSSD控制器。
所述数据存储系统还包括:DMA模块,所述DMA模块用于通过PCIe接口读取所述主机中的数据,和/或,将所述NAND FLASH中的数据写入所述主机中。
(三)基于数据存储系统的数据传输方法
1、和U盾配套做用户登录认证
存储服务器采用本申请的PCIe SSD控制器的访问权限管理时,将使用U 盾的SM2算法及所述PCIe SSD控制器的SM2算法模块完成登录时的用户认证。用户U盾在第一次注册时生成SM2公私钥对,公钥保存在存储服务器;用户登录时,客户终端和存储服务器之间建立SSL通道,存储服务器使用本申请的PCIe SSD控制器内的随机数生成器生成随机数传给客户终端;客户终端的U 盾用私钥对随机数签名,签名后传递给存储服务器;存储服务器使用PCIe SSD 控制器的SM2/SM3算法验签,成功后通知用户认证通过。
具体步骤如下:
在检测到U盾插入主机的情况下,对用户进行身份认证,包括签名加密过程和验签解密过程,其中,
步骤S01:签名加密过程包括:
PCIE SSD控制器的SM2算法模块生成数字签名用的随机数;
随机数发送至与主机连接的U盾,以供所述U盾根据预存的U盾私钥对所述随机数进行签名,生成数字签名;
生成的数字签名通过主机返回至所述PCIE SSD控制器的SM2算法模块;
步骤S02:验签解密过程包括:
SM2算法模块接收主机发送的数字签名后,采用SM2解密算法对数字签名进行解密,得到原来的随机数;
步骤S03:对两个随机数进行对比,若相同则验签通过。
2、和U盾配套做SM4密钥分发
用户认证通过后,存储服务器采用SM4分组加密算法对数据进行加密。数据加密过程中的密钥(SM4密钥)由U盾生产商生成,保存在U盾中,每个用户对应唯一的SM4密钥,每个PCIE SSD控制器可以支持多个用户。存储服务器端执行数据存储和数据加密功能,存储服务器端不保存密钥,在系统初始化时,数据加密密钥由U盾通过SSL通道传递到存储服务器端的PCIE SSD控制器的 SM4密钥存储模块里,系统掉电后,密钥自动删除,每次重新上电时,需要通过U盾重新加载SM4密钥。
在密钥传递时,管理节点首先与存储服务器端建立SSL连接,存储服务器的PCIESSD控制器会动态产生SM2的公私密钥对,并把公钥发送到管理节点;管理节点收到公钥后,会把SM4的数据加密密钥加密后发送给存储服务器的 PCIE SSD控制器对密钥信息解密后,启动数据加解密服务。
具体步骤如下:
步骤SS01:用户认证通过后,主机通过PCIe接口向PCIe SSD控制器的SM2 算法模块发送公私钥生成指令;
步骤SS02:密钥生成:
SM2算法模块产生分别对SM4密钥进行加密和解密的公钥和私钥,其中,私钥不导出,公钥从PCIe SSD控制器导出后通过主机发送至U盾;
U盾采用所述公钥对其内部预存的SM4密钥进行加密,生成密文;
密文通过主机传输至PCIe SSD控制器的SM2算法模块,SM2算法模块采用预先生成的所述私钥对所述密文进行解密,生成密钥明文;
步骤SS03:密钥分发:
PCIe SSD控制器的SM4密钥分发模块接收所述SM2算法模块生成的密钥明文,将密钥明文进行拆分,生成至少两个分组密钥,分别独立地写入各闪存通道对应的SM4密钥存储模块中;
步骤SS04:使用存储至多个SM4密钥存储模块中的分组密钥对多个闪存通道传输的数据独立地进行加/解密操作。
3、PCIe SSD控制器执行NAND FLASH写命令
在所述SM4密钥分发模块将密钥明文分发存入各闪存通道对应的SM4密钥存储模块中之后,PCIe SSD控制器执行NAND FLASH写命令,将数据加密写入NAND FLASH的过程具体包括:
接收主机发送的NAND FLASH写命令;
每个闪存通道通过DMA模块从主机内存搬移数据到RX FIFO;
待闪存通道对应的闪存控制器准备好,PICE SSD控制器的SM4加解密模块的密钥控制单元读取其闪存通道对应的SM4密钥存储模块内存储的分组密钥,写入SM4加解密模块进行密钥初始化;
闪存通道从其对应的RX FIFO读取数据,送入SM4加解密模块进行加密处理,SM4加解密模块输出的密文数据经ECC编码器添加校验码后,通过闪存控制器写入NAND FLASH。
4、PCIe SSD控制器执行NAND FLASH读命令
在所述SM4密钥分发模块将密钥明文分发存入各闪存通道对应的SM4密钥存储模块中之后,PCIe SSD控制器执行NAND FLASH读命令,将NAND FLASH的数据解密后读出的过程具体包括:
接收主机发送的NAND FLASH读命令;
闪存通道通过闪存控制器向NAND FLASH读取数据;
从NAND FLASH中读取的已编码的数据经ECC解码器进行解码的同时纠正错误;
从ECC解码器输出的数据到达SM4加解密模块之前,SM4加解密模块的密钥控制单元读取其闪存通道对应的SM4密钥存储模块内存储的分组密钥,写入SM4加解密模块进行密钥初始化;
读取的数据送至SM4加解密模块进行解密处理,解密后的明文存储至TX FIFO;
每个闪存通道通过DMA模块从TX FIFO搬移数据到主机内存。
本申请提出了按闪存控制通道并行实现SM4加解密模块的方法,每个SM4 加解密模块配有独立的SM4密钥存储模块,SM4加密解密模块采用双工模式。 PCIe固态硬盘读写性能要求较高,对SM4加解密引擎的吞吐率提出了更高要求,但单个加解密引擎受到算法复杂度带来的逻辑时序收敛困难影响,工作主频无法提高,特别是在FPGA(现场可编程逻辑器件)芯片上实现,受FPGA芯片的Fmax(最大工作频率)制约。本申请按闪存控制通道实现SM4加解密模块,使用了和闪存控制通道一样数量的SM4加解密模块,降低了单个SM4加解密模块的工作主频要求,也更加适合FPGA芯片实现。
本申请提出了为每个SM4加密解密模块提供独立的SM4密钥存储模块, SM4密钥存储模块用于存放SM4加密解密模块的加解密密钥,一片SM4密钥存储模块可以存放多达一千条密钥,相当于支持一千个独立用户存储空间。本申请相对于统一的SM4密钥存储模块(随机访问存储器),提高了多个SM4加密解密模块访问SM4密钥存储模块的效率,避免多个SM4加密解密模块读取密钥时的竞争。
本申请提出了在PCIe SSD控制器中使用SM2加密传输SM4密钥的方法,该方法和U盾配套使用,U盾是存储SM4密钥的外部载体。主机从本申请中的 SM2算法模块中获取公钥发送给U盾,U盾使用公钥对内部存储的SM4密钥加密,加密后再传到本申请的SM2算法模块并用私钥解密出明文,再写入本申请的SM4密钥存储模块中。该方法,确保了SM4密钥从U盾到硬盘的传输过程没有任何泄露,保证了用户的密钥安全。
本申请提出了在PCIe SSD控制器中使用了SM2进行用户登录认证的方法。该方法和U盾配套使用,U盾负责签名,本申请的SM2算法模块负责验签。用户登录时和存储服务器建立SSL通道,主机将本申请的SM2算法模块生成的随机数传递给U盾,U盾对随机数签名,签名结果再传递回主机,主机发送给本申请的SM2算模块进行验签。本申请无需使用其他U盾即可完成验签功能,节约了成本。
综上所述,本申请实现了并行数据加解密以及密钥的传输认证,减少了闪存通道之间的竞争,解决了数据存储领域加解密的吞吐率问题,提高了加密效率,从而保证了固态硬盘读写带宽不受影响。工作在ECB模式下,SM4加解密模块的加解密速率与闪存通道的数据传输速率匹配,即读速率大于4GB/s、写速率大于3.5GB/s。在解决吞吐率的同时,本申请还采用SM2密钥保护方案为存储服务器外部的用户登录认证以及内部SM4的密钥传递提供了支持,加强了远程登录用户认证的保护措施,也加强了对用户密钥传输时的保护。
以上对本发明的具体实施例进行了详细描述,但其只是作为范例,本发明并不限制于以上描述的具体实施例。对于本领域技术人员而言,任何对本发明进行的等同修改和替代也都在本发明的范畴之中。因此,在不脱离本发明的精神和范围下所作的均等变换和修改,都应涵盖在本发明的范围内。

Claims (10)

1.PCIe SSD控制器,一端通过PCIe接口连接主机,另一端与至少一个NAND FLASH分别连接,其特征在于,包括:
SM2算法模块,用于产生数字签名用的随机数、产生分别对SM4密钥进行加解密的公钥和私钥,以及运算加解密过程中的SM2算法;
SM4密钥分发模块,用于接收SM2算法模块解密后的密钥明文,并将密钥明文进行复制,生成至少两个内容相同的分组密钥;
SM4密钥存储模块,其数量与分组密钥的个数相对应,用于存储所述SM4密钥分发模块复制后的分组密钥;
SM4加解密模块,内置于闪存多通道控制器的每一路闪存通道上,每个SM4加解密模块独立连接一个SM4密钥存储模块,用于读取其闪存通道对应的SM4密钥存储模块中存储的分组密钥;每个SM4加解密模块还与闪存多通道控制器和每一路闪存通道上的闪存控制器进行双向数据传输,并采用其读取的分组密钥对其闪存通道传输的数据进行加解密处理。
2.根据权利要求1所述的PCIe SSD控制器,其特征在于,所述SM4加解密模块,包括:
密钥控制单元,用于读取所述SM4加解密模块对应的SM4密钥存储模块中存储的分组密钥;
数据加密单元,使用密钥控制单元读取的分组密钥对闪存通道传输的数据进行加密处理;
数据解密单元,使用密钥控制单元读取的分组密钥对闪存通道传输的数据进行解密处理。
3.根据权利要求1所述的PCIe SSD控制器,其特征在于,还包括:错误校正码ECC电路,所述ECC电路内置于每个所述闪存通道,所述ECC电路在所述闪存通道中的数据读写操作期间检测并校正错误数据;其中,所述ECC电路包括:
ECC编码器,所述ECC编码器被配置为在数据写入操作期间对所述SM4加解密模块输出的密文数据添加校验码;
ECC解码器,所述ECC解码器被配置为在数据读取操作期间对自外置NAND FLASH中读取的已编码的数据进行解码的同时纠正错误。
4.一种数据存储系统,其特征在于,包括:
PCIe switch和至少一个如权利要求1~3任一所述的PCIe SSD控制器,其中PCIeswitch的上行端口与主机相连,PCIe switch的下行端口与至少一个PCIe SSD控制器相连,每个所述PCIe SSD控制器分别与不超过16个闪存通道的NAND FLASH相连。
5.根据权利要求4所述的一种数据存储系统,其特征在于,还包括管理节点,所述PCIeSSD控制器设置于存储服务器中,所述管理节点分别与主机和多个所述存储服务器连接。
6.根据权利要求5所述的一种数据存储系统,其特征在于,所述管理节点包括:
第一接收单元,用于接收所述PCIe SSD控制器发送的公钥;
第一发送单元,连接所述第一接收单元,用于将所述公钥发送至插入所述主机的U盾;
第二接收单元,用于接收所述U盾根据所述公钥处理得到的密文;
第二发送单元,连接所述第二接收单元,用于将所述密文发送至对应的所述PCIe SSD控制器。
7.一种如权利要求4所述的数据存储系统的数据传输方法,其特征在于,包括:
主机上插入U盾;
在检测到U盾插入的情况下,主机通过PCIe接口向PCIe SSD控制器的SM2算法模块发送公私钥生成指令;
密钥生成:
SM2算法模块产生分别对SM4密钥进行加密和解密的公钥和私钥,其中,私钥不导出,公钥从PCIe SSD控制器导出后通过主机发送至U盾;
U盾采用所述公钥对其内部预存的SM4密钥进行加密,生成密文;
密文通过主机传输至PCIe SSD控制器的SM2算法模块,SM2算法模块采用预先生成的所述私钥对所述密文进行解密,生成密钥明文;
密钥分发:
PCIe SSD控制器的SM4密钥分发模块接收所述SM2算法模块生成的密钥明文,将密钥明文进行复制,生成至少两个内容相同的分组密钥,分别独立地写入各闪存通道对应的SM4密钥存储模块中;
使用存储至多个SM4密钥存储模块中的分组密钥对多个闪存通道传输的数据独立地进行加/解密操作。
8.根据权利要求7所述的一种数据存储系统的数据传输方法,其特征在于,在检测到U盾插入的情况下,主机通过PCIe接口向PCIe SSD控制器的SM2算法模块发送公私钥生成指令之前,所述数据传输方法,还包括:对用户进行身份认证,包括签名加密过程和验签解密过程,其中,
签名加密过程包括:
PCIE SSD控制器的SM2算法模块生成数字签名用的随机数;
随机数发送至与主机连接的U盾,以供所述U盾根据预存的U盾私钥对所述随机数进行签名,生成数字签名;
生成的数字签名通过主机返回至所述PCIE SSD控制器的SM2算法模块;
验签解密过程包括:
SM2算法模块接收主机发送的数字签名后,采用SM2解密算法对数字签名进行解密,得到原来的随机数;
对两个随机数进行对比,若相同则验签通过。
9.根据权利要求7所述的一种数据存储系统的数据传输方法,其特征在于,在所述SM4密钥分发模块将密钥明文分发存入各闪存通道对应的SM4密钥存储模块中之后,所述数据传输方法,还包括数据写入操作,包括:
接收主机发送的NAND FLASH写命令;
每个闪存通道通过DMA模块从主机内存搬移数据到第一先进先出FIFO存储单元;
待闪存通道对应的闪存控制器准备好,PICE SSD控制器的SM4加解密模块读取其闪存通道对应的SM4密钥存储模块内存储的分组密钥;
闪存通道从其对应的第一先进先出FIFO存储单元读取数据,送入SM4加解密模块进行加密处理,加密后的密文数据通过闪存控制器写入NAND FLASH。
10.根据权利要求7所述的一种数据存储系统的数据传输方法,其特征在于,在所述SM4密钥分发模块将密钥明文分发存入各闪存通道对应的SM4密钥存储模块中之后,所述数据传输方法,还包括数据读取操作,包括:
接收主机发送的NAND FLASH读命令;
闪存通道通过闪存控制器向NAND FLASH读取数据;
读取的数据送至SM4加解密模块之前,SM4加解密模块读取其闪存通道对应的SM4密钥存储模块内存储的分组密钥;
读取的数据送至SM4加解密模块进行解密处理,解密后的明文存储至第二先进先出FIFO存储单元;
每个闪存通道通过DMA模块从第二先进先出FIFO存储单元搬移数据到主机内存。
CN202011135037.7A 2020-10-22 2020-10-22 PCIe SSD控制器、数据存储系统及数据传输方法 Pending CN112256602A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011135037.7A CN112256602A (zh) 2020-10-22 2020-10-22 PCIe SSD控制器、数据存储系统及数据传输方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011135037.7A CN112256602A (zh) 2020-10-22 2020-10-22 PCIe SSD控制器、数据存储系统及数据传输方法

Publications (1)

Publication Number Publication Date
CN112256602A true CN112256602A (zh) 2021-01-22

Family

ID=74264486

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011135037.7A Pending CN112256602A (zh) 2020-10-22 2020-10-22 PCIe SSD控制器、数据存储系统及数据传输方法

Country Status (1)

Country Link
CN (1) CN112256602A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112887402A (zh) * 2021-01-25 2021-06-01 北京云思畅想科技有限公司 一种加解密方法、系统、电子设备及存储介质
CN113312648A (zh) * 2021-06-23 2021-08-27 山西科潮科技有限公司 一种基于数据加密的通讯模块及通讯方法
CN113709493A (zh) * 2021-07-23 2021-11-26 山东云海国创云计算装备产业创新中心有限公司 一种kvm系统的视频流数据加密装置、方法及设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150156174A1 (en) * 2013-12-03 2015-06-04 Amazon Technologies, Inc. Data transfer optimizations
CN204791027U (zh) * 2015-07-02 2015-11-18 沈阳睿隆鸿业科技有限公司 安全固态硬盘控制器
CN107147488A (zh) * 2017-03-24 2017-09-08 广东工业大学 一种基于sm2加解密算法的签名验签系统和方法
CN109104433A (zh) * 2018-09-28 2018-12-28 方信息科技(上海)有限公司 一种分布式加密存储系统
CN210573518U (zh) * 2019-12-02 2020-05-19 上海威固信息技术股份有限公司 一种基于PCIe Switch的扩展存储卡

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150156174A1 (en) * 2013-12-03 2015-06-04 Amazon Technologies, Inc. Data transfer optimizations
CN204791027U (zh) * 2015-07-02 2015-11-18 沈阳睿隆鸿业科技有限公司 安全固态硬盘控制器
CN107147488A (zh) * 2017-03-24 2017-09-08 广东工业大学 一种基于sm2加解密算法的签名验签系统和方法
CN109104433A (zh) * 2018-09-28 2018-12-28 方信息科技(上海)有限公司 一种分布式加密存储系统
CN210573518U (zh) * 2019-12-02 2020-05-19 上海威固信息技术股份有限公司 一种基于PCIe Switch的扩展存储卡

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112887402A (zh) * 2021-01-25 2021-06-01 北京云思畅想科技有限公司 一种加解密方法、系统、电子设备及存储介质
CN112887402B (zh) * 2021-01-25 2021-12-28 北京云思畅想科技有限公司 一种加解密方法、系统、电子设备及存储介质
CN113312648A (zh) * 2021-06-23 2021-08-27 山西科潮科技有限公司 一种基于数据加密的通讯模块及通讯方法
CN113312648B (zh) * 2021-06-23 2023-10-31 国网黑龙江省电力有限公司绥化供电公司 一种基于数据加密的通讯模块及通讯方法
CN113709493A (zh) * 2021-07-23 2021-11-26 山东云海国创云计算装备产业创新中心有限公司 一种kvm系统的视频流数据加密装置、方法及设备
CN113709493B (zh) * 2021-07-23 2024-02-09 山东云海国创云计算装备产业创新中心有限公司 一种kvm系统的视频流数据加密装置、方法及设备

Similar Documents

Publication Publication Date Title
CN108345806B (zh) 一种硬件加密卡和加密方法
US9537657B1 (en) Multipart authenticated encryption
CN106789052B (zh) 一种基于量子通信网络的远程密钥颁发系统及其使用方法
CN111131278B (zh) 数据处理方法及装置、计算机存储介质、电子设备
CN112256602A (zh) PCIe SSD控制器、数据存储系统及数据传输方法
US6055316A (en) System and method for deriving an appropriate initialization vector for secure communications
CN105210079B (zh) 针对经加密的数据的基于社区的重复删除
US8401186B2 (en) Cloud storage data access method, apparatus and system based on OTP
CN100487715C (zh) 一种数据安全存储系统和装置及方法
JPS6122316B2 (zh)
WO2007121035A2 (en) Method and system for high throughput blockwise independent encryption/decryption
CN111654511A (zh) 一种链式数据加密方法、链式数据解密方法及相应的系统
CN102081713B (zh) 一种用于防止数据泄密的办公系统
CN110490008A (zh) 安全装置及安全芯片
KR20090131696A (ko) 암/복호화 장치 및 이를 포함하는 보안 저장 장치
CN102693385A (zh) 基于sd可信计算模块的嵌入式终端及实现方法
US20210089388A1 (en) System, Apparatus And Method For Providing Protection Against Silent Data Corruption In A Link
US11431489B2 (en) Encryption processing system and encryption processing method
CN210955077U (zh) 一种基于国密算法和puf的总线加解密装置
CN112347493A (zh) 一种ofd文档加解密和脱密变灰方法
CN114036544A (zh) 一种提升硬件密码设备的加密性能的系统及方法
CN106529261A (zh) 离线业务数据同步用UKey以及方法
CN105472030A (zh) 一种基于iSCSI的远程镜像方法及系统
US20100023748A1 (en) Self checking encryption and decryption based on statistical sampling
US20210406411A1 (en) Bus encryption for non-volatile memories

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
RJ01 Rejection of invention patent application after publication

Application publication date: 20210122

RJ01 Rejection of invention patent application after publication