《Order-Revealing Encryption: New Constructions,Applications, and Lower Bounds》论文学习笔记

该论文探讨了Order-RevealingEncryption(ORE)作为一种强化OPE安全性的方法,尤其是在防止推理攻击方面。论文提出了新的ORE构造,尤其在小消息空间中实现最优安全,并利用域扩展技术增强大域的安全性。此外,还展示了一个抵抗Naveed等人推理攻击的范围查询协议,同时保持了高效的加密速度。新方案在保证安全性的前提下,加密性能比现有OPE方案提高了65倍以上。
摘要由CSDN通过智能技术生成

Order-Revealing Encryption: New Constructions,Applications, and Lower Bounds》论文学习笔记

1.论文背景

研究表明,使用OPE保序加密方案的数据库非常容易受到“推理攻击(攻击者可以通过观察加密值之间的顺序或距离来推断原始值)”,在这片论文中考虑使用了ORE(Order-Revealing Encryption),它是对OPE的泛化,允许更强的安全性。

ORE加密方案是指从密文 (索引结构) 可以判断出明文大小, 但是密文 (索引结构) 不一定保序。

首先在小的消息空间上构建一个新的ORE方案,以实现ORE的“最佳可能”的安全概念。接下来,论文介绍了一种“域扩展”技术,并将其应用到小消息空间ORE中。虽然域扩展技术确实在安全性上造成了损失,但得到的ORE方案比所有现有的(无状态和非交互的)OPE和ORE方案更安全。最后,论文展示了如何使用它来构建一个有效的范围查询协议,它对Naveed等人的推理攻击具有鲁棒性。并且还给出了我们新的ORE方案的完整实现,不仅比现有的OPE方案更安全,而且速度更快:加密一个32位整数只需要55微秒,比现有的OPE方案快65倍多。

2.论文方案

并将加密函数分解为两个独立的函数:“左”加密函数和“右”加密函数。每个这些加密函数都接收一条消息和一个密钥,并分别输出一个“左”或一个“右”密文。

论文展示了当消息空间较小时,如何从对称原语有效地构建最好的ORE(以及更普遍的功能加密)。

Chenette 等人的方案如下:

他们使用伪随机函数构造出一个顺序可见加密方案,他们所构造的顺序可见加密方案不仅是可证明安全的, 而且具有很高的效率.。准确地说, Chenette 等人的顺序可见加密方案主要包括以下算法:

• Setup(1 λ ). 设 F : K × ([n] × {0, 1} n−1 ) ZM 为一个安全的伪随机函数.。该算法以安全参数 λ 为输入,输出伪随机函数 F 的密钥 k, 则密钥 sk = k.

• Encrypt(sk, m). 设 m 的二进制表示为 m = b1b2 · · · bn, 加密算法加密消息为ui = F(k,(i, b1b2 · · · bi−1||0 n−i )) + bi mod M

• Compare(ct1, ct2). 算法以 ct1 = (u1, u2, · · · , un) 和 ct2 = (u1, u′ 2, · · · , u′ n) (u1, u2, · · · , unu 1, u′ 2, · · · , u′ *n* Z*M*) 为输入, 令 i 为使得 uiu i 的最小正整数。如果存在这样的 i 且满足 u i = ui + 1 mod M,则输出 b = 1, 否则 b = 0。

从上述方案描述可以看出,Chenette 等人只使用了伪随机函数,使得方案具有很高的检索效率。但是,此方案将泄露不同数据的第一个不相同比特位,不能达到理想安全性。

特别是,我们的新的ORE方案是在块上操作的(其中一个块是一个位序列),而在我们的方案中,额外的泄漏是两个消息不同的第一个块的位置。例如,如果块是字节大小的(8位),那么本文的ORE方案只揭示了两个消息之间不同的第一个字节的索引,比Chenette 等人的方案提供了更高的安全性。

一个密文ct可以自然地分解为一个左密文ctL和一个右密文ctR。要比较两个密文,比较函数只需要一个密文的左密文和另一个密文的右密文。其中右密文具有语义安全的属性。数据库服务器只存储右密文(在数据库中按排序的顺序存储),要执行范围查询,客户端将提供与其范围对应的“左”密文。服务器可以像往常一样响应范围查询,因为可以在左右密码上下文之间进行比较。由于数据库转储只包含存储在服务器上的正确密文,因此确保了对离线推理攻击的健壮性,对消息的加密也是语义安全级别的。

通用ORE方案:
在这里插入图片描述
我们的特殊构造具有只有“左密文”才能与“右密文”相比较的特性。

①Small-Domain ORE Construction

上述ORE方案显示了大量的信息,即两个加密后的明文之间不同的第一个位的位置。在这项工作中,我们展示了如何构造一个只泄漏第一个不同的块的ORE方案,其中一个块是一个或多个位的集合。

假设明文空间N = poly(λ),将域中的每个元素x∈[N]与一个加密密钥kx关联起来。一个值y∈[N]的(右)密文由y和域中每个元素x∈[N]之间的比较输出结果cmp(x,y)的N位加密,其中值cmp(x,y)是在kx下加密的。值x的左密文只是加密密钥kx。给定kx和在kx下的cmp(x,y)的加密,计算器可以解密和学习到cmp(x,y)的比较位。

需要一种方法来让评估者确定哪些N个密文是在kx下加密的,而不学习x的值。为了确保这一点,我们在设置过程中在域[N]上采样一个随机排列π。然后根据π对右密文中的组件进行排列,对x的左加密包括排列后的位置π(x)。给定π(x),求值器学习要解密的正确密文中的哪个组件,但对x一无所知。
在这里插入图片描述

② DOMAIN EXTENSION FOR ORE

上述过程中明文空间仅仅是在多项式大小的,下面介绍怎么在大域中构建ORE方案。可以看作是上述的小域ORE方案和Chenette 等人的方案结合。将明文空间从d位扩展到dn位。
在这里插入图片描述

小域方案是除了密文外什么也不泄露,而这里泄露了两个密文之间不同的第一个块的索引l,泄露的值是

在这里插入图片描述

③加密范围查询

在我们的模型中,客户端在服务器上存储了一个加密的数据库。客户端可以更新数据库(例如,通过添加或删除记录),并对数据库发出范围查询。在范围查询中,客户端指定一个数字间隔,服务器通过返回底层消息在该间隔内的所有密文来响应。

加密范围查询一般方案:我们用一组算法来描述一个范围查询方案,其中每个算法都是客户端和服务器之间的一个单轮协议。在每个协议中,客户端总是无状态的,但服务器是有状态的——特别是,服务器的状态表示存储在服务器上的信息,以有效地响应客户端查询所需的信息,包括加密的数据库本身。
在这里插入图片描述

最初,客户端运行一个设置过程,该过程以值的明文数据库D作为输入,并输出一个密钥sk和一些表示加密数据库的令牌t。对于每个查询(范围查询、插入查询、删除查询),客户端使用密钥sk推导出表示其查询的令牌t,并将t发送给服务器。此令牌包含该查询的客户端输入的屏蔽版本。在输入查询令牌t时,服务器将处理该查询并更新其内部状态。在范围查询中,服务器还返回一个响应r,客户端使用该响应r来学习范围查询的答案。

基于上述ORE的范围查询方案:

服务器的加密数据库由每个值的右密文组成,按排序顺序存储。每个查询的令牌t由对查询值的左加密组成。
在这里插入图片描述

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

三金哥爱吃醋

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值
>