有人可以用简单的英语解释 FHE 和 PHE 可以在云中使用的实用方法吗?一些有趣(且令人困惑)的链接包括此 Microsoft Research PDF和此 wiki 条目。
问题:
从密码分析 PoV 来看,同态加密是否被认为是安全的?
FHE/PHE 数据可以/不能进行哪些操作?
考虑到今天存在一些 PHE 算法,而且它们显然足够快;应该考虑将它们用于生产用途吗?请提供一些可以使用 PHE 的场景。
有关的:
有人可以用简单的英语解释 FHE 和 PHE 可以在云中使用的实用方法吗?一些有趣(且令人困惑)的链接包括此 Microsoft Research PDF和此 wiki 条目。
问题:
从密码分析 PoV 来看,同态加密是否被认为是安全的?
FHE/PHE 数据可以/不能进行哪些操作?
考虑到今天存在一些 PHE 算法,而且它们显然足够快;应该考虑将它们用于生产用途吗?请提供一些可以使用 PHE 的场景。
有关的:
同态加密是关于允许在不解密的情况下计算加密值的加密方案。例如,给定E(a)和E(b) ( a和b的加密),您可以在不知道a、b或解密密钥的情况下计算E(a+b) 。
同态加密方案在投票方案中非常有用,其结构如下:选民加密他们的选票,同态属性用于将所有选票相加,结果解密(由一组需要聚集的权限组解密,以非常公开的方式执行解密)。有几种同态加密方案,其中一些已为人所知数十年(例如 El Gamal)。它们高效且安全(与非对称加密一样安全)。请注意,同态加密解决了匿名计票的问题,但这只是适当投票方案的一小部分(例如,选民还必须证明他加密了 0 或 1,而不是 20——否则,他可以获得 20 票)。同态加密也可用于数字现金系统,
完全同态加密是第一次发现加密方案时创造的术语,该方案在环结构中保留了两个代数运算:即,给定E(a)和E(b),您可以计算E(a+b)和E(乙)。事实证明,通过这两个操作,您几乎可以计算所有内容。这就是“云”的用武之地:云很强大,但不值得信赖;因此,您可以加密您的数据,将其发送到执行您想要执行的计算的云,然后解密结果。
目前,将计算卸载到云端只是一种幻想。目前已知的最有效的全同态加密方案,基于 Gentry 的方案(2009 年发布),仍然非常昂贵,并且“任意计算”部分涉及将计算表示为一个电路,其中每个逻辑门通过它自己的同态加密来模拟。我们在这里谈论的不是 10 倍的减速;相反,我们谈论的是整个 Amazon EC2 云无法在一天内以同态方式执行在单个 iPhone 上需要一秒钟的计算。因此,虽然从理论上讲这很有趣,但要发现任何适用于实践的东西还需要一段时间。此外,2009 年是最近的事。传统上,我们至少要等待 5 到 10 年才能宣布非对称加密方案是“安全的”。
已经有可能通过Helios等端到端投票系统以加密方式将已投票的选票公开存储在云中,这样公众就可以将它们加起来以确认总数,并检查他们自己的投票是否正确。确实计入总数。 没有给某人一张他们可以用来出售投票的“收据”。令人惊讶,但真实。它非常适合低风险的私人选举。但请注意,即使是 Helios 的发明者 Ben Adida,也表示 “政府选举是你不想通过 Internet 进行的事情”,并指出计算机病毒可能破坏投票以及恐吓选民的可能性.
这是可能的,因为只需要加法,因此部分同态方法有效。我希望我们会发现其他类似的有趣案例,但真正的通用计算需要进一步提高效率。
注意“实用?” 您引用的论文谈到了一种方案中密文的大小约为 50 kB。这意味着每个数字(例如在一组医学实验室数据中)都由一个大 4 个数量级的密文表示……这使得云存储的成本相当不切实际。
DW 在上面的评论中写道:
在某些情况下,情况可能比这更糟糕:可能你必须构建一个布尔电路,并且每个位都可能由一些巨大的密文表示。不,今天不实用。它距离经济可行还有许多数量级。但是实在是太酷了……
我的看法是
同态加密是系统的一个范畴;有些实现可能很弱,而另一些可能很强大,但是将整个类别称为“弱”或可密码分析是没有意义的。
部分同态密码系统(在发现“完全同态”密码系统之前曾被称为“同态”密码系统)已经在密码系统中使用了一段时间,包括,正如 Neal 指出的,在我的投票系统 Helios 中。在这些系统中,您可以在加密的保护下执行一项操作,即加法或乘法。这可以让你做一些有趣的事情,比如计算个人选票和只解密计数。
现在,当我说“不要将 Helios 用于公职选举”时,并不是因为同态加密的任何弱点。这是系统中最强大的部分。在线投票的问题在于您的桌面客户端可能会受到恶意软件的攻击,从而在加密之前更改您的投票。同态计数部分是相当安全的,并且没有针对它的已知攻击。
Boneh、Goh 和 Nissim 在 2005 年设计了一种更同态的密码系统,在解密之前,您可以进行任意数量的加法,然后是一个乘法,然后是任意数量的加法。这启用了更有趣的应用程序,例如我在 Public Mixing 上的工作(也适用于投票),您可以在公共操作中打乱一组加密值,而无需透露您打乱它们的顺序(当您考虑它时,这很疯狂.)
在 Gentry 几年前的工作之前,人们认为完全同态的密码系统是不可能的,您可以在其中进行任意加法和乘法运算。这类密码系统的意义在于,您可以将任何计算完全外包给云端,而无需透露明文数据。例如,如果您想对文本语料库中的单词“cryptography”进行全文搜索,您可以加密语料库,加密单词“cryptography”,然后将其发送给执行全文检索的另一方搜索完全加密的数据,并将加密的结果返回给您,然后您可以对其进行解密以获得答案。进行计算的系统对语料库或搜索查询一无所知。
但是,当然,这只有在加密过程和执行同态操作的过程在云上仍然比在本地机器上以明文方式自己进行更便宜的情况下才有意义。我们离那个非常非常远。也就是说,密码系统只会随着时间的推移变得更好,所以也许我们会看到通用同态计算在几年内变得有用。
与此同时,由于同态技术,可能有很多特定的问题——不是通用计算——可以更安全地外包。
如何使用它们?现在?他们不能。对于大多数/所有实际应用来说,它们太慢了。今天考虑将同态加密用于生产用途毫无意义——太慢了。
希望是,如果我们能够改进算法以使其更快,那么在未来的某一天,它可能使我们能够在不信任云提供商的情况下在云中运行计算。梦想是我们在本地加密所有数据,将加密数据发送到云提供商,云提供商可以对数据进行我们想要的所有计算(虽然它仍然是加密形式),最终得到最终结果以加密形式,然后我们可以下载结果并在本地解密。结果是云提供商看不到我们的数据。无论如何,这就是梦想,完全同态加密有可能在某一天帮助我们实现这个梦想——如果密码学家能够弄清楚如何让它更快。