【技术实现步骤摘要】
用于对加密数据进行多字符通配符搜索的系统和方法交叉引用在本公开的描述中引用和讨论了一些参考文献,其可以包括专利、专利申请和各种出版物。提供对这些参考文献的引用和/或讨论仅仅是为了阐明本公开的描述,而不是承认任何这种参考文献是本文所述公开内容的“现有技术”。本说明书中引用和讨论的所有参考文献均以引用的方式整体并入本文中,其程度如同通过引用单独并入每篇参考文献。
本公开总体上涉及数据加密和搜索加密数据,更具体地,涉及用于针对加密数据执行多字符通配符搜索以便仅从加密数据检索有关数据的系统和方法。
技术介绍
本文中所提供的
技术介绍
描述是出于大体上呈现本公开的背景的目的。在本
技术介绍
部分所描述范围内,目前署名的专利技术人的工作,以及在递交时可能无法被另外视为现有技术的描述的各方面,既不明确也不暗含为针对本公开的现有技术。数据泄漏频繁发生,给公司和客户带来了巨大损失。因此,越来越多的数据以加密格式存储。考虑到效率,通常通过对称加密方案(例如,三重数据加密标准(3DES)或高级加密标准(AES))来对数据进行加密。在一些情况下,可以通过非对称加密方案(例如,RSA(Rivest-Shamir-Adleman))对数据进行加密。为了实现可证明的安全性,所有常规加密方案都实现了不可区分性(IND)的安全性。特别地,概率多项式时间(PPT)攻击者无法基于加密的消息来区分两个密文。换句话说,对于没有解密密钥(对称设置的秘密密钥或非对称设置的私钥)的实体,密文是随机值。因此,如果通过常规加密方案对数据进行加密 ...
【技术保护点】
1.一种用于提供对加密数据进行通配符关键字搜索的方法,包括:/n由第一计算设备提供数据加密密钥;/n由所述第一计算设备提供用于进行加密的数据,其中所述数据包括具有M个字符的关键字,所述字符中的每个字符选自N个预定字符,M和N为正整数;/n由所述第一计算设备使用所述数据加密密钥来将所述数据加密为加密数据;/n由所述第一计算设备使用密钥导出函数,根据所述数据加密密钥计算索引加密密钥;/n提供M×N个素数;/n基于所述索引加密密钥将所述M×N个素数置乱以形成素数序列;/n针对所述关键字中的每个字符,根据所述关键字中的所述字符的位置和所述关键字中的所述字符的值计算序列值;/n针对所述关键字中的每个字符,根据所述序列值从所述素数序列中选择素数;/n计算所述关键字的索引,所述索引是针对所述关键字的字符选择的素数的乘积;以及/n将所述加密数据和所述索引上传到第二计算设备上,以便第三计算设备能够访问所述加密数据和所述索引,/n其中,所述第三计算设备具有所述数据加密密钥和所述密钥导出函数,且被配置为:/n根据所述数据加密密钥和所述密钥导出函数生成所述索引加密密钥;/n提供通配符搜索关键字,其中所述通配符 ...
【技术特征摘要】
20181119 US 16/195,7331.一种用于提供对加密数据进行通配符关键字搜索的方法,包括:
由第一计算设备提供数据加密密钥;
由所述第一计算设备提供用于进行加密的数据,其中所述数据包括具有M个字符的关键字,所述字符中的每个字符选自N个预定字符,M和N为正整数;
由所述第一计算设备使用所述数据加密密钥来将所述数据加密为加密数据;
由所述第一计算设备使用密钥导出函数,根据所述数据加密密钥计算索引加密密钥;
提供M×N个素数;
基于所述索引加密密钥将所述M×N个素数置乱以形成素数序列;
针对所述关键字中的每个字符,根据所述关键字中的所述字符的位置和所述关键字中的所述字符的值计算序列值;
针对所述关键字中的每个字符,根据所述序列值从所述素数序列中选择素数;
计算所述关键字的索引,所述索引是针对所述关键字的字符选择的素数的乘积;以及
将所述加密数据和所述索引上传到第二计算设备上,以便第三计算设备能够访问所述加密数据和所述索引,
其中,所述第三计算设备具有所述数据加密密钥和所述密钥导出函数,且被配置为:
根据所述数据加密密钥和所述密钥导出函数生成所述索引加密密钥;
提供通配符搜索关键字,其中所述通配符搜索关键字具有M个字符,所述M个字符包括至少一个查询字符和至少一个通配符字符,并且所述至少一个查询字符选自所述N个预定字符;
提供所述M×N个素数;
基于所述索引加密密钥将所述M×N个素数置乱以形成所述素数序列;
根据所述通配符搜索查询中所述至少一个查询字符的位置和值,计算所述至少一个查询字符的查询序列值;
针对所述通配符搜索关键字中的所述至少一个查询字符,根据所述查询序列值从所述素数序列中选择素数;
计算所述通配符搜索关键字的查询索引,所述查询索引是针对所述通配符搜索关键字的所述至少一个查询字符选择的所述素数的乘积;以及
使用所述查询索引来查询存储在所述第二计算设备中的所述索引,以便获得与同所述查询索引匹配的索引相对应的所述加密数据。
2.根据权利要求1所述的方法,其中,通过以下公式计算所述关键字中第p位置处的字符的序列值:p×(M-1)+C%N,其中p是从0到N中选择的整数,并且表示所述关键字中的字符的位置,C是在所述第p位置处的字符值,C%N是C除以N的余数。
3.根据权利要求1所述的方法,
其中,所述第一计算设备是数据提供方,所述第二计算设备是存储服务器,所述第三计算设备是数据消费方;并且
其中,所述第一计算设备被配置为对所述第二计算设备执行存储操作,所述第三计算设备被配置为向所述第二计算机发送所述查询索引并且从所述第二计算设备接收搜索响应。
4.根据权利要求1所述的方法,还包括:以预定时间间隔更新所述第一计算设备和所述第二计算设备上的所述数据加密密钥。
5.根据权利要求1所述的方法,其中,所述数据加密密钥是高级加密标准AES密钥,所述密钥导出函数是SHA-256散列值函数。
6.根据权利要求1所述的方法,其中,所述N个预定字符包括数字0至9、小写字符a至z和大写字符A至Z中的至少一个。
7.根据权利要求1所述的方法,其中,将所述M×N个素数置乱的步骤是通过使用所述索引加密密钥作为种子的Fisher-Yates置乱算法来执行的。
8.根据权利要求1所述的方法,其中,对所述索引进行查询的步骤包括:
对存储在所述第二计算设备中的所述索引执行关于所述查询索引的模操作;以及
当所述查询索引和存储在所述第二计算设备中的所述索引中的一个索引的模数为0时,将与所述索引中的所述一个索引相对应的加密数据从所述第二计算设备传送到所述第三计算设备。
9.一种用于提供对加密数据进行通配符关键字搜索的方法,包括:
由第一计算设备获得要被加密的数据的关键字,其中所述关键字具有固定长度;
生成素数序列;
针对所述关键字的每个字符,从所述素数序列中确定对应的一个素数;以及
将所述关键字的字符的对应素数的乘积定义为加密数据的索引,其中所述索引能够使用通配符搜索关键字来搜索。
10.根据权利要求9所述的方法,其中,所述关键字具有M个字符,所述字符中的每个字符选自N个预定字符,M和N是正整数,并且所述素数序列包括M×N个...
【专利技术属性】
技术研发人员:董秋香,林岳勋,高威,苏志刚,
申请(专利权)人:北京京东尚科信息技术有限公司,京东美国科技公司,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。