一种基于属性代理重加密的区块链密文云存储共享方法与流程

文档序号:16608609发布日期:2019-01-14 21:22阅读:677来源:国知局
一种基于属性代理重加密的区块链密文云存储共享方法与流程

本发明属于区块链技术领域中的密码学技术与智能合约技术,涉及到解决云系统中信息安全存储共享问题的方法。



背景技术:

随着云计算、物联网(internetofthings,iot)技术的飞速发展,云存储成为了最常用的一种网络存储服务。目前,云存储共享系统大多是中心化的,在第三方云服务提供商(cloudserviceprovider,csp)的帮助下管理个人信息,但这种方法不仅需要大量的通信开销、高额的计算成本,而且物联网的公开透明化使信息的完整性、准确性、机密性面临着严重威胁。

为了更好地保证信息安全性和完整性,hong等人从降低信息属主管理复杂度的角度出发,设计了一种基于属性加密的混合云重加密的秘密共享模型,实现了更为高效的动态密文访问控制。seo等人设计了一种基于属性的代理重加密方法,将传统的代理重加密与属性基加密相结合,使信息属主能够授权指定的用户根据用户的属性来解密重新加密的密文。以上所有研究对保证信息的机密性,实现信息的安全交互均起到积极作用,但均不支持关键词检索功能,为高效的信息共享造成了一定的阻碍。shi等人提出了一种基于公钥可检索关键词的属性代理重加密模型,并不支持原始密文和重加密密文的解密。liang等人在随机预言机模型下证明了其设计的基于密钥策略的支持关键词检索的属性代理重加密模型,但是该发明的计算代价较大。以上提出的所有研究均是采用中心化管理模式,所有用户的信息集中在资源池内,由第三方csp使用特定的软件对信息强制进行统一管理,csp的软硬件一旦出现故障或受到攻击,可能会造成信息丢失、泄露,甚至服务中断。

区块链(blockchain,bc)技术的出现为人们提供了一种去中心化、不可篡改、不可伪造、集体维护的分布式管理方法。2008年美籍日裔学者中本聪首次提出了一个可以作为公共账本的区块链概念,它是分布式数据存储、点对点传输、共识机制、加密算法等技术相融合的新型应用模式。区块链技术利用块链式数据结构来验证与存储数据,采用分布式节点共识算法来生成和更新数据,结合密码学的方式保证数据传输和访问的安全,并由自动化脚本代码组成的智能合约来编程和操作数据的一种全新的分布式基础架构与计算范式。它是一种符合物联网时代的共享开放、公平竞争、真实完整、安全可靠等基本特性的比特币底层技术。



技术实现要素:

本发明在假设所有的信息属主都是可信任的,共享请求者是非可信的,即共享请求者之间可以串通共谋,非法访问未授权的用户信息的前提下,提出一种基于属性代理重加密的区块链云存储共享方法,它融合了区块链技术与密码学技术是一种与现有信息共享系统相兼容的技术。仿真结果显示,本发明比现有的信息存储共享技术具有更低的计算成本及通信开销,且更能满足用户对信息的安全性及机密性的需求。

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

本发明所述的一种基于属性代理重加密的区块链密文云存储共享方法,按如下步骤:

(s01):在进行信息存储之前,首先系统制定智能合约,并由信息用户共同签署。

(s02):信息属主alan发送存储请求,通过pool验证池共识机制选取的传输领导节点t向自己集群内的群众节点tn广播验证信息及用户身份的有效性。

1)若有效,则由传输领导节点t提取数据后,将其暂时存储到自己的日志内;

2)若无效,则反馈“非法用户”。

(s03):传输领导节点t向所有集群内的群众节点tn复制信息并等待响应,在确定至少集群内部已经超过一半数量的节点已经接受到了信息后再向信息属主alan确认信息已经接收,一旦信息属主alan收到确认信息后就表明此时信息处于已提交状态,t再向tn发通知告知该数据状态已提交。在此过程中,信息属主alan需要提交信息报价及自定义的随机字符串以便于用户获取信息共享报酬,并且提供一定的信用币作为保证金,以避免虚假、抄袭等现象。

(s04):传输节点向存储节点发送存储信息,由负责存储的领导节点m向自己集群内的mi广播存储请求。在确定多于半数节点完成存储后,向信息属主alan反馈信息,此次存储过程结束。

