CN110753056B - 一种非交互式加密访问控制方法 - Google Patents

一种非交互式加密访问控制方法 Download PDF

Info

Publication number
CN110753056B
CN110753056B CN201911022778.1A CN201911022778A CN110753056B CN 110753056 B CN110753056 B CN 110753056B CN 201911022778 A CN201911022778 A CN 201911022778A CN 110753056 B CN110753056 B CN 110753056B
Authority
CN
China
Prior art keywords
attribute
ciphertext
node
delete
vector
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201911022778.1A
Other languages
English (en)
Other versions
CN110753056A (zh
Inventor
袁巍
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Gao Xiufen
Original Assignee
Gao Xiufen
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Gao Xiufen filed Critical Gao Xiufen
Priority to CN201911022778.1A priority Critical patent/CN110753056B/zh
Publication of CN110753056A publication Critical patent/CN110753056A/zh
Application granted granted Critical
Publication of CN110753056B publication Critical patent/CN110753056B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/20Network architectures or network communication protocols for network security for managing network security; network security policies in general
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0891Revocation or update of secret information, e.g. encryption key update or rekeying

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Storage Device Security (AREA)

Abstract

本发明公开了一种非交互式加密访问控制方法,包括:S1,信任中心进行数据初始化,获得系统公钥PK和系统主密钥MK;S2,信任中心根据系统公钥PK、系统主密钥MK和用户属性集合S,获得与用户属性集合S对应的用户私钥SK;S3,数据所有者根据系统公钥PK、访问策略P,获得明文M在访问策略P下的密文CT,将所述密文CT存入第三方存储平台;S4,当数据所有者需要更新访问策略时,根据当前访问策略P和新访问策略P’,获得一个公开更新组件PUC;S5,将所述的公开更新组件PUC发送至第三方存储平台,获得与新访问策略P’对应的新密文CT’。本发明可以实现任意次的修改访问策略,同时节省通信开销。

Description

一种非交互式加密访问控制方法
技术领域
本发明涉及一种非交互式加密访问控制方法,属于加密访问控制技术领域。
背景技术
传统的访问控制方法要求在区分内部与外部的边界处设定访问控制策略,以约束外部用户对内部数据的访问权限。但当数据需要存储在外部第三方时,传统的访问控制方法就会失效。因为无论数据的所有者如何设定访问控制策略,存储数据的第三方有能力无视该规则任意查看数据。这就要求数据所有者必须信任数据存储方。在很多应用领域,比如云存储,数据所有者多是虽然不信任云存储平台但为了数据可以分享给他的客户而只能选择将数据存放在云平台上。对数据所有者来说,能够期盼的就只有数据存储平台按照他们的协议不去偷看自己的数据。针对这种新型应用场景,加密访问控制的技术目标是在假设云平台提供存储功能但时刻准备偷取数据所有者存储的敏感数据的情况下,既为数据所有者提供访问控制功能又防止云平台非法获取数据。如果连云平台本身都无法非法获取数据,那么对云平台的入侵导致的结果无论如何都不会比云平台本身作恶泄露出更多的敏感数据。所以加密访问控制是未来访问控制技术发展的重要方向。
目前,加密访问控制的具体实现手段主要是依赖一种被称为“基于属性加密”的密码技术。属性加密是公钥加密的一种,其特点是用户的身份不以其身份ID或者公钥证书来表示,而是以一个属性的集合表示。数据加密同样不以ID或者公钥证书为输入条件,密文直接通过一个访问控制策略来加密数据而得到。由于多个用户可能具有相同或者相似的属性,设定一个合理访问控制策略可以同时决定很多用户的数据访问权限。
据本领域技术人员所知,访问控制和授权是有区别的,授权往往不需要不断改变用户的访问权限,而访问控制则要求数据的所有者有能力根据实际需要动态改变用户访问权限。属性加密可以通过访问策略设定用户访问权限,但并未提供动态修改访问策略的功能,因此不能算是完整的访问控制方法。一种最直观的方法是每次需要改变访问控制策略的时候,数据所有者先把密文下载,解密,然后用新访问策略重新生成密文,在上传到存储平台。但这样做会导致通信开销比较大,特别是在数据存储量大的情况下。还有一种技术叫代理重加密,要求存储平台在一定程度上可信的情况下(可以通过可信硬件实现),由平台代理数据所有者的访问策略变更权限,但目前的重加密方法只能修改一次访问策略。从访问控制的角度来看,这种方法只是比一次授权更灵活,但是还是无法实现任意次修改访问策略,依然不能满足实际应用需求。冯登国,陈成,属性密码学研究,密码学报.2014,1(1):1-12,为密码学报创刊第一篇文章,其将属性加密的访问策略更新列为未解决的公开困难问题。目前依然没有公开的方法能够完整解决这一问题。这使得加密访问控制技术无法实用化。
发明内容
本发明的目的在于,提供一种非交互式加密访问控制方法,它可以实现任意次修改访问策略,同时降低通信开销。
为解决上述技术问题,本发明采用如下的技术方案:一种非交互式加密访问控制方法,包括以下步骤:
S1,信任中心进行数据初始化,根据输入的安全参数,获得系统公钥PK和系统主密钥MK;
S2,信任中心根据系统公钥PK、系统主密钥MK和用户属性集合S,获得与用户属性集合S对应的用户私钥SK;
S3,数据所有者根据系统公钥PK、访问策略P,获得明文M在访问策略P下的密文CT,将所述密文CT存入第三方存储平台;
S4,当数据所有者需要更新访问策略时,根据当前访问策略P和新访问策略P’,获得一个公开更新组件PUC;
S5,将所述的公开更新组件PUC发送至第三方存储平台,对其存储的原始密文CT进行更新,获得与新访问策略P’对应的新密文CT’;
S6,数据访问者输入系统公钥PK、密文和用户私钥SK,如果用户私钥SK对应的属性集合S满足密文对应的访问策略的要求,则输出明文M,否则输出乱码。
优选的,步骤S4包括以下步骤:
S41,将从当前访问策略P向新访问策略P’转换的过程分解为一系列原子更新的过程,每个原子更新只改变一个属性以及该属性相关的逻辑连接符;
S42,在原子更新过程中,根据以下四种情况——删除连接符or和属性、删除连接符and和属性、增加连接符or和属性、增加连接符and和属性,对相应的属性做标记,标记为delete、multiply或add;
S43,基于对属性所做的标记,将其作为触发条件,利用状态转移图处理从P到P’的原子更新序列,记录并更新相应的状态和策略密文组件,从而获得最终的策略密文组件,作为公开更新组件PUC;所述的相应的状态包括:Delete,Add,Multiply、Replace。
当需要对旧密文进行更新时,各个数据所有者通过以上方法即可获得新策略对应的公开更新组件PUC,将该公开更新组件PUC发送至第三方云存储平台,即可实现对旧密文进行更新。以上方法在数据所有者的平台运行,因此数据所有者可以根据需要,实现任意次修改访问策略,而且修改访问策略后,仅仅单方面将公开更新组件PUC发送至第三方云存储平台即可,无需与第三方云存储平台进行交互,因此降低了通信开销。
优选的,步骤S3包括:数据所有者根据系统公钥PK、数据所有者的密文更新密钥OUK、访问策略P,获得明文M在访问策略P下的密文CT,将所述密文CT存入第三方存储平台。进行加密时,通过利用数据所有者的密文更新密钥OUK,从而可以标识用户身份,使得只有该所有者才有权力对该密文的访问策略进行更新。
更优选的,步骤S42具体包括:
a.若删除Pj-1中的连接符or和属性A,则设A=ρ(o),直接删除属性A对应的密文组件(C1,o,…,Ct,o),然后给属性A标记delete;
b.若删除Pj-1中的连接符and和属性A,则设A=ρ(o),先删除A对应的密文组件(C1,o,…,Ct,o),然后计算PRF(OUK,CID),恢复
Figure BDA0002247757880000031
然后计算
Figure BDA0002247757880000032
式中,
Figure BDA0002247757880000033
是矩阵W的第o行元素组成的向量,
Figure BDA0002247757880000034
是一个向量,其定义为
Figure BDA0002247757880000035
s∈Zp是要共享的秘密,y2,…,yn∈Zp是随机数(λo
Figure BDA0002247757880000036
Figure BDA0002247757880000037
对应元素相乘再相加计算结果,又称为
Figure BDA0002247757880000038
Figure BDA0002247757880000039
的内积);令N(Pj-1,A)代表删除A后需要改变对应向量的属性的集合(它可以通过矩阵更新方法得到),对属性ρ(i)∈N(Pj-1,A),(C1,o,…,Ct,o)以和加密算法相同的方式更新,并用λo替代原本的λi,然后给每个属性ρ(i)∈N(Pj-1,A)标记multiply,给属性A标记delete;所述的OUK为数据所有者的密文更新密钥(可根据安全参数获得),CID为随机数,CID∈Zp
c.若增加连接符or和属性A到Pj-1中,则计算策略P的根节点对应的向量
Figure BDA00022477578800000310
然后计算PRF(OUK,CID),恢复
Figure BDA00022477578800000311
计算
Figure BDA00022477578800000312
再设A=ρ(o),直接令λo=λx,以和加密算法相同的方式计算A对应的新密文组件(C1,o,…,Ct,o),然后给属性A标记add;
d.若增加连接符and和属性A到Pj-1中,则计算PRF(OUK,CID),恢复
Figure BDA00022477578800000313
Figure BDA00022477578800000314
后边选择随机数yo,设A=ρ(o),选择随机数yo,令λo=-yo,以和加密算法相同的方式计算A对应的新密文组件(C1,o,…,Ct,o),然后给属性A标记add;令N(Pj-1,A)代表增加A后需要改变对应向量的属性的集合(它可以通过矩阵更新方法得到),对属性ρ(i)∈N(Pj-1,A),以和加密算法相同的方式计算(C1,o,…,Ct,o),并用yo替代原本的λi,然后给每个属性ρ(i)∈N(Pj-1,A)标记multiply。
通过以上方法给属性做标记,利用这些标记触发状态转移,从而实现了利用状态转移图可以处理从P到P’的原子更新序列,记录并更新相应的状态和策略密文组件,获得最终的策略密文组件,作为公开更新组件PUC。
更优选的,进行策略更新时,策略矩阵W对应的通过以下方式进行更新:
首先,更新被删除或者新增加节点的兄弟节点对应的向量:
1)对于删除一个or连接的节点(因为or给它的两个子节点标记了相同的向量,删除一个并不影响另一个的值),直接移除被删除节点对应的向量;
2)对于删除一个and连接的节点,移除被删除节点的向量后,该向量被加到它的兄弟节点上;
3)对于新增一个or连接的节点,将其兄弟节点对应的向量赋给它即可(一般它的兄弟节点是逻辑连接符and或者or,对应向量需要通过其子节点恢复出来);
4)对于新增一个and连接的节点,把它的对应向量设置为(0,…,0|-1),把(0,…,0|1)加到它的兄弟节点对应的向量上,0的个数与当前向量长度相同;
其次,更新兄弟节点的后代节点对应的向量:若向量
Figure BDA0002247757880000041
被加到某节点后,设其为当前节点,向下处理——如果当前节点是and,把
Figure BDA0002247757880000042
加到它的任一个子节点对应的向量上;如果当前节点是or,把
Figure BDA0002247757880000043
加到它的两个子节点对应的向量上;如果当前节点是叶子节点,把
Figure BDA0002247757880000044
加到它对应的向量上。
通过以上方法更新策略矩阵,从而可以使得更新后的矩阵和原始生成矩阵一样共享向量(1,0,…),使得实现在进行任意次修改访问策略时,降低通信以及签名验证开销。
或者,优选的,步骤S3包括,数据所有者根据系统公钥PK、访问策略P,获得明文M在访问策略P下的密文CT,以及一个内部参数IP(internal parameter的缩写),将所述密文CT存入第三方存储平台;其中
Figure BDA0002247757880000045
(并在PolicyUpdate原子更新时相应改变λi以更新
Figure BDA0002247757880000046
每个
Figure BDA0002247757880000047
是属性ρ(i)对应的秘密分片,被嵌入到密文组件中。从而使得每个密文对应一组内部参数(一个密文包括一组密文组件,一个密文组件对应一个内部参数),进行区分标识。
或者,优选的,步骤S42具体包括:
S421,若删除Pj-1中的连接符or和属性A,则设A=ρ(o),直接删除属性A对应的密文组件(C1,o,…,Ct,o),然后给属性A标记delete,IP中的λA设置为空值;
S422,若删除Pj-1中的连接符and和属性A,则设A=ρ(o),先删除A对应的密文组件(C1,o,…,Ct,o);令N(Pj-1,A)代表删除A后需要改变对应向量的属性的集合(它可以通过矩阵更新方法得到),对属性ρ(i)∈N(Pj-1,A),把IP中的λi的值改为λiA,(C1,o,…,Ct,o)以和加密算法相同的方式更新,然后给每个属性ρ(i)∈N(Pj-1,A)标记multiply,给属性A标记delete,并把IP中的λA设置为空值;其中,λi是属性ρ(i)对应的秘密分片,λA是属性A对应的秘密分片;
S423,若增加连接符or和属性A到Pj-1中,则计算策略P的根节点对应的向量
Figure BDA0002247757880000051
然后根据IP中
Figure BDA0002247757880000052
涉及的属性对应的λi计算λx;再设A=ρ(o),直接令λo=λx,并将其加入IP,然后以和加密算法相同的方式计算A对应的新密文组件(C1,o,…,Ct,o),然后给属性A标记add;
S424,若增加连接符and和属性A到Pj-1中,则设A=ρ(o),选择随机数yo,令λo=-yo,将λo加入IP;以和加密算法相同的方式计算A对应的新密文组件(C1,o,…,Ct,o),然后给属性A标记add;令N(Pj-1,A)代表增加A后需要改变对应向量的属性的集合(它可以通过矩阵更新方法得到),对属性ρ(i)∈N(Pj-1,A),把IP中的λi的值改为λi+yo,然后以和加密算法相同的方式计算(C1,o,…,Ct,o),并给每个属性ρ(i)∈N(Pj-1,A)标记multiply。
通过以上方法给属性做标记,利用这些标记触发状态转移,从而实现了利用状态转移图可以处理从P到P’的原子更新序列,记录并更新相应的状态和策略密文组件,获得最终的策略密文组件,作为公开更新组件PUC。
优选的,步骤S43中,所述的状态转移图通过以下方法构建:首先定义7种状态,分别是Start,Delete,Add,Multiply,Add’,Multiply’和Replace,其中Start,Add’和Multiply’属于中间状态,Delete,Add,Multiply和Replace属于最终状态,随着密文更新组件一起输出;所有属性开始都处于Start状态;在一次原子更新中,如果一个属性被标记了delete,multiply,或者add,它的状态沿着状态转移图相应移动——如果一个属性被标记了delete,则其状态由Start转移为Delete,或者由Multiply转移为Delete,或者由Add转移为Delete,或者由Add’转移为Delete,或者由Multiply’转移为Delete;如果一个属性被标记了multiply,则其状态由Start转移为Multiply,或者由Add转移为Multiply,或者由Multiply转移为Multiply,或者由Add’转移为Multiply’,或者由Multiply’转移为Multiply’;如果一个属性被标记了add,则其状态由Start转移为Add,或者由Delete到Add’;如果在所有原子更新完成后,某个属性最终的状态是Add’或者Multiply’,它的状态自动转移为Replace。
通过以上方法构建的状态转移图,从而可以用于处理从P到P’的原子更新序列,记录并更新相应的状态和策略密文组件,获得最终的策略密文组件,作为公开更新组件PUC。
前述的非交互式加密访问控制方法中,步骤S5包括以下步骤:
S51,把公开更新组件PUC和旧密文CT对应的密文组件C和C0分别相乘作为新密文CT’的新密文组件C和C0
S52,根据公开更新组件PUC中属性对应的状态对旧密文CT做如下处理:
1)如果属性ρ(i)标记的状态是Multiply,则新密文CT’相应的密文组件
Figure BDA0002247757880000061
式中,C1,i、…、Ct,i为旧密文组件,
Figure BDA0002247757880000062
为公开更新组件,C′1,i、…、C′t,i为新密文组件;
2)如果属性ρ(i)标记的状态是Replace,则用
Figure BDA0002247757880000063
替换C1,i,…,Ct,i作为新的C′1,i,…,C′t,i
3)如果属性ρ(i)标记的状态是Delete,则删除C1,i,…,Ct,i
4)如果属性ρ(i)标记的状态是Add,则把
Figure BDA0002247757880000064
添加到相应位置即可;
最终密文更新完成,新密文CT’与新访问策略P’对应。
采用上述密文更新方法后,使得更新密文时不必先将密文下载,解密再重新加密后上传就可以直接改变访问策略,减少了通信次数,降低了通信开销(而如果重新上传,则数据所有者需要对密文做签名,然后存储方相应做验证才能确保其来源的可靠性,所以,这种更新方式降低了下载、更新再上传方式的开销)。另外,由于新密文是用旧密文在新公开更新组件基础上计算得到的,如果公开更新组件在传输过程中被修改、替换,直接导致新密文无法解密,存储方即可快速发现这种攻击,无需额外步骤。
上述的非交互式加密访问控制方法中,步骤S43还包括:对所述的最终的策略密文组件做一次刷新操作:执行加密算法,令其输入明文为单位元1,然后将所生成密文的组件与所述的最终的策略密文组件相乘,其结果作为公开更新组件PUC。从而利用该公开更新组件PUC进行加密更新时,可以使得密文重新变得随机化。
与现有技术相比,本发明将密文CT存入第三方存储平台,当数据所有者需要更新访问策略时,根据系统公钥PK、当前访问策略P和新访问策略P’,获得一个公开更新组件PUC;将所述的公开更新组件PUC发送至第三方存储平台,对其存储的原始密文CT进行更新,获得与新访问策略P’对应的新密文CT’,从而实现了任意次修改访问策略(当需要修改访问策略时,只需要根据新的访问策略,发送一个新的公开更新组件PUC给第三方存储平台即可),同时降低了通信开销(是一种非交互式的访问控制,仅仅由数据所有者发送公开更新组件给第三方存储平台即可更新密文,无需先将密文下载,解密再重新加密后上传就可以直接改变访问策略,减少了通信次数,降低了通信开销(而如果重新上传,则数据所有者需要对密文做签名,然后存储方相应做验证才能确保其来源的可靠性,所以,这种更新方式降低了下载、更新再上传方式的开销))。另外,采用本发明的密文更新方法后,由于新密文是用旧密文在新公开更新组件基础上计算得到的,如果公开更新组件在传输过程中被修改、替换,直接导致新密文无法解密,存储方即可快速发现这种攻击,无需额外步骤。
附图说明
图1是本发明的一种实施例的方法流程图;
图2是本发明的一种实施例中状态转移图的示意图;
图3是实验例中采用本发明的方法进行加密访问控制的方法流程图。
为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施方式对本发明进行进一步的详细描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述的其他方式来实施,因此,本发明的保护范围并不受下面公开的具体实施例的限制。
具体实施方式
本发明的实施例1:一种非交互式加密访问控制方法,如图1所示,包括以下步骤:
S1,信任中心进行数据初始化,根据输入的安全参数(安全参数指明系统各个组件,如密文、密钥的长度,长度过长运算效率降低,长度过短安全性不足,在初始化时由系统创建者根据需要确定),获得系统公钥PK和系统主密钥MK;
S2,信任中心根据系统公钥PK、系统主密钥MK和用户属性集合S,获得与用户属性集合S对应的用户私钥SK;用户私钥SK由一系列密钥组件构成,这些密钥组件分为两类,一类是与S中属性个数无关的公共组件,可以用K1,…,Kx表示,另一类是与S中属性相对应的密钥组件,可以用{K1,j,…,Ky,j}j∈S表示,所以SK可以表示为(S,K1,…,Kx,{K1,j,…,Ky,j}j∈S),其中,x,y的数量在不同的方案中各有不同;
S3,数据所有者根据系统公钥PK、访问策略P,获得明文M在访问策略P下的密文CT,将所述密文CT存入第三方存储平台;与用户私钥类似,一个密文CT也由两类密文组件构成,一类是与策略P中属性个数无关的公共组件,可以用C1,…,Cs表示,另一类是与P中属性相对应的密文组件,可以用{C1,i,…,Ct,i}i=[1,l]表示,l是P中属性个数,s,t的数量在不同的方案中各有不同,所以CT可以表示如下(P,C1,…,Cs,{C1,i,…,Ct,i}i=[1,l]);
S4,当数据所有者需要更新访问策略时,根据当前访问策略P和新访问策略P’,获得一个公开更新组件PUC;
S5,将所述的公开更新组件PUC发送至第三方存储平台,对其存储的原始密文CT进行更新,获得与新访问策略P’对应的新密文CT’;
S6,数据访问者输入系统公钥PK、密文和用户私钥SK,如果用户私钥SK对应的属性集合S满足密文对应的访问策略的要求,则输出明文M,否则输出乱码。
可选的,步骤S4包括以下步骤:
S41,将从当前访问策略P向新访问策略P’转换的过程分解为一系列原子更新的过程,每个原子更新只改变一个属性以及该属性相关的逻辑连接符;
S42,在原子更新过程中,根据以下四种情况——删除连接符or和属性、删除连接符and和属性、增加连接符or和属性、增加连接符and和属性,对相应的属性做标记,标记为delete、multiply或add;
S43,基于对属性所做的标记,将其作为触发条件,利用状态转移图处理从P到P’的原子更新序列,记录并更新相应的状态和策略密文组件,从而获得最终的策略密文组件,作为公开更新组件PUC;所述的相应的状态包括:Delete,Add,Multiply、Replace。
可选的,步骤S3包括:数据所有者根据系统公钥PK、数据所有者的密文更新密钥OUK、访问策略P,获得明文M在访问策略P下的密文CT,将所述密文CT存入第三方存储平台;步骤S42具体包括:
a.若删除Pj-1中的连接符or和属性A,则设A=ρ(o)(ρ表示映射,o是一个下标,这里表示把下标o和属性A关联起来),直接删除属性A对应的密文组件(C1,o,…,Ct,o),然后给属性A标记delete;
b.若删除Pj-1中的连接符and和属性A,则设A=ρ(o),先删除A对应的密文组件(C1,o,…,Ct,o),然后计算PRF(OUK,CID),恢复
Figure BDA0002247757880000081
然后计算
Figure BDA0002247757880000082
式中,
Figure BDA0002247757880000083
是矩阵W的第o行元素组成的向量,
Figure BDA0002247757880000084
是一个向量,其定义为
Figure BDA0002247757880000085
s∈Zp是要共享的秘密,y2,…,yn∈Zp是随机数(λo
Figure BDA0002247757880000086
Figure BDA0002247757880000087
对应元素相乘再相加计算结果,又称为
Figure BDA0002247757880000088
Figure BDA0002247757880000089
的内积);令N(Pj-1,A)代表删除A后需要改变对应向量的属性的集合(它可以通过矩阵更新方法得到),对属性ρ(i)∈N(Pj-1,A),(C1,o,…,Ct,o)以和加密算法相同的方式更新,并用λo替代原本的λi,然后给每个属性ρ(i)∈N(Pj-1,A)标记multiply,给属性A标记delete;所述的OUK为数据所有者的密文更新密钥(可根据安全参数获得),CID为随机数,CID∈Zp
c.若增加连接符or和属性A到Pj-1中,则计算策略P的根节点对应的向量
Figure BDA00022477578800000810
然后计算PRF(OUK,CID),恢复
Figure BDA00022477578800000811
计算
Figure BDA00022477578800000812
再设A=ρ(o),直接令λo=λx,以和加密算法相同的方式计算A对应的新密文组件(C1,o,…,Ct,o),然后给属性A标记add;
d.若增加连接符and和属性A到Pj-1中,则计算PRF(OUK,CID),恢复
Figure BDA00022477578800000813
Figure BDA00022477578800000814
后边选择随机数yo,设A=ρ(o),选择随机数yo,令λo=-yo,以和加密算法相同的方式计算A对应的新密文组件(C1,o,…,Ct,o),然后给属性A标记add;令N(Pj-1,A)代表增加A后需要改变对应向量的属性的集合(它可以通过矩阵更新方法得到),对属性ρ(i)∈N(Pj-1,A),以和加密算法相同的方式计算(C1,o,…,Ct,o),并用yo替代原本的λi,然后给每个属性ρ(i)∈N(Pj-1,A)标记multiply。
可选的,进行策略更新时,策略矩阵W对应的通过以下方式进行更新:
首先,更新被删除或者新增加节点的兄弟节点对应的向量:
1)对于删除一个or连接的节点(因为or给它的两个子节点标记了相同的向量,删除一个并不影响另一个的值),直接移除被删除节点对应的向量;
2)对于删除一个and连接的节点,移除被删除节点的向量后,该向量被加到它的兄弟节点上;
3)对于新增一个or连接的节点,将其兄弟节点对应的向量赋给它即可(一般它的兄弟节点是逻辑连接符and或者or,对应向量需要通过其子节点恢复出来);
4)对于新增一个and连接的节点,把它的对应向量设置为(0,…,0|-1),把(0,…,0|1)加到它的兄弟节点对应的向量上,0的个数与当前向量长度相同;
其次,更新兄弟节点的后代节点对应的向量:若向量
Figure BDA0002247757880000091
被加到某节点后,设其为当前节点,向下处理——如果当前节点是and,把
Figure BDA0002247757880000092
加到它的任一个子节点对应的向量上;如果当前节点是or,把
Figure BDA0002247757880000093
加到它的两个子节点对应的向量上;如果当前节点是叶子节点,把
Figure BDA0002247757880000094
加到它对应的向量上。
可选的,步骤S43中,所述的状态转移图通过以下方法构建(如图2所示):首先定义7种状态,分别是Start,Delete,Add,Multiply,Add’,Multiply’和Replace,其中Start,Add’和Multiply’属于中间状态,Delete,Add,Multiply和Replace属于最终状态,随着密文更新组件一起输出;所有属性开始都处于Start状态;在一次原子更新中,如果一个属性被标记了delete,multiply,或者add,它的状态沿着状态转移图相应移动——如果一个属性被标记了delete,则其状态由Start转移为Delete,或者由Multiply转移为Delete,或者由Add转移为Delete,或者由Add’转移为Delete,或者由Multiply’转移为Delete;如果一个属性被标记了multiply,则其状态由Start转移为Multiply,或者由Add转移为Multiply,或者由Multiply转移为Multiply,或者由Add’转移为Multiply’,或者由Multiply’转移为Multiply’;如果一个属性被标记了add,则其状态由Start转移为Add,或者由Delete到Add’;如果在所有原子更新完成后,某个属性最终的状态是Add’或者Multiply’,它的状态自动转移为Replace。
可选的,步骤S5包括以下步骤:
S51,把公开更新组件PUC和旧密文CT对应的密文组件C和C0分别相乘作为新密文CT’的新密文组件C和C0
S52,根据公开更新组件PUC中属性对应的状态对旧密文CT做如下处理:
1)如果属性ρ(i)标记的状态是Multiply,则新密文CT’相应的密文组件
Figure BDA0002247757880000101
式中,C1,i、…、Ct,i为旧密文组件,
Figure BDA0002247757880000102
为公开更新组件,C′1,i、…、C′t,i为新密文组件;
2)如果属性ρ(i)标记的状态是Replace,则用
Figure BDA0002247757880000103
替换C1,i,…,Ct,i作为新的C′1,i,…,C′t,i
3)如果属性ρ(i)标记的状态是Delete,则删除C1,i,…,Ct,i
4)如果属性ρ(i)标记的状态是Add,则把
Figure BDA0002247757880000104
添加到相应位置即可;
最终密文更新完成,新密文CT’与新访问策略P’对应。
可选的,步骤S43还包括:
对所述的最终的策略密文组件做一次刷新操作:执行加密算法,令其输入明文为单位元1,然后将所生成密文的组件与所述的最终的策略密文组件相乘,其结果作为公开更新组件PUC。
实施例2:一种非交互式加密访问控制方法,如图1所示,包括以下步骤:
S1,信任中心进行数据初始化,根据输入的安全参数,获得系统公钥PK和系统主密钥MK;
S2,信任中心根据系统公钥PK、系统主密钥MK和用户属性集合S,获得与用户属性集合S对应的用户私钥SK;
S3,数据所有者根据系统公钥PK、访问策略P,获得明文M在访问策略P下的密文CT,将所述密文CT存入第三方存储平台;
S4,当数据所有者需要更新访问策略时,根据系统公钥PK、当前访问策略P和新访问策略P’,获得一个公开更新组件PUC;
S5,将所述的公开更新组件PUC发送至第三方存储平台,对其存储的原始密文CT进行更新,获得与新访问策略P’对应的新密文CT’;
S6,数据访问者输入系统公钥PK、密文和用户私钥SK,如果用户私钥SK对应的属性集合S满足密文对应的访问策略的要求,则输出明文M,否则输出乱码。
可选的,步骤S4包括以下步骤:
S41,将从当前访问策略P向新访问策略P’转换的过程分解为一系列原子更新的过程,每个原子更新只改变一个属性以及该属性相关的逻辑连接符;
S42,在原子更新过程中,根据以下四种情况——删除连接符or和属性、删除连接符and和属性、增加连接符or和属性、增加连接符and和属性,对相应的属性做标记,标记为delete、multiply或add;
S43,基于对属性所做的标记,将其作为触发条件,利用状态转移图处理从P到P’的原子更新序列,记录并更新相应的状态和策略密文组件,从而获得最终的策略密文组件,作为公开更新组件PUC;所述的相应的状态包括:Delete,Add,Multiply、Replace。
可选的,步骤S3包括,数据所有者根据系统公钥PK、访问策略P,获得明文M在访问策略P下的密文CT,以及一个内部参数IP(internal parameter的缩写),将所述密文CT存入第三方存储平台;其中,
Figure BDA0002247757880000111
(并在PolicyUpdate原子更新时相应改变λi以更新
Figure BDA0002247757880000112
每个
Figure BDA0002247757880000113
是属性ρ(i)对应的秘密分片,被嵌入到密文组件中;步骤S42具体包括:
S421,若删除Pj-1中的连接符or和属性A,则设A=ρ(o),直接删除属性A对应的密文组件(C1,o,…,Ct,o),然后给属性A标记delete,IP中的λA设置为空值;
S422,若删除Pj-1中的连接符and和属性A,则设A=ρ(o),先删除A对应的密文组件(C1,o,…,Ct,o);令N(Pj-1,A)代表删除A后需要改变对应向量的属性的集合(它可以通过矩阵更新方法得到),对属性ρ(i)∈N(Pj-1,A),把IP中的λi的值改为λiA,(C1,o,…,Ct,o)以和加密算法相同的方式更新,然后给每个属性ρ(i)∈N(Pj-1,A)标记multiply,给属性A标记delete,并把IP中的λA设置为空值;其中,λi是属性ρ(i)对应的秘密分片,λA是属性A对应的秘密分片;
S423,若增加连接符or和属性A到Pj-1中,则计算策略P的根节点对应的向量
Figure BDA0002247757880000114
然后根据IP中
Figure BDA0002247757880000115
涉及的属性对应的λi计算λx(设对应
Figure BDA0002247757880000116
的策略为P,以二叉树形式表示P;计算过程从根节点开始递归向下,如果当前为and,它的λ值为它的两个子节点对应λ值之和,如果当前节点是or,它的λ值为两个节点中任一个);再设A=ρ(o),直接令λo=λx,并将其加入IP,然后以和加密算法相同的方式计算A对应的新密文组件(C1,o,…,Ct,o),然后给属性A标记add;
S424,若增加连接符and和属性A到Pj-1中,则设A=ρ(o),选择随机数yo,令λo=-yo,将λo加入IP;以和加密算法相同的方式计算A对应的新密文组件(C1,o,…,Ct,o),然后给属性A标记add;令N(Pj-1,A)代表增加A后需要改变对应向量的属性的集合(它可以通过矩阵更新方法得到),对属性ρ(i)∈N(Pj-1,A),把IP中的λi的值改为λi+yo,然后以和加密算法相同的方式计算(C1,o,…,Ct,o),并给每个属性ρ(i)∈N(Pj-1,A)标记multiply。
可选的,步骤S43中,所述的状态转移图通过以下方法构建(如图2所示):首先定义7种状态,分别是Start,Delete,Add,Multiply,Add’,Multiply’和Replace,其中Start,Add’和Multiply’属于中间状态,Delete,Add,Multiply和Replace属于最终状态,随着密文更新组件一起输出;所有属性开始都处于Start状态;在一次原子更新中,如果一个属性被标记了delete,multiply,或者add,它的状态沿着状态转移图相应移动——如果一个属性被标记了delete,则其状态由Start转移为Delete,或者由Multiply转移为Delete,或者由Add转移为Delete,或者由Add’转移为Delete,或者由Multiply’转移为Delete;如果一个属性被标记了multiply,则其状态由Start转移为Multiply,或者由Add转移为Multiply,或者由Multiply转移为Multiply,或者由Add’转移为Multiply’,或者由Multiply’转移为Multiply’;如果一个属性被标记了add,则其状态由Start转移为Add,或者由Delete到Add’;如果在所有原子更新完成后,某个属性最终的状态是Add’或者Multiply’,它的状态自动转移为Replace。
可选的,步骤S5包括以下步骤:
S51,把公开更新组件PUC和旧密文CT对应的密文组件C和C0分别相乘作为新密文CT’的新密文组件C和C0
S52,根据公开更新组件PUC中属性对应的状态对旧密文CT做如下处理:
1)如果属性ρ(i)标记的状态是Multiply,则新密文CT’相应的密文组件
Figure BDA0002247757880000121
式中,C1,i、…、Ct,i为旧密文组件,
Figure BDA0002247757880000122
为公开更新组件,C′1,i、…、C′t,i为新密文组件;
2)如果属性ρ(i)标记的状态是Replace,则用
Figure BDA0002247757880000123
替换C1,i,…,Ct,i作为新的C′1,i,…,C′t,i
3)如果属性ρ(i)标记的状态是Delete,则删除C1,i,…,Ct,i
4)如果属性ρ(i)标记的状态是Add,则把
Figure BDA0002247757880000124
添加到相应位置即可;
最终密文更新完成,新密文CT’与新访问策略P’对应。
可选的,步骤S43还包括:
对所述的最终的策略密文组件做一次刷新操作:执行加密算法,令其输入明文为单位元1,然后将所生成密文的组件与所述的最终的策略密文组件相乘,其结果作为公开更新组件PUC。
实验例1:以文献“[RW13]Y.Rouselakis,B.Waters,Practical constructionsand new proof methods for large universe attribute-based encryption,ACMCCS2013,pp.463-474,2013.”所述的加密方法为例,采用本发明的方法进行加密访问控制(如图3所示):
步骤一,采用Setup算法进行数据初始化:生成两个p阶循环群G和GT和一个双线性映射e:G*G→GT,选择随机元素g,u,h,w,v∈G和α∈Zp。设置系统公钥PK=(G,GT,e,g,u,h,w,v,e(g,g)α),系统主私钥MK=(α);
步骤二,采用KeyGen算法计算用户私钥SK:选择一个随机数r∈Zp,对每个属性集合S中的属性j,选择一个随机数rj∈Zp,计算
Figure BDA0002247757880000131
步骤三,执行UpdateKeyGen算法:选择一个随机数OUK∈Zp,Zp表示模p整数群;然后执行Encrypt算法:令PRF代表一个伪随机函数族,OUK是秘密,选择一个随机数CID∈Zp作为种子,PRF(OUK,CID)输出随机序列。选取其中前n个随机数s,y2,…,yn∈Zp为形成向量
Figure BDA0002247757880000132
计算
Figure BDA0002247757880000133
选择随机数t1,…,tl∈Zp,计算密文
Figure BDA0002247757880000134
步骤四,执行PolicyUpdate算法进行策略更新:首先将从当前访问策略P向新访问策略P’转换的过程分解为一系列我称之为原子更新的过程,每个原子更新只改变一个属性(以A表示)以及该属性相关的逻辑连接符。每个原子更新考虑4种情况:
1.Pj-1=Pj or A:为了从Pj-1中删除A,设A=ρ(o),直接删除A对应的密文组件(C1,o,C2,o,C3,o),然后给A标记delete。
2.Pj-1=Pj and A:为了从Pj-1中删除A,设A=ρ(o),先删除A对应的密文组件(C1,o,C2,o,C3,o),然后计算PRF(OUK,CID),恢复
Figure BDA0002247757880000135
计算
Figure BDA0002247757880000136
令N(Pj-1,A)代表删除A后需要改变对应向量的属性的集合。它可以通过矩阵更新方法得到。对属性ρ(i)∈N(Pj-1,A),(C1,i,C2,i,C3,i)更新如下:选随机数ti∈Zp,计算
Figure BDA0002247757880000137
接下来给每个属性ρ(i)∈N(Pj-1,A)标记multiply,给属性A标记delete。
3.Pj=Pj-1 or A,为了增加属性A到Pj-1中,计算P的根节点对应的向量
Figure BDA0002247757880000138
然后计算PRF(OUK,CID),恢复
Figure BDA0002247757880000139
计算
Figure BDA00022477578800001310
设A=ρ(o),直接令λo=λx,计算A对应的新密文组件(C1,o,C2,o,C3,o):选择选随机数to∈Zp,计算
Figure BDA00022477578800001311
接下来给属性A标记add。
4.Pj=Pj-1 and A,为了增加属性A到Pj-1中,计算PRF(OUK,CID),在
Figure BDA0002247757880000141
后边选择随机数yo。设A=ρ(o),令λo=-yo,计算A对应的新密文组件(C1,o,C2,o,C3,o):选择选随机数to∈Zp,计算
Figure BDA0002247757880000142
接下来给属性A标记add。令N(Pj-1,A)代表增加A后需要改变对应向量的属性的集合。它可以通过矩阵更新方法得到。对属性ρ(i)∈N(Pj-1,A),(C1,i,C2,i,C3,i)更新如下:
选随机数ti∈Zp,计算
Figure BDA0002247757880000143
接下来给每个属性ρ(i)∈N(Pj-1,A)标记multiply。
以上即完成了对一次原子更新可能遇到的4种情况的处理。接下来,基于上面的delete,add和multiply三种标记,定义一个状态转移图来处理从P到P’的原子更新序列:
定义7种状态,分别是Start,Delete,Add,Multiply,Add’,Multiply’和Replace。其中Start,Add’和Multiply’属于中间状态,Delete,Add,Multiply和Replace属于最终状态,可以随着密文更新组件一起输出。状态图如图2所示。所有属性开始都处于Start状态。在一次原子更新中,如果一个属性被标记了delete,multiply,或者add,它的状态沿着状态转移图相应移动。如果在所有原子更新完成后,某个属性最终的状态是Add’或者Multiply’,它的状态自动转移为Replace。
步骤五、执行CipherTextUpdate算法对密文进行更新:一个密文CT包含组件(P,C,C0,{C1,i,C2,i,C3,i}i∈[l]),一个公开更新组件PUC也包含同样格式的组件,区别是在每个C1,i,C2,i,C3,i前面会有一个状态标志。首先把PUC和CT对应的C和C0分别相乘作为CT’的C和C0。然后,根据PUC中属性对应的状态对密文做如下处理:
1.如果ρ(i)标记的状态是Multiply,CT’的密文
Figure BDA0002247757880000144
2.如果ρ(i)标记的状态是Replace,用
Figure BDA0002247757880000145
替换C1,i,C2,i,C3,i作为新的C′1,i,C′2,i,C′3,i
3.如果ρ(i)标记的状态是Delete,删除C1,i,C2,i,C3,i
4.如果ρ(i)标记的状态是Add,把
Figure BDA0002247757880000146
添加到相应位置即可。
最终密文更新完成,新密文CT’与新访问策略P’对应。
步骤六,执行Decrypt算法:定义
Figure BDA0002247757880000147
且I={i:ρ(i)∈S},存在{ωi∈Zp}i∈I,使得∑i∈IωiWi=(1,0,…,0)。先计算
Figure BDA0002247757880000148
然后计算
Figure BDA0002247757880000149
最后得到
Figure BDA00022477578800001410
实验例2:以下举例说明如何把一个访问策略“(A or B)and C”对应的密文转换为一个新的访问策略“(A and B)or D”对应的密文。
首先系统初始化PK=(G,GT,e,g,u,h,w,v,e(g,g)α),系统主私钥MK=(α)对于两个属性集合S1=(A,C)和S2=(A,B,D),可以调用KeyGen算法为其分配密钥。假设有个用户Alice对应属性集合为S1,按照KeyGen可以选择随机数r,rA,rC∈Zp,并计算出
Figure BDA0002247757880000151
Figure BDA0002247757880000152
再设有一个用户Bob对应属性集合S2,同样可以选择随机数r,rA,rB,rD∈Zp,生成其对应密钥
Figure BDA0002247757880000153
Figure BDA0002247757880000154
Figure BDA0002247757880000155
定义一个访问策略P=((A or B)and C)。假设一个数据所有者Clark选择一个随机数OUK∈Zp,在策略P下加密文档M,他首先把P解析成矩阵(W2*3,ρ)=(W1=(1,1),W2=(1,1),W3=(0,-1),ρ(1)=A,ρ(2)=B,ρ(3)=C),然后Clark选择随机数作为CID,计算PRF(OUK,CID),从中选择前两个随机数形成向量
Figure BDA0002247757880000156
然后选择随机数t1,t2,t3∈Zp,计算
Figure BDA0002247757880000157
最后得到密文
CT=(P=((A or B)and C),C=Me(g,g)αs,C6=gs,
Figure BDA0002247757880000158
Figure BDA0002247757880000159
Figure BDA00022477578800001510
接下来就可以把CT上传到第三方云平台上。
这时Alice是可以解密该密文的。解密过程如下:
下载密文CT,输入自己的密钥SK1,令I={A,C},ω=(1,0,1,0),计算
Figure BDA00022477578800001511
Figure BDA00022477578800001512
Figure BDA00022477578800001513
Figure BDA00022477578800001514
此时Bob的属性不符合P,解密会失败。而如果Clark按照策略P=((A and B)or D)来加密M形成密文:
CT=(P=((A and B)or D),C=Me(g,g)αs,C0=gs,
Figure BDA0002247757880000161
Figure BDA0002247757880000162
Figure BDA0002247757880000163
则Bob可以解密。
下面说明如何通过本发明的策略更新方法而非重新加密形成P=(A and B)or D对应的密文。
首先,数据所有者计算PRF(OUK,CID),恢复出向量
Figure BDA0002247757880000164
然后计算
Figure BDA0002247757880000165
策略更新过程可以分解为下面4个原子更新:
1.(A or B)and C→A or B
2.A or B→A
3.A→A and B
4.A and B→(A and B)or D
原子更新1满足PolicyUpdate的第二种情况(即步骤S42的步骤b)。于是,删除C1,1,C2,1,C3,1,给属性C打上标记delete。由于删除C的时候属性A和B都受到影响,N((A or B)andC,C)=A,B。然后选择随机数
Figure BDA0002247757880000166
计算更新组件
PUC1=(P=(A or B),
Figure BDA0002247757880000167
Figure BDA0002247757880000168
Delete)
原子更新2满足PolicyUpdate的第一种情况(即步骤S42的步骤a)。于是,删除C1,2,C2,2,C3,2,给属性B打上标记delete。更新组件变为
PUC2=(P=(A),
Figure BDA0002247757880000169
Delete
Delete)
原子更新3满足PolicyUpdate的第四种情况(即步骤S42的步骤d)。从PRF(OUK,CID)继续选择新的随机数y′2,令λ′2=-y′2,选择随机数
Figure BDA0002247757880000171
计算新密文组件
Figure BDA0002247757880000172
由于加入B会影响属性A,N(A,B)=A,选择随机数
Figure BDA0002247757880000173
更新A对应的密文组件
Figure BDA0002247757880000174
得到
PUC3=(P=(A and B),
Figure BDA0002247757880000175
Figure BDA0002247757880000176
Delete)
原子更新4满足PolicyUpdate的第三种情况(即步骤S42的步骤c)。计算λ(A and B)=λ12=s,令λ4=λ(A and B),然后选择随机数
Figure BDA0002247757880000177
计算新密文组件
Figure BDA0002247757880000178
得到
PUC4=(P=(A and B)or D,
Figure BDA0002247757880000179
Figure BDA00022477578800001710
Delete
Figure BDA00022477578800001711
这样即处理完了所有的原子更新,接下来生成一个策略P=((A and B)or D)下,以单位元为明文的密文,
Figure BDA00022477578800001712
Figure BDA00022477578800001713
Figure BDA00022477578800001714
Figure BDA00022477578800001715
再与PUC4的对应组件相乘得到:
Figure BDA00022477578800001716
Figure BDA00022477578800001717
Replace,
Figure BDA0002247757880000181
Delete,
Add,
Figure BDA0002247757880000182
这样数据所有者就生成了更新组件PUC,然后将其公开发送给第三方存储平台。
第三方存储平台执行CiphertextUpdate算法得到与P′=(A and B)or D相对应的密文:
Figure BDA0002247757880000183
Figure BDA0002247757880000184
Figure BDA0002247757880000185
Figure BDA0002247757880000186
此时,Alice的密钥已经不能解密CT′。Bob的属性集正好满足P′的要求,因此可他以用SK2解密。解密过程如下。下载密文CT,输入自己的密钥SK1,令I={A,B,D},ω=(1,1,0,0),计算:
Figure BDA0002247757880000187
Figure BDA0002247757880000188
Figure BDA0002247757880000189
Figure BDA00022477578800001810
这样Clark就把一个Alice可以解密Bob不能解密的密文更新为一个Bob可以解密Alice不能解密的密文。

Claims (6)

1.一种非交互式加密访问控制方法,其特征在于,包括以下步骤:
S1,信任中心进行数据初始化,根据输入的安全参数,获得系统公钥PK和系统主密钥MK;
S2,信任中心根据系统公钥PK、系统主密钥MK和用户属性集合S,获得与用户属性集合S对应的用户私钥SK;
S3,数据所有者根据系统公钥PK、访问策略P,获得明文M在访问策略P下的密文CT,将所述密文CT存入第三方存储平台;它包括:数据所有者根据系统公钥PK、数据所有者的密文更新密钥OUK、访问策略P,获得明文M在访问策略P下的密文CT,将所述密文CT存入第三方存储平台;
S4,当数据所有者需要更新访问策略时,根据当前访问策略P和新访问策略P’,获得一个公开更新组件PUC;它包括以下的步骤:
S41,将从当前访问策略P向新访问策略P’转换的过程分解为一系列原子更新的过程,每个原子更新只改变一个属性以及该属性相关的逻辑连接符;
S42,在原子更新过程中,根据以下四种情况——删除连接符or和属性、删除连接符and和属性、增加连接符or和属性、增加连接符and和属性,对相应的属性做标记,标记为delete、multiply或add;它具体包括了:
a.若删除策略Pj-1中的连接符or和属性A,则设A=ρ(o),直接删除属性A对应的密文组件(C1,o,...,Ct,o),然后给属性A标记delete;
b.若删除Pj-1中的连接符and和属性A,则设A=ρ(o),先删除A对应的密文组件(C1,o,...,Ct,o),然后计算PRF(OUK,CID),恢复
Figure FDF0000016416690000011
然后计算
Figure FDF0000016416690000012
式中,
Figure FDF0000016416690000013
是矩阵W的第o行元素组成的向量,
Figure FDF0000016416690000014
是一个向量,其定义为
Figure FDF0000016416690000015
是要共享的秘密,y2,...,yn∈Zp是随机数;令N(Pj-1,A)代表删除A后需要改变对应向量的属性的集合,对属性ρ(i)∈N(Pj-1,A),(C1,o,...,Ct,o)以和加密算法相同的方式更新,并用λo替代原本的λi,然后给每个属性ρ(i)∈N(Pj-1,A)标记multiply,给属性A标记delete;所述的OUK为数据所有者的密文更新密钥,CID为随机数,CID∈Zp
c.若增加连接符or和属性A到Pj-1中,则计算策略P的根节点对应的向量
Figure FDF0000016416690000016
然后计算PRF(OUK,CID),恢复
Figure FDF0000016416690000017
计算
Figure FDF0000016416690000018
再设A=ρ(o),直接令λo=λx,以和加密算法相同的方式计算A对应的新密文组件(C1,o,...,Ct,o),然后给属性A标记add;
d.若增加连接符and和属性A到Pj-1中,则计算PRF(OUK,CID),恢复
Figure FDF0000016416690000019
Figure FDF00000164166900000110
后边选择随机数yo,设A=ρ(o),选择随机数yo,令λo=-yo,以和加密算法相同的方式计算A对应的新密文组件(C1,o,...,Ct,o),然后给属性A标记add;令N(Pj-1,A)代表增加A后需要改变对应向量的属性的集合,对属性ρ(i)∈N(Pj-1,A),以和加密算法相同的方式计算(C1,o,...,Ct,o),并用yo替代原本的λi,然后给每个属性ρ(i)∈N(Pj-1,A)标记multiply;
S43,基于对属性所做的标记,将其作为触发条件,利用状态转移图处理从P到P’的原子更新序列,记录并更新相应的状态和策略密文组件,从而获得最终的策略密文组件,作为公开更新组件PUC;所述的相应的状态包括:Delete,Add,Multiply、Replace;
S5,将所述的公开更新组件PUC发送至第三方存储平台,对其存储的原始密文CT进行更新,获得与新访问策略P’对应的新密文CT’;
S6,数据访问者输入系统公钥PK、密文和用户私钥SK,如果用户私钥SK对应的属性集合S满足密文对应的访问策略的要求,则输出明文M,否则输出乱码。
2.根据权利要求1所述的非交互式加密访问控制方法,其特征在于,进行策略更新时,策略矩阵W对应的通过以下方式进行更新:
首先,更新被删除或者新增加节点的兄弟节点对应的向量:
1)对于删除一个or连接的节点,直接移除被删除节点对应的向量;
2)对于删除一个and连接的节点,移除被删除节点的向量后,该向量被加到它的兄弟节点上;
3)对于新增一个or连接的节点,将其兄弟节点对应的向量赋给它即可;
4)对于新增一个and连接的节点,把它的对应向量设置为(0,...,0|-1),把(0,...,0|1)加到它的兄弟节点对应的向量上,0的个数与当前向量长度相同;
其次,更新兄弟节点的后代节点对应的向量:若向量
Figure FDF0000016416690000023
被加到某节点后,设其为当前节点,向下处理——如果当前节点是and,把
Figure FDF0000016416690000024
加到它的任一个子节点对应的向量上;如果当前节点是or,把
Figure FDF0000016416690000025
加到它的两个子节点对应的向量上;如果当前节点是叶子节点,把
Figure FDF0000016416690000026
加到它对应的向量上。
3.根据权利要求1所述的非交互式加密访问控制方法,其特征在于,步骤S3包括,数据所有者根据系统公钥PK、访问策略P,获得明文M在访问策略P下的密文CT,以及一个内部参数IP,将所述密文CT存入第三方存储平台;其中,
Figure FDF0000016416690000021
每个
Figure FDF0000016416690000022
是属性ρ(i)对应的秘密分片,被嵌入到密文组件中;步骤S42具体包括:
S421,若删除Pj-1中的连接符or和属性A,则设A=ρ(o),直接删除属性A对应的密文组件(C1,o,...,Ct,o),然后给属性A标记delete,IP中的λA设置为空值;
S422,若删除Pj-1中的连接符and和属性A,则设A=ρ(o),先删除A对应的密文组件(C1,o,...,Ct,o);令N(Pj-1,A)代表删除A后需要改变对应向量的属性的集合,对属性ρ(i)∈N(Pj-1,A),把IP中的λi的值改为λiA,(C1,o,...,Ct,o)以和加密算法相同的方式更新,然后给每个属性ρ(i)∈N(Pj-1,A)标记multiply,给属性A标记delete,并把IP中的λA设置为空值;其中,λi是属性ρ(i)对应的秘密分片,λA是属性A对应的秘密分片;
S423,若增加连接符or和属性A到Pj-1中,则计算策略P的根节点对应的向量
Figure FDF0000016416690000031
然后根据IP中
Figure FDF0000016416690000032
涉及的属性对应的λi计算λx;再设A=ρ(o),直接令λo=λx,并将其加入IP,然后以和加密算法相同的方式计算A对应的新密文组件(C1,o,...,Ct,o),然后给属性A标记add;
S424,若增加连接符and和属性A到Pj-1中,则设A=ρ(o),选择随机数yo,令λo=-yo,将λo加入IP;以和加密算法相同的方式计算A对应的新密文组件(C1,o,...,Ct,o),然后给属性A标记add;令N(Pj-1,A)代表增加A后需要改变对应向量的属性的集合,对属性ρ(i)∈N(Pj-1,A),把IP中的λi的值改为λi+yo,然后以和加密算法相同的方式计算(C1,o,...,Ct,o),并给每个属性ρ(i)∈N(Pj-1,A)标记multiply。
4.根据权利要求1所述的非交互式加密访问控制方法,其特征在于,步骤S43中,所述的状态转移图通过以下方法构建:首先定义7种状态,分别是Start,Delete,Add,Multiply,Add’,Multiply’和Replace,其中Start,Add’和Multiply’属于中间状态,Delete,Add,Multiply和Replace属于最终状态,随着密文更新组件一起输出;所有属性开始都处于Start状态;在一次原子更新中,如果一个属性被标记了delete,multiply,或者add,它的状态沿着状态转移图相应移动——如果一个属性被标记了delete,则其状态由Start转移为Delete,或者由Multiply转移为Delete,或者由Add转移为Delete,或者由Add’转移为Delete,或者由Multiply’转移为Delete;如果一个属性被标记了multiply,则其状态由Start转移为Multiply,或者由Add转移为Multiply,或者由Multiply转移为Multiply,或者由Add’转移为Multiply’,或者由Multiply’转移为Multiply’;如果一个属性被标记了add,则其状态由Start转移为Add,或者由Delete到Add’;如果在所有原子更新完成后,某个属性最终的状态是Add’或者Multiply’,它的状态自动转移为Replace。
5.根据权利要求1所述的非交互式加密访问控制方法,其特征在于,步骤S5包括以下步骤:S51,把公开更新组件PUC和旧密文CT对应的密文组件C和C0分别相乘作为新密文CT’的新密文组件C和C0
S52,根据公开更新组件PUC中属性对应的状态对旧密文CT做如下处理:
1)如果属性ρ(i)标记的状态是Multiply,则新密文CT’相应的密文组件
Figure FDF0000016416690000033
式中,C1,i、...、Ct,i为旧密文组件,
Figure FDF0000016416690000034
为公开更新组件,C′1,i、...、C′t,i为新密文组件;
2)如果属性ρ(i)标记的状态是Replace,则用
Figure FDF0000016416690000035
替换C1,i,...,Ct,i作为新的C′1,i,...,C′t,i
3)如果属性ρ(i)标记的状态是Delete ,则删除C1,i,...,Ct,i
4)如果属性ρ(i)标记的状态是Add,则把
Figure FDF0000016416690000041
添加到相应位置即可;
最终密文更新完成,新密文CT’与新访问策略P’对应。
6.根据权利要求1所述的非交互式加密访问控制方法,其特征在于,步骤S43还包括:对所述的最终的策略密文组件做一次刷新操作:执行加密算法,令其输入明文为单位元1,然后将所生成密文的组件与所述的最终的策略密文组件相乘,其结果作为公开更新组件PUC。
CN201911022778.1A 2019-10-25 2019-10-25 一种非交互式加密访问控制方法 Active CN110753056B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911022778.1A CN110753056B (zh) 2019-10-25 2019-10-25 一种非交互式加密访问控制方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911022778.1A CN110753056B (zh) 2019-10-25 2019-10-25 一种非交互式加密访问控制方法

