扇区块密钥生成方法、装置、设备和存储介质

文档序号:409958 发布日期:2021-12-17 浏览:1次 >En<

阅读说明:本技术 扇区块密钥生成方法、装置、设备和存储介质 (Sector block key generation method, device, equipment and storage medium ) 是由 申宗泽 于 2020-06-16 设计创作,主要内容包括:本申请实施例公开了一种扇区块密钥生成方法、装置、设备和存储介质,该方法包括:获取存储器与服务器交互的光纤通道协议报文;解析光纤通道协议报文,得到待处理数据所在目标逻辑单元的逻辑单元编号和所在目标扇区的扇区地址;根据目标逻辑单元的逻辑单元编号,获取目标逻辑单元的工作密钥;利用工作密钥对目标磁盘阵列的磁盘阵列编号、目标逻辑单元的逻辑单元编号和目标扇区的扇区地址进行哈希运算,得到扇区块密钥。本申请实施例采用工作密钥与扇区块密钥双重密钥结合,确保了每个磁盘阵列的每个逻辑单元的每个扇区都使用不同的扇区块密钥,提高了存储加解密的可用性和易用性,保障了存储加解密的安全性。(The embodiment of the application discloses a sector block key generation method, a sector block key generation device, sector block key generation equipment and a storage medium, wherein the sector block key generation method comprises the following steps: acquiring a fiber channel protocol message of interaction between a memory and a server; analyzing the fiber channel protocol message to obtain the logic unit number of the target logic unit where the data to be processed is located and the sector address of the target sector where the data to be processed is located; acquiring a working key of the target logic unit according to the logic unit number of the target logic unit; and carrying out Hash operation on the disk array number of the target disk array, the logic unit number of the target logic unit and the sector address of the target sector by using the working key to obtain a sector block key. The embodiment of the application adopts the combination of the double keys of the working key and the sector block key, ensures that each sector of each logic unit of each disk array uses different sector block keys, improves the availability and the usability of storage encryption and decryption, and ensures the safety of the storage encryption and decryption.)

扇区块密钥生成方法、装置、设备和存储介质

技术领域

本申请涉及磁盘数据处理技术领域,具体涉及一种扇区块密钥生成方法、装置、设备和存储介质。

背景技术

磁盘加密是一种底层的加密,只跟磁盘的格式有关。磁盘加密就是直接将明文数据加密后对应的密文写入磁盘相应的位置上,当需要读取此加密信息时就进行解密操作,将密文恢复成相应的明文。但通常的加密方式对于磁盘数据来说并不适用,原因是该加密方式对明文数据会有所扩张。

2002年,Moses Liskov、Ronald L.Rivest和David Wagner针对磁盘加密的特点首次提出了可调整的分组密码(Tweakable Block Ciphers,TBC),它跟传统的分组密码相比,除了加密密钥和待加密明文这两个输入以外,还增加了一个输入,这个输入被称作可调整值(Tweak)。常用的可调整分组密码算法有窄块分组密码算法和宽块分组密码算法,其中窄块分组密码算法中的异或加密(Xor-Encrypt-Xor,XEX)是一种用于磁盘扇区数据加解密的可调整分组密码算法,其可调整值表示为磁盘阵列编号、逻辑单元编号和扇区地址的组合。

现有的XEX可调整分组密码算法是直接通过磁盘阵列编号、逻辑单元编号和扇区地址的组合生成可调整值,然后直接利用可调整值与加密密钥结合对待加密明文进行加密,在进行加密时,存在同一磁盘的不同扇区使用同一个加密密钥的问题,无法确保每扇区密钥的差异性以及存储加密的安全性。

发明内容

本申请提供一种扇区块密钥生成方法、装置、设备和存储介质,旨在解决现有技术中同一磁盘的不同扇区使用同一个加密密钥对明文数据进行加密,导致安全性低的问题,确保了在磁盘扇区数据加解密时每扇区使用不同的密钥,提高了存储加密的安全性。

第一方面,本申请提供一种扇区块密钥生成方法,应用于光纤通道存储密码机,所述光纤通道存储密码机位于存储区域网络系统,所述存储区域网络系统还包括与所述光纤通道存储密码机通信连接的存储器和服务器,所述存储器包括多个磁盘阵列,所述多个磁盘阵列中包括待处理数据所在的目标磁盘阵列,所述扇区块密钥用于对所述待处理数据进行加密或解密,所述方法包括:

获取所述存储器与所述服务器交互的光纤通道协议报文;

解析所述光纤通道协议报文,得到所述待处理数据所在目标逻辑单元的逻辑单元编号和所在目标扇区的扇区地址;

根据所述目标逻辑单元的逻辑单元编号,获取所述目标逻辑单元的工作密钥;

利用所述工作密钥对所述目标磁盘阵列的磁盘阵列编号、所述目标逻辑单元的逻辑单元编号和所述目标扇区的扇区地址进行哈希运算,得到所述扇区块密钥。

在本申请一种可能的实现方式中,所述获取所述目标逻辑单元的工作密钥,包括:

获取所述目标磁盘阵列中所述待处理数据所在目标逻辑单元的逻辑单元编号;

获取预先随机生成的逻辑块密钥因子;

根据所述逻辑块密钥因子,对所述目标逻辑单元的逻辑单元编号进行加密,得到所述目标逻辑单元的工作密钥。

在本申请一种可能的实现方式中,所述利用所述工作密钥对所述目标磁盘阵列的磁盘阵列编号、所述目标逻辑单元的逻辑单元编号和所述目标扇区的扇区地址进行哈希运算,得到所述扇区块密钥,包括:

对所述目标磁盘阵列的磁盘阵列编号、所述目标逻辑单元的逻辑单元编号和所述目标扇区的扇区地址进行串连接处理,得到连接串;

对所述连接串进行哈希运算,得到第一哈希;

将所述第一哈希按字节位数划分,均分为第二哈希和第三哈希;

对所述第二哈希的每一个字节与所述第三哈希的每一个字节,按字节位数依次进行异或处理,得到所述扇区块密钥。

在本申请一种可能的实现方式中,在所述获取所述目标逻辑单元的工作密钥之前,所述方法还包括:

获取所述多个磁盘阵列各逻辑单元的逻辑单元编号;

获取预先随机生成的各逻辑单元所对应的工作密钥;

根据所述多个磁盘阵列各逻辑单元的逻辑单元编号和所述各逻辑单元所对应的工作密钥,生成密钥映射关系表,所述密钥映射关系表中,所述多个磁盘阵列各逻辑单元的逻辑单元编号和所述各逻辑单元所对应的工作密钥一一对应。

在本申请一种可能的实现方式中,在所述获取所述目标磁盘阵列中所述待处理数据所在目标逻辑单元的工作密钥之前,所述方法还包括:

获取所述多个磁盘阵列的磁盘阵列编号;

获取所述多个磁盘阵列各逻辑单元的逻辑单元编号;

根据所述多个磁盘阵列的磁盘阵列编号和所述多个磁盘阵列各逻辑单元的逻辑单元编号,生成磁盘映射表,所述磁盘映射表中所述多个磁盘阵列的磁盘阵列编号和所述多个磁盘阵列各逻辑单元的逻辑单元编号一一对应。

另一方面,本申请还提供一种扇区块密钥生成装置,包括:

获取模块,用于获取所述存储器与所述服务器交互的光纤通道协议报文;

解析模块,用于解析所述光纤通道协议报文,得到所述待处理数据所在目标逻辑单元的逻辑单元编号和所在目标扇区的扇区地址;

工作密钥获取模块,用于根据所述目标逻辑单元的逻辑单元编号,获取所述目标逻辑单元的工作密钥;

扇区块密钥生成模块,用于利用所述工作密钥对所述目标磁盘阵列的磁盘阵列编号、所述目标逻辑单元的逻辑单元编号和所述目标扇区的扇区地址进行哈希运算,得到所述扇区块密钥。

在本申请一种可能的实现方式中,所述工作密钥获取模块具体用于:

获取所述目标磁盘阵列中所述待处理数据所在目标逻辑单元的逻辑单元编号;

获取预先随机生成的逻辑块密钥因子;

根据所述逻辑块密钥因子,对所述目标逻辑单元的逻辑单元编号进行加密,得到所述目标逻辑单元的工作密钥。

在本申请一种可能的实现方式中,所述扇区块密钥生成模块具体用于:

对所述目标磁盘阵列的磁盘阵列编号、所述目标逻辑单元的逻辑单元编号和所述目标扇区的扇区地址进行串连接处理,得到连接串;

对所述连接串进行哈希运算,得到第一哈希;

将所述第一哈希按字节位数划分,均分为第二哈希和第三哈希;

对所述第二哈希的每一个字节与所述第三哈希的每一个字节,按字节位数依次进行异或处理,得到所述扇区块密钥。

在本申请一种可能的实现方式中,所述扇区块密钥生成装置还包括密钥映射表模块,所述密钥映射表模块具体用于:

获取所述多个磁盘阵列各逻辑单元的逻辑单元编号;

获取预先随机生成的各逻辑单元所对应的工作密钥;

根据所述多个磁盘阵列各逻辑单元的逻辑单元编号和所述各逻辑单元所对应的工作密钥,生成密钥映射关系表,所述密钥映射关系表中,所述多个磁盘阵列各逻辑单元的逻辑单元编号和所述各逻辑单元所对应的工作密钥一一对应。

在本申请一种可能的实现方式中,所述扇区块密钥生成装置还包括磁盘映射表模块,所述磁盘映射表模块具体用于:

获取所述多个磁盘阵列的磁盘阵列编号;

获取所述多个磁盘阵列各逻辑单元的逻辑单元编号;

根据所述多个磁盘阵列的磁盘阵列编号和所述多个磁盘阵列各逻辑单元的逻辑单元编号,生成磁盘映射表,所述磁盘映射表中所述多个磁盘阵列的磁盘阵列编号和所述多个磁盘阵列各逻辑单元的逻辑单元编号一一对应。

另一方面,本申请还提供一种设备,所述设备包括:

一个或多个处理器;

存储器;以及

一个或多个应用程序,其中所述一个或多个应用程序被存储于所述存储器中,并配置为由所述处理器执行以实现第一方面中任一项所述的方法。

另一方面,本申请还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器进行加载,以执行第一方面任一项所述的方法中的步骤。

