【问题标题】:Secret computing: does such an animal exist?秘密计算:这样的动物存在吗?
【发布时间】:2010-12-02 23:05:41
【问题描述】:

计算机科学理论问题

今天,我可以将文件秘密存储在云中(例如,amazon s3),方法是在我存储它们之前对其进行加密,并在我下载它们之后对其进行解密。存储提供商无法从存储的文件中获取任何信息 - 一切都被安全加密,甚至对称密码在这里也可以。

我的问题是,云计算是否也能做到这一点。云中有一个计算提供商(比如亚马逊 ec2)。我可以为程序上传“加密程序”和“加密输入”,并让我的云计算提供商为我执行所有计算并为我生成“加密输出” - 具有与“机密文件”中相同的安全保证商店”?

请注意,我不是在谈论混淆和逆向工程问题,而是在谈论具有强大加密保证的秘密计算。

我的预感是它无法完成。否则 1)它会存在,2)我的直觉是,在对其应用转换后,任何加密数据都不能“继续被加密数据”,即它只会变成乱码。

注意如果有人能告诉我确切的命名应该是什么,我可能缺乏适当的计算机科学背景。

欢迎指点学术文献,并对上述概念进行澄清。

答案:

看起来:

  • 秘密输入和输出,非秘密程序:仅在理论上

  • 秘密输入、秘密输出和秘密程序:甚至在理论上都没有。 (更新:也许是的,请参阅 Artelius 的评论)

【问题讨论】:

  • 我认为这是可能的,但非常非常...困难。
  • “加密程序”是什么意思?
  • “秘密输入,秘密输出和秘密程序”也可能是可能的。假设您可以在“秘密输入和输出,非秘密程序”环境中运行解释器(或图灵机或其他)。那么解释器执行的程序是秘密的。

标签: security cryptography computer-science theory cloud


【解决方案1】:

是的,这样的事情确实存在,尽管目前还很理论。它被称为同态加密。 Here's a paper about breakthroughs made at IBMthere's a comment about it on Bruce Schneier's blog

基本上,同态加密系统是这样一种:

decrypt (f (encrypt (plaintext))) = f (plaintext)

【讨论】:

  • +1 哇!我会好好读一读的。是时候删除我说不的答案了:)
  • 如果我误解了 Scheneier 的博客,请纠正我:“算法”不是秘密,只有输入和输出。
  • 你是对的,算法不是秘密或加密的,它永远不可能是秘密的。代码必须由某种非加密方式执行。服务提供商将始终能够获取在服务器上运行的代码。从安全的角度来看,通常最好有开放的算法,社区可以检查和测试弱点 - 混淆不是安全!如果你有一个没有其他人开发的“神奇算法”(我不想这么说),那么总是会有专利保护。
  • 施奈尔不是说这个想法根本不切实际吗?
【解决方案2】:

实际上,最近有人解决了所谓的Fully Homomorphic Encryption 的问题。我不是密码学家,但据我了解,基本思想是有人可以对加密数据执行操作甚至不知道数据是什么,这些操作实际上是有意义的(即,当数据被解密时,将发生异常变化)。

长期以来,这一直是密码学中的一个悬而未决的问题,现在它已经解决了,从技术上讲,有人可以做类似于你提议的事情。例如,您可以上传数据供亚马逊服务器处理,它们可以执行某种非常专门设计的算法,然后发回您的新数据。 (我不知道是否有一种方法可以实际指定算法本身,就像你问的那样)。

这当然有一个问题:尽管已经解决,但仍然完全不切实际。

如果您想了解更多关于这方面的信息,我会推荐 Wikipedia 文章以及 Bruce Schneier 的文章“Homomorphic Encryption Breakthrough”。

【讨论】:

    【解决方案3】:
    【解决方案4】:

    其他人已经指出了完全同态加密的理论上的可能性,但我想指出一个(秘密输入,秘密输出,非秘密程序)系统可以用来创建一个(秘密输入,秘密output, secret program)-system: 让非机密程序成为某种通用语言的解释器,并使用 (actual-program, input) 作为非机密程序的输入。

    当然,嵌入防篡改外壳并由独立第三方认证的标准计算机将是更实用的解决方案。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-13
      • 2011-05-10
      • 2018-06-28
      • 1970-01-01
      • 2018-09-02
      • 1970-01-01
      相关资源
      最近更新 更多