一种基于区块链的用户多形态身份的安全融合认证方法与流程

文档序号:11234701阅读:396来源:国知局
一种基于区块链的用户多形态身份的安全融合认证方法与流程

本发明涉及身份识别技术领域,尤其涉及一种基于区块链的用户多形态身份的安全融合认证方法。



背景技术:

目前,单一安全机制的身份认证技术带来的局限性也越来越明显,多种安全机制整合应用正在成为新的趋势。这是由于基于单一因子的认证技术(如账号密码登录),很容易存在被假冒、被窃取的风险,利用多重安全因子不仅提高系统的安全性,还可以提高认证的可靠性。即使用户缺失某一身份认证的要素,他仍然可以通过其他身份信息进行登录。此外,目前缺乏一套完善的机制,让用户可以自由的选择不同形态的身份信息以供验证,并且通过统一的模型存储和安、智能化的算法对上述信息整合、分析和匹配。最重要的是,目前身份特征信息集中式的存储在某一中心存在极大的安全隐患。一旦数据中心被攻破,用户的身份信息会遭到泄露和破坏,这是一种灾难性的后果。

区块链是一种公开、透明的全民共识、共治和共享的新型基础设施,具有分布式数据存储、去中心化、不可篡改、可追溯、可信任等特征。虽然区块链的透明性与用户身份信息的隐私特互相冲突,但是我们可以结合公钥加密体制和区块链技术,实现用户身份信息的安全和可靠存储。通过将用户身份信息加密后记录在区块链中,结合公钥可搜索加密算法,我们能够实现用户身份信息安全、高效和可靠的存储和使用。



技术实现要素:

本发明的目的在于:针对上述现有单一因子认证技术的认证要素单一,很容易出现假冒、用户信息被窃取,从而导致用户认证中的安全性、可靠性低的问题,本发明提供一种基于区块链的用户多形态身份的安全融合认证方法。

本发明采用的技术方案如下:

一种基于区块链的用户多形态身份的安全融合认证方法,包括以下步骤:

(1)初始化,生成服务器和可信节点的公钥和私钥,生成服务器的公开参数和服务器的公开算法,其中,公开参数包括:所支持的不同形态身份的数量(m)、每一个身份形态的特征分量的数量(n)、身份特征权值占比、相似度阈值等,公开算法包括:哈希函数、矩阵变换算法、身份特征提取算法、身份特征匹配算法等,具体含义在叙述过程中有描述;

(2)用户向服务器输入用户账号和不同形态的身份信息,不同形态的身份信息中包括用户身份名称;

接着服务器对用户输入的不同形态的身份信息分别进行特征提取,得到身份特征,将提取到的每个身份特征通过公开的哈希函数计算得到统一长度的身份特征向量,再通过公开的矩阵变换算法对身份特征向量进行矩阵变换,得到身份特征矩阵,计算身份特征矩阵的根;

(3)基于典型的公钥加密算法,对步骤(2)中的身份特征矩阵进行加密,得到身份特征矩阵密文;

基于典型的公钥可搜索加密算法,将用户身份名称作为对象,使用服务器的公钥对用户身份名称进行加密并得到可搜索密文;

(4)服务器分别对用户账号、身份特征矩阵的根、特征矩阵密文和可搜索密文用进行私钥签名,并发送给可信节点;

(5)可信节点根据用户账号在区块链上检索,如果用户首次登录,可信节点为用户颁发公钥,创建创始区块记录用户不同形态的身份信息并将用户账号、用户公钥、时间戳、特征矩阵的根、特征矩阵密文和可搜索密文写入创始区块,并且在网络中广播;首次登录用户的不同形态的身份信息即原始身份信息,原始身份信息变换后得到原始身份特征矩阵,原始身份特征矩阵的密文即原始身份特征矩阵密文;否则,执行步骤(6);

(6)对用户不同形态的身份信息进行融合特征匹配和相似度判断。

所述的一种基于区块链的用户多形态身份的安全融合认证方法,步骤(1)中,生成的公开参数包括:身份特征权值占比、相似度阈值、服务器所支持的不同形态身份的数量、每一个身份形态的特征分量的数量,生成的公开算法包括:公开的哈希算法、身份特征提取算法、身份特征匹配算法。

所述的一种基于区块链的用户多形态身份的安全融合认证方法,步骤(2)中,特征提取和特征变换具体步骤为:

(21)服务器针对用户输入的不同形态的身份信息,依照步骤(1)生成的公开算法,提取出身份特征,使用公开的哈希算法计算提取出的每一个身份特征,得到所计算的身份特征对应的特征向量,所计算的身份特征对应的特征向量由n个分量组成;

