基于区块链的物联网可撤销属性基加密算法

2022-03-15 10:32孙学军
计算机仿真 2022年2期
关键词:密文加密算法密钥

龚 琴,孙学军

(1.闽南科技学院计算机信息学院,福建 泉州 362332;2.临沂大学费县校区,山东 临沂 273400)

1 引言

物联网技术也被称为数据传输的第三次浪潮[1],但在使用物联网的过程中,会出现被人盗用相关密文数据的情况,因此只能限制物联网的普及且必须加密物联网中的密文数据[2],无法撤销密文数据,降低了用户体验感,所以必须设计出密文数据加密算法保证物联网访问的安全性[3]。

黄凤鸣[4]等人提出基于雾计算中支持外包与撤销的属性基加密算法,该算法构建"云-雾-终端"三层系统模型,引入属性组密钥技术,更新动态密钥,实现物联网属性基加密,降低了属性基加密性能。曹素珍[5]等人提出基于可验证混合存储物联网属性基加密算法,通过用户版本号和其属性钥的绑定方式实现撤销,在防止不良用户入侵密文数据时未采用双层加密的策略,无法获取双倍密钥进行加密,存在加密效率低的问题。赵志远[6]等人提出基于密文长度恒定的物联网可撤销属性基加密算法,通过每个用户的属性群密钥不能通用的特性有效抵抗撤销用户与未撤销用户的合谋攻击,结合支持多值属性和通配符的"AND"门策略,实现物联网属性基加密,该算法无法增强物联网数据加密算法的灵活度,导致属性基加密算法的敏感程度过低。

为了解决上述问题,提出基于区块链的物联网可撤销属性基加密算法。

2 可撤销属性基加密算法

2.1 系统初始化

Setup(1λ):在页面中输入属性区域R、生产公钥PK、主私钥MSK及系统安全参数λ。

KGen(PK,MSK,ω,U):在页面中输入系统用户集合U,属性集合ω,导入公共参数PK,输出用户属性私钥SKω及主私钥MSK。

此时系统用户若想要获取密钥,系统将主动为其生成专属私钥[7]。

2)显示出用户的专属私钥SKω=(ei)i∈ω。

记载各个属性i∈R对应的属性系统用户集合Ui,同时将此集合记录在系统数据管理服务器中。

2.2 生成密钥加密密钥

KEKGen(U):在页面中导入属性用户集合U,生成系统用户的专属二叉树KEK。

第一步:在数据管理服务器中,二叉树KEK是按照系统用户的个数决定的,且每个用户代表二叉树中一个叶子节点Vj,KEKj是每个节点任意产生的相应密钥。系统中某用户ut的路径密钥是Path(ut),即ut所对应的二叉树节点到二叉树根部节点所经过的所有节点的集合。

第二步:KEK(Ui)是系统中含有属性用户集合Ui的最小集合,若集合中包含{u1,u2,u3,u4}4个用户,其属性用户集合是Uj={u1,u2,u3},可知KEK(Uj)={KEK2,KEK6}。

2.3 加密

当系统中的用户自带数据时,可先取得公共参数PK,按照访问树T的流程,并利用Enc(PK,M,T)算法加密数据M。

第二步:假设访问树中标记成已分配根节点值为s,除s外的所有节点均是未分配,且节点表示数据属性。则访问树中从树顶到树根未分配的节点的运行递归算法如下。

(1)

求解出上述式子后回到密文C=(C0,{C1,i,C2,i}i∈T),即完成可撤销属性基加密算法[8]。

物联网中除了数据因盗用需要加密外,用户安全也是一大问题,有很多不良用户进入系统并威胁系统安全,因此验证用户身份也是物联网需要加密的一项任务。

3 基于区块链的属性基加密算法

经过上述对物联网中的数据完成第一次加密保证了数据安全,为进一步提升物联网系统的安全,可利用区块链技术的优势再次进行加密,并将加密数据存储在区块链中,同时通过加密方式验证用户身份保证物联网系统安全。

3.1 构造物联网系统初始化阶段

PK=(C0,C1,p,g,h=gβ,e(g,g)α,F,H1,H2)

(2)

式中,e(g,g)代表在群G1中双线性映射的值。则物联网系统的主私钥为

MK=(α,β)

(3)

3.2 物联网系统加密阶段

Enc(PK,D,W,SKS,Γ,K1,K2)→C,MAC,I,若DO中含有n个明文文档,用函数表示为

D={D1,D2,…,Dn}

(4)

并且需将n个明文文档加密后并传输到CSP中。

1)物联网中的文档加密

FileEnc(D,K1,K2)→C,MAC。物联网中自带数据的用户记为DO,DO数据中明文文档的对称加密密钥K1可在{0,1}k中任意选取。自带数据用户利用密钥K1加密文档Di(i∈[1,n]),可获取如下文档

Ci={ε.EncK1(Di)|i∈[1,n]}

(5)

式中,ε代表文档安全的对称加密计划,ε.Dec代表物联网基于区块链的解密过程,ε.Enc代表物联网基于区块链的加密过程。

自带数据用户在集合{0,1}k中选择密钥K2后产生的密文文档Ci(i∈[1,n])的消息验证码集合为

MACCi={H2(K2,Ci)|i∈[1,n]}

(6)

同时系统用户将其自带数据中的所有密文文档C={C1,C2,…,Cn}输送给CSP。

2)密钥加密

KeyEnc(PK,K1,Γ)→CK1,在密钥K1中,自带数据用户DO规定出访问结构为Γ,将结构Γ视为树,其根部自下而上经过的所有节点x标记为阶dx的已分配常数多项式为qx,当Γ中节点x的门限值为kx,令deg 为

