区块链技术具备篡改难度高、使用成本低、分布式的优点,本应成为各行各业的重要助力。但链上参与方担心自己的核心数据外泄,不愿数据上链,成为区块链落地的主要难题。

在现有技术中,ABE 密码学为这个问题提供了一个可行的方案。通过 ABE,区块链中数据所有权将得到有效保护,链上数据依旧为参与者本人所有,外人无法控制。

那么,什么是 ABE?它如何完善区块链技术呢?北大信息安全博士生、北大软微八分量协同创新实验室的成员和 Trias 公链团队对此作出了探讨。

作者:北大信息安全博士生、北大软微八分量协同创新实验室的成员和 Trias 公链团队

作为国内外研究的重点领域,计算机界关于密码学的研究热度一直居高不下。有「计算机诺贝尔奖」之美誉的图灵奖,其得主大半都是来自于加密领域。

在外界看来,密码学同量子力学一样,属于一门高深莫测的学问。但实质上,不同于量子力学的原理较为复杂抽象,密码学基本原理并不难懂,其问题多可以归结为求解一个数学问题。也就是说,密码问题,通常是数学问题。

ABE 密码学是什么

作为密码学的重要分支,从定义来讲,ABE 是基于属性的加密,即(Attribute-Based Encryption)。与 RSA、IBE (基于身份加密)等加密方式相比,其最大的不同点是实现了一对多的加解密。也就是说,ABE 不需要像其他加密方式那样,每次加密都必须知道接受者的身份信息,当用户拥有的属性符合加密者所描述的策略时,用户就可以解密。

这里提到了属性一词。那么,属性指的是什么呢?

属性可以理解为一个对象具有的某些特征。举个例子,Jacky Li 是 A 大学信息安全学院的教授,那么「A 大学」,「信息安全学院」以及「教授」就是 ABE 中刻画 Jacky Li 这个人的多个属性,多个不同的属性,可以构成不同的属性集合。在此基础上,策略实际即是由属性及它们间关系所组成的一个逻辑表达式。

倘若抛开严谨的定义,用一句话说明 ABE 公钥加密算法,其实就是看属性集合与策略是否匹配密码要求的一个游戏。

了解数字货币的朋友,对公钥和私钥的概念大题不会陌生。用银行卡作类比的话,我们可以近似的把公钥理解为银行卡号,把私钥理解为银行卡密码,用户通过私钥来尝试解密密文。

在 ABE 中,我们弱化公钥这一概念,称之为公共参数(public parameter)。属性集合则被嵌入到私钥中,如果用户拥有的属性可以与密码要求的策略匹配成功,那么就可以成功解密啦!

一个具体的例子

现有一条密文策略规定:参与 X 课题 or (信息安全学院 and A 大学 and 教授)。

这条策略表达的含义是,唯有 X 课题组的成员或 A 大学信息安全学院的教授才能满足要求进行解密。现在有三个用户,分别是 A 大学信息安全学院的 Alan 教授,A 大学经济管理学院的 Black 教授,B 大学参与 X 课题的 Charles 教授。

三个用户中,Alan 的属性集合{计算机学院,A 大学,教授}满足要求,Charles 的属性{参与 X 课题}也满足要求,但是 Black 的属性不能满足要求。所以 Alan 和 Charles 解密成功,而 Black 解密失败。

两种不同的方案

目前,实现 ABE 的方案主要有 CP-ABE (密文策略 ABE)和 KP-ABE (秘钥策略 ABE)。二者最大的分别在于策略和属性的匹配方式上。

所谓 CP-ABE,指的是策略嵌入在密文中,属性集合嵌入到密钥中,当且仅当属性能够满足策略时可以解密。而 KP-ABE 是指,策略嵌入到密钥中,属性集合嵌入到密文中。

虽然在结构上,二者具有明显的对偶关系,但在实际使用中,二者的应用场景却有着明显的不同。CP-ABE 由于策略嵌入密文中,这就意味着,数据拥有者可以通过设定策略去决定拥有哪些属性的人能够访问这份密文,也就相当于对这份数据做了一个加密访问控制。

CP-ABE 的应用场景一般是公有云上的数据加密存储与共享,而 KP-ABE 的应用场景则更加偏向于付费视频网站、日志加密管理等等。

5 分钟了解 ABE 密码学,以及与区块链结合的价值

与区块链怎么结合

目前,从宣传来看,如签名、加密等技术与区块链相结合,已经不是一件很稀奇的事,很多团队都在宣称将各种新技术加进自己的区块链产品中。尤其是此前牛市的时候,几乎一条新技术结合的新闻就能带来一轮猛涨。

但事实上,仅把技术与区块链结合并不困难,问题在于结合以后究竟有没有价值呢?

任何新技术加进来之后,其价值最终还是要归到对链本身有所优化上,不能加进某个新技术之后,对链本身没什么影响,甚至还拖慢了性能。即便知名度高如以太坊,围绕着分片技术进行了多次的讨论与升级,结果也始终差强人意。

因此,Trias 公链设计的重点放在研究其实现难度以及可能存在的问题上,比如共识算法的优化、效率的提升、区块如何设计等,重点在于找准他们的重点场景、真实场景,而非仅仅作为噱头来展示。

这是很有远见的做法。「磨刀不误砍柴工」,在任何一项技术与区块链的结合之前,都要针对应用场景的业务流程和技术支撑进行反反复复的探讨和可行性验证。仓促上马的应用产品,或者由于安全性不足或性能落后而无法落地的公链,都会遇到难以真正落地的困境。

价值,在于隐私性

目前,Trias 正在深化推进 ABE 在各领域的可行性价值研究。Trias 认为,ABE 密码学与区块链结合的要义在于隐私性。

我们知道,区块链的一大特点在于数据共享,这本是区块链的一大优点。然而,在实际应用中,很多参与者的数据很涉及机密,数据所有者并不乐意把自己的数据公开出来。

比如在金融领域。数据上链可以提高数据本身的安全性,也有利于监管机构从区块链中调取数据进行监管,这些我们都知道了。但是为什么金融领域的区块链应用迟迟推进不下去呢?一个亟待解决的重要问题是,金融公司本身不愿意将数据存在链上。因为这些数据都是相当敏感且重要的,一旦数据外泄,会带来不小的损失。

而 ABE 则有利于解决这个问题。通过 ABE,金融公司可以将自己的数据加密后传到链上。由于数据全程都是密文,链上其他人拿到的都只是乱码,拿到了也没有用。

与之相对,金融公司自身可以控制谁能对数据进行访问,只需要把数据访问的权限交给监管机构和与之有数据合作的伙伴即可。

传统的加密方式是将数据加密后,将秘钥发送给各个需要访问数据的机构,这种方式效率虽然比较高,但是一旦秘钥外泄,无法断定是哪一个机构作为。相比起传统的加密,ABE 的好处很明显,因为每一个机构的属性不尽相同,其秘钥也不尽相同,一旦我把秘钥泄露给外界,很容易就被追查得到。

当然,目前外界对 ABE 了解不多,人们很不愿意去相信不熟悉的东西,这是任何新技术诞生之后但会面临的窘境。如何制定相关标准并让各行业从业者了解到 ABE 的价值,还需要一段时间去解决。