文章目录
《An Ideal-Security Protocol for Order-Preserving Encoding》论文学习笔记
OPE(保序加密):密文的排序顺序与对应的明文的排序顺序相匹配的加密方案。
论文中提出的保序加密的理想安全保证是密文除顺序外不透露任何与明文有关的信息。
1.论文背景
加密是一种强大的技术,可以保护存储在不可信服务器(如云计算)上数据。 但是其中一个限制是,通常应用程序必须对数据进行解密,以便对数据进行处理。例如,查询加密的数据库或对加密的电子邮件消息进行排序,这些都需要一个信任的服务器来运行该应用程序。 对加密数据进行计算的方法避免了由未知不可信的服务器对数据进行解密的需要。 虽然最近关于全同态加密的一些工作表明,原则上可以对加密数据执行任意计算,但其带来的性能开销高得令人望而却步,大约是109倍。
鉴于此,我们可以允许不受信任的服务器对密文进行计算操作,其中一个常见的操作是顺序比较,用于排序、范围检查、排序等。为了允许不受信任的服务器对密文执行顺序比较,研究领域和工业场景中的许多系统都使用order-preserving encryption or encoding方案,即当 x > y时有 Enc(x) > Enc(y) 的方案。将这种方案缩写为OPE。
OPE 主要在数据库中用于处理对加密数据的 SQL 查询 ,同时也应用于各个web应用程序和软件等。数据库服务器可以构建索引、执行SQL范围查询和对加密数据进行排序,所有这些操作都与对明文数据的操作相同。这个特性也具有良好的性能,并且只需对现有软件进行最小的更改,从而使其易于采用。
当前的 OPE 方案都不能完全防止攻击者窃取机密数据的隐私,而不仅仅是了解密文的顺序。本文提出了第一种理想安全的保序编码方案,其中密文只揭示明文值的顺序,除此之外什么也不泄露。在这种方案中,加密协议是交互式的,并且当新的明文值被加密时,为了保持密文顺序的正确性,已经被加密的值的少量密文是可以改变的。我们称这种方案为mutable order-preserving encoding,即mOPE,为了强调,密文的可变性,此处作者使用encoding来替换encryption。
2.论文概述
mOPE 的工作原理是构建一个平衡的搜索树,其中包含应用程序所有明文值被加密后的密文值。关键值的保序编码是搜索树中从树根到该值的路径。例如,如果 x 小于 y,则到 x 的路径将在到 y 的路径的左侧;我们使用二进制编码表示树路径,其中编码在树中从左到右递增。搜索树和加密数据一样都存储在不受信任的服务器上,可信客户端通过使用交互式协议将加密的值插入到树中。路径编码的长度就等于树的深度,因此为了确保密文不会变得任意长,mOPE会重新平衡搜索树。这需要更新密文对应的数据项的位置在树中的改变。实验表明,只有少量的已经加密的值会改变密文的每个新编码的值。
在前人工作基础上的最强安全定义是由Boldyreva等人提出的IND-OCPA。IND-OCPA为保序方案提供了理想的安全性:可以访问一组密文的攻击者不能获知关于其明文值的任何信息,除了它们的顺序。而现有方案均未达到IND-OCPA,本文的结构mOPE是第一个实现IND-OCPA的。
在本文中,作者还提出了一个新的安全定义,称为same-time OPE security,这要求对手只能获知同时存储在应用程序中的数据项的顺序,其余一无所知。这个定义比IND-OCPA强,我们展示了mOPE的扩展如何实现这个更强的定义。
3.威胁模型
论文中的模型由一个OPE客户端和一个OPE服务器相互交互。客户端是要加密的数据的所有者,因此客户端是可信的。OPE服务器不受信任。我们考虑以下两个关于服务器的威胁模型:
①被动的(或诚实但好奇的)的敌手:服务器正确地遵循我们的协议,并向OPE客户端返回正确的答案,但它试图学习有关数据的除了顺序之外的其他信息。例如,服务器可以记录操作和数据的整个历史版本,将数据提供给某个其他方,甚至使用一些辅助信息来尝试了解更多关于数据的信息。②主动的(或恶意的)对手:服务器可以以任何方式不诚实,比如给客户端返回不正确的答案。
4.mOPE的原理
☆Tree construction
使编码后的值在服务器上组成一个平衡二叉搜索树。对于每个节点v, v的左子树中的所有节点都严格小于v,而v的右子树中的所有节点都严格大于v。在这里使用的是B-Tree,关于B-Tree的原理,可以参照