CN113407966A - 具有密钥更新与密文分享功能的可搜索公钥加密方法和系统 - Google Patents

具有密钥更新与密文分享功能的可搜索公钥加密方法和系统 Download PDF

Info

Publication number
CN113407966A
CN113407966A CN202110711216.9A CN202110711216A CN113407966A CN 113407966 A CN113407966 A CN 113407966A CN 202110711216 A CN202110711216 A CN 202110711216A CN 113407966 A CN113407966 A CN 113407966A
Authority
CN
China
Prior art keywords
ciphertext
index
key
user
storage server
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.)
Pending
Application number
CN202110711216.9A
Other languages
English (en)
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.)
Nanjing Normal University
Original Assignee
Nanjing Normal 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 Nanjing Normal University filed Critical Nanjing Normal University
Priority to CN202110711216.9A priority Critical patent/CN113407966A/zh
Publication of CN113407966A publication Critical patent/CN113407966A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Storage Device Security (AREA)

Abstract

本发明公开了具有密钥更新与密文分享功能的可搜索公钥加密方法和系统,方法包括生成系统的全局参数集、生成密文存储服务器的公私钥、生成用户的公私钥、生成索引密文、生成索引密文重加密密钥、生成共享索引密文、生成搜索陷门、检索密文、生成索引密文更新密钥和更新索引密文的步骤。系统包括系统初始化模块、密文存储服务器公私钥生成模块、用户公私钥生成模块、索引密文生成模块、索引密文重加密密钥生成模块、共享索引密文生成模块、搜索陷门生成模块、密文检索模块、索引密文更新密钥生成模块和索引密文更新模块。本发明支持用户密钥更新功能,克服了私钥泄露问题,且无需解密即可完成密文的更新和分享,保护了用户信息资源不被非授权访问。

Description