(22)服务器将步骤(21)得到的统一格式的特征向量按照公开的矩阵变换算法组成特征矩阵。

所述的一种基于区块链的用户多形态身份的安全融合认证方法,步骤(6)的具体步骤为:

(61)可信节点将原始的身份特征矩阵密文发送给服务器,服务器用自己的私钥解密后得到用户原始身份特征矩阵,并从用户原始身份特征矩阵中一一提取出用户的原始身份特征向量a1、…、am;其中,m代表用户不同形态身份信息的数量;

(62)服务器从用户录入的身份信息提取到身份特征向量a′1、…、a′m,其中,m代表用户不同形态身份信息的数量;

(63)服务器根据公开的特征匹配算法match(),比对步骤(62)、步骤(63)中每一个身份特征的相似度,得到每一个身份特征的比对相似度,每一个身份特征的比对相似度计算公式为:

r1=match(a1、a′1)、…、rm=match(am、a′m);

其中r1…rm为每一个身份特征的比对相似度;

(64)服务器计算所有身份特征融合匹配相似度,融合特征匹配相似度计算公式为:

r=ω1r1+…+ωnrm,

其中,ω1,…,ωn代表不同形态身份特征的权值占比;

(65)服务器将r与给定的相似度阈值v比较,若r>v,则认证成功,授权登录,否则,返回失败标识符并结束。

综上所述,由于采用了上述技术方案,本发明的有益效果是:

一、本发明的方案中,基于区块链公开、透明的全民共识、共治和共享的新型基础设施,具有分布式数据存储、去中心化、不可篡改、可追溯、可信任等特征,通过将用户身份信息加密后记录在区块链中,结合公钥可搜索加密算法,实现了用户身份信息安全、高效和可靠的存储和使用。

二、由于采用多种形态的身份信息对客户进行认证,因此,不用担心某一身份信息缺失而造成的无法认证的问题。

三、由于本方案中,区块链中,可以记录同一个用户的多个不同形态身份信息,因此用户可以自由地选择不同形态的身份信息以供验证,并且通过统一的模型存储和安、智能化的算法对上述信息整合、分析和匹配。

附图说明

图1是本发明一种基于区块链的用户多形态身份的安全融合认证方法的流程图;

图2是为本发明中身份特征提取和特征矩阵的说明图;

图3是本为发明中记录身份特征信息的区块链结构图;

具体实施方式

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

下面结合图1、图2、图3对本发明作详细说明。

一种基于区块链的用户多形态身份的安全融合认证方法,包括如下步骤:

初始化,生成服务器和可信节点的公钥和私钥,生成服务器的公开参数和服务器的公开算法,其中公开参数包括:身份特征权值占比、相似度阈值、所支持的不同形态身份的数量、每一个身份形态的特征分量的数量,生成的公开算法包括:公开的哈希算法、身份特征提取算法、身份特征匹配算法。相似度阈值用于决定用户登录成功需要达到的相似度阈值,其中,身份特征权值占比为不同形态身份信息在验证过程中所占百分比,可以根据实际应用环境自由设定;

用户通过安全途径(包括:安全信道,安全的设备,如:pos机等)将用户账号和(一种或多种形态的)用户身份信息输入给服务器,用户身份信息包括但不限于:密码、指纹、虹膜、人脸、声源。

服务器针对用户输入的不同形态的身份信息,分别根据相应的公开算法,对不同形态的身份信息进行身份特征提取,并将每种不同形态的身份信息提取到的身份特征按照公开的哈希算法统一计算,得到由n个特征分量组成的身份特征向量;不同形态的身份信息中包括用户身份名称;

例如,对于人脸图像身份信息,记录人脸器官分布的坐标,并计算得到由n个分量组成身份特征向量,如:a1={a1,1,…,a1,n},这里,a1,i代表一个人脸特征向量里的特征分量;

例如,对于常规密码,根据公开的哈希算法得到由n个密码分量组成的设法特征向量,如:a2={a2,1,…,a2,n},此外,对于其他不同形态的身份信息,如虹膜、指纹等等,方法类似;

服务器将这些特征向量按照公开的矩阵变换算法得到身份特征矩阵,并计算当前身份特征矩阵的根,身份特征矩阵是一个由用户多个身份特征向量组成的矩阵;

需要指出的是,我们在初始化过程通过公开参数提前设定用户具有m个不同形态身份,每一个形态的身份由一个具有n个特征分量的身份特征向量组成,我们可以简单的认为:身份特征矩阵是一个m×n的矩阵,其中每一个元素代表一种形态身份信息对应的特征分量;

