CN109660555A - 基于代理重加密的内容安全分享方法和系统 - Google Patents
基于代理重加密的内容安全分享方法和系统 Download PDFInfo
- Publication number
- CN109660555A CN109660555A CN201910020846.4A CN201910020846A CN109660555A CN 109660555 A CN109660555 A CN 109660555A CN 201910020846 A CN201910020846 A CN 201910020846A CN 109660555 A CN109660555 A CN 109660555A
- Authority
- CN
- China
- Prior art keywords
- key
- encryption
- file
- ciphertext
- indicates
- 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.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0281—Proxies
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/06—Network architectures or network communication protocols for network security for supporting key management in a packet data network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/20—Network architectures or network communication protocols for network security for managing network security; network security policies in general
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0631—Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0637—Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/085—Secret sharing or secret splitting, e.g. threshold schemes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
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)
- Power Engineering (AREA)
- Storage Device Security (AREA)
Abstract
本发明提供一种基于代理重加密的内容安全分享方法和系统,密钥服务器生成公开参数、系统主密钥,将公开参数发送至系统用户;密钥服务器生成用户私钥,发送至各系统用户;提供文件上传通道,将文件上传至云服务器;云服务器接收所述文件密文、关键词密文、第一层密文;文件接收端对第一层密文进行属性基解密;云服务器进行密文搜索;文件接收端接收文件密文并解密,制定访问策略,生成重加密密钥,云服务器采用重加密密钥对第一层密文进行重加密后发送至文件分享端。提供一种轻量级的支持关键词搜索的属性基代理重加密方法,实现对原始密文和重加密密文的大规模访问控制,支持灵活的访问策略,提高分享效率,并减轻加解密的计算负担。
Description
技术领域
本发明涉及信息安全技术领域,具体地,涉及一种基于代理重加密的内容安全分享方法和系统,尤其是涉及一种面向大规模用户的基于代理重加密的轻量级内容安全分享方法。
背景技术
随着云计算的发展和普及,用户数据的安全性面临着新的威胁和挑战。因为云环境中用户数量大,且数据的管理权属于第三方服务器,所以用户为了保护自身隐私及数据安全,一般将数据加密后再上传。但是数据经过加密后,传统的访问控制、文件搜索和分享等技术便不再适用。为有效实现加密数据的访问控制、文件搜索及分享,相继提出了多种新型密码体制。其中,代理重加密技术提供了一种不需要进行多次密文加解密传输就能进行密文数据安全分享的机制,大大提高了分享效率;属性基加密通过引入访问结构,并将用户属性映射为该用户的公钥,能够实现大规模细粒度的访问控制;可搜索加密则能够快速、准确检索具有关键词的密文。集中上述密码体制优势,综合实现支持关键词搜索的属性基代理重加密方法对加强云环境的安全性、提高访问控制和分享效率具有重要意义。
经过对现有技术的文献检索发现,Shi Y等人在论文“Attribute-based proxyre-encryption with keyword search”(《具有关键词搜索功能的属性基代理重加密》)(Public Library of Science One,2014,9(12):e116325)(公共科学图书馆杂志2014年9月刊)中提出了一种支持关键词搜索的属性基代理重加密方法。具体为:用与身份标识相关的公钥加密关键词得到原始密文,使用对应私钥和访问策略生成重加密密钥,并利用该重加密密钥对原始密文进行重加密得到重加密密文。该重加密密文能被满足访问策略的用户搜索得到。其不足在于:原始密文不是通过属性基加密得到的,因此原始密文不具备大规模的访问控制功能;并且它未提供原始密文和重加密密文的解密方法。事实上,我们不仅需要对重加密后(即分享后)的密文进行访问控制,还需要对直接加密的密文进行访问控制,而且原始密文和重加密密文的解密在应用中也是不可缺少的功能。
另经文献检索发现,Hong H等人在论文“Towards secure data sharing incloud computing using attribute based proxy re-encryption with keywordsearch”(《基于支持关键词搜索的属性基代理重加密实现云计算中的数据安全分享》)(IEEE International Conference on Cloud Computing and Big Data Analysis,2017:218-223)(IEEE国际云计算和大数据分析会议)中提出的支持关键词搜索的属性基代理重加密方法在加密时使用的是明文和接收者的属性集,重加密密钥的生成借助授权者的私钥和被授权者的属性集,并且通过生成索引进行密文检索。这种方法能实现原始密文和重加密密文的访问控制、检索、解密,实现安全高效的数据分享。其不足在于:访问控制不灵活,只支持“与”门连接的访问结构,对于“或”逻辑或门限控制无能为力。这就导致该方法不能适应复杂的系统。
另经文献检索发现,Liang K等人在论文“Searchable Attribute-BasedMechanism With Efficient Data Sharing for Secure Cloud Storage”(《安全云存储中具有高效数据分享的可搜索属性基加密机制》)(IEEE Transactions on InformationForensics and Security,2017,10(9):1981-1992.)(IEEE国际信息取证和安全交易会议)中提出的方法能够适应任意的线性秘密分享访问结构。其不足在于:算法复杂度高,在实际应用中效率低。
发明内容
针对现有技术中的缺陷,本发明的目的是提供一种基于代理重加密的内容安全分享方法和系统。
根据本发明提供的一种基于代理重加密的内容安全分享方法,包括:
参数初始化步骤:密钥服务器生成公开参数、系统主密钥,将公开参数发送至系统用户,将系统主密钥存储在密钥服务器;
私钥产生步骤:密钥服务器接收各系统用户发送的用户属性,密钥服务器根据用户属性生成对应的用户私钥,将用户私钥发送至各系统用户;
文件上传步骤:提供文件上传通道,将文件上传至云服务器,所述文件上传通道用于将对文件进行对称加密的文件密文CF、对关键词进行对称可搜索加密得到的关键词密文CW、对文件密文的对称密钥进行属性基加密得到的第一层密文CI;
云服务器收发步骤:接收所述文件密文CF、关键词密文CW、第一层密文CI,对文件密文、关键词密文进行一一对应绑定存储,将第一层密文发送至文件接收端;
搜索请求步骤:文件接收端对第一层密文进行属性基解密,得到对称密钥,选定搜索关键词,生成所述关键词对应的陷门,将陷门发送至云服务器;
密文搜索步骤:云服务器接收陷门,根据陷门进行关键词密文搜索,若搜索得到关键词密文对应的文件密文,则将文件密文发送至文件接收端,若未搜索得到关键词密文对应的文件密文,则将搜索失败信息发送至文件接收端;
文件解密步骤:文件接收端接收文件密文,采用对称密钥将文件密文进行对称解密,得到明文文件;
文件分享步骤:文件接收端制定访问策略,生成重加密密钥,将重加密密钥上传至云服务器,云服务器采用重加密密钥对第一层密文进行重加密,得到第二层重加密密文CII,将第二层重加密密文发送至文件分享端。
优选地,所述参数初始化步骤包括:
初始化定义步骤:确定安全参数k、总属性集U,所述安全参数k用于确定对称密钥的长度,所述总属性集U表示用户属性的集合;
生成五元组步骤:选取一条椭圆曲线,随机生成两个大素数p,q,其中p是(q+1)的一个因子,GT是一个阶为p的循环群;选取椭圆曲线上的点组成的有限域Fq上的p阶循环群G,g为G的一个生成元,e为G×G→GT的一个双线性映射;随机选取两个元素b,其中表示由整数1,2,3...p组成的一个整群;选取另外一个生成元g1∈G,生成五元组(p,g,G,GT,e);
定义哈希步骤:定义哈希函数H1:哈希函数H2:GT→{0,1}2k,哈希函数H3:{0,1}*→G,哈希函数H4:{0,1}*→G,哈希函数H5:哈希函数H6:{0,1}*→G;其中,上标*表示任意位数二进制数,上标k表示k位二进制数,上标2k表示2k位二进制数;
参数定义步骤:定义公开参数param=(p,g,G,GT,e,g1,gb,e(g,g)α,H1,H2,H3,H4,H5,H6),系统主密钥msk=gα,其中,e(g,g)α表示用e对g,g做一次双线性映射,再做一次指数为α的指数运算得到的结果,gb表示对g做一次指数为b的指数运算得到的结果,gα表示对g做一次指数为α的指数运算得到的结果;
优选地,所述用户私钥skS=(K,L,Kx),sk表示为私钥,skS表示属性集S对应的私钥,下标s表示属性集S,其中
参数上标t1表示指数运算的指数,上标b表示指数运算的指数,表示对g做一次指数为bt1的指数运算;gα表示对g做一次指数为α的指数运算得到的结果;表示对g做一次指数为t1的指数运算得到的结果;S表示属性集,x表示属性集S中的一个属性;Kx表示属性x对应的一部分私钥;表示先对属性x用哈希函数H3映射,再将映射结果做一次指数为t1的指数运算。
优选地,所述对称加密是随机生成k bit对称密钥Key,采用AES加密的CBC模式进行加密;
所述对关键词进行对称可搜索加密是使用AES加密的CBC模式,以Key为加密密钥,对关键词W加密生成E(W),设E(W)的长度为n bit;随机生成长度n/2 bit的随机值Si,下标i表示序号,再次以Key为加密密钥,对E(W)进行AES加密的CBC模式加密得到kf;以kf为加密密钥,对Si进行AES加密的CBC模式加密,截取前n/2 bit,设为E(Si);将Si和E(Si)拼接得到结果T;对E(W)和T进行异或操作得到关键词密文
所述对文件密文的对称密钥进行属性基加密是输入一个访问策略(M,ρ)和一个对称密钥Key∈{0,1}k,上标k表示k位二进制数,其中访问策略(M,ρ)是一个(t,n)门限的访问策略,矩阵其中xi,i=1~n为第i行的属性编号,则ρ(i)即为xi对应的属性,t表示矩阵的列数,n表示矩阵的行数;
采用所述访问策略对对称密钥属性基加密后输出第一层密文CI。
优选地,所述采用所述访问策略对对称密钥属性基加密是随机选取β∈{0,1}k,计算s=H1(Key,β),随机选取(t-1)个元素生成一个向量 yt表示中的第t个元素,上标k表示k位二进制数,下标t表示元素序号,H1(Key,β)表示将Key和β拼接后用哈希函数H1映射得到的结果;对所有的i=1~n,计算其中Mi是M的第i行,下标i表示序号,λi表示向量点乘第i行M的计算结果;随机选取n个元素下标n表示序号,ri表示第i个元素,计算A2=gs,其中,e(g,g)αs表示用e对g,g做一次双线性映射,再做一次指数为αs的指数运算得到的结果,gs表示对g做一次指数为s的指数运算得到的结果,表示对g1做一次指数为s的指数运算得到的结果;对所有的i=1~n,计算其中,gb表示对g做一次指数为b的指数运算得到的结果,下标i表示序号,i=1,2,3…n,表示对gb做一次指数为λi的指数运算得到的结果,ρ(i)表示用ρ把i映射到一个属性的结果,表示先用哈希函数H3对ρ(i)进行映射,再将映射结果做一次指数为-ri的指数运算,表示对g进行一次指数为ri的指数运算;计算
D=H4(A1,A3,(B1,C1),...,(Bn,Cn))s,输出第一层密文为:
CI=((M,ρ),A1,A2,A3,(B1,C1),...,(Bn,Cn),D),其中,上标s表示前文中H1(Key,β)的结果,(Bi,Ci)表示Bi和Ci的计算结果,(B1,C1)表示表示当i取值为1时Bi和Ci的计算结果,(Bn,Cn)当i取值为n时Bn和Cn的计算结果,D表示用哈希函数H4对A1,A3,(B1,C1),...,(Bn,Cn)做一次哈希映射,并将映射得到的结果再做一次指数为s的指数运算得到的结果。
优选地,所述陷门是采用AES加密的CBC模式,以Key为加密密钥,对关键词W加密得到E(W),用AES加密的CBC模式,以Key为加密密钥,对E(W)加密生成kf,输出陷门TW=(E(W),kf)。
优选地,所述密文搜索是使用陷门TW中的E(W)与关键词密文CW作异或得到取T′的前n/2 bit作为Si′,其中,下标i表示序号,使用AES加密的CBC模式,以kf为密钥,对Si′加密,取解密结果的前n/2 bit与T′的后n/2 bit比对,若一致则CW即为检索的密文,若不一致则继续遍历其它密文。
优选地,所述生成重加密密钥是制定一个访问结构(M′,ρ′),M′是一个(t′,n′)门限的访问策略矩阵,其中i=1~n′,xi为第i行的属性编号,ρ′(i)即为xi对应的属性,输入属性集S和对应的私钥skS;t′表示矩阵的列数,n′表示矩阵的行数,ρ′表示一个映射函数,将i映射为xi对应的属性;
随机选取β′,δ∈{0,1}k,计算s′=H1(δ,β′),随机选取(t′-1)个元素生成向量上标k表示k位二进制数,下标t′表示元素序号,y′t′表示中第t′个元素。
对所有的i=1~n′,计算其中Mi′是M′的第i行;
随机选取n′个元素下标n表示序号,计算 A′2=gs′,其中,e(g,g)αs′表示用e对g,g做一次双线性映射,再做一次指数为αs′的指数运算得到的结果,gs′表示对g做一次指数为s′的指数运算得到的结果;对所有的i=1~n′,计算gb表示对g做一次指数为b的指数运算得到的结果,上标λ′i表示的计算结果,表示对gb做一次指数为λ′i的指数运算,上标-r′i表示负的r′1,...,r′n中的第i个元素,表示先用哈希函数H3对ρ′(i)进行哈希映射,将映射结果做一次指数为-r′i的指数运算,上标r′i表示r′1,...,r′n中的第i个元素,表示对g做一次指数为r′i的指数运算,计算
D′=H6(A′1,A′2,(B′1,C′1),...,(B′n′,C′n′))s′,记
rk4=((M′,ρ′),A′1,A′2,(B′1,C′1),...,(B′n′,C′n′),D′),其中,A′1表示计算得到的结果,即δ和β′拼接再与H2(e(g,g)αs′)做异或运算得到的结果,A′2表示gs′的计算结果,(B′1,C′1)表示当i取值为1时B′i和C′i的计算结果,(B′n′,C′n′)表示当i取值为n′时B′i和C′i的计算结果,D′表示用哈希函数H6对A′1,A′2,(B′1,C′1),...,(B′n′,C′n′)做一次哈希映射,并将映射得到的结果再做一次指数为s′的指数运算得到的结果;
随机选取计算 输出rkS→(M′,ρ′)=(S,rk1,rk2,rk3,rk4,Rx),其中,rk4表示((M′,ρ′),A′1,A′2,(B′1,C′1),...,(B′n′,C′n′),D′),表示对K做一次指数为H5(δ)的指数运算,K表示用户私钥的一部分,H5(δ)表示用哈希函数H5对δ做一次哈希映射,表示对g1做一次指数为θ的指数运算得到的结果,gθ表示对g做一次指数为θ的指数运算得到的结果,表示对L做一次指数为H5(δ)的指数运算,L表示权利要求3中所述的用户私钥的一部分L,Rx表示属性x对应的部分重加密密钥,表示对Kx做一次指数为H5(δ)的指数运算,rkS→(M′,ρ′)表示属性S到访问策略(M′,ρ′)的重加密密钥,S表示属性集S,。
优选地,所述重加密是输入具有
((M,ρ),A1,A2,A3,(B1,C1),...,(Bn,Cn),D)形式的第一层密文CI和具有(S,rk1,rk2,rk3,rk4,Rx)形式的重加密密钥rkS→(M′,ρ′);定义集合I={i:ρ(i)∈S}为{1,...,n}的一个子集,其中i表示M的行号,n表示自然数n,ρ(i)表示M的第i行对应的属性;
检验以下等式是否成立:
e(A′2,H6(A′1,A′2,(B′1,C′1),...,(B′n′,C′n′)))=e(g,D′)
若不成立,则输出生成失败;
若成立,则继续计算A4:
其中,e(A′2,H6(A′1,A′2,(B′1,C′1),...,(B′n′,C′n′)))表示用e对(A′2,H6(A′1,A′2,(B′1,C′1),...,(B′n′,C′n′)))做一次哈希映射,H6(A′1,A′2,(B′1,C′1),…,(B′n′,C′n′))表示用哈希函数H6对(A′1,A′2,(B′1,C′1),…,(B′n′,C′n′))做一次哈希映射,e(g,D′)表示用e对g,D′做一次双线性映射,ωi表示一组常数满足∑i∈Iωiλi=S,其中S=H1(Key,β),ωi的具体计算方法为:
输出第二层重加密密文
CII=(S,(M,ρ),A1,A3,(B1,C1),...,(Bn,Cn),D,A4,rk4),其中,下标i表示元素序号,下标j表示元素需要,xi表示第i个属性的序号,xj表示第j个属性的序号,I表示I={i:ρ(i)∈S}定义的集合。
根据本发明提供的一种基于代理重加密的内容安全分享系统,包括:
参数初始化模块:密钥服务器生成公开参数、系统主密钥,将公开参数发送至系统用户,将系统主密钥存储在密钥服务器;
私钥产生模块:密钥服务器接收各系统用户发送的用户属性,密钥服务器根据用户属性生成对应的用户私钥,将用户私钥发送至各系统用户;
文件上传模块:提供文件上传通道,将文件上传至云服务器,所述文件上传通道用于将对文件进行对称加密的文件密文CF、对关键词进行对称可搜索加密得到的关键词密文CW、对文件密文的对称密钥进行属性基加密得到的第一层密文CI;
云服务器收发模块:接收所述文件密文CF、关键词密文CW、第一层密文CI,对文件密文、关键词密文进行一一对应绑定存储,将第一层密文发送至文件接收端;
搜索请求模块:文件接收端对第一层密文进行属性基解密,得到对称密钥,选定搜索关键词,采用陷门函数生成所述关键词对应的陷门,将陷门发送至云服务器;
密文搜索模块:云服务器接收陷门,根据陷门进行关键词密文搜索,若搜索得到关键词密文对应的文件密文,则将文件密文发送至文件接收端,若未搜索得到关键词密文对应的文件密文,则将搜索失败信息发送至文件接收端;
文件解密模块:文件接收端接收文件密文,采用对称密钥将文件密文进行对称解密,得到明文文件;
文件分享模块:文件接收端制定访问策略,生成重加密密钥,将重加密密钥上传至云服务器,云服务器采用重加密密钥对第一层密文进行重加密,得到第二层重加密密文CII,将第二层重加密密文发送至文件分享端。
与现有技术相比,本发明具有如下的有益效果:
1、采用AES加密和属性代理重加密,保障内容分享的高安全性;
2、面向大规模用户应用需求,支持一种轻量级的支持关键词搜索的属性基代理重加密,能够对原始密文和重加密密文的大规模访问控制,支持灵活的访问策略,提高分享效率,并减轻加解密的计算负担。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1为本发明的系统框架示意图。
具体实施方式
下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。
如图1所示,根据本发明提供的一种基于代理重加密的内容安全分享方法,由密钥服务器、用户(包括文件拥有者、文件接收者和被分享者)和云服务器三类实体,按照以下步骤实现:
步骤1)初始化步骤:密钥服务器确定系统的基本信息,对系统进行初始化,分别生成系统公开参数及系统主密钥,并将生成的公开参数发送给系统中的用户,安全存储生成的系统主密钥。
步骤2)私钥产生步骤:用户将各自的属性集发送给密钥服务器,密钥服务器分别为用户产生其对应的私钥,并将私钥发送给该用户。
步骤3)文件上传步骤:文件拥有者对文件进行对称加密得到文件密文CF(Ciphered File),对关键词进行对称可搜索加密得到关键词密文CW(Ciphered Words),对加密文件的对称密钥进行属性基加密得到经属性基加密的第一层密文CI(CipheredKey-I),并将CF、CW及CI上传至云服务器。
步骤4)云服务器收发步骤:云服务器存储上述收到的CF、CW、CI,其中CF和CW一一对应绑定存储,并将CI发送给文件接收者。
步骤5)搜索请求步骤:文件接收者首先对收到的CI进行属性基解密,得到文件拥有者加密文件的对称密钥;然后选定要搜索的关键词,用陷门函数生成该关键词对应的陷门,并将该陷门发送给云服务器。
步骤6)密文搜索步骤:云服务器根据收到的陷门对它所存储的关键词密文进行搜索,若搜索结果存在,则将搜索到的关键词密文对应的文件密文发送给发起搜索请求的文件接收者,否则返回搜索失败。
步骤7)文件解密步骤:文件接收者使用对称密钥对收到的搜索结果,即搜索到的文件密文进行对称解密得到明文文件。
步骤8)文件分享步骤:文件接收者制定新的访问策略,并生成重加密密钥,将其上传至云服务器。云服务器用该重加密密钥对属性基加密的第一层密文CI用属性代理重加密算法重加密得到第二层重加密密文CII(CipheredKey-II),并将CII发送给被分享者。被分享者若满足新的访问策略,则可以通过属性代理重解密算法得到对称密钥,从而选定关键词并用陷门函数生成关键词对应的陷门,对云服务器发起密文搜索请求。云服务器根据陷门搜索关键词密文并将对应的文件密文发送给发起搜索请求的用户(被分享者),被分享者再对文件密文进行对称解密得到明文文件。
所述的步骤1)具体如下:
1.1)所述系统的基本信息具体指安全参数k和总属性集U。k的大小影响整个系统,其值越大安全性越高,运算效率越低。由于在系统中k用于确定对称加密的密钥长度,因此一般取k值为128、192或256。U是系统中所有用户的属性的集合。
1.2)所述的初始化是指生成五元组(p,g,G,GT,e),并定义一系列哈希函数。具体过程为:首先选取一条椭圆曲线,随机生成两个大素数p,q,其中p是(q+1)的一个因子。GT是一个阶为p的循环群,为有限域的一个子群。选取该椭圆曲线上的点组成的有限域Fq上的p阶循环群G,g为G的一个生成元,e为G×G→GT的一个双线性映射。然后随机选取两个元素b,选取另外一个生成元g1∈G。再定义哈希函数H1:H2:GT→{0,1}2k,H3:{0,1}*→G,H4:{0,1}*→G,H5:H6:{0,1}*→G。则所述的系统公开参数为param=(p,g,G,GT,e,g1,gb,e(g,g)α,H1,H2,H3,H4,H5,H6),系统主密钥为msk=gα。
所述的步骤2)中私钥产生过程具体如下:
给定一个属性集S和系统主密钥msk,随机选取一个参数则生成的私钥skS为:skS=(K,L,Kx),其中
所述的步骤3)具体如下:
3.1)首先随机生成一个k bit(比特)对称密钥Key,这个k即为步骤(1.1)中确定的。
3.2所述的对文件进行对称加密是指以Key为密钥,采用AES加密算法的CBC模式对文件进行对称加密。
3.3)所述的对关键词进行对称可搜索加密,具体为:首先,使用AES加密算法的CBC模式,以Key为加密密钥,对关键词W加密生成E(W),设E(W)的长度为n bit。然后,随机生成长度n/2 bit的随机值Si(这里补充说明,AES分组加密得到的结果的二进制长度必为128的倍数,因此必可以被2整除),再次以Key为密钥,对E(W)进行AES的CBC模式加密得到kf。之后,以kf为密钥,对Si进行AES的CBC模式加密,截取前n/2 bit,设为E(Si)。将Si和E(Si)拼接得到结果T。最后对E(W)和T进行异或操作得到关键词密文
3.4)所述的对称密钥的属性基加密具体为:输入一个访问策略(M,ρ)和一个对称密钥Key∈{0,1}k,输出密文
CI=((M,ρ),A1,A2,A3,(B1,C1),...,(Bn,Cn),D)。具体加密过程为:
所述的访问策略(M,ρ)是一个(t,n)门限的访问策略,矩阵其中xi(i=1~n)为属性编号,则ρ(i)即为xi对应的属性。首先随机选取β∈{0,1}k,计算s=H1(Key,β),随机选取(t-1)个元素生成一个向量然后,对所有的i=1~n,计算其中Mi是M的第i行;再随机选取n个元素计算A2=gs,对所有的i=1~n,计算计算D=H4(A1,A3,(B1,C1),...,(Bn,Cn))s。则输出密文为:CI=((M,ρ),A1,A2,A3,(B1,C1),...,(Bn,Cn),D)。
所述的步骤5)具体如下:
5.1)所述对CI进行属性基解密,步骤为:输入密文
CI=((M,ρ),A1,A2,A3,(B1,C1),...,(Bn,Cn),D)和属性集S对应的私钥skS=(K,L,Kx)。定义集合首先,根据线性秘密分享方案(LSSS:LinearSecret-Sharing Schemes)的重构性质,可以找到一组常数满足∑i∈Iωiλi=s。本方案采用的方法为:
然后,验证S是否满足(M,ρ),即S中的属性在M中对应存在的个数是否大于等于t,并验证以下等式是否成立:
e(A2,g1)=e(g,A3)
e(A3,H4(A1,A3,(B1,C1),...,(Bn,Cn)))=e(g1,D)
若以上条件有一项不能满足,则直接返回解密失败;否则,继续计算
最后,计算若等式成立,则输出Key,否则输出解密失败。
5.2)所述的陷门函数具体为:采用AES加密算法的CBC模式,以Key为加密密钥,对关键词W加密得到E(W),再用AES加密算法的CBC模式,以Key为加密密钥,对E(W)加密生成kf,输出陷门TW=(E(W),kf)。
所述步骤6)中根据陷门对关键词进行密文搜索,具体为:使用TW中的E(W)与关键词密文CW作异或得到取T′的前n/2 bit作为Si′,使用AES加密算法的CBC模式,以kf为密钥,对Si′加密,取解密结果的前n/2 bit与T′的后n/2 bit比对,若一致则CW即为检索的密文,若不一致则继续遍历其它密文。
所述步骤7)中对称解密算法,具体为AES解密算法的CBC模式,使用AES解密算法的CBC模式用对称密钥Key对文件密文CF进行解密。
所述步骤8)具体如下:
8.1)所述的生成重加密密钥,具体步骤为:
设新的访问结构(M′,ρ′),M′是一个(t′,n′)门限的访问策略矩阵,其中xi(i=1~n′)为属性编号,ρ′(i)即为xi对应的属性。输入属性集S和对应的私钥skS。
首先,随机选取β′,δ∈{0,1}k,计算s′=H1(δ,β′)。随机选取(t′-1)个元素生成向量
然后,对所有的i=1~n′,计算其中Mi′是M′的第i行。
再随机选取n′个元素计算A′2=gs′。对所有的i=1~n′,计算计算D′=H6(A′1,A′2,(B′1,C′1),...,(B′n′,C′n′))s′。
记rk4=((M′,ρ′),A′1,A′2,(B′1,C′1),...,(B′n′,C′n′),D′)。
最后,再随机选取计算 输出rkS→(M′,ρ′)=(S,rk1,rk2,rk3,rk4,Rx)。
8.2)所述的属性代理重加密过程,具体为:输入具有
((M,ρ),A1,A2,A3,(B1,C1),...,(Bn,Cn),D)形式的密文CI和具有(S,rk1,rk2,rk3,rk4,Rx)形式的重加密密钥rkS→(M′,ρ′)。与步骤(5.1)中属性基解密类似,定义集合I={i:ρ(i)∈S}为{1,...,n}的一个子集。根据LSSS的重构性质,如果{λi}是s的有效分享,且S满足访问策略则可以找到一组常数满足∑i∈Iωiλi=s。本方案采用
首先检验以下等式是否成立:
e(A′2,H6(A′1,A′2,(B′1,C′1),...,(B′n′,C′n′)))=e(g,D′)
若不成立直接结束该解密步骤,输出生成失败,若成立则继续计算A4:
输出重加密密文CII=(S,(M,ρ),A1,A3,(B1,C1),...,(Bn,Cn),D,A4,rk4)。
8.3)所述的属性重解密过程,具体为:
输入一个具有(S,(M,ρ),A1,A3,(B1,C1),...,(Bn,Cn),D,A4,rk4)形式的重加密密文CII,属性集S′和对应的私钥skS′。
首先,恢复δ||β′。定义集合I′={i:ρ′(i)∈S′}为{1,...,n′}的一个子集。根据LSSS的重构性质,如果{λ′i}是s′的有效分享,且S′满足访问策略则可以找到一组常数满足∑i∈I′ω′i·λ′i=s′。本方案采用
计算:
计算若则继续以下计算,否则输出解密失败。
计算若等式成立,则输出解密结果Key,否则输出解密失败。
8.4)所述的陷门函数同步骤5.2)。
8.5)所述的根据陷门对关键词进行密文搜索,同步骤6)。
8.6)所述的对称解密,同步骤7)。
根据本发明提供的一种存储有计算机程序的计算机可读存储介质,其特征在于,所述计算机程序被处理器执行时实现权利要求所述的方法的步骤。
根据本发明提供的一种基于代理重加密的内容安全分享系统,包括:
参数初始化模块:密钥服务器生成公开参数、系统主密钥,将公开参数发送至系统用户,将系统主密钥存储在密钥服务器;
私钥产生模块:密钥服务器接收各系统用户发送的用户属性,密钥服务器根据用户属性生成对应的用户私钥,将用户私钥发送至各系统用户;
文件上传模块:提供文件上传通道,将文件上传至云服务器,所述文件上传通道用于将对文件进行对称加密的文件密文CF、对关键词进行对称可搜索加密得到的关键词密文CW、对文件密文的对称密钥进行属性基加密得到的第一层密文CI;
云服务器收发模块:接收所述文件密文CF、关键词密文CW、第一层密文CI,对文件密文、关键词密文进行一一对应绑定存储,将第一层密文发送至文件接收端;
搜索请求模块:文件接收端对第一层密文进行属性基解密,得到对称密钥,选定搜索关键词,采用陷门函数生成所述关键词对应的陷门,将陷门发送至云服务器;
密文搜索模块:云服务器接收陷门,根据陷门进行关键词密文搜索,若搜索得到关键词密文对应的文件密文,则将文件密文发送至文件接收端,若未搜索得到关键词密文对应的文件密文,则将搜索失败信息发送至文件接收端;
文件解密模块:文件接收端接收文件密文,采用对称密钥将文件密文进行对称解密,得到明文文件;
文件分享模块:文件接收端制定访问策略,生成重加密密钥,将重加密密钥上传至云服务器,云服务器采用重加密密钥对第一层密文进行重加密,得到第二层重加密密文CII,将第二层重加密密文发送至文件分享端。
本发明提供的基于代理重加密的内容安全分享系统,可以通过基于代理重加密的内容安全分享方法的步骤流程实现。本领域技术人员可以将基于代理重加密的内容安全分享方法理解为所述基于代理重加密的内容安全分享系统的优选例。
以下对另一优选例进行详细阐述。
本优选例中,采用的安全参数k=128,总属性集U={“attr0”,“attr1”,“attr2”,“attr3”,“attr4”,“attr5”,“attr6”,“attr7”}。将这些属性分别编号为0~7。文件接收者属性集为S={“attr1”,“attr3”},即属性编号为1,3。被分享者的属性集S′={“attr4”,“attr6”,“attr7”},即属性编号为4,6,7。
第一步,初始化步骤。密钥服务器确定系统的基本信息,用初始化算法对系统初始化,并生成公开参数发送给系统中的用户,存储生成的系统主密钥。
首先,选取一条椭圆曲线y2=x3+x,选取大素数p和q,满足p是q+1的一个因子。本优选例中选取的q的具体数值为:
q=8780710799663312522437781984754049815806883199414208211028653399266475630880222957078625179422662221423155858769582317459277713367317481324925129998224791
p的具体数值为:
p=730750818665451621361119245571504901405976559617
这样就满足q+1=p*h,其中
h=12016012264891146079388821366740534204802954401251311822919615131047207289359704531102844802183906537786776
然后确定群GT和G、它们的生成元以及它们之间的双线性映射e:
GT是一个阶为p的循环群,为有限域的一个子群。根据循环群的性质,它可以由一个生成元生成。本优选例中它的一个生成元为:
gt=28254269275301197264504125141431408388262145020801534703772381433991124906111331983355622379543496113155614718080366288711642861943134311638242166402884766433737519920897936178654538378837908945419456076293986072161584029954555651455719587594534330223809919475991029426275512510946357766682354691770987213532
G是一个阶为p的循环群,是由有限域Fq内,在所选椭圆曲线上的点的坐标组成的群。同样根据循环群的性质,它可以由一个生成元生成。本优选例中它的一个生成元为:
g=[4263796851811960101931673758852086815779387878033500587161388616037920438281562702651504934157800878877100457214040825830011371688189874814679790444629506,3625242886900819420263094412271070332623748720955534716345419854161598845742352590515789413529587392978178880836452993237633942193797221309773892066190017]
e为G×G→GT的一个双线性映射。
然后随机选取两个元素b,选取另外一个生成元g1∈G,本优选例中它们的值为:
b=562236869373093953247062228888793218228895745356
α=495872979841954898522029691844017389182268214476
g1=[8375702228540801643255416952730517838923410840262147105521871522284322581678808305427049345378729123651297753654276323807831871314913351523967138662505087,6435339317354744812826943807240904935397184344438393156324930483362666922752766488230965166913452910988646524344838036754961689069117588370784909076869240]
然后定义哈希函数的具体实现,本优选例中H1采用SHA512(Secure HashAlgorithm512)(安全散列算法)将输入的2k bit的字节串哈希映射成64字节的字符串,再将映射后的64字节的字节串转到群上。转到对应群上的方法采用PBC Library(ThePairing-Based Cryptography Library)(基于配对的密码函数库)中的element_from_hash()函数。具体为将字节串看成16进制的数字,取合适长度(若长度太长取前部字节,若长度不足用0补足)在群内找到对应元素,这个对应元素即为转换结果。
本优选例中H2把群GT上的一个元素采用PBC Library中的element_to_bytes()函数转换为字节串,具体为将该元素的16进制数表示方式输出为字节串,然后将该字节串用SHA512算法映射成64字节的字符串。最后结果要求为2kbit(即2k/8字节),因此对于SHA512算法得到字符串,若2k/8小于等于64则取前2k/8字节输出,若2k/8大于64则将字符串循环输出,即输出完整个64字节字符串后从头开始重新输出直到补足2k/8字节。
本优选例中H3,H4,H6为相同的哈希函数,采用SHA512算法将输入的任意长度的字节串哈希映射成64字节的字符串,再将映射后的64字节的字节串转到群G上。转到对应群上的方法采用PBC Library中的element_from_hash()函数。具体为将字节串看成16进制的数字,取合适长度(若长度太长取前部字节,若长度不足用0补足)在群G内找到对应元素,这个对应元素即为转换结果。
本优选例中H5采用SHA512算法将输入的k bit的字节串哈希映射成64字节的字符串,在将映射后的64字节的字节串转到群上。转到对应群上的方法采用PBC Library中的element_from_hash()函数。具体为将字节串看成16进制的数字,取合适长度(若长度太长取前部字节,若长度不足用0补足)在群内找到对应元素,这个对应元素即为转换结果。
然后计算公开参数中剩余的gb和e(g,g)α,本优选例中它们计算得到的值为:
gb=[4803028837286355686084272009393548380653580535316096395145713412916304469712959545988375395384953196637783166131108504853867635958843757427789263413634656,8294877133761350224978477136778979690193873765723177409624338170820531671648300176118705650223173463804701665374410401257690441196923436799513321948065706]
e(g,g)α=83961781125574023381261076986384404958149052732794894515574329069463151422607841590471350177673678248531980495798857861181770274526217414481788925161763082021223844845017448510816809765948455812437741344602791034291980615828408419873753737014724533651276711018531872389124636492028638418497655210647997422472
最后计算系统主密钥msk,得到的值为:
msk=[5824421528368164985067487389481858208434480131447624247082052562272901673902792101326019063938684510978605809039942673090442532179930790001897546312370712,1256370299273677262997238381988158562104860454532433285355207763138591720961401477942633735741291225080931983615897982573471319213597063043982611575031227]
第二步,私钥产生步骤。用户将自身的属性集发送给密钥服务器,密钥服务器用密钥生成算法产生对应的私钥,并将私钥发送给对应用户。
首先为文件接收者产生私钥。选取参数本优选例中t1的数值为:
t1=294597601212583715308688970397733172883541752676
计算得到skS为:
本优选例中它们的具体数值为:
K=[5113443208423716468491617852012934753982616860935624926583025013089896387305590274754390256597243762076007904357451889563138867415438791014368809974689230,2153749664605807691890186196804837445651382444621113448961780948946386918110241710347384732492317112744400107978612663409834603305515096485726502815542371]
L=[5835002062171202525451373641646819968152508333932608468222955719593190845201650705426039294119357090411707265577529660805433031210226998899566401115886097,6028649635192726741704705735996225599769460080782439346371548629277144714706255935397101495159194552722973201947024171605446375660619157224963229583529620]
Kattr1=[5496172529021726788387384493418329298864054390459168878373117806314368128324078410932202314330058903561095408289190036806706259253343338033623396926897551,7936342418904036939007314903813418830721296305221328332549507482241347975656264560078037382463564604420751731940731522625059630059886192345604557852777499]
Kattr3=[4340215350896162685123257557472522480800725580487077355393482352894213531914766604783471607422767697179909917661811361210456925432018780141799028003965096,2023476944224540571766227113094362091229926109589155817070612304752893819330365842669450336605817931180786543878930227786757010226801446142365319895907638]
然后为被分享者产生私钥选取参数本优选例中t1′的数值为:
t1′=624628443433813927467811556358684535694121886935
计算得到sk′S为:
本优选例中它们的具体数值为:
K′=[7331300480473576533934267655314199678447973536081516821429772127814887982183033095473719179838096030175704955277257092619989455852996696370005538211242589,6057580733883035263255222824309683531866466934039220809413962186425730548476876997582788783694946596983661319057787023777795362309879294144315592436999569]
L′=[6334107703579922301057643741308117229361050739112897002282638112078609196158333012423720321159539819443107770428340571903642965912571471866748617451871805,8255611065539179357172028885104820747987820431536510997753852789371677520843436023568593203765468774808444173165311975354627184791203962822783041547448380]
K′attr4=[6415936384644492583603309384496258062043453506622333566588073772766157426570711936011467893530287063536406718476875862044982976586161903846748135035932854,2139665234811176792050483294773070825859271038306069831786287171616062490877417020558413695149995243608237646595593484607771046550266320339442498630744756]
K′attr6=[1831057087853575295815695014751346977387148938383373179951063518154974626076622351446421222307125329485079806300710161567627607879554856940440770906704731,1133692476170688082643261145614555577776999092922138924849413426414700279691160686490608738622312184442948330637955727943412129662006130196514368888377304]
K′attr7=[4981150112489471901799850959532738262463612172986371656625874377036672637945713625270702497979461748871630353754941326191581236463197048558774848590156337,2255216374702780317709067000333481405678537222404283984388381336260768571423183563849727275895419671391659564742305726591403379685327342150501082328871305]
第三步,文件上传步骤。文件拥有者对文件进行对称加密得到CF(文件密文),对关键词进行对称可搜索加密得到CW(关键词密文),对对称密钥进行属性基加密得到CI(属性基加密的第一层密文),并将这三者的加密结果上传至云服务器。
首先随机生成一个128bit对称密钥:
Key=67,C6,69,73,51,FF,4A,EC,29,CD,BA,AB,F2,FB,E3,46
然后对文件对称加密具体为采用AES的CBC模式用Key对文件进行对称加密,本优选例中文件用16进制的字符串表示(事实上,任何文件在计算机中都以二进制数形式存在,而二进制数可以用16进制字符串表示),具体为00,01,02,03,04,05,06,07,08,09。
加密得到:
CF=13,A7,4A,04,50,58,8C,8C,9D,C4,DC,07,88,11,9F,23
然后使用AES算法的CBC模式用Key对关键词“word”加密得到E(“word”),其长度为128 bit(16字节),具体数值为:EA,2A,1E,8C,A2,11,DF,C7,8A,18,97,7D,C3,8C,4F,D8随机生成长度为64 bit(8字节)的随机值Si=7C,C2,54,F8,1B,E8,E7,8D
用Key对E(“word”)再次进行AES的CBC模式加密得到kf,具体数值为:C3,97,2A,34,82,FD,F0,08,91,4D,DC,A4,29,C3,DD,04
用kf对Si进行AES的CBC模式加密,截取前64bit(8字节)结果E(Si),具体数值为:A4,E8,AF,F9,AA,2F,06,C8
将Si和E(Si)拼接得到结果T。最后对E(“word”)和T进行异或操作得到关键词密文具体数值为:96,E8,4A,74,B9,F9,38,4A,2E,F0,38,84,69,A3,49,10
然后对对称密钥进行属性基加密。本优选例中制定的访问策略为(2,3)门限,具有属性编号为1,2,3的属性中任意2个及以上属性的用户可以解密。则矩阵随机选取β∈{0,1}k,具体数值为:A4,83,13,AC,D0,CB,32,C2,15,8E,80,EF,79,5D,76,6F
计算s=H1(Key,β),这里将Key,β进行字符串拼接再进行哈希映射,具体数值为:611936117190127821710259824431244476570063693508
随机选取具体数值为:262686409146777661349827787473608901012527229187
向量对i=1,2,3,计算其中Mi是M的第i行,具体数值为:
λ1=143871707671453861698968366333348476176614363078
λ2=406558116818231523048796153806957377189141592265
λ3=669244525965009184398623941280566278201668821452
再随机选取3个元素r1,r2,具体数值为:
r1=198952996489886615343215755477823451087984574451
r2=479970323075522672972332590442379830479096047073
r3=459934599513038566075682395081812096979990672948
计算A2=gs,具体数值为:
A1=34,7D,D2,DE,2A,8B,07,5E,A4,66,2F,56,AA,D0,06,03,D4,AD,91,E6,5D,4E,88,DA,45,CA,2C,F9,52,AF,88,1E
A2=[7269067792909541841856434078293433672722154239190763579041750983848496910855585740504948680736032885011051140412819387907350368611715630033288459417700041,2991083090956637587387260115961810710235521290221715987306144976673812496007439543138304532939238863165286168581746683994229860148145972199970488914293499]
A3=[1208972328045444493175509300366548694747293831615662001499923317610513788157882488108399092518953088371713853615918548395910260574865803722068552033037630,3465882357717243963199011441049783692151503914849780704039903865514142855685538069898434737252542658816298433178964384753451236035361404894618055795925049]
对i=1,2,3,计算具体数值为:
B1=[2505091557526519512199585532859876879604225966605397680546695992218794907416913931597940599048381448984721006380573619966452458377823803728214983117370933,3202551869644305075573536919780449786402814096176740799659656469791058521889803590126319053878841529752192413522273489071181164355092004313620890468034305]
C1=[1366830784684680589593684470021268365922194651728796213613709268432904036375941267810941739608440689832522514559856058284907401222262766251141382338478165,4332891184393440625353410082081294142257730945534001735649063908060980859459703380351975169739581984141250014113599237262770822723276927364886088116927139]
B2=[4351410446626967342111055556279953644954233438462214133355757001427985372272325290950481701307926463390014057977575833153571359762165369332459261342435369,5773119839630062986045013162539129168209730126634256083522829392590910297174788983964111996981394454572093836142389112691171820681477716734879898570204436]
C2=[5111166465201077867525964209695379675869058784834207260532018233275593543915060018743454539155614680948936810205114160383428750663819620379258723187885379,3677309782637643858113589479666726396884819988251882212303779158100677447817300554096102507723657709574542867451959727338177475931381368801499305173764021]
B3=[6325410597547931713200112302704784795801902448295059455418774235227794468080606180845371477751986786953396735140788475554920489850820468675819134128211948,5766151344218551655533237646168690682555474016046832209900257108867640691841512889868054732187752009444852012869842096379286046426016329992009334911794766]
C3=[3723381027935104247647273178800654682287870730167525082117630581842250404263079080898959142609400134816069778449096442169077478392704517536100759540871653,3543579533818324413858278746851373681856208564895520407873149212003586047770715498464458644145880663468070609347081220602520556177728979119097692022662089]
计算D=H4(A1,A3,(B1,C1),(B2,C2),(B3,C3))s,这里将A3,B1,C1,B2,C2,B3,C3的数值相加,将总和转为字符串,再与A1进行拼接,最后进行哈希映射,具体数值为:
D=[4911295074993085898789486828942102329220901168215954299016714595128215032934010203842928288151162324816649317384749054740230645103671554860380346893481643,3833850902366280261302492453761873720591840576338115272098835701136080208235973584956579634395050552176569633999396203788836253734738198629108928700384062]
输出密文CI=((M,ρ),A1,A2,A3,(B1,C1),(B2,C2),(B3,C3),D)。
第四步,云服务器收发步骤。云服务器将收到的CF、CW、CI存储,其中CF和CW一一对应绑定存储,并将CI发送给文件接收者。
第五步,搜索请求步骤。接收者对收到的CI进行属性解密算法解密(只有当他是合法接收者时才可以解密)得到对称密钥,选定要搜索的关键词,用陷门函数生成关键词对应的陷门,并将该陷门发送给云服务器。
文件接收者具有属性编号为1,3的属性,分别对应矩阵M中的第1,3行,因此I={i:ρ(i)∈S}={1,3},利用
计算得到ω1=365375409332725810680559622785752450702988279810
ω3=365375409332725810680559622785752450702988279808
S中属性在M中对应存在的个数为2,满足大于等于t的条件。且经计算以下等式成立:
e(A2,g1)=e(g,A3)
等式两边的具体数值都为:
18445815972687194013392862453969538005856164904179338733844794786015811294034333561716000529507171138883243030178686876785390045234431600602425435401989857381652477761175819777050539504387215343594323228125482933173613562369202134695828319170026596113234784601323513709949595819134336230496059638058167965937
e(A3,H4(A1,A3,(B1,C1),...,(Bn,Cm)))=e(g1,D)
等式两边的具体数值都为:
49461490896977302942244862770306447440544971544943717669283826891826543732636925651492655020897388289085809657051038823318076133707717319861112861369542877867899246768085461368385549982804293455299724579003991138793191832578870030844831703266502768455293229592657158831798346080345435463705245598381861861136
等式两边的具体数值都为:
70989359901840909059996653186088425959985238195746553959240593885920787953107567633787587611124091127895974625321082884665414493613391862803513705806627273382745202498938433356483121089332727042098654512289510152529299231726453893290557818514104664547054000892017358193125693824768062442439945341319362796558
继续计算
然后计算具体数值为:
67,C6,69,73,51,FF,4A,EC,29,CD,BA,AB,F2,FB,E3,46,A4,83,13,AC,D0,CB,32,C2,15,8E,80,EF,79,5D,76,6F
经计算等式成立,等式两边数值都为:
[1208972328045444493175509300366548694747293831615662001499923317610513788157882488108399092518953088371713853615918548395910260574865803722068552033037630,3465882357717243963199011441049783692151503914849780704039903865514142855685538069898434737252542658816298433178964384753451236035361404894618055795925049]
因此输出解密结果Key为:67,C6,69,73,51,FF,4A,EC,29,CD,BA,AB,F2,FB,E3,46
用AES算法的CBC模式用Key对关键词“word”加密得到E(“word”),再用AES算法的CBC模式用Key对E(“word”)加密生成kf,输出陷门TW=(E(“word”),kf),具体数值为:
E(“word”)=EA,2A,1E,8C,A2,11,DF,C7,8A,18,97,7D,C3,8C,4F,D8
kf=C3,97,2A,34,82,FD,F0,08,91,4D,DC,A4,29,C3,DD,04
第六步,密文搜索步骤。云服务器根据收到的陷门对云服务器上的关键词密文进行搜索,若搜索结果存在,则将搜索到的关键词密文对应的文件密文发送给发起搜索请求的用户(即接收者),否则返回搜索失败。
使用TW中的E(W)与其中的一个关键词密文CW作异或得到具体数值为:7C,C2,54,F8,1B,E8,E7,8D,A4,E8,AF,F9,AA,2F,06,C8
取T′前64bit作为Si′,使用AES算法的CBC模式用TW中的kf对Si′加密得到结果为:
A4,E8,AF,F9,AA,2F,06,C8
该结果与T′的后64bit一致,因此该CW即为检索的密文。
第七步,文件解密步骤。文件接收者使用对称密钥对收到的搜索结果(文件密文)对称解密得到明文文件:00,01,02,03,04,05,06,07,08,09。
第八步,接收者分享步骤。文件接收者制定新的访问策略,并用重加密密钥生成算法生成重加密密钥,将其上传至云服务器。云服务器用重加密密钥对属性基加密的第一层密文CI用重加密算法重加密得到重加密密文CII,并将CII发送给被分享者。被分享者若满足新的访问策略,则可以通过属性重解密算法得到对称密钥从而选定关键词用陷门函数生成关键词对应的陷门对云服务器发起密文搜索请求。云服务器根据陷门搜索关键词密文并将对应的文件密文发送给发起搜索请求的用户(被分享者),被分享者再对文件密文进行对称解密得到明文文件。
首先生成重加密密钥。制定一个新的访问策略,为(3,4)门限,具有属性编号为4,5,6,7的属性中任意3个及以上属性的用户可以解密。矩阵随机选取β′,δ∈{0,1}k,具体数值为:
β′=4D,9A,BF,16,FF,D9,0A,46,ED,5B,24,80,1B,29,5E,04
δ=70,16,71,9B,B1,31,6A,AE,59,BE,8D,39,01,94,9F,AB
计算s′=H1(δ,β′),这里将δ,β′字符串拼接后再进行哈希映射,具体数值为:
s′=208668193023810924324387671444191530524243984411
随机选取2个元素y′2,具体数值为:
y′2=142508172774284654270307599160091010790986707324
y′3=139692379719871146551621377622111206527080665733
向量对i=1,2,3,4,计算其中Mi′是M′的第i行,具体数值为:
λ′1=90775684977081400787083127752315272497575226967
λ′2=29013637899303131299744634368397339220334806654
λ′3=246636350261267154915648896228701818997255717807
λ′4=12893003397521850273676667761723810422361400809
随机选取4个元素r′1,r′2,r′3,具体数值为:
r′1=710351103286488348469079734810969025313423337699
r′2=476521549289696910069963321939175662450715808778
r′3=319908206288985788817785943208813568156061885446
r′4=472090906620490246798902246010459587196876510606
计算A′2=gs′,具体数值为:
A′1=80,60,12,AD,EC,94,0E,EF,58,69,33,71,F2,C4,0C,6C,C6,D2,39,52,1E,D2,DF,B4,32,82,CF,0E,6C,83,50,E3
A′2=[804634677449361008797405691250803837536488879080570502910901913098340345122247445643104217018401436157305143435509131611514382198695188420454385477313957,2451930705663597532220993354834446263809527563756850956996622741706543341429214940818807359252166600296895952631236038540071568911178333620595133118388777]
对所有的i=1,2,3,4,计算具体数值为:
B′1=[1064838108231459739254501492644070425105248505818269896286561296024216398636479579818374213892182001484845158759438018593845971597727617138810388994136586,2355149525268645640584901530163079594187640586321832785176781189443102893542885494008310962282057113742496621826703715577424697602362154390276702040052834]
C′1=[6322978163224401845963888400689611004370115991479102967818336772650429997786399043196414540165544541774338096087138772900664599525418025802908506570149399,5703036099863053004810494258807114900027366229493148615167686047307710008753259499254500750167706904541555059247279307279373620798623808587017999122154244]
B′2=[879589892510468610775385451645913260044399929119834198491700921541002514399188593338800266503063853493276785434895582938913080419119960218798997047499556,2153150289876372394572088730079964406057332256141791441022768722016628505049081891696056060560583023394034174357168752107550943588476232288236930322709465]
C′2=[1350654468128491093434273036047538046619889803104972427046399785221555641710592638195092315079485393892460639381428099914837635118118268054659653870953762,865885584898095411732252911695576556126182169555496564245525936348696263368684330153707210254253309508424381249621242322187956817779963578211668653648907]
B′3=[6106349688661747948844802865220639320595270501858954730165570674903433036802311609180078256742670312871455975734677791300615072367594396279202274556445497,1423270525123186161598759352259796239192402423394350075570409647239241348843283491645897917431435939450488796638600727907664778528468928670407920727856639]
C′3=[668943078872827561747378920933433326555944015426767968835187172695358217938712357271504116084194135409854137713015482553638870583366542847956634223136367,3293025519103027389426671078263982961180556597699135825537096287967337787991830372821451756273758686425520313139986370029943582812094197604948731502351088]
B′4=[7435928641061135058951576082062453297902667810885970442527200597152782577289057862145114121909504147098134039273892124094354875020730809644220640935362167,6521309290886308673349280460334477456060642263984916419434147958466721430680561598046087219987176175801384197596357811731072431578117360465038050103494108]
C′4=[6996988449109685305551472364627319639526100982933202930797377028425311373525325394385487223649682100834671832987666822351834177155198311805382458412329843,3734547390343593948687633689109327489127473358880813293562388316296101383303745736419233381687512690451862529244981854912669386348286892169842964369118156]
计算D′=H6(A′1,A′2,(B′1,C′1),(B′2,C′2),(B′3,C′3),(B′4,C′4))s′,这里将A′2,B′1,C′1,B′2,C′2,B′3,C′3,B′4,C′4数值相加,将总和转为字符串,然后与A′1进行字符串拼接,最后进行哈希映射,具体数值为:
D′=[1812849695542487979162136180443293211146355600068819870372860477014342533806297242086792572720856533833916607036599953154363051750833091772177260145098370,4551695436960409102625158170156382568710341059303268465890301594693970367791461073072890650253863620653740883126254393001438494550807464323387136697383102]
记rk4=((M′,ρ′),A′1,A′2,(B′1,C′1),(B′2,C′2),(B′3,C′3),(B′4,C′4),D′)。
再随机选取具体数值为:
θ=536735904727771215454863558486783699739128042038
计算 具体数值为:
rk1=[8223195631736818781248941411051162609276098961600443340230472766097784088717089909127199049642314627458187884161510411379049216335630689490496938003107856,4156297954306667773818742365544082836280277474104615843412805055002693473027359293719288012982712502955989776654780925017579964282252829390236429217070827]
rk2=[7377343786544913179669152464526704843585804352423367720523864909337463556239995298554395641514612601839850408473990884641882022107251327308675845565287105,3984911083535474327252397809221854357456467463896589950032011281402488071009922375576186088610652976675775663361939451236888841067095246540726437505212809]
rk3=[3219371832416980619599059369793666172151137585611172164824682588332597338030674992191025035696573253234342753981841947527902290608752588822089686386667949,3673599928529605750360245092392948651116241577669161584611106109752673063606937811906950632458931014202367531205468540670233566305045112185396645419193028]
Rattr1=[7509468563276771326566090967645162908319594874437504121038652739680887998799377213486890962223234743829186350013529933699531182805446894349167919745103489,4512582803224068369377095137969434704128708178089967130912603775953763604763899740179382207665212797962385098077960721157284672269519182110190227620699371]
Rattr3=[7204888636551782052876993256613986214208680881110402274333181233226606221708916609147071366834818863511317336517517171213752068721647665733611651286011133,3219883291930129347197143388844834792974567062336745619539434089730503175210824898642462794532495262635459490122318985601783901844162682003487503153193046]
输出rkS→(M′,ρ′)=(S,rk1,rk2,rk3,rk4,Rx)。
再对CI进行重加密。I={i:ρ(i)∈S}={1,3}。利用
计算得到ω1=365375409332725810680559622785752450702988279810
ω3=365375409332725810680559622785752450702988279808
经计算以下等式成立:
e(A′2,H6(A′1,A′2,(B′1,C′1),(B′2,C′2),(B′3,C′3),(B′4,C′4)))=e(g,D′)
等式两边数值都为:
85266482004682482177751459544110974331562145147999704030220229104857072615643719304126681172119971273341414318811101338010257360868450582423489111578483973525892960042877800580320920281986806967537363249999707649709584763302971282864124878468070799468336262599694902685536093911018546308253419017087407587807
继续计算A4:
输出重加密密文CII=(S,(M,ρ),A1,A3,(B1,C1),(B2,C2),(B3,C3),D,A4,rk4)。
然后对重加密密文CII进行重解密。本优选例中被分享者具有属性编号为4,6,7的属性,在矩阵M′中分别对应第1,3,4行,因此集合I′={i:ρ′(i)∈S′}={1,3,4},利用
得到ω′1=7
ω′3=730750818665451621361119245571504901405976559603
ω′4=8
计算:
计算具体数值为:
70,16,71,9B,B1,31,6A,AE,59,BE,8D,39,01,94,9F,AB,4D,9A,BF,16,FF,D9,0A,46,ED,5B,24,80,1B,29,5E,04
经计算成立,等式两边数值都为:
[804634677449361008797405691250803837536488879080570502910901913098340345122247445643104217018401436157305143435509131611514382198695188420454385477313957,2451930705663597532220993354834446263809527563756850956996622741706543341429214940818807359252166600296895952631236038540071568911178333620595133118388777]
继续计算具体数值为:
67,C6,69,73,51,FF,4A,EC,29,CD,BA,AB,F2,FB,E3,46,A4,83,13,AC,D0,CB,32,C2,15,8E,80,EF,79,5D,76,6F
经计算等式成立,等式两边数值都为:
[1208972328045444493175509300366548694747293831615662001499923317610513788157882488108399092518953088371713853615918548395910260574865803722068552033037630,3465882357717243963199011441049783692151503914849780704039903865514142855685538069898434737252542658816298433178964384753451236035361404894618055795925049]
成立,等式两边数值都为:
[4911295074993085898789486828942102329220901168215954299016714595128215032934010203842928288151162324816649317384749054740230645103671554860380346893481643,3833850902366280261302492453761873720591840576338115272098835701136080208235973584956579634395050552176569633999396203788836253734738198629108928700384062]
因此分享者解密得到的Key为:
67,C6,69,73,51,FF,4A,EC,29,CD,BA,AB,F2,FB,E3,46
此后分享者搜索和解密得到明文文件步骤与文件接收者解密步骤一致,计算结果也一致。
与现有技术相比,本发明在实现对原始密文和重加密密文的大规模访问控制,支持灵活的访问策略的同时,由于采用属性基代理重加密和对称加密、对称可搜索加密结合的方式,减少了指数运算和双线性配对运算的次数,使其性能也得到了较大提升。此外,由于AES算法和属性代理重加密算法本身的高安全性,本发明所提方案的安全性也得到了保障。
本领域技术人员知道,除了以纯计算机可读程序代码方式实现本发明提供的系统、装置及其各个模块以外,完全可以通过将方法步骤进行逻辑编程来使得本发明提供的系统、装置及其各个模块以逻辑门、开关、专用集成电路、可编程逻辑控制器以及嵌入式微控制器等的形式来实现相同程序。所以,本发明提供的系统、装置及其各个模块可以被认为是一种硬件部件,而对其内包括的用于实现各种程序的模块也可以视为硬件部件内的结构;也可以将用于实现各种功能的模块视为既可以是实现方法的软件程序又可以是硬件部件内的结构。
以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本申请的实施例和实施例中的特征可以任意相互组合。
Claims (10)
1.一种基于代理重加密的内容安全分享方法,其特征在于,包括:
参数初始化步骤:密钥服务器生成公开参数、系统主密钥,将公开参数发送至系统用户,将系统主密钥存储在密钥服务器;
私钥产生步骤:密钥服务器接收各系统用户发送的用户属性,密钥服务器根据用户属性生成对应的用户私钥,将用户私钥发送至各系统用户;
文件上传步骤:提供文件上传通道,将文件上传至云服务器,所述文件上传通道用于将对文件进行对称加密的文件密文CF、对关键词进行对称可搜索加密得到的关键词密文CW、对文件密文的对称密钥进行属性基加密得到的第一层密文CI;
云服务器收发步骤:接收所述文件密文CF、关键词密文CW、第一层密文CI,对文件密文、关键词密文进行一一对应绑定存储,将第一层密文发送至文件接收端;
搜索请求步骤:文件接收端对第一层密文进行属性基解密,得到对称密钥,选定搜索关键词,生成所述关键词对应的陷门,将陷门发送至云服务器;
密文搜索步骤:云服务器接收陷门,根据陷门进行关键词密文搜索,若搜索得到关键词密文对应的文件密文,则将文件密文发送至文件接收端,若未搜索得到关键词密文对应的文件密文,则将搜索失败信息发送至文件接收端;
文件解密步骤:文件接收端接收文件密文,采用对称密钥将文件密文进行对称解密,得到明文文件;
文件分享步骤:文件接收端制定访问策略,生成重加密密钥,将重加密密钥上传至云服务器,云服务器采用重加密密钥对第一层密文进行重加密,得到第二层重加密密文CII,将第二层重加密密文发送至文件分享端。
2.根据权利要求1所述的基于代理重加密的内容安全分享方法,其特征在于,所述参数初始化步骤包括:
初始化定义步骤:确定安全参数k、总属性集U,所述安全参数k用于确定对称密钥的长度,所述总属性集U表示用户属性的集合;
生成五元组步骤:选取一条椭圆曲线,随机生成两个大素数p,q,其中p是(q+1)的一个因子,GT是一个阶为p的循环群;选取椭圆曲线上的点组成的有限域Eq上的p阶循环群C,g为G的一个生成元,e为G×G→GT的一个双线性映射;随机选取两个元素b,其中表示由整数1,2,3...p组成的一个整群;选取另外一个生成元g1∈G,生成五元组(p,g,G,GT,e);
定义哈希步骤:定义哈希函数哈希函数H2:GT→{0,1}2k,哈希函数H3:{0,1}*→G,哈希函数H4:{0,1}*→G,哈希函数哈希函数H6:{0,1}*→G;其中,上标*表示任意位数二进制数,上标k表示k位二进制数,上标2k表示2k位二进制数;
参数定义步骤:定义公开参数param=(p,g,G,GT,e,g1,gb,e(g,g)α,H1,H2,H3,H4,H5,H6),系统主密钥msk=gα,其中,e(g,g)α表示用e对g,g做一次双线性映射,再做一次指数为α的指数运算得到的结果,gb表示对g做一次指数为b的指数运算得到的结果,gα表示对g做一次指数为α的指数运算得到的结果。
3.根据权利要求2所述的基于代理重加密的内容安全分享方法,其特征在于,所述用户私钥skS=(K,L,Kx),sk表示为私钥,skS表示属性集S对应的私钥,下标s表示属性集S,其中
参数上标t1表示指数运算的指数,上标b表示指数运算的指数,表示对g做一次指数为bt1的指数运算;gα表示对g做一次指数为α的指数运算得到的结果;表示对g做一次指数为t1的指数运算得到的结果;S表示属性集,x表示属性集S中的一个属性;Kx表示属性x对应的一部分私钥;表示先对属性x用哈希函数H3映射,再将映射结果做一次指数为t1的指数运算。
4.根据权利要求2所述的基于代理重加密的内容安全分享方法,其特征在于,所述对称加密是随机生成kbit对称密钥Key,采用AES加密的CBC模式进行加密;
所述对关键词进行对称可搜索加密是使用AES加密的CBC模式,以Key为加密密钥,对关键词W加密生成E(W),设E(W)的长度为nbit;随机生成长度n/2bit的随机值Si,下标i表示序号,再次以Key为加密密钥,对E(W)进行AES加密的CBC模式加密得到kf;以kf为加密密钥,对Si进行AES加密的CBC模式加密,截取前n/2bit,设为E(Si);将Si和E(Si)拼接得到结果T;对E(W)和T进行异或操作得到关键词密文
所述对文件密文的对称密钥进行属性基加密是输入一个访问策略(M,ρ)和一个对称密钥Key∈{0,1}k,上标k表示k位二进制数,其中访问策略(M,ρ)是一个(t,n)门限的访问策略,矩阵其中xi,i=1~n为第i行的属性编号,则ρ(i)即为xi对应的属性,t表示矩阵的列数,n表示矩阵的行数;
采用所述访问策略对对称密钥属性基加密后输出第一层密文CI。
5.根据权利要求4所述的基于代理重加密的内容安全分享方法,其特征在于,所述采用所述访问策略对对称密钥属性基加密是随机选取β∈{0,1}k,计算s=H1(Key,β),随机选取(t-1)个元素生成一个向量yt表示中的第t个元素,上标k表示k位二进制数,下标t表示元素序号,H1(Key,β)表示将Key和β拼接后用哈希函数H1映射得到的结果;对所有的i=1~n,计算其中Mi是M的第i行,下标i表示序号,λi表示向量点乘第i行M的计算结果;随机选取n个元素下标n表示序号,ri表示第i个元素,计算A2=gs,其中,e(g,g)αs表示用e对g,g做一次双线性映射,再做一次指数为αs的指数运算得到的结果,gs表示对g做一次指数为s的指数运算得到的结果,表示对g1做一次指数为s的指数运算得到的结果;对所有的i=1~n,计算其中,gb表示对g做一次指数为b的指数运算得到的结果,下标i表示序号,i=1,2,3…n,表示对gb做一次指数为λi的指数运算得到的结果,ρ(i)表示用ρ把i映射到一个属性的结果,表示先用哈希函数H3对ρ(i)进行映射,再将映射结果做一次指数为-ri的指数运算,表示对g进行一次指数为ri的指数运算;计算D=H4(A1,A3,(B1,C1),...,(Bn,Cn))s,输出第一层密文为:CI=((M,ρ),A1,A2,A3,(B1,C1),...,(Bn,Cn),D),其中,上标s表示前文中H1(Key,β)的结果,(Bi,Ci)表示Bi和Ci的计算结果,(B1,C1)表示表示当i取值为1时Bi和Ci的计算结果,(Bn,Cn)当i取值为n时Bn和Cn的计算结果,D表示用哈希函数H4对A1,A3,(B1,C1),…,(Bn,Cn)做一次哈希映射,并将映射得到的结果再做一次指数为s的指数运算得到的结果。
6.根据权利要求1所述的基于代理重加密的内容安全分享方法,其特征在于,所述陷门是采用AES加密的CBC模式,以Key为加密密钥,对关键词W加密得到E(W),用AES加密的CBC模式,以Key为加密密钥,对E(W)加密生成kf,输出陷门TW=(E(W),kf)。
7.根据权利要求6所述的基于代理重加密的内容安全分享方法,其特征在于,所述密文搜索是使用陷门TW中的E(W)与关键词密文CW作异或得到取T′的前n/2bit作为Si′,其中,下标i表示序号,使用AES加密的CBC模式,以kf为密钥,对Si′加密,取解密结果的前n/2bit与T′的后n/2bit比对,若一致则CW即为检索的密文,若不一致则继续遍历其它密文。
8.根据权利要求1所述的基于代理重加密的内容安全分享方法,其特征在于,所述生成重加密密钥是制定一个访问结构(M′,ρ′),M′是一个(t′,n′)门限的访问策略矩阵,其中i=1~n′,xi为第i行的属性编号,ρ′(i)即为xi对应的属性,输入属性集S和对应的私钥skS;t′表示矩阵的列数,n′表示矩阵的行数,ρ′表示一个映射函数,将i映射为xi对应的属性;
随机选取β′,δ∈{0,1}k,计算s′=H1(δ,β′),随机选取(t′-1)个元素生成向量上标k表示k位二进制数,下标t′表示元素序号,y′t′表示中第t′个元素。
对所有的i=1~n′,计算其中Mi′是M′的第i行;
随机选取n′个元素下标n表示序号,计算 A′2=gs′,其中,e(g,g)αs′表示用e对g,g做一次双线性映射,再做一次指数为αs′的指数运算得到的结果,gs′表示对g做一次指数为s′的指数运算得到的结果;对所有的i=1~n′,计算gb表示对g做一次指数为b的指数运算得到的结果,上标λ′i表示的计算结果,表示对gb做一次指数为λ′i的指数运算,上标-λ′i表示负的r′1,...,r′n中的第i个元素,表示先用哈希函数H3对ρ′(i)进行哈希映射,将映射结果做一次指数为-r′i的指数运算,上标r′i表示r′1,...,r′n中的第i个元素,表示对g做一次指数为r′i的指数运算,计算D′=H6(A′1,A′2,(B′1,C′1),...,(B′n′,C′n′))s′,记rk4=((M′,ρ′),A′1,A′2,(B′1,C′1),...,(B′n′,C′n′),D′),其中,A′1表示计算得到的结果,即δ和β′拼接再与H2(e(g,g)αs′)做异或运算得到的结果,A′2表示gs′的计算结果,(B′1,C′1)表示当i取值为1时B′i和C′i的计算结果,(B′n′,C′n′)表示当i取值为n′时B′i和C′i的计算结果,D′表示用哈希函数H6对A′1,A′2,(B′1,C′1),...,(B′n′,C′n′)做一次哈希映射,并将映射得到的结果再做一次指数为s′的指数运算得到的结果;
随机选取计算rk2=gθ, 输出rkS→(M′,ρ′)=(S,rk1,rk2,rk3,rk4,Rx),其中,rk4表示((M′,ρ′),A′1,A′2,(B′1,C′1),...,(B′n′,C′n′),D′),表示对K做一次指数为H5(δ)的指数运算,K表示用户私钥的一部分,H5(δ)表示用哈希函数H5对δ做一次哈希映射,表示对g1做一次指数为θ的指数运算得到的结果,gθ表示对g做一次指数为θ的指数运算得到的结果,表示对L做一次指数为H5(δ)的指数运算,L表示权利要求3中所述的用户私钥的一部分L,Rx表示属性x对应的部分重加密密钥,表示对Kx做一次指数为H5(δ)的指数运算,rkS→(M′,ρ′)表示属性S到访问策略(M′,ρ′)的重加密密钥,S表示属性集S,。
9.根据权利要求8所述的基于代理重加密的内容安全分享方法,其特征在于,所述重加密是输入具有((M,ρ),A1,A2,A3,(B1,C1),...,(Bn,Cn),D)形式的第一层密文CI和具有(S,rk1,rk2,rk3,rk4,Rx)形式的重加密密钥rkS→(M′,ρ′);定义集合I={i:ρ(i)∈S}为{1,…,n}的一个子集,其中i表示M的行号,n表示自然数n,ρ(i)表示M的第i行对应的属性;
检验以下等式是否成立:
e(A′2,H6(A′1,A′2,(B′1,C′1),...,(B′n′,C′n′))),D′)
若不成立,则输出生成失败;
若成立,则继续计算A4:
其中,e(A′2,H6(A′1,A′2,(B′1,C′1),...,(B′n′,C′n′)))表示用e对(A′2,H6(A′1,A′2,(B′1,C′1),...,(B′n′,C′n′)))做一次哈希映射,H6(A′1,A′2,(B′1,C′1),...,(B′n′,C′n′))表示用哈希函数H6对(A′1,A′2,(B′1,C′1),...,(B′n′,C′n′))做一次哈希映射,e(g,D′)表示用e对g,D′做一次双线性映射,ωi表示一组常数满足∑i∈Iωiλi=S,其中S=H1(Key,β),ωi的具体计算方法为:
输出第二层重加密密文
CII=(S,(M,ρ),A1,A3,(B1,C1),...,(Bn,Cn),D,A4,rk4),其中,下标i表示元素序号,下标j表示元素需要,xi表示第i个属性的序号,xj表示第j个属性的序号,I表示I={i:ρ(i)∈S}定义的集合。
10.一种基于代理重加密的内容安全分享系统,其特征在于,包括:
参数初始化模块:密钥服务器生成公开参数、系统主密钥,将公开参数发送至系统用户,将系统主密钥存储在密钥服务器;
私钥产生模块:密钥服务器接收各系统用户发送的用户属性,密钥服务器根据用户属性生成对应的用户私钥,将用户私钥发送至各系统用户;
文件上传模块:提供文件上传通道,将文件上传至云服务器,所述文件上传通道用于将对文件进行对称加密的文件密文CF、对关键词进行对称可搜索加密得到的关键词密文CW、对文件密文的对称密钥进行属性基加密得到的第一层密文CI;
云服务器收发模块:接收所述文件密文CF、关键词密文CW、第一层密文CI,对文件密文、关键词密文进行一一对应绑定存储,将第一层密文发送至文件接收端;
搜索请求模块:文件接收端对第一层密文进行属性基解密,得到对称密钥,选定搜索关键词,采用陷门函数生成所述关键词对应的陷门,将陷门发送至云服务器;
密文搜索模块:云服务器接收陷门,根据陷门进行关键词密文搜索,若搜索得到关键词密文对应的文件密文,则将文件密文发送至文件接收端,若未搜索得到关键词密文对应的文件密文,则将搜索失败信息发送至文件接收端;
文件解密模块:文件接收端接收文件密文,采用对称密钥将文件密文进行对称解密,得到明文文件;
文件分享模块:文件接收端制定访问策略,生成重加密密钥,将重加密密钥上传至云服务器,云服务器采用重加密密钥对第一层密文进行重加密,得到第二层重加密密文CII,将第二层重加密密文发送至文件分享端。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910020846.4A CN109660555B (zh) | 2019-01-09 | 2019-01-09 | 基于代理重加密的内容安全分享方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910020846.4A CN109660555B (zh) | 2019-01-09 | 2019-01-09 | 基于代理重加密的内容安全分享方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109660555A true CN109660555A (zh) | 2019-04-19 |
CN109660555B CN109660555B (zh) | 2020-07-14 |
Family
ID=66119398
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910020846.4A Active CN109660555B (zh) | 2019-01-09 | 2019-01-09 | 基于代理重加密的内容安全分享方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109660555B (zh) |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110391901A (zh) * | 2019-07-05 | 2019-10-29 | 南京理工大学 | 一种支持复杂访问控制要素描述的代理重加密方法 |
CN110535873A (zh) * | 2019-09-16 | 2019-12-03 | 北京数字认证股份有限公司 | 应用于数据协同加密系统的加密方法、解密方法 |
CN110635909A (zh) * | 2019-10-16 | 2019-12-31 | 淮北师范大学 | 一种基于属性的抗合谋攻击的代理重加密方法 |
CN111786786A (zh) * | 2020-07-27 | 2020-10-16 | 国网河南省电力公司郑州供电公司 | 云计算环境下支持等式判定的代理重加密方法及系统 |
CN112560075A (zh) * | 2021-02-22 | 2021-03-26 | 西南石油大学 | 一种基于椭圆曲线的轻量级可搜索加密方法及装置 |
CN112671735A (zh) * | 2020-12-16 | 2021-04-16 | 江苏通付盾区块链科技有限公司 | 一种基于区块链和重加密的数据加密分享系统及方法 |
CN112866288A (zh) * | 2021-03-01 | 2021-05-28 | 上海海事大学 | 一种双明文传输的数据对称加密方法 |
CN113093678A (zh) * | 2021-04-07 | 2021-07-09 | 国能(泉州)热电有限公司 | 一种电厂dcs系统数据处理方法 |
CN113569271A (zh) * | 2021-09-27 | 2021-10-29 | 深圳前海环融联易信息科技服务有限公司 | 一种基于属性条件门限代理重加密方法和系统 |
CN113868708A (zh) * | 2021-12-03 | 2021-12-31 | 北京邮电大学 | 基于双链架构的可监管数据安全共享方法及设备 |
CN114125831A (zh) * | 2022-01-25 | 2022-03-01 | 国网浙江省电力有限公司信息通信分公司 | 基于代理重加密的5g智能电网用户侧数据获取方法及系统 |
CN114567436A (zh) * | 2022-03-23 | 2022-05-31 | 浙江工业大学 | 一种生物特征数据安全访问控制方法 |
CN115001730A (zh) * | 2022-03-02 | 2022-09-02 | 上海交通大学 | 分布式场景下基于角色属性的访问控制系统及方法 |
CN115225364A (zh) * | 2022-07-15 | 2022-10-21 | 中国科学技术大学 | 一种面向云端加密数据的高效动态访问控制方法及系统 |
CN115801397A (zh) * | 2022-11-15 | 2023-03-14 | 成都理工大学 | 一种抗合谋攻击的代理可搜索加密方法 |
CN118246210A (zh) * | 2024-03-19 | 2024-06-25 | 江苏大全箱变科技有限公司 | 箱式变电站的数字化设计系统及方法 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103647642A (zh) * | 2013-11-15 | 2014-03-19 | 河海大学 | 一种基于证书代理重加密方法及系统 |
CN105024802A (zh) * | 2015-07-13 | 2015-11-04 | 西安理工大学 | 云存储中基于双线性对的多用户多关键词可搜索加密方法 |
CN105743888A (zh) * | 2016-01-22 | 2016-07-06 | 河南理工大学 | 一种基于关键字搜索的代理重加密方案 |
US20170155628A1 (en) * | 2015-12-01 | 2017-06-01 | Encrypted Dynamics LLC | Device, system and method for fast and secure proxy re-encryption |
CN106921674A (zh) * | 2017-03-30 | 2017-07-04 | 福州大学 | 抗后量子攻击的代理重加密语义可搜索加密方法 |
CN107256248A (zh) * | 2017-06-07 | 2017-10-17 | 福州大学 | 云存储安全中基于通配符的可搜索加密方法 |
CN108038128A (zh) * | 2017-11-08 | 2018-05-15 | 平安科技(深圳)有限公司 | 一种加密文件的检索方法、系统、终端设备及存储介质 |
CN108418681A (zh) * | 2018-01-22 | 2018-08-17 | 南京邮电大学 | 一种支持代理重加密的基于属性的密文检索系统及方法 |
WO2018208786A1 (en) * | 2017-05-08 | 2018-11-15 | ZeroDB, Inc. | Method and system for secure delegated access to encrypted data in big data computing clusters |
WO2018208787A1 (en) * | 2017-05-08 | 2018-11-15 | ZeroDB, Inc. | High-performance access management and data protection for distributed messaging applications |
-
2019
- 2019-01-09 CN CN201910020846.4A patent/CN109660555B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103647642A (zh) * | 2013-11-15 | 2014-03-19 | 河海大学 | 一种基于证书代理重加密方法及系统 |
CN105024802A (zh) * | 2015-07-13 | 2015-11-04 | 西安理工大学 | 云存储中基于双线性对的多用户多关键词可搜索加密方法 |
US20170155628A1 (en) * | 2015-12-01 | 2017-06-01 | Encrypted Dynamics LLC | Device, system and method for fast and secure proxy re-encryption |
CN105743888A (zh) * | 2016-01-22 | 2016-07-06 | 河南理工大学 | 一种基于关键字搜索的代理重加密方案 |
CN106921674A (zh) * | 2017-03-30 | 2017-07-04 | 福州大学 | 抗后量子攻击的代理重加密语义可搜索加密方法 |
WO2018208786A1 (en) * | 2017-05-08 | 2018-11-15 | ZeroDB, Inc. | Method and system for secure delegated access to encrypted data in big data computing clusters |
WO2018208787A1 (en) * | 2017-05-08 | 2018-11-15 | ZeroDB, Inc. | High-performance access management and data protection for distributed messaging applications |
CN107256248A (zh) * | 2017-06-07 | 2017-10-17 | 福州大学 | 云存储安全中基于通配符的可搜索加密方法 |
CN108038128A (zh) * | 2017-11-08 | 2018-05-15 | 平安科技(深圳)有限公司 | 一种加密文件的检索方法、系统、终端设备及存储介质 |
CN108418681A (zh) * | 2018-01-22 | 2018-08-17 | 南京邮电大学 | 一种支持代理重加密的基于属性的密文检索系统及方法 |
Cited By (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110391901A (zh) * | 2019-07-05 | 2019-10-29 | 南京理工大学 | 一种支持复杂访问控制要素描述的代理重加密方法 |
CN110391901B (zh) * | 2019-07-05 | 2021-09-21 | 南京理工大学 | 一种支持复杂访问控制要素描述的代理重加密方法 |
CN110535873A (zh) * | 2019-09-16 | 2019-12-03 | 北京数字认证股份有限公司 | 应用于数据协同加密系统的加密方法、解密方法 |
CN110635909A (zh) * | 2019-10-16 | 2019-12-31 | 淮北师范大学 | 一种基于属性的抗合谋攻击的代理重加密方法 |
CN111786786A (zh) * | 2020-07-27 | 2020-10-16 | 国网河南省电力公司郑州供电公司 | 云计算环境下支持等式判定的代理重加密方法及系统 |
CN112671735B (zh) * | 2020-12-16 | 2022-12-06 | 江苏通付盾区块链科技有限公司 | 一种基于区块链和重加密的数据加密分享系统及方法 |
CN112671735A (zh) * | 2020-12-16 | 2021-04-16 | 江苏通付盾区块链科技有限公司 | 一种基于区块链和重加密的数据加密分享系统及方法 |
CN112560075A (zh) * | 2021-02-22 | 2021-03-26 | 西南石油大学 | 一种基于椭圆曲线的轻量级可搜索加密方法及装置 |
CN112866288A (zh) * | 2021-03-01 | 2021-05-28 | 上海海事大学 | 一种双明文传输的数据对称加密方法 |
CN113093678B (zh) * | 2021-04-07 | 2022-12-20 | 国能(泉州)热电有限公司 | 一种电厂dcs系统数据处理方法 |
CN113093678A (zh) * | 2021-04-07 | 2021-07-09 | 国能(泉州)热电有限公司 | 一种电厂dcs系统数据处理方法 |
CN113569271B (zh) * | 2021-09-27 | 2022-01-25 | 深圳前海环融联易信息科技服务有限公司 | 一种基于属性条件门限代理重加密方法 |
CN113569271A (zh) * | 2021-09-27 | 2021-10-29 | 深圳前海环融联易信息科技服务有限公司 | 一种基于属性条件门限代理重加密方法和系统 |
CN113868708A (zh) * | 2021-12-03 | 2021-12-31 | 北京邮电大学 | 基于双链架构的可监管数据安全共享方法及设备 |
CN114125831A (zh) * | 2022-01-25 | 2022-03-01 | 国网浙江省电力有限公司信息通信分公司 | 基于代理重加密的5g智能电网用户侧数据获取方法及系统 |
CN114125831B (zh) * | 2022-01-25 | 2022-05-03 | 国网浙江省电力有限公司信息通信分公司 | 基于代理重加密的5g智能电网用户侧数据获取方法及系统 |
CN115001730B (zh) * | 2022-03-02 | 2023-09-05 | 上海交通大学 | 分布式场景下基于角色属性的访问控制系统及方法 |
CN115001730A (zh) * | 2022-03-02 | 2022-09-02 | 上海交通大学 | 分布式场景下基于角色属性的访问控制系统及方法 |
CN114567436A (zh) * | 2022-03-23 | 2022-05-31 | 浙江工业大学 | 一种生物特征数据安全访问控制方法 |
CN114567436B (zh) * | 2022-03-23 | 2024-04-12 | 浙江工业大学 | 一种生物特征数据安全访问控制方法 |
CN115225364A (zh) * | 2022-07-15 | 2022-10-21 | 中国科学技术大学 | 一种面向云端加密数据的高效动态访问控制方法及系统 |
CN115225364B (zh) * | 2022-07-15 | 2023-11-17 | 中国科学技术大学 | 一种面向云端加密数据的高效动态访问控制方法及系统 |
CN115801397B (zh) * | 2022-11-15 | 2024-04-09 | 成都理工大学 | 一种抗合谋攻击的代理可搜索加密方法 |
CN115801397A (zh) * | 2022-11-15 | 2023-03-14 | 成都理工大学 | 一种抗合谋攻击的代理可搜索加密方法 |
CN118246210A (zh) * | 2024-03-19 | 2024-06-25 | 江苏大全箱变科技有限公司 | 箱式变电站的数字化设计系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109660555B (zh) | 2020-07-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109660555A (zh) | 基于代理重加密的内容安全分享方法和系统 | |
CN104363215B (zh) | 一种基于属性的加密方法和系统 | |
CN106230590B (zh) | 一种多授权机构的密文策略属性基加密方法 | |
CN111930881B (zh) | 基于国密算法的连接关键词认证可搜索加密方法 | |
CN109361644B (zh) | 一种支持快速搜索和解密的模糊属性基加密方法 | |
CN103067166B (zh) | 一种智能家庭系统的分级混合加密方法及装置 | |
CN105162590B (zh) | 一种云计算环境中并行同态数据加密方法 | |
CN113179150A (zh) | 一种基于保序函数的同态隐私集合求交方法 | |
CN104967693A (zh) | 面向云存储的基于全同态密码技术的文档相似度计算方法 | |
CN106874516A (zh) | 一种云存储中基于kcb树和布隆过滤器的高效密文检索方法 | |
Vyakaranal et al. | Performance analysis of symmetric key cryptographic algorithms | |
CN114244498A (zh) | 一种具有前向安全的动态可搜索公钥加密方法 | |
Sekar et al. | Comparative study of encryption algorithm over big data in cloud systems | |
CN113407966B (zh) | 具有密钥更新与密文分享功能的可搜索公钥加密方法和系统 | |
CN111556048A (zh) | 一种支持密文模式匹配的属性基安全通信方法及系统 | |
CN117114959B (zh) | 基于多参数一维混沌系统的秘钥反馈机制的图像加密方法 | |
Chen et al. | Application of homomorphic encryption in blockchain data security | |
CN106612175A (zh) | 移动云中多要素访问控制的代理重加密算法 | |
CN109831305A (zh) | 基于非对称密钥池的抗量子计算签密方法和系统 | |
CN111798236B (zh) | 交易数据加、解密方法、装置及设备 | |
Yao | [Retracted] Hybrid Encryption Scheme for Hospital Financial Data Based on Noekeon Algorithm | |
CN110048852A (zh) | 基于非对称密钥池的量子通信服务站数字签密方法和系统 | |
CN112507357B (zh) | 一种基于密钥生成器的多级接口设计方法 | |
Neelakandan et al. | A multi-layer encryption with AES and Twofish encryption algorithm for smart assistant security | |
CN114244567A (zh) | 一种云环境中支持电路结构的cp-abe方法 |
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 |