具有密钥更新与密文分享功能的可搜索公钥加密方法和系统
技术领域
本发明属于信息安全中的数据加密技术领域,特别涉及了一种可搜索公钥加密方法和系统。
背景技术
为解决加密数据检索的难题,Song等人在2000年提出了可搜索加密的技术。这一新型密码技术克服了传统加密技术无法对密文直接检索的缺陷,迅速引起密码学界的关注和研究。然而,Song等人所提出的可搜索加密基于对称密码体制,因此存在密钥管理和密钥分发问题。2004年,Boneh等人首次提出可搜索公钥加密方法。该方法使得用户可以授权不可信的密文存储服务器检测发送给他且以其公钥加密的密文中是否包含有特定的关键词,有效解决了公钥密码系统中密文的检索问题。
密码系统的安全性主要依赖于秘密密钥的机密性。一旦发生了秘密密钥泄露,整个密码系统的安全性将会受到威胁。最早提出的解决秘密密钥泄露问题的方法是:将秘密密钥分为若干个部分密钥,再将这些部分密钥存放在多个不同设备中。但是,该方法不仅会提高密码系统的部署成本,而且会消耗大量的计算资源。由于密码计算经常需要在一些不安全的或易失的设备上执行,因此秘密密钥泄露不可避免。一些密码学者所提出的方法不再局限于预防秘密密钥泄露的发生,而是在秘密密钥泄露发生之后尽可能减轻它所带来的危害。在可搜索公钥加密方面,Anada等人于2018年首次提出了带有密钥更新功能的公钥可搜索加密的方法以应对用户私钥泄露的问题。在该方法中,用户可以在每个系统周期的初始时刻撤销旧的公私钥并启用新的公私钥。为了更新密文存储服务器上的密文,用户要么下载全部的密文,在本地完成重加密;要么将旧私钥发给密文存储服务器,由密文存储服务器对旧索引密文进行解密得到关键字,再用新公钥加密关键字得到新的密文。易见,该方法在密文更新方面存在如下的不足:如果由用户下载全部的密文在本地完成密文更新,必然会产生高昂的通信、计算以及存储开销;但如果由密文存储服务器来完成索引密文更新,必然会将关键字信息完全暴露给密文存储服务器,因此无法保护关键字的隐私性。此外,Anada等人提出的方法中,搜索陷门需要通过安全信道传输给密文存储服务器,否则无法保证关键字密文的不可区分安全性。而构建安全信道通常需要大量的计算开销和通信负载,因此对于某些应用来说显然是不合适的。
发明内容
为了解决上述背景技术提到的技术问题,本发明提出了具有密钥更新与密文分享功能的可搜索公钥加密方法和系统,不仅支持用户密钥更新的功能,有效克服私钥泄露问题,而且实现了无需解密即可在密文存储服务器上完成密文的更新和分享,起到保护用户在密文存储服务器上的信息资源不被非授权访问的目的。此外,还克服了搜索陷门需要通过安全信道传输的问题。
为了实现上述技术目的,本发明的技术方案为:
一种具有密钥更新与密文分享功能的可搜索公钥加密方法,包括以下步骤:
步骤A、根据安全参数,生成系统的全局参数集;
步骤B、根据系统的全局参数集,密文存储服务器生成自己的公私钥;
步骤C、根据系统的全局参数集,用户生成自己的公私钥,用户包括数据拥有者和被授权数据使用者;
步骤D、根据系统的全局参数集、数据拥有者的公钥、密文存储服务器的公钥和一个与数据密文相关联的关键词,数据拥有者生成索引密文,并将之附加在数据密文后;
步骤E、根据系统的全局参数集、数据拥有者的私钥和被授权数据使用者的私钥,数据拥有者和被授权数据使用者交互生成索引密文重加密密钥;
步骤F、根据系统的全局参数集、密文重加密密钥和数据拥有者的索引密文,密文存储服务器生成被授权数据使用者能够检索的共享索引密文;
步骤G、根据系统的全局参数集、用户的私钥、密文存储服务器的公钥和待搜索的关键词,用户生成搜索陷门;
步骤H、根据系统的全局参数集、密文存储服务器的私钥、索引密文和搜索陷门,密文存储服务器测试索引密文和搜索陷门是否匹配,即测试索引密文和搜索陷门所包含的关键词是否相同,其中索引密文是数据拥有者的索引密文,或者是给被授权数据使用者的共享索引密文;若索引密文和搜索陷门匹配成功,密文存储服务器将该索引密文对应的数据密文发送给用户;否则,密文存储服务器忽略该索引密文对应的数据密文;
步骤I、根据系统的全局参数集,数据拥有者当前使用的私钥和数据拥有者将启用的新私钥,数据拥有者生成索引密文更新密钥;
步骤J、根据系统的全局参数集、数据拥有者的索引密文更新密钥和数据拥有者的原始索引密文,密文存储服务器更新原始索引密文,生成新索引密文。
进一步地,步骤A的具体过程如下:
步骤A1、系统参数生成中心根据安全参数λ∈Z+生成一个λ比特的素数q,一个q阶乘法循环群G和一个q阶乘法循环群GT,并定义一个双线性映射fbp:G×G→GT,其中Z+为正整数集合,fbp:G×G→GT是乘法循环群G和自身的笛卡尔积G×G到乘法循环群GT的映射,即双线性映射fbp:G×G→GT是指函数z=fbp(x,y),其中,x,y∈G为自变量,z∈GT为因变量;
步骤A2、从乘法循环群G中选择一个生成元g;
步骤A3、定义三个哈希函数H:G→G,H1:{0,1}*→G,H2:GT→{0,1}l,其中,l∈Z+,H是乘法循环群G到乘法循环群G的哈希函数,H1是{0,1}*到乘法循环群G的哈希函数,H2是乘法循环群GT到长度为l的二进制符号串的哈希函数,{0,1}*是长度不固定的二进制符号串的集合,{0,1}l是长度为l的二进制符号串的集合;
步骤A4、生成系统的全局参数集prms={q,G,GT,fbp,g,H,H1,H2}。
进一步地,步骤B的具体过程如下:
根据系统的全局参数集prms={q,G,GT,fbp,g,H,H1,H2},密文存储服务器在集合
Figure BDA0003133839240000041
中随机选择自己的私钥SKS=a,并计算自己的公钥PKS=ga,其中
Figure BDA0003133839240000042
进一步地,步骤C的具体过程如下:
根据系统的全局参数集prms={q,G,GT,fbp,g,H,H1,H2},用户在集合
Figure BDA0003133839240000043
中随机选择自己的私钥SKU=xU,并计算自己的公钥
Figure BDA0003133839240000044
将数据拥有者当前使用的公私钥和将启用的新公私钥分别表示为(PKDO,SKDO)和
Figure BDA0003133839240000045
被授权数据使用者的公私钥表示为(PKAU,SKAU)。
进一步地,步骤D的具体过程如下:
步骤D1、根据系统的全局参数集prms={q,G,GT,fbp,g,H,H1,H2},数据拥有者根据自己的公钥PKDO、密文存储服务器的公钥PKS以及一个与待发送数据密文相关联的关键词w,随机选择一个整数
Figure BDA0003133839240000046
生成一个双线性映射值t=fbp(PKS,H1(w))r,其中,H1(w)为哈希函数H1输出的关键词w的哈希值;
步骤D2、计算索引密文的第一部分A=(PKDO)r和索引密文的第二部分B=H2(t);
步骤D3、发送者组合A,B生成索引密文CTw,DO,即索引密文CTw,DO=(A,B)然后将之附加在数据密文上发送给密文存储服务器。
进一步地,步骤E的具体过程如下:
步骤E1、根据系统的全局参数集prms={q,G,GT,fbp,g,H,H1,H2},数据拥有者随机选择一个整数
Figure BDA0003133839240000051
利用自己的私钥SKDO计算t1=nSKDOmod p作为自己与被授权数据使用者的交互值,然后将之发送给被授权数据使用者;
步骤E2、被授权数据使用者接收到t1后,利用自己的私钥SKAU计算t2=SKAU/t1作为自己与数据拥有者的交互值,然后将之发送给数据拥有者;
步骤E3、数据拥有者接收到t2后,利用随机整数n计算索引密文重加密密钥rkDO→AU=nt2,然后将之发送给密文存储服务器。
进一步地,步骤F的具体过程如下:
根据系统的全局参数集prms={q,G,GT,fbp,g,H,H1,H2},密文存储服务器根据索引密文重加密密钥rkDO→AU和数据拥有者的索引密文CTw,DO=(A,B),重新计算索引密文的第一部分
Figure BDA0003133839240000052
生成共享索引密文CTw,AU=(A',B)。
进一步地,步骤G的具体过程如下:
步骤G1、根据系统的全局参数集prms={q,G,GT,fbp,g,H,H1,H2},用户随机选择一个整数
Figure BDA0003133839240000053
计算搜索陷门的第一部分T1=gr';
步骤G2、用户利用自己的私钥SKU、密文存储服务器的公钥PKS以及待搜索的关键词w′,计算搜索陷门的第二部分
Figure BDA0003133839240000054
其中,H1(w')为哈希函数H1输出的关键词w′的哈希值,
Figure BDA0003133839240000055
为哈希函数H输出的密文存储服务器公钥PKS的r′次方的哈希值;
步骤G3、用户组合T1和T2生成搜索陷门Tw',即搜索陷门Tw'=(T1,T2),然后发送给密文存储服务器。
进一步地,步骤H的具体过程如下:
根据系统的全局参数集prms={q,G,GT,fbp,g,H,H1,H2},索引密文CTw,U和搜索陷门Tw'=(T1,T2),其中索引密文CTw,U是数据拥有者的索引密文CTw,DO=(A,B),或者是给被授权数据使用者的共享索引密文CTw,AU=(A',B),密文存储服务器使用自己的私钥SKS=a检查等式Y=H2(e(X,(T2/H(T1 a))a))是否成立,如果等式成立,则表示索引密文和搜索陷门相匹配,将索引密文CTw,U对应的数据密文发送给搜索者;否则,匹配测试失败,忽略该索引密文CTw,U
步骤I的具体过程如下:
根据系统的全局参数集prms={q,G,GT,fbp,g,H,H1,H2},数据拥有者根据自己当前使用的私钥SKDO和将启用的新私钥
Figure BDA0003133839240000061
生成一个索引密文更新密钥
Figure BDA0003133839240000062
然后将之发送给密文存储服务器;
步骤J的具体过程如下:
根据系统的全局参数集prms={q,G,GT,fbp,g,H,H1,H2},数据拥有者的索引密文更新密钥UKDO和索引密文CTw,DO=(A,B),密文存储服务器重新计算索引密文的第一部分
Figure BDA0003133839240000063
生成一个新索引密文
Figure BDA0003133839240000064
一种具有密钥更新与密文分享功能的可搜索公钥加密系统,包括:
系统参数生成模块,用于根据输入的安全参数生成系统的全局参数集;
密文存储服务器公私钥生成模块,用于根据系统的全局参数集,生成密文存储服务器的公私钥;
用户公私钥生成模块,用于根据系统的全局参数集,生成用户的公私钥,用户包括数据拥有者和被授权数据使用者;
索引密文生成模块,根据系统的全局参数集、数据拥有者的公钥、密文存储服务器的公钥和一个与数据密文相关联的关键词,数据拥有者生成索引密文;
索引密文重加密密钥生成模块,用于根据系统的全局参数集、数据拥有者的私钥和被授权数据使用者的私钥,数据拥有者和被授权数据使用者交互生成索引密文重加密密钥;
共享索引密文生成模块,用于根据系统的全局参数集、索引密文重加密密钥和数据拥有者的索引密文,密文存储服务器生成被授权数据使用者能够检索的索引密文;
搜索陷门生成模块,用于根据所系统的全局参数集、用户的私钥、密文存储服务器的公钥和待搜索的关键词,用户生成搜索陷门;
密文检索模块,用于根据系统的全局参数集、密文存储服务器的私钥、索引密文和搜索陷门,密文存储服务器测试索引密文和搜索陷门是否匹配,即测试索引密文和搜索陷门所包含的关键词是否相同,其中索引密文是数据拥有者的索引密文,或者是给被授权数据使用者的共享索引密文;若索引密文和搜索陷门匹配成功,密文存储服务器将该索引密文对应的数据密文发送给用户;否则,密文存储服务器忽略该索引密文对应的数据密文;
索引密文更新密钥生成模块,用于根据系统的全局参数集、数据拥有者当前使用的私钥和将启用的新私钥,数据拥有者生成索引密文更新密钥;
索引密文更新模块,用于根据系统的全局参数集、数据拥有者的索引密文更新密钥和数据拥有者的原始索引密文,密文存储服务器对数据拥有者的原始索引密文更新,生成新索引密文。
采用上述技术方案带来的有益效果:
首先,本发明提供了关键字隐私保持的密文更新功能,由于在索引密文更新过程中,无需对索引密文进行解密,密文存储服务器对关键字密文中的关键字信息一无所知,因此有效保护了关键字隐私。
其次,本发明同时使用接收者和指定存储服务器的公钥产生索引密文,只有指定的密文存储服务器才能执行测试操作,因此消除了搜索陷门传输中安全信道的要求。由于只有指定存储服务器使用其私钥才能执行匹配测试操作,因此外部攻击者即使拦截了搜索陷门,也无法破坏索引密文的不可区分性。
最后,本发明提供了密文共享功能。数据拥有者可以通过授权密文存储服务器使用其发送的索引密文重加密密钥来将其索引密文重加密,转化为其他用户能够直接检索的索引密文。因此,其他用户可以直接在密文存储服务器上访问和检索数据拥有者分享给他的的密文。
附图说明
图1是本发明的整体流程图;
图2是本发明的具体流程图;
图3是本发明中系统的组成示意图。
具体实施方式
以下将结合附图,对本发明的技术方案进行详细说明。
本发明提出的具有密钥更新与密文分享功能的可搜索公钥加密方法可利用双线性映射来实现,下面首先简要地介绍双线性映射的基本知识。
令q为素数,G为q阶乘法循环群,GT为q阶乘法循环群,g是乘法循环群G的生成元。若定义在乘法循环群G和乘法循环群GT上的一个映射fbp:G×G→GT满足下面的三个性质,则称该映射为有效的双线性映射。其中,fbp:G×G→GT是乘法循环群G和自身的笛卡尔积G×G到乘法循环群GT的映射,即双线性映射fbp:G×G→GT是指函数z=fbp(x,y),其中x,y∈G为自变量,z∈GT为因变量。
一个有效的双线性映射fbp:G×G→GT需满足以下三条性质:
(1)双线性:对于任意的
Figure BDA0003133839240000091
满足fbp(gm,gn)=fbp(g,g)mn
(2)非退化性:
Figure BDA0003133839240000092
其中
Figure BDA0003133839240000093
表示乘法循环群GT中的单位元;
(3)可计算性:对任意的
Figure BDA0003133839240000094
都存在一个算法有效的计算fbp(gm,gn)。其中,群和循环群的概念为:设G为群,如果存在一个元素g∈G使得G={gn|n∈Z}(或G={ng|n∈Z}),则称G为乘法循环群(或加法循环群),称g是群G的生成元。若生成元g的阶为q(即q是使得g的幂等于群G的单位元的最小正整数),则称G为q阶循环群。此外,
Figure BDA0003133839240000095
其中Zq是指整数模q的剩余类,即Zq={0,1,...,q-1}。
根据以上双线性对的描述,下面结合附图和实现例对本发明提出的具有密钥更新与密文分享功能的可搜索公钥加密方法作进一步说明,但并不作为对本发明的限定。
本发明所述方法涉及的用户如下:
(1)系统参数生成中心:系统中唯一的可信第三方,负责生成系统的全局参数集;
(2)密文存储服务器:负责生成自己的的公私钥,生成新索引密文和共享索引密文,并负责存储系统中的密文;在收到搜索陷门后,对密文进行检索,将符合要求的密文发送给用户;
(3)数据拥有者:负责生成初始公私钥、索引密文更新密钥、索引密文重加密密钥,并负责将待发送的数据加密成数据密文,然后将与数据相关联的关键词加密成索引密文并附加在数据密文上发送给密文存储服务器,生成待搜索关键词的搜索陷门,将陷门发送给密文存储服务器,授权密文存储服务器通过搜索陷门检索其接收到的密文。;
(4)被授权数据使用者:负责生成自己的公私钥,并负责生成待搜索关键词的搜索陷门,将陷门发送给密文存储服务器,授权密文存储服务器通过搜索陷门检索其接收到的密文。
参照图1和图2,本发明所述方法的步骤具体描述如下:
一种具有密钥更新与密文分享功能的可搜索公钥加密方法,所述方法包含以下步骤:
步骤A、根据安全参数,系统参数生成中心生成系统的全局参数集;
步骤B、根据系统的全局参数集,密文存储服务器生成自己的公私钥;
步骤C、根据系统的全局参数集,用户生成自己的公私钥,用户包括数据拥有者和被授权数据使用者;
步骤D、根据系统的全局参数集、数据拥有者的公钥、密文存储服务器的公钥和一个与数据密文相关联的关键词,数据拥有者生成索引密文,并将之附加在数据密文后构成可检索密文;
步骤E、根据系统的全局参数集、数据拥有者的私钥和被授权数据使用者的私钥,数据拥有者和被授权数据使用者交互生成索引密文重加密密钥;
步骤F、根据系统的全局参数集、索引密文重加密密钥和数据拥有者的索引密文,密文存储服务器生成被授权数据使用者能够检索的共享索引密文;
步骤G、根据系统的全局参数集、用户的私钥、密文存储服务器的公钥和待搜索的关键词,用户生成搜索陷门,用户包括数据拥有者和被授权数据使用者;
步骤H、根据系统的全局参数集、密文存储服务器的私钥、索引密文和搜索陷门,密文存储服务器测试索引密文和搜索陷门是否匹配,即测试索引密文和搜索陷门所包含的关键词是否相同,其中索引密文可以是数据拥有者的索引密文,也可以是共享给被授权数据使用者的索引密文。若索引密文和搜索陷门匹配成功,密文存储服务器将该索引密文对应的数据密文发送给用户;否则,密文存储服务器忽略该索引密文对应的数据密文;
步骤I、根据系统的全局参数集,数据拥有者的当前使用的私钥和数据拥有者将启用的新私钥,数据拥有者生成索引密文更新密钥;
步骤J、根据系统的全局参数集、数据拥有者的索引密文更新密钥和数据拥有者的原始索引密文,密文存储服务器更新原始索引密文,生成新索引密文。
优选地,所述步骤A的详细步骤如下:
步骤A.1、系统参数生成中心根据安全参数λ∈Z+生成一个λ比特的素数q,一个q阶乘法循环群G和一个q阶乘法循环群GT,并定义一个双线性映射fbp:G×G→GT,其中Z+为正整数集合,fbp:G×G→GT是乘法循环群G和自身的笛卡尔积G×G到乘法循环群GT的映射,即双线性映射fbp:G×G→GT是指函数z=fbp(x,y),其中,x,y∈G为自变量,z∈GT为因变量;
步骤A.2、从乘法循环群G中选择一个生成元g;
步骤A.3、定义三个哈希函数H:G→G,H1:{0,1}*→G,H2:GT→{0,1}l,其中,l∈Z+,H是乘法循环群G到乘法循环群G的哈希函数,H1是{0,1}*到乘法循环群G的哈希函数,H2是乘法循环群GT到长度为l的二进制符号串的哈希函数,{0,1}*是长度不固定的二进制符号串的集合,{0,1}l是长度为l的二进制符号串的集合;
步骤A.4、生成系统的全局参数集prms={q,G,GT,fbp,g,H,H1,H2}。
优选地,所述步骤B的详细步骤如下:根据系统的全局参数集prms={q,G,GT,fbp,g,H,H1,H2},密文存储服务器在集合
Figure BDA0003133839240000111
中随机选择自己的私钥SKS=a,并计算自己的公钥PKS=ga
优选地,所述步骤C的详细步骤如下:根据系统的全局参数集prms={q,G,GT,fbp,g,H,H1,H2},用户在集合
Figure BDA0003133839240000121
中随机选择自己的私钥SKU=xU,并计算自己的公钥
Figure BDA0003133839240000122
将数据拥有者当前使用的公私钥和将启用的新公私钥分别表示为(PKDO,SKDO)和
Figure BDA0003133839240000123
被授权数据使用者的公私钥表示为(PKAU,SKAU)。
优选地,所述步骤D的详细步骤如下:
步骤D.1、根据系统的全局参数集prms={q,G,GT,fbp,g,H,H1,H2},数据拥有者根据自己的公钥PKDO、密文存储服务器的公钥PKS以及一个与待发送数据密文相关联的关键词w,随机选择一个整数
Figure BDA0003133839240000124
生成一个双线性映射值t=fbp(PKS,H1(w))r,其中,H1(w)为哈希函数H1输出的关键词w的哈希值;
步骤D.2、计算索引密文的第一部分A=(PKDO)r和索引密文的第二部分B=H2(t);
步骤D.3、发送者组合A,B生成索引密文CTw,DO,即索引密文CTw,DO=(A,B)由A,B两个部分构成,然后将之附加在数据密文上发送给密文存储服务器。
优选地,所述步骤E的详细步骤如下:
步骤E.1、根据系统的全局参数集prms={q,G,GT,fbp,g,H,H1,H2},数据拥有者随机选择一个整数
Figure BDA0003133839240000125
利用自己的私钥SKDO计算t1=nSKDOmod p作为他与被授权数据使用者的交互值,然后将之发送给被授权数据使用者;
步骤E.2、被授权数据使用者接收到t1后,利用自己的私钥SKAU计算t2=SKAU/t1作为他与数据拥有者的交互值,然后将之发送给数据拥有者;
步骤E.3、数据拥有者接收到t2后,利用随机整数n计算索引密文重加密密钥rkDO→AU=nt2,然后将之发送给密文存储服务器。
优选地,所述步骤F的详细步骤如下:根据系统的全局参数集prms={q,G,GT,fbp,g,H,H1,H2},密文存储服务器根据索引密文重加密密钥rkDO→AU和数据拥有者的索引密文CTw,DO=(A,B),重新计算索引密文的第一部分
Figure BDA0003133839240000131
生成共享索引密文CTw,AU=(A',B),即共享索引密文CTw,AU=(A',B)由A',B两个部分构成。
优选地,所述步骤G的详细步骤如下:
步骤G.1、根据系统的全局参数集prms={q,G,GT,fbp,g,H,H1,H2},用户随机选择一个整数
Figure BDA0003133839240000132
计算搜索陷门的第一部分T1=gr';
步骤G.2、用户利用自己的私钥SKU、密文存储服务器的公钥PKS以及待搜索的关键词w′,计算搜索陷门的第二部分
Figure BDA0003133839240000133
其中,H1(w')为哈希函数H1输出的关键词w′的哈希值,
Figure BDA0003133839240000134
为哈希函数H输出的密文存储服务器公钥PKS的r′次方的哈希值;
步骤G.3、用户组合T1和T2生成搜索陷门Tw',即搜索陷门Tw'=(T1,T2)由T1和T2两个部分构成,然后发送给密文存储服务器。
优选地,所述步骤H的详细步骤如下:根据系统的全局参数集prms={q,G,GT,fbp,g,H,H1,H2},索引密文CTw,U=(X,Y)和搜索陷门Tw'=(T1,T2),其中索引密文CTw,U=(X,Y)可以是数据拥有者的索引密文CTw,DO=(A,B),也可以是共享给被授权数据使用者的索引密文CTw,AU=(A',B),密文存储服务器使用自己的私钥SKS=a检查等式Y=H2(e(X,(T2/H(T1 a))a))是否成立。如果等式成立,则表示索引密文和搜索陷门相匹配,将索引密文CTw,U对应的数据密文发送给搜索者;否则,匹配测试失败,忽略该索引密文CTw,U
优选地,所述步骤I的详细步骤如下:根据系统的全局参数集prms={q,G,GT,fbp,g,H,H1,H2},数据拥有者根据自己当前使用的私钥SKDO和将启用的新私钥
Figure BDA0003133839240000141
生成一个索引密文更新密钥
Figure BDA0003133839240000142
然后将之发送给密文存储服务器。
优选地,所述步骤J的详细步骤如下:根据系统的全局参数集prms={q,G,GT,fbp,g,H,H1,H2},数据拥有者的索引密文更新密钥UKDO和索引密文CTw,DO=(A,B),密文存储服务器重新计算索引密文的第一部分
Figure BDA0003133839240000143
生成一个新索引密文
Figure BDA0003133839240000144
即新索引密文
Figure BDA0003133839240000145
由A″,B两个部分构成。
参见图3,本发明还提出一种具有密钥更新与密文分享功能的可搜索公钥加密系统,包括系统初始化模块、密文存储服务器公私钥生成模块、用户公私钥生成模块、索引密文生成模块、索引密文重加密密钥生成模块、共享索引密文生成模块、搜索陷门生成模块、密文检索模块、索引密文更新密钥生成模块和索引密文更新模块,具体如下:
系统参数生成模块,用于根据输入的安全参数生成系统的全局参数集;
密文存储服务器公私钥生成模块,用于根据所述系统的全局参数集,生成密文存储服务器的公私钥;
用户公私钥生成模块,用于根据所述系统的全局参数集,生成用户的公私钥,用户包括数据拥有者和被授权数据使用者;
索引密文生成模块,根据系统的全局参数集、数据拥有者的公钥、密文存储服务器的公钥和一个与数据密文相关联的关键词,数据拥有者生成索引密文;
索引密文重加密密钥生成模块,用于根据所述系统的全局参数集、数据拥有者的私钥和被授权数据使用者的私钥,数据拥有者和被授权数据使用者交互生成索引密文重加密密钥;
共享索引密文生成模块,用于根据所述系统的全局参数集、索引密文重加密密钥和数据拥有者的索引密文,密文存储服务器生成被授权数据使用者能够检索的索引密文;
搜索陷门生成模块,用于根据所述系统的全局参数集、用户的私钥、密文存储服务器的公钥和待搜索的关键词,用户生成搜索陷门,用户包括数据拥有者和被授权数据使用者;
密文检索模块,用于根据所述系统的全局参数集、密文存储服务器的私钥、索引密文和搜索陷门,密文存储服务器测试索引密文和搜索陷门是否匹配,即测试索引密文和搜索陷门所包含的关键词是否相同,其中索引密文可以是数据拥有者的索引密文,也可以是共享给被授权数据使用者的索引密文。若索引密文和搜索陷门匹配成功,密文存储服务器将该索引密文对应的数据密文发送给用户;否则,密文存储服务器忽略该索引密文对应的数据密文;
索引密文更新密钥生成模块,用于根据所述系统的全局参数集、数据拥有者当前使用的私钥和将启用的新私钥,数据拥有者生成索引密文更新密钥;
索引密文更新模块,用于根据所述系统的全局参数集、数据拥有者的索引密文更新密钥和数据拥有者的原始索引密文,密文存储服务器对数据拥有者的原始索引密文更新,生成新索引密文。
实施例仅为说明本发明的技术思想,不能以此限定本发明的保护范围,凡是按照本发明提出的技术思想,在技术方案基础上所做的任何改动,均落入本发明保护范围之内。

Claims (10)

1.一种具有密钥更新与密文分享功能的可搜索公钥加密方法,其特征在于,包括以下步骤:
步骤A、根据安全参数,生成系统的全局参数集;
步骤B、根据系统的全局参数集,密文存储服务器生成自己的公私钥;
步骤C、根据系统的全局参数集,用户生成自己的公私钥,用户包括数据拥有者和被授权数据使用者;
步骤D、根据系统的全局参数集、数据拥有者的公钥、密文存储服务器的公钥和一个与数据密文相关联的关键词,数据拥有者生成索引密文,并将之附加在数据密文后;
步骤E、根据系统的全局参数集、数据拥有者的私钥和被授权数据使用者的私钥,数据拥有者和被授权数据使用者交互生成索引密文重加密密钥;
步骤F、根据系统的全局参数集、密文重加密密钥和数据拥有者的索引密文,密文存储服务器生成被授权数据使用者能够检索的共享索引密文;
步骤G、根据系统的全局参数集、用户的私钥、密文存储服务器的公钥和待搜索的关键词,用户生成搜索陷门;
步骤H、根据系统的全局参数集、密文存储服务器的私钥、索引密文和搜索陷门,密文存储服务器测试索引密文和搜索陷门是否匹配,即测试索引密文和搜索陷门所包含的关键词是否相同,其中索引密文是数据拥有者的索引密文,或者是给被授权数据使用者的共享索引密文;若索引密文和搜索陷门匹配成功,密文存储服务器将该索引密文对应的数据密文发送给用户;否则,密文存储服务器忽略该索引密文对应的数据密文;
步骤I、根据系统的全局参数集,数据拥有者当前使用的私钥和数据拥有者将启用的新私钥,数据拥有者生成索引密文更新密钥;
步骤J、根据系统的全局参数集、数据拥有者的索引密文更新密钥和数据拥有者的原始索引密文,密文存储服务器更新原始索引密文,生成新索引密文。
2.根据权利要求1所述具有密钥更新与密文分享功能的可搜索公钥加密方法,其特征在于,步骤A的具体过程如下:
步骤A1、系统参数生成中心根据安全参数λ∈Z+生成一个λ比特的素数q,一个q阶乘法循环群G和一个q阶乘法循环群GT,并定义一个双线性映射fbp:G×G→GT,其中Z+为正整数集合,fbp:G×G→GT是乘法循环群G和自身的笛卡尔积G×G到乘法循环群GT的映射,即双线性映射fbp:G×G→GT是指函数z=fbp(x,y),其中,x,y∈G为自变量,z∈GT为因变量;
步骤A2、从乘法循环群G中选择一个生成元g;
步骤A3、定义三个哈希函数H:G→G,H1:{0,1}*→G,H2:GT→{0,1}l,其中,l∈Z+,H是乘法循环群G到乘法循环群G的哈希函数,H1是{0,1}*到乘法循环群G的哈希函数,H2是乘法循环群GT到长度为l的二进制符号串的哈希函数,{0,1}*是长度不固定的二进制符号串的集合,{0,1}l是长度为l的二进制符号串的集合;
步骤A4、生成系统的全局参数集prms={q,G,GT,fbp,g,H,H1,H2}。
3.根据权利要求2所述具有密钥更新与密文分享功能的可搜索公钥加密方法,其特征在于,步骤B的具体过程如下:
根据系统的全局参数集prms={q,G,GT,fbp,g,H,H1,H2},密文存储服务器在集合
Figure FDA0003133839230000021
中随机选择自己的私钥SKS=a,并计算自己的公钥PKS=ga,其中
Figure FDA0003133839230000022
4.根据权利要求3所述根据权利要求2所述具有密钥更新与密文分享功能的可搜索公钥加密方法,其特征在于,步骤C的具体过程如下:
根据系统的全局参数集prms={q,G,GT,fbp,g,H,H1,H2},用户在集合
Figure FDA0003133839230000031
中随机选择自己的私钥SKU=xU,并计算自己的公钥
Figure FDA0003133839230000032
将数据拥有者当前使用的公私钥和将启用的新公私钥分别表示为(PKDO,SKDO)和
Figure FDA0003133839230000033
被授权数据使用者的公私钥表示为(PKAU,SKAU)。
5.根据权利要求4所述具有密钥更新与密文分享功能的可搜索公钥加密方法,其特征在于,步骤D的具体过程如下:
步骤D1、根据系统的全局参数集prms={q,G,GT,fbp,g,H,H1,H2},数据拥有者根据自己的公钥PKDO、密文存储服务器的公钥PKS以及一个与待发送数据密文相关联的关键词w,随机选择一个整数
Figure FDA0003133839230000034
生成一个双线性映射值t=fbp(PKS,H1(w))r,其中,H1(w)为哈希函数H1输出的关键词w的哈希值;
步骤D2、计算索引密文的第一部分A=(PKDO)r和索引密文的第二部分B=H2(t);
步骤D3、发送者组合A,B生成索引密文CTw,DO,即索引密文CTw,DO=(A,B)然后将之附加在数据密文上发送给密文存储服务器。
6.根据权利要求5所述具有密钥更新与密文分享功能的可搜索公钥加密方法,其特征在于,步骤E的具体过程如下:
步骤E1、根据系统的全局参数集prms={q,G,GT,fbp,g,H,H1,H2},数据拥有者随机选择一个整数
Figure FDA0003133839230000035
利用自己的私钥SKDO计算t1=n SKDOmod p作为自己与被授权数据使用者的交互值,然后将之发送给被授权数据使用者;
步骤E2、被授权数据使用者接收到t1后,利用自己的私钥SKAU计算t2=SKAU/t1作为自己与数据拥有者的交互值,然后将之发送给数据拥有者;
步骤E3、数据拥有者接收到t2后,利用随机整数n计算索引密文重加密密钥rkDO→AU=nt2,然后将之发送给密文存储服务器。
7.根据权利要求6所述具有密钥更新与密文分享功能的可搜索公钥加密方法,其特征在于,步骤F的具体过程如下:
根据系统的全局参数集prms={q,G,GT,fbp,g,H,H1,H2},密文存储服务器根据索引密文重加密密钥rkDO→AU和数据拥有者的索引密文CTw,DO=(A,B),重新计算索引密文的第一部分
Figure FDA0003133839230000041
生成共享索引密文CTw,AU=(A',B)。
8.根据权利要求7所述具有密钥更新与密文分享功能的可搜索公钥加密方法,其特征在于,步骤G的具体过程如下:
步骤G1、根据系统的全局参数集prms={q,G,GT,fbp,g,H,H1,H2},用户随机选择一个整数
Figure FDA0003133839230000042
计算搜索陷门的第一部分T1=gr';
步骤G2、用户利用自己的私钥SKU、密文存储服务器的公钥PKS以及待搜索的关键词w′,计算搜索陷门的第二部分
Figure FDA0003133839230000043
其中,H1(w')为哈希函数H1输出的关键词w′的哈希值,
Figure FDA0003133839230000044
为哈希函数H输出的密文存储服务器公钥PKS的r′次方的哈希值;
步骤G3、用户组合T1和T2生成搜索陷门Tw',即搜索陷门Tw'=(T1,T2),然后发送给密文存储服务器。
9.根据权利要求8所述具有密钥更新与密文分享功能的可搜索公钥加密方法,其特征在于,步骤H的具体过程如下:
根据系统的全局参数集prms={q,G,GT,fbp,g,H,H1,H2},索引密文CTw,U和搜索陷门Tw'=(T1,T2),其中索引密文CTw,U是数据拥有者的索引密文CTw,DO=(A,B),或者是给被授权数据使用者的共享索引密文CTw,AU=(A',B),密文存储服务器使用自己的私钥SKS=a检查等式Y=H2(e(X,(T2/H(T1 a))a))是否成立,如果等式成立,则表示索引密文和搜索陷门相匹配,将索引密文CTw,U对应的数据密文发送给搜索者;否则,匹配测试失败,忽略该索引密文CTw,U
步骤I的具体过程如下:
根据系统的全局参数集prms={q,G,GT,fbp,g,H,H1,H2},数据拥有者根据自己当前使用的私钥SKDO和将启用的新私钥
Figure FDA0003133839230000051
生成一个索引密文更新密钥
Figure FDA0003133839230000052
然后将之发送给密文存储服务器;
步骤J的具体过程如下:
根据系统的全局参数集prms={q,G,GT,fbp,g,H,H1,H2},数据拥有者的索引密文更新密钥UKDO和索引密文CTw,DO=(A,B),密文存储服务器重新计算索引密文的第一部分
Figure FDA0003133839230000053
生成一个新索引密文
Figure FDA0003133839230000054
10.一种具有密钥更新与密文分享功能的可搜索公钥加密系统,其特征在于,包括:
系统参数生成模块,用于根据输入的安全参数生成系统的全局参数集;
密文存储服务器公私钥生成模块,用于根据系统的全局参数集,生成密文存储服务器的公私钥;
用户公私钥生成模块,用于根据系统的全局参数集,生成用户的公私钥,用户包括数据拥有者和被授权数据使用者;
索引密文生成模块,根据系统的全局参数集、数据拥有者的公钥、密文存储服务器的公钥和一个与数据密文相关联的关键词,数据拥有者生成索引密文;
索引密文重加密密钥生成模块,用于根据系统的全局参数集、数据拥有者的私钥和被授权数据使用者的私钥,数据拥有者和被授权数据使用者交互生成索引密文重加密密钥;
共享索引密文生成模块,用于根据系统的全局参数集、索引密文重加密密钥和数据拥有者的索引密文,密文存储服务器生成被授权数据使用者能够检索的索引密文;
搜索陷门生成模块,用于根据所系统的全局参数集、用户的私钥、密文存储服务器的公钥和待搜索的关键词,用户生成搜索陷门;
密文检索模块,用于根据系统的全局参数集、密文存储服务器的私钥、索引密文和搜索陷门,密文存储服务器测试索引密文和搜索陷门是否匹配,即测试索引密文和搜索陷门所包含的关键词是否相同,其中索引密文是数据拥有者的索引密文,或者是给被授权数据使用者的共享索引密文;若索引密文和搜索陷门匹配成功,密文存储服务器将该索引密文对应的数据密文发送给用户;否则,密文存储服务器忽略该索引密文对应的数据密文;
索引密文更新密钥生成模块,用于根据系统的全局参数集、数据拥有者当前使用的私钥和将启用的新私钥,数据拥有者生成索引密文更新密钥;
索引密文更新模块,用于根据系统的全局参数集、数据拥有者的索引密文更新密钥和数据拥有者的原始索引密文,密文存储服务器对数据拥有者的原始索引密文更新,生成新索引密文。
CN202110711216.9A 2021-06-25 2021-06-25 具有密钥更新与密文分享功能的可搜索公钥加密方法和系统 Pending CN113407966A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110711216.9A CN113407966A (zh) 2021-06-25 2021-06-25 具有密钥更新与密文分享功能的可搜索公钥加密方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110711216.9A CN113407966A (zh) 2021-06-25 2021-06-25 具有密钥更新与密文分享功能的可搜索公钥加密方法和系统

Publications (1)

Publication Number Publication Date
CN113407966A true CN113407966A (zh) 2021-09-17

Family

ID=77679404

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110711216.9A Pending CN113407966A (zh) 2021-06-25 2021-06-25 具有密钥更新与密文分享功能的可搜索公钥加密方法和系统

Country Status (1)

Country Link
CN (1) CN113407966A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114567465A (zh) * 2022-02-17 2022-05-31 安徽师范大学 基于区块链的分类医疗数据可搜索加密方法
CN115002754A (zh) * 2022-02-24 2022-09-02 华东师范大学 一种基于车辆社交网络的轻量级数据分享方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150365385A1 (en) * 2014-06-11 2015-12-17 Bijit Hore Method and apparatus for securing sensitive data in a cloud storage system
CN111934875A (zh) * 2020-07-06 2020-11-13 河海大学 一种支持密文模糊搜索功能的公钥加密方法和系统
CN112152798A (zh) * 2020-08-31 2020-12-29 中大编码有限公司 基于加密数据去重的分布式密文共享密钥管理方法及系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150365385A1 (en) * 2014-06-11 2015-12-17 Bijit Hore Method and apparatus for securing sensitive data in a cloud storage system
CN111934875A (zh) * 2020-07-06 2020-11-13 河海大学 一种支持密文模糊搜索功能的公钥加密方法和系统
CN112152798A (zh) * 2020-08-31 2020-12-29 中大编码有限公司 基于加密数据去重的分布式密文共享密钥管理方法及系统

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114567465A (zh) * 2022-02-17 2022-05-31 安徽师范大学 基于区块链的分类医疗数据可搜索加密方法
CN114567465B (zh) * 2022-02-17 2024-05-24 安徽师范大学 基于区块链的分类医疗数据可搜索加密方法
CN115002754A (zh) * 2022-02-24 2022-09-02 华东师范大学 一种基于车辆社交网络的轻量级数据分享方法

Similar Documents

Publication Publication Date Title
CN111835500B (zh) 基于同态加密与区块链的可搜索加密数据安全共享方法
Byun et al. Off-line keyword guessing attacks on recent keyword search schemes over encrypted data
Baek et al. Public key encryption with keyword search revisited
CN104363215B (zh) 一种基于属性的加密方法和系统
Hsu et al. A Study of Public Key Encryption with Keyword Search.
CN112152803B (zh) 一种多接收者密文可搜索的基于身份加密方法
CN112989375B (zh) 一种分级优化加密无损隐私保护方法
CN111431705B (zh) 一种适用于可搜索加密的密码逆向防火墙方法
CN111786790A (zh) 一种隐私保护的带关键词搜索的基于身份加密方法和系统
CN110602064A (zh) 一种支持多关键字搜索的基于身份加密方法与系统
CN113407966A (zh) 具有密钥更新与密文分享功能的可搜索公钥加密方法和系统
Jiang et al. An Efficient Symmetric Searchable Encryption Scheme for Cloud Storage.
CN113992397B (zh) 一种高效的支持差异化等式测试的公钥加密方法
US20080165954A1 (en) System for encrypting and decrypting data using derivative equations and factors
CN112804052B (zh) 一种基于合数阶群的用户身份加密方法
KR101140576B1 (ko) 암호화 문서에 대한 다자간 검색 시스템 및 그 방법
KR101217491B1 (ko) 공개키 기반의 키워드 검색 방법
CN108920968B (zh) 一种基于连接关键词的文件可搜索加密方法
CN113422685B (zh) 一种搜索令牌限时撤销的无证书可搜索公钥加密方法及系统
Jiang et al. A novel privacy preserving keyword search scheme over encrypted cloud data
CN115550007A (zh) 一种基于异构系统的具有等值测试功能的签密方法及系统
KR20100003093A (ko) 암호문 크기를 줄이기 위한 공개키 기반의 검색가능암호문생성 방법과, 그에 따른 공개키 기반의 데이터 검색 방법
Su et al. Online/offline attribute-based encryption with keyword search against keyword guessing attack
KR20120108121A (ko) 대칭키 기반의 암호 생성 및 검색 방법과 그 시스템
Mohamad et al. Verifiable structured encryption

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