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

Security 同态加密算法的实际应用?,security,encryption,cryptography,privacy,voting,Security,Encryption,Cryptography,Privacy,Voting,密码学中似乎有一些有趣的事情:第一个方案最近出现了(,)。粗略地说,它是一种将x编码为f(x)的方法,这样你就可以计算f(x+y)很容易地知道f(x)和f(y),即使你不能很容易地恢复x和y(对于f(x*y)) 这类计划的实际应用是什么(一旦建立了安全性)?在我看来,他们似乎可以让编写操作私有数据的算法变得更容易 以下是我的想法: 电子投票 检查私有数据的完整性 是否有可能有助于一般隐私 示例:我在A、B、C银行有账户。实体X想确认我总共有1000多美元;它很乐意接受A、B、C或D银行的对账单,

密码学中似乎有一些有趣的事情:第一个方案最近出现了(,)。粗略地说,它是一种将
x
编码为
f(x)
的方法,这样你就可以计算
f(x+y)
很容易地知道
f(x)
f(y)
,即使你不能很容易地恢复
x
y
(对于
f(x*y)

这类计划的实际应用是什么(一旦建立了安全性)?在我看来,他们似乎可以让编写操作私有数据的算法变得更容易

以下是我的想法:

  • 电子投票
  • 检查私有数据的完整性
  • 是否有可能有助于一般隐私
  • 示例:我在A、B、C银行有账户。实体X想确认我总共有1000多美元;它很乐意接受A、B、C或D银行的对账单,但不幸的是,我在任何一个账户中都没有足够的钱。银行A用我的公钥加密我的500美元信息;类似地,银行B和C分别加密我有200美元和300美元的信息。他们将这些数据发送给X,X将它们添加到某个数字中,我证明该数字实际上是加密的$1000(通过使用我的公钥加密$1000并证明结果是相同的)。我已经证明了一些事情,但没有向
    X
    透露我每个账户中有多少钱

    另一个例子:好公民X_1,X_n正联手从两名候选人中挑选一名,其中一名是喝拿铁的自由主义者,另一名是一名有能力的持枪爱好者(所有名字都是虚构的)。他们决定,他们希望投票是私下的,但要迅速。他们以矢量格式
    (1,投票A,投票B,投票无)
    向选举委员会发送加密的选票,选举委员会公开添加选票,并以
    (计数,计数A,计数B,计数无)
    的形式获得结果。在检查了
    count=count\u A+count\u B+count\u None
    之后,官员们宣布其中一名候选人获胜,之后法官宣布选举无效,原因与电子投票无关,并在未来10年内在法庭上进行斗争,但是,嘿,这不是我的问题

    注释: -我相信这些特殊的例子甚至在RSA出现之前都是可能的,因为它只需要一个操作中的同态。我们希望通过更多的操作,我们能有更有趣的东西——所以,拿出例子来

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

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


    作为一个PKI极客,如果同态密码函数也是一个非对称密钥系统,那么你在签名领域有一些非常有趣的可能性。签名者可能会对消息进行签名,而接收者可以将消息的一部分和密码文本的相应部分重新传输给第三方

    在函数表示法中,这将是:

    用户签名:

    符号(明文,私钥)=密文

    并传送:

    发送(明文、密文、证书)

    应用程序获取段:

    纯文本=所需纯文本+其他纯文本

    并使用如下公式计算相同的密文转换:

    如果密文::明文,则???::所需明文

    查找所需的密文

    应用程序仅将所需内容转发给外部服务:

    发送(所需明文、所需密文、证书)

    服务可以验证此消息,就像用户直接发送了它一样

    这取决于用于压缩明文的哈希算法是否也是同态的。如果没有,这是行不通的。。。或者没有应用哈希算法

    如果您希望外部服务响应已签名的用户请求,但又不希望公开用户发送给该外部服务的所有内容,那么这可能非常有用

    一个例子是一个简单的包裹订购系统——我向一个web应用程序发送购买一系列物品的请求。为了超级安全,我签署了一份采购订单,确认我想要(并承诺支付)一些物品,在特定的日期将其运到特定的地点,并附有特定的付款信息。现在。。web应用程序希望发生以下几件事:

    • 财务部需要向我的账户收费,并开始从我那里获得付款
    • 库存部门需要从库存中提取物品,或处理任何缺货问题
    • 发货需要从库存中接收,并将物品移动到我的地址
    没有理由让库存或发货人员知道我如何付款。财务部可能没有理由知道我的送货地址。。。在每种情况下,所需的明文和密文都会发生变化,这取决于接收者是谁。这在像Amazon.com二手书这样的系统中更为有效,因为我从Amazon购买的实体与提供商品的实体(二手书销售商)不同

    阅读有关晶格密码的论文,它听起来更像是一个对称密钥系统。。。这对签名消息没有多大帮助

    论“人”的概念
    SELECT SUM(x)
    FROM Foo
    WHERE y = 'some value'