CN101582760A - 一种基于树结构的密钥加密存储方法 - Google Patents

一种基于树结构的密钥加密存储方法 Download PDF

Info

Publication number
CN101582760A
CN101582760A CNA2008100979153A CN200810097915A CN101582760A CN 101582760 A CN101582760 A CN 101582760A CN A2008100979153 A CNA2008100979153 A CN A2008100979153A CN 200810097915 A CN200810097915 A CN 200810097915A CN 101582760 A CN101582760 A CN 101582760A
Authority
CN
China
Prior art keywords
key
newleaf
keyv
dlnode
parent
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
CNA2008100979153A
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.)
University of Chinese Academy of Sciences
Original Assignee
University of Chinese Academy of Sciences
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 University of Chinese Academy of Sciences filed Critical University of Chinese Academy of Sciences
Priority to CNA2008100979153A priority Critical patent/CN101582760A/zh
Publication of CN101582760A publication Critical patent/CN101582760A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Storage Device Security (AREA)

Abstract

一种基于树结构的密钥加密存储方法,属可信计算技术领域;其采用了二叉树分层加密技术,把对许多数据加密密钥的保护转变成了对一个主密钥的保护,包括二叉树初始化以及数据加密密钥插入、删除和读取四个部分;二叉树的根节点代表主密钥,存放在可信密码模块中,其余节点代表的密钥存放在外存中,其中,叶节点代表数据加密密钥;非根节点存放时总是用上层父节点对其进行加密,因此,数据加密密钥被使用时必须还原;该方法节省了可信密码模块的存储空间,又能存储大量密钥,可广泛应用于高安全等级的计算机信息系统中。

Description

