security - 同态加密算法的实际应用?

标签 security encryption cryptography privacy voting

密码学中似乎发生了一些有趣的事情:第一个 homomorphic encryption 方案最近出现( explanationHT )。粗略地说,它是一种将x编码为f(x)的方法,这样您就可以轻松地计算f(x+y),知道f(x)f(y) 即使您无法轻松恢复 xy (并且相同对于f(x*y))。

这种类型的方案有哪些实际应用(一旦建立了安全性)?对我来说,它们似乎可以使编写操纵私有(private)数据的算法变得更加容易。

这是我的想法:

  1. 电子投票
  2. 检查私有(private)数据的完整性
  3. 总体上是否有可能有助于保护隐私?

示例:我在银行 A、B、C 都有账户。实体 X 想要确认我的总金额超过 1000 美元;它很乐意接受银行 A、B、C 或 D 的对账单,但不幸的是我的任何一个账户中都没有足够的钱。 A银行用我的公钥加密了我的500美元的信息;同样,银行B和C分别加密了我有200美元和300美元的信息。他们将这些数据发送给 X,X 将它们添加到某个数字中,我证明该数字实际上加密了 1000 美元(通过使用我的公钥加密 1000 美元并证明结果是相同的)。我已经证明了一些事情,但没有向 X 透露我每个帐户中有多少钱。

另一个例子:好公民 X_1、...、X_n 正在组队选择两名候选人中的一名,其中一名是喝拿铁的 liberAl,同时另一个是一个B持有圣经的枪支爱好者(所有名字都是虚构的)。他们决定希望投票以私下方式进行,但速度要快。他们以加密的矢量格式 (1, vote_A, vote_B, vote_None) 发送选票给选举委员会,选举委员会公开添加他们的选票,并以 (count, count_A, count_B, count_None)。在检查count = count_A + count_B + count_None后,官员宣布其中一名候选人获胜,之后法官以与电子投票无关的某种原因宣布选举无效,并在未来 10 年我都会在法庭上度过,但是,嘿,这不是我的问题。

注释: - 我相信这些特定的例子在 RSA 之前就可以实现,因为它只需要一个操作中的同态性。我们希望通过更多的操作可以得到更加有趣的东西——所以,举一些例子吧!

  • 我特别希望看到包含有机会在实践中使用的代码和/或开发框架的答案,原因是 SO 不是理论计算机科学讨论板。

  • 同态算法,重复下面评论中所说的内容,允许创建一个在不知道数据的情况下管理数据的程序。不幸的是,程序的类型有些限制:你不能有 if (x=0) ... 因为 x 是加密的,并且每一步都非常慢(涉及到一些格子)。

最佳答案

这是黑暗中的狂野镜头:

我们正在考虑保护明文免受对其进行计算的人的侵害。但如果目标是保护明文和算法呢?

以 MRI 机器为例。 MRI 机器最昂贵的部分是机器分析磁共振数据的算法。因此,它们受到硬件设备的严格保护,这些硬件设备旨在在允许不受信任的一方(或与此相关的任何人)检查程序之前破坏程序。

如果 MRI 制造商能够集中 MRI 数据计算,那么丢失算法的风险将大大降低。然而,法律禁止他们访问私有(private)患者数据。

那么!同态加密允许在患者数据和算法都受到保护的情况下发生这种情况。 “完全”同态加密(即在加密数据上引入环同态)允许对数据进行更高效、更稳健的计算。

关于security - 同态加密算法的实际应用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1023981/

相关文章:

java - org.bouncycaSTLe.crypto.fips.FipsOperationError : Module checksum failed: entry

azure - 有没有什么方法可以限制其他用户不要在 Azure 数据湖第 2 代中查看我的容器

javascript - 在 map 和数据安全上添加标记的传单

OSX 中的 python 地穴

iOS - 使用 TLS-PSK 连接到套接字

c++ - 开发使用 MS CryptoAPI 的 64 位应用程序

php - 双向加密 : I need to store passwords that can be retrieved

javascript - 使用 <script src=.... 的跨框架脚本来查找站点的状态代码 - 安全问题?

java - 您将 key 存储在 Java Web 应用程序的什么位置?

go - 在 golang 中使用 AES 加密的安全问题