北大学术 | 基于属性的加密概述

Trias联合“北大软微-八分量协同创新实验室”定期举办技术沙龙。该实验室成立于去年9月份,以可信计算、区块链等作为主要研究方向,致力于推动智能互联新时代下的人机互信问题的解决。针对沙龙具体细节问题,我们将推出由实验室教授、博士生主笔撰写的系列文章。本期文章由北京大学的两位博士生李聪、冯新宇撰写。

关注信息安全圈的小伙伴,九月初可能看到了一则新闻,欧洲电信标准协会(ETSI)发布了两套新的基于属性的加密(Attribute-Based Encryption,ABE,下文的描述中均使用英文缩写)标准。新加密标准被认为可确保个人数据只会在用户密钥的属性匹配加密属性时才能解密。

看完这则新闻,你或许不禁会问,什么是ABE?什么又叫做用户密钥的属性匹配加密属性?下面就聊聊ABE中的几个基本问题。

属性,属性集合及策略

百度百科中对属性的解释是:“属性就是人类对于一个对象的抽象方面的刻画。由于事物属性的相同或相异,客观世界中就形成了许多不同的事物类。具有相同属性的事物就形成一类,具有不同属性的事物就分别地形成不同的类”[1]。

在ABE中,属性也有着相似的作用。举个例子,Jacky Li是A大学信息安全学院的教授,那么“A大学”,“信息安全学院”以及“教授”就是ABE中刻画Jacky Li这个人的多个属性,这些属性可以构成一个属性集合,我们可以把它记为集合SJacky L。

下面我们聊聊策略。一种简单的理解是策略实际即是由属性及它们间关系所组成的一个逻辑表达式,例如下式Policy1:

参与X课题 or(信息安全学院 and A大学and 教授)

这是一条简单的策略,其表达的含义是唯有X课题组的成员或是A大学信息安全学院的教授才能满足其要求。

最后,还必须说说属性集合与策略的匹配。

我们仍使用SJacky Li与Policy1进行说明。SJacky Li集合中没有“参与X课题”这一属性,故其无法满足策略的前半部分;而策略的后半部分,要求“信息安全学院”、“A大学”、“教授”这三个属性同时出现,而SJacky Li同时包含了这三个属性,所以属性集合匹配策略后半部分,由于策略前后两部分是or的关系,故属性集合SJacky Li能够满足策略Policy1,我们称之为属性集合与策略匹配成功

(策略与属性集合匹配成功示意图)

 倘若此时另一个用户Johnson,他的属性集合是SJohnson= {计算机学院,A大学,教授},显然SJohnson无法满足Policy1,此时属性集合与策略匹配失败。

(策略与属性集合匹配失败示意图)

什么是ABE?

清楚了ABE中的属性及策略的概念,我们开始解释什么是ABE。抛开严谨的定义,用一句话说明ABE加密算法其实就是看属性集合与策略是否相匹配的一个公钥加密“游戏”。

简单解释下这句话,首先ABE是一个公钥加密算法,既然是公钥加密算法,就有公钥和私钥的概念,每一名参与ABE系统的用户都有一个属于自己的私钥,而加密方在加密数据时使用的则是公钥,在ABE中我们弱化公钥这一概念,称之为公共参数(public parameter)。

(传统公钥加密算法加解密示意图(该图片来于百度图片库)[2])

其次,在传统公钥加密中,用户会使用其私钥尝试解密密文,ABE也不例外。

与传统方法不同的是,设计者将属性集合与策略嵌入到了用户私钥与密文中,这样一来,私钥与密文输入解密算法尝试解密的过程,实际也就是属性集合与策略相匹配的过程,倘若能够匹配成功,则算法顺利完成解密操作,用户可成功恢复出明文数据。倘若匹配失败,则用户无法恢复明文,解密失败。

KP-ABE与CP-ABE

在这里还有两个概念需要说明,即KP-ABE与CP-ABE。

KP-ABE,Key-Policy ABE,翻译过来即是密钥策略ABE,什么是密钥策略?上文中提到了ABE的解密过程中需要进行策略与属性集合匹配的操作,但实际我们并没有说清楚策略和属性集合分别在哪。Key-Policy指的是策略嵌入用户密钥中,属性集合嵌入于密文中,在解密的过程中,用户将嵌入策略的密钥与嵌入属性集合的密文输入解密算法,通过这种方式,实现策略与属性集合的匹配。

而CP-ABE(Ciphertext-Policy ABE,密文策略ABE)呢?自然是策略嵌入在密文中啊!它与KP-ABE在结构上是一种对偶关系,这也就是为什么往往学者们在提出一个新的CP-ABE方案时,会在同一篇论文中同时再提出一个KP-ABE方案。同样条件与假设下,两类算法的密文密钥结构设计比较好类比与迁移。

需要注意的一点是,这种相似性仅存在于结构上,CP-ABE与KP-ABE在应用场景方面有着极大的不同。

CP-ABE由于策略嵌入密文中,这就意味着,数据拥有者可以通过设定策略去决定拥有哪些属性的人能够访问这份密文,也就相当于对这份数据做了一个粒度可以细化到属性级别的加密访问控制。

CP-ABE的应用场景一般是公有云上的数据加密存储与细粒度共享,而KP-ABE的应用场景则更加偏向于付费视频网站、日志加密管理等等(由于篇幅的关系,具体场景会在后续文章中继续讨论)。

ABE的优势是什么?

我们以CP-ABE为例,举一个简单的例子说明ABE相较传统公钥加密算法的优势。

一个数据拥有者需要将一份明文文件,加密发送给N个不同的用户,倘若使用传统公钥加密算法,数据拥有者需要首先保存这N个用户的公钥(不考虑公钥证书的情况下),利用这N个不同公钥,使用该份明文文件,加密N次,形成N份不同的密文,分别发送给这个N个用户。

(使用传统公钥加密算法示意图)

若使用ABE来完成这项任务则会轻松很多。此时,数据拥有者只需要制定一条仅有这N个用户才能满足的访问策略,接着输入公共参数PP、该条策略以及明文文件至ABE加密算法,进行加密一次,形成唯一一份密文。得到密文后,数据拥有者将该份密文分别发送给这N个不同用户。

(使用ABE算法示意图)

从加密计算开销与存储开销的角度来看,ABE在该场景下(数据加密共享场景)相较于传统公钥加密算法,有着肉眼可见的性能优势,此处便不再赘述。

结语

在本文最后,给出维基百科对于ABE的定义[3],是不是发现你能明白这段文字在说什么了?

ABE从06年正式被提出到现在,已经经历了十二个年头。在这十二年里,ABE领域都是公钥密码学研究中的一个重要方向。

随着ETSI新型加密标准的提出,相信ABE会越来越多地进入产业界的视野,逐渐成为一项可以落地的技术。在后续的文章中,我们还将对ABE的更多问题以及ETSI发布的标准进行更深入地讨论,敬请期待!

引用

[1] 百度百科

https://baike.baidu.com/item/%E5%B1%9E%E6%80%A7/1405051?fr=aladdin

[2]百度图库

http://u6.gg/f4QMa

[3] 维基百科

https://en.wikipedia.org/wiki/Attribute-based_encryption

猜你喜欢

转载自blog.csdn.net/triaslab/article/details/85233601