本申请中,并不是直接使用工作密钥对待处理数据进行加密,而是利用工作密钥对待处理数据所在目标磁盘阵列的磁盘阵列编号、目标逻辑单元的逻辑单元编号和目标扇区的扇区地址进行哈希运算,得到扇区块密钥,利用该扇区块密钥再对待处理数据进行处理。从本质上来说,本申请的扇区块密钥是按照空间分割来保障密钥安全的,由于同一个磁盘阵列的每个逻辑单元的逻辑单元编号不同,因此每一个逻辑单元所对应的工作密钥也不同,进而每一个逻辑单元每个扇区的扇区块密钥也不同;对于不同的磁盘阵列,即使相同的逻辑单元具有相同的工作密钥,但由于每一个磁盘阵列的磁盘阵列编号不同,故不同磁盘阵列的相同逻辑单元编号上相同扇区的扇区块密钥也是不同的,因此本申请采用工作密钥与扇区块密钥双重密钥结合,确保了每个磁盘阵列的每个逻辑单元的每个扇区都使用不同的扇区块密钥,提高了存储加解密的可用性和易用性,保障了存储加解密的安全性。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本申请实施例提供的存储区域网络系统的一个场景示意图;

图2是本申请实施例提供的存储区域网络系统的又一个场景示意图;

图3是本申请实施例中提供的扇区块密钥生成方法的一个实施例流程示意图;

图4是本申请实施例中步骤303的一个实施例流程示意图;

图5是本申请实施例中步骤304的一个实施例流程示意图;

图6是本申请实施例中提供的扇区块密钥生成方法的又一个实施例流程示意图;

图7是本申请实施例中提供的扇区块密钥生成方法的再一个实施例流程示意图;

图8是本申请实施例中提供的扇区块密钥生成装置的一个实施例结构示意图;

图9是本申请实施例中提供的设备的一个实施例结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

在本申请的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“长度”、“宽度”、“厚度”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本申请和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本申请的限制。此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个所述特征。在本申请的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。

在本申请中,“示例性”一词用来表示“用作例子、例证或说明”。本申请中被描述为“示例性”的任何实施例不一定被解释为比其它实施例更优选或更具优势。为了使本领域任何技术人员能够实现和使用本申请,给出了以下描述。在以下描述中,为了解释的目的而列出了细节。应当明白的是,本领域普通技术人员可以认识到,在不使用这些特定细节的情况下也可以实现本申请。在其它实例中,不会对公知的结构和过程进行详细阐述,以避免不必要的细节使本申请的描述变得晦涩。因此,本申请并非旨在限于所示的实施例,而是与符合本申请所公开的原理和特征的最广范围相一致。

下面首先对本申请实施例中涉及到的一些基本概念进行介绍:

存储区域网络(Storage Area Network,SAN):SAN是一种高速的、专门用于存储操作的网络,通常独立于计算机局域网(Local Area Network,LAN)。SAN将不同的数据存储设备连接在一起,构成一个存储网络。用户可以对该网络进行添加或删除节点,从而很容易的实现数据备份和存档以及数据保护。

光纤通道存储区域网络(Fibre Chanel Storage Area Network,FC-SAN):FC-SAN通常由磁盘阵列连接光纤通道(Fibre Chanel,FC)组成,FC-SAN网络中,服务器和客户机的数据通信通过小型计算机系统接口(Small Computer System,SCSI)命令而非传输控制协议/网际协议(Transmission Control Protocol/Internet Protocol,TCP/IP),数据处理是“块级”(Block Level)。FC-SAN以数据存储为中心,采用可伸缩的网络拓扑结构,通过具有高传输速率的光纤通道的直接连接方式,提供FC-SAN内部任意节点之间的多路可选择的数据交换,并且将数据存储管理集中在相对独立的存储区域网内。FC-SAN网络在应用服务器与由存储阵列构成的存储设备间通过光纤交换机(FC Switch)连接。

光纤通道存储密码机(SecFC):即FC存储密码机,在使用了加密机制的FC-SAN网络中,FC存储密码机用于对多个磁盘阵列的数据进行加解密处理。

本申请实施例提供一种扇区块密钥生成方法、装置、设备和存储介质,以下分别进行详细说明。

请参阅图1,图1为本申请实施例所提供的存储区域网络系统的一个场景示意图,该存储区域网络可以包括:至少一个服务器100、光纤通道存储密码机300和与光纤通道存储密码机通信连接的存储器400,光纤通道存储密码机300分别和服务器100以及存储器400通信连接,存储器400中包括多个磁盘阵列,其中多个磁盘阵列中包括待处理数据所在的目标磁盘阵列,多个磁盘阵列与光纤通道存储密码机300通信连接。本申请实施例中,服务器100、光纤通道存储密码机300以及存储器400之间可以通过基于FC协议(Fibre ChannelProtocol,FCP)通信方式实现通信,该光纤通道存储密码机300用于实现基于FC协议的数据加解密机制,能够实现对存储器400内容的集中防护。请参考图1,存储器400包括三个磁盘阵列,分别为磁盘阵列A、磁盘阵列B和磁盘阵列C,需要说明的是,本申请实施例的存储器还可以包括更多或更少的磁盘阵列,具体数量根据实际应用场景进行选择,具体此处不做限定。

另外,本申请实施例的存储区域网络系统还可以包括其他能够与光纤通道密码机300通信的设备,如图2所示,本申请实施例的存储区域网络系统还可以包括:光纤交换机200,光纤通道存储密码机300与光纤交换机200通信连接,光纤通道存储密码机300通过光纤交换机200与服务器100通信连接。光纤通道存储密码机300解析存储区域网络系统中的服务器100和存储器400之间的FC协议,对于从服务器端到存储器端的写数据请求帧中的数据进行加密,对于从存储器端到服务器端的读数据回复帧中的数据进行解密,保证经过光纤通道存储密码机300后存储到存储器400上的数据为密文,而经过光纤通道存储密码机300后服务器100仍可以看到明文,不改变存储器400的使用。

