CN109660555B - 基于代理重加密的内容安全分享方法和系统 - Google Patents

基于代理重加密的内容安全分享方法和系统 Download PDF

Info

Publication number
CN109660555B
CN109660555B CN201910020846.4A CN201910020846A CN109660555B CN 109660555 B CN109660555 B CN 109660555B CN 201910020846 A CN201910020846 A CN 201910020846A CN 109660555 B CN109660555 B CN 109660555B
Authority
CN
China
Prior art keywords
ciphertext
key
file
encryption
attribute
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
CN201910020846.4A
Other languages
English (en)
Other versions
CN109660555A (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.)
Shanghai Jiaotong University
Original Assignee
Shanghai Jiaotong University
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 Shanghai Jiaotong University filed Critical Shanghai Jiaotong University
Priority to CN201910020846.4A priority Critical patent/CN109660555B/zh
Publication of CN109660555A publication Critical patent/CN109660555A/zh
Application granted granted Critical
Publication of CN109660555B publication Critical patent/CN109660555B/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/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0281Proxies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • 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
    • 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/06Cryptographic 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/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0631Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
    • 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/06Cryptographic 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/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0637Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
    • 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/06Cryptographic 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/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • 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/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/085Secret sharing or secret splitting, e.g. threshold schemes
    • 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
    • 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

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,
Figure BDA0001940659250000031
其中
Figure BDA0001940659250000032
表示由整数1,2,3...p组成的一个整群;选取另外一个生成元g1∈G,生成五元组(p,g,G,GT,e);
定义哈希步骤:定义哈希函数H1
Figure BDA0001940659250000033
哈希函数H2:GT→{0,1}2k,哈希函数H3:{0,1}*→G,哈希函数H4:{0,1}*→G,哈希函数H5
Figure BDA0001940659250000034
哈希函数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,其中
Figure BDA0001940659250000041
参数
Figure BDA0001940659250000042
上标t1表示指数运算的指数,上标b表示指数运算的指数,
Figure BDA0001940659250000043
表示对g做一次指数为bt1的指数运算;gα表示对g做一次指数为α的指数运算得到的结果;
Figure BDA0001940659250000044
表示对g做一次指数为t1的指数运算得到的结果;S表示属性集,x表示属性集S中的一个属性;Kx表示属性x对应的一部分私钥;
Figure BDA0001940659250000045
表示先对属性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进行异或操作得到关键词密文
Figure BDA0001940659250000046
所述对文件密文的对称密钥进行属性基加密是输入一个访问策略(M,ρ)和一个对称密钥Key∈{0,1}k,上标k表示k位二进制数,其中访问策略(M,ρ)是一个(t,n)门限的访问策略,矩阵
Figure BDA0001940659250000047
其中xi,i=1~n为第i行的属性编号,则ρ(i)即为xi对应的属性,t表示矩阵的列数,n表示矩阵的行数;
采用所述访问策略对对称密钥属性基加密后输出第一层密文CI。
优选地,所述采用所述访问策略对对称密钥属性基加密是随机选取β∈{0,1}k,计算s=H1(Key,β),随机选取(t-1)个元素
Figure BDA0001940659250000048
生成一个向量
Figure BDA0001940659250000049
Figure BDA00019406592500000410
yt表示
Figure BDA00019406592500000411
中的第t个元素,上标k表示k位二进制数,下标t表示元素序号,H1(Key,β)表示将Key和β拼接后用哈希函数H1映射得到的结果;对所有的i=1~n,计算
Figure BDA00019406592500000412
其中Mi是M的第i行,下标i表示序号,λi表示向量
Figure BDA00019406592500000413
点乘第i行M的计算结果;随机选取n个元素
Figure BDA00019406592500000414
下标n表示序号,ri表示第i个元素,计算
Figure BDA00019406592500000415
A2=gs
Figure BDA00019406592500000416
其中,e(g,g)αs表示用e对g,g做一次双线性映射,再做一次指数为αs的指数运算得到的结果,gs表示对g做一次指数为s的指数运算得到的结果,
Figure BDA00019406592500000417
表示对g1做一次指数为s的指数运算得到的结果;对所有的i=1~n,计算
Figure BDA0001940659250000051
其中,gb表示对g做一次指数为b的指数运算得到的结果,下标i表示序号,i=1,2,3…n,
Figure BDA0001940659250000052
表示对gb做一次指数为λi的指数运算得到的结果,ρ(i)表示用ρ把i映射到一个属性的结果,
Figure BDA0001940659250000053
表示先用哈希函数H3对ρ(i)进行映射,再将映射结果做一次指数为-ri的指数运算,
Figure BDA00019406592500000512
表示对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作异或得到
Figure BDA0001940659250000054
取T′的前n/2 bit作为Si′,其中,下标i表示序号,使用AES加密的CBC模式,以kf为密钥,对Si′加密,取解密结果的前n/2 bit与T′的后n/2 bit比对,若一致则CW即为检索的密文,若不一致则继续遍历其它密文。
优选地,所述生成重加密密钥是制定一个访问结构(M′,ρ′),M′是一个(t′,n′)门限的访问策略矩阵,
Figure BDA0001940659250000055
其中i=1~n′,xi为第i行的属性编号,ρ′(i)即为xi对应的属性,输入属性集S和对应的私钥skS;t′表示矩阵的列数,n′表示矩阵的行数,ρ′表示一个映射函数,将i映射为xi对应的属性;
随机选取β′,δ∈{0,1}k,计算s′=H1(δ,β′),随机选取(t′-1)个元素
Figure BDA0001940659250000056
生成向量
Figure BDA0001940659250000057
上标k表示k位二进制数,下标t′表示元素序号,y′t′表示
Figure BDA0001940659250000058
中第t′个元素。
对所有的i=1~n′,计算
Figure BDA0001940659250000059
其中Mi′是M′的第i行;
随机选取n′个元素
Figure BDA00019406592500000510
下标n表示序号,计算
Figure BDA00019406592500000511
Figure BDA0001940659250000061
A′2=gs′,其中,e(g,g)αs′表示用e对g,g做一次双线性映射,再做一次指数为αs′的指数运算得到的结果,gs′表示对g做一次指数为s′的指数运算得到的结果;对所有的i=1~n′,计算
Figure BDA0001940659250000062
gb表示对g做一次指数为b的指数运算得到的结果,上标λ′i表示
Figure BDA0001940659250000063
的计算结果,
Figure BDA0001940659250000064
表示对gb做一次指数为λ′i的指数运算,上标-r′i表示负的r′1,...,r′n中的第i个元素,
Figure BDA0001940659250000065
表示先用哈希函数H3对ρ′(i)进行哈希映射,将映射结果做一次指数为-r′i的指数运算,上标r′i表示r′1,...,r′n中的第i个元素,
Figure BDA0001940659250000066
表示对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表示
Figure BDA0001940659250000067
计算得到的结果,即δ和β′拼接再与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′的指数运算得到的结果;
随机选取
Figure BDA0001940659250000068
计算
Figure BDA0001940659250000069
Figure BDA00019406592500000610
输出rkS→(M′,ρ′)=(S,rk1,rk2,rk3,rk4,Rx),其中,rk4表示((M′,ρ′),A′1,A′2,(B′1,C′1),...,(B′n′,C′n′),D′),
Figure BDA00019406592500000611
表示对K做一次指数为H5(δ)的指数运算,K表示用户私钥的一部分,H5(δ)表示用哈希函数H5对δ做一次哈希映射,
Figure BDA00019406592500000612
表示对g1做一次指数为θ的指数运算得到的结果,gθ表示对g做一次指数为θ的指数运算得到的结果,
Figure BDA00019406592500000613
表示对L做一次指数为H5(δ)的指数运算,L表示权利要求3中所述的用户私钥的一部分L,Rx表示属性x对应的部分重加密密钥,
Figure BDA00019406592500000614
表示对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:
Figure BDA0001940659250000071
其中,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表示一组常数
Figure BDA0001940659250000072
满足∑i∈Iωiλi=S,其中S=H1(Key,β),ωi的具体计算方法为:
Figure BDA0001940659250000073
输出第二层重加密密文
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的循环群,为有限域
Figure BDA0001940659250000107
的一个子群。选取该椭圆曲线上的点组成的有限域Fq上的p阶循环群G,g为G的一个生成元,e为G×G→GT的一个双线性映射。然后随机选取两个元素b,
Figure BDA0001940659250000101
选取另外一个生成元g1∈G。再定义哈希函数H1
Figure BDA0001940659250000102
H2:GT→{0,1}2k,H3:{0,1}*→G,H4:{0,1}*→G,H5
Figure BDA0001940659250000103
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,随机选取一个参数
Figure BDA0001940659250000104
则生成的私钥skS为:skS=(K,L,Kx),其中
Figure BDA0001940659250000105
所述的步骤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进行异或操作得到关键词密文
Figure BDA0001940659250000106
3.4)所述的对称密钥的属性基加密具体为:输入一个访问策略(M,ρ)和一个对称密钥Key∈{0,1}k,输出密文
CI=((M,ρ),A1,A2,A3,(B1,C1),...,(Bn,Cn),D)。具体加密过程为:
所述的访问策略(M,ρ)是一个(t,n)门限的访问策略,矩阵
Figure BDA0001940659250000111
其中xi(i=1~n)为属性编号,则ρ(i)即为xi对应的属性。首先随机选取β∈{0,1}k,计算s=H1(Key,β),随机选取(t-1)个元素
Figure BDA0001940659250000112
生成一个向量
Figure BDA0001940659250000113
然后,对所有的i=1~n,计算
Figure BDA0001940659250000114
其中Mi是M的第i行;再随机选取n个元素
Figure BDA0001940659250000115
计算
Figure BDA0001940659250000116
A2=gs
Figure BDA0001940659250000117
对所有的i=1~n,计算
Figure BDA0001940659250000118
计算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)。定义集合
Figure BDA0001940659250000119
首先,根据线性秘密分享方案(LSSS:LinearSecret-Sharing Schemes)的重构性质,可以找到一组常数
Figure BDA00019406592500001110
满足∑i∈Iωiλi=s。本方案采用的方法为:
Figure BDA00019406592500001111
然后,验证S是否满足(M,ρ),即S中的属性在M中对应存在的个数是否大于等于t,并验证以下等式是否成立:
e(A2,g1)=e(g,A3)
e(A3,H4(A1,A3,(B1,C1),...,(Bn,Cn)))=e(g1,D)
Figure BDA00019406592500001112
若以上条件有一项不能满足,则直接返回解密失败;否则,继续计算
Figure BDA00019406592500001113
最后,计算
Figure BDA00019406592500001114
若等式
Figure BDA00019406592500001115
成立,则输出Key,否则输出解密失败。
5.2)所述的陷门函数具体为:采用AES加密算法的CBC模式,以Key为加密密钥,对关键词W加密得到E(W),再用AES加密算法的CBC模式,以Key为加密密钥,对E(W)加密生成kf,输出陷门TW=(E(W),kf)。
所述步骤6)中根据陷门对关键词进行密文搜索,具体为:使用TW中的E(W)与关键词密文CW作异或得到
Figure BDA0001940659250000121
取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′)门限的访问策略矩阵,
Figure BDA0001940659250000122
其中xi(i=1~n′)为属性编号,ρ′(i)即为xi对应的属性。输入属性集S和对应的私钥skS
首先,随机选取β′,δ∈{0,1}k,计算s′=H1(δ,β′)。随机选取(t′-1)个元素
Figure BDA0001940659250000123
生成向量
Figure BDA0001940659250000124
然后,对所有的i=1~n′,计算
Figure BDA0001940659250000125
其中Mi′是M′的第i行。
再随机选取n′个元素
Figure BDA0001940659250000126
计算
Figure BDA0001940659250000127
A′2=gs′。对所有的i=1~n′,计算
Figure BDA0001940659250000128
计算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′)。
最后,再随机选取
Figure BDA0001940659250000129
计算
Figure BDA00019406592500001210
Figure BDA00019406592500001211
输出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满足访问策略则可以找到一组常数
Figure BDA0001940659250000131
满足∑i∈Iωiλi=s。本方案采用
Figure BDA0001940659250000132
首先检验以下等式是否成立:
e(A′2,H6(A′1,A′2,(B′1,C′1),...,(B′n′,C′n′)))=e(g,D′)
若不成立直接结束该解密步骤,输出生成失败,若成立则继续计算A4:
Figure BDA0001940659250000133
输出重加密密文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′满足访问策略则可以找到一组常数
Figure BDA0001940659250000134
满足∑i∈I′ω′i·λ′i=s′。本方案采用
Figure BDA0001940659250000135
计算:
Figure BDA0001940659250000136
计算
Figure BDA0001940659250000137
Figure BDA0001940659250000138
则继续以下计算,否则输出解密失败。
计算
Figure BDA0001940659250000141
若等式
Figure BDA0001940659250000142
成立,则输出解密结果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的循环群,为有限域
Figure BDA0001940659250000151
的一个子群。根据循环群的性质,它可以由一个生成元生成。本优选例中它的一个生成元为:
gt=28254269275301197264504125141431408388262145020801534703772381433991124906111331983355622379543496113155614718080366288711642861943134311638242166402884766433737519920897936178654538378837908945419456076293986072161584029954555651455719587594534330223809919475991029426275512510946357766682354691770987213532
G是一个阶为p的循环群,是由有限域Fq内,在所选椭圆曲线上的点的坐标组成的群。同样根据循环群的性质,它可以由一个生成元生成。本优选例中它的一个生成元为:
g=[4263796851811960101931673758852086815779387878033500587161388616037920438281562702651504934157800878877100457214040825830011371688189874814679790444629506,3625242886900819420263094412271070332623748720955534716345419854161598845742352590515789413529587392978178880836452993237633942193797221309773892066190017]
e为G×G→GT的一个双线性映射。
然后随机选取两个元素b,
Figure BDA0001940659250000161
选取另外一个生成元g1∈G,本优选例中它们的值为:
b=562236869373093953247062228888793218228895745356
α=495872979841954898522029691844017389182268214476
g1=[8375702228540801643255416952730517838923410840262147105521871522284322581678808305427049345378729123651297753654276323807831871314913351523967138662505087,6435339317354744812826943807240904935397184344438393156324930483362666922752766488230965166913452910988646524344838036754961689069117588370784909076869240]
然后定义哈希函数的具体实现,本优选例中H1采用SHA512(Secure HashAlgorithm512)(安全散列算法)将输入的2k bit的字节串哈希映射成64字节的字符串,再将映射后的64字节的字节串转到群
Figure BDA0001940659250000162
上。转到对应群上的方法采用PBC Library(ThePairing-Based Cryptography Library)(基于配对的密码函数库)中的element_from_hash()函数。具体为将字节串看成16进制的数字,取合适长度(若长度太长取前部字节,若长度不足用0补足)在群
Figure BDA0001940659250000163
内找到对应元素,这个对应元素即为转换结果。
本优选例中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字节的字节串转到群
Figure BDA0001940659250000171
上。转到对应群上的方法采用PBC Library中的element_from_hash()函数。具体为将字节串看成16进制的数字,取合适长度(若长度太长取前部字节,若长度不足用0补足)在群
Figure BDA0001940659250000172
内找到对应元素,这个对应元素即为转换结果。
然后计算公开参数中剩余的gb和e(g,g)α,本优选例中它们计算得到的值为:
gb=[4803028837286355686084272009393548380653580535316096395145713412916304469712959545988375395384953196637783166131108504853867635958843757427789263413634656,8294877133761350224978477136778979690193873765723177409624338170820531671648300176118705650223173463804701665374410401257690441196923436799513321948065706]
e(g,g)α=83961781125574023381261076986384404958149052732794894515574329069463151422607841590471350177673678248531980495798857861181770274526217414481788925161763082021223844845017448510816809765948455812437741344602791034291980615828408419873753737014724533651276711018531872389124636492028638418497655210647997422472
最后计算系统主密钥msk,得到的值为:
msk=[5824421528368164985067487389481858208434480131447624247082052562272901673902792101326019063938684510978605809039942673090442532179930790001897546312370712,1256370299273677262997238381988158562104860454532433285355207763138591720961401477942633735741291225080931983615897982573471319213597063043982611575031227]
第二步,私钥产生步骤。用户将自身的属性集发送给密钥服务器,密钥服务器用密钥生成算法产生对应的私钥,并将私钥发送给对应用户。
首先为文件接收者产生私钥。选取参数
Figure BDA0001940659250000173
本优选例中t1的数值为:
t1=294597601212583715308688970397733172883541752676
计算得到skS为:
Figure BDA0001940659250000174
本优选例中它们的具体数值为:
K=[5113443208423716468491617852012934753982616860935624926583025013089896387305590274754390256597243762076007904357451889563138867415438791014368809974689230,2153749664605807691890186196804837445651382444621113448961780948946386918110241710347384732492317112744400107978612663409834603305515096485726502815542371]
L=[5835002062171202525451373641646819968152508333932608468222955719593190845201650705426039294119357090411707265577529660805433031210226998899566401115886097,6028649635192726741704705735996225599769460080782439346371548629277144714706255935397101495159194552722973201947024171605446375660619157224963229583529620]
Kattr1=[5496172529021726788387384493418329298864054390459168878373117806314368128324078410932202314330058903561095408289190036806706259253343338033623396926897551,7936342418904036939007314903813418830721296305221328332549507482241347975656264560078037382463564604420751731940731522625059630059886192345604557852777499]
Kattr3=[4340215350896162685123257557472522480800725580487077355393482352894213531914766604783471607422767697179909917661811361210456925432018780141799028003965096,2023476944224540571766227113094362091229926109589155817070612304752893819330365842669450336605817931180786543878930227786757010226801446142365319895907638]
然后为被分享者产生私钥选取参数
Figure BDA0001940659250000181
本优选例中t1′的数值为:
t1′=624628443433813927467811556358684535694121886935
计算得到sk′S为:
Figure BDA0001940659250000182
Figure BDA0001940659250000183
本优选例中它们的具体数值为:
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进行异或操作得到关键词密文
Figure BDA0001940659250000201
具体数值为:96,E8,4A,74,B9,F9,38,4A,2E,F0,38,84,69,A3,49,10
然后对对称密钥进行属性基加密。本优选例中制定的访问策略为(2,3)门限,具有属性编号为1,2,3的属性中任意2个及以上属性的用户可以解密。则矩阵
Figure BDA0001940659250000202
随机选取β∈{0,1}k,具体数值为:A4,83,13,AC,D0,CB,32,C2,15,8E,80,EF,79,5D,76,6F
计算s=H1(Key,β),这里将Key,β进行字符串拼接再进行哈希映射,具体数值为:611936117190127821710259824431244476570063693508
随机选取
Figure BDA0001940659250000203
具体数值为:262686409146777661349827787473608901012527229187
向量
Figure BDA0001940659250000204
对i=1,2,3,计算
Figure BDA0001940659250000205
其中Mi是M的第i行,具体数值为:
λ1=143871707671453861698968366333348476176614363078
λ2=406558116818231523048796153806957377189141592265
λ3=669244525965009184398623941280566278201668821452
再随机选取3个元素r1,r2
Figure BDA0001940659250000206
具体数值为:
r1=198952996489886615343215755477823451087984574451
r2=479970323075522672972332590442379830479096047073
r3=459934599513038566075682395081812096979990672948
计算
Figure BDA0001940659250000211
A2=gs
Figure BDA0001940659250000212
具体数值为:
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,计算
Figure BDA0001940659250000213
具体数值为:
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},利用
Figure BDA0001940659250000231
计算得到ω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
Figure BDA0001940659250000232
等式两边的具体数值都为:
70989359901840909059996653186088425959985238195746553959240593885920787953107567633787587611124091127895974625321082884665414493613391862803513705806627273382745202498938433356483121089332727042098654512289510152529299231726453893290557818514104664547054000892017358193125693824768062442439945341319362796558
继续计算
Figure BDA0001940659250000241
然后计算
Figure BDA0001940659250000242
具体数值为:
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
经计算等式
Figure BDA0001940659250000243
成立,等式两边数值都为:
[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作异或得到
Figure BDA0001940659250000244
具体数值为: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个及以上属性的用户可以解密。矩阵
Figure BDA0001940659250000251
随机选取β′,δ∈{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
Figure BDA0001940659250000252
具体数值为:
y′2=142508172774284654270307599160091010790986707324
y′3=139692379719871146551621377622111206527080665733
向量
Figure BDA0001940659250000253
对i=1,2,3,4,计算
Figure BDA0001940659250000254
其中Mi′是M′的第i行,具体数值为:
λ′1=90775684977081400787083127752315272497575226967
λ′2=29013637899303131299744634368397339220334806654
λ′3=246636350261267154915648896228701818997255717807
λ′4=12893003397521850273676667761723810422361400809
随机选取4个元素r′1,r′2,r′3
Figure BDA0001940659250000255
具体数值为:
r′1=710351103286488348469079734810969025313423337699
r′2=476521549289696910069963321939175662450715808778
r′3=319908206288985788817785943208813568156061885446
r′4=472090906620490246798902246010459587196876510606
计算
Figure BDA0001940659250000261
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,计算
Figure BDA0001940659250000262
具体数值为:
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′)。
再随机选取
Figure BDA0001940659250000281
具体数值为:
θ=536735904727771215454863558486783699739128042038
计算
Figure BDA0001940659250000282
Figure BDA0001940659250000283
具体数值为:
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}。利用
Figure BDA0001940659250000291
计算得到ω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:
Figure BDA0001940659250000292
输出重加密密文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},利用
Figure BDA0001940659250000293
得到ω′1=7
ω′3=730750818665451621361119245571504901405976559603
ω′4=8
计算:
Figure BDA0001940659250000301
计算
Figure BDA0001940659250000302
具体数值为:
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
经计算
Figure BDA0001940659250000303
成立,等式两边数值都为:
[804634677449361008797405691250803837536488879080570502910901913098340345122247445643104217018401436157305143435509131611514382198695188420454385477313957,2451930705663597532220993354834446263809527563756850956996622741706543341429214940818807359252166600296895952631236038540071568911178333620595133118388777]
继续计算
Figure BDA0001940659250000304
具体数值为:
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
经计算等式
Figure BDA0001940659250000305
成立,等式两边数值都为:
[1208972328045444493175509300366548694747293831615662001499923317610513788157882488108399092518953088371713853615918548395910260574865803722068552033037630,3465882357717243963199011441049783692151503914849780704039903865514142855685538069898434737252542658816298433178964384753451236035361404894618055795925049]
Figure BDA0001940659250000311
成立,等式两边数值都为:
[4911295074993085898789486828942102329220901168215954299016714595128215032934010203842928288151162324816649317384749054740230645103671554860380346893481643,3833850902366280261302492453761873720591840576338115272098835701136080208235973584956579634395050552176569633999396203788836253734738198629108928700384062]
因此分享者解密得到的Key为:
67,C6,69,73,51,FF,4A,EC,29,CD,BA,AB,F2,FB,E3,46
此后分享者搜索和解密得到明文文件步骤与文件接收者解密步骤一致,计算结果也一致。
与现有技术相比,本发明在实现对原始密文和重加密密文的大规模访问控制,支持灵活的访问策略的同时,由于采用属性基代理重加密和对称加密、对称可搜索加密结合的方式,减少了指数运算和双线性配对运算的次数,使其性能也得到了较大提升。此外,由于AES算法和属性代理重加密算法本身的高安全性,本发明所提方案的安全性也得到了保障。
本领域技术人员知道,除了以纯计算机可读程序代码方式实现本发明提供的系统、装置及其各个模块以外,完全可以通过将方法步骤进行逻辑编程来使得本发明提供的系统、装置及其各个模块以逻辑门、开关、专用集成电路、可编程逻辑控制器以及嵌入式微控制器等的形式来实现相同程序。所以,本发明提供的系统、装置及其各个模块可以被认为是一种硬件部件,而对其内包括的用于实现各种程序的模块也可以视为硬件部件内的结构;也可以将用于实现各种功能的模块视为既可以是实现方法的软件程序又可以是硬件部件内的结构。
以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本申请的实施例和实施例中的特征可以任意相互组合。

