-
2020-08-30 19:11:18
属性加密技术
基于身份的加密体制简介
- 基于身份的加密体制可以看作一种特殊的公钥加密,它有如下特点:系统中用户的公钥可以由任意的字符串组成。这些字符串可以是用户在现实中的身份信息,如:身份证号码、用户姓名、电话号码、Email地址等,因为用户的公钥是通过用户现实中的相关信息计算得到的,公钥本质上就是用户在系统中的身份信息,所以公钥真实性问题和证书管理问题在基于身份加密的系统中就不再需要。
基于身份加密体制的优势在于
- 用户的公钥可以是描述用户身份信息的字符串,也可以是通过这些字符串计算得到的相关信息。
- 不需要存储公钥字典和处理公钥证书。
- 加密消息只需要知道解密者的身份信息就可以进行加密,而验证签名也只需要知道签名者的身份就可以进行验证。
基于属性的加密体制的研究背景和意义
- Sahai和Waters两位密码学家为了改善基于生物信息的身份加密系统的容错性能,在2005年欧洲密码年会上发表了《模糊基于身份加密方案》一文,并在这篇文章中首次提出了基于属性加密(Attribute-Based Encryption ABE)的概念。 在基于属性加密的体制中用属性集合表示用户的身份,这是与基于身份加密(Identity-Based Encryption,IBE )根本的区别。在基于身份加密系统中,只能用唯一的标识符表示用户的的身份。而在基于属性加密系统中,通过属性集合表示用户的身份,其中的属性集合由一个或多个属性构成。从用户身份的表达方式来看,基于属性加密的属性集合比基于身份加密的唯一标识符具有更强、更丰富的表达能力。
- 基于属性加密可以看作是基于身份加密的扩展和延伸。基于属性加密把基于身份加密中表示用户身份的唯一标识,扩展成为由多个属性组成的属性集合。从基于身份加密体制发展到基于属性加密体制,这不仅是用户身份的表达形式从唯一标识符扩展到多个属性,还将访问结构融入到属性集合中,使公钥密码体制具备了细粒度访问控制的能力(如:通过密文策略和密钥策略来限制用户对密文的访问和解密能力)。
- 从唯一标识符扩展成属性集合,不仅是用户身份信息表示方式上的改变,而且属性集合能够非常方便地和访问结构相结合,实现对密文和密钥的访问控制。属性集合同时还可以方便地表示某些用户组的身份(即:实现了一对多通信),这也是基于属性加密方案所具备的优势。
- 密文和密钥中引入访问结构,这是基于属性加密体制的一大特征,也是与基于身份加密体制本质区别之处。访问结构嵌入到密钥和密文中的好处在于:系统可以根据访问结构生成密钥策略或者密文策略,只有密文的属性集合满足了密钥策略,或者用户的属性集合满足了密文策略,用户才能解密。这样一方面限制用户的解密能力,另一方面也保护了密文。在基于属性加密系统中,密钥生成中心(负责生成用户的密钥)由于用户的身份信息通过属性集合表示,而用户组也具备一些相同属性也可以用属性集合表示。因此在基于属性加密方案中属性集合既可以表示单独的用户,也可以表示多个用户组成的用户组。密文和密钥也是根据属性集合生成的,相对应地密文的解密者和密钥的接收者既可以是单独的用户也可以是用户组。在基于属性加密方案中,可以通过描述用户身份信息的具体或概括,来灵活调整属性集合是代表单独用户还是某个用户组。
- 在Sahai和Waters方案中引入了秘密共享的门限访问结构,如果一个用户能够解密一个密文,当且仅当该用户的属性集和密文的属性集合共有属性的数量达到门限要求。在基于属性加密方案中加密密文需要在属性集合参与下才能进行,参与加密的属性集合所表示的身份信息就是解密者的身份,也是解密密文需要满足的条件。在上述过程中,由于用户的私钥和密文都是根据各自属性集合生成的,因此在基于属性加密方案中,一方面密文是在属性集合参与下生成的,这个属性集合隐含地限定了解密者所要满足的条件。另一方面,一个用户私钥也是根据属性集合生成的,这个属性集合也隐含地确定了用户可以解密的范围,如果密文是以这个属性集合生成的,那么用户就可以解密文。
例子
- 假设系统中门限为3的门限结构,因此只有用户的属性集合中至少有3个属性与密文属性集合相同,用户才能解密。设a,b…h;表示系统中的属性,若系统中有三个用户分别为:A(a,b,c,d,e)、B(b,c,e,f)、C(a,d,g)他们从认证中心获取各自的私钥。现有一个密文,其密义的属性集合为(b,c,d,f)。因为系统的门限是3,这就要求解密用户的属性集合至少含其中三个或三个以上的属性。从ABC三个用户的属性集合可以看出A和B满足条件,他们的属性集合满足了解密条件,能够解密密文。而用户C属性集合不满足要求,因此不能解密。
- 通过上面的例子可以看出,基于属性加密方案中加密和解密具有动态、灵活的特性,能够实现对系统中用户的解密能力和密文的保护方而的细粒度控制,因此属性加密方案有着广阔的应用前景。
基于属性加密的研究现状
基于属性的密钥策略加密方案
过程:
①系统初始化:
- 系统初始化只需要一个隐含的安全参数作为输入参数,不需要其它输入参数。输出系统公共参数PK和系统主密钥MK 。
②消息的加密:
- 以消息M,系统的公共参数PK和一个属性集合S为输入参数。输出消息M加密后的密文E。
③密钥的生成:
- 以一个访问结构A,系统的公共参数PK和系统的主密钥MK为输入的参数。生成一个解密密钥D。
④密文的解密:
- 以密文E,解密密钥D和系统的公共参数PK为输入参数,其中密文E是属性集合S参与下生成的,D是访问结构A的解密密钥。如果S∈A,则解密并输出明文M。
现状
- 在基于属性的密钥策略加密的方案中,通过引入访问树结构,将密钥策略表示成一个访问树,并且把访问树结构部署在密钥中。密文仍然是在一个简单的属性集合参与下生成的,所以如果一个用户能解密密文当且仅当该密文的属性集合满足用户密钥中的密钥策略。通过访问树的引入,非常方便地实现了属性之间的逻辑与和逻辑或操作,增强了密钥策略的逻辑表达能力,更好地实现细粒度的访问控制。
- 2007年,Ostrovsky等提出了一个可以实现逻辑非的基于属性加密方案(属性之间的逻辑关系可以表达逻辑非),丰富了保护策略的逻辑表达能力,完善了文献不能表示逻辑非的空白。该方案中不但构成一个完整的逻辑表达系统,而且也将基于属性加密方案中的访问结构从单调的扩展成非单调的。
- 该方案中访问结构的功能相当于一个线性秘密共享方案的访问结构。另外该方案的安全性证明是在选择属性集合的攻击模型和基于判定双线性困难问题下完成的。
- 基于属性的密钥策略加密方案可以应用在服务器的审计日志方面。服务器的审计日志是电子取证分析中的一个重要环节。通过基于属性的密钥策略加密方案中的方法,可以使取证分析师只能提取与目标有关的日志内容,从而避免了日志中全部内容的暴露。基于属性的密钥策略加密方案的另一个用途就是有针对性的广播加密,特别是在一些收费的电视节目中,用户可以根据个人喜好制定接受的节目。
基于属性的密文策略加密方案
- 2007年,Bethencourt等首次提出了基于属性的密文策略加密方案。在该方案中,用户的私钥仍然是根据用户的属性集合生成,密文策略表示成一个访问树并部署在密文中,这种部署方式和基于属性的密钥策略加密方案相反。当且仅当用户的属性集合满足密文中密文策略时,用户才能解密密文。
过程
- 系统初始化:以一个隐含的安全参数为输入,而不需要其它输入参数,输出系统公共参数PK和系统主密钥MK。
- 消息的加密:以加密消息M,系统的公共参数PK和访问结构A为算法的输入参数,其中A是在全局属性集合上构建的。该算法的输出消息M用A加密后的密文CT。
- 密钥的生成:以一个属性集合S,系统的公共参数PK和系统的主密钥MK作为算法的输入参数。该算法输出私钥SK。
- 密文的解密:以密文CT,系统的公共参数PK和解密密钥SK作为算法的输入参数,其中密文CT包含访问结构A,SK是S的解密密钥。如果属性集合S满足访问结构A,则解密密文。
现状
- 根据以上描述,可以看出基于属性的密文策略加密和广播加密非常相似。该方案还支持密切代理机制,即:如果用户A的访问结构要包含用户B的访问结构,那么A可以为B生成私钥。另外,该方案中通过cp-abe程序包,对方案的性能和效率进行了实验分析。但方案的缺陷在于:方案的安全性证明是在通用群模型和随机预言模型下完成的。
基于属性的双策略加密方案
- 2009年,基于属性的双策略加密方案由Attrapapdung等首先提出,该方案是基于属性的密钥策略加密方案和基于属性的密文策略加密方案的组合。即:方案中的加密消息同时具备两种访问控制策略,在密钥和密文中同时部署两种策略。密文的两种访问控制策略一个表示加密数据自身客观性质的属性,另一个表示对解密者需要满足条件的主观性质属性。密钥的两种访问策略一个表示用户凭证的主观属性,另一个表示用户解密能力的客观属性。只有当用户的主观属性和客观属性满足了密文的主观属性和客观属性时,用户才能解密密文。
过程:
- 系统初始化:以一个隐含的安全参数作为输入,而不需要其它输入参数。输出系统公共参数PK和系统主密钥MK。
- 消息的加密:以输入消息M,系统的公共参数PK,一个主观的访问结构S和一个客观的属性集合。为输入参数。输出密文CT。
- 密钥的生成:这是个随机化算法,以系统的公共参数PK,系统的主密钥MK,一个访问结构O和一个主观的属性集合为输入参数。输出一个解密密钥D。
- 密文的解密:以系统的公共参数PK,解密密钥D和与密钥对应的访问结构O和属性集合,密文CT以及密文对应的访问结构s和属性集合作为输入参数。如果密钥的属性集合必满足密文的访问结构S,同时密文的属性集合。满足密钥的访问结构,则解密密文输出消息M。
现状
- 因为基于属性的双策略加密方案可以看做是基于属性的密钥策略加密方案和基于属性的密文策略加密方案的结合,所以基于属性的双策略加密方案可以根据实际需要转换成单个策略的基于属性加密方案(KP-ABE或CP-ABE )。另外该方案的安全性证明是基于判定双线性Diffie-Hellman指数困难问题完成的。( Bilinear Diffie-Hellman Exponent BDHE)。
其它相关研究
- Pirretti等提出一种新的安全信息管理体系结构,该系统对基于属性加密方案的实际应用做了专门的研究。该文通过基于属性加密系统作为核心组件,构建了一个安全的信息系统。同时还优化了基于属性加密方案中加密算法和解密算法,明显提高了算法的运行效率。另外,该文还实现了基于属性加密的两个重要应用。
基于属性的访问控制技术
基于属性的访问控制介绍
- 基于属性的加密(Attribute-Based Encryption, ABE),又称为属性基加密,是公钥加密和基于身份加密(Identity-Based Encryption, IBE)的一种扩展,由Sahai和Waters两位密码学家在2005年欧洲密码年会上提出,他们为了解决基于生物特征的身份认证系统的容错问题,基于双线性对困难问题,提出了基于模糊身份的加密方案《Fuzzy identity based encryption》一文,在该文献中,基于属性加密的概念第一次被提出。在该方案中,用属性集合描述用户身份信息特征,打破了以往的身份“完全匹配”关系,这也是它区别于基于身份加密的特征之一。
- 一个基于属性的加密机制一般包含四个实体:密钥生成中心(权威Authority) ,加密者(数据所有者DataOwner, DO)、解密者(用户User)和数据存储服务器,具体如下图所示。密钥生成中心负责产生公共参数PK和主密钥MK。当有用户User发出请求时,为其分配属性,生成与权限索引相关的解密钥SK。数据所有者DO根据密文索引A和自己要共享的数据Data的安全需要生成密文C,然后发送给数据存储服务器。User想获取某个被共享的数据时,向服务器发起请求,服务器为User发送请求访问的密文数据C。当用户User满足A的要求时,可以利用Authority分配的解密钥SK和收到的密文C,得到授权并获得Data。
- 在属性加密体制中,访问结构被引入到密文和密钥中,密文和密钥根据属性集合生成,即用户私钥与属性集关联,密文与访问结构关联,或者用户私钥与访问结构关联,而密文与属性集关联,用户的解密能力通过用户属性集与访问结构之间的匹配关系确定,从而实现数据拥有者对密文和密钥的访问控制。数据拥有者无需要为每一用户分发属性密钥,只需要通过访问结构进行权限管理,大幅度地降低了权限管理的复杂度,提供了更加灵活的访问控制,从功能上实现了“一对多”的加密文件访问控制,解决了这一应用瓶颈问题。由于用户的身份信息表示为属性集合,由两个或以上的用户组成的用户组也可以具备相同的属性集,所以既可以用属性集合表示单独的用户,也可以表示多个用户组成的用户组,因此可以通过对用户身份信息的全方位描述,灵活调整属性集合,让其表示一个单独的用户还是一个用户组,即单独的用户和用户组都可以成为属性密钥的接收者和对应密文的解密者,这也是基于属性加密方案所具备的优势。所以,基于属性加密的属性集合具有更强、更丰富表达能力。
- 在属性加密机制中,不仅用户权限的可描述性和加密策略的灵活性被极大地丰富了,加解密模式也被从以往的一对一模式扩展成了一对多模式,而且,它还具有下述四个卓越的特点:
- 高效性,加解密计算花费和密文长度与系统中用户的数量无关,只与相应属性个数相关;
- 动态性,用户的解密能力仅取决于他的属性集合是否满足密文的访问策略,而与他在密文生成之前或之后加入这个系统无关;
- 灵活性,该类方案中的访问策略支持复杂的访问结构;
- 隐私性,数据所有者在加密数据时无需获悉解密者的身份信息。
属性加密方案的形式化定义和安全模型
属性加密方案的形式化定义
一个属性加密方案包含以下四个基本算法:
- Setup(K, U):该算法输入安全参数K和系统属性全集U,输出公共参数Params和主密钥MK。
- KeyGen(MK,X):该算法输入主密钥MK和一个权限索引X,输出一个密钥skx。
- Enc(Params, Y, M):该算法输入公共参数Params,一个密文索引Y和一个要加密的消息M,输出一个密文CTy。
- Dec(Params, skX, C界):该算法输入公共参数Params,密钥skx和密文CTy,输出解密结果M'。
如果一个属性加密方案是正确的,当且仅当对任意用户权限X和密文索引Y,且X满足Y,则
- Dec(Params, KeyGen(MK, X), Enc(Params, Y,M))=M
- 其中,公共参数Params和主密钥MK都是正确生成的。
- 在CP-ABE方案中,X表示用户的属性集合,密文索引Y表示一个访问结构,X满足Y当且仅当X是Y的授权集;在KP-ABE方案中则反过来了,即Y表示一个属性集合,X表示一个访问结构,y满足X当且仅当Y是X的授权集。
属性加密方案的安全模型
- 在公钥密码方案中,根据要实现的安全目标不同,密码体制通常被分为四类:语义安全性(Semantic Security, SEM)、不可区分性(Indistinguishablity, IND)、不可展性(Non-malleable, NM)和明文可意识性(Plaintext-aware, PA)。当前公钥密码方案的证明一般都采用的形式化模型为不可区分性的安全模型,属性密码学中的方案证明也在此基础上进行。
- 基于属性加密系统的安全性,一般由一个攻击者和一个挑战者之间的交互游戏来刻画。当且仅当任意多项式攻击者的优势都是可忽略的,则称一个属性加密方案是自适应安全的。但是,在实际证明中,由于在属性加密方案中,其属性集的空间要比基于身份的身份空间大很多,复杂性比较高,所以通常会考虑一种弱化了的安全模型,称为选择模型。在选择安全模型中,通常要求攻击者必须提前选择自己的攻击目标,即挑战权限索引X,在此模型下的安全则称为选择安全。
- Init:攻击者选择自己的攻击目标,即挑战权限索引X;
- Setup:挑战者运行属性加密的Setup算法,将生成的公共参数发给攻击者;
- Phase 1:攻击者对权限索引X进行私钥询问,
- Challenge:攻击者提交两个等长的消息M0和M1。挑战者进行随机掷币b,并根据密文索引Y加密Mb,然后把密文发送给攻击者。
- Phase 2:重复Phase 1中的步骤;
- Guess:攻击者输出对b的猜测b'。
- 在上述游戏中,如果不存在多项式时间的攻击者以不可忽略的优势攻破上述游戏,则一个基于属性加密方案在选择模型下是安全的。
访问结构
- 在属性密码学中,访问结构用于描述访问控制策略的逻辑结构,占有很重要的位置。访问结构定义为:
- 定义访问结构):设P={P0,p1…pn}一个用户集。集合A包含于2{p0,p1..,pn}是单调的,如果B, C:如果B∈A且B包含于C,则C∈A。一个访问结构(单独地,单调的访问结构)是{P1,p2, ..., Pn}的一个非空子集A(单独地,单调的访问结构)。
- 属性密码系统中,一般采用一些访问结构表示访问策略,比如门限访问结构、基于树的访问结构、基于正负属性值的“与,门结构、基于多属性值的“与”结构、支持通配符的基于多属性值的“与’,门结构和线性访问结构。基于门限的访问结构实际表达的含义是:拥有不同属性集的用户可以通过不同的路径到达该门限所在节点的路径的数目;在基于树的访问结构中,树的每一个非叶子节点由一个门限值和它的孩子节点来描述,而树的每一个叶子节点都对应一个属性;在基于正负属性值的“与”门结构中,如果一个用户拥有某个属性,则表示为正属性,如果不用有某个属性,则表示为负属性。
访问树的构造
- 在CP-ABE方案中,访问树用于隐藏源数据的加密密钥,其形状结构如其名一样,是一棵树。其叶子节点为数据所有者设定的属性和属性值以及父节点传于此节点的秘密值,并对其加密处理,只有数据访问者拥有此属性方可解密出此节点的秘密值;非叶子节点为门限节点,数据访问者需满足此门限最低值方可解密此节点秘密值,例如门限为3/5,此节点有5个子节点,数据访问者需至少满足3个子节点才能解密出秘密值。
例子
- 如下图所构造的访问树,能解密此访问树加密的源数据,数据访问者需满足的属性是:第一种:(“计算机学院” 且 “硕士” 且 “研二”)和 “教师”(此属性结合可能不存在,因为教师和研二不存在且关系) ,第二种:“教师” 和(“网络实验室” 或 “云实验室”),第三者:(“计算机学院” 且 “硕士” 且 “研二”)和(“网络实验室” 或 “云实验室”);否则无法访问。
如何构造这样的一棵访问树
- 从根节点开始,其门限值为2,孩子节点有3个,随机生成一个多项式,其最高次数为门限值少1,故根节点的最高次数为1,然后将常数项设置为秘密数(秘密数为需要秘密保存的数);如此根节点随机的多项式为f(x)=5+3x,秘密数为5。此外,将根节点的孩子节点从左至右依次标记为1,2,3,.....,将节点标记值代入f(x)函数中,所得值(即生成新的秘密值)传给该标记的孩子节点秘密保存;故“3/3”节点(左边第一个节点)标记为1,传给“3/3”节点的秘密值f(1)=5+3*1=8,中间“教师”节点(中间节点)标记为2,传给“教师”节点的秘密值f(2)=5+3*2=11,“1/2”节点(右边节点)标记为3,传给“1/2”节点的秘密值为f(3)=5+3*3=14。
- “3/3”节点和“1/2”节点在接收到父节点传来的值后,按照上述方式生成随机多项式,将常数项设置为父节点传来的值,此外也按照上述方式生成新的秘密值并将它传给子节点,数据如图所示(对于非叶子节点,都按照此方式进行)。对于叶子节点,在接受到父节点的秘密值后,用此叶子节点的属性对秘密值进行加密处理。
- 至此,访问树已构造完成!
从访问树中解密出访问树的秘密数
- 数据访问者需满足访问树方可解密出访问树的秘密值,对于上述访问树,数据访问者需满足以下属性集中的一个:(计算机学院、硕士、研二、教师(此属性结合可能不存在,因为教师和研二不存在且关系))、(计算机学院、硕士、研二、网络实验室)、(计算机学院、硕士、研二、云实验室)、(教师、网络实验室)、(教师、云实验室)。若上述属性集中某一个或多个(至少一个)为数据访问者属性集的子集,则能解密出秘密值,下面开始解密处理。
- 对于叶子节点,在数据访问者属性集中寻找出和此节点属性与属性值一致的属性,用找出的属性解密出此节点的秘密值(即公式1),当然不能完全解密出,他是秘密值和加密时对此属性设置的加密值的乘积。
- 解密出叶子节点后,开始解密其父节点(非叶子节点),在解密出叶子节点后,即可得到多对值;如在上述访问树的“3/3”节点,其孩子节点解密出三个值19,44,83(推理过程忽略随机数),在生成这三个数时,f(1)=19,f(2)=44,f(3)=83,其中f(x)=8+4x+7x^2(解密时并不知道此多项式,只知道后面的三个点),因此在f(x)上有三个点是(1,19),(2,44),(3,83);因为此节点存储的秘密值是多项式的常数项,即f(0)=秘密值,故我们需要根据这三个点得到0所对应的值是多少,根据拉格朗日公式就能求出0所对应的值,即解密出秘密值(即公式2);对于非叶子节点均可按照上述方式解密出秘密值,在根节点处解密出整个树所隐藏的秘密值(是秘密值和加密时对此属性设置的加密值的乘积,所有节点解密出的秘密都存在一个随机数,解密出的值都是随机数和秘密值的乘积,只是讲述过程中为了方便忽略了随机数,最后根节点解密出的随机数在最后的解密过程中会抵消掉(公式3))。
- 另外需要说明的是“3/3”节点是一个3个孩子节点、门限值为3的节点,相当于且关系,数据访问者需解密出所有的孩子节点方可用拉格朗日公式解密出常数项(即秘密值);“1/2”节点是一个2个孩子节点、门限值为1的节点,故为或关系,数据访问者只满足其中一个孩子节点即可解密出秘密值(秘密值就是孩子节点解密出的秘密值,因为根据随机多项式生成规则,多项式的最高次数为门限值少1,门限值为1,故最高次数为0,即常数项);若如“2/3”这样的节点,既非且关系,也非或关系,3个孩子节点,门限值为2,若需解密出此节点的秘密值,数据访问者需解密出三个孩子节点中的两个节点即可解密出孩子节点。
参考链接
更多相关内容 -
基于属性的加密方法实现,cpabe属性加密JAVA源码实现
2021-07-27 22:38:22一种基于属性的加密方法的实现,CPABE属性加密源码,由JAVA实现 -
基于群签名的属性加密方案
2021-01-20 04:55:12基于密文的属性加密机制(CP-ABE)在针对敏感数据的机密性保护中有广泛应用。在CP-ABE中,用户访问密文时,访问策略与密文同时发送给用户用于解密,而访问策略同样包含隐私信息,导致隐私信息被泄露。在传统的CP-ABE... -
基于访问树的策略隐藏属性加密方案
2021-01-14 18:05:15已有的策略隐藏属性加密(ABE,attribute-based encryption)方案只支持受限的访问结构,策略表达能力弱,基于此提出一种新的访问树结构,使属性隐藏和秘密共享能够应用到“与”门、“或”门和“门限”门中。... -
基于属性加密的区块链数据溯源算法
2021-01-14 03:47:53针对目前基于区块链的溯源算法主要通过同态加密及零知识证明进行隐私保护,使溯源信息难于实现动态共享这一问题,提出基于属性加密的区块链数据溯源算法。为实现交易隐私的动态保护,基于 Waters 所提CP-ABE方案设计... -
密文策略下的的基于属性加密
2019-08-03 13:06:00cpabe JAVA代码,Java Pairing Based Cryptography Library(jPBC) 1.2.1 -
支持高效撤销的多机构属性加密方案
2021-01-14 12:02:44多机构属性加密方案非常适用于云存储环境下的数据访问控制。然而,高效的用户撤销仍是其中一个具有挑战的问题,这妨碍了多机构属性加密的实际应用。针对此问题,在素数阶群中提出一种支持高效撤销的多机构密文策略... -
支持关键词任意连接搜索的属性加密方案
2021-01-14 14:32:43基于属性加密,实现每个关键词密文能够被多个用户私钥搜索,显著降低细粒度访问控制带来的网络带宽和发送节点的处理开销。基于多项式方程,支持对关键词的任意连接搜索,显著提高连接搜索的灵活性。对方案的性能进行... -
前向安全的密文策略基于属性加密方案
2021-01-14 22:34:28为降低密文策略基于属性加密(CP-ABE, ciphertext-policy attribute-based encryption)体制中私钥泄漏带来的损害,首先给出了前向安全CP-ABE体制的形式化定义和安全模型,然后构造了一个前向安全的CP-ABE方案。... -
可撤销属性的格基属性加密方案
2021-03-03 04:15:51可撤销属性的格基属性加密方案 -
多认证机构的属性加密方案 (2013年)
2021-05-11 23:45:06针对这种情况,提出了一种多认证机构的属性加密方案。在该方案中,将属性全集分成若干个属性子集,而且各个属性子集之间相交结果是空集。对于每一个属性子集,由一认证机构负责监控用户的属性值并分配对应该属性值的密钥... -
属性加密机制在电子政务中的应用 (2013年)
2021-05-25 05:26:40对在电子政务中应用属性加密机制实现访问控制进行研究,结合电子政务已有授权管理基础设施PMI,提出属性加密方案的部署架构;在此基础上,实现了一个原型系统。通过实验验证,基于属性加密实现访问控制,克服现有访问控制... -
基于属性加密体制算法的分析及改进 (2013年)
2021-06-14 01:53:49基于密文策略的属性加密体制(CP- ABE)算法在其解密过程中采取了拉格朗日多项式插值法来恢复节点的属性值.通过分析发现,随着节点增多存在计算多次重复的缺点.为了提高它的解密性能,基于该CP- ABE算法本身的访问树... -
基于属性加密的位置分层访问控制方案
2021-04-04 03:45:33基于属性加密的位置分层访问控制方案 -
基于密文策略属性加密体制的匿名云存储隐私保护方案 (2015年)
2021-05-28 22:01:10针对云存储中数据机密性问题,为解决密钥泄漏与属性撤销问题,从数据的机密性存储以及访问的不可区分性两个方面设计了基于密文策略属性加密体制(CP_ABE)的匿名云存储隐私保护方案。提出了关于密钥泄漏的前向安全的不... -
论文研究-一种用于云存储的可撤销的属性加密方案.pdf
2019-07-22 21:56:01由于云存储用户数量大,成分复杂,云存储中数据的安全防护问题成为其发展的一大制约,近年来,基于属性加密技术解决云存储中数据安全存储问题成为研究热点,但传统的属性加密方案存在密文长度相对较大且属性撤销复杂... -
基于属性加密的区块链数据溯源算法.pdf
2021-08-15 22:54:50#资源达人分享计划# -
基于属性加密(ABE).pptx
2021-05-23 14:01:37初步了解区块链 -
论文研究-属性加密机制在电子政务中的应用研究 .pdf
2019-08-18 15:54:30属性加密机制在电子政务中的应用研究,谢学智,李春晓,对在电子政务中应用属性加密机制实现访问控制进行研究,结合电子政务已有授权管理基础设施PMI,提出属性加密方案的部署架构,在此 -
一种基于属性加密的细粒度云访问控制方案
2021-03-06 14:28:22一种基于属性加密的细粒度云访问控制方案 -
基于属性加密的私有数据分层访问控制方案
2021-04-30 03:43:41基于属性加密的私有数据分层访问控制方案 -
基于属性加密的共享文件分级访问控制方案
2021-03-02 05:47:21基于属性加密的共享文件分级访问控制方案 -
属性加密技术及基于属性的访问控制技术
2017-12-30 15:39:54学习过程中整理的关于属性加密技术以及基于属性的访问控制技术等信息,供大家参考学习使用。 -
基于密文策略的权重多中心属性加密方案
2021-03-07 02:13:25基于密文策略的权重多中心属性加密方案 -
基于CP-ABE的云计算改进属性加密安全访问控制策略设计.pdf
2021-07-21 19:34:06基于CP-ABE的云计算改进属性加密安全访问控制策略设计.pdf -
基于区块链且支持验证的属性基搜索加密方案
2021-01-13 21:56:48通过对共享密钥采用密文策略属性加密机制,实现细粒度访问控制。结合以太坊区块链技术,解决半诚实且好奇的云服务器模型下返回搜索结果不正确的问题,在按需付费的云环境下,实现用户和云服务器之间服务-支付公平,... -
论文研究-基于密文策略属性加密的云存储访问控制方案.pdf
2019-07-22 22:37:06方案中用户私钥由多个授权机构共同生成,中央授权机构不参与生成任何主密钥与属性私钥;访问结构隐藏在密文之中,恶意用户无法通过访问结构获取敏感信息;此外,方案实现了固定密文长度,并且加密时的指数运算和解密... -
属性加密(ABE)基础知识
2022-04-09 21:39:25属性加密 最近在看ABE相关论文,因为本人(数学功底一般)不太能理解其中原理。所以特意记录ABE的基础知识,以便日后能快速重温。 ABE常见分类 属性基加密的思想是让密文和密钥与属性集合和访问结构产生关联,当且仅...属性加密
最近在看ABE相关论文,因为本人(数学功底一般)不太能理解其中原理。所以特意记录ABE的基础知识,以便日后能快速重温。
ABE常见分类
属性基加密的思想是让密文和密钥与属性集合和访问结构产生关联,当且仅当属性集合满足访问结构的时候,方能解密成功。那么根据这其中两两的对应关系,又可以将属性基加密分为两类,即密钥策略属性基加密(KP-ABE)和密文策略属性基加密(CP-ABE)。
- KP-ABE:用户的密钥中蕴含访问结构(访问策略),密文中对应着一系列属性集合,当且仅当密文的属性集合满足用户密钥的访问结构时,用户才能解密成功。
- CP-ABE: 用户的密钥对应着一系列属性的集合,密文中蕴含着访问结构(策略),当且仅当用户的属性集合满足密文的访问结构时,用户才能解密成功。
下图为采用ABE的数据服务机构与其他实体的基本关系
其实ABE中的CP-ABE十分适合构建云环境中数据安全共享方案。CP-ABE中数据拥有者(加密明文得到密文的人)可以根据自己的需求,定义合适的访问结构,让他所期待的一群用户能够解密。而ABE采用主密钥+属性密钥的形式,是为了方便加密的外包以及撤销;而撤销是为了是为了设置有效期,实现更完善的访问控制。
双线性映射
双线性映射是基于Diffie-Hellman难题构建属性基加密算法的数学基础,此处的模糊身份基加密也用到了该数学基础。
令G1,G2为两个阶为p的乘法循环群,g为G1的生成元,一个从G1到G2的映射e:G1×G1→G2是双线性的,当其满足以下三点:
双线性:∀g,h∈G1和a,b∈Zp有e(ga,hb)=e(g,h)ab;
非退化性:e(g,h)≠1;
可计算性:∀g,h∈G1,存在有效的算法计算e(g,h)∈G2。相关概念:
合数阶群双线性映射
素数阶群双线性映射
补充
若G1≠G2,称该映射为 非对称双线性映射
若G1=G2,称该映射为 对称双线性映射单调访问结构
例如:假设有用户{1,2,3,4},只有 (1,2) 合作,或者 (3,4) 合作可以恢复秘密,(1,3,4) 当然也可以恢复秘密,但是 (1,3,4) 不是 ((1,2),(3,4)) 的超集。- 可以理解为在包含所需要的属性的基础上,包含的属性更多,也依然符合这一访问结构。(即为授权集合)
与门访问结构(And-Gate)
访问控制树(Access Tree)
访问树是一种用于隐藏源数据密钥的结构。只有符合访问树的条件,才能解出其中的秘密值。访问树是由根节点、非叶节点、叶节点构成的。访问树的节点很独特,举一个简单的例子。假设访问树T有一节点x,子节点数就记为num_x,阈值记为k_x。当x不是叶子节点,那么x在树中就表示为阈值关系(由num_x和k_x决定)。当x是叶节点时,则会代表一个属性att(显然num_x为0,k为1)。
- 阈值关系:num_x = x_k即“AND”;x_k<num_x即“num_x个子节点需要满足x_k个的门限关系”,注意x_k=1时即为“OR”。
构造访问树
假设现有一份共享数据,只有当访问者满足以下要求时才能访问:
1.网络实验室或云实验室的老师
2.计算机学院研二的硕士且属于网络或云实验室首先根据上述条件构建访问树
访问树构造好了,我们怎么隐藏秘密呢?秘密值生成
秘密值的生成,一般是由随机生成的。以上图为例,从根节点开始,孩子节点有3个,随机生成一个多项式,其最高次数为k_x-1,故根节点的最高次数为1,然后将常数项设置为秘密数(秘密数为需要秘密保存的数);如此根节点随机的多项式为f(x)=5+3x,秘密数为5。此外,将根节点的孩子节点从左至右依次标记为1,2,3,…,将节点标记值代入f(x)函数中,所得值(即生成新的秘密值)传给该标记的孩子节点秘密保存;故“3/3”节点(左边第一个节点)标记为1,传给“3/3”节点的秘密值f(1)=5+31=8,中间“教师”节点(中间节点)标记为2,传给“教师”节点的秘密值f(2)=5+32=11,“1/2”节点(右边节点)标记为3,传给“1/2”节点的秘密值为f(3)=5+3*3=14。
“3/3”节点和“1/2”节点在接收到父节点传来的值后,按照上述方式生成随机多项式,将常数项设置为父节点传来的值,此外也按照上述方式生成新的秘密值并将它传给子节点,数据如图所示(对于非叶子节点,都按照此方式进行)。对于叶子节点,在接受到父节点的秘密值后,用此叶子节点的属性对秘密值进行加密处理。
解密访问树
当数据访问者满足访问树,则可以通过获取属性中存放的秘密值。然后就可以用拉格朗日公式(后面有讲解,略过)解出父节点生成多项式的常数项。自下而上,最终可以解出根节点中的常数项,即访问树中隐藏的秘密值。
线性秘密共享(LSSS)
- 本质还是矩阵运算。
离散对数难题
令α∈Zp,G为一个乘法循环群,群的阶数为p,群的一个生成元为g,离散对数难题说的是:给定g,ga∈G,对于任何多项式时间的攻击者,其计算出指数a的概率是可忽略的,即由g,ga∈G计算出a是困难的。
拉格朗日插值法
辅助理解:视频安全模型(安全游戏/挑战)
按照攻击者能力划分:选择明文攻击、选择密文攻击、适应性/非适应性选择密文攻击
按照安全目标划分:单向安全性、不可区分安全性、非延展安全性
模糊身份基加密中是选择身份模型(selective-ID),而属性基加密中是选择集合模型(selective-set)。而且上述模型有两个地方需要注意:在CP-ABE模型没有Init阶段(在模糊身份基加密的模型中有init阶段),称之为选择明文攻击下不可区分安全(IND-CPA)。如果在Init阶段攻击者声明想要挑战的访问结构,则称之为选择安全模型。很显然,选择安全模型描述的安全性弱一些。
若是在Phase 1阶段还适应性地查询密文,则称之为适应性选择密文攻击安全模型1(CCA1),若是继续在Phase 2阶段还适应性地查询密文,则称之为适应性选择密文攻击安全模型2(CCA2)。很显然,就安全性而言,IND-CPA、CCA1、CCA2依次增强。
安全性证明
- 安全性证明定义:密码算法中安全性证明就是判定在一个普通的攻击模型中,密码算法和所依赖的可信密码学算法问题之间的规约关系,如果算法的攻破(即攻击者赢)意味着某一在密码学中可信问题的解决,则说明该算法是安全的,即安全性得到证明。
密码学中构建方案,通常将方案的安全性规约到某个数学困难问题,用反证法的思想,当难题是困难的,那么攻破方案就是困难的。FIBE方案是在选择身份模型下将方案规约到MBDH问题。(除此之外还有DL、BDH、DBDH等安全假设)。
Waters论文中详细介绍了三种具体方案的构造,但是前两种被学者们“开发”的多,因此在这里着重介绍前两种。第一种基于Decisional q-PBDHE困难假设,第二种基于BDHE假设。无论是哪一种构造,方案的安全模型是和CP-ABE里边的安全模型是一样的。这些实现都将线性秘密共享(LSSS) 作为访问结构,进而依赖特定的难题,完成安全性的规约证明。
可证明安全理论
- 无条件安全性:这种评价方法考虑的是假定攻击者拥有无限的计算资源,但仍然无法破译该密码系统
- 计算安全性:这种方法是指使用目前最好的方法攻破它所需要的计算远远超出攻击者的计算资源水平,则可以定义这个密码体制是安全的。
- 可证明安全性
这种方法是将密码系统的安全性归结为某个经过深入研究的数学难题(如大整数素因子分解、计算离散对数等),数学难题被证明求解困难。这种评估方法存在的问题是它只说明了这个密码方法的安全性与某个困难问题相关,没有完全证明问题本身的安全性,并给出它们的等价性证明。
对于实际应用中的密码系统而言,由于至少存在一种破译方法,即强力攻击法,因此都不能满足无条件安全性,只提供计算安全性。密码系统要达到实际安全性,就要满足以下准则:
- 破译该密码系统的实际计算量(包括计算时间或费用)十分巨大,以致于在实际上是无法实现的。
- 破译该密码系统所需要的计算时间超过被加密信息有用的生命周期。例如,战争中发起战斗攻击的作战命令只需要在战斗打响前需要保密;重要新闻消息在公开报道前需要保密的时间往往也只有几个小时。
- 破译该密码系统的费用超过被加密信息本身的价值。
如果一个密码系统能够满足以上准则之一,就可以认为是满足实际安全性的。
参考文章