【问题标题】:Number encryption algorithm [closed]数字加密算法[关闭]
【发布时间】:2017-12-25 16:42:22
【问题描述】:

我有一个数字列表。我将调用一个服务(假设是会计服务),它将对这些数字列表执行一些操作,并将最终结果返回给我。

我不想以纯格式传递我的数据。如果服务执行任何算术运算并将结果返回给我,我想以这种方式加密数字,我将能够用实际结果解密它。

【问题讨论】:

  • 不是一个编程问题,所以它是题外话,但查找“格式保留加密”和“同态加密”。
  • 很大程度上取决于服务接受的内容。该服务接受什么?
  • @JamesKPolk 同态加密也可以用于数字
  • @MikeSherrill'CatRecall' 服务接受一个数字列表,并在执行计算后返回一个输出数字。

标签: encryption numbers logic


【解决方案1】:

是的。您可以使用名为Homomorphic encryption 的东西,它“是一种加密形式,允许对密文进行计算,生成加密结果,解密时与操作结果相匹配,就好像它们是在明文上执行的一样。”使用这种类型的加密,它们可以是Partially homomorphicFully homomorphic。完全同态加密可以支持arbitrary computation (also called "bignum arithmetic" or "Arbitrary-precision arithmetic"),而部分同态算法则不能。正如用户mikeazothis thread 中对cryptography stack exchange 所述,

ElGamal 是一种语义安全的乘法同态密码。 Paillier 是一种语义安全的加法同态密码。

用户还进一步阐述并提到了这种加密形式的一个重大缺点:

同态密码本身通常不提供可验证的计算。换句话说,您加密您的数据,将其发送到云端,然后让云端为您计算。你怎么知道云执行了正确的计算?要获得这种保证,还需要其他机器。

在您的情况下,您将通过(我假设)信誉良好的 API 发送它,所以这可能不是您关心的问题。

根据我的研究,您最好的选择可能是Gentry's cryptosystem。要使用它(在程序中),HElib 应该可以正常工作。

将来,crypto.stackexchange.com 可能会是解决这类问题的更好地方

【讨论】:

  • 您认为您可以将此标记为您问题的答案吗?我需要那种甜蜜甜蜜的名声:P
猜你喜欢
  • 2011-08-20
  • 1970-01-01
  • 2013-02-22
  • 2019-09-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-16
相关资源
最近更新 更多