本发明涉及区块链隐私保护的技术领域,具体涉及一种基于环签名和代理重加密的区块链隐私保护方法和系统。
背景技术:
区块链在本质上就是一个去中心化防篡改的分布式数据库,通过密码学等技术实现各个环节的安全性。区块链具有去中心化、防篡改、匿名性、公开可验证性等特点,是比特币、以太坊等数字加密货币的核心技术,通过使用p2p网络、数据加密、时间戳、分布式共识和激励机制等方式,区块链系统中的节点可以完成点对点的交易,从而解决中心化系统存在的高信任、低效率及数据存储不安全等问题。
区块链优质的技术特点使其广泛应用于各数字加密货币以外的其它领域。在金融领域,各国中央银行高度重视区块链技术,通过借鉴研究或直接应用来设计各自的法定数字货币,通过区块链技术改善传统金融系统中对账清算时间长、跨境结算效率低、中心账本数据维护成本高等问题。在物联网领域,利用区块链技术的点对点交易、智能验证等特点,实现物联网设备间不同类型的交易。在知识产权领域,利用区块链的时间戳、数据难以篡改和难以伪造特性,实现数据存证、著作产权保护、作品鉴定等功能。此外,供应链、司法、信息认证等领域也逐渐应用区块链技术改善现存行业问题。
随着研究的深入,区块链展现出蓬勃生命力的同时,自身的安全性问题逐渐显露。在区块链的系统中,因为没有中心化的机构去处理和维护数据,所以,为了各个节点快速地达成共识,系统中所有交易均是公开透明的,从而带来了数据隐私泄露问题。2016年6月17日,通过众筹得到的超过1.5亿美元分布式自治组织thedao中的1/3的以太币被黑客偷取,导致了项目的失败。2017年12月18日,朝鲜黑客攻击了韩国的加密货币交易所,导致当时价值76亿韩元(约合669万美元)的加密货币被盗,并且造成了大量用户隐私泄漏。区块链的公开透明特性使用户可以获取所有交易信息及物资供应信息,包括金额、合约内容等,从而对个人安全和国家安全造成威胁。
在隐私保护领域,加密技术是研究人员最常使用的解决方案。因此,在使用区块链技术的同时,如何使用加密技术为区块链隐私问题提供良好的解决方案,从而保证用户的信息安全,是目前业界亟待解决的问题。
技术实现要素:
以下给出一个或多个方面的简要概述以提供对这些方面的基本理解。此概述不是所有构想到的方面的详尽综览,并且既非旨在指认出所有方面的关键性或决定性要素亦非试图界定任何或所有方面的范围。其唯一的目的是要以简化形式给出一个或多个方面的一些概念以为稍后给出的更加详细的描述之序。
本发明的目的在于解决上述问题,提供了一种基于环签名和代理重加密的区块链隐私保护方法和系统,解决了当前区块链技术在使用过程中涉及的用户隐私泄露问题,在实现区块链用户隐私保护的同时,实现交易发送者对交易内容的密文控制,防止攻击者分析出交易双方地址的关系,可用于当前区块链系统中实现加密数据的细粒度共享。
本发明的技术方案为:本发明揭示了一种基于环签名和代理重加密的区块链隐私保护方法,方法包括:
步骤一:选定系统安全参数,并将安全参数向所有用户进行广播;
步骤二:交易发送方获取交易接收方的公钥,然后通过重加密算法生成重加密密钥rki→j;
步骤三:交易发送方选择若干用户的公钥,生成环签名σ,然后通过加密算法加密交易明文m,生成第一层密文ci,再将第一层密文ci和重加密密钥rki→j发送给代理节点;
步骤四:代理节点首先验证环签名,若不满足要求则交易发起失败,否则,通过重加密密钥rki→j将第一层密文ci转换成第二层密文cj,同时对第二层密文cj进行签名后发送给交易接收方;
步骤五:交易接收方通过自己的私钥对第二层密文cj进行解密,若不同意则交易失败,否则,完成交易,并将交易结果发送给矿工节点;
步骤六:矿工节点验证交易有效性后将交易打包存入区块中,再通过挖矿将区块上链。
根据本发明的基于环签名和代理重加密的区块链隐私保护方法的一实施例,在步骤一中,所要设定的系统安全参数为:
明文空间为
根据本发明的基于环签名和代理重加密的区块链隐私保护方法的一实施例,步骤二包括:
区块链系统里的用户ui(1≤i≤n)随机选择
交易发送方ui获取交易接收方uj的公钥pkj,生成重加密密钥
根据本发明的基于环签名和代理重加密的区块链隐私保护方法的一实施例,步骤三包括:
(1)区块链的特定用户即指定的交易发送方um(i=m),选择节点的信用行为可信度相似的用户为环成员,其中信用行为可信度公式为:
其中,wi表示节点i所有的操作行为,其中bi表示节点i所有的违规操作行为,其中ri表示节点i所有的举报操作行为;
(2)交易发送方um对交易明文tx={0,1}*进行签名,
其中tx=h(tx)∈g1,h为一个目标防碰撞的散列函数,h:{0,1}*→g1,ψ:g1→g2为同构映射,并且有ψ(g)=g2,{0,1}*表示任意长度的0、1字符串,zp是乘法群;
发送方根据安全参数和交易发送方的公钥,进行哈希函数以及双线性对运算,随机选择r∈zp,
其中:g1、g2为2个阶数为p的乘法有限循环群,p为素数,g,h,u,v是g1的生成元,g2是g2的生成元,e:g1×g1→g2为一个双线性配对映射,h:{0,1}*→g1为一个目标防碰撞的散列函数,e(g,g)表示双线性运算,||表示级联操作。
根据本发明的基于环签名和代理重加密的区块链隐私保护方法的一实施例,步骤四进一步包括:
代理节点通过验证
1)首先验证
2)计算c2′=e(c2,rki→j)=e(pkj,g)r并输出针对公钥pkj的第二层密文cj=(c1′,c2′,c3′,c4′,c5′,c′6,σ),其中,c1′=c1,c2′=e(pkj,g)r,c3′=c3,
c4′=c4,c5′=c5,c6′=c6。
根据本发明的基于环签名和代理重加密的区块链隐私保护方法的一实施例,步骤五进一步包括:
1)验证
2)计算
3)解析tx‘为(tx||r1),tx为k0bit,r1为(k-k0)bit;
4)验证c6=h1(tx||r1)是否成立,如果不成立,输出错误的符号⊥,否则输出tx。
本发明还揭示了一种基于环签名和代理重加密的区块链隐私保护系统,系统包括:
安全参数广播模块,选定系统安全参数,并将安全参数向所有用户进行广播;
重加密密钥生成模块,交易发送方获取交易接收方的公钥,然后通过重加密算法生成重加密密钥rki→j;
第一层密文发送模块,交易发送方选择若干用户的公钥,生成环签名σ,然后通过加密算法加密交易明文m,生成第一层密文ci,再将第一层密文ci和重加密密钥rki→j发送给代理节点;
第二层密文发送模块,代理节点首先验证环签名,若不满足要求则交易发起失败,否则,通过重加密密钥rki→j将第一层密文ci转换成第二层密文cj,同时对第二层密文cj进行签名后发送给交易接收方;
解密模块,交易接收方通过自己的私钥对第二层密文cj进行解密,若不同意则交易失败,否则,完成交易,并将交易结果发送给矿工节点;
区块上链模块,矿工节点验证交易有效性后将交易打包存入区块中,再通过挖矿将区块上链。
根据本发明的基于环签名和代理重加密的区块链隐私保护系统的一实施例,安全参数广播模块中所要设定的系统安全参数为:
明文空间为
根据本发明的基于环签名和代理重加密的区块链隐私保护系统的一实施例,重加密密钥生成模块进一步配置为:
区块链系统里的用户ui(1≤i≤n)随机选择
交易发送方ui获取交易接收方uj的公钥pkj,生成重加密密钥
根据本发明的基于环签名和代理重加密的区块链隐私保护系统的一实施例,第一层密文发送模块进一步配置为:
(1)区块链的特定用户即指定的交易发送方um(i=m),选择节点的信用行为可信度相似的用户为环成员,其中信用行为可信度公式为:
其中,wi表示节点i所有的操作行为,其中bi表示节点i所有的违规操作行为,其中ri表示节点i所有的举报操作行为;
(2)交易发送方um对交易明文tx={0,1}*进行签名,
其中tx=h(tx)∈g1,h为一个目标防碰撞的散列函数,h:{0,1}*→g1,ψ:g1→g2为同构映射,并且有ψ(g)=g2,{0,1}*表示任意长度的0、1字符串,zp是乘法群;
发送方根据安全参数和交易发送方的公钥,进行哈希函数以及双线性对运算,随机选择r∈zp,
其中:g1、g2为2个阶数为p的乘法有限循环群,p为素数,g,h,u,v是g1的生成元,g2是g2的生成元,e:g1×g1→g2为一个双线性配对映射,h:{0,1}*→g1为一个目标防碰撞的散列函数,e(g,g)表示双线性运算,||表示级联操作。
根据本发明的基于环签名和代理重加密的区块链隐私保护系统的一实施例,第二层密文发送模块进一步配置为:
代理节点通过验证
1)首先验证
2)计算c2′=e(c2,rki→j)=e(pkj,g)r并输出针对公钥pkj的第二层密文cj=(c1′,c2′,c3′,c4′,c5′,c′6,σ),其中,c1′=c1,c2′=e(pkj,g)r,c3′=c3,
c4′=c4,c5′=c5,c6′=c6。
根据本发明的基于环签名和代理重加密的区块链隐私保护系统的一实施例,解密模块进一步配置为:
1)验证
2)计算
3)解析tx‘为(tx||r1),tx为k0bit,r1为(k-k0)bit;
4)验证c6=h1(tx||r1)是否成立,如果不成立,输出错误的符号⊥,否则输出tx。
本发明对比现有技术有如下的有益效果:本发明的方案中使用代理重加密技术在保护授权者与被授权者之间的交易内容的同时,引入代理节点作为中间方传递交易密文,使得攻击者难以取得交易双方地址的链接性。为了防止中间方节点可以分析出交易双方地址的关系,本发明使用环签名技术,有效地保护了交易发送者的地址信息,避免了中间方节点的作弊行为,从而保护了区块链系统的身份信息与交易信息。相较于现有技术,本发明能够达到选择密文攻击安全,代理重加密密钥完全可以公开,只有交易双方才能解密密文,提高了交易内容的安全性。此外,本发明通过使用环签名技术,使得攻击者无法获取交易双方地址的链接性,即便是代理节点也无法作弊,从中得到交易双方地址的联系,保护了用户地址的隐私安全。另一方面,本发明的重加密过程中只需要一个双线性对运算,相比于复杂的密码学计算效率更高。
附图说明
在结合以下附图阅读本公开的实施例的详细描述之后,能够更好地理解本发明的上述特征和优点。在附图中,各组件不一定是按比例绘制,并且具有类似的相关特性或特征的组件可能具有相同或相近的附图标记。
图1示出了本发明的基于环签名和代理重加密的区块链隐私保护方法的模型图。
图2示出了本发明的基于环签名和代理重加密的区块链隐私保护方法的一实施例的流程图。
图3示出了本发明的基于环签名和代理重加密的区块链隐私保护系统的一实施例的原理图。
具体实施方式
以下结合附图和具体实施例对本发明作详细描述。注意,以下结合附图和具体实施例描述的诸方面仅是示例性的,而不应被理解为对本发明的保护范围进行任何限制。
图1示出了本发明的基于环签名和代理重加密的区块链隐私保护方法的模型,图2示出了本发明的基于环签名和代理重加密的区块链隐私保护方法的一实施例的流程。请同时参见图1和图2,本实施例的区块链隐私保护方法的实施步骤详述如下。
步骤一:选定系统安全参数,并将安全参数向所有用户进行广播。
所要设定的系统安全参数如下:
明文空间为
步骤二:交易发送方获取交易接收方的公钥,然后通过重加密算法生成重加密密钥rki→j。
上述步骤二包括以下具体过程:
1)区块链系统里的用户ui(1≤i≤n)随机选择xi←zp,计算
2)交易发送方ui获取交易接收方uj的公钥pkj,生成重加密密钥
步骤三:交易发送方选择若干用户的公钥,生成环签名σ,然后通过加密算法加密交易明文m,生成第一层密文ci,再将第一层密文ci和重加密密钥rki→j发送给代理节点。
(1)区块链的特定用户即指定的交易发送方um(i=m),选择节点的信用行为可信度相似的用户为环成员,其中信用行为可信度公式为:
其中:wi表示节点i所有的操作行为,其中bi表示节点i所有的违规操作行为,其中ri表示节点i所有的举报操作行为。
(2)交易发送方um对交易明文tx={0,1}*进行签名,
其中tx=h(tx)∈g1,h为一个目标防碰撞的散列函数,h:{0,1}*→g1,ψ:g1→g2为同构映射,并且有ψ(g)=g2,{0,1}*表示任意长度的0、1字符串,zp是乘法群。
发送方根据安全参数和交易发送方的公钥,进行哈希函数以及双线性对运算。随机选择r∈zp,
其中:g1、g2为2个阶数为p的乘法有限循环群,p为素数,g,h,u,v是g1的生成元,g2是g2的生成元,e:g1×g1→g2为一个双线性配对映射,h:{0,1}*→g1为一个目标防碰撞的散列函数,e(g,g)表示双线性运算,||表示级联操作。
步骤四:代理节点首先验证环签名,若不满足要求则交易发起失败,否则,通过重加密密钥rki→j将第一层密文ci转换成第二层密文cj,同时对第二层密文cj进行签名后发送给交易接收方。
代理节点通过验证
1)首先验证
2)计算c2′=e(c2,rki→j)=e(pkj,g)r并输出针对公钥pkj的第2层密文cj=(c1′,c2′,c3′,c4′,c5′,c′6,σ)。其中:c1′=c1,c2′=e(pkj,g)r,c3′=c3,
c4′=c4,c5′=c5,c6′=c6。
步骤五:交易接收方通过自己的私钥对第二层密文cj进行解密,若不同意则交易失败,否则,完成交易,并将交易结果发送给矿工节点。
1)验证
2)计算
3)解析tx‘为(tx||r1),tx为k0bit,r1为(k-k0)bit
4)验证c6=h1(tx||r1)是否成立,如果不成立,输出错误的符号⊥,否则输出tx。
步骤六:矿工节点验证交易有效性后将交易打包存入区块中,再通过挖矿将区块上链。
图3示出了本发明的基于环签名和代理重加密的区块链隐私保护系统的一实施例的原理。请参见图3,本实施例的区块链隐私保护系统包括:安全参数广播模块、重加密密钥生成模块、第一层密文发送模块、第二层密文发送模块、解密模块、区块上链模块。
安全参数广播模块用于选定系统安全参数,并将安全参数向所有用户进行广播。
安全参数广播模块中所要设定的系统安全参数为:
明文空间为
重加密密钥生成模块,用于交易发送方获取交易接收方的公钥,然后通过重加密算法生成重加密密钥rki→j。
重加密密钥生成模块进一步配置为:
区块链系统里的用户ui(1≤i≤n)随机选择xi←zp,计算
交易发送方ui获取交易接收方uj的公钥pkj,生成重加密密钥
第一层密文发送模块,用于交易发送方选择若干用户的公钥,生成环签名σ,然后通过加密算法加密交易明文m,生成第一层密文ci,再将第一层密文ci和重加密密钥rki→j发送给代理节点。
第一层密文发送模块进一步配置为:
(1)区块链的特定用户即指定的交易发送方um(i=m),选择节点的信用行为可信度相似的用户为环成员,其中信用行为可信度公式为:
其中,wi表示节点i所有的操作行为,其中bi表示节点i所有的违规操作行为,其中ri表示节点i所有的举报操作行为;
(2)交易发送方um对交易明文tx={0,1}*进行签名,
其中tx=h(tx)∈g1,h为一个目标防碰撞的散列函数,h:{0,1}*→g1,ψ:g1→g2为同构映射,并且有ψ(g)=g2,{0,1}*表示任意长度的0、1字符串,zp是乘法群;
发送方根据安全参数和交易发送方的公钥,进行哈希函数以及双线性对运算,随机选择r∈zp,
其中:g1、g2为2个阶数为p的乘法有限循环群,p为素数,g,h,u,v是g1的生成元,g2是g2的生成元,e:g1×g1→g2为一个双线性配对映射,h:{0,1}*→g1为一个目标防碰撞的散列函数,e(g,g)表示双线性运算,||表示级联操作。
第二层密文发送模块,用于代理节点首先验证环签名,若不满足要求则交易发起失败,否则,通过重加密密钥rki→j将第一层密文ci转换成第二层密文cj,同时对第二层密文cj进行签名后发送给交易接收方。
第二层密文发送模块进一步配置为:
代理节点通过验证
1)首先验证
2)计算c2′=e(c2,rki→j)=e(pkj,g)r并输出针对公钥pkj的第二层密文cj=(c1′,c2′,c3′,c4′,c5′,c′6,σ),其中,c1′=c1,c2′=e(pkj,g)r,c3′=c3,
c4′=c4,c5′=c5,c6′=c6。
解密模块,用于交易接收方通过自己的私钥对第二层密文cj进行解密,若不同意则交易失败,否则,完成交易,并将交易结果发送给矿工节点。
解密模块进一步配置为:
1)验证
2)计算
3)解析tx‘为(tx||r1),tx为k0bit,r1为(k-k0)bit;
4)验证c6=h1(tx||r1)是否成立,如果不成立,输出错误的符号⊥,否则输出tx。
区块上链模块,用于矿工节点验证交易有效性后将交易打包存入区块中,再通过挖矿将区块上链。
尽管为使解释简单化将上述方法图示并描述为一系列动作,但是应理解并领会,这些方法不受动作的次序所限,因为根据一个或多个实施例,一些动作可按不同次序发生和/或与来自本文中图示和描述或本文中未图示和描述但本领域技术人员可以理解的其他动作并发地发生。
本领域技术人员将进一步领会,结合本文中所公开的实施例来描述的各种解说性逻辑板块、模块、电路、和算法步骤可实现为电子硬件、计算机软件、或这两者的组合。为清楚地解说硬件与软件的这一可互换性,各种解说性组件、框、模块、电路、和步骤在上面是以其功能性的形式作一般化描述的。此类功能性是被实现为硬件还是软件取决于具体应用和施加于整体系统的设计约束。技术人员对于每种特定应用可用不同的方式来实现所描述的功能性,但这样的实现决策不应被解读成导致脱离了本发明的范围。
结合本文所公开的实施例描述的各种解说性逻辑板块、模块、和电路可用通用处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)或其它可编程逻辑器件、分立的门或晶体管逻辑、分立的硬件组件、或其设计成执行本文所描述功能的任何组合来实现或执行。通用处理器可以是微处理器,但在替换方案中,该处理器可以是任何常规的处理器、控制器、微控制器、或状态机。处理器还可以被实现为计算设备的组合,例如dsp与微处理器的组合、多个微处理器、与dsp核心协作的一个或多个微处理器、或任何其他此类配置。
结合本文中公开的实施例描述的方法或算法的步骤可直接在硬件中、在由处理器执行的软件模块中、或在这两者的组合中体现。软件模块可驻留在ram存储器、闪存、rom存储器、eprom存储器、eeprom存储器、寄存器、硬盘、可移动盘、cd-rom、或本领域中所知的任何其他形式的存储介质中。示例性存储介质耦合到处理器以使得该处理器能从/向该存储介质读取和写入信息。在替换方案中,存储介质可以被整合到处理器。处理器和存储介质可驻留在asic中。asic可驻留在用户终端中。在替换方案中,处理器和存储介质可作为分立组件驻留在用户终端中。
在一个或多个示例性实施例中,所描述的功能可在硬件、软件、固件或其任何组合中实现。如果在软件中实现为计算机程序产品,则各功能可以作为一条或更多条指令或代码存储在计算机可读介质上或藉其进行传送。计算机可读介质包括计算机存储介质和通信介质两者,其包括促成计算机程序从一地向另一地转移的任何介质。存储介质可以是能被计算机访问的任何可用介质。作为示例而非限定,这样的计算机可读介质可包括ram、rom、eeprom、cd-rom或其它光盘存储、磁盘存储或其它磁存储设备、或能被用来携带或存储指令或数据结构形式的合意程序代码且能被计算机访问的任何其它介质。任何连接也被正当地称为计算机可读介质。例如,如果软件是使用同轴电缆、光纤电缆、双绞线、数字订户线(dsl)、或诸如红外、无线电、以及微波之类的无线技术从web网站、服务器、或其它远程源传送而来,则该同轴电缆、光纤电缆、双绞线、dsl、或诸如红外、无线电、以及微波之类的无线技术就被包括在介质的定义之中。如本文中所使用的盘(disk)和碟(disc)包括压缩碟(cd)、激光碟、光碟、数字多用碟(dvd)、软盘和蓝光碟,其中盘(disk)往往以磁的方式再现数据,而碟(disc)用激光以光学方式再现数据。上述的组合也应被包括在计算机可读介质的范围内。
提供对本公开的先前描述是为使得本领域任何技术人员皆能够制作或使用本公开。对本公开的各种修改对本领域技术人员来说都将是显而易见的,且本文中所定义的普适原理可被应用到其他变体而不会脱离本公开的精神或范围。由此,本公开并非旨在被限定于本文中所描述的示例和设计,而是应被授予与本文中所公开的原理和新颖性特征相一致的最广范围。