Claims (9)

1.一种基于代理重加密的内容安全分享方法,其特征在于,包括:
参数初始化步骤:密钥服务器生成公开参数、系统主密钥,将公开参数发送至系统用户,将系统主密钥存储在密钥服务器;
私钥产生步骤:密钥服务器接收各系统用户发送的用户属性,密钥服务器根据用户属性生成对应的用户私钥,将用户私钥发送至各系统用户;
文件上传步骤:提供文件上传通道,将文件上传至云服务器,所述文件上传通道用于将对文件进行对称加密的文件密文CF、对关键词进行对称可搜索加密得到的关键词密文CW、对文件密文的对称密钥进行属性基加密得到的第一层密文CI;
云服务器收发步骤:接收所述文件密文CF、关键词密文CW、第一层密文CI,对文件密文、关键词密文进行一一对应绑定存储,将第一层密文发送至文件接收端;
搜索请求步骤:文件接收端对第一层密文进行属性基解密,得到对称密钥,选定搜索关键词,生成所述关键词对应的陷门,将陷门发送至云服务器;
密文搜索步骤:云服务器接收陷门,根据陷门进行关键词密文搜索,若搜索得到关键词密文对应的文件密文,则将文件密文发送至文件接收端,若未搜索得到关键词密文对应的文件密文,则将搜索失败信息发送至文件接收端;
文件解密步骤:文件接收端接收文件密文,采用对称密钥将文件密文进行对称解密,得到明文文件;
文件分享步骤:文件接收端制定访问策略,生成重加密密钥,将重加密密钥上传至云服务器,云服务器采用重加密密钥对第一层密文进行重加密,得到第二层重加密密文CII,将第二层重加密密文发送至文件分享端;
所述生成重加密密钥是制定一个访问结构(M′,ρ′),M′是一个(t′,n′)门限的访问策略矩阵,
Figure FDA0002434786890000011
其中i=1~n′,xi为第i行的属性编号,ρ′(i)即为xi对应的属性,输入属性集S和对应的私钥skS;t′表示矩阵的列数,n′表示矩阵的行数,ρ′表示一个映射函数,将i映射为xi对应的属性;
随机选取β′,δ∈{0,1}k,计算s′=H1(δ,β′),随机选取(t′-1)个元素
Figure FDA0002434786890000012
Figure FDA0002434786890000013
生成向量
Figure FDA0002434786890000014
上标k表示k位二进制数,下标t′表示元素序号,y′t′表示
Figure FDA0002434786890000021
中第t′个元素;
对所有的i=1~n′,计算
Figure FDA0002434786890000022
其中Mi′是M′的第i行;
随机选取n′个元素
Figure FDA0002434786890000023
下标n表示序号,计算
Figure FDA0002434786890000024
Figure FDA0002434786890000025
A′2=gs′,其中,e(g,g)αs'表示用e对g,g做一次双线性映射,再做一次指数为αs′的指数运算得到的结果,gs′表示对g做一次指数为s′的指数运算得到的结果;对所有的i=1~n′,计算
Figure FDA0002434786890000026
gb表示对g做一次指数为b的指数运算得到的结果,上标λ′i表示
Figure FDA0002434786890000027
的计算结果,
Figure FDA0002434786890000028
表示对gb做一次指数为λ′i的指数运算,上标-r′i表示负的r′1,…,r′n中的第i个元素,
Figure FDA0002434786890000029
表示先用哈希函数H3对ρ′(i)进行哈希映射,将映射结果做一次指数为-r′i的指数运算,上标r′i表示r′1,…,r′n中的第i个元素,
Figure FDA00024347868900000210
表示对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表示
Figure FDA00024347868900000211
计算得到的结果,即δ和β′拼接再与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′的指数运算得到的结果;
随机选取
Figure FDA00024347868900000212
计算
Figure FDA00024347868900000213
Figure FDA00024347868900000214
输出rkS→(M′,ρ′)=(S,rk1,rk2,rk3,rk4,Rx),其中,rk4表示((M′,ρ′),A′1,A′2,(B′1,C′1),…,(B′n′,C′n′),D′),
Figure FDA00024347868900000215
表示对K做一次指数为H5(δ)的指数运算,K表示用户私钥的一部分,H5(δ)表示用哈希函数H5对δ做一次哈希映射,
Figure FDA00024347868900000216
表示对g1做一次指数为θ的指数运算得到的结果,gθ表示对g做一次指数为θ的指数运算得到的结果,
Figure FDA00024347868900000217
表示对L做一次指数为H5(δ)的指数运算,L表示用户私钥的一部分,Rx表示属性x对应的部分重加密密钥,
Figure FDA00024347868900000218
表示对Kx做一次指数为H5(δ)的指数运算,rkS→(M′,ρ′)表示属性S到访问策略(M′,ρ′)的重加密密钥,S表示属性集S。
2.根据权利要求1所述的基于代理重加密的内容安全分享方法,其特征在于,所述参数初始化步骤包括:
初始化定义步骤:确定安全参数k、总属性集U,所述安全参数k用于确定对称密钥的长度,所述总属性集U表示用户属性的集合;
生成五元组步骤:选取一条椭圆曲线,随机生成两个大素数p,q,其中p是(q+1)的一个因子,GT是一个阶为p的循环群;选取椭圆曲线上的点组成的有限域Fq上的p阶循环群G,g为G的一个生成元,e为G×G→GT的一个双线性映射;随机选取两个元素b,
Figure FDA0002434786890000031
Figure FDA0002434786890000032
其中
Figure FDA0002434786890000033
表示由整数1,2,3…p组成的一个整群;选取另外一个生成元g1∈G,生成五元组(p,g,G,GT,e);
定义哈希步骤:定义哈希函数H1
Figure FDA0002434786890000034
哈希函数H2:GT→{0,1}2k,哈希函数H3:{0,1}*→G,哈希函数H4:{0,1}*→G,哈希函数H5
Figure FDA0002434786890000035
哈希函数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,其中
Figure FDA0002434786890000036
参数
Figure FDA0002434786890000037
上标t1表示指数运算的指数,上标b表示指数运算的指数,
Figure FDA0002434786890000038
表示对g做一次指数为bt1的指数运算;gα表示对g做一次指数为α的指数运算得到的结果;
Figure FDA0002434786890000039
表示对g做一次指数为t1的指数运算得到的结果;S表示属性集,x表示属性集S中的一个属性;Kx表示属性x对应的一部分私钥;
Figure FDA00024347868900000310
表示先对属性x用哈希函数H3映射,再将映射结果做一次指数为t1的指数运算。
4.根据权利要求2所述的基于代理重加密的内容安全分享方法,其特征在于,所述对称加密是随机生成k bit对称密钥Key,采用AES加密的CBC模式进行加密;
所述对关键词进行对称可搜索加密是使用AES加密的CBC模式,以Key为加密密钥,对关键词W加密生成E(W),设E(W)的长度为n bit;随机生成长度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进行异或操作得到关键词密文
Figure FDA0002434786890000041
所述对文件密文的对称密钥进行属性基加密是输入一个访问策略(M,ρ)和一个对称密钥Key∈{0,1}k,上标k表示k位二进制数,其中访问策略(M,ρ)是一个(t,n)门限的访问策略,矩阵
Figure FDA0002434786890000042
其中xi,i=1~n为第i行的属性编号,则ρ(i)即为xi对应的属性,t表示矩阵的列数,n表示矩阵的行数;
采用所述访问策略对对称密钥属性基加密后输出第一层密文CI。
5.根据权利要求4所述的基于代理重加密的内容安全分享方法,其特征在于,所述采用所述访问策略对对称密钥属性基加密是随机选取β∈{0,1}k,计算s=H1(Key,β),随机选取(t-1)个元素
Figure FDA0002434786890000043
生成一个向量
Figure FDA0002434786890000044
Figure FDA0002434786890000045
yt表示
Figure FDA0002434786890000046
中的第t个元素,上标k表示k位二进制数,下标t表示元素序号,H1(Key,β)表示将Key和β拼接后用哈希函数H1映射得到的结果;对所有的i=1~n,计算
Figure FDA0002434786890000047
其中Mi是M的第i行,下标i表示序号,λi表示向量
Figure FDA0002434786890000048
点乘第i行M的计算结果;随机选取n个元素
Figure FDA0002434786890000049
下标n表示序号,ri表示第i个元素,计算
Figure FDA00024347868900000410
A2=gs
Figure FDA00024347868900000411
其中,e(g,g)αs表示用e对g,g做一次双线性映射,再做一次指数为αs的指数运算得到的结果,gs表示对g做一次指数为s的指数运算得到的结果,
Figure FDA00024347868900000412
表示对g1做一次指数为s的指数运算得到的结果;对所有的i=1~n,计算
Figure FDA00024347868900000413
其中,gb表示对g做一次指数为b的指数运算得到的结果,下标i表示序号,i=1,2,3…n,
Figure FDA00024347868900000414
表示对gb做一次指数为λi的指数运算得到的结果,ρ(i)表示用ρ把i映射到一个属性的结果,
Figure FDA00024347868900000415
表示先用哈希函数H3对ρ(i)进行映射,再将映射结果做一次指数为-ri的指数运算,
Figure FDA00024347868900000416
表示对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作异或得到
Figure FDA0002434786890000051
取T′的前n/2bit作为Si′,其中,下标i表示序号,使用AES加密的CBC模式,以kf为密钥,对Si′加密,取解密结果的前n/2bit与T′的后n/2bit比对,若一致则CW即为检索的密文,若不一致则继续遍历其它密文。
8.根据权利要求1所述的基于代理重加密的内容安全分享方法,其特征在于,所述重加密是输入具有((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:
Figure FDA0002434786890000052
其中,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′11,C′1),…,(B′n′,C′n′))做一次哈希映射,e(g,D′)表示用e对g,D′做一次双线性映射,ωi表示一组常数
Figure FDA0002434786890000053
满足∑i∈Iωiλi=S,其中S=H1(Key,β),ωi的具体计算方法为:
Figure FDA0002434786890000054
输出第二层重加密密文CII=(S,(M,ρ),A1,A3,(B1,C1),…,(Bn,Cn),D,A4,rk4),其中,下标i表示元素序号,下标j表示元素需要,xi表示第i个属性的序号,xj表示第j个属性的序号,I表示I={i:ρ(i)∈S}定义的集合。
9.一种基于代理重加密的内容安全分享系统,其特征在于,包括:
参数初始化模块:密钥服务器生成公开参数、系统主密钥,将公开参数发送至系统用户,将系统主密钥存储在密钥服务器;
私钥产生模块:密钥服务器接收各系统用户发送的用户属性,密钥服务器根据用户属性生成对应的用户私钥,将用户私钥发送至各系统用户;
文件上传模块:提供文件上传通道,将文件上传至云服务器,所述文件上传通道用于将对文件进行对称加密的文件密文CF、对关键词进行对称可搜索加密得到的关键词密文CW、对文件密文的对称密钥进行属性基加密得到的第一层密文CI;
云服务器收发模块:接收所述文件密文CF、关键词密文CW、第一层密文CI,对文件密文、关键词密文进行一一对应绑定存储,将第一层密文发送至文件接收端;
搜索请求模块:文件接收端对第一层密文进行属性基解密,得到对称密钥,选定搜索关键词,采用陷门函数生成所述关键词对应的陷门,将陷门发送至云服务器;
密文搜索模块:云服务器接收陷门,根据陷门进行关键词密文搜索,若搜索得到关键词密文对应的文件密文,则将文件密文发送至文件接收端,若未搜索得到关键词密文对应的文件密文,则将搜索失败信息发送至文件接收端;
文件解密模块:文件接收端接收文件密文,采用对称密钥将文件密文进行对称解密,得到明文文件;
文件分享模块:文件接收端制定访问策略,生成重加密密钥,将重加密密钥上传至云服务器,云服务器采用重加密密钥对第一层密文进行重加密,得到第二层重加密密文CII,将第二层重加密密文发送至文件分享端。
CN201910020846.4A 2019-01-09 2019-01-09 基于代理重加密的内容安全分享方法和系统 Active CN109660555B (zh)

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 CN109660555A (zh) 2019-04-19
CN109660555B true 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)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110391901B (zh) * 2019-07-05 2021-09-21 南京理工大学 一种支持复杂访问控制要素描述的代理重加密方法
CN110535873B (zh) * 2019-09-16 2021-11-05 北京数字认证股份有限公司 应用于数据协同加密系统的加密方法、解密方法
CN110635909B (zh) * 2019-10-16 2022-08-26 淮北师范大学 一种基于属性的抗合谋攻击的代理重加密方法
CN111786786A (zh) * 2020-07-27 2020-10-16 国网河南省电力公司郑州供电公司 云计算环境下支持等式判定的代理重加密方法及系统
CN112671735B (zh) * 2020-12-16 2022-12-06 江苏通付盾区块链科技有限公司 一种基于区块链和重加密的数据加密分享系统及方法
CN112560075B (zh) * 2021-02-22 2021-05-25 西南石油大学 一种基于椭圆曲线的轻量级可搜索加密方法及装置
CN112866288B (zh) * 2021-03-01 2022-09-06 上海海事大学 一种双明文传输的数据对称加密方法
CN113093678B (zh) * 2021-04-07 2022-12-20 国能(泉州)热电有限公司 一种电厂dcs系统数据处理方法
CN113569271B (zh) * 2021-09-27 2022-01-25 深圳前海环融联易信息科技服务有限公司 一种基于属性条件门限代理重加密方法
CN113868708B (zh) * 2021-12-03 2022-03-08 北京邮电大学 基于双链架构的可监管数据安全共享方法及设备
CN114125831B (zh) * 2022-01-25 2022-05-03 国网浙江省电力有限公司信息通信分公司 基于代理重加密的5g智能电网用户侧数据获取方法及系统
CN115001730B (zh) * 2022-03-02 2023-09-05 上海交通大学 分布式场景下基于角色属性的访问控制系统及方法
CN114567436B (zh) * 2022-03-23 2024-04-12 浙江工业大学 一种生物特征数据安全访问控制方法
CN115225364B (zh) * 2022-07-15 2023-11-17 中国科学技术大学 一种面向云端加密数据的高效动态访问控制方法及系统
CN115801397B (zh) * 2022-11-15 2024-04-09 成都理工大学 一种抗合谋攻击的代理可搜索加密方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103647642A (zh) * 2013-11-15 2014-03-19 河海大学 一种基于证书代理重加密方法及系统
CN107256248A (zh) * 2017-06-07 2017-10-17 福州大学 云存储安全中基于通配符的可搜索加密方法
CN108038128A (zh) * 2017-11-08 2018-05-15 平安科技(深圳)有限公司 一种加密文件的检索方法、系统、终端设备及存储介质
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

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105024802B (zh) * 2015-07-13 2018-05-29 西安理工大学 云存储中基于双线性对的多用户多关键词可搜索加密方法
US10581812B2 (en) * 2015-12-01 2020-03-03 Duality Technologies, Inc. Device, system and method for fast and secure proxy re-encryption
CN105743888A (zh) * 2016-01-22 2016-07-06 河南理工大学 一种基于关键字搜索的代理重加密方案
CN106921674B (zh) * 2017-03-30 2019-11-12 福州大学 抗后量子攻击的代理重加密语义可搜索加密方法
WO2018208787A1 (en) * 2017-05-08 2018-11-15 ZeroDB, Inc. High-performance access management and data protection for distributed messaging applications
CN108418681B (zh) * 2018-01-22 2020-10-23 南京邮电大学 一种支持代理重加密的基于属性的密文检索系统及方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103647642A (zh) * 2013-11-15 2014-03-19 河海大学 一种基于证书代理重加密方法及系统
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
CN107256248A (zh) * 2017-06-07 2017-10-17 福州大学 云存储安全中基于通配符的可搜索加密方法
CN108038128A (zh) * 2017-11-08 2018-05-15 平安科技(深圳)有限公司 一种加密文件的检索方法、系统、终端设备及存储介质

