首页> 中国专利> 一种基于信任网络的去中心化公钥管理方法和管理系统

一种基于信任网络的去中心化公钥管理方法和管理系统

摘要

本发明主要属于信息安全技术领域,具体涉及一种新型去中心化公钥管理方法和信任模型,该方法构建在区块链、P2P等分布式数据网络平台上,保证平台中的所有节点都能参与维护用户公钥的全生命周期管理,并以记账单形式记录用户公钥在生命周期内的各种状态改变。所述方法可将通过验证的公钥记录加入到平台中一致性公钥存储结构中进行保存;对同一用户的所有公钥记录按照时间先后顺序生成公钥日志链,并基于推荐人签名形成认证链及信任网络;可基于用户标识实现公钥的高效检索。本发明可保证方便、准确地签发和获取用户公钥,并保证所获取公钥的有效性、正确性、一致性、不可欺骗性,可作为一种支持认证、加密、完整性和可追究性服务的基础设施。

著录项

  • 公开/公告号CN107070644A

    专利类型发明专利

  • 公开/公告日2017-08-18

    原文格式PDF

  • 申请/专利权人 北京科技大学;

    申请/专利号CN201611218516.9

  • 发明设计人 朱岩;

    申请日2016-12-26

  • 分类号H04L9/08(20060101);

  • 代理机构11401 北京金智普华知识产权代理有限公司;

  • 代理人皋吉甫

  • 地址 100083 北京市海淀区学院路30号

  • 入库时间 2023-06-19 03:07:54

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2020-02-28

    授权

    授权

  • 2017-09-12

    实质审查的生效 IPC(主分类):H04L9/08 申请日:20161226

    实质审查的生效

  • 2017-08-18

    公开

    公开

说明书

技术领域

本发明主要属于信息安全技术领域,具体涉及一种基于信任网络的去中心化公钥管理方法和管理系统。

背景技术

近年来随着移动智能设备和云计算等新技术的广泛应用,人们通过因特网进行沟通越来越多,电子商务和线上交易日趋普及,人类正向数字社会迈进。为了保障数字社会中各种网络活动的数据机密性、完整性、可用性和真实性,各种现代密码技术被广泛采用,特别是公钥密码技术,已经成为保证互联网和整个数字社会的安全核心。与传统对称密码技术相比,公钥密码技术不仅能够实现数据加密和消息认证,还可实现用户身份认证、数字签名、安全计算、密钥交换、可验证秘密共享等功能,为保证新型互联网业务发展奠定了坚实的安全基础。

现有公钥密码技术是建立在PKI(公钥基础设施)上的,它是一种支持公开密钥管理并能提供“公钥证书”签发和认证服务的基础设施,用户可以利用PKI平台提供的安全服务实现和开发各种基于公钥密码的安全功能和应用。可以说,PKI构架已经成为现代互联网的基石和可信性的基础,然而,现有PKI构架是以政府和公司为主导的,以PKI为基础的公钥管理方式远没有在互联网中被普及和使用,特别是普通用户一级,PKI还很少被接受,限制了普通大众对于隐私保护和其它安全服务需求的实现。PKI构架无法普及原因在于:1)用户实名认证完成公钥证书签发,违背互联网匿名性原则;2)收费成本对普通大众过高;3)不提供证书的存储和获取服务。另一种公钥管理技术是PGP(完美隐私)架构,它是由互联网中用户自发形成的,并在用户所熟悉或信任的朋友之间进行公钥交换的一种技术。也由于组织比较松散,没有被广泛使用。

发明内容

针对上述问题,本发明提供一种基于信任网络的去中心化公钥管理方法和管理系统。所述公钥管理方法能支持认证、加密、完整性和可追究性服务的基础设施。

本发明是通过以下技术方案实现的:

一种去中心化的公钥管理方法,所述去中心化公钥管理方法将所有通过验证的公钥记录加入到去中心化网络平台中的一致性公钥存储结构中进行保存;

对于公钥存储结构中同一个用户标识下的所有公钥记录,所述方法能够生成公钥日志链,所述公钥日志链能够按照时间从后到前的顺序依次访问与所述同一个用户标识相关的所有公钥记录;

