平均复杂度理想安全的保序加密的制作方法

文档序号:8339920阅读:580来源:国知局
平均复杂度理想安全的保序加密的制作方法
【技术领域】
[0001] 本发明涉及加密,并且更具体地,涉及允许对加密形式的数据进行处理的加密。
【背景技术】
[0002] 除非在本文中另外指明,否则本部分中描述的方法不是本申请中权利要求的现有 技术,也并不因包含在本部分中而被承认为现有技术。
[0003] 保序加密(Order-preserving encryption, 0ΡΕ)允许对加密的数据执行多个查 询(包括范围查询),而不需要对数据库引擎进行修改。这样的查询可以在性能方面是实用 的,例如,提供对存在于云上的加密的数据执行搜索的能力。
[0004] 之前已经提出多种保序加密方案。然而,这些方案的安全性仍在讨论中。
[0005] 直观地说,理想安全的保序加密提供按序选择明文攻击下的不可区分性 (indistinguishabiIity under ordered chosen plaintext attack, IND-0CPA)方案,只 泄露顺序。即,明文{7,12,19}的理想加密是{1,2,3},即,恰好为它们的顺序。
[0006] 然而,这样的IND-OCPA加密很难实现。例如,在以上的理想的保序加密中,13和 19的密文发生冲突。
[0007] 已经证明了在加密方案是静态和无状态的情况下,不能利用线性长度密文来设计 这样的加密方案。因此,一些研究人员提出较弱安全概念(随机保序函数)。然而,该安全 定义可能泄漏至少一半的比特。
[0008] 另一种方法修改了加密方案(称它为编码方案)的结构。这种方法假设即使加密 函数可以是有状态的,也不可能构建加密方案。于是这种方法使用交互协议,其更新对插入 内容的加密。
[0009] 虽然这种方法达到理想安全的目标,但是它要求在插入新值时更新密文。这 样的更新是必要的,但是导致高通信成本,因为任何不可变的加密方案必须具有指数 (exponential)密文大小。
[0010] 因此,需要提供用于保序加密的新颖方式的系统和方法。

【发明内容】