Also Published As

Publication number Publication date
CN109660555A (zh) 2019-04-19

Similar Documents

Publication Publication Date Title
CN109660555B (zh) 基于代理重加密的内容安全分享方法和系统
CN108418681B (zh) 一种支持代理重加密的基于属性的密文检索系统及方法
CN108599937B (zh) 一种多关键字可搜索的公钥加密方法
CN111143471B (zh) 一种基于区块链的密文检索方法
CN109361644B (zh) 一种支持快速搜索和解密的模糊属性基加密方法
CN102314580A (zh) 一种基于向量和矩阵运算的支持计算的加密方法
CN110866135B (zh) 一种基于响应长度隐藏的k-NN图像检索方法及系统
CN108111587B (zh) 一种基于时间释放的云存储搜索方法
CN104967693A (zh) 面向云存储的基于全同态密码技术的文档相似度计算方法
CN112332979B (zh) 云计算环境中的密文搜索方法及系统、设备
CN111902809A (zh) 雾计算下基于cp-abe的密文搜索方法、装置、设备及存储介质
CN114826703A (zh) 基于区块链的数据搜索细粒度访问控制方法及系统
CN107766739B (zh) 面向加密文本数据的短语检索方法及其装置
CN113726517A (zh) 一种信息共享方法及装置
CN113098675B (zh) 基于多项式完全同态的二进制数据加密系统及方法
CN114417073B (zh) 一种加密图的邻居节点查询方法及装置、电子设备
CN111552988B (zh) 基于蒙特卡罗抽样的前向安全k近邻检索方法及系统
CN108920968B (zh) 一种基于连接关键词的文件可搜索加密方法
CN112000985A (zh) 具有指定条件关键字搜索功能的代理重加密方法和系统
KR100951034B1 (ko) 암호문 크기를 줄이기 위한 공개키 기반의 검색가능암호문생성 방법과, 그에 따른 공개키 기반의 데이터 검색 방법
CN113132345B (zh) 具有可搜索功能的代理隐私集合求交方法
Mala Biclique‐based cryptanalysis of the block cipher SQUARE
CN110851850B (zh) 一种可搜索加密系统的实现方法
KR101133988B1 (ko) 해쉬 트리 기반의 스트림 암호화 및 복호화 방법과 암호 파일 시스템
CN115412233A (zh) 区块链上基于属性的具有前向和后向隐私的可搜索加密方法及系统

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