一种基于树结构的密钥加密存储方法
(一)技术领域
用于对称密钥加密存储的方法属于可信计算技术领域,是信息安全的核心技术之一。
(二)背景技术
在可信计算领域中,对称密钥的安全存储是一个关键问题,因为如果对称密钥一旦泄密,则相关密文就不安全。
目前,普遍采用的存储方法是把对称密钥分别存储到软盘或闪存中,由用户随身携带或存放在一个安全的地方。但是,这样做很不方便。一是这种方式需要大量的软盘或闪存;二是这种方式需要用户总是守在计算机旁边;三是这种内外交互的方式降低了应用程序的运行速度。
随着密码技术在计算机系统和通信系统中的大量使用,应用程序总是频繁地在做加密、解密、数字签名或身份验证运算。因此,传统的对称密钥存储方法已不适应新时代的要求。另一方面,可信计算技术为在硬盘、闪存等外存中大量实时存储对称密钥提供了可能。
(三)发明内容
在可信计算中,经常需要用到密码体制,尤其是对称密码体制。其特点是运行速度快。当加密、解密在同一台计算机中进行时,对称密钥不需要传递。但需要存储在硬盘或闪存(介质)中,以便应用系统对其进行实时访问。
为了防止对称密钥泄密,在存储到介质前,应先对其进行加密。相应地,当对称密钥被从介质读取到内存时,应对其进行解密。
本发明实现了对称密钥在应用信息系统中的安全、快速、方便访问,为构造大型、复杂、安全的应用信息系统提供了保障。在电子商务、电子政务和电子金融等信息系统中有着广泛而重要的应用。
3.1几个基本概念
二叉树:计算机程序中的一种数据结构,由节点构成。有唯一的根节点,每个节点最多有两个子节点。没有子节点的节点称为叶节点。
二叉树犹如一棵倒长的分层次的树,根节点可视为零层,其次是第一层、第二层等等。显然,第一层最多有2个节点,第二层最多有4个节点,...,第h层最多有2h个节点。整个树最多有2h+1-1个节点。
可信密码模块:可信平台控制模块中的一个子模块,可以当作硬件的一部分,用来产生密钥和存储有限密钥,由于采用物理保护方式,它们不可能被外界窃取和非法获得。简称为TCM(Trusted Cipher Module)。由于可信密码模块存储空间很小,因此,只能存储少数非常重要的密钥。
数据加密密钥:用来加密数据的对称密钥。对应于二叉树中的中间节点。
密钥加密密钥:用来加密密钥的对称密钥。对应于二叉树中的根节点。
系统主密钥:可信密码模块产生的一个对称密钥,并存储在可信密码模块中,用来加密其它的对称密钥,它位于二叉树根节点上。简称SMK(System Main Key)。
显然,系统主密钥也是一个密钥加密密钥。
密钥路径:从叶节点到根节点的一串节点,可根据节点中的父指针依次往上追溯。
设symCrypt为一个对称算法,加密调用形式为symCrypt(plain,key,0),返回加密后的plain值,为密文;解密调用形式为symCrypt(cipher,key,1),返回解密后的cipher值,为明文。
令‘←’表示把右边的值赋给左边的变量。
令Null表示空值。
3.2二叉树的初始化
定义一个含5个域的结构体类型BiTreeNode{keyV,keyN,parent,lChild,rChild}。
其中,keyV用来存放对称密钥值;keyN用来存放对称密钥编号,用于应用程序访问相应的数据加密密钥,从1开始编号,若其值为0,则表示keyV为密钥加密密钥;parent用来存放节点的父指针;lChild用来存放左孩子指针;rChild用来存放右孩子指针。
用节点变量名+‘.’+域名来标识节点的域。例如,aSMK.keyN标识根节点的对称密钥编号(见下)。
(1)开辟一个类型为BiTreeNode的存储单元aSMK
(该单元作为二叉树的根节点),
(2)随机生成用于symCrypt的主密钥,并存入TCM的永久单元SMK中,
置aSMK.keyV←Null,
(3)置aSMK.parent←Null、aSMK.lChild←Null、aSMK.rChild←Null,
置aSMK.keyN←0,
(4)把该树结构存入到一个永久磁盘文件中。
注意,该文件会随着二叉树的长大而长大。应用程序每次运行时,调入二叉树到内存,并调整有关值。结束运行前,把二叉树重新写入磁盘文件中。
磁盘文件中的二叉树,其根节点的密钥值为Null,其余节点(包括叶节点)的密钥值都采用symCrypt和父密钥加密后存放。这样,把对许多数据加密密钥的保护转变成了对SMK的保护。
二叉树调入内存后,根节点为aSMK,根节点的密钥值应该置为SMK,其余节点的指针值可能也要根据内存分布情况做一定调整。
3.3数据加密密钥插入
本部分是把一个用于加密数据的对称密钥加入到二叉树中。
假设二叉树已被应用程序调入内存,根节点为aSMK。
输入:明文形式的对称密钥值iKeyV,对称密钥编号iKeyN。
输出:对称密钥iKeyN的节点地址。
(1)在内存中开辟一个BiTreeNode类型的存储单元newLeaf,
(2)置newLeaf.keyN←iKeyN,newLeaf.lChild←Null、newLeaf.rChild←Null,
(3)按纵向优先搜索二叉树aSMK,
若找到一个中间节点mNode有空指针,那么
(3.1)根据mNode的密钥路径,利用SMK分层解密路径上的各密钥,令pKey←解密的mNode.keyV,
(3.2)若mNode.lChild=Null,则mNode.lChild←newLeaf的地址,否则mNode.rChild←newLeaf的地址,
(3.3)令newLeaf.parent←mNode的地址,
(3.4)做newLeaf.keyV←symCrypt(iKeyV,pKey,0),
(4)如果未找到任何中间节点有空指针,则设最左边的叶节点为dlNode,
(4.1)开辟另一个BiTreeNode类型的存储单元oldLeaf,
令dlNode.lChild←oldLeaf的地址,dlNode.rChild←newLeaf的地址,
令oldLeaf.parent←dlNode的地址,newLeaf.parent←dlNode的地址,
置oldLeaf.lChild←Null,oldLeaf.rChild←Null,
置oldLeaf.keyN←dlNode.keyN,dlNode.keyN←0,
(4.2)根据dlNode的密钥路径,利用SMK分层次解密路径上的各密钥,令pKey←解密的dlNode.parent.keyV,
做oldKey←symCrypt(dlNode.keyV,pKey,1),
随机生成一个用于symCrypt的对称密钥rKey,
做oldLeaf.keyV←symCrypt(oldKey,rKey,0),
做newLeaf.keyV←symCrypt(iKeyV,rKey,0),
做dlNode.keyV←symCrypt(rKey,pKey,0),
(5)返回newLeaf的地址。
3.4数据加密密钥删除
本部分是从二叉树中删除一个叶节点,该叶节点存放有用于加密数据的对称密钥。
假设二叉树已被应用程序调入内存,根节点为aSMK。
输入:对称密钥编号dKeyN。
输出:‘删除成功’或‘未找到相应编号的密钥’。
(1)按纵向优先搜索二叉树aSMK,
若找到一个叶节点有dNode.keyN=dKeyN,那么
(1.1)如果dNode.parent.lChild=dNode的地址,
则dNode.parent.lChild=Null,
否则dNode.parent.rChild=Null;
(1.2)释放dNode的内存空间,
(1.3)返回‘删除成功’,
(2)否则,返回‘未找到相应编号的密钥’。
3.5数据加密密钥读取
本部分是从二叉树的叶节点中找到相应的对称密钥编号,然后,把密钥值解密成明文形式并返回。
假设二叉树已被应用程序调入内存,根节点为aSMK。
输入:对称密钥编号fKeyN。
输出:解密后的密钥值或‘未找到相应编号的密钥’。
(1)按纵向优先搜索二义树aSMK,
若找到一个叶节点有fNode.keyN=fKeyN,那么
(1.1)根据fNode的密钥路径,利用SMK分层次解密路径上的各密钥,
(1.2)令pKey←解密的fNode.parent.keyV,
(1.3)做plainKey←symCrypt(fNode.keyV,pKey,1),
(1.3)返回plainKey,
(2)否则,返回‘未找到相应编号的密钥’。
3.6优点和积极效果
3.6.1安全性较高
采用了可信计算技术,主密钥SMK存储在可信密码模块中,防止了任何人的偷窃和非法访问。
3.6.2效率较高
采用了二叉树分层加密技术,把对许多数据加密密钥的保护转变成了对一个SMK的保护,效率提高较明显。
3.6.3运算速度较快
应用程序启动后,二叉树可调入内存,对某个数据加密密钥的访问直接从内存而不是从外存读取,这样,极大地提高了密钥的访问速度。
(四)具体实施方式
本发明阐述了一种高效的密钥保护与存储方法,它结合了可信计算技术和二叉树存储技术,包括4个部分:二叉树初始化、插入一个数据加密密钥、删除一个数据加密密钥、读取一个数据加密密钥。
这4部分可以作为子程序分别用逻辑电路芯片或程序语言来实现,同时,为其它应用程序提供调用接口,包括子程序名、调用参数个数、输入参数和返回参数等。

