CN110603538B - 使用密码共享的加密搜索云服务 - Google Patents

使用密码共享的加密搜索云服务 Download PDF

Info

Publication number
CN110603538B
CN110603538B CN201880029795.5A CN201880029795A CN110603538B CN 110603538 B CN110603538 B CN 110603538B CN 201880029795 A CN201880029795 A CN 201880029795A CN 110603538 B CN110603538 B CN 110603538B
Authority
CN
China
Prior art keywords
shared object
file
cryptographic
read
shared
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
CN201880029795.5A
Other languages
English (en)
Other versions
CN110603538A (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.)
Google LLC
Original Assignee
Google LLC
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 Google LLC filed Critical Google LLC
Publication of CN110603538A publication Critical patent/CN110603538A/zh
Application granted granted Critical
Publication of CN110603538B publication Critical patent/CN110603538B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database

Abstract

一种用于共享对文件(200)的读取访问权的方法包括:从向共享对象共享对存储器硬件(150)上存储的文件的读取访问权的共享者(10a)接收共享读取访问权命令(250);以及从共享对象(10b)接收共享读取访问权请求(260)。共享读取访问权命令包括加密值(256)和基于写入密钥(204)、读取密钥(202)、文件标识符和共享对象标识符的第一密码共享值(252)。该方法还包括:将第一和第二密码共享值相乘以确定密码读取访问权值(224)。密码读取访问权值向共享对象授权对文件的读取访问权。该方法还包括:在存储器硬件的用户读取集(220)中存储共享对象的包括密码读取访问权值和加密值的读取访问权令牌(222)。

Description