(s05):共享请求者bill发送共享请求,信息共享之前,集群中的存储领导节点m向自己集群内的群众节点mi广播验证用户身份,判定其是否符合密文共享权限。

1)若符合,则由领导节点m向自己集群内的节点mi广播共享请求;

2)若否,则反馈“非法用户”。

(s06):根据共享请求者bill提供的关键词w,计算出区块链中元数据密文ct后将其使用代理重加密技术转换成符合共享请求者bill的共享权限的密文ctb。

1)系统根据公钥pk、关键词w生成相应的搜索口令tk获取检索结果信息及各信息对应的报价。

2)确定共享请求者bill信用币和用户共享信息价格,若信用币大于等于信息价格,则进入密文转换阶段;否则,反馈“余额不足”。

(s07):传输领导节点t向所有集群内tn节点复制信息并等待响应。在确定至少集群内部已经超过一半数量的节点已经接受到了信息后,向存储节点确认信息后就表明此时信息处于已传输状态。

(s08):传输节点向共享请求者bill发送通过关键词密文检索获取的元数据密文ct,并通过解密后获取信息的存储位置lc,从而在相应位置下载解密原信息密文cta,获取信息明文m。

(s09):系统根据信息交互情况,对用户的信用币作相应的调整并根据反馈的数据进行信用币结算。

本发明的更具体实现步骤如下:

本发明主要围绕三个角色:云存储器、信息属主、共享请求者进行设计,图1为本发明提出区块链密文存储系统模型图,图2为本发明提出区块链密文信息共享系统模型图,具体角色设计如下:

1)云存储器:负责提供存储空间,用户可以向csp购买相应的存储空间,便于存储记录信息。

2)信息属主:系统内所有用户拥有记录存储信息的权限,可对信息进行加密并预先设置共享权限,只有共享请求者满足共享信息权限的前提下才能解密获取密钥,从而获取信息属主共享的原始明文信息,假设信息属主是alan。

3)共享请求者:系统内用户可以向信息属主或本地节点发起共享信息请求,假设共享请求者为bill。本发明所用符号如表1所示:

表1符号描述

步骤1:创建合约。

1)合约创建者使用高级语言将带有用户属性集合特性的合约转化为二进制合约码,记录在本地网中;

2)管理者召集所有本地用户对合约进行签名;

3)节点确认签名后,通过以太坊虚拟机部署在以太坊区块链中;

4)将合约地址及调用指令反馈给合约用户

步骤2:选举领导节点,并验证用户身份的合法性。

在去中心化的区块链系统中,节点之间是相互独立的,通过共识机制算法达成“信任”,各节点在满足自身收益的前提下,实现系统内部信息的统一。本发明中按照pool验证池共识机制的工作原理,以及实际需要将所有节点分为两类:存储节点、传输节点。每个节点可处于三种状态:领导节点、竞选节点和群众节点。

1)在初始状态下,信息属主发送存储请求之前,所有参与节点都是群众节点。

2)在没有接收到领导节点命令之前,所有群众节点均可以通过民主投票的形式选取领导节点,在150-300ms的时间内得票最多者竞选节点被选为领导节点。

3)一旦竞选成功,领导节点会根据raft协议的组织集群内部所有群众节点对系统内部最新的交易信息进行传输、存储;其余节点自动变回群众节点,服从领导节点的指令完成指定工作。

步骤3:信息属主alan提交信息并向系统提供一定的保证金以及用户信息共享报酬,节点在确认交易的有效性后,集群内部节点复制信息,在多数节点完成任务后并向信息属主alan反馈信息。

步骤4:节点根据信息属主alan提供的信息,生成密文信息cta,元数据data→{lc,w,in},密文ct,并在集群内部广播存储请求,在确定多半节点已经完成存储以后,向信息属主alan反馈存储结果,存储完成。

本发明通过属性代理重加密技术,实现了信息的加密、解密过程,其中信息加密过程如下:

1)系统初始化:setup(λ,u)→(gp,msk,pk)

