2024年4月26日发(作者:)

(19)中华人民共和国国家知识产权局

(12)发明专利说明书

(21)申请号 CN2.9

(22)申请日 2013.08.15

(71)申请人 成都卫士通信息产业股份有限公司

地址 610041 四川省成都市高新区云华路333号

(72)发明人 李雪兵

(74)专利代理机构 成都九鼎天元知识产权代理有限公司

代理人 韩雪

(51)

H04L9/08

G06F21/62

(10)申请公布号 CN 103414555 A

(43)申请公布日 2013.11.27

权利要求说明书 说明书 幅图

(54)发明名称

(57)摘要

本发明提供了一种阵列基于IO块

阵列基于IO块加密的密钥管理方

加密的密钥管理方法,其具体方法为:在

阵列内存中生成一个密钥句柄链池,采用

新密钥加密时,判断密钥句柄链中句柄数

量是否小于限定值,是,则生成句柄并插

入到根节点后,句柄数量加一,否,则删

除最后一个tail节点,然后生成句柄并插

入到根节点后,然后将新密钥导入硬件加

密设备生成句柄,并将该句柄插入到密钥

句柄链的头节点中;同时将最新的访问阵

列进行IO编号,与密钥以IO编号为关键

字插入到快速查找树中,并保留与密钥句

柄链的关联关系;当读取数据时,根据IO

编号快速查找到对应的密钥,根据对应的

句柄链操作得到密钥句柄,最后解密数据

返回。

法律状态

法律状态公告日

法律状态信息

专利权人的姓名或者名称、地址

的变更IPC(主分类):H04L 9/08

专利号:ZL2变更事

项:专利权人变更前:成都卫士通

信息产业股份有限公司变更后:中

2023-04-21

电科网络安全科技股份有限公司

变更事项:地址变更前:610041 四

川省成都市高新区云华路333号

变更后:610041 四川省成都市中

国(四川)自由贸易试验区成都高

新区云华路333号

法律状态

专利权人的姓名或者

名称、地址的变更

权 利 要 求 说 明 书

1.一种阵列基于IO块加密的密钥管理方法,其具体方法为:在阵列内存中生成一

个密钥句柄链池,采用新密钥加密时,判断密钥句柄链中句柄数量是否小于限定值,

是,则生成句柄并插入到根节点后,句柄数量加一,否,则删除最后一个tail节点,

然后生成句柄并插入到根节点后,然后将新密钥导入硬件加密设备生成句柄,并将

该句柄插入到密钥句柄链的头节点中;同时将最新的访问阵列进行IO编号,与密

钥以IO编号为关键字插入到快速查找树中,并保留与密钥句柄链的关联关系;当

读取数据时,根据IO编号快速查找到对应的密钥,根据对应的句柄链操作得到密

钥句柄,最后解密数据返回。

2.根据权利要求1所述的方法,所述密钥句柄链池生成的具体方法为:将最近使用

的密钥关系链接在一起形成一个句柄链池。

3.根据权利要求1所述的方法,对阵列进行IO编号的具体方法为:在存储阵列中

给每个读写磁盘块IO根据时间生成IO编号。

4.根据权利要求1所述的方法,所述IO编号与数据块一起同时存储在磁盘块中。

5.根据权利要求3所述的方法,所述IO编号是根据时间的递增生成的,且不受系

统时间的影响。

6.根据权利要求3或5所述的方法,所述IO编号为64位。

7.根据权利要求5所述的方法,写入磁盘块时总是采用最大编号的IO编号对应的

密钥句柄加密数据块,并与当前访问阵列IO编号组包后通过一个IO操作写入磁

盘。

8.根据权利要求1所述的方法,所述快速查找树是采用平衡二叉树,包括:键值数

量、密钥、键值、密钥句柄和平衡因子;所述键值数量为3到5,所述键值为5,

所述平衡因子为左子树与右子树高度之差不超过1。

说 明 书

技术领域

本发明涉及一种阵列基于IO块加密的密钥管理方法,特别是涉及一种适用于信息

安全领域阵列基于IO块加密的密钥管理方法。

背景技术

随着信息化建设的不断推进,各行业、企事业单位利用计算机系统和计算机网络技

术进行关键业务数据处理、存储的需求越来越大。但通过网络进行数据存储这种方

式不同于传统数据物理隔离的存储方式,网络存储将数据置于网络环境中,使得这

些数据被非法访问、盗用和滥用的风险骤增。

对于存储阵列系统而言,必须解决数据安全问题,其中数据的机密性涉及到大数据

量的加密,当前多数厂家采用SAN/NAS协议网关加密模式、一体化存储加密模式。

无论采用那种模式,都涉及到大数据加密的密钥量的管理问题。

大数据存储加密系统要求高速、高效性,因此不能在密钥管理上消耗过多。