所述方法能够基于公钥记录中的推荐人签名形成认证链,所述认证链能够形成一个信任网络,所述信任网络能够记录推荐关系的传递过程以及实现信任关系的传递。

其中,所述一致性公钥存储结构是指去中心化网络平台中所有节点共同参与维护和存储相同的用户公钥记录集,该公钥记录的结构包含如下结构:

1)状态信息:包括一个前向指针,该前向指针指向前一条公钥记录,所述前向指针用于按照时间顺序生成公钥日志链并记录公钥记录状态的改变;状态信息中的前向指针是指本记录在系统中前一日志的位置信息,可以是记录地址信息或该记录的Hash值等;

2)公钥信息:用于存储用户公钥的相关信息;包括公钥长度、密码学参数列表;

3)证书信息:用于存储与用户公钥使用相关的信息;包括:证书版本、序列号、拥有者、有效期;证书信息的拥有者信息可以采用任意的名称进行署名或宣称用户标识,但必须保证署名或标识的全平台唯一性。署名或标识的方式包括真名、假名、Email地址、网站地址、统一资源定位符URL等。

所使用的署名或标识假名方式可实现用户“匿名”,实现方法包括采用用户真名的Hash值命名作为拥有者署名或标识ID,即可保证唯一性,Hash函数的单向性可保证已知署名无法猜测真名。

4)签名列表:用于存储推荐人或公钥拥有者对上述三方面信息的数字签名,所述签名列表包括至少一个数字签名,每个数字签名包含一个指向签名者公钥记录的指针;签名列表还可以包括签名类型、签名;

每个数字签名可用来作为不同推荐人的推荐证明。每个签名中保存有指向签名者公钥记录的指针,因而可用该指针获得推荐人的公钥,并使用该公钥对该签名的有效性进行验证。如果验证通过,则表明该推荐是有效的;否则表明该推荐是无效的,被签名信息不可信。这种推荐证明的安全性来源于签名的不可伪造性。

所述公钥记录能够记录各种公钥密码体制所使用的公钥证书,所述公钥证书包括:X.509、PKI证书、PGP证书、自证书。公钥证书包括公钥信息、证书信息、签名列表。其中自证书是指公钥记录拥有者用该记录中的公钥计算得到签名而形成的证书。

公钥日志链的生成包括以下步骤:

1)公钥记录验证:中心化网络平台中的各节点对用户提交的公钥记录进行验证;

2)生成公钥日志链:将通过验证的公钥记录存储在去中心化网络平台的一致性存储结构中;根据所述状态信息中的前向指针生成公钥日志链,所述公钥日志链能够从头节点开始按照时间从后到前的顺序依次访问与该公钥相关的所有公钥记录。其中,所述公钥日志链的拥有者采用任意且唯一性字符串作为用户标识,用户标识可采用用户真名的Hash值作为假名实现用户匿名。

其中,所述公钥记录状态的改变是指改变该公钥记录状态所执行的协议,所述协议包括:注册协议、更新协议、撤销协议。

所述注册协议用于用户公钥记录的可信性验证与公钥日志链生成;所述注册协议包括如下过程:

1)信任请求阶段:公钥拥有者生成公钥记录和发送信任请求;

2)公钥验证阶段:网络平台各节点对公钥可信性进行验证;

3)签名收集阶段:公钥所有者收集推荐人签名列表并发送注册请求;

4)记录生成阶段:网络平台各节点对注册请求中的签名进行验证,并在通过验证后将公钥记录写入公钥存储结构;

5)日志链生成阶段:网络平台各节点在查找表中建立公钥日志链的头节点,并将前述公钥记录链接到公钥日志链的头节点之后。

步骤2)中,网络平台各节点对公钥有效性进行验证是一个公钥所有者可信性验证与所持公钥的有效性验证过程。公钥所有者可信性验证可通过朋友关系、信任关系、信任计算模型等信任度量模型进行验证;公钥的有效性验证过程包括通过公钥加密秘密后发送给公钥持有者解密并返还秘密的方式进行验证的方式。

更新协议主要用于用户的密码更新和升级,也就是用新密钥代替旧密钥。如果证书已经失效,则在规定时间内可进行升级,无需重新注册。所述更新协议包括如下过程:

1)更新请求阶段:公钥拥有者生成更新公钥记录,并用旧私钥对更新公钥记录进行签名和发送更新请求;

2)记录生成阶段:网络平台各节点用公钥日志链中的旧公钥对更新公钥记录中签名有效性进行验证,并在通过验证后对新公钥进行记录;

3)日志链变更阶段:网络平台各节点将更新公钥日志链接到公钥查找表中公钥日志链的头节点之后。

撤销协议被用来公钥所有者主动提出申请对公钥证书进行撤销和丢弃,公钥撤销后无法进行激活和重用,只能重新注册申请新的证书;所述撤销协议包括如下过程:

1)撤销请求阶段:公钥所有者生成撤销公钥记录并用私钥对撤销公钥记录签名和发送撤销请求;

2)记录生成阶段:网络平台各节点用公钥日志链中公钥对撤销公钥记录中签名的有效性进行验证,并在通过验证后对所述撤销公钥记录进行记录;

3)日志链变更阶段:网络平台各节点将所述撤销公钥日志链接到公钥查找表中公钥日志链的头节点之后。

基于信任网络的认证链的生成具体为:

每一个公钥记录签名列表中存储至少一个推荐人签名,每一个所述推荐人签名为该推荐人的推荐证明,每一个推荐人签名中保存有签名者公钥记录指针,根据所述签名者公钥记录指针能够形成认证链。

所述认证链能够形成一个信任网络,该信任网络支持的信任关系包含直接信任、层次信任、间接信任关系。所述信任关系获取方法包括:由去中心化网络平台中成员协商信任、基于第三方可信认证机构签发(如PKI认证机构CA)。

所述方法还能够基于公钥记录中的用户标识,实现用户公钥的检索。

所述用户公钥的检索依赖于一种公钥检索结构,该公钥检索结构由查找表和公钥日志链的头节点列表构成;查找表以公钥拥有者的用户标识为查找关键字,构造查找表的方法包括:哈希查找表、二叉查找树、B树、B+树、字典序索引表。

基于公钥记录中的用户标识,实现用户公钥的检索,具体为:

1)检索请求阶段:请求者根据待查询公钥的用户标识生成并发送查询请求;

2)查找表检索阶段:网络平台各节点依靠查找表的关键字检索方法发现用户标识对应的项,并从该项中提取公钥日志链的头节点;

3)日志链查找阶段:网络平台各节点从公钥日志链的头节点开始依次查找,得到最近的一条有效公钥记录,并按照公钥信任模型对查找获得的公钥记录的可信性进行度量,输出该公钥记录和可信性度量结果;

4)一致校验阶段:请求者收到指定数目的公钥记录和可信性度量结果,并比对收到的查询结果是否一致;如果一致,则确定公钥的可用性,并返回该公钥;否则,返回“失败”。

公钥记录中公钥的可信性能够由公钥日志链和认证链中的记录信息予以度量,根据度量可将公钥可信性分为不同可信等级,可信等级包括:完全可信、边缘可信、有效但不可信、无效。

步骤3)中公钥信任模型是一种根据该公钥记录中的推荐人列表、公钥有效期、公钥状态变化信息对该公钥记录的可信性进行度量的算法或函数,算法或函数的输出为可信性度量;所述确定公钥的可用性是指依靠可信性度量是否大于等于公钥操作的安全性要求,返回公钥记录是否能被使用。如:公钥记录的可信性度量为边缘可信,公钥操作的安全性要求为完全可信,边缘可信低于完全可信,那么公钥记录将不适合使用。

一种基于信任网络的去中心化公钥管理系统。

所述公钥管理系统包括去中心化网络平台和具有全网一致性的一致性公钥存储结构,所述中心化网络平台由分布式数据系统构造,包括:区块链网络、P2P网络、分布式数据库系统、多方安全计算系统;所述一致性公钥存储结构用于存储通过验证的公钥记录。

在这个去中心化网络中各节点之间具有对等关系,无中心节点,且各节点之间具有全网一致性的一致性存储结构,该一致性存储结构被用于以“记账单”形式记录用户(包括个人、公司、企事业单位等)公钥在生命周期内的各种状态改变,其中,公钥生命周期包括公钥产生、公布、更新、注销的全过程。这里,“一致性”表示网络平台中的所有节点都将参与维护用户公钥的全生命周期管理,通过大规模节点的共识机制建立身份标识与公钥之间可靠的对应关系,公钥存储结构也是多副本的,但保持多副本之间数据的一致性、完整性和不可更改性。

