1.一种云数据库中密钥管理树的密钥撤销方法,其特征在于,对于已有的云数据库密钥管理树结构,在树结构生成的同时对应生成密钥撤销管理树,记录每一个云数据库密钥管理树节点的撤销状态,当有用户进行撤销操作时,更新对应的密钥撤销管理树状态,完成撤销过程。
2.根据权利要求1所述的一种云数据库中密钥管理树的密钥撤销方法,其特征在于,包括以下步骤:
步骤一、建立密钥撤销状态管理树:
步骤二、密钥的计算:
将带密钥的Hash树的根节点设置为根密钥Kr,用父节点密钥值计算出各子节点的密钥值,即计算带密钥的Hash树中第x层中第y个节点对应的密钥值:
Kx,y=H(Kparent,x||y||*Sx,y)
其中Kparent是Kx,y的父节点对应的密钥,其为已知密钥;H是一个将集合{0,1}*中元素映射到{0,1}256中的Hash函数,其中{0,1}*代表任意长度的比特串集合,{0,1}256是长度为256的比特串集合,||代表串联运算,这里使用x||y是为了保证所有分块密钥互不相同,Sx,y是节点的撤销状态值,在Sx,y前增减‘*’是为了避免直接串联可能导致的两个密钥相同问题;上述计算出的带密钥的Hash树中的各叶子节点对应的密钥值Kx,y,即为带密钥的Hash树为每个明文数据表生成的互不相同的分块密钥;
步骤三、密钥的撤销:
31)当用户对密钥分配树中某些节点进行密钥撤销操作时,计算密钥撤销树对应节点的Sx,y=Sx,y+1;
32)根据步骤二中密钥计算过程中的公式重新计算密钥,作为文件加密密钥,分配给新的用户,原有用户的密钥无法解密这些文件;
33)当密钥更新次数超过Sx,y的数域时,在步骤二中的计算公式中的Sx,y前面多添加一个‘*’,公式变为
Kx,y=H(Kparent,x||y||**Sx,y)
并且令对应的Sx,y=0,再次超过数域时,重复步骤33)。
3.根据权利要求2所述的一种云数据库中密钥管理树的密钥撤销方法,其特征在于,步骤一的具体过程如下:
11)首先选择一个长度为256比特的根密钥Kr,设置其为带密钥的Hash树的根密钥Kr,并将其秘密保存;
12)根据用户的需求定义树的分支数和深度,建立带密钥的哈希树;
13)在云数据库的密钥管理树结构建立的同时,对应建立密钥撤销状态管理树建立结构对应的状态管理树;
14)将密钥撤销管理树的每一个节点的撤销状态值Sx,y设置为0,表示此前没有撤销过。