使用密码共享的加密搜索云服务
技术领域
本公开涉及向搜索功能提供对存储在分布式系统上的加密项的密码共享。
背景技术
企业和个人用户正在使用分布式存储系统(即,云存储服务)来将数据存储在覆盖多个存储器位置的存储器上。这些企业和个人中的许多在将数据上传到分布式存储系统之前对其数据进行加密。为了使用云存储服务提供的基本功能,诸如对存储的数据执行搜索查询,需要企业提供对云存储服务的明文访问。结果,虽然云存储服务增加了便利性和成本优势,但一些政府和诸如卫生、金融和法律的敏感性的私营部门可能不太愿意使用云存储服务。另外,仅加密可能不足以确保数据私密性,因为仅对数据访问模式的了解就可以提供有关数据的大量信息,而无需解密数据。
发明内容
本公开的一个方面提供了一种用于共享读取访问权的方法。该方法包括:在数据处理硬件处,从向共享对象共享对存储在与数据处理硬件通信的存储器硬件上的文件的读取访问权的共享者接收共享读取访问权命令。共享读取访问权命令包括加密值和基于文件的写入密钥、文件的读取密钥、标识文件的文件标识符和标识共享对象的共享对象标识符的第一密码共享值。该方法还包括:在数据处理硬件处,从共享对象接收共享读取访问权请求并且由数据处理硬件将第一密码共享值与第二密码共享值相乘以确定密码读取访问权值。共享读取访问权请求包括共享对象标识符、文件标识符和基于文件的读取密钥和与共享对象相关联的共享对象密码密钥的第二密码共享值。密码读取访问权值向共享对象授权对文件的读取访问权。该方法还包括:由数据处理硬件在存储器硬件的用户读取集中存储共享对象的包括密码读取访问值和加密值的读取访问令牌。用户读取集包括与具有对文件的读取访问权的共享对象相关联的共享对象标识符的列表。
本公开的实现可以包括以下可选特征中的一个或多个。在一些实现中,共享者被配置为:通过安全且经认证的通信链路将文件的读取密钥发送给共享对象;创建文件的元数据;通过使用读取密钥对文件的元数据进行加密来计算加密值;以及向数据处理硬件发送共享读取访问权命令。可以基于写入密钥和文件标识符的函数除以读取密钥和共享对象标识符的函数来计算第一密码共享值。可以基于读取密钥和共享对象标识符的函数除以共享对象密码密钥和文件标识符的函数来计算第二密码共享值。
在一些示例中,该方法包括:在数据处理硬件处,从共享者接收撤销读取访问权命令,所述共享者从共享对象撤销对存储在存储器硬件上的文件的读取访问权;以及由数据处理硬件从用户读取集中去除共享对象的读取访问权令牌。响应于接收到撤销读取访问权命令,该方法可以包括:由数据处理硬件确定在存储器硬件的用户写入集中是否针对共享对象存在对应的写入访问权令牌。当存在对应的写入访问权令牌时,该方法可以包括由数据处理硬件从存储器硬件中去除写入访问权令牌。
在存储了共享对象的读取访问权令牌之后,该方法可以包括:在数据处理硬件处,从共享对象接收对文件中的关键字的搜索查询。搜索查询可以包括共享对象标识符、文件标识符和基于文件的读取密钥、关键字和与共享对象相关联的共享对象密码密钥的密码搜索值。该方法可以还包括:由数据处理硬件从存储器硬件的用户读取集中检索共享对象的读取访问权令牌,并且由数据处理硬件基于所接收的密码搜索值和所检索的共享对象的读取访问权令牌,计算密码字集令牌。该方法可以还包括:由数据处理硬件确定所计算的密码字集令牌是否与存储在存储器硬件中的字集的对应密码字集令牌匹配。当所计算的密码字集令牌与字集的对应密码字集令牌相匹配时,该方法可以包括:由数据处理硬件从存储器硬件检索与关键字相关联的文件的加密字元数据,并且由数据处理硬件向共享对象发送搜索结果集。搜索响应可以包括加密文件元数据和加密字元数据。共享对象被配置为:使用读取密钥解密加密文件元数据;以及使用读取密钥解密加密字元数据。
在一些实现中,该方法包括:在数据处理硬件处,从共享对象接收基于文件的写入密钥、文件标识符、共享对象标识符和共享对象密码密钥的写入访问权令牌。该方法可以还包括:由数据处理硬件将写入访问权令牌存储在存储器硬件的用户写入集中,用户写入集包括与具有对文件的写入访问权的共享对象相关联的共享对象标识符的列表。共享对象可以被配置为通过安全且经认证的通信链路从共享者接收文件的写入密钥。该方法可以还包括:在数据处理硬件处,从共享者接收撤销写入访问权命令,所述共享者从共享对象撤销对存储在存储器硬件上的文件的写入访问权;以及由数据处理硬件从用户写入集中去除共享对象的写入访问权令牌。
本公开的另一方面提供了用于共享写入访问权的第二种方法。该方法包括:在与共享对象相关联的共享对象设备处,从向共享对象共享对存储在分布式存储系统上的文件的写入访问权的共享者接收共享写入访问权许可。共享写入访问权许可包括文件的读取密钥、文件的写入密钥和文件的加密元数据。该方法还包括:在共享对象设备处基于文件的写入密钥、标识文件的文件标识符、标识共享对象的共享对象标识符和与共享对象相关联的共享对象密码密钥来确定密码写入访问权值。密码写入访问权值对共享对象授权对文件的写入访问权。该方法还包括:从共享对象设备向分布式存储系统发送共享对象的写入访问权令牌。写入访问权令牌包括密码写入访问权值。响应于接收到写入访问权令牌,分布式存储系统被配置为将写入访问权令牌存储在用户写入集中。用户写入集包括与具有对文件的写入访问权的共享对象相关联的共享对象标识符的列表。
本公开的实现可以包括以下可选特征中的一个或多个。在一些实现中,共享者被配置为(例如,在发送共享对象的写入访问权令牌之后)通过向分布式存储系统发送撤销写入访问权命令来从共享对象撤销对存储在分布式存储系统上的文件的写入访问权。响应于接收到撤销写入访问权命令,分布式存储系统被配置为从用户写入集中去除共享对象的写入访问权令牌。该方法可以还包括:在共享对象设备处基于文件的写入密钥、文件标识符和共享对象密码密钥确定密码读取访问权值。密码读取访问权值可以向共享对象授权对文件的读取访问权。发送共享对象的读取访问权令牌可以包括密码读取访问权值和文件的加密元数据到分布式存储系统。分布式存储系统响应于接收到读取访问权令牌可以被配置为将读取访问权令牌存储在用户读取集中。用户读取集可以包括与具有对文件的读取访问权的共享对象相关联的共享对象标识符的列表。
共享者可以被配置为(例如,在发送共享对象的读取访问权令牌之后)通过向分布式存储系统发送撤销读取访问权命令来从共享对象撤销对存储在分布式存储系统上的文件的读取访问权。响应于接收到撤销读取访问权命令,分布式存储系统被配置为:从用户写入集中去除共享对象的写入访问权令牌;以及从用户读取集中去除共享对象的读取访问权令牌。共享者可以被配置为在从共享者接收到共享写入访问权许可之前,创建文件的元数据;使用读取密钥对文件的元数据进行加密;以及通过安全且经认证的通信链路将共享写入访问权许可发送给共享对象。从共享者接收共享写入访问权许可可以包括通过安全且经认证的通信链路从共享者接收共享写入访问权许可。
在将共享对象的写入访问权令牌发送到分布式存储系统之后,该方法可以包括:由用户设备创建与要编辑的文件中的字相关联的文件的字元数据;并且由用户设备使用文件的读取密钥对字元数据进行加密。该方法也可以包括:由用户设备基于文件的读取密钥、与要编辑的文件中的字相关联的字标识符、与共享对象相关联的共享对象密码密钥、共享对象标识符和文件的写入密钥来计算密码编辑值。该方法可以还包括:向分布式存储系统发送包括密码编辑值、共享对象标识符、文件标识符和加密的字元数据的编辑操作请求。编辑操作请求可以请求分布式存储系统对要编辑的文件中的字处理编辑操作。
响应于从用户设备接收到编辑操作请求,分布式存储系统可以被配置为:从用户写入集中检索写入访问权令牌并且基于密码编辑值和检索到的共享对象的写入访问权令牌,计算密码字集令牌。当编辑操作请求所请求的编辑操作包括删除操作时,分布式存储系统可以通过去除由分布式存储系统存储的字集的对应密码字集令牌来处理删除操作。
响应于接收到编辑操作请求,分布式存储系统可以被配置为:从用户写入集中检索写入访问权令牌并且基于密码编辑值和检索到的共享对象的写入访问权令牌,计算密码字集令牌。当编辑操作请所请求的编辑操作包括重写操作时,分布式存储系统可以通过使用所计算的密码字集令牌和加密字元数据重写由分布式存储系统存储的字集的对应密码字集令牌来处理重写操作。
响应于从用户设备接收到编辑操作请求,分布式存储系统可以被配置为:从用户写入集中检索写入访问权令牌并且基于密码编辑值和检索到的共享对象的写入访问权令牌,计算密码字集令牌。当编辑操作请求所请求的编辑操作包括添加操作时,分布式存储系统可以通过将所计算的密码字集令牌和加密字元数据添加到由分布式存储系统存储的字集来处理添加操作。
本公开的另一方面提供了一种用于共享对文件的读取访问权的系统。该系统包括共享者设备、共享对象设备、与共享者设备和共享对象设备通信的存储系统的数据处理硬件以及与数据处理硬件通信的存储器硬件。共享者设备被配置为创建存储在存储系统上的文件的元数据,并且使用文件的读取密钥加密元数据,并计算文件的第一密码共享值。第一密码共享值基于文件的写入密钥、文件的读取密钥、标识文件的文件标识符以及标识接收对文件的共享读取访问权的共享对象的共享对象标识符。共享对象设备与共享对象相关联,并且被配置为通过安全且经认证的通信信道从共享者设备接收文件的读取密钥,并计算文件的第二密码共享值。第二密码共享值可以基于文件的读取密钥和与共享对象相关联的共享对象密码密钥。存储器硬件存储指令,所述指令在数据处理硬件上执行时使数据处理硬件执行操作。操作包括:从向共享对象共享读取访问权的共享者设备接收共享读取访问权命令。共享读取访问权命令包括文件的加密元数据和第一密码共享值。操作也包括:从共享对象设备接收共享读取访问权请求,共享读取访问权请求包括共享对象标识符、文件标识符和第二密码共享值。操作也包括:基于第一密码共享值和第二密码共享值确定密码读取访问权值,密码读取访问权值向共享对象授权对文件的读取访问权。操作还包括:在存储器硬件的用户读取集中存储共享对象的包括密码读取访问权值和加密值的读取访问权令牌,用户读取集包括与具有对文件的读取访问权的共享对象相关联的共享对象标识符的列表。
本公开的实现可以包括以下可选特征中的一个或多个。在一些实现中,确定密码读取访问权值包括将第一密码共享值和第二密码共享值相乘。该操作还可以包括:从共享者设备接收撤销读取访问权命令,所述共享者设备从共享对象撤销对存储在存储系统上的文件的读取访问权以及从用户读取集中去除共享对象的读取访问权令牌。响应于接收到撤销读取访问权命令,该操作可以包括:确定在存储器硬件的用户写入集中针对共享对象是否存在对应的写入访问权令牌;以及当存在对应的写入访问权令牌时,由数据处理硬件从存储器硬件中去除写入访问权令牌。
在存储了共享对象的读取访问权令牌之后,操作可以包括:从共享者设备接收针对文件中的关键字的搜索查询。搜索查询可以包括共享对象标识符、文件标识符和基于文件的读取密钥、关键字和与共享对象相关联的共享对象密码密钥的密码搜索值。该操作还可以包括:从存储器硬件用户读取集中检索共享对象的读取访问权令牌;基于所接收的密码搜索值和所检索的共享对象的读取访问权令牌,计算密码字集令牌并且确定所计算的密码字集令牌是否与存储在存储器硬件中的字集的对应的密码字集令牌匹配。当所计算的密码字集令牌与字集的对应密码字集令牌相匹配时,该方法可以包括:从存储器硬件中检索与关键字相关联的文件的加密字元数据;以及向共享对象设备发送搜索结果集,查询响应包括加密元数据和加密字元数据。共享对象设备可以被配置为使用读取密钥解密加密元数据并且使用读取密钥解密加密字元数据。
本公开的另一方面提供了用于共享对文件的写入访问权的第二系统。该系统包括与存储在分布式存储系统上的文件的创建者相关联的共享者设备、通过安全且经认证的通信信道与共享者设备通信的共享对象设备、与共享者设备和共享对象设备通信的分布式存储系统的数据处理硬件以及与数据处理硬件通信的存储器硬件。共享对象设备被配置为从共享对存储在分布式存储系统上的文件的写入访问权的共享者设备接收共享写入访问权许可,基于文件的写入密钥、标识文件的文件标识符、标识共享对象的共享对象标识符以及与共享对象相关联的共享对象密码密钥来确定密码写入访问权值,并基于文件的写入密钥、文件标识符和共享对象密码密钥确定密码读取访问权值。共享写入访问权许可包括文件的读取密钥、文件的写入密钥和文件的加密元数据。密码写入访问权值向共享对象授权对文件的写入访问权。存储器硬件存储指令,所述指令在数据处理硬件上执行时使数据处理硬件执行操作。操作包括:从所述共享对象设备接收共享对象设备的包括密码写入访问权值的写入访问权令牌;并且将写入访问权令牌存储在用户写入集中。用户写入集包括与具有对文件的写入访问权的共享对象设备相关联的共享对象标识符的列表。操作也包括:从共享对象设备接收共享对象设备的密码读取访问权值和文件的加密元数据的读取访问权令牌,并且将读取访问权令牌存储在用户读取集中。用户读取集包括与具有对文件的读取访问权的共享对象设备相关联的共享对象标识符的列表。
本公开的实现可以包括以下可选特征中的一个或多个。在一些实现中,操作包括:从共享者设备接收撤销写入访问权命令,以从共享对象设备撤销对存储在分布式存储系统上的文件的写入访问权。响应于接收到撤销写入访问权命令,操作包括:从用户写入集中去除共享对象设备的写入访问权令牌。操作也可以包括:从共享者设备接收撤销读取访问权命令,以从共享对象设备撤销对存储在分布式存储系统上的文件的读取访问权。响应于接收到撤销读取访问权命令,操作也可以包括:从用户写入集中去除共享对象设备的写入访问权令牌;以及从用户读取集中去除共享对象设备的读取访问权令牌。
在附图和以下描述中阐述了本公开的一个或多个实现的细节。根据说明书和附图以及根据权利要求书,其他方面、特征和优点将是显而易见的。
附图说明
图1是用于共享对存储在分布式存储系统上的一个或多个文件的读取和/或写入访问权的示例系统的示意图。
图2A是存储在用户读取集中的示例读取访问权令牌的示意图。
图2B是存储在用户写入集中的示例写入访问权令牌的示意图。
图3A是共享者向共享对象共享对存储在分布式存储系统上的文件的读取访问权的示例系统的示意图。
图3B是共享从共享对象撤销对存储在分布式存储系统上的文件的读取访问权的示例系统的示意图。
图4A是共享者向共享对象共享对存储在分布式存储系统上的文件的写入访问权的示例系统的示意图。
图4B是共享从共享对象撤销对存储在分布式存储系统上的文件的写入访问权的示例系统的示意图。
图5A和图5B是用户向可搜索对称加密管理器发送对存储在数据存储器中的加密文件中的关键字的搜索查询的示意图。
图5C提供了一种用于用户在用户对其具有读取访问权的文件集上执行对关键字的搜索的示例性算法。
图6A和图6B是用户向可搜索对称加密管理器发送编辑操作请求以对存储在数据存储器中的加密文件中的字处理编辑操作的示意图。
图6C提供了一种用于用户对用户对其具有写入访问权的文件中的字执行编辑操作的示例性算法。
图7是用于共享对文件的读取访问权的示例方法的流程图。
图8是用于共享对文件的写入访问权的示例方法的流程图。
图9是示例计算设备的示意图。
在各个附图中,相同的附图标记指示相同的元件。
具体实施方式
可搜索对称加密方案被定制以允许云存储提供者提供在被上传并存储在云存储提供者处的加密项(例如,文件、电子邮件、日历事件、便笺、数据库条目等)的集合上的搜索功能。本文的实现涉及允许客户(例如,企业)在将数据上传到云服务提供者之前,使用客户方密钥在本地加密其数据并且无需给予云服务提供者对加密数据的明文访问权。即,云存储提供者针对存储在云存储提供者处的对应文件的读取访问权,针对客户授权的每个用户在用户读取集中存储密码读取访问权令牌。云存储提供者还针对存储在云存储系统处的对应文件的写入访问权,针对客户授权的每个用户在用户写入集中存储密码写入访问权令牌。密码读取/写入访问权令牌为云存储提供者提供了对应的用户在本地拥有用于访问文件的必要密钥的证据而无需用户将该密钥暴露给云存储提供者。实现还包括针对字出现在对应文件中的字和文件的每个唯一对在字集中记录密码字集令牌。此处,云存储提供者要求用户通过其在用户读取/写入集中的密码读取/写入访问权令牌来提供具有正确许可的证据以访问该字集中的任何密码字集令牌。因此,云存储提供者能够在撤销/准予读取/写入访问权时提供密码保证,而没有能力确定存储在用户读取/写入集和字集中的任何密码令牌的值。
参照图1,在一些实现中,系统100包括与可以经由网络130与远程系统140通信的一个或多个用户10、10a-n相关联的一个或多个用户设备110、110a-n。用户设备110还可通过安全且经认证的信道120相互通信,而无需向分布式系统140透露任何数据或隐私信息。远程系统140可以是具有可伸缩/弹性资源142的分布式系统(例如,云环境)。资源142包括计算资源144和/或存储资源146。在一些实现中,远程系统140包括被配置为在存储器硬件中存储一个或多个文件200、200a-n的数据存储150(例如,分布式存储系统或数据存储器)。数据存储器150存储加密文件200,加密文件200可以由具有写入访问权的用户10修改(例如添加/删除/编辑)和/或可由具有读取访问权的用户10搜索。如本文中所使用的,文件200可以指代上传到远程系统140上以存储在数据存储器150内的任何加密项,诸如但不限于电子邮件、日历事件、便笺、数据库条目等。在一些示例中,远程系统140执行可搜索对称加密(SSE)管理器160以用于管理对数据存储150中的加密文件200的访问权。
用户设备110可以是能够通过网络130与SSE管理器160和/或通过安全且经认证的信道120与彼此通信的任何计算设备。在所示的示例中,用户10a与被加密并存储在数据存储150中的一个或多个文件200的创建者/共享者相关联,并且用户10n可以与创建者/共享者10与其共享对存储在数据存储器150中的加密文件200中的任一个的写入访问权或读取访问权中的至少一个的共享对象相关联。读取访问权为共享对象10n提供对共享对象10n具有读取访问权的每个文件200的搜索功能,而写入访问权则为共享对象10n提供修改/编辑共享对象10n具有写入访问权的每个文件200的搜索结果的能力。没有对加密文件200的读取/写入访问权的用户10无法了解有关那些加密文件200的任何信息。创建者/共享者10a对共享者10a创建并存储在远程系统150的数据存储器150中的每个文件200具有读取/写入访问权。在一些示例中,创建者/共享者10a从共享对象10n撤销对文件200的先前共享的读取和/或写入访问权。
在一些实现中,数据存储器150存储每个加密文件200的文件记录集210、210a-n。每个文件200的创建者10可以生成安全的随机文件标识符d。每个文件记录集210包括用户读取集(UserRead)220、用户写入集(UserWrite)230和文件字集240。用户读取集220包括与具有(或不具有)对文件记录集210的对应文件200的读取访问权的用户10相关联的用户标识符u1、u2、...、un的集合。例如,用户读取集220的位置(u1,d)212和位置(un,d)212各自包括对应的读取访问权令牌TR1、TRn222,该读取访问权令牌TR1、TRn 222向与用户标识符u1、un相关联的用户10授权对与文件标识符d相关联的文件200的读取访问权。相反,由于用户读取集220的位置(u2,d)212不包括对应的读取访问权令牌TR 222,所以与用户标识符u2相关联的用户10不具有对文件200的读取访问权。具体地,与用户标识符u2相关联的用户10不拥有SSE管理器160要求的用于授权对文件200的读取访问权的密码原语。
用户写入集230包括与具有(或不具有)对文件记录集210的对应文件200的写入访问权的用户10相关联的用户标识符u1、u2、...的集合。例如,用户写入集230的位置(u1,d)212包括对应的写入访问权令牌TW1 232,该写入访问权令牌TW1 232向与用户标识符u1相关联的用户10授权对与文件标识符d相关联的文件200的写入访问权。相反,用户写入集230的位置(u2,d)212和位置(un,d)212不包括对应的写入访问权令牌TW 232,因此,与用户标识符u2、un相关联的用户10不具有对于文件200的写入访问权。具体而言,与用户标识符u2、un相关联的用户10不拥有SSE管理器160要求的用于授权对文件的写入访问权的加密原语。因此,与用户标识符un相关联的用户10具有对文件200的读取访问权(即,用户读取集220的位置(un,d)212包括对应的读取访问权令牌TRn 222),但是没有对文件200的写入访问权(即,用户写入集230的位置(un,d)212不包括对应的写入访问权令牌TW 232)。
字集240包括字w1、w2、w3、...、wn的集合,每个字出现在与文件标识符d相关联的对应文件200中。对于在其中对应字w出现在与文件标识符d相关联的文件200中的每个唯一字-文件对(w1,d)、(w2,d)、(w3,d)、...、(wn,d),字集240可以记录字w的对应的密码字令牌zd(图5A)和对应的加密字元数据mw 556(图5B)。加密字元数据mw包括与字w相关联的文件d的字元数据Md(w)的加密。字元数据Md(w)可以包括与文件200中的字w相关联的排名、扩展名、摘要等。用户10必须具有正确的许可来访问字集240中的密码字令牌中的任一个。例如,用户10可以使用对应的读取访问令牌TR来确定密码字令牌的值。
继续参考图1,与创建者/共享者10a相关联的用户设备110a可以生成与共享者10a相关联的密码用户密钥Ku 112、文件d 200的密码读取密钥
Figure BDA0002260555390000121
202、文件d 200的密码写入密钥
Figure BDA0002260555390000122
204和与文件d 200相关联的元数据Md 206。Md 206可以包括文件200的标题和/或与文件相关联的其他信息。用户设备110a可以通过使用读取密钥
Figure BDA0002260555390000123
202对Md 206进行加密来计算与文件d 200相关联的加密元数据md 256。在一些示例中,用户设备110a本地生成与创建者/共享者10a相关联的读取访问权令牌TR 222a并向SSE管理器160发送读取访问权令牌TR 222a以输入到用户读取集220。类似地,用户设备110a可以在本地生成与创建者/共享者10a相关联的写入访问权令牌TW 232a,并将写入访问权令牌TW 232a发送到SSE管理器160以输入到用户写入集230。
创建者/共享者10a可以获得对密钥Ku 112、
Figure BDA0002260555390000124
202、
Figure BDA0002260555390000125
204的完全控制并相对于远程系统140将密钥保持私有/秘密。例如,创建者/共享者10a可以向SSE管理器160提供读取访问权令牌222a以证明共享者10a本地拥有用户密钥Ku 112和用于对数据存储器150中存储的加密文件200的读取访问权的读取密钥
Figure BDA0002260555390000132
202。类似地,创建者/共享者10a可以向SSE管理器160提供写入访问权令牌232a以证明共享者10a本地拥有用户密钥Ku 112和用于对存储在数据存储区150中的加密文件200的写入访问权的写入密钥
Figure BDA0002260555390000133
204。因此,创建者/共享者10a在访问存储在数据存储器150中的加密文件200时不必向数据存储器150的服务提供者提供敏感密钥Ku 112、
Figure BDA0002260555390000134
202、
Figure BDA0002260555390000135
204中的任一个。
参考图2A,读取访问权令牌222包括用户读取集220中的对应位置(u,d)212、密码读取访问权值224和加密的元数据md 256。在一些示例中,拥有写入密钥
Figure BDA0002260555390000136
204和加密的元数据md 256的用户10可以在本地生成读取访问权令牌222,并将读取访问权令牌222发送到SSE管理器160,以在对应位置(u,d)212处输入到用户读取集220。在其他示例中,当用户10对应于仅拥有读取密钥
Figure BDA0002260555390000137
202的共享对象时,SSE管理器160(例如,数据处理硬件)可以为用户10生成读取访问权令牌222,并在对应的位置(u,d)212处将读取访问权令牌222插入用户读取集220内。在所示的示例中,密码读取访问权值224包括写入密钥
Figure BDA0002260555390000138
204与文件标识符d的伪随机函数F除以用户密钥Ku 112和文件标识符d的伪随机函数F的商。例如,可以如下计算密码读取访问权值224。
Figure BDA0002260555390000131
参考图2B,写入访问权令牌232包括用户写入集230中的对应位置(u,d)212和密码写入访问权值234。与拥有写入密钥
Figure BDA0002260555390000139
204的用户10相关联的用户设备110可以在本地为用户10生成写入访问权令牌232,并将写入访问权令牌232发送到SSE管理器160,以在对应位置(u,d)212处输入到用户写入集230。在所示的示例中,密码写入访问权值234包括写入密钥
Figure BDA00022605553900001310
204与文件标识符d的伪随机函数F除以写入密钥
Figure BDA0002260555390000142
204和用户标识符u的伪随机函数F乘以用户密钥Ku 112和用户标识符u的伪随机函数F的商。例如,可以如下计算密码写入访问权值234。
Figure BDA0002260555390000141
在一些实现中,创建者/共享者10a通过经由网络130向SSE管理器160发送共享读取访问权命令250来向至少一个共享对象10n共享对存储在数据存储器150(例如,存储器硬件)中的文件200的读取访问权。共享读取访问权命令250包括加密的元数据md 256和基于读取密钥
Figure BDA0002260555390000143
202、写入密钥
Figure BDA0002260555390000144
204、文件标识符d和标识共享对象10n的用户/共享对象标识符un的第一密码共享值S1 252。创建者/共享者10a还向至少一个共享对象10n提供文件200的读取密钥
Figure BDA0002260555390000145
202。在所示的示例中,创建者/共享者10a通过经由安全且经认证的通信链路120发送读取密钥
Figure BDA0002260555390000146
202来提供读取密钥
Figure BDA0002260555390000147
202。因此,读取密钥
Figure BDA0002260555390000148
202相对于远程系统140保持私有并且仅被提供给具有读取访问权的用户10。
为了获得对文件200的读取访问权,与共享对象10n相关联的用户设备110n向SSE管理器160发送读取访问权请求260。读取访问权请求260包括共享对象标识符un、文件标识符d和基于读取密钥
Figure BDA0002260555390000149
202和与共享对象10n相关联的用户密钥Kun 112的第二密码共享值S2 262。在一些实现中,响应于从共享者10a接收到读取密钥
Figure BDA00022605553900001410
202,与共享对象10n相关联的用户设备110计算第二密码共享值S2 262。SSE管理器160使用在共享读取访问权命令250中从共享者10n接收到的第一密码共享值S1 252和从共享对象10a接收到的第二密码共享值S2 262,为共享对象10n计算对应的读取访问权令牌TRn 222。之后,SSE管理器160将共享对象10n的读取访问权令牌TRn 222存储/记录在用户读取集220中在位置212(un,d)处。
在一些实现中,共享者10a通过在安全且经认证的通信链路120上向共享对象10n发送共享的写入访问权许可402(图4A)来向至少一个共享对象10n共享对数据存储器150中的文件200的写入访问权。在所示的示例中,共享的写入访问权许可包括读取密钥
Figure BDA0002260555390000152
202、写入密钥
Figure BDA0002260555390000153
204和加密的元数据md 256。响应于接收到共享的写入访问权许可402,共享对象10n计算共享对象10n的对应的写入访问权令牌TW 232,并将写入访问权令牌TW 232发送到SSE管理器160,以在对应位置212(un,d)处输入到用户写入集230。由于写入访问权意味着读取访问权,因此共享对象10n还为共享对象10n计算对应的读取访问权令牌TR 222,并将读取访问权令牌TR 222发送到SSE管理器160,以在对应位置212(un,d)处输入到用户读取集220。
图3A和图3B示出了示例SSE管理器160向/从共享对象10b授权/撤销对文件200的读取访问权的示意图300a、300b。参考图3A,SSE管理器160从向共享对象10b共享对数据存储器150(例如,存储器硬件)中存储的文件200的读取访问权的共享者10a接收共享读取访问权命令250。共享访问权读取命令250包括与文件200相关联的第一密码共享值S1 252和加密元数据md 256。在所示的示例中,第一密码共享值S1 252包括写入密钥
Figure BDA0002260555390000154
204和文件标识符d的伪随机函数F除以读取密钥
Figure BDA0002260555390000155
202和标识共享对象10b的用户/共享对象标识符u2的伪随机函数F的商。例如,可以如下计算第一密码共享值S1 252。
Figure BDA0002260555390000151
响应于从共享者10a接收到读取密钥
Figure BDA0002260555390000156
202,共享对象10b基于读取密钥
Figure BDA0002260555390000157
202和与共享对象10b相关联的用户密钥Ku2 112来计算第二密码共享值S2 262。在所示的示例中,第二密码共享值S2 262包括读取密钥
Figure BDA0002260555390000158
202与标识共享对象10b的用户标识符u2的伪随机函数F除以用户密钥Ku2 112和标识文件200的文件标识符d的伪随机函数F的商。例如,可以如下计算第二密码共享值S2 262。
Figure BDA0002260555390000161
SSE管理器160还从共享对象10b接收包括第二密码共享值S2 262以及与用户标识符u2和文件标识符d相关联的位置212的读取访问权请求260。在一些实现中,SSE管理器160基于从共享者10a或共享对象10b中的对应一个接收的第一和第二密码共享值S1、S2 252、262来确定共享对象10b的密码读取访问权值224。密码读取访问权值224向共享对象10b授权对文件200的读取访问权。在一些示例中,SSE管理器160通过将第一密码共享值S1 252和第二密码共享值S2 262相乘来确定共享对象10b的密码读取访问权值224。此后,SSE管理器160将共享对象10b的读取访问权令牌TR2 222存储/记录在用户读取集220中在位置212(u2,d)处。读取访问权令牌TR2 222包括所计算的密码读取访问权值224和加密的元数据md 256。
参考图3B,SSE管理器160从共享者10a接收撤销共享对象10b对数据存储器150中存储的文件200的读取访问权的撤销读取访问权命令350。在所示的示例中,共享者10a对应于文件的创建者并且是唯一被允许撤销具有读取访问权许可的任何共享对象10的读取访问权(以及写入访问权)的个人。在其他配置中,共享者10a可以对应于具有向/从共享对象10共享/撤销对文件200的读取访问权的能力的文件200的作者。撤销读取访问权命令350可以标识位置212(u2,d),位置212(u2,d)包括用户读取集220中的要从对应共享对象10b去除的读取访问权条目(例如,读取访问权令牌222)。响应于接收到撤销读取访问权命令350,SSE管理器160可以向数据记录集210发送撤销读取访问权输入352(例如,“删除条目”),以从用户读取集220中去除读取访问权令牌TR2 222。因此,在将令牌TR2 222从用户读取集220中的位置212(u2,d)去除的情况下,共享对象10b不再具有对文件200的读取访问权许可。
在一些示例中,SSE管理器160还确定在用户写入集230中的位置212(u2,d)处针对共享对象10b是否存在对应的写入访问权令牌TW2232,并且当存在写入访问权令牌TW2 232时,SSE管理器160还从用户写入集230去除写入访问权令牌TW2 232。例如,SSE管理器160可以将撤销写入访问权输入452(图4B)发送到数据记录集210以从用户写入集230去除写入访问权令牌TR2 222。
图4A和图4B示出了示例SSE管理器160向/从共享对象10b授权/撤回对于文件200的写入访问权的示意图400a、400b。参考图4A,共享对象10b(即,经由用户设备110b(图1))从向共享对象10b共享对数据存储器160中存储的文件200的写入访问权的共享者10a接收写入访问权许可402。共享对象10b可以通过安全且经认证的通信链路120接收写入访问权许可402。共享的写入访问权许可402包括读取密钥
Figure BDA0002260555390000171
202、写入密钥
Figure BDA0002260555390000172
204和加密的元数据md 256。
使用写入访问权许可402,因为具有写入访问权许可还包括读取访问权许可,所以共享对象10b计算共享对象10b的读取访问权令牌TR2 222和共享对象10b的写入访问权令牌TW2 232两者。例如,共享对象10b可以使用等式1来计算密码读取访问权值224,并且将包括密码读取访问权值224和加密的元数据md 256的读取访问权令牌TR2 222发送到SSE管理器160。类似地,共享对象10b可以使用等式2计算密码写入访问权值234,并将包括密码写入访问权值234的写入访问权令牌TW2 232发送给SSE管理器160。共享对象10b可以分别或同时向SSE管理器发送令牌222、232。
在所示的示例中,SSE管理器160响应于从共享对象10b接收到写入访问权令牌TW2232,将共享对象10b的写入访问权令牌TW2 232存储/记录在用户写入集230中在位置212(u2,d)处。因此,在位置212(u2,d)处的用户写入集230中的写入访问权令牌TW2 232的条目对共享对象10b授权写入访问权,以编辑(例如,删除/重写/添加)存储在数据存储器160中的文件200而无需向远程系统140提供任何私钥。
SSE管理器160还响应于从共享对象10b接收到读取访问权令牌TR2 222而将共享对象10b的读取访问权令牌TR2 222存储/记录在用户读取集220中在位置212(u2,d)处。因此,在用户读取集220中在位置212(u2,d)处的读取访问权令牌TR2 222的条目向共享对象10b授权对存储在数据存储器160中的文件200的读取访问权而无需向远程系统140提供任何私钥。
参考图4B,SSE管理器160从共享者10a接收撤销写入访问权命令450,该共享者10a从共享对象10b撤销对存储在数据存储器150中的文件200的写入访问权。在所示的示例中,共享者10a对应于文件200的创建者,并且是唯一被允许从具有写入访问权许可的任何共享对象10撤销写入访问权(以及读取访问权)的个人。在其他配置中,共享者10a可以对应于具有向/从共享对象10共享/撤销对文件200的写入访问权的能力的文件200的作者。撤销写入访问权命令450可以标识位置212(u2,d),位置212(u2,d)包括用户写入集230中的要从对应共享对象10b撤销的写入访问权条目(例如,写入访问权令牌232)。响应于接收到撤销写入访问权命令450,SSE管理器160可以向数据记录集210发送撤销写入访问权输入452(例如,“删除条目”),以从用户写入集230中去除写入访问权令牌TW2 232。因此,在将令牌TW2 232从在用户写入集230的位置212(u2,d)处去除的情况下,共享对象10b不再具有对文件200的写入访问权许可。在图4B的示例中,除非SSE管理器160从共享者10b接收到撤销读取访问权命令350(图3B),否则读取访问权令牌TR2 222将作为有效条目保留在用户读取集220中在位置212(u2,d)处。文件所有者10可以担任用于准予/撤销访问权的SSE管理器160的角色。
图5A和图5B示出了示例用户10经由用户设备110向SSE管理器160发送对存储在数据存储器150中的加密文件200中的关键字w的搜索查询550的示意图500a、500b。在某些情况下,SSE管理器160可能对应于文件的所有者。在所示的示例中,用户10具有对加密文件200的读取访问权并且可以对应于文件200的创建者10a或具有对文件200的共享读取访问权的共享对象10a。在所示的示例中,搜索查询550包括用户标识符u、文件标识符d和基于读取密钥
Figure BDA0002260555390000192
202和与用户10相关联的用户密钥Ku 112的密码搜索值xd 552。在一些实现中,密码搜索值xd 552包括生成器g的读取密钥
Figure BDA0002260555390000193
202和关键字w的伪随机函数F乘以用户密钥Ku112和标识文件200的文件标识符d的伪随机函数F次幂。例如,密码搜索值xd 552可以如下计算。
Figure BDA0002260555390000191
在一些示例中,生成器g对应于Diffie-Hellman较硬的组。密码搜索值xd 552允许SSE管理器160确定用户10可以访问密码读取密钥
Figure BDA0002260555390000194
202和密码用户密钥Ku 112,而无需用户10向SSE管理器160提供密钥112、202中的任何一个。
在一些实现中,用户10发送在用户10具有读取访问权的文件集Ur(u)200上针对关键字w的搜索查询550。因此,用户10可以使用等式(5)针对文件集Ur(u)200中的每个对应文件200计算xd、xd1、...、xdn,并且将xd、xd1、...、xdn的每个值和每个对应文件标识符d、d1、....、dn包括在发送给SSE管理器160的搜索查询550中。与用户10相关联的用户设备110可以跟踪用户10具有读取访问权许可的每个文件200,并将那些文件200包含在文件集Ur(u)200中。
响应于从用户10接收到搜索查询550,SSE管理器160查询560文件记录集210以在位置212(u,d)处从文件记录集210的用户读取集220中检索用户10的读取访问权令牌TR222。当从用户10接收到的搜索查询550与文件集Ur(u)200相关联时,SSE管理器160可以查询560每个文件记录集210、210a-n。SSE管理器160从用户读取集220检索的读取访问权令牌TR 222包括对应的密码读取访问权值yd 224和加密的元数据md 256。
参考图5B,在一些实现中,SSE管理器160(例如,数据处理硬件)基于在搜索查询550中从用户10接收到的密码搜索值xd 552和从用户读取集220中检索的读取访问权令牌TR222的密码读取访问权值yd224来计算密码字集令牌zd。例如,SSE管理器160可以如下计算密码字集令牌zd
Figure BDA0002260555390000201
此后,SSE管理器160确定所计算的密码字集令牌zd是否与记录/存储在对应文件200的字集240中的至少一个对应的密码字集令牌zd匹配。此处,SSE管理器160正在确定最近所计算的令牌zd是否出现在与对应文件200相关联的字集240中。在所示示例中,SSE管理器160使用密码字集令牌zd查询570字集240。当查询570识别出对应的密码字集令牌zd时,SSE管理器160在字集240中在位置(w,d)处检索与匹配令牌zd相关联的词w的对应的加密字元数据mw 556。
在一些实现中,SSE管理器160返回结果集580,该结果集580包括标识对应文件200的文件标识符d、文件200的加密元数据md 256和加密字元数据mw 556。SSE管理器160可以返回用户10具有读取访问权的每个文件的对应结果集580。使用读取密钥
Figure BDA0002260555390000202
202,用户10(即,经由用户设备110)可以解密加密的元数据md 256以提供元数据Md,并且解密加密的字元数据以提供与字w相关联的文件d的字元数据Md(w)。在一些示例中,用户设备110使用元数据Md和与字w相关联的文件d的字元数据Md(w),以将搜索结果排序并显示在用户设备110的显示器上。例如,字元数据Md(w)可以包括可用于对用户设备110的显示器上的搜索结果进行排序的摘要、排名、扩展名等。图5C提供了用户10在用户具有读取访问权的文件集Ur(u)200上执行对关键字w的搜索的示例性算法。
图6A和图6B示出了示例用户10经由用户设备110向SSE管理器160发送编辑操作请求650以编辑存储在数据存储器150中的加密文件200中的字w的示意图600a,600b。在某些情况下,SSE管理器160可能对应于文件的所有者。在所示的示例中,用户10具有对加密文件200的写入访问权许可,并且可以对应于文件200的创建者10a或具有对文件200的共享写入访问权的共享对象10n。编辑操作请求650请求的编辑操作654可以包括对文件200中的关键字w的删除、重写或添加操作中的一个。在所示示例中,用户10针对文件d创建与标识要编辑的字的字标识符w相关联的字元数据Md(w)。字元数据Md(w)可以包括与标识文件200中的要编辑的字的字标识符w相关联的排名、扩展名、摘录等。用户可以使用读取密钥
Figure BDA0002260555390000212
202来加密字元数据Md(w)以提供字元数据mw 556。在一些实现中,用户10经由用户设备110基于读取密钥
Figure BDA0002260555390000213
202、写入密钥
Figure BDA0002260555390000214
204和与用户10相关联的用户密钥Ku 112来计算密码编辑值x652。
在所示的示例中,编辑操作请求650包括用户标识符u、文件标识符d、编辑操作654、加密字元数据mw 556和基于读取密钥
Figure BDA0002260555390000215
202、写入密钥
Figure BDA0002260555390000216
204、用户密钥Ku 112、字标识符w和标识用户10的用户标识符u的密码编辑值x 652。在一些实现中,密码编辑值x 652包括生成器g的读取密钥
Figure BDA0002260555390000217
202和关键字w的伪随机函数F乘以用户密钥Ku 112和用户标识符u的伪随机函数F乘以写入密钥
Figure BDA0002260555390000218
204和用户标识符u的伪随机函数F次幂。例如,可以如下计算密码编辑值x 652。
Figure BDA0002260555390000211
在一些示例中,生成器g对应于Diffie-Hellman较硬的组。密码编辑值x 652允许SSE管理器160确定用户10可以访问密码读取密钥
Figure BDA0002260555390000219
202、密码写入密钥
Figure BDA00022605553900002110
204和密码用户密钥Ku 112而无需用户10向SSE管理器160提供密钥112、202、204中的任何一个。
响应于从用户10接收到编辑操作请求650,SSE管理器160查询660文件记录集210,以在位置212(u,d)处从用户写入集230中检索用户10的写入访问权令牌Tw 232。SSE管理器160从用户写入集230中检索的写入访问令牌TW 222包括对应的密码写入访问权值y 234。
参考图6B,在一些实现中,SSE管理器160(例如,数据处理硬件)基于在编辑操作请求650中从用户10接收到的密码编辑值x 652和从用户写入集230检索的写入访问权令牌TW232的密码写入访问权值y234来计算密码字集令牌z。例如,SSE管理器160可以如下计算密码字集令牌z。
z=xy  (7)
此后,SSE管理器160对记录/存储在对应文件200的字集240中的对应密码字集令牌z处理670由编辑操作请求650请求的编辑操作654。例如,当编辑操作654包括删除操作时,SSE管理器160可以通过从字集240中删除/去除对应的密码字集令牌z来处理删除操作。在一些示例中,当编辑操作654包括重写操作时,SSE管理器160通过用所计算的密码字集令牌z和加密字元数据md 556替换字集240中的对应密码字集令牌z来处理670重写操作。在又一示例中,当编辑操作654包括添加操作时(例如,当字集240中不存在z时),SSE管理器160通过将所计算的密码字集令牌z和加密的字元数据mw 556在位置(w,d)处添加到字集240中在来处理添加操作。图6C提供了用户10在用户具有读取访问权的文件集Ur(u)200上执行对于关键字w的搜索的示例性算法。
图7是共享者10a向共享对象10b共享对存储在数据存储器150中的文件200的读取访问权的示例方法700的流程图。当SSE管理器160(例如,数据处理硬件)接收到来自共享者10a的共享读取访问权命令250时,该流程图在操作702处开始。共享读取访问权命令250包括第一密码共享值S1 252和与文件200相关联的加密元数据md 256。第一密码共享值S1 252可以基于文件的写入密钥
Figure BDA0002260555390000221
204、读取密钥
Figure BDA0002260555390000222
202、标识文件的文件标识符d和标识共享对象10b的共享对象标识符u2。例如,可以使用等式(3)来计算第一密码共享值S1 252。
在操作704,方法700包括SSE管理器160从共享对象10b接收共享读取访问权请求260,该共享读取访问请求260包括第二密码共享值S2 262以及与共享对象标识符u2和文件标识符d相关联的位置212。在一些示例中,共享对象10b基于与读取密钥
Figure BDA0002260555390000231
202和共享对象10b相关联的用户密钥Ku2 112来计算第二密码共享值S2 262。例如,可以使用等式(4)来计算第二密码共享值S2 262。
在操作706,方法700包括SSE管理器160基于第一密码共享值Sl 252和第二密码共享值S2 262确定共享对象10b的密码读取访问权值224。例如,SSE管理器160可以将在来自共享者10a的共享读取访问命令250中接收的第一密码共享值S1 252与在来自共享对象10b的共享读取访问请求260中接收的第二密码共享值S2 262相乘,以确定共享对象10b的密码读取访问权值224。SSE管理器160可以使用密码读取访问值224来向共享对象10b授权对存储在存储器硬件中的文件200的读取访问权。
在操作708,该方法包括SSE管理器160在存储器硬件的用户读取集220中存储包括密码读取访问权值224和加密元数据md 256的读取访问权令牌222。用户读取集220包括与具有对文件200的读取访问权的共享对象相关联的共享对象标识符u1–un的列表。
图8是共享者10a向共享对象10b共享对存储在分布式存储系统150上的文件200的写入访问权的示例方法800的流程图。当与共享对象10b相关联的共享对象设备110接收来自向共享对象10b共享对存储在分布式存储系统上的文件的写入访问权的共享者10b的共享写入访问权许可402时,该流程图在操作802处开始。写入访问权许可402包括文件200的读取密钥
Figure BDA0002260555390000232
202、文件200的写入密钥
Figure BDA0002260555390000233
204以及文件200的加密的元数据md 256。共享对象设备110可以通过安全且经认证的通信信道从共享者10a接收写入访问权许可402。
在操作804,方法800包括共享对象设备110基于写入密钥
Figure BDA0002260555390000241
204、标识文件200的文件标识符d、标识共享对象10b的共享对象标识符u和与共享对象10b相关联的共享对象密码密钥KU 112来确定密码写入访问权值234。可以使用等式(2)来计算密码写入访问权值234。密码写入访问权值234向共享对象10b授权对文件200的的写入访问权。
在操作804,方法800包括将包括密码写入访问权值234的共享对象10b的写入访问权令牌232发送到分布式存储系统150。响应于接收到写入访问权令牌232,分布式存储系统150被配置为将写入访问权令牌存储在用户写入集230中。用户写入集230包括与具有对文件200的写入访问权的共享对象10相关联的共享对象标识符的列表。
由于写入访问权意味着读取访问权,方法800可以进一步包括共享设备110基于写入密钥
Figure BDA0002260555390000242
204、文件标识符d和共享对象密码密钥KU 112来确定密码读取访问权值224。可以使用等式(1)来计算密码读取访问权值224。密码读取访问权值向共享对象10b授权对文件200的读取访问权。方法800可以进一步包括共享对象设备110将共享对象10b的读取访问权令牌222发送到分布式存储系统150。读取访问权令牌222可以包括密码读取访问权值224和加密元数据md 256。
软件应用(即,软件资源)可以指使得计算设备执行任务的计算机软件。在一些示例中,软件应用可以称为“应用”、“app”或“程序”。示例应用包括但不限于系统诊断应用、系统管理应用、系统维护应用、文字处理应用、电子表格应用、消息传递应用、媒体流应用、社交网络应用和游戏应用。
非暂时性存储器可以是用于临时或永久地存储程序(例如,指令序列)或数据(例如,程序状态信息)以供计算设备使用的物理设备。非暂时性存储器可以是易失性和/或非易失性可寻址半导体存储器。非易失性存储器的示例包括但不限于闪存和只读存储器(ROM)/可编程只读存储器(PROM)/可擦除可编程只读存储器(EPROM)/电子可擦除可编程只读存储器存储器(EEPROM)(例如,通常用于固件,诸如引导程序)。易失性存储器的示例包括但不限于随机存取存储器(RAM)、动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、相变存储器(PCM)以及磁盘或磁带。
图9是可用于实现本文件中描述的系统和方法的示例计算设备900的示意图。计算设备900旨在代表各种形式的数字计算机,诸如膝上型计算机、台式计算机、工作站、个人数字助理、服务器、刀片服务器、大型机和其他适当的计算机。此处所示的组件、它们的连接和关系以及它们的功能仅是示例性的,并不意味着限制本文件中描述和/或要求保护的发明的实现。
计算设备900包括处理器910、存储器920、存储设备930、连接到存储器920和高速扩展端口950的高速接口/控制器940以及连接到低速总线970和存储设备930的低速接口/控制器960。组件910、920、930、940、950和960中的每个均使用各种总线互连,并且可以安装在通用主板上适当地以其他方式安装。处理器910可以处理用于在计算设备900内执行的指令,包括存储在存储器920中或存储在存储设备930上的指令,以在诸如耦合到高速接口940的显示器980的外部输入/输出设备上显示图形用户界面(GUI)的图形信息。在其他实现中,可以适当地使用多个处理器和/或多条总线以及多个存储器和存储器类型。而且,可以连接多个计算设备900,每个设备提供必要的操作的部分(例如,作为服务器阵列、一组刀片服务器或多处理器系统)。
存储器920在计算设备900内非暂时地存储信息。存储器920可以是计算机可读介质、一个或多个易失性存储单元或一个或多个非易失性存储单元。非暂时性存储器920可以是用于临时或永久地存储程序(例如,指令序列)或数据(例如,程序状态信息)以供计算设备900使用的物理设备。非易失性存储器的示例包括但不限于闪存和只读存储器(ROM)/可编程只读存储器(PROM)/可擦可编程只读存储器(EPROM)/电子可擦可编程只读存储器(EEPROM)(例如,通常用于固件,例如引导程序)。易失性存储器的示例包括但不限于随机存取存储器(RAM)、动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、相变存储器(PCM)以及磁盘或磁带。
存储设备930能够为计算设备900提供大容量存储。在一些实现中,存储设备930是计算机可读介质。在各种不同的实现中,存储设备930可以是软盘设备、硬盘设备、光盘设备或磁带设备、闪存或其他类似的固态存储设备或包括在存储区域网络或其他配置中的设备的设备的阵列。在另外的实现中,计算机程序产品有形地体现在信息载体中。该计算机程序产品包含指令,该指令在执行时执行诸如上述方法的一种或多种方法。信息载体是计算机或机器可读介质,诸如存储器920、存储设备930或处理器910上的存储器。
高速控制器940管理计算设备900的带宽密集型操作,而低速控制器960管理较低带宽密集型操作。这种职责分配仅是示例性的。在一些实现中,高速控制器940(例如,通过图形处理器或加速器)耦合到存储器920、显示器980以及高速扩展端口950,高速扩展端口950可以接受各种扩展卡(未示出)。在一些实现中,低速控制器960耦合到存储设备930和低速扩展端口970。可以包括各种通信端口(例如,USB、蓝牙、以太网、无线以太网)的低速扩展端口970可以例如通过网络适配器耦合到一个或多个输入/输出设备,诸如键盘、定点设备、扫描仪或诸如交换机或路由器的网络设备。
如图所示,可以以多种不同形式来实现计算设备900。例如,它可以被实现为标准服务器900a或在一组这样的服务器900a中多次实现为膝上型计算机900b或被实现为机架服务器系统900c的一部分。在一些实现中,计算设备900实施SSE管理器160。
这里描述的系统和技术的各种实现可以在数字电子和/或光学电路、集成电路、专门设计的ASIC(专用集成电路)、计算机硬件、固件、软件和/或其组合中实现。这些各种实现可以包括在一个或多个计算机程序中的实现,该程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用的或通用的、耦合到存储系统、至少一个输入设备和至少一个输出设备以从其接收数据和指令并向其传输数据和指令。
这些计算机程序(也称为程序、软件、软件应用或代码)包括用于可编程处理器的机器指令,并且可以以高级过程和/或面向对象的编程语言和/或以汇编/机器语言来实现。如本文所使用的,术语“机器可读介质”和“计算机可读介质”是指用于向可编程处理器提供机器指令和/或数据的任何计算机程序产品、非暂时性计算机可读介质、装置和/或设备(例如,磁盘、光盘、存储器、可编程逻辑设备(PLD),包括接收机器指令作为机器可读信号的机器可读介质。术语“机器可读信号”是指用于向可编程处理器提供机器指令和/或数据的任何信号。
本说明书中描述的主题和功能操作的实现可以实现在数字电子电路中或在包括本说明书中公开的结构及其结构等同物的计算机软件、固件或硬件或它们中的一个或多个的组合中。此外,本说明书中描述的主题可以实现为一种或多种计算机程序产品,即,编码在计算机可读介质上的计算机程序指令的一个或多个模块,用于由数据处理装置执行或控制数据处理装置的操作。所述计算机可读介质可以是机器可读存储设备、机器可读存储基板、存储设备、影响机器可读传播信号的物质组成或它们中的一个或多个的组合。术语“数据处理设备”、“计算设备”和“计算处理器”涵盖用于处理数据的所有装置、设备和机器,例如包括可编程处理器、计算机或多个处理器或计算机。除了硬件之外,该装置还可以包括为所讨论的计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统或它们中的一个或多个的组合的代码。传播的信号是人工产生的信号,例如机器生成的电、光或电磁信号,其被生成以对信息进行编码以传输到合适的接收器装置。
计算机程序(也称为应用、程序、软件、软件应用、脚本或代码)可以用包括编译或解释语言的任何形式的编程语言编写,并且它可以以任何形式进行部署,包括作为独立程序或作为模块、组件、子例程或其他适合在计算环境中使用的单元。计算机程序不一定与文件系统中的文件相对应。程序可以存储在保存其他程序或数据的文件的一部分(例如,在标记语言文件中存储的一个或多个脚本)中、在专用于所讨论程序的单个文件中或在多个协调文件(例如,存储一个或多个模块、子程序或代码的部分的文件)中。可以部署计算机程序以在一个计算机或位于一个站点上或分布在多个站点上并通过通信网络互连的多个计算机上执行。
本说明书中描述的过程和逻辑流程可以由执行一个或多个计算机程序的一个或多个可编程处理器来执行以通过对输入数据进行操作并生成输出来执行功能。处理和逻辑流程也可以由专用逻辑电路执行并且装置也可以实现为专用逻辑电路,该专用逻辑电路例如是FPGA(现场可编程门阵列)或ASIC(专用集成电路)。
例如,适合于执行计算机程序的处理器包括例如通用和专用微处理器以及任何种类的数字计算机的任何一个或多个处理器。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于执行指令的处理器和用于存储指令和数据的一个或多个存储器设备。通常,计算机还将包括用于存储数据的一个或多个大容量存储设备或者可操作地耦合到一个或多个大容量存储设备以从其接收数据或向其传送数据,该一个或多个大容量存储设备例如是磁盘、磁光盘或光盘。然而,计算机不需要具有这样的设备。此外,计算机可以嵌入在另一设备中,例如移动电话、个人数字助理(PDA)、移动音频播放器、全球定位系统(GPS)接收器,这里仅举几个例子。适合于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,例如包括:半导体存储器设备,例如EPROM、EEPROM和闪存设备;磁盘,例如内部硬盘或可移动盘;磁光盘;和CD ROM和DVD-ROM盘。处理器和存储器可以由专用逻辑电路补充或并入专用逻辑电路中。
为了提供与用户的交互,本公开的一个或多个方面可以在计算机上实现,该计算机具有用于向用户显示信息的显示设备并且可选地具有用户可以通过其向计算机提供输入的键盘和指示设备,显示设备例如是CRT(阴极射线管)、LCD(液晶显示器)监视器或触摸屏,键盘和指示设备例如是鼠标或轨迹球。其他类型的设备也可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感觉反馈,例如视觉反馈、听觉反馈或触觉反馈;并且可以以任何形式接收来自用户的输入,包括声音、语音或触觉输入。另外,计算机可以通过向用户使用的设备发送文件以及从用户使用的设备接收文件来与用户进行交互,例如,通过响应从Web浏览器接收到的请求,将网页发送到在用户客户端设备上的Web浏览器。
本公开的一个或多个方面可以在计算系统中实现,该计算系统包括后端组件,例如,作为数据服务器;或者包括中间件组件,例如,应用服务器;或者包括前端组件,例如,具有用户可通过其与本说明书中描述的主题的实现进行交互的图形用户界面或Web浏览器的客户端计算机;或一个或多个此类后端、中间件或前端组件的任意组合。系统的组件可以通过数字数据通信的任何形式或介质互连,该数字数据通信例如是通信网络。通信网络的示例包括局域网(“LAN”)和广域网(“WAN”)、网络间(例如,互联网)和对等网络(例如,自组织对等网络)。
计算系统可以包括客户端和服务器。客户端和服务器通常彼此远离,并且通常通过通信网络进行交互。客户端和服务器的关系是通过在相应计算机上运行并彼此具有客户端-服务器关系的计算机程序产生的。在一些实现中,服务器将数据(例如,HTML页面)传输到客户端设备(例如,用于向与客户端设备交互的用户显示数据和从该用户接收用户输入的目的)。可以从服务器处的客户端设备接收在客户端设备处生成的数据(例如,用户交互的结果)。
虽然本说明书包含许多细节,但是这些细节不应被解释为对本公开的范围或所要求保护的内容的范围的限制,而应解释为特定于本公开的特定实现的特征的描述。在本说明书中在单独的实现的上下文中描述的某些特征也可以在单个实现中组合实现。相反,在单个实现的上下文中描述的各种特征也可以分别在多个实现中或以任何合适的子组合来实现。而且,虽然以上可以将特征描述为以某些组合起作用并且甚至最初如此要求保护,但是在某些情况下可以从组合中切除来自所要求保护的组合的一个或多个特征,并且要求保护的组合可以涉及子组合或子组合的变体。
类似地,虽然在附图中以特定顺序描绘了操作,但是这不应被理解为要求以所示的特定顺序或以连续的顺序执行这样的操作,或者执行所有示出的操作,以实现期望的结果。在某些情况下,多任务和并行处理可能是有利的。此外,上述实施例中的各种系统组件的分离不应理解为在所有实施例中都需要这种分离,并且应当理解,所描述的程序组件和系统通常可以一起集成在单个软件产品中或打包成多个软件产品。
已经描述了许多实现。然而,将理解的是,可以在不脱离本公开的精神和范围的情况下进行各种修改。因此,其他实现在所附权利要求的范围内。例如,权利要求中记载的动作可以以不同的顺序执行并且仍然实现期望的结果。

Claims (29)

1.一种用于共享对文档的读取访问权的方法(700),包括:
在数据处理硬件(160)处,从共享者(10a)接收共享读取访问权命令(250),以向共享对象(10b)共享对存储在与所述数据处理硬件(160)通信的存储器硬件(150)中的文件(200)的读取访问权,所述共享读取访问权命令(250)包括加密值(256)和第一密码共享值(252),所述第一密码共享值(252)基于所述文件(200)的写入密钥(204)、所述文件(200)的读取密钥(202)、标识所述文件(200)的文件标识符(d)和标识共享对象(10b)的共享对象标识符(u2);
在所述数据处理硬件(160)处,从所述共享对象(10b)接收共享读取访问权请求(260),所述共享读取访问权请求(260)包括所述共享对象标识符(u2)、所述文件标识符(d)和第二密码共享值(262),所述第二密码共享值(262)基于所述文件(200)的所述读取密钥(202)和与所述共享对象(10b)相关联的共享对象密码密钥(112);
由所述数据处理硬件(160)将所述第一密码共享值(252)和所述第二密码共享值(262)相乘以确定密码读取访问权值(224),所述密码读取访问权值(224)向所述共享对象(10b)授权对所述文件(200)的读取访问权;以及
由所述数据处理硬件(160)在所述存储器硬件(150)的用户读取集(220)中存储所述共享对象(10b)的读取访问权令牌(222),所述读取访问权令牌(222)包括所述密码读取访问权值(224)和所述加密值(256),所述用户读取集(220)包括与具有对所述文件(200)的读取访问权的共享对象(10b)相关联的共享对象标识符(u2)的列表。
2.根据权利要求1所述的方法(700),其中,所述共享者(10a)被配置为:
通过安全且经认证的通信链路(120)将所述文件(200)的所述读取密钥(202)发送给所述共享对象(10b);
创建所述文件(200)的元数据;
通过使用所述读取密钥(202)对所述文件(200)的所述元数据进行加密来计算所述加密值(256);以及
向所述数据处理硬件(160)发送所述共享读取访问权命令(250)。
3.根据权利要求1所述的方法(700),其中,基于所述写入密钥(204)和所述文件标识符(d)的函数除以所述读取密钥(202)和所述共享对象标识符(u2)的函数,来计算所述第一密码共享值(252)。
4.根据权利要求1所述的方法(700),其中,基于所述读取密钥(202)和所述共享对象标识符(u2)的函数除以所述共享对象密码密钥(112)和所述文件标识符(d)的函数,来计算所述第二密码共享值(262)。
5.根据权利要求1所述的方法(700),还包括:
在所述数据处理硬件(160)处,从所述共享者(10a)接收撤销读取访问权命令(350),以从所述共享对象(10b)撤销对存储在所述存储器硬件(150)上的所述文件(200)的读取访问权;以及
由所述数据处理硬件(160)从所述用户读取集(220)中去除所述共享对象(10b)的所述读取访问权令牌(222)。
6.根据权利要求5所述的方法(700),还包括:
响应于接收到所述撤销读取访问权命令(350),由所述数据处理硬件(160)确定在所述存储器硬件(150)的用户写入集(230)中是否针对所述共享对象(10b)存在对应的写入访问权令牌(232);以及
当存在所述对应的写入访问权令牌(232)时,由所述数据处理硬件(160)从所述存储器硬件(150)中去除所述写入访问权令牌(232)。
7.根据权利要求1所述的方法(700),还包括,在存储所述共享对象(10b)的所述读取访问权令牌(222)之后:
在所述数据处理硬件(160)处,从所述共享对象(10b)接收对所述文件(200)中的关键字的搜索查询(550),所述搜索查询(550)包括密码搜索值(552),所述密码搜索值(552)基于所述文件(200)的所述读取密钥(202)、所述关键字和与所述共享对象(10b)相关联的所述共享对象密码密钥(112);
由所述数据处理硬件(160)从所述存储器硬件(150)的所述用户读取集(220)中检索所述共享对象(10b)的所述读取访问权令牌(222);
由所述数据处理硬件(160)基于所接收的密码搜索值(552)和所检索的所述共享对象(10b)的读取访问权令牌(222),计算密码字集令牌(z);
由所述数据处理硬件(160)确定所计算的密码字集令牌(z)是否与存储在所述存储器硬件(150)中的字集(240)的对应的密码字集令牌(z)匹配;以及
当所计算的密码字集令牌(z)与所述字集(240)的所述对应的密码字集令牌(z)匹配时:
由所述数据处理硬件(160)从所述存储器硬件(150)检索与所述关键字相关联的所述文件(200)的加密字元数据(556);以及
由所述数据处理硬件(160)向所述共享对象(10b)发送搜索结果集(580),所述搜索结果集(580)包括所述加密值(256)和所述加密字元数据(556)。
8.根据权利要求7所述的方法(700),其中,所述共享对象(10b)被配置为:
使用所述读取密钥(202)解密所述加密值(256);以及
使用所述读取密钥(202)解密所述加密字元数据(556)。
9.根据权利要求1至8中任一项所述的方法(700),还包括:
在所述数据处理硬件(160)处,从所述共享对象(10b)接收写入访问权令牌(232),所述写入访问权令牌(232)基于所述文件(200)的写入密钥(204)、所述文件标识符(d)、所述共享对象标识符(u2)和所述共享对象密码密钥(112);以及
由所述数据处理硬件(160)将所述写入访问权令牌(232)存储在所述存储器硬件(150)的用户写入集(230)中,所述用户写入集(230)包括与具有对所述文件(200)的写入访问权的共享对象(10b)相关联的共享对象标识符(u2)的列表,
其中,所述共享对象(10b)被配置为通过安全且经认证的通信链路(120)从所述共享者(10a)接收所述文件(200)的所述写入密钥(204)。
10.根据权利要求9所述的方法(700),还包括:
在所述数据处理硬件(160)处,从所述共享者(10a)接收撤销写入访问权命令(450),以从所述共享对象(10b)撤销对存储在所述存储器硬件(150)上的所述文件(200)的写入访问权;以及
由所述数据处理硬件(160)从所述用户写入集(230)中去除所述共享对象(10b)的所述写入访问权令牌(232)。
11.一种用于共享对文档的写入访问权的方法(800),包括:
在与共享对象(10b)相关联的共享对象设备(110b)处,从共享者(10a)接收共享写入访问权许可(402),以向所述共享对象(10b)共享对存储在分布式存储系统(150)上的文件(200)的写入访问权,所述共享写入访问权许可(402)包括所述文件(200)的读取密钥(202)、所述文件(200)的写入密钥(204)和所述文件(200)的加密元数据(256);
由所述共享对象设备(110b)基于所述文件(200)的所述写入密钥(204)、标识所述文件(200)的文件标识符(d)、标识所述共享对象(10b)的共享对象标识符(u2)和与所述共享对象(10b)相关联的共享对象密码密钥(112),来确定密码写入访问权值(234),所述密码写入访问权值(234)向所述共享对象(10b)授权对所述文件(200)的写入访问权;以及
从所述共享对象设备(110b)向所述分布式存储系统(150)发送所述共享对象(10b)的写入访问权令牌(232),所述写入访问权令牌(232)包括所述密码写入访问权值(234),所述分布式存储系统(150)响应于接收到所述写入访问权令牌(232)而被配置为将所述写入访问权令牌(232)存储在用户写入集(230)中,所述用户写入集(230)包括与具有对所述文件(200)的写入访问权的共享对象(10b)相关联的共享对象标识符(u2)的列表。
12.根据权利要求11所述的方法(800),其中,所述共享者(10a)被配置为通过向所述分布式存储系统(150)发送撤销写入访问权命令(450)来从所述共享对象(10b)撤销对存储在所述分布式存储系统(150)上的所述文件(200)的写入访问权,所述分布式存储系统(150)响应于接收到所述撤销写入访问权命令(450)而被配置为从所述用户写入集(230)中去除所述共享对象(10b)的所述写入访问权令牌(232)。
13.根据权利要求11所述的方法(800),还包括:
由所述共享对象设备(110b)基于所述文件(200)的写入密钥(204)、所述文件标识符(d)和所述共享对象密码密钥(112)来确定密码读取访问权值(224),所述密码读取访问权值(224)向所述共享对象(10b)授权对所述文件(200)的读取访问权;以及
将包含所述密码读取访问权值(224)和所述文件(200)的所述加密元数据的所述共享对象(10b)的读取访问权令牌(222)发送到所述分布式存储系统(150),所述分布式存储系统(150)响应于接收到所述读取访问权令牌(222)而被配置为将所述读取访问权令牌(222)存储在用户读取集(220)中,所述用户读取集(220)包括与具有对所述文件(200)的读取访问权的共享对象(10b)相关联的共享对象标识符(u2)的列表。
14.根据权利要求13所述的方法(800),其中,所述共享者(10a)被配置为通过向所述分布式存储系统(150)发送撤销读取访问权命令(350)来从所述共享对象(10b)撤销对存储在所述分布式存储系统(150)上的所述文件(200)的读取访问权,所述分布式存储系统(150)响应于接收到所述撤销读取访问权命令(350)而被配置为:
从所述用户写入集(230)中去除所述共享对象(10b)的所述写入访问权令牌(232);以及
从所述用户读取集(220)中去除所述共享对象(10b)的所述读取访问权令牌(222)。
15.根据权利要求11所述的方法(800),其中,所述共享者(10a)被配置为:
创建所述文件(200)的所述元数据;
使用所述读取密钥(202)对所述文件(200)的所述元数据进行加密;以及
通过安全且经认证的通信链路(120)将所述共享写入访问权许可(402)发送给所述共享对象(10b)。
16.根据权利要求11所述的方法(800),其中,从所述共享者(10a)接收所述共享写入访问权许可(402)包括:通过安全且经认证的通信链路(120)从所述共享者(10a)接收所述共享写入访问权许可(402)。
17.根据权利要求11所述的方法(800),还包括,在将所述共享对象(10b)的所述写入访问权令牌(232)发送到所述分布式存储系统(150)后:
由所述共享对象设备(110b)创建与要被编辑的所述文件(200)中的字相关联的所述文件(200)的字元数据;
由所述共享对象设备(110b)使用所述文件(200)的所述读取密钥(202)对所述字元数据进行加密;
由所述用户设备(110)基于所述文件(200)的所述读取密钥(202)、与要被编辑的所述文件(200)中的字相关联的字标识符、与所述共享对象(10b)相关联的共享对象密码密钥(112)、所述共享对象标识符(u2)和所述文件(200)的所述写入密钥(204),来计算密码编辑值(652);以及
发送包括所述密码编辑值(652)的编辑操作请求(650),所述编辑操作请求(650)用于请求所述分布式存储系统(150)针对要被编辑的所述文件(200)中的所述字来处理编辑操作(654)。
18.根据权利要求17所述的方法(800),其中,响应于从所述共享对象设备(110b)接收到所述编辑操作请求(650),所述分布式存储系统(150)被配置为:
从所述用户写入集(230)中检索所述写入访问权令牌(232);
基于所述密码编辑值(652)和所检索的所述共享对象(10b)的写入访问权令牌(232),计算密码字集令牌(z);
确定由所述编辑操作请求(650)所请求的所述编辑操作(654)是否包括删除操作;以及
当由所述编辑操作请求(650)所请求的所述编辑操作(654)包括删除操作时,通过去除由所述分布式存储系统存储的字集(240)的对应的密码字集令牌(z)来处理所述删除操作(150)。
19.根据权利要求17所述的方法(800),其中,所述分布式存储系统(150)响应于从所述共享对象设备(110b)接收到所述编辑操作请求(650)而被配置为:
从所述用户写入集(230)中检索所述写入访问权令牌(232);
基于所述密码编辑值(652)和所检索的所述共享对象(10b)的写入访问权令牌(232),计算密码字集令牌(z);
确定由所述编辑操作请求(650)所请求的所述编辑操作(650)是否包括重写操作;以及
当由所述编辑操作请求(650)所请求的所述编辑操作(654)包括重写操作时,通过使用所计算的密码字集令牌(z)和所述加密字元数据(556)重写由所述分布式存储系统存储的字集(240)的对应的密码字集令牌(z),来处理所述重写操作(150)。
20.根据权利要求17所述的方法(800),其中,所述分布式存储系统(150)响应于从所述共享对象设备(110b)接收到所述编辑操作请求(650)而被配置为:
从所述用户写入集(230)中检索所述写入访问权令牌(232);
基于所述密码编辑值(652)和所检索的所述共享对象(10b)的写入访问权令牌(232),计算密码字集令牌(z);
确定由所述编辑操作请求(650)所请求的所述编辑操作(654)是否包括添加操作;以及
当由所述编辑操作请求(650)所请求的所述编辑操作(654)包括添加操作时,通过将所计算的密码字集令牌(z)和所述加密字元数据(556)添加到由所述分布式存储系统(150)存储的字集(240)来处理所述添加操作。
21.一种用于共享对文档的读取访问权的系统(100),包括:
共享者设备(110a),所述共享者设备(110a)被配置为:创建存储在存储系统(150)上的文件(200)元数据(206),使用所述文件(200)的读取密钥(202)加密所述元数据(206),并计算所述文件(200)的第一密码共享值(252),所述第一密码共享值(252)基于所述文件(200)的写入密钥(204)、所述读取密钥(202)、标识所述文件(200)的文件标识符(d)以及共享对象标识符(u2),所述共享对象标识符(u2)标识用于接收对所述文件(200)的共享读取访问权的共享对象(10b);
共享对象设备(110b),所述共享对象设备(110b)与所述共享对象(10b)相关联并且被配置为:通过安全且经认证的通信信道(120)从所述共享者设备(110a)接收所述文件(200)的所述读取密钥(202),并计算所述文件(200)的第二密码共享值(262),所述第二密码共享值(262)基于基于所述读取密钥(202)和与所述共享对象(10b)相关联的共享对象密码密钥(112);
与所述共享者设备(110a)和所述共享对象设备(110b)通信的所述存储系统(150)的数据处理硬件(160);
与所述数据处理硬件(160)通信的存储器硬件(150),所述存储器硬件(150)存储指令,所述指令在所述数据处理硬件(160)上执行时使所述数据处理硬件(160)执行操作,所述操作包括:
从所述共享者设备(110a)接收共享读取访问权命令(250),以向所述共享对象(10b)共享对所述文件(200)的读取访问权,所述共享读取访问权命令(250)包括所述文件(200)的所述加密元数据(256)和所述第一密码共享值(252);
从所述共享对象设备(110b)接收共享读取访问权请求(260),所述共享读取访问权请求(260)包括共享对象标识符(u2)、所述文件标识符(d)和所述第二密码共享值(262);
基于所述第一密码共享值(252)和所述第二密码共享值(262)来确定密码读取访问权值(224),所述密码读取访问权值(224)向所述共享对象(10b)授权对所述文件(200)的读取访问权;以及
在所述存储器硬件(150)的用户读取集(220)中存储共享对象(10b)的包括所述密码读取访问权值(224)和所述加密值(256)的读取访问权令牌(222),所述用户读取集(220)包括与具有对所述文件(200)的读取访问权的共享对象(10b)相关联的共享对象标识符(u2)的列表。
22.根据权利要求21所述的系统(100),其中,确定所述密码读取访问权值(224)包括:将所述第一密码共享值(252)和所述第二密码共享值(262)相乘。
23.根据权利要求21所述的系统(100),其中,所述操作还包括:
从所述共享者设备(110a)接收撤销读取访问权命令(350),以从所述共享对象(10b)撤销对存储在所述存储系统(150)上的所述文件(200)的读取访问权;以及
从所述用户读取集(220)中去除所述共享对象(10b)的所述读取访问权令牌(222)。
24.根据权利要求23所述的系统(100),其中,所述操作还包括:
响应于接收到所述撤销读取访问权命令(350),确定在所述存储器硬件(150)的用户写入集(230)中针对所述共享对象(10b)是否存在对应的写入访问权令牌(232);以及
当存在所述对应的写入访问权令牌(232)时,从所述存储器硬件(150)中去除所述写入访问权令牌(232)。
25.根据权利要求21至24中任一项所述的系统(100),其中,所述操作还包括,在存储所述共享对象(10b)的所述读取访问权令牌(222)之后:
从所述共享对象设备(110b)接收对所述文件(200)中的关键字的搜索查询(550),所述搜索查询(550)包括密码搜索值(552),所述密码搜索值(552)基于所述文件(200)的读取密钥(202)、所述关键字和与所述共享对象(10b)相关联的所述共享对象密码密钥(112);
从所述存储器硬件(150)的所述用户读取集(220)中检索所述共享对象(10b)的所述读取访问权令牌(222);
基于所接收的密码搜索值(552)和所检索的所述共享对象(10b)的读取访问权令牌(222),计算密码字集令牌(z);
确定所计算的密码字集令牌(z)是否与存储在所述存储器硬件(150)中的字集(240)的对应的密码字集令牌(z)匹配;以及
当所计算的密码字集令牌(z)与所述字集(240)的所述对应的密码字集令牌(z)匹配时:
从所述存储器硬件(150)中检索与所述关键字相关联的所述文件(200)的加密字元数据(556);以及
向所述共享对象设备(110b)发送搜索结果集(580),所述搜索结果集(580)包括所述加密元数据(256)和所述加密字元数据(556)。
26.根据权利要求25所述的系统(100),其中,所述共享对象设备(110b)被配置为:
使用所述读取密钥(202)解密所述加密元数据(256);以及
使用所述读取密钥(202)解密所述加密字元数据(556)。
27.一种用于共享对文档的读取和写入访问权的系统(100),包括:
共享者设备(110a),所述共享者设备(110a)与存储在分布式存储系统(150)上的文件(200)的创建者(10a)相关联;
共享对象设备(110b),所述共享对象设备(110b)与共享对象(10b)相关联,所述共享对象通过安全且经认证的通信信道(120)与所述共享者设备(110a)通信,所述共享对象设备(110b)被配置为:
从所述共享者设备(110a)接收共享写入访问权许可(402),以共享对所述文件(200)的写入访问权,所述共享写入访问权许可(402)包括所述文件(200)的读取密钥(202)、所述文件(200)的写入密钥(204)和所述文件(200)的加密元数据(256);
基于所述写入密钥(204)、标识所述文件(200)的文件标识符(d)、标识所述共享对象(10b)的共享对象标识符(u2)和与所述共享对象(10b)相关联的共享对象密码密钥(112),来确定密码写入访问权值(234),所述密码写入访问权值(234)向所述共享对象(10b)授权对所述文件(200)的写入访问权;以及
基于所述文件(200)的所述写入密钥(204)、所述文件标识符(d)和所述共享对象密码密钥(112),确定密码读取访问权值(224);
与所述共享者设备(110a)和所述共享对象设备(110b)通信的所述分布式存储系统(150)的数据处理硬件(160);以及
与所述数据处理硬件(160)通信的存储器硬件(150),所述存储器硬件(150)存储指令,所述指令在所述数据处理硬件(160)上执行时使所述数据处理硬件(160)执行操作,所述操作包括:
从所述共享对象设备(110b)接收写入访问权令牌(232),所述写入访问权令牌(232)包括所述密码写入访问权值(234);
将所述写入访问权令牌(232)存储在用户写入集(230)中,所述用户写入集(230)包括与具有对所述文件(200)的写入访问权的共享对象(10b)相关联的共享对象标识符(u2)的列表;
从所述共享对象设备(110b)接收所述共享对象设备(110b)的包括所述密码读取访问权值(224)和所述文件(200)的所述加密元数据的读取访问权令牌(222);以及
将所述读取访问权令牌(222)存储在用户读取集(220)中,所述用户读取集(220)包括与具有对所述文件(200)的读取访问权的所述共享对象(10b)相关联的共享对象标识符(u2)的列表。
28.根据权利要求27所述的系统(100),其中,所述操作还包括:
从所述共享者设备(110a)接收撤销写入访问权命令(450),以从所述共享对象(10b)撤销对存储在所述分布式存储系统(150)上的所述文件(200)的写入访问权;以及
响应于接收到所述撤销写入访问权命令(450),从所述用户写入集(230)中去除所述共享对象(10b)的所述写入访问权令牌(232)。
29.根据权利要求27所述的系统(100),其中,所述操作还包括:
从所述共享者设备(110a)接收撤销读取访问权命令(350),以从所述共享对象(10b)撤销对存储在所述分布式存储系统(150)上的所述文件(200)的读取访问权;以及
响应于接收到所述撤销读取访问权命令(350):
从所述用户写入集(230)中去除所述共享对象(10b)的所述写入访问权令牌(232);以及
从所述用户读取集(220)中去除所述共享对象(10b)的所述读取访问权令牌(222)。
CN201880029795.5A 2017-05-18 2018-01-05 使用密码共享的加密搜索云服务 Active CN110603538B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201762508374P 2017-05-18 2017-05-18
US62/508,374 2017-05-18
PCT/US2018/012593 WO2018212794A1 (en) 2017-05-18 2018-01-05 Encrypted search cloud service with cryptographic sharing

Publications (2)

Publication Number Publication Date
CN110603538A CN110603538A (zh) 2019-12-20
CN110603538B true CN110603538B (zh) 2023-04-21

Family

ID=61074546

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201880029795.5A Active CN110603538B (zh) 2017-05-18 2018-01-05 使用密码共享的加密搜索云服务

Country Status (3)

Country Link
EP (1) EP3607485B1 (zh)
CN (1) CN110603538B (zh)
WO (1) WO2018212794A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111339557A (zh) * 2020-02-20 2020-06-26 北京字节跳动网络技术有限公司 在线文档显示方法、装置、设备及介质
CN111835731B (zh) * 2020-06-19 2021-06-22 北京航空航天大学 新型抗文件注入攻击的动态对称可搜索加密方法和装置
US11645409B2 (en) 2020-12-18 2023-05-09 Seagate Technology Llc Search and access pattern hiding verifiable searchable encryption for distributed settings with malicious servers

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7827416B2 (en) * 2004-08-26 2010-11-02 Mitsubishi Denki Kabushiki Kaisha Key management apparatus, document security and editing system, and key management method
US7668830B2 (en) * 2004-11-29 2010-02-23 Nokia Corporation Access rights
JPWO2009004732A1 (ja) * 2007-07-05 2010-08-26 日立ソフトウエアエンジニアリング株式会社 共有暗号ファイルの暗号化、復号処理方法
US8719582B2 (en) * 2009-03-03 2014-05-06 Microsoft Corporation Access control using identifiers in links
CN101799853A (zh) * 2010-03-05 2010-08-11 中国人民解放军国防科学技术大学 一种层次化信息加密共享方法
EP3422236B1 (en) * 2012-10-10 2022-06-01 Citrix Systems, Inc. Policy-based application management
KR101992740B1 (ko) * 2013-03-29 2019-06-25 사이트릭스 시스템스, 인크. 다수의 동작 모드들을 가진 애플리케이션용 데이터 관리
US10929843B2 (en) * 2014-05-06 2021-02-23 Apple Inc. Storage of credential service provider data in a security domain of a secure element
US9727575B2 (en) * 2014-08-29 2017-08-08 Microsoft Technology Licensing, Llc File system with data block sharing
US10013567B2 (en) * 2015-01-27 2018-07-03 Apple Inc. Private and public sharing of electronic assets
EP3256982A1 (en) * 2015-02-15 2017-12-20 Schmahmann, Adin Reicin Systems and methods for secure collaboration with precision access management

Also Published As

Publication number Publication date
CN110603538A (zh) 2019-12-20
EP3607485B1 (en) 2020-07-29
EP3607485A1 (en) 2020-02-12
WO2018212794A1 (en) 2018-11-22

Similar Documents

Publication Publication Date Title
US20210067320A1 (en) System and method to protect sensitive information via distributed trust
KR101813481B1 (ko) 사용자 정보를 익명 처리하는 장치, 저장 매체 및 방법
CN104021157B (zh) 云存储中基于双线性对的关键词可搜索加密方法
CN102546764B (zh) 一种云存储系统的安全访问方法
JP5754655B2 (ja) 信頼できるコンピューティング・サービスとデータ・サービスのためのコンテナを利用しないデータ
JP2021527274A (ja) ブロックチェーンの分散アクセス、記憶、及び転送
Singh et al. Data privacy protection mechanisms in cloud
CN105024802B (zh) 云存储中基于双线性对的多用户多关键词可搜索加密方法
CN109493017B (zh) 基于区块链的可信外包存储方法
CN105049196B (zh) 云存储中指定位置的多个关键词可搜索的加密方法
Somu et al. Authentication service in hadoop using one time pad
CN110603538B (zh) 使用密码共享的加密搜索云服务
EP4073673B1 (en) Encrypted search with a public key
Joshi et al. Secure cloud storage
Sangeetha et al. Multi keyword searchable attribute based encryption for efficient retrieval of health Records in Cloud
JP2022544484A (ja) 暗号化されたナレッジ・グラフ
Suthar et al. EncryScation: A novel framework for cloud iaas, daas security using encryption and obfuscation techniques
Foltz et al. Simplified key management for digital access control of information objects
Shalabi et al. Cryptographically enforced role-based access control for NoSQL distributed databases
Shivanna et al. Privacy preservation in cloud computing with double encryption method
Zhu et al. Secure data outsourcing scheme in cloud computing with attribute-based encryption
Kaliyaperumal et al. An Efficient Key Generation Scheme for Secure Sharing of Patients Health Records using Attribute Based Encryption
Pavithra et al. Enhanced Secure Big Data in Distributed Mobile Cloud Computing Using Fuzzy Encryption Model
JP7350220B2 (ja) 検索実行装置、検索実行方法、検索実行プログラム及び秘匿検索システム
Ahamed Ali et al. A Comprehensive Analysis of Key Management Models in the Cloud: Design, Challenges, and Future Directions

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