[0011] 实施例提供了对平均复杂度的数据的理想安全的保序加密(OPE),从而允许处理 加密的数据(例如,在数据库服务器处响应于接收到查询)。具体的实施例通过按照已经可 用于数据库的、现有压缩字典所保持的顺序来处理明文,来实现高加密效率。加密是基于对 η个节点的二叉搜索树的使用,以构造具有Ω (η)复杂度,甚至在平均情况下具有〇(n)复杂 度,的保序加密方案。通过利用被证明的二叉搜索树的高度倾向于紧紧围绕0(l〇g η),计算 密集型更新(这使得常规OPE对于理想安全变得不切实际)的概率被大大减少。在包括η 个元素的列存储内存的数据库架构的上下文中描述利用这样的加密方案的实施例。根据实 施例的OPE与可调整的加密方法兼容。
[0012] 计算机实现的方法实施例包括使客户端上的引擎创建保持服务器上的数据库中 存储的数据的顺序的字典拷贝。使引擎根据所述顺序执行对字典拷贝上的数据进行加密的 算法,而且使引擎根据更新概率更新存储在数据库中的数据。使引擎从加密的数据创建进 一步加密的数据,使引擎发送进一步加密的数据到服务器,并且使引擎发送加密密钥以允 许对进一步加密的数据进行解密。
[0013] 非临时性计算机可读存储介质的实施例包含用于执行方法的计算机程序,所述方 法包括使客户端上的引擎创建保持服务器上的数据库中存储的数据的顺序的字典拷贝。使 引擎根据所述顺序执行对字典拷贝上的数据进行加密的算法。使引擎根据更新概率更新存 储在数据库中的数据。使引擎从加密的数据创建进一步加密的数据,使引擎发送进一步加 密的数据到服务器,并且使引擎发送加密密钥以允许对进一步加密的数据进行解密。
[0014] 计算机系统的实施例包括一个或多个处理器,以及可在所述计算机系统上执行的 软件程序。该软件程序被配置为使客户端上的引擎创建保持服务器上的数据库中存储的数 据的顺序的字典拷贝。该软件程序被配置为使引擎根据所述顺序执行对字典拷贝上的数据 进行加密的算法。该软件程序被配置为使引擎根据更新概率更新存储在数据库中的数据。 该软件程序被配置为使引擎从加密的数据创建进一步加密的数据,使引擎发送进一步加密 的数据到服务器,并且使引擎发送加密密钥以允许对进一步加密的数据进行解密。
[0015] 在某些实施例中,所述算法包括构建包含η个节点的二叉搜索树。
[0016] 根据一些实施例,所述算法还包括将至少21og η位的缓冲区(buffer)添加到加 密的数据,以减少更新概率。
[0017] 在各种实施例中,所述进一步加密的数据是使用同态加密创建的以允许在数据库 上聚合。
[0018] 在特定实施例中,所述进一步加密的数据是使用确定性加密创建的以允许在数据 库上选择。
[0019] 根据一些实施例,所述数据库基于结构化查询语言(SQL)的。
[0020] 在某些实施例中,所述数据库包含列存储内存数据库。
[0021] 提供下面的详细描述和附图以便于更好地理解各种实施例的本质和优点。
【附图说明】
[0022] 图1示出了根据实施例的客户端和数据库集成的架构。
[0023] 图2是示出根据实施例的过程的简化流程图。
[0024] 图3A示出了根据实施例的加密算法。
[0025] 图3B示出了图3A的加密算法中引用的更新过程(procedure)。
[0026] 图3C示出了根据实施例的解密算法。
[0027] 图4A是示出根据实施例的理想安全保序加密的简化示意图。
[0028] 图4B是示出具有更低安全性的常规保序加密的简化示意图。
[0029] 图5示出了根据实施例的被配置为实施加密的专用计算机的硬件。
[0030] 图6不出了计算机系统的例子。
【具体实施方式】
[0031] 本文描述了提供加密的技术。在下面的描述中,出于解释的目的,许多例子和具体 细节被阐述以便彻底理解本发明。然而,对于本领域技术人员将显而易见的是,由权利要求 书所限定的本发明可以单独包括这些实施例中的一些或所有特征,或者与下面描述的其它 特征组合使用,并且可以进一步包括这里所描述的特征和构思的修改和等同物。
[0032] 首先,根据各种实施例的加密可以被实现为加密、内存、列存储的数据库的一部 分。因此,现在将介绍这样的数据库结构的特点。
[0033] 列存储的数据库对于分析型工作负荷展示出良好性能。为了做到这一点,它们按 列,而不是按行,存储数据。由此可以快速地访问和处理某列的所有数据。
[0034] 此外,如果数据存储在主存储器中,则可以进一步增强处理的速度。多种这样的内 存数据库架构可供选择,包括但不限于:来自德国沃尔多夫的SAP公司提供的HANA数据库; 也可以从SAP AG得到的Sybase IQ数据库;可以从华盛顿州雷蒙德市的微软公司获得的数 据库嵌入式SQL C语言(Embedded SQL for C,ESQL/C);以及可以从加利福尼亚州的红木 海岸的甲骨文公司获得的Exalytics内存数据库。
[0035] 内存、列存储的数据库(in-memory, column-store database)处理对于诸如选择 的操作处理整列的数据。因此,从主存储器向CPU传送数据的速度可能成为瓶颈。
[0036] -种提高速度的优化是对数据进行压缩。这可以显著提高处理性能。
[0037] 常见的压缩技术是保序字典压缩。在字典压缩中,数据值被数据标识符替换。它 们的关系被存储在字典中。
[0038] 下面示出了用于货币值
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1