本发明所述的一致性公钥存储结构,被用于存储用户公钥的信息和按照时间顺序记录状态改变,被称为“公钥记录”、“公钥日志”或“公钥证书”。该公钥记录是由公钥拥有者(或持有者)向系统提交的,在通过本系统验证之后,加入到去中心化网络平台中予以保存。

本发明的有益技术效果

本发明所述方法使得网络中用户可以高效、方便、准确地验证、查询和获取某个用户(用身份标识表示)的公开密钥,同时保证所获取公钥的有效性、正确性、一致性、不可欺骗性。同时,公钥管理的安全风险在于如何保障公钥的可信性,由于互联网中获取的信息并不可靠,但本发明保证了公钥证书的可信性和来源的真实性。

所述方法有如下特点:

1)采用中心化网络平台进行去中心化管理,能够支持任意数目证书机构或用户参与证书管理;

2)形成支持基于信任网络的认证链,能够对用户获得的的公钥记录进行可信性验证;

3)提供用户公钥的快速查找和存储与访问服务;

4)公钥记录,以时间记账本形式支持公钥全生命周期管理;

5)公钥日志链,提供公钥证书的完整性和可追究性服务;

6)标识匿名,支持用户以匿名方式进行公钥证书签发和获取;

7)与现有PKI和PGP架构相兼容,并具有较好扩展性和较强安全性。

本发明具有广泛的应用价值,包括可为任意公钥密码体制系统提供安全、可靠、高效的密钥管理解决方案,包括身份认证、密钥交换、加密、签名、安全计算等安全服务,并可满足政府、企事业单位、军队、学校、医院等对大规模用户群下的密钥管理需要,将带动我国整个互联网安全产业的发展,并推动更加安全可靠互联网信任机制的建立。

附图说明

图1是本发明中公开密钥管理构架的系统结构图。

图2是本发明中注册协议执行的流程图。

图3是本发明中更新协议执行的流程图。

图4是本发明中撤销协议执行的流程图。

图5是本发明中公钥检索协议执行的流程图。

图6是本发明中基于区块链的信息存储结构图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细描述。应当理解,此处所描述的具体实施例仅仅用于解释本发明,并不用于限定本发明。

相反,本发明涵盖任何由权利要求定义的在本发明的精髓和范围上做的替代、修改、等效方法以及方案。进一步,为了使公众对本发明有更好的了解,在下文对本发明的细节描述中,详尽描述了一些特定的细节部分。对本领域技术人员来说没有这些细节部分的描述也可以完全理解本发明。

实施例1

1)去中心化平台构造

本实施例是构建在区块链系统基础上,如图6所示,该区块链网络包括下面实体:

①系统成员P:={P1,…,Pn}:每名成员Pi是系统的一个独立执行节点,并存储区块链BC的一个副本;

②分布式网络net:保证系统内成员之间相互联通的P2P网络;

③区块存储结构BC:={B1,…,Bn}:区块链是由很多数据块Bi构成的分布式存储结构,每个数据块Bi:={hdri,bodyi}由一个“区块头hdri”和包含一定数目数据记录的“数据存储体bodyi”两部分构成;

④共识协议:保证区块链系统中所有成员相互协作并获得共同结果的协议,如挖矿机制、拜赞庭一致协议等。

给定哈希函数Hash:{0,1}*→{0,1}l,区块存储结构中所使用的数据结构包括:

①区块头哈希链表HTable:用于将所有区块头{B1,…,Bn}组织在一起的单向链表,链表指针ptr=Hash(Bi)为前一块数据的Hash函数值,即Bi+1:={ptr,block_info,…,root};

②记录哈希树HTree:用于将数据存储体bodyk中所有数据记录{cert1,…,certm}组织起来的二叉树,叶子结点为数据记录certi的哈希值Hash(certi),树中间结点nodei存储下属结点(node2i,node2i+1)的Hash函数值,即nodei=Hash(node2i,node2i+1),树根节点root=node1存储在区块头Bk中。