给定系统安全参数λ,系统属性集合u,然后构造阶数为p的加法循环群g,g为g的生成元,且存在满足双线性映射e:g×g→gt,随机选取一个整数且满足g1∈g,并设置以下目标散列哈希函数h1:(0,1)2k→zp,h2:(0,1)2k→gt,h3:(0,1)*→g,h4:(0,1)*→g,h5:(0,1)k→zp,h6:(0,1)*→g随机选取不同的整数α,a∈zp,z=e(g,g),随机选取整数hx∈zp计算其中x∈u。

其中,gp表示系统公共参数,msk表示系统主密钥,pk表示系统公钥。

密钥生成阶段:keygen(gp,pk,msk,sa)→(ska,pka)

输入公共参数gp,系统主密钥msk,信息属主alan属性集合随机选择整数t∈zp,以及生成信息属主alan对应的私钥ska、pka。

同理,生成共享请求者bill的私钥skb、pkb。

2)重加密密钥生成算法:rekeygen(gp,ska,(m',ρ'),pkb)→rka→b

信息属主alan随机取一个整数θ∈zp,并计算gθ根据共享请求者bill的属性集合sb构造共享结构(m',ρ'),结合公共参数gp,信息属主alan对应的私钥ska,共享请求者bill的私钥pkb,计算重加密密钥rka→b。

rka→b=(sa,rk1,rk2,rk3,rk4,rx)(4)

其中m'是一个l'×n'的矩阵,函数ρ'将矩阵m'的行映射成属性。随机选取整数s,y2,...,yn∈zp构成zp一个列向量计算其中s表示信息属主共享的秘密,mi'对应矩阵m'第i行的矢量,{εi}为mi'的的有效部分,i={i:ρ'(i)∈sa,1≤i≤l'}表示共享结构(m',ρ')中用到的属性。

3)信息加密:

第一步原信息加密:输入公钥pka,信息属主输入信息明文m,预先设定好的设置阅览、共享权限(m,ρ),计算密文cta,并将密文信息存储在云服务器中。

第二步元数据加密:输入系统公钥pk,以及预先设定好的阅览、共享权限(m,ρ),元数据data→{lc,w,in},其中,lc表示原始信息密文在云中的存储位置,w为信息的关键词,in为信息的项目编号,原始信息密文解密密钥k',输出密文ct,并存储在区块链中。

密文重加密算法:reencrypt(rka→b,ct,pkb,(m',ρ'))→ctb

节点首先判断共享请求者bill是否为系统合约用户,若是,随机选择δ∈gt并计算:

然后根据重加密密钥rka→b,密文ct,计算出密文的重要分量φ,最终输出重加密后的密文ctb。

其中,ωi∈zp且满足

步骤5:共享请求者bill发送共享请求,确认身份有效性后,节点根据共享请求者bill提供的关键词生成索引码,以及搜索口令。

索引生成及关键词检索:

索引生成:输入公共参数gp,信息m的关键词w,节点计算原始信息中关键词wa对应的消息认证码kw,以及重加密信息密文的ctb中wb'对应的认证码kw',生成索引码id、id';

关键词检索:根据输入共享请求者bill对应的私钥skb,关键词wb及其对应的搜索密钥kw',输出关键词wa对应的搜索口令tk。

步骤6:根据索引码及搜索口令获取元数据密文ct,然后确定共享请求者bill信用币和用户共享信息价格的关系,在大于等于用户共享信息价格的前提下,使用代理重加密技术转换成符合共享请求者bill的共享权限(m',ρ')密文ctb。

步骤7:传输节点在集群内复制信息,在多半节点响应后确认信息的处于已传输状态。

步骤8:向共享请求者bill发送检索获取的元数据密文ct,并通过解密后获取信息的存储位置lc,从而在相应位置下载解密原信息密文cta,获取信息明文m。

信息解密过程分为以下两步:

1)代理重加密解密算法:redecrypt(skb,ctb)→ct

系统核对共享请求者bill的属性集合sb是否满足重加密后的密文ctb中的共享结构(m',ρ'),若满足,共享请求者bill可以使用私钥skb解密通过密文策略属性基加密的解密方法恢复出密文的重要分量φ,得到ct恢复出原始信息密文解密密钥k'、data。若不满足,反馈“非法用户”。

用户根据元数据data获取原信息存储位置lc及解密密钥k',对cta解密恢复明文信息m。

