1.本发明涉及数据安全领域,具体涉及一种云环境下基于可净化属性加密的数据流通控制方法。
背景技术:2.云计算的出现为个人和企业用户提供了丰富的存储和计算资源,极大地提高了数据的使用效率和运营效率。个人和企业数据可以通过云计算服务在发送方和接收方之间快速且可靠地发送、存储和分发。发送方可以通过云服务器向一组接收方发送任意大小的数据,而云服务器将数据存储在其数据中心,以便在接收方不在线时进行传输。此外,接收方可以通过云服务从发送方订阅数据,这种发布者-订阅者关系将控制发送方和接收方之间的消息流动。因此,接收方可以创建对主题的多个订阅,以及从接收方接收消息,最终形成多对多的消息传递。
3.由于云平台的半可信特性,需要采用适当的加密机制将敏感数据以密文形式存储在云中并对数据进行细粒度的流通控制,如属性基加密(abe)技术。abe在公钥加密算法的思想中引入了访问策略,能够实现细粒度的访问控制,其根据访问策略生成密钥或者密文,使得满足指定访问策略的用户才可以解密,从而控制敏感数据只能流向满足访问条件的用户集合。
4.基于密钥策略的属性基加密(kp-abe)技术,可以实现云计算中数据的加密访问控制,涉及的实体包括可信授权机构、云服务器、发送方和接收方。如图1所示,kp-abe的实现过程包括以下步骤:
5.1)系统初始化。可信授权机构生成系统公钥pk和系统主密钥mk。
6.2)密钥生成。可信授权机构根据系统主密钥mk和访问策略生成私钥sk并安全地分发给接收方。
7.3)数据加密。发送方输入系统公钥pk、明文m和属性集合s,先使用随机的消息密钥k加密明文m得到密文cm,然后对消息密钥k进行加密得到密文ck,得到最终密文ct=(cm,ck)并上传至云服务器。
8.4)数据解密。用户从云服务器获取密文ct=(cm,ck)后,先使用私钥sk从ck中恢复出消息密钥k,然后用k解密cm得到明文m。
9.在云计算环境下,采用kp-abe技术实现数据的安全流通控制存在以下问题:
10.1)kp-abe不能抵抗消息密钥泄露攻击,即发送方可能泄露数据的消息密钥k,任何接收方从发送方获取到消息密钥k后可以从云服务器下载密文ct并直接解密出明文m,从而导致数据的流通控制失效。
11.2)kp-abe只能实现数据的读控制,即只有授权的接收方可以通过解密密钥访问数据,但是不能实现对数据的写控制,即任意发送方都可以执行加密算法将密文上传至云服务器,从而导致恶意的发送方将敏感数据加密并泄露给某些接收方。
技术实现要素:12.针对上述问题,本发明提出一种云环境下基于可净化属性加密的数据流通控制方法,通过保持结构性签名和零知识证明机制,为每个发送者生成一组与属性关联的加密密钥,在生成密文时同时输入加密密钥和一个访问控制策略,一是保证只有拥有正确加密密钥的发送方才能上传对应的密文至云服务器,二是实现对接收方细粒度的数据读控制。此外,通过在净化器端对原始密文进行无密钥的净化操作,可以防止发送方将消息密钥泄露给未授权的接收方,从而有效抵抗密钥泄露攻击。
13.所述的云环境下基于可净化属性加密的数据流通控制方法,具体步骤如下:
14.步骤一、搭建包括可信授权机构、发送方、净化器、云服务器和接收方的数据流通控制平台;
15.步骤二、可信授权机构向每个发送方生成加密密钥,并向每个接收方生成配套的解密密钥。
16.对每个发送方,可信授权机构运行ekgen算法获得加密密钥eks=(s,m,σ),通过安全通道将加密密钥返回给发送方;
17.s={a1,a2,...,ak}为输入的属性集合,是属性集合s中所有属性哈希值的集合;σ是对属性哈希值集合m的签名;
18.对于每个接收方,给定接收方策略其中是一个l行n列的矩阵,ρ是映射函数,将矩阵中的每一行映射成一个属性;
19.可信授权机构根据访问控制策略p运行dkgen算法生成解密密钥,通过安全通道将解密密钥dk
p
={d
τ,0
,d
τ,1
,d
τ,2
}
τ∈[l]
发送给接收方;
[0020]
步骤三、发送方对每个待发送的数据先使用随机的消息密钥来处理,然后使用加密密钥封装消息密钥,最后将加密密文发送给净化器;
[0021]
加密密文为c=(ct,π);π为零知识证明;ct=(c,c0,{c
τ,1
,c
τ,2
}
τ∈[k]
)是对消息进行属性加密的密文,包括消息的对称加密密文c和由属性集s生成的访问控制密文(c0,{c
τ,1
,c
τ,2
}
τ∈[k]
),k是属性集s中的属性个数;
[0022]
步骤四、净化器检查加密密文并使用随机的消息密钥对密文进行净化后,将净化密文c
′
上传至云服务器;
[0023]
对上传的每一个密文c,首先,净化器运行sanitize算法验证该密文中的零知识证明π,以验证发送方拥有属性集s对应的加密密钥,如果验证失败,则丢弃密文;
[0024]
验证成功后,继续检测密文ct是否与接收密文中声明的属性集s一致;如果不一致,则验证失败丢弃密文;
[0025]
当检测一致后,对于属性集s的每个属性哈希值元素继续检查是否满足等式:如果失败,净化器丢弃密文;
[0026]
g1和w均为公开系统参数;
[0027]
成功后,净化器选择随机值s
′
对原始密文中ct进行随机化,得到和原始密文ct形式相同的净化密文c
′
=(c
′
,c
′0,{c
′
τ,1
,c
′
τ,2
}
τ∈[k]
);
[0028]
步骤五、云服务器接收净化密文c
′
并存储,用于发送给任何订阅的接收方;
[0029]
步骤六、接收方根据访问控制策略p从可信授权机构获得相应的解密密钥;当从云
服务器接收到净化密文后,当密文中的属性集合满足其访问控制策略,则恢复出明文。
[0030]
对于净化密文c
′
,接收方用解密密钥dk
p
运行decrypt算法解密出明文:
[0031]
m=c
′
/b
[0032][0033]
具体地,令i为矩阵中对应属性集合s的行集合。当属性集合s满足其访问控制策略p,计算常量ωi满足是矩阵的第i行。
[0034]
(d
i,0
,d
i,1
,d
i,2
)为解密密钥;
[0035]
本发明的优点在于:
[0036]
1)一种云环境下基于可净化属性加密的数据流通控制方法,通过净化器对发送者生成的密文进行净化,净化密文只有授权的接收方才能正确解密,未授权的接收方即使获取发送方泄露的消息密钥也无法解密,可以有效抵抗kp-abe方案中恶意发送者泄露消息密钥导致的攻击。
[0037]
2)一种云环境下基于可净化属性加密的数据流通控制方法,不仅能实现数据的读控制,而且能实现数据写控制,确保只有授权的发送方才能使用其加密密钥生成有效的密文,而未授权的发送者产生的密文都会被净化器丢弃,防止恶意发送方将敏感信息泄露给未授权的接收方。
附图说明
[0038]
图1为现有技术中采用的基于kp-abe的数据流通控制图。
[0039]
图2为本发明一种云环境下基于可净化属性加密的数据流通控制方法流程图;
[0040]
图3为本发明搭建的数据流通控制平台架构图。
具体实施方式
[0041]
结合上述附图,描述总体技术方案的实现过程
[0042]
为了满足云环境中数据的安全流通控制要求,本发明提出一种云环境下基于可净化属性加密的数据流通控制方法,具体为:1)设计了可净化属性基加密算法,利用净化器对发送方产生的属性密文进行净化,并上传净化密文至云服务器。2)采用保持结构性签名和零知识证明机制,为每个发送方生成一组属性描述的加密密钥,并在加密阶段生成属性密文时产生相应的证明。净化器通过验证证明确保只有授权了集合s的发送方才能生成该集合s加密的密文,以此来实现数据的写控制,而净化后密文的细粒度读控制依然有效。
[0043]
所述的云环境下基于可净化属性加密的数据流通控制方法,如图2所示,具体步骤如下:
[0044]
步骤一、搭建包括可信授权机构、发送方、净化器、云服务器和接收方的数据流通控制平台;
[0045]
本发明中发送方和云服务器之间的所有网络通信都由净化器控制,数据的读控制由接收方的访问控制策略所决定;涉及的实体包括:可信授权机构、发送方、净化器、云服务器和接收方,如图3所示。
[0046]
1)可信授权机构建立系统公钥和系统主密钥并维护整个系统;同时,可信授权机
构向每个发送方生成加密密钥,并向每个接收方生成解密密钥。
[0047]
2)发送方从可信授权机构获得对应其属性集的加密密钥;对于每个数据,发送方首先使用一个随机的消息密钥来处理它,然后使用加密密钥来封装消息密钥,最后将加密的结果发送给净化器。
[0048]
3)净化器检查原始密文并将其转换为净化密文;首先,净化器验证发送方是否被授权了声明的属性集合,然后验证密文是否基于声明的属性集合生成的。如果验证正确,净化器使用随机的消息密钥对密文进行净化,并将净化密文上传至云服务器。
[0049]
4)云服务器是半可信的第三方,接收来自净化器的净化密文,并为这些密文提供存储服务。存储在云服务器中的密文可以发送给任何订阅的接收方。
[0050]
5)接收方定义访问控制策略,并从可信授权机构获得相应的解密密钥。接收方从云服务器接收到净化密文后,如果密文中的属性集合满足其访问控制策略,则恢复出明文。
[0051]
步骤二、可信授权机构向每个发送方生成加密密钥,并向每个接收方生成配套的解密密钥。
[0052]
对每个发送方,可信授权机构运行ekgen算法获得加密密钥eks=(s,m,σ),通过安全通道将加密密钥返回给发送方;
[0053]
s={a1,a2,...,ak}为发送方输入的一组属性集合,描述了每个发送方被授权的数据写目标。是属性集合s中所有属性哈希值的集合;σ是对属性哈希值集合m的签名;
[0054]
对于每个接收方,给定接收方访问控制策略由任意可能的属性上的“与”和“或”门组成。其中是一个l行n列的矩阵,ρ是映射函数,将矩阵中的每一行映射成一个属性;
[0055]
可信授权机构根据访问控制策略p运行dkgen算法生成解密密钥,通过安全通道将解密密钥dk
p
={d
τ,0
,d
τ,1
,d
τ,2
}
τ∈[l]
发送给接收方;
[0056]
步骤三、发送方对每个待发送的数据先使用随机的消息密钥来处理,然后使用加密密钥封装消息密钥,最后将加密的结果发送给净化器;
[0057]
加密密文为c=(ct,π);π为零知识证明;ct=(c,c0,{c
τ,1
,c
τ,2
}
τ∈[k]
)是对消息进行属性加密的密文;其中,c是消息的对称加密密文;c=m
·
e(g0,g1)
αs
;m是消息明文,α是系统主密钥,即可信授权机构选取的一个秘密值,g0,g1为系统初始化参数;s为随机数;
[0058]
(c0,{c
τ,1
,c
τ,2
}
τ∈[k]
)是由属性集s生成的访问控制密文,k是属性集s中的属性个数;
[0059]
其中,对每一个τ∈[k],和w为公开系统参数;
[0060]
为随机数;
[0061]
步骤四、净化器检查原始加密密文并使用随机的消息密钥对密文进行净化后,将净化密文c
′
上传至云服务器;
[0062]
对上传的每一个密文c,净化器运行sanitize算法验证该密文中的零知识证明π,以验证发送方拥有属性集s对应的加密密钥,如果验证失败,则丢弃密文。
[0063]
验证成功后,继续检测密文ct是否与接收密文中声明的属性集s一致;如果不一致,则验证失败丢弃密文;
[0064]
当检测一致后,对于每个属性哈希值元素检查等式是否成立,如果失败,净化器丢弃密文。
[0065]
当所有的检查都通过,净化器选择随机值s
′
对原始密文中ct进行随机化,得到和原始密文ct形式相同的净化密文c
′
=(c
′
,c
′0,{c
′
τ,1
,c
′
τ,2
}
τ∈[k]
);
[0066]
具体为:
[0067]
净化器首先选择随机数
[0068]
然后,计算净化密文c
′
=(c
′
,c
′0,{c
′
τ,1
,c
′
τ,2
}
τ∈[k]
);
[0069][0070][0071][0072]
对每一个τ∈[k],
[0073]
步骤五、云服务器接收净化密文c
′
并存储,用于发送给任何订阅的接收方;
[0074]
步骤六、接收方根据访问控制策略p,从可信授权机构获得相应的解密密钥;当从云服务器接收到净化密文后,如果密文中的属性集合满足其访问控制策略,则恢复出明文。
[0075]
对于净化密文c
′
,接收方用解密密钥dk
p
运行decrypt算法解密出明文m=c
′
/b。
[0076]
具体地,令i={i:ρ(i)∈s}为矩阵中对应属性集合s的行集合;如果属性集合s满足其访问控制策略p,常量满足满足是矩阵的第i行。
[0077]
然后计算:
[0078][0079]
其中,τ是s中属性ρ(i)的索引。
[0080]
(d
i,0
,d
i,1
,d
i,2
)为解密秘钥dk
p
中对应行集合i的值;解密秘钥dk
p
={d
τ,0
,d
τ,1
,d
τ,2
}
τ∈[l]
,对应整个矩阵的所有行,解密的时候只需要用到其中一个满足的集合s即可。
[0081]
本发明的实施例流程图,具体过程如下:
[0082]
1)系统初始化算法setup(1
γ
,t
max
)
[0083]
首先,选择安全参数γ和最大属性数目t
max
,可信授权机构运行setup算法;
[0084]
构造阶为素数p的双线性群和对应的双线性映射为
[0085]
选择随机数和定义散列函数生成msk=α和
[0086]
选择随机数生成签名密钥和验证密钥并基于schnorr非交互零知识证明方案生成公共引用字符串crs。
[0087]
最后,可信授权机构保存主密钥mk=(msk,sk),公开系统参数pp=(mpk,vk,crs);所有其他算法都隐式地指定pp作为输入。
[0088]
2)加密密钥生成
[0089]
对每一个发送方,加密密钥生成算法ekgen(mk,s).输入主密钥mk和属性集合s,输出加密密钥eks。
[0090]
具体为:
[0091]
首先,可信授权机构授权其一个属性集合s={a1,a2,...,ak},运行ekgen算法获得加密密钥。
[0092]
具体而言,定义选择随机数
[0093]
生成签名可信授权机构通过安全通道将加密密钥eks=(s,m,σ)返回给发送方。
[0094]
3)解密密钥生成
[0095]
对于每个接收方,受信任的授权机构允许其灵活指定用于控制数据流的访问控制策略p,输入主密钥mk和访问控制策略p,可信授权机构运行dkgen(mk,p)算法生成解密密钥。
[0096]
具体地,给定接收方策略其中是一个l行n列的矩阵,选择随机数设置计算
[0097]
然后,选择随机数为每一个τ∈[l],计算:
[0098][0099]
最后,可信授权机构通过安全通道将解密密钥dk
p
={d
τ,0
,d
τ,1
,d
τ,2
}
τ∈[l]
发送给接收方。
[0100]
4)数据加密算法encrypt(eks,m).输入加密密钥eks和消息m,输出加密后的密文c。
[0101]
给定明文数据m,发送方使用加密密钥eks=(s,m,σ)运行encrypt算法来加密数据。
[0102]
首先,选择随机数计算c=m
·
e(g0,g1)
αs
和对每一个τ∈[k],计算和得到ct=(c,c0,{c
τ,1
,c
τ,2
}
τ∈[k]
)。
[0103]
其次,发送方运行schnorr方案的证明算法计算出零知识证明π,以向净化器证明其拥有正确的具体,发送者通过以下四个等式的证明得到π。
[0104][0105]
最后,发送方安全地发送密文c=(ct,π)给净化器。
[0106]
5)密文净化
[0107]
对上传的每一个密文c=(ct,π),净化器运行算法sanitize(c)进行净化。输入与属性集合s关联的密文c,如果发送方被授权写向s,则输出一个净化密文c
′
,否则输出
⊥
。
[0108]
首先,净化器验证零知识证明π,以验证发送方拥有s对应的加密密钥,如果验证失败,则丢弃密文。
[0109]
然后,检测密文ct是否与接收密文中声明的属性集s一致;首先,检查是否|s|=k。然后,对于每个元素检查等式是否成立,如果失败,净化器丢弃密文。
[0110]
如果所有的检查都通过,如下计算净化密文:
[0111]
选择随机数计算并对每一个τ∈[k]计算计算如下:
[0112][0113][0114]
最后,净化器将净化密文c
′
=(c
′
,c
′0,{c
′
τ,1
,c
′
τ,2
}
τ∈[k]
)上传到云服务器。
[0115]
6)数据解密
[0116]
接收方通过订阅的方式从云服务器接收数据。对于净化密文c
′
,接收方用解密密钥dk
p
运行decrypt(c
′
,dk
p
)算法解密出明文m;输入与属性集合s关联的净化密文c
′
和解密密钥dk
p
,如果s满足策略p,则输出明文m,否则输出
⊥
;
[0117]
具体地,令i={i:ρ(i)∈s}为lsss矩阵中对应属性集合s的行集合。如果s∈p,计算常量满足这里是矩阵的第i行。然后计算
[0118][0119]
其中,τ是s中属性ρ(i)的索引。最后,接收方可以恢复出明文m=c
′
/b。
技术特征:1.一种云环境下基于可净化属性加密的数据流通控制方法,其特征在于,具体步骤如下:首先,搭建包括可信授权机构、发送方、净化器、云服务器和接收方的数据流通控制平台;可信授权机构向每个发送方生成加密密钥,并向每个接收方生成配套的解密密钥;然后,发送方对每个待发送的数据先使用随机的消息密钥来处理,然后使用加密密钥封装消息密钥,最后将加密密文发送给净化器;净化器检查加密密文并使用随机的消息密钥对密文进行净化后,将净化密文c
′
上传至云服务器;云服务器接收净化密文c
′
并存储,用于发送给任何订阅的接收方;最后,接收方根据访问控制策略p从可信授权机构获得相应的解密密钥;当从云服务器接收到净化密文后,当密文中的属性集合满足其访问控制策略,则恢复出明文。2.如权利要求1所述的一种云环境下基于可净化属性加密的数据流通控制方法,其特征在于,所述可信授权机构向每个发送方生成加密密钥,并向每个接收方生成配套的解密密钥;具体为:对每个发送方,可信授权机构运行ekgen算法获得加密密钥ek
s
=(s,m,σ),通过安全通道将加密密钥返回给发送方;s={a1,a2,...,a
k
}为输入的属性集合,是属性集合s中所有属性哈希值的集合;σ是对属性哈希值集合m的签名;对于每个接收方,给定接收方策略其中是一个l行n列的矩阵,ρ是映射函数,将矩阵中的每一行映射成一个属性;可信授权机构根据访问控制策略p运行dkgen算法生成解密密钥,通过安全通道将解密密钥dk
p
={d
τ,0
,d
τ,1
,d
τ,2
}
τ∈[l]
发送给接收方。3.如权利要求1所述的一种云环境下基于可净化属性加密的数据流通控制方法,其特征在于,所述加密密文为c=(ct,π);π为零知识证明;ct=(c,c0,{c
τ,1
,c
τ,2
}
τ∈[k]
)是对消息进行属性加密的密文,包括消息的对称加密密文c和由属性集s生成的访问控制密文(c0,{c
τ,1
,c
τ,2
}
τ∈[k]
),k是属性集s中的属性个数。4.如权利要求1所述的一种云环境下基于可净化属性加密的数据流通控制方法,其特征在于,所述净化器检查加密密文并对密文进行净化的过程为:对上传的每一个密文c,首先,净化器运行sanitize算法验证该密文中的零知识证明π,以验证发送方拥有属性集s对应的加密密钥,如果验证失败,则丢弃密文;验证成功后,继续检测密文ct是否与接收密文中声明的属性集s一致;如果不一致,则验证失败丢弃密文;当检测一致后,对于属性集s的每个属性哈希值元素继续检查是否满足等式:如果失败,净化器丢弃密文;g1和w均为公开系统参数;成功后,净化器选择随机值s
′
对原始密文中ct进行随机化,得到和原始密文ct形式相同的净化密文c
′
=(c
′
,c
′0,{c
′
τ,1
,c
′
τ,2
}
τ∈[k]
)。5.如权利要求1所述的一种云环境下基于可净化属性加密的数据流通控制方法,其特征在于,所述接收方根据访问控制策略p恢复明文的过程为:
对于净化密文c
′
,接收方用解密密钥dk
p
运行decrypt算法解密出明文:m=c
′
/b具体地,令i为矩阵中对应属性集合s的行集合;当属性集合s满足其访问控制策略p,计算常量ω
i
满足满足是矩阵的第i行;(d
i,0
,d
i,1
,d
i,2
)为解密密钥。
技术总结本发明公开了一种云环境下基于可净化属性加密的数据流通控制方法,属于数据安全技术领域;具体为:首先,搭建包括可信授权机构、发送方、净化器、云服务器和接收方的数据流通控制平台;可信授权机构向发送方生成加密密钥,向接收方生成配套的解密密钥;然后,发送方对每个待发送的数据先使用随机的消息密钥来处理,然后使用加密密钥封装成加密密文发送给净化器;净化器使用随机的消息密钥对密文进行净化后,上传至云服务器发送给任何接收方;接收方根据访问控制策略P获得相应的解密密钥,当密文中的属性集合满足其访问控制策略,则恢复出明文。本发明能同时实现数据的读和写控制,有效抵抗KP-ABE方案中恶意发送者泄露消息密钥导致的攻击。钥导致的攻击。钥导致的攻击。
技术研发人员:黄勤龙 王超
受保护的技术使用者:北京邮电大学
技术研发日:2022.07.25
技术公布日:2022/11/1