本申请实施例中,服务器100可以是独立的服务器,也可以是服务器组成的服务器网络或服务器集群,例如,本申请实施例中所描述的服务器100,其包括但不限于计算机、网络主机、单个网络服务器、多个网络服务器集或多个服务器构成的云服务器。其中,云服务器由基于云计算(Cloud Computing)的大量计算机或网络服务器构成。每个服务器100连接有至少一个存储器400,用于存储服务器100的数据,其中,每个存储器400可以是当前技术已知的存储设备,比如独立磁盘阵列(Redundant Arrays of Inexpensive Disks,RAID)、磁盘簇(Just a Bunch Of Disks,JBOD)、直接存取存储器(Direct Access StorageDevice,DASD)的一个或多个互连的磁盘驱动器,诸如一个或多个存储单元的磁带存储设备。

光纤通道存储密码机300可以部署在存储器400或服务器100的前面,不改变原有的网络拓扑。光纤通道存储密码机300可以接入在存储器400之前,也可以接入在服务器100之前。

本申请实施例中光纤通道存储密码机300主要用于:获取对待处理数据的加密请求;响应所述加密请求,获取所述目标磁盘阵列中所述待处理数据所在目标逻辑单元的工作密钥;利用所述工作密钥对所述目标磁盘阵列的磁盘阵列编号、所述目标逻辑单元的逻辑单元编号和所述待处理数据所在目标扇区的扇区地址进行哈希运算,得到所述扇区块密钥。

光纤通道FC有三种常用拓扑结构:点对点(Point-to-Point)结构、光纤通道仲裁环路(Fiber Channel Arbitrate Loop,FC_AL)和光纤交换机(FC Switch)传输网络(FC_Fabric),其中,由光纤交换机(FC Switch)组成的中间传输网络称为FC交换网络(FCSwitched Fabric)。图2所示的拓扑结构是在磁盘阵列A、B和C前部署了一台FC存储密码机300。假设服务器A挂载了磁盘阵列A的LUN0虚拟磁盘,那么当服务器A往该磁盘存储数据时,每个扇区的数据都会经过FC存储密码机300使用特定的密钥进行加密处理;当服务器A从该磁盘读取数据时,每个扇区的数据都会经过FC存储密码机300使用特定的密钥进行解密处理。磁盘阵列A的LUN0上每个扇区的数据都是密文,服务器A看到的数据总是明文。

以上是对有光纤交换机的拓扑方式的举例,可以理解的是,在FC-SAN网络中,没有光纤交换机的情形同样也可以实施本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定。

需要说明的是,图1和图2所示的存储区域网络系统的场景示意图仅仅是本申请方案的示例,本申请实施例描述的存储区域网络系统以及场景是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,其他的应用场景还可以包括比图1和图2中所示更多或更少的存储器400,例如图1中仅示出1个存储器400,可以理解的,该存储区域网络系统还可以包括一个或多个与光纤通道存储密码机300通信的其他存储器,本领域普通技术人员可知,随着SAN系统的演变和新业务场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。

首先,本申请实施例提供一种扇区块密钥生成方法,该扇区块密钥生成方法的执行主体为扇区块密钥生成装置,该扇区块密钥生成装置应用于光纤通道存储密码机300,该光纤通道存储密码机300位于存储区域网络系统,该存储区域网络系统还包括与光纤通道存储密码机300通信连接的存储器400和服务器100,该存储器400包括多个磁盘阵列,多个磁盘阵列中包括待处理数据所在的目标磁盘阵列,该扇区块密钥用于对待处理数据进行加密或解密,该扇区块密钥生成方法包括:获取所述存储器与所述服务器交互的光纤通道协议报文;解析所述光纤通道协议报文,得到所述待处理数据所在目标逻辑单元的逻辑单元编号和所在目标扇区的扇区地址;根据所述目标逻辑单元的逻辑单元编号,获取所述目标逻辑单元的工作密钥;利用所述工作密钥对所述目标磁盘阵列的磁盘阵列编号、所述目标逻辑单元的逻辑单元编号和所述目标扇区的扇区地址进行哈希运算,得到所述扇区块密钥。

如图3所示,为本申请实施例中扇区块密钥生成方法的一个实施例流程示意图,该扇区块密钥生成方法包括:

301、获取所述存储器与所述服务器交互的光纤通道协议报文。

本实施例中,光纤通道存储密码机300获取的光纤通道协议报文,可以是在存储区域网络系统中,当服务器100发起对存储器400的写数据请求帧中的数据进行加密的加密请求的报文,也可以是存储器400发起对服务器100的读数据请求帧中的数据进行解密的解密请求的报文,光纤通道存储密码机300解析服务器100和存储器400之间的FC协议,从而获取到对写数据请求帧中的数据进行加密的加密请求,或获取到对读数据请求帧中的数据进行解密的解密请求,即获取到对待处理数据的加密请求或解密请求。

302、解析所述光纤通道协议报文,得到所述待处理数据所在目标逻辑单元的逻辑单元编号和所在目标扇区的扇区地址。