本区块链中所有记录{certi}被存储在关系数据库系统中,并以Hash(certi)为关键字或指针地址进行查找。

2)公钥记录结构

在本实施例中,如图6所示,每个数据记录certi中存储一个用户公钥pk的信息,被称为公钥记录或公钥证书。公钥记录结构定义如下:

①状态信息state_info:={前向指针forward_ptr、操作类型op_type等};

②公钥信息pk_info:={公钥长度pk_length、类型pk_type、参数列表para_list等};

③证书信息cert_info:={证书版本version、序列号serial_num、拥有者的用户标识holderID、有效期POV等};

④签名信息sig_info:={列表大小size、签名数目sig_num、签名记录表sig_list等};其中,签名记录表sig_list:={推荐人指针Intro_ptr、签名类型sig_type、签名sig等}。

在上述定义中,状态信息state_info中的前向指针forward_ptr被用来存储本公钥记录certi在区块链中此公钥的前一条记录(如certj)的地址信息,即公钥记录链(见后面介绍)中前一块的Hash指针,即forward_ptr=Hash(certj)。公钥记录中的公钥信息pk_info和证书信息cert_info与常见的X.509或PGP公钥数字证书中这两部分保持一致。

签名信息sig_info用来存储对包括区块信息state_info、公钥信息pk_info、证书信息cert_info在内数据的数字签名。但与通常的X.509公钥数字证书不同,签名列表sig_list可以存储多个签名,在某些情况下也可以存储“自签名”,即用证书持有者的私钥对该公钥证书进行签名。

为了实现用户匿名,拥有者的用户标识holderID可以为拥有者真实标识的哈希值,即holderID=Hash(holderID)。

3)公钥检索结构

公钥查找表是由Hash查找表构造,可实现公钥证书的查找。如图1所示,该Hash查找表定义如下:

1、密码学碰撞自由Hash函数HashMap:{0,1}*→[0,m-1],用于将拥有者“标识holderID”转化为随机Hash查找表中的地址t←HashMap(holderID);

2、长度为m的指针数组A[0:m-1],每个数组单元存储“碰撞链表”的指针,即A[i]=Linki,用于以“碰撞链表Linki”的形式存储每个Hash值对应的公钥记录列表,如果某一矩阵单元无对应记录,则存储NULL;

3、碰撞链表Linki用于存储Hash值映射到该单元A[i]的所有公钥记录构成的链表,链表中每一项包含一个“公钥证书链”的头节点linki,j:={ID,active,ptr},其中,如果linkt,j.ID=holderID,那么该指针linki,j.ptr存储指向区块链中存储该公钥记录链Cert_Linki,j的第一条记录cert的地址Hash(cert)(即linki,j.ptr=Hash(cert))和该公钥记录链的基本信息。

4、公钥日志链Cert_Linki,j:={linki,j,cert1,…,certt}记录了公钥标识holderID的使用记录,其中,链表头为linki,j

a)第一个记录为cert1,可由linki,j的哈希地址指针linki,j.ptr=Hash(cert1)找到该记录;

b)第二个记录为cert2,可由cert1的哈希地址指针cert1.forward_ptr=Hash(cert2)找到该记录;

c)重复上述过程,第k条记录为certk,可由certk-1的哈希指针certk-1.forward_ptr=Hash(certk)找到该记录;

d)该过程直至最后记录,它的前向指针为空,即certt.forward_ptr=NULL。

由此可见,公钥证书链Cert_Linki,j:={linki,j,cert1,…,certt}是由碰撞链表Linki中某一节点linki,j开始,通过公钥证书记录中“前向指针forward_ptr”构成公钥记录单向链表,公钥证书链记录了该公钥证书的所有信息。

4)基于用户标识的公钥检索协议(如图5所示):

第1步:检索请求阶段

请求者A根据待查询公钥的标识reqID,生成并发送查询请求;

第2步:哈希查找阶段

网络平台各节点(包括本地节点)计算t←HashMap(reqID),在Hash查找表提取项Linkt←A[t]=A[HashMap(reqID)]对应的“碰撞链表”Linkt:={linkt,1,…,linkt,k}中,逐项比较linkt,j.ID=reqID。如果第j项成立,则提取linkt,j,它是“公钥日志链”Cert_Linkt,j的头节点;否则,返回“失败”。