系统采用硬件加密,加密的密钥使用密钥句柄进行密码运算,由于硬件设备资源有

限,导致句柄数量受限。

发明内容

本发明要解决的技术问题是提供一种利用有限硬件资源,实现高效加密密钥的密钥

管理方法,该方法采用阵列基于IO块加密的密钥管理方法,结合句柄链池,当采

用新密钥加密时,将新密钥导入硬件加密设备生成句柄,并将该句柄插入到密钥句

柄链的头节点中,实现高效的句柄定位,同时将最新的访问阵列IO编号与密钥以

IO编号为关键字插入到快速查找树中,根据IO编号快速查找到对应的密钥,根据

对应的句柄链操作得到密钥句柄,最后解密数据返回,从而实现块的加解密。该方

法利用有限的硬件资源,实现高效加密密钥,完成大数据存储加密的高速、高效性。

本发明采用的技术方案如下:一种阵列基于IO块加密的密钥管理方法,其具体方

法为:在阵列内存中生成一个密钥句柄链池,采用新密钥加密时,判断密钥句柄链

中句柄数量是否小于限定值,是,则生成句柄并插入到根节点后,句柄数量加一,

否,则删除最后一个tail节点,然后生成句柄并插入到根节点后,然后将新密钥导

入硬件加密设备生成句柄,并将该句柄插入到密钥句柄链的头节点中;同时将最新

的访问阵列进行IO编号,与密钥以IO编号为关键字插入到快速查找树中,并保

留与密钥句柄链的关联关系;当读取数据时,根据IO编号快速查找到对应的密钥,

根据对应的句柄链操作得到密钥句柄,最后解密数据返回。

作为优选,所述密钥句柄链池生成的具体方法为:将最近使用的密钥关系链接在一

起形成一个句柄链池。

作为优选,对阵列进行IO编号的具体方法为:在存储阵列中给每个读写磁盘块IO

根据时间生成IO编号。

作为优选,所述IO编号与数据块一起同时存储在磁盘块中。

作为优选,所述IO编号是根据时间的递增生成的,且不受系统时间的影响。

作为优选,所述IO编号为64位。

作为优选,写入磁盘块时总是采用最大编号的IO编号对应的密钥句柄加密数据块,

并与当前访问阵列IO编号组包后通过一个IO操作写入磁盘。

作为优选,所述快速查找树是采用平衡二叉树,包括:键值数量、密钥、键值、密

钥句柄和平衡因子;所述键值数量为3到5,所述键值为5,所述平衡因子为左子

树与右子树高度之差不超过1。

与现有技术相比,本发明的有益效果是:该方法利用有限的硬件资源,实现高效加

密密钥,完成大数据存储加密的高速、高效性。

其进一步的有益效果是:

1、IO编号与加密数据块一起存储在磁盘块中,当读取数据时根据IO编号找到对

应的密钥进行解密,查找简单快捷。

2、IO编号按照时间递增,且不受系统时间的影响,采用该方式顺序读写数据块速

度更快。

3、IO编号为64位,64位足够大不会存在用尽的问题。

4、设置键值为5,既保证只需两次查找的少次数超找量,又保证两次查找的最大

存储量;既保证了快速查找,又保证了最大的存储空间。

5、设置键值数量至少3个,避免存储空间的浪费。

附图说明

图1为本发明其中一实施例的IDZ与密钥和数据块的对应关系图。

图2为本发明密钥句柄链池结构示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对

本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发

明,并不用于限定本发明。

本说明书中公开的所有特征,除了互相排除的特征以外,均可以以任何方式组合。

本说明书(包括任何附加权利要求、摘要和附图)中公开的任一特征,除非特别叙

述,均可被其他等效或者具有类似目的的替代特征加以替换。即,除非特别叙述,

每个特征只是一系列等效或类似特征中的一个例子而已。

一种阵列基于IO块加密的密钥管理方法,其具体方法为:在阵列内存中生成一个

密钥句柄链池,采用新密钥加密时,判断密钥句柄链中句柄数量是否小于限定值,

是,则生成句柄并插入到根节点后,句柄数量加一,否,则删除最后一个tail节点,

然后生成句柄并插入到根节点后,然后将新密钥导入硬件加密设备生成句柄,并将

该句柄插入到密钥句柄链的头节点中;同时将最新的访问阵列进行IO编号,与密

钥以IO编号为关键字插入到快速查找树中,并保留与密钥句柄链的关联关系;当

读取数据时,根据IO编号快速查找到对应的密钥,根据对应的句柄链操作得到密

钥句柄,最后解密数据返回。

如图1所示,所述密钥句柄链池生成的具体方法为:为管理密钥句柄,将最近使用

(可根据具体需求进行设置,如可将10次以内使用的定位为最近使用的。)的密