Claims (1)

1、一种基于树结构的密钥加密存储方法,由二叉树初始化、数据加密密钥插入、数据加密密钥删除和数据加密密钥读取四个部分组成,把对许多数据加密密钥的保护转变成了对一个主密钥的保护,主密钥存储在可信密码模块中,其余密钥存储在外存中,其特征在于
·二叉树初始化部分采用了下列步骤:
定义结构体BiTreeNode为{keyV,keyN,parent,lChild,rChild},做
(1)开辟一个类型为BiTreeNode的存储单元aSMK,
(2)随机生成一个主密钥,存入TCM的单元SMK中,置aSMK.keyV←Null,
(3)置aSMK.parent、aSMK.lChild、aSMK.rChild←Null,置aSMK.keyN←0,
(4)把该树结构存入到一个永久磁盘文件中;
·数据加密密钥插入部分采用了下列步骤:
输入明文形式的对称密钥值iKeyV、对称密钥编号iKeyN,做
(1)在内存中开辟一个BiTreeNode类型的存储单元newLeaf,
(2)置newLeaf.keyN←iKeyN,newLeaf.lChild、newLeaf.rChild ←Null,
(3)按纵向优先搜索二叉树aSMK,
若找到一个中间节点mNode有空指针,那么
(3.1)根据mNode的密钥路径,利用SMK分层解密路径上的各密钥,令pKey←解密的mNode.keyV,
(3.2)若mNode.lChild=Null,则mNode.lChild←newLeaf的地址,否则mNode.rChild←newLeaf的地址,
(3.3)令newLeaf.parent←mNode的地址,
(3.4)做newLeaf.keyV←symCrypt(iKeyV,pKey,0),
(4)如果未找到任何中间节点有空指针,则设最左边的叶节点为dlNode,
(4.1)开辟另一个BiTreeNode类型的存储单元oldLeaf,
令dlNode.lChild←oldLeaf的地址,dlNode.rChild←newLeaf的地址,
令oldLeaf.parent←dlNode的地址,newLeaf.parent←dlNode的地址,
置oldLeaf.lChild←Null,oldLeaf.rChild←Null,
置oldLeaf.keyN←dlNode.keyN,dlNode.keyN←0,
(4.2)根据dlNode的密钥路径,利用SMK分层次解密路径上的各密钥,
令pKey←解密的dlNode.parent.keyV,
做oldKey←symCrypt(dlNode.keyV,pKey,1),
随机生成一个用于symCrypt的对称密钥rKey,
做oldLeaf.keyV←symCrypt(oldKey,rKey,0),
做newLeaf.keyV←symCrypt(iKeyV,rKey,0),
做dlNode.keyV←symCrypt(rKey,pKey,0),
(5)返回newLeaf的地址;
·数据加密密钥删除部分采用了下列步骤:
输入对称密钥编号dKeyN,做
(1)按纵向优先搜索二叉树aSMK,
若找到一个叶节点有dNode.keyN=dKeyN,那么
(1.1)如果dNode.parent.lChild=dNode的地址,
则dNode.parent.lChild=Null,
否则dNode.parent.rChild=Null,
(1.2)释放dNode的内存空间,
(1.3)返回‘删除成功’,
(2)否则,返回‘未找到相应编号的密钥’;
·数据加密密钥读取部分采用了下列步骤:
输入对称密钥编号fKeyN,做
(1)按纵向优先搜索二叉树aSMK,
若找到一个叶节点有fNode.keyN=fKeyN,那么
(1.1)根据fNode的密钥路径,利用SMK分层次解密路径上的各密钥,
(1.2)令pKey←解密的fNode.parent.keyV,
(1.3)做plainKey←symCrypt(fNode.keyV,pKey,1),
(1.3)返回plainKey,
(2)否则,返回‘未找到相应编号的密钥’。
CNA2008100979153A 2008-05-16 2008-05-16 一种基于树结构的密钥加密存储方法 Pending CN101582760A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNA2008100979153A CN101582760A (zh) 2008-05-16 2008-05-16 一种基于树结构的密钥加密存储方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNA2008100979153A CN101582760A (zh) 2008-05-16 2008-05-16 一种基于树结构的密钥加密存储方法