第3步:日志链查找阶段

从“公钥日志链”Cert_Linkt,j:={linkt,j,cert1,…,certm}的表头节点linkt,j依次查找每一个公钥记录,得到最近的一条有效公钥记录certk,并按照公钥信任模型,例如采用公式

trust=(certk.sig_num+m)·left(certk.POV)

其中,certk.sig_num表示该公钥记录中的推荐者签名数目,m表示公钥日志链长度,left(certk.POV)表示剩余的有效期长度,trust(certk)信任度量值为四类:完全可信L3、边缘可信L2、有效但不可信L1、无效返还信任度量值L0。最终,输出该公钥记录和信任度量值(cert,trust(certk))。

第4步:一致校验阶段

请求者A收到指定数目(如至少5个)的平台查询返回结果{(cert,trust(certk))}后,请求者A比对这些结果是否一致。如果一致,则根据信任度量值trust(certk)确定公钥的可用性,并返回该公钥cert.pk_info;否则,返回“失败”。

例如,公钥操作的安全性要求为L2,如果trust(certk)=L3>L2,则表示公钥可用;反之,如果trust(certk)=L1<L2,则表示公钥不可用。需要说明的是,即便通过上述方法判断该公钥不可用,但依然可以让用户最后决定是否使用该公钥。

4)三个操作协议(如图2,3,4所示)

公钥记录cert操作类型是指本记录所执行的协议类型,包括:注册协议Protocol_Regist、更新协议Protocol_Update、撤销协议Protocol_Revoke等。

三个主要协议描述如下:

①注册协议Protocol_Regist(如图2所示):

第一步,注册用户A(标识为holderID)生成公/私密钥对(pkA,skA),并按照证书记录cert格式对pkA生成“证书注册请求”certA,并通过区块链网络net以“信任请求”形式发送到所有系统成员;

第二步,每名区块链网络成员Pk(被称为推荐人)可选择对“信任请求”中的公钥pkA进行认证,如果认证成功,则用Pk自己的私钥skk进行签名sigk=sign(skk,certA),并将签名sigk和本人公钥记录指针作为推荐人指针Intro_ptrk返还给注册申请者A;

这里的认证方法是:推荐人Pk发送一个使用注册者的公钥pkA加密秘密消息m得到c=Encrypt(pkA,m),并发到注册申请者邮箱,注册申请者A用私钥skA解密该秘密信息m=decrypt(skA,c),并把信息m传回给推荐人Pk

第三步,注册申请者A在收集到足够多(例如,设定足够多为至少5个签名)的推荐人签名{sigk}后,将这些签名{sigk}放入到公钥证书certA的签名列表sig_list中作为信任依据,并再次以“注册请求”形式提交给区块链网络;

第四步,区块链网络(中各结点)对提交公钥证书certA中的推荐人签名{sigk}进行审核,即逐一对签名sigk用Intro_ptrk指向的公钥pkk进行认证,并按照“区块生成方法”将它加入certA到区块链的当前区块Bi中进行存储。

第五步,在Hash查找表中按照t←Hash(holderID)计算Hash索引值t,并在指针数组A中第t项A[t]所指的碰撞链表Linkt←A[t],且Linkt:={linkt,1,…,linkt,k};在按照链表指针ptrt,1,…,ptrt,k逐一验证IDt,j=holderID,如果没有相同项,则加入新的一项link,并把它作为公钥证书链的头节点Linkt:={link,linkt,1,…,linkt,k},并将节点中的前向指针指向上一步新生成的区块,即link.ptr=Hash(certA),从而构造出公钥证书链Cert_Linkt

在上述协议中,信任结构是指区块链中某一公钥注册时由多名推荐人Pk签名构成的“推荐关系”所形成的公钥信任关系。这种信任关系具有传递性,即主体A借鉴主体B对主体C的信任性,形成主体A与C之间的间接信任关系。

②更新协议Protocol_Update(如图3所示):