接着,服务器基于公钥加密算法,用自己的公钥加密用户身份特征矩阵,得到身份特征矩阵密文;公钥加密算法包括但不限于著名的rsa公钥加密算法。rsa公钥加密算法的特点是:发送者采用接收者的公钥进行加密,密文在公开渠道中传输,接收者在收到密文后采用自己的密钥进行解密。

服务器又基于公钥可搜索加密算法,将用户身份名称作为关键字,使用自己的公钥对其进行加密并得到关键字可搜索密文;公钥可搜索加密算法包括但不限于boneh等人提出的peks公钥可搜索加密算法。peks公钥可搜索加密算法是将用户身份名称作为对象,使用自己的公钥对用户身份名称进行加密并得到可搜索密文;这里,公钥可搜索加密算法的特点是:将关键字用接受者的公钥加密后和密文一起发送给服务器存储,接受者使用自己的公钥和关键字生成陷门发送给服务器,服务器通过陷门匹配到包含该关键字的密文,并且发送回接受者;

服务器分别将用户账号、当前身份特征矩阵的根、身份特征矩阵密文和可搜索密文进行私钥签名后一起发送给可信节点,由可信节点负责记录到区块链中;

需要注意的是,我们采用公钥算法对用户身份特征矩阵加密后记录在区块链上,是为了保护用户各种形态的身份信息不得到泄露,而采用公钥可搜索加密算法是为了把用户身份名称的密文作为用户特征矩阵密文的标识符,以便于查询,很显然,将用户身份名称的明文记录在区块链上容易泄露隐私,而采用公钥可搜索加密算法,可以让可信节点和其他所有用户在不知道用户身份名称的明文是什么的情况下,安全和高效的查询和传输记录在区块链上的身份信息,由此一来,用户身份信息得到了全方位的隐私保护,同时又便于可检索;

接着,可信节点根据服务器发送来的身份特征矩阵密文,根据用户的不同情况执行如下:

可信节点根据用户账号在区块链上进行检索,如果该用户首次登陆,即不存在任何记录该用户身份特征的区块链,可信节点首先为用户颁发公钥,同时创建创始区块(第一个区块),用于记录用户账号、创建时间等初始信息,接着,可信节点依次将用户用户多形态身份信息记录在一条区块链中,并将用户账号、用户公钥、特征矩阵的根、时间戳、特征矩阵密文和可搜索密文写入创始区块,并且在网络中广播;首次登录用户的不同形态的身份信息即原始身份信息,原始身份信息变换后得到原始身份特征矩阵,原始身份特征矩阵的密文即原始身份特征矩阵密文;

如果用户是已经注册的用户,则已经存在一条记录其身份特征的区块链。服务器基于公钥可搜索加密算法,用自己的私钥和用户身份名称,生成可搜索陷门,并且发送给可信节点,可信节点根据陷门进行检索,若检索不到到包含该新的用户身份名称的区块,则创建一个区块,并且将用户账号、用户公钥、最新的特征矩阵的根、时间戳、最新的特征矩阵密文、和身份名称的可搜索密文写入新的区块中,并且在网络中广播;

否则,可信节点检索到的包含该用户身份名称信息的区块,并将该区块上记录的最新的身份特征矩阵密文返回给服务器,服务器用自己的私钥解密矩阵密文,并且从中提取出用户不同形态的原始身份特征向量:a1、…、am,这里原始的身份特征即用户在第一次登陆时录入的身份特征;

服务器从用户录入的身份信息提取到身份特征向量a′1、…、a′m,服务器根据公开的特征匹配算法match(),分别输入提取到的身份特征向量a′1、…、a′m和原始身份向量a1、…、am,这里m代表不同形态身份的数量,最终计算得到每一个身份特征的比对相似度,每一个身份特征的相似度计算公式如下:

r1=match(a1、a′1)、…、rm=match(am、am);

其中,r1…rm为每一个身份特征的比对相似度。

最终,服务器就公开的特征匹配算法,将用户和解密后的可信节点发回的身份特征进行比对,并计算得到匹配相似度:

r=ω1r1+…+ωnrn,

其中,ω1,…,ωn代表相应身份特征的权值占比(ω1,…,ωn根据公开参数进行设定),服务器将r与相似度阈值v比较,若r>v,则认证成功,授权登录,否则,返回失败标识符并结束。

我们通过多形态身份的融合认证方法、区块链技术和公钥加密算法,设计了一套完整的体制,来实现安全、高效、方便和可靠的用户身份认证。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何属于本领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1