钥关系链接在一起形成一个句柄链池。

对阵列进行IO编号的具体方法为:在存储阵列中给每个读写磁盘块IO根据时间

生成IO编号。

所述IO编号与数据块一起同时存储在磁盘块中。

所述IO编号是根据时间的递增生成的,且不受系统时间的影响。

所述IO编号为64位。

写入磁盘块时总是采用最大编号的IO编号对应的密钥句柄加密数据块,并与当前

访问阵列IO编号组包后通过一个IO操作写入磁盘。

在基于数据块加密的存储加密系统中,一定数据量的加密数据块使用的加密密钥

(DEK)是不同的,因此加密密钥与数据块对应的关系链的高效管理至关重要,

这个关系链叫密钥链。

在存储阵列中给每个读写磁盘块IO根据时间生成递增的64位IO编号(64位足够

大不会存在用尽的问题),在本发明中将这个编号叫IDZ,且IDZ与数据块一起

同时存储在磁盘块中。

如图2所示,IDZ与加密数据块一起存储在磁盘块中,当读取数据时根据IDZ找到

对应的密钥进行解密。

对于本方法原理限制条件:

1、加密密钥DEK在内存中处理,且一旦使用不能在内存中被删除,除非重启系

统重建索引;

2、IDZ按照时间递增,且不受系统时间的影响,采用该方式顺序读写数据块速度

更快。

如图2所示,按照时间划分,每批量的数据块用一个加密密钥进行加密。IDZ1至

IDZ2的数据块采用DEK1加密数据,IDZ3至IDZ5采用DEK2加密,如此类推。

所述快速查找树是采用平衡二叉树,包括:键值数量、密钥、键值、密钥句柄和平

衡因子;所述键值数量为3到5,所述键值为5,所述平衡因子为左子树与右子树

高度之差不超过1。

采用平衡树实现快速查找定位密钥句柄,该实现针对内存访问优化索引技术,它是

一种节点包含多个键值条目的平衡二叉树,每个节点内的关键字有序排列,并实现

了关键字的范围查询。

该树具有以下特点:

1、树左子树与右子树高度之差不超过1;

2、一个节点可以存储多个值,且这些值有序排列,这里取值为5,既保证只需两

次查找的少次数超找量,又保证两次查找的最大存储量;既保证了快速查找,又保

证了最大的存储空间;

3、一个节点的最左值与右值分别是这个节点的最小值与最大值,它的左子树仅仅

包含小于最小值的记录节点,同理,右子树仅仅包含大于最大值的记录节点;

4、每个节点内部键值数目必须不小等于指定的数量值,这里取值为3,避免存储

空间的浪费;

在本发明中,平衡树主要完成查找及插入操作,其中插入操作以查找为基础。对树

的维护以其旋转平衡为关键。在插入的情况下,依次对所有沿新节点到根节点中的

节点路径进行检查:该节点的二个字树高度相等,此时不需要旋转;该节点的二个

字树高度差大于1,此时需一次旋转。由此对于插入操作最多只需要一次旋转操作。

删除操作将耗更多的时间,应避免键值的删除。

系统节点存储结构TTREE_ITEM结构需要如下关键信息:

{

Int keynum; 键值数量

Unsigned char key[5][32];密钥

Uint64_t idz[5]; 键值idz

Void* handle[5]; 密钥句柄

TTREE_ITEM *r,*l; 右子树、左子树

Int b;平衡因子

};

查找算法的实现,首先查找目标值IDZX是否在当前节点的最左值与最右值范围内,

如果是的话一般采用二分法查找,这里采用顺序查找,如果目标值小于最左值,则

搜索在左子树,如果目标值大于最右值,则搜索在右子树。

TTREE_ITEM *pitem;

int i;

pitem = 根节点;

while(pitem)

{

for(i=0;i< keynum当前节点键值数量;i++)

{

if(IDZX<=pitem->idz[i])

break;

}

if(i== pitem->keynum) //IDZ大于最右值

pitem=pitem->r;

else if(IDZX>=pitem->idz[0])//已匹配位置i,必然不小于最左值

{

//表示IDZX采用当前节点i位置对应的密钥加密

if i位置对应节点没有句柄

{

生存密钥句柄并插入句柄链(算法参考前面的描述);

}

返回i位置对应的密钥句柄;

}

else

pitem=pitem->l;

}

该算法返回的值是范围查找关系,可以满足图2的需求。其中,每个句柄链中的节

点需要保存指向查找树节点的指针,用于句柄链改变时可直接修改查找树中的句柄

值。

当有新密钥产生,需要插入节点,插入节点可能会破环树的平衡,因此需要旋转树,

其方法与普通树的旋转方式类式。

在本具体实施例中,对于插入操作最多只进行一次旋转操作就可以恢复到平衡状

态。