第一步,令公钥拥有者A的旧公/私密钥对为(pkA,skA),它生成新的公/私密钥对(pkA′,skA′),并用公钥证书格式对新公钥pkA′进行封装得到cert′A,在用旧的私钥skA对cert′A进行签名sig′A,并将它以“更新请求”形式发送到区块链网络;

第二步,区块链网络(中各结点)对提交公钥证书cert′A进行审核,即用被取代区块内的旧公钥pkA对签名sig′A进行验证,审核通过则按照区块建立方法将cert′A加入到区块链的当前区块中进行存储。

第三步,网络平台各节点将新记录cert′A添加到公钥查找表中“公钥日志链”表头节点之后。过程如下:在Hash查找表中按照t←Hash(holderID)计算Hash索引值t,并在指针数组A中第t项A[t]所指的碰撞链表Linkt←A[t],且Linkt:={linkt,1,…,linkt,k};在按照链表指针ptrt,1,…,ptrt,k逐一验证IDt,j=holderID,直到找到第一个匹配项linkt,k:={ID,active,ptr},将该哈希指针ptr赋值给新记录cert′A的前向指针cert′A.forward_ptr=linkt,k.ptr,再更改linkt,k.ptr=Hash(cert′A),从而实现将新纪录cert′A添加到“公钥日志链”Cert_Linkt,k:={linkt,k,certA′,cert1,…,certt}。

③撤销协议Protocol_Revoke(如图4所示):

第一步,公钥所有者A填写一个空证书certA,并填写操作类型为“撤销”,再被注销私钥skA对该空证书进行签名sigA,并将它以“撤销请求”形式发送到区块链网络;

第二步,区块链网络(中各结点)对提交公钥证书certA进行审核,即前向区块内的公钥pkA对签名sigA进行认证。如果审核通过,则按照区块建立方法将certA加入到区块链的当前区块中进行存储。

第三步,网络平台各节点将撤销记录certA添加到公钥查找表中“公钥日志链”表头节点之后,过程如Protocol_Update协议第三步。

5)系统总体构造(如图1所示)

综合上述基于信任网络的去中心化公钥管理方法中的各种结构和协议,可构造一个基于信任网络的去中心化公钥管理系统,该系统如图1所示。该系统描述如下:

1)去中心化的存储结构采用区块链网络,图1描述了一个6个区块BC={B1,B2,B3,B4,B5,B6}构成的区块链示意结构,其中,每个区块包括Bi:={hdri,bodyi}。6个区块头分别为{hdr1,hdr2,hdr3,hdr4,hdr5,hdr6},它们通过区块链指针构成一个区块头链表。

2)对应于每个区块Bi的数据存储体bodyi,图1显示了包含在数据存储体bodyi的一个公钥记录certi。为了方便,我们按照公钥名称PKA(表示用户A的公钥)和操作类型(Regist注册,Update更新,Revoke撤销)加以命名每个公钥记录。

3)图1右侧显示了一个哈希查找表构成的公钥日志链查找表。如前述3)中公钥检索结构所述,该查找表由一个哈希映射HashMap、m个指针数组A[0:m-1]、以及三个碰撞链表Linki构成。

4)公钥日志链构造:公钥日志链的头节点被存储在哈希查找表中碰撞链表Linki的每个节点中,并通过每个公钥记录中的forward_ptr链接成一个单向链表。如图1所示,对于用户A的公钥查找,首先通过linkm-3,1←A[HashMap(A)]得到用户A的公钥日志链头节点,然后沿着链指针得到用户A的公钥日志链

Cert_LinkA:={linkm-3,1,PKA(Revoke),PKA(Upate),PKA(Regist)}。

通过上述公钥日志链可知,该公钥经历了从注册到更新、最后到注销的过程。

5)信任网络:由公钥记录certi中的推荐者或拥有者签名Sigi构成了该公钥的信任转递关系及网络。如图1所示,用户A的公钥注册时有2个推荐人(分别为用户R1和R2)的签名SigR1和SigR2;继续查询两个推荐人的公钥记录,可知他们具有一个共同的推荐人R为他们进行了签名SigR和SigR′。根据上述关系构造了一个信任网络:R←R1←A和R←R2←A,其中,←表示信任关系,即R←R1表示R1的可信性来源于R。根据上述信任关系可构造更加复杂的信任网络。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号