清明时节雨纷纷,路上行人欲断魂,借问酒家何处有,牧童遥指杏花村! 时光匆匆,读起这首诗时脑海中总是回想起儿时的点点滴滴,村庄,农田,溪河,故人......,眨眼已经二十有五,真感觉到白驹过隙啊,儿时的一切无论在现实还是想象中早已不存在!
前言
随着科技不断的发展,数字化的普及,数据的安全性和隐私保护越来越受到重视。传统的加密算法在一些特定的应用场景下已经不能满足需求,因此需要一种更为灵活的加密方式。基于此,属性加密(Attribute-based Encryption,简称ABE)应运而生。ABE是一种新兴的加密技术,它不仅能够保证数据的安全性,而且能够对数据的访问进行灵活的控制。本文将介绍一种基于ABE的加密方式:CP-ABE。
CP-ABE是一种基于属性的加密技术,它能够对数据进行细粒度的访问控制。CP-ABE是由Sahai和Waters于2005年提出的,与传统的公钥加密算法不同,它的加密密钥和解密密钥都是和用户的属性相关的。在CP-ABE中,数据的访问权限是由用户的属性来控制的。具体地说,CP-ABE将用户的属性和访问策略映射到一个访问结构中,并根据访问结构来进行数据的访问控制。如果用户的属性满足访问策略,那么用户就可以解密数据。
加解密过程
CP-ABE的加密过程如下。假设数据拥有一些属性,访问策略也包含了一些属性。首先,数据的所有属性都被映射到一个访问树中。然后,访问树中的叶子节点代表数据的属性,内部节点代表访问策略的属性。加密者根据访问策略选择一个随机数作为密钥,并使用AES等对称加密算法加密数据。然后,使用CP-ABE算法将随机数加密,并将加密后的随机数和加密后的数据一起发送给用户。
CP-ABE的解密过程如下。用户首先需要从认证机构获取自己的私钥,私钥包含了用户的属性和访问策略。如果用户的属性满足访问策略,那么就能解密数据。
与传统公钥加密相比
传统的加密有对称加密和非对称加密,对称加密是加密方和解密放需要使用同一把密钥进行加解密,非对称加密则是一个密钥对,加密方使用密钥对的公钥进行加密,解密方通过密钥对的私钥进行解密,我们接下来讨论的是非对称加密和CP-ABE加密。
公钥加密
假设我们需要对某个文件进行加密,然后发送给5个用户,如果使用公钥加密的方式,因为密钥是成对出现,所以需要使用5个用户的公钥进行5次加密,然后再把加密后的文件发送给5个用户,自然产生了5个加密文件,每个用户再用自己私钥解密文件。
CP-ABE属性加密
使用CP-ABE属性加密的化就只需要加密一次文件,符合属性的人就可以进行解密,如下加密文件只能部门领导或者组长解密,那么二它的属性就为{role:部门领导 OR role:组长},只要是组长或者部门领导就能解密文件。
与RBAC权限控制的区分
从上面我们举了例子来说明CP-ABE是基于属性来进行加密,然后也是基于属性来进行解密的,我们上面说某些人能看文件,某些人不能看文件,那么你可能会觉得,控制访问权限不就得了,我们在进行权限设计时,一般都会用RBAC权限模型,它是基于角色权限的,也就是什么角色有什么权限,然后某人是什么角色,虽然这样也能做到某人是否能看某文件,但是这种控制的本质是控制用户能否在页面看到数据,但是数据本身是不安全的,比如黑客拿到数据后,这些所谓的权限是没有半点用的,而CP-ABE是对数据进行加密后的,即使拿到,没有对应的权限,也就无法生成密钥,自然解密不了文件。
应用
我们可以想到,CP-ABE的这种加密方式是很灵活的,因此,它用在很多场景也很适合,对于对数据安全很重要的地方,它是很适合的。
医疗领域
CP-ABE的一个重要应用是在医疗保健领域,我们知道在医疗领域有很多患者的病例信息是隐私的,需要进行保护,例如,一名患者的医疗记录可以加密为一组属性,并只授权给那些具有相应医疗许可证的医生来访问,这样可以保护患者的隐私,并确保只有授权的人才能查看敏感信息。
政府机构
政府机构需要处理大量机密数据,包括个人身份信息、国家安全信息等。这些数据的机密性很高,使用CP-ABE可以实现对这些数据的保护和访问控制,只有具有特定属性的政府工作人员才能访问数据。
当然,它的应用场景不止上面这两个,只要涉及到安全的领域,CP-ABE它都有一定的用武之地。
与区块链的关系
其实从CP-ABE中我们能看出它能保证数据的安全性,那么很多人就会把它想成区块链的特性,数据不可篡改,但是这两者是没有什么关系的,在区块链中,我们是不会去储存文件的,那要怎么保证文件的不可篡改和可信呢,我们一般是对文件进行Hash处理,然后区块链上只存储文件的hash值,那么如果文件被篡改过,hash值自然变了,这时和区块链上的hash对比起来不一样,而区块链上的数据是修改不了的,可信的,所以我们自然认为文件被修串改过了,所以CP-ABE和区块链本身没关系,但是二者可以进行一些柔和,让数据更加安全。
今天的分享就到这里,感谢你得观看,我们下期见!