Publications (1)

Publication Number Publication Date
CN101582760A true CN101582760A (zh) 2009-11-18

Family

ID=41364742

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA2008100979153A Pending CN101582760A (zh) 2008-05-16 2008-05-16 一种基于树结构的密钥加密存储方法

Country Status (1)

Country Link
CN (1) CN101582760A (zh)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102236756A (zh) * 2011-05-09 2011-11-09 山东超越数控电子有限公司 一种基于TCM可信密码模块和USBKey的文件加密方法
CN103414555A (zh) * 2013-08-15 2013-11-27 成都卫士通信息产业股份有限公司 阵列基于io块加密的密钥管理方法
CN103414552A (zh) * 2013-07-31 2013-11-27 深圳信息职业技术学院 一种利用二叉树遍历方式进行加密、解密方法及装置
CN103618599A (zh) * 2013-12-04 2014-03-05 重庆大学 数据集加密前处理方法
US8917872B2 (en) 2011-07-06 2014-12-23 Hewlett-Packard Development Company, L.P. Encryption key storage with key fragment stores
CN104780175A (zh) * 2015-04-24 2015-07-15 广东电网有限责任公司信息中心 基于角色的分级分类访问的授权管理方法
CN106301774A (zh) * 2015-05-29 2017-01-04 联芯科技有限公司 安全芯片、其加密秘钥生成方法和加密方法
CN107786338A (zh) * 2016-08-25 2018-03-09 大连楼兰科技股份有限公司 动态密码校验中的共享平台
CN108075879A (zh) * 2016-11-10 2018-05-25 中国移动通信集团安徽有限公司 一种数据加密和解密的方法、装置及系统
CN108133144A (zh) * 2017-12-22 2018-06-08 浪潮(北京)电子信息产业有限公司 一种虚拟磁盘文件保护方法、装置、设备及可读存储介质
CN109787755A (zh) * 2018-12-14 2019-05-21 魏勇 一种密钥生成方法、密钥生成装置及电子设备
CN116915401A (zh) * 2023-08-23 2023-10-20 江苏云涌电子科技股份有限公司 一种基于可信密码模块tcm的密钥生成方法