本申请实施例中,服务器100与存储器400之间交互的光纤通道协议报文的命令描述块(Command Descriptor Blocks,CDB)中,包括有待处理数据所在逻辑单元的逻辑单元编号和所在目标扇区的扇区地址,因此,通过解析光纤通道协议报文的命令描述块可以得到待处理数据所在目标逻辑单元的逻辑单元编号和所在目标扇区的扇区地址。

303、根据所述目标逻辑单元的逻辑单元编号,获取所述目标逻辑单元的工作密钥。

本实施例中,待处理数据位于存储器400中的目标磁盘阵列的目标逻辑单元中,每一个磁盘阵列的每一个逻辑单元都拥有一个唯一的工作密钥。在使用光纤通道存储密码机300进行加解密之前,设备管理员为每个磁盘阵列分配唯一的磁盘阵列编号,为每个磁盘阵列的逻辑单元分配逻辑单元编号,为每个逻辑单元的扇区分配扇区地址。在一个具体实施方式中,在光纤通道存储密码机300开机并通过认证后,便为每一个磁盘阵列的每一个逻辑单元生成其对应的工作密钥,通常情况下,光纤通道存储密码机300最多可以保存1024个工作密钥的密文信息,因此,在光纤通道存储密码机300开机认证通过后,光纤通道存储密码机300会一次性生成1024个工作密钥,并在光纤通道存储密码机300的协议解析引擎(FPGA)中,存储每一个工作密钥的密文信息以及逻辑单元与工作密钥的对应关系,以便从协议解析引擎中查找对应于目标逻辑单元的工作密钥。

需要说明的是,在另外的一些应用场景下,本实施例中的工作密钥也可以是在响应加密请求时,根据待处理数据的相关信息实时生成的,具体此处不做限定。

304、利用所述工作密钥对所述目标磁盘阵列的磁盘阵列编号、所述目标逻辑单元的逻辑单元编号和所述目标扇区的扇区地址进行哈希运算,得到所述扇区块密钥。

在一个具体实施方式中,该哈希运算采用SM3密码杂凑算法,以工作密钥作为SM3密码杂凑算法的密钥,在SM3密码杂凑算法的哈希运算消息认证码(Hash-based MessageAuthentication Code,HMAC)模式下,对待处理数据所在目标磁盘阵列的磁盘阵列编号、所在目标逻辑单元的逻辑单元编号和所在目标扇区的扇区地址进行哈希处理,得到该扇区块密钥。本实施例中,由于同一个磁盘阵列下每个逻辑单元的逻辑单元编号和每个扇区块的扇区地址都不相同,因此每个逻辑单元的每个扇区的扇区块密钥不相同;对于不同的磁盘阵列,虽然相同逻辑单元有相同的逻辑单元编号,相同逻辑单元下相同扇区的扇区地址也相同,但是由于每个磁盘阵列的磁盘阵列编号不相同,因此,每个磁盘阵列下的每个逻辑单元的每个扇区的扇区块密钥也不相同。

本申请实施例中,扇区块密钥用于光纤通道中磁盘扇区数据的加密或解密,每个磁盘阵列的磁盘阵列编号、每个逻辑单元的逻辑单元编号和每个扇区的扇区块地址一一对应,其对应关系可以保存在光纤通道存储密码机300的协议解析引擎(FPGA)中。

在一个具体实施方式中,目标逻辑单元的目标扇区的扇区块密钥在该目标扇区进行待处理数据的数据读写操作时,由步骤304动态进行计算获取,在目标逻辑单元的目标扇区完成待处理数据的数据读写操作时,立即销毁该目标扇区所对应的扇区块密钥。

本申请实施例中,并不是直接使用工作密钥对待处理数据进行加密,而是利用工作密钥对待处理数据所在目标磁盘阵列的磁盘阵列编号、目标逻辑单元的逻辑单元编号和目标扇区的扇区地址进行哈希运算,得到扇区块密钥,利用该扇区块密钥再对待处理数据进行处理。从本质上来说,本申请的扇区块密钥是按照空间分割来保障密钥安全的,由于同一个磁盘阵列的每个逻辑单元的逻辑单元编号不同,因此每一个逻辑单元所对应的工作密钥也不同,进而每一个逻辑单元每个扇区的扇区块密钥也不同;对于不同的磁盘阵列,即使相同的逻辑单元具有相同的工作密钥,但由于每一个磁盘阵列的磁盘阵列编号不同,故不同磁盘阵列的相同逻辑单元编号上相同扇区的扇区块密钥也是不同的,因此本申请采用工作密钥与扇区块密钥双重密钥结合,确保了每个磁盘阵列的每个逻辑单元的每个扇区都使用不同的扇区块密钥,提高了存储加解密的可用性和易用性,保障了存储加解密的安全性。

如图4所示,在本申请一些实施例中,所述步骤303中所述获取所述目标逻辑单元的工作密钥,可以进一步包括:

401、获取所述目标磁盘阵列中所述待处理数据所在目标逻辑单元的逻辑单元编号。

本实施例中,在使用光纤通道存储密码机300进行加解密之前,设备管理员为每个磁盘阵列分配唯一的磁盘阵列编号,为每个磁盘阵列的逻辑单元分配逻辑单元编号,为每个逻辑单元的扇区分配扇区地址。光纤通道存储密码机300在获取到服务器100与存储器400交互的光纤通道协议报文后,对其进行解析,根据光纤通道协议报文的命令描述块便可获得待处理数据所在目标逻辑单元的逻辑单元编号。

