为什么没有基于已知NP-Hard问题的加密算法?


109

当今的大多数加密技术(例如RSA)都依赖于整数因式分解,这不被认为是NP难题,但它属于BQP,这使其容易受到量子计算机的攻击。我想知道为什么没有基于已知NP难题的加密算法。听起来(至少从理论上来说)听起来比不被证明具有NP难度的加密算法更好。

Answers:


76

NP完全问题的最坏情况硬度不足以进行加密。即使NP完全问题在最坏的情况下()很难解决,但在平均情况下仍然可以有效解决。密码学假定NP中存在平均情况下的棘手问题。同样,使用假设证明NP中存在平均难问题是一个主要的开放问题。P N PPNPPNP

Russell Impagliazzo的经典著作《平均情况复杂性的个人观点》(1995年)非常出色。

出色的调查是Bogdanov和Trevisan撰写的“ 平均情况下的复杂性”,《理论计算机科学》的基础和趋势。2,No 1(2006)1–106


1
在最佳情况下,我们也不需要硬度吗?毕竟,我们所有的钥匙都应该是安全的。还是我们可以有效(高效)阻止最佳情况的发生?
拉斐尔

7
此外,我们应该能够在合理的时间内生成硬实例。简而言之,我们不仅需要强度。NP-hard
卡夫

@Raphael,如果获得不良“良好”案例的可能性足够小,就足够了。如果说它比猜测理想的“坏”情况的正确密钥的可能性小,则应将这种风险视为可以接受的恕我直言。
quazgar 2014年

49

有过。

一个这样的例子是McEliece密码系统,它基于解码线性代码的难度

第二个例子是NTRUEncrypt,它基于最短的向量问题,我认为它是NP-Hard。

另一个是已损坏的Merkle-Hellman背包密码系统

注意:我不知道前两个是否坏了/它们有多好。我所知道的是它们存在,而我是通过网络搜索获得的。


6
出于密码分析的目的,McEliece可能不应该仅仅被视为一个低温系统。对于插入的每一类可有效解码的线性代码,您都必须想出一种不同的策略来破解它。对于某些类别的代码,它已被破坏,但是(如Wikipedia文章所述)不是针对Goppa代码,这是McEliece最初的建议。
彼得·索尔

从这个列表中,我想说NTRU看起来最有前途,但根据我到目前为止所读的内容,尚未对RSA进行测试的方式进行过广泛的测试。
肯李

Merkle-Hellman密码系统不是适当的示例。Merkle-Hellman背包背包向量只是所有背包向量的一个子集,因此Merkle-Hellman背包背包问题可能不是NP难题。我认为这不是NP难题,至少我不知道有任何论文可以证明这一点。
miracle173 2014年

25

我可以想到四个并非完全独立的主要障碍:

  • NP硬度仅提供有关极限中的复杂性的信息。对于许多NP完全问题,存在可以合理快速地解决所有感兴趣实例(在特定情况下)的算法。换句话说,对于任何固定的问题大小(例如,给定的“键”),问题不一定仅因为是NP问题而难。
  • NP硬度仅考虑最坏情况的时间。现有实例中的许多甚至大多数实例都可能很容易解决。即使我们知道如何表征硬实例(afaik,我们不知道),我们仍然必须找到它们。
  • 您需要拥有难以解决的大型实例。从搜索空间是平坦的意义上来说,搜索大质数(的乘积)很容易:一个数字是否适合。想象一下,用图:在所有以图形大小大型,你必须要找到那些有很好的性能。 n n2n(n1)nn
  • 您需要某种可逆性。例如,任何整数都通过质数分解来唯一描述。我们想使用TSP作为加密方法的图像;考虑到所有最短的旅程,您能否(重新)构造它们唯一的图表?

请注意,我没有加密方面的专业知识;这些仅仅是算法上的回应。复杂性理论上的异议。


优秀的总结。但是请注意,BQP硬度与您的前两点有相同的警告。
米奇

14

我们今天所知道的公钥加密是基于单向 陷门排列构建的,门是必不可少的。

为了使协议安全,您需要任何人都可以使用的密钥,以及使用该密钥加密消息的方法。显然,一旦加密,仅凭其密码和公钥就很难恢复原始消息:密码只能通过一些额外信息(即您的私钥)才能解密。

考虑到这一点,很容易基于任何单向活板门排列来构建原始密码系统。

  1. 爱丽丝向公众提供单向排列,并为自己保留活板门。
  2. Bob将其输入放入排列中,然后将输出传输给Alice。
  3. 爱丽丝使用活板门将鲍勃输出的排列反向。

现在的困难是找到实际的单向活板门置换,并且我们认为有很多函数是不错的候选函数(RSA,离散对数以及晶格问题的一些变体)。但是,如果我们可以确定地找到单向函数,那么我们也证明了,因此实际上证明函数是单向的是很难的。PNP

周围的其他方法,如果我们证明,我们还证明了有一类叫做之间(中间),在问题而不是 -hard。中的一些很好的问题候选者也是单向排列的候选者,因为我们还不能证明它们是 -hard。N P I N P N P N P I N PPNPNPINPNPNPINP

NPNPNP


RSA,是的,它是一个活板门功能。我不确定dlog是否为TDF(是一种方法)
111

如果NP中间问题是NP难的,那么它们将是NP完全的,这是一个矛盾。
Myria

0

仅根据实际经验给出一个启发式论证。

几乎所有NP完全问题中的几乎所有实例都易于解决。有些问题并非如此,但是很难发现,很难肯定你有这样的声音。

当人们尝试为某些著名的NP完全类编写随机问题生成器(例如约束编程,SAT或旅行推销员)时,这种情况在实践中已经出现过好几次了。后来有人找到了一种解决随机生成器琐碎产生的几乎所有实例的方法。当然,如果是加密系统,那就很麻烦了!


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.