Publications (2)

Publication Number Publication Date
CN110753056A CN110753056A (zh) 2020-02-04
CN110753056B true CN110753056B (zh) 2022-05-13

Family

ID=69280002

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911022778.1A Active CN110753056B (zh) 2019-10-25 2019-10-25 一种非交互式加密访问控制方法

Country Status (1)

Country Link
CN (1) CN110753056B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112115494B (zh) * 2020-09-22 2023-04-25 安徽大学 一种适用于自动驾驶车辆内部的数据访问控制方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105493042A (zh) * 2013-08-30 2016-04-13 苹果公司 对动态类型化对象数据的并发访问
CN109831444A (zh) * 2019-02-28 2019-05-31 南京邮电大学 一种基于代理的属性加密云存储访问控制方法
EP3495944A1 (en) * 2011-06-27 2019-06-12 Amazon Technologies, Inc. System and method for implementing a scalable data storage service

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108512662A (zh) * 2018-04-12 2018-09-07 上海海事大学 一种格上支持策略隐藏的多机构加密方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3495944A1 (en) * 2011-06-27 2019-06-12 Amazon Technologies, Inc. System and method for implementing a scalable data storage service
CN105493042A (zh) * 2013-08-30 2016-04-13 苹果公司 对动态类型化对象数据的并发访问
CN109831444A (zh) * 2019-02-28 2019-05-31 南京邮电大学 一种基于代理的属性加密云存储访问控制方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
密文策略基于属性加密的研究;黄晓理;《中国优秀硕士学位论文全文数据库信息科技辑》;20151215;第15-32页,图4-1 *