402、获取预先随机生成的逻辑块密钥因子。

在一个具体实施方式中,存储区域网络系统还包括与光纤通道存储密码机300通信连接的随机数生成器,该随机数生成器为每个逻辑单元生成逻辑块密钥因子,每个逻辑块密钥因子的长度都为128位;需要说明的是,本申请实施例中的逻辑块密钥因子也可以是由光纤通道存储密码机300内的内置随机数生成程序生成,具体此处不做限定。

403、根据所述逻辑块密钥因子,对所述目标逻辑单元的逻辑单元编号进行加密,得到所述目标逻辑单元的工作密钥。

光纤通道存储密码机300的分组密码工作模式包括电子密码本(Electronic CodeBook,ECB)模式、密码块链(Cipher Block Chaining,CBC)模式、密码反馈(CipherFeedback,CFB)模式、输出反馈(Output Feedback,OFB)模式和计数器(Counter,CTR)模式,本申请实施例中,光纤通道存储密码机300的分组密码工作模式采用电子密码本(Electronic Code Book,ECB)模式,对目标逻辑单元的逻辑单元编号进行加密,具体是在ECB模式下,以逻辑块密钥因子为密钥,采用SM4密码算法对目标逻辑单元的逻辑单元编号进行加密,SM4密码算法的分组长度与密钥长度均为128位,其加密算法与密钥扩展算法都采用32轮非线性迭代结构,S盒为固定的8比特输入8比特输出。假设用LBK表示工作密钥,LKF表示逻辑块密钥因子,LUNID表示目标逻辑单元的逻辑单元编号,ECB_MODE表示电子密码本模式,则工作密钥的计算式为:

LBK=SM4(LKF,LUNID,ECB_MODE)

由于每个逻辑单元的逻辑单元编号不同,故每个逻辑单元对应的工作密钥也不相同;在不同的磁盘阵列中,相同的逻辑单元虽然具有相同的工作密钥,但由于磁盘阵列的磁盘阵列编号不同,故不同的磁盘阵列的相同逻辑单元的相同扇区的扇区块密钥也不相同。

如图5所示,在本申请一些实施例中,所述步骤304中所述利用所述工作密钥对所述目标磁盘阵列的磁盘阵列编号、所述目标逻辑单元的逻辑单元编号和所述目标扇区的扇区地址进行哈希运算,得到所述扇区块密钥,可以进一步包括:

501、对所述目标磁盘阵列的磁盘阵列编号、所述目标逻辑单元的逻辑单元编号和所述目标扇区的扇区地址进行串连接处理,得到连接串。

假设MESG表示连接串,TID表示目标磁盘阵列的磁盘阵列编号,LUNID表示目标逻辑单元的逻辑单元编号,LBA表示目标扇区的扇区地址,LBK表示工作密钥,SBK表示扇区块密钥,其中,LBK为128位,SBK为16位,TID为6位,LUNID为19位,LBA为64位,则连接串的计算式为:

MESG=LBA||LUNID||TID

其中,||表示串连接。

502、对所述连接串进行哈希运算,得到第一哈希。

本实施例中,对连接串进行哈希运算,具体是在SM3密码杂凑算法的哈希运算消息认证码(Hash-based Message Authentication Code,HMAC)模式下,以工作密钥作为密钥,对连接串进行哈希运算,假设HMAC表示第一哈希,LBK表示工作密钥,MESG表示连接串,SM3_HMAC表示SM3密码杂凑算法的HMAC模式,则第一哈希的计算式为:

HMAC=SM3_HMAC(LBK,MESG)

本实施例中,由上述计算式计算得到的第一哈希为32位。

503、将所述第一哈希按字节位数划分,均分为第二哈希和第三哈希。

本实施例中,将第一哈希按字节位数均分,则第二哈希和第三哈希均为16位,第二哈希表示为HMAC[i],第三哈希表示为HMAC[i+15],其中i=0,1,...,15。

504、对所述第二哈希的每一个字节与所述第三哈希的每一个字节,按字节位数依次进行异或处理,得到所述扇区块密钥。

假设SBK表示扇区块密钥,则扇区块密钥的计算式为:

SBK[i]=HMAC[i]^HMAC[i+15],for i=0,1,...,15

其中SBK[i]表示扇区块密钥的第i字节,^表示异或操作。

如图6所示,在本申请一些实施例中,在所述获取所述目标逻辑单元的工作密钥之前,所述方法还可以包括:

601、获取所述多个磁盘阵列各逻辑单元的逻辑单元编号。

本实施例中,逻辑单元编号是在使用光纤通道存储密码机300进行加解密之前,设备管理员为每个磁盘阵列的逻辑单元分配的,相同磁盘阵列的逻辑单元的逻辑单元编号不相同,不同磁盘阵列的相同逻辑单元的逻辑单元编号相同。

602、获取预先随机生成的各逻辑单元所对应的工作密钥。

在一个具体实施方式中,在光纤通道存储密码机300开机并通过认证后,便为每一个磁盘阵列的每一个逻辑单元生成其对应的工作密钥,通常情况下,光纤通道存储密码机300最多可以保存1024个工作密钥的密文信息,因此,在光纤通道存储密码机300开机认证通过后,光纤通道存储密码机300会一次性生成1024个工作密钥。

603、根据所述多个磁盘阵列各逻辑单元的逻辑单元编号和所述各逻辑单元所对应的工作密钥,生成密钥映射关系表,所述密钥映射关系表中,所述多个磁盘阵列各逻辑单元的逻辑单元编号和所述各逻辑单元所对应的工作密钥一一对应。

本申请实施例中,密钥映射关系表存储于光纤通道存储密码机300的协议解析引擎(FPGA)中,反映多个磁盘阵列各逻辑单元的逻辑单元编号和各逻辑单元所对应的工作密钥之间的一一对应关系。

如图7所示,在本申请一些实施例中,在所述获取所述目标逻辑单元的工作密钥之前,所述方法还可以包括:

701、获取所述多个磁盘阵列的磁盘阵列编号。

本实施例中,磁盘阵列编号是在使用光纤通道存储密码机300进行加解密之前,设备管理员为每个磁盘阵列分配的唯一标识磁盘阵列的标识,因此每个磁盘阵列的编号都不相同。

702、获取所述多个磁盘阵列各逻辑单元的逻辑单元编号。

本实施例中,逻辑单元编号是在使用光纤通道存储密码机300进行加解密之前,设备管理员为每个磁盘阵列的逻辑单元分配的,相同磁盘阵列的逻辑单元的逻辑单元编号不相同,不同磁盘阵列的相同逻辑单元的逻辑单元编号相同。

703、根据所述多个磁盘阵列的磁盘阵列编号和所述多个磁盘阵列各逻辑单元的逻辑单元编号,生成磁盘映射表,所述磁盘映射表中所述多个磁盘阵列的磁盘阵列编号和所述多个磁盘阵列各逻辑单元的逻辑单元编号一一对应。

本实施例中,磁盘映射表存储于光纤通道存储密码机300的协议解析引擎(FPGA)中,反映多个磁盘阵列的磁盘阵列编号与多个磁盘阵列各逻辑单元的逻辑单元编号之间的一一对应关系。

假设一个磁盘阵列上的一个逻辑单元的存储空间为1TB,扇区大小为1MB,则光纤通道存储密码机300分配给该逻辑单元的扇区块密钥可达到百万级别的数量;而一个光纤通道存储密码机300最大支持64个磁盘阵列,每个磁盘阵列最多可配置1024个逻辑单元,则光纤通道密码机300中总共可分配的扇区块密钥数量在一千亿以上,因此本申请实施例的扇区块密钥可以是满足商密标准的会话密钥,满足一次会话对应一个会话密钥的要求。

另一方面,由于每个逻辑单元设计生命周期内的读写次数在3000之内,其中大小为1MB的扇区在整个生命周期中所吞吐的密文数量小于3GB,这个量级数据,使用密文数据攻击的手段不足以破解扇区块密钥,因此,本申请实施例采用工作密钥与扇区块密钥双重密钥结合,提高了存储加解密的可用性和易用性,保障了存储加解密的安全性。

另外,本申请实施例的光纤通道存储密码机300还可以处于集群模式,即有多台光纤通道存储密码机300以互为主备的方式运行,此时,只需要将集群中主控设备的逻辑盘密钥因子加密后进行分发,各集群伙伴设备获得主控设备分发的加密后的逻辑盘密钥因子,对其进行解密后在对应光纤通道存储密码机300内部对磁盘阵列的各逻辑单元的逻辑单元编号同样使用SM4密码算法进行加密生成工作密钥。当互为主备的光纤通道存储密码机300访问同一个磁盘阵列的相同逻辑单元的相同扇区时,根据上述步骤304或步骤501-504可以得到相同的扇区块密钥,通过集群内设备之间只传递逻辑块密钥因子的方式,不仅保证了不同设备之间扇区块密钥的一致性,同时也避免了传输实际加密密钥即扇区块密钥导致的不安全性,提高了存储加解密的安全性,使得光纤通道存储密码机300在集群环境中得到更为广泛的应用。

为了更好实施本申请实施例中的扇区块密钥生成方法,在扇区块密钥生成方法基础之上,本申请实施例中还提供一种扇区块密钥生成装置,所述扇区块密钥生成装置应用于光纤通道存储密码机300,所述光纤通道存储密码机300位于存储区域网络系统,所述存储区域网络系统还包括与所述光纤通道存储密码机300通信连接的存储器400和服务器100,所述存储器400包括多个磁盘阵列,所述多个磁盘阵列中包括待处理数据所在的目标磁盘阵列,如图8所示,所述扇区块密钥生成装置800包括:

获取模块801,用于获取所述存储器与所述服务器交互的光纤通道协议报文;

解析模块802,用于解析所述光纤通道协议报文,得到所述待处理数据所在目标逻辑单元的逻辑单元编号和所在目标扇区的扇区地址;

工作密钥获取模块803,用于根据所述目标逻辑单元的逻辑单元编号,获取所述目标逻辑单元的工作密钥;

扇区块密钥生成模块804,用于利用所述工作密钥对所述目标磁盘阵列的磁盘阵列编号、所述目标逻辑单元的逻辑单元编号和所述目标扇区的扇区地址进行哈希运算,得到所述扇区块密钥。

在本申请一些实施例中,所述工作密钥获取模块803具体用于:

获取所述目标磁盘阵列中所述待处理数据所在目标逻辑单元的逻辑单元编号;

获取预先随机生成的逻辑块密钥因子;

根据所述逻辑块密钥因子,对所述目标逻辑单元的逻辑单元编号进行加密,得到所述目标逻辑单元的工作密钥。

在本申请一些实施例中,所述扇区块密钥生成模块804具体用于:

对所述目标磁盘阵列的磁盘阵列编号、所述目标逻辑单元的逻辑单元编号和所述目标扇区的扇区地址进行串连接处理,得到连接串;

对所述连接串进行哈希运算,得到第一哈希;

将所述第一哈希按字节位数划分,均分为第二哈希和第三哈希;

对所述第二哈希的每一个字节与所述第三哈希的每一个字节,按字节位数依次进行异或处理,得到所述扇区块密钥。

在本申请一些实施例中,所述扇区块密钥生成装置800还包括密钥映射表模块805,所述密钥映射表模块805具体用于:

获取所述多个磁盘阵列各逻辑单元的逻辑单元编号;

获取预先随机生成的各逻辑单元所对应的工作密钥;

根据所述多个磁盘阵列各逻辑单元的逻辑单元编号和所述各逻辑单元所对应的工作密钥,生成密钥映射关系表,所述密钥映射关系表中,所述多个磁盘阵列各逻辑单元的逻辑单元编号和所述各逻辑单元所对应的工作密钥一一对应。

在本申请一些实施例中,所述扇区块密钥生成装置800还包括磁盘映射表模块806,所述磁盘映射表模块806具体用于:

获取所述多个磁盘阵列的磁盘阵列编号;

获取所述多个磁盘阵列各逻辑单元的逻辑单元编号;

根据所述多个磁盘阵列的磁盘阵列编号和所述多个磁盘阵列各逻辑单元的逻辑单元编号,生成磁盘映射表,所述磁盘映射表中所述多个磁盘阵列的磁盘阵列编号和所述多个磁盘阵列各逻辑单元的逻辑单元编号一一对应。

本申请实施例还提供一种设备,其集成了本申请实施例所提供的任一种扇区块密钥生成装置,所述设备包括:

一个或多个处理器;

存储器;以及

一个或多个应用程序,其中所述一个或多个应用程序被存储于所述存储器中,并配置为由所述处理器执行上述扇区块密钥生成方法实施例中任一实施例中所述的扇区块密钥生成方法中的步骤。

本发明实施例还提供一种设备,其集成了本申请实施例所提供的任一种扇区块密钥生成装置。如图9所示,其示出了本申请实施例所涉及的设备的结构示意图,具体来讲:

该设备可以包括一个或者一个以上处理核心的处理器901、一个或一个以上计算机可读存储介质的存储器902、电源903和输入单元904等部件。本领域技术人员可以理解,图9中示出的设备结构并不构成对设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:

处理器901是该设备的控制中心,利用各种接口和线路连接整个设备的各个部分,通过运行或执行存储在存储器902内的软件程序和/或模块,以及调用存储在存储器902内的数据,执行设备的各种功能和处理数据,从而对设备进行整体监控。可选的,处理器901可包括一个或多个处理核心;处理器901可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,优选的,处理器901可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器901中。

存储器902可用于存储软件程序以及模块,处理器901通过运行存储在存储器902的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器902可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据服务器的使用所创建的数据等。此外,存储器902可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器902还可以包括存储器控制器,以提供处理器901对存储器902的访问。

设备还包括给各个部件供电的电源903,优选的,电源903可以通过电源管理系统与处理器901逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源903还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。

该设备还可包括输入单元904,该输入单元904可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。

尽管未示出,服务器还可以包括显示单元等,在此不再赘述。具体在本实施例中,设备中的处理器901会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行文件加载到存储器902中,并由处理器901来运行存储在存储器902中的应用程序,从而实现各种功能,如下:

获取所述存储器与所述服务器交互的光纤通道协议报文;

解析所述光纤通道协议报文,得到所述待处理数据所在目标逻辑单元的逻辑单元编号和所在目标扇区的扇区地址;

根据所述目标逻辑单元的逻辑单元编号,获取所述目标逻辑单元的工作密钥;

利用所述工作密钥对所述目标磁盘阵列的磁盘阵列编号、所述目标逻辑单元的逻辑单元编号和所述目标扇区的扇区地址进行哈希运算,得到所述扇区块密钥。

本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。

为此,本发明实施例提供一种计算机可读存储介质,该存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、磁盘或光盘等。其上存储有计算机程序,所述计算机程序被处理器进行加载,以执行本申请实施例所提供的任一种扇区块密钥生成方法中的步骤。例如,所述计算机程序被处理器进行加载可以执行如下步骤:

获取所述存储器与所述服务器交互的光纤通道协议报文;

解析所述光纤通道协议报文,得到所述待处理数据所在目标逻辑单元的逻辑单元编号和所在目标扇区的扇区地址;

根据所述目标逻辑单元的逻辑单元编号,获取所述目标逻辑单元的工作密钥;

利用所述工作密钥对所述目标磁盘阵列的磁盘阵列编号、所述目标逻辑单元的逻辑单元编号和所述目标扇区的扇区地址进行哈希运算,得到所述扇区块密钥。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见上文针对其他实施例的详细描述,此处不再赘述。

具体实施时,以上各个单元或结构可以作为独立的实体来实现,也可以进行任意组合,作为同一或若干个实体来实现,以上各个单元或结构的具体实施可参见前面的实施例,在此不再赘述。

以上对本申请实施例所提供的一种扇区块密钥生成方法、装置、设备和存储介质进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

23页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:量子纠缠纯化装置及方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!