属性基加密基础知识
1.访问控制加密(ACE)
首先先弄清楚啥是ACE(Access Control Encryption)。
以前Bell和LaPadul[1]
提出了IFC(information flow control)的概念,它可以限制系统中,谁可以接收消息以及谁可以发送消息,但是我们还需要更多功能,比如限制谁可以写密文并传输,由此, Damg ̊ard等人[2]提出了ACE。
-
ACE方案中定义了两个安全概念:No-READ rule和No-WRITE rule。未授权的接收者不能解密密文、未授权的发送者不能发送消息。
-
ACE 方案假定所有通信都通过一个诚实但好奇的第三方(称为 Sanitizer)进行传输。诚实且好奇指sanitizer遵守协议规范,但可能会尝试推断一些敏感信息,包括用户(发送方和接收方)的身份或者破坏消息的机密性。会在传输消息之前,在不知道消息新内容和用户身份的情况下,对消息进行一些操作。
2.与门访问结构(AND-gate)
与门访问结构属于单调访问结构的一种。啥是单调访问结构呢?
令为一系列参与者的集合,令其幂集为
集合是单调的,当且仅当任意子集,如果且,则。一个访问结构(单调访问结构)是的幂集的非空子集,即,在中的集合为授权集合,不在的集合为非授权集合。
解释:是参与者集的幂集的子集,是一个集合的集合,是参与者集的子集, 当包含于时,即是中一个元素(集合)时,若同时是的子集, 使得也包含于,即也是的一个元素(集合),则是单调的。直观上理解就是中的元素(集合),所包含的参与者集是单调增长的,Venn图画出来大致就是这样,一个集合包含一个集合,没有偏离的部分。
举例:假设有用户{1,2,3,4},只有 (1,2) 合作,或者 (3,4) 合作可以恢复秘密,(1,3,4) 当然也可以恢复秘密,但是 (1,3,4) 不是 ((1,2),(3,4)) 的超集。
注: CP-ABE中,属性就是参与者,所以满足密文访问结构的属性集合,就是定义的授权集。通常只考虑单调访问结构。
与门访问结构又可以细分为普通与门,支持正负属性的与门、支持正负属性和通配符的与门、支持多值属性的与门、支持多值属性和通配符的与门。由于支持多值属性和通配符的与门访问结构相对其他的与门访问结构更加灵活,且可以实现密文的长度恒定,具有良好的特性,所以这里只介绍这种访问结构[3]
假设表示系统所有属性的集合,同时每一个属性能够拥有多个属性值,令,表示的个数。假设用户具有的属性集为,并且访问结构为,其中是下标索引集合,上面的访问结构其实就是所有元素的交集。用户属性集的某个属性值和访问结构中的元素值是一一对应的,如果对于的,若或 ,那么就满足;否则不满足,其中可以表示任何值。
举例:如下图,访问结构中,访问结构逻辑表达式为。假设系统用户Alice的属性列表为,Bob的属性列表。由此可知,Alice满足而Bob不满足。
flowchart TD and((AND))---A2 and((AND))---B1 and((AND))---C* and((AND))---D4 and((AND))---E2
3.双线性对映射
3.1 群
群就是一些元素和这些元素的运算方式(可以是加减乘除)的集合,但这些元素里有一个很特殊的,就是单位元,单位元和这些元素里除了单位元之外的元素运算后,还是那个元素。比如整数集里面,加法的单位元就是0;乘法的单位元则是1。单位元通常用来表示。
3.2 循环群
设群,其中表示群里的运算方式,在这个群里如果存在一个元素,即,使得中的每个元素都可以用的形式表示(为整数),那么就称是一个循环群,那么这个就是这个群的生成元。如果表示乘法,那么就称这个循环群为乘法循环群。
综上,群里的每个元素都是生成元通过次自运算得到的。比如乘法循环群,
3.3 阶
设群,使得成立,为正整数,可有多个,在的所有取值中,找到最小的那个正整数当作这个群的阶。
我先认为成立,那么,那么,所以可以是(为正整数),在一个含有无数个元素的循环群里,也有无数种可能,但在有限个元素的循环群中,我们就取所有可能值中最小的那个。
这时就可以得出一个循环群里的所有元素都可以通过生成元的自运算得到,然后它自运算次后就得到了群的单位元,而且自运算的次数在1到之间的每次变化就会得到不同的群元素,那么自运算的次数达到次时,得到群的单位元,自运算到时,又得到单位元。那么自运算次数从1到的结果是否与自运算次数到的结果相同呢?
假设生成元为,阶数为,自运算次数从1到,那么得到的群元素为;自运算次数从到,易得,发现结果是一一对应的。由此,阶数就是一个循环周期的长度。
还有个问题,为什么?生成元自运算了阶数次就正好得到单位元?这里引出一个限制条件,生成元在一个循环周期内进行相应的自运算次数后,它要有个不能重复的元素。
现在拿一个模6的加法循环群来举例,它的元素有0,1,2,3,4,5,其中0是单位元。下表横轴表示运算次数,模6的结果就是除以6后取的余数。
元素 | 1 | 2 | 3 | 4 | 5 | 6 |
---|---|---|---|---|---|---|
0 | 0 | 0 | 0 | 0 | 0 | 0 |
1 | 1 | 2 | 3 | 4 | 5 | 0 |
2 | 2 | 4 | 0 | 2 | 4 | 0 |
3 | 3 | 0 | 3 | 0 | 3 | 0 |
4 | 4 | 2 | 0 | 4 | 2 | 0 |
5 | 5 | 4 | 3 | 2 | 1 | 0 |
由表可知,每个元素都有它对应的阶,例如2的循环周期是3,即一组(2,4,0)为一个周期。能生成完整群元素的只有元素1和5,而元素2,3,4的周期只能生成部分元素,进一步,元素1和5与6互素,元素2,3,4对应的阶数是群阶数6的公因子。那么,当元素与群阶数互素时,元素阶数就是最大公因子,也就是群阶数。
综上,选择生成元时,要选择与群阶数互素的元素来作为生成元。
综上,基于生成元得到的群阶数为群里不重复元素的最大个数。
3.4 双线性对映射
设和分别是阶为素数的乘法循环群,为的生成元。若映射能满足以下条件,则称为双线性对映射:
- 双线性性:和,都满足;
- 非退化性:,使得,其中1是的单位元;
- 可计算性:,存在有效算法能计算。
双线性对映射具有如下性质:
- ,有;
- ,有。
映射本质上就相当于函数运算一样,我们有两个输入,然后经过映射的函数运算之后得到一个结果。这个结果是属于的。然后满足上面那三个条件了,我们就称其为双线性映射。其实,我们理解到这里就行了,重要的是利用它的性质来计算。
4.拉格朗日插值法
这里引用一下这篇文章的例子[4]
假设我们的秘密值是,我们希望将秘密分为6个部分(),其中3个部分的任何子集足以重建秘密值。
我们随机获得2个数字:166,94(),由此用于产生秘密份额(点)的多项式为:
从该多项式构造6个点:(1,1494)(2,1942)(3,2578)(4,3402)(5,4414)(6,5614),我们给每个参与者一个不同的单点(和)。
为了重建秘密,任何3份就够了。考虑(2,1942)(4,3402)(5,4414)三点,通过下式计算
由此
通过上图这样的计算,只要满足了设定的单点个数,就能恢复出原始的秘密值。比如现在有个访问策略有6个属性,只要满足其中3个就可以恢复出秘密值,这就扩展了访问策略的复杂性,使其支持更多场景下的访问策略的设定。
5.二进制表示集合中的子集(Binary Representation of a subset)
对于一个给定的宇集合(大小为),可以使用长度为的二进制字符串来表示集合的每个子集。这种表示方法通常用于在计算机科学和离散数学中处理集合和子集的问题。
在这种表示法中,二进制字符串的每一位对应于集合 U 中的一个元素。如果某个元素属于子集,则对应的二进制位就设为 1;如果不属于子集,则设为0。这样,通过检查二进制字符串的每一位,就可以确定集合中的元素是否包含在子集中。
例如,如果集合,而子集,那么它的二进制表示可以是 (1, 0, 1)。这里,第一位对应于元素 a,设为 1 表示 a 在子集中;第二位对应于元素 b,设为 0 表示 b 不在子集中;第三位对应于元素 c,设为 1 表示 c 在子集中。
- 1.D Elliott Bell and Leonard J LaPadula. Secure computer systems: Mathematical foundations. Technical report, DTIC document, 1973. ↩
- 2.Ivan Damg˚ard, Helene Haagh, and Claudio Orlandi. Access control encryption: Enforcing information flow with cryptography. In Martin Hirt and Adam D. Smith,editors, TCC 2016-B, Part II, volume 9986 of LNCS, pages 547–576. Springer,Heidelberg, October / November 2016. ↩
- 3.Ling Cheung and Calvin Newport. 2007. Provably secure ciphertext policy ABE. In Proceedings of the 14th ACM conference on Computer and communications security (CCS '07). Association for Computing Machinery, New York, NY, USA, 456–465. https://doi.org/10.1145/1315245.1315302 ↩ ↩
- 4.https://zhuanlan.zhihu.com/p/386078331 ↩