2)原信息密文解密:decrypt(cta,k',gp)→m

本发明中,解密密钥k'仅由区块链与信息属主alan掌握,未授权的情况下,仅有信息属主alan可以对云存储器上的原始信息密文cta,利用公式

解密获取原始明文信息m。

步骤9:根据信息交互的实际情况,对用户的信用币进行相应的调整。

1)首先返还未成功交互的共享请求者bill的保证金。

2)然后根据交易完成情况,结算成功交易用户信息费用。

本发明为了提高现有信息交互过程中的信息安全性,降低用户对信息管理的复杂度的角度出发,并结合已有的属性基加密算法以及代理重加密算法,融合了区块链技术,提出了一种与传统信息存储共享兼容,同时支持关键词检索的区块链密文信息存储共享模型。通过属性代理重加密技术,使信息共享具有更灵活的共享控制特性。当信息属主下线时,节点依然可以按照智能合约规则完成信息交互工作,实现信息的不间断共享。关键词作为元数据的一部分存在区块链上,便于信息检索,提高了信息共享的效率,在一定程度上节约了通信成本,减轻了云存储器高频访问的压力。

本发明将元数据密文与原信息密文分离存储,更好地实现了抗共谋攻击,保证了信息的安全性;在区块链技术的基础上设计了信息交互的智能合约,使得信息共享双方无需中心机构参与就可以按照预设定的协议自发地进行通信,确保了密文转换的安全性和信息共享的高效性。当信息属主下线时,节点依然可以按照合约规则完成信息交互工作,实现信息的不间断共享。在抗共谋攻击、执行效率和算法复杂性等方面更具优势,更适用于当今物联网领域发展要求。

附图说明

图1为本发明提出区块链密文存储系统模型图。

图2为本发明提出区块链密文信息共享系统模型图。

图3为本发明提出属性代理重加密过程示意图。

图4为本发明信息交互双方合约执行流程图。

图5为本发明属性数目对系统加密时间的影响对比图。

图6为本发明属性数目对系统解密时间的影响对比图。

图7为本发明属性数目对系统重加密时间的影响对比图。

图8为本发明属性数目对系统重解密时间的影响对比图。

具体实施方式

为了更加详细的说明本发明,以下将以具体实例对本发明作进一步说明。

实施例1。本发明中的合约用户信息交互实例过程。

1)信息属主alan发送存储请求,同时提交信息报价及自定义的随机字符串以便于用户获取信息共享报酬。

2)集群中的传输领导节点t向自己集群内的群众节点tn广播验证信息及用户身份的有效性。若有效,则由传输领导节点t提取数据后,将其暂时存储到自己的日志内;若无效,则反馈“非法用户”。

3)传输领导节点t向集群内的所有群众节点tn复制信息并等待响应,在确定至少集群内部已经超过一半数量的节点已经接受到了信息后再向信息属主alan确认信息已经接收,一旦用户收到确认信息后就表明此时信息处于已提交状态,t再向tn发通知告知该数据状态已提交。在此过程中,信息属主alan需要提交信息报价及自定义的随机字符串以便于用户获取信息共享报酬,并且提供一定的信用币作为保证金,以避免虚假、抄袭等现象。

4)传输节点向存储节点发送存储信息,由负责存储的节点m向自己集群内的mi广播存储请求。在确定多于半数节点完成存储后,根据设置的共享权限(m,ρ)存储元数据data→{lc,w,in}得到密文ct,并向信息属主alan反馈信息,此次存储工作完成。

5)共享请求者bill发送共享请求并向系统提交一定的信用币以保证请求的真实有效性。信息共享之前,集群中的存储领导节点m向自己集群内的群众节点mi广播验证用户身份,判定其是否符合密文共享权限(m,ρ)。若符合,则由领导节点m向自己集群内的节点mi广播共享请求。若否,则反馈“非法用户”。

6)进一步确定共享请求者bill信用币和用户共享信息价格,若信用币大于等于信息价格,则进入密文转换阶段,获取数元数据密文ct后将其使用代理重加密技术转换成符合共享请求者bill的共享权限(m',ρ')密文ctb。否则,反馈“余额不足”。

7)传输领导节点t向所有集群内tn节点复制信息并等待响应。在确定至少集群内部已经超过一半数量的节点已经接受到了信息后,向存储节点确认信息后就表明此时信息处于已传输状态。