Cited By (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102236756A (zh) * 2011-05-09 2011-11-09 山东超越数控电子有限公司 一种基于TCM可信密码模块和USBKey的文件加密方法
US8917872B2 (en) 2011-07-06 2014-12-23 Hewlett-Packard Development Company, L.P. Encryption key storage with key fragment stores
CN103414552B (zh) * 2013-07-31 2016-09-28 深圳信息职业技术学院 一种利用二叉树遍历方式进行加密、解密方法及装置
CN103414552A (zh) * 2013-07-31 2013-11-27 深圳信息职业技术学院 一种利用二叉树遍历方式进行加密、解密方法及装置
CN103414555A (zh) * 2013-08-15 2013-11-27 成都卫士通信息产业股份有限公司 阵列基于io块加密的密钥管理方法
CN103414555B (zh) * 2013-08-15 2016-08-10 成都卫士通信息产业股份有限公司 阵列基于io块加密的密钥管理方法
CN103618599A (zh) * 2013-12-04 2014-03-05 重庆大学 数据集加密前处理方法
CN103618599B (zh) * 2013-12-04 2016-09-14 重庆大学 数据集加密前处理方法
CN104780175B (zh) * 2015-04-24 2018-03-13 广东电网有限责任公司信息中心 基于角色的分级分类访问的授权管理方法
CN104780175A (zh) * 2015-04-24 2015-07-15 广东电网有限责任公司信息中心 基于角色的分级分类访问的授权管理方法
CN106301774A (zh) * 2015-05-29 2017-01-04 联芯科技有限公司 安全芯片、其加密秘钥生成方法和加密方法
CN106301774B (zh) * 2015-05-29 2019-08-06 辰芯科技有限公司 安全芯片、其加密密钥生成方法和加密方法
CN107786338A (zh) * 2016-08-25 2018-03-09 大连楼兰科技股份有限公司 动态密码校验中的共享平台
CN108075879A (zh) * 2016-11-10 2018-05-25 中国移动通信集团安徽有限公司 一种数据加密和解密的方法、装置及系统
CN108075879B (zh) * 2016-11-10 2021-03-09 中国移动通信集团安徽有限公司 一种数据加密和解密的方法、装置及系统
CN108133144A (zh) * 2017-12-22 2018-06-08 浪潮(北京)电子信息产业有限公司 一种虚拟磁盘文件保护方法、装置、设备及可读存储介质
CN109787755A (zh) * 2018-12-14 2019-05-21 魏勇 一种密钥生成方法、密钥生成装置及电子设备
CN109787755B (zh) * 2018-12-14 2021-11-12 魏勇 一种密钥生成方法、密钥生成装置及电子设备
CN116915401A (zh) * 2023-08-23 2023-10-20 江苏云涌电子科技股份有限公司 一种基于可信密码模块tcm的密钥生成方法

Similar Documents

Publication Publication Date Title
CN101582760A (zh) 一种基于树结构的密钥加密存储方法
TWI750223B (zh) 區塊鏈加密射頻晶片存儲設計方法
CN103329184B (zh) 数据处理装置以及数据保管装置
Blass et al. Toward robust hidden volumes using write-only oblivious RAM
CN104363215B (zh) 一种基于属性的加密方法和系统
CN108768951B (zh) 一种云环境下保护文件隐私的数据加密和检索方法
CN103329478B (zh) 密码系统以及密码系统的密码处理方法
CN105100083B (zh) 一种隐私保护且支持用户撤销的基于属性加密方法和系统
CN110855430B (zh) 计算系统和用于管理计算系统中的安全对象存储库的方法
CN107168998A (zh) 一种基于保留格式的数据库透明加密方法
CN115296817B (zh) 基于区块链技术和属性加密的数据访问控制方法
CN102207999A (zh) 一种基于可信计算密码支撑平台的数据保护方法
US20190342075A1 (en) Method and system for encrypting data with an all-or-nothing encryption scheme having additional randomness
CN106936820B (zh) 数据变长修改方法及其在大数据加密中的应用
CN107070896B (zh) 一种安全高效的区块链网络客户化登录方法及安全加固系统
EP3343829A1 (en) Searchable cryptograph processing system
CN107276766A (zh) 一种多授权属性加解密方法
CN114143094A (zh) 基于区块链的多授权属性基可验证加密方法
CN105915333B (zh) 一种基于属性加密的高效密钥分发方法
CN108763944B (zh) 雾计算中安全可撤销多中心大属性域属性基加密方法
Nabeel et al. Privacy-Preserving Fine-Grained Access Control in Public Clouds.
CN103414555A (zh) 阵列基于io块加密的密钥管理方法
CN114430321B (zh) 基于dfa自适应安全的黑盒可追踪密钥属性加密方法及装置
Guo et al. Order‐Revealing Encryption Scheme with Comparison Token for Cloud Computing
CN100576226C (zh) 基于中国剩余定理的数据库加密方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Open date: 20091118