deg(qx)=dx=kx-1

(7)

(8)

式中,att(y)代表区块链属性值,s代表任意数。

3)生成索引

IndexGen(PK,W,SKs)→I。自带数据用户DO在其数据文档D={D1,D2,…,Dn}内选取出关键词,若关键词集合为W={w1,w2,…,wm},由于每个关键词都属于集合W,因此DO所选取的大小为n的空数组DB(wi)也属于集合W,其中,当空数组DB(wi)内的第j个文档含有关键词wi,则DB(wi)[j]=1,除此之外的DB(wi)[j]=0。

4)上传数据

自带数据用户DO利用安全信息传输通道把K2、MAC={MACC1,MACC2,…,MACCn}及SKS上传给TA。

3.3 物联网用户注册阶段

(9)

通过TA可以给予DU信息验证码集合MAC={MACC1,MACC2,…,MACCn}、认证密钥K2和搜索密钥SKS三种信息,当存在不相同的DU时,除属性私钥SKU为不相同,其余皆相同。

3.4 搜索阶段

Search(I,Tkw)→CK1,DB(kw)。DU利用交易TXT把搜索令牌Tkw传送到搜索合约地址Adds,并借用智能合约的addIndex()函数将其发送到搜索令牌Tkw中进行搜索[11]。

在智能合约中检索出DB(kw)及CK1,并把CK1传送至借用合约DU中。因为区块链中的所有数据皆为公开使用,因此用户和云服务器都可随时获取DB(kw),联合智能合约进行搜索还可降低云服务器的存储负担及成本[12]。

在保证云服务器结果是最正确的条件下,用户最终获取的密文文档一定是正确的,因此不再需要验证,随之降低了成本。

3.5 解密阶段

Dec(SKU,CK1,Ckw)→Dkw,用户得到正确的密文文档后通过验证其是否含有解密功能,即验证出其具有解密功能后,可立即进行解密并获取明文文档,否则反之。

1)认证密钥:Test(SKU,CK1)→K1,当用户获取密文Ck1后立即检测密文的访问计划Γ是否匹配其属性私钥SKU,若匹配,则根据从上到下的递归算法进行运算,并获取A=e(g,g)rs,否则回到第一步重新运算,经上述运算用户即可还原其对称密钥为:

=[K1e(g,g)αse(g,g)rs]/e(g,g)s(r+α)

(10)

2)物联网用户解密Dec(Ckw,K1)→Dkw,通过解密获取对称密钥K1、含有查询关键词的明文文档及密文文档,即Dj={ε.Dec(K1,Ci)|i∈[1,j]}。

4 实验与结果

为了验证所提算法的整体有效性,在某公司信息安全传输系统中的Hadoop平台进行加密复杂程度、加密效率和密钥敏感程度测试。

4.1 加密复杂程度

密钥越短数据加密复杂度越低,由图1中的数据可知,其它两种算法安全等级越高密钥越长,文献[5]算法的密钥长度甚至高于7200,而所提算法在同一安全等级下的密钥长度最短,且无论多大等级其长度始终不超过300,因为所提算法利用可撤销加密算法和区块链加密算法形成混合加密算法后对物联网数据进行加密,大大提高加密性能,从而降低加密复杂度。

图1 不同算法的加密复杂度

4.2 加密效率

比较三种算法在加密过程中不同阶段所消耗的时间,分析图2可知,在任何阶段所提算法的时间消耗都是最低的,将所有阶段的所需时间加在一起形成加密时间消耗,发现所提算法的加密时间消耗仅用3.56s,文献[4]算法用时7.58s,文献[5]算法的加密时间已经超过10s,证明所提算法最优,这是由于所提算法在实现物联网数据信息加密时采用双层加密的策略,获取双倍密钥进行加密,加快加密速度,减少加密时间,提高加密效率。

图2 三种算法不同阶段的时间消耗

4.3 加密算法敏感程度

加密算法的对称加密算法及公钥加密算法组成了明文敏感性,因此若明文发生变化,则密文数据随之发生改变,改变越大说明算法越敏感,由图3可知,利用所提算法、文献[4]算法和文献[5]算法经多次实验比较其敏感程度,所提算法的敏感程度经多次迭代其敏感程度一直保持50%以上,而文献[4]算法和文献[5]算法的敏感程度都过低,因为所提算法首先设计出带有密钥加密密钥的可撤销加密算法再进行物联网数据加密,以加强物联网数据加密算法的灵活度,从而提升算法的敏感程度。

图3 密钥敏感程度

5 结束语

针对当前算法的不足,提出基于区块链的物联网可撤销属性基加密算法。该算法设计出可对密钥进行加密的互联网可撤销属性基的加密算法,再利用区块链技术设计出物联网数据的加密算法,中和两种加密算法,实现物联网数据加密。经试验表明,所提算法加密复杂度低、加密效率高和密钥敏感程度高,由于部分物联网在云环境下需要加收用户验证费用,因此接下来以平衡用户与服务器之间费用问题展开研究。

猜你喜欢
密文加密算法密钥
幻中邂逅之金色密钥
幻中邂逅之金色密钥
一种新的密文策略的属性基加密方案研究
密码分类和攻击类型
一种抗攻击的网络加密算法研究
Android密钥库简析
教育云平台的敏感信息保护技术研究
条件型非对称跨加密系统的代理重加密方案
一种改进的加密算法在空调群控系统中的研究与实现
基于Jave的AES加密算法的实现