8)传输节点向共享请求者bill发送通过关键词密文检索获取的元数据密文ct,并通过解密后获取信息的存储位置lc,从而在相应位置下载解密原信息密文cta,获取信息明文m。

9)系统根据信息交互结果,根据反馈的数据进行信用币结算对信息交互双方用户的信用币作相应的调整并确认信息的更新变化情况。首先返还未成功交互的用户保证金,然后根据交易完成情况,结算用户交互信息费用。

实施例2。信息交互智能合约执行过程。

本发明中的设计到了大量的用户及信息,为了更方便交易处理,按照时间顺序划分为以下几个阶段:合约发布,发布交易,权限审核,安全校核,交易结算。结合图4具体表述如下:

1)制定合约:合约创建者使用高级语言将带有用户属性集合特性的合约转化为二进制合约码,记录在本地网中,同时召集所有本地用户对合约进行签名,由节点确认签名后,通过以太坊虚拟机部署在以太坊区块链中,并向用户反馈合约地址及调用指令。

2)发布交易:信息属主alan根据预先设置好的共享权限(m,ρ)存储元数据data→{lc,w,in}得到密文ct,同时,信息属主alan提交信息报价及自定义的随机字符串以便于用户获取信息共享报酬,在此过程中,信息属主alan还需要向合约地址提供一定的信用币作为保证金,以避免虚假、抄袭等现象。

3)权限审核:在权限审核阶段,系统根据共享请求者bill的属性集合sb与预先设置好的权限集合(m,ρ)进行权限匹配,并将结果提交给智能合约。智能合约根据公钥pk、关键词w生成相应的搜索口令tk获取检索结果信息及各信息对应的报价。

4)安全校核:在安全校核阶段,智能合约确定共享请求者bill信用币和用户共享信息价格,若信用币大于等于信息价格,则进入密文转换阶段;否则,反馈“余额不足”。

5)交易结算:系统根据信息交互结果,对用户的信用币作相应的调整并确认信息的更新变化情况,然后根据反馈的数据进行信用币结算。首先返还未成功交互的用户保证金,然后根据交易完成情况,结算用户交互信息费用。

实施例3。本发明的安全性分析。

a)信息交互的安全性证明:

本发明是基于q-parallelbdhe困难性问题进行安全性证明,并判断双线性困难性问题,如果假设成立,即在随机预言模型下的敌手的优势忽略不计,即说明该发明是选择明文安全(cpa,chosenplaintextattack)的。

定理1如果本发明在解决q-parallelbdhe问题的优势是可以忽略不计的,则称q-parallelbdhe假设在(g,gt)成立,该发明在随机预言模型下是cpa安全的。

证明假设存在一个攻击者在cpa游戏中,它的优势不能够忽略,敌手赢得安全游戏。则构造一个游戏挑战者如果存在攻击者以ξ的优势攻破安全模型下的cpa,只需要证明挑战者可以借助攻击者的能力以不可忽略的概率解决判定性q-parallelbdhe的问题。

初始化阶段:游戏挑战者将会收到来自攻击者发送的共享权限结构(m**)。

系统建立阶段:挑战者随机选择一个值χ'∈zp,计算:e(g,g)α=e(g,g)χ′e(g,gα)并发送gp和pk给攻击者

查询阶段1:私钥提取阶段:攻击者通过向挑战者提交属性集挑战者随机选取τ∈zp计算(i,ski),并将ska发送给攻击者

重加密密钥提取阶段:用一个属性集si和一个共享权限结构(m',ρ')进行密钥提取,首先判定是否满足(m',ρ'),若满足,则可获取私钥ska,然后计算rka→b=(s,rk1,rk2,rk3,rk4,rx),否则,挑战者从中任意选择一个反馈给攻击者

挑战阶段:攻击者随机发送两段相等长度的消息m0和m1给挑战者挑战者随机抽取一个比特属性b∈(0,1),利用(m**)对mb加密得到密文ct并发送给

查询阶段2:重复查询阶段1的操作。

猜测阶段:给出一个b'∈(0,1)来猜测在挑战阶段中挑战者选择的b=0或b=1,若猜测正确,即b'=b,那么a赢得这个游戏。若攻击者猜测结果b'≠b,则猜测错误。我们定义挑战者的优势:

当输出为0时,即得不到任何关于mb的任何信息,不能恢复明文,因此猜测正确得的概率为当输出为1时,即得到任何关于mb的有关密文信息,并能恢复明文,由定理1不难得出猜测正确得的概率为

因此,在本发明中q-parallebdhe猜测准确,即b'=b的优势为

即本发明可以达到挑战明文攻击的目的。

抗共谋攻击性:本发明采用属性代理重加密算法(如图1),用户属性集和共享结构(m,ρ)通过a2进行验证,rk1、rk3、rx与rk4通过δ∈gt关联,rk1、rk2和rk4通过θ∈zp紧密相连,rk4在θ∈zp及共享权限结构(m,ρ)下对δ∈gt进行加密,所以当rk1、rk2、rk3、rx的值被攻击者篡改其对应的重加密密文也就无效,如果(m,ρ)和rk4被篡改,那么可以通过下式验证。

由于该系统的特殊构造,将传输节点及存储节点分离开,引用了pool验证池共识机制,存储节点与传输节点均是通过民主选举的方式产生,因此保证了执行节点的随机性及位置的不定性。即存储节点既不知道下一个传输节点位置,更不了解共享者信息,节点的随机性决定了三者串通的难度,因此存储节点、传输节点、共享者三者之间串通的可能性也极低。

实施例4。本发明的效率分析。

本发明中的通信开销主要有传输节点以及存储节点之间的通信及节点与系统之间的通信组成。为了进一步评估系统中的效率,结合基于秘钥策略的属性代理重加密安全共享的tiwari方法、罗恩韬等人的移动社交网络中的跨域代理重加密朋友发现隐私保护研究以及基于属性代理重新加密恒定数量的配对操作的seo方法做了对比实验。

通过与以下三种方法的系统公钥pk,msk长度,用户私钥sk长度和ct长度进行对比,结果如表2所示。由表可知,相比于tiwari方法,luo方法,本发明的系统公钥pk随着属性个数的增加,长度逐渐增长,用户私钥sk长度增长率也远大于其他三种方法,故本发明的密钥具有更高的抗攻击能力。将用户的属性作为每个用户私钥sk生成的依据之一,同时也能够更加灵活的实现共享权限的控制,在密文中将用户属性转化为共享结构,对密文进行了定向的更有效的保护。

表2通信开销对比

针对算法中的加密、重加密、密文解密及重加密密文解密过程所需要的计算量,并与现有的三种典型方法进行对比,结果如表3所示,其中,e用于描述群g、gt幂运算的时长,而p表示双线性的对数运算时长,n表示属性个数。由表3可知,seo方法中的双线性实现的是与门访问结构仅支持属性间的“与”关系操作,而本发明的却支持任意共享权限公式,更加灵活的便捷。本发明与tiwari方法相比,利用增加乘法运算使减少了所需要的双线性对数运算,故本发明的运算成本要远小于以上两种方法的运算量,从而达到了降低计算开销的目的。相比于luo方法,本发明的算法复杂度也有明显下降。

表3计算开销对比

本发明为了进一步评估系统中的效率,本发明对seo方法,tiwari方法,luo方法三种方法做了对比实验,四个方法均是采用了tate双线性配对,根据chen等人的实验结果,要达到1024bit的rsa安全级别,512bit的tate双线性配对操作,且执行一次tate双线性配对操作用时为20.04ms,执行一次幂指数运算5.31ms。本发明的实验过程是根据用户持有的属性数目作为变量,分别对加密、解密、重加密、重解密运算时间进行了仿真对比。

图5说明随着属性数目递增,加密的计算时间也在增长,为了更好地保证信息的安全性,在加密过程中本发明增加了属性匹配的次数,故运算时耗略高于seo。图6是原信息解密时长,本发明相对于tiwari,luo有绝对的优势。本发明利用区块链技术由不同的节点分担数据中心计算任务,减少了可信中心的双线性配对的计算次数,因此在计算开销上更具有优势。图7是重加密阶段计算时间的变化情况,四种方法均需要共享权限匹配,本发明中对于持有100个特征属性的信息加密仅需1.70s左右,相比于seo方法,tiwari方法要小很多。图8表示随着属性数目的增加重解密信息时耗,随着属性数目的增加,相比于其他三种方法,本发明的解密时长的增长率最小。

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