Also Published As

Publication number Publication date
CN110753056A (zh) 2020-02-04

Similar Documents

Publication Publication Date Title
Katsumata et al. Lattice-based revocable (hierarchical) IBE with decryption key exposure resistance
US10050777B2 (en) Method of updating a file tree stored on a storage server
Souyah et al. An image encryption scheme combining chaos-memory cellular automata and weighted histogram
US7260215B2 (en) Method for encryption in an un-trusted environment
US11728988B2 (en) Elliptic curve isogeny based key agreement protocol
CN112204921A (zh) 利用区块链和多方计算保护轻量级设备的数据隐私的系统和方法
Salowey et al. Specification for the derivation of root keys from an extended master session key (EMSK)
JP6363032B2 (ja) 鍵付替え方向制御システムおよび鍵付替え方向制御方法
Odelu et al. A secure effective key management scheme for dynamic access control in a large leaf class hierarchy
CN109726567B (zh) 一种基于全同态加密的移动目标加密方法
Zhang et al. A cloud-based access control scheme with user revocation and attribute update
Chao et al. An Improved Key-Management Scheme for Hierarchical Access Control.
CN104796260B (zh) 一种满足前向安全的短密文身份基加密方法
CN108763944B (zh) 雾计算中安全可撤销多中心大属性域属性基加密方法
WO2020044748A1 (ja) Idベースハッシュ証明系構成装置、idベース暗号装置、idベースハッシュ証明系構成方法及びプログラム
CN110753056B (zh) 一种非交互式加密访问控制方法
CN114143072A (zh) 一种基于cp-abe的属性撤销优化方法及系统
US8195959B2 (en) Encrypting a credential store with a lockbox
US6975728B1 (en) Hierarchical key management
CN109495478B (zh) 一种基于区块链的分布式安全通信方法及系统
Nan-Run et al. A realizable quantum encryption algorithm for qubits
Lee et al. Self-updatable encryption: time constrained access control with hidden attributes and better efficiency
CN116318636A (zh) 一种基于sm2的门限签名方法
Al-Mahdi et al. Design and analysis of DNA binary cryptography algorithm for plaintext
Shiny et al. Decentralized access control technique with multi-tier authentication of user for cloud storage

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant