logo资料库

基于区块链的身份信息共享认证方案.pdf

第1页 / 共11页
第2页 / 共11页
第3页 / 共11页
第4页 / 共11页
第5页 / 共11页
第6页 / 共11页
第7页 / 共11页
第8页 / 共11页
资料共11页,剩余部分请下载后查看
密码学报 Journal of Cryptologic Research ISSN 2095-7025,CN 10-1195/TN 《密码学报》网络首发论文 题目: 作者: 网络首发日期: 2020-05-22 引用格式: 基于区块链的身份信息共享认证方案 刘建伟,黑一鸣,管晔玮 刘建伟,黑一鸣,管晔玮.基于区块链的身份信息共享认证方案.密码学报. http://kns.cnki.net/kcms/detail/10.1195.TN.20200521.1745.019.html 网络首发:在编辑部工作流程中,稿件从录用到出版要经历录用定稿、排版定稿、整期汇编定稿等阶 段。录用定稿指内容已经确定,且通过同行评议、主编终审同意刊用的稿件。排版定稿指录用定稿按照期 刊特定版式(包括网络呈现版式)排版后的稿件,可暂不确定出版年、卷、期和页码。整期汇编定稿指出 版年、卷、期、页码均已确定的印刷或数字出版的整期汇编稿件。录用定稿网络首发稿件内容必须符合《出 版管理条例》和《期刊出版管理规定》的有关规定;学术研究成果具有创新性、科学性和先进性,符合编 辑部对刊文的录用要求,不存在学术不端行为及其他侵权行为;稿件内容应基本符合国家有关书刊编辑、 出版的技术标准,正确使用和统一规范语言文字、符号、数字、外文字母、法定计量单位及地图标注等。 为确保录用定稿网络首发的严肃性,录用定稿一经发布,不得修改论文题目、作者、机构名称和学术内容, 只可基于编辑规范进行少量文字的修改。 出版确认:纸质期刊编辑部通过与《中国学术期刊(光盘版)》电子杂志社有限公司签约,在《中国 学术期刊(网络版)》出版传播平台上创办与纸质期刊内容一致的网络版,以单篇或整期出版形式,在印刷 出版之前刊发论文的录用定稿、排版定稿、整期汇编定稿。因为《中国学术期刊(网络版)》是国家新闻出 版广电总局批准的网络连续型出版物(ISSN 2096-4188,CN 11-6037/Z),所以签约期刊的网络版上网络首 发论文视为正式出版。
网络首发时间:2020-05-22 11:42:42 网络首发地址:http://kns.cnki.net/kcms/detail/10.1195.TN.20200521.1745.019.html 基于区块链的身份信息共享认证方案 刘建伟 1) 黑一鸣 1) 管晔玮 1) 1)(北京航空航天大学 网络空间安全学院, 北京市 100191) 摘 要 在互联网时代, 各行业机构为便于用户管理服务,常常需要获取并认证用户的身份信息。目前,由于各行业机构 相互独立且为了保证身份认证效率,他们要各自获取和保存用户的身份信息。一方面,用户需要执行冗余的注册操作;另一 方面,一些行业机构可能会窃取其需求之外的用户身份信息。此外,一旦某机构安全防护措施不到位,将可能导致用户隐私 泄露。针对上述问题,本文利用区块链的共识机制及其公开透明等特点,结合属性基加密作为数据访问控制策略,提出一种 身份信息共享认证的方案。本方案基于区块链的智能合约技术实现身份信息共享及更新方案,减少了身份信息的冗余注册操 作。本方案采用属性基加密技术,由可信注册机构规定各行业机构的身份信息访问权限,防止用户不必要的隐私暴露。本方 案基于区块链的分布式存储特点,并要求身份信息注册标准化,提高了身份信息存储的安全性。实验测试的结果表明本方案 具有可行性。 关键词 身份信息共享 区块链 属性基加密 认证 中图法分类号 TN918.8 DOI 号: Blockchain-based Identity Information Sharing Authentication Scheme LIU Jianwei 1) HEI Yiming1) GUAN Yewei1) 1)(School of Cyber Science and Technology, Beihang University, Beijing 100191,China) Abstract In the Internet era, in order to facilitate user’s management services, various organizations need to obtain and authenticate user's identity information. Currently, each industry organization is independent. They have to get and save the user's identity information individually to ensure the efficiency of identity authentication which leads to many issues. On the one hand, Users are bound to register their information repeatedly. On the other hand, some organizations may steal users’ identity information beyond their needs. In addition, once the security measures of an organization are not in place, it may lead to the leakage of users’ privacy. In view of the above problems, our article proposes a new identity information sharing authentication scheme which combines with open blockchain and attribute-based encryption. Based on smart contract of blockchain, our scheme can reduce redundant registration of identity information, which makes registration more efficient. Using attribute- based encryption, this paper requires trusted registry providing authorities for accessing identity information of various industry institutions to protect users’ privacy. Our scheme which is based on the blockchain's feature of distributed storage, requires standardizing the process of registering identity information, improving the security of identity information storage. The experimental results show that the scheme is feasible. Key words Identity Sharing Blockchain Attribute-Based Encryption Authentication ——————————————— 基金项目:国家重点研发计划资助 (2017YFB1400700) . 刘建伟,男,1964 年生,博士,教授,主要研究领域为网络与信息安全、通信网络安全、密码学、信道编码技术等. E-mail: liujianwei@buaa.edu.cn. 黑一鸣,男,1994 年生,硕士,主要研究领域为区块链应用,智能合约. E-mail: black@buaa.edu.cn 管晔玮,男,1999 年生,本科。主要研究领域为属性基加密。E-mail: Ame_ReIori@buaa.edu.cn
1 引言 在当今时代,各行业机构为方便用户管理和 服务都需要获取并认证用户的身份信息。目前大 多数认证方案都是为了保障认证的效率和准确率 [1][2],而忽视了身份信息的隐私性和安全性。从用 户隐私角度来看,用户并不清楚身份信息获取者 的实际需求,一旦信息获取者超越其访问权限, 非法获取用户额外的身份信息,则用户个人隐私 难以受到保护。从便捷性角度来看,用户每到一 个新场景下都要重新注册并认证身份信息,这导 致用户很多冗余操作,且工作效率不高。从数据 安全角度来看,用户身份数据是是分布在各机构 服务器上的,由于他们的存储安全性参差不齐, 一旦出现信息泄漏或个别服务器故障,后果非常 严重。 综合来看,可控权限的安全身份信息共享认 证问题亟待解决。 2005 年,Sahai 和 Waters 为了解决上述的身份 信息隐私性和安全性的问题,在身份基加密方案[3] 的基础上提出了属性基加密方案[4]。该方案较好地 解决了用户隐私信息保护问题,并且可以实现细 粒度的访问控制。 2008 年,中本聪提出比特币网络[5],区块链技 术正式进入人们视野,区块链中比较有代表性的技 术是智能合约技术[6]。智能合约是一种允许在没有 第三方参与的情况下, 以代码方式形成、验证或执 行合同的计算机协议[7]。其透明化和程序化的特点 适合于完成数据存储、数据访问和数据更新操作。 目前最主流的智能合约系统是以太坊[8]。 1.1 本文贡献 第一,本方案基于属性基加密技术,由可信 注册机构设置各行业机构的身份信息访问权限, 防止用户不必要的隐私暴露。 第二,本文使用区块链的智能合约技术实现 身份信息共享和更新,避免了身份信息多次重复 注册填写,方便了信息共享及身份认证工作。 第三,本方案使得身份信息注册标准化,基 于区块链的分布式存储结构,相对普通中心化存 储服务器模型的鲁棒性更高。 第四,本方案在自行搭建的以太坊私链上进 行了性能测试工作,实验结果表明了本方案具有 可行性。 1.2 相关研究工作 1997 年,Szabo[6]提出了智能合约的概念,他 指出计算机代码可以替代机械设备进行复杂交易 的处理,但当时缺乏可信的运行环境,并没有得到 重视。直到区块链技术的流行才推动了它的发展。 目前智能合约技术已经应用到了很多方面,其中包 括商品拍卖交易[9]、共享经济[10]和商品交易[11]等。 尽管如此,智能合约仍处于较为初级的阶段,存在 着很多问题。首先,智能合约的开发需要一定的编 程能力,没有相关学习背景的用户难以参与合约编 写和审计。另外,智能合约还存在异常处理脆弱[11]、 数据来源不可靠[12]、隐私易泄露[9][13]等安全隐患。 针对智能合约开发壁垒问题,现有比较好的解决方 案有半自动合约开发[14]和形式化验证。针对智能合 约的安全性问题,可使用 OYENTE[12]和 Hawk[9]工 具进行检测。 2001 年 , Boneh[3] 提 出 了 身 份 基 加 密 (IBE, Identity-based Encryption)。Nico Döttling 和 Sanjam Garg[14]于 2017 年提出了变色龙加密方案,利用变 色龙哈希函数压缩公钥,提高了 IBE 的效率。该类 加密方案以用户身份作为公钥,其存在用户隐私暴 露等安全问题。Sahai 和 Waters 为解决 IBE 存在的 问题,提出了属性基加密[4]的方案。在该方案中, 用户不需要公开自己所有的身份信息,确保了用户 信息的隐私性和安全性。另外,解密者需要满足属 性条件才能正确解密,确保了数据的保密性。2006 年,Goyal 等人[16]提出了密钥策略属性基加密方案 (KP-ABE)。将用户的密钥与系统的访问控制策略相 联系,密文与用户的属性集相联系。2016 年, Wang[17]等人对 KP-ABE 中的密钥生成过程和解密 过程进行了优化,用访问受限树来描述访问策略, 给 出 了 一 种 密 钥 生 成 效 率 高 , 解 密 成 本 低 的 KP-ABE 方案。但该类方案中,用户对数据的访问 控制能力较弱。2007 年,Bethencourt 等人[18]提出 密文策略属性基加密方案(CP-ABE)。与 KP-ABE 相 反,该方案将密文与系统的访问控制策略相联系, 密钥与用户的属性集相联系。后来 Goyal 等人[19] 给出了 CP-ABE 的安全性证明并改进了该方案,使 其支持更高级的访问结构。Liang 等人[20]改进了 Goyal 等人的方案,给出了更快的加解密算法且其 生成的密文长度更短。然而,这些方案的密文长度 均取决于属性集的大小。Zhou 和 Huang[21]提出的方 案不仅能获得固定长度的密文,访问结构也不会呈 指数增加。上述的方案中,密文总是和显式的访问
结构绑定发送,这样会泄露访问控制结构中的敏感 信息。2012 年,Lai[22]提出了一种能够部分隐藏访 问结构的 CP-ABE 方案,并在完全安全模型下证明 了该方案的安全性。2013 年,Hur[23]对此提出了新 的方案,该方案对访问策略进行盲化处理,保护了 访问策略,该方案在通用群模型下被证明是安全 的。2017 年,Qiu 等人[24]针对基于属性的可检索加 密方案,提出了访问策略保护方案,使用非对称双 线性映射实现了访问策略的隐藏,能够抵抗关键字 猜测攻击。随着访问策略控制算法的逐渐成熟,密 钥滥用成为一个新的亟待解决的问题。密钥滥用包 括非法密钥共享和密钥滥发两种情况。其中非法密 钥分享指的是用户故意泄露自己的属性密钥信息; 非法密钥分发指的是属性中心滥发属性密钥。在当 前的 ABE 方案中,属性中心分配给用户的私钥往 往仅和用户属性有关,而不包含用户的独有特征信 息,导致密钥滥用现象相当普遍,这对 ABE 方案 的安全性和可靠性造成了严重的威胁。Zhang 等人 [25]给出了一个能实现黑盒追溯的 CP-ABE 方案,该 方案不仅支持灵活且细粒度的用户属性撤销操作 且能快速追溯泄露属性密钥的恶意用户。2017 年, Yu 等人[26]介绍了一种可问责 CP-ABE 方案。该方 案将用户身份嵌入到属性密钥中,支持第三方公开 追溯泄露密钥者的身份且能准确判断是恶意用户 还是属性中心需要对泄露的密钥负责。2018 年, Jiang[27]提出一个结合了秘密分享技术的 ABE 方 案,在实现追踪泄露密钥用户的同时解决了属性密 钥的滥发的问题。在现实生活中,用户的属性密钥 往往是由多个属性中心进行管理的。为了契合实际 应用的场景,2007 年,Chase[28]实现了多属性授权 中心的 ABE 方案:用户的密钥由多个授权中心分 配,单个或少数中心非法的密钥分发行为无法影响 整个系统的安全性,在一定程度上增强了系统的鲁 棒性。但其存在两个问题,一是方案中存在一个中 央授权机构,其行为不可控(可能是恶意的)。二 是该方案仅支持有限集合的属性,不利于权限的扩 展。方案[29]展示了一个无中央授权机构的 ABE 架 构。在该方案中,所有的属性中心都彼此独立地为 用户发放各自管理的属性密钥。针对第二个问题, Yang 等人[30]利用合数阶双线性群,提出了一种支持 权限扩展的多授权中心 ABE 方案,并利用双系统 加密方法证明该方案是安全的。 2 背景知识 2.1 符号定义 表 1 符号定义 符号 User Registrant Center Certificate Tvalid Property 含义 未注册信息者 信息注册完成者 注册域中心节点 注册域节点证书 身份有效期限 属性基加密后的密文 2.2 以太坊 当前支持智能合约的主流区块链系统有以太 坊、codius 和 hyperledger 等。以太坊是其中最为活 跃的公有链系统,它提供了去中心化的以太坊虚拟 机来处理智能合约,具有图灵完备性。执行以太坊 合约中的函数需要消耗一定的交易费用 gas。 以太坊上智能合约的运行原理如图 1 所示。首 先,以太坊客户端发送调用合约函数的指令给以太 坊节点;然后,以太坊节点将该指令输入其本地以 太坊虚拟机,按合约规则执行指令并返回结果;最 后,以太坊节点互相对比验证运算结果,根据系统 共识机制将结果记录到链上。 图 1 以太坊智能合约运行原理 2.3 属性基加密 属性基加密方案的主要思路是:用户利用某 特定属性集进行加密。解密时,只有解密者的属 以太坊客户端合约接口以太坊节点以太坊节点以太坊节点本地虚拟机结果本地虚拟机本地虚拟机以太坊区块链函数调用指令合约参数合约参数合约参数结果结果对比验证对比验证发布发布发布
性集合满足一定条件才能正确解密密文。基本描 述如下: 1) :该算法由授权机 构执行,输入安全参数 ,输出系统公钥 及主私钥 。 以 2) : 该 算 法 由 授 权 机 构 执 行 , 输 入 系 统 公 钥 、 主 私 钥 , 用 户 属 性 集 合 , 生 成 该 用 户 的 私 钥 。 3) :该算法由发 送方执行,利用系统公钥 、属性集 对消息 进行加密,生成密文 。 4) : 该 算 法 由 消 息接收方执行,利用系统公钥 、私钥 解密 ,生成明文消息 。 属 性 基 加 密 方 案 可 分 为 两 类 : KP-ABE 和 CP-ABE。它们均是在上述基本方案的基础上做了 一些改进。本系统为保证发送者对信息的访问控 制能力,将使用 CP-ABE 方案。在 CP-ABE 方案 中,发送方可以用自己定义的访问控制结构 代 替基本加密过程中的属性集 ,用户私钥仍旧通 过属性集 进行生成。在这个设定下,解密方只 有满足了访问结构才能正确解密。其工作流程如 图 2 所示。 类的,例如医院域是所有医疗节点的集合,警局 域是所有公安局节点的集合。而从宏观上来看, 独立域又可以被分为注册域和查询域两大类。注 册域是可以进行 User 身份信息注册和身份信息更 新的节点组成的域。注册域中有一个权限最高的可 信域--Center (如公安域)。注册域的其余节点都要在 Center 进行注册,并由 Center 颁发数字证书;查询 域是可以进行身份信息查询的节点所组成的域, 本方案中的所有独立域都属于查询域。 图 3 身份信息共享认证系统架构 3.2 区块链构造 区块链:方案中的区块链结构参照以太坊系 统。在区块中以智能合约作为交易的形式来记录 注册的身份信息。 智能合约:我们将方案中的合约命名为身份 注册合约,合约的结构如图 4。其功能是记录注册 的身份信息,并支持查询域中节点的查询及注册 域节点的更新。 图 2 CP-ABE 方案工作流程 3 方案构造 3.1 系统架构 本文方案的身份信息共享认证系统是由多个 分布式职能域包含的节点组成的区块链网络。系 统在逻辑上的架构如图 3 所示。 本方案中的职能域是根据机构的职能进行分 图 4 身份注册合约结构 (,)()PKMKSetupddPKMK(,,)SKKeyGenPKMKWPKMKWSK(,',)CTEncryptPKWMPK'WMCT(,,)MDecryptPKSKCTPKSKCTMA'WW授权机构1) Setup(d): PK, MK2) KeyGen(PK,MK,W): SK发送方3) Encrypt(PK,A,M): CTPK接收方4) Decrypt(PK,SK,CT): MWPK、SKCTW是否满足A?解密成功解密失败是否职能域1职能域2注册域User身份注册属性授权中心Center变量区CertificateTvalidgetInfo()getProperty()setStruct()PropertyListSig(Tvaild)Struct全局变量VaildRegistrars(address bool)UsersMap(address struct)函数区add()注册域函数查询域函数
本文的身份注册合约可分为变量区和函数区 3: if( VaildRegistrars [S]==true ) then 两部分。 变 量 区 包 括 : 1. 全 局 变 量 。 包 含 映 射 结 构 VaildRegistrars(地址到布尔类型的映射,用于标识 合法的注册域用户)和 UsersMap(地址到用户数据 结构 Struct 的映射)。2.与用户数据相关的 Struct 结 构:Certificate 为采用 Base64 标准编码的数字证 书字符串,这里的数字证书归属于对应用户的注册 域节点;Tvalid 为 Unix 时戳,代表注册用户的身份 有效期;Sig(Tvalid)为该注册域节点对 Tvalid 的签名; PropertyList 为属性基加密后的用户身份信息集合 (以字符串形式存在),其包含了用户不同的加密身 份信息。 函数区包括:1.注册域节点执行的注册函数, 有 add()和 setStruct()两个函数。add()只能由 Center 调用,输入一个注册域节点的地址来实现链上注册 (即令该注册域节点的地址在 VaildRegistrars 映射 结果为 true)。setStruct()只能由完成链上注册的注 册域节点调用,函数的输入为用户链上地址,用户 的 Struct 信息,其目的是实现用户身份数据的更新。 2.查询域节点执行的查询函数。包括获取注册特定 用户身份的注册域节点信息的 getInfo()和获得特定 用户加密身份信息的 getProperty()。 函数的具体细节如下: 函数 1 add() Input: a registered node ’s address R.add Output: NULL 1: BEGIN 2: S=msg.sender 3: if(S==Center.address) then 4: VaildRegistrars [R.add]=true 5: END 函数 2 setStruct() Input: a user’s address U.add, a property list Pro, a digital certificate Certificate , a timer Tvalid , a digital signature Sig(Tvalid) Output: a Flag 1: BEGIN 2: S=msg.sender 4: UsersMap[U.add)].PropertyList= Pro 5: UsersMap[U.add].Certificate = Certificate 6: UsersMap[U.add].Tvalid = Tvalid 7: UsersMap[U.add]. Sig(Tvalid)= Sig(Tvalid) 5: Flag=true 6: else 7: Flag=false 8: return Flag 9: END 函数 3 getInfo() Input: a user’s address U.add Output: Certificate、Tvalid、Sig(Tvalid) 1: BEGIN 2: return (UsersMap(U.add).Certificate, UsersMap(U.add).Tvalid, UsersMap(U.add).Sig(Tvalid)) 3: END 函数 4 getProperty() Input: a user’s address U.add Output: a PropertyList 1: BEGIN 2: return (UsersMap(U.add). PropertyList) 3: END 节点:方案中的所有节点均为记账节点,由 独立域中所有节点的服务器充当,主要负责维护 区块链账本。记账节点采用 POW 共识机制,将身 份注册合约打包并记录在区块内,以获取一定收 益。查询域中的节点可以访问合约中的数据,而 只有注册域中的节点才可以发布和更新身份注册 合约。 3.3 身份信息共享认证方案 本文的方案分为身份注册合约发布、身份信息 注册、身份信息查询认证和身份信息更新 4 个部 分。身份注册合约发布是 Center 节点根据注册域节 点的信息部署或更新身份注册合约的过程。身份信 息注册是 User 通过注册域的节点将身份信息注册
到区块链上成为 Registrant 的过程。身份信息查询 认证即需要获取身份信息的节点根据 Registrant 给 出 的 地 址 信 息 到 链 上 查 询 , 并 将 查 询 结 果 与 Registrant 给出的信息对比验证的过程。身份信息 更新即注册域中的节点更新 Registrant 身份信息的 过程。 3.3.1 身份注册合约发布 1) 获取 Registrant 在链上的地址。 (i) 查 询 者 请 求 查 询 Registrant 身 份 信 息 , Registrar 给出其在区块链上的地址。 2) 查询者获取 Registrant 的身份信息。 (ii) 查询者根据 Registrant 的地址调用 getInfo() 获取相应注册域节点的证书 Certificate、有效期限 Tvalid 、期限签名 Sig(Tvalid)。 1) 注册域节点信息注册。节点到 Center 申请 (iii) 查 询 者 通 过 证 书 信 息 验 证 注 册 节 点 身 成为注册节点,Center 记录所有注册节点。 份。验证通过后再验证对期限签名的有效性。 2) 身份注册合约部署。Center 发布身份注册合 约,由记账节点打包部署到区块链上。 3) 链上注册。Center 调用 add 函数添加合法的 注册域节点到 VaildRegistrars 结构中。 3.3.2 身份信息注册 身份注册总体流程如图 5 所示。 1) 信息填写。 (i) User 在注册域节点填报详细的身份信息, (iv) 若步骤(iii)验证通过,则证明 Registrant 身 份有效。查询者调用合约中的 getProperty()方法来 获取属性基加密后的身份信息集合。若验证不通 过,则认定 Registrant 身份无效,结束查询。 3) 查询者向属性密钥授权中心提供自己的属 性集合。授权中心计算出该属性集合对应的解密密 钥,并返回给查询者。获取到该解密密钥后,可 将其存储在查询者本地以提高之后的查询效率。 包括个人信息、家庭信息及生物认证信息等。 4) 查询者对其获取的加密身份信息挨个进行 2) 属性基加密身份信息。 (ii) 注册域节点根据身份信息分类标准(以个 人信息、家庭信息和生物认证信息分类为例),将 注册者身份信息分类。 (iii) 注册域节点根据信息的分类情况采用不 同的访问控制结构对信息进行属性基加密。这里 为保证加解密效率,并压缩存储空间,将采用混 合加密的手段加密。即使用属性基加密手段加密 一个 AES 加密密钥,并用 AES 算法加密各分类信 息。最后将两部分拼接作为本次加密结果。 3) 发布身份注册信息。 (iv) 注册域节点调用 setStruct()将属性基加密 后的信息发布到身份注册合约中。 图 5 身份注册流程图 3.3.3 身份信息查询认证 身份信息查询适应的场景是区块链中的任意 节点想查询或核实某 Registrant 身份信息。 解密运算,获得其可以访问到的数据。 5) 查询者将访问到的数据与 Registrant 给出的 数据做比对,以认证注册者身份。 3.3.4 身份信息更新 身份信息更新操作适应的场景是某注册完成 人的身份信息发生改变或者注册信息过期。 1) 注册域的节点重新采集 Registrant 身份信 息。 2) 注册域节点对更新后的数据重新分类并进 行属性基加密操作。 3) 注册域节点调用合约的 setStruct()方法,传 入待更新目标用户的地址和该用户的 Struct 信息。 4) 矿工先根据 VaildRegistrars 结构核实函数调 用 者 身 份 , 若 调 用 者 为 注 册 域 节 点 , 则 根 据 setStruct()方法传入的参数进行更新。否则,不执 行更新操作。 4 性能分析 本实验对方案中的身份注册合约进行实际测 试。本方案的实验硬件环境为 Intel(R) Core(TM) i5-8300H CPU @ 2.3GHz,RAM 为 8 GB。本方案的 实 验 软 件 环 境 为 geth-windows-amd64-1.8.8 和 Ethereum-Wallet-win64-0-11-1。基于以太坊搭建私 有链,设定困难为值为 0x20000(综合权衡效率和 分叉情况,该困难值设置合理)。 注册节点注册域a.---------b.---------c.---------d.---------User1).信息填写a'.--------b'.--------c'.--------d'.--------2).属性基加密3).发布身份注册信息身份注册合约变量区PropertyAa'.--------PropertyBb'.--------PropertyCc'.--------d'.--------函数区
信息采集:为满足实验测试的需求,本方案 采集数据包括三种类型:个人信息,家庭信息及 生物特征信息。其中个人信息包含姓名,性别, 身份证号,学历。家庭信息包括家庭成员信息, 家庭住址,籍贯。生物特征信息包括人脸特征和 指纹特征。 本实验采用目前常用的基于深度学习的 resnet 算法[31]提取用户人脸信息。我们采用 1204 维度的 特征提取参数,并以 32 位浮点数进行保存,获得 的人脸图像的特征结果大小为 4KB。本实验基于 指 纹 特 征 提 取 算 法 [32] , 可 在 保 证 认 假 率 小 于 0.0001% 且拒真率小于 0.75% 的前提下,获得指 纹特征大小为 512B。我们设定个人信息数据量大 小为 400B,家庭信息数据大小为 600B.综合所有个 人身份信息,总的单样本数据量大小约为 5.5KB。 合约测试实验:本实验利用 solidity 实现了文 中的身份注册合约,并在搭建的私链上完成了测 试。我们测试了部署身份注册合约和执行合约中各 函数的 gas 花费以评估本文方案经济性。在测试实 际花费时,我们选择了 3Gwei(每 gas 对应 3Gwei 以太币)和 6Gwei(每 gas 对应 6Gwei 以太币)两 种汇率,并将实际花费最终统一换算为美元表示。 测试的结果如表 2 所示。由测试结果可以看出, 合约的部署花费以及执行 add、getInfo、getProperty 等函数的花费较低,其中 getInfo、getProperty 这两 个 查 询 函 数 的 调 用 不 需 要 额 外 花 费 。 而 由 于 setStruct 函数在调用时需要传入较大的数据量,所 以经济性上相对较差。 为减少调用 setStruct 函数时的花费,本文也支 持一种均衡的方案:只向合约中传输一个存放了特 定用户 Struct 信息的链接及该信息的哈希值,而把 实际的信息放到链下存储。采用该方案的 gas 消耗 仅为 88605。但是此均衡方案需要执行重定向和数 据完整验证操作,所以在效率方面稍显不足。 表 2 不同算法性能比较 函数名称 gas 花费 实际花费(3Gwei) 实际花费(6Gwei) Deploy 666815 0.346$ add 43480 0.023$ setStruct 3981425 2.126$ getInfo getProperty 0 0 0$ 0$ 0.692$ 0.046$ 4.252$ 0$ 0$ 效率测试实验:本实验将比较普通加密存取 和属性基加密结合区块链两类方案,以评估方案的 效率情况。第一类方案即方案一:采用 AES 加解 密明文身份信息,并基于数据库进行存取对比操 作;第二类方案基于区块链系统采用 CP-ABE 和 AES 结合的混合加解密方式,即利用 CP-ABE 加 (解)密 AES 密钥,并利用该密钥对明文数据进行 AES 加(解)密。其包含两个具体方案,它们的密 文大小和数据加解密时间不同。方案二:加密手 段采用文献[33]中的方案结合 AES,数据存储查询 基于区块链的智能合约。方案三:数据存储查询 与方案二相同,解密手段采用文献[34]的方案结合 AES。 下 面 对 各 个 方 案 的 加 解 密 算 法 性 能 进 行 比 较。其中,明文数据大小均为 5.5KB,属性基加密 的系统属性集大小为 20,用户属性集大小为 20, 策略属性集大小为 5。 表 3 不同算法性能比较 序号 使用算法 密文大小 加密 解密 时间 时间 方案一 AES 5.5 KB 10 ms 10 ms 方案二 Ref[32]+AES 7 KB 23 ms 60 ms 方案三 Ref[33]+AES 6.66 KB 26 ms 32 ms 结合表 3 中的结果,我们进行了各方案的整体 信息存储(包括数据加密和存储过程)与查询(包 括信息查询和解密过程)测试。测试结果如图 6 和 图 7 所示。 图 6 身份信息存储用时
分享到:
收藏